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
@@ -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();
@@ -118,21 +118,22 @@ const collClear = (coll) => coll.clear();
118
118
  const collForEach = (coll, cb) => coll?.forEach(cb);
119
119
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
120
120
 
121
- const mapNew = (entries) => new Map(entries);
122
- const mapGet = (map, key) => map?.get(key);
123
- const mapForEach = (map, cb) =>
124
- collForEach(map, (value, key) => cb(key, value));
121
+ const map = Map;
122
+ const mapNew = (entries) => new map(entries);
123
+ const mapGet = (map2, key) => map2?.get(key);
124
+ const mapForEach = (map2, cb) =>
125
+ collForEach(map2, (value, key) => cb(key, value));
125
126
  const mapMap = (coll, cb) =>
126
127
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
127
- const mapSet = (map, key, value) =>
128
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
129
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
130
- if (!collHas(map, key)) {
131
- mapSet(map, key, getDefaultValue());
128
+ const mapSet = (map2, key, value) =>
129
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
130
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
131
+ if (!collHas(map2, key)) {
132
+ mapSet(map2, key, getDefaultValue());
132
133
  } else {
133
- hadExistingValue?.(mapGet(map, key));
134
+ hadExistingValue?.(mapGet(map2, key));
134
135
  }
135
- return mapGet(map, key);
136
+ return mapGet(map2, key);
136
137
  };
137
138
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
138
139
  ifNotUndefined(
@@ -342,6 +343,11 @@ const createCustomPersister = (
342
343
  ? store.applyChanges
343
344
  : store.setContent)(contentOrChanges);
344
345
  };
346
+ const saveAfterMutated = async () => {
347
+ if (isAutoSaving() && store.hadMutated?.()) {
348
+ await save();
349
+ }
350
+ };
345
351
  const load = async (initialContent) => {
346
352
  /* istanbul ignore else */
347
353
  if (status != 2 /* Saving */) {
@@ -366,6 +372,7 @@ const createCustomPersister = (
366
372
  },
367
373
  );
368
374
  setStatus(0 /* Idle */);
375
+ await saveAfterMutated();
369
376
  });
370
377
  }
371
378
  return persister;
@@ -384,6 +391,7 @@ const createCustomPersister = (
384
391
  loads++;
385
392
  setContentOrChanges(changes ?? content);
386
393
  setStatus(0 /* Idle */);
394
+ await saveAfterMutated();
387
395
  }
388
396
  } else {
389
397
  await load();
@@ -118,21 +118,22 @@ const collClear = (coll) => coll.clear();
118
118
  const collForEach = (coll, cb) => coll?.forEach(cb);
119
119
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
120
120
 
121
- const mapNew = (entries) => new Map(entries);
122
- const mapGet = (map, key) => map?.get(key);
123
- const mapForEach = (map, cb) =>
124
- collForEach(map, (value, key) => cb(key, value));
121
+ const map = Map;
122
+ const mapNew = (entries) => new map(entries);
123
+ const mapGet = (map2, key) => map2?.get(key);
124
+ const mapForEach = (map2, cb) =>
125
+ collForEach(map2, (value, key) => cb(key, value));
125
126
  const mapMap = (coll, cb) =>
126
127
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
127
- const mapSet = (map, key, value) =>
128
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
129
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
130
- if (!collHas(map, key)) {
131
- mapSet(map, key, getDefaultValue());
128
+ const mapSet = (map2, key, value) =>
129
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
130
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
131
+ if (!collHas(map2, key)) {
132
+ mapSet(map2, key, getDefaultValue());
132
133
  } else {
133
- hadExistingValue?.(mapGet(map, key));
134
+ hadExistingValue?.(mapGet(map2, key));
134
135
  }
135
- return mapGet(map, key);
136
+ return mapGet(map2, key);
136
137
  };
137
138
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
138
139
  ifNotUndefined(
@@ -342,6 +343,11 @@ const createCustomPersister = (
342
343
  ? store.applyChanges
343
344
  : store.setContent)(contentOrChanges);
344
345
  };
346
+ const saveAfterMutated = async () => {
347
+ if (isAutoSaving() && store.hadMutated?.()) {
348
+ await save();
349
+ }
350
+ };
345
351
  const load = async (initialContent) => {
346
352
  /* istanbul ignore else */
347
353
  if (status != 2 /* Saving */) {
@@ -366,6 +372,7 @@ const createCustomPersister = (
366
372
  },
367
373
  );
368
374
  setStatus(0 /* Idle */);
375
+ await saveAfterMutated();
369
376
  });
370
377
  }
371
378
  return persister;
@@ -384,6 +391,7 @@ const createCustomPersister = (
384
391
  loads++;
385
392
  setContentOrChanges(changes ?? content);
386
393
  setStatus(0 /* Idle */);
394
+ await saveAfterMutated();
387
395
  }
