tinybase 7.0.0-beta.2 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +8 -6
  33. package/checkpoints/with-schemas/index.js +8 -6
  34. package/common/index.js +4 -3
  35. package/common/with-schemas/index.js +4 -3
  36. package/index.js +60 -30
  37. package/indexes/index.js +7 -5
  38. package/indexes/with-schemas/index.js +7 -5
  39. package/mergeable-store/index.js +51 -21
  40. package/mergeable-store/with-schemas/index.js +51 -21
  41. package/metrics/index.js +7 -5
  42. package/metrics/with-schemas/index.js +7 -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 +78 -46
  216. package/omni/with-schemas/index.js +78 -46
  217. package/package.json +3 -3
  218. package/persisters/index.js +14 -10
  219. package/persisters/persister-automerge/index.js +12 -8
  220. package/persisters/persister-automerge/with-schemas/index.js +12 -8
  221. package/persisters/persister-browser/index.js +12 -8
  222. package/persisters/persister-browser/with-schemas/index.js +12 -8
  223. package/persisters/persister-cr-sqlite-wasm/index.js +14 -10
  224. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +14 -10
  225. package/persisters/persister-durable-object-sql-storage/index.js +14 -10
  226. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +14 -10
  227. package/persisters/persister-durable-object-storage/index.js +12 -8
  228. package/persisters/persister-durable-object-storage/with-schemas/index.js +12 -8
  229. package/persisters/persister-electric-sql/index.js +14 -10
  230. package/persisters/persister-electric-sql/with-schemas/index.js +14 -10
  231. package/persisters/persister-expo-sqlite/index.js +14 -10
  232. package/persisters/persister-expo-sqlite/with-schemas/index.js +14 -10
  233. package/persisters/persister-file/index.js +12 -8
  234. package/persisters/persister-file/with-schemas/index.js +12 -8
  235. package/persisters/persister-indexed-db/index.js +12 -8
  236. package/persisters/persister-indexed-db/with-schemas/index.js +12 -8
  237. package/persisters/persister-libsql/index.js +14 -10
  238. package/persisters/persister-libsql/with-schemas/index.js +14 -10
  239. package/persisters/persister-partykit-client/index.js +12 -8
  240. package/persisters/persister-partykit-client/with-schemas/index.js +12 -8
  241. package/persisters/persister-partykit-server/index.js +4 -3
  242. package/persisters/persister-partykit-server/with-schemas/index.js +4 -3
  243. package/persisters/persister-pglite/index.js +13 -9
  244. package/persisters/persister-pglite/with-schemas/index.js +13 -9
  245. package/persisters/persister-postgres/index.js +13 -9
  246. package/persisters/persister-postgres/with-schemas/index.js +13 -9
  247. package/persisters/persister-powersync/index.js +14 -10
  248. package/persisters/persister-powersync/with-schemas/index.js +14 -10
  249. package/persisters/persister-react-native-mmkv/index.js +12 -8
  250. package/persisters/persister-react-native-mmkv/with-schemas/index.js +12 -8
  251. package/persisters/persister-react-native-sqlite/index.js +14 -10
  252. package/persisters/persister-react-native-sqlite/with-schemas/index.js +14 -10
  253. package/persisters/persister-remote/index.js +14 -10
  254. package/persisters/persister-remote/with-schemas/index.js +14 -10
  255. package/persisters/persister-sqlite-bun/index.js +14 -10
  256. package/persisters/persister-sqlite-bun/with-schemas/index.js +14 -10
  257. package/persisters/persister-sqlite-wasm/index.js +14 -10
  258. package/persisters/persister-sqlite-wasm/with-schemas/index.js +14 -10
  259. package/persisters/persister-sqlite3/index.js +14 -10
  260. package/persisters/persister-sqlite3/with-schemas/index.js +14 -10
  261. package/persisters/persister-yjs/index.js +18 -12
  262. package/persisters/persister-yjs/with-schemas/index.js +18 -12
  263. package/persisters/with-schemas/index.js +14 -10
  264. package/queries/index.js +17 -12
  265. package/queries/with-schemas/index.js +17 -12
  266. package/readme.md +2 -2
  267. package/relationships/index.js +7 -5
  268. package/relationships/with-schemas/index.js +7 -5
  269. package/releases.md +100 -12
  270. package/store/index.js +48 -18
  271. package/store/with-schemas/index.js +48 -18
  272. package/synchronizers/index.js +13 -9
  273. package/synchronizers/synchronizer-broadcast-channel/index.js +14 -10
  274. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +14 -10
  275. package/synchronizers/synchronizer-local/index.js +14 -10
  276. package/synchronizers/synchronizer-local/with-schemas/index.js +14 -10
  277. package/synchronizers/synchronizer-ws-client/index.js +13 -9
  278. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +13 -9
  279. package/synchronizers/synchronizer-ws-server/index.js +13 -9
  280. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +13 -9
  281. package/synchronizers/synchronizer-ws-server-durable-object/index.js +13 -9
  282. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +13 -9
  283. package/synchronizers/synchronizer-ws-server-simple/index.js +5 -4
  284. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +5 -4
  285. package/synchronizers/with-schemas/index.js +13 -9
  286. package/ui-react/index.js +9 -6
  287. package/ui-react/with-schemas/index.js +9 -6
  288. package/ui-react-dom/index.js +14 -7
  289. package/ui-react-dom/with-schemas/index.js +14 -7
  290. package/ui-react-inspector/index.js +53 -23
  291. package/ui-react-inspector/with-schemas/index.js +53 -23
  292. package/with-schemas/index.js +60 -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,8 @@ 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 = (predicate) => (value, then, otherwise) =>
