tinybase 4.0.3 → 4.0.4

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 (165) hide show
  1. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  2. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  4. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  6. package/lib/cjs/persisters/persister-cr-sqlite-wasm.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-file.cjs +1 -1
  10. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  12. package/lib/cjs/persisters/persister-remote.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/persisters/persister-yjs.cjs +1 -1
  18. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  19. package/lib/cjs/persisters.cjs +1 -1
  20. package/lib/cjs/persisters.cjs.gz +0 -0
  21. package/lib/cjs/tinybase.cjs +1 -1
  22. package/lib/cjs/tinybase.cjs.gz +0 -0
  23. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  24. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  28. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  30. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  32. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  34. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  36. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  38. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  40. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  41. package/lib/cjs-es6/persisters.cjs +1 -1
  42. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  43. package/lib/cjs-es6/tinybase.cjs +1 -1
  44. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  45. package/lib/debug/persisters/persister-automerge.js +56 -18
  46. package/lib/debug/persisters/persister-browser.js +55 -22
  47. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +106 -62
  48. package/lib/debug/persisters/persister-expo-sqlite.js +111 -62
  49. package/lib/debug/persisters/persister-file.js +51 -18
  50. package/lib/debug/persisters/persister-remote.js +51 -17
  51. package/lib/debug/persisters/persister-sqlite-wasm.js +106 -62
  52. package/lib/debug/persisters/persister-sqlite3.js +111 -62
  53. package/lib/debug/persisters/persister-yjs.js +63 -27
  54. package/lib/debug/persisters.js +49 -17
  55. package/lib/debug/tinybase.js +35 -17
  56. package/lib/es6/persisters/persister-automerge.js +1 -1
  57. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  58. package/lib/es6/persisters/persister-browser.js +1 -1
  59. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  60. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  61. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  62. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  63. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  64. package/lib/es6/persisters/persister-file.js +1 -1
  65. package/lib/es6/persisters/persister-file.js.gz +0 -0
  66. package/lib/es6/persisters/persister-remote.js +1 -1
  67. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  68. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  69. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  70. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  71. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  72. package/lib/es6/persisters/persister-yjs.js +1 -1
  73. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  74. package/lib/es6/persisters.js +1 -1
  75. package/lib/es6/persisters.js.gz +0 -0
  76. package/lib/es6/tinybase.js +1 -1
  77. package/lib/es6/tinybase.js.gz +0 -0
  78. package/lib/persisters/persister-automerge.js +1 -1
  79. package/lib/persisters/persister-automerge.js.gz +0 -0
  80. package/lib/persisters/persister-browser.js +1 -1
  81. package/lib/persisters/persister-browser.js.gz +0 -0
  82. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  83. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  84. package/lib/persisters/persister-expo-sqlite.js +1 -1
  85. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  86. package/lib/persisters/persister-file.js +1 -1
  87. package/lib/persisters/persister-file.js.gz +0 -0
  88. package/lib/persisters/persister-remote.js +1 -1
  89. package/lib/persisters/persister-remote.js.gz +0 -0
  90. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  91. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  92. package/lib/persisters/persister-sqlite3.js +1 -1
  93. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  94. package/lib/persisters/persister-yjs.js +1 -1
  95. package/lib/persisters/persister-yjs.js.gz +0 -0
  96. package/lib/persisters.js +1 -1
  97. package/lib/persisters.js.gz +0 -0
  98. package/lib/tinybase.js +1 -1
  99. package/lib/tinybase.js.gz +0 -0
  100. package/lib/types/persisters/persister-automerge.d.ts +4 -0
  101. package/lib/types/persisters/persister-browser.d.ts +8 -0
  102. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +10 -2
  103. package/lib/types/persisters/persister-expo-sqlite.d.ts +8 -0
  104. package/lib/types/persisters/persister-file.d.ts +8 -1
  105. package/lib/types/persisters/persister-remote.d.ts +4 -0
  106. package/lib/types/persisters/persister-sqlite-wasm.d.ts +8 -0
  107. package/lib/types/persisters/persister-sqlite3.d.ts +8 -0
  108. package/lib/types/persisters/persister-yjs.d.ts +4 -0
  109. package/lib/types/persisters.d.ts +16 -3
  110. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +5 -0
  111. package/lib/types/with-schemas/persisters/persister-browser.d.ts +10 -0
  112. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +12 -2
  113. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +10 -0
  114. package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -1
  115. package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -0
  116. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +10 -0
  117. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +10 -0
  118. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +5 -0
  119. package/lib/types/with-schemas/persisters.d.ts +17 -3
  120. package/lib/umd/persisters/persister-automerge.js +1 -1
  121. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  122. package/lib/umd/persisters/persister-browser.js +1 -1
  123. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  124. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  125. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  126. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  127. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  128. package/lib/umd/persisters/persister-file.js +1 -1
  129. package/lib/umd/persisters/persister-file.js.gz +0 -0
  130. package/lib/umd/persisters/persister-remote.js +1 -1
  131. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  132. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  133. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  134. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  135. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  136. package/lib/umd/persisters/persister-yjs.js +1 -1
  137. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  138. package/lib/umd/persisters.js +1 -1
  139. package/lib/umd/persisters.js.gz +0 -0
  140. package/lib/umd/tinybase.js +1 -1
  141. package/lib/umd/tinybase.js.gz +0 -0
  142. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  143. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  144. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  145. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  146. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  147. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  148. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  149. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  150. package/lib/umd-es6/persisters/persister-file.js +1 -1
  151. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  152. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  153. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  154. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  155. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  156. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  157. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  158. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  159. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  160. package/lib/umd-es6/persisters.js +1 -1
  161. package/lib/umd-es6/persisters.js.gz +0 -0
  162. package/lib/umd-es6/tinybase.js +1 -1
  163. package/lib/umd-es6/tinybase.js.gz +0 -0
  164. package/package.json +5 -5
  165. package/readme.md +2 -2
@@ -1,4 +1,4 @@
1
- import {Map} from 'yjs';
1
+ import {Map as Map$1} from 'yjs';
2
2
 
3
3
  const TINYBASE = 'tinybase';
4
4
 
@@ -33,32 +33,58 @@ const objEnsure = (obj, id, getDefaultValue) => {
33
33
  return obj[id];
34
34
  };
35
35
 
