tinybase 5.0.0-beta.26 → 5.0.0-beta.27

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 (619) hide show
  1. package/@types/persisters/index.d.cts +175 -53
  2. package/@types/persisters/index.d.ts +175 -53
  3. package/@types/persisters/persister-automerge/index.d.cts +11 -7
  4. package/@types/persisters/persister-automerge/index.d.ts +11 -7
  5. package/@types/persisters/persister-automerge/with-schemas/index.d.cts +11 -7
  6. package/@types/persisters/persister-automerge/with-schemas/index.d.ts +11 -7
  7. package/@types/persisters/persister-browser/index.d.cts +20 -13
  8. package/@types/persisters/persister-browser/index.d.ts +20 -13
  9. package/@types/persisters/persister-browser/with-schemas/index.d.cts +20 -13
  10. package/@types/persisters/persister-browser/with-schemas/index.d.ts +20 -13
  11. package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +10 -7
  12. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +10 -7
  13. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +10 -7
  14. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +10 -7
  15. package/@types/persisters/persister-electric-sql/index.d.cts +10 -7
  16. package/@types/persisters/persister-electric-sql/index.d.ts +10 -7
  17. package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +10 -7
  18. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +10 -7
  19. package/@types/persisters/persister-expo-sqlite/index.d.cts +12 -8
  20. package/@types/persisters/persister-expo-sqlite/index.d.ts +12 -8
  21. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +12 -8
  22. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +12 -8
  23. package/@types/persisters/persister-file/index.d.cts +10 -6
  24. package/@types/persisters/persister-file/index.d.ts +10 -6
  25. package/@types/persisters/persister-file/with-schemas/index.d.cts +10 -6
  26. package/@types/persisters/persister-file/with-schemas/index.d.ts +10 -6
  27. package/@types/persisters/persister-indexed-db/index.d.cts +10 -6
  28. package/@types/persisters/persister-indexed-db/index.d.ts +10 -6
  29. package/@types/persisters/persister-indexed-db/with-schemas/index.d.cts +10 -6
  30. package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +10 -6
  31. package/@types/persisters/persister-libsql/index.d.cts +10 -6
  32. package/@types/persisters/persister-libsql/index.d.ts +10 -6
  33. package/@types/persisters/persister-libsql/with-schemas/index.d.cts +10 -6
  34. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +10 -6
  35. package/@types/persisters/persister-partykit-client/index.d.cts +14 -9
  36. package/@types/persisters/persister-partykit-client/index.d.ts +14 -9
  37. package/@types/persisters/persister-partykit-client/with-schemas/index.d.cts +14 -9
  38. package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +14 -9
  39. package/@types/persisters/persister-powersync/index.d.cts +12 -7
  40. package/@types/persisters/persister-powersync/index.d.ts +12 -7
  41. package/@types/persisters/persister-powersync/with-schemas/index.d.cts +12 -7
  42. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +12 -7
  43. package/@types/persisters/persister-remote/index.d.cts +11 -8
  44. package/@types/persisters/persister-remote/index.d.ts +11 -8
  45. package/@types/persisters/persister-remote/with-schemas/index.d.cts +11 -8
  46. package/@types/persisters/persister-remote/with-schemas/index.d.ts +11 -8
  47. package/@types/persisters/persister-sqlite-wasm/index.d.cts +12 -7
  48. package/@types/persisters/persister-sqlite-wasm/index.d.ts +12 -7
  49. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +12 -7
  50. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +12 -7
  51. package/@types/persisters/persister-sqlite3/index.d.cts +12 -7
  52. package/@types/persisters/persister-sqlite3/index.d.ts +12 -7
  53. package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +12 -7
  54. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +12 -7
  55. package/@types/persisters/persister-yjs/index.d.cts +11 -6
  56. package/@types/persisters/persister-yjs/index.d.ts +11 -6
  57. package/@types/persisters/persister-yjs/with-schemas/index.d.cts +11 -6
  58. package/@types/persisters/persister-yjs/with-schemas/index.d.ts +11 -6
  59. package/@types/persisters/with-schemas/index.d.cts +209 -54
  60. package/@types/persisters/with-schemas/index.d.ts +209 -54
  61. package/@types/queries/index.d.cts +0 -1
  62. package/@types/queries/index.d.ts +0 -1
  63. package/@types/queries/with-schemas/index.d.cts +0 -1
  64. package/@types/queries/with-schemas/index.d.ts +0 -1
  65. package/@types/synchronizers/index.d.cts +349 -37
  66. package/@types/synchronizers/index.d.ts +349 -37
  67. package/@types/synchronizers/synchronizer-local/index.d.cts +62 -2
  68. package/@types/synchronizers/synchronizer-local/index.d.ts +62 -2
  69. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +77 -2
  70. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +77 -2
  71. package/@types/synchronizers/synchronizer-ws-client/index.d.cts +48 -1
  72. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +48 -1
  73. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +48 -1
  74. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +48 -1
  75. package/@types/synchronizers/with-schemas/index.d.cts +349 -37
  76. package/@types/synchronizers/with-schemas/index.d.ts +349 -37
  77. package/cjs/es6/index.cjs +48 -42
  78. package/cjs/es6/min/index.cjs +1 -1
  79. package/cjs/es6/min/index.cjs.gz +0 -0
  80. package/cjs/es6/min/metrics/index.cjs +1 -1
  81. package/cjs/es6/min/metrics/index.cjs.gz +0 -0
  82. package/cjs/es6/min/metrics/with-schemas/index.cjs +1 -1
  83. package/cjs/es6/min/metrics/with-schemas/index.cjs.gz +0 -0
  84. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  85. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  86. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  87. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  88. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  89. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  90. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  91. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  92. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  93. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  94. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  95. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  96. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  97. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  98. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  99. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  100. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  101. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  102. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  103. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  104. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  105. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  106. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  107. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  108. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  109. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  110. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  111. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  112. package/cjs/es6/min/queries/index.cjs +1 -1
  113. package/cjs/es6/min/queries/index.cjs.gz +0 -0
  114. package/cjs/es6/min/queries/with-schemas/index.cjs +1 -1
  115. package/cjs/es6/min/queries/with-schemas/index.cjs.gz +0 -0
  116. package/cjs/es6/min/synchronizers/index.cjs +1 -1
  117. package/cjs/es6/min/synchronizers/index.cjs.gz +0 -0
  118. package/cjs/es6/min/synchronizers/with-schemas/index.cjs +1 -1
  119. package/cjs/es6/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  120. package/cjs/es6/min/ui-react/index.cjs +1 -1
  121. package/cjs/es6/min/ui-react/index.cjs.gz +0 -0
  122. package/cjs/es6/min/ui-react/with-schemas/index.cjs +1 -1
  123. package/cjs/es6/min/ui-react/with-schemas/index.cjs.gz +0 -0
  124. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  125. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  126. package/cjs/es6/persisters/index.cjs +5 -5
  127. package/cjs/es6/persisters/persister-automerge/index.cjs +5 -5
  128. package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +5 -5
  129. package/cjs/es6/persisters/persister-browser/index.cjs +5 -5
  130. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +5 -5
  131. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +11 -11
  132. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +11 -11
  133. package/cjs/es6/persisters/persister-electric-sql/index.cjs +11 -11
  134. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +11 -11
  135. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +11 -11
  136. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +11 -11
  137. package/cjs/es6/persisters/persister-file/index.cjs +5 -5
  138. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +5 -5
  139. package/cjs/es6/persisters/persister-indexed-db/index.cjs +5 -5
  140. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +5 -5
  141. package/cjs/es6/persisters/persister-libsql/index.cjs +11 -11
  142. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +11 -11
  143. package/cjs/es6/persisters/persister-partykit-client/index.cjs +5 -5
  144. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +5 -5
  145. package/cjs/es6/persisters/persister-powersync/index.cjs +11 -11
  146. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +11 -11
  147. package/cjs/es6/persisters/persister-remote/index.cjs +5 -5
  148. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +5 -5
  149. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +11 -11
  150. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +11 -11
  151. package/cjs/es6/persisters/persister-sqlite3/index.cjs +11 -11
  152. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +11 -11
  153. package/cjs/es6/persisters/persister-yjs/index.cjs +5 -5
  154. package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +5 -5
  155. package/cjs/es6/persisters/with-schemas/index.cjs +5 -5
  156. package/cjs/es6/synchronizers/index.cjs +48 -42
  157. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +50 -45
  158. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +50 -45
  159. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +47 -42
  160. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +47 -42
  161. package/cjs/es6/synchronizers/with-schemas/index.cjs +48 -42
  162. package/cjs/es6/ui-react/index.cjs +137 -75
  163. package/cjs/es6/ui-react/with-schemas/index.cjs +137 -75
  164. package/cjs/es6/ui-react-inspector/index.cjs +5 -5
  165. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +5 -5
  166. package/cjs/es6/with-schemas/index.cjs +48 -42
  167. package/cjs/index.cjs +48 -42
  168. package/cjs/min/index.cjs +1 -1
  169. package/cjs/min/index.cjs.gz +0 -0
  170. package/cjs/min/metrics/index.cjs +1 -1
  171. package/cjs/min/metrics/index.cjs.gz +0 -0
  172. package/cjs/min/metrics/with-schemas/index.cjs +1 -1
  173. package/cjs/min/metrics/with-schemas/index.cjs.gz +0 -0
  174. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  175. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  176. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  177. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  178. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  179. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  180. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  181. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  182. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  183. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  184. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  185. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  186. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  187. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  188. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  189. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  190. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  191. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  192. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  193. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  194. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  195. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  196. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  197. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  198. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  199. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  200. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  201. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  202. package/cjs/min/queries/index.cjs +1 -1
  203. package/cjs/min/queries/index.cjs.gz +0 -0
  204. package/cjs/min/queries/with-schemas/index.cjs +1 -1
  205. package/cjs/min/queries/with-schemas/index.cjs.gz +0 -0
  206. package/cjs/min/synchronizers/index.cjs +1 -1
  207. package/cjs/min/synchronizers/index.cjs.gz +0 -0
  208. package/cjs/min/synchronizers/with-schemas/index.cjs +1 -1
  209. package/cjs/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  210. package/cjs/min/ui-react/index.cjs +1 -1
  211. package/cjs/min/ui-react/index.cjs.gz +0 -0
  212. package/cjs/min/ui-react/with-schemas/index.cjs +1 -1
  213. package/cjs/min/ui-react/with-schemas/index.cjs.gz +0 -0
  214. package/cjs/min/with-schemas/index.cjs +1 -1
  215. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  216. package/cjs/persisters/index.cjs +5 -5
  217. package/cjs/persisters/persister-automerge/index.cjs +5 -5
  218. package/cjs/persisters/persister-automerge/with-schemas/index.cjs +5 -5
  219. package/cjs/persisters/persister-browser/index.cjs +5 -5
  220. package/cjs/persisters/persister-browser/with-schemas/index.cjs +5 -5
  221. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +11 -11
  222. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +11 -11
  223. package/cjs/persisters/persister-electric-sql/index.cjs +11 -11
  224. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +11 -11
  225. package/cjs/persisters/persister-expo-sqlite/index.cjs +11 -11
  226. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +11 -11
  227. package/cjs/persisters/persister-file/index.cjs +5 -5
  228. package/cjs/persisters/persister-file/with-schemas/index.cjs +5 -5
  229. package/cjs/persisters/persister-indexed-db/index.cjs +5 -5
  230. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +5 -5
  231. package/cjs/persisters/persister-libsql/index.cjs +11 -11
  232. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +11 -11
  233. package/cjs/persisters/persister-partykit-client/index.cjs +5 -5
  234. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +5 -5
  235. package/cjs/persisters/persister-powersync/index.cjs +11 -11
  236. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +11 -11
  237. package/cjs/persisters/persister-remote/index.cjs +5 -5
  238. package/cjs/persisters/persister-remote/with-schemas/index.cjs +5 -5
  239. package/cjs/persisters/persister-sqlite-wasm/index.cjs +11 -11
  240. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +11 -11
  241. package/cjs/persisters/persister-sqlite3/index.cjs +11 -11
  242. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +11 -11
  243. package/cjs/persisters/persister-yjs/index.cjs +5 -5
  244. package/cjs/persisters/persister-yjs/with-schemas/index.cjs +5 -5
  245. package/cjs/persisters/with-schemas/index.cjs +5 -5
  246. package/cjs/synchronizers/index.cjs +48 -42
  247. package/cjs/synchronizers/synchronizer-local/index.cjs +50 -50
  248. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +50 -50
  249. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +47 -42
  250. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +47 -42
  251. package/cjs/synchronizers/with-schemas/index.cjs +48 -42
  252. package/cjs/ui-react/index.cjs +139 -74
  253. package/cjs/ui-react/with-schemas/index.cjs +139 -74
  254. package/cjs/ui-react-inspector/index.cjs +5 -5
  255. package/cjs/ui-react-inspector/with-schemas/index.cjs +5 -5
  256. package/cjs/with-schemas/index.cjs +48 -42
  257. package/es6/index.js +48 -42
  258. package/es6/min/index.js +1 -1
  259. package/es6/min/index.js.gz +0 -0
  260. package/es6/min/metrics/index.js +1 -1
  261. package/es6/min/metrics/index.js.gz +0 -0
  262. package/es6/min/metrics/with-schemas/index.js +1 -1
  263. package/es6/min/metrics/with-schemas/index.js.gz +0 -0
  264. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  265. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  266. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  267. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  268. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  269. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  270. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  271. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  272. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  273. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  274. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  275. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  276. package/es6/min/persisters/persister-libsql/index.js +1 -1
  277. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  278. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  279. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  280. package/es6/min/persisters/persister-powersync/index.js +1 -1
  281. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  282. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  283. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  284. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  285. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  286. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  287. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  288. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  289. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  290. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  291. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  292. package/es6/min/queries/index.js +1 -1
  293. package/es6/min/queries/index.js.gz +0 -0
  294. package/es6/min/queries/with-schemas/index.js +1 -1
  295. package/es6/min/queries/with-schemas/index.js.gz +0 -0
  296. package/es6/min/synchronizers/index.js +1 -1
  297. package/es6/min/synchronizers/index.js.gz +0 -0
  298. package/es6/min/synchronizers/with-schemas/index.js +1 -1
  299. package/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  300. package/es6/min/ui-react/index.js +1 -1
  301. package/es6/min/ui-react/index.js.gz +0 -0
  302. package/es6/min/ui-react/with-schemas/index.js +1 -1
  303. package/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  304. package/es6/min/with-schemas/index.js +1 -1
  305. package/es6/min/with-schemas/index.js.gz +0 -0
  306. package/es6/persisters/index.js +5 -5
  307. package/es6/persisters/persister-automerge/index.js +5 -5
  308. package/es6/persisters/persister-automerge/with-schemas/index.js +5 -5
  309. package/es6/persisters/persister-browser/index.js +5 -5
  310. package/es6/persisters/persister-browser/with-schemas/index.js +5 -5
  311. package/es6/persisters/persister-cr-sqlite-wasm/index.js +11 -11
  312. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
  313. package/es6/persisters/persister-electric-sql/index.js +11 -11
  314. package/es6/persisters/persister-electric-sql/with-schemas/index.js +11 -11
  315. package/es6/persisters/persister-expo-sqlite/index.js +11 -11
  316. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
  317. package/es6/persisters/persister-file/index.js +5 -5
  318. package/es6/persisters/persister-file/with-schemas/index.js +5 -5
  319. package/es6/persisters/persister-indexed-db/index.js +5 -5
  320. package/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  321. package/es6/persisters/persister-libsql/index.js +11 -11
  322. package/es6/persisters/persister-libsql/with-schemas/index.js +11 -11
  323. package/es6/persisters/persister-partykit-client/index.js +5 -5
  324. package/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  325. package/es6/persisters/persister-powersync/index.js +11 -11
  326. package/es6/persisters/persister-powersync/with-schemas/index.js +11 -11
  327. package/es6/persisters/persister-remote/index.js +5 -5
  328. package/es6/persisters/persister-remote/with-schemas/index.js +5 -5
  329. package/es6/persisters/persister-sqlite-wasm/index.js +11 -11
  330. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
  331. package/es6/persisters/persister-sqlite3/index.js +11 -11
  332. package/es6/persisters/persister-sqlite3/with-schemas/index.js +11 -11
  333. package/es6/persisters/persister-yjs/index.js +5 -5
  334. package/es6/persisters/persister-yjs/with-schemas/index.js +5 -5
  335. package/es6/persisters/with-schemas/index.js +5 -5
  336. package/es6/synchronizers/index.js +48 -43
  337. package/es6/synchronizers/synchronizer-local/index.js +50 -45
  338. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +50 -45
  339. package/es6/synchronizers/synchronizer-ws-client/index.js +47 -42
  340. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +47 -42
  341. package/es6/synchronizers/with-schemas/index.js +48 -43
  342. package/es6/ui-react/index.js +137 -75
  343. package/es6/ui-react/with-schemas/index.js +137 -75
  344. package/es6/ui-react-inspector/index.js +5 -5
  345. package/es6/ui-react-inspector/with-schemas/index.js +5 -5
  346. package/es6/with-schemas/index.js +48 -42
  347. package/index.js +48 -42
  348. package/min/index.js +1 -1
  349. package/min/index.js.gz +0 -0
  350. package/min/metrics/index.js +1 -1
  351. package/min/metrics/index.js.gz +0 -0
  352. package/min/metrics/with-schemas/index.js +1 -1
  353. package/min/metrics/with-schemas/index.js.gz +0 -0
  354. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  355. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  356. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  357. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  358. package/min/persisters/persister-electric-sql/index.js +1 -1
  359. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  360. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  361. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  362. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  363. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  364. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  365. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  366. package/min/persisters/persister-libsql/index.js +1 -1
  367. package/min/persisters/persister-libsql/index.js.gz +0 -0
  368. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  369. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  370. package/min/persisters/persister-powersync/index.js +1 -1
  371. package/min/persisters/persister-powersync/index.js.gz +0 -0
  372. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  373. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  374. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  375. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  376. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  377. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  378. package/min/persisters/persister-sqlite3/index.js +1 -1
  379. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  380. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  381. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  382. package/min/queries/index.js +1 -1
  383. package/min/queries/index.js.gz +0 -0
  384. package/min/queries/with-schemas/index.js +1 -1
  385. package/min/queries/with-schemas/index.js.gz +0 -0
  386. package/min/synchronizers/index.js +1 -1
  387. package/min/synchronizers/index.js.gz +0 -0
  388. package/min/synchronizers/with-schemas/index.js +1 -1
  389. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  390. package/min/ui-react/index.js +1 -1
  391. package/min/ui-react/index.js.gz +0 -0
  392. package/min/ui-react/with-schemas/index.js +1 -1
  393. package/min/ui-react/with-schemas/index.js.gz +0 -0
  394. package/min/with-schemas/index.js +1 -1
  395. package/min/with-schemas/index.js.gz +0 -0
  396. package/package.json +5 -5
  397. package/persisters/index.js +5 -5
  398. package/persisters/persister-automerge/index.js +5 -5
  399. package/persisters/persister-automerge/with-schemas/index.js +5 -5
  400. package/persisters/persister-browser/index.js +5 -5
  401. package/persisters/persister-browser/with-schemas/index.js +5 -5
  402. package/persisters/persister-cr-sqlite-wasm/index.js +11 -11
  403. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
  404. package/persisters/persister-electric-sql/index.js +11 -11
  405. package/persisters/persister-electric-sql/with-schemas/index.js +11 -11
  406. package/persisters/persister-expo-sqlite/index.js +11 -11
  407. package/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
  408. package/persisters/persister-file/index.js +5 -5
  409. package/persisters/persister-file/with-schemas/index.js +5 -5
  410. package/persisters/persister-indexed-db/index.js +5 -5
  411. package/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  412. package/persisters/persister-libsql/index.js +11 -11
  413. package/persisters/persister-libsql/with-schemas/index.js +11 -11
  414. package/persisters/persister-partykit-client/index.js +5 -5
  415. package/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  416. package/persisters/persister-powersync/index.js +11 -11
  417. package/persisters/persister-powersync/with-schemas/index.js +11 -11
  418. package/persisters/persister-remote/index.js +5 -5
  419. package/persisters/persister-remote/with-schemas/index.js +5 -5
  420. package/persisters/persister-sqlite-wasm/index.js +11 -11
  421. package/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
  422. package/persisters/persister-sqlite3/index.js +11 -11
  423. package/persisters/persister-sqlite3/with-schemas/index.js +11 -11
  424. package/persisters/persister-yjs/index.js +5 -5
  425. package/persisters/persister-yjs/with-schemas/index.js +5 -5
  426. package/persisters/with-schemas/index.js +5 -5
  427. package/readme.md +2 -2
  428. package/releases.md +4 -4
  429. package/synchronizers/index.js +48 -43
  430. package/synchronizers/synchronizer-local/index.js +50 -50
  431. package/synchronizers/synchronizer-local/with-schemas/index.js +50 -50
  432. package/synchronizers/synchronizer-ws-client/index.js +47 -42
  433. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +47 -42
  434. package/synchronizers/with-schemas/index.js +48 -43
  435. package/ui-react/index.js +139 -74
  436. package/ui-react/with-schemas/index.js +139 -74
  437. package/ui-react-inspector/index.js +5 -5
  438. package/ui-react-inspector/with-schemas/index.js +5 -5
  439. package/umd/es6/index.js +51 -42
  440. package/umd/es6/min/index.js +1 -1
  441. package/umd/es6/min/index.js.gz +0 -0
  442. package/umd/es6/min/metrics/index.js +1 -1
  443. package/umd/es6/min/metrics/index.js.gz +0 -0
  444. package/umd/es6/min/metrics/with-schemas/index.js +1 -1
  445. package/umd/es6/min/metrics/with-schemas/index.js.gz +0 -0
  446. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  447. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  448. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  449. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  450. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  451. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  452. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  453. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  454. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  455. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  456. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  457. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  458. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  459. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  460. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  461. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  462. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  463. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  464. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  465. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  466. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  467. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  468. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  469. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  470. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  471. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  472. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  473. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  474. package/umd/es6/min/queries/index.js +1 -1
  475. package/umd/es6/min/queries/index.js.gz +0 -0
  476. package/umd/es6/min/queries/with-schemas/index.js +1 -1
  477. package/umd/es6/min/queries/with-schemas/index.js.gz +0 -0
  478. package/umd/es6/min/synchronizers/index.js +1 -1
  479. package/umd/es6/min/synchronizers/index.js.gz +0 -0
  480. package/umd/es6/min/synchronizers/with-schemas/index.js +1 -1
  481. package/umd/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  482. package/umd/es6/min/ui-react/index.js +1 -1
  483. package/umd/es6/min/ui-react/index.js.gz +0 -0
  484. package/umd/es6/min/ui-react/with-schemas/index.js +1 -1
  485. package/umd/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  486. package/umd/es6/min/with-schemas/index.js +1 -1
  487. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  488. package/umd/es6/persisters/index.js +5 -5
  489. package/umd/es6/persisters/persister-automerge/index.js +5 -5
  490. package/umd/es6/persisters/persister-automerge/with-schemas/index.js +5 -5
  491. package/umd/es6/persisters/persister-browser/index.js +5 -5
  492. package/umd/es6/persisters/persister-browser/with-schemas/index.js +5 -5
  493. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +11 -11
  494. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
  495. package/umd/es6/persisters/persister-electric-sql/index.js +11 -11
  496. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +11 -11
  497. package/umd/es6/persisters/persister-expo-sqlite/index.js +11 -11
  498. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
  499. package/umd/es6/persisters/persister-file/index.js +5 -5
  500. package/umd/es6/persisters/persister-file/with-schemas/index.js +5 -5
  501. package/umd/es6/persisters/persister-indexed-db/index.js +5 -5
  502. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  503. package/umd/es6/persisters/persister-libsql/index.js +11 -11
  504. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +11 -11
  505. package/umd/es6/persisters/persister-partykit-client/index.js +5 -5
  506. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  507. package/umd/es6/persisters/persister-powersync/index.js +11 -11
  508. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +11 -11
  509. package/umd/es6/persisters/persister-remote/index.js +5 -5
  510. package/umd/es6/persisters/persister-remote/with-schemas/index.js +5 -5
  511. package/umd/es6/persisters/persister-sqlite-wasm/index.js +11 -11
  512. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
  513. package/umd/es6/persisters/persister-sqlite3/index.js +11 -11
  514. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +11 -11
  515. package/umd/es6/persisters/persister-yjs/index.js +5 -5
  516. package/umd/es6/persisters/persister-yjs/with-schemas/index.js +5 -5
  517. package/umd/es6/persisters/with-schemas/index.js +5 -5
  518. package/umd/es6/synchronizers/index.js +51 -42
  519. package/umd/es6/synchronizers/synchronizer-local/index.js +53 -45
  520. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +53 -45
  521. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +50 -42
  522. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +50 -42
  523. package/umd/es6/synchronizers/with-schemas/index.js +51 -42
  524. package/umd/es6/ui-react/index.js +135 -72
  525. package/umd/es6/ui-react/with-schemas/index.js +135 -72
  526. package/umd/es6/ui-react-inspector/index.js +5 -5
  527. package/umd/es6/ui-react-inspector/with-schemas/index.js +5 -5
  528. package/umd/es6/with-schemas/index.js +51 -42
  529. package/umd/index.js +51 -46
  530. package/umd/min/index.js +1 -1
  531. package/umd/min/index.js.gz +0 -0
  532. package/umd/min/metrics/index.js +1 -1
  533. package/umd/min/metrics/index.js.gz +0 -0
  534. package/umd/min/metrics/with-schemas/index.js +1 -1
  535. package/umd/min/metrics/with-schemas/index.js.gz +0 -0
  536. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  537. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  538. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  539. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  540. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  541. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  542. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  543. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  544. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  545. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  546. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  547. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  548. package/umd/min/persisters/persister-libsql/index.js +1 -1
  549. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  550. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  551. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  552. package/umd/min/persisters/persister-powersync/index.js +1 -1
  553. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  554. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  555. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  556. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  557. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  558. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  559. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  560. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  561. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  562. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  563. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  564. package/umd/min/queries/index.js +1 -1
  565. package/umd/min/queries/index.js.gz +0 -0
  566. package/umd/min/queries/with-schemas/index.js +1 -1
  567. package/umd/min/queries/with-schemas/index.js.gz +0 -0
  568. package/umd/min/synchronizers/index.js +1 -1
  569. package/umd/min/synchronizers/index.js.gz +0 -0
  570. package/umd/min/synchronizers/with-schemas/index.js +1 -1
  571. package/umd/min/synchronizers/with-schemas/index.js.gz +0 -0
  572. package/umd/min/ui-react/index.js +1 -1
  573. package/umd/min/ui-react/index.js.gz +0 -0
  574. package/umd/min/ui-react/with-schemas/index.js +1 -1
  575. package/umd/min/ui-react/with-schemas/index.js.gz +0 -0
  576. package/umd/min/with-schemas/index.js +1 -1
  577. package/umd/min/with-schemas/index.js.gz +0 -0
  578. package/umd/persisters/index.js +5 -5
  579. package/umd/persisters/persister-automerge/index.js +5 -5
  580. package/umd/persisters/persister-automerge/with-schemas/index.js +5 -5
  581. package/umd/persisters/persister-browser/index.js +5 -5
  582. package/umd/persisters/persister-browser/with-schemas/index.js +5 -5
  583. package/umd/persisters/persister-cr-sqlite-wasm/index.js +11 -11
  584. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
  585. package/umd/persisters/persister-electric-sql/index.js +11 -11
  586. package/umd/persisters/persister-electric-sql/with-schemas/index.js +11 -11
  587. package/umd/persisters/persister-expo-sqlite/index.js +11 -11
  588. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
  589. package/umd/persisters/persister-file/index.js +5 -5
  590. package/umd/persisters/persister-file/with-schemas/index.js +5 -5
  591. package/umd/persisters/persister-indexed-db/index.js +5 -5
  592. package/umd/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  593. package/umd/persisters/persister-libsql/index.js +11 -11
  594. package/umd/persisters/persister-libsql/with-schemas/index.js +11 -11
  595. package/umd/persisters/persister-partykit-client/index.js +5 -5
  596. package/umd/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  597. package/umd/persisters/persister-powersync/index.js +11 -11
  598. package/umd/persisters/persister-powersync/with-schemas/index.js +11 -11
  599. package/umd/persisters/persister-remote/index.js +5 -5
  600. package/umd/persisters/persister-remote/with-schemas/index.js +5 -5
  601. package/umd/persisters/persister-sqlite-wasm/index.js +11 -11
  602. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
  603. package/umd/persisters/persister-sqlite3/index.js +11 -11
  604. package/umd/persisters/persister-sqlite3/with-schemas/index.js +11 -11
  605. package/umd/persisters/persister-yjs/index.js +5 -5
  606. package/umd/persisters/persister-yjs/with-schemas/index.js +5 -5
  607. package/umd/persisters/with-schemas/index.js +5 -5
  608. package/umd/synchronizers/index.js +51 -46
  609. package/umd/synchronizers/synchronizer-local/index.js +53 -54
  610. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +53 -54
  611. package/umd/synchronizers/synchronizer-ws-client/index.js +50 -46
  612. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +50 -46
  613. package/umd/synchronizers/with-schemas/index.js +51 -46
  614. package/umd/ui-react/index.js +140 -71
  615. package/umd/ui-react/with-schemas/index.js +140 -71
  616. package/umd/ui-react-inspector/index.js +5 -5
  617. package/umd/ui-react-inspector/with-schemas/index.js +5 -5
  618. package/umd/with-schemas/index.js +51 -46
  619. package/with-schemas/index.js +48 -42
