tinybase 5.0.0-beta.1 → 5.0.0-beta.10

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 (491) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -1
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/indexes.cjs +1 -1
  6. package/lib/cjs/indexes.cjs.gz +0 -0
  7. package/lib/cjs/mergeable-store.cjs +1 -0
  8. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  9. package/lib/cjs/metrics.cjs +1 -1
  10. package/lib/cjs/metrics.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  12. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  14. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  16. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  18. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  20. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  22. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-file.cjs +1 -1
  24. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  26. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-libsql.cjs +1 -0
  28. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  30. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  32. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  34. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  35. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  36. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  37. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  38. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  39. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  40. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  41. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  42. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  43. package/lib/cjs/persisters.cjs +1 -1
  44. package/lib/cjs/persisters.cjs.gz +0 -0
  45. package/lib/cjs/queries.cjs +1 -1
  46. package/lib/cjs/queries.cjs.gz +0 -0
  47. package/lib/cjs/relationships.cjs +1 -1
  48. package/lib/cjs/relationships.cjs.gz +0 -0
  49. package/lib/cjs/store.cjs +1 -1
  50. package/lib/cjs/store.cjs.gz +0 -0
  51. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -0
  52. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  53. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -0
  54. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  55. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -0
  56. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  57. package/lib/cjs/synchronizers.cjs +1 -0
  58. package/lib/cjs/synchronizers.cjs.gz +0 -0
  59. package/lib/cjs/tinybase.cjs +1 -1
  60. package/lib/cjs/tinybase.cjs.gz +0 -0
  61. package/lib/cjs/tools.cjs +1 -1
  62. package/lib/cjs/tools.cjs.gz +0 -0
  63. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  64. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  65. package/lib/cjs/ui-react-dom.cjs +1 -1
  66. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  67. package/lib/cjs/ui-react.cjs +1 -1
  68. package/lib/cjs/ui-react.cjs.gz +0 -0
  69. package/lib/cjs-es6/checkpoints.cjs +1 -1
  70. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  71. package/lib/cjs-es6/indexes.cjs +1 -1
  72. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  73. package/lib/cjs-es6/mergeable-store.cjs +1 -0
  74. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  75. package/lib/cjs-es6/metrics.cjs +1 -1
  76. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  82. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  83. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  84. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  85. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  86. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  87. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  88. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  89. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  90. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  91. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  92. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  93. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -0
  94. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  95. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  96. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  97. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  98. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  99. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  100. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  101. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  102. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  103. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  104. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  105. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  106. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  107. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  108. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  109. package/lib/cjs-es6/persisters.cjs +1 -1
  110. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  111. package/lib/cjs-es6/queries.cjs +1 -1
  112. package/lib/cjs-es6/queries.cjs.gz +0 -0
  113. package/lib/cjs-es6/relationships.cjs +1 -1
  114. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  115. package/lib/cjs-es6/store.cjs +1 -1
  116. package/lib/cjs-es6/store.cjs.gz +0 -0
  117. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -0
  118. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  119. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -0
  120. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  121. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -0
  122. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  123. package/lib/cjs-es6/synchronizers.cjs +1 -0
  124. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  125. package/lib/cjs-es6/tinybase.cjs +1 -1
  126. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  127. package/lib/cjs-es6/tools.cjs +1 -1
  128. package/lib/cjs-es6/tools.cjs.gz +0 -0
  129. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  130. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  131. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  132. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  133. package/lib/cjs-es6/ui-react.cjs +1 -1
  134. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  135. package/lib/debug/checkpoints.js +3 -1
  136. package/lib/debug/indexes.js +3 -1
  137. package/lib/debug/mergeable-store.js +2230 -0
  138. package/lib/debug/metrics.js +3 -1
  139. package/lib/debug/persisters/persister-automerge.js +110 -86
  140. package/lib/debug/persisters/persister-browser.js +94 -57
  141. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +168 -106
  142. package/lib/debug/persisters/persister-electric-sql.js +168 -106
  143. package/lib/debug/persisters/persister-expo-sqlite-next.js +168 -106
  144. package/lib/debug/persisters/persister-expo-sqlite.js +168 -106
  145. package/lib/debug/persisters/persister-file.js +93 -57
  146. package/lib/debug/persisters/persister-indexed-db.js +90 -56
  147. package/lib/debug/persisters/persister-libsql.js +913 -0
  148. package/lib/debug/persisters/persister-partykit-client.js +89 -59
  149. package/lib/debug/persisters/persister-partykit-server.js +17 -25
  150. package/lib/debug/persisters/persister-powersync.js +928 -0
  151. package/lib/debug/persisters/persister-remote.js +85 -53
  152. package/lib/debug/persisters/persister-sqlite-wasm.js +168 -106
  153. package/lib/debug/persisters/persister-sqlite3.js +168 -106
  154. package/lib/debug/persisters/persister-yjs.js +108 -83
  155. package/lib/debug/persisters.js +81 -50
  156. package/lib/debug/queries.js +9 -6
  157. package/lib/debug/relationships.js +3 -1
  158. package/lib/debug/store.js +147 -126
  159. package/lib/debug/synchronizers/synchronizer-local.js +559 -0
  160. package/lib/debug/synchronizers/synchronizer-ws-client.js +586 -0
  161. package/lib/debug/synchronizers/synchronizer-ws-server.js +96 -0
  162. package/lib/debug/synchronizers.js +519 -0
  163. package/lib/debug/tinybase.js +1027 -174
  164. package/lib/debug/tools.js +22 -21
  165. package/lib/debug/ui-react-dom.js +275 -213
  166. package/lib/debug/ui-react.js +55 -6
  167. package/lib/es6/checkpoints.js +1 -1
  168. package/lib/es6/checkpoints.js.gz +0 -0
  169. package/lib/es6/indexes.js +1 -1
  170. package/lib/es6/indexes.js.gz +0 -0
  171. package/lib/es6/mergeable-store.js +1 -0
  172. package/lib/es6/mergeable-store.js.gz +0 -0
  173. package/lib/es6/metrics.js +1 -1
  174. package/lib/es6/metrics.js.gz +0 -0
  175. package/lib/es6/persisters/persister-automerge.js +1 -1
  176. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  177. package/lib/es6/persisters/persister-browser.js +1 -1
  178. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  179. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  180. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  181. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  182. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  183. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  184. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  185. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  186. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  187. package/lib/es6/persisters/persister-file.js +1 -1
  188. package/lib/es6/persisters/persister-file.js.gz +0 -0
  189. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  190. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  191. package/lib/es6/persisters/persister-libsql.js +1 -0
  192. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  193. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  194. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  195. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  196. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  197. package/lib/es6/persisters/persister-powersync.js +1 -0
  198. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  199. package/lib/es6/persisters/persister-remote.js +1 -1
  200. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  201. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  202. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  203. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  204. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  205. package/lib/es6/persisters/persister-yjs.js +1 -1
  206. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  207. package/lib/es6/persisters.js +1 -1
  208. package/lib/es6/persisters.js.gz +0 -0
  209. package/lib/es6/queries.js +1 -1
  210. package/lib/es6/queries.js.gz +0 -0
  211. package/lib/es6/relationships.js +1 -1
  212. package/lib/es6/relationships.js.gz +0 -0
  213. package/lib/es6/store.js +1 -1
  214. package/lib/es6/store.js.gz +0 -0
  215. package/lib/es6/synchronizers/synchronizer-local.js +1 -0
  216. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  217. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -0
  218. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  219. package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -0
  220. package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  221. package/lib/es6/synchronizers.js +1 -0
  222. package/lib/es6/synchronizers.js.gz +0 -0
  223. package/lib/es6/tinybase.js +1 -1
  224. package/lib/es6/tinybase.js.gz +0 -0
  225. package/lib/es6/tools.js +1 -1
  226. package/lib/es6/tools.js.gz +0 -0
  227. package/lib/es6/ui-react-dom-debug.js +1 -1
  228. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  229. package/lib/es6/ui-react-dom.js +1 -1
  230. package/lib/es6/ui-react-dom.js.gz +0 -0
  231. package/lib/es6/ui-react.js +1 -1
  232. package/lib/es6/ui-react.js.gz +0 -0
  233. package/lib/indexes.js +1 -1
  234. package/lib/indexes.js.gz +0 -0
  235. package/lib/mergeable-store.js +1 -0
  236. package/lib/mergeable-store.js.gz +0 -0
  237. package/lib/metrics.js +1 -1
  238. package/lib/metrics.js.gz +0 -0
  239. package/lib/persisters/persister-automerge.js +1 -1
  240. package/lib/persisters/persister-automerge.js.gz +0 -0
  241. package/lib/persisters/persister-browser.js +1 -1
  242. package/lib/persisters/persister-browser.js.gz +0 -0
  243. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  244. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  245. package/lib/persisters/persister-electric-sql.js +1 -1
  246. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  247. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  248. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  249. package/lib/persisters/persister-expo-sqlite.js +1 -1
  250. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  251. package/lib/persisters/persister-file.js +1 -1
  252. package/lib/persisters/persister-file.js.gz +0 -0
  253. package/lib/persisters/persister-indexed-db.js +1 -1
  254. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  255. package/lib/persisters/persister-libsql.js +1 -0
  256. package/lib/persisters/persister-libsql.js.gz +0 -0
  257. package/lib/persisters/persister-partykit-client.js +1 -1
  258. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  259. package/lib/persisters/persister-partykit-server.js +1 -1
  260. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  261. package/lib/persisters/persister-powersync.js +1 -0
  262. package/lib/persisters/persister-powersync.js.gz +0 -0
  263. package/lib/persisters/persister-remote.js +1 -1
  264. package/lib/persisters/persister-remote.js.gz +0 -0
  265. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  266. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  267. package/lib/persisters/persister-sqlite3.js +1 -1
  268. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  269. package/lib/persisters/persister-yjs.js +1 -1
  270. package/lib/persisters/persister-yjs.js.gz +0 -0
  271. package/lib/persisters.js +1 -1
  272. package/lib/persisters.js.gz +0 -0
  273. package/lib/queries.js +1 -1
  274. package/lib/queries.js.gz +0 -0
  275. package/lib/relationships.js +1 -1
  276. package/lib/relationships.js.gz +0 -0
  277. package/lib/store.js +1 -1
  278. package/lib/store.js.gz +0 -0
  279. package/lib/synchronizers/synchronizer-local.js +1 -0
  280. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  281. package/lib/synchronizers/synchronizer-ws-client.js +1 -0
  282. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  283. package/lib/synchronizers/synchronizer-ws-server.js +1 -0
  284. package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
  285. package/lib/synchronizers.js +1 -0
  286. package/lib/synchronizers.js.gz +0 -0
  287. package/lib/tinybase.js +1 -1
  288. package/lib/tinybase.js.gz +0 -0
  289. package/lib/tools.js +1 -1
  290. package/lib/tools.js.gz +0 -0
  291. package/lib/types/checkpoints.d.ts +2 -2
  292. package/lib/types/indexes.d.ts +2 -2
  293. package/lib/types/mergeable-store.d.ts +214 -0
  294. package/lib/types/metrics.d.ts +2 -2
  295. package/lib/types/persisters/persister-automerge.d.ts +11 -7
  296. package/lib/types/persisters/persister-browser.d.ts +13 -4
  297. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +4 -0
  298. package/lib/types/persisters/persister-electric-sql.d.ts +4 -0
  299. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +4 -0
  300. package/lib/types/persisters/persister-expo-sqlite.d.ts +4 -0
  301. package/lib/types/persisters/persister-file.d.ts +7 -2
  302. package/lib/types/persisters/persister-indexed-db.d.ts +4 -0
  303. package/lib/types/persisters/persister-libsql.d.ts +142 -0
  304. package/lib/types/persisters/persister-partykit-client.d.ts +4 -0
  305. package/lib/types/persisters/persister-partykit-server.d.ts +12 -8
  306. package/lib/types/persisters/persister-powersync.d.ts +157 -0
  307. package/lib/types/persisters/persister-remote.d.ts +4 -0
  308. package/lib/types/persisters/persister-sqlite-wasm.d.ts +4 -0
  309. package/lib/types/persisters/persister-sqlite3.d.ts +4 -0
  310. package/lib/types/persisters/persister-yjs.d.ts +6 -2
  311. package/lib/types/persisters.d.ts +125 -48
  312. package/lib/types/queries.d.ts +2 -2
  313. package/lib/types/relationships.d.ts +2 -2
  314. package/lib/types/store.d.ts +275 -187
  315. package/lib/types/synchronizers/synchronizer-local.d.ts +27 -0
  316. package/lib/types/synchronizers/synchronizer-ws-client.d.ts +35 -0
  317. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +36 -0
  318. package/lib/types/synchronizers.d.ts +132 -0
  319. package/lib/types/tinybase.d.ts +10 -8
  320. package/lib/types/tools.d.ts +4 -4
  321. package/lib/types/ui-react.d.ts +160 -9
  322. package/lib/types/with-schemas/checkpoints.d.ts +2 -2
  323. package/lib/types/with-schemas/indexes.d.ts +2 -2
  324. package/lib/types/with-schemas/internal/store.d.ts +4 -0
  325. package/lib/types/with-schemas/mergeable-store.d.ts +492 -0
  326. package/lib/types/with-schemas/metrics.d.ts +2 -2
  327. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +12 -8
  328. package/lib/types/with-schemas/persisters/persister-browser.d.ts +17 -8
  329. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +5 -1
  330. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +5 -1
  331. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +5 -1
  332. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +5 -1
  333. package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -4
  334. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +5 -1
  335. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +155 -0
  336. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +5 -1
  337. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +15 -11
  338. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
  339. package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -1
  340. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +5 -1
  341. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +5 -1
  342. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +7 -3
  343. package/lib/types/with-schemas/persisters.d.ts +161 -101
  344. package/lib/types/with-schemas/queries.d.ts +3 -3
  345. package/lib/types/with-schemas/relationships.d.ts +2 -2
  346. package/lib/types/with-schemas/store.d.ts +483 -345
  347. package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +29 -0
  348. package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +41 -0
  349. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +36 -0
  350. package/lib/types/with-schemas/synchronizers.d.ts +146 -0
  351. package/lib/types/with-schemas/tinybase.d.ts +9 -8
  352. package/lib/types/with-schemas/tools.d.ts +4 -4
  353. package/lib/types/with-schemas/ui-react.d.ts +177 -9
  354. package/lib/ui-react-dom.js +1 -1
  355. package/lib/ui-react-dom.js.gz +0 -0
  356. package/lib/ui-react.js +1 -1
  357. package/lib/ui-react.js.gz +0 -0
  358. package/lib/umd/checkpoints.js +1 -1
  359. package/lib/umd/checkpoints.js.gz +0 -0
  360. package/lib/umd/indexes.js +1 -1
  361. package/lib/umd/indexes.js.gz +0 -0
  362. package/lib/umd/mergeable-store.js +1 -0
  363. package/lib/umd/mergeable-store.js.gz +0 -0
  364. package/lib/umd/metrics.js +1 -1
  365. package/lib/umd/metrics.js.gz +0 -0
  366. package/lib/umd/persisters/persister-automerge.js +1 -1
  367. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  368. package/lib/umd/persisters/persister-browser.js +1 -1
  369. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  370. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  371. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  372. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  373. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  374. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  375. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  376. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  377. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  378. package/lib/umd/persisters/persister-file.js +1 -1
  379. package/lib/umd/persisters/persister-file.js.gz +0 -0
  380. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  381. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  382. package/lib/umd/persisters/persister-libsql.js +1 -0
  383. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  384. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  385. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  386. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  387. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  388. package/lib/umd/persisters/persister-powersync.js +1 -0
  389. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  390. package/lib/umd/persisters/persister-remote.js +1 -1
  391. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  392. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  393. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  394. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  395. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  396. package/lib/umd/persisters/persister-yjs.js +1 -1
  397. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  398. package/lib/umd/persisters.js +1 -1
  399. package/lib/umd/persisters.js.gz +0 -0
  400. package/lib/umd/queries.js +1 -1
  401. package/lib/umd/queries.js.gz +0 -0
  402. package/lib/umd/relationships.js +1 -1
  403. package/lib/umd/relationships.js.gz +0 -0
  404. package/lib/umd/store.js +1 -1
  405. package/lib/umd/store.js.gz +0 -0
  406. package/lib/umd/synchronizers/synchronizer-local.js +1 -0
  407. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  408. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -0
  409. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  410. package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -0
  411. package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
  412. package/lib/umd/synchronizers.js +1 -0
  413. package/lib/umd/synchronizers.js.gz +0 -0
  414. package/lib/umd/tinybase.js +1 -1
  415. package/lib/umd/tinybase.js.gz +0 -0
  416. package/lib/umd/tools.js +1 -1
  417. package/lib/umd/tools.js.gz +0 -0
  418. package/lib/umd/ui-react-dom-debug.js +1 -1
  419. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  420. package/lib/umd/ui-react-dom.js +1 -1
  421. package/lib/umd/ui-react-dom.js.gz +0 -0
  422. package/lib/umd/ui-react.js +1 -1
  423. package/lib/umd/ui-react.js.gz +0 -0
  424. package/lib/umd-es6/checkpoints.js +1 -1
  425. package/lib/umd-es6/checkpoints.js.gz +0 -0
  426. package/lib/umd-es6/indexes.js +1 -1
  427. package/lib/umd-es6/indexes.js.gz +0 -0
  428. package/lib/umd-es6/mergeable-store.js +1 -0
  429. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  430. package/lib/umd-es6/metrics.js +1 -1
  431. package/lib/umd-es6/metrics.js.gz +0 -0
  432. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  433. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  434. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  435. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  436. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  437. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  438. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  439. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  440. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  441. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  442. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  443. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  444. package/lib/umd-es6/persisters/persister-file.js +1 -1
  445. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  446. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  447. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  448. package/lib/umd-es6/persisters/persister-libsql.js +1 -0
  449. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  450. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  451. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  452. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  453. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  454. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  455. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  456. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  457. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  458. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  459. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  460. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  461. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  462. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  463. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  464. package/lib/umd-es6/persisters.js +1 -1
  465. package/lib/umd-es6/persisters.js.gz +0 -0
  466. package/lib/umd-es6/queries.js +1 -1
  467. package/lib/umd-es6/queries.js.gz +0 -0
  468. package/lib/umd-es6/relationships.js +1 -1
  469. package/lib/umd-es6/relationships.js.gz +0 -0
  470. package/lib/umd-es6/store.js +1 -1
  471. package/lib/umd-es6/store.js.gz +0 -0
  472. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -0
  473. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  474. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -0
  475. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  476. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -0
  477. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  478. package/lib/umd-es6/synchronizers.js +1 -0
  479. package/lib/umd-es6/synchronizers.js.gz +0 -0
  480. package/lib/umd-es6/tinybase.js +1 -1
  481. package/lib/umd-es6/tinybase.js.gz +0 -0
  482. package/lib/umd-es6/tools.js +1 -1
  483. package/lib/umd-es6/tools.js.gz +0 -0
  484. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  485. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  486. package/lib/umd-es6/ui-react-dom.js +1 -1
  487. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  488. package/lib/umd-es6/ui-react.js +1 -1
  489. package/lib/umd-es6/ui-react.js.gz +0 -0
  490. package/package.json +65 -45
  491. package/readme.md +2 -2
