tinybase 7.0.0-beta.1 → 7.0.0-beta.3

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 (329) hide show
  1. package/@types/common/index.d.ts +1 -1
  2. package/@types/mergeable-store/index.d.ts +2 -1
  3. package/@types/mergeable-store/with-schemas/index.d.ts +5 -3
  4. package/@types/omni/index.d.ts +2 -0
  5. package/@types/omni/with-schemas/index.d.ts +2 -0
  6. package/@types/persisters/index.d.ts +4 -0
  7. package/@types/persisters/persister-automerge/index.d.ts +4 -6
  8. package/@types/persisters/persister-automerge/with-schemas/index.d.ts +7 -8
  9. package/@types/persisters/persister-browser/index.d.ts +97 -6
  10. package/@types/persisters/persister-browser/with-schemas/index.d.ts +113 -6
  11. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
  12. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +7 -2
  13. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +6 -2
  14. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +5 -0
  15. package/@types/persisters/persister-durable-object-storage/index.d.ts +1 -2
  16. package/@types/persisters/persister-durable-object-storage/with-schemas/index.d.ts +3 -2
  17. package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
  18. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +7 -2
  19. package/@types/persisters/persister-expo-sqlite/index.d.ts +5 -2
  20. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +7 -2
  21. package/@types/persisters/persister-file/index.d.ts +1 -2
  22. package/@types/persisters/persister-file/with-schemas/index.d.ts +3 -2
  23. package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +3 -2
  24. package/@types/persisters/persister-libsql/index.d.ts +4 -0
  25. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +7 -2
  26. package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +3 -2
  27. package/@types/persisters/persister-pglite/index.d.ts +7 -3
  28. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +9 -3
  29. package/@types/persisters/persister-postgres/index.d.ts +5 -2
  30. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +7 -2
  31. package/@types/persisters/persister-powersync/index.d.ts +4 -0
  32. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +7 -2
  33. package/@types/persisters/persister-react-native-mmkv/index.d.ts +117 -0
  34. package/@types/persisters/persister-react-native-mmkv/with-schemas/index.d.ts +133 -0
  35. package/@types/persisters/persister-react-native-sqlite/index.d.ts +184 -0
  36. package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +207 -0
  37. package/@types/persisters/persister-remote/with-schemas/index.d.ts +3 -2
  38. package/@types/persisters/persister-sqlite-bun/index.d.ts +5 -2
  39. package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +7 -2
  40. package/@types/persisters/persister-sqlite-wasm/index.d.ts +6 -2
  41. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +8 -2
  42. package/@types/persisters/persister-sqlite3/index.d.ts +5 -2
  43. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +7 -2
  44. package/@types/persisters/persister-yjs/with-schemas/index.d.ts +3 -2
  45. package/@types/persisters/with-schemas/index.d.ts +4 -0
  46. package/@types/queries/index.d.ts +1 -1
  47. package/@types/queries/with-schemas/index.d.ts +4 -8
  48. package/@types/store/index.d.ts +34 -19
  49. package/@types/store/with-schemas/index.d.ts +28 -13
  50. package/@types/synchronizers/index.d.ts +1 -0
  51. package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +3 -2
  52. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +3 -2
  53. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +4 -2
  54. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +1 -0
  55. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
  56. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
  57. package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +1 -0
  58. package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +1 -0
  59. package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +1 -1
  60. package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +1 -1
  61. package/@types/synchronizers/with-schemas/index.d.ts +4 -2
  62. package/@types/ui-react/index.d.ts +6 -1
  63. package/@types/ui-react/with-schemas/index.d.ts +6 -1
  64. package/@types/ui-react-dom/index.d.ts +153 -20
  65. package/@types/ui-react-dom/with-schemas/index.d.ts +72 -20
  66. package/@types/ui-react-inspector/index.d.ts +8 -0
  67. package/@types/ui-react-inspector/with-schemas/index.d.ts +27 -1925
  68. package/agents.md +343 -0
  69. package/checkpoints/index.js +11 -6
  70. package/checkpoints/with-schemas/index.js +11 -6
  71. package/common/index.js +8 -4
  72. package/common/with-schemas/index.js +8 -4
  73. package/index.js +63 -31
  74. package/indexes/index.js +10 -5
  75. package/indexes/with-schemas/index.js +10 -5
  76. package/mergeable-store/index.js +54 -22
  77. package/mergeable-store/with-schemas/index.js +54 -22
  78. package/metrics/index.js +10 -5
  79. package/metrics/with-schemas/index.js +10 -5
  80. package/min/checkpoints/index.js +1 -1
  81. package/min/checkpoints/index.js.gz +0 -0
  82. package/min/checkpoints/with-schemas/index.js +1 -1
  83. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  84. package/min/common/index.js +1 -1
  85. package/min/common/index.js.gz +0 -0
  86. package/min/common/with-schemas/index.js +1 -1
  87. package/min/common/with-schemas/index.js.gz +0 -0
  88. package/min/index.js +1 -1
  89. package/min/index.js.gz +0 -0
  90. package/min/indexes/index.js +1 -1
  91. package/min/indexes/index.js.gz +0 -0
  92. package/min/indexes/with-schemas/index.js +1 -1
  93. package/min/indexes/with-schemas/index.js.gz +0 -0
  94. package/min/mergeable-store/index.js +1 -1
  95. package/min/mergeable-store/index.js.gz +0 -0
  96. package/min/mergeable-store/with-schemas/index.js +1 -1
  97. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  98. package/min/metrics/index.js +1 -1
  99. package/min/metrics/index.js.gz +0 -0
  100. package/min/metrics/with-schemas/index.js +1 -1
  101. package/min/metrics/with-schemas/index.js.gz +0 -0
  102. package/min/omni/index.js +1 -1
  103. package/min/omni/index.js.gz +0 -0
  104. package/min/omni/with-schemas/index.js +1 -1
  105. package/min/omni/with-schemas/index.js.gz +0 -0
  106. package/min/persisters/index.js +1 -1
  107. package/min/persisters/index.js.gz +0 -0
  108. package/min/persisters/persister-automerge/index.js +1 -1
  109. package/min/persisters/persister-automerge/index.js.gz +0 -0
  110. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-browser/index.js +1 -1
  113. package/min/persisters/persister-browser/index.js.gz +0 -0
  114. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  117. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  118. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  121. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  122. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  123. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  124. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  125. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  126. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  127. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  128. package/min/persisters/persister-electric-sql/index.js +1 -1
  129. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  130. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  131. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  132. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  133. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  134. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  135. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  136. package/min/persisters/persister-file/index.js +1 -1
  137. package/min/persisters/persister-file/index.js.gz +0 -0
  138. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  139. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  140. package/min/persisters/persister-indexed-db/index.js +1 -1
  141. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  142. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  143. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  144. package/min/persisters/persister-libsql/index.js +1 -1
  145. package/min/persisters/persister-libsql/index.js.gz +0 -0
  146. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  147. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  148. package/min/persisters/persister-partykit-client/index.js +1 -1
  149. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  150. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  151. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  152. package/min/persisters/persister-partykit-server/index.js +1 -1
  153. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  154. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  155. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  156. package/min/persisters/persister-pglite/index.js +1 -1
  157. package/min/persisters/persister-pglite/index.js.gz +0 -0
  158. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  159. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  160. package/min/persisters/persister-postgres/index.js +1 -1
  161. package/min/persisters/persister-postgres/index.js.gz +0 -0
  162. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  163. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  164. package/min/persisters/persister-powersync/index.js +1 -1
  165. package/min/persisters/persister-powersync/index.js.gz +0 -0
  166. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  167. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  168. package/min/persisters/persister-react-native-mmkv/index.js +1 -0
  169. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  170. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -0
  171. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  172. package/min/persisters/persister-react-native-sqlite/index.js +1 -0
  173. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  174. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -0
  175. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  176. package/min/persisters/persister-remote/index.js +1 -1
  177. package/min/persisters/persister-remote/index.js.gz +0 -0
  178. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  179. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  180. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  181. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  182. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  183. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  184. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  185. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  186. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  187. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  188. package/min/persisters/persister-sqlite3/index.js +1 -1
  189. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  190. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  191. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  192. package/min/persisters/persister-yjs/index.js +1 -1
  193. package/min/persisters/persister-yjs/index.js.gz +0 -0
  194. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  195. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  196. package/min/persisters/with-schemas/index.js +1 -1
  197. package/min/persisters/with-schemas/index.js.gz +0 -0
  198. package/min/queries/index.js +1 -1
  199. package/min/queries/index.js.gz +0 -0
  200. package/min/queries/with-schemas/index.js +1 -1
  201. package/min/queries/with-schemas/index.js.gz +0 -0
  202. package/min/relationships/index.js +1 -1
  203. package/min/relationships/index.js.gz +0 -0
  204. package/min/relationships/with-schemas/index.js +1 -1
  205. package/min/relationships/with-schemas/index.js.gz +0 -0
  206. package/min/store/index.js +1 -1
  207. package/min/store/index.js.gz +0 -0
  208. package/min/store/with-schemas/index.js +1 -1
  209. package/min/store/with-schemas/index.js.gz +0 -0
  210. package/min/synchronizers/index.js +1 -1
  211. package/min/synchronizers/index.js.gz +0 -0
  212. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  213. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  214. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  215. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  216. package/min/synchronizers/synchronizer-local/index.js +1 -1
  217. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  218. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  219. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  220. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  221. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  222. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  223. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  224. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  225. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  226. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  227. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  228. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  229. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  230. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  231. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  232. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  233. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  234. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  235. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  236. package/min/synchronizers/with-schemas/index.js +1 -1
  237. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  238. package/min/ui-react/index.js +1 -1
  239. package/min/ui-react/index.js.gz +0 -0
  240. package/min/ui-react/with-schemas/index.js +1 -1
  241. package/min/ui-react/with-schemas/index.js.gz +0 -0
  242. package/min/ui-react-dom/index.js +1 -1
  243. package/min/ui-react-dom/index.js.gz +0 -0
  244. package/min/ui-react-dom/with-schemas/index.js +1 -1
  245. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  246. package/min/ui-react-inspector/index.js +1 -1
  247. package/min/ui-react-inspector/index.js.gz +0 -0
  248. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  249. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  250. package/min/with-schemas/index.js +1 -1
  251. package/min/with-schemas/index.js.gz +0 -0
  252. package/omni/index.js +2178 -1203
  253. package/omni/with-schemas/index.js +2178 -1203
  254. package/package.json +91 -11
  255. package/persisters/index.js +16 -10
  256. package/persisters/persister-automerge/index.js +15 -9
  257. package/persisters/persister-automerge/with-schemas/index.js +15 -9
  258. package/persisters/persister-browser/index.js +41 -9
  259. package/persisters/persister-browser/with-schemas/index.js +41 -9
  260. package/persisters/persister-cr-sqlite-wasm/index.js +16 -10
  261. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +16 -10
  262. package/persisters/persister-durable-object-sql-storage/index.js +16 -10
  263. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +16 -10
  264. package/persisters/persister-durable-object-storage/index.js +14 -8
  265. package/persisters/persister-durable-object-storage/with-schemas/index.js +14 -8
  266. package/persisters/persister-electric-sql/index.js +16 -10
  267. package/persisters/persister-electric-sql/with-schemas/index.js +16 -10
  268. package/persisters/persister-expo-sqlite/index.js +16 -10
  269. package/persisters/persister-expo-sqlite/with-schemas/index.js +16 -10
  270. package/persisters/persister-file/index.js +14 -8
  271. package/persisters/persister-file/with-schemas/index.js +14 -8
  272. package/persisters/persister-indexed-db/index.js +14 -8
  273. package/persisters/persister-indexed-db/with-schemas/index.js +14 -8
  274. package/persisters/persister-libsql/index.js +16 -10
  275. package/persisters/persister-libsql/with-schemas/index.js +16 -10
  276. package/persisters/persister-partykit-client/index.js +14 -8
  277. package/persisters/persister-partykit-client/with-schemas/index.js +14 -8
  278. package/persisters/persister-partykit-server/index.js +7 -3
  279. package/persisters/persister-partykit-server/with-schemas/index.js +7 -3
  280. package/persisters/persister-pglite/index.js +15 -9
  281. package/persisters/persister-pglite/with-schemas/index.js +15 -9
  282. package/persisters/persister-postgres/index.js +15 -9
  283. package/persisters/persister-postgres/with-schemas/index.js +15 -9
  284. package/persisters/persister-powersync/index.js +16 -10
  285. package/persisters/persister-powersync/with-schemas/index.js +16 -10
  286. package/persisters/persister-react-native-mmkv/index.js +465 -0
  287. package/persisters/persister-react-native-mmkv/with-schemas/index.js +465 -0
  288. package/persisters/persister-react-native-sqlite/index.js +1195 -0
  289. package/persisters/persister-react-native-sqlite/with-schemas/index.js +1195 -0
  290. package/persisters/persister-remote/index.js +16 -10
  291. package/persisters/persister-remote/with-schemas/index.js +16 -10
  292. package/persisters/persister-sqlite-bun/index.js +16 -10
  293. package/persisters/persister-sqlite-bun/with-schemas/index.js +16 -10
  294. package/persisters/persister-sqlite-wasm/index.js +16 -10
  295. package/persisters/persister-sqlite-wasm/with-schemas/index.js +16 -10
  296. package/persisters/persister-sqlite3/index.js +16 -10
  297. package/persisters/persister-sqlite3/with-schemas/index.js +16 -10
  298. package/persisters/persister-yjs/index.js +20 -12
  299. package/persisters/persister-yjs/with-schemas/index.js +20 -12
  300. package/persisters/with-schemas/index.js +16 -10
  301. package/queries/index.js +20 -12
  302. package/queries/with-schemas/index.js +20 -12
  303. package/readme.md +13 -13
  304. package/relationships/index.js +10 -5
  305. package/relationships/with-schemas/index.js +10 -5
  306. package/releases.md +179 -41
  307. package/store/index.js +50 -18
  308. package/store/with-schemas/index.js +50 -18
  309. package/synchronizers/index.js +16 -10
  310. package/synchronizers/synchronizer-broadcast-channel/index.js +17 -11
  311. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -11
  312. package/synchronizers/synchronizer-local/index.js +17 -11
  313. package/synchronizers/synchronizer-local/with-schemas/index.js +17 -11
  314. package/synchronizers/synchronizer-ws-client/index.js +16 -10
  315. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +16 -10
  316. package/synchronizers/synchronizer-ws-server/index.js +16 -10
  317. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +16 -10
  318. package/synchronizers/synchronizer-ws-server-durable-object/index.js +16 -10
  319. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +16 -10
  320. package/synchronizers/synchronizer-ws-server-simple/index.js +8 -4
  321. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +8 -4
  322. package/synchronizers/with-schemas/index.js +16 -10
  323. package/ui-react/index.js +408 -374
  324. package/ui-react/with-schemas/index.js +408 -374
  325. package/ui-react-dom/index.js +883 -437
  326. package/ui-react-dom/with-schemas/index.js +883 -437
  327. package/ui-react-inspector/index.js +1761 -556
  328. package/ui-react-inspector/with-schemas/index.js +1761 -556
  329. package/with-schemas/index.js +63 -31
