tinybase 7.0.0-beta.2 → 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 (292) hide show
  1. package/@types/common/index.d.ts +1 -1
  2. package/@types/mergeable-store/index.d.ts +1 -1
  3. package/@types/mergeable-store/with-schemas/index.d.ts +1 -1
  4. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
  5. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +4 -0
  6. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +4 -0
  7. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +4 -0
  8. package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
  9. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +4 -0
  10. package/@types/persisters/persister-expo-sqlite/index.d.ts +4 -0
  11. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +4 -0
  12. package/@types/persisters/persister-libsql/index.d.ts +4 -0
  13. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +4 -0
  14. package/@types/persisters/persister-pglite/index.d.ts +5 -1
  15. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +5 -1
  16. package/@types/persisters/persister-postgres/index.d.ts +4 -0
  17. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +4 -0
  18. package/@types/persisters/persister-powersync/index.d.ts +4 -0
  19. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +4 -0
  20. package/@types/persisters/persister-react-native-sqlite/index.d.ts +4 -0
  21. package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +4 -0
  22. package/@types/persisters/persister-sqlite-bun/index.d.ts +4 -0
  23. package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +4 -0
  24. package/@types/persisters/persister-sqlite-wasm/index.d.ts +4 -0
  25. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +4 -0
  26. package/@types/persisters/persister-sqlite3/index.d.ts +4 -0
  27. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +4 -0
  28. package/@types/queries/index.d.ts +1 -1
  29. package/@types/store/index.d.ts +21 -19
  30. package/@types/store/with-schemas/index.d.ts +15 -13
  31. package/agents.md +62 -0
  32. package/checkpoints/index.js +11 -6
  33. package/checkpoints/with-schemas/index.js +11 -6
  34. package/common/index.js +7 -3
  35. package/common/with-schemas/index.js +7 -3
  36. package/index.js +62 -30
  37. package/indexes/index.js +10 -5
  38. package/indexes/with-schemas/index.js +10 -5
  39. package/mergeable-store/index.js +53 -21
  40. package/mergeable-store/with-schemas/index.js +53 -21
  41. package/metrics/index.js +10 -5
  42. package/metrics/with-schemas/index.js +10 -5
  43. package/min/checkpoints/index.js +1 -1
  44. package/min/checkpoints/index.js.gz +0 -0
  45. package/min/checkpoints/with-schemas/index.js +1 -1
  46. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  47. package/min/common/index.js +1 -1
  48. package/min/common/index.js.gz +0 -0
  49. package/min/common/with-schemas/index.js +1 -1
  50. package/min/common/with-schemas/index.js.gz +0 -0
  51. package/min/index.js +1 -1
  52. package/min/index.js.gz +0 -0
  53. package/min/indexes/index.js +1 -1
  54. package/min/indexes/index.js.gz +0 -0
  55. package/min/indexes/with-schemas/index.js +1 -1
  56. package/min/indexes/with-schemas/index.js.gz +0 -0
  57. package/min/mergeable-store/index.js +1 -1
  58. package/min/mergeable-store/index.js.gz +0 -0
  59. package/min/mergeable-store/with-schemas/index.js +1 -1
  60. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  61. package/min/metrics/index.js +1 -1
  62. package/min/metrics/index.js.gz +0 -0
  63. package/min/metrics/with-schemas/index.js +1 -1
  64. package/min/metrics/with-schemas/index.js.gz +0 -0
  65. package/min/omni/index.js +1 -1
  66. package/min/omni/index.js.gz +0 -0
  67. package/min/omni/with-schemas/index.js +1 -1
  68. package/min/omni/with-schemas/index.js.gz +0 -0
  69. package/min/persisters/index.js +1 -1
  70. package/min/persisters/index.js.gz +0 -0
  71. package/min/persisters/persister-automerge/index.js +1 -1
  72. package/min/persisters/persister-automerge/index.js.gz +0 -0
  73. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  74. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  75. package/min/persisters/persister-browser/index.js +1 -1
  76. package/min/persisters/persister-browser/index.js.gz +0 -0
  77. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  78. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  79. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  80. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  81. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  82. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  83. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  84. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  85. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  86. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  87. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  88. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  89. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  90. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  91. package/min/persisters/persister-electric-sql/index.js +1 -1
  92. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  93. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  94. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  95. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  96. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  97. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  98. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  99. package/min/persisters/persister-file/index.js +1 -1
  100. package/min/persisters/persister-file/index.js.gz +0 -0
  101. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  102. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  103. package/min/persisters/persister-indexed-db/index.js +1 -1
  104. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  105. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  106. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  107. package/min/persisters/persister-libsql/index.js +1 -1
  108. package/min/persisters/persister-libsql/index.js.gz +0 -0
  109. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  110. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  111. package/min/persisters/persister-partykit-client/index.js +1 -1
  112. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  113. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  114. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  115. package/min/persisters/persister-partykit-server/index.js +1 -1
  116. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  117. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  118. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  119. package/min/persisters/persister-pglite/index.js +1 -1
  120. package/min/persisters/persister-pglite/index.js.gz +0 -0
  121. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  122. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  123. package/min/persisters/persister-postgres/index.js +1 -1
  124. package/min/persisters/persister-postgres/index.js.gz +0 -0
  125. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  126. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  127. package/min/persisters/persister-powersync/index.js +1 -1
  128. package/min/persisters/persister-powersync/index.js.gz +0 -0
  129. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  130. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  131. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  132. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  133. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  134. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  135. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  136. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  137. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  138. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  139. package/min/persisters/persister-remote/index.js +1 -1
  140. package/min/persisters/persister-remote/index.js.gz +0 -0
  141. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  142. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  143. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  144. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  145. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  146. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  147. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  148. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  149. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  150. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  151. package/min/persisters/persister-sqlite3/index.js +1 -1
  152. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  153. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  154. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  155. package/min/persisters/persister-yjs/index.js +1 -1
  156. package/min/persisters/persister-yjs/index.js.gz +0 -0
  157. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  158. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  159. package/min/persisters/with-schemas/index.js +1 -1
  160. package/min/persisters/with-schemas/index.js.gz +0 -0
  161. package/min/queries/index.js +1 -1
  162. package/min/queries/index.js.gz +0 -0
  163. package/min/queries/with-schemas/index.js +1 -1
  164. package/min/queries/with-schemas/index.js.gz +0 -0
  165. package/min/relationships/index.js +1 -1
  166. package/min/relationships/index.js.gz +0 -0
  167. package/min/relationships/with-schemas/index.js +1 -1
  168. package/min/relationships/with-schemas/index.js.gz +0 -0
  169. package/min/store/index.js +1 -1
  170. package/min/store/index.js.gz +0 -0
  171. package/min/store/with-schemas/index.js +1 -1
  172. package/min/store/with-schemas/index.js.gz +0 -0
  173. package/min/synchronizers/index.js +1 -1
  174. package/min/synchronizers/index.js.gz +0 -0
  175. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  176. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  177. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  178. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  179. package/min/synchronizers/synchronizer-local/index.js +1 -1
  180. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  181. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  182. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  183. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  184. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  185. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  186. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  187. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  188. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  189. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  190. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  191. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  192. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  193. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  194. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  195. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  196. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  197. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  198. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  199. package/min/synchronizers/with-schemas/index.js +1 -1
  200. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  201. package/min/ui-react/index.js +1 -1
  202. package/min/ui-react/index.js.gz +0 -0
  203. package/min/ui-react/with-schemas/index.js +1 -1
  204. package/min/ui-react/with-schemas/index.js.gz +0 -0
  205. package/min/ui-react-dom/index.js +1 -1
  206. package/min/ui-react-dom/index.js.gz +0 -0
  207. package/min/ui-react-dom/with-schemas/index.js +1 -1
  208. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  209. package/min/ui-react-inspector/index.js +1 -1
  210. package/min/ui-react-inspector/index.js.gz +0 -0
  211. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  212. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  213. package/min/with-schemas/index.js +1 -1
  214. package/min/with-schemas/index.js.gz +0 -0
  215. package/omni/index.js +80 -46
  216. package/omni/with-schemas/index.js +80 -46
  217. package/package.json +2 -2
  218. package/persisters/index.js +16 -10
  219. package/persisters/persister-automerge/index.js +14 -8
  220. package/persisters/persister-automerge/with-schemas/index.js +14 -8
  221. package/persisters/persister-browser/index.js +14 -8
  222. package/persisters/persister-browser/with-schemas/index.js +14 -8
  223. package/persisters/persister-cr-sqlite-wasm/index.js +16 -10
  224. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +16 -10
  225. package/persisters/persister-durable-object-sql-storage/index.js +16 -10
  226. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +16 -10
  227. package/persisters/persister-durable-object-storage/index.js +14 -8
  228. package/persisters/persister-durable-object-storage/with-schemas/index.js +14 -8
  229. package/persisters/persister-electric-sql/index.js +16 -10
  230. package/persisters/persister-electric-sql/with-schemas/index.js +16 -10
  231. package/persisters/persister-expo-sqlite/index.js +16 -10
  232. package/persisters/persister-expo-sqlite/with-schemas/index.js +16 -10
  233. package/persisters/persister-file/index.js +14 -8
  234. package/persisters/persister-file/with-schemas/index.js +14 -8
  235. package/persisters/persister-indexed-db/index.js +14 -8
  236. package/persisters/persister-indexed-db/with-schemas/index.js +14 -8
  237. package/persisters/persister-libsql/index.js +16 -10
  238. package/persisters/persister-libsql/with-schemas/index.js +16 -10
  239. package/persisters/persister-partykit-client/index.js +14 -8
  240. package/persisters/persister-partykit-client/with-schemas/index.js +14 -8
  241. package/persisters/persister-partykit-server/index.js +7 -3
  242. package/persisters/persister-partykit-server/with-schemas/index.js +7 -3
  243. package/persisters/persister-pglite/index.js +15 -9
  244. package/persisters/persister-pglite/with-schemas/index.js +15 -9
  245. package/persisters/persister-postgres/index.js +15 -9
  246. package/persisters/persister-postgres/with-schemas/index.js +15 -9
  247. package/persisters/persister-powersync/index.js +16 -10
  248. package/persisters/persister-powersync/with-schemas/index.js +16 -10
  249. package/persisters/persister-react-native-mmkv/index.js +14 -8
  250. package/persisters/persister-react-native-mmkv/with-schemas/index.js +14 -8
  251. package/persisters/persister-react-native-sqlite/index.js +16 -10
  252. package/persisters/persister-react-native-sqlite/with-schemas/index.js +16 -10
  253. package/persisters/persister-remote/index.js +16 -10
  254. package/persisters/persister-remote/with-schemas/index.js +16 -10
  255. package/persisters/persister-sqlite-bun/index.js +16 -10
  256. package/persisters/persister-sqlite-bun/with-schemas/index.js +16 -10
  257. package/persisters/persister-sqlite-wasm/index.js +16 -10
  258. package/persisters/persister-sqlite-wasm/with-schemas/index.js +16 -10
  259. package/persisters/persister-sqlite3/index.js +16 -10
  260. package/persisters/persister-sqlite3/with-schemas/index.js +16 -10
  261. package/persisters/persister-yjs/index.js +20 -12
  262. package/persisters/persister-yjs/with-schemas/index.js +20 -12
  263. package/persisters/with-schemas/index.js +16 -10
  264. package/queries/index.js +20 -12
  265. package/queries/with-schemas/index.js +20 -12
  266. package/readme.md +13 -13
  267. package/relationships/index.js +10 -5
  268. package/relationships/with-schemas/index.js +10 -5
  269. package/releases.md +133 -45
  270. package/store/index.js +50 -18
  271. package/store/with-schemas/index.js +50 -18
  272. package/synchronizers/index.js +15 -9
  273. package/synchronizers/synchronizer-broadcast-channel/index.js +16 -10
  274. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +16 -10
  275. package/synchronizers/synchronizer-local/index.js +16 -10
  276. package/synchronizers/synchronizer-local/with-schemas/index.js +16 -10
  277. package/synchronizers/synchronizer-ws-client/index.js +15 -9
  278. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -9
  279. package/synchronizers/synchronizer-ws-server/index.js +15 -9
  280. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +15 -9
  281. package/synchronizers/synchronizer-ws-server-durable-object/index.js +15 -9
  282. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +15 -9
  283. package/synchronizers/synchronizer-ws-server-simple/index.js +8 -4
  284. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +8 -4
  285. package/synchronizers/with-schemas/index.js +15 -9
  286. package/ui-react/index.js +11 -6
  287. package/ui-react/with-schemas/index.js +11 -6
  288. package/ui-react-dom/index.js +16 -7
  289. package/ui-react-dom/with-schemas/index.js +16 -7
  290. package/ui-react-inspector/index.js +55 -23
  291. package/ui-react-inspector/with-schemas/index.js +55 -23
  292. package/with-schemas/index.js +62 -30
@@ -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
  }
@@ -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,