@@ -13,67 +13,348 @@ import type {Content} from '../store/index.d.ts';
13
13
  import type {MergeableStore} from '../mergeable-store/index.d.ts';
14
14
 
15
15
  /**
16
- * The MessageType type.
16
+ * The Message enum is used to indicate the type of the message being passed
17
+ * between Synchronizer instances.
18
+ *
19
+ * These message comprise the basic synchronization protocol for merging
20
+ * MergeableStore instances across multiple systems.
21
+ *
22
+ * The enum is generally intended to be used internally within TinyBase itself
23
+ * and opaque to applications that use synchronization.
17
24
  * @category Synchronization
25
+ * @since v5.0.0
18
26
  */
19
- export type MessageType = number;
27
+ export const enum Message {
28
+ /**
29
+ * A message that is a response to a previous request.
30
+ */
31
+ Response = 0,
32
+ /**
33
+ * A message that is a request to get ContentHashes from another
34
+ * MergeableStore.
35
+ */
36
+ GetContentHashes = 1,
37
+ /**
38
+ * A message that contains ContentHashes.
39
+ */
40
+ ContentHashes = 2,
41
+ /**
42
+ * A message that contains a ContentDiff.
43
+ */
44
+ ContentDiff = 3,
45
+ /**
46
+ * A message that is a request to get a TableDiff from another MergeableStore.
47
+ */
48
+ GetTableDiff = 4,
49
+ /**
50
+ * A message that is a request to get a RowDiff from another MergeableStore.
51
+ */
52
+ GetRowDiff = 5,
53
+ /**
54
+ * A message that is a request to get a CellDiff from another MergeableStore.
55
+ */
56
+ GetCellDiff = 6,
57
+ /**
58
+ * A message that is a request to get a ValueDiff from another MergeableStore.
59
+ */
60
+ GetValueDiff = 7,
61
+ }
20
62
 