36
+ const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
37
+ const collForEach = (coll, cb) => coll?.forEach(cb);
38
+ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
39
+
40
+ const mapNew = (entries) => new Map(entries);
41
+ const mapGet = (map, key) => map?.get(key);
42
+ const mapForEach = (map, cb) =>
43
+ collForEach(map, (value, key) => cb(key, value));
44
+ const mapSet = (map, key, value) =>
45
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
46
+ const mapEnsure = (map, key, getDefaultValue) => {
47
+ if (!collHas(map, key)) {
48
+ mapSet(map, key, getDefaultValue());
49
+ }
50
+ return mapGet(map, key);
51
+ };
52
+
53
+ const scheduleRunning = mapNew();
54
+ const scheduleActions = mapNew();
36
55
  const createCustomPersister = (
37
56
  store,
38
57
  getPersisted,
39
58
  setPersisted,
40
59
  addPersisterListener,
41
60
  delPersisterListener,
61
+ onIgnoredError,
62
+ scheduleId = [],
42
63
  ) => {
43
64
  let listenerId;
44
65
  let loadSave = 0;
45
66
  let loads = 0;
46
67
  let saves = 0;
47
- let running = 0;
48
68
  let listening = 0;
49
69
  let action;
50
70
  let listeningHandle;
51
- const scheduledActions = [];
71
+ mapEnsure(scheduleRunning, scheduleId, () => 0);
72
+ mapEnsure(scheduleActions, scheduleId, () => []);
52
73
  const run = async () => {
53
74
  /* istanbul ignore else */
54
- if (!running) {
55
- running = 1;
56
- while (!isUndefined((action = arrayShift(scheduledActions)))) {
75
+ if (!mapGet(scheduleRunning, scheduleId)) {
76
+ mapSet(scheduleRunning, scheduleId, 1);
77
+ while (
78
+ !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
79
+ ) {
57
80
  try {
58
81
  await action();
59
- } catch {}
82
+ } catch (error) {
83
+ /* istanbul ignore next */
84
+ onIgnoredError?.(error);
85
+ }
60
86
  }
61
- running = 0;
87
+ mapSet(scheduleRunning, scheduleId, 0);
62
88
  }
63
89
  };
64
90
  const loadLock = async (actions) => {
@@ -89,16 +115,22 @@ const createCustomPersister = (
89
115
  await persister.load(initialTables, initialValues);
90
116
  listening = 1;
91
117
  listeningHandle = addPersisterListener(
92
- async (getContent, getTransactionChanges) =>
93
- await loadLock(async () => {
94
- if (getTransactionChanges) {
95
- store.setTransactionChanges(getTransactionChanges());
96
- } else {
118
+ async (getContent, getTransactionChanges) => {
119
+ if (getTransactionChanges) {
120
+ const transactionChanges = getTransactionChanges();
121
+ await loadLock(async () =>
122
+ store.setTransactionChanges(transactionChanges),
123
+ );
124
+ } else {
125
+ await loadLock(async () => {
97
126
  try {
98
127
  store.setContent(getContent?.() ?? (await getPersisted()));
99
- } catch {}
100
- }
101
- }),
128
+ } catch (error) {
129
+ onIgnoredError?.(error);
130
+ }
131
+ });
132
+ }
133
+ },
102
134
  );
103
135
  return persister;
104
136
  },
@@ -120,7 +152,10 @@ const createCustomPersister = (
120
152
  await persister.schedule(async () => {
121
153
  try {
122
154
  await setPersisted(store.getContent, getTransactionChanges);
123
- } catch {}
155
+ } catch (error) {
156
+ /* istanbul ignore next */
157
+ onIgnoredError?.(error);
158
+ }
124
159
  loadSave = 0;
125
160
  });
126
161
  }
@@ -143,7 +178,7 @@ const createCustomPersister = (
143
178
  return persister;
144
179
  },
145
180
  schedule: async (...actions) => {
146
- arrayPush(scheduledActions, ...actions);
181
+ arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
147
182
  await run();
148
183
  return persister;
149
184
  },
@@ -154,18 +189,13 @@ const createCustomPersister = (
154
189
  return objFreeze(persister);
155
190
  };
156
191
 
157
- const collForEach = (coll, cb) => coll?.forEach(cb);
158
-
159
- const mapForEach = (map, cb) =>
160
- collForEach(map, (value, key) => cb(key, value));
161
-
162
192
  const tablesKey = 't';
163
193
  const valuesKey = 'v';
164
194
  const DELETE = 'delete';
165
195
  const ensureYContent = (yContent) => {
166
196
  if (!yContent.size) {
167
- yContent.set(tablesKey, new Map());
168
- yContent.set(valuesKey, new Map());
197
+ yContent.set(tablesKey, new Map$1());
198
+ yContent.set(valuesKey, new Map$1());
169
199
  }
170
200
  };
171
201
  const getYContent = (yContent) => [
@@ -292,7 +322,7 @@ const setTransactionChangesToYDoc = (
292
322
  const yMapMatch = (yMapOrParent, idInParent, obj, set) => {
293
323
  const yMap = isUndefined(idInParent)
294
324
  ? yMapOrParent
295
- : yMapOrParent.get(idInParent) ?? yMapOrParent.set(idInParent, new Map());
325
+ : yMapOrParent.get(idInParent) ?? yMapOrParent.set(idInParent, new Map$1());
296
326
  let changed;
297
327
  objMap(obj, (value, id) => {
298
328
  if (set(yMap, id, value)) {
@@ -310,7 +340,12 @@ const yMapMatch = (yMapOrParent, idInParent, obj, set) => {
310
340
  }
311
341
  return changed;
312
342
  };
313
- const createYjsPersister = (store, yDoc, yMapName = TINYBASE) => {
343
+ const createYjsPersister = (
344
+ store,
345
+ yDoc,
346
+ yMapName = TINYBASE,
347
+ onIgnoredError,
348
+ ) => {
314
349
  const yContent = yDoc.getMap(yMapName);
315
350
  const getPersisted = async () =>
316
351
  yContent.size
@@ -335,6 +370,7 @@ const createYjsPersister = (store, yDoc, yMapName = TINYBASE) => {
335
370
  setPersisted,
336
371
  addPersisterListener,
337
372
  delPersisterListener,
373
+ onIgnoredError,
338
374
  );
339
375
  };
340
376
 
@@ -15,32 +15,55 @@ const isObject = (obj) =>
15
15
  const objSize = (obj) => arrayLength(objIds(obj));
16
16
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
17
17
 
18
+ const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
19
+ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
20
+
21
+ const mapNew = (entries) => new Map(entries);
22
+ const mapGet = (map, key) => map?.get(key);
23
+ const mapSet = (map, key, value) =>
24
+ isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
25
+ const mapEnsure = (map, key, getDefaultValue) => {
26
+ if (!collHas(map, key)) {
27
+ mapSet(map, key, getDefaultValue());
28
+ }
29
+ return mapGet(map, key);
30
+ };
31
+
32
+ const scheduleRunning = mapNew();
33
+ const scheduleActions = mapNew();
18
34
  const createCustomPersister = (
19
35
  store,
20
36
  getPersisted,
21
37
  setPersisted,
22
38
  addPersisterListener,
23
39
  delPersisterListener,
40
+ onIgnoredError,
41
+ scheduleId = [],
24
42
  ) => {
25
43
  let listenerId;
26
44
  let loadSave = 0;
27
45
  let loads = 0;
28
46
  let saves = 0;
29
- let running = 0;
30
47
  let listening = 0;
31
48
  let action;
32
49
  let listeningHandle;
33
- const scheduledActions = [];
50
+ mapEnsure(scheduleRunning, scheduleId, () => 0);
51
+ mapEnsure(scheduleActions, scheduleId, () => []);
34
52
  const run = async () => {
35
53
  /* istanbul ignore else */
36
- if (!running) {
37
- running = 1;
38
- while (!isUndefined((action = arrayShift(scheduledActions)))) {
54
+ if (!mapGet(scheduleRunning, scheduleId)) {
55
+ mapSet(scheduleRunning, scheduleId, 1);
56
+ while (
57
+ !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
58
+ ) {
39
59
  try {
40
60
  await action();
41
- } catch {}
61
+ } catch (error) {
62
+ /* istanbul ignore next */
63
+ onIgnoredError?.(error);
64
+ }
42
65
  }
43
- running = 0;
66
+ mapSet(scheduleRunning, scheduleId, 0);
44
67
  }
45
68
  };
46
69
  const loadLock = async (actions) => {
@@ -71,16 +94,22 @@ const createCustomPersister = (
71
94
  await persister.load(initialTables, initialValues);
72
95
  listening = 1;
73
96
  listeningHandle = addPersisterListener(
74
- async (getContent, getTransactionChanges) =>
75
- await loadLock(async () => {
76
- if (getTransactionChanges) {
77
- store.setTransactionChanges(getTransactionChanges());
78
- } else {
97
+ async (getContent, getTransactionChanges) => {
98
+ if (getTransactionChanges) {
99
+ const transactionChanges = getTransactionChanges();
100
+ await loadLock(async () =>
101
+ store.setTransactionChanges(transactionChanges),
102
+ );
103
+ } else {
104
+ await loadLock(async () => {
79
105
  try {
80
106
  store.setContent(getContent?.() ?? (await getPersisted()));
81
- } catch {}
82
- }
83
- }),
107
+ } catch (error) {
108
+ onIgnoredError?.(error);
109
+ }
110
+ });
111
+ }
112
+ },
84
113
  );
85
114
  return persister;
86
115
  },
@@ -102,7 +131,10 @@ const createCustomPersister = (
102
131
  await persister.schedule(async () => {
103
132
  try {
104
133
  await setPersisted(store.getContent, getTransactionChanges);
105
- } catch {}
134
+ } catch (error) {
135
+ /* istanbul ignore next */
136
+ onIgnoredError?.(error);
137
+ }
106
138
  loadSave = 0;
107
139
  });
108
140
  }
@@ -125,7 +157,7 @@ const createCustomPersister = (
125
157
  return persister;
126
158
  },
127
159
  schedule: async (...actions) => {
128
- arrayPush(scheduledActions, ...actions);
160
+ arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
129
161
  await run();
130
162
  return persister;
131
163
  },
@@ -1013,32 +1013,41 @@ const createMetrics = getCreateFunction((store) => {
1013
1013
  return objFreeze(metrics);
1014
1014
  });
1015
1015
 
1016
+ const scheduleRunning = mapNew();
1017
+ const scheduleActions = mapNew();
1016
1018
  const createCustomPersister = (
1017
1019
  store,
1018
1020
  getPersisted,
1019
1021
  setPersisted,
1020
1022
  addPersisterListener,
1021
1023
  delPersisterListener,
1024
+ onIgnoredError,
1025
+ scheduleId = [],
1022
1026
  ) => {
1023
1027
  let listenerId;
1024
1028
  let loadSave = 0;
1025
1029
  let loads = 0;
1026
1030
  let saves = 0;
1027
- let running = 0;
1028
1031
  let listening = 0;
1029
1032
  let action;
1030
1033
  let listeningHandle;
1031
- const scheduledActions = [];
1034
+ mapEnsure(scheduleRunning, scheduleId, () => 0);
1035
+ mapEnsure(scheduleActions, scheduleId, () => []);
1032
1036
  const run = async () => {
1033
1037
  /* istanbul ignore else */
1034
- if (!running) {
1035
- running = 1;
1036
- while (!isUndefined((action = arrayShift(scheduledActions)))) {
1038
+ if (!mapGet(scheduleRunning, scheduleId)) {
1039
+ mapSet(scheduleRunning, scheduleId, 1);
1040
+ while (
1041
+ !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
1042
+ ) {
1037
1043
  try {
1038
1044
  await action();
1039
- } catch {}
1045
+ } catch (error) {
1046
+ /* istanbul ignore next */
1047
+ onIgnoredError?.(error);
1048
+ }
1040
1049
  }
1041
- running = 0;
1050
+ mapSet(scheduleRunning, scheduleId, 0);
1042
1051
  }
1043
1052
  };
1044
1053
  const loadLock = async (actions) => {
@@ -1069,16 +1078,22 @@ const createCustomPersister = (
1069
1078
  await persister.load(initialTables, initialValues);
1070
1079
  listening = 1;
1071
1080
  listeningHandle = addPersisterListener(
1072
- async (getContent, getTransactionChanges) =>
1073
- await loadLock(async () => {
1074
- if (getTransactionChanges) {
1075
- store.setTransactionChanges(getTransactionChanges());
1076
- } else {
1081
+ async (getContent, getTransactionChanges) => {
1082
+ if (getTransactionChanges) {
1083
+ const transactionChanges = getTransactionChanges();
1084
+ await loadLock(async () =>
1085
+ store.setTransactionChanges(transactionChanges),
1086
+ );
1087
+ } else {
1088
+ await loadLock(async () => {
1077
1089
  try {
1078
1090
  store.setContent(getContent?.() ?? (await getPersisted()));
1079
- } catch {}
1080
- }
1081
- }),
1091
+ } catch (error) {
1092
+ onIgnoredError?.(error);
1093
+ }
1094
+ });
1095
+ }
1096
+ },
1082
1097
  );
1083
1098
  return persister;
1084
1099
  },
@@ -1100,7 +1115,10 @@ const createCustomPersister = (
1100
1115
  await persister.schedule(async () => {
1101
1116
  try {
1102
1117
  await setPersisted(store.getContent, getTransactionChanges);
1103
- } catch {}
1118
+ } catch (error) {
1119
+ /* istanbul ignore next */
1120
+ onIgnoredError?.(error);
1121
+ }
1104
1122
  loadSave = 0;
1105
1123
  });
1106
1124
  }
@@ -1123,7 +1141,7 @@ const createCustomPersister = (
1123
1141
  return persister;
1124
1142
  },
1125
1143
  schedule: async (...actions) => {
1126
- arrayPush(scheduledActions, ...actions);
1144
+ arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
1127
1145
  await run();
1128
1146
  return persister;
1129
1147
  },
@@ -1 +1 @@
1
- const t=t=>null==t,e=(e,n,o)=>t(e)?null==o?void 0:o():n(e),n=Object,o=n.keys,l=n.freeze,i=(t,n)=>e(t,(t=>t[n])),r=(e,n)=>!t(i(e,n)),u=(t,e)=>(delete t[e],t),c=(t,e)=>((t,e)=>t.map(e))(n.entries(t),(([t,n])=>e(n,t))),d=t=>o(t).length,a=t=>(t=>t instanceof n&&t.constructor==n)(t)&&0==d(t);var s=(t,e,n)=>new Promise(((o,l)=>{var i=t=>{try{u(n.next(t))}catch(t){l(t)}},r=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,r);u((n=n.apply(t,e)).next())})),v=(t,e,n)=>new Promise(((o,l)=>{var i=t=>{try{u(n.next(t))}catch(t){l(t)}},r=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,r);u((n=n.apply(t,e)).next())}));const y=(t,e)=>[t[e].t,t[e].v],h=(e,n,o,l)=>{const i=t(n)?e:((t,e,n)=>(r(t,e)||(t[e]={}),t[e]))(e,n);let d;return c(o,((t,e)=>{l(i,e,t)&&(d=1)})),c(i,((t,e)=>{r(o,e)||(u(i,e),d=1)})),!t(n)&&a(i)&&u(e,n),d},f=(n,o,r="tinybase")=>(o.change((t=>t[r]={})),((n,d,f,p,g)=>{let A,L,m,S=0,x=0,C=0;const w=[],P=t=>s(void 0,null,(function*(){return 2!=S&&(S=1,yield b.schedule((()=>s(void 0,null,(function*(){yield t(),S=0}))))),b})),b={load:(t,e)=>s(void 0,null,(function*(){return yield P((()=>s(void 0,null,(function*(){try{n.setContent(yield d())}catch(o){n.setContent([t,e])}}))))})),startAutoLoad:(...t)=>s(void 0,[...t],(function*(t={},e={}){return b.stopAutoLoad(),yield b.load(t,e),C=1,m=(t=>{const e=({doc:e})=>t((()=>y(e,r)));return o.on("change",e),e})(((t,e)=>s(void 0,null,(function*(){return yield P((()=>s(void 0,null,(function*(){var o;if(e)n.setTransactionChanges(e());else try{n.setContent(null!=(o=null==t?void 0:t())?o:yield d())}catch(t){}}))))})))),b})),stopAutoLoad:()=>{return C&&(t=m,o.removeListener("change",t),m=void 0,C=0),b;var t},save:l=>s(void 0,null,(function*(){return 1!=S&&(S=2,yield b.schedule((()=>s(void 0,null,(function*(){try{yield((n,l)=>v(void 0,null,(function*(){return o.change((o=>((n,o,l,r)=>{((t,e)=>{a(t[e])&&(t[e]={t:{},v:{}})})(n,o);const[d,s]=y(n,o),v=()=>{f=1};let f=1;if(e(null==r?void 0:r(),(([n,o])=>{f=0,c(n,((n,o)=>f?0:t(n)?u(d,o):e(d[o],(o=>c(n,((n,l)=>f?0:t(n)?u(o,l):e(i(o,l),(e=>c(n,((n,o)=>t(n)?u(e,o):e[o]=n))),v)))),v))),c(o,((e,n)=>f?0:t(e)?u(s,n):s[n]=e))})),f){const[t,e]=l();h(d,void 0,t,((t,e,n)=>h(d,e,n,((t,e,n)=>h(t,e,n,((t,e,n)=>{if(i(t,e)!==n)return t[e]=n,1})))))),h(s,void 0,e,((t,e,n)=>{i(s,e)!==n&&(s[e]=n)}))}})(o,r,n,l)))})))(n.getContent,l)}catch(t){}S=0}))))),b})),startAutoSave:()=>s(void 0,null,(function*(){return yield b.stopAutoSave().save(),A=n.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();a(n)&&a(o)||b.save((()=>[n,o]))})),b})),stopAutoSave:()=>(e(A,n.delListener),b),schedule:(...e)=>s(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(w,...e),yield s(void 0,null,(function*(){if(!x){for(x=1;!t((e=w,L=e.shift()));)try{yield L()}catch(t){}x=0}var e})),b})),getStore:()=>n,destroy:()=>b.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(b)})(n,(()=>v(void 0,null,(function*(){return 2==d(o.doc[r])?y(o.doc,r):void 0})))));export{f as createAutomergePersister};
1
+ const t=t=>null==t,n=(n,e,o)=>t(n)?null==o?void 0:o():e(n),e=Object,o=e.keys,l=e.freeze,u=(t,e)=>n(t,(t=>t[e])),i=(n,e)=>!t(u(n,e)),r=(t,n)=>(delete t[n],t),d=(t,n)=>((t,n)=>t.map(n))(e.entries(t),(([t,e])=>n(e,t))),c=t=>o(t).length,a=t=>(t=>t instanceof e&&t.constructor==e)(t)&&0==c(t),s=t=>new Map(t),v=(t,n)=>null==t?void 0:t.get(n),y=(n,e,o)=>{return t(o)?(u=e,null==(l=n)||l.delete(u),n):null==n?void 0:n.set(e,o);var l,u},h=(t,n,e)=>{var o,l,u;return l=n,null!=(u=null==(o=t)?void 0:o.has(l))&&u||y(t,n,e()),v(t,n)};var f=(t,n,e)=>new Promise(((o,l)=>{var u=t=>{try{r(e.next(t))}catch(t){l(t)}},i=t=>{try{r(e.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(u,i);r((e=e.apply(t,n)).next())}));const p=s(),g=s();var A=(t,n,e)=>new Promise(((o,l)=>{var u=t=>{try{r(e.next(t))}catch(t){l(t)}},i=t=>{try{r(e.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(u,i);r((e=e.apply(t,n)).next())}));const L=(t,n)=>[t[n].t,t[n].v],m=(n,e,o,l)=>{const u=t(e)?n:((t,n,e)=>(i(t,n)||(t[n]={}),t[n]))(n,e);let c;return d(o,((t,n)=>{l(u,n,t)&&(c=1)})),d(u,((t,n)=>{i(o,n)||(r(u,n),c=1)})),!t(e)&&a(u)&&r(n,e),c},S=(e,o,i="tinybase",s)=>(o.change((t=>t[i]={})),((e,o,u,i,r,d,c=[])=>{let s,A,L,m=0,S=0;h(p,c,(()=>0)),h(g,c,(()=>[]));const w=t=>f(void 0,null,(function*(){return 2!=m&&(m=1,yield x.schedule((()=>f(void 0,null,(function*(){yield t(),m=0}))))),x})),x={load:(t,n)=>f(void 0,null,(function*(){return yield w((()=>f(void 0,null,(function*(){try{e.setContent(yield o())}catch(o){e.setContent([t,n])}}))))})),startAutoLoad:(...t)=>f(void 0,[...t],(function*(t={},n={}){return x.stopAutoLoad(),yield x.load(t,n),S=1,L=i(((t,n)=>f(void 0,null,(function*(){if(n){const t=n();yield w((()=>f(void 0,null,(function*(){return e.setTransactionChanges(t)}))))}else yield w((()=>f(void 0,null,(function*(){var n;try{e.setContent(null!=(n=null==t?void 0:t())?n:yield o())}catch(t){null==d||d(t)}}))))})))),x})),stopAutoLoad:()=>(S&&(r(L),L=void 0,S=0),x),save:t=>f(void 0,null,(function*(){return 1!=m&&(m=2,yield x.schedule((()=>f(void 0,null,(function*(){try{yield u(e.getContent,t)}catch(t){null==d||d(t)}m=0}))))),x})),startAutoSave:()=>f(void 0,null,(function*(){return yield x.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((t,n)=>{const[e,o]=n();a(e)&&a(o)||x.save((()=>[e,o]))})),x})),stopAutoSave:()=>(n(s,e.delListener),x),schedule:(...n)=>f(void 0,null,(function*(){return((t,...n)=>{t.push(...n)})(v(g,c),...n),yield f(void 0,null,(function*(){if(!v(p,c)){for(y(p,c,1);!t((n=v(g,c),A=n.shift()));)try{yield A()}catch(t){null==d||d(t)}y(p,c,0)}var n})),x})),getStore:()=>e,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(x)})(e,(()=>A(void 0,null,(function*(){return 2==c(o.doc[i])?L(o.doc,i):void 0}))),((e,l)=>A(void 0,null,(function*(){return o.change((o=>((e,o,l,i)=>{((t,n)=>{a(t[n])&&(t[n]={t:{},v:{}})})(e,o);const[c,s]=L(e,o),v=()=>{y=1};let y=1;if(n(null==i?void 0:i(),(([e,o])=>{y=0,d(e,((e,o)=>y?0:t(e)?r(c,o):n(c[o],(o=>d(e,((e,l)=>y?0:t(e)?r(o,l):n(u(o,l),(n=>d(e,((e,o)=>t(e)?r(n,o):n[o]=e))),v)))),v))),d(o,((n,e)=>y?0:t(n)?r(s,e):s[e]=n))})),y){const[t,n]=l();m(c,void 0,t,((t,n,e)=>m(c,n,e,((t,n,e)=>m(t,n,e,((t,n,e)=>{if(u(t,n)!==e)return t[n]=e,1})))))),m(s,void 0,n,((t,n,e)=>{u(s,n)!==e&&(s[n]=e)}))}})(o,i,e,l)))}))),(t=>{const n=({doc:n})=>t((()=>L(n,i)));return o.on("change",n),n}),(t=>{o.removeListener("change",t)}),s));export{S as createAutomergePersister};
@@ -1 +1 @@
1
- const t=(t,e)=>t instanceof e,e=t=>null==t,n=Object,o=n.keys,r=n.freeze,l=e=>(e=>t(e,n)&&e.constructor==n)(e)&&0==(t=>o(t).length)(e),i=JSON.parse;var u=(t,e,n)=>new Promise(((o,r)=>{var l=t=>{try{u(n.next(t))}catch(t){r(t)}},i=t=>{try{u(n.throw(t))}catch(t){r(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(l,i);u((n=n.apply(t,e)).next())})),a=(t,e,n)=>new Promise(((o,r)=>{var l=t=>{try{u(n.next(t))}catch(t){r(t)}},i=t=>{try{u(n.throw(t))}catch(t){r(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(l,i);u((n=n.apply(t,e)).next())}));const s="storage",d=globalThis.window,c=(o,c,v)=>((o,y,f,h,p)=>{let g,S,A,m=0,L=0,w=0;const x=[],C=t=>u(void 0,null,(function*(){return 2!=m&&(m=1,yield P.schedule((()=>u(void 0,null,(function*(){yield t(),m=0}))))),P})),P={load:(t,e)=>u(void 0,null,(function*(){return yield C((()=>u(void 0,null,(function*(){try{o.setContent(yield y())}catch(n){o.setContent([t,e])}}))))})),startAutoLoad:(...t)=>u(void 0,[...t],(function*(t={},e={}){return P.stopAutoLoad(),yield P.load(t,e),w=1,A=(t=>{const e=e=>{e.storageArea===v&&e.key===c&&t((()=>i(e.newValue)))};return d.addEventListener(s,e),e})(((t,e)=>u(void 0,null,(function*(){return yield C((()=>u(void 0,null,(function*(){var n;if(e)o.setTransactionChanges(e());else try{o.setContent(null!=(n=null==t?void 0:t())?n:yield y())}catch(t){}}))))})))),P})),stopAutoLoad:()=>{return w&&(t=A,d.removeEventListener(s,t),A=void 0,w=0),P;var t},save:e=>u(void 0,null,(function*(){return 1!=m&&(m=2,yield P.schedule((()=>u(void 0,null,(function*(){try{yield(e=o.getContent,a(void 0,null,(function*(){return v.setItem(c,(o=e(),JSON.stringify(o,((e,o)=>t(o,Map)?n.fromEntries([...o]):o))));var o})))}catch(t){}var e;m=0}))))),P})),startAutoSave:()=>u(void 0,null,(function*(){return yield P.stopAutoSave().save(),g=o.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();l(n)&&l(o)||P.save((()=>[n,o]))})),P})),stopAutoSave:()=>{var t,n;return t=g,n=o.delListener,!!e(t)||n(t),P},schedule:(...t)=>u(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(x,...t),yield u(void 0,null,(function*(){if(!L){for(L=1;!e((t=x,S=t.shift()));)try{yield S()}catch(t){}L=0}var t})),P})),getStore:()=>o,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(P)})(o,(()=>a(void 0,null,(function*(){return i(v.getItem(c))})))),v=(t,e)=>c(t,e,localStorage),y=(t,e)=>c(t,e,sessionStorage);export{v as createLocalPersister,y as createSessionPersister};
1
+ const t=(t,e)=>t instanceof e,e=t=>null==t,n=Object,o=n.keys,l=n.freeze,r=e=>(e=>t(e,n)&&e.constructor==n)(e)&&0==(t=>o(t).length)(e),u=JSON.parse,i=t=>new Map(t),a=(t,e)=>null==t?void 0:t.get(e),s=(t,n,o)=>{return e(o)?(r=n,null==(l=t)||l.delete(r),t):null==t?void 0:t.set(n,o);var l,r},d=(t,e,n)=>{var o,l,r;return l=e,null!=(r=null==(o=t)?void 0:o.has(l))&&r||s(t,e,n()),a(t,e)};var c=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{i(n.next(t))}catch(t){l(t)}},u=t=>{try{i(n.throw(t))}catch(t){l(t)}},i=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,u);i((n=n.apply(t,e)).next())}));const v=i(),y=i();var f=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{i(n.next(t))}catch(t){l(t)}},u=t=>{try{i(n.throw(t))}catch(t){l(t)}},i=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,u);i((n=n.apply(t,e)).next())}));const h="storage",p=globalThis.window,g=(o,i,g,S)=>((t,n,o,u,i,f,h=[])=>{let p,g,S,A=0,m=0;d(v,h,(()=>0)),d(y,h,(()=>[]));const w=t=>c(void 0,null,(function*(){return 2!=A&&(A=1,yield L.schedule((()=>c(void 0,null,(function*(){yield t(),A=0}))))),L})),L={load:(e,o)=>c(void 0,null,(function*(){return yield w((()=>c(void 0,null,(function*(){try{t.setContent(yield n())}catch(n){t.setContent([e,o])}}))))})),startAutoLoad:(...e)=>c(void 0,[...e],(function*(e={},o={}){return L.stopAutoLoad(),yield L.load(e,o),m=1,S=u(((e,o)=>c(void 0,null,(function*(){if(o){const e=o();yield w((()=>c(void 0,null,(function*(){return t.setTransactionChanges(e)}))))}else yield w((()=>c(void 0,null,(function*(){var o;try{t.setContent(null!=(o=null==e?void 0:e())?o:yield n())}catch(t){null==f||f(t)}}))))})))),L})),stopAutoLoad:()=>(m&&(i(S),S=void 0,m=0),L),save:e=>c(void 0,null,(function*(){return 1!=A&&(A=2,yield L.schedule((()=>c(void 0,null,(function*(){try{yield o(t.getContent,e)}catch(t){null==f||f(t)}A=0}))))),L})),startAutoSave:()=>c(void 0,null,(function*(){return yield L.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();r(n)&&r(o)||L.save((()=>[n,o]))})),L})),stopAutoSave:()=>{var n,o;return n=p,o=t.delListener,!!e(n)||o(n),L},schedule:(...t)=>c(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(a(y,h),...t),yield c(void 0,null,(function*(){if(!a(v,h)){for(s(v,h,1);!e((t=a(y,h),g=t.shift()));)try{yield g()}catch(t){null==f||f(t)}s(v,h,0)}var t})),L})),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(L)})(o,(()=>f(void 0,null,(function*(){return u(g.getItem(i))}))),(e=>f(void 0,null,(function*(){return g.setItem(i,(o=e(),JSON.stringify(o,((e,o)=>t(o,Map)?n.fromEntries([...o]):o))));var o}))),(t=>{const e=e=>{e.storageArea===g&&e.key===i&&t((()=>u(e.newValue)))};return p.addEventListener(h,e),e}),(t=>p.removeEventListener(h,t)),S),S=(t,e,n)=>g(t,e,localStorage,n),A=(t,e,n)=>g(t,e,sessionStorage,n);export{S as createLocalPersister,A as createSessionPersister};
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),c=(e,n,t)=>e.slice(n,t),s=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),E=n=>e(n)==l,p=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},T=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},O=(e,n)=>null==e?void 0:e.delete(n),A=Object,L=A.keys,P=A.freeze,b=(e=[])=>A.fromEntries(e),w=(...e)=>A.assign({},...e),R=(e,n)=>i(A.entries(e),(([e,t])=>n(t,e))),x=e=>A.values(e),N=e=>u(L(e)),S=e=>(e=>y(e,A)&&e.constructor==A)(e)&&0==N(e),C=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},D=(e,n)=>null==e?void 0:e.get(n),I=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},F=(e,n,t)=>f(t)?(O(e,n),e):null==e?void 0:e.set(n,t),M=(e,n,t,l=F)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),$=e=>new Set(Array.isArray(e)||f(e)?e:[e]),j=(e,n)=>null==e?void 0:e.add(n),_="_",B="_id",H=e=>`"${e.replace(/"/g,'""')}"`;var W=Object.defineProperty,U=Object.getOwnPropertySymbols,k=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?W(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,z=(e,n)=>{for(var t in n||(n={}))k.call(n,t)&&Y(e,t,n[t]);if(U)for(var t of U(n))J.call(n,t)&&Y(e,t,n[t]);return e},K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="FROM pragma_table_",q="WHERE",G=(e,n)=>{const l=C();return[()=>K(void 0,null,(function*(){return M(l,b(yield p(i(yield e("SELECT name "+V+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>K(void 0,[n],(function*({name:n}){return[n,b(i(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return F(l,n,M((i=C,m(o=l,r=n)||F(o,r,i()),D(o,r)),t,((e,n,t)=>{t!=D(e,n)&&F(e,n,t)}),((e,n)=>F(e,n))));var o,r,i}),((e,n)=>F(l,n)))})),(n,t)=>K(void 0,null,(function*(){return((e,n)=>!f(D(D(l,e),n)))(n,t)?b(d(i(yield e("SELECT*FROM"+H(n)),(e=>{return[e[t],(n=z({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!f(e)&&!S(n)))):{}})),(n,o,u,c,v,y=!1)=>K(void 0,null,(function*(){const h=$();R(null!=u?u:{},(e=>i(L(null!=e?e:{}),(e=>j(h,e)))));const E=T(h);if(!y&&v&&a(E)&&m(l,n))return yield e("DROP TABLE"+H(n)),void F(l,n);if(a(E)||m(l,n)){const t=D(l,n),r=$(g(t));yield p([...i(E,(l=>K(void 0,null,(function*(){O(r,l)||(yield e(`ALTER TABLE${H(n)}ADD${H(l)}`),F(t,l,""))})))),...!y&&c?i(T(r),(l=>K(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${H(n)}DROP${H(l)}`),F(t,l))})))):[]])}else yield e(`CREATE TABLE${H(n)}(${H(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(E,(e=>t+H(e))))});`),F(l,n,C([[o,""],...i(E,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+H(n)+"WHERE 1"):yield p(R(u,((t,l)=>K(void 0,null,(function*(){f(t)?yield e("DELETE FROM"+H(n)+q+H(o)+"=?",[l]):a(E)||(yield Q(e,n,o,L(t),[l,...x(t)]))})))));else if(a(E))m(l,n)&&(yield e("DELETE FROM"+H(n)+"WHERE 1"));else{const t=d(g(D(l,n)),(e=>e!=o)),r=[],a=[];R(null!=u?u:{},((e,n)=>{s(r,n,...i(t,(n=>null==e?void 0:e[n]))),s(a,n)})),yield Q(e,n,o,t,r),yield e("DELETE FROM"+H(n)+q+H(o)+"NOT IN("+X(a)+")",a)}}))]},Q=(e,n,l,a,d)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+H(n)+"("+H(l)+r(i(a,(e=>t+H(e))))+")VALUES"+o(`,(?${o(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+H(l)+")DO UPDATE SET"+r(i(a,(e=>H(e)+"=excluded."+H(e))),t),d)})),X=e=>r(i(e,(()=>"?")),t),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,c=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield E.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),E})),E={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),c=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),E})),stopAutoLoad:()=>(c&&(o(u),u=void 0,c=0),E),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield E.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),E})),startAutoSave:()=>ee(void 0,null,(function*(){return yield E.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();S(t)&&S(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(h(r,e.delListener),E),schedule:(...e)=>ee(void 0,null,(function*(){return s(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(E)};var te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const le="store",oe=(e,n,t,l,[o],r)=>{const[i,u,a]=G(n,r),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z(null==(e=(yield u(o,B))[_])?void 0:e[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(o,B,{[_]:{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?A.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[o,r,[i,u,a]],c)=>{const[s,v,y]=G(n,c),h=(e,n)=>re(void 0,null,(function*(){return yield p(I(r,((t,l)=>re(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,o,r,n))})))))})),E=(e,n)=>re(void 0,null,(function*(){return u?yield y(a,B,{[_]:e},!0,!0,n):null}));return ne(e,(()=>re(void 0,null,(function*(){yield s();const e=yield re(void 0,null,(function*(){return b(d(yield p(I(o,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!S(e[1]))))})),n=yield re(void 0,null,(function*(){return i?(yield v(a,B))[_]:{}}));return S(e)&&f(n)?void 0:[e,n]}))),((e,n)=>re(void 0,null,(function*(){if(yield s(),f(n)){const[n,t]=e();yield h(n),yield E(t)}else{const[e,t]=n();yield h(e,!0),yield E(t,!0)}}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",ce="tableId",se="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[se]:n+"_values"},fe=(e,n,t,l)=>{const o=C();return R(e,((e,r)=>{const i=c(x(w(n,E(e)?{[t]:e}:e)),0,N(n));f(i[0])||l(r,i[0])||F(o,r,i)})),o};var he=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Ee="pragma ",pe="data_version",me="schema_version",Te=(e,t,l,o,r,i)=>{let u,a;const[d,s,v,y]=(e=>{const t=(e=>w(ve,E(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ae];if(t.mode==ue){const{storeTableName:e=n}=t;return[1,l,[e],$(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=c(x(w(ye,i)),0,N(ye)),a=u[2],d=$(a);return[0,l,[fe(o,{[ce]:null,[de]:B},ce,(e=>j(d,e)&&e==a)),fe(r,{[se]:null,[de]:B,deleteEmptyColumns:0,deleteEmptyTable:0},se,((e,n)=>j(d,n)&&n==a)),u],d]})(t);return(d?oe:ie)(e,i?(e,n)=>he(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>he(void 0,null,(function*(){try{const n=(yield l(Ee+pe))[0][pe],t=(yield l(Ee+me))[0][me];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*s),o((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,r(n)}),v,T(y))},Oe=(e,n,t,l)=>Te(e,t,((e,...t)=>{return l=[e,...t],o=function*(e,t=[]){return yield n.execO(e,t)},new Promise(((e,n)=>{var t=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(t,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>n.onUpdate(((n,t,l)=>e(l)))),(e=>e()),l);export{Oe as createCrSqliteWasmPersister};
1
+ const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,d=e=>0==u(e),a=(e,n)=>e.filter(n),c=(e,n,l)=>e.slice(n,l),s=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,E=(e,n,l)=>f(e)?null==l?void 0:l():n(e),h=n=>e(n)==t,p=e=>{return n=function*(){return v.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},m=(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:[]]},O=(e,n)=>null==e?void 0:e.delete(n),A=Object,L=A.keys,P=A.freeze,b=(e=[])=>A.fromEntries(e),w=(...e)=>A.assign({},...e),N=(e,n)=>i(A.entries(e),(([e,l])=>n(l,e))),R=e=>A.values(e),x=e=>u(L(e)),S=e=>(e=>y(e,A)&&e.constructor==A)(e)&&0==x(e),C=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},D=(e,n)=>null==e?void 0:e.get(n),I=(e,n)=>{var l;return i([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},F=(e,n,l)=>f(l)?(O(e,n),e):null==e?void 0:e.set(n,l),M=(e,n,l)=>(m(e,n)||F(e,n,l()),D(e,n)),$=(e,n,l,t=F)=>(N(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)=>!f(((e,n)=>E(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),j=e=>new Set(Array.isArray(e)||f(e)?e:[e]),_=(e,n)=>null==e?void 0:e.add(n),B="_",H="_id",W=e=>`"${e.replace(/"/g,'""')}"`;var U=Object.defineProperty,k=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,z=(e,n,l)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,G=(e,n)=>{for(var l in n||(n={}))J.call(n,l)&&z(e,l,n[l]);if(k)for(var l of k(n))Y.call(n,l)&&z(e,l,n[l]);return e},K=(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 V="FROM pragma_table_",q="WHERE",Q=(e,n,t)=>{const o=C();return[()=>K(void 0,null,(function*(){return $(o,b(yield p(i(yield e("SELECT name "+V+"list WHERE schema='main'AND type='table'AND name IN("+Z(n)+")",n),(n=>K(void 0,[n],(function*({name:n}){return[n,b(i(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>F(o,n,$(M(o,n,C),l,((e,n,l)=>{l!=D(e,n)&&F(e,n,l)}),((e,n)=>F(e,n))))),((e,n)=>F(o,n)))})),(n,l)=>K(void 0,null,(function*(){return((e,n)=>!f(D(D(o,e),n)))(n,l)?b(a(i(yield e("SELECT*FROM"+W(n)),(e=>{return[e[l],(n=G({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!f(e)&&!S(n)))):{}})),(n,t,u,c,v,y=!1)=>K(void 0,null,(function*(){const E=j();N(null!=u?u:{},(e=>i(L(null!=e?e:{}),(e=>_(E,e)))));const h=T(E);if(!y&&v&&d(h)&&m(o,n))return yield e("DROP TABLE"+W(n)),void F(o,n);if(d(h)||m(o,n)){const l=D(o,n),r=j(g(l));yield p([...i(h,(t=>K(void 0,null,(function*(){O(r,t)||(yield e(`ALTER TABLE${W(n)}ADD${W(t)}`),F(l,t,""))})))),...!y&&c?i(T(r),(o=>K(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${W(n)}DROP${W(o)}`),F(l,o))})))):[]])}else yield e(`CREATE TABLE${W(n)}(${W(t)} PRIMARY KEY ON CONFLICT REPLACE${r(i(h,(e=>l+W(e))))});`),F(o,n,C([[t,""],...i(h,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+W(n)+"WHERE 1"):yield p(N(u,((l,o)=>K(void 0,null,(function*(){f(l)?yield e("DELETE FROM"+W(n)+q+W(t)+"=?",[o]):d(h)||(yield X(e,n,t,L(l),[o,...R(l)]))})))));else if(d(h))m(o,n)&&(yield e("DELETE FROM"+W(n)+"WHERE 1"));else{const l=a(g(D(o,n)),(e=>e!=t)),r=[],d=[];N(null!=u?u:{},((e,n)=>{s(r,n,...i(l,(n=>null==e?void 0:e[n]))),s(d,n)})),yield X(e,n,t,l,r),yield e("DELETE FROM"+W(n)+q+W(t)+"NOT IN("+Z(d)+")",d)}})),n=>K(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},X=(e,n,t,d,a)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+W(n)+"("+W(t)+r(i(d,(e=>l+W(e))))+")VALUES"+o(`,(?${o(",?",u(d))})`,u(a)/(u(d)+1)).substring(1)+"ON CONFLICT("+W(t)+")DO UPDATE SET"+r(i(d,(e=>W(e)+"=excluded."+W(e))),l),a)})),Z=e=>r(i(e,(()=>"?")),l),ee=JSON.parse;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 le=C(),te=C(),oe=(e,n,l,t,o,r,i=[])=>{let u,d,a,c=0,v=0;M(le,i,(()=>0)),M(te,i,(()=>[]));const y=e=>ne(void 0,null,(function*(){return 2!=c&&(c=1,yield h.schedule((()=>ne(void 0,null,(function*(){yield e(),c=0}))))),h})),h={load:(l,t)=>ne(void 0,null,(function*(){return yield y((()=>ne(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>ne(void 0,[...l],(function*(l={},o={}){return h.stopAutoLoad(),yield h.load(l,o),v=1,a=t(((l,t)=>ne(void 0,null,(function*(){if(t){const n=t();yield y((()=>ne(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield y((()=>ne(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:()=>(v&&(o(a),a=void 0,v=0),h),save:n=>ne(void 0,null,(function*(){return 1!=c&&(c=2,yield h.schedule((()=>ne(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}c=0}))))),h})),startAutoSave:()=>ne(void 0,null,(function*(){return yield h.stopAutoSave().save(),u=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();S(l)&&S(t)||h.save((()=>[l,t]))})),h})),stopAutoSave:()=>(E(u,e.delListener),h),schedule:(...e)=>ne(void 0,null,(function*(){return s(D(te,i),...e),yield ne(void 0,null,(function*(){if(!D(le,i)){for(F(le,i,1);!f((e=D(te,i),d=e.shift()));)try{yield d()}catch(e){null==r||r(e)}F(le,i,0)}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(h)};var re=(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 ie="store",ue=(e,n,l,t,o,[r],i,u)=>{const[d,a,c,s]=Q(n,i,o);return oe(e,(()=>re(void 0,null,(function*(){return yield s((()=>re(void 0,null,(function*(){var e,n;return yield d(),ee(null!=(n=null==(e=(yield a(r,H))[B])?void 0:e[ie])?n:"null")}))))}))),(e=>re(void 0,null,(function*(){return yield s((()=>re(void 0,null,(function*(){var n,l;yield d(),yield c(r,H,{[B]:{[ie]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>y(n,Map)?A.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,u)};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=(e,n,l,t,o,[r,i,[u,d,c]],s,v)=>{const[y,E,h,m]=Q(n,s,o),T=(e,n)=>de(void 0,null,(function*(){return yield p(I(i,((l,t)=>de(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)=>de(void 0,null,(function*(){return d?yield h(c,H,{[B]:e},!0,!0,n):null}));return oe(e,(()=>de(void 0,null,(function*(){return yield m((()=>de(void 0,null,(function*(){yield y();const e=yield de(void 0,null,(function*(){return b(a(yield p(I(r,((e,n)=>de(void 0,[e,n],(function*([e,n],l){return[e,yield E(l,n)]}))))),(e=>!S(e[1]))))})),n=yield de(void 0,null,(function*(){return u?(yield E(c,H))[B]:{}}));return S(e)&&f(n)?void 0:[e,n]}))))}))),((e,n)=>de(void 0,null,(function*(){return yield m((()=>de(void 0,null,(function*(){if(yield y(),f(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)},ce="json",se="autoLoadIntervalSeconds",ve="rowIdColumnName",ye="tableId",fe="tableName",Ee={mode:ce,[se]:1},he={load:0,save:0,[fe]:n+"_values"},pe=(e,n,l,t)=>{const o=C();return N(e,((e,r)=>{const i=c(R(w(n,h(e)?{[l]:e}:e)),0,x(n));f(i[0])||t(r,i[0])||F(o,r,i)})),o};var me=(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 Te="pragma ",Oe="data_version",Ae="schema_version",Le=(e,l,t,o,r,i,u,d)=>{let a,s;const[v,y,f,E]=(e=>{const l=(e=>w(Ee,h(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[se];if(l.mode==ce){const{storeTableName:e=n}=l;return[1,t,[e],j(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=c(R(w(he,i)),0,x(he)),d=u[2],a=j(d);return[0,t,[pe(o,{[ye]:null,[ve]:H},ye,(e=>_(a,e)&&e==d)),pe(r,{[fe]:null,[ve]:H,deleteEmptyColumns:0,deleteEmptyTable:0},fe,((e,n)=>_(a,n)&&n==d)),u],a]})(l);return(v?ue:ae)(e,i?(e,n)=>me(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>[setInterval((()=>me(void 0,null,(function*(){try{const n=(yield t(Te+Oe))[0][Oe],l=(yield t(Te+Ae))[0][Ae];n==(null!=a?a:a=n)&&l==(null!=s?s:s=l)||(e(),a=n,s=l)}catch(e){}}))),1e3*y),o((n=>E.has(n)?e():0))]),(([e,n])=>{clearInterval(e),a=s=null,r(n)}),u,f,T(E),d)},Pe=(e,n,l,t,o)=>Le(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{Pe as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),s=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),E=n=>e(n)==l,p=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},T=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},A=(e,n)=>null==e?void 0:e.delete(n),L=Object,O=L.keys,P=L.freeze,b=(e=[])=>L.fromEntries(e),w=(...e)=>L.assign({},...e),R=(e,n)=>i(L.entries(e),(([e,t])=>n(t,e))),N=e=>L.values(e),x=e=>u(O(e)),C=e=>(e=>y(e,L)&&e.constructor==L)(e)&&0==x(e),S=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},D=(e,n)=>null==e?void 0:e.get(n),I=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},F=(e,n,t)=>f(t)?(A(e,n),e):null==e?void 0:e.set(n,t),M=(e,n,t,l=F)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),$=e=>new Set(Array.isArray(e)||f(e)?e:[e]),j=(e,n)=>null==e?void 0:e.add(n),_="_",B="_id",H=e=>`"${e.replace(/"/g,'""')}"`;var W=Object.defineProperty,k=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?W(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,q=(e,n)=>{for(var t in n||(n={}))J.call(n,t)&&Y(e,t,n[t]);if(k)for(var t of k(n))U.call(n,t)&&Y(e,t,n[t]);return e},z=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const K="FROM pragma_table_",V="WHERE",G=(e,n)=>{const l=S();return[()=>z(void 0,null,(function*(){return M(l,b(yield p(i(yield e("SELECT name "+K+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>z(void 0,[n],(function*({name:n}){return[n,b(i(yield e("SELECT name,type "+K+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return F(l,n,M((i=S,m(o=l,r=n)||F(o,r,i()),D(o,r)),t,((e,n,t)=>{t!=D(e,n)&&F(e,n,t)}),((e,n)=>F(e,n))));var o,r,i}),((e,n)=>F(l,n)))})),(n,t)=>z(void 0,null,(function*(){return((e,n)=>!f(D(D(l,e),n)))(n,t)?b(d(i(yield e("SELECT*FROM"+H(n)),(e=>{return[e[t],(n=q({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!f(e)&&!C(n)))):{}})),(n,o,u,s,v,y=!1)=>z(void 0,null,(function*(){const h=$();R(null!=u?u:{},(e=>i(O(null!=e?e:{}),(e=>j(h,e)))));const E=T(h);if(!y&&v&&a(E)&&m(l,n))return yield e("DROP TABLE"+H(n)),void F(l,n);if(a(E)||m(l,n)){const t=D(l,n),r=$(g(t));yield p([...i(E,(l=>z(void 0,null,(function*(){A(r,l)||(yield e(`ALTER TABLE${H(n)}ADD${H(l)}`),F(t,l,""))})))),...!y&&s?i(T(r),(l=>z(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${H(n)}DROP${H(l)}`),F(t,l))})))):[]])}else yield e(`CREATE TABLE${H(n)}(${H(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(E,(e=>t+H(e))))});`),F(l,n,S([[o,""],...i(E,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+H(n)+"WHERE 1"):yield p(R(u,((t,l)=>z(void 0,null,(function*(){f(t)?yield e("DELETE FROM"+H(n)+V+H(o)+"=?",[l]):a(E)||(yield Q(e,n,o,O(t),[l,...N(t)]))})))));else if(a(E))m(l,n)&&(yield e("DELETE FROM"+H(n)+"WHERE 1"));else{const t=d(g(D(l,n)),(e=>e!=o)),r=[],a=[];R(null!=u?u:{},((e,n)=>{c(r,n,...i(t,(n=>null==e?void 0:e[n]))),c(a,n)})),yield Q(e,n,o,t,r),yield e("DELETE FROM"+H(n)+V+H(o)+"NOT IN("+X(a)+")",a)}}))]},Q=(e,n,l,a,d)=>z(void 0,null,(function*(){return yield e("INSERT INTO"+H(n)+"("+H(l)+r(i(a,(e=>t+H(e))))+")VALUES"+o(`,(?${o(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+H(l)+")DO UPDATE SET"+r(i(a,(e=>H(e)+"=excluded."+H(e))),t),d)})),X=e=>r(i(e,(()=>"?")),t),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield E.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),E})),E={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),s=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),E})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),E),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield E.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),E})),startAutoSave:()=>ee(void 0,null,(function*(){return yield E.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();C(t)&&C(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(h(r,e.delListener),E),schedule:(...e)=>ee(void 0,null,(function*(){return c(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(E)};var te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const le="store",oe=(e,n,t,l,[o],r)=>{const[i,u,a]=G(n,r),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z(null==(e=(yield u(o,B))[_])?void 0:e[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(o,B,{[_]:{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?L.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[o,r,[i,u,a]],s)=>{const[c,v,y]=G(n,s),h=(e,n)=>re(void 0,null,(function*(){return yield p(I(r,((t,l)=>re(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,o,r,n))})))))})),E=(e,n)=>re(void 0,null,(function*(){return u?yield y(a,B,{[_]:e},!0,!0,n):null}));return ne(e,(()=>re(void 0,null,(function*(){yield c();const e=yield re(void 0,null,(function*(){return b(d(yield p(I(o,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!C(e[1]))))})),n=yield re(void 0,null,(function*(){return i?(yield v(a,B))[_]:{}}));return C(e)&&f(n)?void 0:[e,n]}))),((e,n)=>re(void 0,null,(function*(){if(yield c(),f(n)){const[n,t]=e();yield h(n),yield E(t)}else{const[e,t]=n();yield h(e,!0),yield E(t,!0)}}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",se="tableId",ce="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[ce]:n+"_values"},fe=(e,n,t,l)=>{const o=S();return R(e,((e,r)=>{const i=s(N(w(n,E(e)?{[t]:e}:e)),0,x(n));f(i[0])||l(r,i[0])||F(o,r,i)})),o};var he=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Ee="pragma ",pe="data_version",me="schema_version",Te=(e,t,l,o,r,i)=>{let u,a;const[d,c,v,y]=(e=>{const t=(e=>w(ve,E(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ae];if(t.mode==ue){const{storeTableName:e=n}=t;return[1,l,[e],$(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=s(N(w(ye,i)),0,x(ye)),a=u[2],d=$(a);return[0,l,[fe(o,{[se]:null,[de]:B},se,(e=>j(d,e)&&e==a)),fe(r,{[ce]:null,[de]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ce,((e,n)=>j(d,n)&&n==a)),u],d]})(t);return(d?oe:ie)(e,i?(e,n)=>he(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>he(void 0,null,(function*(){try{const n=(yield l(Ee+pe))[0][pe],t=(yield l(Ee+me))[0][me];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*c),o((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,r(n)}),v,T(y))},Ae=(e,n,t,l)=>Te(e,t,((e,...t)=>{return l=[e,...t],o=function*(e,t=[]){return(yield n.execAsync([{sql:e,args:t}],!1))[0].rows},new Promise(((e,n)=>{var t=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(t,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>n.onDatabaseChange((({tableName:n})=>e(n)))),(e=>e.remove()),l);export{Ae as createExpoSqlitePersister};
1
+ const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),c=(e,n,l)=>e.slice(n,l),s=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,l)=>f(e)?null==l?void 0:l():n(e),E=n=>e(n)==t,p=e=>{return n=function*(){return v.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},m=(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:[]]},A=(e,n)=>null==e?void 0:e.delete(n),L=Object,O=L.keys,P=L.freeze,b=(e=[])=>L.fromEntries(e),w=(...e)=>L.assign({},...e),N=(e,n)=>i(L.entries(e),(([e,l])=>n(l,e))),R=e=>L.values(e),x=e=>u(O(e)),C=e=>(e=>y(e,L)&&e.constructor==L)(e)&&0==x(e),S=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},D=(e,n)=>null==e?void 0:e.get(n),I=(e,n)=>{var l;return i([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},F=(e,n,l)=>f(l)?(A(e,n),e):null==e?void 0:e.set(n,l),M=(e,n,l)=>(m(e,n)||F(e,n,l()),D(e,n)),$=(e,n,l,t=F)=>(N(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)=>!f(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),j=e=>new Set(Array.isArray(e)||f(e)?e:[e]),_=(e,n)=>null==e?void 0:e.add(n),B="_",H="_id",W=e=>`"${e.replace(/"/g,'""')}"`;var k=Object.defineProperty,J=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,q=(e,n,l)=>n in e?k(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,z=(e,n)=>{for(var l in n||(n={}))U.call(n,l)&&q(e,l,n[l]);if(J)for(var l of J(n))Y.call(n,l)&&q(e,l,n[l]);return e},G=(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 K="FROM pragma_table_",V="WHERE",Q=(e,n,t)=>{const o=S();return[()=>G(void 0,null,(function*(){return $(o,b(yield p(i(yield e("SELECT name "+K+"list WHERE schema='main'AND type='table'AND name IN("+Z(n)+")",n),(n=>G(void 0,[n],(function*({name:n}){return[n,b(i(yield e("SELECT name,type "+K+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>F(o,n,$(M(o,n,S),l,((e,n,l)=>{l!=D(e,n)&&F(e,n,l)}),((e,n)=>F(e,n))))),((e,n)=>F(o,n)))})),(n,l)=>G(void 0,null,(function*(){return((e,n)=>!f(D(D(o,e),n)))(n,l)?b(d(i(yield e("SELECT*FROM"+W(n)),(e=>{return[e[l],(n=z({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!f(e)&&!C(n)))):{}})),(n,t,u,c,v,y=!1)=>G(void 0,null,(function*(){const h=j();N(null!=u?u:{},(e=>i(O(null!=e?e:{}),(e=>_(h,e)))));const E=T(h);if(!y&&v&&a(E)&&m(o,n))return yield e("DROP TABLE"+W(n)),void F(o,n);if(a(E)||m(o,n)){const l=D(o,n),r=j(g(l));yield p([...i(E,(t=>G(void 0,null,(function*(){A(r,t)||(yield e(`ALTER TABLE${W(n)}ADD${W(t)}`),F(l,t,""))})))),...!y&&c?i(T(r),(o=>G(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${W(n)}DROP${W(o)}`),F(l,o))})))):[]])}else yield e(`CREATE TABLE${W(n)}(${W(t)} PRIMARY KEY ON CONFLICT REPLACE${r(i(E,(e=>l+W(e))))});`),F(o,n,S([[t,""],...i(E,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+W(n)+"WHERE 1"):yield p(N(u,((l,o)=>G(void 0,null,(function*(){f(l)?yield e("DELETE FROM"+W(n)+V+W(t)+"=?",[o]):a(E)||(yield X(e,n,t,O(l),[o,...R(l)]))})))));else if(a(E))m(o,n)&&(yield e("DELETE FROM"+W(n)+"WHERE 1"));else{const l=d(g(D(o,n)),(e=>e!=t)),r=[],a=[];N(null!=u?u:{},((e,n)=>{s(r,n,...i(l,(n=>null==e?void 0:e[n]))),s(a,n)})),yield X(e,n,t,l,r),yield e("DELETE FROM"+W(n)+V+W(t)+"NOT IN("+Z(a)+")",a)}})),n=>G(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},X=(e,n,t,a,d)=>G(void 0,null,(function*(){return yield e("INSERT INTO"+W(n)+"("+W(t)+r(i(a,(e=>l+W(e))))+")VALUES"+o(`,(?${o(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+W(t)+")DO UPDATE SET"+r(i(a,(e=>W(e)+"=excluded."+W(e))),l),d)})),Z=e=>r(i(e,(()=>"?")),l),ee=JSON.parse;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 le=S(),te=S(),oe=(e,n,l,t,o,r,i=[])=>{let u,a,d,c=0,v=0;M(le,i,(()=>0)),M(te,i,(()=>[]));const y=e=>ne(void 0,null,(function*(){return 2!=c&&(c=1,yield E.schedule((()=>ne(void 0,null,(function*(){yield e(),c=0}))))),E})),E={load:(l,t)=>ne(void 0,null,(function*(){return yield y((()=>ne(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>ne(void 0,[...l],(function*(l={},o={}){return E.stopAutoLoad(),yield E.load(l,o),v=1,d=t(((l,t)=>ne(void 0,null,(function*(){if(t){const n=t();yield y((()=>ne(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield y((()=>ne(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:()=>(v&&(o(d),d=void 0,v=0),E),save:n=>ne(void 0,null,(function*(){return 1!=c&&(c=2,yield E.schedule((()=>ne(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}c=0}))))),E})),startAutoSave:()=>ne(void 0,null,(function*(){return yield E.stopAutoSave().save(),u=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();C(l)&&C(t)||E.save((()=>[l,t]))})),E})),stopAutoSave:()=>(h(u,e.delListener),E),schedule:(...e)=>ne(void 0,null,(function*(){return s(D(te,i),...e),yield ne(void 0,null,(function*(){if(!D(le,i)){for(F(le,i,1);!f((e=D(te,i),a=e.shift()));)try{yield a()}catch(e){null==r||r(e)}F(le,i,0)}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(E)};var re=(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 ie="store",ue=(e,n,l,t,o,[r],i,u)=>{const[a,d,c,s]=Q(n,i,o);return oe(e,(()=>re(void 0,null,(function*(){return yield s((()=>re(void 0,null,(function*(){var e,n;return yield a(),ee(null!=(n=null==(e=(yield d(r,H))[B])?void 0:e[ie])?n:"null")}))))}))),(e=>re(void 0,null,(function*(){return yield s((()=>re(void 0,null,(function*(){var n,l;yield a(),yield c(r,H,{[B]:{[ie]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>y(n,Map)?L.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,u)};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=(e,n,l,t,o,[r,i,[u,a,c]],s,v)=>{const[y,h,E,m]=Q(n,s,o),T=(e,n)=>ae(void 0,null,(function*(){return yield p(I(i,((l,t)=>ae(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)=>ae(void 0,null,(function*(){return a?yield E(c,H,{[B]:e},!0,!0,n):null}));return oe(e,(()=>ae(void 0,null,(function*(){return yield m((()=>ae(void 0,null,(function*(){yield y();const e=yield ae(void 0,null,(function*(){return b(d(yield p(I(r,((e,n)=>ae(void 0,[e,n],(function*([e,n],l){return[e,yield h(l,n)]}))))),(e=>!C(e[1]))))})),n=yield ae(void 0,null,(function*(){return u?(yield h(c,H))[B]:{}}));return C(e)&&f(n)?void 0:[e,n]}))))}))),((e,n)=>ae(void 0,null,(function*(){return yield m((()=>ae(void 0,null,(function*(){if(yield y(),f(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)},ce="json",se="autoLoadIntervalSeconds",ve="rowIdColumnName",ye="tableId",fe="tableName",he={mode:ce,[se]:1},Ee={load:0,save:0,[fe]:n+"_values"},pe=(e,n,l,t)=>{const o=S();return N(e,((e,r)=>{const i=c(R(w(n,E(e)?{[l]:e}:e)),0,x(n));f(i[0])||t(r,i[0])||F(o,r,i)})),o};var me=(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 Te="pragma ",Ae="data_version",Le="schema_version",Oe=(e,l,t,o,r,i,u,a)=>{let d,s;const[v,y,f,h]=(e=>{const l=(e=>w(he,E(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[se];if(l.mode==ce){const{storeTableName:e=n}=l;return[1,t,[e],j(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=c(R(w(Ee,i)),0,x(Ee)),a=u[2],d=j(a);return[0,t,[pe(o,{[ye]:null,[ve]:H},ye,(e=>_(d,e)&&e==a)),pe(r,{[fe]:null,[ve]:H,deleteEmptyColumns:0,deleteEmptyTable:0},fe,((e,n)=>_(d,n)&&n==a)),u],d]})(l);return(v?ue:de)(e,i?(e,n)=>me(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>[setInterval((()=>me(void 0,null,(function*(){try{const n=(yield t(Te+Ae))[0][Ae],l=(yield t(Te+Le))[0][Le];n==(null!=d?d:d=n)&&l==(null!=s?s:s=l)||(e(),d=n,s=l)}catch(e){}}))),1e3*y),o((n=>h.has(n)?e():0))]),(([e,n])=>{clearInterval(e),d=s=null,r(n)}),u,f,T(h),a)},Pe=(e,n,l,t,o)=>Oe(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{Pe as createExpoSqlitePersister};
@@ -1 +1 @@
1
- import{watch as t}from"fs";import{readFile as e,writeFile as n}from"fs/promises";const o="utf8",r=(t,e)=>t instanceof e,l=t=>null==t,i=Object,u=i.keys,s=i.freeze,a=t=>(t=>r(t,i)&&t.constructor==i)(t)&&0==(t=>u(t).length)(t),d=JSON.parse;var c=(t,e,n)=>new Promise(((o,r)=>{var l=t=>{try{u(n.next(t))}catch(t){r(t)}},i=t=>{try{u(n.throw(t))}catch(t){r(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(l,i);u((n=n.apply(t,e)).next())})),v=(t,e,n)=>new Promise(((o,r)=>{var l=t=>{try{u(n.next(t))}catch(t){r(t)}},i=t=>{try{u(n.throw(t))}catch(t){r(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(l,i);u((n=n.apply(t,e)).next())}));const f=(u,f)=>((e,u,d,y,h)=>{let p,m,A,S=0,g=0,L=0;const x=[],C=t=>c(void 0,null,(function*(){return 2!=S&&(S=1,yield w.schedule((()=>c(void 0,null,(function*(){yield t(),S=0}))))),w})),w={load:(t,n)=>c(void 0,null,(function*(){return yield C((()=>c(void 0,null,(function*(){try{e.setContent(yield u())}catch(o){e.setContent([t,n])}}))))})),startAutoLoad:(...n)=>c(void 0,[...n],(function*(n={},o={}){return w.stopAutoLoad(),yield w.load(n,o),L=1,r=(t,n)=>c(void 0,null,(function*(){return yield C((()=>c(void 0,null,(function*(){var o;if(n)e.setTransactionChanges(n());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield u())}catch(t){}}))))})),A=t(f,(()=>r())),w;var r})),stopAutoLoad:()=>{return L&&(null==(t=A)||t.close(),A=void 0,L=0),w;var t},save:t=>c(void 0,null,(function*(){return 1!=S&&(S=2,yield w.schedule((()=>c(void 0,null,(function*(){try{yield(t=e.getContent,v(void 0,null,(function*(){return yield n(f,(e=t(),JSON.stringify(e,((t,e)=>r(e,Map)?i.fromEntries([...e]):e))),o);var e})))}catch(t){}var t;S=0}))))),w})),startAutoSave:()=>c(void 0,null,(function*(){return yield w.stopAutoSave().save(),p=e.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();a(n)&&a(o)||w.save((()=>[n,o]))})),w})),stopAutoSave:()=>{var t,n;return t=p,n=e.delListener,!!l(t)||n(t),w},schedule:(...t)=>c(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(x,...t),yield c(void 0,null,(function*(){if(!g){for(g=1;!l((t=x,m=t.shift()));)try{yield m()}catch(t){}g=0}var t})),w})),getStore:()=>e,destroy:()=>w.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(w)})(u,(()=>v(void 0,null,(function*(){return d(yield e(f,o))}))));export{f as createFilePersister};
1
+ import{watch as t}from"fs";import{readFile as n,writeFile as e}from"fs/promises";const o="utf8",l=(t,n)=>t instanceof n,r=t=>null==t,i=Object,u=i.keys,s=i.freeze,d=t=>(t=>l(t,i)&&t.constructor==i)(t)&&0==(t=>u(t).length)(t),a=JSON.parse,c=t=>new Map(t),v=(t,n)=>null==t?void 0:t.get(n),f=(t,n,e)=>{return r(e)?(l=n,null==(o=t)||o.delete(l),t):null==t?void 0:t.set(n,e);var o,l},y=(t,n,e)=>{var o,l,r;return l=n,null!=(r=null==(o=t)?void 0:o.has(l))&&r||f(t,n,e()),v(t,n)};var h=(t,n,e)=>new Promise(((o,l)=>{var r=t=>{try{u(e.next(t))}catch(t){l(t)}},i=t=>{try{u(e.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((e=e.apply(t,n)).next())}));const p=c(),m=c();var A=(t,n,e)=>new Promise(((o,l)=>{var r=t=>{try{u(e.next(t))}catch(t){l(t)}},i=t=>{try{u(e.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((e=e.apply(t,n)).next())}));const S=(u,c,S)=>((t,n,e,o,l,i,u=[])=>{let a,c,A,S=0,g=0;y(p,u,(()=>0)),y(m,u,(()=>[]));const L=t=>h(void 0,null,(function*(){return 2!=S&&(S=1,yield w.schedule((()=>h(void 0,null,(function*(){yield t(),S=0}))))),w})),w={load:(e,o)=>h(void 0,null,(function*(){return yield L((()=>h(void 0,null,(function*(){try{t.setContent(yield n())}catch(n){t.setContent([e,o])}}))))})),startAutoLoad:(...e)=>h(void 0,[...e],(function*(e={},l={}){return w.stopAutoLoad(),yield w.load(e,l),g=1,A=o(((e,o)=>h(void 0,null,(function*(){if(o){const n=o();yield L((()=>h(void 0,null,(function*(){return t.setTransactionChanges(n)}))))}else yield L((()=>h(void 0,null,(function*(){var o;try{t.setContent(null!=(o=null==e?void 0:e())?o:yield n())}catch(t){null==i||i(t)}}))))})))),w})),stopAutoLoad:()=>(g&&(l(A),A=void 0,g=0),w),save:n=>h(void 0,null,(function*(){return 1!=S&&(S=2,yield w.schedule((()=>h(void 0,null,(function*(){try{yield e(t.getContent,n)}catch(t){null==i||i(t)}S=0}))))),w})),startAutoSave:()=>h(void 0,null,(function*(){return yield w.stopAutoSave().save(),a=t.addDidFinishTransactionListener(((t,n)=>{const[e,o]=n();d(e)&&d(o)||w.save((()=>[e,o]))})),w})),stopAutoSave:()=>{var n,e;return n=a,e=t.delListener,!!r(n)||e(n),w},schedule:(...t)=>h(void 0,null,(function*(){return((t,...n)=>{t.push(...n)})(v(m,u),...t),yield h(void 0,null,(function*(){if(!v(p,u)){for(f(p,u,1);!r((t=v(m,u),c=t.shift()));)try{yield c()}catch(t){null==i||i(t)}f(p,u,0)}var t})),w})),getStore:()=>t,destroy:()=>w.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(w)})(u,(()=>A(void 0,null,(function*(){return a(yield n(c,o))}))),(t=>A(void 0,null,(function*(){return yield e(c,(n=t(),JSON.stringify(n,((t,n)=>l(n,Map)?i.fromEntries([...n]):n))),o);var n}))),(n=>t(c,(()=>n()))),(t=>null==t?void 0:t.close()),S);export{S as createFilePersister};