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
package/omni/index.js CHANGED
@@ -18,6 +18,7 @@ const FUNCTION$1 = getTypeOf(getTypeOf);
18
18
  const TRUE = 'true';
19
19
  const TYPE = 'type';
20
20
  const DEFAULT = 'default';
21
+ const ALLOW_NULL = 'allowNull';
21
22
  const UTF8 = 'utf8';
22
23
  const SUM = 'sum';
23
24
  const AVG = 'avg';
@@ -76,6 +77,10 @@ const strReplace = (str, searchValue, replaceValue) =>
76
77
  str.replace(searchValue, replaceValue);
77
78
 
78
79
  const promise = Promise;
80
+ const getIfNotFunction =
81
+ (predicate = isNullish) =>
82
+ (value, then, otherwise) =>
83
+ predicate(value) ? otherwise?.() : then(value);
79
84
  const GLOBAL = globalThis;
80
85
  const WINDOW = GLOBAL.window;
81
86
  const THOUSAND = 1e3;
@@ -91,9 +96,11 @@ const mathMin = math.min;
91
96
  const mathFloor = math.floor;
92
97
  const isFiniteNumber = isFinite;
93
98
  const isInstanceOf = (thing, cls) => thing instanceof cls;
94
- const isUndefined = (thing) => thing == void 0;
95
- const ifNotUndefined = (value, then, otherwise) =>
96
- isUndefined(value) ? otherwise?.() : then(value);
99
+ const isNullish = (thing) => thing == null;
100
+ const isUndefined = (thing) => thing === void 0;
101
+ const isNull = (thing) => thing === null;
102
+ const ifNotNullish = getIfNotFunction(isNullish);
103
+ const ifNotUndefined = getIfNotFunction(isUndefined);
97
104
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
98
105
  const isString = (thing) => getTypeOf(thing) == STRING;
99
106
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION$1;
@@ -145,13 +152,16 @@ const arrayShift = (array) => array.shift();
145
152
  const arrayWith = (array, index, value) => array.with(index, value);
146
153
 
147
154
  const getCellOrValueType = (cellOrValue) => {
155
+ if (isNull(cellOrValue)) {
156
+ return 'null';
157
+ }
148
158
  const type = getTypeOf(cellOrValue);
149
159
  return isTypeStringOrBoolean(type) ||
150
160
  (type == NUMBER && isFiniteNumber(cellOrValue))
151
161
  ? type
152
162
  : void 0;
153
163
  };
154
- const isCellOrValueOrNullOrUndefined = (cellOrValue) =>
164
+ const isCellOrValueOrUndefined = (cellOrValue) =>
155
165
  isUndefined(cellOrValue) || !isUndefined(getCellOrValueType(cellOrValue));
156
166
  const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
157
167
  isUndefined(cell)
@@ -186,12 +196,12 @@ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
186
196
  const objFrozen = object.isFrozen;
187
197
  const objEntries = object.entries;
188
198
  const isObject = (obj) =>
