tinybase 7.3.3 → 7.3.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 (244) hide show
  1. package/checkpoints/index.js +12 -11
  2. package/checkpoints/with-schemas/index.js +12 -11
  3. package/common/index.js +3 -2
  4. package/common/with-schemas/index.js +3 -2
  5. package/index.js +92 -64
  6. package/indexes/index.js +13 -12
  7. package/indexes/with-schemas/index.js +13 -12
  8. package/mergeable-store/index.js +92 -64
  9. package/mergeable-store/with-schemas/index.js +92 -64
  10. package/metrics/index.js +13 -12
  11. package/metrics/with-schemas/index.js +13 -12
  12. package/min/checkpoints/index.js +1 -1
  13. package/min/checkpoints/index.js.gz +0 -0
  14. package/min/checkpoints/with-schemas/index.js +1 -1
  15. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  16. package/min/common/index.js +1 -1
  17. package/min/common/index.js.gz +0 -0
  18. package/min/common/with-schemas/index.js +1 -1
  19. package/min/common/with-schemas/index.js.gz +0 -0
  20. package/min/index.js +1 -1
  21. package/min/index.js.gz +0 -0
  22. package/min/indexes/index.js +1 -1
  23. package/min/indexes/index.js.gz +0 -0
  24. package/min/indexes/with-schemas/index.js +1 -1
  25. package/min/indexes/with-schemas/index.js.gz +0 -0
  26. package/min/mergeable-store/index.js +1 -1
  27. package/min/mergeable-store/index.js.gz +0 -0
  28. package/min/mergeable-store/with-schemas/index.js +1 -1
  29. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  30. package/min/metrics/index.js +1 -1
  31. package/min/metrics/index.js.gz +0 -0
  32. package/min/metrics/with-schemas/index.js +1 -1
  33. package/min/metrics/with-schemas/index.js.gz +0 -0
  34. package/min/omni/index.js +1 -1
  35. package/min/omni/index.js.gz +0 -0
  36. package/min/omni/with-schemas/index.js +1 -1
  37. package/min/omni/with-schemas/index.js.gz +0 -0
  38. package/min/persisters/index.js +1 -1
  39. package/min/persisters/index.js.gz +0 -0
  40. package/min/persisters/persister-automerge/index.js +1 -1
  41. package/min/persisters/persister-automerge/index.js.gz +0 -0
  42. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-browser/index.js +1 -1
  45. package/min/persisters/persister-browser/index.js.gz +0 -0
  46. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  49. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  50. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  53. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  54. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  57. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  58. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-electric-sql/index.js +1 -1
  61. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  62. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  65. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  66. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-file/index.js +1 -1
  69. package/min/persisters/persister-file/index.js.gz +0 -0
  70. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-indexed-db/index.js +1 -1
  73. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  74. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-libsql/index.js +1 -1
  77. package/min/persisters/persister-libsql/index.js.gz +0 -0
  78. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-partykit-client/index.js +1 -1
  81. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  82. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/persister-pglite/index.js +1 -1
  85. package/min/persisters/persister-pglite/index.js.gz +0 -0
  86. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  87. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  88. package/min/persisters/persister-postgres/index.js +1 -1
  89. package/min/persisters/persister-postgres/index.js.gz +0 -0
  90. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  91. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  92. package/min/persisters/persister-powersync/index.js +1 -1
  93. package/min/persisters/persister-powersync/index.js.gz +0 -0
  94. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  95. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  96. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  97. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  98. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  99. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  100. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  101. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  102. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  103. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  104. package/min/persisters/persister-remote/index.js +1 -1
  105. package/min/persisters/persister-remote/index.js.gz +0 -0
  106. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  107. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  108. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  109. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  110. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  113. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  114. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-sqlite3/index.js +1 -1
  117. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  118. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/persister-yjs/index.js +1 -1
  121. package/min/persisters/persister-yjs/index.js.gz +0 -0
  122. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  123. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  124. package/min/persisters/with-schemas/index.js +1 -1
  125. package/min/persisters/with-schemas/index.js.gz +0 -0
  126. package/min/queries/index.js +1 -1
  127. package/min/queries/index.js.gz +0 -0
  128. package/min/queries/with-schemas/index.js +1 -1
  129. package/min/queries/with-schemas/index.js.gz +0 -0
  130. package/min/relationships/index.js +1 -1
  131. package/min/relationships/index.js.gz +0 -0
  132. package/min/relationships/with-schemas/index.js +1 -1
  133. package/min/relationships/with-schemas/index.js.gz +0 -0
  134. package/min/store/index.js +1 -1
  135. package/min/store/index.js.gz +0 -0
  136. package/min/store/with-schemas/index.js +1 -1
  137. package/min/store/with-schemas/index.js.gz +0 -0
  138. package/min/synchronizers/index.js +1 -1
  139. package/min/synchronizers/index.js.gz +0 -0
  140. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  141. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  142. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  143. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  144. package/min/synchronizers/synchronizer-local/index.js +1 -1
  145. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  146. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  147. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  148. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  149. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  150. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  151. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  152. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  153. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  154. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  155. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  156. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  157. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  158. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  159. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  160. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  161. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  162. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  163. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  164. package/min/synchronizers/with-schemas/index.js +1 -1
  165. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  166. package/min/ui-react-inspector/index.js +1 -1
  167. package/min/ui-react-inspector/index.js.gz +0 -0
  168. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  169. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  170. package/min/with-schemas/index.js +1 -1
  171. package/min/with-schemas/index.js.gz +0 -0
  172. package/omni/index.js +99 -64
  173. package/omni/with-schemas/index.js +99 -64
  174. package/package.json +3 -3
  175. package/persisters/index.js +19 -11
  176. package/persisters/persister-automerge/index.js +17 -9
  177. package/persisters/persister-automerge/with-schemas/index.js +17 -9
  178. package/persisters/persister-browser/index.js +17 -9
  179. package/persisters/persister-browser/with-schemas/index.js +17 -9
  180. package/persisters/persister-cr-sqlite-wasm/index.js +19 -11
  181. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +19 -11
  182. package/persisters/persister-durable-object-sql-storage/index.js +19 -11
  183. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +19 -11
  184. package/persisters/persister-durable-object-storage/index.js +19 -11
  185. package/persisters/persister-durable-object-storage/with-schemas/index.js +19 -11
  186. package/persisters/persister-electric-sql/index.js +19 -11
  187. package/persisters/persister-electric-sql/with-schemas/index.js +19 -11
  188. package/persisters/persister-expo-sqlite/index.js +19 -11
  189. package/persisters/persister-expo-sqlite/with-schemas/index.js +19 -11
  190. package/persisters/persister-file/index.js +17 -9
  191. package/persisters/persister-file/with-schemas/index.js +17 -9
  192. package/persisters/persister-indexed-db/index.js +17 -9
  193. package/persisters/persister-indexed-db/with-schemas/index.js +17 -9
  194. package/persisters/persister-libsql/index.js +19 -11
  195. package/persisters/persister-libsql/with-schemas/index.js +19 -11
  196. package/persisters/persister-partykit-client/index.js +17 -9
  197. package/persisters/persister-partykit-client/with-schemas/index.js +17 -9
  198. package/persisters/persister-partykit-server/index.js +2 -2
  199. package/persisters/persister-partykit-server/with-schemas/index.js +2 -2
  200. package/persisters/persister-pglite/index.js +19 -11
  201. package/persisters/persister-pglite/with-schemas/index.js +19 -11
  202. package/persisters/persister-postgres/index.js +19 -11
  203. package/persisters/persister-postgres/with-schemas/index.js +19 -11
  204. package/persisters/persister-powersync/index.js +19 -11
  205. package/persisters/persister-powersync/with-schemas/index.js +19 -11
  206. package/persisters/persister-react-native-mmkv/index.js +17 -9
  207. package/persisters/persister-react-native-mmkv/with-schemas/index.js +17 -9
  208. package/persisters/persister-react-native-sqlite/index.js +19 -11
  209. package/persisters/persister-react-native-sqlite/with-schemas/index.js +19 -11
  210. package/persisters/persister-remote/index.js +17 -9
  211. package/persisters/persister-remote/with-schemas/index.js +17 -9
  212. package/persisters/persister-sqlite-bun/index.js +19 -11
  213. package/persisters/persister-sqlite-bun/with-schemas/index.js +19 -11
  214. package/persisters/persister-sqlite-wasm/index.js +19 -11
  215. package/persisters/persister-sqlite-wasm/with-schemas/index.js +19 -11
  216. package/persisters/persister-sqlite3/index.js +19 -11
  217. package/persisters/persister-sqlite3/with-schemas/index.js +19 -11
  218. package/persisters/persister-yjs/index.js +19 -11
  219. package/persisters/persister-yjs/with-schemas/index.js +19 -11
  220. package/persisters/with-schemas/index.js +19 -11
  221. package/queries/index.js +15 -14
  222. package/queries/with-schemas/index.js +15 -14
  223. package/readme.md +2 -2
  224. package/relationships/index.js +13 -12
  225. package/relationships/with-schemas/index.js +13 -12
  226. package/store/index.js +74 -60
  227. package/store/with-schemas/index.js +74 -60
  228. package/synchronizers/index.js +17 -9
  229. package/synchronizers/synchronizer-broadcast-channel/index.js +17 -9
  230. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -9
  231. package/synchronizers/synchronizer-local/index.js +19 -11
  232. package/synchronizers/synchronizer-local/with-schemas/index.js +19 -11
  233. package/synchronizers/synchronizer-ws-client/index.js +17 -9
  234. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +17 -9
  235. package/synchronizers/synchronizer-ws-server/index.js +20 -12
  236. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +20 -12
  237. package/synchronizers/synchronizer-ws-server-durable-object/index.js +17 -9
  238. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +17 -9
  239. package/synchronizers/synchronizer-ws-server-simple/index.js +11 -10
  240. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +11 -10
  241. package/synchronizers/with-schemas/index.js +17 -9
  242. package/ui-react-inspector/index.js +81 -60
  243. package/ui-react-inspector/with-schemas/index.js +81 -60
  244. package/with-schemas/index.js +92 -64