package/index.js CHANGED
@@ -6,6 +6,7 @@ const NUMBER = getTypeOf(0);
6
6
  const FUNCTION = getTypeOf(getTypeOf);
7
7
  const TYPE = 'type';
8
8
  const DEFAULT = 'default';
9
+ const ALLOW_NULL = 'allowNull';
9
10
  const SUM = 'sum';
10
11
  const AVG = 'avg';
11
12
  const MIN = 'min';
@@ -37,6 +38,10 @@ const strEndsWith = (str, suffix) => str.endsWith(suffix);
37
38
  const strSplit = (str, separator = EMPTY_STRING, limit) =>
38
39
  str.split(separator, limit);
39
40
 
41
+ const getIfNotFunction =
42
+ (predicate = isNullish) =>
43
+ (value, then, otherwise) =>
44
+ predicate(value) ? otherwise?.() : then(value);
40
45
  const GLOBAL = globalThis;
41
46
  const math = Math;
42
47
  const mathMax = math.max;
@@ -44,9 +49,11 @@ const mathMin = math.min;
44
49
  const mathFloor = math.floor;
45
50
  const isFiniteNumber = isFinite;
46
51
  const isInstanceOf = (thing, cls) => thing instanceof cls;
47
- const isUndefined = (thing) => thing == void 0;
48
- const ifNotUndefined = (value, then, otherwise) =>
49
- isUndefined(value) ? otherwise?.() : then(value);
52
+ const isNullish = (thing) => thing == null;
53
+ const isUndefined = (thing) => thing === void 0;
54
+ const isNull = (thing) => thing === null;
55
+ const ifNotNullish = getIfNotFunction(isNullish);
56
+ const ifNotUndefined = getIfNotFunction(isUndefined);
50
57
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
51
58
  const isString = (thing) => getTypeOf(thing) == STRING;
