tinybase 8.0.0-beta.2 → 8.0.0-beta.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 (282) hide show
  1. package/@types/_internal/store/with-schemas/index.d.ts +2 -2
  2. package/@types/common/index.d.ts +22 -0
  3. package/@types/common/with-schemas/index.d.ts +22 -0
  4. package/@types/middleware/index.d.ts +44 -119
  5. package/@types/middleware/with-schemas/index.d.ts +44 -142
  6. package/@types/store/index.d.ts +132 -79
  7. package/@types/store/with-schemas/index.d.ts +137 -81
  8. package/@types/ui-react-dom/index.d.ts +6 -4
  9. package/@types/ui-react-dom/with-schemas/index.d.ts +6 -4
  10. package/checkpoints/index.js +2 -8
  11. package/checkpoints/with-schemas/index.js +2 -8
  12. package/index.js +311 -209
  13. package/mergeable-store/index.js +330 -201
  14. package/mergeable-store/with-schemas/index.js +330 -201
  15. package/middleware/index.js +2 -40
  16. package/middleware/with-schemas/index.js +2 -40
  17. package/min/checkpoints/index.js +1 -1
  18. package/min/checkpoints/index.js.gz +0 -0
  19. package/min/checkpoints/with-schemas/index.js +1 -1
  20. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  21. package/min/index.js +1 -1
  22. package/min/index.js.gz +0 -0
  23. package/min/mergeable-store/index.js +1 -1
  24. package/min/mergeable-store/index.js.gz +0 -0
  25. package/min/mergeable-store/with-schemas/index.js +1 -1
  26. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  27. package/min/middleware/index.js +1 -1
  28. package/min/middleware/index.js.gz +0 -0
  29. package/min/middleware/with-schemas/index.js +1 -1
  30. package/min/middleware/with-schemas/index.js.gz +0 -0
  31. package/min/omni/index.js +1 -1
  32. package/min/omni/index.js.gz +0 -0
  33. package/min/omni/with-schemas/index.js +1 -1
  34. package/min/omni/with-schemas/index.js.gz +0 -0
  35. package/min/persisters/index.js +1 -1
  36. package/min/persisters/index.js.gz +0 -0
  37. package/min/persisters/persister-automerge/index.js +1 -1
  38. package/min/persisters/persister-automerge/index.js.gz +0 -0
  39. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  40. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  41. package/min/persisters/persister-browser/index.js +1 -1
  42. package/min/persisters/persister-browser/index.js.gz +0 -0
  43. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  44. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  45. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  46. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  47. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  48. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  49. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  50. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  51. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  52. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  53. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  54. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  55. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  56. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  57. package/min/persisters/persister-electric-sql/index.js +1 -1
  58. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  59. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  60. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  61. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  62. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  63. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  64. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  65. package/min/persisters/persister-file/index.js +1 -1
  66. package/min/persisters/persister-file/index.js.gz +0 -0
  67. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  68. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  69. package/min/persisters/persister-indexed-db/index.js +1 -1
  70. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  71. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  72. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  73. package/min/persisters/persister-libsql/index.js +1 -1
  74. package/min/persisters/persister-libsql/index.js.gz +0 -0
  75. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  76. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  77. package/min/persisters/persister-partykit-client/index.js +1 -1
  78. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  79. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  80. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  81. package/min/persisters/persister-pglite/index.js +1 -1
  82. package/min/persisters/persister-pglite/index.js.gz +0 -0
  83. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  84. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  85. package/min/persisters/persister-postgres/index.js +1 -1
  86. package/min/persisters/persister-postgres/index.js.gz +0 -0
  87. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  88. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  89. package/min/persisters/persister-powersync/index.js +1 -1
  90. package/min/persisters/persister-powersync/index.js.gz +0 -0
  91. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  92. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  93. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  94. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  95. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  96. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  97. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  98. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  99. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  100. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  101. package/min/persisters/persister-remote/index.js +1 -1
  102. package/min/persisters/persister-remote/index.js.gz +0 -0
  103. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  104. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  105. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  106. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  107. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  108. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  109. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  110. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  111. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  112. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  113. package/min/persisters/persister-sqlite3/index.js +1 -1
  114. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  115. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  116. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  117. package/min/persisters/persister-yjs/index.js +1 -1
  118. package/min/persisters/persister-yjs/index.js.gz +0 -0
  119. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  120. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  121. package/min/persisters/with-schemas/index.js +1 -1
  122. package/min/persisters/with-schemas/index.js.gz +0 -0
  123. package/min/queries/index.js +1 -1
  124. package/min/queries/index.js.gz +0 -0
  125. package/min/queries/with-schemas/index.js +1 -1
  126. package/min/queries/with-schemas/index.js.gz +0 -0
  127. package/min/schematizers/index.js +1 -1
  128. package/min/schematizers/index.js.gz +0 -0
  129. package/min/schematizers/schematizer-arktype/index.js +1 -1
  130. package/min/schematizers/schematizer-arktype/index.js.gz +0 -0
  131. package/min/schematizers/schematizer-arktype/with-schemas/index.js +1 -1
  132. package/min/schematizers/schematizer-arktype/with-schemas/index.js.gz +0 -0
  133. package/min/schematizers/schematizer-effect/index.js +1 -1
  134. package/min/schematizers/schematizer-effect/index.js.gz +0 -0
  135. package/min/schematizers/schematizer-effect/with-schemas/index.js +1 -1
  136. package/min/schematizers/schematizer-effect/with-schemas/index.js.gz +0 -0
  137. package/min/schematizers/schematizer-typebox/index.js +1 -1
  138. package/min/schematizers/schematizer-typebox/index.js.gz +0 -0
  139. package/min/schematizers/schematizer-typebox/with-schemas/index.js +1 -1
  140. package/min/schematizers/schematizer-typebox/with-schemas/index.js.gz +0 -0
  141. package/min/schematizers/schematizer-valibot/index.js +1 -1
  142. package/min/schematizers/schematizer-valibot/index.js.gz +0 -0
  143. package/min/schematizers/schematizer-valibot/with-schemas/index.js +1 -1
  144. package/min/schematizers/schematizer-valibot/with-schemas/index.js.gz +0 -0
  145. package/min/schematizers/schematizer-yup/index.js +1 -1
  146. package/min/schematizers/schematizer-yup/index.js.gz +0 -0
  147. package/min/schematizers/schematizer-yup/with-schemas/index.js +1 -1
  148. package/min/schematizers/schematizer-yup/with-schemas/index.js.gz +0 -0
  149. package/min/schematizers/schematizer-zod/index.js +1 -1
  150. package/min/schematizers/schematizer-zod/index.js.gz +0 -0
  151. package/min/schematizers/schematizer-zod/with-schemas/index.js +1 -1
  152. package/min/schematizers/schematizer-zod/with-schemas/index.js.gz +0 -0
  153. package/min/schematizers/with-schemas/index.js +1 -1
  154. package/min/schematizers/with-schemas/index.js.gz +0 -0
  155. package/min/store/index.js +1 -1
  156. package/min/store/index.js.gz +0 -0
  157. package/min/store/with-schemas/index.js +1 -1
  158. package/min/store/with-schemas/index.js.gz +0 -0
  159. package/min/synchronizers/index.js +1 -1
  160. package/min/synchronizers/index.js.gz +0 -0
  161. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  162. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  163. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  164. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  165. package/min/synchronizers/synchronizer-local/index.js +1 -1
  166. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  167. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  168. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  169. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  170. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  171. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  172. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  173. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  174. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  175. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  176. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  177. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  178. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  179. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  180. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  181. package/min/synchronizers/with-schemas/index.js +1 -1
  182. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  183. package/min/ui-react/index.js +1 -1
  184. package/min/ui-react/index.js.gz +0 -0
  185. package/min/ui-react/with-schemas/index.js +1 -1
  186. package/min/ui-react/with-schemas/index.js.gz +0 -0
  187. package/min/ui-react-dom/index.js +1 -1
  188. package/min/ui-react-dom/index.js.gz +0 -0
  189. package/min/ui-react-dom/with-schemas/index.js +1 -1
  190. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  191. package/min/ui-react-inspector/index.js +1 -1
  192. package/min/ui-react-inspector/index.js.gz +0 -0
  193. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  194. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  195. package/min/with-schemas/index.js +1 -1
  196. package/min/with-schemas/index.js.gz +0 -0
  197. package/omni/index.js +418 -219
  198. package/omni/with-schemas/index.js +418 -219
  199. package/package.json +10 -10
  200. package/persisters/index.js +5 -5
  201. package/persisters/persister-automerge/index.js +5 -5
  202. package/persisters/persister-automerge/with-schemas/index.js +5 -5
  203. package/persisters/persister-browser/index.js +5 -5
  204. package/persisters/persister-browser/with-schemas/index.js +5 -5
  205. package/persisters/persister-cr-sqlite-wasm/index.js +5 -5
  206. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +5 -5
  207. package/persisters/persister-durable-object-sql-storage/index.js +5 -5
  208. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +5 -5
  209. package/persisters/persister-durable-object-storage/index.js +5 -5
  210. package/persisters/persister-durable-object-storage/with-schemas/index.js +5 -5
  211. package/persisters/persister-electric-sql/index.js +5 -5
  212. package/persisters/persister-electric-sql/with-schemas/index.js +5 -5
  213. package/persisters/persister-expo-sqlite/index.js +5 -5
  214. package/persisters/persister-expo-sqlite/with-schemas/index.js +5 -5
  215. package/persisters/persister-file/index.js +5 -5
  216. package/persisters/persister-file/with-schemas/index.js +5 -5
  217. package/persisters/persister-indexed-db/index.js +5 -5
  218. package/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  219. package/persisters/persister-libsql/index.js +5 -5
  220. package/persisters/persister-libsql/with-schemas/index.js +5 -5
  221. package/persisters/persister-partykit-client/index.js +5 -5
  222. package/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  223. package/persisters/persister-pglite/index.js +5 -5
  224. package/persisters/persister-pglite/with-schemas/index.js +5 -5
  225. package/persisters/persister-postgres/index.js +5 -5
  226. package/persisters/persister-postgres/with-schemas/index.js +5 -5
  227. package/persisters/persister-powersync/index.js +5 -5
  228. package/persisters/persister-powersync/with-schemas/index.js +5 -5
  229. package/persisters/persister-react-native-mmkv/index.js +5 -5
  230. package/persisters/persister-react-native-mmkv/with-schemas/index.js +5 -5
  231. package/persisters/persister-react-native-sqlite/index.js +5 -5
  232. package/persisters/persister-react-native-sqlite/with-schemas/index.js +5 -5
  233. package/persisters/persister-remote/index.js +5 -5
  234. package/persisters/persister-remote/with-schemas/index.js +5 -5
  235. package/persisters/persister-sqlite-bun/index.js +5 -5
  236. package/persisters/persister-sqlite-bun/with-schemas/index.js +5 -5
  237. package/persisters/persister-sqlite-wasm/index.js +5 -5
  238. package/persisters/persister-sqlite-wasm/with-schemas/index.js +5 -5
  239. package/persisters/persister-sqlite3/index.js +5 -5
  240. package/persisters/persister-sqlite3/with-schemas/index.js +5 -5
  241. package/persisters/persister-yjs/index.js +5 -5
  242. package/persisters/persister-yjs/with-schemas/index.js +5 -5
  243. package/persisters/with-schemas/index.js +5 -5
  244. package/queries/index.js +11 -4
  245. package/queries/with-schemas/index.js +11 -4
  246. package/readme.md +3 -3
  247. package/releases.md +38 -3
  248. package/schematizers/index.js +9 -1
  249. package/schematizers/schematizer-arktype/index.js +16 -1
  250. package/schematizers/schematizer-arktype/with-schemas/index.js +16 -1
  251. package/schematizers/schematizer-effect/index.js +15 -2
  252. package/schematizers/schematizer-effect/with-schemas/index.js +15 -2
  253. package/schematizers/schematizer-typebox/index.js +9 -1
  254. package/schematizers/schematizer-typebox/with-schemas/index.js +9 -1
  255. package/schematizers/schematizer-valibot/index.js +17 -2
  256. package/schematizers/schematizer-valibot/with-schemas/index.js +17 -2
  257. package/schematizers/schematizer-yup/index.js +9 -1
  258. package/schematizers/schematizer-yup/with-schemas/index.js +9 -1
  259. package/schematizers/schematizer-zod/index.js +13 -2
  260. package/schematizers/schematizer-zod/with-schemas/index.js +13 -2
  261. package/schematizers/with-schemas/index.js +9 -1
  262. package/store/index.js +254 -149
  263. package/store/with-schemas/index.js +254 -149
  264. package/synchronizers/index.js +5 -5
  265. package/synchronizers/synchronizer-broadcast-channel/index.js +5 -5
  266. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -5
  267. package/synchronizers/synchronizer-local/index.js +5 -5
  268. package/synchronizers/synchronizer-local/with-schemas/index.js +5 -5
  269. package/synchronizers/synchronizer-ws-client/index.js +5 -5
  270. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +5 -5
  271. package/synchronizers/synchronizer-ws-server/index.js +5 -5
  272. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +5 -5
  273. package/synchronizers/synchronizer-ws-server-durable-object/index.js +5 -5
  274. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +5 -5
  275. package/synchronizers/with-schemas/index.js +5 -5
  276. package/ui-react/index.js +6 -0
  277. package/ui-react/with-schemas/index.js +6 -0
  278. package/ui-react-dom/index.js +113 -6
  279. package/ui-react-dom/with-schemas/index.js +113 -6
  280. package/ui-react-inspector/index.js +329 -129
  281. package/ui-react-inspector/with-schemas/index.js +329 -129
  282. package/with-schemas/index.js +311 -209