@@ -79,17 +79,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
79
79
  const collForEach = (coll, cb) => coll?.forEach(cb);
80
80
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
81
81
 
82
- const mapNew = (entries) => new Map(entries);
83
- const mapGet = (map, key) => map?.get(key);
84
- const mapSet = (map, key, value) =>
85
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
86
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
87
- if (!collHas(map, key)) {
88
- mapSet(map, key, getDefaultValue());
82
+ const map = Map;
83
+ const mapNew = (entries) => new map(entries);
84
+ const mapGet = (map2, key) => map2?.get(key);
85
+ const mapSet = (map2, key, value) =>
86
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
87
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
88
+ if (!collHas(map2, key)) {
89
+ mapSet(map2, key, getDefaultValue());
89
90
  } else {
90
- hadExistingValue?.(mapGet(map, key));
91
+ hadExistingValue?.(mapGet(map2, key));
91
92
  }
92
- return mapGet(map, key);
93
+ return mapGet(map2, key);
93
94
  };
94
95
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
95
96
  ifNotUndefined(
@@ -291,6 +292,11 @@ const createCustomPersister = (
291
292
  ? store.applyChanges
292
293
  : store.setContent)(contentOrChanges);
293
294
  };
295
+ const saveAfterMutated = async () => {
296
+ if (isAutoSaving() && store.hadMutated?.()) {
297
+ await save();
298
+ }
299
+ };
294
300
  const load = async (initialContent) => {
295
301
  /* istanbul ignore else */
296
302
  if (status != 2 /* Saving */) {
@@ -315,6 +321,7 @@ const createCustomPersister = (
315
321
  },
316
322
  );
317
323
  setStatus(0 /* Idle */);
324
+ await saveAfterMutated();
318
325
  });