52
59
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
@@ -88,13 +95,16 @@ const arrayUnshift = (array, ...values) => array.unshift(...values);
88
95
  const arrayShift = (array) => array.shift();
89
96
 
90
97
  const getCellOrValueType = (cellOrValue) => {
98
+ if (isNull(cellOrValue)) {
99
+ return 'null';
100
+ }
91
101
  const type = getTypeOf(cellOrValue);
92
102
  return isTypeStringOrBoolean(type) ||
93
103
  (type == NUMBER && isFiniteNumber(cellOrValue))
94
104
  ? type
95
105
  : void 0;
96
106
  };
97
- const isCellOrValueOrNullOrUndefined = (cellOrValue) =>
107
+ const isCellOrValueOrUndefined = (cellOrValue) =>
98
108
  isUndefined(cellOrValue) || !isUndefined(getCellOrValueType(cellOrValue));
99
109
  const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
100
110
  isUndefined(cell)
@@ -121,12 +131,12 @@ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
121
131
  const objFrozen = object.isFrozen;
122
132
  const objEntries = object.entries;
123
133
  const isObject = (obj) =>
124
- !isUndefined(obj) &&
125
- ifNotUndefined(
134
+ !isNullish(obj) &&
135
+ ifNotNullish(
126
136
  getPrototypeOf(obj),
127
137
  (objPrototype) =>
128
138
  objPrototype == object.prototype ||
129
- isUndefined(getPrototypeOf(objPrototype)),
139
+ isNullish(getPrototypeOf(objPrototype)),
130
140
 
131
141
  /* istanbul ignore next */
132
142
  () => true,
@@ -155,7 +165,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
155
165
  };
156
166
  const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
157
167
  if (
158
- isUndefined(obj) ||
168
+ isNullish(obj) ||
159
169
  !isObject(obj) ||
160
170
  (!emptyIsValid && objIsEmpty(obj)) ||
161
171
  objFrozen(obj)
@@ -179,7 +189,7 @@ const mapForEach = (map, cb) =>
179
189
  const mapMap = (coll, cb) =>
180
190
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
181
191
  const mapSet = (map, key, value) =>
182
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
192
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
183
193
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
184
194
  if (!collHas(map, key)) {
185
195
  mapSet(map, key, getDefaultValue());
@@ -500,7 +510,7 @@ const getListenerFunctions = (getThing) => {
500
510
  const index = size(ids);
501
511
  if (index == size(path)) {
502
512
  listener(thing, ...ids, ...extraArgsGetter(ids));
503
- } else if (isUndefined(path[index])) {
513
+ } else if (isNull(path[index])) {
504
514
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
505
515
  callWithIds(...ids, id2),
506
516
  );
@@ -653,7 +663,7 @@ const createCheckpoints = getCreateFunction(
653
663
  ? goBackwardImpl
654
664
  : arrayHas(forwardIds, checkpointId)
655
665
  ? goForwardImpl
656
- : null;
666
+ : void 0;
657
667
  while (!isUndefined(action) && checkpointId != currentId) {
658
668
  action();
659
669
  }
@@ -782,7 +792,7 @@ const getUniqueId = (length = 16) =>
782
792
  arrayReduce(
783
793
  getRandomValues(new Uint8Array(length)),
784
794
  (uniqueId, number) => uniqueId + encode(number),
785
- '',
795
+ EMPTY_STRING,
786
796
  );
787
797
 
788
798
  const jsonString = JSON.stringify;
@@ -1233,14 +1243,22 @@ const createStore = () => {
1233
1243
  const validateValuesSchema = (valuesSchema) =>
1234
1244
  objValidate(valuesSchema, validateCellOrValueSchema);
1235
1245
  const validateCellOrValueSchema = (schema) => {
1236
- if (!objValidate(schema, (_child, id2) => arrayHas([TYPE, DEFAULT], id2))) {
1246
+ if (
1247
+ !objValidate(schema, (_child, id2) =>
1248
+ arrayHas([TYPE, DEFAULT, ALLOW_NULL], id2),
1249
+ )
1250
+ ) {
1237
1251
  return false;
1238
1252
  }
1239
1253
  const type = schema[TYPE];
1240
1254
  if (!isTypeStringOrBoolean(type) && type != NUMBER) {
1241
1255
  return false;
1242
1256
  }
1243
- if (getCellOrValueType(schema[DEFAULT]) != type) {
1257
+ const defaultValue = schema[DEFAULT];
1258
+ if (isNull(defaultValue) && !schema[ALLOW_NULL]) {
1259
+ return false;
1260
+ }
1261
+ if (!isNull(defaultValue) && getCellOrValueType(defaultValue) != type) {
1244
1262
  objDel(schema, DEFAULT);
1245
1263
  }
1246
1264
  return true;
@@ -1277,9 +1295,19 @@ const createStore = () => {
1277
1295
  ? ifNotUndefined(
1278
1296
  mapGet(mapGet(tablesSchemaMap, tableId), cellId),
1279
1297
  (cellSchema) =>
1280
- getCellOrValueType(cell) != cellSchema[TYPE]
1281
- ? cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
1282
- : cell,
1298
+ isNull(cell)
1299
+ ? cellSchema[ALLOW_NULL]
1300
+ ? cell
1301
+ : cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
1302
+ : getCellOrValueType(cell) == cellSchema[TYPE]
1303
+ ? cell
1304
+ : cellInvalid(
1305
+ tableId,
1306
+ rowId,
1307
+ cellId,
1308
+ cell,
1309
+ cellSchema[DEFAULT],
1310
+ ),
1283
1311
  () => cellInvalid(tableId, rowId, cellId, cell),
1284
1312
  )
1285
1313
  : isUndefined(getCellOrValueType(cell))
@@ -1304,9 +1332,13 @@ const createStore = () => {
1304
1332
  ? ifNotUndefined(
1305
1333
  mapGet(valuesSchemaMap, valueId),
1306
1334
  (valueSchema) =>
1307
- getCellOrValueType(value) != valueSchema[TYPE]
1308
- ? valueInvalid(valueId, value, valueSchema[DEFAULT])
1309
- : value,
1335
+ isNull(value)
1336
+ ? valueSchema[ALLOW_NULL]
1337
+ ? value
1338
+ : valueInvalid(valueId, value, valueSchema[DEFAULT])
1339
+ : getCellOrValueType(value) == valueSchema[TYPE]
1340
+ ? value
1341
+ : valueInvalid(valueId, value, valueSchema[DEFAULT]),
1310
1342
  () => valueInvalid(valueId, value),
1311
1343
  )
1312
1344
  : isUndefined(getCellOrValueType(value))
@@ -1549,7 +1581,7 @@ const createStore = () => {
1549
1581
  mapSet(
1550
1582
  cellIds,
1551
1583
  cellId,
1552
- count != -addedOrRemoved ? count + addedOrRemoved : null,
1584
+ count != -addedOrRemoved ? count + addedOrRemoved : void 0,
1553
1585
  );
1554
1586
  idsChanged(
1555
1587
  mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),
@@ -2558,7 +2590,7 @@ const validateMergeableContent = (mergeableContent) =>
2558
2590
  objValidate(
2559
2591
  cellStamps,
2560
2592
  (cellStamp) =>
2561
- stampValidate(cellStamp, isCellOrValueOrNullOrUndefined),
2593
+ stampValidate(cellStamp, isCellOrValueOrUndefined),
2562
2594
  void 0,
2563
2595
  1,
2564
2596
  ),
@@ -2574,7 +2606,7 @@ const validateMergeableContent = (mergeableContent) =>
2574
2606
  stampValidate(mergeableContent[1], (values) =>
2575
2607
  objValidate(
2576
2608
  values,
2577
- (value) => stampValidate(value, isCellOrValueOrNullOrUndefined),
2609
+ (value) => stampValidate(value, isCellOrValueOrUndefined),
2578
2610
  void 0,
2579
2611
  1,
2580
2612
  ),
@@ -3252,7 +3284,7 @@ const createQueries = getCreateFunction((store) => {
3252
3284
  setDefinition(queryId, tableId);
3253
3285
  resetPreStores(queryId);
3254
3286
  const selectEntries = [];
3255
- const joinEntries = [[null, [tableId, null, null, [], mapNew()]]];
3287
+ const joinEntries = [[void 0, [tableId, void 0, void 0, [], mapNew()]]];
3256
3288
  const wheres = [];
3257
3289
  const groupEntries = [];
3258
3290
  const havings = [];
@@ -3268,7 +3300,7 @@ const createQueries = getCreateFunction((store) => {
3268
3300
  };
3269
3301
  const join = (joinedTableId, arg1, arg2) => {
3270
3302
  const fromIntermediateJoinedTableId =
3271
- isUndefined(arg2) || isFunction(arg1) ? null : arg1;
3303
+ isUndefined(arg2) || isFunction(arg1) ? void 0 : arg1;
3272
3304
  const onArg = isUndefined(fromIntermediateJoinedTableId) ? arg1 : arg2;
3273
3305
  const joinEntry = [
3274
3306
  joinedTableId,
@@ -3388,7 +3420,7 @@ const createQueries = getCreateFunction((store) => {
3388
3420
  groupRow[groupedCellId] = isUndefined(
3389
3421
  getCellOrValueType(aggregateValue),
3390
3422
  )
3391
- ? null
3423
+ ? void 0
3392
3424
  : aggregateValue;
3393
3425
  },
3394
3426
  );
@@ -3517,20 +3549,20 @@ const createQueries = getCreateFunction((store) => {
3517
3549
  const listenToTable = (rootRowId, tableId2, rowId, joinedTableIds2) => {
3518
3550
  const getCell = (cellId) => store.getCell(tableId2, rowId, cellId);
3519
3551
  arrayForEach(joinedTableIds2, (remoteAsTableId) => {
3520
- const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPair] =
3552
+ const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPairs] =
3521
3553
  mapGet(joins, remoteAsTableId);
3522
3554
  const remoteRowId = on?.(getCell, rootRowId);
3523
3555
  const [previousRemoteRowId, previousRemoteListenerId] =
3524
- mapGet(remoteIdPair, rootRowId) ?? [];
3556
+ mapGet(remoteIdPairs, rootRowId) ?? [];
3525
3557
  if (remoteRowId != previousRemoteRowId) {
3526
3558
  if (!isUndefined(previousRemoteListenerId)) {
3527
3559
  delStoreListeners(queryId, previousRemoteListenerId);
3528
3560
  }
3529
3561
  mapSet(
3530
- remoteIdPair,
3562
+ remoteIdPairs,
3531
3563
  rootRowId,
3532
3564
  isUndefined(remoteRowId)
3533
- ? null
3565
+ ? void 0
3534
3566
  : [
3535
3567
  remoteRowId,
3536
3568
  ...addStoreListeners(
@@ -3551,7 +3583,7 @@ const createQueries = getCreateFunction((store) => {
3551
3583
  });
3552
3584
  writeSelectRow(rootRowId);
3553
3585
  };
3554
- const {3: joinedTableIds} = mapGet(joins, null);
3586
+ const {3: joinedTableIds} = mapGet(joins, void 0);
3555
3587
  selectJoinWhereStore.transaction(() =>
3556
3588
  addStoreListeners(
3557
3589
  queryId,
package/indexes/index.js CHANGED
@@ -3,9 +3,14 @@ const EMPTY_STRING = '';
3
3
  const STRING = getTypeOf(EMPTY_STRING);
4
4
  const id = (key) => EMPTY_STRING + key;
5
5
 
6
- const isUndefined = (thing) => thing == void 0;
7
- const ifNotUndefined = (value, then, otherwise) =>
8
- isUndefined(value) ? otherwise?.() : then(value);
6
+ const getIfNotFunction =
7
+ (predicate = isNullish) =>
8
+ (value, then, otherwise) =>
9
+ predicate(value) ? otherwise?.() : then(value);
10
+ const isNullish = (thing) => thing == null;
11
+ const isUndefined = (thing) => thing === void 0;
12
+ const isNull = (thing) => thing === null;
13
+ const ifNotUndefined = getIfNotFunction(isUndefined);
9
14
  const isString = (thing) => getTypeOf(thing) == STRING;
10
15
  const isArray = (thing) => Array.isArray(thing);
11
16
  const size = (arrayOrString) => arrayOrString.length;
@@ -49,7 +54,7 @@ const mapGet = (map, key) => map?.get(key);
49
54
  const mapForEach = (map, cb) =>
50
55
  collForEach(map, (value, key) => cb(key, value));
51
56
  const mapSet = (map, key, value) =>
52
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
57
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
53
58
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
54
59
  if (!collHas(map, key)) {
55
60
  mapSet(map, key, getDefaultValue());
@@ -334,7 +339,7 @@ const getListenerFunctions = (getThing) => {
334
339
  const index = size(ids);
335
340
  if (index == size(path)) {
336
341
  listener(thing, ...ids, ...extraArgsGetter(ids));
337
- } else if (isUndefined(path[index])) {
342
+ } else if (isNull(path[index])) {
338
343
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
339
344
  callWithIds(...ids, id2),
340
345
  );
@@ -3,9 +3,14 @@ const EMPTY_STRING = '';
3
3
  const STRING = getTypeOf(EMPTY_STRING);
4
4
  const id = (key) => EMPTY_STRING + key;
5
5
 
6
- const isUndefined = (thing) => thing == void 0;
7
- const ifNotUndefined = (value, then, otherwise) =>
8
- isUndefined(value) ? otherwise?.() : then(value);
6
+ const getIfNotFunction =
7
+ (predicate = isNullish) =>
8
+ (value, then, otherwise) =>
9
+ predicate(value) ? otherwise?.() : then(value);
10
+ const isNullish = (thing) => thing == null;
11
+ const isUndefined = (thing) => thing === void 0;
12
+ const isNull = (thing) => thing === null;
13
+ const ifNotUndefined = getIfNotFunction(isUndefined);
9
14
  const isString = (thing) => getTypeOf(thing) == STRING;
10
15
  const isArray = (thing) => Array.isArray(thing);
11
16
  const size = (arrayOrString) => arrayOrString.length;
@@ -49,7 +54,7 @@ const mapGet = (map, key) => map?.get(key);
49
54
  const mapForEach = (map, cb) =>
50
55
  collForEach(map, (value, key) => cb(key, value));
51
56
  const mapSet = (map, key, value) =>
52
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
57
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
53
58
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
54
59
  if (!collHas(map, key)) {
55
60
  mapSet(map, key, getDefaultValue());
@@ -334,7 +339,7 @@ const getListenerFunctions = (getThing) => {
334
339
  const index = size(ids);
335
340
  if (index == size(path)) {
336
341
  listener(thing, ...ids, ...extraArgsGetter(ids));
337
- } else if (isUndefined(path[index])) {
342
+ } else if (isNull(path[index])) {
338
343
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
339
344
  callWithIds(...ids, id2),
340
345
  );
@@ -6,6 +6,7 @@ const NUMBER = getTypeOf(0);
6
6
  const FUNCTION = getTypeOf(getTypeOf);
7
7
  const TYPE = 'type';
8
8
  const DEFAULT = 'default';
9
+ const ALLOW_NULL = 'allowNull';
9
10
  const LISTENER = 'Listener';
10
11
  const SET = 'set';
11
12
  const ADD = 'add';
@@ -30,15 +31,21 @@ const strEndsWith = (str, suffix) => str.endsWith(suffix);
30
31
  const strSplit = (str, separator = EMPTY_STRING, limit) =>
31
32
  str.split(separator, limit);
32
33
 
34
+ const getIfNotFunction =
35
+ (predicate = isNullish) =>
36
+ (value, then, otherwise) =>
37
+ predicate(value) ? otherwise?.() : then(value);
33
38
  const GLOBAL = globalThis;
34
39
  const math = Math;
35
40
  const mathMax = math.max;
36
41
  const mathFloor = math.floor;
37
42
  const isFiniteNumber = isFinite;
38
43
  const isInstanceOf = (thing, cls) => thing instanceof cls;
39
- const isUndefined = (thing) => thing == void 0;
40
- const ifNotUndefined = (value, then, otherwise) =>
41
- isUndefined(value) ? otherwise?.() : then(value);
44
+ const isNullish = (thing) => thing == null;
45
+ const isUndefined = (thing) => thing === void 0;
46
+ const isNull = (thing) => thing === null;
47
+ const ifNotNullish = getIfNotFunction(isNullish);
48
+ const ifNotUndefined = getIfNotFunction(isUndefined);
42
49
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
43
50
  const isString = (thing) => getTypeOf(thing) == STRING;
44
51
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
@@ -57,13 +64,16 @@ const tryCatch = async (action, then1, then2) => {
57
64
  };
58
65
 
59
66
  const getCellOrValueType = (cellOrValue) => {
67
+ if (isNull(cellOrValue)) {
68
+ return 'null';
69
+ }
60
70
  const type = getTypeOf(cellOrValue);
61
71
  return isTypeStringOrBoolean(type) ||
62
72
  (type == NUMBER && isFiniteNumber(cellOrValue))
63
73
  ? type
64
74
  : void 0;
65
75
  };
66
- const isCellOrValueOrNullOrUndefined = (cellOrValue) =>
76
+ const isCellOrValueOrUndefined = (cellOrValue) =>
67
77
  isUndefined(cellOrValue) || !isUndefined(getCellOrValueType(cellOrValue));
68
78
  const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
69
79
  isUndefined(cell)
@@ -102,12 +112,12 @@ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
102
112
  const objFrozen = object.isFrozen;
103
113
  const objEntries = object.entries;
104
114
  const isObject = (obj) =>
105
- !isUndefined(obj) &&
106
- ifNotUndefined(
115
+ !isNullish(obj) &&
116
+ ifNotNullish(
107
117
  getPrototypeOf(obj),
108
118
  (objPrototype) =>
109
119
  objPrototype == object.prototype ||
110
- isUndefined(getPrototypeOf(objPrototype)),
120
+ isNullish(getPrototypeOf(objPrototype)),
111
121
 
112
122
  /* istanbul ignore next */
113
123
  () => true,
@@ -136,7 +146,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
136
146
  };
137
147
  const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
138
148
  if (
139
- isUndefined(obj) ||
149
+ isNullish(obj) ||
140
150
  !isObject(obj) ||
141
151
  (!emptyIsValid && objIsEmpty(obj)) ||
142
152
  objFrozen(obj)
@@ -183,7 +193,7 @@ const mapForEach = (map, cb) =>
183
193
  const mapMap = (coll, cb) =>
184
194
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
185
195
  const mapSet = (map, key, value) =>
186
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
196
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
187
197
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
188
198
  if (!collHas(map, key)) {
189
199
  mapSet(map, key, getDefaultValue());
@@ -269,7 +279,7 @@ const getUniqueId = (length = 16) =>
269
279
  arrayReduce(
270
280
  getRandomValues(new Uint8Array(length)),
271
281
  (uniqueId, number) => uniqueId + encode(number),
272
- '',
282
+ EMPTY_STRING,
273
283
  );
274
284
 
275
285
  const SHIFT36 = 2 ** 36;
@@ -468,7 +478,7 @@ const getListenerFunctions = (getThing) => {
468
478
  const index = size(ids);
469
479
  if (index == size(path)) {
470
480
  listener(thing, ...ids, ...extraArgsGetter(ids));
471
- } else if (isUndefined(path[index])) {
481
+ } else if (isNull(path[index])) {
472
482
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
473
483
  callWithIds(...ids, id2),
474
484
  );
@@ -553,14 +563,22 @@ const createStore = () => {
553
563
  const validateValuesSchema = (valuesSchema) =>
554
564
  objValidate(valuesSchema, validateCellOrValueSchema);
555
565
  const validateCellOrValueSchema = (schema) => {
556
- if (!objValidate(schema, (_child, id2) => arrayHas([TYPE, DEFAULT], id2))) {
566
+ if (
567
+ !objValidate(schema, (_child, id2) =>
568
+ arrayHas([TYPE, DEFAULT, ALLOW_NULL], id2),
569
+ )
570
+ ) {
557
571
  return false;
558
572
  }
559
573
  const type = schema[TYPE];
560
574
  if (!isTypeStringOrBoolean(type) && type != NUMBER) {
561
575
  return false;
562
576
  }
563
- if (getCellOrValueType(schema[DEFAULT]) != type) {
577
+ const defaultValue = schema[DEFAULT];
578
+ if (isNull(defaultValue) && !schema[ALLOW_NULL]) {
579
+ return false;
580
+ }
581
+ if (!isNull(defaultValue) && getCellOrValueType(defaultValue) != type) {
564
582
  objDel(schema, DEFAULT);
565
583
  }
566
584
  return true;
@@ -597,9 +615,19 @@ const createStore = () => {
597
615
  ? ifNotUndefined(
598
616
  mapGet(mapGet(tablesSchemaMap, tableId), cellId),
599
617
  (cellSchema) =>
600
- getCellOrValueType(cell) != cellSchema[TYPE]
601
- ? cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
602
- : cell,
618
+ isNull(cell)
619
+ ? cellSchema[ALLOW_NULL]
620
+ ? cell
621
+ : cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
622
+ : getCellOrValueType(cell) == cellSchema[TYPE]
623
+ ? cell
624
+ : cellInvalid(
625
+ tableId,
626
+ rowId,
627
+ cellId,
628
+ cell,
629
+ cellSchema[DEFAULT],
630
+ ),
603
631
  () => cellInvalid(tableId, rowId, cellId, cell),
604
632
  )
605
633
  : isUndefined(getCellOrValueType(cell))
@@ -624,9 +652,13 @@ const createStore = () => {
624
652
  ? ifNotUndefined(
625
653
  mapGet(valuesSchemaMap, valueId),
626
654
  (valueSchema) =>
627
- getCellOrValueType(value) != valueSchema[TYPE]
628
- ? valueInvalid(valueId, value, valueSchema[DEFAULT])
629
- : value,
655
+ isNull(value)
656
+ ? valueSchema[ALLOW_NULL]
657
+ ? value
658
+ : valueInvalid(valueId, value, valueSchema[DEFAULT])
659
+ : getCellOrValueType(value) == valueSchema[TYPE]
660
+ ? value
661
+ : valueInvalid(valueId, value, valueSchema[DEFAULT]),
630
662
  () => valueInvalid(valueId, value),
631
663
  )
632
664
  : isUndefined(getCellOrValueType(value))
@@ -869,7 +901,7 @@ const createStore = () => {
869
901
  mapSet(
870
902
  cellIds,
871
903
  cellId,
872
- count != -addedOrRemoved ? count + addedOrRemoved : null,
904
+ count != -addedOrRemoved ? count + addedOrRemoved : void 0,
873
905
  );
874
906
  idsChanged(
875
907
  mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),
@@ -1878,7 +1910,7 @@ const validateMergeableContent = (mergeableContent) =>
1878
1910
  objValidate(
1879
1911
  cellStamps,
1880
1912
  (cellStamp) =>
1881
- stampValidate(cellStamp, isCellOrValueOrNullOrUndefined),
1913
+ stampValidate(cellStamp, isCellOrValueOrUndefined),
1882
1914
  void 0,
1883
1915
  1,
1884
1916
  ),
@@ -1894,7 +1926,7 @@ const validateMergeableContent = (mergeableContent) =>
1894
1926
  stampValidate(mergeableContent[1], (values) =>
1895
1927
  objValidate(
1896
1928
  values,
1897
- (value) => stampValidate(value, isCellOrValueOrNullOrUndefined),
1929
+ (value) => stampValidate(value, isCellOrValueOrUndefined),
1898
1930
  void 0,
1899
1931
  1,
1900
1932
  ),