@@ -0,0 +1,492 @@
1
+ /**
2
+ * The mergeable-store module
3
+ * @packageDocumentation
4
+ * @module mergeable-store
5
+ * @since v5.0.0
6
+ */
7
+
8
+ import {
9
+ CellIdFromSchema,
10
+ TableIdFromSchema,
11
+ ValueIdFromSchema,
12
+ } from './internal/store';
13
+ import {
14
+ CellOrUndefined,
15
+ Content,
16
+ NoSchemas,
17
+ NoTablesSchema,
18
+ NoValuesSchema,
19
+ OptionalSchemas,
20
+ OptionalTablesSchema,
21
+ OptionalValuesSchema,
22
+ Store,
23
+ TablesSchema,
24
+ ValueOrUndefined,
25
+ ValuesSchema,
26
+ } from './store.d.ts';
27
+ import {Id} from './common';
28
+
29
+ /**
30
+ * The Hash type
31
+ * @category Stamps
32
+ */
33
+ export type Hash = number;
34
+
35
+ /**
36
+ * The Time type
37
+ * @category Stamps
38
+ */
39
+ export type Time = string;
40
+
41
+ /**
42
+ * The Stamp type
43
+ * @category Stamps
44
+ */
45
+ export type Stamp<Thing, Hashed extends boolean = false> = Hashed extends true
46
+ ? [thing: Thing, time: Time, hash: Hash]
47
+ : [thing: Thing, time?: Time];
48
+
49
+ // ContentHashes
50
+ export type ContentHashes = [tablesHash: Hash, valuesHash: Hash];
51
+
52
+ // TablesStamp
53
+ export type TablesStamp<
54
+ Schema extends OptionalTablesSchema,
55
+ Hashed extends boolean = false,
56
+ > = Stamp<
57
+ {
58
+ [TableId in TableIdFromSchema<Schema>]?: TableStamp<
59
+ Schema,
60
+ TableId,
61
+ Hashed
62
+ >;
63
+ },
64
+ Hashed
65
+ >;
66
+
67
+ // TableHashes
68
+ export type TableHashes<Schema extends OptionalTablesSchema> = {
69
+ [TableId in TableIdFromSchema<Schema>]?: Hash;
70
+ };
71
+
72
+ // TableStamp
73
+ export type TableStamp<
74
+ Schema extends OptionalTablesSchema,
75
+ TableId extends TableIdFromSchema<Schema>,
76
+ Hashed extends boolean = false,
77
+ > = Stamp<{[rowId: Id]: RowStamp<Schema, TableId, Hashed>}, Hashed>;
78
+
79
+ // RowHashes
80
+ export type RowHashes<Schema extends OptionalTablesSchema> = {
81
+ [TableId in TableIdFromSchema<Schema>]?: {[rowId: Id]: Hash};
82
+ };
83
+
84
+ // RowStamp
85
+ export type RowStamp<
86
+ Schema extends OptionalTablesSchema,
87
+ TableId extends TableIdFromSchema<Schema>,
88
+ Hashed extends boolean = false,
89
+ > = Stamp<
90
+ {
91
+ [CellId in CellIdFromSchema<Schema, TableId>]?: CellStamp<
92
+ Schema,
93
+ TableId,
94
+ CellId,
95
+ Hashed
96
+ >;
97
+ },
98
+ Hashed
99
+ >;
100
+
101
+ // CellHashes
102
+ export type CellHashes<Schema extends OptionalTablesSchema> = {
103
+ [TableId in TableIdFromSchema<Schema>]?: {
104
+ [rowId: Id]: {[CellId in CellIdFromSchema<Schema, TableId>]?: Hash};
105
+ };
106
+ };
107
+
108
+ // CellStamp
109
+ export type CellStamp<
110
+ Schema extends OptionalTablesSchema,
111
+ TableId extends TableIdFromSchema<Schema>,
112
+ CellId extends CellIdFromSchema<Schema, TableId>,
113
+ Hashed extends boolean = false,
114
+ > = Stamp<CellOrUndefined<Schema, TableId, CellId>, Hashed>;
115
+
116
+ // ValuesStamp
117
+ export type ValuesStamp<
118
+ Schema extends OptionalValuesSchema,
119
+ Hashed extends boolean = false,
120
+ > = Stamp<
121
+ {
122
+ [ValueId in ValueIdFromSchema<Schema>]?: ValueStamp<
123
+ Schema,
124
+ ValueId,
125
+ Hashed
126
+ >;
127
+ },
128
+ Hashed
129
+ >;
130
+
131
+ // ValuesHashes
132
+ export type ValuesHashes<Schema extends OptionalValuesSchema> = {
133
+ [ValueId in ValueIdFromSchema<Schema>]?: Hash;
134
+ };
135
+
136
+ // ValueStamp
137
+ export type ValueStamp<
138
+ Schema extends OptionalValuesSchema,
139
+ ValueId extends ValueIdFromSchema<Schema>,
140
+ Hashed extends boolean = false,
141
+ > = Stamp<ValueOrUndefined<Schema, ValueId>, Hashed>;
142
+
143
+ /**
144
+ * The MergeableContent type
145
+ * @category Mergeable
146
+ */
147
+ export type MergeableContent<Schemas extends OptionalSchemas> = [
148
+ mergeableTables: TablesStamp<Schemas[0], true>,
149
+ mergeableValues: ValuesStamp<Schemas[1], true>,
150
+ ];
151
+
152
+ /**
153
+ * The MergeableChanges type
154
+ * @category Mergeable
155
+ */
156
+ export type MergeableChanges<Schemas extends OptionalSchemas> = [
157
+ mergeableTables: TablesStamp<Schemas[0]>,
158
+ mergeableValues: ValuesStamp<Schemas[1]>,
159
+ isChanges: 1,
160
+ ];
161
+
162
+ /**
163
+ * The MergeableStore type
164
+ * @category Mergeable
165
+ */
166
+ export interface MergeableStore<Schemas extends OptionalSchemas>
167
+ extends Store<Schemas> {
168
+ //
169
+ /**
170
+ * The getId method
171
+ * @category Getter
172
+ */
173
+ getId(): Id;
174
+
175
+ /**
176
+ * The getMergeableContent method
177
+ * @category Getter
178
+ */
179
+ getMergeableContent(): MergeableContent<Schemas>;
180
+
181
+ /**
182
+ * The getMergeableContentHashes method
183
+ * @category Syncing
184
+ */
185
+ getMergeableContentHashes(): ContentHashes;
186
+
187
+ /**
188
+ * The getMergeableTableHashes method
189
+ * @category Syncing
190
+ */
191
+ getMergeableTableHashes(): TableHashes<Schemas[0]>;
192
+
193
+ /**
194
+ * The getMergeableTableDiff method
195
+ * @category Syncing
196
+ */
197
+ getMergeableTableDiff(
198
+ relativeTo: TableHashes<Schemas[0]>,
199
+ ): [
200
+ newTables: TablesStamp<Schemas[0]>,
201
+ differentTableHashes: TableHashes<Schemas[0]>,
202
+ ];
203
+
204
+ /**
205
+ * The getMergeableRowHashes method
206
+ * @category Syncing
207
+ */
208
+ getMergeableRowHashes(
209
+ otherTableHashes: TableHashes<Schemas[0]>,
210
+ ): RowHashes<Schemas[0]>;
211
+
212
+ /**
213
+ * The getMergeableRowDiff method
214
+ * @category Syncing
215
+ */
216
+ getMergeableRowDiff(
217
+ otherTableRowHashes: RowHashes<Schemas[0]>,
218
+ ): [
219
+ newRows: TablesStamp<Schemas[0]>,
220
+ differentRowHashes: RowHashes<Schemas[0]>,
221
+ ];
222
+
223
+ /**
224
+ * The getMergeableCellHashes method
225
+ * @category Syncing
226
+ */
227
+ getMergeableCellHashes(
228
+ otherTableRowHashes: RowHashes<Schemas[0]>,
229
+ ): CellHashes<Schemas[0]>;
230
+
231
+ /**
232
+ * The getMergeableCellDiff method
233
+ * @category Syncing
234
+ */
235
+ getMergeableCellDiff(
236
+ otherTableRowCellHashes: CellHashes<Schemas[0]>,
237
+ ): TablesStamp<Schemas[0]>;
238
+
239
+ /**
240
+ * The getMergeableValuesHashes method
241
+ * @category Syncing
242
+ */
243
+ getMergeableValuesHashes(): ValuesHashes<Schemas[1]>;
244
+
245
+ /**
246
+ * The getMergeableValueDiff method
247
+ * @category Syncing
248
+ */
249
+ getMergeableValueDiff(
250
+ relativeTo: ValuesHashes<Schemas[1]>,
251
+ ): ValuesStamp<Schemas[1]>;
252
+
253
+ /**
254
+ * The setMergeableContent method
255
+ * @category Setter
256
+ */
257
+ setMergeableContent(
258
+ mergeableContent: MergeableContent<Schemas>,
259
+ ): MergeableStore<Schemas>;
260
+
261
+ /**
262
+ * The setDefaultContent method
263
+ * @category Setter
264
+ */
265
+ setDefaultContent(content: Content<Schemas>): MergeableStore<Schemas>;
266
+
267
+ /**
268
+ * The getTransactionMergeableChanges method
269
+ * @category Getter
270
+ */
271
+ getTransactionMergeableChanges(): MergeableChanges<Schemas>;
272
+
273
+ /**
274
+ * The applyMergeableChanges method
275
+ * @category Setter
276
+ */
277
+ applyMergeableChanges(
278
+ mergeableChanges: MergeableChanges<Schemas> | MergeableContent<Schemas>,
279
+ ): MergeableStore<Schemas>;
280
+
281
+ /**
282
+ * The merge method
283
+ * @category Setter
284
+ */
285
+ merge(mergeableStore: MergeableStore<Schemas>): MergeableStore<Schemas>;
286
+
287
+ /**
288
+ * The setTablesSchema method lets you specify the TablesSchema of the tabular
289
+ * part of the Store.
290
+ *
291
+ * Note that this may result in a change to data in the Store, as defaults are
292
+ * applied or as invalid Table, Row, or Cell objects are removed. These
293
+ * changes will fire any listeners to that data, as expected.
294
+ *
295
+ * When no longer needed, you can also completely remove an existing
296
+ * TablesSchema with the delTablesSchema method.
297
+ * @param tablesSchema The TablesSchema to be set for the Store.
298
+ * @returns A reference to the Store.
299
+ * @example
300
+ * This example sets the TablesSchema of a Store after it has been created.
301
+ *
302
+ * ```js
303
+ * const store = createStore().setTablesSchema({
304
+ * pets: {
305
+ * species: {type: 'string'},
306
+ * sold: {type: 'boolean', default: false},
307
+ * },
308
+ * });
309
+ * store.addRow('pets', {species: 'dog', color: 'brown', sold: 'maybe'});
310
+ *
311
+ * console.log(store.getTables());
312
+ * // -> {pets: {0: {species: 'dog', sold: false}}}
313
+ * ```
314
+ * @category Setter
315
+ * @since v3.0.0
316
+ */
317
+ setTablesSchema<TS extends TablesSchema>(
318
+ tablesSchema: TS,
319
+ ): MergeableStore<[typeof tablesSchema, Schemas[1]]>;
320
+
321
+ /**
322
+ * The setValuesSchema method lets you specify the ValuesSchema of the keyed
323
+ * Values part of the Store.
324
+ *
325
+ * Note that this may result in a change to data in the Store, as defaults are
326
+ * applied or as invalid Values are removed. These changes will fire any
327
+ * listeners to that data, as expected.
328
+ *
329
+ * When no longer needed, you can also completely remove an existing
330
+ * ValuesSchema with the delValuesSchema method.
331
+ * @param valuesSchema The ValuesSchema to be set for the Store.
332
+ * @returns A reference to the Store.
333
+ * @example
334
+ * This example sets the ValuesSchema of a Store after it has been created.
335
+ *
336
+ * ```js
337
+ * const store = createStore().setValuesSchema({
338
+ * open: {type: 'boolean', default: false},
339
+ * });
340
+ * store.setValue('open', 'maybe');
341
+ *
342
+ * console.log(store.getValues());
343
+ * // -> {open: false}
344
+ * ```
345
+ * @category Setter
346
+ * @since v3.0.0
347
+ */
348
+ setValuesSchema<VS extends ValuesSchema>(
349
+ valuesSchema: VS,
350
+ ): MergeableStore<[Schemas[0], typeof valuesSchema]>;
351
+
352
+ /**
353
+ * The setSchema method lets you specify the TablesSchema and ValuesSchema of
354
+ * the Store.
355
+ *
356
+ * Note that this may result in a change to data in the Store, as defaults are
357
+ * applied or as invalid Table, Row, Cell, or Value objects are removed. These
358
+ * changes will fire any listeners to that data, as expected.
359
+ *
360
+ * From v3.0 onwards, this method takes two arguments. The first is the
361
+ * TablesSchema object, the second the ValuesSchema. In previous versions
362
+ * (before the existence of the ValuesSchema data structure), only the first
363
+ * was present. For backwards compatibility the new second parameter is
364
+ * optional.
365
+ * @param tablesSchema The TablesSchema to be set for the Store.
366
+ * @param valuesSchema The ValuesSchema to be set for the Store.
367
+ * @returns A reference to the Store.
368
+ * @example
369
+ * This example sets the TablesSchema and ValuesSchema of a Store after it has
370
+ * been created.
371
+ *
372
+ * ```js
373
+ * const store = createStore().setSchema(
374
+ * {
375
+ * pets: {
376
+ * species: {type: 'string'},
377
+ * sold: {type: 'boolean', default: false},
378
+ * },
379
+ * },
380
+ * {open: {type: 'boolean', default: false}},
381
+ * );
382
+ * store.addRow('pets', {species: 'dog', color: 'brown', sold: 'maybe'});
383
+ * store.setValue('open', 'maybe');
384
+ *
385
+ * console.log(store.getTables());
386
+ * // -> {pets: {0: {species: 'dog', sold: false}}}
387
+ * console.log(store.getValues());
388
+ * // -> {open: false}
389
+ * ```
390
+ * @example
391
+ * This example sets just the TablesSchema of a Store after it has been
392
+ * created.
393
+ *
394
+ * ```js
395
+ * const store = createStore().setSchema({
396
+ * pets: {
397
+ * species: {type: 'string'},
398
+ * sold: {type: 'boolean', default: false},
399
+ * },
400
+ * });
401
+ * store.addRow('pets', {species: 'dog', color: 'brown', sold: 'maybe'});
402
+ *
403
+ * console.log(store.getTables());
404
+ * // -> {pets: {0: {species: 'dog', sold: false}}}
405
+ * ```
406
+ * @category Setter
407
+ */
408
+ setSchema<TS extends TablesSchema, VS extends ValuesSchema>(
409
+ tablesSchema: TS,
410
+ valuesSchema?: VS,
411
+ ): MergeableStore<
412
+ [
413
+ typeof tablesSchema,
414
+ Exclude<ValuesSchema, typeof valuesSchema> extends never
415
+ ? NoValuesSchema
416
+ : NonNullable<typeof valuesSchema>,
417
+ ]
418
+ >;
419
+
420
+ /**
421
+ * The delTablesSchema method lets you remove the TablesSchema of the Store.
422
+ * @returns A reference to the Store.
423
+ * @example
424
+ * This example removes the TablesSchema of a Store.
425
+ *
426
+ * ```js
427
+ * const store = createStore().setTablesSchema({
428
+ * pets: {species: {type: 'string'}},
429
+ * });
430
+ * store.delTablesSchema();
431
+ * console.log(store.getTablesSchemaJson());
432
+ * // -> '{}'
433
+ * ```
434
+ * @category Deleter
435
+ */
436
+ delTablesSchema<
437
+ ValuesSchema extends OptionalValuesSchema = Schemas[1],
438
+ >(): MergeableStore<[NoTablesSchema, ValuesSchema]>;
439
+
440
+ /**
441
+ * The delValuesSchema method lets you remove the ValuesSchema of the Store.
442
+ * @returns A reference to the Store.
443
+ * @example
444
+ * This example removes the ValuesSchema of a Store.
445
+ *
446
+ * ```js
447
+ * const store = createStore().setValuesSchema({
448
+ * sold: {type: 'boolean', default: false},
449
+ * });
450
+ * store.delValuesSchema();
451
+ * console.log(store.getValuesSchemaJson());
452
+ * // -> '{}'
453
+ * ```
454
+ * @category Deleter
455
+ * @since v3.0.0
456
+ */
457
+ delValuesSchema<
458
+ TablesSchema extends OptionalTablesSchema = Schemas[0],
459
+ >(): MergeableStore<[TablesSchema, NoValuesSchema]>;
460
+
461
+ /**
462
+ * The delSchema method lets you remove both the TablesSchema and ValuesSchema
463
+ * of the Store.
464
+ *
465
+ * Prior to v3.0, this method removed the TablesSchema only.
466
+ * @returns A reference to the Store.
467
+ * @example
468
+ * This example removes the TablesSchema and ValuesSchema of a Store.
469
+ *
470
+ * ```js
471
+ * const store = createStore()
472
+ * .setTablesSchema({
473
+ * pets: {species: {type: 'string'}},
474
+ * })
475
+ * .setValuesSchema({
476
+ * sold: {type: 'boolean', default: false},
477
+ * });
478
+ * store.delSchema();
479
+ * console.log(store.getSchemaJson());
480
+ * // -> '[{},{}]'
481
+ * ```
482
+ * @category Deleter
483
+ * @since v3.0.0
484
+ */
485
+ delSchema(): MergeableStore<NoSchemas>;
486
+ }
487
+
488
+ /**
489
+ * The createMergeableStore function
490
+ * @category Creation
491
+ */
492
+ export function createMergeableStore(id: Id): MergeableStore<NoSchemas>;
@@ -11,8 +11,8 @@
11
11
  */