319
326
  }
320
327
  return persister;
@@ -333,6 +340,7 @@ const createCustomPersister = (
333
340
  loads++;
334
341
  setContentOrChanges(changes ?? content);
335
342
  setStatus(0 /* Idle */);
343
+ await saveAfterMutated();
336
344
  }
337
345
  } else {
338
346
  await load();
@@ -79,17 +79,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
79
79
  const collForEach = (coll, cb) => coll?.forEach(cb);
80
80
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
81
81
 
82
- const mapNew = (entries) => new Map(entries);
83
- const mapGet = (map, key) => map?.get(key);
84
- const mapSet = (map, key, value) =>
85
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
86
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
87
- if (!collHas(map, key)) {
88
- mapSet(map, key, getDefaultValue());
82
+ const map = Map;
83
+ const mapNew = (entries) => new map(entries);
84
+ const mapGet = (map2, key) => map2?.get(key);
85
+ const mapSet = (map2, key, value) =>
86
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
87
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
88
+ if (!collHas(map2, key)) {
89
+ mapSet(map2, key, getDefaultValue());
89
90
  } else {
90
- hadExistingValue?.(mapGet(map, key));
91
+ hadExistingValue?.(mapGet(map2, key));
91
92
  }
92
- return mapGet(map, key);
93
+ return mapGet(map2, key);
93
94
  };
94
95
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
95
96
  ifNotUndefined(
@@ -291,6 +292,11 @@ const createCustomPersister = (
291
292
  ? store.applyChanges
292
293
  : store.setContent)(contentOrChanges);
293
294
  };
295
+ const saveAfterMutated = async () => {
296
+ if (isAutoSaving() && store.hadMutated?.()) {
297
+ await save();
298
+ }
299
+ };
294
300
  const load = async (initialContent) => {
295
301
  /* istanbul ignore else */
296
302
  if (status != 2 /* Saving */) {
@@ -315,6 +321,7 @@ const createCustomPersister = (
315
321
  },
316
322
  );
317
323
  setStatus(0 /* Idle */);
324
+ await saveAfterMutated();
318
325
  });
