tinybase 4.3.0-beta.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) 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-expo-sqlite.cjs +1 -1
  4. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -0
  6. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -0
  8. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  10. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  12. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  13. package/lib/cjs/store.cjs +1 -1
  14. package/lib/cjs/store.cjs.gz +0 -0
  15. package/lib/cjs/tinybase.cjs +1 -1
  16. package/lib/cjs/tinybase.cjs.gz +0 -0
  17. package/lib/cjs/tools.cjs +1 -1
  18. package/lib/cjs/tools.cjs.gz +0 -0
  19. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  20. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  21. package/lib/cjs/ui-react-dom.cjs +1 -1
  22. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  23. package/lib/cjs/ui-react.cjs +1 -1
  24. package/lib/cjs/ui-react.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  28. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -0
  30. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -0
  32. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  34. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  36. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  37. package/lib/cjs-es6/store.cjs +1 -1
  38. package/lib/cjs-es6/store.cjs.gz +0 -0
  39. package/lib/cjs-es6/tinybase.cjs +1 -1
  40. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  41. package/lib/cjs-es6/tools.cjs +1 -1
  42. package/lib/cjs-es6/tools.cjs.gz +0 -0
  43. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  44. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  45. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  46. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  47. package/lib/cjs-es6/ui-react.cjs +1 -1
  48. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  49. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +10 -7
  50. package/lib/debug/persisters/persister-expo-sqlite.js +10 -7
  51. package/lib/debug/persisters/persister-partykit-client.js +249 -0
  52. package/lib/debug/persisters/persister-partykit-server.js +161 -0
  53. package/lib/debug/persisters/persister-sqlite-wasm.js +10 -7
  54. package/lib/debug/persisters/persister-sqlite3.js +10 -7
  55. package/lib/debug/queries.js +2 -2
  56. package/lib/debug/store.js +13 -13
  57. package/lib/debug/tinybase.js +14 -14
  58. package/lib/debug/tools.js +3 -4
  59. package/lib/debug/ui-react-dom.js +35 -24
  60. package/lib/debug/ui-react.js +38 -1
  61. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  62. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  63. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  64. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  65. package/lib/es6/persisters/persister-partykit-client.js +1 -0
  66. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  67. package/lib/es6/persisters/persister-partykit-server.js +1 -0
  68. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  69. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  70. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  71. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  72. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  73. package/lib/es6/store.js +1 -1
  74. package/lib/es6/store.js.gz +0 -0
  75. package/lib/es6/tinybase.js +1 -1
  76. package/lib/es6/tinybase.js.gz +0 -0
  77. package/lib/es6/tools.js +1 -1
  78. package/lib/es6/tools.js.gz +0 -0
  79. package/lib/es6/ui-react-dom-debug.js +1 -1
  80. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  81. package/lib/es6/ui-react-dom.js +1 -1
  82. package/lib/es6/ui-react-dom.js.gz +0 -0
  83. package/lib/es6/ui-react.js +1 -1
  84. package/lib/es6/ui-react.js.gz +0 -0
  85. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  86. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  87. package/lib/persisters/persister-expo-sqlite.js +1 -1
  88. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  89. package/lib/persisters/persister-partykit-client.js +1 -0
  90. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  91. package/lib/persisters/persister-partykit-server.js +1 -0
  92. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  93. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  94. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  95. package/lib/persisters/persister-sqlite3.js +1 -1
  96. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  97. package/lib/store.js +1 -1
  98. package/lib/store.js.gz +0 -0
  99. package/lib/tinybase.js +1 -1
  100. package/lib/tinybase.js.gz +0 -0
  101. package/lib/tools.js +1 -1
  102. package/lib/tools.js.gz +0 -0
  103. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +2 -0
  104. package/lib/types/persisters/persister-expo-sqlite.d.ts +2 -0
  105. package/lib/types/persisters/persister-partykit-client.d.ts +88 -0
  106. package/lib/types/persisters/persister-partykit-server.d.ts +114 -0
  107. package/lib/types/persisters/persister-sqlite-wasm.d.ts +2 -0
  108. package/lib/types/persisters/persister-sqlite3.d.ts +2 -0
  109. package/lib/types/store.d.ts +6 -0
  110. package/lib/types/ui-react.d.ts +187 -4
  111. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +2 -0
  112. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +2 -0
  113. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +99 -0
  114. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +114 -0
  115. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +2 -0
  116. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +2 -0
  117. package/lib/types/with-schemas/store.d.ts +6 -0
  118. package/lib/types/with-schemas/ui-react.d.ts +223 -8
  119. package/lib/ui-react-dom.js +1 -1
  120. package/lib/ui-react-dom.js.gz +0 -0
  121. package/lib/ui-react.js +1 -1
  122. package/lib/ui-react.js.gz +0 -0
  123. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  124. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  125. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  126. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  127. package/lib/umd/persisters/persister-partykit-client.js +1 -0
  128. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  129. package/lib/umd/persisters/persister-partykit-server.js +1 -0
  130. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  131. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  132. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  133. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  134. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  135. package/lib/umd/store.js +1 -1
  136. package/lib/umd/store.js.gz +0 -0
  137. package/lib/umd/tinybase.js +1 -1
  138. package/lib/umd/tinybase.js.gz +0 -0
  139. package/lib/umd/tools.js +1 -1
  140. package/lib/umd/tools.js.gz +0 -0
  141. package/lib/umd/ui-react-dom-debug.js +1 -1
  142. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  143. package/lib/umd/ui-react-dom.js +1 -1
  144. package/lib/umd/ui-react-dom.js.gz +0 -0
  145. package/lib/umd/ui-react.js +1 -1
  146. package/lib/umd/ui-react.js.gz +0 -0
  147. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  148. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  149. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  150. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  151. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -0
  152. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  153. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -0
  154. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  155. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  156. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  157. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  158. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  159. package/lib/umd-es6/store.js +1 -1
  160. package/lib/umd-es6/store.js.gz +0 -0
  161. package/lib/umd-es6/tinybase.js +1 -1
  162. package/lib/umd-es6/tinybase.js.gz +0 -0
  163. package/lib/umd-es6/tools.js +1 -1
  164. package/lib/umd-es6/tools.js.gz +0 -0
  165. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  166. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  167. package/lib/umd-es6/ui-react-dom.js +1 -1
  168. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  169. package/lib/umd-es6/ui-react.js +1 -1
  170. package/lib/umd-es6/ui-react.js.gz +0 -0
  171. package/package.json +42 -31
  172. package/readme.md +13 -13
@@ -14,6 +14,7 @@ const ifNotUndefined = (value, then, otherwise) =>
14
14
  isUndefined(value) ? otherwise?.() : then(value);
15
15
  const isString = (thing) => getTypeOf(thing) == STRING;
16
16
  const isArray = (thing) => Array.isArray(thing);
17
+ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
17
18
  const promiseAll = async (promises) => promise.all(promises);
18
19
 
19
20
  const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
@@ -21,7 +22,6 @@ const arrayMap = (array, cb) => array.map(cb);
21
22
  const arrayLength = (array) => array.length;
22
23
  const arrayIsEmpty = (array) => arrayLength(array) == 0;
23
24
  const arrayFilter = (array, cb) => array.filter(cb);
24
- const arraySlice = (array, start, end) => array.slice(start, end);
25
25
  const arrayPush = (array, ...values) => array.push(...values);
26
26
  const arrayShift = (array) => array.shift();
27
27
 
@@ -315,10 +315,13 @@ const upsert = async (
315
315
  ),
316
316
  ) +
317
317
  ')VALUES' +
318
- strRepeat(
319
- `,(?${strRepeat(',?', arrayLength(changingColumnNames))})`,
320
- arrayLength(args) / (arrayLength(changingColumnNames) + 1),
321
- ).substring(1) +
318
+ slice(
319
+ strRepeat(
320
+ `,(?${strRepeat(',?', arrayLength(changingColumnNames))})`,
321
+ arrayLength(args) / (arrayLength(changingColumnNames) + 1),
322
+ ),
323
+ 1,
324
+ ) +
322
325
  'ON CONFLICT(' +
323
326
  escapeId(rowIdColumnName) +
324
327
  ')DO UPDATE SET' +
