tinybase 9.0.0-beta.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/@types/mergeable-store/index.d.ts +4 -4
  2. package/@types/mergeable-store/with-schemas/index.d.ts +41 -17
  3. package/@types/persisters/index.d.ts +2 -1
  4. package/@types/persisters/with-schemas/index.d.ts +16 -10
  5. package/@types/queries/index.d.ts +4 -0
  6. package/@types/queries/with-schemas/index.d.ts +4 -0
  7. package/@types/ui-react-dom/index.d.ts +10 -10
  8. package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
  9. package/@types/ui-react-dom-charts/index.d.ts +7 -7
  10. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -7
  11. package/@types/ui-react-inspector/index.d.ts +1 -1
  12. package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
  13. package/@types/ui-solid-dom/index.d.ts +10 -10
  14. package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
  15. package/@types/ui-solid-inspector/index.d.ts +1 -1
  16. package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
  17. package/@types/ui-svelte-dom/index.d.ts +10 -10
  18. package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
  19. package/@types/ui-svelte-inspector/index.d.ts +1 -1
  20. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
  21. package/index.js +46 -6
  22. package/mergeable-store/index.js +46 -6
  23. package/mergeable-store/with-schemas/index.js +46 -6
  24. package/min/index.js +1 -1
  25. package/min/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/omni/index.js +1 -1
  31. package/min/omni/index.js.gz +0 -0
  32. package/min/omni/with-schemas/index.js +1 -1
  33. package/min/omni/with-schemas/index.js.gz +0 -0
  34. package/min/persisters/index.js +1 -1
  35. package/min/persisters/index.js.gz +0 -0
  36. package/min/persisters/persister-automerge/index.js +1 -1
  37. package/min/persisters/persister-automerge/index.js.gz +0 -0
  38. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  39. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  40. package/min/persisters/persister-browser/index.js +1 -1
  41. package/min/persisters/persister-browser/index.js.gz +0 -0
  42. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  45. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  46. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  49. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  50. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  53. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  54. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-electric-sql/index.js +1 -1
  57. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  58. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  61. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  62. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-file/index.js +1 -1
  65. package/min/persisters/persister-file/index.js.gz +0 -0
  66. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-indexed-db/index.js +1 -1
  69. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  70. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-libsql/index.js +1 -1
  73. package/min/persisters/persister-libsql/index.js.gz +0 -0
  74. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-partykit-client/index.js +1 -1
  77. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  78. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-pglite/index.js +1 -1
  81. package/min/persisters/persister-pglite/index.js.gz +0 -0
  82. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/persister-postgres/index.js +1 -1
  85. package/min/persisters/persister-postgres/index.js.gz +0 -0
  86. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  87. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  88. package/min/persisters/persister-powersync/index.js +1 -1
  89. package/min/persisters/persister-powersync/index.js.gz +0 -0
  90. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  91. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  92. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  93. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  94. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  95. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  96. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  97. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  98. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  99. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  100. package/min/persisters/persister-remote/index.js +1 -1
  101. package/min/persisters/persister-remote/index.js.gz +0 -0
  102. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  103. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  104. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  105. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  106. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  107. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  108. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  109. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  110. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-sqlite3/index.js +1 -1
  113. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  114. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-yjs/index.js +1 -1
  117. package/min/persisters/persister-yjs/index.js.gz +0 -0
  118. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/with-schemas/index.js +1 -1
  121. package/min/persisters/with-schemas/index.js.gz +0 -0
  122. package/min/store/index.js +1 -1
  123. package/min/store/index.js.gz +0 -0
  124. package/min/store/with-schemas/index.js +1 -1
  125. package/min/store/with-schemas/index.js.gz +0 -0
  126. package/min/synchronizers/index.js +1 -1
  127. package/min/synchronizers/index.js.gz +0 -0
  128. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  129. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  130. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  131. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  132. package/min/synchronizers/synchronizer-local/index.js +1 -1
  133. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  134. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  135. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  136. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  137. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  138. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  139. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  140. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  141. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  142. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  143. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  144. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  145. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  146. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  147. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  148. package/min/synchronizers/with-schemas/index.js +1 -1
  149. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  150. package/min/ui-react-inspector/index.js +1 -1
  151. package/min/ui-react-inspector/index.js.gz +0 -0
  152. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  153. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  154. package/min/ui-solid-inspector/index.js +1 -1
  155. package/min/ui-solid-inspector/index.js.gz +0 -0
  156. package/min/ui-solid-inspector/with-schemas/index.js +1 -1
  157. package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
  158. package/min/ui-svelte-inspector/index.js +1 -1
  159. package/min/ui-svelte-inspector/index.js.gz +0 -0
  160. package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
  161. package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
  162. package/min/with-schemas/index.js +1 -1
  163. package/min/with-schemas/index.js.gz +0 -0
  164. package/omni/index.js +53 -14
  165. package/omni/with-schemas/index.js +53 -14
  166. package/package.json +7 -7
  167. package/persisters/index.js +4 -3
  168. package/persisters/persister-automerge/index.js +4 -3
  169. package/persisters/persister-automerge/with-schemas/index.js +4 -3
  170. package/persisters/persister-browser/index.js +4 -3
  171. package/persisters/persister-browser/with-schemas/index.js +4 -3
  172. package/persisters/persister-cr-sqlite-wasm/index.js +4 -3
  173. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +4 -3
  174. package/persisters/persister-durable-object-sql-storage/index.js +4 -3
  175. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +4 -3
  176. package/persisters/persister-durable-object-storage/index.js +4 -3
  177. package/persisters/persister-durable-object-storage/with-schemas/index.js +4 -3
  178. package/persisters/persister-electric-sql/index.js +4 -3
  179. package/persisters/persister-electric-sql/with-schemas/index.js +4 -3
  180. package/persisters/persister-expo-sqlite/index.js +4 -3
  181. package/persisters/persister-expo-sqlite/with-schemas/index.js +4 -3
  182. package/persisters/persister-file/index.js +4 -3
  183. package/persisters/persister-file/with-schemas/index.js +4 -3
  184. package/persisters/persister-indexed-db/index.js +4 -3
  185. package/persisters/persister-indexed-db/with-schemas/index.js +4 -3
  186. package/persisters/persister-libsql/index.js +4 -3
  187. package/persisters/persister-libsql/with-schemas/index.js +4 -3
  188. package/persisters/persister-partykit-client/index.js +4 -3
  189. package/persisters/persister-partykit-client/with-schemas/index.js +4 -3
  190. package/persisters/persister-pglite/index.js +4 -3
  191. package/persisters/persister-pglite/with-schemas/index.js +4 -3
  192. package/persisters/persister-postgres/index.js +4 -3
  193. package/persisters/persister-postgres/with-schemas/index.js +4 -3
  194. package/persisters/persister-powersync/index.js +4 -3
  195. package/persisters/persister-powersync/with-schemas/index.js +4 -3
  196. package/persisters/persister-react-native-mmkv/index.js +4 -3
  197. package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -3
  198. package/persisters/persister-react-native-sqlite/index.js +4 -3
  199. package/persisters/persister-react-native-sqlite/with-schemas/index.js +4 -3
  200. package/persisters/persister-remote/index.js +4 -3
  201. package/persisters/persister-remote/with-schemas/index.js +4 -3
  202. package/persisters/persister-sqlite-bun/index.js +4 -3
  203. package/persisters/persister-sqlite-bun/with-schemas/index.js +4 -3
  204. package/persisters/persister-sqlite-wasm/index.js +4 -3
  205. package/persisters/persister-sqlite-wasm/with-schemas/index.js +4 -3
  206. package/persisters/persister-sqlite3/index.js +4 -3
  207. package/persisters/persister-sqlite3/with-schemas/index.js +4 -3
  208. package/persisters/persister-yjs/index.js +4 -3
  209. package/persisters/persister-yjs/with-schemas/index.js +4 -3
  210. package/persisters/with-schemas/index.js +4 -3
  211. package/readme.md +3 -3
  212. package/releases.md +17 -1
  213. package/store/index.js +33 -2
  214. package/store/with-schemas/index.js +33 -2
  215. package/synchronizers/index.js +4 -3
  216. package/synchronizers/synchronizer-broadcast-channel/index.js +4 -3
  217. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +4 -3
  218. package/synchronizers/synchronizer-local/index.js +4 -3
  219. package/synchronizers/synchronizer-local/with-schemas/index.js +4 -3
  220. package/synchronizers/synchronizer-ws-client/index.js +4 -3
  221. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +4 -3
  222. package/synchronizers/synchronizer-ws-server/index.js +7 -8
  223. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +7 -8
  224. package/synchronizers/synchronizer-ws-server-durable-object/index.js +3 -3
  225. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +3 -3
  226. package/synchronizers/with-schemas/index.js +4 -3
  227. package/ui-react-inspector/index.js +36 -5
  228. package/ui-react-inspector/with-schemas/index.js +36 -5
  229. package/ui-solid-inspector/index.js +36 -5
  230. package/ui-solid-inspector/with-schemas/index.js +36 -5
  231. package/ui-svelte-inspector/index.js +36 -5
  232. package/ui-svelte-inspector/with-schemas/index.js +36 -5
  233. package/with-schemas/index.js +46 -6