388
396
  } else {
389
397
  await load();
@@ -71,21 +71,22 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
71
71
  const collForEach = (coll, cb) => coll?.forEach(cb);
72
72
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
73
73
 
74
- const mapNew = (entries) => new Map(entries);
75
- const mapGet = (map, key) => map?.get(key);
76
- const mapSet = (map, key, value) =>
77
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
78
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
79
- if (!collHas(map, key)) {
80
- mapSet(map, key, getDefaultValue());
74
+ const map = Map;
75
+ const mapNew = (entries) => new map(entries);
76
+ const mapGet = (map2, key) => map2?.get(key);
77
+ const mapSet = (map2, key, value) =>
78
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
79
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
80
+ if (!collHas(map2, key)) {
81
+ mapSet(map2, key, getDefaultValue());
81
82
  } else {
82
- hadExistingValue?.(mapGet(map, key));
83
+ hadExistingValue?.(mapGet(map2, key));
83
84
  }
84
- return mapGet(map, key);
85
+ return mapGet(map2, key);
85
86
  };
86
- const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
87
+ const mapToObj = (map2, valueMapper, excludeMapValue, excludeObjValue) => {
87
88
  const obj = {};
88
- collForEach(map, (mapValue, id) => {
89
+ collForEach(map2, (mapValue, id) => {
89
90
  {
90
91
  const objValue = mapValue;
91
92
  {
@@ -303,6 +304,11 @@ const createCustomPersister = (
303
304
  ? store.applyChanges
304
305
  : store.setContent)(contentOrChanges);
305
306
  };
307
+ const saveAfterMutated = async () => {
308
+ if (isAutoSaving() && store.hadMutated?.()) {
309
+ await save();
310
+ }
311
+ };
306
312
  const load = async (initialContent) => {
307
313
  /* istanbul ignore else */
308
314
  if (status != 2 /* Saving */) {
@@ -327,6 +333,7 @@ const createCustomPersister = (
327
333
  },
328
334
  );
329
335
  setStatus(0 /* Idle */);
336
+ await saveAfterMutated();
330
337
  });
331
338
  }
332
339
  return persister;
@@ -345,6 +352,7 @@ const createCustomPersister = (
345
352
  loads++;
346
353
  setContentOrChanges(changes ?? content);
347
354
  setStatus(0 /* Idle */);
355
+ await saveAfterMutated();
348
356
  }
349
357
  } else {
350
358
  await load();
@@ -71,21 +71,22 @@ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
71
71
  const collForEach = (coll, cb) => coll?.forEach(cb);
72
72
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
73
73
 
74
- const mapNew = (entries) => new Map(entries);
75
- const mapGet = (map, key) => map?.get(key);
76
- const mapSet = (map, key, value) =>
77
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
78
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
79
- if (!collHas(map, key)) {
80
- mapSet(map, key, getDefaultValue());
74
+ const map = Map;
75
+ const mapNew = (entries) => new map(entries);
76
+ const mapGet = (map2, key) => map2?.get(key);
77
+ const mapSet = (map2, key, value) =>
78
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
79
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
80
+ if (!collHas(map2, key)) {
81
+ mapSet(map2, key, getDefaultValue());
81
82
  } else {
82
- hadExistingValue?.(mapGet(map, key));
83
+ hadExistingValue?.(mapGet(map2, key));
83
84
  }
84
- return mapGet(map, key);
85
+ return mapGet(map2, key);
85
86
  };
86
- const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
87
+ const mapToObj = (map2, valueMapper, excludeMapValue, excludeObjValue) => {
87
88
  const obj = {};
88
- collForEach(map, (mapValue, id) => {
89
+ collForEach(map2, (mapValue, id) => {
89
90
  {
90
91
  const objValue = mapValue;
91
92
  {
@@ -303,6 +304,11 @@ const createCustomPersister = (
303
304
  ? store.applyChanges
304
305
  : store.setContent)(contentOrChanges);
305
306
  };
307
+ const saveAfterMutated = async () => {
308
+ if (isAutoSaving() && store.hadMutated?.()) {
309
+ await save();
310
+ }
311
+ };
306
312
  const load = async (initialContent) => {
307
313
  /* istanbul ignore else */
308
314
  if (status != 2 /* Saving */) {
@@ -327,6 +333,7 @@ const createCustomPersister = (
327
333
  },
328
334
  );
329
335
  setStatus(0 /* Idle */);
336
+ await saveAfterMutated();
330
337
  });
331
338
  }
332
339
  return persister;
@@ -345,6 +352,7 @@ const createCustomPersister = (
345
352
  loads++;
346
353
  setContentOrChanges(changes ?? content);
347
354
  setStatus(0 /* Idle */);
355
+ await saveAfterMutated();
348
356
  }
349
357
  } else {
350
358
  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();
@@ -137,21 +137,22 @@ const objValues = (obj) => object.values(obj);
137
137
  const objSize = (obj) => size(objIds(obj));
138
138
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
139
139
 
140
- const mapNew = (entries) => new Map(entries);
141
- const mapGet = (map, key) => map?.get(key);
142
- const mapForEach = (map, cb) =>
143
- collForEach(map, (value, key) => cb(key, value));
140
+ const map = Map;
141
+ const mapNew = (entries) => new map(entries);
142
+ const mapGet = (map2, key) => map2?.get(key);
143
+ const mapForEach = (map2, cb) =>
144
+ collForEach(map2, (value, key) => cb(key, value));
144
145
  const mapMap = (coll, cb) =>
145
146
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
146
- const mapSet = (map, key, value) =>
147
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
148
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
149
- if (!collHas(map, key)) {
150
- mapSet(map, key, getDefaultValue());
147
+ const mapSet = (map2, key, value) =>
148
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
149
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
150
+ if (!collHas(map2, key)) {
151
+ mapSet(map2, key, getDefaultValue());
151
152
  } else {
152
- hadExistingValue?.(mapGet(map, key));
153
+ hadExistingValue?.(mapGet(map2, key));
153
154
  }
154
- return mapGet(map, key);
155
+ return mapGet(map2, key);
155
156
  };
156
157
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
157
158
  ifNotUndefined(
@@ -487,6 +488,11 @@ const createCustomPersister = (
487
488
  ? store.applyChanges
488
489
  : store.setContent)(contentOrChanges);
489
490
  };
491
+ const saveAfterMutated = async () => {
492
+ if (isAutoSaving() && store.hadMutated?.()) {
493
+ await save();
494
+ }
495
+ };
490
496
  const load = async (initialContent) => {
491
497
  /* istanbul ignore else */
492
498
  if (status != 2 /* Saving */) {
@@ -511,6 +517,7 @@ const createCustomPersister = (
511
517
  },
512
518
  );
513
519
  setStatus(0 /* Idle */);
520
+ await saveAfterMutated();
514
521
  });
515
522
  }
516
523
  return persister;
@@ -529,6 +536,7 @@ const createCustomPersister = (
529
536
  loads++;
530
537
  setContentOrChanges(changes ?? content);
531
538
  setStatus(0 /* Idle */);
539
+ await saveAfterMutated();
532
540
  }
533
541
  } else {
534
542
  await load();
@@ -137,21 +137,22 @@ const objValues = (obj) => object.values(obj);
137
137
  const objSize = (obj) => size(objIds(obj));
138
138
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
139
139
 
140
- const mapNew = (entries) => new Map(entries);
141
- const mapGet = (map, key) => map?.get(key);
142
- const mapForEach = (map, cb) =>
143
- collForEach(map, (value, key) => cb(key, value));
140
+ const map = Map;
141
+ const mapNew = (entries) => new map(entries);
142
+ const mapGet = (map2, key) => map2?.get(key);
143
+ const mapForEach = (map2, cb) =>
144
+ collForEach(map2, (value, key) => cb(key, value));
144
145
  const mapMap = (coll, cb) =>
145
146
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
146
- const mapSet = (map, key, value) =>
147
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
148
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
149
- if (!collHas(map, key)) {
150
- mapSet(map, key, getDefaultValue());
147
+ const mapSet = (map2, key, value) =>
148
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
149
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
150
+ if (!collHas(map2, key)) {
151
+ mapSet(map2, key, getDefaultValue());
151
152
  } else {
152
- hadExistingValue?.(mapGet(map, key));
153
+ hadExistingValue?.(mapGet(map2, key));
153
154
  }
154
- return mapGet(map, key);
155
+ return mapGet(map2, key);
155
156
  };
156
157
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
157
158
  ifNotUndefined(
@@ -487,6 +488,11 @@ const createCustomPersister = (
487
488
  ? store.applyChanges
488
489
  : store.setContent)(contentOrChanges);
489
490
  };
491
+ const saveAfterMutated = async () => {
492
+ if (isAutoSaving() && store.hadMutated?.()) {
493
+ await save();
494
+ }
495
+ };
490
496
  const load = async (initialContent) => {
491
497
  /* istanbul ignore else */
492
498
  if (status != 2 /* Saving */) {
@@ -511,6 +517,7 @@ const createCustomPersister = (
511
517
  },
512
518
  );
513
519
  setStatus(0 /* Idle */);
520
+ await saveAfterMutated();
514
521
  });
515
522
  }
516
523
  return persister;
@@ -529,6 +536,7 @@ const createCustomPersister = (
529
536
  loads++;
530
537
  setContentOrChanges(changes ?? content);
531
538
  setStatus(0 /* Idle */);
539
+ await saveAfterMutated();
532
540
  }
533
541
  } else {
534
542
  await load();