tinybase 5.0.0-beta.26 → 5.0.0-beta.28

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 (741) hide show
  1. package/@types/_internal/ui-react/with-schemas/index.d.cts +274 -0
  2. package/@types/_internal/ui-react/with-schemas/index.d.ts +274 -0
  3. package/@types/checkpoints/index.d.cts +30 -1
  4. package/@types/checkpoints/index.d.ts +30 -1
  5. package/@types/checkpoints/with-schemas/index.d.cts +30 -1
  6. package/@types/checkpoints/with-schemas/index.d.ts +30 -1
  7. package/@types/common/index.d.cts +9 -0
  8. package/@types/common/index.d.ts +9 -0
  9. package/@types/common/with-schemas/index.d.cts +9 -0
  10. package/@types/common/with-schemas/index.d.ts +9 -0
  11. package/@types/index.d.cts +1 -0
  12. package/@types/index.d.ts +1 -0
  13. package/@types/indexes/index.d.cts +32 -1
  14. package/@types/indexes/index.d.ts +32 -1
  15. package/@types/indexes/with-schemas/index.d.cts +32 -1
  16. package/@types/indexes/with-schemas/index.d.ts +32 -1
  17. package/@types/mergeable-store/index.d.cts +0 -2
  18. package/@types/mergeable-store/index.d.ts +0 -2
  19. package/@types/mergeable-store/with-schemas/index.d.cts +2 -2
  20. package/@types/mergeable-store/with-schemas/index.d.ts +2 -2
  21. package/@types/metrics/index.d.cts +30 -4
  22. package/@types/metrics/index.d.ts +30 -4
  23. package/@types/metrics/with-schemas/index.d.cts +30 -4
  24. package/@types/metrics/with-schemas/index.d.ts +30 -4
  25. package/@types/persisters/index.d.cts +246 -62
  26. package/@types/persisters/index.d.ts +246 -62
  27. package/@types/persisters/persister-automerge/index.d.cts +13 -9
  28. package/@types/persisters/persister-automerge/index.d.ts +13 -9
  29. package/@types/persisters/persister-automerge/with-schemas/index.d.cts +13 -9
  30. package/@types/persisters/persister-automerge/with-schemas/index.d.ts +13 -9
  31. package/@types/persisters/persister-browser/index.d.cts +25 -15
  32. package/@types/persisters/persister-browser/index.d.ts +25 -15
  33. package/@types/persisters/persister-browser/with-schemas/index.d.cts +25 -15
  34. package/@types/persisters/persister-browser/with-schemas/index.d.ts +25 -15
  35. package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +12 -9
  36. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +12 -9
  37. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +12 -9
  38. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +12 -9
  39. package/@types/persisters/persister-electric-sql/index.d.cts +12 -9
  40. package/@types/persisters/persister-electric-sql/index.d.ts +12 -9
  41. package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +12 -9
  42. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +12 -9
  43. package/@types/persisters/persister-expo-sqlite/index.d.cts +14 -10
  44. package/@types/persisters/persister-expo-sqlite/index.d.ts +14 -10
  45. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +14 -10
  46. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +14 -10
  47. package/@types/persisters/persister-file/index.d.cts +14 -8
  48. package/@types/persisters/persister-file/index.d.ts +14 -8
  49. package/@types/persisters/persister-file/with-schemas/index.d.cts +14 -8
  50. package/@types/persisters/persister-file/with-schemas/index.d.ts +14 -8
  51. package/@types/persisters/persister-indexed-db/index.d.cts +13 -8
  52. package/@types/persisters/persister-indexed-db/index.d.ts +13 -8
  53. package/@types/persisters/persister-indexed-db/with-schemas/index.d.cts +13 -8
  54. package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +13 -8
  55. package/@types/persisters/persister-libsql/index.d.cts +13 -8
  56. package/@types/persisters/persister-libsql/index.d.ts +13 -8
  57. package/@types/persisters/persister-libsql/with-schemas/index.d.cts +13 -8
  58. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +13 -8
  59. package/@types/persisters/persister-partykit-client/index.d.cts +24 -13
  60. package/@types/persisters/persister-partykit-client/index.d.ts +24 -13
  61. package/@types/persisters/persister-partykit-client/with-schemas/index.d.cts +24 -13
  62. package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +24 -13
  63. package/@types/persisters/persister-partykit-server/index.d.cts +11 -3
  64. package/@types/persisters/persister-partykit-server/index.d.ts +11 -3
  65. package/@types/persisters/persister-partykit-server/with-schemas/index.d.cts +11 -3
  66. package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +11 -3
  67. package/@types/persisters/persister-powersync/index.d.cts +15 -9
  68. package/@types/persisters/persister-powersync/index.d.ts +15 -9
  69. package/@types/persisters/persister-powersync/with-schemas/index.d.cts +15 -9
  70. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +15 -9
  71. package/@types/persisters/persister-remote/index.d.cts +15 -10
  72. package/@types/persisters/persister-remote/index.d.ts +15 -10
  73. package/@types/persisters/persister-remote/with-schemas/index.d.cts +15 -10
  74. package/@types/persisters/persister-remote/with-schemas/index.d.ts +15 -10
  75. package/@types/persisters/persister-sqlite-wasm/index.d.cts +14 -9
  76. package/@types/persisters/persister-sqlite-wasm/index.d.ts +14 -9
  77. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +14 -9
  78. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +14 -9
  79. package/@types/persisters/persister-sqlite3/index.d.cts +14 -9
  80. package/@types/persisters/persister-sqlite3/index.d.ts +14 -9
  81. package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +14 -9
  82. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +14 -9
  83. package/@types/persisters/persister-yjs/index.d.cts +13 -8
  84. package/@types/persisters/persister-yjs/index.d.ts +13 -8
  85. package/@types/persisters/persister-yjs/with-schemas/index.d.cts +13 -8
  86. package/@types/persisters/persister-yjs/with-schemas/index.d.ts +13 -8
  87. package/@types/persisters/with-schemas/index.d.cts +280 -63
  88. package/@types/persisters/with-schemas/index.d.ts +280 -63
  89. package/@types/queries/index.d.cts +64 -5
  90. package/@types/queries/index.d.ts +64 -5
  91. package/@types/queries/with-schemas/index.d.cts +64 -5
  92. package/@types/queries/with-schemas/index.d.ts +64 -5
  93. package/@types/relationships/index.d.cts +34 -1
  94. package/@types/relationships/index.d.ts +34 -1
  95. package/@types/relationships/with-schemas/index.d.cts +34 -1
  96. package/@types/relationships/with-schemas/index.d.ts +34 -1
  97. package/@types/store/index.d.cts +125 -0
  98. package/@types/store/index.d.ts +125 -0
  99. package/@types/store/with-schemas/index.d.cts +125 -0
  100. package/@types/store/with-schemas/index.d.ts +125 -0
  101. package/@types/synchronizers/index.d.cts +375 -41
  102. package/@types/synchronizers/index.d.ts +375 -41
  103. package/@types/synchronizers/synchronizer-broadcast-channel/index.d.cts +114 -0
  104. package/@types/synchronizers/synchronizer-broadcast-channel/index.d.ts +114 -0
  105. package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts +128 -0
  106. package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +128 -0
  107. package/@types/synchronizers/synchronizer-local/index.d.cts +62 -3
  108. package/@types/synchronizers/synchronizer-local/index.d.ts +62 -3
  109. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +77 -3
  110. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +77 -3
  111. package/@types/synchronizers/synchronizer-ws-client/index.d.cts +110 -3
  112. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +110 -3
  113. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +121 -3
  114. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +121 -3
  115. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +486 -7
  116. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +486 -7
  117. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +486 -7
  118. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +486 -7
  119. package/@types/synchronizers/with-schemas/index.d.cts +372 -42
  120. package/@types/synchronizers/with-schemas/index.d.ts +372 -42
  121. package/@types/tools/index.d.cts +22 -0
  122. package/@types/tools/index.d.ts +22 -0
  123. package/@types/tools/with-schemas/index.d.cts +22 -0
  124. package/@types/tools/with-schemas/index.d.ts +22 -0
  125. package/@types/ui-react/index.d.cts +375 -1
  126. package/@types/ui-react/index.d.ts +375 -1
  127. package/@types/ui-react/with-schemas/index.d.cts +100 -1
  128. package/@types/ui-react/with-schemas/index.d.ts +100 -1
  129. package/@types/ui-react-dom/index.d.cts +112 -0
  130. package/@types/ui-react-dom/index.d.ts +112 -0
  131. package/@types/ui-react-dom/with-schemas/index.d.cts +112 -0
  132. package/@types/ui-react-dom/with-schemas/index.d.ts +112 -0
  133. package/@types/ui-react-inspector/index.d.cts +6 -2
  134. package/@types/ui-react-inspector/index.d.ts +6 -2
  135. package/@types/ui-react-inspector/with-schemas/index.d.cts +118 -2
  136. package/@types/ui-react-inspector/with-schemas/index.d.ts +118 -2
  137. package/@types/with-schemas/index.d.cts +1 -0
  138. package/@types/with-schemas/index.d.ts +1 -0
  139. package/cjs/es6/index.cjs +49 -43
  140. package/cjs/es6/min/index.cjs +1 -1
  141. package/cjs/es6/min/index.cjs.gz +0 -0
  142. package/cjs/es6/min/metrics/index.cjs +1 -1
  143. package/cjs/es6/min/metrics/index.cjs.gz +0 -0
  144. package/cjs/es6/min/metrics/with-schemas/index.cjs +1 -1
  145. package/cjs/es6/min/metrics/with-schemas/index.cjs.gz +0 -0
  146. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  147. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  148. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  149. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  150. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  151. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  152. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  153. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  154. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  155. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  156. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  157. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  158. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  159. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  160. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  161. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  162. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  163. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  164. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  165. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  166. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  167. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  168. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  169. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  170. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  171. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  172. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  173. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  174. package/cjs/es6/min/queries/index.cjs +1 -1
  175. package/cjs/es6/min/queries/index.cjs.gz +0 -0
  176. package/cjs/es6/min/queries/with-schemas/index.cjs +1 -1
  177. package/cjs/es6/min/queries/with-schemas/index.cjs.gz +0 -0
  178. package/cjs/es6/min/synchronizers/index.cjs +1 -1
  179. package/cjs/es6/min/synchronizers/index.cjs.gz +0 -0
  180. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
  181. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  182. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
  183. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  184. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  185. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  186. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  187. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  188. package/cjs/es6/min/synchronizers/with-schemas/index.cjs +1 -1
  189. package/cjs/es6/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  190. package/cjs/es6/min/ui-react/index.cjs +1 -1
  191. package/cjs/es6/min/ui-react/index.cjs.gz +0 -0
  192. package/cjs/es6/min/ui-react/with-schemas/index.cjs +1 -1
  193. package/cjs/es6/min/ui-react/with-schemas/index.cjs.gz +0 -0
  194. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  195. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  196. package/cjs/es6/persisters/index.cjs +5 -5
  197. package/cjs/es6/persisters/persister-automerge/index.cjs +5 -5
  198. package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +5 -5
  199. package/cjs/es6/persisters/persister-browser/index.cjs +5 -5
  200. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +5 -5
  201. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +11 -11
  202. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +11 -11
  203. package/cjs/es6/persisters/persister-electric-sql/index.cjs +11 -11
  204. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +11 -11
  205. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +11 -11
  206. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +11 -11
  207. package/cjs/es6/persisters/persister-file/index.cjs +5 -5
  208. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +5 -5
  209. package/cjs/es6/persisters/persister-indexed-db/index.cjs +5 -5
  210. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +5 -5
  211. package/cjs/es6/persisters/persister-libsql/index.cjs +11 -11
  212. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +11 -11
  213. package/cjs/es6/persisters/persister-partykit-client/index.cjs +5 -5
  214. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +5 -5
  215. package/cjs/es6/persisters/persister-powersync/index.cjs +11 -11
  216. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +11 -11
  217. package/cjs/es6/persisters/persister-remote/index.cjs +5 -5
  218. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +5 -5
  219. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +11 -11
  220. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +11 -11
  221. package/cjs/es6/persisters/persister-sqlite3/index.cjs +11 -11
  222. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +11 -11
  223. package/cjs/es6/persisters/persister-yjs/index.cjs +5 -5
  224. package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +5 -5
  225. package/cjs/es6/persisters/with-schemas/index.cjs +5 -5
  226. package/cjs/es6/synchronizers/index.cjs +49 -43
  227. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +628 -0
  228. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +628 -0
  229. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +53 -48
  230. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +53 -48
  231. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +61 -62
  232. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +61 -62
  233. package/cjs/es6/synchronizers/with-schemas/index.cjs +49 -43
  234. package/cjs/es6/ui-react/index.cjs +137 -75
  235. package/cjs/es6/ui-react/with-schemas/index.cjs +137 -75
  236. package/cjs/es6/ui-react-inspector/index.cjs +5 -5
  237. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +5 -5
  238. package/cjs/es6/with-schemas/index.cjs +49 -43
  239. package/cjs/index.cjs +49 -43
  240. package/cjs/min/index.cjs +1 -1
  241. package/cjs/min/index.cjs.gz +0 -0
  242. package/cjs/min/metrics/index.cjs +1 -1
  243. package/cjs/min/metrics/index.cjs.gz +0 -0
  244. package/cjs/min/metrics/with-schemas/index.cjs +1 -1
  245. package/cjs/min/metrics/with-schemas/index.cjs.gz +0 -0
  246. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  247. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  248. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  249. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  250. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  251. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  252. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  253. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  254. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  255. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  256. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  257. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  258. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  259. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  260. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  261. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  262. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  263. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  264. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  265. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  266. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  267. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  268. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  269. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  270. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  271. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  272. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  273. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  274. package/cjs/min/queries/index.cjs +1 -1
  275. package/cjs/min/queries/index.cjs.gz +0 -0
  276. package/cjs/min/queries/with-schemas/index.cjs +1 -1
  277. package/cjs/min/queries/with-schemas/index.cjs.gz +0 -0
  278. package/cjs/min/synchronizers/index.cjs +1 -1
  279. package/cjs/min/synchronizers/index.cjs.gz +0 -0
  280. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
  281. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  282. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
  283. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  284. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  285. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  286. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  287. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  288. package/cjs/min/synchronizers/with-schemas/index.cjs +1 -1
  289. package/cjs/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  290. package/cjs/min/ui-react/index.cjs +1 -1
  291. package/cjs/min/ui-react/index.cjs.gz +0 -0
  292. package/cjs/min/ui-react/with-schemas/index.cjs +1 -1
  293. package/cjs/min/ui-react/with-schemas/index.cjs.gz +0 -0
  294. package/cjs/min/with-schemas/index.cjs +1 -1
  295. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  296. package/cjs/persisters/index.cjs +5 -5
  297. package/cjs/persisters/persister-automerge/index.cjs +5 -5
  298. package/cjs/persisters/persister-automerge/with-schemas/index.cjs +5 -5
  299. package/cjs/persisters/persister-browser/index.cjs +5 -5
  300. package/cjs/persisters/persister-browser/with-schemas/index.cjs +5 -5
  301. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +11 -11
  302. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +11 -11
  303. package/cjs/persisters/persister-electric-sql/index.cjs +11 -11
  304. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +11 -11
  305. package/cjs/persisters/persister-expo-sqlite/index.cjs +11 -11
  306. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +11 -11
  307. package/cjs/persisters/persister-file/index.cjs +5 -5
  308. package/cjs/persisters/persister-file/with-schemas/index.cjs +5 -5
  309. package/cjs/persisters/persister-indexed-db/index.cjs +5 -5
  310. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +5 -5
  311. package/cjs/persisters/persister-libsql/index.cjs +11 -11
  312. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +11 -11
  313. package/cjs/persisters/persister-partykit-client/index.cjs +5 -5
  314. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +5 -5
  315. package/cjs/persisters/persister-powersync/index.cjs +11 -11
  316. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +11 -11
  317. package/cjs/persisters/persister-remote/index.cjs +5 -5
  318. package/cjs/persisters/persister-remote/with-schemas/index.cjs +5 -5
  319. package/cjs/persisters/persister-sqlite-wasm/index.cjs +11 -11
  320. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +11 -11
  321. package/cjs/persisters/persister-sqlite3/index.cjs +11 -11
  322. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +11 -11
  323. package/cjs/persisters/persister-yjs/index.cjs +5 -5
  324. package/cjs/persisters/persister-yjs/with-schemas/index.cjs +5 -5
  325. package/cjs/persisters/with-schemas/index.cjs +5 -5
  326. package/cjs/synchronizers/index.cjs +49 -43
  327. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +500 -0
  328. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +500 -0
  329. package/cjs/synchronizers/synchronizer-local/index.cjs +53 -53
  330. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +53 -53
  331. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +61 -62
  332. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +61 -62
  333. package/cjs/synchronizers/with-schemas/index.cjs +49 -43
  334. package/cjs/ui-react/index.cjs +139 -74
  335. package/cjs/ui-react/with-schemas/index.cjs +139 -74
  336. package/cjs/ui-react-inspector/index.cjs +5 -5
  337. package/cjs/ui-react-inspector/with-schemas/index.cjs +5 -5
  338. package/cjs/with-schemas/index.cjs +49 -43
  339. package/es6/index.js +49 -43
  340. package/es6/min/index.js +1 -1
  341. package/es6/min/index.js.gz +0 -0
  342. package/es6/min/metrics/index.js +1 -1
  343. package/es6/min/metrics/index.js.gz +0 -0
  344. package/es6/min/metrics/with-schemas/index.js +1 -1
  345. package/es6/min/metrics/with-schemas/index.js.gz +0 -0
  346. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  347. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  348. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  349. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  350. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  351. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  352. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  353. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  354. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  355. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  356. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  357. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  358. package/es6/min/persisters/persister-libsql/index.js +1 -1
  359. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  360. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  361. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  362. package/es6/min/persisters/persister-powersync/index.js +1 -1
  363. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  364. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  365. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  366. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  367. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  368. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  369. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  370. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  371. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  372. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  373. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  374. package/es6/min/queries/index.js +1 -1
  375. package/es6/min/queries/index.js.gz +0 -0
  376. package/es6/min/queries/with-schemas/index.js +1 -1
  377. package/es6/min/queries/with-schemas/index.js.gz +0 -0
  378. package/es6/min/synchronizers/index.js +1 -1
  379. package/es6/min/synchronizers/index.js.gz +0 -0
  380. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  381. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  382. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  383. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  384. package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  385. package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  386. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  387. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  388. package/es6/min/synchronizers/with-schemas/index.js +1 -1
  389. package/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  390. package/es6/min/ui-react/index.js +1 -1
  391. package/es6/min/ui-react/index.js.gz +0 -0
  392. package/es6/min/ui-react/with-schemas/index.js +1 -1
  393. package/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  394. package/es6/min/with-schemas/index.js +1 -1
  395. package/es6/min/with-schemas/index.js.gz +0 -0
  396. package/es6/persisters/index.js +5 -5
  397. package/es6/persisters/persister-automerge/index.js +5 -5
  398. package/es6/persisters/persister-automerge/with-schemas/index.js +5 -5
  399. package/es6/persisters/persister-browser/index.js +5 -5
  400. package/es6/persisters/persister-browser/with-schemas/index.js +5 -5
  401. package/es6/persisters/persister-cr-sqlite-wasm/index.js +11 -11
  402. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
  403. package/es6/persisters/persister-electric-sql/index.js +11 -11
  404. package/es6/persisters/persister-electric-sql/with-schemas/index.js +11 -11
  405. package/es6/persisters/persister-expo-sqlite/index.js +11 -11
  406. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
  407. package/es6/persisters/persister-file/index.js +5 -5
  408. package/es6/persisters/persister-file/with-schemas/index.js +5 -5
  409. package/es6/persisters/persister-indexed-db/index.js +5 -5
  410. package/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  411. package/es6/persisters/persister-libsql/index.js +11 -11
  412. package/es6/persisters/persister-libsql/with-schemas/index.js +11 -11
  413. package/es6/persisters/persister-partykit-client/index.js +5 -5
  414. package/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  415. package/es6/persisters/persister-powersync/index.js +11 -11
  416. package/es6/persisters/persister-powersync/with-schemas/index.js +11 -11
  417. package/es6/persisters/persister-remote/index.js +5 -5
  418. package/es6/persisters/persister-remote/with-schemas/index.js +5 -5
  419. package/es6/persisters/persister-sqlite-wasm/index.js +11 -11
  420. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
  421. package/es6/persisters/persister-sqlite3/index.js +11 -11
  422. package/es6/persisters/persister-sqlite3/with-schemas/index.js +11 -11
  423. package/es6/persisters/persister-yjs/index.js +5 -5
  424. package/es6/persisters/persister-yjs/with-schemas/index.js +5 -5
  425. package/es6/persisters/with-schemas/index.js +5 -5
  426. package/es6/synchronizers/index.js +49 -44
  427. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +626 -0
  428. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +626 -0
  429. package/es6/synchronizers/synchronizer-local/index.js +53 -48
  430. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +53 -48
  431. package/es6/synchronizers/synchronizer-ws-client/index.js +61 -62
  432. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +61 -62
  433. package/es6/synchronizers/with-schemas/index.js +49 -44
  434. package/es6/ui-react/index.js +137 -75
  435. package/es6/ui-react/with-schemas/index.js +137 -75
  436. package/es6/ui-react-inspector/index.js +5 -5
  437. package/es6/ui-react-inspector/with-schemas/index.js +5 -5
  438. package/es6/with-schemas/index.js +49 -43
  439. package/index.js +49 -43
  440. package/min/index.js +1 -1
  441. package/min/index.js.gz +0 -0
  442. package/min/metrics/index.js +1 -1
  443. package/min/metrics/index.js.gz +0 -0
  444. package/min/metrics/with-schemas/index.js +1 -1
  445. package/min/metrics/with-schemas/index.js.gz +0 -0
  446. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  447. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  448. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  449. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  450. package/min/persisters/persister-electric-sql/index.js +1 -1
  451. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  452. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  453. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  454. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  455. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  456. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  457. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  458. package/min/persisters/persister-libsql/index.js +1 -1
  459. package/min/persisters/persister-libsql/index.js.gz +0 -0
  460. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  461. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  462. package/min/persisters/persister-powersync/index.js +1 -1
  463. package/min/persisters/persister-powersync/index.js.gz +0 -0
  464. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  465. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  466. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  467. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  468. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  469. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  470. package/min/persisters/persister-sqlite3/index.js +1 -1
  471. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  472. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  473. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  474. package/min/queries/index.js +1 -1
  475. package/min/queries/index.js.gz +0 -0
  476. package/min/queries/with-schemas/index.js +1 -1
  477. package/min/queries/with-schemas/index.js.gz +0 -0
  478. package/min/synchronizers/index.js +1 -1
  479. package/min/synchronizers/index.js.gz +0 -0
  480. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  481. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  482. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  483. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  484. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  485. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  486. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  487. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  488. package/min/synchronizers/with-schemas/index.js +1 -1
  489. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  490. package/min/ui-react/index.js +1 -1
  491. package/min/ui-react/index.js.gz +0 -0
  492. package/min/ui-react/with-schemas/index.js +1 -1
  493. package/min/ui-react/with-schemas/index.js.gz +0 -0
  494. package/min/with-schemas/index.js +1 -1
  495. package/min/with-schemas/index.js.gz +0 -0
  496. package/package.json +109 -5
  497. package/persisters/index.js +5 -5
  498. package/persisters/persister-automerge/index.js +5 -5
  499. package/persisters/persister-automerge/with-schemas/index.js +5 -5
  500. package/persisters/persister-browser/index.js +5 -5
  501. package/persisters/persister-browser/with-schemas/index.js +5 -5
  502. package/persisters/persister-cr-sqlite-wasm/index.js +11 -11
  503. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
  504. package/persisters/persister-electric-sql/index.js +11 -11
  505. package/persisters/persister-electric-sql/with-schemas/index.js +11 -11
  506. package/persisters/persister-expo-sqlite/index.js +11 -11
  507. package/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
  508. package/persisters/persister-file/index.js +5 -5
  509. package/persisters/persister-file/with-schemas/index.js +5 -5
  510. package/persisters/persister-indexed-db/index.js +5 -5
  511. package/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  512. package/persisters/persister-libsql/index.js +11 -11
  513. package/persisters/persister-libsql/with-schemas/index.js +11 -11
  514. package/persisters/persister-partykit-client/index.js +5 -5
  515. package/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  516. package/persisters/persister-powersync/index.js +11 -11
  517. package/persisters/persister-powersync/with-schemas/index.js +11 -11
  518. package/persisters/persister-remote/index.js +5 -5
  519. package/persisters/persister-remote/with-schemas/index.js +5 -5
  520. package/persisters/persister-sqlite-wasm/index.js +11 -11
  521. package/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
  522. package/persisters/persister-sqlite3/index.js +11 -11
  523. package/persisters/persister-sqlite3/with-schemas/index.js +11 -11
  524. package/persisters/persister-yjs/index.js +5 -5
  525. package/persisters/persister-yjs/with-schemas/index.js +5 -5
  526. package/persisters/with-schemas/index.js +5 -5
  527. package/readme.md +10 -10
  528. package/releases.md +8 -8
  529. package/synchronizers/index.js +49 -44
  530. package/synchronizers/synchronizer-broadcast-channel/index.js +498 -0
  531. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +498 -0
  532. package/synchronizers/synchronizer-local/index.js +53 -53
  533. package/synchronizers/synchronizer-local/with-schemas/index.js +53 -53
  534. package/synchronizers/synchronizer-ws-client/index.js +61 -62
  535. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +61 -62
  536. package/synchronizers/with-schemas/index.js +49 -44
  537. package/ui-react/index.js +139 -74
  538. package/ui-react/with-schemas/index.js +139 -74
  539. package/ui-react-inspector/index.js +5 -5
  540. package/ui-react-inspector/with-schemas/index.js +5 -5
  541. package/umd/es6/index.js +52 -43
  542. package/umd/es6/min/index.js +1 -1
  543. package/umd/es6/min/index.js.gz +0 -0
  544. package/umd/es6/min/metrics/index.js +1 -1
  545. package/umd/es6/min/metrics/index.js.gz +0 -0
  546. package/umd/es6/min/metrics/with-schemas/index.js +1 -1
  547. package/umd/es6/min/metrics/with-schemas/index.js.gz +0 -0
  548. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  549. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  550. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  551. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  552. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  553. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  554. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  555. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  556. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  557. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  558. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  559. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  560. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  561. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  562. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  563. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  564. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  565. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  566. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  567. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  568. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  569. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  570. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  571. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  572. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  573. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  574. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  575. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  576. package/umd/es6/min/queries/index.js +1 -1
  577. package/umd/es6/min/queries/index.js.gz +0 -0
  578. package/umd/es6/min/queries/with-schemas/index.js +1 -1
  579. package/umd/es6/min/queries/with-schemas/index.js.gz +0 -0
  580. package/umd/es6/min/synchronizers/index.js +1 -1
  581. package/umd/es6/min/synchronizers/index.js.gz +0 -0
  582. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  583. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  584. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  585. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  586. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  587. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  588. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  589. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  590. package/umd/es6/min/synchronizers/with-schemas/index.js +1 -1
  591. package/umd/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  592. package/umd/es6/min/ui-react/index.js +1 -1
  593. package/umd/es6/min/ui-react/index.js.gz +0 -0
  594. package/umd/es6/min/ui-react/with-schemas/index.js +1 -1
  595. package/umd/es6/min/ui-react/with-schemas/index.js.gz +0 -0
  596. package/umd/es6/min/with-schemas/index.js +1 -1
  597. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  598. package/umd/es6/persisters/index.js +5 -5
  599. package/umd/es6/persisters/persister-automerge/index.js +5 -5
  600. package/umd/es6/persisters/persister-automerge/with-schemas/index.js +5 -5
  601. package/umd/es6/persisters/persister-browser/index.js +5 -5
  602. package/umd/es6/persisters/persister-browser/with-schemas/index.js +5 -5
  603. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +11 -11
  604. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
  605. package/umd/es6/persisters/persister-electric-sql/index.js +11 -11
  606. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +11 -11
  607. package/umd/es6/persisters/persister-expo-sqlite/index.js +11 -11
  608. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
  609. package/umd/es6/persisters/persister-file/index.js +5 -5
  610. package/umd/es6/persisters/persister-file/with-schemas/index.js +5 -5
  611. package/umd/es6/persisters/persister-indexed-db/index.js +5 -5
  612. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  613. package/umd/es6/persisters/persister-libsql/index.js +11 -11
  614. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +11 -11
  615. package/umd/es6/persisters/persister-partykit-client/index.js +5 -5
  616. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  617. package/umd/es6/persisters/persister-powersync/index.js +11 -11
  618. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +11 -11
  619. package/umd/es6/persisters/persister-remote/index.js +5 -5
  620. package/umd/es6/persisters/persister-remote/with-schemas/index.js +5 -5
  621. package/umd/es6/persisters/persister-sqlite-wasm/index.js +11 -11
  622. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
  623. package/umd/es6/persisters/persister-sqlite3/index.js +11 -11
  624. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +11 -11
  625. package/umd/es6/persisters/persister-yjs/index.js +5 -5
  626. package/umd/es6/persisters/persister-yjs/with-schemas/index.js +5 -5
  627. package/umd/es6/persisters/with-schemas/index.js +5 -5
  628. package/umd/es6/synchronizers/index.js +52 -43
  629. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +654 -0
  630. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +654 -0
  631. package/umd/es6/synchronizers/synchronizer-local/index.js +56 -48
  632. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +56 -48
  633. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +64 -62
  634. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +64 -62
  635. package/umd/es6/synchronizers/with-schemas/index.js +52 -43
  636. package/umd/es6/ui-react/index.js +135 -72
  637. package/umd/es6/ui-react/with-schemas/index.js +135 -72
  638. package/umd/es6/ui-react-inspector/index.js +5 -5
  639. package/umd/es6/ui-react-inspector/with-schemas/index.js +5 -5
  640. package/umd/es6/with-schemas/index.js +52 -43
  641. package/umd/index.js +52 -47
  642. package/umd/min/index.js +1 -1
  643. package/umd/min/index.js.gz +0 -0
  644. package/umd/min/metrics/index.js +1 -1
  645. package/umd/min/metrics/index.js.gz +0 -0
  646. package/umd/min/metrics/with-schemas/index.js +1 -1
  647. package/umd/min/metrics/with-schemas/index.js.gz +0 -0
  648. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  649. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  650. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  651. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  652. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  653. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  654. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  655. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  656. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  657. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  658. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  659. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  660. package/umd/min/persisters/persister-libsql/index.js +1 -1
  661. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  662. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  663. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  664. package/umd/min/persisters/persister-powersync/index.js +1 -1
  665. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  666. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  667. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  668. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  669. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  670. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  671. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  672. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  673. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  674. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  675. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  676. package/umd/min/queries/index.js +1 -1
  677. package/umd/min/queries/index.js.gz +0 -0
  678. package/umd/min/queries/with-schemas/index.js +1 -1
  679. package/umd/min/queries/with-schemas/index.js.gz +0 -0
  680. package/umd/min/synchronizers/index.js +1 -1
  681. package/umd/min/synchronizers/index.js.gz +0 -0
  682. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  683. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  684. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  685. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  686. package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  687. package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  688. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  689. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  690. package/umd/min/synchronizers/with-schemas/index.js +1 -1
  691. package/umd/min/synchronizers/with-schemas/index.js.gz +0 -0
  692. package/umd/min/ui-react/index.js +1 -1
  693. package/umd/min/ui-react/index.js.gz +0 -0
  694. package/umd/min/ui-react/with-schemas/index.js +1 -1
  695. package/umd/min/ui-react/with-schemas/index.js.gz +0 -0
  696. package/umd/min/with-schemas/index.js +1 -1
  697. package/umd/min/with-schemas/index.js.gz +0 -0
  698. package/umd/persisters/index.js +5 -5
  699. package/umd/persisters/persister-automerge/index.js +5 -5
  700. package/umd/persisters/persister-automerge/with-schemas/index.js +5 -5
  701. package/umd/persisters/persister-browser/index.js +5 -5
  702. package/umd/persisters/persister-browser/with-schemas/index.js +5 -5
  703. package/umd/persisters/persister-cr-sqlite-wasm/index.js +11 -11
  704. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +11 -11
  705. package/umd/persisters/persister-electric-sql/index.js +11 -11
  706. package/umd/persisters/persister-electric-sql/with-schemas/index.js +11 -11
  707. package/umd/persisters/persister-expo-sqlite/index.js +11 -11
  708. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +11 -11
  709. package/umd/persisters/persister-file/index.js +5 -5
  710. package/umd/persisters/persister-file/with-schemas/index.js +5 -5
  711. package/umd/persisters/persister-indexed-db/index.js +5 -5
  712. package/umd/persisters/persister-indexed-db/with-schemas/index.js +5 -5
  713. package/umd/persisters/persister-libsql/index.js +11 -11
  714. package/umd/persisters/persister-libsql/with-schemas/index.js +11 -11
  715. package/umd/persisters/persister-partykit-client/index.js +5 -5
  716. package/umd/persisters/persister-partykit-client/with-schemas/index.js +5 -5
  717. package/umd/persisters/persister-powersync/index.js +11 -11
  718. package/umd/persisters/persister-powersync/with-schemas/index.js +11 -11
  719. package/umd/persisters/persister-remote/index.js +5 -5
  720. package/umd/persisters/persister-remote/with-schemas/index.js +5 -5
  721. package/umd/persisters/persister-sqlite-wasm/index.js +11 -11
  722. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +11 -11
  723. package/umd/persisters/persister-sqlite3/index.js +11 -11
  724. package/umd/persisters/persister-sqlite3/with-schemas/index.js +11 -11
  725. package/umd/persisters/persister-yjs/index.js +5 -5
  726. package/umd/persisters/persister-yjs/with-schemas/index.js +5 -5
  727. package/umd/persisters/with-schemas/index.js +5 -5
  728. package/umd/synchronizers/index.js +52 -47
  729. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +516 -0
  730. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +516 -0
  731. package/umd/synchronizers/synchronizer-local/index.js +56 -57
  732. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +56 -57
  733. package/umd/synchronizers/synchronizer-ws-client/index.js +64 -66
  734. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +64 -66
  735. package/umd/synchronizers/with-schemas/index.js +52 -47
  736. package/umd/ui-react/index.js +140 -71
  737. package/umd/ui-react/with-schemas/index.js +140 -71
  738. package/umd/ui-react-inspector/index.js +5 -5
  739. package/umd/ui-react-inspector/with-schemas/index.js +5 -5
  740. package/umd/with-schemas/index.js +52 -47
  741. package/with-schemas/index.js +49 -43