@@ -441,13 +441,14 @@ const createCustomPersister = (
441
441
  const content = await getPersisted();
442
442
  if (isArray(content)) {
443
443
  setContentOrChanges(content);
444
- } else if (initialContent) {
444
+ } else if (isUndefined(content) && initialContent) {
445
445
  setDefaultContent(initialContent);
446
- } else {
446
+ } else if (!isUndefined(content)) {
447
447
  errorNew(`Content is not an array: ${content}`);
448
448
  }
449
449
  },
450
- () => {
450
+ (error) => {
451
+ onIgnoredError?.(error);
451
452
  if (initialContent) {
452
453
  setDefaultContent(initialContent);
453
454
  }
@@ -441,13 +441,14 @@ const createCustomPersister = (
441
441
  const content = await getPersisted();
442
442
  if (isArray(content)) {
443
443
  setContentOrChanges(content);
444
- } else if (initialContent) {
444
+ } else if (isUndefined(content) && initialContent) {
445
445
  setDefaultContent(initialContent);
446
- } else {
446
+ } else if (!isUndefined(content)) {
447
447
  errorNew(`Content is not an array: ${content}`);
448
448
  }
449
449
  },
450
- () => {
450
+ (error) => {
451
+ onIgnoredError?.(error);
451
452
  if (initialContent) {
452
453
  setDefaultContent(initialContent);
453
454
  }
@@ -452,13 +452,14 @@ const createCustomPersister = (
452
452
  const content = await getPersisted();
453
453
  if (isArray(content)) {
454
454
  setContentOrChanges(content);
455
- } else if (initialContent) {
455
+ } else if (isUndefined(content) && initialContent) {
456
456
  setDefaultContent(initialContent);
457
- } else {
457
+ } else if (!isUndefined(content)) {
458
458
  errorNew(`Content is not an array: ${content}`);
459
459
  }
460
460
  },
461
- () => {
461
+ (error) => {
462
+ onIgnoredError?.(error);
462
463
  if (initialContent) {
463
464
  setDefaultContent(initialContent);
464
465
  }
@@ -876,11 +877,9 @@ const createWsServer = (
876
877
  );
877
878
  const startServerClient = async (serverClient) => {
878
879
  serverClient[0 /* State */] = 2; /* Starting */
879
- await serverClient[1 /* Persister */].schedule(
880
- serverClient[1 /* Persister */].startAutoLoad,
881
- serverClient[1 /* Persister */].startAutoSave,
882
- serverClient[2 /* Synchronizer */].startSync,
883
- );
880
+ await serverClient[1 /* Persister */].startAutoLoad();
881
+ await serverClient[1 /* Persister */].startAutoSave();
882
+ await serverClient[2 /* Synchronizer */].startSync();
884
883
  serverClient[5 /* Then */](serverClient[1 /* Persister */].getStore());
885
884
  serverClient[0 /* State */] = 0; /* Ready */
886
885
  };
@@ -452,13 +452,14 @@ const createCustomPersister = (
452
452
  const content = await getPersisted();
453
453
  if (isArray(content)) {
454
454
  setContentOrChanges(content);
455
- } else if (initialContent) {
455
+ } else if (isUndefined(content) && initialContent) {
456
456
  setDefaultContent(initialContent);
457
- } else {
457
+ } else if (!isUndefined(content)) {
458
458
  errorNew(`Content is not an array: ${content}`);
459
459
  }
460
460
  },
461
- () => {
461
+ (error) => {
462
+ onIgnoredError?.(error);
462
463
  if (initialContent) {
463
464
  setDefaultContent(initialContent);
464
465
  }
@@ -876,11 +877,9 @@ const createWsServer = (
876
877
  );
877
878
  const startServerClient = async (serverClient) => {
878
879
  serverClient[0 /* State */] = 2; /* Starting */
879
- await serverClient[1 /* Persister */].schedule(
880
- serverClient[1 /* Persister */].startAutoLoad,
881
- serverClient[1 /* Persister */].startAutoSave,
882
- serverClient[2 /* Synchronizer */].startSync,
883
- );
880
+ await serverClient[1 /* Persister */].startAutoLoad();
881
+ await serverClient[1 /* Persister */].startAutoSave();
882
+ await serverClient[2 /* Synchronizer */].startSync();
884
883
  serverClient[5 /* Then */](serverClient[1 /* Persister */].getStore());
885
884
  serverClient[0 /* State */] = 0; /* Ready */
886
885
  };
@@ -444,13 +444,13 @@ const createCustomPersister = (
444
444
  const content = await getPersisted();
445
445
  if (isArray(content)) {
446
446
  setContentOrChanges(content);
447
- } else if (initialContent) {
447
+ } else if (isUndefined(content) && initialContent) {
448
448
  setDefaultContent(initialContent);
449
- } else {
449
+ } else if (!isUndefined(content)) {
450
450
  errorNew(`Content is not an array: ${content}`);
451
451
  }
452
452
  },
453
- () => {
453
+ (error) => {
454
454
  if (initialContent) {
455
455
  setDefaultContent(initialContent);
456
456
  }
@@ -444,13 +444,13 @@ const createCustomPersister = (
444
444
  const content = await getPersisted();
445
445
  if (isArray(content)) {
446
446
  setContentOrChanges(content);
447
- } else if (initialContent) {
447
+ } else if (isUndefined(content) && initialContent) {
448
448
  setDefaultContent(initialContent);
449
- } else {
449
+ } else if (!isUndefined(content)) {
450
450
  errorNew(`Content is not an array: ${content}`);
451
451
  }
452
452
  },
453
- () => {
453
+ (error) => {
454
454
  if (initialContent) {
455
455
  setDefaultContent(initialContent);
456
456
  }
@@ -331,13 +331,14 @@ const createCustomPersister = (
331
331
  const content = await getPersisted();
332
332
  if (isArray(content)) {
333
333
  setContentOrChanges(content);
334
- } else if (initialContent) {
334
+ } else if (isUndefined(content) && initialContent) {
335
335
  setDefaultContent(initialContent);
336
- } else {
336
+ } else if (!isUndefined(content)) {
337
337
  errorNew(`Content is not an array: ${content}`);
338
338
  }
339
339
  },
340
- () => {
340
+ (error) => {
341
+ onIgnoredError?.(error);
341
342
  if (initialContent) {
342
343
  setDefaultContent(initialContent);
343
344
  }
@@ -930,13 +930,13 @@ const createCustomPersister = (
930
930
  const content = await getPersisted();
931
931
  if (isArray(content)) {
932
932
  setContentOrChanges(content);
933
- } else if (initialContent) {
933
+ } else if (isUndefined(content) && initialContent) {
934
934
  setDefaultContent(initialContent);
935
- } else {
935
+ } else if (!isUndefined(content)) {
936
936
  errorNew(`Content is not an array: ${content}`);
937
937
  }
938
938
  },
939
- () => {
939
+ (error) => {
940
940
  if (initialContent) {
941
941
  setDefaultContent(initialContent);
942
942
  }
@@ -1189,8 +1189,10 @@ const createStore = () => {
1189
1189
  const changedRowIds = mapNew();
1190
1190
  const changedCellIds = mapNew();
1191
1191
  const changedCells = mapNew();
1192
+ const defaultedCells = mapNew();
1192
1193
  const changedValueIds = mapNew();
1193
1194
  const changedValues = mapNew();
1195
+ const defaultedValues = setNew();
1194
1196
  const invalidCells = mapNew();
1195
1197
  const invalidValues = mapNew();
1196
1198
  const tablesSchemaMap = mapNew();
@@ -1364,6 +1366,16 @@ const createStore = () => {
1364
1366
  collForEach(rowDefaulted, (cell, cellId) => {
1365
1367
  if (!objHas(row, cellId)) {
1366
1368
  row[cellId] = cell;
1369
+ ifNotUndefined(rowId, (rowId2) =>
1370
+ setAdd(
1371
+ mapEnsure(
1372
+ mapEnsure(defaultedCells, tableId, mapNew),
1373
+ rowId2,
1374
+ setNew,
1375
+ ),
1376
+ cellId,
1377
+ ),
1378
+ );
1367
1379
  }
1368
1380
  });
1369
1381
  collForEach(rowNonDefaulted, (cellId) => {
@@ -1380,6 +1392,7 @@ const createStore = () => {
1380
1392
  collForEach(valuesDefaulted, (value, valueId) => {
1381
1393
  if (!objHas(values, valueId)) {
1382
1394
  values[valueId] = value;
1395
+ setAdd(defaultedValues, valueId);
1383
1396
  }
1384
1397
  });
1385
1398
  collForEach(valuesNonDefaulted, (valueId) => {
@@ -1783,18 +1796,34 @@ const createStore = () => {
1783
1796
  );
1784
1797
  };
1785
1798
  const cellChanged = (tableId, rowId, cellId, oldCell, newCell) => {
1799
+ const defaulted =
1800
+ collHas(mapGet(mapGet(defaultedCells, tableId), rowId), cellId) &&
1801
+ isUndefined(oldCell)
1802
+ ? 1
1803
+ : 0;
1786
1804
  mapEnsure(
1787
1805
  mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),
1788
1806
  cellId,
1789
1807
  () => [oldCell, 0],
1790
1808
  )[1] = newCell;
1791
- internalListeners[3]?.(tableId, rowId, cellId, newCell, mutating);
1809
+ internalListeners[3]?.(
1810
+ tableId,
1811
+ rowId,
1812
+ cellId,
1813
+ newCell,
1814
+ mutating,
1815
+ defaulted,
1816
+ );
1817
+ collDel(mapGet(mapGet(defaultedCells, tableId), rowId), cellId);
1792
1818
  };
1793
1819
  const valueIdsChanged = (valueId, addedOrRemoved) =>
1794
1820
  idsChanged(changedValueIds, valueId, addedOrRemoved);
1795
1821
  const valueChanged = (valueId, oldValue, newValue) => {
1822
+ const defaulted =
1823
+ collHas(defaultedValues, valueId) && isUndefined(oldValue) ? 1 : 0;
1796
1824
  mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
1797
- internalListeners[4]?.(valueId, newValue, mutating);
1825
+ internalListeners[4]?.(valueId, newValue, mutating, defaulted);
1826
+ collDel(defaultedValues, valueId);
1798
1827
  };
1799
1828
  const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
1800
1829
  arrayPush(
@@ -2582,9 +2611,11 @@ const createStore = () => {
2582
2611
  changedRowIds,
2583
2612
  changedCellIds,
2584
2613
  changedCells,
2614
+ defaultedCells,
2585
2615
  invalidCells,
2586
2616
  changedValueIds,
2587
2617
  changedValues,
2618
+ defaultedValues,
2588
2619
  invalidValues,
2589
2620
  ],
2590
2621
  collClear,
@@ -930,13 +930,13 @@ const createCustomPersister = (
930
930
  const content = await getPersisted();
931
931
  if (isArray(content)) {
932
932
  setContentOrChanges(content);
933
- } else if (initialContent) {
933
+ } else if (isUndefined(content) && initialContent) {
934
934
  setDefaultContent(initialContent);
935
- } else {
935
+ } else if (!isUndefined(content)) {
936
936
  errorNew(`Content is not an array: ${content}`);
937
937
  }
938
938
  },
939
- () => {
939
+ (error) => {
940
940
  if (initialContent) {
941
941
  setDefaultContent(initialContent);
942
942
  }
@@ -1189,8 +1189,10 @@ const createStore = () => {
1189
1189
  const changedRowIds = mapNew();
1190
1190
  const changedCellIds = mapNew();
1191
1191
  const changedCells = mapNew();
1192
+ const defaultedCells = mapNew();
1192
1193
  const changedValueIds = mapNew();
1193
1194
  const changedValues = mapNew();
1195
+ const defaultedValues = setNew();
1194
1196
  const invalidCells = mapNew();
1195
1197
  const invalidValues = mapNew();
1196
1198
  const tablesSchemaMap = mapNew();
@@ -1364,6 +1366,16 @@ const createStore = () => {
1364
1366
  collForEach(rowDefaulted, (cell, cellId) => {
1365
1367
  if (!objHas(row, cellId)) {
1366
1368
  row[cellId] = cell;
1369
+ ifNotUndefined(rowId, (rowId2) =>
1370
+ setAdd(
1371
+ mapEnsure(
1372
+ mapEnsure(defaultedCells, tableId, mapNew),
1373
+ rowId2,
1374
+ setNew,
1375
+ ),
1376
+ cellId,
1377
+ ),
1378
+ );
1367
1379
  }
1368
1380
  });
1369
1381
  collForEach(rowNonDefaulted, (cellId) => {
@@ -1380,6 +1392,7 @@ const createStore = () => {
1380
1392
  collForEach(valuesDefaulted, (value, valueId) => {
1381
1393
  if (!objHas(values, valueId)) {
1382
1394
  values[valueId] = value;
1395
+ setAdd(defaultedValues, valueId);
1383
1396
  }
1384
1397
  });
1385
1398
  collForEach(valuesNonDefaulted, (valueId) => {
@@ -1783,18 +1796,34 @@ const createStore = () => {
1783
1796
  );
1784
1797
  };
1785
1798
  const cellChanged = (tableId, rowId, cellId, oldCell, newCell) => {
1799
+ const defaulted =
1800
+ collHas(mapGet(mapGet(defaultedCells, tableId), rowId), cellId) &&
1801
+ isUndefined(oldCell)
1802
+ ? 1
1803
+ : 0;
1786
1804
  mapEnsure(
1787
1805
  mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),
1788
1806
  cellId,
1789
1807
  () => [oldCell, 0],
1790
1808
  )[1] = newCell;
1791
- internalListeners[3]?.(tableId, rowId, cellId, newCell, mutating);
1809
+ internalListeners[3]?.(
1810
+ tableId,
1811
+ rowId,
1812
+ cellId,
1813
+ newCell,
1814
+ mutating,
1815
+ defaulted,
1816
+ );
1817
+ collDel(mapGet(mapGet(defaultedCells, tableId), rowId), cellId);
1792
1818
  };
1793
1819
  const valueIdsChanged = (valueId, addedOrRemoved) =>
1794
1820
  idsChanged(changedValueIds, valueId, addedOrRemoved);
1795
1821
  const valueChanged = (valueId, oldValue, newValue) => {
1822
+ const defaulted =
1823
+ collHas(defaultedValues, valueId) && isUndefined(oldValue) ? 1 : 0;
1796
1824
  mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
1797
- internalListeners[4]?.(valueId, newValue, mutating);
1825
+ internalListeners[4]?.(valueId, newValue, mutating, defaulted);
1826
+ collDel(defaultedValues, valueId);
1798
1827
  };
1799
1828
  const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
1800
1829
  arrayPush(
@@ -2582,9 +2611,11 @@ const createStore = () => {
2582
2611
  changedRowIds,
2583
2612
  changedCellIds,
2584
2613
  changedCells,
2614
+ defaultedCells,
2585
2615
  invalidCells,
2586
2616
  changedValueIds,
2587
2617
  changedValues,
2618
+ defaultedValues,
2588
2619
  invalidValues,
2589
2620
  ],
2590
2621
  collClear,
@@ -989,13 +989,13 @@ const createCustomPersister = (
989
989
  const content = await getPersisted();
990
990
  if (isArray(content)) {
991
991
  setContentOrChanges(content);
992
- } else if (initialContent) {
992
+ } else if (isUndefined(content) && initialContent) {
993
993
  setDefaultContent(initialContent);
994
- } else {
994
+ } else if (!isUndefined(content)) {
995
995
  errorNew(`Content is not an array: ${content}`);
996
996
  }
997
997
  },
998
- () => {
998
+ (error) => {
999
999
  if (initialContent) {
1000
1000
  setDefaultContent(initialContent);
1001
1001
  }
@@ -1248,8 +1248,10 @@ const createStore = () => {
1248
1248
  const changedRowIds = mapNew();
1249
1249
  const changedCellIds = mapNew();
1250
1250
  const changedCells = mapNew();
1251
+ const defaultedCells = mapNew();
1251
1252
  const changedValueIds = mapNew();
1252
1253
  const changedValues = mapNew();
1254
+ const defaultedValues = setNew();
1253
1255
  const invalidCells = mapNew();
1254
1256
  const invalidValues = mapNew();
1255
1257
  const tablesSchemaMap = mapNew();
@@ -1423,6 +1425,16 @@ const createStore = () => {
1423
1425
  collForEach(rowDefaulted, (cell, cellId) => {
1424
1426
  if (!objHas(row, cellId)) {
1425
1427
  row[cellId] = cell;
1428
+ ifNotUndefined(rowId, (rowId2) =>
1429
+ setAdd(
1430
+ mapEnsure(
1431
+ mapEnsure(defaultedCells, tableId, mapNew),
1432
+ rowId2,
1433
+ setNew,
1434
+ ),
1435
+ cellId,
1436
+ ),
1437
+ );
1426
1438
  }
1427
1439
  });
1428
1440
  collForEach(rowNonDefaulted, (cellId) => {
@@ -1439,6 +1451,7 @@ const createStore = () => {
1439
1451
  collForEach(valuesDefaulted, (value, valueId) => {
1440
1452
  if (!objHas(values, valueId)) {
1441
1453
  values[valueId] = value;
1454
+ setAdd(defaultedValues, valueId);
1442
1455
  }
1443
1456
  });
1444
1457
  collForEach(valuesNonDefaulted, (valueId) => {
@@ -1842,18 +1855,34 @@ const createStore = () => {
1842
1855
  );
1843
1856
  };
1844
1857
  const cellChanged = (tableId, rowId, cellId, oldCell, newCell) => {
1858
+ const defaulted =
1859
+ collHas(mapGet(mapGet(defaultedCells, tableId), rowId), cellId) &&
1860
+ isUndefined(oldCell)
1861
+ ? 1
1862
+ : 0;
1845
1863
  mapEnsure(
1846
1864
  mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),
1847
1865
  cellId,
1848
1866
  () => [oldCell, 0],
1849
1867
  )[1] = newCell;
1850
- internalListeners[3]?.(tableId, rowId, cellId, newCell, mutating);
1868
+ internalListeners[3]?.(
1869
+ tableId,
1870
+ rowId,
1871
+ cellId,
1872
+ newCell,
1873
+ mutating,
1874
+ defaulted,
1875
+ );
1876
+ collDel(mapGet(mapGet(defaultedCells, tableId), rowId), cellId);
1851
1877
  };
1852
1878
  const valueIdsChanged = (valueId, addedOrRemoved) =>
1853
1879
  idsChanged(changedValueIds, valueId, addedOrRemoved);
1854
1880
  const valueChanged = (valueId, oldValue, newValue) => {
1881
+ const defaulted =
1882
+ collHas(defaultedValues, valueId) && isUndefined(oldValue) ? 1 : 0;
1855
1883
  mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
1856
- internalListeners[4]?.(valueId, newValue, mutating);
1884
+ internalListeners[4]?.(valueId, newValue, mutating, defaulted);
1885
+ collDel(defaultedValues, valueId);
1857
1886
  };
1858
1887
  const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
1859
1888
  arrayPush(
@@ -2641,9 +2670,11 @@ const createStore = () => {
2641
2670
  changedRowIds,
2642
2671
  changedCellIds,
2643
2672
  changedCells,
2673
+ defaultedCells,
2644
2674
  invalidCells,
2645
2675
  changedValueIds,
2646
2676
  changedValues,
2677
+ defaultedValues,
2647
2678
  invalidValues,
2648
2679
  ],
2649
2680
  collClear,
@@ -989,13 +989,13 @@ const createCustomPersister = (
989
989
  const content = await getPersisted();
990
990
  if (isArray(content)) {
991
991
  setContentOrChanges(content);
992
- } else if (initialContent) {
992
+ } else if (isUndefined(content) && initialContent) {
993
993
  setDefaultContent(initialContent);
994
- } else {
994
+ } else if (!isUndefined(content)) {
995
995
  errorNew(`Content is not an array: ${content}`);
996
996
  }
997
997
  },
998
- () => {
998
+ (error) => {
999
999
  if (initialContent) {
1000
1000
  setDefaultContent(initialContent);
1001
1001
  }
@@ -1248,8 +1248,10 @@ const createStore = () => {
1248
1248
  const changedRowIds = mapNew();
1249
1249
  const changedCellIds = mapNew();
1250
1250
  const changedCells = mapNew();
1251
+ const defaultedCells = mapNew();
1251
1252
  const changedValueIds = mapNew();
1252
1253
  const changedValues = mapNew();
1254
+ const defaultedValues = setNew();
1253
1255
  const invalidCells = mapNew();
1254
1256
  const invalidValues = mapNew();
1255
1257
  const tablesSchemaMap = mapNew();
@@ -1423,6 +1425,16 @@ const createStore = () => {
1423
1425
  collForEach(rowDefaulted, (cell, cellId) => {
1424
1426
  if (!objHas(row, cellId)) {
1425
1427
  row[cellId] = cell;
1428
+ ifNotUndefined(rowId, (rowId2) =>
1429
+ setAdd(
1430
+ mapEnsure(
1431
+ mapEnsure(defaultedCells, tableId, mapNew),
1432
+ rowId2,
1433
+ setNew,
1434
+ ),
1435
+ cellId,
1436
+ ),
1437
+ );
1426
1438
  }
1427
1439
  });
1428
1440
  collForEach(rowNonDefaulted, (cellId) => {
@@ -1439,6 +1451,7 @@ const createStore = () => {
1439
1451
  collForEach(valuesDefaulted, (value, valueId) => {
1440
1452
  if (!objHas(values, valueId)) {
1441
1453
  values[valueId] = value;
1454
+ setAdd(defaultedValues, valueId);
1442
1455
  }
1443
1456
  });
1444
1457
  collForEach(valuesNonDefaulted, (valueId) => {
@@ -1842,18 +1855,34 @@ const createStore = () => {
1842
1855
  );
1843
1856
  };
1844
1857
  const cellChanged = (tableId, rowId, cellId, oldCell, newCell) => {
1858
+ const defaulted =
1859
+ collHas(mapGet(mapGet(defaultedCells, tableId), rowId), cellId) &&
1860
+ isUndefined(oldCell)
1861
+ ? 1
1862
+ : 0;
1845
1863
  mapEnsure(
1846
1864
  mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),
1847
1865
  cellId,
1848
1866
  () => [oldCell, 0],
1849
1867
  )[1] = newCell;
1850
- internalListeners[3]?.(tableId, rowId, cellId, newCell, mutating);
1868
+ internalListeners[3]?.(
1869
+ tableId,
1870
+ rowId,
1871
+ cellId,
1872
+ newCell,
1873
+ mutating,
1874
+ defaulted,
1875
+ );
1876
+ collDel(mapGet(mapGet(defaultedCells, tableId), rowId), cellId);
1851
1877
  };
1852
1878
  const valueIdsChanged = (valueId, addedOrRemoved) =>
1853
1879
  idsChanged(changedValueIds, valueId, addedOrRemoved);
1854
1880
  const valueChanged = (valueId, oldValue, newValue) => {
1881
+ const defaulted =
1882
+ collHas(defaultedValues, valueId) && isUndefined(oldValue) ? 1 : 0;
1855
1883
  mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
1856
- internalListeners[4]?.(valueId, newValue, mutating);
1884
+ internalListeners[4]?.(valueId, newValue, mutating, defaulted);
1885
+ collDel(defaultedValues, valueId);
1857
1886
  };
1858
1887
  const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
1859
1888
  arrayPush(
@@ -2641,9 +2670,11 @@ const createStore = () => {
2641
2670
  changedRowIds,
2642
2671
  changedCellIds,
2643
2672
  changedCells,
2673
+ defaultedCells,
2644
2674
  invalidCells,
2645
2675
  changedValueIds,
2646
2676
  changedValues,
2677
+ defaultedValues,
2647
2678
  invalidValues,
2648
2679
  ],
2649
2680
  collClear,
@@ -907,13 +907,13 @@ const createCustomPersister = (
907
907
  const content = await getPersisted();
908
908
  if (isArray(content)) {
909
909
  setContentOrChanges(content);
910
- } else if (initialContent) {
910
+ } else if (isUndefined(content) && initialContent) {
911
911
  setDefaultContent(initialContent);
912
- } else {
912
+ } else if (!isUndefined(content)) {
913
913
  errorNew(`Content is not an array: ${content}`);
914
914
  }
915
915
  },
916
- () => {
916
+ (error) => {
917
917
  if (initialContent) {
918
918
  setDefaultContent(initialContent);
919
919
  }
@@ -1166,8 +1166,10 @@ const createStore = () => {
1166
1166
  const changedRowIds = mapNew();
1167
1167
  const changedCellIds = mapNew();
1168
1168
  const changedCells = mapNew();
1169
+ const defaultedCells = mapNew();
1169
1170
  const changedValueIds = mapNew();
1170
1171
  const changedValues = mapNew();
1172
+ const defaultedValues = setNew();
1171
1173
  const invalidCells = mapNew();
1172
1174
  const invalidValues = mapNew();
1173
1175
  const tablesSchemaMap = mapNew();
@@ -1341,6 +1343,16 @@ const createStore = () => {
1341
1343
  collForEach(rowDefaulted, (cell, cellId) => {
1342
1344
  if (!objHas(row, cellId)) {
1343
1345
  row[cellId] = cell;
1346
+ ifNotUndefined(rowId, (rowId2) =>
1347
+ setAdd(
1348
+ mapEnsure(
1349
+ mapEnsure(defaultedCells, tableId, mapNew),
1350
+ rowId2,
1351
+ setNew,
1352
+ ),
1353
+ cellId,
1354
+ ),
1355
+ );
1344
1356
  }
1345
1357
  });
1346
1358
  collForEach(rowNonDefaulted, (cellId) => {
@@ -1357,6 +1369,7 @@ const createStore = () => {
1357
1369
  collForEach(valuesDefaulted, (value, valueId) => {
1358
1370
  if (!objHas(values, valueId)) {
1359
1371
  values[valueId] = value;
1372
+ setAdd(defaultedValues, valueId);
1360
1373
  }
1361
1374
  });
1362
1375
  collForEach(valuesNonDefaulted, (valueId) => {
@@ -1760,18 +1773,34 @@ const createStore = () => {
1760
1773
  );
1761
1774
  };
1762
1775
  const cellChanged = (tableId, rowId, cellId, oldCell, newCell) => {
1776
+ const defaulted =
1777
+ collHas(mapGet(mapGet(defaultedCells, tableId), rowId), cellId) &&
1778
+ isUndefined(oldCell)
1779
+ ? 1
1780
+ : 0;
1763
1781
  mapEnsure(
1764
1782
  mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),
1765
1783
  cellId,
1766
1784
  () => [oldCell, 0],
1767
1785
  )[1] = newCell;
1768
- internalListeners[3]?.(tableId, rowId, cellId, newCell, mutating);
1786
+ internalListeners[3]?.(
1787
+ tableId,
1788
+ rowId,
1789
+ cellId,
1790
+ newCell,
1791
+ mutating,
1792
+ defaulted,
1793
+ );
1794
+ collDel(mapGet(mapGet(defaultedCells, tableId), rowId), cellId);
1769
1795
  };
1770
1796
  const valueIdsChanged = (valueId, addedOrRemoved) =>
1771
1797
  idsChanged(changedValueIds, valueId, addedOrRemoved);
1772
1798
  const valueChanged = (valueId, oldValue, newValue) => {
1799
+ const defaulted =
1800
+ collHas(defaultedValues, valueId) && isUndefined(oldValue) ? 1 : 0;
1773
1801
  mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
1774
- internalListeners[4]?.(valueId, newValue, mutating);
1802
+ internalListeners[4]?.(valueId, newValue, mutating, defaulted);
1803
+ collDel(defaultedValues, valueId);
1775
1804
  };
1776
1805
  const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
1777
1806
  arrayPush(
@@ -2559,9 +2588,11 @@ const createStore = () => {
2559
2588
  changedRowIds,
2560
2589
  changedCellIds,
2561
2590
  changedCells,
2591
+ defaultedCells,
2562
2592
  invalidCells,
2563
2593
  changedValueIds,
2564
2594
  changedValues,
2595
+ defaultedValues,
2565
2596
  invalidValues,
2566
2597
  ],
2567
2598
  collClear,