319
326
  }
320
327
  return persister;
@@ -333,6 +340,7 @@ const createCustomPersister = (
333
340
  loads++;
334
341
  setContentOrChanges(changes ?? content);
335
342
  setStatus(0 /* Idle */);
343
+ await saveAfterMutated();
336
344
  }
337
345
  } else {
338
346
  await load();
@@ -69,17 +69,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
69
69
  const collForEach = (coll, cb) => coll?.forEach(cb);
70
70
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
71
71
 
72
- const mapNew = (entries) => new Map(entries);
73
- const mapGet = (map, key) => map?.get(key);
74
- const mapSet = (map, key, value) =>
75
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
76
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
77
- if (!collHas(map, key)) {
78
- mapSet(map, key, getDefaultValue());
72
+ const map = Map;
73
+ const mapNew = (entries) => new map(entries);
74
+ const mapGet = (map2, key) => map2?.get(key);
75
+ const mapSet = (map2, key, value) =>
76
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
77
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
78
+ if (!collHas(map2, key)) {
79
+ mapSet(map2, key, getDefaultValue());
79
80
  } else {
80
- hadExistingValue?.(mapGet(map, key));
81
+ hadExistingValue?.(mapGet(map2, key));
81
82
  }
82
- return mapGet(map, key);
83
+ return mapGet(map2, key);
83
84
  };
84
85
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
85
86
  ifNotUndefined(
@@ -281,6 +282,11 @@ const createCustomPersister = (
281
282
  ? store.applyChanges
282
283
  : store.setContent)(contentOrChanges);
283
284
  };
285
+ const saveAfterMutated = async () => {
286
+ if (isAutoSaving() && store.hadMutated?.()) {
287
+ await save();
288
+ }
289
+ };
284
290
  const load = async (initialContent) => {
285
291
  /* istanbul ignore else */
286
292
  if (status != 2 /* Saving */) {
@@ -305,6 +311,7 @@ const createCustomPersister = (
305
311
  },
306
312
  );
307
313
  setStatus(0 /* Idle */);
314
+ await saveAfterMutated();
308
315
  });
309
316
  }
310
317
  return persister;
@@ -323,6 +330,7 @@ const createCustomPersister = (
323
330
  loads++;
324
331
  setContentOrChanges(changes ?? content);
325
332
  setStatus(0 /* Idle */);
333
+ await saveAfterMutated();
326
334
  }