12
12
 
13
13
  import {CellIdFromSchema, TableIdFromSchema} from './internal/store';
14
- import {GetCell, OptionalSchemas, Store} from './store.d';
15
- import {Id, IdOrNull, Ids} from './common.d';
14
+ import {GetCell, OptionalSchemas, Store} from './store.d.ts';
15
+ import {Id, IdOrNull, Ids} from './common.d.ts';
16
16
 
17
17
  /**
18
18
  * The Metric type is simply an alias, but represents a number formed by
@@ -12,7 +12,7 @@
12
12
  */
13
13
 
14
14
  import {OptionalSchemas, Store} from '../store';
15
- import {DocHandle} from 'automerge-repo';
15
+ import {DocHandle} from '@automerge/automerge-repo';
16
16
  import {Persister} from '../persisters';
17
17
 
18
18
  /**
@@ -21,6 +21,10 @@ import {Persister} from '../persisters';
21
21
  *
22
22
  * It simply provides an extra getDocHandle method for accessing the Automerge
23
23
  * document handler the Store is being persisted to.
24
+ *
25
+ * You should use the createAutomergePersister function to create an
26
+ * AutomergePersister object.
27
+ * @category Persister
24
28
  * @since v4.3.14
25
29
  */
26
30
  export interface AutomergePersister<Schemas extends OptionalSchemas>