42
+ predicate(value) ? otherwise?.() : then(value);
40
43
  const GLOBAL = globalThis;
41
44
  const math = Math;
42
45
  const mathMax = math.max;
@@ -44,9 +47,11 @@ const mathMin = math.min;
44
47
  const mathFloor = math.floor;
45
48
  const isFiniteNumber = isFinite;
46
49
  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);
50
+ const isNullish = (thing) => thing == null;
51
+ const isUndefined = (thing) => thing === void 0;
52
+ const isNull = (thing) => thing === null;
53
+ const ifNotNullish = getIfNotFunction(isNullish);
54
+ const ifNotUndefined = getIfNotFunction(isUndefined);
50
55
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
51
56
  const isString = (thing) => getTypeOf(thing) == STRING;
52
57
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
@@ -88,13 +93,16 @@ const arrayUnshift = (array, ...values) => array.unshift(...values);
88
93
  const arrayShift = (array) => array.shift();
89
94
 
90
95
  const getCellOrValueType = (cellOrValue) => {
96
+ if (isNull(cellOrValue)) {
97
+ return 'null';
98
+ }
91
99
  const type = getTypeOf(cellOrValue);
92
100
  return isTypeStringOrBoolean(type) ||
93
101
  (type == NUMBER && isFiniteNumber(cellOrValue))
94
102
  ? type
95
103
  : void 0;
96
104
  };
97
- const isCellOrValueOrNullOrUndefined = (cellOrValue) =>
105
+ const isCellOrValueOrUndefined = (cellOrValue) =>
98
106
  isUndefined(cellOrValue) || !isUndefined(getCellOrValueType(cellOrValue));
99
107
  const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
100
108
  isUndefined(cell)
@@ -121,12 +129,12 @@ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
121
129
  const objFrozen = object.isFrozen;
122
130
  const objEntries = object.entries;
123
131
  const isObject = (obj) =>
