tinybase 5.1.0-beta.0 → 5.1.0

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 (955) hide show
  1. package/@types/persisters/index.d.cts +3 -1
  2. package/@types/persisters/index.d.ts +3 -1
  3. package/@types/persisters/with-schemas/index.d.cts +3 -1
  4. package/@types/persisters/with-schemas/index.d.ts +3 -1
  5. package/@types/synchronizers/index.d.cts +39 -23
  6. package/@types/synchronizers/index.d.ts +39 -23
  7. package/@types/synchronizers/synchronizer-broadcast-channel/index.d.cts +12 -1
  8. package/@types/synchronizers/synchronizer-broadcast-channel/index.d.ts +12 -1
  9. package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts +14 -1
  10. package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +14 -1
  11. package/@types/synchronizers/synchronizer-local/index.d.cts +12 -3
  12. package/@types/synchronizers/synchronizer-local/index.d.ts +12 -3
  13. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +14 -3
  14. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +14 -3
  15. package/@types/synchronizers/synchronizer-ws-client/index.d.cts +13 -1
  16. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +13 -1
  17. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +15 -1
  18. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +15 -1
  19. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +157 -29
  20. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +157 -29
  21. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +178 -29
  22. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +178 -29
  23. package/@types/synchronizers/with-schemas/index.d.cts +41 -23
  24. package/@types/synchronizers/with-schemas/index.d.ts +41 -23
  25. package/@types/ui-react/index.d.cts +62 -45
  26. package/@types/ui-react/index.d.ts +62 -45
  27. package/@types/ui-react/with-schemas/index.d.cts +83 -59
  28. package/@types/ui-react/with-schemas/index.d.ts +83 -59
  29. package/cjs/es6/index.cjs +114 -92
  30. package/cjs/es6/mergeable-store/index.cjs +9 -5
  31. package/cjs/es6/mergeable-store/with-schemas/index.cjs +9 -5
  32. package/cjs/es6/min/index.cjs +1 -1
  33. package/cjs/es6/min/index.cjs.gz +0 -0
  34. package/cjs/es6/min/mergeable-store/index.cjs +1 -1
  35. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  36. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
  37. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  38. package/cjs/es6/min/persisters/index.cjs +1 -1
  39. package/cjs/es6/min/persisters/index.cjs.gz +0 -0
  40. package/cjs/es6/min/persisters/persister-automerge/index.cjs +1 -1
  41. package/cjs/es6/min/persisters/persister-automerge/index.cjs.gz +0 -0
  42. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  43. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  44. package/cjs/es6/min/persisters/persister-browser/index.cjs +1 -1
  45. package/cjs/es6/min/persisters/persister-browser/index.cjs.gz +0 -0
  46. package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs +1 -1
  47. package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs.gz +0 -0
  48. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  49. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  50. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  51. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  52. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  53. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  54. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  55. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  56. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  57. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  58. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  59. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  60. package/cjs/es6/min/persisters/persister-file/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-file/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/persisters/persister-indexed-db/index.cjs +1 -1
  65. package/cjs/es6/min/persisters/persister-indexed-db/index.cjs.gz +0 -0
  66. package/cjs/es6/min/persisters/persister-indexed-db/with-schemas/index.cjs +1 -1
  67. package/cjs/es6/min/persisters/persister-indexed-db/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  69. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  70. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  71. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/es6/min/persisters/persister-partykit-client/index.cjs +1 -1
  73. package/cjs/es6/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
  74. package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  77. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  78. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  79. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  80. package/cjs/es6/min/persisters/persister-remote/index.cjs +1 -1
  81. package/cjs/es6/min/persisters/persister-remote/index.cjs.gz +0 -0
  82. package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs +1 -1
  83. package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs.gz +0 -0
  84. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  85. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  86. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  87. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  88. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  89. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  90. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  91. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  92. package/cjs/es6/min/persisters/persister-yjs/index.cjs +1 -1
  93. package/cjs/es6/min/persisters/persister-yjs/index.cjs.gz +0 -0
  94. package/cjs/es6/min/persisters/persister-yjs/with-schemas/index.cjs +1 -1
  95. package/cjs/es6/min/persisters/persister-yjs/with-schemas/index.cjs.gz +0 -0
  96. package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
  97. package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
  98. package/cjs/es6/min/store/index.cjs +1 -1
  99. package/cjs/es6/min/store/index.cjs.gz +0 -0
  100. package/cjs/es6/min/store/with-schemas/index.cjs +1 -1
  101. package/cjs/es6/min/store/with-schemas/index.cjs.gz +0 -0
  102. package/cjs/es6/min/synchronizers/index.cjs +1 -1
  103. package/cjs/es6/min/synchronizers/index.cjs.gz +0 -0
  104. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -1
  105. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  106. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -1
  107. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  108. package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs +1 -1
  109. package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  110. package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
  111. package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs.gz +0 -0
  112. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  113. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  114. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  115. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  116. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  117. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  118. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  119. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  120. package/cjs/es6/min/synchronizers/with-schemas/index.cjs +1 -1
  121. package/cjs/es6/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  122. package/cjs/es6/min/ui-react/index.cjs +1 -1
  123. package/cjs/es6/min/ui-react/index.cjs.gz +0 -0
  124. package/cjs/es6/min/ui-react/with-schemas/index.cjs +1 -1
  125. package/cjs/es6/min/ui-react/with-schemas/index.cjs.gz +0 -0
  126. package/cjs/es6/min/ui-react-inspector/index.cjs +1 -1
  127. package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
  128. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  129. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  130. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  131. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  132. package/cjs/es6/persisters/index.cjs +34 -22
  133. package/cjs/es6/persisters/persister-automerge/index.cjs +33 -25
  134. package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +33 -25
  135. package/cjs/es6/persisters/persister-browser/index.cjs +39 -31
  136. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +39 -31
  137. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +33 -25
  138. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +33 -25
  139. package/cjs/es6/persisters/persister-electric-sql/index.cjs +33 -25
  140. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +33 -25
  141. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +33 -25
  142. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +33 -25
  143. package/cjs/es6/persisters/persister-file/index.cjs +45 -32
  144. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +45 -32
  145. package/cjs/es6/persisters/persister-indexed-db/index.cjs +33 -25
  146. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +33 -25
  147. package/cjs/es6/persisters/persister-libsql/index.cjs +289 -281
  148. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +289 -281
  149. package/cjs/es6/persisters/persister-partykit-client/index.cjs +33 -25
  150. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +33 -25
  151. package/cjs/es6/persisters/persister-powersync/index.cjs +33 -25
  152. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +33 -25
  153. package/cjs/es6/persisters/persister-remote/index.cjs +39 -31
  154. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +39 -31
  155. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +33 -25
  156. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +33 -25
  157. package/cjs/es6/persisters/persister-sqlite3/index.cjs +33 -25
  158. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +33 -25
  159. package/cjs/es6/persisters/persister-yjs/index.cjs +33 -25
  160. package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +33 -25
  161. package/cjs/es6/persisters/with-schemas/index.cjs +34 -22
  162. package/cjs/es6/store/index.cjs +9 -5
  163. package/cjs/es6/store/with-schemas/index.cjs +9 -5
  164. package/cjs/es6/synchronizers/index.cjs +117 -103
  165. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +113 -105
  166. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +113 -105
  167. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +112 -106
  168. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +112 -106
  169. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +134 -120
  170. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +134 -120
  171. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +694 -37
  172. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +694 -37
  173. package/cjs/es6/synchronizers/with-schemas/index.cjs +117 -103
  174. package/cjs/es6/ui-react/index.cjs +14 -34
  175. package/cjs/es6/ui-react/with-schemas/index.cjs +14 -34
  176. package/cjs/es6/ui-react-inspector/index.cjs +39 -30
  177. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +39 -30
  178. package/cjs/es6/with-schemas/index.cjs +114 -92
  179. package/cjs/index.cjs +118 -97
  180. package/cjs/indexes/index.cjs +1 -1
  181. package/cjs/indexes/with-schemas/index.cjs +1 -1
  182. package/cjs/mergeable-store/index.cjs +9 -5
  183. package/cjs/mergeable-store/with-schemas/index.cjs +9 -5
  184. package/cjs/metrics/index.cjs +3 -3
  185. package/cjs/metrics/with-schemas/index.cjs +3 -3
  186. package/cjs/min/index.cjs +1 -1
  187. package/cjs/min/index.cjs.gz +0 -0
  188. package/cjs/min/mergeable-store/index.cjs +1 -1
  189. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  190. package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
  191. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  192. package/cjs/min/persisters/index.cjs +1 -1
  193. package/cjs/min/persisters/index.cjs.gz +0 -0
  194. package/cjs/min/persisters/persister-automerge/index.cjs +1 -1
  195. package/cjs/min/persisters/persister-automerge/index.cjs.gz +0 -0
  196. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  197. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  198. package/cjs/min/persisters/persister-browser/index.cjs +1 -1
  199. package/cjs/min/persisters/persister-browser/index.cjs.gz +0 -0
  200. package/cjs/min/persisters/persister-browser/with-schemas/index.cjs +1 -1
  201. package/cjs/min/persisters/persister-browser/with-schemas/index.cjs.gz +0 -0
  202. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  203. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  204. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  205. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  206. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  207. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  208. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  209. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  210. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  211. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  212. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  213. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  214. package/cjs/min/persisters/persister-file/index.cjs +1 -1
  215. package/cjs/min/persisters/persister-file/index.cjs.gz +0 -0
  216. package/cjs/min/persisters/persister-file/with-schemas/index.cjs +1 -1
  217. package/cjs/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
  218. package/cjs/min/persisters/persister-indexed-db/index.cjs +1 -1
  219. package/cjs/min/persisters/persister-indexed-db/index.cjs.gz +0 -0
  220. package/cjs/min/persisters/persister-indexed-db/with-schemas/index.cjs +1 -1
  221. package/cjs/min/persisters/persister-indexed-db/with-schemas/index.cjs.gz +0 -0
  222. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  223. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  224. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  225. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  226. package/cjs/min/persisters/persister-partykit-client/index.cjs +1 -1
  227. package/cjs/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
  228. package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
  229. package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
  230. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  231. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  232. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  233. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  234. package/cjs/min/persisters/persister-remote/index.cjs +1 -1
  235. package/cjs/min/persisters/persister-remote/index.cjs.gz +0 -0
  236. package/cjs/min/persisters/persister-remote/with-schemas/index.cjs +1 -1
  237. package/cjs/min/persisters/persister-remote/with-schemas/index.cjs.gz +0 -0
  238. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  239. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  240. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  241. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  242. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  243. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  244. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  245. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  246. package/cjs/min/persisters/persister-yjs/index.cjs +1 -1
  247. package/cjs/min/persisters/persister-yjs/index.cjs.gz +0 -0
  248. package/cjs/min/persisters/persister-yjs/with-schemas/index.cjs +1 -1
  249. package/cjs/min/persisters/persister-yjs/with-schemas/index.cjs.gz +0 -0
  250. package/cjs/min/persisters/with-schemas/index.cjs +1 -1
  251. package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
  252. package/cjs/min/store/index.cjs +1 -1
  253. package/cjs/min/store/index.cjs.gz +0 -0
  254. package/cjs/min/store/with-schemas/index.cjs +1 -1
  255. package/cjs/min/store/with-schemas/index.cjs.gz +0 -0
  256. package/cjs/min/synchronizers/index.cjs +1 -1
  257. package/cjs/min/synchronizers/index.cjs.gz +0 -0
  258. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -1
  259. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  260. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -1
  261. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  262. package/cjs/min/synchronizers/synchronizer-local/index.cjs +1 -1
  263. package/cjs/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  264. package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
  265. package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs.gz +0 -0
  266. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  267. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  268. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  269. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  270. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  271. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  272. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  273. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  274. package/cjs/min/synchronizers/with-schemas/index.cjs +1 -1
  275. package/cjs/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  276. package/cjs/min/ui-react/index.cjs +1 -1
  277. package/cjs/min/ui-react/index.cjs.gz +0 -0
  278. package/cjs/min/ui-react/with-schemas/index.cjs +1 -1
  279. package/cjs/min/ui-react/with-schemas/index.cjs.gz +0 -0
  280. package/cjs/min/ui-react-inspector/index.cjs +1 -1
  281. package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
  282. package/cjs/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  283. package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  284. package/cjs/min/with-schemas/index.cjs +1 -1
  285. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  286. package/cjs/persisters/index.cjs +32 -20
  287. package/cjs/persisters/persister-automerge/index.cjs +31 -23
  288. package/cjs/persisters/persister-automerge/with-schemas/index.cjs +31 -23
  289. package/cjs/persisters/persister-browser/index.cjs +37 -29
  290. package/cjs/persisters/persister-browser/with-schemas/index.cjs +37 -29
  291. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +32 -24
  292. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +32 -24
  293. package/cjs/persisters/persister-electric-sql/index.cjs +32 -24
  294. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +32 -24
  295. package/cjs/persisters/persister-expo-sqlite/index.cjs +32 -24
  296. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +32 -24
  297. package/cjs/persisters/persister-file/index.cjs +43 -30
  298. package/cjs/persisters/persister-file/with-schemas/index.cjs +43 -30
  299. package/cjs/persisters/persister-indexed-db/index.cjs +31 -23
  300. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +31 -23
  301. package/cjs/persisters/persister-libsql/index.cjs +197 -189
  302. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +197 -189
  303. package/cjs/persisters/persister-partykit-client/index.cjs +31 -23
  304. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +31 -23
  305. package/cjs/persisters/persister-powersync/index.cjs +32 -24
  306. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +32 -24
  307. package/cjs/persisters/persister-remote/index.cjs +37 -29
  308. package/cjs/persisters/persister-remote/with-schemas/index.cjs +37 -29
  309. package/cjs/persisters/persister-sqlite-wasm/index.cjs +32 -24
  310. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +32 -24
  311. package/cjs/persisters/persister-sqlite3/index.cjs +32 -24
  312. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +32 -24
  313. package/cjs/persisters/persister-yjs/index.cjs +33 -25
  314. package/cjs/persisters/persister-yjs/with-schemas/index.cjs +33 -25
  315. package/cjs/persisters/with-schemas/index.cjs +32 -20
  316. package/cjs/queries/index.cjs +2 -2
  317. package/cjs/queries/with-schemas/index.cjs +2 -2
  318. package/cjs/relationships/index.cjs +1 -1
  319. package/cjs/relationships/with-schemas/index.cjs +1 -1
  320. package/cjs/store/index.cjs +9 -5
  321. package/cjs/store/with-schemas/index.cjs +9 -5
  322. package/cjs/synchronizers/index.cjs +109 -96
  323. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +105 -98
  324. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +105 -98
  325. package/cjs/synchronizers/synchronizer-local/index.cjs +104 -99
  326. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +104 -99
  327. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +123 -113
  328. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +123 -113
  329. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +527 -24
  330. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +527 -24
  331. package/cjs/synchronizers/with-schemas/index.cjs +109 -96
  332. package/cjs/ui-react/index.cjs +12 -12
  333. package/cjs/ui-react/with-schemas/index.cjs +12 -12
  334. package/cjs/ui-react-inspector/index.cjs +37 -28
  335. package/cjs/ui-react-inspector/with-schemas/index.cjs +37 -28
  336. package/cjs/with-schemas/index.cjs +118 -97
  337. package/es6/index.js +114 -92
  338. package/es6/mergeable-store/index.js +9 -5
  339. package/es6/mergeable-store/with-schemas/index.js +9 -5
  340. package/es6/min/index.js +1 -1
  341. package/es6/min/index.js.gz +0 -0
  342. package/es6/min/mergeable-store/index.js +1 -1
  343. package/es6/min/mergeable-store/index.js.gz +0 -0
  344. package/es6/min/mergeable-store/with-schemas/index.js +1 -1
  345. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  346. package/es6/min/persisters/index.js +1 -1
  347. package/es6/min/persisters/index.js.gz +0 -0
  348. package/es6/min/persisters/persister-automerge/index.js +1 -1
  349. package/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  350. package/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  351. package/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  352. package/es6/min/persisters/persister-browser/index.js +1 -1
  353. package/es6/min/persisters/persister-browser/index.js.gz +0 -0
  354. package/es6/min/persisters/persister-browser/with-schemas/index.js +1 -1
  355. package/es6/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  356. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  357. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  358. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  359. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  360. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  361. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  362. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  363. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  364. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  365. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  366. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  367. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  368. package/es6/min/persisters/persister-file/index.js +1 -1
  369. package/es6/min/persisters/persister-file/index.js.gz +0 -0
  370. package/es6/min/persisters/persister-file/with-schemas/index.js +1 -1
  371. package/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  372. package/es6/min/persisters/persister-indexed-db/index.js +1 -1
  373. package/es6/min/persisters/persister-indexed-db/index.js.gz +0 -0
  374. package/es6/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  375. package/es6/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  376. package/es6/min/persisters/persister-libsql/index.js +1 -1
  377. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  378. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  379. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  380. package/es6/min/persisters/persister-partykit-client/index.js +1 -1
  381. package/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
  382. package/es6/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  383. package/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  384. package/es6/min/persisters/persister-powersync/index.js +1 -1
  385. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  386. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  387. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  388. package/es6/min/persisters/persister-remote/index.js +1 -1
  389. package/es6/min/persisters/persister-remote/index.js.gz +0 -0
  390. package/es6/min/persisters/persister-remote/with-schemas/index.js +1 -1
  391. package/es6/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  392. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  393. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  394. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  395. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  396. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  397. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  398. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  399. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  400. package/es6/min/persisters/persister-yjs/index.js +1 -1
  401. package/es6/min/persisters/persister-yjs/index.js.gz +0 -0
  402. package/es6/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  403. package/es6/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  404. package/es6/min/persisters/with-schemas/index.js +1 -1
  405. package/es6/min/persisters/with-schemas/index.js.gz +0 -0
  406. package/es6/min/store/index.js +1 -1
  407. package/es6/min/store/index.js.gz +0 -0
  408. package/es6/min/store/with-schemas/index.js +1 -1
  409. package/es6/min/store/with-schemas/index.js.gz +0 -0
  410. package/es6/min/synchronizers/index.js +1 -1
  411. package/es6/min/synchronizers/index.js.gz +0 -0
  412. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  413. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  414. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  415. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  416. package/es6/min/synchronizers/synchronizer-local/index.js +1 -1
  417. package/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  418. package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  419. package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  420. package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  421. package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  422. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  423. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  424. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  425. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  426. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  427. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  428. package/es6/min/synchronizers/with-schemas/index.js +1 -1
  429. package/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  430. package/es6/min/ui-react/index.js +1 -1
  431. package/es6/min/ui-react/index.js.gz +0 -0
  432. package/es6/min/ui-react/with-schemas/index.js +1 -1
  433. package/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  434. package/es6/min/ui-react-inspector/index.js +1 -1
  435. package/es6/min/ui-react-inspector/index.js.gz +0 -0
  436. package/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  437. package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  438. package/es6/min/with-schemas/index.js +1 -1
  439. package/es6/min/with-schemas/index.js.gz +0 -0
  440. package/es6/persisters/index.js +34 -22
  441. package/es6/persisters/persister-automerge/index.js +33 -25
  442. package/es6/persisters/persister-automerge/with-schemas/index.js +33 -25
  443. package/es6/persisters/persister-browser/index.js +39 -31
  444. package/es6/persisters/persister-browser/with-schemas/index.js +39 -31
  445. package/es6/persisters/persister-cr-sqlite-wasm/index.js +33 -25
  446. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +33 -25
  447. package/es6/persisters/persister-electric-sql/index.js +33 -25
  448. package/es6/persisters/persister-electric-sql/with-schemas/index.js +33 -25
  449. package/es6/persisters/persister-expo-sqlite/index.js +33 -25
  450. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +33 -25
  451. package/es6/persisters/persister-file/index.js +46 -32
  452. package/es6/persisters/persister-file/with-schemas/index.js +46 -32
  453. package/es6/persisters/persister-indexed-db/index.js +33 -25
  454. package/es6/persisters/persister-indexed-db/with-schemas/index.js +33 -25
  455. package/es6/persisters/persister-libsql/index.js +289 -281
  456. package/es6/persisters/persister-libsql/with-schemas/index.js +289 -281
  457. package/es6/persisters/persister-partykit-client/index.js +33 -25
  458. package/es6/persisters/persister-partykit-client/with-schemas/index.js +33 -25
  459. package/es6/persisters/persister-powersync/index.js +33 -25
  460. package/es6/persisters/persister-powersync/with-schemas/index.js +33 -25
  461. package/es6/persisters/persister-remote/index.js +39 -31
  462. package/es6/persisters/persister-remote/with-schemas/index.js +39 -31
  463. package/es6/persisters/persister-sqlite-wasm/index.js +33 -25
  464. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +33 -25
  465. package/es6/persisters/persister-sqlite3/index.js +33 -25
  466. package/es6/persisters/persister-sqlite3/with-schemas/index.js +33 -25
  467. package/es6/persisters/persister-yjs/index.js +33 -25
  468. package/es6/persisters/persister-yjs/with-schemas/index.js +33 -25
  469. package/es6/persisters/with-schemas/index.js +34 -22
  470. package/es6/store/index.js +9 -5
  471. package/es6/store/with-schemas/index.js +9 -5
  472. package/es6/synchronizers/index.js +117 -103
  473. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +113 -105
  474. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +113 -105
  475. package/es6/synchronizers/synchronizer-local/index.js +112 -106
  476. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +112 -106
  477. package/es6/synchronizers/synchronizer-ws-client/index.js +134 -120
  478. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +134 -120
  479. package/es6/synchronizers/synchronizer-ws-server/index.js +694 -37
  480. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +694 -37
  481. package/es6/synchronizers/with-schemas/index.js +117 -103
  482. package/es6/ui-react/index.js +14 -34
  483. package/es6/ui-react/with-schemas/index.js +14 -34
  484. package/es6/ui-react-inspector/index.js +39 -30
  485. package/es6/ui-react-inspector/with-schemas/index.js +39 -30
  486. package/es6/with-schemas/index.js +114 -92
  487. package/index.js +118 -97
  488. package/indexes/index.js +1 -1
  489. package/indexes/with-schemas/index.js +1 -1
  490. package/mergeable-store/index.js +9 -5
  491. package/mergeable-store/with-schemas/index.js +9 -5
  492. package/metrics/index.js +3 -3
  493. package/metrics/with-schemas/index.js +3 -3
  494. package/min/index.js +1 -1
  495. package/min/index.js.gz +0 -0
  496. package/min/mergeable-store/index.js +1 -1
  497. package/min/mergeable-store/index.js.gz +0 -0
  498. package/min/mergeable-store/with-schemas/index.js +1 -1
  499. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  500. package/min/persisters/index.js +1 -1
  501. package/min/persisters/index.js.gz +0 -0
  502. package/min/persisters/persister-automerge/index.js +1 -1
  503. package/min/persisters/persister-automerge/index.js.gz +0 -0
  504. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  505. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  506. package/min/persisters/persister-browser/index.js +1 -1
  507. package/min/persisters/persister-browser/index.js.gz +0 -0
  508. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  509. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  510. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  511. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  512. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  513. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  514. package/min/persisters/persister-electric-sql/index.js +1 -1
  515. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  516. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  517. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  518. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  519. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  520. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  521. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  522. package/min/persisters/persister-file/index.js +1 -1
  523. package/min/persisters/persister-file/index.js.gz +0 -0
  524. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  525. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  526. package/min/persisters/persister-indexed-db/index.js +1 -1
  527. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  528. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  529. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  530. package/min/persisters/persister-libsql/index.js +1 -1
  531. package/min/persisters/persister-libsql/index.js.gz +0 -0
  532. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  533. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  534. package/min/persisters/persister-partykit-client/index.js +1 -1
  535. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  536. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  537. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  538. package/min/persisters/persister-powersync/index.js +1 -1
  539. package/min/persisters/persister-powersync/index.js.gz +0 -0
  540. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  541. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  542. package/min/persisters/persister-remote/index.js +1 -1
  543. package/min/persisters/persister-remote/index.js.gz +0 -0
  544. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  545. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  546. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  547. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  548. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  549. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  550. package/min/persisters/persister-sqlite3/index.js +1 -1
  551. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  552. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  553. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  554. package/min/persisters/persister-yjs/index.js +1 -1
  555. package/min/persisters/persister-yjs/index.js.gz +0 -0
  556. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  557. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  558. package/min/persisters/with-schemas/index.js +1 -1
  559. package/min/persisters/with-schemas/index.js.gz +0 -0
  560. package/min/store/index.js +1 -1
  561. package/min/store/index.js.gz +0 -0
  562. package/min/store/with-schemas/index.js +1 -1
  563. package/min/store/with-schemas/index.js.gz +0 -0
  564. package/min/synchronizers/index.js +1 -1
  565. package/min/synchronizers/index.js.gz +0 -0
  566. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  567. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  568. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  569. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  570. package/min/synchronizers/synchronizer-local/index.js +1 -1
  571. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  572. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  573. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  574. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  575. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  576. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  577. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  578. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  579. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  580. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  581. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  582. package/min/synchronizers/with-schemas/index.js +1 -1
  583. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  584. package/min/ui-react/index.js +1 -1
  585. package/min/ui-react/index.js.gz +0 -0
  586. package/min/ui-react/with-schemas/index.js +1 -1
  587. package/min/ui-react/with-schemas/index.js.gz +0 -0
  588. package/min/ui-react-inspector/index.js +1 -1
  589. package/min/ui-react-inspector/index.js.gz +0 -0
  590. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  591. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  592. package/min/with-schemas/index.js +1 -1
  593. package/min/with-schemas/index.js.gz +0 -0
  594. package/package.json +4 -1
  595. package/persisters/index.js +32 -20
  596. package/persisters/persister-automerge/index.js +31 -23
  597. package/persisters/persister-automerge/with-schemas/index.js +31 -23
  598. package/persisters/persister-browser/index.js +37 -29
  599. package/persisters/persister-browser/with-schemas/index.js +37 -29
  600. package/persisters/persister-cr-sqlite-wasm/index.js +32 -24
  601. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +32 -24
  602. package/persisters/persister-electric-sql/index.js +32 -24
  603. package/persisters/persister-electric-sql/with-schemas/index.js +32 -24
  604. package/persisters/persister-expo-sqlite/index.js +32 -24
  605. package/persisters/persister-expo-sqlite/with-schemas/index.js +32 -24
  606. package/persisters/persister-file/index.js +44 -30
  607. package/persisters/persister-file/with-schemas/index.js +44 -30
  608. package/persisters/persister-indexed-db/index.js +31 -23
  609. package/persisters/persister-indexed-db/with-schemas/index.js +31 -23
  610. package/persisters/persister-libsql/index.js +197 -189
  611. package/persisters/persister-libsql/with-schemas/index.js +197 -189
  612. package/persisters/persister-partykit-client/index.js +31 -23
  613. package/persisters/persister-partykit-client/with-schemas/index.js +31 -23
  614. package/persisters/persister-powersync/index.js +32 -24
  615. package/persisters/persister-powersync/with-schemas/index.js +32 -24
  616. package/persisters/persister-remote/index.js +37 -29
  617. package/persisters/persister-remote/with-schemas/index.js +37 -29
  618. package/persisters/persister-sqlite-wasm/index.js +32 -24
  619. package/persisters/persister-sqlite-wasm/with-schemas/index.js +32 -24
  620. package/persisters/persister-sqlite3/index.js +32 -24
  621. package/persisters/persister-sqlite3/with-schemas/index.js +32 -24
  622. package/persisters/persister-yjs/index.js +33 -24
  623. package/persisters/persister-yjs/with-schemas/index.js +33 -24
  624. package/persisters/with-schemas/index.js +32 -20
  625. package/queries/index.js +2 -2
  626. package/queries/with-schemas/index.js +2 -2
  627. package/readme.md +3 -3
  628. package/relationships/index.js +1 -1
  629. package/relationships/with-schemas/index.js +1 -1
  630. package/releases.md +15 -4
  631. package/store/index.js +9 -5
  632. package/store/with-schemas/index.js +9 -5
  633. package/synchronizers/index.js +109 -96
  634. package/synchronizers/synchronizer-broadcast-channel/index.js +105 -98
  635. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +105 -98
  636. package/synchronizers/synchronizer-local/index.js +104 -99
  637. package/synchronizers/synchronizer-local/with-schemas/index.js +104 -99
  638. package/synchronizers/synchronizer-ws-client/index.js +123 -113
  639. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +123 -113
  640. package/synchronizers/synchronizer-ws-server/index.js +527 -24
  641. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +527 -24
  642. package/synchronizers/with-schemas/index.js +109 -96
  643. package/ui-react/index.js +12 -12
  644. package/ui-react/with-schemas/index.js +12 -12
  645. package/ui-react-inspector/index.js +37 -28
  646. package/ui-react-inspector/with-schemas/index.js +37 -28
  647. package/umd/es6/index.js +119 -97
  648. package/umd/es6/mergeable-store/index.js +9 -5
  649. package/umd/es6/mergeable-store/with-schemas/index.js +9 -5
  650. package/umd/es6/min/index.js +1 -1
  651. package/umd/es6/min/index.js.gz +0 -0
  652. package/umd/es6/min/mergeable-store/index.js +1 -1
  653. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  654. package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
  655. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  656. package/umd/es6/min/persisters/index.js +1 -1
  657. package/umd/es6/min/persisters/index.js.gz +0 -0
  658. package/umd/es6/min/persisters/persister-automerge/index.js +1 -1
  659. package/umd/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  660. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  661. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  662. package/umd/es6/min/persisters/persister-browser/index.js +1 -1
  663. package/umd/es6/min/persisters/persister-browser/index.js.gz +0 -0
  664. package/umd/es6/min/persisters/persister-browser/with-schemas/index.js +1 -1
  665. package/umd/es6/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  666. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  667. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  668. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  669. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  670. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  671. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  672. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  673. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  674. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  675. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  676. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  677. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  678. package/umd/es6/min/persisters/persister-file/index.js +1 -1
  679. package/umd/es6/min/persisters/persister-file/index.js.gz +0 -0
  680. package/umd/es6/min/persisters/persister-file/with-schemas/index.js +1 -1
  681. package/umd/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  682. package/umd/es6/min/persisters/persister-indexed-db/index.js +1 -1
  683. package/umd/es6/min/persisters/persister-indexed-db/index.js.gz +0 -0
  684. package/umd/es6/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  685. package/umd/es6/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  686. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  687. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  688. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  689. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  690. package/umd/es6/min/persisters/persister-partykit-client/index.js +1 -1
  691. package/umd/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
  692. package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  693. package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  694. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  695. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  696. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  697. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  698. package/umd/es6/min/persisters/persister-remote/index.js +1 -1
  699. package/umd/es6/min/persisters/persister-remote/index.js.gz +0 -0
  700. package/umd/es6/min/persisters/persister-remote/with-schemas/index.js +1 -1
  701. package/umd/es6/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  702. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  703. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  704. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  705. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  706. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  707. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  708. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  709. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  710. package/umd/es6/min/persisters/persister-yjs/index.js +1 -1
  711. package/umd/es6/min/persisters/persister-yjs/index.js.gz +0 -0
  712. package/umd/es6/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  713. package/umd/es6/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  714. package/umd/es6/min/persisters/with-schemas/index.js +1 -1
  715. package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
  716. package/umd/es6/min/store/index.js +1 -1
  717. package/umd/es6/min/store/index.js.gz +0 -0
  718. package/umd/es6/min/store/with-schemas/index.js +1 -1
  719. package/umd/es6/min/store/with-schemas/index.js.gz +0 -0
  720. package/umd/es6/min/synchronizers/index.js +1 -1
  721. package/umd/es6/min/synchronizers/index.js.gz +0 -0
  722. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  723. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  724. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  725. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  726. package/umd/es6/min/synchronizers/synchronizer-local/index.js +1 -1
  727. package/umd/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  728. package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  729. package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  730. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  731. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  732. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  733. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  734. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  735. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  736. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  737. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  738. package/umd/es6/min/synchronizers/with-schemas/index.js +1 -1
  739. package/umd/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  740. package/umd/es6/min/ui-react/index.js +1 -1
  741. package/umd/es6/min/ui-react/index.js.gz +0 -0
  742. package/umd/es6/min/ui-react/with-schemas/index.js +1 -1
  743. package/umd/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  744. package/umd/es6/min/ui-react-inspector/index.js +1 -1
  745. package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
  746. package/umd/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  747. package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  748. package/umd/es6/min/with-schemas/index.js +1 -1
  749. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  750. package/umd/es6/persisters/index.js +34 -22
  751. package/umd/es6/persisters/persister-automerge/index.js +33 -25
  752. package/umd/es6/persisters/persister-automerge/with-schemas/index.js +33 -25
  753. package/umd/es6/persisters/persister-browser/index.js +41 -33
  754. package/umd/es6/persisters/persister-browser/with-schemas/index.js +41 -33
  755. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +33 -25
  756. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +33 -25
  757. package/umd/es6/persisters/persister-electric-sql/index.js +33 -25
  758. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +33 -25
  759. package/umd/es6/persisters/persister-expo-sqlite/index.js +33 -25
  760. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +33 -25
  761. package/umd/es6/persisters/persister-file/index.js +47 -34
  762. package/umd/es6/persisters/persister-file/with-schemas/index.js +47 -34
  763. package/umd/es6/persisters/persister-indexed-db/index.js +33 -25
  764. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +33 -25
  765. package/umd/es6/persisters/persister-libsql/index.js +291 -283
  766. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +291 -283
  767. package/umd/es6/persisters/persister-partykit-client/index.js +33 -25
  768. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +33 -25
  769. package/umd/es6/persisters/persister-powersync/index.js +33 -25
  770. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +33 -25
  771. package/umd/es6/persisters/persister-remote/index.js +39 -31
  772. package/umd/es6/persisters/persister-remote/with-schemas/index.js +39 -31
  773. package/umd/es6/persisters/persister-sqlite-wasm/index.js +33 -25
  774. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +33 -25
  775. package/umd/es6/persisters/persister-sqlite3/index.js +33 -25
  776. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +33 -25
  777. package/umd/es6/persisters/persister-yjs/index.js +33 -25
  778. package/umd/es6/persisters/persister-yjs/with-schemas/index.js +33 -25
  779. package/umd/es6/persisters/with-schemas/index.js +34 -22
  780. package/umd/es6/store/index.js +9 -5
  781. package/umd/es6/store/with-schemas/index.js +9 -5
  782. package/umd/es6/synchronizers/index.js +122 -108
  783. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +118 -110
  784. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +118 -110
  785. package/umd/es6/synchronizers/synchronizer-local/index.js +122 -111
  786. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +122 -111
  787. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +139 -125
  788. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +139 -125
  789. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +713 -37
  790. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +713 -37
  791. package/umd/es6/synchronizers/with-schemas/index.js +122 -108
  792. package/umd/es6/ui-react/index.js +17 -34
  793. package/umd/es6/ui-react/with-schemas/index.js +17 -34
  794. package/umd/es6/ui-react-inspector/index.js +39 -30
  795. package/umd/es6/ui-react-inspector/with-schemas/index.js +39 -30
  796. package/umd/es6/with-schemas/index.js +119 -97
  797. package/umd/index.js +121 -100
  798. package/umd/indexes/index.js +1 -1
  799. package/umd/indexes/with-schemas/index.js +1 -1
  800. package/umd/mergeable-store/index.js +9 -5
  801. package/umd/mergeable-store/with-schemas/index.js +9 -5
  802. package/umd/metrics/index.js +3 -3
  803. package/umd/metrics/with-schemas/index.js +3 -3
  804. package/umd/min/index.js +1 -1
  805. package/umd/min/index.js.gz +0 -0
  806. package/umd/min/mergeable-store/index.js +1 -1
  807. package/umd/min/mergeable-store/index.js.gz +0 -0
  808. package/umd/min/mergeable-store/with-schemas/index.js +1 -1
  809. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  810. package/umd/min/persisters/index.js +1 -1
  811. package/umd/min/persisters/index.js.gz +0 -0
  812. package/umd/min/persisters/persister-automerge/index.js +1 -1
  813. package/umd/min/persisters/persister-automerge/index.js.gz +0 -0
  814. package/umd/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  815. package/umd/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  816. package/umd/min/persisters/persister-browser/index.js +1 -1
  817. package/umd/min/persisters/persister-browser/index.js.gz +0 -0
  818. package/umd/min/persisters/persister-browser/with-schemas/index.js +1 -1
  819. package/umd/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  820. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  821. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  822. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  823. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  824. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  825. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  826. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  827. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  828. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  829. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  830. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  831. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  832. package/umd/min/persisters/persister-file/index.js +1 -1
  833. package/umd/min/persisters/persister-file/index.js.gz +0 -0
  834. package/umd/min/persisters/persister-file/with-schemas/index.js +1 -1
  835. package/umd/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  836. package/umd/min/persisters/persister-indexed-db/index.js +1 -1
  837. package/umd/min/persisters/persister-indexed-db/index.js.gz +0 -0
  838. package/umd/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  839. package/umd/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  840. package/umd/min/persisters/persister-libsql/index.js +1 -1
  841. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  842. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  843. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  844. package/umd/min/persisters/persister-partykit-client/index.js +1 -1
  845. package/umd/min/persisters/persister-partykit-client/index.js.gz +0 -0
  846. package/umd/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  847. package/umd/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  848. package/umd/min/persisters/persister-powersync/index.js +1 -1
  849. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  850. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  851. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  852. package/umd/min/persisters/persister-remote/index.js +1 -1
  853. package/umd/min/persisters/persister-remote/index.js.gz +0 -0
  854. package/umd/min/persisters/persister-remote/with-schemas/index.js +1 -1
  855. package/umd/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  856. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  857. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  858. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  859. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  860. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  861. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  862. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  863. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  864. package/umd/min/persisters/persister-yjs/index.js +1 -1
  865. package/umd/min/persisters/persister-yjs/index.js.gz +0 -0
  866. package/umd/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  867. package/umd/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  868. package/umd/min/persisters/with-schemas/index.js +1 -1
  869. package/umd/min/persisters/with-schemas/index.js.gz +0 -0
  870. package/umd/min/store/index.js +1 -1
  871. package/umd/min/store/index.js.gz +0 -0
  872. package/umd/min/store/with-schemas/index.js +1 -1
  873. package/umd/min/store/with-schemas/index.js.gz +0 -0
  874. package/umd/min/synchronizers/index.js +1 -1
  875. package/umd/min/synchronizers/index.js.gz +0 -0
  876. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  877. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  878. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  879. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  880. package/umd/min/synchronizers/synchronizer-local/index.js +1 -1
  881. package/umd/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  882. package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  883. package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  884. package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  885. package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  886. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  887. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  888. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  889. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  890. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  891. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  892. package/umd/min/synchronizers/with-schemas/index.js +1 -1
  893. package/umd/min/synchronizers/with-schemas/index.js.gz +0 -0
  894. package/umd/min/ui-react/index.js +1 -1
  895. package/umd/min/ui-react/index.js.gz +0 -0
  896. package/umd/min/ui-react/with-schemas/index.js +1 -1
  897. package/umd/min/ui-react/with-schemas/index.js.gz +0 -0
  898. package/umd/min/ui-react-inspector/index.js +1 -1
  899. package/umd/min/ui-react-inspector/index.js.gz +0 -0
  900. package/umd/min/ui-react-inspector/with-schemas/index.js +1 -1
  901. package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  902. package/umd/min/with-schemas/index.js +1 -1
  903. package/umd/min/with-schemas/index.js.gz +0 -0
  904. package/umd/persisters/index.js +32 -20
  905. package/umd/persisters/persister-automerge/index.js +31 -23
  906. package/umd/persisters/persister-automerge/with-schemas/index.js +31 -23
  907. package/umd/persisters/persister-browser/index.js +39 -31
  908. package/umd/persisters/persister-browser/with-schemas/index.js +39 -31
  909. package/umd/persisters/persister-cr-sqlite-wasm/index.js +32 -24
  910. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +32 -24
  911. package/umd/persisters/persister-electric-sql/index.js +32 -24
  912. package/umd/persisters/persister-electric-sql/with-schemas/index.js +32 -24
  913. package/umd/persisters/persister-expo-sqlite/index.js +32 -24
  914. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +32 -24
  915. package/umd/persisters/persister-file/index.js +45 -32
  916. package/umd/persisters/persister-file/with-schemas/index.js +45 -32
  917. package/umd/persisters/persister-indexed-db/index.js +31 -23
  918. package/umd/persisters/persister-indexed-db/with-schemas/index.js +31 -23
  919. package/umd/persisters/persister-libsql/index.js +199 -191
  920. package/umd/persisters/persister-libsql/with-schemas/index.js +199 -191
  921. package/umd/persisters/persister-partykit-client/index.js +31 -23
  922. package/umd/persisters/persister-partykit-client/with-schemas/index.js +31 -23
  923. package/umd/persisters/persister-powersync/index.js +32 -24
  924. package/umd/persisters/persister-powersync/with-schemas/index.js +32 -24
  925. package/umd/persisters/persister-remote/index.js +37 -29
  926. package/umd/persisters/persister-remote/with-schemas/index.js +37 -29
  927. package/umd/persisters/persister-sqlite-wasm/index.js +32 -24
  928. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +32 -24
  929. package/umd/persisters/persister-sqlite3/index.js +32 -24
  930. package/umd/persisters/persister-sqlite3/with-schemas/index.js +32 -24
  931. package/umd/persisters/persister-yjs/index.js +33 -25
  932. package/umd/persisters/persister-yjs/with-schemas/index.js +33 -25
  933. package/umd/persisters/with-schemas/index.js +32 -20
  934. package/umd/queries/index.js +2 -2
  935. package/umd/queries/with-schemas/index.js +2 -2
  936. package/umd/relationships/index.js +1 -1
  937. package/umd/relationships/with-schemas/index.js +1 -1
  938. package/umd/store/index.js +9 -5
  939. package/umd/store/with-schemas/index.js +9 -5
  940. package/umd/synchronizers/index.js +112 -99
  941. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +108 -101
  942. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +108 -101
  943. package/umd/synchronizers/synchronizer-local/index.js +112 -102
  944. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +112 -102
  945. package/umd/synchronizers/synchronizer-ws-client/index.js +126 -116
  946. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +126 -116
  947. package/umd/synchronizers/synchronizer-ws-server/index.js +547 -36
  948. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +547 -36
  949. package/umd/synchronizers/with-schemas/index.js +112 -99
  950. package/umd/ui-react/index.js +13 -12
  951. package/umd/ui-react/with-schemas/index.js +13 -12
  952. package/umd/ui-react-inspector/index.js +37 -28
  953. package/umd/ui-react-inspector/with-schemas/index.js +37 -28
  954. package/umd/with-schemas/index.js +121 -100
  955. package/with-schemas/index.js +118 -97