@@ -46,7 +50,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
46
50
  * @category Getter
47
51
  * @since v4.3.14
48
52
  */
49
- getDocHandle: () => DocHandle<any>;
53
+ getDocHandle(): DocHandle<any>;
50
54
  }
51
55
 
52
56
  /**
@@ -86,7 +90,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
86
90
  * await persister.save();
87
91
  * // Store will be saved to the document.
88
92
  *
89
- * console.log(docHandler.doc);
93
+ * console.log(await docHandler.doc());
90
94
  * // -> {tinybase: {t: {pets: {fido: {species: 'dog'}}}, v: {}}}
91
95
  *
92
96
  * persister.destroy();
@@ -102,7 +106,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
102
106
  * network: [new BroadcastChannelNetworkAdapter()],
103
107
  * });
104
108
  * const docHandler1 = repo1.create();
105
- * await docHandler1.value();
109
+ * await docHandler1.doc();
106
110
  * const store1 = createStore();
107
111
  * const persister1 = createAutomergePersister(store1, docHandler1);
108
112
  * await persister1.startAutoLoad();
@@ -113,7 +117,7 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
113
117
  * network: [new BroadcastChannelNetworkAdapter()],
114
118
  * });
115
119
  * const docHandler2 = repo2.find(docHandler1.documentId);
116
- * await docHandler2.value();
120
+ * await docHandler2.doc();
117
121
  * const store2 = createStore();
118
122
  * const persister2 = createAutomergePersister(store2, docHandler2);
119
123
  * await persister2.startAutoLoad();
@@ -122,9 +126,9 @@ export interface AutomergePersister<Schemas extends OptionalSchemas>
122
126
  * // A function that waits briefly and then for the documents to synchronize
123
127
  * // with each other, merely for the purposes of sequentiality in this example.
124
128
  * const syncDocsWait = async () => {
125
- * await new Promise((resolve) => setTimeout(() => resolve(0), 10));
126
- * await docHandler1.value();
127
- * await docHandler2.value();
129
+ * await new Promise((resolve) => setTimeout(() => resolve(0), 100));
130
+ * await docHandler1.doc();
131
+ * await docHandler2.doc();
128
132
  * };
129
133
  *
130
134
  * // Wait for the documents to synchronize in their initial state.
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  import {OptionalSchemas, Store} from '../store';
18
+ import {MergeableStore} from '../mergeable-store';
18
19
  import {Persister} from '../persisters';
19
20
 
20
21
  /**
@@ -23,10 +24,14 @@ import {Persister} from '../persisters';
23
24
  *
24
25
  * It simply provides an extra getStorageName method for accessing the unique
25
26
  * key of the storage location the Store is being persisted to.
27
+ *
28
+ * You should use the createSessionPersister function to create a
29
+ * SessionPersister object.
30
+ * @category Persister
26
31
  * @since v4.3.14
27
32
  */