189
- !isUndefined(obj) &&
190
- ifNotUndefined(
199
+ !isNullish(obj) &&
200
+ ifNotNullish(
191
201
  getPrototypeOf(obj),
192
202
  (objPrototype) =>
193
203
  objPrototype == object.prototype ||
194
- isUndefined(getPrototypeOf(objPrototype)),
204
+ isNullish(getPrototypeOf(objPrototype)),
195
205
 
196
206
  /* istanbul ignore next */
197
207
  () => true,
@@ -236,7 +246,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
236
246
  };
237
247
  const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
238
248
  if (
239
- isUndefined(obj) ||
249
+ isNullish(obj) ||
240
250
  !isObject(obj) ||
241
251
  (!emptyIsValid && objIsEmpty(obj)) ||
242
252
  objFrozen(obj)
@@ -260,7 +270,7 @@ const mapForEach = (map, cb) =>
260
270
  const mapMap = (coll, cb) =>
261
271
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
262
272
  const mapSet = (map, key, value) =>
263
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
273
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
264
274
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
265
275
  if (!collHas(map, key)) {
266
276
  mapSet(map, key, getDefaultValue());
@@ -581,7 +591,7 @@ const getListenerFunctions = (getThing) => {
581
591
  const index = size(ids);
582
592
  if (index == size(path)) {
583
593
  listener(thing, ...ids, ...extraArgsGetter(ids));
584
- } else if (isUndefined(path[index])) {
594
+ } else if (isNull(path[index])) {
585
595
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
586
596
  callWithIds(...ids, id2),
587
597
  );
@@ -734,7 +744,7 @@ const createCheckpoints = getCreateFunction(
734
744
  ? goBackwardImpl
735
745
  : arrayHas(forwardIds, checkpointId)
736
746
  ? goForwardImpl
737
- : null;
747
+ : void 0;
738
748
  while (!isUndefined(action) && checkpointId != currentId) {
739
749
  action();
740
750
  }
@@ -1318,14 +1328,22 @@ const createStore = () => {
1318
1328
  const validateValuesSchema = (valuesSchema) =>
1319
1329
  objValidate(valuesSchema, validateCellOrValueSchema);
1320
1330
  const validateCellOrValueSchema = (schema) => {
1321
- if (!objValidate(schema, (_child, id2) => arrayHas([TYPE, DEFAULT], id2))) {
1331
+ if (
1332
+ !objValidate(schema, (_child, id2) =>
1333
+ arrayHas([TYPE, DEFAULT, ALLOW_NULL], id2),
1334
+ )
1335
+ ) {
1322
1336
  return false;
1323
1337
  }
1324
1338
  const type = schema[TYPE];
1325
1339
  if (!isTypeStringOrBoolean(type) && type != NUMBER) {
1326
1340
  return false;
1327
1341
  }
1328
- if (getCellOrValueType(schema[DEFAULT]) != type) {
1342
+ const defaultValue = schema[DEFAULT];
1343
+ if (isNull(defaultValue) && !schema[ALLOW_NULL]) {
1344
+ return false;
1345
+ }
1346
+ if (!isNull(defaultValue) && getCellOrValueType(defaultValue) != type) {
1329
1347
  objDel(schema, DEFAULT);
1330
1348
  }
1331
1349
  return true;
@@ -1362,9 +1380,19 @@ const createStore = () => {
1362
1380
  ? ifNotUndefined(
1363
1381
  mapGet(mapGet(tablesSchemaMap, tableId), cellId),
1364
1382
  (cellSchema) =>
1365
- getCellOrValueType(cell) != cellSchema[TYPE]
1366
- ? cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
1367
- : cell,
1383
+ isNull(cell)
1384
+ ? cellSchema[ALLOW_NULL]
1385
+ ? cell
1386
+ : cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
1387
+ : getCellOrValueType(cell) == cellSchema[TYPE]
1388
+ ? cell
1389
+ : cellInvalid(
1390
+ tableId,
1391
+ rowId,
1392
+ cellId,
1393
+ cell,
1394
+ cellSchema[DEFAULT],
1395
+ ),
1368
1396
  () => cellInvalid(tableId, rowId, cellId, cell),
1369
1397
  )
1370
1398
  : isUndefined(getCellOrValueType(cell))
@@ -1389,9 +1417,13 @@ const createStore = () => {
1389
1417
  ? ifNotUndefined(
1390
1418
  mapGet(valuesSchemaMap, valueId),
1391
1419
  (valueSchema) =>
1392
- getCellOrValueType(value) != valueSchema[TYPE]
1393
- ? valueInvalid(valueId, value, valueSchema[DEFAULT])
1394
- : value,
1420
+ isNull(value)
1421
+ ? valueSchema[ALLOW_NULL]
1422
+ ? value
1423
+ : valueInvalid(valueId, value, valueSchema[DEFAULT])
1424
+ : getCellOrValueType(value) == valueSchema[TYPE]
1425
+ ? value
1426
+ : valueInvalid(valueId, value, valueSchema[DEFAULT]),
1395
1427
  () => valueInvalid(valueId, value),
1396
1428
  )
1397
1429
  : isUndefined(getCellOrValueType(value))
@@ -1634,7 +1666,7 @@ const createStore = () => {
1634
1666
  mapSet(
1635
1667
  cellIds,
1636
1668
  cellId,
1637
- count != -addedOrRemoved ? count + addedOrRemoved : null,
1669
+ count != -addedOrRemoved ? count + addedOrRemoved : void 0,
1638
1670
  );
1639
1671
  idsChanged(
1640
1672
  mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),
@@ -2643,7 +2675,7 @@ const validateMergeableContent = (mergeableContent) =>
2643
2675
  objValidate(
2644
2676
  cellStamps,
2645
2677
  (cellStamp) =>
2646
- stampValidate(cellStamp, isCellOrValueOrNullOrUndefined),
2678
+ stampValidate(cellStamp, isCellOrValueOrUndefined),
2647
2679
  void 0,
2648
2680
  1,
2649
2681
  ),
@@ -2659,7 +2691,7 @@ const validateMergeableContent = (mergeableContent) =>
2659
2691
  stampValidate(mergeableContent[1], (values) =>
2660
2692
  objValidate(
2661
2693
  values,
2662
- (value) => stampValidate(value, isCellOrValueOrNullOrUndefined),
2694
+ (value) => stampValidate(value, isCellOrValueOrUndefined),
2663
2695
  void 0,
2664
2696
  1,
2665
2697
  ),
@@ -3608,7 +3640,7 @@ const getDefaultedTabularConfigMap = (
3608
3640
  0,
3609
3641
  objSize(defaultObj),
3610
3642
  );
3611
- if (!isUndefined(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
3643
+ if (!isNull(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
3612
3644
  then(id, defaultedConfig[0]);
3613
3645
  mapSet(configMap, id, defaultedConfig);
3614
3646
  }
@@ -4335,7 +4367,7 @@ const createCustomSqlitePersister = (
4335
4367
  ` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
4336
4368
  );
4337
4369
  if (d != dataVersion || s != schemaVersion || c != totalChanges) {
4338
- if (dataVersion != null) {
4370
+ if (!isNullish(dataVersion)) {
4339
4371
  listener();
4340
4372
  }
4341
4373
  dataVersion = d;
@@ -5483,8 +5515,8 @@ const createRemotePersister = (
5483
5515
  const response = await fetch(loadUrl, {method: 'HEAD'});
5484
5516
  const currentEtag = getETag(response);
5485
5517
  if (
5486
- !isUndefined(lastEtag) &&
5487
- !isUndefined(currentEtag) &&
5518
+ !isNull(lastEtag) &&
5519
+ !isNull(currentEtag) &&
5488
5520
  currentEtag != lastEtag
5489
5521
  ) {
5490
5522
  lastEtag = currentEtag;
@@ -5611,7 +5643,8 @@ const getChangesFromYDoc = (yContent, events) => {
5611
5643
  mapForEach(
5612
5644
  keys,
5613
5645
  (cellId, {action}) =>
5614
- (row[cellId] = action == DELETE ? null : yRow.get(cellId)),
5646
+ (row[cellId] =
5647
+ action == DELETE ? void 0 : yRow.get(cellId)),
5615
5648
  );
5616
5649
  },
5617
5650
  () =>
@@ -5619,7 +5652,7 @@ const getChangesFromYDoc = (yContent, events) => {
5619
5652
  keys,
5620
5653
  (rowId, {action}) =>
5621
5654
  (table[rowId] =
5622
- action == DELETE ? null : yTable.get(rowId)?.toJSON()),
5655
+ action == DELETE ? void 0 : yTable.get(rowId)?.toJSON()),
5623
5656
  ),
5624
5657
  );
5625
5658
  },
@@ -5628,13 +5661,14 @@ const getChangesFromYDoc = (yContent, events) => {
5628
5661
  keys,
5629
5662
  (tableId, {action}) =>
5630
5663
  (tables[tableId] =
5631
- action == DELETE ? null : yTables.get(tableId)?.toJSON()),
5664
+ action == DELETE ? void 0 : yTables.get(tableId)?.toJSON()),
5632
5665
  ),
5633
5666
  )
5634
5667
  : mapForEach(
5635
5668
  keys,
5636
5669
  (valueId, {action}) =>
5637
- (values[valueId] = action == DELETE ? null : yValues.get(valueId)),
5670
+ (values[valueId] =
5671
+ action == DELETE ? void 0 : yValues.get(valueId)),
5638
5672
  ),
5639
5673
  );
5640
5674
  return [tables, values, 1];
@@ -5832,7 +5866,7 @@ const createQueries = getCreateFunction((store) => {
5832
5866
  setDefinition(queryId, tableId);
5833
5867
  resetPreStores(queryId);
5834
5868
  const selectEntries = [];
5835
- const joinEntries = [[null, [tableId, null, null, [], mapNew()]]];
5869
+ const joinEntries = [[void 0, [tableId, void 0, void 0, [], mapNew()]]];
5836
5870
  const wheres = [];
5837
5871
  const groupEntries = [];
5838
5872
  const havings = [];
@@ -5848,7 +5882,7 @@ const createQueries = getCreateFunction((store) => {
5848
5882
  };
5849
5883
  const join = (joinedTableId, arg1, arg2) => {
5850
5884
  const fromIntermediateJoinedTableId =
5851
- isUndefined(arg2) || isFunction(arg1) ? null : arg1;
5885
+ isUndefined(arg2) || isFunction(arg1) ? void 0 : arg1;
5852
5886
  const onArg = isUndefined(fromIntermediateJoinedTableId) ? arg1 : arg2;
5853
5887
  const joinEntry = [
5854
5888
  joinedTableId,
@@ -5968,7 +6002,7 @@ const createQueries = getCreateFunction((store) => {
5968
6002
  groupRow[groupedCellId] = isUndefined(
5969
6003
  getCellOrValueType(aggregateValue),
5970
6004
  )
5971
- ? null
6005
+ ? void 0
5972
6006
  : aggregateValue;
5973
6007
  },
5974
6008
  );
@@ -6097,20 +6131,20 @@ const createQueries = getCreateFunction((store) => {
6097
6131
  const listenToTable = (rootRowId, tableId2, rowId, joinedTableIds2) => {
6098
6132
  const getCell = (cellId) => store.getCell(tableId2, rowId, cellId);
6099
6133
  arrayForEach(joinedTableIds2, (remoteAsTableId) => {
6100
- const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPair] =
6134
+ const [realJoinedTableId, , on, nextJoinedTableIds, remoteIdPairs] =
6101
6135
  mapGet(joins, remoteAsTableId);
6102
6136
  const remoteRowId = on?.(getCell, rootRowId);
6103
6137
  const [previousRemoteRowId, previousRemoteListenerId] =
6104
- mapGet(remoteIdPair, rootRowId) ?? [];
6138
+ mapGet(remoteIdPairs, rootRowId) ?? [];
6105
6139
  if (remoteRowId != previousRemoteRowId) {
6106
6140
  if (!isUndefined(previousRemoteListenerId)) {
6107
6141
  delStoreListeners(queryId, previousRemoteListenerId);
6108
6142
  }
6109
6143
  mapSet(
6110
- remoteIdPair,
6144
+ remoteIdPairs,
6111
6145
  rootRowId,
6112
6146
  isUndefined(remoteRowId)
6113
- ? null
6147
+ ? void 0
6114
6148
  : [
6115
6149
  remoteRowId,
6116
6150
  ...addStoreListeners(
@@ -6131,7 +6165,7 @@ const createQueries = getCreateFunction((store) => {
6131
6165
  });
6132
6166
  writeSelectRow(rootRowId);
6133
6167
  };
6134
- const {3: joinedTableIds} = mapGet(joins, null);
6168
+ const {3: joinedTableIds} = mapGet(joins, void 0);
6135
6169
  selectJoinWhereStore.transaction(() =>
6136
6170
  addStoreListeners(
6137
6171
  queryId,
@@ -6595,7 +6629,7 @@ const createCustomSynchronizer = (
6595
6629
  ifNotUndefined(
6596
6630
  mapGet(pendingRequests, transactionOrRequestId),
6597
6631
  ([toClientId, handleResponse]) =>
6598
- isUndefined(toClientId) || toClientId == fromClientId
6632
+ isNull(toClientId) || toClientId == fromClientId
6599
6633
  ? handleResponse(body, fromClientId)
6600
6634
  : /* istanbul ignore next */
6601
6635
  0,
@@ -6655,7 +6689,7 @@ const createBroadcastChannelSynchronizer = (
6655
6689
  channel.onmessage = ({
6656
6690
  data: [fromClientId, toClientId, requestId, message, body],
6657
6691
  }) =>
6658
- isUndefined(toClientId) || toClientId == clientId
6692
+ isNull(toClientId) || toClientId == clientId
6659
6693
  ? receive(fromClientId, requestId, message, body)
6660
6694
  : 0;
6661
6695
  };
@@ -6680,7 +6714,7 @@ const createLocalSynchronizer = (store, onSend, onReceive, onIgnoredError) => {
6680
6714
  const clientId = getUniqueId$1();
6681
6715
  const send = (toClientId, requestId, message, body) =>
6682
6716
  startTimeout(() =>
6683
- isUndefined(toClientId)
6717
+ isNull(toClientId)
6684
6718
  ? mapForEach(clients, (otherClientId, receive) =>
6685
6719
  otherClientId != clientId
6686
6720
  ? receive(clientId, requestId, message, body)
@@ -9525,7 +9559,7 @@ const RelationshipInHtmlRow = ({
9525
9559
  ? localRowId
9526
9560
  : tableId === remoteTableId
9527
9561
  ? remoteRowId
9528
- : null;
9562
+ : void 0;
9529
9563
  return isUndefined(rowId)
9530
9564
  ? null
9531
9565
  : /* @__PURE__ */ jsx(
@@ -10268,11 +10302,11 @@ const getNewIdFromSuggestedId = (suggestedId, has) => {
10268
10302
  };
10269
10303
  const ConfirmableActions = ({actions, ...props}) => {
10270
10304
  const [confirming, setConfirming] = useState();
10271
- const handleDone = useCallback(() => setConfirming(null), []);
10305
+ const handleDone = useCallback(() => setConfirming(void 0), []);
10272
10306
  useEffect(() => {
10273
- if (confirming != null) {
10307
+ if (!isUndefined(confirming)) {
10274
10308
  const handleKeyDown = (e) => {
10275
- if (confirming != null && e.key === 'Escape') {
10309
+ if (!isUndefined(confirming) && e.key === 'Escape') {
10276
10310
  e.preventDefault();
10277
10311
  handleDone();
10278
10312
  }
@@ -10281,7 +10315,7 @@ const ConfirmableActions = ({actions, ...props}) => {
10281
10315
  return () => document.removeEventListener('keydown', handleKeyDown);
10282
10316
  }
10283
10317
  }, [confirming, handleDone]);
10284
- if (confirming != null) {
10318
+ if (!isUndefined(confirming)) {
10285
10319
  const [, , Component] = actions[confirming];
10286
10320
  return /* @__PURE__ */ jsxs(Fragment, {
10287
10321
  children: [