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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/@types/common/index.d.ts +1 -1
  2. package/@types/mergeable-store/index.d.ts +2 -1
  3. package/@types/mergeable-store/with-schemas/index.d.ts +5 -3
  4. package/@types/omni/index.d.ts +2 -0
  5. package/@types/omni/with-schemas/index.d.ts +2 -0
  6. package/@types/persisters/index.d.ts +4 -0
  7. package/@types/persisters/persister-automerge/index.d.ts +4 -6
  8. package/@types/persisters/persister-automerge/with-schemas/index.d.ts +7 -8
  9. package/@types/persisters/persister-browser/index.d.ts +97 -6
  10. package/@types/persisters/persister-browser/with-schemas/index.d.ts +113 -6
  11. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
  12. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +7 -2
  13. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +6 -2
  14. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +5 -0
  15. package/@types/persisters/persister-durable-object-storage/index.d.ts +1 -2
  16. package/@types/persisters/persister-durable-object-storage/with-schemas/index.d.ts +3 -2
  17. package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
  18. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +7 -2
  19. package/@types/persisters/persister-expo-sqlite/index.d.ts +5 -2
  20. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +7 -2
  21. package/@types/persisters/persister-file/index.d.ts +1 -2
  22. package/@types/persisters/persister-file/with-schemas/index.d.ts +3 -2
  23. package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +3 -2
  24. package/@types/persisters/persister-libsql/index.d.ts +4 -0
  25. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +7 -2
  26. package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +3 -2
  27. package/@types/persisters/persister-pglite/index.d.ts +7 -3
  28. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +9 -3
  29. package/@types/persisters/persister-postgres/index.d.ts +5 -2
  30. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +7 -2
  31. package/@types/persisters/persister-powersync/index.d.ts +4 -0
  32. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +7 -2
  33. package/@types/persisters/persister-react-native-mmkv/index.d.ts +117 -0
  34. package/@types/persisters/persister-react-native-mmkv/with-schemas/index.d.ts +133 -0
  35. package/@types/persisters/persister-react-native-sqlite/index.d.ts +184 -0
  36. package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +207 -0
  37. package/@types/persisters/persister-remote/with-schemas/index.d.ts +3 -2
  38. package/@types/persisters/persister-sqlite-bun/index.d.ts +5 -2
  39. package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +7 -2
  40. package/@types/persisters/persister-sqlite-wasm/index.d.ts +6 -2
  41. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +8 -2
  42. package/@types/persisters/persister-sqlite3/index.d.ts +5 -2
  43. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +7 -2
  44. package/@types/persisters/persister-yjs/with-schemas/index.d.ts +3 -2
  45. package/@types/persisters/with-schemas/index.d.ts +4 -0
  46. package/@types/queries/index.d.ts +1 -1
  47. package/@types/queries/with-schemas/index.d.ts +4 -8
  48. package/@types/store/index.d.ts +34 -19
  49. package/@types/store/with-schemas/index.d.ts +28 -13
  50. package/@types/synchronizers/index.d.ts +1 -0
  51. package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +3 -2
  52. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +3 -2
  53. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +4 -2
  54. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +1 -0
  55. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
  56. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
  57. package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +1 -0
  58. package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +1 -0
  59. package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +1 -1
  60. package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +1 -1
  61. package/@types/synchronizers/with-schemas/index.d.ts +4 -2
  62. package/@types/ui-react/index.d.ts +6 -1
  63. package/@types/ui-react/with-schemas/index.d.ts +6 -1
  64. package/@types/ui-react-dom/index.d.ts +153 -20
  65. package/@types/ui-react-dom/with-schemas/index.d.ts +72 -20
  66. package/@types/ui-react-inspector/index.d.ts +8 -0
  67. package/@types/ui-react-inspector/with-schemas/index.d.ts +27 -1925
  68. package/agents.md +343 -0
  69. package/checkpoints/index.js +11 -6
  70. package/checkpoints/with-schemas/index.js +11 -6
  71. package/common/index.js +8 -4
  72. package/common/with-schemas/index.js +8 -4
  73. package/index.js +63 -31
  74. package/indexes/index.js +10 -5
  75. package/indexes/with-schemas/index.js +10 -5
  76. package/mergeable-store/index.js +54 -22
  77. package/mergeable-store/with-schemas/index.js +54 -22
  78. package/metrics/index.js +10 -5
  79. package/metrics/with-schemas/index.js +10 -5
  80. package/min/checkpoints/index.js +1 -1
  81. package/min/checkpoints/index.js.gz +0 -0
  82. package/min/checkpoints/with-schemas/index.js +1 -1
  83. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  84. package/min/common/index.js +1 -1
  85. package/min/common/index.js.gz +0 -0
  86. package/min/common/with-schemas/index.js +1 -1
  87. package/min/common/with-schemas/index.js.gz +0 -0
  88. package/min/index.js +1 -1
  89. package/min/index.js.gz +0 -0
  90. package/min/indexes/index.js +1 -1
  91. package/min/indexes/index.js.gz +0 -0
  92. package/min/indexes/with-schemas/index.js +1 -1
  93. package/min/indexes/with-schemas/index.js.gz +0 -0
  94. package/min/mergeable-store/index.js +1 -1
  95. package/min/mergeable-store/index.js.gz +0 -0
  96. package/min/mergeable-store/with-schemas/index.js +1 -1
  97. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  98. package/min/metrics/index.js +1 -1
  99. package/min/metrics/index.js.gz +0 -0
  100. package/min/metrics/with-schemas/index.js +1 -1
  101. package/min/metrics/with-schemas/index.js.gz +0 -0
  102. package/min/omni/index.js +1 -1
  103. package/min/omni/index.js.gz +0 -0
  104. package/min/omni/with-schemas/index.js +1 -1
  105. package/min/omni/with-schemas/index.js.gz +0 -0
  106. package/min/persisters/index.js +1 -1
  107. package/min/persisters/index.js.gz +0 -0
  108. package/min/persisters/persister-automerge/index.js +1 -1
  109. package/min/persisters/persister-automerge/index.js.gz +0 -0
  110. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-browser/index.js +1 -1
  113. package/min/persisters/persister-browser/index.js.gz +0 -0
  114. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  117. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  118. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  121. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  122. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  123. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  124. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  125. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  126. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  127. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  128. package/min/persisters/persister-electric-sql/index.js +1 -1
  129. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  130. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  131. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  132. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  133. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  134. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  135. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  136. package/min/persisters/persister-file/index.js +1 -1
  137. package/min/persisters/persister-file/index.js.gz +0 -0
  138. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  139. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  140. package/min/persisters/persister-indexed-db/index.js +1 -1
  141. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  142. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  143. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  144. package/min/persisters/persister-libsql/index.js +1 -1
  145. package/min/persisters/persister-libsql/index.js.gz +0 -0
  146. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  147. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  148. package/min/persisters/persister-partykit-client/index.js +1 -1
  149. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  150. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  151. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  152. package/min/persisters/persister-partykit-server/index.js +1 -1
  153. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  154. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  155. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  156. package/min/persisters/persister-pglite/index.js +1 -1
  157. package/min/persisters/persister-pglite/index.js.gz +0 -0
  158. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  159. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  160. package/min/persisters/persister-postgres/index.js +1 -1
  161. package/min/persisters/persister-postgres/index.js.gz +0 -0
  162. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  163. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  164. package/min/persisters/persister-powersync/index.js +1 -1
  165. package/min/persisters/persister-powersync/index.js.gz +0 -0
  166. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  167. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  168. package/min/persisters/persister-react-native-mmkv/index.js +1 -0
  169. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  170. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -0
  171. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  172. package/min/persisters/persister-react-native-sqlite/index.js +1 -0
  173. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  174. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -0
  175. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  176. package/min/persisters/persister-remote/index.js +1 -1
  177. package/min/persisters/persister-remote/index.js.gz +0 -0
  178. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  179. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  180. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  181. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  182. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  183. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  184. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  185. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  186. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  187. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  188. package/min/persisters/persister-sqlite3/index.js +1 -1
  189. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  190. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  191. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  192. package/min/persisters/persister-yjs/index.js +1 -1
  193. package/min/persisters/persister-yjs/index.js.gz +0 -0
  194. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  195. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  196. package/min/persisters/with-schemas/index.js +1 -1
  197. package/min/persisters/with-schemas/index.js.gz +0 -0
  198. package/min/queries/index.js +1 -1
  199. package/min/queries/index.js.gz +0 -0
  200. package/min/queries/with-schemas/index.js +1 -1
  201. package/min/queries/with-schemas/index.js.gz +0 -0
  202. package/min/relationships/index.js +1 -1
  203. package/min/relationships/index.js.gz +0 -0
  204. package/min/relationships/with-schemas/index.js +1 -1
  205. package/min/relationships/with-schemas/index.js.gz +0 -0
  206. package/min/store/index.js +1 -1
  207. package/min/store/index.js.gz +0 -0
  208. package/min/store/with-schemas/index.js +1 -1
  209. package/min/store/with-schemas/index.js.gz +0 -0
  210. package/min/synchronizers/index.js +1 -1
  211. package/min/synchronizers/index.js.gz +0 -0
  212. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  213. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  214. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  215. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  216. package/min/synchronizers/synchronizer-local/index.js +1 -1
  217. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  218. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  219. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  220. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  221. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  222. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  223. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  224. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  225. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  226. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  227. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  228. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  229. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  230. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  231. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  232. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  233. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  234. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  235. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  236. package/min/synchronizers/with-schemas/index.js +1 -1
  237. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  238. package/min/ui-react/index.js +1 -1
  239. package/min/ui-react/index.js.gz +0 -0
  240. package/min/ui-react/with-schemas/index.js +1 -1
  241. package/min/ui-react/with-schemas/index.js.gz +0 -0
  242. package/min/ui-react-dom/index.js +1 -1
  243. package/min/ui-react-dom/index.js.gz +0 -0
  244. package/min/ui-react-dom/with-schemas/index.js +1 -1
  245. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  246. package/min/ui-react-inspector/index.js +1 -1
  247. package/min/ui-react-inspector/index.js.gz +0 -0
  248. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  249. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  250. package/min/with-schemas/index.js +1 -1
  251. package/min/with-schemas/index.js.gz +0 -0
  252. package/omni/index.js +2178 -1203
  253. package/omni/with-schemas/index.js +2178 -1203
  254. package/package.json +91 -11
  255. package/persisters/index.js +16 -10
  256. package/persisters/persister-automerge/index.js +15 -9
  257. package/persisters/persister-automerge/with-schemas/index.js +15 -9
  258. package/persisters/persister-browser/index.js +41 -9
  259. package/persisters/persister-browser/with-schemas/index.js +41 -9
  260. package/persisters/persister-cr-sqlite-wasm/index.js +16 -10
  261. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +16 -10
  262. package/persisters/persister-durable-object-sql-storage/index.js +16 -10
  263. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +16 -10
  264. package/persisters/persister-durable-object-storage/index.js +14 -8
  265. package/persisters/persister-durable-object-storage/with-schemas/index.js +14 -8
  266. package/persisters/persister-electric-sql/index.js +16 -10
  267. package/persisters/persister-electric-sql/with-schemas/index.js +16 -10
  268. package/persisters/persister-expo-sqlite/index.js +16 -10
  269. package/persisters/persister-expo-sqlite/with-schemas/index.js +16 -10
  270. package/persisters/persister-file/index.js +14 -8
  271. package/persisters/persister-file/with-schemas/index.js +14 -8
  272. package/persisters/persister-indexed-db/index.js +14 -8
  273. package/persisters/persister-indexed-db/with-schemas/index.js +14 -8
  274. package/persisters/persister-libsql/index.js +16 -10
  275. package/persisters/persister-libsql/with-schemas/index.js +16 -10
  276. package/persisters/persister-partykit-client/index.js +14 -8
  277. package/persisters/persister-partykit-client/with-schemas/index.js +14 -8
  278. package/persisters/persister-partykit-server/index.js +7 -3
  279. package/persisters/persister-partykit-server/with-schemas/index.js +7 -3
  280. package/persisters/persister-pglite/index.js +15 -9
  281. package/persisters/persister-pglite/with-schemas/index.js +15 -9
  282. package/persisters/persister-postgres/index.js +15 -9
  283. package/persisters/persister-postgres/with-schemas/index.js +15 -9
  284. package/persisters/persister-powersync/index.js +16 -10
  285. package/persisters/persister-powersync/with-schemas/index.js +16 -10
  286. package/persisters/persister-react-native-mmkv/index.js +465 -0
  287. package/persisters/persister-react-native-mmkv/with-schemas/index.js +465 -0
  288. package/persisters/persister-react-native-sqlite/index.js +1195 -0
  289. package/persisters/persister-react-native-sqlite/with-schemas/index.js +1195 -0
  290. package/persisters/persister-remote/index.js +16 -10
  291. package/persisters/persister-remote/with-schemas/index.js +16 -10
  292. package/persisters/persister-sqlite-bun/index.js +16 -10
  293. package/persisters/persister-sqlite-bun/with-schemas/index.js +16 -10
  294. package/persisters/persister-sqlite-wasm/index.js +16 -10
  295. package/persisters/persister-sqlite-wasm/with-schemas/index.js +16 -10
  296. package/persisters/persister-sqlite3/index.js +16 -10
  297. package/persisters/persister-sqlite3/with-schemas/index.js +16 -10
  298. package/persisters/persister-yjs/index.js +20 -12
  299. package/persisters/persister-yjs/with-schemas/index.js +20 -12
  300. package/persisters/with-schemas/index.js +16 -10
  301. package/queries/index.js +20 -12
  302. package/queries/with-schemas/index.js +20 -12
  303. package/readme.md +13 -13
  304. package/relationships/index.js +10 -5
  305. package/relationships/with-schemas/index.js +10 -5
  306. package/releases.md +179 -41
  307. package/store/index.js +50 -18
  308. package/store/with-schemas/index.js +50 -18
  309. package/synchronizers/index.js +16 -10
  310. package/synchronizers/synchronizer-broadcast-channel/index.js +17 -11
  311. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -11
  312. package/synchronizers/synchronizer-local/index.js +17 -11
  313. package/synchronizers/synchronizer-local/with-schemas/index.js +17 -11
  314. package/synchronizers/synchronizer-ws-client/index.js +16 -10
  315. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +16 -10
  316. package/synchronizers/synchronizer-ws-server/index.js +16 -10
  317. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +16 -10
  318. package/synchronizers/synchronizer-ws-server-durable-object/index.js +16 -10
  319. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +16 -10
  320. package/synchronizers/synchronizer-ws-server-simple/index.js +8 -4
  321. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +8 -4
  322. package/synchronizers/with-schemas/index.js +16 -10
  323. package/ui-react/index.js +408 -374
  324. package/ui-react/with-schemas/index.js +408 -374
  325. package/ui-react-dom/index.js +883 -437
  326. package/ui-react-dom/with-schemas/index.js +883 -437
  327. package/ui-react-inspector/index.js +1761 -556
  328. package/ui-react-inspector/with-schemas/index.js +1761 -556
  329. package/with-schemas/index.js +63 -31