@@ -4,6 +4,8 @@ const STRING = getTypeOf(EMPTY_STRING);
4
4
  const BOOLEAN = getTypeOf(true);
5
5
  const NUMBER = getTypeOf(0);
6
6
  const FUNCTION = getTypeOf(getTypeOf);
7
+ const OBJECT = 'object';
8
+ const ARRAY = 'array';
7
9
  const TYPE = 'type';
8
10
  const DEFAULT = 'default';
9
11
  const ALLOW_NULL = 'allowNull';
@@ -23,6 +25,7 @@ const CELL_IDS = CELL + IDS;
23
25
  const VALUE = 'Value';
24
26
  const VALUES = VALUE + 's';
25
27
  const VALUE_IDS = VALUE + IDS;
28
+ const JSON_PREFIX = '\uFFFD';
26
29
  const id = (key) => EMPTY_STRING + key;
27
30
 
28
31
  const getIfNotFunction = (predicate) => (value, then, otherwise) =>
@@ -36,6 +39,7 @@ const isNull = (thing) => thing === null;
36
39
  const ifNotNullish = getIfNotFunction(isNullish);
37
40
  const ifNotUndefined = getIfNotFunction(isUndefined);
38
41
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
42
+ const isString = (thing) => getTypeOf(thing) == STRING;
39
43
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
40
44
  const isArray = (thing) => Array.isArray(thing);
