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
@@ -65,7 +65,7 @@ export type Callback = () => void;
65
65
  * @category Parameter
66
66
  * @since v1.0.0
67
67
  */
68
- export type SortKey = string | number | boolean;
68
+ export type SortKey = string | number | boolean | null;
69
69
 
70
70
  /**
71
71
  * The GetNow type is used to represent a function that returns the current time
@@ -887,7 +887,7 @@ export interface MergeableStore extends Store {
887
887
  *
888
888
  * store.applyMergeableChanges([
889
889
  * [{pets: [{fido: [{color: ['black', 'Nn1JUF----2FnHIC']}]}]}],
890
- * [{open: [null, 'Nn1JUF----3FnHIC']}],
890
+ * [{open: [undefined, 'Nn1JUF----3FnHIC']}],
891
891
  * 1,
892
892
  * ]);
893
893
  * console.log(store.getTables());
@@ -1115,6 +1115,7 @@ export interface MergeableStore extends Store {
1115
1115
  * ];
1116
1116
  * ```
1117
1117
  * @category Creation
1118
+ * @essential Creating stores
1118
1119
  * @since v5.0.0
1119
1120
  */
1120
1121
  export function createMergeableStore(
@@ -436,8 +436,9 @@ export type MergeableChanges<
436
436
  * @category Mergeable
437
437
  * @since v5.0.0
438
438
  */
439
- export interface MergeableStore<Schemas extends OptionalSchemas>
440
- extends Store<Schemas> {
439
+ export interface MergeableStore<
440
+ Schemas extends OptionalSchemas,
441
+ > extends Store<Schemas> {
441
442
  //
442
443
  /**
443
444
  * The getMergeableContent method returns the full content of a
@@ -1148,7 +1149,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
1148
1149
  *
1149
1150
  * store.applyMergeableChanges([
1150
1151
  * [{pets: [{fido: [{color: ['black', 'Nn1JUF----2FnHIC']}]}]}],
1151
- * [{open: [null, 'Nn1JUF----3FnHIC']}],
1152
+ * [{open: [undefined, 'Nn1JUF----3FnHIC']}],
1152
1153
  * 1,
1153
1154
  * ]);
1154
1155
  * console.log(store.getTables());
@@ -1607,6 +1608,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
1607
1608
  * ];
1608
1609
  * ```
1609
1610
  * @category Creation
1611
+ * @essential Creating stores
1610
1612
  * @since v5.0.0
1611
1613
  */
1612
1614
  export function createMergeableStore(
@@ -35,6 +35,8 @@ export * from '../persisters/persister-partykit-server/index.d.ts';
35
35
  export * from '../persisters/persister-pglite/index.d.ts';
36
36
  export * from '../persisters/persister-postgres/index.d.ts';
37
37
  export * from '../persisters/persister-powersync/index.d.ts';
38
+ export * from '../persisters/persister-react-native-mmkv/index.d.ts';
39
+ export * from '../persisters/persister-react-native-sqlite/index.d.ts';
38
40
  export * from '../persisters/persister-remote/index.d.ts';
39
41
  export * from '../persisters/persister-sqlite-bun/index.d.ts';
40
42
  export * from '../persisters/persister-sqlite-wasm/index.d.ts';
@@ -34,6 +34,8 @@ export * from '../../persisters/persister-partykit-server/with-schemas/index.d.t
34
34
  export * from '../../persisters/persister-pglite/with-schemas/index.d.ts';
35
35
  export * from '../../persisters/persister-postgres/with-schemas/index.d.ts';
36
36
  export * from '../../persisters/persister-powersync/with-schemas/index.d.ts';
37
+ export * from '../../persisters/persister-react-native-mmkv/with-schemas/index.d.ts';
38
+ export * from '../../persisters/persister-react-native-sqlite/with-schemas/index.d.ts';
37
39
  export * from '../../persisters/persister-remote/with-schemas/index.d.ts';
38
40
  export * from '../../persisters/persister-sqlite-bun/with-schemas/index.d.ts';
39
41
  export * from '../../persisters/persister-sqlite-wasm/with-schemas/index.d.ts';
@@ -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
@@ -956,6 +959,7 @@ export type DpcTabularValues = {
956
959
  * sessionStorage.clear();
957
960
  * ```
958
961
  * @category Persister
962
+ * @essential Persisting stores
959
963
  * @since v1.0.0
960
964
  */
961
965
  export interface Persister<Persist extends Persists = Persists.StoreOnly> {
@@ -89,7 +89,7 @@ export interface AutomergePersister extends Persister {
89
89
  * await persister.save();
90
90
  * // Store will be saved to the document.
91
91
  *
92
- * console.log(await docHandler.doc());
92
+ * console.log(docHandler.doc());
93
93
  * // -> {tinybase: {t: {pets: {fido: {species: 'dog'}}}, v: {}}}
94
94
  *
95
95
  * await persister.destroy();
@@ -110,7 +110,6 @@ export interface AutomergePersister extends Persister {
110
110
  * network: [new BroadcastChannelNetworkAdapter()],
111
111
  * });
112
112
  * const docHandler1 = repo1.create();
113
- * await docHandler1.doc();
114
113
  * const store1 = createStore();
115
114
  * const persister1 = createAutomergePersister(store1, docHandler1);
116
115
  * await persister1.startAutoLoad();
@@ -120,8 +119,7 @@ export interface AutomergePersister extends Persister {
120
119
  * const repo2 = new Repo({
121
120
  * network: [new BroadcastChannelNetworkAdapter()],
122
121
  * });
123
- * const docHandler2 = repo2.find(docHandler1.documentId);
124
- * await docHandler2.doc();
122
+ * const docHandler2 = await repo2.find(docHandler1.documentId);
125
123
  * const store2 = createStore();
126
124
  * const persister2 = createAutomergePersister(store2, docHandler2);
127
125
  * await persister2.startAutoLoad();
@@ -131,8 +129,8 @@ export interface AutomergePersister extends Persister {
131
129
  * // with each other, merely for the purposes of sequentiality in this example.
132
130
  * const syncDocsWait = async () => {
133
131
  * await new Promise((resolve) => setTimeout(() => resolve(0), 100));
134
- * await docHandler1.doc();
135
- * await docHandler2.doc();
132
+ * docHandler1.doc();
133
+ * docHandler2.doc();
136
134
  * };
137
135
  *
138
136
  * // Wait for the documents to synchronize in their initial state.
@@ -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 AutomergePersister<Schemas extends OptionalSchemas>
34
- extends Persister<Schemas> {
33
+ export interface AutomergePersister<
34
+ Schemas extends OptionalSchemas,
35
+ > extends Persister<Schemas> {
35
36
  /**
36
37
  * The getDocHandle method returns the Automerge document handler the Store is
37
38
  * being persisted to.
@@ -104,7 +105,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
104
105
  * await persister.save();
105
106
  * // Store will be saved to the document.
106
107
  *
107
- * console.log(await docHandler.doc());
108
+ * console.log(docHandler.doc());
108
109
  * // -> {tinybase: {t: {pets: {fido: {species: 'dog'}}}, v: {}}}
109
110
  *
110
111
  * await persister.destroy();
@@ -125,7 +126,6 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
125
126
  * network: [new BroadcastChannelNetworkAdapter()],
126
127
  * });
127
128
  * const docHandler1 = repo1.create();
128
- * await docHandler1.doc();
129
129
  * const store1 = createStore();
130
130
  * const persister1 = createAutomergePersister(store1, docHandler1);
131
131
  * await persister1.startAutoLoad();
@@ -135,8 +135,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
135
135
  * const repo2 = new Repo({
136
136
  * network: [new BroadcastChannelNetworkAdapter()],
137
137
  * });
138
- * const docHandler2 = repo2.find(docHandler1.documentId);
139
- * await docHandler2.doc();
138
+ * const docHandler2 = await repo2.find(docHandler1.documentId);
140
139
  * const store2 = createStore();
141
140
  * const persister2 = createAutomergePersister(store2, docHandler2);
142
141
  * await persister2.startAutoLoad();
@@ -146,8 +145,8 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
146
145
  * // with each other, merely for the purposes of sequentiality in this example.
147
146
  * const syncDocsWait = async () => {
148
147
  * await new Promise((resolve) => setTimeout(() => resolve(0), 100));
149
- * await docHandler1.doc();
150
- * await docHandler2.doc();
148
+ * docHandler1.doc();
149
+ * docHandler2.doc();
151
150
  * };
152
151
  *
153
152
  * // Wait for the documents to synchronize in their initial state.
@@ -1,14 +1,17 @@
1
1
  /**
2
2
  * The persister-browser module of the TinyBase project lets you save and load
3
- * Store data to and from browser storage.
3
+ * Store data to and from browser storage, including the origin private file
4
+ * system (OPFS).
4
5
  *
5
- * Two entry points are provided, each of which returns a new Persister object
6
+ * Three entry points are provided, each of which returns a new Persister object
6
7
  * that can load and save a Store:
7
8
  *
8
9
  * - The createSessionPersister function returns a Persister that uses the
9
10
  * browser's session storage.
10
11
  * - The createLocalPersister function returns a Persister that uses the
11
12
  * browser's local storage.
13
+ * - The createOpfsPersister function returns a Persister that uses a file in
14
+ * an origin private file system (OPFS).
12
15
  * @see Persistence guides
13
16
  * @packageDocumentation
14
17
  * @module persister-browser
@@ -31,8 +34,7 @@ import type {Persister, Persists} from '../index.d.ts';
31
34
  * @category Persister
32
35
  * @since v4.3.14
33
36
  */
34
- export interface SessionPersister
35
- extends Persister<Persists.StoreOrMergeableStore> {
37
+ export interface SessionPersister extends Persister<Persists.StoreOrMergeableStore> {
36
38
  /**
37
39
  * The getStorageName method returns the unique key of the storage location
38
40
  * the Store is being persisted to.
@@ -72,8 +74,7 @@ export interface SessionPersister
72
74
  * @category Persister
73
75
  * @since v4.3.14
74
76
  */
75
- export interface LocalPersister
76
- extends Persister<Persists.StoreOrMergeableStore> {
77
+ export interface LocalPersister extends Persister<Persists.StoreOrMergeableStore> {
77
78
  /**
78
79
  * The getStorageName method returns the unique key of the storage location
79
80
  * the Store is being persisted to.
@@ -134,6 +135,7 @@ export interface LocalPersister
134
135
  * sessionStorage.clear();
135
136
  * ```
136
137
  * @category Creation
138
+ * @essential Persisting stores
137
139
  * @since v1.0.0
138
140
  */
139
141
  export function createSessionPersister(
@@ -176,6 +178,7 @@ export function createSessionPersister(
176
178
  * localStorage.clear();
177
179
  * ```
178
180
  * @category Creation
181
+ * @essential Persisting stores
179
182
  * @since v1.0.0
180
183
  */
181
184
  export function createLocalPersister(
@@ -183,3 +186,91 @@ export function createLocalPersister(
183
186
  storageName: string,
184
187
  onIgnoredError?: (error: any) => void,
185
188
  ): LocalPersister;
189
+
190
+ /**
191
+ * The OpfsPersister interface represents a Persister that lets you save and
192
+ * load Store data to and from a file in an origin private file system (OPFS).
193
+ *
194
+ * You should use the createOpfsPersister function to create an OpfsPersister
195
+ * object.
196
+ *
197
+ * It is a minor extension to the Persister interface and simply provides an
198
+ * extra getHandle method for accessing the file the Store is being
199
+ * persisted to.
200
+ * @category Persister
201
+ * @since v6.7.0
202
+ */
203
+ export interface OpfsPersister extends Persister<Persists.StoreOrMergeableStore> {
204
+ /**
205
+ * The getHandle method returns the handle of the file the Store is being
206
+ * persisted to.
207
+ * @returns The handle of the file.
208
+ * @example
209
+ * This example creates a Persister object against a newly-created Store and
210
+ * then gets the file handle back out again.
211
+ *
212
+ * ```js
213
+ * import {createStore} from 'tinybase';
214
+ * import {createOpfsPersister} from 'tinybase/persisters/persister-browser';
215
+ *
216
+ * const opfs = await navigator.storage.getDirectory();
217
+ * const handle = await opfs.getFileHandle('tinybase.json', {create: true});
218
+ *
219
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
220
+ * const persister = createOpfsPersister(store, handle);
221
+ *
222
+ * console.log(persister.getHandle().name);
223
+ * // -> 'tinybase.json'
224
+ *
225
+ * await persister.destroy();
226
+ * ```
227
+ * @category Getter
228
+ * @since v6.7.0
229
+ */
230
+ getHandle(): FileSystemFileHandle;
231
+ }
232
+
233
+ /**
234
+ * The createOpfsPersister function creates an OpfsPersister object that can
235
+ * persist the Store to a file in an origin private file system (OPFS).
236
+ *
237
+ * An OpfsPersister supports both regular Store and MergeableStore objects.
238
+ *
239
+ * As well as providing a reference to the Store to persist, you must provide a
240
+ * `handle` parameter which identifies an existing OPFS file to persist it to.
241
+ * @param store The Store or MergeableStore to persist.
242
+ * @param handle The handle of an existing OPFS file to persist the Store to.
243
+ * @param onIgnoredError An optional handler for the errors that the Persister
244
+ * would otherwise ignore when trying to save or load data. This is suitable for
245
+ * debugging persistence issues in a development environment.
246
+ * @returns A reference to the new OpfsPersister object.
247
+ * @example
248
+ * This example creates an OpfsPersister object and persists the Store to a
249
+ * local file.
250
+ *
251
+ * ```js
252
+ * import {createStore} from 'tinybase';
253
+ * import {createOpfsPersister} from 'tinybase/persisters/persister-browser';
254
+ *
255
+ * const opfs = await navigator.storage.getDirectory();
256
+ * const handle = await opfs.getFileHandle('tinybase.json', {create: true});
257
+ *
258
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
259
+ * const persister = createOpfsPersister(store, handle);
260
+ *
261
+ * await persister.save();
262
+ * // Store JSON will be saved to the file.
263
+ *
264
+ * await persister.load();
265
+ * // Store JSON will be loaded from the file.
266
+ *
267
+ * await persister.destroy();
268
+ * ```
269
+ * @category Creation
270
+ * @since v6.7.0
271
+ */
272
+ export function createOpfsPersister(
273
+ store: Store | MergeableStore,
274
+ handle: FileSystemFileHandle,
275
+ onIgnoredError?: (error: any) => void,
276
+ ): OpfsPersister;
@@ -1,14 +1,17 @@
1
1
  /**
2
2
  * The persister-browser module of the TinyBase project lets you save and load
3
- * Store data to and from browser storage.
3
+ * Store data to and from browser storage, including the origin private file
4
+ * system (OPFS).
4
5
  *
5
- * Two entry points are provided, each of which returns a new Persister object
6
+ * Three entry points are provided, each of which returns a new Persister object
6
7
  * that can load and save a Store:
7
8
  *
8
9
  * - The createSessionPersister function returns a Persister that uses the
9
10
  * browser's session storage.
10
11
  * - The createLocalPersister function returns a Persister that uses the
11
12
  * browser's local storage.
13
+ * - The createOpfsPersister function returns a Persister that uses a file in
14
+ * an origin private file system (OPFS).
12
15
  * @see Persistence guides
13
16
  * @packageDocumentation
14
17
  * @module persister-browser
@@ -34,8 +37,9 @@ import type {Persister, Persists} from '../../with-schemas/index.d.ts';
34
37
  * @category Persister
35
38
  * @since v4.3.14
36
39
  */
37
- export interface SessionPersister<Schemas extends OptionalSchemas>
38
- extends Persister<Schemas, Persists.StoreOrMergeableStore> {
40
+ export interface SessionPersister<
41
+ Schemas extends OptionalSchemas,
42
+ > extends Persister<Schemas, Persists.StoreOrMergeableStore> {
39
43
  /**
40
44
  * The getStorageName method returns the unique key of the storage location
41
45
  * the Store is being persisted to.
@@ -75,8 +79,9 @@ export interface SessionPersister<Schemas extends OptionalSchemas>
75
79
  * @category Persister
76
80
  * @since v4.3.14
77
81
  */
78
- export interface LocalPersister<Schemas extends OptionalSchemas>
79
- extends Persister<Schemas, Persists.StoreOrMergeableStore> {
82
+ export interface LocalPersister<
83
+ Schemas extends OptionalSchemas,
84
+ > extends Persister<Schemas, Persists.StoreOrMergeableStore> {
80
85
  /**
81
86
  * The getStorageName method returns the unique key of the storage location
82
87
  * the Store is being persisted to.
@@ -103,6 +108,51 @@ export interface LocalPersister<Schemas extends OptionalSchemas>
103
108
  getStorageName(): string;
104
109
  }
105
110
 
111
+ /**
112
+ * The OpfsPersister interface represents a Persister that lets you save and
113
+ * load Store data to and from a file in an origin private file system (OPFS).
114
+ *
115
+ * You should use the createOpfsPersister function to create an OpfsPersister
116
+ * object.
117
+ *
118
+ * It is a minor extension to the Persister interface and simply provides an
119
+ * extra getHandle method for accessing the file the Store is being
120
+ * persisted to.
121
+ * @category Persister
122
+ * @since v6.7.0
123
+ */
124
+ export interface OpfsPersister<
125
+ Schemas extends OptionalSchemas,
126
+ > extends Persister<Schemas, Persists.StoreOrMergeableStore> {
127
+ /**
128
+ * The getHandle method returns the handle of the file the Store is being
129
+ * persisted to.
130
+ * @returns The handle of the file.
131
+ * @example
132
+ * This example creates a Persister object against a newly-created Store and
133
+ * then gets the file handle back out again.
134
+ *
135
+ * ```js
136
+ * import {createStore} from 'tinybase';
137
+ * import {createOpfsPersister} from 'tinybase/persisters/persister-browser';
138
+ *
139
+ * const opfs = await navigator.storage.getDirectory();
140
+ * const handle = await opfs.getFileHandle('tinybase.json', {create: true});
141
+ *
142
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
143
+ * const persister = createOpfsPersister(store, handle);
144
+ *
145
+ * console.log(persister.getHandle().name);
146
+ * // -> 'tinybase.json'
147
+ *
148
+ * await persister.destroy();
149
+ * ```
150
+ * @category Getter
151
+ * @since v6.7.0
152
+ */
153
+ getHandle(): string;
154
+ }
155
+
106
156
  /**
107
157
  * The createSessionPersister function creates a SessionPersister object that
108
158
  * can persist the Store to the browser's session storage.
@@ -147,6 +197,7 @@ export interface LocalPersister<Schemas extends OptionalSchemas>
147
197
  * sessionStorage.clear();
148
198
  * ```
149
199
  * @category Creation
200
+ * @essential Persisting stores
150
201
  * @since v1.0.0
151
202
  */
152
203
  export function createSessionPersister<Schemas extends OptionalSchemas>(
@@ -199,6 +250,7 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
199
250
  * localStorage.clear();
200
251
  * ```
201
252
  * @category Creation
253
+ * @essential Persisting stores
202
254
  * @since v1.0.0
203
255
  */
204
256
  export function createLocalPersister<Schemas extends OptionalSchemas>(
@@ -206,3 +258,58 @@ export function createLocalPersister<Schemas extends OptionalSchemas>(
206
258
  storageName: string,
207
259
  onIgnoredError?: (error: any) => void,
208
260
  ): LocalPersister<Schemas>;
261
+
262
+ /**
263
+ * The createOpfsPersister function creates an OpfsPersister object that can
264
+ * persist the Store to a file in an origin private file system (OPFS).
265
+ *
266
+ * This has schema-based typing. The following is a simplified representation:
267
+ *
268
+ * ```ts override
269
+ * createOpfsPersister(
270
+ * store: Store | MergeableStore,
271
+ * handle: FileSystemFileHandle,
272
+ * onIgnoredError?: (error: any) => void,
273
+ * ): OpfsPersister;
274
+ * ```
275
+ *
276
+ * An OpfsPersister supports both regular Store and MergeableStore objects.
277
+ *
278
+ * As well as providing a reference to the Store to persist, you must provide a
279
+ * `handle` parameter which identifies an existing OPFS file to persist it to.
280
+ * @param store The Store or MergeableStore to persist.
281
+ * @param handle The handle of an existing OPFS file to persist the Store to.
282
+ * @param onIgnoredError An optional handler for the errors that the Persister
283
+ * would otherwise ignore when trying to save or load data. This is suitable for
284
+ * debugging persistence issues in a development environment.
285
+ * @returns A reference to the new OpfsPersister object.
286
+ * @example
287
+ * This example creates an OpfsPersister object and persists the Store to a
288
+ * local file.
289
+ *
290
+ * ```js
291
+ * import {createStore} from 'tinybase';
292
+ * import {createOpfsPersister} from 'tinybase/persisters/persister-browser';
293
+ *
294
+ * const opfs = await navigator.storage.getDirectory();
295
+ * const handle = await opfs.getFileHandle('tinybase.json', {create: true});
296
+ *
297
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
298
+ * const persister = createOpfsPersister(store, handle);
299
+ *
300
+ * await persister.save();
301
+ * // Store JSON will be saved to the file.
302
+ *
303
+ * await persister.load();
304
+ * // Store JSON will be loaded from the file.
305
+ *
306
+ * await persister.destroy();
307
+ * ```
308
+ * @category Creation
309
+ * @since v6.7.0
310
+ */
311
+ export function createOpfsPersister<Schemas extends OptionalSchemas>(
312
+ store: Store<Schemas> | MergeableStore<Schemas>,
313
+ handle: FileSystemFileHandle,
314
+ onIgnoredError?: (error: any) => void,
315
+ ): OpfsPersister<Schemas>;
@@ -75,6 +75,10 @@ export interface CrSqliteWasmPersister extends Persister {
75
75
  *
76
76
  * See the documentation for the DpcJson and DpcTabular types for more
77
77
  * information on how both of those modes can be configured.
78
+ *
79
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
80
+ * values, making tables dense (every Row has every Cell). See the Database
81
+ * Persistence guide for details.
78
82
  * @param store The Store to persist.
79
83
  * @param db The database instance that was returned from `crSqlite3.open(...)`.
80
84
  * @param configOrStoreTableName A DatabasePersisterConfig to configure the
@@ -30,8 +30,9 @@ import type {
30
30
  * @category Persister
31
31
  * @since v4.3.14
32
32
  */
33
- export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
34
- extends Persister<Schemas> {
33
+ export interface CrSqliteWasmPersister<
34
+ Schemas extends OptionalSchemas,
35
+ > extends Persister<Schemas> {
35
36
  /**
36
37
  * The getDb method returns a reference to the database instance the Store is
37
38
  * being persisted to.
@@ -94,6 +95,10 @@ export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
94
95
  *
95
96
  * See the documentation for the DpcJson and DpcTabular types for more
96
97
  * information on how both of those modes can be configured.
98
+ *
99
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
100
+ * values, making tables dense (every Row has every Cell). See the Database
101
+ * Persistence guide for details.
97
102
  * @param store The Store to persist.
98
103
  * @param db The database instance that was returned from `crSqlite3.open(...)`.
99
104
  * @param configOrStoreTableName A DatabasePersisterConfig to configure the
@@ -139,8 +139,7 @@ export type DurableObjectSqlDatabasePersisterConfig = DpcJson | DpcFragmented;
139
139
  * @category Persister
140
140
  * @since v6.3.0
141
141
  */
142
- export interface DurableObjectSqlStoragePersister
143
- extends Persister<Persists.MergeableStoreOnly> {
142
+ export interface DurableObjectSqlStoragePersister extends Persister<Persists.MergeableStoreOnly> {
144
143
  /**
145
144
  * The getSqlStorage method returns a reference to the SQL storage that the
146
145
  * Store is being persisted to.
@@ -234,6 +233,10 @@ export interface DurableObjectSqlStoragePersister
234
233
  * See the documentation for the DpcJson, DpcFragmented, and DpcTabular types
235
234
  * for more information on how all of those modes can be configured.
236
235
  *
236
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
237
+ * values, making tables dense (every Row has every Cell). See the Database
238
+ * Persistence guide for details.
239
+ *
237
240
  * As well as providing a reference to the Store or MergeableStore to persist,
238
241
  * you must provide a `sqlStorage` parameter which identifies the Durable Object
239
242
  * SQLite storage to persist it to.
@@ -337,6 +340,7 @@ export interface DurableObjectSqlStoragePersister
337
340
  * }
338
341
  * ```
339
342
  * @category Creation
343
+ * @essential Persisting stores
340
344
  * @since v6.3.0
341
345
  */
342
346
  export function createDurableObjectSqlStoragePersister(
@@ -263,6 +263,10 @@ export interface DurableObjectSqlStoragePersister<
263
263
  * See the documentation for the DpcJson, DpcFragmented, and DpcTabular types
264
264
  * for more information on how all of those modes can be configured.
265
265
  *
266
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
267
+ * values, making tables dense (every Row has every Cell). See the Database
268
+ * Persistence guide for details.
269
+ *
266
270
  * As well as providing a reference to the Store or MergeableStore to persist,
267
271
  * you must provide a `sqlStorage` parameter which identifies the Durable Object
268
272
  * SQLite storage to persist it to.
@@ -366,6 +370,7 @@ export interface DurableObjectSqlStoragePersister<
366
370
  * }
367
371
  * ```
368
372
  * @category Creation
373
+ * @essential Persisting stores
369
374
  * @since v6.3.0
370
375
  */
371
376
  export function createDurableObjectSqlStoragePersister<
@@ -25,8 +25,7 @@ import type {Persister, Persists} from '../index.d.ts';
25
25
  * @category Persister
26
26
  * @since v5.4.0
27
27
  */
28
- export interface DurableObjectStoragePersister
29
- extends Persister<Persists.MergeableStoreOnly> {
28
+ export interface DurableObjectStoragePersister extends Persister<Persists.MergeableStoreOnly> {
30
29
  /**
31
30
  * The getStorage method returns a reference to the storage that the Store is
32
31
  * being persisted to.
@@ -26,8 +26,9 @@ import type {Persister, Persists} from '../../with-schemas/index.d.ts';
26
26
  * @category Persister
27
27
  * @since v5.4.0
28
28
  */
29
- export interface DurableObjectStoragePersister<Schemas extends OptionalSchemas>
30
- extends Persister<Schemas, Persists.MergeableStoreOnly> {
29
+ export interface DurableObjectStoragePersister<
30
+ Schemas extends OptionalSchemas,
31
+ > extends Persister<Schemas, Persists.MergeableStoreOnly> {
31
32
  /**
32
33
  * The getStorage method returns a reference to the storage that the Store is
33
34
  * being persisted to.
@@ -83,6 +83,10 @@ export interface ElectricSqlPersister extends Persister {
83
83
  *
84
84
  * See the documentation for the DpcJson and DpcTabular types for more
85
85
  * information on how both of those modes can be configured.
86
+ *
87
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
88
+ * values, making tables dense (every Row has every Cell). See the Database
89
+ * Persistence guide for details.
86
90
  * @param store The Store to persist.
87
91
  * @param electricClient The Electric client that was returned from `await
88
92
  * electrify(...)`.
@@ -30,8 +30,9 @@ import type {
30
30
  * @category Persister
31
31
  * @since v4.6.0
32
32
  */
33
- export interface ElectricSqlPersister<Schemas extends OptionalSchemas>
34
- extends Persister<Schemas> {
33
+ export interface ElectricSqlPersister<
34
+ Schemas extends OptionalSchemas,
35
+ > extends Persister<Schemas> {
35
36
  /**
36
37
  * The getElectricClient method returns a reference to the Electric client the
37
38
  * Store is being persisted to.
@@ -102,6 +103,10 @@ export interface ElectricSqlPersister<Schemas extends OptionalSchemas>
102
103
  *
103
104
  * See the documentation for the DpcJson and DpcTabular types for more
104
105
  * information on how both of those modes can be configured.
106
+ *
107
+ * Note: When using tabular mode, SQL NULL values are loaded as TinyBase null
108
+ * values, making tables dense (every Row has every Cell). See the Database
109
+ * Persistence guide for details.
105
110
  * @param store The Store to persist.
106
111
  * @param electricClient The Electric client that was returned from `await
107
112
  * electrify(...)`.