@@ -9,7 +9,14 @@
9
9
  */
10
10
 
11
11
  import type {Id, IdOrNull, Ids} from '../../../common/with-schemas/index.d.ts';
12
- import type {GetIdChanges} from '../../../store/with-schemas/index.d.ts';
12
+ import type {
13
+ IdAddedOrRemoved,
14
+ OptionalSchemas,
15
+ } from '../../../store/with-schemas/index.d.ts';
16
+ import type {
17
+ Persister,
18
+ Persists,
19
+ } from '../../../persisters/with-schemas/index.d.ts';
13
20
  import type {WebSocketServer} from 'ws';
14
21
 
15
22
  /**
@@ -18,23 +25,24 @@ import type {WebSocketServer} from 'ws';
18
25
  *
19
26
  * A WsServer listens to any path, allowing an app to have the concept of
20
27
  * distinct 'rooms' that only certain clients are participating in. As soon as a
21
- * single client connects to a new path, this listener will be called with a
22
- * GetIdChanges callback that you can use to determine its Id.
28
+ * single client connects to a new path, this listener will be called with the
29
+ * Id of the new path and an `addedOrRemoved` value of `1`.
23
30
  *
24
- * When the final client disconnects from a path, it will be called again with a
25
- * GetIdChanges callback that you can again use to determine its Id.
31
+ * When the final client disconnects from a path, it will be called again with
32
+ * the Id of the deactivated path and an `addedOrRemoved` value of `-1`.
26
33
  *
27
34
  * A PathIdsListener is provided when using the addPathIdsListener method. See
28
35
  * that method for specific examples.
29
36
  * @param wsServer A reference to the WsServer.
30
- * @param getIdChanges A function that returns information about the path Id
31
- * change.
37
+ * @param pathId The Id of the path being added or removed.
38
+ * @param addedOrRemoved Whether the path was added (`1`) or removed (`-1`).
32
39
  * @category Listener
33
- * @since v5.0.0
40
+ * @since v5.0.3
34
41
  */