41
45
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
@@ -63,30 +67,6 @@ const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
63
67
  const arrayPush = (array, ...values) => array.push(...values);
64
68
  const arrayShift = (array) => array.shift();
65
69
 
66
- const getCellOrValueType = (cellOrValue) => {
67
- if (isNull(cellOrValue)) {
68
- return NULL;
69
- }
70
- const type = getTypeOf(cellOrValue);
71
- return isTypeStringOrBoolean(type) ||
72
- (type == NUMBER && isFiniteNumber(cellOrValue))
73
- ? type
74
- : void 0;
75
- };
76
-
77
- const collSizeN = (collSizer) => (coll) =>
78
- arrayReduce(collValues(coll), (total, coll2) => total + collSizer(coll2), 0);
79
- const collSize = (coll) => coll?.size ?? 0;
80
- const collSize2 = collSizeN(collSize);
81
- const collSize3 = collSizeN(collSize2);
82
- const collSize4 = collSizeN(collSize3);
83
- const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
84
- const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
85
- const collValues = (coll) => [...(coll?.values() ?? [])];
86
- const collClear = (coll) => coll.clear();
87
- const collForEach = (coll, cb) => coll?.forEach(cb);
88
- const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
89
-
90
70
  const object = Object;
91
71
  const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
92
72
  const objFrozen = object.isFrozen;