327
335
  } else {
328
336
  await load();
@@ -69,17 +69,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
69
69
  const collForEach = (coll, cb) => coll?.forEach(cb);
70
70
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
71
71
 
72
- const mapNew = (entries) => new Map(entries);
73
- const mapGet = (map, key) => map?.get(key);
74
- const mapSet = (map, key, value) =>
75
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
76
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
77
- if (!collHas(map, key)) {
78
- mapSet(map, key, getDefaultValue());
72
+ const map = Map;
73
+ const mapNew = (entries) => new map(entries);
74
+ const mapGet = (map2, key) => map2?.get(key);
75
+ const mapSet = (map2, key, value) =>
76
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
77
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
78
+ if (!collHas(map2, key)) {
79
+ mapSet(map2, key, getDefaultValue());
79
80
  } else {
80
- hadExistingValue?.(mapGet(map, key));
81
+ hadExistingValue?.(mapGet(map2, key));
81
82
  }
82
- return mapGet(map, key);
83
+ return mapGet(map2, key);
83
84
  };
84
85
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
85
86
  ifNotUndefined(
@@ -281,6 +282,11 @@ const createCustomPersister = (
281
282
  ? store.applyChanges
282
283
  : store.setContent)(contentOrChanges);
283
284
  };
285
+ const saveAfterMutated = async () => {
286
+ if (isAutoSaving() && store.hadMutated?.()) {
287
+ await save();
288
+ }
289
+ };
284
290
  const load = async (initialContent) => {
285
291
  /* istanbul ignore else */
286
292
  if (status != 2 /* Saving */) {
@@ -305,6 +311,7 @@ const createCustomPersister = (
305
311
  },
306
312
  );
307
313
  setStatus(0 /* Idle */);
314
+ await saveAfterMutated();
308
315
  });
309
316
  }
310
317
  return persister;
@@ -323,6 +330,7 @@ const createCustomPersister = (
323
330
  loads++;
324
331
  setContentOrChanges(changes ?? content);
325
332
  setStatus(0 /* Idle */);
333
+ await saveAfterMutated();
326
334
  }
327
335
  } else {
328
336
  await load();
@@ -135,21 +135,22 @@ const objValues = (obj) => object.values(obj);
135
135
  const objSize = (obj) => size(objIds(obj));
136
136
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
137
137
 
138
- const mapNew = (entries) => new Map(entries);
139
- const mapGet = (map, key) => map?.get(key);
140
- const mapForEach = (map, cb) =>
141
- collForEach(map, (value, key) => cb(key, value));
138
+ const map = Map;
139
+ const mapNew = (entries) => new map(entries);
140
+ const mapGet = (map2, key) => map2?.get(key);
141
+ const mapForEach = (map2, cb) =>
142
+ collForEach(map2, (value, key) => cb(key, value));
142
143
  const mapMap = (coll, cb) =>
143
144
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
144
- const mapSet = (map, key, value) =>
145
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
146
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
147
- if (!collHas(map, key)) {
148
- mapSet(map, key, getDefaultValue());
145
+ const mapSet = (map2, key, value) =>
146
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
147
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
148
+ if (!collHas(map2, key)) {
149
+ mapSet(map2, key, getDefaultValue());
149
150
  } else {
150
- hadExistingValue?.(mapGet(map, key));
151
+ hadExistingValue?.(mapGet(map2, key));
151
152
  }
152
- return mapGet(map, key);
153
+ return mapGet(map2, key);
153
154
  };
154
155
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
155
156
  ifNotUndefined(
@@ -485,6 +486,11 @@ const createCustomPersister = (
485
486
  ? store.applyChanges
486
487
  : store.setContent)(contentOrChanges);
487
488
  };
489
+ const saveAfterMutated = async () => {
490
+ if (isAutoSaving() && store.hadMutated?.()) {
491
+ await save();
492
+ }
493
+ };
488
494
  const load = async (initialContent) => {
489
495
  /* istanbul ignore else */
490
496
  if (status != 2 /* Saving */) {
@@ -509,6 +515,7 @@ const createCustomPersister = (
509
515
  },
510
516
  );
511
517
  setStatus(0 /* Idle */);
518
+ await saveAfterMutated();
512
519
  });
513
520
  }
514
521
  return persister;
@@ -527,6 +534,7 @@ const createCustomPersister = (
527
534
  loads++;
528
535
  setContentOrChanges(changes ?? content);
529
536
  setStatus(0 /* Idle */);
537
+ await saveAfterMutated();
530
538
  }