21
63
  /**
22
- * The Receive type.
64
+ * The Receive type describes a function that knows how to handle the arrival of
65
+ * a message as part of the synchronization protocol.
66
+ *
67
+ * When a message arrives (most likely from another system), the function will
68
+ * be called with parameters that indicate where the message came from, and its
69
+ * meaning and content.
70
+ * @param fromClientId The Id of the other client (in other words, the other
71
+ * system) that sent the message.
72
+ * @param requestId The optional Id of the message, which should be returned in
73
+ * the response (if requested) to constitute a matched request/response
74
+ * transaction.
75
+ * @param message A number that indicates the type of the message, according to
76
+ * the Message enum.
77
+ * @param body A message-specific payload.
23
78
  * @category Synchronization
79
+ * @since v5.0.0
24
80
  */
25
81
  export type Receive = (
26
82
  fromClientId: Id,
27
83
  requestId: IdOrNull,
28
- messageType: MessageType,
29
- messageBody: any,
84
+ message: Message,
85
+ body: any,
30
86
  ) => void;
31
87
 
32
88
  /**
33
- * The Send type.
89
+ * The Send type describes a function that knows how to dispatch a message as
90
+ * part of the synchronization protocol.
91
+ * @param toClientId The optional Id of the other client (in other words, the
92
+ * other system) to which the message should be sent. If omitted, this is to be
93
+ * a broadcast.
94
+ * @param requestId The optional Id of the message, which should be awaited in
95
+ * the response (if requested) to constitute a matched request/response
96
+ * transaction.
97
+ * @param message A number that indicates the type of the message, according to
98
+ * the Message enum.
99
+ * @param body A message-specific payload.
34
100
  * @category Synchronization
101
+ * @since v5.0.0
35
102
  */