@@ -105,7 +85,6 @@ const isObject = (obj) =>
105
85
  const objIds = object.keys;
106
86
  const objFreeze = object.freeze;
107
87
  const objNew = (entries = []) => object.fromEntries(entries);
108
- const objMerge = (...objs) => object.assign({}, ...objs);
109
88
  const objHas = (obj, id) => id in obj;
110
89
  const objDel = (obj, id) => {
111
90
  delete obj[id];
@@ -157,6 +136,49 @@ const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
157
136
  return emptyIsValid ? true : !objIsEmpty(obj);
158
137
  };
159
138
 
139
+ const jsonString = JSON.stringify;
140
+ const jsonParse = JSON.parse;
141
+ const jsonStringWithMap = (obj) =>
142
+ jsonString(obj, (_key, value) =>
143
+ isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
144
+ );
145
+
146
+ const getCellOrValueType = (cellOrValue) => {
147
+ if (isNull(cellOrValue)) {
148
+ return NULL;
149
+ }
150
+ if (isArray(cellOrValue)) {
151
+ return ARRAY;
152
+ }
153
+ if (isObject(cellOrValue)) {
154
+ return OBJECT;
155
+ }
156
+ const type = getTypeOf(cellOrValue);
157
+ return isTypeStringOrBoolean(type) ||
158
+ (type == NUMBER && isFiniteNumber(cellOrValue))
159
+ ? type
160
+ : void 0;
161
+ };
162
+ const isJsonType = (type) => type == OBJECT || type == ARRAY;
163
+ const encodeIfJson = (value) =>
164
+ isObject(value) || isArray(value) ? JSON_PREFIX + jsonString(value) : value;
165
+ const isEncodedJson = (value) => isString(value) && value[0] == JSON_PREFIX;
166
+ const decodeIfJson = (raw, _id, encoded) =>
167
+ !encoded && isEncodedJson(raw) ? jsonParse(slice(raw, 1)) : raw;
168
+
169
+ const collSizeN = (collSizer) => (coll) =>
170
+ arrayReduce(collValues(coll), (total, coll2) => total + collSizer(coll2), 0);
171
+ const collSize = (coll) => coll?.size ?? 0;
172
+ const collSize2 = collSizeN(collSize);
173
+ const collSize3 = collSizeN(collSize2);
174
+ const collSize4 = collSizeN(collSize3);
175
+ const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
176
+ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
177
+ const collValues = (coll) => [...(coll?.values() ?? [])];
178
+ const collClear = (coll) => coll.clear();
179
+ const collForEach = (coll, cb) => coll?.forEach(cb);
180
+ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
181
+
160
182
  const map = Map;
161
183
  const mapNew = (entries) => new map(entries);
162
184
  const mapKeys = (map2) => [...(map2?.keys() ?? [])];
@@ -235,13 +257,6 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
235
257
  },
236
258
  );
237
259
 
238
- const jsonString = JSON.stringify;
239
- const jsonParse = JSON.parse;
240
- const jsonStringWithMap = (obj) =>
241
- jsonString(obj, (_key, value) =>
242
- isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
243
- );
244
-
245
260
  const defaultSorter = (sortKey1, sortKey2) =>