@@ -0,0 +1,184 @@
1
+ /**
2
+ * The persister-react-native-sqlite module of the TinyBase project lets you
3
+ * save and load Store data to and from a SQLite database using the
4
+ * [`react-native-sqlite-storage`](https://github.com/andpor/react-native-sqlite-storage) module (in an appropriate React Native
5
+ * environment).
6
+ * @see Database Persistence guide
7
+ * @packageDocumentation
8
+ * @module persister-react-native-sqlite
9
+ * @since v6.4.0
10
+ */
11
+ import {type SQLiteDatabase} from 'react-native-sqlite-storage';
12
+ import type {MergeableStore} from '../../mergeable-store/index.d.ts';
13
+ import type {Store} from '../../store/index.d.ts';
14
+ import type {DatabasePersisterConfig, Persister, Persists} from '../index.d.ts';
15
+
16
+ /**
17
+ * The ReactNativeSqlitePersister interface represents a Persister that lets you
18
+ * save and load Store data to and from a `react-native-sqlite-storage`
19
+ * database.
20
+ *
21
+ * You should use the createReactNativeSqlitePersister function to create an
22
+ * ReactNativeSqlitePersister object.
23
+ *
24
+ * It is a minor extension to the Persister interface and simply provides an
25
+ * extra getDb method for accessing a reference to the database instance the
26
+ * Store is being persisted to.
27
+ * @category Persister
28
+ * @since v6.4.0
29
+ */
30
+ export interface ReactNativeSqlitePersister extends Persister<Persists.StoreOrMergeableStore> {
31
+ /**
32
+ * The getDb method returns a reference to the database instance the Store is
33
+ * being persisted to.
34
+ * @returns A reference to the database instance.
35
+ * @example
36
+ * This example creates a Persister object against a newly-created Store and
37
+ * then gets the database instance back out again.
38
+ *
39
+ * ```js yolo
40
+ * import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
41
+ * import {createStore} from 'tinybase';
42
+ * import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
43
+ *
44
+ * enablePromise(true);
45
+ * const db = await openDatabase({name: 'my.db', location: 'default'});
46
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
47
+ * const persister = createReactNativeSqlitePersister(
48
+ * store,
49
+ * db,
50
+ * 'my_tinybase',
51
+ * );
52
+ * console.log(persister.getDb() == db);
53
+ * // -> true
54
+ *
55
+ * await persister.destroy();
56
+ * ```
57
+ * @category Getter
58
+ * @since v6.4.0
59
+ */
60
+ getDb(): SQLiteDatabase;
61
+ }
62
+
63
+ /**
64
+ * The createReactNativeSqlitePersister function creates an
65
+ * ReactNativeSqlitePersister object that can persist the Store to a local
66
+ * `react-native-sqlite-storage` database.
67
+ *
68
+ * An ReactNativeSqlitePersister supports regular Store objects, and can also be
69
+ * used to persist the metadata of a MergeableStore when using the JSON
70
+ * serialization mode, as described below.
71
+ *
72
+ * As well as providing a reference to the Store to persist, you must provide a
73
+ * `db` parameter which identifies the database instance.
74
+ *
75
+ * **Important note:** the `react-native-sqlite-storage` module must have had
76
+ * promises enabled before the database instance is passed in. Use
77
+ * `SQLite.enablePromise(true)` before initializing the Persister.
78
+ *
79
+ * A database Persister uses one of two modes: either a JSON serialization of
80
+ * the whole Store stored in a single row of a table (the default), or a tabular
81
+ * mapping of Table Ids to database table names and vice-versa).
82
+ *
83
+ * The third argument is a DatabasePersisterConfig object that configures which
84
+ * of those modes to use, and settings for each. If the third argument is simply
85
+ * a string, it is used as the `storeTableName` property of the JSON
86
+ * serialization.
87
+ *
88
+ * See the documentation for the DpcJson and DpcTabular types for more
89
+ * information on how both of those modes can be configured.
90
+ *
91
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
92
+ * values, making tables dense (every Row has every Cell). See the Database
93
+ * Persistence guide for details.
94
+ * @param store The Store or MergeableStore to persist.
95
+ * @param db The database instance that was returned from
96
+ * `await SQLite.openDatabase(...)`.
97
+ * @param configOrStoreTableName A DatabasePersisterConfig to configure the
98
+ * persistence mode (or a string to set the `storeTableName` property of the
99
+ * JSON serialization).
100
+ * @param onSqlCommand An optional handler called every time the Persister
101
+ * executes a SQL command or query. This is suitable for logging persistence
102
+ * behavior in a development environment.
103
+ * @param onIgnoredError An optional handler for the errors that the Persister
104
+ * would otherwise ignore when trying to save or load data. This is suitable for
105
+ * debugging persistence issues in a development environment.
106
+ * @returns A reference to the new ReactNativeSqlitePersister object.
107
+ * @example
108
+ * This example creates a ReactNativeSqlitePersister object and persists the
109
+ * Store to a local SQLite database as a JSON serialization into the
110
+ * `my_tinybase` table. It makes a change to the database directly and then
111
+ * reloads it back into the Store.
112
+ *
113
+ * ```js yolo
114
+ * import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
115
+ * import {createStore} from 'tinybase';
116
+ * import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
117
+ *
118
+ * enablePromise(true);
119
+ * const db = await openDatabase({name: 'my.db', location: 'default'});
120
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
121
+ * const persister = createReactNativeSqlitePersister(
122
+ * store,
123
+ * db,
124
+ * 'my_tinybase',
125
+ * );
126
+ *
127
+ * await persister.save();
128
+ * // Store will be saved to the database.
129
+ *
130
+ * console.log(
131
+ * (await db.executeSql('SELECT * FROM my_tinybase;'))[0].rows.raw(),
132
+ * );
133
+ * // -> [{_id: '_', store: '[{"pets":{"fido":{"species":"dog"}}},{}]'}]
134
+ *
135
+ * await db.executeSql(
136
+ * 'UPDATE my_tinybase SET store = ' +
137
+ * `'[{"pets":{"felix":{"species":"cat"}}},{}]' WHERE _id = '_';`,
138
+ * );
139
+ * await persister.load();
140
+ * console.log(store.getTables());
141
+ * // -> {pets: {felix: {species: 'cat'}}}
142
+ *
143
+ * await persister.destroy();
144
+ * ```
145
+ * @example
146
+ * This example creates a ReactNativeSqlitePersister object and persists the
147
+ * Store to a local SQLite database with tabular mapping.
148
+ *
149
+ * ```js yolo
150
+ * import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
151
+ * import {createStore} from 'tinybase';
152
+ * import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
153
+ *
154
+ * enablePromise(true);
155
+ * const db = await openDatabase({name: 'my.db', location: 'default'});
156
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
157
+ * const persister = createReactNativeSqlitePersister(store, db, {
158
+ * mode: 'tabular',
159
+ * tables: {load: {pets: 'pets'}, save: {pets: 'pets'}},
160
+ * });
161
+ *
162
+ * await persister.save();
163
+ * console.log((await db.executeSql('SELECT * FROM pets;'))[0].rows.raw());
164
+ * // -> [{_id: 'fido', species: 'dog'}]
165
+ *
166
+ * await db.executeSql(
167
+ * `INSERT INTO pets (_id, species) VALUES ('felix', 'cat')`,
168
+ * );
169
+ * await persister.load();
170
+ * console.log(store.getTables());
171
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
172
+ *
173
+ * await persister.destroy();
174
+ * ```
175
+ * @category Creation
176
+ * @since v6.4.0
177
+ */
178
+ export function createReactNativeSqlitePersister(
179
+ store: Store | MergeableStore,
180
+ db: SQLiteDatabase,
181
+ configOrStoreTableName?: DatabasePersisterConfig | string,
182
+ onSqlCommand?: (sql: string, params?: any[]) => void,
183
+ onIgnoredError?: (error: any) => void,
184
+ ): ReactNativeSqlitePersister;
@@ -0,0 +1,207 @@
1
+ /**
2
+ * The persister-react-native-sqlite module of the TinyBase project lets you
3
+ * save and load Store data to and from a SQLite database using the
4
+ * [`react-native-sqlite-storage`](https://github.com/andpor/react-native-sqlite-storage) module (in an appropriate React Native
5
+ * environment).
6
+ * @see Database Persistence guide
7
+ * @packageDocumentation
8
+ * @module persister-react-native-sqlite
9
+ * @since v6.4.0
10
+ */
11
+ import type {SQLiteDatabase} from 'react-native-sqlite-storage';
12
+ import type {MergeableStore} from '../../../mergeable-store/with-schemas/index.d.ts';
13
+ import type {
14
+ OptionalSchemas,
15
+ Store,
16
+ } from '../../../store/with-schemas/index.d.ts';
17
+ import type {
18
+ DatabasePersisterConfig,
19
+ Persister,
20
+ Persists,
21
+ } from '../../with-schemas/index.d.ts';
22
+
23
+ /**
24
+ * The ReactNativeSqlitePersister interface represents a Persister that lets you
25
+ * save and load Store data to and from a `react-native-sqlite-storage`
26
+ * database.
27
+ *
28
+ * You should use the createReactNativeSqlitePersister function to create an
29
+ * ReactNativeSqlitePersister object.
30
+ *
31
+ * It is a minor extension to the Persister interface and simply provides an
32
+ * extra getDb method for accessing a reference to the database instance the
33
+ * Store is being persisted to.
34
+ * @category Persister
35
+ * @since v6.4.0
36
+ */
37
+ export interface ReactNativeSqlitePersister<
38
+ Schemas extends OptionalSchemas,
39
+ > extends Persister<Schemas, Persists.StoreOrMergeableStore> {
40
+ /**
41
+ * The getDb method returns a reference to the database instance the Store is
42
+ * being persisted to.
43
+ * @returns A reference to the database instance.
44
+ * @example
45
+ * This example creates a Persister object against a newly-created Store and
46
+ * then gets the database instance back out again.
47
+ *
48
+ * ```js yolo
49
+ * import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
50
+ * import {createStore} from 'tinybase';
51
+ * import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
52
+ *
53
+ * enablePromise(true);
54
+ * const db = await openDatabase({name: 'my.db', location: 'default'});
55
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
56
+ * const persister = createReactNativeSqlitePersister(
57
+ * store,
58
+ * db,
59
+ * 'my_tinybase',
60
+ * );
61
+ * console.log(persister.getDb() == db);
62
+ * // -> true
63
+ *
64
+ * await persister.destroy();
65
+ * ```
66
+ * @category Getter
67
+ * @since v6.4.0
68
+ */
69
+ getDb(): SQLiteDatabase;
70
+ }
71
+
72
+ /**
73
+ * The createReactNativeSqlitePersister function creates an
74
+ * ReactNativeSqlitePersister object that can persist the Store to a local
75
+ * `react-native-sqlite-storage` database.
76
+ *
77
+ * This has schema-based typing. The following is a simplified representation:
78
+ *
79
+ * ```ts override
80
+ * createReactNativeSqlitePersister(
81
+ * store: Store | MergeableStore,
82
+ * db: SQLiteDatabase,
83
+ * configOrStoreTableName?: DatabasePersisterConfig | string,
84
+ * onSqlCommand?: (sql: string, params?: any[]) => void,
85
+ * onIgnoredError?: (error: any) => void,
86
+ * ): ReactNativeSqlitePersister;
87
+ * ```
88
+ *
89
+ * An ReactNativeSqlitePersister supports regular Store objects, and can also be
90
+ * used to persist the metadata of a MergeableStore when using the JSON
91
+ * serialization mode, as described below.
92
+ *
93
+ * As well as providing a reference to the Store to persist, you must provide a
94
+ * `db` parameter which identifies the database instance.
95
+ *
96
+ * **Important note:** the `react-native-sqlite-storage` module must have had
97
+ * promises enabled before the database instance is passed in. Use
98
+ * `SQLite.enablePromise(true)` before initializing the Persister.
99
+ *
100
+ * A database Persister uses one of two modes: either a JSON serialization of
101
+ * the whole Store stored in a single row of a table (the default), or a tabular
102
+ * mapping of Table Ids to database table names and vice-versa).
103
+ *
104
+ * The third argument is a DatabasePersisterConfig object that configures which
105
+ * of those modes to use, and settings for each. If the third argument is simply
106
+ * a string, it is used as the `storeTableName` property of the JSON
107
+ * serialization.
108
+ *
109
+ * See the documentation for the DpcJson and DpcTabular types for more
110
+ * information on how both of those modes can be configured.
111
+ *
112
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
113
+ * values, making tables dense (every Row has every Cell). See the Database
114
+ * Persistence guide for details.
115
+ * @param store The Store or MergeableStore to persist.
116
+ * @param db The database instance that was returned from
117
+ * `await SQLite.openDatabase(...)`.
118
+ * @param configOrStoreTableName A DatabasePersisterConfig to configure the
119
+ * persistence mode (or a string to set the `storeTableName` property of the
120
+ * JSON serialization).
121
+ * @param onSqlCommand An optional handler called every time the Persister
122
+ * executes a SQL command or query. This is suitable for logging persistence
123
+ * behavior in a development environment.
124
+ * @param onIgnoredError An optional handler for the errors that the Persister
125
+ * would otherwise ignore when trying to save or load data. This is suitable for
126
+ * debugging persistence issues in a development environment.
127
+ * @returns A reference to the new ReactNativeSqlitePersister object.
128
+ * @example
129
+ * This example creates a ReactNativeSqlitePersister object and persists the
130
+ * Store to a local SQLite database as a JSON serialization into the
131
+ * `my_tinybase` table. It makes a change to the database directly and then
132
+ * reloads it back into the Store.
133
+ *
134
+ * ```js yolo
135
+ * import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
136
+ * import {createStore} from 'tinybase';
137
+ * import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
138
+ *
139
+ * enablePromise(true);
140
+ * const db = await openDatabase({name: 'my.db', location: 'default'});
141
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
142
+ * const persister = createReactNativeSqlitePersister(
143
+ * store,
144
+ * db,
145
+ * 'my_tinybase',
146
+ * );
147
+ *
148
+ * await persister.save();
149
+ * // Store will be saved to the database.
150
+ *
151
+ * console.log(
152
+ * (await db.executeSql('SELECT * FROM my_tinybase;'))[0].rows.raw(),
153
+ * );
154
+ * // -> [{_id: '_', store: '[{"pets":{"fido":{"species":"dog"}}},{}]'}]
155
+ *
156
+ * await db.executeSql(
157
+ * 'UPDATE my_tinybase SET store = ' +
158
+ * `'[{"pets":{"felix":{"species":"cat"}}},{}]' WHERE _id = '_';`,
159
+ * );
160
+ * await persister.load();
161
+ * console.log(store.getTables());
162
+ * // -> {pets: {felix: {species: 'cat'}}}
163
+ *
164
+ * await persister.destroy();
165
+ * ```
166
+ * @example
167
+ * This example creates a ReactNativeSqlitePersister object and persists the
168
+ * Store to a local SQLite database with tabular mapping.
169
+ *
170
+ * ```js yolo
171
+ * import {enablePromise, openDatabase} from 'react-native-sqlite-storage';
172
+ * import {createStore} from 'tinybase';
173
+ * import {createReactNativeSqlitePersister} from 'tinybase/persisters/persister-react-native-sqlite';
174
+ *
175
+ * enablePromise(true);
176
+ * const db = await openDatabase({name: 'my.db', location: 'default'});
177
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
178
+ * const persister = createReactNativeSqlitePersister(store, db, {
179
+ * mode: 'tabular',
180
+ * tables: {load: {pets: 'pets'}, save: {pets: 'pets'}},
181
+ * });
182
+ *
183
+ * await persister.save();
184
+ * console.log((await db.executeSql('SELECT * FROM pets;'))[0].rows.raw());
185
+ * // -> [{_id: 'fido', species: 'dog'}]
186
+ *
187
+ * await db.executeSql(
188
+ * `INSERT INTO pets (_id, species) VALUES ('felix', 'cat')`,
189
+ * );
190
+ * await persister.load();
191
+ * console.log(store.getTables());
192
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
193
+ *
194
+ * await persister.destroy();
195
+ * ```
196
+ * @category Creation
197
+ * @since v6.4.0
198
+ */
199
+ export function createReactNativeSqlitePersister<
200
+ Schemas extends OptionalSchemas,
201
+ >(
202
+ store: Store<Schemas> | MergeableStore<Schemas>,
203
+ db: SQLiteDatabase,
204
+ configOrStoreTableName?: DatabasePersisterConfig<Schemas> | string,
205
+ onSqlCommand?: (sql: string, params?: any[]) => void,
206
+ onIgnoredError?: (error: any) => void,
207
+ ): ReactNativeSqlitePersister<Schemas>;
@@ -24,8 +24,9 @@ import type {Persister} from '../../with-schemas/index.d.ts';
24
24
  * @category Persister
