tinybase 8.6.0-beta.0 → 9.0.0-beta.1

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 (253) hide show
  1. package/@types/_internal/queries/with-schemas/index.d.ts +1 -2
  2. package/@types/_internal/ui/with-schemas/index.d.ts +8 -16
  3. package/@types/mergeable-store/index.d.ts +4 -4
  4. package/@types/mergeable-store/with-schemas/index.d.ts +41 -17
  5. package/@types/persisters/index.d.ts +34 -13
  6. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -8
  7. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +10 -10
  8. package/@types/persisters/with-schemas/index.d.ts +72 -30
  9. package/@types/queries/index.d.ts +5 -7
  10. package/@types/queries/with-schemas/index.d.ts +9 -15
  11. package/@types/store/index.d.ts +1 -2
  12. package/@types/store/with-schemas/index.d.ts +19 -29
  13. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +9 -3
  14. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +10 -3
  15. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +15 -2
  16. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +17 -2
  17. package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +51 -0
  18. package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +51 -0
  19. package/@types/ui-react/with-schemas/index.d.ts +3 -6
  20. package/@types/ui-react-dom/with-schemas/index.d.ts +6 -12
  21. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +3 -4
  22. package/@types/ui-solid/with-schemas/index.d.ts +4 -8
  23. package/@types/ui-solid-dom/with-schemas/index.d.ts +6 -12
  24. package/@types/ui-svelte-dom/with-schemas/index.d.ts +6 -12
  25. package/index.js +67 -25
  26. package/indexes/index.js +6 -8
  27. package/indexes/with-schemas/index.js +6 -8
  28. package/mergeable-store/index.js +46 -6
  29. package/mergeable-store/with-schemas/index.js +46 -6
  30. package/metrics/index.js +6 -8
  31. package/metrics/with-schemas/index.js +6 -8
  32. package/min/index.js +1 -1
  33. package/min/index.js.gz +0 -0
  34. package/min/mergeable-store/index.js +1 -1
  35. package/min/mergeable-store/index.js.gz +0 -0
  36. package/min/mergeable-store/with-schemas/index.js +1 -1
  37. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  38. package/min/omni/index.js +1 -1
  39. package/min/omni/index.js.gz +0 -0
  40. package/min/omni/with-schemas/index.js +1 -1
  41. package/min/omni/with-schemas/index.js.gz +0 -0
  42. package/min/persisters/index.js +1 -1
  43. package/min/persisters/index.js.gz +0 -0
  44. package/min/persisters/persister-automerge/index.js +1 -1
  45. package/min/persisters/persister-automerge/index.js.gz +0 -0
  46. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-browser/index.js +1 -1
  49. package/min/persisters/persister-browser/index.js.gz +0 -0
  50. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  53. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  54. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  57. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  58. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  61. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  62. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-electric-sql/index.js +1 -1
  65. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  66. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  69. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  70. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-file/index.js +1 -1
  73. package/min/persisters/persister-file/index.js.gz +0 -0
  74. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-indexed-db/index.js +1 -1
  77. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  78. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-libsql/index.js +1 -1
  81. package/min/persisters/persister-libsql/index.js.gz +0 -0
  82. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/persister-partykit-client/index.js +1 -1
  85. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  86. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  87. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  88. package/min/persisters/persister-pglite/index.js +1 -1
  89. package/min/persisters/persister-pglite/index.js.gz +0 -0
  90. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  91. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  92. package/min/persisters/persister-postgres/index.js +1 -1
  93. package/min/persisters/persister-postgres/index.js.gz +0 -0
  94. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  95. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  96. package/min/persisters/persister-powersync/index.js +1 -1
  97. package/min/persisters/persister-powersync/index.js.gz +0 -0
  98. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  99. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  100. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  101. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  102. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  103. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  104. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  105. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  106. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  107. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  108. package/min/persisters/persister-remote/index.js +1 -1
  109. package/min/persisters/persister-remote/index.js.gz +0 -0
  110. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  113. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  114. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  117. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  118. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/persister-sqlite3/index.js +1 -1
  121. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  122. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  123. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  124. package/min/persisters/persister-yjs/index.js +1 -1
  125. package/min/persisters/persister-yjs/index.js.gz +0 -0
  126. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  127. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  128. package/min/persisters/with-schemas/index.js +1 -1
  129. package/min/persisters/with-schemas/index.js.gz +0 -0
  130. package/min/queries/index.js +1 -1
  131. package/min/queries/index.js.gz +0 -0
  132. package/min/queries/with-schemas/index.js +1 -1
  133. package/min/queries/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/with-schemas/index.js +1 -1
  161. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  162. package/min/ui-react-inspector/index.js +1 -1
  163. package/min/ui-react-inspector/index.js.gz +0 -0
  164. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  165. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  166. package/min/ui-solid-inspector/index.js +1 -1
  167. package/min/ui-solid-inspector/index.js.gz +0 -0
  168. package/min/ui-solid-inspector/with-schemas/index.js +1 -1
  169. package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
  170. package/min/ui-svelte-inspector/index.js +1 -1
  171. package/min/ui-svelte-inspector/index.js.gz +0 -0
  172. package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
  173. package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
  174. package/min/with-schemas/index.js +1 -1
  175. package/min/with-schemas/index.js.gz +0 -0
  176. package/omni/index.js +364 -155
  177. package/omni/with-schemas/index.js +364 -155
  178. package/package.json +8 -8
  179. package/persisters/index.js +133 -40
  180. package/persisters/persister-automerge/index.js +4 -3
  181. package/persisters/persister-automerge/with-schemas/index.js +4 -3
  182. package/persisters/persister-browser/index.js +4 -3
  183. package/persisters/persister-browser/with-schemas/index.js +4 -3
  184. package/persisters/persister-cr-sqlite-wasm/index.js +133 -40
  185. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +133 -40
  186. package/persisters/persister-durable-object-sql-storage/index.js +275 -113
  187. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +275 -113
  188. package/persisters/persister-durable-object-storage/index.js +4 -3
  189. package/persisters/persister-durable-object-storage/with-schemas/index.js +4 -3
  190. package/persisters/persister-electric-sql/index.js +133 -40
  191. package/persisters/persister-electric-sql/with-schemas/index.js +133 -40
  192. package/persisters/persister-expo-sqlite/index.js +133 -40
  193. package/persisters/persister-expo-sqlite/with-schemas/index.js +133 -40
  194. package/persisters/persister-file/index.js +4 -3
  195. package/persisters/persister-file/with-schemas/index.js +4 -3
  196. package/persisters/persister-indexed-db/index.js +4 -3
  197. package/persisters/persister-indexed-db/with-schemas/index.js +4 -3
  198. package/persisters/persister-libsql/index.js +133 -40
  199. package/persisters/persister-libsql/with-schemas/index.js +133 -40
  200. package/persisters/persister-partykit-client/index.js +4 -3
  201. package/persisters/persister-partykit-client/with-schemas/index.js +4 -3
  202. package/persisters/persister-pglite/index.js +134 -40
  203. package/persisters/persister-pglite/with-schemas/index.js +134 -40
  204. package/persisters/persister-postgres/index.js +134 -40
  205. package/persisters/persister-postgres/with-schemas/index.js +134 -40
  206. package/persisters/persister-powersync/index.js +186 -120
  207. package/persisters/persister-powersync/with-schemas/index.js +186 -120
  208. package/persisters/persister-react-native-mmkv/index.js +4 -3
  209. package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -3
  210. package/persisters/persister-react-native-sqlite/index.js +133 -40
  211. package/persisters/persister-react-native-sqlite/with-schemas/index.js +133 -40
  212. package/persisters/persister-remote/index.js +4 -3
  213. package/persisters/persister-remote/with-schemas/index.js +4 -3
  214. package/persisters/persister-sqlite-bun/index.js +133 -40
  215. package/persisters/persister-sqlite-bun/with-schemas/index.js +133 -40
  216. package/persisters/persister-sqlite-wasm/index.js +133 -40
  217. package/persisters/persister-sqlite-wasm/with-schemas/index.js +133 -40
  218. package/persisters/persister-sqlite3/index.js +133 -40
  219. package/persisters/persister-sqlite3/with-schemas/index.js +133 -40
  220. package/persisters/persister-yjs/index.js +4 -3
  221. package/persisters/persister-yjs/with-schemas/index.js +4 -3
  222. package/persisters/with-schemas/index.js +133 -40
  223. package/queries/index.js +21 -19
  224. package/queries/with-schemas/index.js +21 -19
  225. package/readme.md +14 -14
  226. package/relationships/index.js +6 -8
  227. package/relationships/with-schemas/index.js +6 -8
  228. package/releases.md +72 -57
  229. package/store/index.js +33 -2
  230. package/store/with-schemas/index.js +33 -2
  231. package/synchronizers/index.js +4 -3
  232. package/synchronizers/synchronizer-broadcast-channel/index.js +4 -3
  233. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +4 -3
  234. package/synchronizers/synchronizer-local/index.js +4 -3
  235. package/synchronizers/synchronizer-local/with-schemas/index.js +4 -3
  236. package/synchronizers/synchronizer-ws-client/index.js +120 -45
  237. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +120 -45
  238. package/synchronizers/synchronizer-ws-server/index.js +116 -36
  239. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +116 -36
  240. package/synchronizers/synchronizer-ws-server-durable-object/index.js +125 -41
  241. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +125 -41
  242. package/synchronizers/with-schemas/index.js +4 -3
  243. package/ui-react-inspector/index.js +36 -5
  244. package/ui-react-inspector/with-schemas/index.js +36 -5
  245. package/ui-solid-inspector/index.js +36 -5
  246. package/ui-solid-inspector/with-schemas/index.js +36 -5
  247. package/ui-svelte/index.js +1 -1
  248. package/ui-svelte/with-schemas/index.js +1 -1
  249. package/ui-svelte-dom/index.js +2 -2
  250. package/ui-svelte-dom/with-schemas/index.js +2 -2
  251. package/ui-svelte-inspector/index.js +38 -7
  252. package/ui-svelte-inspector/with-schemas/index.js +38 -7
  253. package/with-schemas/index.js +67 -25