531
539
  } else {
532
540
  await load();
@@ -135,21 +135,22 @@ const objValues = (obj) => object.values(obj);
135
135
  const objSize = (obj) => size(objIds(obj));
136
136
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
137
137
 
138
- const mapNew = (entries) => new Map(entries);
139
- const mapGet = (map, key) => map?.get(key);
140
- const mapForEach = (map, cb) =>
141
- collForEach(map, (value, key) => cb(key, value));
138
+ const map = Map;
139
+ const mapNew = (entries) => new map(entries);
140
+ const mapGet = (map2, key) => map2?.get(key);
141
+ const mapForEach = (map2, cb) =>
142
+ collForEach(map2, (value, key) => cb(key, value));
142
143
  const mapMap = (coll, cb) =>
143
144
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
144
- const mapSet = (map, key, value) =>
145
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
146
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
147
- if (!collHas(map, key)) {
148
- mapSet(map, key, getDefaultValue());
145
+ const mapSet = (map2, key, value) =>
146
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
147
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
148
+ if (!collHas(map2, key)) {
149
+ mapSet(map2, key, getDefaultValue());
149
150
  } else {
150
- hadExistingValue?.(mapGet(map, key));
151
+ hadExistingValue?.(mapGet(map2, key));
151
152
  }
152
- return mapGet(map, key);
153
+ return mapGet(map2, key);
153
154
  };
154
155
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
155
156
  ifNotUndefined(
@@ -485,6 +486,11 @@ const createCustomPersister = (
485
486
  ? store.applyChanges
486
487
  : store.setContent)(contentOrChanges);
487
488
  };
489
+ const saveAfterMutated = async () => {
490
+ if (isAutoSaving() && store.hadMutated?.()) {
491
+ await save();
492
+ }
493
+ };
488
494
  const load = async (initialContent) => {
489
495
  /* istanbul ignore else */
490
496
  if (status != 2 /* Saving */) {
@@ -509,6 +515,7 @@ const createCustomPersister = (
509
515
  },
510
516
  );
511
517
  setStatus(0 /* Idle */);
518
+ await saveAfterMutated();
512
519
  });
513
520
  }
514
521
  return persister;
@@ -527,6 +534,7 @@ const createCustomPersister = (
527
534
  loads++;
528
535
  setContentOrChanges(changes ?? content);
529
536
  setStatus(0 /* Idle */);
537
+ await saveAfterMutated();
530
538
  }
531
539
  } else {
532
540
  await load();
@@ -86,17 +86,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
86
86
  const collForEach = (coll, cb) => coll?.forEach(cb);
87
87
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
88
88
 
89
- const mapNew = (entries) => new Map(entries);
90
- const mapGet = (map, key) => map?.get(key);
91
- const mapSet = (map, key, value) =>
92
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
93
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
94
- if (!collHas(map, key)) {
95
- mapSet(map, key, getDefaultValue());
89
+ const map = Map;
90
+ const mapNew = (entries) => new map(entries);
91
+ const mapGet = (map2, key) => map2?.get(key);
92
+ const mapSet = (map2, key, value) =>
93
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
94
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
95
+ if (!collHas(map2, key)) {
96
+ mapSet(map2, key, getDefaultValue());
96
97
  } else {
97
- hadExistingValue?.(mapGet(map, key));
98
+ hadExistingValue?.(mapGet(map2, key));
98
99
  }
99
- return mapGet(map, key);
100
+ return mapGet(map2, key);
100
101
  };
101
102
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
102
103
  ifNotUndefined(
@@ -298,6 +299,11 @@ const createCustomPersister = (
298
299
  ? store.applyChanges
299
300
  : store.setContent)(contentOrChanges);
300
301
  };
302
+ const saveAfterMutated = async () => {
303
+ if (isAutoSaving() && store.hadMutated?.()) {
304
+ await save();
305
+ }
306
+ };
301
307
  const load = async (initialContent) => {
302
308
  /* istanbul ignore else */
303
309
  if (status != 2 /* Saving */) {
@@ -322,6 +328,7 @@ const createCustomPersister = (
322
328
  },
323
329
  );
324
330
  setStatus(0 /* Idle */);
331
+ await saveAfterMutated();
325
332
  });