25
25
  * @since v4.3.14
26
26
  */
27
- export interface RemotePersister<Schemas extends OptionalSchemas>
28
- extends Persister<Schemas> {
27
+ export interface RemotePersister<
28
+ Schemas extends OptionalSchemas,
29
+ > extends Persister<Schemas> {
29
30
  /**
30
31
  * The getUrls method returns the URLs the Store is being persisted to.
31
32
  * @returns The load and save URLs as a two-item array.
@@ -25,8 +25,7 @@ import type {DatabasePersisterConfig, Persister, Persists} from '../index.d.ts';
25
25
  * @category Persister
26
26
  * @since v6.1.0
27
27
  */
28
- export interface SqliteBunPersister
29
- extends Persister<Persists.StoreOrMergeableStore> {
28
+ export interface SqliteBunPersister extends Persister<Persists.StoreOrMergeableStore> {
30
29
  /**
31
30
  * The getDb method returns a reference to the database instance the Store is
32
31
  * being persisted to.
@@ -77,6 +76,10 @@ export interface SqliteBunPersister
77
76
  *
78
77
  * See the documentation for the DpcJson and DpcTabular types for more
79
78
  * information on how both of those modes can be configured.
79
+ *
80
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
81
+ * values, making tables dense (every Row has every Cell). See the Database
82
+ * Persistence guide for details.
80
83
  * @param store The Store or MergeableStore to persist.
81
84
  * @param db The database instance that was returned from `new Database(...)`.
82
85
  * @param configOrStoreTableName A DatabasePersisterConfig to configure the
@@ -32,8 +32,9 @@ import type {
32
32
  * @category Persister
33
33
  * @since v6.1.0
34
34
  */
35
- export interface SqliteBunPersister<Schemas extends OptionalSchemas>
36
- extends Persister<Schemas, Persists.StoreOrMergeableStore> {
35
+ export interface SqliteBunPersister<
36
+ Schemas extends OptionalSchemas,
37
+ > extends Persister<Schemas, Persists.StoreOrMergeableStore> {
37
38
  /**
38
39
  * The getDb method returns a reference to the database instance the Store is
39
40
  * being persisted to.
@@ -96,6 +97,10 @@ export interface SqliteBunPersister<Schemas extends OptionalSchemas>
96
97
  *
97
98
  * See the documentation for the DpcJson and DpcTabular types for more
98
99
  * information on how both of those modes can be configured.
100
+ *
101
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
102
+ * values, making tables dense (every Row has every Cell). See the Database
103
+ * Persistence guide for details.
99
104
  * @param store The Store or MergeableStore to persist.
100
105
  * @param db The database instance that was returned from `new Database(...)`.
101
106
  * @param configOrStoreTableName A DatabasePersisterConfig to configure the
@@ -24,8 +24,7 @@ import type {DatabasePersisterConfig, Persister, Persists} from '../index.d.ts';
24
24
  * @category Persister
25
25
  * @since v4.3.14
26
26
  */
27
- export interface SqliteWasmPersister
28
- extends Persister<Persists.StoreOrMergeableStore> {
27
+ export interface SqliteWasmPersister extends Persister<Persists.StoreOrMergeableStore> {
29
28
  /**
30
29
  * The getDb method returns a reference to the database instance the Store is
31
30
  * being persisted to.
@@ -83,6 +82,10 @@ export interface SqliteWasmPersister
83
82
  *
84
83
  * See the documentation for the DpcJson and DpcTabular types for more
85
84
  * information on how both of those modes can be configured.
85
+ *
86
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
87
+ * values, making tables dense (every Row has every Cell). See the Database
88
+ * Persistence guide for details.
86
89
  * @param store The Store or MergeableStore to persist.
87
90
  * @param sqlite3 The WASM module that was returned from `sqlite3InitModule`.
88
91
  * @param db The database instance that was returned from `new
@@ -163,6 +166,7 @@ export interface SqliteWasmPersister
163
166
  * await persister.destroy();
164
167
  * ```
165
168
  * @category Creation
169
+ * @essential Persisting stores
166
170
  * @since v4.0.0
167
171
  */
168
172
  export function createSqliteWasmPersister(
@@ -31,8 +31,9 @@ import type {
31
31
  * @category Persister
32
32
  * @since v4.3.14
33
33
  */
34
- export interface SqliteWasmPersister<Schemas extends OptionalSchemas>
35
- extends Persister<Schemas, Persists.StoreOrMergeableStore> {
34
+ export interface SqliteWasmPersister<
35
+ Schemas extends OptionalSchemas,
36
+ > extends Persister<Schemas, Persists.StoreOrMergeableStore> {
36
37
  /**
37
38
  * The getDb method returns a reference to the database instance the Store is
38
39
  * being persisted to.
@@ -103,6 +104,10 @@ export interface SqliteWasmPersister<Schemas extends OptionalSchemas>
103
104
  *
104
105
  * See the documentation for the DpcJson and DpcTabular types for more
105
106
  * information on how both of those modes can be configured.
107
+ *
108
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
109
+ * values, making tables dense (every Row has every Cell). See the Database
110
+ * Persistence guide for details.
106
111
  * @param store The Store or MergeableStore to persist.
107
112
  * @param sqlite3 The WASM module that was returned from `sqlite3InitModule`.
108
113
  * @param db The database instance that was returned from `new
@@ -183,6 +188,7 @@ export interface SqliteWasmPersister<Schemas extends OptionalSchemas>
183
188
  * await persister.destroy();
184
189
  * ```
185
190
  * @category Creation
191
+ * @essential Persisting stores
186
192
  * @since v4.0.0
187
193
  */
188
194
  export function createSqliteWasmPersister<Schemas extends OptionalSchemas>(
@@ -25,8 +25,7 @@ import type {DatabasePersisterConfig, Persister, Persists} from '../index.d.ts';
25
25
  * @category Persister
26
26
  * @since v4.3.14
27
27
  */
28
- export interface Sqlite3Persister
29
- extends Persister<Persists.StoreOrMergeableStore> {
28
+ export interface Sqlite3Persister extends Persister<Persists.StoreOrMergeableStore> {
30
29
  /**
31
30
  * The getDb method returns a reference to the database instance the Store is
32
31
  * being persisted to.
@@ -77,6 +76,10 @@ export interface Sqlite3Persister
77
76
  *
78
77
  * See the documentation for the DpcJson and DpcTabular types for more
79
78
  * information on how both of those modes can be configured.
79
+ *
80
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
81
+ * values, making tables dense (every Row has every Cell). See the Database
82
+ * Persistence guide for details.
80
83
  * @param store The Store or MergeableStore to persist.
81
84
  * @param db The database instance that was returned from `new
82
85
  * sqlite3.Database(...)`.
@@ -32,8 +32,9 @@ import type {
32
32
  * @category Persister
33
33
  * @since v4.3.14
34
34
  */
35
- export interface Sqlite3Persister<Schemas extends OptionalSchemas>
36
- extends Persister<Schemas, Persists.StoreOrMergeableStore> {
35
+ export interface Sqlite3Persister<
36
+ Schemas extends OptionalSchemas,
37
+ > extends Persister<Schemas, Persists.StoreOrMergeableStore> {
37
38
  /**
38
39
  * The getDb method returns a reference to the database instance the Store is
39
40
  * being persisted to.
@@ -96,6 +97,10 @@ export interface Sqlite3Persister<Schemas extends OptionalSchemas>
96
97
  *
97
98
  * See the documentation for the DpcJson and DpcTabular types for more
98
99
  * information on how both of those modes can be configured.
100
+ *
101
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
102
+ * values, making tables dense (every Row has every Cell). See the Database
103
+ * Persistence guide for details.
99
104
  * @param store The Store or MergeableStore to persist.
100
105
  * @param db The database instance that was returned from `new
101
106
  * sqlite3.Database(...)`.
@@ -30,8 +30,9 @@ import type {Persister} from '../../with-schemas/index.d.ts';
30
30
  * @category Persister
31
31
  * @since v4.3.14
32
32
  */
33
- export interface YjsPersister<Schemas extends OptionalSchemas>
34
- extends Persister<Schemas> {
33
+ export interface YjsPersister<
34
+ Schemas extends OptionalSchemas,
35
+ > extends Persister<Schemas> {
35
36
  /**
36
37
  * The getYDoc method returns the Yjs document the Store is being persisted
37
38
  * to.
@@ -13,15 +13,18 @@
13
13
  * |-|-|-|-|
14
14
  * |SessionPersister|Browser session storage|Yes|Yes
15
15
  * |LocalPersister|Browser local storage|Yes|Yes
16
+ * |OpfsPersister|Browser origin private file system (OPFS)|Yes|Yes
16
17
  * |FilePersister|Local file (where possible)|Yes|Yes
17
18
  * |IndexedDbPersister|Browser IndexedDB|Yes|No
18
19
  * |RemotePersister|Remote server|Yes|No
20
+ * |ReactNativeMmkvPersister|MMKV in React Native, via [react-native-mmkv](https://github.com/mrousavy/react-native-mmkv)|Yes|Yes
19
21
  * |DurableObjectStoragePersister|Cloudflare Durable Object (KV)|No|Yes
20
22
  * |DurableObjectSqlStoragePersister|Cloudflare Durable Object (SQLite)|No|Yes
21
23
  * |Sqlite3Persister|SQLite in Node, via [sqlite3](https://github.com/TryGhost/node-sqlite3)|Yes|Yes*
22
24
  * |SqliteBunPersister| SQLite in Bun, via [bun:sqlite](https://bun.sh/docs/api/sqlite)|Yes|Yes*
23
25
  * |SqliteWasmPersister|SQLite in a browser, via [sqlite-wasm](https://github.com/tomayac/sqlite-wasm)|Yes|Yes*
24
26
  * |ExpoSqlitePersister|SQLite in React Native, via [expo-sqlite](https://github.com/expo/expo/tree/main/packages/expo-sqlite)|Yes|Yes*
27
+ * |ReactNativeSqlitePersister|SQLite in React Native, via [react-native-sqlite-storage](https://github.com/andpor/react-native-sqlite-storage)|Yes|Yes*
25
28
  * |PostgresPersister|PostgreSQL, via [postgres](https://github.com/porsager/postgres)|Yes|Yes*
26
29
  * |PglitePersister|PostgreSQL, via [PGlite](https://github.com/electric-sql/pglite)|Yes|Yes*
27
30
  * |CrSqliteWasmPersister|SQLite CRDTs, via [cr-sqlite-wasm](https://github.com/vlcn-io/cr-sqlite)|Yes|No
@@ -1031,6 +1034,7 @@ export type DpcTabularValues = {
1031
1034
  * sessionStorage.clear();
1032
1035
  * ```
1033
1036
  * @category Persister
1037
+ * @essential Persisting stores
1034
1038
  * @since v1.0.0
1035
1039
  */
1036
1040
  export interface Persister<
@@ -77,7 +77,7 @@ export type ResultRow = {[cellId: Id]: ResultCell};
77
77
  * @category Result
78
78
  * @since v2.0.0
79
79
  */
80
- export type ResultCell = string | number | boolean;
80
+ export type ResultCell = string | number | boolean | null;
81
81
 
82
82
  /**
83
83
  * The ResultCellOrUndefined type is the data structure representing a single
@@ -766,10 +766,8 @@ export type GetTableCell<
766
766
  */
767
767
  <
768
768
  JoinedTableId extends TableIdFromSchema<Schema> | Id,
769
- JoinedCellId extends JoinedCellIdOrId<
770
- Schema,
771
- JoinedTableId
772
- > = JoinedCellIdOrId<Schema, JoinedTableId>,
769
+ JoinedCellId extends JoinedCellIdOrId<Schema, JoinedTableId> =
770
+ JoinedCellIdOrId<Schema, JoinedTableId>,
773
771
  >(
774
772
  joinedTableId: JoinedTableId,
775
773
  joinedCellId: JoinedCellId,
@@ -1476,10 +1474,8 @@ export type Where<
1476
1474
  */
1477
1475
  <
1478
1476
  JoinedTableId extends TableIdFromSchema<Schema> | Id,
1479
- JoinedCellId extends JoinedCellIdOrId<
1480
- Schema,
1481
- JoinedTableId
1482
- > = JoinedCellIdOrId<Schema, JoinedTableId>,
1477
+ JoinedCellId extends JoinedCellIdOrId<Schema, JoinedTableId> =
1478
+ JoinedCellIdOrId<Schema, JoinedTableId>,
1483
1479
  JoinedCell extends Cell<Schema, JoinedTableId, JoinedCellId> = Cell<
1484
1480
  Schema,
1485
1481
  JoinedTableId,