36
103
  export type Send = (
37
104
  toClientId: IdOrNull,
38
105
  requestId: IdOrNull,
39
- messageType: MessageType,
40
- messageBody: any,
106
+ message: Message,
107
+ body: any,
41
108
  ) => void;
42
109
 
43
110
  /**
44
- * The SynchronizerStats type.
111
+ * The SynchronizerStats type describes the number of times a Synchronizer
112
+ * object has sent or received data.
113
+ *
114
+ * A SynchronizerStats object is returned from the getSynchronizerStats method.
45
115
  * @category Development
116
+ * @since v5.0.0
46
117
  */
47
118
  export type SynchronizerStats = {
119
+ /**
120
+ * The number of times messages have been sent.
121
+ */
48
122
  sends: number;
123
+ /**
124
+ * The number of times messages has been received.
125
+ */
49
126
  receives: number;
50
127
  };
51
128
 
52
129
  /**
53
- * The Synchronizer interface is a minor extension to the Persister interface.
130
+ * The Synchronizer object lets you synchronize MergeableStore data with another
131
+ * TinyBase client or system.
132
+ *
133
+ * This is useful for sharing data between users, or between devices of a single
134
+ * user. This is especially valuable when there is the possibility that there
135
+ * has been a lack of immediate connectivity between clients and the
136
+ * synchronization requires some negotiation to orchestrate merging the
137
+ * MergeableStore objects together.
138
+ *
139
+ * Creating a Synchronizer depends on the choice of underlying medium over which
140
+ * the synchronization will take place. Options include the createWsSynchronizer
141
+ * function (for a Synchronizer that will sync over web-sockets), and the
142
+ * createLocalSynchronizer function (for a Synchronizer that will sync two
143
+ * MergeableStore objects in memory on one system). The createCustomSynchronizer
144
+ * function can also be used to easily create a fully customized way to send and
145
+ * receive the messages of the synchronization protocol.
54
146
  *
55
- * It provides extra convenience methods for starting and stopping the
56
- * synchronization.
147
+ * Note that, as an interface, it is an extension to the Persister interface,
148
+ * since they share underlying implementations. Think of a Synchronizer as
149
+ * 'persisting' your MergeableStore to another client (and vice-versa).
150
+ * @example
151
+ * This example creates two empty MergeableStore objects, creates a
152
+ * LocalSynchronizer for each, and starts synchronizing them. A change in one
153
+ * becomes evident in the other.
154
+ *
155
+ * ```js
156
+ * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
157
+ * import {createMergeableStore} from 'tinybase';
158
+ *
159
+ * const store1 = createMergeableStore();
160
+ * const store2 = createMergeableStore();
161
+ *
162
+ * const synchronizer1 = createLocalSynchronizer(store1);
163
+ * const synchronizer2 = createLocalSynchronizer(store2);
164
+ *
165
+ * await synchronizer1.startSync();
166
+ * await synchronizer2.startSync();
167
+ *
168
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
169
+ * // ...
170
+ * console.log(store2.getTables());
171
+ * // -> {pets: {fido: {species: 'dog'}}}
57
172
  *
58
- * You should use the createCustomSynchronizer function to create a Synchronizer
59
- * object.
173
+ * store2.setRow('pets', 'felix', {species: 'cat'});
174
+ * // ...
175
+ * console.log(store1.getTables());
176
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
177
+ *
178
+ * synchronizer1.destroy();
179
+ * synchronizer2.destroy();
180
+ * ```
60
181
  * @category Synchronizer
61
182
  * @since v5.0.0
62
183
  */