35
- export type PathIdsListener<> = (
42
+ export type PathIdsListener = (
36
43
  wsServer: WsServer,
37
- getIdChanges: GetIdChanges<Id>,
44
+ pathId: Id,
45
+ addedOrRemoved: IdAddedOrRemoved,
38
46
  ) => void;
39
47
 
40
48
  /**
@@ -43,25 +51,27 @@ export type PathIdsListener<> = (
43
51
  *
44
52
  * A WsServer listens to any path, allowing an app to have the concept of
45
53
  * distinct 'rooms' that only certain clients are participating in. As soon as a
46
- * new client connects to a path, this listener will be called with a
47
- * GetIdChanges callback that you can use to determine its Id.
54
+ * new client connects to a path, this listener will be called with the Id of
55
+ * the path, the Id of the new client, and an `addedOrRemoved` value of `1`.
48
56
  *
49
- * When the client disconnects from a path, it will be called again with a
50
- * GetIdChanges callback that you can again use to determine its Id.
57
+ * When the client disconnects from a path, it will be called again with the Id
58
+ * of the path, the Id of the leaving client, and an `addedOrRemoved` value of
59
+ * `-1`.
51
60
  *
52
61
  * A ClientIdsListener is provided when using the addClientIdsListener method.
53
62
  * See that method for specific examples.
54
63
  * @param wsServer A reference to the WsServer.
55
64
  * @param pathId The path that the client joined or left.
56
- * @param getIdChanges A function that returns information about the client Id
57
- * change.
65
+ * @param clientId The Id of the client being added or removed.
66
+ * @param addedOrRemoved Whether the client was added (`1`) or removed (`-1`).
58
67
  * @category Listener
59
- * @since v5.0.0
68
+ * @since v5.0.3
60
69
  */
61
- export type ClientIdsListener<> = (
70
+ export type ClientIdsListener = (
62
71
  wsServer: WsServer,
63
72
  pathId: Id,
64
- getIdChanges: GetIdChanges<Id>,
73
+ clientId: Id,
74
+ addedOrRemoved: IdAddedOrRemoved,
65
75
  ) => void;
66
76
 
67
77
  /**
@@ -240,33 +250,35 @@ export interface WsServer {
240
250
  * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
241
251
  *
242
252
  * const server = createWsServer(new WebSocketServer({port: 8047}));
243
- * const listenerId = server.addPathIdsListener((server, getIdChanges) => {
244
- * console.log(getIdChanges());
245
- * console.log(server.getPathIds());
246
- * });
253
+ * const listenerId = server.addPathIdsListener(
254
+ * (server, pathId, addedOrRemoved) => {
255
+ * console.log(pathId + (addedOrRemoved == 1 ? ' added' : ' removed'));
256
+ * console.log(server.getPathIds());
257
+ * },
258
+ * );
247
259
  *
248
260
  * const synchronizer1 = await createWsSynchronizer(
249
261
  * createMergeableStore(),
250
262
  * new WebSocket('ws://localhost:8047/roomA'),
251
263
  * );
252
- * // -> {'roomA': 1}
264
+ * // -> 'roomA added'
253
265
  * // -> ['roomA']
254
266
  *
255
267
  * const synchronizer2 = await createWsSynchronizer(
256
268
  * createMergeableStore(),
257
269
  * new WebSocket('ws://localhost:8047/roomB'),
258
270
  * );
259
- * // -> {'roomB': 1}
271
+ * // -> 'roomB added'
260
272
  * // -> ['roomA', 'roomB']
261
273
  *
262
274
  * synchronizer1.destroy();
263
275
  * // ...
264
- * // -> {'roomA': -1}
276
+ * // -> 'roomA removed'
265
277
  * // -> ['roomB']
266
278
  *
267
279
  * synchronizer2.destroy();
268
280
  * // ...
269
- * // -> {'roomB': -1}
281
+ * // -> 'roomB removed'
270
282
  * // -> []
271
283
  *
272
284
  * server.delListener(listenerId);
@@ -490,21 +502,149 @@ export interface WsServer {
490
502
  * The createWsServer function creates a WsServer that facilitates
491
503
  * synchronization between clients that are using WsSynchronizer instances.
492
504
  *
505
+ * This has schema-based typing. The following is a simplified representation:
506
+ *
507
+ * ```ts override
508
+ * createWsServer<
509
+ * PathPersister extends Persister<
510
+ * Persists.MergeableStoreOnly | Persists.StoreOrMergeableStore
511
+ * >,
512
+ * >(
513
+ * webSocketServer: WebSocketServer,
514
+ * createPersisterForPath?: (pathId: Id) => PathPersister | undefined,
515
+ * ): WsServer;
516
+ * ```
517
+ *
493
518
  * This should be run in a server environment, and you must pass in a configured
494
519
  * WebSocketServer object in order to create it.
520
+ *
521
+ * If you want your server to persist data itself, you can use the optional
522
+ * second parameter of this function, which allows you to create a Persister for
523
+ * a new path - whenever a new path is accessed by a client. This Persister will
524
+ * only exist when there are active clients on that particular path.
525
+ *
526
+ * You are responsible for creating a MergeableStore to pass to this Persister,
527
+ * but starting and stopping its automatic saving and loading is taken care of
528
+ * by the WsServer. As a result, the server MergeableStore will be kept in sync
529
+ * with the clients on that path, and in turn with whatever persistence layer
530
+ * you have configured. See the example below.
495
531
  * @param webSocketServer A WebSocketServer object from your server environment.
532
+ * @param createPersisterForPath An optional function that will create a
533
+ * Persister (with a MergeableStore) to synchronize with the clients on a given
534
+ * path.
496
535
  * @returns A reference to the new WsServer object.
497
536
  * @example
498
- * This example creates a WsServer and then destroys it again.
537
+ * This example creates a WsServer that synchronizes two clients on a shared
538
+ * path.
499
539
  *
500
540
  * ```js
501
541
  * import {WebSocketServer} from 'ws';
542
+ * import {createMergeableStore} from 'tinybase';
502
543
  * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
544
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
503
545
  *
546
+ * // Server
504
547
  * const server = createWsServer(new WebSocketServer({port: 8047}));
548
+ *
549
+ * // Client 1
550
+ * const clientStore1 = createMergeableStore();
551
+ * clientStore1.setCell('pets', 'fido', 'species', 'dog');
552
+ * const synchronizer1 = await createWsSynchronizer(
553
+ * clientStore1,
554
+ * new WebSocket('ws://localhost:8047/petShop'),
555
+ * );
556
+ * await synchronizer1.startSync();
557
+ * // ...
558
+ *
559
+ * // Client 2
560
+ * const clientStore2 = createMergeableStore();
561
+ * clientStore2.setCell('pets', 'felix', 'species', 'cat');
562
+ * const synchronizer2 = await createWsSynchronizer(
563
+ * clientStore2,
564
+ * new WebSocket('ws://localhost:8047/petShop'),
565
+ * );
566
+ * await synchronizer2.startSync();
567
+ * // ...
568
+ *
569
+ * console.log(clientStore1.getTables());
570
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
571
+ *
572
+ * console.log(clientStore2.getTables());
573
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
574
+ *
575
+ * synchronizer1.destroy();
576
+ * synchronizer2.destroy();
505
577
  * server.destroy();
506
578
  * ```
507
579
  * @example
580
+ * This longer example creates a WsServer that persists a MergeableStore to file
581
+ * that is synchronized with two clients on a shared path. Later, when a third
582
+ * client connects, it picks up the data the previous two were using.
583
+ *
584
+ * ```js
585
+ * import {WebSocketServer} from 'ws';
586
+ * import {createFilePersister} from 'tinybase/persisters/persister-file';
587
+ * import {createMergeableStore} from 'tinybase';
588
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
589
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
590
+ * import {rmSync} from 'fs';
591
+ *
592
+ * // Server
593
+ * const server = createWsServer(
594
+ * new WebSocketServer({port: 8047}),
595
+ * (pathId) =>
596
+ * createFilePersister(createMergeableStore(), pathId + '.json'),
597
+ * );
598
+ *
599
+ * // Client 1
600
+ * const clientStore1 = createMergeableStore();
601
+ * clientStore1.setCell('pets', 'fido', 'species', 'dog');
602
+ * const synchronizer1 = await createWsSynchronizer(
603
+ * clientStore1,
604
+ * new WebSocket('ws://localhost:8047/petShop'),
605
+ * );
606
+ * await synchronizer1.startSync();
607
+ * // ...
608
+ *
609
+ * // Client 2
610
+ * const clientStore2 = createMergeableStore();
611
+ * clientStore2.setCell('pets', 'felix', 'species', 'cat');
612
+ * const synchronizer2 = await createWsSynchronizer(
613
+ * clientStore2,
614
+ * new WebSocket('ws://localhost:8047/petShop'),
615
+ * );
616
+ * await synchronizer2.startSync();
617
+ * // ...
618
+ *
619
+ * console.log(clientStore1.getTables());
620
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
621
+ *
622
+ * console.log(clientStore2.getTables());
623
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
624
+ *
625
+ * synchronizer1.destroy();
626
+ * synchronizer2.destroy();
627
+ *
628
+ * // ...
629
+ * // Client 3 connects later
630
+ * const clientStore3 = createMergeableStore();
631
+ * const synchronizer3 = await createWsSynchronizer(
632
+ * clientStore3,
633
+ * new WebSocket('ws://localhost:8047/petShop'),
634
+ * );
635
+ * await synchronizer3.startSync();
636
+ * // ...
637
+ *
638
+ * console.log(clientStore3.getTables());
639
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
640
+ *
641
+ * synchronizer3.destroy();
642
+ * server.destroy();
643
+ *
644
+ * // Remove file for the purposes of this demo.
645
+ * rmSync('petShop.json');
646
+ * ```
647
+ * @example
508
648
  * This example creates a WsServer with a custom listener that displays
509
649
  * information about the address of the client that connects to it.
510
650
  *
@@ -534,4 +674,13 @@ export interface WsServer {
534
674
  * @category Creation
535
675
  * @since v5.0.0
536
676
  */
537
- export function createWsServer(webSocketServer: WebSocketServer): WsServer;
677
+ export function createWsServer<
678
+ Schemas extends OptionalSchemas,
679
+ PathPersister extends Persister<
680
+ Schemas,
681
+ Persists.MergeableStoreOnly | Persists.StoreOrMergeableStore
682
+ >,
683
+ >(
684
+ webSocketServer: WebSocketServer,
685
+ createPersisterForPath?: (pathId: Id) => PathPersister | undefined,
686
+ ): WsServer;
@@ -83,15 +83,12 @@ export const enum Message {
83
83
  }
84
84
 
85
85
  /**
86
- * The Receive type describes a function that knows how to handle the arrival of
87
- * a message as part of the synchronization protocol.
88
- *
89
- * When a message arrives (most likely from another system), the function will
90
- * be called with parameters that indicate where the message came from, and its
91
- * meaning and content.
92
- * @param fromClientId The Id of the other client (in other words, the other
93
- * system) that sent the message.
94
- * @param requestId The optional Id of the message, which should be returned in
86
+ * The Send type describes a function that knows how to dispatch a message as
87
+ * part of the synchronization protocol.
88
+ * @param toClientId The optional Id of the other client (in other words, the
89
+ * other system) to which the message should be sent. If omitted, this is to be
90
+ * a broadcast.
91
+ * @param requestId The optional Id of the message, which should be awaited in
95
92
  * the response (if requested) to constitute a matched request/response
96
93
  * transaction.
97
94
  * @param message A number that indicates the type of the message, according to
@@ -100,20 +97,23 @@ export const enum Message {
100
97
  * @category Synchronization
101
98
  * @since v5.0.0
102
99
  */
103
- export type Receive = (
104
- fromClientId: Id,
100
+ export type Send = (
101
+ toClientId: IdOrNull,
105
102
  requestId: Id,
106
103
  message: Message,
107
104
  body: any,
108
105
  ) => void;
109
106
 
110
107
  /**
111
- * The Send type describes a function that knows how to dispatch a message as
112
- * part of the synchronization protocol.
113
- * @param toClientId The optional Id of the other client (in other words, the
114
- * other system) to which the message should be sent. If omitted, this is to be
115
- * a broadcast.
116
- * @param requestId The optional Id of the message, which should be awaited in
108
+ * The Receive type describes a function that knows how to handle the arrival of
109
+ * a message as part of the synchronization protocol.
110
+ *
111
+ * When a message arrives (most likely from another system), the function will
112
+ * be called with parameters that indicate where the message came from, and its
113
+ * meaning and content.
114
+ * @param fromClientId The Id of the other client (in other words, the other
115
+ * system) that sent the message.
116
+ * @param requestId The optional Id of the message, which should be returned in
117
117
  * the response (if requested) to constitute a matched request/response
118
118
  * transaction.
119
119
  * @param message A number that indicates the type of the message, according to
@@ -122,8 +122,8 @@ export type Receive = (
122
122
  * @category Synchronization
123
123
  * @since v5.0.0
124
124
  */
125
- export type Send = (
126
- toClientId: IdOrNull,
125
+ export type Receive = (
126
+ fromClientId: Id,
127
127
  requestId: Id,
128
128
  message: Message,
129
129
  body: any,
@@ -340,7 +340,7 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
340
340
  * Synchronizer, and is used for debugging purposes.
341
341
  *
342
342
  * The SynchronizerStats object contains a count of the number of times the
343
- * Persister has sent and received messages.
343
+ * Synchronizer has sent and received messages.
344
344
  *
345
345
  * The method is intended to be used during development to ensure your
346
346
  * synchronization layer is acting as expected, for example.
@@ -395,6 +395,8 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
395
395
  * registerReceive: (receive: Receive) => void,
396
396
  * destroy: () => void,
397
397
  * requestTimeoutSeconds: number,
398
+ * onSend?: Send,
399
+ * onReceive?: Receive,
398
400
  * onIgnoredError?: (error: any) => void,
399
401
  * ): Synchronizer;
400
402
  * ```
@@ -403,15 +405,29 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
403
405
  * must provide parameters which identify how to send and receive changes to and
404
406
  * from this MergeableStore and its peers. This is entirely dependent upon the
405
407
  * medium of communication used.
408
+ *
409
+ * You must also provide a callback for when the Synchronizer is destroyed
410
+ * (which is a good place to clean up resources and stop communication
411
+ * listeners), and indicate how long the Synchronizer will wait for responses to
412
+ * message requests before timing out.
413
+ *
414
+ * A final set of optional handlers can be provided to help debug sends,
415
+ * receives, and errors respectively.
406
416
  * @param store The MergeableStore to synchronize.
407
417
  * @param send A Send function for sending a message.
408
418
  * @param registerReceive A callback (called once when the Synchronizer is
409
419
  * created) that is passed a Receive function that you need to ensure will
410
420
  * receive messages addressed or broadcast to this client.
411
- * @param destroy A function called when destroying the Persister which can be
412
- * used to clean up underlying resources.
421
+ * @param destroy A function called when destroying the Synchronizer which can
422
+ * be used to clean up underlying resources.
413
423
  * @param requestTimeoutSeconds An number of seconds before a request sent from
414
- * this Persister to another peer times out.
424
+ * this Synchronizer to another peer times out.
425
+ * @param onSend An optional handler for the messages that this Synchronizer
426
+ * sends. This is suitable for debugging synchronization issues in a development
427
+ * environment, since v5.1.
428
+ * @param onReceive An optional handler for the messages that this Synchronizer
429
+ * receives. This is suitable for debugging synchronization issues in a
430
+ * development environment, since v5.1.
415
431
  * @param onIgnoredError An optional handler for the errors that the
416
432
  * Synchronizer would otherwise ignore when trying to synchronize data. This is
417
433
  * suitable for debugging synchronization issues in a development environment.
@@ -485,5 +501,7 @@ export function createCustomSynchronizer<Schemas extends OptionalSchemas>(
485
501
  registerReceive: (receive: Receive) => void,
486
502
  destroy: () => void,
487
503
  requestTimeoutSeconds: number,
504
+ onSend?: Send,
505
+ onReceive?: Receive,
488
506
  onIgnoredError?: (error: any) => void,
489
507
  ): Synchronizer<Schemas>;
@@ -83,15 +83,12 @@ export const enum Message {
83
83
  }
84
84
 
85
85
  /**
86
- * The Receive type describes a function that knows how to handle the arrival of
87
- * a message as part of the synchronization protocol.
88
- *
89
- * When a message arrives (most likely from another system), the function will
90
- * be called with parameters that indicate where the message came from, and its
91
- * meaning and content.
92
- * @param fromClientId The Id of the other client (in other words, the other
93
- * system) that sent the message.
94
- * @param requestId The optional Id of the message, which should be returned in
86
+ * The Send type describes a function that knows how to dispatch a message as
87
+ * part of the synchronization protocol.
88
+ * @param toClientId The optional Id of the other client (in other words, the
89
+ * other system) to which the message should be sent. If omitted, this is to be
90
+ * a broadcast.
91
+ * @param requestId The optional Id of the message, which should be awaited in
95
92
  * the response (if requested) to constitute a matched request/response
96
93
  * transaction.
97
94
  * @param message A number that indicates the type of the message, according to
@@ -100,20 +97,23 @@ export const enum Message {
100
97
  * @category Synchronization
101
98
  * @since v5.0.0
102
99
  */
103
- export type Receive = (
104
- fromClientId: Id,
100
+ export type Send = (
101
+ toClientId: IdOrNull,
105
102
  requestId: Id,
106
103
  message: Message,
107
104
  body: any,
108
105
  ) => void;
109
106
 
110
107
  /**
111
- * The Send type describes a function that knows how to dispatch a message as
112
- * part of the synchronization protocol.
113
- * @param toClientId The optional Id of the other client (in other words, the
114
- * other system) to which the message should be sent. If omitted, this is to be
115
- * a broadcast.
116
- * @param requestId The optional Id of the message, which should be awaited in
108
+ * The Receive type describes a function that knows how to handle the arrival of
109
+ * a message as part of the synchronization protocol.
110
+ *
111
+ * When a message arrives (most likely from another system), the function will
112
+ * be called with parameters that indicate where the message came from, and its
113
+ * meaning and content.
114
+ * @param fromClientId The Id of the other client (in other words, the other
115
+ * system) that sent the message.
116
+ * @param requestId The optional Id of the message, which should be returned in
117
117
  * the response (if requested) to constitute a matched request/response
118
118
  * transaction.
119
119
  * @param message A number that indicates the type of the message, according to
@@ -122,8 +122,8 @@ export type Receive = (
122
122
  * @category Synchronization
123
123
  * @since v5.0.0
124
124
  */
125
- export type Send = (
126
- toClientId: IdOrNull,
125
+ export type Receive = (
126
+ fromClientId: Id,
127
127
  requestId: Id,
128
128
  message: Message,
129
129
  body: any,
@@ -340,7 +340,7 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
340
340
  * Synchronizer, and is used for debugging purposes.
341
341
  *
342
342
  * The SynchronizerStats object contains a count of the number of times the
343
- * Persister has sent and received messages.
343
+ * Synchronizer has sent and received messages.
344
344
  *
345
345
  * The method is intended to be used during development to ensure your
346
346
  * synchronization layer is acting as expected, for example.
@@ -395,6 +395,8 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
395
395
  * registerReceive: (receive: Receive) => void,
396
396
  * destroy: () => void,
397
397
  * requestTimeoutSeconds: number,
398
+ * onSend?: Send,
399
+ * onReceive?: Receive,
398
400
  * onIgnoredError?: (error: any) => void,
399
401
  * ): Synchronizer;
400
402
  * ```
@@ -403,15 +405,29 @@ export interface Synchronizer<Schemas extends OptionalSchemas>
403
405
  * must provide parameters which identify how to send and receive changes to and
404
406
  * from this MergeableStore and its peers. This is entirely dependent upon the
405
407
  * medium of communication used.
408
+ *
409
+ * You must also provide a callback for when the Synchronizer is destroyed
410
+ * (which is a good place to clean up resources and stop communication
411
+ * listeners), and indicate how long the Synchronizer will wait for responses to
412
+ * message requests before timing out.
413
+ *
414
+ * A final set of optional handlers can be provided to help debug sends,
415
+ * receives, and errors respectively.
406
416
  * @param store The MergeableStore to synchronize.
407
417
  * @param send A Send function for sending a message.
408
418
  * @param registerReceive A callback (called once when the Synchronizer is
409
419
  * created) that is passed a Receive function that you need to ensure will
410
420
  * receive messages addressed or broadcast to this client.
411
- * @param destroy A function called when destroying the Persister which can be
412
- * used to clean up underlying resources.
421
+ * @param destroy A function called when destroying the Synchronizer which can
422
+ * be used to clean up underlying resources.
413
423
  * @param requestTimeoutSeconds An number of seconds before a request sent from
414
- * this Persister to another peer times out.
424
+ * this Synchronizer to another peer times out.
425
+ * @param onSend An optional handler for the messages that this Synchronizer
426
+ * sends. This is suitable for debugging synchronization issues in a development
427
+ * environment, since v5.1.
428
+ * @param onReceive An optional handler for the messages that this Synchronizer
429
+ * receives. This is suitable for debugging synchronization issues in a
430
+ * development environment, since v5.1.
415
431
  * @param onIgnoredError An optional handler for the errors that the
416
432
  * Synchronizer would otherwise ignore when trying to synchronize data. This is
417
433
  * suitable for debugging synchronization issues in a development environment.
@@ -485,5 +501,7 @@ export function createCustomSynchronizer<Schemas extends OptionalSchemas>(
485
501
  registerReceive: (receive: Receive) => void,
486
502
  destroy: () => void,
487
503
  requestTimeoutSeconds: number,
504
+ onSend?: Send,
505
+ onReceive?: Receive,
488
506
  onIgnoredError?: (error: any) => void,
489
507
  ): Synchronizer<Schemas>;