246
261
  (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
247
262
 
@@ -435,15 +450,19 @@ const createStore = () => {
435
450
  return false;
436
451
  }
437
452
  const type = schema[TYPE];
438
- if (!isTypeStringOrBoolean(type) && type != NUMBER) {
453
+ if (!isTypeStringOrBoolean(type) && type != NUMBER && !isJsonType(type)) {
439
454
  return false;
440
455
  }
441
456
  const defaultValue = schema[DEFAULT];
442
457
  if (isNull(defaultValue) && !schema[ALLOW_NULL]) {
443
458
  return false;
444
459
  }
445
- if (!isNull(defaultValue) && getCellOrValueType(defaultValue) != type) {
446
- objDel(schema, DEFAULT);
460
+ if (!isNull(defaultValue)) {
461
+ if (getCellOrValueType(defaultValue) != type) {
462
+ objDel(schema, DEFAULT);
463
+ } else {
464
+ schema[DEFAULT] = encodeIfJson(defaultValue);
465
+ }
447
466
  }
448
467
  return true;
449
468
  };
@@ -483,20 +502,22 @@ const createStore = () => {
483
502
  ? cellSchema[ALLOW_NULL]
484
503
  ? cell
485
504
  : cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
486
- : getCellOrValueType(cell) == cellSchema[TYPE]
487
- ? cell
488
- : cellInvalid(
489
- tableId,
490
- rowId,
491
- cellId,
492
- cell,
493
- cellSchema[DEFAULT],
494
- ),
505
+ : getCellOrValueType(cell) === cellSchema[TYPE]
506
+ ? encodeIfJson(cell)
507
+ : isJsonType(cellSchema[TYPE]) && isEncodedJson(cell)
508
+ ? cell
509
+ : cellInvalid(
510
+ tableId,
511
+ rowId,
512
+ cellId,
513
+ cell,
514
+ cellSchema[DEFAULT],
515
+ ),
495
516
  () => cellInvalid(tableId, rowId, cellId, cell),
496
517
  )
497
518
  : isUndefined(getCellOrValueType(cell))
498
519
  ? cellInvalid(tableId, rowId, cellId, cell)
499
- : cell;
520
+ : encodeIfJson(cell);
500
521
  const validateValues = (values, skipDefaults) =>
501
522
  objValidate(
502
523
  skipDefaults ? values : addDefaultsToValues(values),
@@ -520,14 +541,16 @@ const createStore = () => {
520
541
  ? valueSchema[ALLOW_NULL]
521
542
  ? value
522
543
  : valueInvalid(valueId, value, valueSchema[DEFAULT])
523
- : getCellOrValueType(value) == valueSchema[TYPE]
524
- ? value
525
- : valueInvalid(valueId, value, valueSchema[DEFAULT]),
544
+ : getCellOrValueType(value) === valueSchema[TYPE]
545
+ ? encodeIfJson(value)
546
+ : isJsonType(valueSchema[TYPE]) && isEncodedJson(value)
547
+ ? value
548
+ : valueInvalid(valueId, value, valueSchema[DEFAULT]),
526
549
  () => valueInvalid(valueId, value),
527
550
  )
528
551
  : isUndefined(getCellOrValueType(value))
529
552
  ? valueInvalid(valueId, value)
530
- : value;
553
+ : encodeIfJson(value);
531
554
  const addDefaultsToRow = (row, tableId, rowId) => {
532
555
  ifNotUndefined(
533
556
  mapGet(tablesSchemaRowCache, tableId),
@@ -607,10 +630,24 @@ const createStore = () => {
607
630
  );
608
631
  const setOrDelTables = (tables) =>
609
632
  objIsEmpty(tables) ? delTables() : setTables(tables);
610
- const setOrDelCell = (tableId, rowId, cellId, cell, skipMiddleware) =>
633
+ const setOrDelCell = (
634
+ tableId,
635
+ rowId,
636
+ cellId,
637
+ cell,
638
+ skipMiddleware,
639
+ skipRowMiddleware,
640
+ ) =>
611
641
  isUndefined(cell)
612
642
  ? delCell(tableId, rowId, cellId, true, skipMiddleware)
613
- : setCell(tableId, rowId, cellId, cell, skipMiddleware);
643
+ : setCell(
644
+ tableId,
645
+ rowId,
646
+ cellId,
647
+ cell,
648
+ skipMiddleware,
649
+ skipRowMiddleware,
650
+ );
614
651
  const setOrDelValues = (values) =>
615
652
  objIsEmpty(values) ? delValues() : setValues(values);
616
653
  const setOrDelValue = (valueId, value, skipMiddleware) =>
@@ -710,6 +747,30 @@ const createStore = () => {
710
747
  ),
711
748
  objIsEqual,
712
749
  );
750
+ const applyRowDirectly = (tableId, tableMap, rowId, row, skipMiddleware) => {
751
+ mapMatch(
752
+ mapEnsure(tableMap, rowId, () => {
753
+ rowIdsChanged(tableId, rowId, 1);
754
+ return mapNew();
755
+ }),
756
+ row,
757
+ (rowMap, cellId, cell) =>
758
+ ifNotUndefined(
759
+ getValidatedCell(tableId, rowId, cellId, cell),
760
+ (validCell) =>
761
+ setValidCell(
762
+ tableId,
763
+ rowId,
764
+ rowMap,
765
+ cellId,
766
+ validCell,
767
+ skipMiddleware,
768
+ ),
769
+ ),
770
+ (rowMap, cellId) =>
771
+ delValidCell(tableId, tableMap, rowId, rowMap, cellId, true),
772
+ );
773
+ };
713
774
  const setValidCell = (tableId, rowId, rowMap, cellId, cell, skipMiddleware) =>
714
775
  ifTransformed(
715
776
  cell,
@@ -950,13 +1011,21 @@ const createStore = () => {
950
1011
  const getCellChange = (tableId, rowId, cellId) =>
951
1012
  ifNotUndefined(
952
1013
  mapGet(mapGet(mapGet(changedCells, tableId), rowId), cellId),
953
- ([oldCell, newCell]) => [true, oldCell, newCell],
1014
+ ([oldCell, newCell]) => [
1015
+ true,
1016
+ decodeIfJson(oldCell),
1017
+ decodeIfJson(newCell),
1018
+ ],
954
1019
  () => [false, ...pairNew(getCell(tableId, rowId, cellId))],
955
1020
  );
956
1021
  const getValueChange = (valueId) =>
957
1022
  ifNotUndefined(
958
1023
  mapGet(changedValues, valueId),
959
- ([oldValue, newValue]) => [true, oldValue, newValue],
1024
+ ([oldValue, newValue]) => [
1025
+ true,
1026
+ decodeIfJson(oldValue),
1027
+ decodeIfJson(newValue),
1028
+ ],
960
1029
  () => [false, ...pairNew(getValue(valueId))],
961
1030
  );
962
1031
  const callInvalidCellListeners = (mutator) =>
@@ -1132,8 +1201,8 @@ const createStore = () => {
1132
1201
  callListeners(
1133
1202
  cellListeners[mutator],
1134
1203
  [tableId, rowId, cellId],
1135
- newCell,
1136
- oldCell,
1204
+ decodeIfJson(newCell),
1205
+ decodeIfJson(oldCell),
1137
1206
  getCellChange,
1138
1207
  );
1139
1208
  tablesChanged = tableChanged = rowChanged = 1;
@@ -1189,8 +1258,8 @@ const createStore = () => {
1189
1258
  callListeners(
1190
1259
  valueListeners[mutator],
1191
1260
  [valueId],
1192
- newValue,
1193
- oldValue,
1261
+ decodeIfJson(newValue),
1262
+ decodeIfJson(oldValue),
1194
1263
  getValueChange,
1195
1264
  );
1196
1265
  valuesChanged = 1;
@@ -1227,10 +1296,42 @@ const createStore = () => {
1227
1296
  [getTableIds],
1228
1297
  );
1229
1298
  };
1299
+ const getTransactionChangesImpl = (encoded = false) => [
1300
+ mapToObj(
1301
+ changedCells,
1302
+ (table, tableId) =>
1303
+ mapGet(changedTableIds, tableId) === -1
1304
+ ? void 0
1305
+ : mapToObj(
1306
+ table,
1307
+ (row, rowId) =>
1308
+ mapGet(mapGet(changedRowIds, tableId), rowId) === -1
1309
+ ? void 0
1310
+ : mapToObj(
1311
+ row,
1312
+ ([, newCell]) =>
1313
+ decodeIfJson(newCell, EMPTY_STRING, encoded),
1314
+ (changedCell) => pairIsEqual(changedCell),
1315
+ ),
1316
+ collIsEmpty,
1317
+ objIsEmpty,
1318
+ ),
1319
+ collIsEmpty,
1320
+ objIsEmpty,
1321
+ ),
1322
+ mapToObj(
1323
+ changedValues,
1324
+ ([, newValue]) => decodeIfJson(newValue, EMPTY_STRING, encoded),
1325
+ (changedValue) => pairIsEqual(changedValue),
1326
+ ),
1327
+ 1,
1328
+ ];
1230
1329
  const getContent = () => [getTables(), getValues()];
1231
- const getTables = () => mapToObj3(tablesMap);
1330
+ const getEncodedContent = () => [mapToObj3(tablesMap), mapToObj(valuesMap)];
1331
+ const getTables = () => mapToObj3(tablesMap, decodeIfJson);
1232
1332
  const getTableIds = () => mapKeys(tablesMap);
1233
- const getTable = (tableId) => mapToObj2(mapGet(tablesMap, id(tableId)));
1333
+ const getTable = (tableId) =>
1334
+ mapToObj2(mapGet(tablesMap, id(tableId)), decodeIfJson);
1234
1335
  const getTableCellIds = (tableId) =>
1235
1336
  mapKeys(mapGet(tableCellIds, id(tableId)));
1236
1337
  const getRowCount = (tableId) => collSize(mapGet(tablesMap, id(tableId)));
@@ -1266,14 +1367,16 @@ const createStore = () => {
1266
1367
  ([, rowId]) => rowId,
1267
1368
  );
1268
1369
  const getRow = (tableId, rowId) =>
1269
- mapToObj(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));
1370
+ mapToObj(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), decodeIfJson);
1270
1371
  const getCellIds = (tableId, rowId) =>
1271
1372
  mapKeys(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)));
1272
1373
  const getCell = (tableId, rowId, cellId) =>
1273
- mapGet(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), id(cellId));
1274
- const getValues = () => mapToObj(valuesMap);
1374
+ decodeIfJson(
1375
+ mapGet(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), id(cellId)),
1376
+ );
1377
+ const getValues = () => mapToObj(valuesMap, decodeIfJson);
1275
1378
  const getValueIds = () => mapKeys(valuesMap);
1276
- const getValue = (valueId) => mapGet(valuesMap, id(valueId));
1379
+ const getValue = (valueId) => decodeIfJson(mapGet(valuesMap, id(valueId)));
1277
1380
  const hasTables = () => !collIsEmpty(tablesMap);
1278
1381
  const hasTable = (tableId) => collHas(tablesMap, id(tableId));
1279
1382
  const hasTableCell = (tableId, cellId) =>
@@ -1344,7 +1447,14 @@ const createStore = () => {
1344
1447
  tableId,
1345
1448
  rowId,
1346
1449
  );
1347
- const setCell = (tableId, rowId, cellId, cell, skipMiddleware) =>
1450
+ const setCell = (
1451
+ tableId,
1452
+ rowId,
1453
+ cellId,
1454
+ cell,
1455
+ skipMiddleware,
1456
+ skipRowMiddleware,
1457
+ ) =>
1348
1458
  fluentTransaction(
1349
1459
  (tableId2, rowId2, cellId2) =>
1350
1460
  ifNotUndefined(
@@ -1354,15 +1464,47 @@ const createStore = () => {
1354
1464
  cellId2,
1355
1465
  isFunction(cell) ? cell(getCell(tableId2, rowId2, cellId2)) : cell,
1356
1466
  ),
1357
- (validCell) =>
1358
- setCellIntoNewRow(
1359
- tableId2,
1360
- getOrCreateTable(tableId2),
1361
- rowId2,
1362
- cellId2,
1363
- validCell,
1364
- skipMiddleware,
1365
- ),
1467
+ (validCell) => {
1468
+ const tableMap = getOrCreateTable(tableId2);
1469
+ ifNotUndefined(
1470
+ skipMiddleware || skipRowMiddleware || !middleware[14]?.()
1471
+ ? void 0
1472
+ : middleware[3],
1473
+ (willSetRow) => {
1474
+ const existingRowMap = mapGet(tableMap, rowId2);
1475
+ const prospectiveRow = {
1476
+ ...(existingRowMap ? mapToObj(existingRowMap) : {}),
1477
+ [cellId2]: validCell,
1478
+ };
1479
+ ifNotUndefined(
1480
+ whileMutating(() =>
1481
+ willSetRow(
1482
+ tableId2,
1483
+ rowId2,
1484
+ structuredClone(prospectiveRow),
1485
+ ),
1486
+ ),
1487
+ (row) =>
1488
+ applyRowDirectly(
1489
+ tableId2,
1490
+ tableMap,
1491
+ rowId2,
1492
+ row,
1493
+ skipMiddleware,
1494
+ ),
1495
+ );
1496
+ },
1497
+ () =>
1498
+ setCellIntoNewRow(
1499
+ tableId2,
1500
+ tableMap,
1501
+ rowId2,
1502
+ cellId2,
1503
+ validCell,
1504
+ skipMiddleware,
1505
+ ),
1506
+ );
1507
+ },
1366
1508
  ),
1367
1509
  tableId,
1368
1510
  rowId,
@@ -1411,7 +1553,14 @@ const createStore = () => {
1411
1553
  isUndefined(row)
1412
1554
  ? delRow(tableId, rowId)
1413
1555
  : objMap(row, (cell, cellId) =>
1414
- setOrDelCell(tableId, rowId, cellId, cell),
1556
+ setOrDelCell(
1557
+ tableId,
1558
+ rowId,
1559
+ cellId,
1560
+ cell,
1561
+ void 0,
1562
+ true,
1563
+ ),
1415
1564
  ),
1416
1565
  ),
1417
1566
  );
@@ -1560,35 +1709,8 @@ const createStore = () => {
1560
1709
  }
1561
1710
  return store;
1562
1711
  };