@@ -2,7 +2,7 @@
2
2
  * The synchronizer-local module of the TinyBase project lets you synchronize
3
3
  * MergeableStore data to and from other MergeableStore instances on the same
4
4
  * local machine.
5
- * @see Synchronizing Data guide
5
+ * @see Synchronization guide
6
6
  * @packageDocumentation
7
7
  * @module synchronizer-local
8
8
  * @since v5.0.0
@@ -13,15 +13,89 @@ import type {OptionalSchemas} from '../../../store/with-schemas/index.d.ts';
13
13
  import type {Synchronizer} from '../../with-schemas/index.d.ts';
14
14
 
15
15
  /**
16
- * The LocalSynchronizer interface.
16
+ * The LocalSynchronizer interface represents a Synchronizer that lets you
17
+ * synchronize MergeableStore data to and from other MergeableStore instances on
18
+ * the same local machine.
19
+ *
20
+ * This has schema-based typing. The following is a simplified representation:
21
+ *
22
+ * ```ts override
23
+ * export interface LocalSynchronizer extends Synchronizer {}
24
+ * ```
25
+ *
26
+ * You should use the createLocalSynchronizer function to create a
27
+ * LocalSynchronizer object.
28
+ *
29
+ * Having no specialized methods, it is a synonym for the Synchronizer
30
+ * interface. This is also something of a showcase Synchronizer, rather than
31
+ * something you would use in a production environment. If you _do_ need to
32
+ * synchronize two in-memory MergeableStore instances, you may prefer to use the
33
+ * merge function on either one of them instead of going to the effort of
34
+ * setting up this Synchronizer.
17
35
  * @category Synchronizer
36
+ * @since v5.0.0
18
37
  */
