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();
@@ -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();
@@ -136,21 +136,22 @@ const objValues = (obj) => object.values(obj);
136
136
  const objSize = (obj) => size(objIds(obj));
137
137
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
138
138
 
139
- const mapNew = (entries) => new Map(entries);
140
- const mapGet = (map, key) => map?.get(key);
141
- const mapForEach = (map, cb) =>
142
- collForEach(map, (value, key) => cb(key, value));
139
+ const map = Map;
140
+ const mapNew = (entries) => new map(entries);
141
+ const mapGet = (map2, key) => map2?.get(key);
142
+ const mapForEach = (map2, cb) =>
143
+ collForEach(map2, (value, key) => cb(key, value));
143
144
  const mapMap = (coll, cb) =>
144
145
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
145
- const mapSet = (map, key, value) =>
146
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
147
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
148
- if (!collHas(map, key)) {
149
- mapSet(map, key, getDefaultValue());
146
+ const mapSet = (map2, key, value) =>
147
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
148
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
149
+ if (!collHas(map2, key)) {
150
+ mapSet(map2, key, getDefaultValue());
150
151
  } else {
151
- hadExistingValue?.(mapGet(map, key));
152
+ hadExistingValue?.(mapGet(map2, key));
152
153
  }
153
- return mapGet(map, key);
154
+ return mapGet(map2, key);
154
155
  };
155
156
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
156
157
  ifNotUndefined(
@@ -486,6 +487,11 @@ const createCustomPersister = (
486
487
  ? store.applyChanges
487
488
  : store.setContent)(contentOrChanges);
488
489
  };
490
+ const saveAfterMutated = async () => {
491
+ if (isAutoSaving() && store.hadMutated?.()) {
492
+ await save();
493
+ }
494
+ };
489
495
  const load = async (initialContent) => {
490
496
  /* istanbul ignore else */
491
497
  if (status != 2 /* Saving */) {
@@ -510,6 +516,7 @@ const createCustomPersister = (
510
516
  },
511
517
  );
512
518
  setStatus(0 /* Idle */);
519
+ await saveAfterMutated();
513
520
  });
514
521
  }
515
522
  return persister;
@@ -528,6 +535,7 @@ const createCustomPersister = (
528
535
  loads++;
529
536
  setContentOrChanges(changes ?? content);
530
537
  setStatus(0 /* Idle */);
538
+ await saveAfterMutated();
531
539
  }
532
540
  } else {
533
541
  await load();
@@ -136,21 +136,22 @@ const objValues = (obj) => object.values(obj);
136
136
  const objSize = (obj) => size(objIds(obj));
137
137
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
138
138
 
139
- const mapNew = (entries) => new Map(entries);
140
- const mapGet = (map, key) => map?.get(key);
141
- const mapForEach = (map, cb) =>
142
- collForEach(map, (value, key) => cb(key, value));
139
+ const map = Map;
140
+ const mapNew = (entries) => new map(entries);
141
+ const mapGet = (map2, key) => map2?.get(key);
142
+ const mapForEach = (map2, cb) =>
143
+ collForEach(map2, (value, key) => cb(key, value));
143
144
  const mapMap = (coll, cb) =>
144
145
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
145
- const mapSet = (map, key, value) =>
146
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
147
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
148
- if (!collHas(map, key)) {
149
- mapSet(map, key, getDefaultValue());
146
+ const mapSet = (map2, key, value) =>
147
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
148
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
149
+ if (!collHas(map2, key)) {
150
+ mapSet(map2, key, getDefaultValue());
150
151
  } else {
151
- hadExistingValue?.(mapGet(map, key));
152
+ hadExistingValue?.(mapGet(map2, key));
152
153
  }
153
- return mapGet(map, key);
154
+ return mapGet(map2, key);
154
155
  };
155
156
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
156
157
  ifNotUndefined(
@@ -486,6 +487,11 @@ const createCustomPersister = (
486
487
  ? store.applyChanges
487
488
  : store.setContent)(contentOrChanges);
488
489
  };
490
+ const saveAfterMutated = async () => {
491
+ if (isAutoSaving() && store.hadMutated?.()) {
492
+ await save();
493
+ }
494
+ };
489
495
  const load = async (initialContent) => {
490
496
  /* istanbul ignore else */
491
497
  if (status != 2 /* Saving */) {
@@ -510,6 +516,7 @@ const createCustomPersister = (
510
516
  },
511
517
  );
512
518
  setStatus(0 /* Idle */);
519
+ await saveAfterMutated();
513
520
  });
514
521
  }
515
522
  return persister;
@@ -528,6 +535,7 @@ const createCustomPersister = (
528
535
  loads++;
529
536
  setContentOrChanges(changes ?? content);
530
537
  setStatus(0 /* Idle */);
538
+ await saveAfterMutated();
531
539
  }