1563
- const getTransactionChanges = () => [
1564
- mapToObj(
1565
- changedCells,
1566
- (table, tableId) =>
1567
- mapGet(changedTableIds, tableId) === -1
1568
- ? void 0
1569
- : mapToObj(
1570
- table,
1571
- (row, rowId) =>
1572
- mapGet(mapGet(changedRowIds, tableId), rowId) === -1
1573
- ? void 0
1574
- : mapToObj(
1575
- row,
1576
- ([, newCell]) => newCell,
1577
- (changedCell) => pairIsEqual(changedCell),
1578
- ),
1579
- collIsEmpty,
1580
- objIsEmpty,
1581
- ),
1582
- collIsEmpty,
1583
- objIsEmpty,
1584
- ),
1585
- mapToObj(
1586
- changedValues,
1587
- ([, newValue]) => newValue,
1588
- (changedValue) => pairIsEqual(changedValue),
1589
- ),
1590
- 1,
1591
- ];
1712
+ const getTransactionChanges = () => getTransactionChangesImpl();
1713
+ const getEncodedTransactionChanges = () => getTransactionChangesImpl(true);
1592
1714
  const getTransactionLog = () => [
1593
1715
  !collIsEmpty(changedCells),
1594
1716
  !collIsEmpty(changedValues),
@@ -1601,37 +1723,6 @@ const createStore = () => {
1601
1723
  mapToObj3(changedCellIds),
1602
1724
  mapToObj(changedValueIds),
1603
1725
  ];
1604
- const doDidSetRows = () => {
1605
- if (middleware[14]) {
1606
- const changedCells2 = clonedChangedCells(changedCells);
1607
- collForEach(changedCells2, (rows, tableId) =>
1608
- collForEach(rows, (cells, rowId) => {
1609
- if (
1610
- !arrayEvery(
1611
- collValues(cells),
1612
- ([oldCell, newCell]) => oldCell === newCell,
1613
- )
1614
- ) {
1615
- const newRow = getRow(tableId, rowId);
1616
- const oldRow = objMerge(newRow);
1617
- collForEach(cells, ([oldCell], cellId) =>
1618
- isUndefined(oldCell)
1619
- ? objDel(oldRow, cellId)
1620
- : (oldRow[cellId] = oldCell),
1621
- );
1622
- const didSetRow = middleware[14](tableId, rowId, oldRow, newRow);
1623
- if (!objIsEqual(didSetRow, newRow)) {
1624
- const setOrDelRow = objMap(newRow, () => void 0);
1625
- objMap(didSetRow, (cell, cellId) => (setOrDelRow[cellId] = cell));
1626
- objMap(setOrDelRow, (cell, cellId) =>
1627
- setOrDelCell(tableId, rowId, cellId, cell, true),
1628
- );
1629
- }
1630
- }
1631
- }),
1632
- );
1633
- }
1634
- };
1635
1726
  const finishTransaction = (doRollback) => {
1636
1727
  if (transactions > 0) {
1637
1728
  transactions--;
@@ -1641,7 +1732,6 @@ const createStore = () => {
1641
1732
  callInvalidCellListeners(1);
1642
1733
  if (!collIsEmpty(changedCells)) {
1643
1734
  callTabularListenersForChanges(1);
1644
- doDidSetRows();
1645
1735
  }
1646
1736
  callInvalidValueListeners(1);
1647
1737
  if (!collIsEmpty(changedValues)) {
@@ -1702,7 +1792,9 @@ const createStore = () => {
1702
1792
  tableCallback(tableId, (rowCallback) =>
1703
1793
  collForEach(tableMap, (rowMap, rowId) =>
1704
1794
  rowCallback(rowId, (cellCallback) =>
1705
- mapForEach(rowMap, cellCallback),
1795
+ mapForEach(rowMap, (cellId, cell) =>
1796
+ cellCallback(cellId, decodeIfJson(cell)),
1797
+ ),
1706
1798
  ),
1707
1799
  ),
1708
1800
  ),
@@ -1711,11 +1803,21 @@ const createStore = () => {
1711
1803
  mapForEach(mapGet(tableCellIds, id(tableId)), tableCellCallback);
1712
1804
  const forEachRow = (tableId, rowCallback) =>
1713
1805
  collForEach(mapGet(tablesMap, id(tableId)), (rowMap, rowId) =>
1714
- rowCallback(rowId, (cellCallback) => mapForEach(rowMap, cellCallback)),
1806
+ rowCallback(rowId, (cellCallback) =>
1807
+ mapForEach(rowMap, (cellId, cell) =>
1808
+ cellCallback(cellId, decodeIfJson(cell)),
1809
+ ),
1810
+ ),
1715
1811
  );
1716
1812
  const forEachCell = (tableId, rowId, cellCallback) =>
1717
- mapForEach(mapGet(mapGet(tablesMap, id(tableId)), id(rowId)), cellCallback);
1718
- const forEachValue = (valueCallback) => mapForEach(valuesMap, valueCallback);
1813
+ mapForEach(
1814
+ mapGet(mapGet(tablesMap, id(tableId)), id(rowId)),
1815
+ (cellId, cell) => cellCallback(cellId, decodeIfJson(cell)),
1816
+ );
1817
+ const forEachValue = (valueCallback) =>
1818
+ mapForEach(valuesMap, (valueId, value) =>
1819
+ valueCallback(valueId, decodeIfJson(value)),
1820
+ );
1719
1821
  const addSortedRowIdsListener = (
1720
1822
  tableIdOrArgs,
1721
1823
  cellIdOrListener,
@@ -1800,7 +1902,7 @@ const createStore = () => {
1800
1902
  willDelValues,
1801
1903
  willDelValue,
1802
1904
  willApplyChanges,
1803
- didSetRow,
1905
+ hasWillSetRowCallbacks,
1804
1906
  ) =>
1805
1907
  (middleware = [
1806
1908
  willSetContent,
@@ -1817,7 +1919,7 @@ const createStore = () => {
1817
1919
  willDelValues,
1818
1920
  willDelValue,
1819
1921
  willApplyChanges,
1820
- didSetRow,
1922
+ hasWillSetRowCallbacks,
1821
1923
  ]);
1822
1924
  const setInternalListeners = (
1823
1925
  preStartTransaction,
@@ -1907,14 +2009,17 @@ const createStore = () => {
1907
2009
  delListener,
1908
2010
  getListenerStats,
1909
2011
  isMergeable: () => false,
1910
- // only used internally by other modules
1911
- createStore,
1912
- addListener,
1913
- callListeners,
1914
- setInternalListeners,
1915
- setMiddleware,
1916
- setOrDelCell,
1917
- setOrDelValue,
2012
+ _: [
2013
+ createStore,
2014
+ addListener,
2015
+ callListeners,
2016
+ setInternalListeners,
2017
+ setMiddleware,
2018
+ setOrDelCell,
2019
+ setOrDelValue,
2020
+ getEncodedContent,
2021
+ getEncodedTransactionChanges,
2022
+ ],
1918
2023
  };
1919
2024
  objMap(
1920
2025
  {
@@ -236,8 +236,8 @@ const getStoreFunctions = (
236
236
  persist != 1 /* StoreOnly */ && store.isMergeable()
237
237
  ? [
238
238
  1,
239
- store.getMergeableContent,
240
- () => store.getTransactionMergeableChanges(!isSynchronizer),
239
+ store.__[1],
240
+ () => store.__[2](!isSynchronizer),
241
241
  ([[changedTables], [changedValues]]) =>
242
242
  !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
243
243
  store.setDefaultContent,
@@ -245,8 +245,8 @@ const getStoreFunctions = (
245
245
  : persist != 2 /* MergeableStoreOnly */
246
246
  ? [
247
247
  0,
248
- store.getContent,
249
- store.getTransactionChanges,
248
+ store._[7],
249
+ store._[8],
250
250
  ([changedTables, changedValues]) =>
251
251
  !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
252
252
  store.setContent,
@@ -311,7 +311,7 @@ const createCustomPersister = (
311
311
  : store.setContent)(contentOrChanges);
312
312
  };
313
313
  const saveAfterMutated = async () => {
314
- if (isAutoSaving() && store.hadMutated?.()) {
314
+ if (isAutoSaving() && store.__?.[0]?.()) {
315
315
  await save();
316
316
  }
317
317
  };
@@ -236,8 +236,8 @@ const getStoreFunctions = (
236
236
  persist != 1 /* StoreOnly */ && store.isMergeable()
237
237
  ? [
238
238
  1,
239
- store.getMergeableContent,
240
- () => store.getTransactionMergeableChanges(!isSynchronizer),
239
+ store.__[1],
240
+ () => store.__[2](!isSynchronizer),
241
241
  ([[changedTables], [changedValues]]) =>
242
242
  !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
243
243
  store.setDefaultContent,
@@ -245,8 +245,8 @@ const getStoreFunctions = (
245
245
  : persist != 2 /* MergeableStoreOnly */
246
246
  ? [
247
247
  0,
248
- store.getContent,
249
- store.getTransactionChanges,
248
+ store._[7],
249
+ store._[8],
250
250
  ([changedTables, changedValues]) =>
251
251
  !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
252
252
  store.setContent,
@@ -311,7 +311,7 @@ const createCustomPersister = (
311
311
  : store.setContent)(contentOrChanges);
312
312
  };
313
313
  const saveAfterMutated = async () => {
314
- if (isAutoSaving() && store.hadMutated?.()) {
314
+ if (isAutoSaving() && store.__?.[0]?.()) {
315
315
  await save();
316
316
  }
317
317
  };