28
33
  export interface SessionPersister<Schemas extends OptionalSchemas>
29
- extends Persister<Schemas> {
34
+ extends Persister<Schemas, true> {
30
35
  /**
31
36
  * The getStorageName method returns the unique key of the storage location
32
37
  * the Store is being persisted to.
@@ -47,7 +52,7 @@ export interface SessionPersister<Schemas extends OptionalSchemas>
47
52
  * @category Getter
48
53
  * @since v4.3.14
49
54
  */
50
- getStorageName: () => string;
55
+ getStorageName(): string;
51
56
  }
52
57
 
53
58
  /**
@@ -55,10 +60,14 @@ export interface SessionPersister<Schemas extends OptionalSchemas>
55
60
  *
56
61
  * It simply provides an extra getStorageName method for accessing the unique
57
62
  * key of the storage location the Store is being persisted to.
63
+ *
64
+ * You should use the createLocalPersister function to create a LocalPersister
65
+ * object.
66
+ * @category Persister
58
67
  * @since v4.3.14
59
68
  */
60
69
  export interface LocalPersister<Schemas extends OptionalSchemas>
61
- extends Persister<Schemas> {
70
+ extends Persister<Schemas, true> {
62
71
  /**
63
72
  * The getStorageName method returns the unique key of the storage location
64
73
  * the Store is being persisted to.
@@ -79,7 +88,7 @@ export interface LocalPersister<Schemas extends OptionalSchemas>
79
88
  * @category Getter
80
89
  * @since v4.3.14
81
90
  */
82
- getStorageName: () => string;
91
+ getStorageName(): string;
83
92
  }
84
93
 
85
94
  /**
@@ -90,7 +99,7 @@ export interface LocalPersister<Schemas extends OptionalSchemas>
90
99
  *
91
100
  * ```ts override
92
101
  * createSessionPersister(
93
- * store: Store,
102
+ * store: Store | MergeableStore,
94
103
  * storageName: string,
95
104
  * onIgnoredError?: (error: any) => void,
96
105
  * ): SessionPersister;
@@ -123,7 +132,7 @@ export interface LocalPersister<Schemas extends OptionalSchemas>
123
132
  * @category Creation
124
133
  */
125
134
  export function createSessionPersister<Schemas extends OptionalSchemas>(
126
- store: Store<Schemas>,
135
+ store: Store<Schemas> | MergeableStore<Schemas>,
127
136
  storageName: string,
128
137
  onIgnoredError?: (error: any) => void,
129
138
  ): SessionPersister<Schemas>;
@@ -136,7 +145,7 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
136
145
  *
137
146
  * ```ts override
138
147
  * createLocalPersister(
139
- * store: Store,
148
+ * store: Store | MergeableStore,
140
149
  * storageName: string,
141
150
  * onIgnoredError?: (error: any) => void,
142
151
  * ): LocalPersister;
@@ -169,7 +178,7 @@ export function createSessionPersister<Schemas extends OptionalSchemas>(
169
178
  * @category Creation
170
179
  */
171
180
  export function createLocalPersister<Schemas extends OptionalSchemas>(
172
- store: Store<Schemas>,
181
+ store: Store<Schemas> | MergeableStore<Schemas>,
173
182
  storageName: string,
174
183
  onIgnoredError?: (error: any) => void,
175
184
  ): LocalPersister<Schemas>;
@@ -18,6 +18,10 @@ import {DB} from '@vlcn.io/crsqlite-wasm';
18
18
  *
19
19
  * It simply provides an extra getDb method for accessing a reference to the
20
20
  * database instance the Store is being persisted to.
21
+ *
22
+ * You should use the createCrSqliteWasmPersister function to create a
23
+ * CrSqliteWasmPersister object.
24
+ * @category Persister
21
25
  * @since v4.3.14
22
26
  */
23
27
  export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
@@ -44,7 +48,7 @@ export interface CrSqliteWasmPersister<Schemas extends OptionalSchemas>
44
48
  * @category Getter
45
49
  * @since v4.3.14
46
50
  */
47
- getDb: () => DB;
51
+ getDb(): DB;
48
52
  }
49
53
 
50
54
  /**
@@ -18,6 +18,10 @@ import {ElectricClient} from 'electric-sql/client/model';
18
18
  *
19
19
  * It simply provides an extra getElectricClient method for accessing a
20
20
  * reference to the Electric client the Store is being persisted to.
21
+ *
22
+ * You should use the createElectricSqlPersister function to create an
23
+ * ElectricSqlPersister object.
24
+ * @category Persister
21
25
  * @since v4.6.0
22
26
  */
23
27
  export interface ElectricSqlPersister<Schemas extends OptionalSchemas>
@@ -51,7 +55,7 @@ export interface ElectricSqlPersister<Schemas extends OptionalSchemas>
51
55
  * @category Getter
52
56
  * @since v4.6.0
53
57
  */
54
- getElectricClient: () => ElectricClient<any>;
58
+ getElectricClient(): ElectricClient<any>;
55
59
  }
56
60
 
57
61
  /**