532
540
  } else {
533
541
  await load();
@@ -71,19 +71,20 @@ const objEnsure = (obj, id, getDefaultValue) => {
71
71
  return obj[id];
72
72
  };
73
73
 
74
- const mapNew = (entries) => new Map(entries);
75
- const mapGet = (map, key) => map?.get(key);
76
- const mapForEach = (map, cb) =>
77
- collForEach(map, (value, key) => cb(key, value));
78
- const mapSet = (map, key, value) =>
79
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
80
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
81
- if (!collHas(map, key)) {
82
- 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 mapForEach = (map2, cb) =>
78
+ collForEach(map2, (value, key) => cb(key, value));
79
+ const mapSet = (map2, key, value) =>
80
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
81
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
82
+ if (!collHas(map2, key)) {
83
+ mapSet(map2, key, getDefaultValue());
83
84
  } else {
84
- hadExistingValue?.(mapGet(map, key));
85
+ hadExistingValue?.(mapGet(map2, key));
85
86
  }
86
- return mapGet(map, key);
87
+ return mapGet(map2, key);
87
88
  };
88
89
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
89
90
  ifNotUndefined(
@@ -285,6 +286,11 @@ const createCustomPersister = (
285
286
  ? store.applyChanges
286
287
  : store.setContent)(contentOrChanges);
287
288
  };
289
+ const saveAfterMutated = async () => {
290
+ if (isAutoSaving() && store.hadMutated?.()) {
291
+ await save();
292
+ }
293
+ };
288
294
  const load = async (initialContent) => {
289
295
  /* istanbul ignore else */
290
296
  if (status != 2 /* Saving */) {
@@ -309,6 +315,7 @@ const createCustomPersister = (
309
315
  },
310
316
  );
311
317
  setStatus(0 /* Idle */);
318
+ await saveAfterMutated();
312
319
  });
313
320
  }
314
321
  return persister;
@@ -327,6 +334,7 @@ const createCustomPersister = (
327
334
  loads++;
328
335
  setContentOrChanges(changes ?? content);
329
336
  setStatus(0 /* Idle */);
337
+ await saveAfterMutated();
330
338
  }
331
339
  } else {
332
340
  await load();
@@ -71,19 +71,20 @@ const objEnsure = (obj, id, getDefaultValue) => {
71
71
  return obj[id];
72
72
  };
73
73
 
74
- const mapNew = (entries) => new Map(entries);
75
- const mapGet = (map, key) => map?.get(key);
76
- const mapForEach = (map, cb) =>
77
- collForEach(map, (value, key) => cb(key, value));
78
- const mapSet = (map, key, value) =>
79
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
80
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
81
- if (!collHas(map, key)) {
82
- 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 mapForEach = (map2, cb) =>
78
+ collForEach(map2, (value, key) => cb(key, value));
79
+ const mapSet = (map2, key, value) =>
80
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
81
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
82
+ if (!collHas(map2, key)) {
83
+ mapSet(map2, key, getDefaultValue());
83
84
  } else {
84
- hadExistingValue?.(mapGet(map, key));
85
+ hadExistingValue?.(mapGet(map2, key));
85
86
  }
86
- return mapGet(map, key);
87
+ return mapGet(map2, key);
87
88
  };
88
89
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
89
90
  ifNotUndefined(
@@ -285,6 +286,11 @@ const createCustomPersister = (
285
286
  ? store.applyChanges
286
287
  : store.setContent)(contentOrChanges);
287
288
  };
289
+ const saveAfterMutated = async () => {
290
+ if (isAutoSaving() && store.hadMutated?.()) {
291
+ await save();
292
+ }
293
+ };
288
294
  const load = async (initialContent) => {
289
295
  /* istanbul ignore else */
290
296
  if (status != 2 /* Saving */) {
@@ -309,6 +315,7 @@ const createCustomPersister = (
309
315
  },
310
316
  );
311
317
  setStatus(0 /* Idle */);
318
+ await saveAfterMutated();
312
319
  });
313
320
  }
314
321
  return persister;
@@ -327,6 +334,7 @@ const createCustomPersister = (
327
334
  loads++;
328
335
  setContentOrChanges(changes ?? content);
329
336
  setStatus(0 /* Idle */);
337
+ await saveAfterMutated();
330
338
  }