326
333
  }
327
334
  return persister;
@@ -340,6 +347,7 @@ const createCustomPersister = (
340
347
  loads++;
341
348
  setContentOrChanges(changes ?? content);
342
349
  setStatus(0 /* Idle */);
350
+ await saveAfterMutated();
343
351
  }
344
352
  } else {
345
353
  await load();
@@ -86,17 +86,18 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
86
86
  const collForEach = (coll, cb) => coll?.forEach(cb);
87
87
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
88
88
 
89
- const mapNew = (entries) => new Map(entries);
90
- const mapGet = (map, key) => map?.get(key);
91
- const mapSet = (map, key, value) =>
92
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
93
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
94
- if (!collHas(map, key)) {
95
- mapSet(map, key, getDefaultValue());
89
+ const map = Map;
90
+ const mapNew = (entries) => new map(entries);
91
+ const mapGet = (map2, key) => map2?.get(key);
92
+ const mapSet = (map2, key, value) =>
93
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
94
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
95
+ if (!collHas(map2, key)) {
96
+ mapSet(map2, key, getDefaultValue());
96
97
  } else {
97
- hadExistingValue?.(mapGet(map, key));
98
+ hadExistingValue?.(mapGet(map2, key));
98
99
  }
99
- return mapGet(map, key);
100
+ return mapGet(map2, key);
100
101
  };
101
102
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
102
103
  ifNotUndefined(
@@ -298,6 +299,11 @@ const createCustomPersister = (
298
299
  ? store.applyChanges
299
300
  : store.setContent)(contentOrChanges);
300
301
  };
302
+ const saveAfterMutated = async () => {
303
+ if (isAutoSaving() && store.hadMutated?.()) {
304
+ await save();
305
+ }
306
+ };
301
307
  const load = async (initialContent) => {
302
308
  /* istanbul ignore else */
303
309
  if (status != 2 /* Saving */) {
@@ -322,6 +328,7 @@ const createCustomPersister = (
322
328
  },
323
329
  );
324
330
  setStatus(0 /* Idle */);
331
+ await saveAfterMutated();
325
332
  });
326
333
  }
327
334
  return persister;
@@ -340,6 +347,7 @@ const createCustomPersister = (
340
347
  loads++;
341
348
  setContentOrChanges(changes ?? content);
342
349
  setStatus(0 /* Idle */);
350
+ await saveAfterMutated();
343
351
  }
344
352
  } else {
345
353
  await load();
@@ -75,8 +75,8 @@ const replaceUndefinedString = (obj) =>
75
75
 
76
76
  const collForEach = (coll, cb) => coll?.forEach(cb);
77
77
 
78
- const mapForEach = (map, cb) =>
79
- collForEach(map, (value, key) => cb(key, value));
78
+ const mapForEach = (map2, cb) =>
79
+ collForEach(map2, (value, key) => cb(key, value));
80
80
 
81
81
  const SET_CHANGES = 's';
82
82
  const STORE_PATH = '/store';
@@ -75,8 +75,8 @@ const replaceUndefinedString = (obj) =>
75
75
 
76
76
  const collForEach = (coll, cb) => coll?.forEach(cb);
77
77
 
78
- const mapForEach = (map, cb) =>
79
- collForEach(map, (value, key) => cb(key, value));
78
+ const mapForEach = (map2, cb) =>
79
+ collForEach(map2, (value, key) => cb(key, value));
80
80
 
81
81
  const SET_CHANGES = 's';
82
82
  const STORE_PATH = '/store';
@@ -115,21 +115,22 @@ const getHash = (string) => {
115
115
  return hash >>> 0;
116
116
  };
117
117
 
118
- const mapNew = (entries) => new Map(entries);
119
- const mapGet = (map, key) => map?.get(key);
120
- const mapForEach = (map, cb) =>
121
- collForEach(map, (value, key) => cb(key, value));
118
+ const map = Map;
119
+ const mapNew = (entries) => new map(entries);
120
+ const mapGet = (map2, key) => map2?.get(key);
121
+ const mapForEach = (map2, cb) =>
122
+ collForEach(map2, (value, key) => cb(key, value));
122
123
  const mapMap = (coll, cb) =>
123
124
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
124
- const mapSet = (map, key, value) =>
125
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
126
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
127
- if (!collHas(map, key)) {
128
- mapSet(map, key, getDefaultValue());
125
+ const mapSet = (map2, key, value) =>
126
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
127
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
128
+ if (!collHas(map2, key)) {
129
+ mapSet(map2, key, getDefaultValue());
129
130
  } else {
130
- hadExistingValue?.(mapGet(map, key));
131
+ hadExistingValue?.(mapGet(map2, key));
131
132
  }
132
- return mapGet(map, key);
133
+ return mapGet(map2, key);
133
134
  };
134
135
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
135
136
  ifNotUndefined(
@@ -490,6 +491,11 @@ const createCustomPersister = (
490
491
  ? store.applyChanges
491
492
  : store.setContent)(contentOrChanges);
492
493
  };
494
+ const saveAfterMutated = async () => {
495
+ if (isAutoSaving() && store.hadMutated?.()) {
496
+ await save();
497
+ }
498
+ };
493
499
  const load = async (initialContent) => {
494
500
  /* istanbul ignore else */
495
501
  if (status != 2 /* Saving */) {
@@ -514,6 +520,7 @@ const createCustomPersister = (
514
520
  },
515
521
  );
516
522
  setStatus(0 /* Idle */);
523
+ await saveAfterMutated();
517
524
  });