19
38
  export interface LocalSynchronizer<Schemas extends OptionalSchemas>
20
39
  extends Synchronizer<Schemas> {}
21
40
 
22
41
  /**
23
- * The createLocalSynchronizer function.
42
+ * The createLocalSynchronizer function creates a LocalSynchronizer object that
43
+ * can synchronize MergeableStore data to and from other MergeableStore
44
+ * instances on the same local machine.
45
+ *
46
+ * This has schema-based typing. The following is a simplified representation:
47
+ *
48
+ * ```ts override
49
+ * createLocalSynchronizer(
50
+ * store: MergeableStore,
51
+ * onIgnoredError?: (error: any) => void,
52
+ * ): LocalSynchronizer;
53
+ * ```
54
+ *
55
+ * This is something of a showcase Synchronizer, rather than something you would
56
+ * use in a production environment. If you _do_ need to synchronize two
57
+ * in-memory MergeableStore instances, you may prefer to use the merge function
58
+ * on either one of them instead of going to the effort of setting up this
59
+ * Synchronizer.
60
+ *
61
+ * As well as providing a reference to the MergeableStore to persist, you can
62
+ * provide a handler for any otherwise ignored synchronization errors.
63
+ * @param store The MergeableStore to synchronize.
64
+ * @param onIgnoredError An optional handler for the errors that the
65
+ * Synchronizer would otherwise ignore when trying to synchronize data. This is
66
+ * suitable for debugging synchronization issues in a development environment.
67
+ * @returns A reference to the new LocalSynchronizer object.
68
+ * @example
69
+ * This example creates two LocalSynchronizer objects to synchronize one
70
+ * MergeableStore to another.
71
+ *
72
+ * ```js
73
+ * import {createLocalSynchronizer} from 'tinybase/synchronizers/synchronizer-local';
74
+ * import {createMergeableStore} from 'tinybase';
75
+ *
76
+ * const store1 = createMergeableStore();
77
+ * const store2 = createMergeableStore();
78
+ *
79
+ * const synchronizer1 = createLocalSynchronizer(store1);
80
+ * const synchronizer2 = createLocalSynchronizer(store2);
81
+ *
82
+ * await synchronizer1.startSync();
83
+ * await synchronizer2.startSync();
84
+ *
85
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
86
+ * store2.setTables({pets: {felix: {species: 'cat'}}});
87
+ *
88
+ * // ...
89
+ * console.log(store1.getTables());
90
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
91
+ * console.log(store2.getTables());
92
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
93
+ *
94
+ * synchronizer1.destroy();
95
+ * synchronizer2.destroy();
96
+ * ```
24
97
  * @category Creation
98
+ * @since v5.0.0
25
99
  */