331
339
  } else {
332
340
  await load();
@@ -94,21 +94,22 @@ const objValues = (obj) => object.values(obj);
94
94
  const objSize = (obj) => size(objIds(obj));
95
95
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
96
96
 
97
- const mapNew = (entries) => new Map(entries);
98
- const mapGet = (map, key) => map?.get(key);
99
- const mapForEach = (map, cb) =>
100
- collForEach(map, (value, key) => cb(key, value));
97
+ const map = Map;
98
+ const mapNew = (entries) => new map(entries);
99
+ const mapGet = (map2, key) => map2?.get(key);
100
+ const mapForEach = (map2, cb) =>
101
+ collForEach(map2, (value, key) => cb(key, value));
101
102
  const mapMap = (coll, cb) =>
102
103
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
103
- const mapSet = (map, key, value) =>
104
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
105
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
106
- if (!collHas(map, key)) {
107
- mapSet(map, key, getDefaultValue());
104
+ const mapSet = (map2, key, value) =>
105
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
106
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
107
+ if (!collHas(map2, key)) {
108
+ mapSet(map2, key, getDefaultValue());
108
109
  } else {
109
- hadExistingValue?.(mapGet(map, key));
110
+ hadExistingValue?.(mapGet(map2, key));
110
111
  }
111
- return mapGet(map, key);
112
+ return mapGet(map2, key);
112
113
  };
113
114
  const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
114
115
  ifNotUndefined(
@@ -320,6 +321,11 @@ const createCustomPersister = (
320
321
  ? store.applyChanges
321
322
  : store.setContent)(contentOrChanges);
322
323
  };
324
+ const saveAfterMutated = async () => {
325
+ if (isAutoSaving() && store.hadMutated?.()) {
326
+ await save();
327
+ }
328
+ };
323
329
  const load = async (initialContent) => {
324
330
  /* istanbul ignore else */
325
331
  if (status != 2 /* Saving */) {
@@ -344,6 +350,7 @@ const createCustomPersister = (
344
350
  },
345
351
  );
346
352
  setStatus(0 /* Idle */);
353
+ await saveAfterMutated();
347
354
  });
348
355
  }
349
356
  return persister;
@@ -362,6 +369,7 @@ const createCustomPersister = (
362
369
  loads++;
363
370
  setContentOrChanges(changes ?? content);
364
371
  setStatus(0 /* Idle */);
372
+ await saveAfterMutated();
365
373
  }
366
374
  } else {
367
375
  await load();
package/queries/index.js CHANGED
@@ -112,24 +112,25 @@ const objIsEqual = (
112
112
  );
113
113
  };
114
114
 
115
- const mapNew = (entries) => new Map(entries);
116
- const mapKeys = (map) => [...(map?.keys() ?? [])];
117
- const mapGet = (map, key) => map?.get(key);
118
- const mapForEach = (map, cb) =>
119
- collForEach(map, (value, key) => cb(key, value));
120
- const mapSet = (map, key, value) =>
121
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
122
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
123
- if (!collHas(map, key)) {
124
- mapSet(map, key, getDefaultValue());
115
+ const map = Map;
116
+ const mapNew = (entries) => new map(entries);
117
+ const mapKeys = (map2) => [...(map2?.keys() ?? [])];
118
+ const mapGet = (map2, key) => map2?.get(key);
119
+ const mapForEach = (map2, cb) =>
120
+ collForEach(map2, (value, key) => cb(key, value));
121
+ const mapSet = (map2, key, value) =>
122
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
123
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
124
+ if (!collHas(map2, key)) {
125
+ mapSet(map2, key, getDefaultValue());
125
126
  } else {
126
- hadExistingValue?.(mapGet(map, key));
127
+ hadExistingValue?.(mapGet(map2, key));
127
128
  }
128
- return mapGet(map, key);
129
+ return mapGet(map2, key);
129
130
  };
130
- const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
131
+ const mapToObj = (map2, valueMapper, excludeMapValue, excludeObjValue) => {
131
132
  const obj = {};
132
- collForEach(map, (mapValue, id) => {
133
+ collForEach(map2, (mapValue, id) => {
133
134
  {
134
135
  const objValue = mapValue;
135
136
  {
@@ -112,24 +112,25 @@ const objIsEqual = (
112
112
  );
113
113
  };
114
114
 
115
- const mapNew = (entries) => new Map(entries);
116
- const mapKeys = (map) => [...(map?.keys() ?? [])];
117
- const mapGet = (map, key) => map?.get(key);
118
- const mapForEach = (map, cb) =>
119
- collForEach(map, (value, key) => cb(key, value));
120
- const mapSet = (map, key, value) =>
121
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
122
- const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
123
- if (!collHas(map, key)) {
124
- mapSet(map, key, getDefaultValue());
115
+ const map = Map;
116
+ const mapNew = (entries) => new map(entries);
117
+ const mapKeys = (map2) => [...(map2?.keys() ?? [])];
118
+ const mapGet = (map2, key) => map2?.get(key);
119
+ const mapForEach = (map2, cb) =>
120
+ collForEach(map2, (value, key) => cb(key, value));
121
+ const mapSet = (map2, key, value) =>
122
+ isUndefined(value) ? (collDel(map2, key), map2) : map2?.set(key, value);
123
+ const mapEnsure = (map2, key, getDefaultValue, hadExistingValue) => {
124
+ if (!collHas(map2, key)) {
125
+ mapSet(map2, key, getDefaultValue());
125
126
  } else {
126
- hadExistingValue?.(mapGet(map, key));
127
+ hadExistingValue?.(mapGet(map2, key));
127
128
  }
128
- return mapGet(map, key);
129
+ return mapGet(map2, key);
129
130
  };
130
- const mapToObj = (map, valueMapper, excludeMapValue, excludeObjValue) => {
131
+ const mapToObj = (map2, valueMapper, excludeMapValue, excludeObjValue) => {
131
132
  const obj = {};
132
- collForEach(map, (mapValue, id) => {
133
+ collForEach(map2, (mapValue, id) => {
133
134
  {
134
135
  const objValue = mapValue;
135
136
  {