518
525
  }
519
526
  return persister;
@@ -532,6 +539,7 @@ const createCustomPersister = (
532
539
  loads++;
533
540
  setContentOrChanges(changes ?? content);
534
541
  setStatus(0 /* Idle */);
542
+ await saveAfterMutated();
535
543
  }
536
544
  } else {
537
545
  await load();
@@ -115,21 +115,22 @@ const getHash = (string) => {
115
115
  return hash >>> 0;
116
116
  };
117
117
 
118
- const mapNew = (entries) => new Map(entries);
119
- const mapGet = (map, key) => map?.get(key);
120
- const mapForEach = (map, cb) =>
121
- collForEach(map, (value, key) => cb(key, value));
118
+ const map = Map;
119
+ const mapNew = (entries) => new map(entries);
120
+ const mapGet = (map2, key) => map2?.get(key);
121
+ const mapForEach = (map2, cb) =>
122
+ collForEach(map2, (value, key) => cb(key, value));
122
123
  const mapMap = (coll, cb) =>
123
124
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
124
- const mapSet = (map, key, value) =>
125
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
126
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
127
- if (!collHas(map, key)) {
128
- mapSet(map, key, getDefaultValue());
125
+ const mapSet = (map2, key, value) =>
126
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
127
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
128
+ if (!collHas(map2, key)) {
129
+ mapSet(map2, key, getDefaultValue());
129
130
  } else {
130
- hadExistingValue?.(mapGet(map, key));
131
+ hadExistingValue?.(mapGet(map2, key));
131
132
  }
132
- return mapGet(map, key);
133
+ return mapGet(map2, key);
133
134
  };
134
135
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
135
136
  ifNotUndefined(
@@ -490,6 +491,11 @@ const createCustomPersister = (
490
491
  ? store.applyChanges
491
492
  : store.setContent)(contentOrChanges);
492
493
  };
494
+ const saveAfterMutated = async () => {
495
+ if (isAutoSaving() && store.hadMutated?.()) {
496
+ await save();
497
+ }
498
+ };
493
499
  const load = async (initialContent) => {
494
500
  /* istanbul ignore else */
495
501
  if (status != 2 /* Saving */) {
@@ -514,6 +520,7 @@ const createCustomPersister = (
514
520
  },
515
521
  );
516
522
  setStatus(0 /* Idle */);
523
+ await saveAfterMutated();
517
524
  });
518
525
  }
519
526
  return persister;
@@ -532,6 +539,7 @@ const createCustomPersister = (
532
539
  loads++;
533
540
  setContentOrChanges(changes ?? content);
534
541
  setStatus(0 /* Idle */);
542
+ await saveAfterMutated();
535
543
  }
536
544
  } else {
537
545
  await load();