26
100
  export function createLocalSynchronizer<Schemas extends OptionalSchemas>(
27
101
  store: MergeableStore<Schemas>,
@@ -2,7 +2,7 @@
2
2
  * The synchronizer-ws module of the TinyBase project lets you synchronize
3
3
  * MergeableStore data to and from other MergeableStore instances via WebSockets
4
4
  * facilitated by a server.
5
- * @see Synchronizing Data guide
5
+ * @see Synchronization guide
6
6
  * @see Todo App v6 (collaboration) demo
7
7
  * @packageDocumentation
8
8
  * @module synchronizer-ws-client
@@ -13,20 +13,127 @@ import type {MergeableStore} from '../../mergeable-store/index.d.cts';
13
13
  import type {Synchronizer} from '../index.d.cts';
14
14
  import type {WebSocket as WsWebSocket} from 'ws';
15
15
 
16
+ /**
17
+ * The WebSocketTypes type represents the valid types of WebSocket that can be
18
+ * used with the WsSynchronizer.
19
+ *
20
+ * This includes the browser-native WebSocket type, as well as the WebSocket
21
+ * type from the well-known `ws` package (such that the Synchronizer can be used
22
+ * in a server environment).
23
+ * @category Creation
24
+ * @since v5.0.0
25
+ */
16
26
  export type WebSocketTypes = WebSocket | WsWebSocket;
17
27
 
18
28
  /**
19
- * The WsSynchronizer interface.
29
+ * The WsSynchronizer interface represents a Synchronizer that lets you
30
+ * synchronize MergeableStore data to and from other MergeableStore instances
31
+ * via WebSockets facilitated by a server.
32
+ *
33
+ * You should use the createWsSynchronizer function to create a WsSynchronizer
34
+ * object.
35
+ *
36
+ * It is a minor extension to the Synchronizer interface and simply provides an
37
+ * extra getWebSocket method for accessing a reference to the WebSocket being
38
+ * used.
20
39
  * @category Synchronizer
40
+ * @since v5.0.0
21
41
  */
22
42
  export interface WsSynchronizer<WebSocketType extends WebSocketTypes>
23
43
  extends Synchronizer {
44
+ /**
45
+ * The getWebSocket method returns a reference to the WebSocket being used for
46
+ * synchronization.
47
+ * @returns The WebSocket reference.
48
+ * @example
49
+ * This example creates a server and WsSynchronizer object for a newly-created
50
+ * MergeableStore and then gets the WebSocket reference back out again.
51
+ *
52
+ * ```js
53
+ * import {WebSocket, WebSocketServer} from 'ws';
54
+ * import {createMergeableStore} from 'tinybase';
55
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
56
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
57
+ *
58
+ * const server = createWsServer(new WebSocketServer({port: 8046}));
59
+ *
60
+ * const store = createMergeableStore();
61
+ * const webSocket = new WebSocket('ws://localhost:8046');
62
+ * const synchronizer = await createWsSynchronizer(store, webSocket);
63
+ *
64
+ * console.log(synchronizer.getWebSocket() == webSocket);
65
+ * // -> true
66
+ *
67
+ * synchronizer.destroy();
68
+ * server.destroy();
69
+ * ```
70
+ * @category Getter
71
+ * @since v5.0.0
72
+ */
24
73
  getWebSocket(): WebSocketType;
25
74
  }
26
75
 
27
76
  /**
28
- * The createWsSynchronizer function.
77
+ * The createWsSynchronizer function creates a WsSynchronizer object that can
78
+ * synchronize MergeableStore data to and from other MergeableStore instances
79
+ * via WebSockets facilitated by a WsServer.
80
+ *
81
+ * As well as providing a reference to the MergeableStore to persist, you must
82
+ * provide a configured WebSocket to send synchronization messages over.
83
+ *
84
+ * This method is asynchronous because it will await the websocket's connection
85
+ * to the server. You will need to `await` a call to this function or handle the
86
+ * return type natively as a Promise.
87
+ * @param store The MergeableStore to synchronize.
88
+ * @param webSocket The WebSocket to send synchronization messages over.
89
+ * @param requestTimeoutSeconds An optional time in seconds that the
90
+ * Synchronizer will wait for responses to request messages, defaulting to 1.
91
+ * @param onIgnoredError An optional handler for the errors that the
92
+ * Synchronizer would otherwise ignore when trying to synchronize data. This is
93
+ * suitable for debugging synchronization issues in a development environment.
94
+ * @returns A reference to the new WsSynchronizer object.
95
+ * @example
96
+ * This example creates two WsSynchronizer objects to synchronize one
97
+ * MergeableStore to another via a server.
98
+ *
99
+ * ```js
100
+ * import {WebSocket, WebSocketServer} from 'ws';
101
+ * import {createMergeableStore} from 'tinybase';
102
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
103
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
104
+ *
105
+ * const server = createWsServer(new WebSocketServer({port: 8047}));
106
+ *
107
+ * const store1 = createMergeableStore();
108
+ * const store2 = createMergeableStore();
109
+ *
110
+ * const synchronizer1 = await createWsSynchronizer(
111
+ * store1,
112
+ * new WebSocket('ws://localhost:8047'),
113
+ * );
114
+ * const synchronizer2 = await createWsSynchronizer(
115
+ * store2,
116
+ * new WebSocket('ws://localhost:8047'),
117
+ * );
118
+ *
119
+ * await synchronizer1.startSync();
120
+ * await synchronizer2.startSync();
121
+ *
122
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
123
+ * store2.setTables({pets: {felix: {species: 'cat'}}});
124
+ *
125
+ * // ...
126
+ * console.log(store1.getTables());
127
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
128
+ * console.log(store2.getTables());
129
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
130
+ *
131
+ * synchronizer1.destroy();
132
+ * synchronizer2.destroy();
133
+ * server.destroy();
134
+ * ```
29
135
  * @category Creation
136
+ * @since v5.0.0
30
137
  */
31
138
  export function createWsSynchronizer<WebSocketType extends WebSocketTypes>(
32
139
  store: MergeableStore,
@@ -2,7 +2,7 @@
2
2
  * The synchronizer-ws module of the TinyBase project lets you synchronize
3
3
  * MergeableStore data to and from other MergeableStore instances via WebSockets
4
4
  * facilitated by a server.
5
- * @see Synchronizing Data guide
5
+ * @see Synchronization guide
6
6
  * @see Todo App v6 (collaboration) demo
7
7
  * @packageDocumentation
8
8
  * @module synchronizer-ws-client
@@ -13,20 +13,127 @@ import type {MergeableStore} from '../../mergeable-store/index.d.ts';
13
13
  import type {Synchronizer} from '../index.d.ts';
14
14
  import type {WebSocket as WsWebSocket} from 'ws';
15
15
 
16
+ /**
17
+ * The WebSocketTypes type represents the valid types of WebSocket that can be
18
+ * used with the WsSynchronizer.
19
+ *
20
+ * This includes the browser-native WebSocket type, as well as the WebSocket
21
+ * type from the well-known `ws` package (such that the Synchronizer can be used
22
+ * in a server environment).
23
+ * @category Creation
24
+ * @since v5.0.0
25
+ */
16
26
  export type WebSocketTypes = WebSocket | WsWebSocket;
17
27
 
18
28
  /**
19
- * The WsSynchronizer interface.
29
+ * The WsSynchronizer interface represents a Synchronizer that lets you
30
+ * synchronize MergeableStore data to and from other MergeableStore instances
31
+ * via WebSockets facilitated by a server.
32
+ *
33
+ * You should use the createWsSynchronizer function to create a WsSynchronizer
34
+ * object.
35
+ *
36
+ * It is a minor extension to the Synchronizer interface and simply provides an
37
+ * extra getWebSocket method for accessing a reference to the WebSocket being
38
+ * used.
20
39
  * @category Synchronizer
40
+ * @since v5.0.0
21
41
  */
22
42
  export interface WsSynchronizer<WebSocketType extends WebSocketTypes>
23
43
  extends Synchronizer {
44
+ /**
45
+ * The getWebSocket method returns a reference to the WebSocket being used for
46
+ * synchronization.
47
+ * @returns The WebSocket reference.
48
+ * @example
49
+ * This example creates a server and WsSynchronizer object for a newly-created
50
+ * MergeableStore and then gets the WebSocket reference back out again.
51
+ *
52
+ * ```js
53
+ * import {WebSocket, WebSocketServer} from 'ws';
54
+ * import {createMergeableStore} from 'tinybase';
55
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
56
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
57
+ *
58
+ * const server = createWsServer(new WebSocketServer({port: 8046}));
59
+ *
60
+ * const store = createMergeableStore();
61
+ * const webSocket = new WebSocket('ws://localhost:8046');
62
+ * const synchronizer = await createWsSynchronizer(store, webSocket);
63
+ *
64
+ * console.log(synchronizer.getWebSocket() == webSocket);
65
+ * // -> true
66
+ *
67
+ * synchronizer.destroy();
68
+ * server.destroy();
69
+ * ```
70
+ * @category Getter
71
+ * @since v5.0.0
72
+ */
24
73
  getWebSocket(): WebSocketType;
25
74
  }
26
75
 
27
76
  /**
28
- * The createWsSynchronizer function.
77
+ * The createWsSynchronizer function creates a WsSynchronizer object that can
78
+ * synchronize MergeableStore data to and from other MergeableStore instances
79
+ * via WebSockets facilitated by a WsServer.
80
+ *
81
+ * As well as providing a reference to the MergeableStore to persist, you must
82
+ * provide a configured WebSocket to send synchronization messages over.
83
+ *
84
+ * This method is asynchronous because it will await the websocket's connection
85
+ * to the server. You will need to `await` a call to this function or handle the
86
+ * return type natively as a Promise.
87
+ * @param store The MergeableStore to synchronize.
88
+ * @param webSocket The WebSocket to send synchronization messages over.
89
+ * @param requestTimeoutSeconds An optional time in seconds that the
90
+ * Synchronizer will wait for responses to request messages, defaulting to 1.
91
+ * @param onIgnoredError An optional handler for the errors that the
92
+ * Synchronizer would otherwise ignore when trying to synchronize data. This is
93
+ * suitable for debugging synchronization issues in a development environment.
94
+ * @returns A reference to the new WsSynchronizer object.
95
+ * @example
96
+ * This example creates two WsSynchronizer objects to synchronize one
97
+ * MergeableStore to another via a server.
98
+ *
99
+ * ```js
100
+ * import {WebSocket, WebSocketServer} from 'ws';
101
+ * import {createMergeableStore} from 'tinybase';
102
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
103
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
104
+ *
105
+ * const server = createWsServer(new WebSocketServer({port: 8047}));
106
+ *
107
+ * const store1 = createMergeableStore();
108
+ * const store2 = createMergeableStore();
109
+ *
110
+ * const synchronizer1 = await createWsSynchronizer(
111
+ * store1,
112
+ * new WebSocket('ws://localhost:8047'),
113
+ * );
114
+ * const synchronizer2 = await createWsSynchronizer(
115
+ * store2,
116
+ * new WebSocket('ws://localhost:8047'),
117
+ * );
118
+ *
119
+ * await synchronizer1.startSync();
120
+ * await synchronizer2.startSync();
121
+ *
122
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
123
+ * store2.setTables({pets: {felix: {species: 'cat'}}});
124
+ *
125
+ * // ...
126
+ * console.log(store1.getTables());
127
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
128
+ * console.log(store2.getTables());
129
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
130
+ *
131
+ * synchronizer1.destroy();
132
+ * synchronizer2.destroy();
133
+ * server.destroy();
134
+ * ```
29
135
  * @category Creation
136
+ * @since v5.0.0
30
137
  */
31
138
  export function createWsSynchronizer<WebSocketType extends WebSocketTypes>(
32
139
  store: MergeableStore,
@@ -2,7 +2,7 @@
2
2
  * The synchronizer-ws module of the TinyBase project lets you synchronize
3
3
  * MergeableStore data to and from other MergeableStore instances via WebSockets
4
4
  * facilitated by a server.
5
- * @see Synchronizing Data guide
5
+ * @see Synchronization guide
6
6
  * @see Todo App v6 (collaboration) demo
7
7
  * @packageDocumentation
8
8
  * @module synchronizer-ws-client
@@ -14,22 +14,140 @@ import type {OptionalSchemas} from '../../../store/with-schemas/index.d.cts';
14
14
  import type {Synchronizer} from '../../with-schemas/index.d.cts';
15
15
  import type {WebSocket as WsWebSocket} from 'ws';
16
16
 
17
+ /**
18
+ * The WebSocketTypes type represents the valid types of WebSocket that can be
19
+ * used with the WsSynchronizer.
20
+ *
21
+ * This includes the browser-native WebSocket type, as well as the WebSocket
22
+ * type from the well-known `ws` package (such that the Synchronizer can be used
23
+ * in a server environment).
24
+ * @category Creation
25
+ * @since v5.0.0
26
+ */
17
27
  export type WebSocketTypes = WebSocket | WsWebSocket;
18
28
 
19
29
  /**
20
- * The WsSynchronizer interface.
30
+ * The WsSynchronizer interface represents a Synchronizer that lets you
31
+ * synchronize MergeableStore data to and from other MergeableStore instances
32
+ * via WebSockets facilitated by a server.
33
+ *
34
+ * You should use the createWsSynchronizer function to create a WsSynchronizer
35
+ * object.
36
+ *
37
+ * It is a minor extension to the Synchronizer interface and simply provides an
38
+ * extra getWebSocket method for accessing a reference to the WebSocket being
39
+ * used.
21
40
  * @category Synchronizer
41
+ * @since v5.0.0
22
42
  */
23
43
  export interface WsSynchronizer<
24
44
  Schemas extends OptionalSchemas,
25
45
  WebSocketType extends WebSocketTypes,
26
46
  > extends Synchronizer<Schemas> {
47
+ /**
48
+ * The getWebSocket method returns a reference to the WebSocket being used for
49
+ * synchronization.
50
+ * @returns The WebSocket reference.
51
+ * @example
52
+ * This example creates a server and WsSynchronizer object for a newly-created
53
+ * MergeableStore and then gets the WebSocket reference back out again.
54
+ *
55
+ * ```js
56
+ * import {WebSocket, WebSocketServer} from 'ws';
57
+ * import {createMergeableStore} from 'tinybase';
58
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
59
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
60
+ *
61
+ * const server = createWsServer(new WebSocketServer({port: 8046}));
62
+ *
63
+ * const store = createMergeableStore();
64
+ * const webSocket = new WebSocket('ws://localhost:8046');
65
+ * const synchronizer = await createWsSynchronizer(store, webSocket);
66
+ *
67
+ * console.log(synchronizer.getWebSocket() == webSocket);
68
+ * // -> true
69
+ *
70
+ * synchronizer.destroy();
71
+ * server.destroy();
72
+ * ```
73
+ * @category Getter
74
+ * @since v5.0.0
75
+ */
27
76
  getWebSocket(): WebSocketType;
28
77
  }
29
78
 
30
79
  /**
31
- * The createWsSynchronizer function.
80
+ * The createWsSynchronizer function creates a WsSynchronizer object that can
81
+ * synchronize MergeableStore data to and from other MergeableStore instances
82
+ * via WebSockets facilitated by a WsServer.
83
+ *
84
+ * This has schema-based typing. The following is a simplified representation:
85
+ *
86
+ * ```ts override
87
+ * createWsSynchronizer<WebSocketType extends WebSocketTypes>(
88
+ * store: MergeableStore,
89
+ * webSocket: WebSocketType,
90
+ * requestTimeoutSeconds?: number,
91
+ * onIgnoredError?: (error: any) => void,
92
+ * ): Promise<WsSynchronizer<WebSocketType>>;
93
+ * ```
94
+ *
95
+ * As well as providing a reference to the MergeableStore to persist, you must
96
+ * provide a configured WebSocket to send synchronization messages over.
97
+ *
98
+ * This method is asynchronous because it will await the websocket's connection
99
+ * to the server. You will need to `await` a call to this function or handle the
100
+ * return type natively as a Promise.
101
+ * @param store The MergeableStore to synchronize.
102
+ * @param webSocket The WebSocket to send synchronization messages over.
103
+ * @param requestTimeoutSeconds An optional time in seconds that the
104
+ * Synchronizer will wait for responses to request messages, defaulting to 1.
105
+ * @param onIgnoredError An optional handler for the errors that the
106
+ * Synchronizer would otherwise ignore when trying to synchronize data. This is
107
+ * suitable for debugging synchronization issues in a development environment.
108
+ * @returns A reference to the new WsSynchronizer object.
109
+ * @example
110
+ * This example creates two WsSynchronizer objects to synchronize one
111
+ * MergeableStore to another via a server.
112
+ *
113
+ * ```js
114
+ * import {WebSocket, WebSocketServer} from 'ws';
115
+ * import {createMergeableStore} from 'tinybase';
116
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
117
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
118
+ *
119
+ * const server = createWsServer(new WebSocketServer({port: 8047}));
120
+ *
121
+ * const store1 = createMergeableStore();
122
+ * const store2 = createMergeableStore();
123
+ *
124
+ * const synchronizer1 = await createWsSynchronizer(
125
+ * store1,
126
+ * new WebSocket('ws://localhost:8047'),
127
+ * );
128
+ * const synchronizer2 = await createWsSynchronizer(
129
+ * store2,
130
+ * new WebSocket('ws://localhost:8047'),
131
+ * );
132
+ *
133
+ * await synchronizer1.startSync();
134
+ * await synchronizer2.startSync();
135
+ *
136
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
137
+ * store2.setTables({pets: {felix: {species: 'cat'}}});
138
+ *
139
+ * // ...
140
+ * console.log(store1.getTables());
141
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
142
+ * console.log(store2.getTables());
143
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
144
+ *
145
+ * synchronizer1.destroy();
146
+ * synchronizer2.destroy();
147
+ * server.destroy();
148
+ * ```
32
149
  * @category Creation
150
+ * @since v5.0.0
33
151
  */
34
152
  export function createWsSynchronizer<
35
153
  Schemas extends OptionalSchemas,
@@ -2,7 +2,7 @@
2
2
  * The synchronizer-ws module of the TinyBase project lets you synchronize
3
3
  * MergeableStore data to and from other MergeableStore instances via WebSockets
4
4
  * facilitated by a server.
5
- * @see Synchronizing Data guide
5
+ * @see Synchronization guide
6
6
  * @see Todo App v6 (collaboration) demo
7
7
  * @packageDocumentation
8
8
  * @module synchronizer-ws-client
@@ -14,22 +14,140 @@ import type {OptionalSchemas} from '../../../store/with-schemas/index.d.ts';
14
14
  import type {Synchronizer} from '../../with-schemas/index.d.ts';
15
15
  import type {WebSocket as WsWebSocket} from 'ws';
16
16
 
17
+ /**
18
+ * The WebSocketTypes type represents the valid types of WebSocket that can be
19
+ * used with the WsSynchronizer.
20
+ *
21
+ * This includes the browser-native WebSocket type, as well as the WebSocket
22
+ * type from the well-known `ws` package (such that the Synchronizer can be used
23
+ * in a server environment).
24
+ * @category Creation
25
+ * @since v5.0.0
26
+ */
17
27
  export type WebSocketTypes = WebSocket | WsWebSocket;
18
28
 
19
29
  /**
20
- * The WsSynchronizer interface.
30
+ * The WsSynchronizer interface represents a Synchronizer that lets you
31
+ * synchronize MergeableStore data to and from other MergeableStore instances
32
+ * via WebSockets facilitated by a server.
33
+ *
34
+ * You should use the createWsSynchronizer function to create a WsSynchronizer
35
+ * object.
36
+ *
37
+ * It is a minor extension to the Synchronizer interface and simply provides an
38
+ * extra getWebSocket method for accessing a reference to the WebSocket being
39
+ * used.
21
40
  * @category Synchronizer
41
+ * @since v5.0.0
22
42
  */
23
43
  export interface WsSynchronizer<
24
44
  Schemas extends OptionalSchemas,
25
45
  WebSocketType extends WebSocketTypes,
26
46
  > extends Synchronizer<Schemas> {
47
+ /**
48
+ * The getWebSocket method returns a reference to the WebSocket being used for
49
+ * synchronization.
50
+ * @returns The WebSocket reference.
51
+ * @example
52
+ * This example creates a server and WsSynchronizer object for a newly-created
53
+ * MergeableStore and then gets the WebSocket reference back out again.
54
+ *
55
+ * ```js
56
+ * import {WebSocket, WebSocketServer} from 'ws';
57
+ * import {createMergeableStore} from 'tinybase';
58
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
59
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
60
+ *
61
+ * const server = createWsServer(new WebSocketServer({port: 8046}));
62
+ *
63
+ * const store = createMergeableStore();
64
+ * const webSocket = new WebSocket('ws://localhost:8046');
65
+ * const synchronizer = await createWsSynchronizer(store, webSocket);
66
+ *
67
+ * console.log(synchronizer.getWebSocket() == webSocket);
68
+ * // -> true
69
+ *
70
+ * synchronizer.destroy();
71
+ * server.destroy();
72
+ * ```
73
+ * @category Getter
74
+ * @since v5.0.0
75
+ */
27
76
  getWebSocket(): WebSocketType;
28
77
  }
29
78
 
30
79
  /**
31
- * The createWsSynchronizer function.
80
+ * The createWsSynchronizer function creates a WsSynchronizer object that can
81
+ * synchronize MergeableStore data to and from other MergeableStore instances
82
+ * via WebSockets facilitated by a WsServer.
83
+ *
84
+ * This has schema-based typing. The following is a simplified representation:
85
+ *
86
+ * ```ts override
87
+ * createWsSynchronizer<WebSocketType extends WebSocketTypes>(
88
+ * store: MergeableStore,
89
+ * webSocket: WebSocketType,
90
+ * requestTimeoutSeconds?: number,
91
+ * onIgnoredError?: (error: any) => void,
92
+ * ): Promise<WsSynchronizer<WebSocketType>>;
93
+ * ```
94
+ *
95
+ * As well as providing a reference to the MergeableStore to persist, you must
96
+ * provide a configured WebSocket to send synchronization messages over.
97
+ *
98
+ * This method is asynchronous because it will await the websocket's connection
99
+ * to the server. You will need to `await` a call to this function or handle the
100
+ * return type natively as a Promise.
101
+ * @param store The MergeableStore to synchronize.
102
+ * @param webSocket The WebSocket to send synchronization messages over.
103
+ * @param requestTimeoutSeconds An optional time in seconds that the
104
+ * Synchronizer will wait for responses to request messages, defaulting to 1.
105
+ * @param onIgnoredError An optional handler for the errors that the
106
+ * Synchronizer would otherwise ignore when trying to synchronize data. This is
107
+ * suitable for debugging synchronization issues in a development environment.
108
+ * @returns A reference to the new WsSynchronizer object.
109
+ * @example
110
+ * This example creates two WsSynchronizer objects to synchronize one
111
+ * MergeableStore to another via a server.
112
+ *
113
+ * ```js
114
+ * import {WebSocket, WebSocketServer} from 'ws';
115
+ * import {createMergeableStore} from 'tinybase';
116
+ * import {createWsServer} from 'tinybase/synchronizers/synchronizer-ws-server';
117
+ * import {createWsSynchronizer} from 'tinybase/synchronizers/synchronizer-ws-client';
118
+ *
119
+ * const server = createWsServer(new WebSocketServer({port: 8047}));
120
+ *
121
+ * const store1 = createMergeableStore();
122
+ * const store2 = createMergeableStore();
123
+ *
124
+ * const synchronizer1 = await createWsSynchronizer(
125
+ * store1,
126
+ * new WebSocket('ws://localhost:8047'),
127
+ * );
128
+ * const synchronizer2 = await createWsSynchronizer(
129
+ * store2,
130
+ * new WebSocket('ws://localhost:8047'),
131
+ * );
132
+ *
133
+ * await synchronizer1.startSync();
134
+ * await synchronizer2.startSync();
135
+ *
136
+ * store1.setTables({pets: {fido: {species: 'dog'}}});
137
+ * store2.setTables({pets: {felix: {species: 'cat'}}});
138
+ *
139
+ * // ...
140
+ * console.log(store1.getTables());
141
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
142
+ * console.log(store2.getTables());
143
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
144
+ *
145
+ * synchronizer1.destroy();
146
+ * synchronizer2.destroy();
147
+ * server.destroy();
148
+ * ```
32
149
  * @category Creation
150
+ * @since v5.0.0
33
151
  */
34
152
  export function createWsSynchronizer<
35
153
  Schemas extends OptionalSchemas,