124
- !isUndefined(obj) &&
125
- ifNotUndefined(
132
+ !isNullish(obj) &&
133
+ ifNotNullish(
126
134
  getPrototypeOf(obj),
127
135
  (objPrototype) =>
128
136
  objPrototype == object.prototype ||
129
- isUndefined(getPrototypeOf(objPrototype)),
137
+ isNullish(getPrototypeOf(objPrototype)),
130
138
 
131
139
  /* istanbul ignore next */
132
140
  () => true,
@@ -155,7 +163,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
155
163
  };
156
164
  const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
157
165
  if (
158
- isUndefined(obj) ||
166
+ isNullish(obj) ||
159
167
  !isObject(obj) ||
160
168
  (!emptyIsValid && objIsEmpty(obj)) ||
161
169
  objFrozen(obj)
@@ -179,7 +187,7 @@ const mapForEach = (map, cb) =>
179
187
  const mapMap = (coll, cb) =>
180
188
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
181
189
  const mapSet = (map, key, value) =>
182
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
190
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
183
191
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
184
192
  if (!collHas(map, key)) {
185
193
  mapSet(map, key, getDefaultValue());
@@ -500,7 +508,7 @@ const getListenerFunctions = (getThing) => {
500
508
  const index = size(ids);
501
509
  if (index == size(path)) {
502
510
  listener(thing, ...ids, ...extraArgsGetter(ids));
503
- } else if (isUndefined(path[index])) {
511
+ } else if (isNull(path[index])) {
504
512
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
505
513
  callWithIds(...ids, id2),
506
514
  );
@@ -653,7 +661,7 @@ const createCheckpoints = getCreateFunction(
653
661
  ? goBackwardImpl
654
662
  : arrayHas(forwardIds, checkpointId)
655
663
  ? goForwardImpl
656
- : null;
664
+ : void 0;
657
665
  while (!isUndefined(action) && checkpointId != currentId) {
658
666
  action();
659
667
  }
@@ -1233,14 +1241,22 @@ const createStore = () => {
1233
1241
  const validateValuesSchema = (valuesSchema) =>
1234
1242
  objValidate(valuesSchema, validateCellOrValueSchema);
1235
1243
  const validateCellOrValueSchema = (schema) => {
1236
- if (!objValidate(schema, (_child, id2) => arrayHas([TYPE, DEFAULT], id2))) {
1244
+ if (
1245
+ !objValidate(schema, (_child, id2) =>
1246
+ arrayHas([TYPE, DEFAULT, ALLOW_NULL], id2),
1247
+ )
1248
+ ) {
1237
1249
  return false;
1238
1250
  }
1239
1251
  const type = schema[TYPE];
1240
1252
  if (!isTypeStringOrBoolean(type) && type != NUMBER) {
1241
1253
  return false;
1242
1254
  }
1243
- if (getCellOrValueType(schema[DEFAULT]) != type) {
1255
+ const defaultValue = schema[DEFAULT];
1256
+ if (isNull(defaultValue) && !schema[ALLOW_NULL]) {
1257
+ return false;
1258
+ }
1259
+ if (!isNull(defaultValue) && getCellOrValueType(defaultValue) != type) {
1244
1260
  objDel(schema, DEFAULT);
1245
1261
  }
1246
1262
  return true;
@@ -1277,9 +1293,19 @@ const createStore = () => {
1277
1293
  ? ifNotUndefined(
1278
1294
  mapGet(mapGet(tablesSchemaMap, tableId), cellId),
1279
1295
  (cellSchema) =>
1280
- getCellOrValueType(cell) != cellSchema[TYPE]
1281
- ? cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
1282
- : cell,
1296
+ isNull(cell)
1297
+ ? cellSchema[ALLOW_NULL]
1298
+ ? cell
1299
+ : cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
1300
+ : getCellOrValueType(cell) == cellSchema[TYPE]
1301
+ ? cell
1302
+ : cellInvalid(
1303
+ tableId,
1304
+ rowId,
1305
+ cellId,
1306
+ cell,
1307
+ cellSchema[DEFAULT],
1308
+ ),
1283
1309
  () => cellInvalid(tableId, rowId, cellId, cell),
1284
1310
  )
1285
1311
  : isUndefined(getCellOrValueType(cell))
@@ -1304,9 +1330,13 @@ const createStore = () => {
1304
1330
  ? ifNotUndefined(
1305
1331
  mapGet(valuesSchemaMap, valueId),
1306
1332
  (valueSchema) =>
1307
- getCellOrValueType(value) != valueSchema[TYPE]
1308
- ? valueInvalid(valueId, value, valueSchema[DEFAULT])
1309
- : value,
1333
+ isNull(value)
1334
+ ? valueSchema[ALLOW_NULL]
1335
+ ? value
1336
+ : valueInvalid(valueId, value, valueSchema[DEFAULT])
1337
+ : getCellOrValueType(value) == valueSchema[TYPE]
1338
+ ? value
1339
+ : valueInvalid(valueId, value, valueSchema[DEFAULT]),
1310
1340
  () => valueInvalid(valueId, value),
1311
1341
  )
1312
1342
  : isUndefined(getCellOrValueType(value))
@@ -1549,7 +1579,7 @@ const createStore = () => {
1549
1579
  mapSet(
1550
1580
  cellIds,
1551
1581
  cellId,
1552
- count != -addedOrRemoved ? count + addedOrRemoved : null,
1582
+ count != -addedOrRemoved ? count + addedOrRemoved : void 0,
1553
1583
  );
1554
1584
  idsChanged(
1555
1585
  mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),
@@ -2558,7 +2588,7 @@ const validateMergeableContent = (mergeableContent) =>
2558
2588
  objValidate(
2559
2589
  cellStamps,
2560
2590
  (cellStamp) =>
2561
- stampValidate(cellStamp, isCellOrValueOrNullOrUndefined),
2591
+ stampValidate(cellStamp, isCellOrValueOrUndefined),
2562
2592
  void 0,
2563
2593
  1,
2564
2594
  ),
@@ -2574,7 +2604,7 @@ const validateMergeableContent = (mergeableContent) =>
2574
2604
  stampValidate(mergeableContent[1], (values) =>
2575
2605
  objValidate(
2576
2606
  values,
2577
- (value) => stampValidate(value, isCellOrValueOrNullOrUndefined),
2607
+ (value) => stampValidate(value, isCellOrValueOrUndefined),
2578
2608
  void 0,
2579
2609
  1,
2580
2610
  ),
@@ -3252,7 +3282,7 @@ const createQueries = getCreateFunction((store) => {
3252
3282
  setDefinition(queryId, tableId);
3253
3283
  resetPreStores(queryId);
3254
3284
  const selectEntries = [];
3255
- const joinEntries = [[null, [tableId, null, null, [], mapNew()]]];
3285
+ const joinEntries = [[void 0, [tableId, void 0, void 0, [], mapNew()]]];
3256
3286
  const wheres = [];
3257
3287
  const groupEntries = [];
3258
3288
  const havings = [];
@@ -3268,7 +3298,7 @@ const createQueries = getCreateFunction((store) => {
3268
3298
  };
3269
3299
  const join = (joinedTableId, arg1, arg2) => {
3270
3300
  const fromIntermediateJoinedTableId =
3271
- isUndefined(arg2) || isFunction(arg1) ? null : arg1;
3301
+ isUndefined(arg2) || isFunction(arg1) ? void 0 : arg1;
3272
3302
  const onArg = isUndefined(fromIntermediateJoinedTableId) ? arg1 : arg2;
3273
3303
  const joinEntry = [
3274
3304
  joinedTableId,
@@ -3388,7 +3418,7 @@ const createQueries = getCreateFunction((store) => {
3388
3418
  groupRow[groupedCellId] = isUndefined(
3389
3419
  getCellOrValueType(aggregateValue),
3390
3420
  )
3391
- ? null
3421
+ ? void 0
3392
3422
  : aggregateValue;
3393
3423
  },
3394
3424
  );
@@ -3517,20 +3547,20 @@ const createQueries = getCreateFunction((store) => {
3517
3547
  const listenToTable = (rootRowId, tableId2, rowId, joinedTableIds2) => {
3518
3548
  const getCell = (cellId) => store.getCell(tableId2, rowId, cellId);
3519
3549
  arrayForEach(joinedTableIds2, (remoteAsTableId) => {
3520
- const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPair] =
3550
+ const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPairs] =
3521
3551
  mapGet(joins, remoteAsTableId);
3522
3552
  const remoteRowId = on?.(getCell, rootRowId);
3523
3553
  const [previousRemoteRowId, previousRemoteListenerId] =
3524
- mapGet(remoteIdPair, rootRowId) ?? [];
3554
+ mapGet(remoteIdPairs, rootRowId) ?? [];
3525
3555
  if (remoteRowId != previousRemoteRowId) {
3526
3556
  if (!isUndefined(previousRemoteListenerId)) {
3527
3557
  delStoreListeners(queryId, previousRemoteListenerId);
3528
3558
  }
3529
3559
  mapSet(
3530
- remoteIdPair,
3560
+ remoteIdPairs,
3531
3561
  rootRowId,
3532
3562
  isUndefined(remoteRowId)
3533
- ? null
3563
+ ? void 0
3534
3564
  : [
3535
3565
  remoteRowId,
3536
3566
  ...addStoreListeners(
@@ -3551,7 +3581,7 @@ const createQueries = getCreateFunction((store) => {
3551
3581
  });
3552
3582
  writeSelectRow(rootRowId);
3553
3583
  };
3554
- const {3: joinedTableIds} = mapGet(joins, null);
3584
+ const {3: joinedTableIds} = mapGet(joins, void 0);
3555
3585
  selectJoinWhereStore.transaction(() =>
3556
3586
  addStoreListeners(
3557
3587
  queryId,