@@ -666,7 +669,7 @@ const getDefaultedTabularConfigMap = (
666
669
  ) => {
667
670
  const configMap = mapNew();
668
671
  objMap(configsObj, (configObj, id) => {
669
- const defaultedConfig = arraySlice(
672
+ const defaultedConfig = slice(
670
673
  objValues(
671
674
  objMerge(
672
675
  defaultObj,
@@ -695,7 +698,7 @@ const getConfigStructures = (configOrStoreTableName) => {
695
698
  ];
696
699
  }
697
700
  const {tables: {load = {}, save = {}} = {}, values = {}} = config;
698
- const valuesConfig = arraySlice(
701
+ const valuesConfig = slice(
699
702
  objValues(objMerge(DEFAULT_TABULAR_VALUES_CONFIG, values)),
700
703
  0,
701
704
  objSize(DEFAULT_TABULAR_VALUES_CONFIG),
@@ -14,6 +14,7 @@ const ifNotUndefined = (value, then, otherwise) =>
14
14
  isUndefined(value) ? otherwise?.() : then(value);
15
15
  const isString = (thing) => getTypeOf(thing) == STRING;
16
16
  const isArray = (thing) => Array.isArray(thing);
17
+ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
17
18
  const promiseNew = (resolver) => new promise(resolver);
18
19
  const promiseAll = async (promises) => promise.all(promises);
19
20
 
@@ -22,7 +23,6 @@ const arrayMap = (array, cb) => array.map(cb);
22
23
  const arrayLength = (array) => array.length;
23
24
  const arrayIsEmpty = (array) => arrayLength(array) == 0;
24
25
  const arrayFilter = (array, cb) => array.filter(cb);
25
- const arraySlice = (array, start, end) => array.slice(start, end);
26
26
  const arrayPush = (array, ...values) => array.push(...values);
27
27
  const arrayShift = (array) => array.shift();
28
28
 
@@ -316,10 +316,13 @@ const upsert = async (
316
316
  ),
317
317
  ) +
318
318
  ')VALUES' +
319
- strRepeat(
320
- `,(?${strRepeat(',?', arrayLength(changingColumnNames))})`,
321
- arrayLength(args) / (arrayLength(changingColumnNames) + 1),
322
- ).substring(1) +
319
+ slice(
320
+ strRepeat(
321
+ `,(?${strRepeat(',?', arrayLength(changingColumnNames))})`,
322
+ arrayLength(args) / (arrayLength(changingColumnNames) + 1),
323
+ ),
324
+ 1,
325
+ ) +
323
326
  'ON CONFLICT(' +
324
327
  escapeId(rowIdColumnName) +
325
328
  ')DO UPDATE SET' +
@@ -667,7 +670,7 @@ const getDefaultedTabularConfigMap = (
667
670
  ) => {
668
671
  const configMap = mapNew();
669
672
  objMap(configsObj, (configObj, id) => {
670
- const defaultedConfig = arraySlice(
673
+ const defaultedConfig = slice(
671
674
  objValues(
672
675
  objMerge(
673
676
  defaultObj,
@@ -696,7 +699,7 @@ const getConfigStructures = (configOrStoreTableName) => {
696
699
  ];
697
700
  }
698
701
  const {tables: {load = {}, save = {}} = {}, values = {}} = config;
699
- const valuesConfig = arraySlice(
702
+ const valuesConfig = slice(
700
703
  objValues(objMerge(DEFAULT_TABULAR_VALUES_CONFIG, values)),
701
704
  0,
702
705
  objSize(DEFAULT_TABULAR_VALUES_CONFIG),
@@ -31,7 +31,6 @@ const arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);
31
31
  const arrayLength = (array) => array.length;
32
32
  const arrayIsEmpty = (array) => arrayLength(array) == 0;
33
33
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
34
- const arraySlice = (array, start, end) => array.slice(start, end);
35
34
  const arrayPush = (array, ...values) => array.push(...values);
36
35
 
37
36
  const mathMax = Math.max;
@@ -43,6 +42,7 @@ const ifNotUndefined = (value, then, otherwise) =>
43
42
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
44
43
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
45
44
  const isArray = (thing) => Array.isArray(thing);
45
+ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
46
46
  const getUndefined = () => void 0;
47
47
 
48
48
  const object = Object;
@@ -794,7 +794,7 @@ const createQueries = getCreateFunction((store) => {
794
794
  );
795
795
  queries[ADD + RESULT + gettable + LISTENER] = (...args) =>
796
796
  resultStore[ADD + gettable + LISTENER](
797
- ...arraySlice(args, 0, argumentCount),
797
+ ...slice(args, 0, argumentCount),
798
798
  (_store, ...listenerArgs) =>
799
799
  args[argumentCount](queries, ...listenerArgs),
800
800
  );
@@ -30,6 +30,7 @@ const ifNotUndefined = (value, then, otherwise) =>
30
30
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
31
31
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
32
32
  const isArray = (thing) => Array.isArray(thing);
33
+ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
33
34
  const test = (regex, subject) => regex.test(subject);
34
35
 
35
36
  const arrayHas = (array, value) => array.includes(value);
@@ -42,7 +43,6 @@ const arrayForEach = (array, cb) => array.forEach(cb);
42
43
  const arrayMap = (array, cb) => array.map(cb);
43
44
  const arrayLength = (array) => array.length;
44
45
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
45
- const arraySlice = (array, start, end) => array.slice(start, end);
46
46
  const arrayPush = (array, ...values) => array.push(...values);
47
47
  const arrayShift = (array) => array.shift();
48
48
 
@@ -935,7 +935,7 @@ const createStore = () => {
935
935
  const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));
936
936
  const getSortedRowIds = (tableId, cellId, descending, offset = 0, limit) =>
937
937
  arrayMap(
938
- arraySlice(
938
+ slice(
939
939
  arraySort(
940
940
  mapMap(mapGet(tablesMap, id(tableId)), (row, rowId) => [
941
941
  isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
@@ -1101,16 +1101,16 @@ const createStore = () => {
1101
1101
  } catch {}
1102
1102
  return store;
1103
1103
  };
1104
- const setJson = (tablesAndValuesJson) => {
1105
- try {
1106
- const [tables, values] = jsonParse(tablesAndValuesJson);
1107
- setOrDelTables(tables);
1108
- setOrDelValues(values);
1109
- } catch {
1110
- setTablesJson(tablesAndValuesJson);
1111
- }
1112
- return store;
1113
- };
1104
+ const setJson = (tablesAndValuesJson) =>
1105
+ fluentTransaction(() => {
1106
+ try {
1107
+ const [tables, values] = jsonParse(tablesAndValuesJson);
1108
+ setOrDelTables(tables);
1109
+ setOrDelValues(values);
1110
+ } catch {
1111
+ setTablesJson(tablesAndValuesJson);
1112
+ }
1113
+ });
1114
1114
  const setTablesSchema = (tablesSchema) =>
1115
1115
  fluentTransaction(() => {
1116
1116
  if ((hasTablesSchema = validateTablesSchema(tablesSchema))) {
@@ -1495,7 +1495,7 @@ const createStore = () => {
1495
1495
  addListener(
1496
1496
  args[argumentCount],
1497
1497
  idSetNode[args[argumentCount + 1] ? 1 : 0],
1498
- argumentCount > 0 ? arraySlice(args, 0, argumentCount) : void 0,
1498
+ argumentCount > 0 ? slice(args, 0, argumentCount) : void 0,
1499
1499
  pathGetters,
1500
1500
  extraArgsGetter,
1501
1501
  );
@@ -40,6 +40,7 @@ const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
40
40
  const isString = (thing) => getTypeOf(thing) == STRING;
41
41
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
42
42
  const isArray = (thing) => Array.isArray(thing);
43
+ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
43
44
  const test = (regex, subject) => regex.test(subject);
44
45
  const getUndefined = () => void 0;
45
46
 
@@ -60,7 +61,6 @@ const arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);
60
61
  const arrayLength = (array) => array.length;
61
62
  const arrayIsEmpty = (array) => arrayLength(array) == 0;
62
63
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
63
- const arraySlice = (array, start, end) => array.slice(start, end);
64
64
  const arrayClear = (array, to) => array.splice(0, to);
65
65
  const arrayPush = (array, ...values) => array.push(...values);
66
66
  const arrayPop = (array) => array.pop();
@@ -1627,7 +1627,7 @@ const createQueries = getCreateFunction((store) => {
1627
1627
  );
1628
1628
  queries[ADD + RESULT + gettable + LISTENER] = (...args) =>
1629
1629
  resultStore[ADD + gettable + LISTENER](
1630
- ...arraySlice(args, 0, argumentCount),
1630
+ ...slice(args, 0, argumentCount),
1631
1631
  (_store, ...listenerArgs) =>
1632
1632
  args[argumentCount](queries, ...listenerArgs),
1633
1633
  );
@@ -2509,7 +2509,7 @@ const createStore = () => {
2509
2509
  const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));
2510
2510
  const getSortedRowIds = (tableId, cellId, descending, offset = 0, limit) =>
2511
2511
  arrayMap(
2512
- arraySlice(
2512
+ slice(
2513
2513
  arraySort(
2514
2514
  mapMap(mapGet(tablesMap, id(tableId)), (row, rowId) => [
2515
2515
  isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
@@ -2675,16 +2675,16 @@ const createStore = () => {
2675
2675
  } catch {}
2676
2676
  return store;
2677
2677
  };
2678
- const setJson = (tablesAndValuesJson) => {
2679
- try {
2680
- const [tables, values] = jsonParse(tablesAndValuesJson);
2681
- setOrDelTables(tables);
2682
- setOrDelValues(values);
2683
- } catch {
2684
- setTablesJson(tablesAndValuesJson);
2685
- }
2686
- return store;
2687
- };
2678
+ const setJson = (tablesAndValuesJson) =>
2679
+ fluentTransaction(() => {
2680
+ try {
2681
+ const [tables, values] = jsonParse(tablesAndValuesJson);
2682
+ setOrDelTables(tables);
2683
+ setOrDelValues(values);
2684
+ } catch {
2685
+ setTablesJson(tablesAndValuesJson);
2686
+ }
2687
+ });
2688
2688
  const setTablesSchema = (tablesSchema) =>
2689
2689
  fluentTransaction(() => {
2690
2690
  if ((hasTablesSchema = validateTablesSchema(tablesSchema))) {
@@ -3069,7 +3069,7 @@ const createStore = () => {
3069
3069
  addListener(
3070
3070
  args[argumentCount],
3071
3071
  idSetNode[args[argumentCount + 1] ? 1 : 0],
3072
- argumentCount > 0 ? arraySlice(args, 0, argumentCount) : void 0,
3072
+ argumentCount > 0 ? slice(args, 0, argumentCount) : void 0,
3073
3073
  pathGetters,
3074
3074
  extraArgsGetter,
3075
3075
  );
@@ -30,6 +30,7 @@ const isUndefined = (thing) => thing == void 0;
30
30
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
31
31
  const isString = (thing) => getTypeOf(thing) == STRING;
32
32
  const isArray = (thing) => Array.isArray(thing);
33
+ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
33
34
  const promiseAll = async (promises) => promise.all(promises);
34
35
 
35
36
  const getCellOrValueType = (cell) => {
@@ -237,7 +238,6 @@ const setAdd = (set, value) => set?.add(value);
237
238
  const NON_ALPHA = /[^A-Za-z]+/;
238
239
  const NON_ALPHANUMERIC = /[^A-Za-z0-9]+/;
239
240
  const JSDOC = /^( *)\/\*\* *(.*?) *\*\/$/gm;
240
- const substr = (str, start, end) => str.substring(start, end);
241
241
  const stringHasComma = (str) => str.includes(COMMA);
242
242
  const mapUnique = (map, id, value, index = 1) => {
243
243
  const uniqueId = `${id}${index == 1 ? '' : index}`;
@@ -265,8 +265,7 @@ const camel = (str, firstCap = 0) =>
265
265
  arrayMap(
266
266
  str.split(NON_ALPHANUMERIC),
267
267
  (word, w) =>
268
- (w > 0 || firstCap ? upper : lower)(substr(word, 0, 1)) +
269
- substr(word, 1),
268
+ (w > 0 || firstCap ? upper : lower)(slice(word, 0, 1)) + slice(word, 1),
270
269
  ),
271
270
  );
272
271
  const snake = (str) =>
@@ -314,7 +313,7 @@ const getCodeFunctions = () => {
314
313
  mapGet(constants, name) === body ? name : mapUnique(constants, name, body);
315
314
  const getSortableImport = (importMaybeAs) => {
316
315
  const as = importMaybeAs.indexOf(' as ');
317
- return as != -1 ? importMaybeAs.substring(as + 4) : importMaybeAs;
316
+ return as != -1 ? slice(importMaybeAs, as + 4) : importMaybeAs;
318
317
  };
319
318
  const getImports = (location = 0) =>
320
319
  arrayMap(
@@ -79,6 +79,7 @@ const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
79
79
  const isString = (thing) => getTypeOf(thing) == STRING;
80
80
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
81
81
  const isArray = (thing) => Array.isArray(thing);
82
+ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
82
83
  const test = (regex, subject) => regex.test(subject);
83
84
 
84
85
  const {
@@ -116,7 +117,6 @@ const arrayMap = (array, cb) => array.map(cb);
116
117
  const arrayLength = (array) => array.length;
117
118
  const arrayIsEmpty = (array) => arrayLength(array) == 0;
118
119
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
119
- const arraySlice = (array, start, end) => array.slice(start, end);
120
120
  const arrayPush = (array, ...values) => array.push(...values);
121
121
  const arrayShift = (array) => array.shift();
122
122
 
@@ -1037,6 +1037,7 @@ const IndexView = ({indexes, indexesId, indexId, s}) =>
1037
1037
  indexId,
1038
1038
  sliceId,
1039
1039
  s,
1040
+ key: sliceId,
1040
1041
  }),
1041
1042
  ),
1042
1043
  );
@@ -1080,6 +1081,7 @@ const IndexesView = ({indexesId, s}) => {
1080
1081
  indexesId,
1081
1082
  indexId,
1082
1083
  s,
1084
+ key: indexId,
1083
1085
  }),
1084
1086
  ),
1085
1087
  );
@@ -1121,7 +1123,11 @@ const MetricsView = ({metricsId, s}) => {
1121
1123
  'tbody',
1122
1124
  null,
1123
1125
  arrayMap(metricIds, (metricId) =>
1124
- /* @__PURE__ */ createElement(MetricRow, {metrics, metricId}),
1126
+ /* @__PURE__ */ createElement(MetricRow, {
1127
+ metrics,
1128
+ metricId,
1129
+ key: metricId,
1130
+ }),
1125
1131
  ),
1126
1132
  ),
1127
1133
  ),
@@ -1177,6 +1183,7 @@ const QueriesView = ({queriesId, s}) => {
1177
1183
  queriesId,
1178
1184
  queryId,
1179
1185
  s,
1186
+ key: queryId,
1180
1187
  }),
1181
1188
  ),
1182
1189
  );
@@ -1226,6 +1233,7 @@ const RelationshipsView = ({relationshipsId, s}) => {
1226
1233
  relationshipsId,
1227
1234
  relationshipId,
1228
1235
  s,
1236
+ key: relationshipId,
1229
1237
  }),
1230
1238
  ),
1231
1239
  );
@@ -1304,6 +1312,7 @@ const StoreView = ({storeId, s}) => {
1304
1312
  storeId,
1305
1313
  tableId,
1306
1314
  s,
1315
+ key: tableId,
1307
1316
  }),
1308
1317
  ),
1309
1318
  );
@@ -1371,38 +1380,38 @@ const Body = ({s}) => {
1371
1380
  {ref: articleRef, onScroll: handleScroll},
1372
1381
  /* @__PURE__ */ createElement(StoreView, {s}),
1373
1382
  arrayMap(storeIds, (storeId) =>
1374
- /* @__PURE__ */ createElement(StoreView, {storeId, key: storeId, s}),
1383
+ /* @__PURE__ */ createElement(StoreView, {storeId, s, key: storeId}),
1375
1384
  ),
1376
1385
  /* @__PURE__ */ createElement(MetricsView, {s}),
1377
1386
  arrayMap(metricsIds, (metricsId) =>
1378
1387
  /* @__PURE__ */ createElement(MetricsView, {
1379
1388
  metricsId,
1380
- key: metricsId,
1381
1389
  s,
1390
+ key: metricsId,
1382
1391
  }),
1383
1392
  ),
1384
1393
  /* @__PURE__ */ createElement(IndexesView, {s}),
1385
1394
  arrayMap(indexesIds, (indexesId) =>
1386
1395
  /* @__PURE__ */ createElement(IndexesView, {
1387
1396
  indexesId,
1388
- key: indexesId,
1389
1397
  s,
1398
+ key: indexesId,
1390
1399
  }),
1391
1400
  ),
1392
1401
  /* @__PURE__ */ createElement(RelationshipsView, {s}),
1393
1402
  arrayMap(relationshipsIds, (relationshipsId) =>
1394
1403
  /* @__PURE__ */ createElement(RelationshipsView, {
1395
1404
  relationshipsId,
1396
- key: relationshipsId,
1397
1405
  s,
1406
+ key: relationshipsId,
1398
1407
  }),
1399
1408
  ),
1400
1409
  /* @__PURE__ */ createElement(QueriesView, {s}),
1401
1410
  arrayMap(queriesIds, (queriesId) =>
1402
1411
  /* @__PURE__ */ createElement(QueriesView, {
1403
1412
  queriesId,
1404
- key: queriesId,
1405
1413
  s,
1414
+ key: queriesId,
1406
1415
  }),
1407
1416
  ),
1408
1417
  );
@@ -1411,13 +1420,15 @@ const Body = ({s}) => {
1411
1420
  class ErrorBoundary extends PureComponent {
1412
1421
  constructor(props) {
1413
1422
  super(props);
1423
+ // eslint-disable-next-line react/no-arrow-function-lifecycle
1424
+ this.componentDidCatch = (error, info) =>
1425
+ // eslint-disable-next-line no-console
1426
+ console.error(error, info.componentStack);
1414
1427
  this.state = {e: 0};
1415
1428
  }
1416
- static getDerivedStateFromError = () => ({e: 1});
1417
- // eslint-disable-next-line react/no-arrow-function-lifecycle
1418
- componentDidCatch = (error, info) =>
1419
- // eslint-disable-next-line no-console
1420
- console.error(error, info.componentStack);
1429
+ static {
1430
+ this.getDerivedStateFromError = () => ({e: 1});
1431
+ }
1421
1432
  render() {
1422
1433
  return this.state.e
1423
1434
  ? /* @__PURE__ */ createElement(
@@ -2502,7 +2513,7 @@ const createStore = () => {
2502
2513
  const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));
2503
2514
  const getSortedRowIds = (tableId, cellId, descending, offset = 0, limit) =>
2504
2515
  arrayMap(
2505
- arraySlice(
2516
+ slice(
2506
2517
  arraySort(
2507
2518
  mapMap(mapGet(tablesMap, id(tableId)), (row, rowId) => [
2508
2519
  isUndefined(cellId) ? rowId : mapGet(row, id(cellId)),
@@ -2668,16 +2679,16 @@ const createStore = () => {
2668
2679
  } catch {}
2669
2680
  return store;
2670
2681
  };
2671
- const setJson = (tablesAndValuesJson) => {
2672
- try {
2673
- const [tables, values] = jsonParse(tablesAndValuesJson);
2674
- setOrDelTables(tables);
2675
- setOrDelValues(values);
2676
- } catch {
2677
- setTablesJson(tablesAndValuesJson);
2678
- }
2679
- return store;
2680
- };
2682
+ const setJson = (tablesAndValuesJson) =>
2683
+ fluentTransaction(() => {
2684
+ try {
2685
+ const [tables, values] = jsonParse(tablesAndValuesJson);
2686
+ setOrDelTables(tables);
2687
+ setOrDelValues(values);
2688
+ } catch {
2689
+ setTablesJson(tablesAndValuesJson);
2690
+ }
2691
+ });
2681
2692
  const setTablesSchema = (tablesSchema) =>
2682
2693
  fluentTransaction(() => {
2683
2694
  if ((hasTablesSchema = validateTablesSchema(tablesSchema))) {
@@ -3062,7 +3073,7 @@ const createStore = () => {
3062
3073
  addListener(
3063
3074
  args[argumentCount],
3064
3075
  idSetNode[args[argumentCount + 1] ? 1 : 0],
3065
- argumentCount > 0 ? arraySlice(args, 0, argumentCount) : void 0,
3076
+ argumentCount > 0 ? slice(args, 0, argumentCount) : void 0,
3066
3077
  pathGetters,
3067
3078
  extraArgsGetter,
3068
3079
  );
@@ -72,6 +72,11 @@ const useCheckpoints = (id) => useThing(id, 10);
72
72
  const useCheckpointsOrCheckpointsById = (checkpointsOrCheckpointsId) =>
73
73
  useThingOrThingById(checkpointsOrCheckpointsId, 10);
74
74
 
75
+ const lower = (str) => str.toLowerCase();
76
+ lower(LISTENER);
77
+ const TRANSACTION = 'Transaction';
78
+ lower(TRANSACTION);
79
+
75
80
  const {
76
81
  useCallback: useCallback$1,
77
82
  useEffect,
@@ -604,6 +609,35 @@ const useValueListener = (
604
609
  [valueId],
605
610
  mutator,
606
611
  );
612
+ const useStartTransactionListener = (listener, listenerDeps, storeOrStoreId) =>
613
+ useListener(
614
+ 'Start' + TRANSACTION,
615
+ useStoreOrStoreById(storeOrStoreId),
616
+ listener,
617
+ listenerDeps,
618
+ );
619
+ const useWillFinishTransactionListener = (
620
+ listener,
621
+ listenerDeps,
622
+ storeOrStoreId,
623
+ ) =>
624
+ useListener(
625
+ 'WillFinish' + TRANSACTION,
626
+ useStoreOrStoreById(storeOrStoreId),
627
+ listener,
628
+ listenerDeps,
629
+ );
630
+ const useDidFinishTransactionListener = (
631
+ listener,
632
+ listenerDeps,
633
+ storeOrStoreId,
634
+ ) =>
635
+ useListener(
636
+ 'DidFinish' + TRANSACTION,
637
+ useStoreOrStoreById(storeOrStoreId),
638
+ listener,
639
+ listenerDeps,
640
+ );
607
641
  const useCreateMetrics = (store, create, createDeps) =>
608
642
  useCreate(store, create, createDeps);
609
643
  const useMetricsIds = () => useThingIds(3);
@@ -1067,7 +1101,7 @@ const useCreatePersister = (
1067
1101
  return;
1068
1102
  })();
1069
1103
  return () => {
1070
- persister.destroy();
1104
+ persister?.destroy();
1071
1105
  };
1072
1106
  },
1073
1107
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1582,6 +1616,7 @@ export {
1582
1616
  useDelTablesCallback,
1583
1617
  useDelValueCallback,
1584
1618
  useDelValuesCallback,
1619
+ useDidFinishTransactionListener,
1585
1620
  useGoBackwardCallback,
1586
1621
  useGoForwardCallback,
1587
1622
  useGoToCallback,
@@ -1647,6 +1682,7 @@ export {
1647
1682
  useSliceRowIdsListener,
1648
1683
  useSortedRowIds,
1649
1684
  useSortedRowIdsListener,
1685
+ useStartTransactionListener,
1650
1686
  useStore,
1651
1687
  useStoreIds,
1652
1688
  useStoreOrStoreById,
@@ -1665,4 +1701,5 @@ export {
1665
1701
  useValueListener,
1666
1702
  useValues,
1667
1703
  useValuesListener,
1704
+ useWillFinishTransactionListener,
1668
1705
  };
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=setInterval,u=clearInterval,d=(e,n)=>e instanceof n,a=e=>null==e,c=(e,n,l)=>a(e)?null==l?void 0:l():n(e),s=n=>e(n)==t,v=e=>{return n=function*(){return r.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},y=(e,n="")=>e.join(n),f=(e,n)=>e.map(n),E=e=>e.length,h=e=>0==E(e),p=(e,n)=>e.filter(n),m=(e,n,l)=>e.slice(n,l),T=(e,...n)=>e.push(...n),O=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=(e,n)=>null==e?void 0:e.delete(n),P=Object,b=P.keys,w=P.freeze,N=(e=[])=>P.fromEntries(e),R=(...e)=>P.assign({},...e),x=(e,n)=>f(P.entries(e),(([e,l])=>n(l,e))),S=e=>P.values(e),C=e=>E(b(e)),g=e=>(e=>d(e,P)&&e.constructor==P)(e)&&0==C(e),D=e=>new Map(e),I=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),M=(e,n)=>{var l;return f([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},$=(e,n,l)=>a(l)?(L(e,n),e):null==e?void 0:e.set(n,l),j=(e,n,l)=>(O(e,n)||$(e,n,l()),F(e,n)),_=(e,n,l,t=$)=>(x(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)=>c(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),B=e=>new Set(Array.isArray(e)||a(e)?e:[e]),H=(e,n)=>null==e?void 0:e.add(n),W="_",U="_id",k=e=>`"${e.replace(/"/g,'""')}"`;var J=Object.defineProperty,Y=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))z.call(n,l)&&K(e,l,n[l]);if(Y)for(var l of Y(n))G.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 Q="FROM pragma_table_",X="WHERE",Z=(e,n,t)=>{const o=D();return[()=>q(void 0,null,(function*(){return _(o,N(yield v(f(yield e("SELECT name "+Q+"list WHERE schema='main'AND type='table'AND name IN("+ne(n)+")",n),(n=>q(void 0,[n],(function*({name:n}){return[n,N(f(yield e("SELECT name,type "+Q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>$(o,n,_(j(o,n,D),l,((e,n,l)=>{l!=F(e,n)&&$(e,n,l)}),((e,n)=>$(e,n))))),((e,n)=>$(o,n)))})),(n,l)=>q(void 0,null,(function*(){return((e,n)=>!a(F(F(o,e),n)))(n,l)?N(p(f(yield e("SELECT*FROM"+k(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!g(n)))):{}})),(n,t,r,i,u,d=!1)=>q(void 0,null,(function*(){const c=B();x(null!=r?r:{},(e=>f(b(null!=e?e:{}),(e=>H(c,e)))));const s=A(c);if(!d&&u&&h(s)&&O(o,n))return yield e("DROP TABLE"+k(n)),void $(o,n);if(h(s)||O(o,n)){const l=F(o,n),r=B(I(l));yield v([...f(s,(t=>q(void 0,null,(function*(){L(r,t)||(yield e(`ALTER TABLE${k(n)}ADD${k(t)}`),$(l,t,""))})))),...!d&&i?f(A(r),(o=>q(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${k(n)}DROP${k(o)}`),$(l,o))})))):[]])}else yield e(`CREATE TABLE${k(n)}(${k(t)} PRIMARY KEY ON CONFLICT REPLACE${y(f(s,(e=>l+k(e))))});`),$(o,n,D([[t,""],...f(s,(e=>[e,""]))]));if(d)a(r)?yield e("DELETE FROM"+k(n)+"WHERE 1"):yield v(x(r,((l,o)=>q(void 0,null,(function*(){a(l)?yield e("DELETE FROM"+k(n)+X+k(t)+"=?",[o]):h(s)||(yield ee(e,n,t,b(l),[o,...S(l)]))})))));else if(h(s))O(o,n)&&(yield e("DELETE FROM"+k(n)+"WHERE 1"));else{const l=p(I(F(o,n)),(e=>e!=t)),i=[],u=[];x(null!=r?r:{},((e,n)=>{T(i,n,...f(l,(n=>null==e?void 0:e[n]))),T(u,n)})),yield ee(e,n,t,l,i),yield e("DELETE FROM"+k(n)+X+k(t)+"NOT IN("+ne(u)+")",u)}})),n=>q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ee=(e,n,t,r,i)=>q(void 0,null,(function*(){return yield e("INSERT INTO"+k(n)+"("+k(t)+y(f(r,(e=>l+k(e))))+")VALUES"+o(`,(?${o(",?",E(r))})`,E(i)/(E(r)+1)).substring(1)+"ON CONFLICT("+k(t)+")DO UPDATE SET"+y(f(r,(e=>k(e)+"=excluded."+k(e))),l),i)})),ne=e=>y(f(e,(()=>"?")),l),le=JSON.parse;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 oe=D(),re=D(),ie=(e,n,l,t,o,r,i=[])=>{let u,d,s,v=0,y=0;j(oe,i,(()=>0)),j(re,i,(()=>[]));const f=e=>te(void 0,null,(function*(){return 2!=v&&(v=1,yield E.schedule((()=>te(void 0,null,(function*(){yield e(),v=0}))))),E})),E={load:(l,t)=>te(void 0,null,(function*(){return yield f((()=>te(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>te(void 0,[...l],(function*(l={},o={}){return E.stopAutoLoad(),yield E.load(l,o),y=1,s=t(((l,t)=>te(void 0,null,(function*(){if(t){const n=t();yield f((()=>te(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield f((()=>te(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)}}))))})))),E})),stopAutoLoad:()=>(y&&(o(s),s=void 0,y=0),E),save:n=>te(void 0,null,(function*(){return 1!=v&&(v=2,yield E.schedule((()=>te(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}v=0}))))),E})),startAutoSave:()=>te(void 0,null,(function*(){return yield E.stopAutoSave().save(),u=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();g(l)&&g(t)||E.save((()=>[l,t]))})),E})),stopAutoSave:()=>(c(u,e.delListener),E),schedule:(...e)=>te(void 0,null,(function*(){return T(F(re,i),...e),yield te(void 0,null,(function*(){if(!F(oe,i)){for($(oe,i,1);!a((e=F(re,i),d=e.shift()));)try{yield d()}catch(e){null==r||r(e)}$(oe,i,0)}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(E)};var ue=(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="store",ae=(e,n,l,t,o,[r],i,u)=>{const[a,c,s,v]=Z(n,i,o);return ie(e,(()=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var e,n;return yield a(),le(null!=(n=null==(e=(yield c(r,U))[W])?void 0:e[de])?n:"null")}))))}))),(e=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var n,l;yield a(),yield s(r,U,{[W]:{[de]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>d(n,Map)?P.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,u)};var ce=(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 se=(e,n,l,t,o,[r,i,[u,d,c]],s,y)=>{const[f,E,h,m]=Z(n,s,o),T=(e,n)=>ce(void 0,null,(function*(){return yield v(M(i,((l,t)=>ce(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield h(l,t,u,o,r,n))})))))})),O=(e,n)=>ce(void 0,null,(function*(){return d?yield h(c,U,{[W]:e},!0,!0,n):null}));return ie(e,(()=>ce(void 0,null,(function*(){return yield m((()=>ce(void 0,null,(function*(){yield f();const e=yield ce(void 0,null,(function*(){return N(p(yield v(M(r,((e,n)=>ce(void 0,[e,n],(function*([e,n],l){return[e,yield E(l,n)]}))))),(e=>!g(e[1]))))})),n=yield ce(void 0,null,(function*(){return u?(yield E(c,U))[W]:{}}));return g(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>ce(void 0,null,(function*(){return yield m((()=>ce(void 0,null,(function*(){if(yield f(),a(n)){const[n,l]=e();yield T(n),yield O(l)}else{const[e,l]=n();yield T(e,!0),yield O(l,!0)}}))))}))),l,t,o,y)},ve="json",ye="autoLoadIntervalSeconds",fe="rowIdColumnName",Ee="tableId",he="tableName",pe={mode:ve,[ye]:1},me={load:0,save:0,[he]:n+"_values"},Te=(e,n,l,t)=>{const o=D();return x(e,((e,r)=>{const i=m(S(R(n,s(e)?{[l]:e}:e)),0,C(n));a(i[0])||t(r,i[0])||$(o,r,i)})),o};var Oe=(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="pragma ",Le="data_version",Pe="schema_version",be=(e,l,t,o,r,d,a,c)=>{let v,y;const[f,E,h,p]=(e=>{const l=(e=>R(pe,s(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[ye];if(l.mode==ve){const{storeTableName:e=n}=l;return[1,t,[e],B(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=m(S(R(me,i)),0,C(me)),d=u[2],a=B(d);return[0,t,[Te(o,{[Ee]:null,[fe]:U},Ee,(e=>H(a,e)&&e==d)),Te(r,{[he]:null,[fe]:U,deleteEmptyColumns:0,deleteEmptyTable:0},he,((e,n)=>H(a,n)&&n==d)),u],a]})(l);return(f?ae:se)(e,d?(e,n)=>Oe(void 0,null,(function*(){return d(e,n),yield t(e,n)})):t,(e=>[i((()=>Oe(void 0,null,(function*(){try{const n=(yield t(Ae+Le))[0][Le],l=(yield t(Ae+Pe))[0][Pe];n==(null!=v?v:v=n)&&l==(null!=y?y:y=l)||(e(),v=n,y=l)}catch(e){}}))),1e3*E),o((n=>p.has(n)?e():0))]),(([e,n])=>{u(e),v=y=null,r(n)}),a,h,A(p),c)},we=(e,n,l,t,o)=>be(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{we as createCrSqliteWasmPersister};
1
+ const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=setInterval,u=clearInterval,d=(e,n)=>e instanceof n,a=e=>null==e,c=(e,n,l)=>a(e)?null==l?void 0:l():n(e),s=n=>e(n)==t,v=(e,n,l)=>e.slice(n,l),y=e=>{return n=function*(){return r.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),E=(e,n)=>e.map(n),h=e=>e.length,p=e=>0==h(e),m=(e,n)=>e.filter(n),T=(e,...n)=>e.push(...n),O=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=(e,n)=>null==e?void 0:e.delete(n),P=Object,w=P.keys,b=P.freeze,N=(e=[])=>P.fromEntries(e),R=(...e)=>P.assign({},...e),x=(e,n)=>E(P.entries(e),(([e,l])=>n(l,e))),S=e=>P.values(e),C=e=>h(w(e)),D=e=>(e=>d(e,P)&&e.constructor==P)(e)&&0==C(e),I=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),M=(e,n)=>{var l;return E([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},$=(e,n,l)=>a(l)?(L(e,n),e):null==e?void 0:e.set(n,l),j=(e,n,l)=>(O(e,n)||$(e,n,l()),F(e,n)),_=(e,n,l,t=$)=>(x(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)=>c(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),B=e=>new Set(Array.isArray(e)||a(e)?e:[e]),H=(e,n)=>null==e?void 0:e.add(n),W="_",U="_id",k=e=>`"${e.replace(/"/g,'""')}"`;var J=Object.defineProperty,Y=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))z.call(n,l)&&K(e,l,n[l]);if(Y)for(var l of Y(n))G.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 Q="FROM pragma_table_",X="WHERE",Z=(e,n,t)=>{const o=I();return[()=>q(void 0,null,(function*(){return _(o,N(yield y(E(yield e("SELECT name "+Q+"list WHERE schema='main'AND type='table'AND name IN("+ne(n)+")",n),(n=>q(void 0,[n],(function*({name:n}){return[n,N(E(yield e("SELECT name,type "+Q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>$(o,n,_(j(o,n,I),l,((e,n,l)=>{l!=F(e,n)&&$(e,n,l)}),((e,n)=>$(e,n))))),((e,n)=>$(o,n)))})),(n,l)=>q(void 0,null,(function*(){return((e,n)=>!a(F(F(o,e),n)))(n,l)?N(m(E(yield e("SELECT*FROM"+k(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!D(n)))):{}})),(n,t,r,i,u,d=!1)=>q(void 0,null,(function*(){const c=B();x(null!=r?r:{},(e=>E(w(null!=e?e:{}),(e=>H(c,e)))));const s=A(c);if(!d&&u&&p(s)&&O(o,n))return yield e("DROP TABLE"+k(n)),void $(o,n);if(p(s)||O(o,n)){const l=F(o,n),r=B(g(l));yield y([...E(s,(t=>q(void 0,null,(function*(){L(r,t)||(yield e(`ALTER TABLE${k(n)}ADD${k(t)}`),$(l,t,""))})))),...!d&&i?E(A(r),(o=>q(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${k(n)}DROP${k(o)}`),$(l,o))})))):[]])}else yield e(`CREATE TABLE${k(n)}(${k(t)} PRIMARY KEY ON CONFLICT REPLACE${f(E(s,(e=>l+k(e))))});`),$(o,n,I([[t,""],...E(s,(e=>[e,""]))]));if(d)a(r)?yield e("DELETE FROM"+k(n)+"WHERE 1"):yield y(x(r,((l,o)=>q(void 0,null,(function*(){a(l)?yield e("DELETE FROM"+k(n)+X+k(t)+"=?",[o]):p(s)||(yield ee(e,n,t,w(l),[o,...S(l)]))})))));else if(p(s))O(o,n)&&(yield e("DELETE FROM"+k(n)+"WHERE 1"));else{const l=m(g(F(o,n)),(e=>e!=t)),i=[],u=[];x(null!=r?r:{},((e,n)=>{T(i,n,...E(l,(n=>null==e?void 0:e[n]))),T(u,n)})),yield ee(e,n,t,l,i),yield e("DELETE FROM"+k(n)+X+k(t)+"NOT IN("+ne(u)+")",u)}})),n=>q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ee=(e,n,t,r,i)=>q(void 0,null,(function*(){return yield e("INSERT INTO"+k(n)+"("+k(t)+f(E(r,(e=>l+k(e))))+")VALUES"+v(o(`,(?${o(",?",h(r))})`,h(i)/(h(r)+1)),1)+"ON CONFLICT("+k(t)+")DO UPDATE SET"+f(E(r,(e=>k(e)+"=excluded."+k(e))),l),i)})),ne=e=>f(E(e,(()=>"?")),l),le=JSON.parse;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 oe=I(),re=I(),ie=(e,n,l,t,o,r,i=[])=>{let u,d,s,v=0,y=0;j(oe,i,(()=>0)),j(re,i,(()=>[]));const f=e=>te(void 0,null,(function*(){return 2!=v&&(v=1,yield E.schedule((()=>te(void 0,null,(function*(){yield e(),v=0}))))),E})),E={load:(l,t)=>te(void 0,null,(function*(){return yield f((()=>te(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>te(void 0,[...l],(function*(l={},o={}){return E.stopAutoLoad(),yield E.load(l,o),y=1,s=t(((l,t)=>te(void 0,null,(function*(){if(t){const n=t();yield f((()=>te(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield f((()=>te(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)}}))))})))),E})),stopAutoLoad:()=>(y&&(o(s),s=void 0,y=0),E),save:n=>te(void 0,null,(function*(){return 1!=v&&(v=2,yield E.schedule((()=>te(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}v=0}))))),E})),startAutoSave:()=>te(void 0,null,(function*(){return yield E.stopAutoSave().save(),u=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();D(l)&&D(t)||E.save((()=>[l,t]))})),E})),stopAutoSave:()=>(c(u,e.delListener),E),schedule:(...e)=>te(void 0,null,(function*(){return T(F(re,i),...e),yield te(void 0,null,(function*(){if(!F(oe,i)){for($(oe,i,1);!a((e=F(re,i),d=e.shift()));)try{yield d()}catch(e){null==r||r(e)}$(oe,i,0)}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return b(E)};var ue=(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="store",ae=(e,n,l,t,o,[r],i,u)=>{const[a,c,s,v]=Z(n,i,o);return ie(e,(()=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var e,n;return yield a(),le(null!=(n=null==(e=(yield c(r,U))[W])?void 0:e[de])?n:"null")}))))}))),(e=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var n,l;yield a(),yield s(r,U,{[W]:{[de]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>d(n,Map)?P.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,u)};var ce=(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 se=(e,n,l,t,o,[r,i,[u,d,c]],s,v)=>{const[f,E,h,p]=Z(n,s,o),T=(e,n)=>ce(void 0,null,(function*(){return yield y(M(i,((l,t)=>ce(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield h(l,t,u,o,r,n))})))))})),O=(e,n)=>ce(void 0,null,(function*(){return d?yield h(c,U,{[W]:e},!0,!0,n):null}));return ie(e,(()=>ce(void 0,null,(function*(){return yield p((()=>ce(void 0,null,(function*(){yield f();const e=yield ce(void 0,null,(function*(){return N(m(yield y(M(r,((e,n)=>ce(void 0,[e,n],(function*([e,n],l){return[e,yield E(l,n)]}))))),(e=>!D(e[1]))))})),n=yield ce(void 0,null,(function*(){return u?(yield E(c,U))[W]:{}}));return D(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>ce(void 0,null,(function*(){return yield p((()=>ce(void 0,null,(function*(){if(yield f(),a(n)){const[n,l]=e();yield T(n),yield O(l)}else{const[e,l]=n();yield T(e,!0),yield O(l,!0)}}))))}))),l,t,o,v)},ve="json",ye="autoLoadIntervalSeconds",fe="rowIdColumnName",Ee="tableId",he="tableName",pe={mode:ve,[ye]:1},me={load:0,save:0,[he]:n+"_values"},Te=(e,n,l,t)=>{const o=I();return x(e,((e,r)=>{const i=v(S(R(n,s(e)?{[l]:e}:e)),0,C(n));a(i[0])||t(r,i[0])||$(o,r,i)})),o};var Oe=(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="pragma ",Le="data_version",Pe="schema_version",we=(e,l,t,o,r,d,a,c)=>{let y,f;const[E,h,p,m]=(e=>{const l=(e=>R(pe,s(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[ye];if(l.mode==ve){const{storeTableName:e=n}=l;return[1,t,[e],B(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=v(S(R(me,i)),0,C(me)),d=u[2],a=B(d);return[0,t,[Te(o,{[Ee]:null,[fe]:U},Ee,(e=>H(a,e)&&e==d)),Te(r,{[he]:null,[fe]:U,deleteEmptyColumns:0,deleteEmptyTable:0},he,((e,n)=>H(a,n)&&n==d)),u],a]})(l);return(E?ae:se)(e,d?(e,n)=>Oe(void 0,null,(function*(){return d(e,n),yield t(e,n)})):t,(e=>[i((()=>Oe(void 0,null,(function*(){try{const n=(yield t(Ae+Le))[0][Le],l=(yield t(Ae+Pe))[0][Pe];n==(null!=y?y:y=n)&&l==(null!=f?f:f=l)||(e(),y=n,f=l)}catch(e){}}))),1e3*h),o((n=>m.has(n)?e():0))]),(([e,n])=>{u(e),y=f=null,r(n)}),a,p,A(m),c)},be=(e,n,l,t,o)=>we(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{be as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=setInterval,u=clearInterval,a=(e,n)=>e instanceof n,d=e=>null==e,c=(e,n,l)=>d(e)?null==l?void 0:l():n(e),s=n=>e(n)==t,v=e=>{return n=function*(){return r.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},y=(e,n="")=>e.join(n),f=(e,n)=>e.map(n),h=e=>e.length,E=e=>0==h(e),p=(e,n)=>e.filter(n),m=(e,n,l)=>e.slice(n,l),T=(e,...n)=>e.push(...n),A=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},L=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},O=(e,n)=>null==e?void 0:e.delete(n),P=Object,b=P.keys,w=P.freeze,N=(e=[])=>P.fromEntries(e),R=(...e)=>P.assign({},...e),x=(e,n)=>f(P.entries(e),(([e,l])=>n(l,e))),C=e=>P.values(e),S=e=>h(b(e)),g=e=>(e=>a(e,P)&&e.constructor==P)(e)&&0==S(e),D=e=>new Map(e),I=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),M=(e,n)=>{var l;return f([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},$=(e,n,l)=>d(l)?(O(e,n),e):null==e?void 0:e.set(n,l),j=(e,n,l)=>(A(e,n)||$(e,n,l()),F(e,n)),_=(e,n,l,t=$)=>(x(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)=>c(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),B=e=>new Set(Array.isArray(e)||d(e)?e:[e]),H=(e,n)=>null==e?void 0:e.add(n),W="_",k="_id",J=e=>`"${e.replace(/"/g,'""')}"`;var U=Object.defineProperty,Y=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,G=(e,n,l)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,K=(e,n)=>{for(var l in n||(n={}))q.call(n,l)&&G(e,l,n[l]);if(Y)for(var l of Y(n))z.call(n,l)&&G(e,l,n[l]);return e},V=(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 Q="FROM pragma_table_",X="WHERE",Z=(e,n,t)=>{const o=D();return[()=>V(void 0,null,(function*(){return _(o,N(yield v(f(yield e("SELECT name "+Q+"list WHERE schema='main'AND type='table'AND name IN("+ne(n)+")",n),(n=>V(void 0,[n],(function*({name:n}){return[n,N(f(yield e("SELECT name,type "+Q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>$(o,n,_(j(o,n,D),l,((e,n,l)=>{l!=F(e,n)&&$(e,n,l)}),((e,n)=>$(e,n))))),((e,n)=>$(o,n)))})),(n,l)=>V(void 0,null,(function*(){return((e,n)=>!d(F(F(o,e),n)))(n,l)?N(p(f(yield e("SELECT*FROM"+J(n)),(e=>{return[e[l],(n=K({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!d(e)&&!g(n)))):{}})),(n,t,r,i,u,a=!1)=>V(void 0,null,(function*(){const c=B();x(null!=r?r:{},(e=>f(b(null!=e?e:{}),(e=>H(c,e)))));const s=L(c);if(!a&&u&&E(s)&&A(o,n))return yield e("DROP TABLE"+J(n)),void $(o,n);if(E(s)||A(o,n)){const l=F(o,n),r=B(I(l));yield v([...f(s,(t=>V(void 0,null,(function*(){O(r,t)||(yield e(`ALTER TABLE${J(n)}ADD${J(t)}`),$(l,t,""))})))),...!a&&i?f(L(r),(o=>V(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${J(n)}DROP${J(o)}`),$(l,o))})))):[]])}else yield e(`CREATE TABLE${J(n)}(${J(t)} PRIMARY KEY ON CONFLICT REPLACE${y(f(s,(e=>l+J(e))))});`),$(o,n,D([[t,""],...f(s,(e=>[e,""]))]));if(a)d(r)?yield e("DELETE FROM"+J(n)+"WHERE 1"):yield v(x(r,((l,o)=>V(void 0,null,(function*(){d(l)?yield e("DELETE FROM"+J(n)+X+J(t)+"=?",[o]):E(s)||(yield ee(e,n,t,b(l),[o,...C(l)]))})))));else if(E(s))A(o,n)&&(yield e("DELETE FROM"+J(n)+"WHERE 1"));else{const l=p(I(F(o,n)),(e=>e!=t)),i=[],u=[];x(null!=r?r:{},((e,n)=>{T(i,n,...f(l,(n=>null==e?void 0:e[n]))),T(u,n)})),yield ee(e,n,t,l,i),yield e("DELETE FROM"+J(n)+X+J(t)+"NOT IN("+ne(u)+")",u)}})),n=>V(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ee=(e,n,t,r,i)=>V(void 0,null,(function*(){return yield e("INSERT INTO"+J(n)+"("+J(t)+y(f(r,(e=>l+J(e))))+")VALUES"+o(`,(?${o(",?",h(r))})`,h(i)/(h(r)+1)).substring(1)+"ON CONFLICT("+J(t)+")DO UPDATE SET"+y(f(r,(e=>J(e)+"=excluded."+J(e))),l),i)})),ne=e=>y(f(e,(()=>"?")),l),le=JSON.parse;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 oe=D(),re=D(),ie=(e,n,l,t,o,r,i=[])=>{let u,a,s,v=0,y=0;j(oe,i,(()=>0)),j(re,i,(()=>[]));const f=e=>te(void 0,null,(function*(){return 2!=v&&(v=1,yield h.schedule((()=>te(void 0,null,(function*(){yield e(),v=0}))))),h})),h={load:(l,t)=>te(void 0,null,(function*(){return yield f((()=>te(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>te(void 0,[...l],(function*(l={},o={}){return h.stopAutoLoad(),yield h.load(l,o),y=1,s=t(((l,t)=>te(void 0,null,(function*(){if(t){const n=t();yield f((()=>te(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield f((()=>te(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)}}))))})))),h})),stopAutoLoad:()=>(y&&(o(s),s=void 0,y=0),h),save:n=>te(void 0,null,(function*(){return 1!=v&&(v=2,yield h.schedule((()=>te(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}v=0}))))),h})),startAutoSave:()=>te(void 0,null,(function*(){return yield h.stopAutoSave().save(),u=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();g(l)&&g(t)||h.save((()=>[l,t]))})),h})),stopAutoSave:()=>(c(u,e.delListener),h),schedule:(...e)=>te(void 0,null,(function*(){return T(F(re,i),...e),yield te(void 0,null,(function*(){if(!F(oe,i)){for($(oe,i,1);!d((e=F(re,i),a=e.shift()));)try{yield a()}catch(e){null==r||r(e)}$(oe,i,0)}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(h)};var ue=(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="store",de=(e,n,l,t,o,[r],i,u)=>{const[d,c,s,v]=Z(n,i,o);return ie(e,(()=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var e,n;return yield d(),le(null!=(n=null==(e=(yield c(r,k))[W])?void 0:e[ae])?n:"null")}))))}))),(e=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var n,l;yield d(),yield s(r,k,{[W]:{[ae]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>a(n,Map)?P.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,u)};var ce=(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 se=(e,n,l,t,o,[r,i,[u,a,c]],s,y)=>{const[f,h,E,m]=Z(n,s,o),T=(e,n)=>ce(void 0,null,(function*(){return yield v(M(i,((l,t)=>ce(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield E(l,t,u,o,r,n))})))))})),A=(e,n)=>ce(void 0,null,(function*(){return a?yield E(c,k,{[W]:e},!0,!0,n):null}));return ie(e,(()=>ce(void 0,null,(function*(){return yield m((()=>ce(void 0,null,(function*(){yield f();const e=yield ce(void 0,null,(function*(){return N(p(yield v(M(r,((e,n)=>ce(void 0,[e,n],(function*([e,n],l){return[e,yield h(l,n)]}))))),(e=>!g(e[1]))))})),n=yield ce(void 0,null,(function*(){return u?(yield h(c,k))[W]:{}}));return g(e)&&d(n)?void 0:[e,n]}))))}))),((e,n)=>ce(void 0,null,(function*(){return yield m((()=>ce(void 0,null,(function*(){if(yield f(),d(n)){const[n,l]=e();yield T(n),yield A(l)}else{const[e,l]=n();yield T(e,!0),yield A(l,!0)}}))))}))),l,t,o,y)},ve="json",ye="autoLoadIntervalSeconds",fe="rowIdColumnName",he="tableId",Ee="tableName",pe={mode:ve,[ye]:1},me={load:0,save:0,[Ee]:n+"_values"},Te=(e,n,l,t)=>{const o=D();return x(e,((e,r)=>{const i=m(C(R(n,s(e)?{[l]:e}:e)),0,S(n));d(i[0])||t(r,i[0])||$(o,r,i)})),o};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 Le="pragma ",Oe="data_version",Pe="schema_version",be=(e,l,t,o,r,a,d,c)=>{let v,y;const[f,h,E,p]=(e=>{const l=(e=>R(pe,s(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[ye];if(l.mode==ve){const{storeTableName:e=n}=l;return[1,t,[e],B(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=m(C(R(me,i)),0,S(me)),a=u[2],d=B(a);return[0,t,[Te(o,{[he]:null,[fe]:k},he,(e=>H(d,e)&&e==a)),Te(r,{[Ee]:null,[fe]:k,deleteEmptyColumns:0,deleteEmptyTable:0},Ee,((e,n)=>H(d,n)&&n==a)),u],d]})(l);return(f?de:se)(e,a?(e,n)=>Ae(void 0,null,(function*(){return a(e,n),yield t(e,n)})):t,(e=>[i((()=>Ae(void 0,null,(function*(){try{const n=(yield t(Le+Oe))[0][Oe],l=(yield t(Le+Pe))[0][Pe];n==(null!=v?v:v=n)&&l==(null!=y?y:y=l)||(e(),v=n,y=l)}catch(e){}}))),1e3*h),o((n=>p.has(n)?e():0))]),(([e,n])=>{u(e),v=y=null,r(n)}),d,E,L(p),c)},we=(e,n,l,t,o)=>be(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return(yield n.execAsync([{sql:e,args:l}],!1))[0].rows},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.onDatabaseChange((({tableName:n})=>e(n)))),(e=>e.remove()),t,o,n);export{we as createExpoSqlitePersister};
1
+ const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=setInterval,u=clearInterval,a=(e,n)=>e instanceof n,d=e=>null==e,c=(e,n,l)=>d(e)?null==l?void 0:l():n(e),s=n=>e(n)==t,v=(e,n,l)=>e.slice(n,l),y=e=>{return n=function*(){return r.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),E=e=>e.length,p=e=>0==E(e),m=(e,n)=>e.filter(n),T=(e,...n)=>e.push(...n),A=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},L=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},O=(e,n)=>null==e?void 0:e.delete(n),P=Object,b=P.keys,w=P.freeze,N=(e=[])=>P.fromEntries(e),R=(...e)=>P.assign({},...e),x=(e,n)=>h(P.entries(e),(([e,l])=>n(l,e))),C=e=>P.values(e),S=e=>E(b(e)),g=e=>(e=>a(e,P)&&e.constructor==P)(e)&&0==S(e),D=e=>new Map(e),I=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),M=(e,n)=>{var l;return h([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},$=(e,n,l)=>d(l)?(O(e,n),e):null==e?void 0:e.set(n,l),j=(e,n,l)=>(A(e,n)||$(e,n,l()),F(e,n)),_=(e,n,l,t=$)=>(x(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)=>c(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),B=e=>new Set(Array.isArray(e)||d(e)?e:[e]),H=(e,n)=>null==e?void 0:e.add(n),W="_",k="_id",J=e=>`"${e.replace(/"/g,'""')}"`;var U=Object.defineProperty,Y=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,G=(e,n,l)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,K=(e,n)=>{for(var l in n||(n={}))q.call(n,l)&&G(e,l,n[l]);if(Y)for(var l of Y(n))z.call(n,l)&&G(e,l,n[l]);return e},V=(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 Q="FROM pragma_table_",X="WHERE",Z=(e,n,t)=>{const o=D();return[()=>V(void 0,null,(function*(){return _(o,N(yield y(h(yield e("SELECT name "+Q+"list WHERE schema='main'AND type='table'AND name IN("+ne(n)+")",n),(n=>V(void 0,[n],(function*({name:n}){return[n,N(h(yield e("SELECT name,type "+Q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>$(o,n,_(j(o,n,D),l,((e,n,l)=>{l!=F(e,n)&&$(e,n,l)}),((e,n)=>$(e,n))))),((e,n)=>$(o,n)))})),(n,l)=>V(void 0,null,(function*(){return((e,n)=>!d(F(F(o,e),n)))(n,l)?N(m(h(yield e("SELECT*FROM"+J(n)),(e=>{return[e[l],(n=K({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!d(e)&&!g(n)))):{}})),(n,t,r,i,u,a=!1)=>V(void 0,null,(function*(){const c=B();x(null!=r?r:{},(e=>h(b(null!=e?e:{}),(e=>H(c,e)))));const s=L(c);if(!a&&u&&p(s)&&A(o,n))return yield e("DROP TABLE"+J(n)),void $(o,n);if(p(s)||A(o,n)){const l=F(o,n),r=B(I(l));yield y([...h(s,(t=>V(void 0,null,(function*(){O(r,t)||(yield e(`ALTER TABLE${J(n)}ADD${J(t)}`),$(l,t,""))})))),...!a&&i?h(L(r),(o=>V(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${J(n)}DROP${J(o)}`),$(l,o))})))):[]])}else yield e(`CREATE TABLE${J(n)}(${J(t)} PRIMARY KEY ON CONFLICT REPLACE${f(h(s,(e=>l+J(e))))});`),$(o,n,D([[t,""],...h(s,(e=>[e,""]))]));if(a)d(r)?yield e("DELETE FROM"+J(n)+"WHERE 1"):yield y(x(r,((l,o)=>V(void 0,null,(function*(){d(l)?yield e("DELETE FROM"+J(n)+X+J(t)+"=?",[o]):p(s)||(yield ee(e,n,t,b(l),[o,...C(l)]))})))));else if(p(s))A(o,n)&&(yield e("DELETE FROM"+J(n)+"WHERE 1"));else{const l=m(I(F(o,n)),(e=>e!=t)),i=[],u=[];x(null!=r?r:{},((e,n)=>{T(i,n,...h(l,(n=>null==e?void 0:e[n]))),T(u,n)})),yield ee(e,n,t,l,i),yield e("DELETE FROM"+J(n)+X+J(t)+"NOT IN("+ne(u)+")",u)}})),n=>V(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ee=(e,n,t,r,i)=>V(void 0,null,(function*(){return yield e("INSERT INTO"+J(n)+"("+J(t)+f(h(r,(e=>l+J(e))))+")VALUES"+v(o(`,(?${o(",?",E(r))})`,E(i)/(E(r)+1)),1)+"ON CONFLICT("+J(t)+")DO UPDATE SET"+f(h(r,(e=>J(e)+"=excluded."+J(e))),l),i)})),ne=e=>f(h(e,(()=>"?")),l),le=JSON.parse;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 oe=D(),re=D(),ie=(e,n,l,t,o,r,i=[])=>{let u,a,s,v=0,y=0;j(oe,i,(()=>0)),j(re,i,(()=>[]));const f=e=>te(void 0,null,(function*(){return 2!=v&&(v=1,yield h.schedule((()=>te(void 0,null,(function*(){yield e(),v=0}))))),h})),h={load:(l,t)=>te(void 0,null,(function*(){return yield f((()=>te(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>te(void 0,[...l],(function*(l={},o={}){return h.stopAutoLoad(),yield h.load(l,o),y=1,s=t(((l,t)=>te(void 0,null,(function*(){if(t){const n=t();yield f((()=>te(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield f((()=>te(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)}}))))})))),h})),stopAutoLoad:()=>(y&&(o(s),s=void 0,y=0),h),save:n=>te(void 0,null,(function*(){return 1!=v&&(v=2,yield h.schedule((()=>te(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}v=0}))))),h})),startAutoSave:()=>te(void 0,null,(function*(){return yield h.stopAutoSave().save(),u=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();g(l)&&g(t)||h.save((()=>[l,t]))})),h})),stopAutoSave:()=>(c(u,e.delListener),h),schedule:(...e)=>te(void 0,null,(function*(){return T(F(re,i),...e),yield te(void 0,null,(function*(){if(!F(oe,i)){for($(oe,i,1);!d((e=F(re,i),a=e.shift()));)try{yield a()}catch(e){null==r||r(e)}$(oe,i,0)}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(h)};var ue=(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="store",de=(e,n,l,t,o,[r],i,u)=>{const[d,c,s,v]=Z(n,i,o);return ie(e,(()=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var e,n;return yield d(),le(null!=(n=null==(e=(yield c(r,k))[W])?void 0:e[ae])?n:"null")}))))}))),(e=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var n,l;yield d(),yield s(r,k,{[W]:{[ae]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>a(n,Map)?P.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,u)};var ce=(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 se=(e,n,l,t,o,[r,i,[u,a,c]],s,v)=>{const[f,h,E,p]=Z(n,s,o),T=(e,n)=>ce(void 0,null,(function*(){return yield y(M(i,((l,t)=>ce(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield E(l,t,u,o,r,n))})))))})),A=(e,n)=>ce(void 0,null,(function*(){return a?yield E(c,k,{[W]:e},!0,!0,n):null}));return ie(e,(()=>ce(void 0,null,(function*(){return yield p((()=>ce(void 0,null,(function*(){yield f();const e=yield ce(void 0,null,(function*(){return N(m(yield y(M(r,((e,n)=>ce(void 0,[e,n],(function*([e,n],l){return[e,yield h(l,n)]}))))),(e=>!g(e[1]))))})),n=yield ce(void 0,null,(function*(){return u?(yield h(c,k))[W]:{}}));return g(e)&&d(n)?void 0:[e,n]}))))}))),((e,n)=>ce(void 0,null,(function*(){return yield p((()=>ce(void 0,null,(function*(){if(yield f(),d(n)){const[n,l]=e();yield T(n),yield A(l)}else{const[e,l]=n();yield T(e,!0),yield A(l,!0)}}))))}))),l,t,o,v)},ve="json",ye="autoLoadIntervalSeconds",fe="rowIdColumnName",he="tableId",Ee="tableName",pe={mode:ve,[ye]:1},me={load:0,save:0,[Ee]:n+"_values"},Te=(e,n,l,t)=>{const o=D();return x(e,((e,r)=>{const i=v(C(R(n,s(e)?{[l]:e}:e)),0,S(n));d(i[0])||t(r,i[0])||$(o,r,i)})),o};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 Le="pragma ",Oe="data_version",Pe="schema_version",be=(e,l,t,o,r,a,d,c)=>{let y,f;const[h,E,p,m]=(e=>{const l=(e=>R(pe,s(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[ye];if(l.mode==ve){const{storeTableName:e=n}=l;return[1,t,[e],B(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=v(C(R(me,i)),0,S(me)),a=u[2],d=B(a);return[0,t,[Te(o,{[he]:null,[fe]:k},he,(e=>H(d,e)&&e==a)),Te(r,{[Ee]:null,[fe]:k,deleteEmptyColumns:0,deleteEmptyTable:0},Ee,((e,n)=>H(d,n)&&n==a)),u],d]})(l);return(h?de:se)(e,a?(e,n)=>Ae(void 0,null,(function*(){return a(e,n),yield t(e,n)})):t,(e=>[i((()=>Ae(void 0,null,(function*(){try{const n=(yield t(Le+Oe))[0][Oe],l=(yield t(Le+Pe))[0][Pe];n==(null!=y?y:y=n)&&l==(null!=f?f:f=l)||(e(),y=n,f=l)}catch(e){}}))),1e3*E),o((n=>m.has(n)?e():0))]),(([e,n])=>{u(e),y=f=null,r(n)}),d,p,L(m),c)},we=(e,n,l,t,o)=>be(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return(yield n.execAsync([{sql:e,args:l}],!1))[0].rows},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.onDatabaseChange((({tableName:n})=>e(n)))),(e=>e.remove()),t,o,n);export{we as createExpoSqlitePersister};