@@ -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,
@@ -60,7 +60,7 @@ const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
60
60
 
61
61
  const TINYBASE_CONTEXT_KEY = TINYBASE + '_uisc';
62
62
 
63
- /* functions.svelte.ts generated by Svelte v5.56.3 */
63
+ /* functions.svelte.ts generated by Svelte v5.56.4 */
64
64
 
65
65
  class ReactiveHandle {
66
66
  #get;
@@ -60,7 +60,7 @@ const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
60
60
 
61
61
  const TINYBASE_CONTEXT_KEY = TINYBASE + '_uisc';
62
62
 
63
- /* functions.svelte.ts generated by Svelte v5.56.3 */
63
+ /* functions.svelte.ts generated by Svelte v5.56.4 */
64
64
 
65
65
  class ReactiveHandle {
66
66
  #get;
@@ -91,7 +91,7 @@ const objMap = (obj, cb) =>
91
91
 
92
92
  const TINYBASE_CONTEXT_KEY = TINYBASE + '_uisc';
93
93
 
94
- /* functions.svelte.ts generated by Svelte v5.56.3 */
94
+ /* functions.svelte.ts generated by Svelte v5.56.4 */
95
95
 
96
96
  class ReactiveHandle {
97
97
  #get;
@@ -1693,7 +1693,7 @@ function SortedTablePaginator($$anchor, $$props) {
1693
1693
 
1694
1694
  $.delegate(['click']);
1695
1695
 
1696
- /* sortingAndPagination.svelte.ts generated by Svelte v5.56.3 */
1696
+ /* sortingAndPagination.svelte.ts generated by Svelte v5.56.4 */
1697
1697
 
1698
1698
  const createSortingAndPagination = (
1699
1699
  getCellId,
@@ -91,7 +91,7 @@ const objMap = (obj, cb) =>
91
91
 
92
92
  const TINYBASE_CONTEXT_KEY = TINYBASE + '_uisc';
93
93
 
94
- /* functions.svelte.ts generated by Svelte v5.56.3 */
94
+ /* functions.svelte.ts generated by Svelte v5.56.4 */
95
95
 
96
96
  class ReactiveHandle {
97
97
  #get;
@@ -1693,7 +1693,7 @@ function SortedTablePaginator($$anchor, $$props) {
1693
1693
 
1694
1694
  $.delegate(['click']);
1695
1695
 
1696
- /* sortingAndPagination.svelte.ts generated by Svelte v5.56.3 */
1696
+ /* sortingAndPagination.svelte.ts generated by Svelte v5.56.4 */
1697
1697
 
1698
1698
  const createSortingAndPagination = (
1699
1699
  getCellId,
@@ -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,
@@ -2879,7 +2910,7 @@ const createStore = () => {
2879
2910
 
2880
2911
  const TINYBASE_CONTEXT_KEY = TINYBASE + '_uisc';
2881
2912
 
2882
- /* functions.svelte.ts generated by Svelte v5.56.3 */
2913
+ /* functions.svelte.ts generated by Svelte v5.56.4 */
2883
2914
 
2884
2915
  class ReactiveHandle {
2885
2916
  #get;
@@ -4724,7 +4755,7 @@ function SortedTablePaginator($$anchor, $$props) {
4724
4755
 
4725
4756
  $.delegate(['click']);
4726
4757
 
4727
- /* sortingAndPagination.svelte.ts generated by Svelte v5.56.3 */
4758
+ /* sortingAndPagination.svelte.ts generated by Svelte v5.56.4 */
4728
4759
 
4729
4760
  const createSortingAndPagination = (
4730
4761
  getCellId,
@@ -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,
@@ -2879,7 +2910,7 @@ const createStore = () => {
2879
2910
 
2880
2911
  const TINYBASE_CONTEXT_KEY = TINYBASE + '_uisc';
2881
2912
 
2882
- /* functions.svelte.ts generated by Svelte v5.56.3 */
2913
+ /* functions.svelte.ts generated by Svelte v5.56.4 */
2883
2914
 
2884
2915
  class ReactiveHandle {
2885
2916
  #get;
@@ -4724,7 +4755,7 @@ function SortedTablePaginator($$anchor, $$props) {
4724
4755
 
4725
4756
  $.delegate(['click']);
4726
4757
 
4727
- /* sortingAndPagination.svelte.ts generated by Svelte v5.56.3 */
4758
+ /* sortingAndPagination.svelte.ts generated by Svelte v5.56.4 */
4728
4759
 
4729
4760
  const createSortingAndPagination = (
4730
4761
  getCellId,