63
184
  export interface Synchronizer extends Persister<Persists.MergeableStoreOnly> {
64
185
  /**
65
- * The startSync method.
186
+ * The startSync method is used to start the process of synchronization
187
+ * between this instance and another matching Synchronizer.
188
+ *
189
+ * The underlying implementation of a Synchronizer is shared with the
190
+ * Persister framework, and so this startSync method is equivalent to starting
191
+ * both auto-loading (listening to sync messages from other active
192
+ * Synchronizer instances) and auto-saving (sending sync messages to it).
193
+ *
194
+ * This method is asynchronous so you should you `await` calls to this method
195
+ * or handle the return type natively as a Promise.
196
+ * @param initialContent An optional Content object used when no content is
197
+ * available from another other peer Synchronizer instances.
198
+ * @returns A Promise containing a reference to the Synchronizer object.
199
+ * @example
200
+ * This example creates two empty MergeableStore objects, creates a
201
+ * LocalSynchronizer for each, and starts synchronizing them. A change in one
202
+ * becomes evident in the other.
203
+ *
204
+ * ```js
205
+ * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
206
+ * import {createMergeableStore} from 'tinybase';
207
+ *
208
+ * const store1 = createMergeableStore();
209
+ * const store2 = createMergeableStore();
210
+ *
211
+ * const synchronizer1 = createLocalSynchronizer(store1);
212
+ * const synchronizer2 = createLocalSynchronizer(store2);
213
+ *
214
+ * await synchronizer1.startSync();
215
+ * await synchronizer2.startSync();
216
+ *
217
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
218
+ * // ...
219
+ * console.log(store2.getTables());
220
+ * // -> {pets: {fido: {species: 'dog'}}}
221
+ *
222
+ * store2.setRow('pets', 'felix', {species: 'cat'});
223
+ * // ...
224
+ * console.log(store1.getTables());
225
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
226
+ *
227
+ * synchronizer1.destroy();
228
+ * synchronizer2.destroy();
229
+ * ```
230
+ * @example
231
+ * This example creates two empty MergeableStore objects, creates a
232
+ * LocalSynchronizer for each, and starts synchronizing them with default
233
+ * content. The default content from the first Synchronizer's startSync method
234
+ * ends up populated in both MergeableStore instances: by the time the second
235
+ * started, the first was available to synchronize with and its default was
236
+ * not needed.
237
+ *
238
+ * ```js
239
+ * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
240
+ * import {createMergeableStore} from 'tinybase';
241
+ *
242
+ * const store1 = createMergeableStore();
243
+ * const store2 = createMergeableStore();
244
+ *
245
+ * const synchronizer1 = createLocalSynchronizer(store1);
246
+ * const synchronizer2 = createLocalSynchronizer(store2);
247
+ *
248
+ * await synchronizer1.startSync([{pets: {fido: {species: 'dog'}}}, {}]);
249
+ * await synchronizer2.startSync([{pets: {felix: {species: 'cat'}}}, {}]);
250
+ *
251
+ * // ...
252
+ *
253
+ * console.log(store1.getTables());
254
+ * // -> {pets: {fido: {species: 'dog'}}}
255
+ * console.log(store2.getTables());
256
+ * // -> {pets: {fido: {species: 'dog'}}}
257
+ *
258
+ * synchronizer1.destroy();
259
+ * synchronizer2.destroy();
260
+ * ```
66
261
  * @category Synchronization
262
+ * @since v5.0.0
67
263
  */
68
264
  startSync(initialContent?: Content): Promise<this>;
69
265
  /**
70
- * The stopSync method.
266
+ * The stopSync method is used to stop the process of synchronization between
267
+ * this instance and another matching Synchronizer.
268
+ *
269
+ * The underlying implementation of a Synchronizer is shared with the
270
+ * Persister framework, and so this startSync method is equivalent to stopping
271
+ * both auto-loading (listening to sync messages from other active
272
+ * Synchronizer instances) and auto-saving (sending sync messages to them).
273
+ * @returns A reference to the Synchronizer object.
274
+ * @example
275
+ * This example creates two empty MergeableStore objects, creates a
276
+ * LocalSynchronizer for each, and starts - then stops - synchronizing them.
277
+ * Subsequent changes are not merged.
278
+ *
279
+ * ```js
280
+ * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
281
+ * import {createMergeableStore} from 'tinybase';
282
+ *
283
+ * const store1 = createMergeableStore();
284
+ * const synchronizer1 = createLocalSynchronizer(store1);
285
+ * await synchronizer1.startSync();
286
+ *
287
+ * const store2 = createMergeableStore();
288
+ * const synchronizer2 = createLocalSynchronizer(store2);
289
+ * await synchronizer2.startSync();
290
+ *
291
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
292
+ * // ...
293
+ * console.log(store1.getTables());
294
+ * // -> {pets: {fido: {species: 'dog'}}}
295
+ * console.log(store2.getTables());
296
+ * // -> {pets: {fido: {species: 'dog'}}}
297
+ *
298
+ * synchronizer1.stopSync();
299
+ * synchronizer2.stopSync();
300
+ *
301
+ * store1.setCell('pets', 'fido', 'color', 'brown');
302
+ * // ...
303
+ * console.log(store1.getTables());
304
+ * // -> {pets: {fido: {species: 'dog', color: 'brown'}}}
305
+ * console.log(store2.getTables());
306
+ * // -> {pets: {fido: {species: 'dog'}}}
307
+ *
308
+ * synchronizer1.destroy();
309
+ * synchronizer2.destroy();
310
+ * ```
71
311
  * @category Synchronization
312
+ * @since v5.0.0
72
313
  */
73
314
  stopSync(): this;
74
315
  /**
75
- * The getSynchronizerStats method.
316
+ * The getSynchronizerStats method provides a set of statistics about the
317
+ * Synchronizer, and is used for debugging purposes.
318
+ *
319
+ * The SynchronizerStats object contains a count of the number of times the
320
+ * Persister has sent and received messages.
321
+ *
322
+ * The method is intended to be used during development to ensure your
323
+ * synchronization layer is acting as expected, for example.
324
+ * @returns A SynchronizerStats object containing Synchronizer send and
325
+ * receive statistics.
326
+ * @example
327
+ * This example gets the send and receive statistics of two active
328
+ * Synchronizer instances.
329
+ *
330
+ * ```js
331
+ * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
332
+ * import {createMergeableStore} from 'tinybase';
333
+ *
334
+ * const store1 = createMergeableStore();
335
+ * const store2 = createMergeableStore();
336
+ *
337
+ * const synchronizer1 = createLocalSynchronizer(store1);
338
+ * const synchronizer2 = createLocalSynchronizer(store2);
339
+ *
340
+ * await synchronizer1.startSync();
341
+ * await synchronizer2.startSync();
342
+ *
343
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
344
+ * // ...
345
+ * store2.setRow('pets', 'felix', {species: 'cat'});
346
+ * // ...
347
+ *
348
+ * console.log(synchronizer1.getSynchronizerStats());
349
+ * // -> {receives: 4, sends: 5}
350
+ * console.log(synchronizer2.getSynchronizerStats());
351
+ * // -> {receives: 5, sends: 4}
352
+ *
353
+ * synchronizer1.destroy();
354
+ * synchronizer2.destroy();
355
+ * ```
76
356
  * @category Synchronization
357
+ * @since v5.0.0
77
358
  */
78
359
  getSynchronizerStats(): SynchronizerStats;
79
360
  }
@@ -84,50 +365,81 @@ export interface Synchronizer extends Persister<Persists.MergeableStoreOnly> {
84
365
  *
85
366
  * As well as providing a reference to the MergeableStore to synchronize, you
86
367
  * must provide parameters which identify how to send and receive changes to and
87
- * from this MergeableStore and its peers.
368
+ * from this MergeableStore and its peers. This is entirely dependent upon the
369
+ * medium of communication used.
88
370
  * @param store The MergeableStore to synchronize.
89
371
  * @param send A Send function for sending a message.
90
- * @param onReceive A callback to register a Receive function for receiving a
91
- * message.
372
+ * @param onReceive A callback (called once when the Synchronizer is created)
373
+ * that is passed a Receive function that you need to ensure can receive
374
+ * messages.
92
375
  * @param destroy A function called when destroying the Persister which can be
93
376
  * used to clean up underlying resources.
94
377
  * @param requestTimeoutSeconds An number of seconds before a request sent from
95
378
  * this Persister to another peer times out.
96
379
  * @param onIgnoredError An optional handler for the errors that the
97
- * Synchronizer would otherwise ignore when trying to save or load data. This is
380
+ * Synchronizer would otherwise ignore when trying to synchronize data. This is
98
381
  * suitable for debugging synchronization issues in a development environment.
99
382
  * @returns A reference to the new Synchronizer object.
100
383
  * @example
101
- * This example creates a Synchronizer object and synchronizes one
102
- * MergeableStore to another.
384
+ * This example creates a function for creating custom Synchronizer objects via
385
+ * a very naive pair of message buses (which are first-in, first-out). Each
386
+ * Synchronizer can write to the other's bus, and they each poll to read from
387
+ * their own. The example then uses these Synchronizer instances to sync two
388
+ * MergeableStore objects together
103
389
  *
104
390
  * ```js
105
- * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
106
- * import {createMergeableStore} from 'tinybase';
391
+ * import {
392
+ * createCustomSynchronizer,
393
+ * createMergeableStore,
394
+ * getUniqueId,
395
+ * } from 'tinybase';
107
396
  *
108
- * const store1 = createMergeableStore('store1').setTables({
109
- * pets: {fido: {species: 'dog'}},
110
- * });
111
- * const synchronizer1 = createLocalSynchronizer(store1);
397
+ * const bus1 = [];
398
+ * const bus2 = [];
112
399
  *
113
- * const store2 = createMergeableStore('store2');
114
- * const synchronizer2 = createLocalSynchronizer(store2);
400
+ * const createBusSynchronizer = (store, localBus, remoteBus) => {
401
+ * let timer;
402
+ * const clientId = getUniqueId();
403
+ * return createCustomSynchronizer(
404
+ * store,
405
+ * (toClientId, requestId, message, body) => {
406
+ * // send
407
+ * remoteBus.push([clientId, requestId, message, body]);
408
+ * },
409
+ * (receive) => {
410
+ * // onReceive
411
+ * timer = setInterval(() => {
412
+ * if (localBus.length > 0) {
413
+ * receive(...localBus.shift());
414
+ * }
415
+ * }, 1);
416
+ * },
417
+ * () => clearInterval(timer), // destroy
418
+ * 1,
419
+ * );
420
+ * };
421
+ *
422
+ * const store1 = createMergeableStore();
423
+ * const store2 = createMergeableStore();
424
+ *
425
+ * const synchronizer1 = createBusSynchronizer(store1, bus1, bus2);
426
+ * const synchronizer2 = createBusSynchronizer(store2, bus2, bus1);
427
+ *
428
+ * await synchronizer1.startSync();
115
429
  * await synchronizer2.startSync();
116
430
  *
117
- * await synchronizer1.save();
431
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
118
432
  * // ...
119
- * // Store2 will be synced with Store1.
120
- *
433
+ * console.log(store1.getTables());
434
+ * // -> {pets: {fido: {species: 'dog'}}}
121
435
  * console.log(store2.getTables());
122
436
  * // -> {pets: {fido: {species: 'dog'}}}
123
437
  *
124
- * await synchronizer1.load();
125
- * // Store1 will be synced with Store2.
126
- *
127
438
  * synchronizer1.destroy();
128
439
  * synchronizer2.destroy();
129
440
  * ```
130
441
  * @category Creation
442
+ * @since v5.0.0
131
443
  */
132
444
  export function createCustomSynchronizer(
133
445
  store: MergeableStore,
@@ -12,14 +12,74 @@ import type {MergeableStore} from '../../mergeable-store/index.d.cts';
12
12
  import type {Synchronizer} from '../index.d.cts';
13
13
 
14
14
  /**
15
- * The LocalSynchronizer interface.
15
+ * The LocalSynchronizer interface represents a Synchronizer that lets you
16
+ * synchronize MergeableStore data to and from other MergeableStore instances on
17
+ * the same local machine.
18
+ *
19
+ * Having no specialized methods, it is a synonym for the Synchronizer
20
+ * interface. This is also something of a showcase Synchronizer, rather than
21
+ * something you would use in a production environment. If you _do_ need to
22
+ * synchronize two in-memory MergeableStore instances, you may prefer to use the
23
+ * merge function on either one of them instead of going to the effort of
24
+ * setting up this Synchronizer.
25
+ *
26
+ * You should use the createLocalSynchronizer function to create a
27
+ * LocalSynchronizer object.
16
28
  * @category Synchronizer
29
+ * @since v5.0.0
17
30
  */
18
31
  export interface LocalSynchronizer extends Synchronizer {}
19
32
 
20
33
  /**
21
- * The createLocalSynchronizer function.
34
+ * The createLocalSynchronizer function creates a LocalSynchronizer object that
35
+ * can synchronize MergeableStore data to and from other MergeableStore
36
+ * instances on the same local machine.
37
+ *
38
+ * This is something of a showcase Synchronizer, rather than something you would
39
+ * use in a production environment. If you _do_ need to synchronize two
40
+ * in-memory MergeableStore instances, you may prefer to use the merge function
41
+ * on either one of them instead of going to the effort of setting up this
42
+ * Synchronizer.
43
+ *
44
+ * As well as providing a reference to the MergeableStore to persist, you can
45
+ * provide a handler for any otherwise ignored synchronization errors.
46
+ * @param store The MergeableStore to synchronize.
47
+ * @param onIgnoredError An optional handler for the errors that the
48
+ * Synchronizer would otherwise ignore when trying to synchronize data. This is
49
+ * suitable for debugging synchronization issues in a development environment.
50
+ * @returns A reference to the new LocalSynchronizer object.
51
+ * @example
52
+ * This example creates a LocalSynchronizer object and synchronizes one
53
+ * MergeableStore to another.
54
+ *
55
+ * ```js
56
+ * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
57
+ * import {createMergeableStore} from 'tinybase';
58
+ *
59
+ * const store1 = createMergeableStore('store1').setTables({
60
+ * pets: {fido: {species: 'dog'}},
61
+ * });
62
+ * const synchronizer1 = createLocalSynchronizer(store1);
63
+ *
64
+ * const store2 = createMergeableStore('store2');
65
+ * const synchronizer2 = createLocalSynchronizer(store2);
66
+ * await synchronizer2.startSync();
67
+ *
68
+ * await synchronizer1.save();
69
+ * // ...
70
+ * // Store2 will be synced with Store1.
71
+ *
72
+ * console.log(store2.getTables());
73
+ * // -> {pets: {fido: {species: 'dog'}}}
74
+ *
75
+ * await synchronizer1.load();
76
+ * // Store1 will be synced with Store2.
77
+ *
78
+ * synchronizer1.destroy();
79
+ * synchronizer2.destroy();
80
+ * ```
22
81
  * @category Creation
82
+ * @since v5.0.0
23
83
  */
24
84
  export function createLocalSynchronizer(
25
85
  store: MergeableStore,
@@ -12,14 +12,74 @@ import type {MergeableStore} from '../../mergeable-store/index.d.ts';
12
12
  import type {Synchronizer} from '../index.d.ts';
13
13
 
14
14
  /**
15
- * The LocalSynchronizer interface.
15
+ * The LocalSynchronizer interface represents a Synchronizer that lets you
16
+ * synchronize MergeableStore data to and from other MergeableStore instances on
17
+ * the same local machine.
18
+ *
19
+ * Having no specialized methods, it is a synonym for the Synchronizer
20
+ * interface. This is also something of a showcase Synchronizer, rather than
21
+ * something you would use in a production environment. If you _do_ need to
22
+ * synchronize two in-memory MergeableStore instances, you may prefer to use the
23
+ * merge function on either one of them instead of going to the effort of
24
+ * setting up this Synchronizer.
25
+ *
26
+ * You should use the createLocalSynchronizer function to create a
27
+ * LocalSynchronizer object.
16
28
  * @category Synchronizer
29
+ * @since v5.0.0
17
30
  */
18
31
  export interface LocalSynchronizer extends Synchronizer {}
19
32
 
20
33
  /**
21
- * The createLocalSynchronizer function.
34
+ * The createLocalSynchronizer function creates a LocalSynchronizer object that
35
+ * can synchronize MergeableStore data to and from other MergeableStore
36
+ * instances on the same local machine.
37
+ *
38
+ * This is something of a showcase Synchronizer, rather than something you would
39
+ * use in a production environment. If you _do_ need to synchronize two
40
+ * in-memory MergeableStore instances, you may prefer to use the merge function
41
+ * on either one of them instead of going to the effort of setting up this
42
+ * Synchronizer.
43
+ *
44
+ * As well as providing a reference to the MergeableStore to persist, you can
45
+ * provide a handler for any otherwise ignored synchronization errors.
46
+ * @param store The MergeableStore to synchronize.
47
+ * @param onIgnoredError An optional handler for the errors that the
48
+ * Synchronizer would otherwise ignore when trying to synchronize data. This is
49
+ * suitable for debugging synchronization issues in a development environment.
50
+ * @returns A reference to the new LocalSynchronizer object.
51
+ * @example
52
+ * This example creates a LocalSynchronizer object and synchronizes one
53
+ * MergeableStore to another.
54
+ *
55
+ * ```js
56
+ * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
57
+ * import {createMergeableStore} from 'tinybase';
58
+ *
59
+ * const store1 = createMergeableStore('store1').setTables({
60
+ * pets: {fido: {species: 'dog'}},
61
+ * });
62
+ * const synchronizer1 = createLocalSynchronizer(store1);
63
+ *
64
+ * const store2 = createMergeableStore('store2');
65
+ * const synchronizer2 = createLocalSynchronizer(store2);
66
+ * await synchronizer2.startSync();
67
+ *
68
+ * await synchronizer1.save();
69
+ * // ...
70
+ * // Store2 will be synced with Store1.
71
+ *
72
+ * console.log(store2.getTables());
73
+ * // -> {pets: {fido: {species: 'dog'}}}
74
+ *
75
+ * await synchronizer1.load();
76
+ * // Store1 will be synced with Store2.
77
+ *
78
+ * synchronizer1.destroy();
79
+ * synchronizer2.destroy();
80
+ * ```
22
81
  * @category Creation
82
+ * @since v5.0.0
23
83
  */
24
84
  export function createLocalSynchronizer(
25
85
  store: MergeableStore,