tinybase 5.0.0-beta.27 → 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 (249) 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 +87 -25
  26. package/@types/persisters/index.d.ts +87 -25
  27. package/@types/persisters/persister-automerge/index.d.cts +4 -4
  28. package/@types/persisters/persister-automerge/index.d.ts +4 -4
  29. package/@types/persisters/persister-automerge/with-schemas/index.d.cts +4 -4
  30. package/@types/persisters/persister-automerge/with-schemas/index.d.ts +4 -4
  31. package/@types/persisters/persister-browser/index.d.cts +7 -4
  32. package/@types/persisters/persister-browser/index.d.ts +7 -4
  33. package/@types/persisters/persister-browser/with-schemas/index.d.cts +7 -4
  34. package/@types/persisters/persister-browser/with-schemas/index.d.ts +7 -4
  35. package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +4 -4
  36. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -4
  37. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +4 -4
  38. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +4 -4
  39. package/@types/persisters/persister-electric-sql/index.d.cts +4 -4
  40. package/@types/persisters/persister-electric-sql/index.d.ts +4 -4
  41. package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +4 -4
  42. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +4 -4
  43. package/@types/persisters/persister-expo-sqlite/index.d.cts +4 -4
  44. package/@types/persisters/persister-expo-sqlite/index.d.ts +4 -4
  45. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +4 -4
  46. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +4 -4
  47. package/@types/persisters/persister-file/index.d.cts +6 -4
  48. package/@types/persisters/persister-file/index.d.ts +6 -4
  49. package/@types/persisters/persister-file/with-schemas/index.d.cts +6 -4
  50. package/@types/persisters/persister-file/with-schemas/index.d.ts +6 -4
  51. package/@types/persisters/persister-indexed-db/index.d.cts +5 -4
  52. package/@types/persisters/persister-indexed-db/index.d.ts +5 -4
  53. package/@types/persisters/persister-indexed-db/with-schemas/index.d.cts +5 -4
  54. package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +5 -4
  55. package/@types/persisters/persister-libsql/index.d.cts +5 -4
  56. package/@types/persisters/persister-libsql/index.d.ts +5 -4
  57. package/@types/persisters/persister-libsql/with-schemas/index.d.cts +5 -4
  58. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +5 -4
  59. package/@types/persisters/persister-partykit-client/index.d.cts +12 -6
  60. package/@types/persisters/persister-partykit-client/index.d.ts +12 -6
  61. package/@types/persisters/persister-partykit-client/with-schemas/index.d.cts +12 -6
  62. package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +12 -6
  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 +5 -4
  68. package/@types/persisters/persister-powersync/index.d.ts +5 -4
  69. package/@types/persisters/persister-powersync/with-schemas/index.d.cts +5 -4
  70. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +5 -4
  71. package/@types/persisters/persister-remote/index.d.cts +6 -4
  72. package/@types/persisters/persister-remote/index.d.ts +6 -4
  73. package/@types/persisters/persister-remote/with-schemas/index.d.cts +6 -4
  74. package/@types/persisters/persister-remote/with-schemas/index.d.ts +6 -4
  75. package/@types/persisters/persister-sqlite-wasm/index.d.cts +4 -4
  76. package/@types/persisters/persister-sqlite-wasm/index.d.ts +4 -4
  77. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +4 -4
  78. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +4 -4
  79. package/@types/persisters/persister-sqlite3/index.d.cts +4 -4
  80. package/@types/persisters/persister-sqlite3/index.d.ts +4 -4
  81. package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +4 -4
  82. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +4 -4
  83. package/@types/persisters/persister-yjs/index.d.cts +4 -4
  84. package/@types/persisters/persister-yjs/index.d.ts +4 -4
  85. package/@types/persisters/persister-yjs/with-schemas/index.d.cts +4 -4
  86. package/@types/persisters/persister-yjs/with-schemas/index.d.ts +4 -4
  87. package/@types/persisters/with-schemas/index.d.cts +87 -25
  88. package/@types/persisters/with-schemas/index.d.ts +87 -25
  89. package/@types/queries/index.d.cts +64 -4
  90. package/@types/queries/index.d.ts +64 -4
  91. package/@types/queries/with-schemas/index.d.cts +64 -4
  92. package/@types/queries/with-schemas/index.d.ts +64 -4
  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 +32 -10
  102. package/@types/synchronizers/index.d.ts +32 -10
  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 +16 -17
  108. package/@types/synchronizers/synchronizer-local/index.d.ts +16 -17
  109. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +16 -17
  110. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +16 -17
  111. package/@types/synchronizers/synchronizer-ws-client/index.d.cts +66 -6
  112. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +66 -6
  113. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +77 -6
  114. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +77 -6
  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 +29 -11
  120. package/@types/synchronizers/with-schemas/index.d.ts +29 -11
  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 +2 -2
  140. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
  141. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  142. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
  143. package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  144. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  145. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  146. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  147. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  148. package/cjs/es6/synchronizers/index.cjs +2 -2
  149. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +628 -0
  150. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +628 -0
  151. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +4 -4
  152. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +4 -4
  153. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +15 -21
  154. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +15 -21
  155. package/cjs/es6/synchronizers/with-schemas/index.cjs +2 -2
  156. package/cjs/es6/with-schemas/index.cjs +2 -2
  157. package/cjs/index.cjs +2 -2
  158. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
  159. package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
  160. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
  161. package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
  162. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  163. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  164. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  165. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  166. package/cjs/synchronizers/index.cjs +2 -2
  167. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +500 -0
  168. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +500 -0
  169. package/cjs/synchronizers/synchronizer-local/index.cjs +4 -4
  170. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +4 -4
  171. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +15 -21
  172. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +15 -21
  173. package/cjs/synchronizers/with-schemas/index.cjs +2 -2
  174. package/cjs/with-schemas/index.cjs +2 -2
  175. package/es6/index.js +2 -2
  176. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  177. package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  178. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  179. package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  180. package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  181. package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  182. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  183. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  184. package/es6/synchronizers/index.js +2 -2
  185. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +626 -0
  186. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +626 -0
  187. package/es6/synchronizers/synchronizer-local/index.js +4 -4
  188. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
  189. package/es6/synchronizers/synchronizer-ws-client/index.js +15 -21
  190. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
  191. package/es6/synchronizers/with-schemas/index.js +2 -2
  192. package/es6/with-schemas/index.js +2 -2
  193. package/index.js +2 -2
  194. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  195. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  196. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  197. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  198. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  199. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  200. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  201. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  202. package/package.json +105 -1
  203. package/readme.md +9 -9
  204. package/releases.md +4 -4
  205. package/synchronizers/index.js +2 -2
  206. package/synchronizers/synchronizer-broadcast-channel/index.js +498 -0
  207. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +498 -0
  208. package/synchronizers/synchronizer-local/index.js +4 -4
  209. package/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
  210. package/synchronizers/synchronizer-ws-client/index.js +15 -21
  211. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
  212. package/synchronizers/with-schemas/index.js +2 -2
  213. package/umd/es6/index.js +2 -2
  214. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  215. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  216. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  217. package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  218. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  219. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  220. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  221. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  222. package/umd/es6/synchronizers/index.js +2 -2
  223. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +654 -0
  224. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +654 -0
  225. package/umd/es6/synchronizers/synchronizer-local/index.js +4 -4
  226. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
  227. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +15 -21
  228. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
  229. package/umd/es6/synchronizers/with-schemas/index.js +2 -2
  230. package/umd/es6/with-schemas/index.js +2 -2
  231. package/umd/index.js +2 -2
  232. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  233. package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  234. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  235. package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  236. package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  237. package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  238. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  239. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  240. package/umd/synchronizers/index.js +2 -2
  241. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +516 -0
  242. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +516 -0
  243. package/umd/synchronizers/synchronizer-local/index.js +4 -4
  244. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
  245. package/umd/synchronizers/synchronizer-ws-client/index.js +15 -21
  246. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
  247. package/umd/synchronizers/with-schemas/index.js +2 -2
  248. package/umd/with-schemas/index.js +2 -2
  249. package/with-schemas/index.js +2 -2
@@ -426,7 +426,7 @@
426
426
  const createCustomSynchronizer = (
427
427
  store,
428
428
  send,
429
- onReceive,
429
+ registerReceive,
430
430
  destroyImpl,
431
431
  requestTimeoutSeconds,
432
432
  onIgnoredError,
@@ -436,7 +436,7 @@
436
436
  let sends = 0;
437
437
  let receives = 0;
438
438
  const pendingRequests = mapNew();
439
- onReceive((fromClientId, requestId, message, body) => {
439
+ registerReceive((fromClientId, requestId, message, body) => {
440
440
  receives++;
441
441
  if (message == Message.Response) {
442
442
  ifNotUndefined(
@@ -638,7 +638,7 @@
638
638
  : _a(clientId, requestId, message, body);
639
639
  }, 0);
640
640
  };
641
- const onReceive = (receive) => {
641
+ const registerReceive = (receive) => {
642
642
  mapSet(clients, clientId, receive);
643
643
  };
644
644
  const destroy = () => {
@@ -647,7 +647,7 @@
647
647
  return createCustomSynchronizer(
648
648
  store,
649
649
  send,
650
- onReceive,
650
+ registerReceive,
651
651
  destroy,
652
652
  0.01,
653
653
  onIgnoredError,
@@ -435,7 +435,7 @@
435
435
  const createCustomSynchronizer = (
436
436
  store,
437
437
  send,
438
- onReceive,
438
+ registerReceive,
439
439
  destroyImpl,
440
440
  requestTimeoutSeconds,
441
441
  onIgnoredError,
@@ -445,7 +445,7 @@
445
445
  let sends = 0;
446
446
  let receives = 0;
447
447
  const pendingRequests = mapNew();
448
- onReceive((fromClientId, requestId, message, body) => {
448
+ registerReceive((fromClientId, requestId, message, body) => {
449
449
  receives++;
450
450
  if (message == Message.Response) {
451
451
  ifNotUndefined(
@@ -660,43 +660,37 @@
660
660
  onIgnoredError,
661
661
  ) =>
662
662
  __async(void 0, null, function* () {
663
- let currentReceive;
664
663
  const addEventListener = (event, handler) =>
665
664
  webSocket.addEventListener(event, handler);
666
- const onReceive = (receive) => {
667
- currentReceive = receive;
668
- };
669
- const send = (toClientId, ...args) => {
665
+ const registerReceive = (receive) =>
666
+ addEventListener('message', ({data}) => {
667
+ const payload = data.toString(UTF8);
668
+ const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
669
+ if (splitAt !== -1) {
670
+ receive(
671
+ slice(data, 0, splitAt),
672
+ ...jsonParseWithUndefined(slice(data, splitAt + 1)),
673
+ );
674
+ }
675
+ });
676
+ const send = (toClientId, ...args) =>
670
677
  webSocket.send(
671
678
  (toClientId != null ? toClientId : EMPTY_STRING) +
672
679
  MESSAGE_SEPARATOR +
673
680
  jsonStringWithUndefined(args),
674
681
  );
675
- };
676
682
  const destroy = () => {
677
683
  webSocket.close();
678
684
  };
679
685
  const synchronizer = createCustomSynchronizer(
680
686
  store,
681
687
  send,
682
- onReceive,
688
+ registerReceive,
683
689
  destroy,
684
690
  requestTimeoutSeconds,
685
691
  onIgnoredError,
686
692
  {getWebSocket: () => webSocket},
687
693
  );
688
- addEventListener('message', ({data}) => {
689
- if (!isUndefined(currentReceive)) {
690
- const payload = data.toString(UTF8);
691
- const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
692
- if (splitAt !== -1) {
693
- currentReceive(
694
- slice(data, 0, splitAt),
695
- ...jsonParseWithUndefined(slice(data, splitAt + 1)),
696
- );
697
- }
698
- }
699
- });
700
694
  return promiseNew((resolve, reject) => {
701
695
  if (webSocket.readyState != webSocket.OPEN) {
702
696
  addEventListener('error', reject);
@@ -435,7 +435,7 @@
435
435
  const createCustomSynchronizer = (
436
436
  store,
437
437
  send,
438
- onReceive,
438
+ registerReceive,
439
439
  destroyImpl,
440
440
  requestTimeoutSeconds,
441
441
  onIgnoredError,
@@ -445,7 +445,7 @@
445
445
  let sends = 0;
446
446
  let receives = 0;
447
447
  const pendingRequests = mapNew();
448
- onReceive((fromClientId, requestId, message, body) => {
448
+ registerReceive((fromClientId, requestId, message, body) => {
449
449
  receives++;
450
450
  if (message == Message.Response) {
451
451
  ifNotUndefined(
@@ -660,43 +660,37 @@
660
660
  onIgnoredError,
661
661
  ) =>
662
662
  __async(void 0, null, function* () {
663
- let currentReceive;
664
663
  const addEventListener = (event, handler) =>
665
664
  webSocket.addEventListener(event, handler);
666
- const onReceive = (receive) => {
667
- currentReceive = receive;
668
- };
669
- const send = (toClientId, ...args) => {
665
+ const registerReceive = (receive) =>
666
+ addEventListener('message', ({data}) => {
667
+ const payload = data.toString(UTF8);
668
+ const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
669
+ if (splitAt !== -1) {
670
+ receive(
671
+ slice(data, 0, splitAt),
672
+ ...jsonParseWithUndefined(slice(data, splitAt + 1)),
673
+ );
674
+ }
675
+ });
676
+ const send = (toClientId, ...args) =>
670
677
  webSocket.send(
671
678
  (toClientId != null ? toClientId : EMPTY_STRING) +
672
679
  MESSAGE_SEPARATOR +
673
680
  jsonStringWithUndefined(args),
674
681
  );
675
- };
676
682
  const destroy = () => {
677
683
  webSocket.close();
678
684
  };
679
685
  const synchronizer = createCustomSynchronizer(
680
686
  store,
681
687
  send,
682
- onReceive,
688
+ registerReceive,
683
689
  destroy,
684
690
  requestTimeoutSeconds,
685
691
  onIgnoredError,
686
692
  {getWebSocket: () => webSocket},
687
693
  );
688
- addEventListener('message', ({data}) => {
689
- if (!isUndefined(currentReceive)) {
690
- const payload = data.toString(UTF8);
691
- const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
692
- if (splitAt !== -1) {
693
- currentReceive(
694
- slice(data, 0, splitAt),
695
- ...jsonParseWithUndefined(slice(data, splitAt + 1)),
696
- );
697
- }
698
- }
699
- });
700
694
  return promiseNew((resolve, reject) => {
701
695
  if (webSocket.readyState != webSocket.OPEN) {
702
696
  addEventListener('error', reject);
@@ -423,7 +423,7 @@
423
423
  const createCustomSynchronizer = (
424
424
  store,
425
425
  send,
426
- onReceive,
426
+ registerReceive,
427
427
  destroyImpl,
428
428
  requestTimeoutSeconds,
429
429
  onIgnoredError,
@@ -433,7 +433,7 @@
433
433
  let sends = 0;
434
434
  let receives = 0;
435
435
  const pendingRequests = mapNew();
436
- onReceive((fromClientId, requestId, message, body) => {
436
+ registerReceive((fromClientId, requestId, message, body) => {
437
437
  receives++;
438
438
  if (message == Message.Response) {
439
439
  ifNotUndefined(
@@ -1605,7 +1605,7 @@
1605
1605
  const createCustomSynchronizer = (
1606
1606
  store,
1607
1607
  send,
1608
- onReceive,
1608
+ registerReceive,
1609
1609
  destroyImpl,
1610
1610
  requestTimeoutSeconds,
1611
1611
  onIgnoredError,
@@ -1615,7 +1615,7 @@
1615
1615
  let sends = 0;
1616
1616
  let receives = 0;
1617
1617
  const pendingRequests = mapNew();
1618
- onReceive((fromClientId, requestId, message, body) => {
1618
+ registerReceive((fromClientId, requestId, message, body) => {
1619
1619
  receives++;
1620
1620
  if (message == Message.Response) {
1621
1621
  ifNotUndefined(
package/umd/index.js CHANGED
@@ -1416,7 +1416,7 @@
1416
1416
  const createCustomSynchronizer = (
1417
1417
  store,
1418
1418
  send,
1419
- onReceive,
1419
+ registerReceive,
1420
1420
  destroyImpl,
1421
1421
  requestTimeoutSeconds,
1422
1422
  onIgnoredError,
@@ -1426,7 +1426,7 @@
1426
1426
  let sends = 0;
1427
1427
  let receives = 0;
1428
1428
  const pendingRequests = mapNew();
1429
- onReceive((fromClientId, requestId, message, body) => {
1429
+ registerReceive((fromClientId, requestId, message, body) => {
1430
1430
  receives++;
1431
1431
  if (message == Message.Response) {
1432
1432
  ifNotUndefined(
@@ -0,0 +1 @@
1
+ var e,t;e=this,t=function(e){"use strict";const t=Promise,a=globalThis,n=Math,s=n.floor,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t)=>e.map(t),l=Object,c=e=>l.getPrototypeOf(e),g=l.entries,d=l.keys,u=l.freeze,y=(e,t)=>((e,t)=>e.forEach(t))(g(e),(([e,a])=>t(a,e))),h=e=>(e=>!o(e)&&r(c(e),(e=>e==l.prototype||o(c(e))),(()=>!0)))(e)&&0==(e=>d(e).length)(e),f=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),p=(e,t)=>e?.delete(t),w=e=>new Map(e),b=(e,t)=>e?.get(t),v=(e,t,a)=>o(a)?(p(e,t),e):e?.set(t,a),C=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)||v(e,t,a()),b(e,t)},M=w(),A=w();new a.TextEncoder;const S=(e,t)=>t?[e,t]:[e],m=(e,t)=>((e??"")>(t??"")?e:t)??"",T=(e="")=>S(((e=[])=>l.fromEntries(e))(),e),L="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(i(L,((e,t)=>[e,t])));const H=a.crypto?e=>a.crypto.getRandomValues(e):e=>i(e,(()=>s(256*n.random()))),D=(e=16)=>{return t=(e,t)=>e+L[63&t],H(new Uint8Array(e)).reduce(t,"");var t};e.createBroadcastChannelSynchronizer=(e,a,n)=>{const s=D(),i=new BroadcastChannel(a);return((e,a,n,s,i,l,c={})=>{let g,d=0,L=0;const H=w();n(((t,n,s,i)=>{L++,0==s?r(b(H,n),(([e,a])=>o(e)||e==t?a(i,t):0)):2==s&&E.isAutoLoading()?B(t,i).then((e=>{g?.(void 0,e)})):3==s&&E.isAutoLoading()?g?.(void 0,i):r(1==s&&E.isAutoSaving()?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(i):5==s?e.getMergeableRowDiff(i):6==s?e.getMergeableCellDiff(i):7==s?e.getMergeableValueDiff(i):void 0,(e=>{d++,a(t,n,0,e)}))}));const x=async(e,n,s="")=>new t(((t,o)=>{const r=D(),l=setTimeout((()=>{p(H,r),o(`No response from ${e??"anyone"} to '${n}'`)}),1e3*i);v(H,r,[e,(e,a)=>{clearTimeout(l),p(H,r),t([e,a])}]),d++,a(e,r,n,s)})),z=(e,[t,a])=>{y(t,(([t,a],n)=>{const s=f(e[0],n,T);y(t,(([e,t],a)=>{const n=f(s[0],a,T);y(e,(([e,t],a)=>n[0][a]=S(e,t))),n[1]=m(n[1],t)})),s[1]=m(s[1],a)})),e[1]=m(e[1],a)},B=async(t=null,a)=>{o(a)&&([a,t]=await x(t,1));const[n,s]=a,[r,i]=e.getMergeableContentHashes();let l=T();if(r!=n){const[a,n]=(await x(t,4,e.getMergeableTableHashes()))[0];if(l=a,!h(n)){const[a,s]=(await x(t,5,e.getMergeableRowHashes(n)))[0];if(z(l,a),!h(s)){const a=(await x(t,6,e.getMergeableCellHashes(s)))[0];z(l,a)}}}return[l,i==s?T():(await x(t,7,e.getMergeableValueHashes()))[0],1]},E=((e,t,a,n,s,i,l,c={},g=[])=>{let d,y,f,p=0,w=0,S=0;C(M,g,(()=>0)),C(A,g,(()=>[]));const[m,T,L,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!h(e)||!h(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(l,e),x=t=>{var a;(m&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},z=async e=>(2!=p&&(p=1,w++,await R((async()=>{try{x(await t())}catch(t){i?.(t),e&&D(e)}p=0}))),V),B=()=>(y&&(s(y),y=void 0),V),E=async e=>(1!=p&&(p=2,S++,await R((async()=>{try{await a(T,e)}catch(e){i?.(e)}p=0}))),V),P=()=>(r(f,e.delListener),f=void 0,V),R=async(...e)=>(((e,...t)=>{e.push(...t)})(b(A,g),...e),await(async()=>{if(!b(M,g)){for(v(M,g,1);!o((e=b(A,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}v(M,g,0)}var e})(),V),V={load:z,startAutoLoad:async e=>(await B().load(e),y=n((async(e,t)=>{t||e?2!=p&&(p=1,w++,x(t??e),p=0):await z()})),V),stopAutoLoad:B,isAutoLoading:()=>!o(y),save:E,startAutoSave:async()=>(await P().save(),f=e.addDidFinishTransactionListener((()=>{const e=L();H(e)&&E(e)})),V),stopAutoSave:P,isAutoSaving:()=>!o(f),schedule:R,getStore:()=>e,destroy:()=>B().stopAutoSave(),getStats:()=>({loads:w,saves:S}),...c};return u(V)})(e,(async()=>{const e=await B();return h(e[0][0])&&h(e[1][0])?void 0:e}),(async(t,n)=>{d++,n?a(null,null,3,n):a(null,null,2,e.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),l,2,{startSync:async e=>await(await E.startAutoLoad(e)).startAutoSave(),stopSync:()=>E.stopAutoLoad().stopAutoSave(),destroy:()=>(s(),E.stopSync()),getSynchronizerStats:()=>({sends:d,receives:L}),...c});return E})(e,((e,t,a,n)=>i.postMessage([s,e,t,a,n])),(e=>{i.onmessage=({data:[t,a,n,r,i]})=>o(a)||a==s?e(t,n,r,i):0}),(()=>{i.close()}),.01,n,{getChannelName:()=>a})}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseSynchronizerBroadcastChannel={});
@@ -0,0 +1 @@
1
+ var e,t;e=this,t=function(e){"use strict";const t=Promise,a=globalThis,n=Math,s=n.floor,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t)=>e.map(t),l=Object,c=e=>l.getPrototypeOf(e),g=l.entries,d=l.keys,u=l.freeze,y=(e,t)=>((e,t)=>e.forEach(t))(g(e),(([e,a])=>t(a,e))),h=e=>(e=>!o(e)&&r(c(e),(e=>e==l.prototype||o(c(e))),(()=>!0)))(e)&&0==(e=>d(e).length)(e),f=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),p=(e,t)=>e?.delete(t),w=e=>new Map(e),b=(e,t)=>e?.get(t),v=(e,t,a)=>o(a)?(p(e,t),e):e?.set(t,a),C=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)||v(e,t,a()),b(e,t)},M=w(),A=w();new a.TextEncoder;const S=(e,t)=>t?[e,t]:[e],m=(e,t)=>((e??"")>(t??"")?e:t)??"",T=(e="")=>S(((e=[])=>l.fromEntries(e))(),e),L="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(i(L,((e,t)=>[e,t])));const H=a.crypto?e=>a.crypto.getRandomValues(e):e=>i(e,(()=>s(256*n.random()))),D=(e=16)=>{return t=(e,t)=>e+L[63&t],H(new Uint8Array(e)).reduce(t,"");var t};e.createBroadcastChannelSynchronizer=(e,a,n)=>{const s=D(),i=new BroadcastChannel(a);return((e,a,n,s,i,l,c={})=>{let g,d=0,L=0;const H=w();n(((t,n,s,i)=>{L++,0==s?r(b(H,n),(([e,a])=>o(e)||e==t?a(i,t):0)):2==s&&E.isAutoLoading()?B(t,i).then((e=>{g?.(void 0,e)})):3==s&&E.isAutoLoading()?g?.(void 0,i):r(1==s&&E.isAutoSaving()?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(i):5==s?e.getMergeableRowDiff(i):6==s?e.getMergeableCellDiff(i):7==s?e.getMergeableValueDiff(i):void 0,(e=>{d++,a(t,n,0,e)}))}));const x=async(e,n,s="")=>new t(((t,o)=>{const r=D(),l=setTimeout((()=>{p(H,r),o(`No response from ${e??"anyone"} to '${n}'`)}),1e3*i);v(H,r,[e,(e,a)=>{clearTimeout(l),p(H,r),t([e,a])}]),d++,a(e,r,n,s)})),z=(e,[t,a])=>{y(t,(([t,a],n)=>{const s=f(e[0],n,T);y(t,(([e,t],a)=>{const n=f(s[0],a,T);y(e,(([e,t],a)=>n[0][a]=S(e,t))),n[1]=m(n[1],t)})),s[1]=m(s[1],a)})),e[1]=m(e[1],a)},B=async(t=null,a)=>{o(a)&&([a,t]=await x(t,1));const[n,s]=a,[r,i]=e.getMergeableContentHashes();let l=T();if(r!=n){const[a,n]=(await x(t,4,e.getMergeableTableHashes()))[0];if(l=a,!h(n)){const[a,s]=(await x(t,5,e.getMergeableRowHashes(n)))[0];if(z(l,a),!h(s)){const a=(await x(t,6,e.getMergeableCellHashes(s)))[0];z(l,a)}}}return[l,i==s?T():(await x(t,7,e.getMergeableValueHashes()))[0],1]},E=((e,t,a,n,s,i,l,c={},g=[])=>{let d,y,f,p=0,w=0,S=0;C(M,g,(()=>0)),C(A,g,(()=>[]));const[m,T,L,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!h(e)||!h(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(l,e),x=t=>{var a;(m&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},z=async e=>(2!=p&&(p=1,w++,await R((async()=>{try{x(await t())}catch(t){i?.(t),e&&D(e)}p=0}))),V),B=()=>(y&&(s(y),y=void 0),V),E=async e=>(1!=p&&(p=2,S++,await R((async()=>{try{await a(T,e)}catch(e){i?.(e)}p=0}))),V),P=()=>(r(f,e.delListener),f=void 0,V),R=async(...e)=>(((e,...t)=>{e.push(...t)})(b(A,g),...e),await(async()=>{if(!b(M,g)){for(v(M,g,1);!o((e=b(A,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}v(M,g,0)}var e})(),V),V={load:z,startAutoLoad:async e=>(await B().load(e),y=n((async(e,t)=>{t||e?2!=p&&(p=1,w++,x(t??e),p=0):await z()})),V),stopAutoLoad:B,isAutoLoading:()=>!o(y),save:E,startAutoSave:async()=>(await P().save(),f=e.addDidFinishTransactionListener((()=>{const e=L();H(e)&&E(e)})),V),stopAutoSave:P,isAutoSaving:()=>!o(f),schedule:R,getStore:()=>e,destroy:()=>B().stopAutoSave(),getStats:()=>({loads:w,saves:S}),...c};return u(V)})(e,(async()=>{const e=await B();return h(e[0][0])&&h(e[1][0])?void 0:e}),(async(t,n)=>{d++,n?a(null,null,3,n):a(null,null,2,e.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),l,2,{startSync:async e=>await(await E.startAutoLoad(e)).startAutoSave(),stopSync:()=>E.stopAutoLoad().stopAutoSave(),destroy:()=>(s(),E.stopSync()),getSynchronizerStats:()=>({sends:d,receives:L}),...c});return E})(e,((e,t,a,n)=>i.postMessage([s,e,t,a,n])),(e=>{i.onmessage=({data:[t,a,n,r,i]})=>o(a)||a==s?e(t,n,r,i):0}),(()=>{i.close()}),.01,n,{getChannelName:()=>a})}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseSynchronizerBroadcastChannel={});
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=Promise,a=globalThis,n=Math,s=n.floor,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t,a)=>e.slice(t,a),l=e=>new t(e),c=(e,t)=>e.map(t),g=Object,d=e=>g.getPrototypeOf(e),y=g.entries,u=g.keys,f=g.freeze,p=(e,t)=>((e,t)=>e.forEach(t))(y(e),(([e,a])=>t(a,e))),h=e=>(e=>!o(e)&&r(d(e),(e=>e==g.prototype||o(d(e))),(()=>!0)))(e)&&0==(e=>u(e).length)(e),v=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),b=(e,t)=>e?.delete(t),w=e=>new Map(e),S=(e,t)=>e?.get(t),M=(e,t,a)=>o(a)?(b(e,t),e):e?.set(t,a),A=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)||M(e,t,a()),S(e,t)},C=w(),T=w();new a.TextEncoder;const m=(e,t)=>t?[e,t]:[e],L=(e,t)=>((e??"")>(t??"")?e:t)??"",H=(e="")=>m(((e=[])=>g.fromEntries(e))(),e),D="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(c(D,((e,t)=>[e,t])));const E=a.crypto?e=>a.crypto.getRandomValues(e):e=>c(e,(()=>s(256*n.random())));e.createWsSynchronizer=async(e,t,a=1,n)=>{let s;const c=(e,a)=>t.addEventListener(e,a),g=((e,t,a,n,s,i,c={})=>{let g,d=0,y=0;const u=w();a(((a,n,s,i)=>{y++,0==s?r(S(u,n),(([e,t])=>o(e)||e==a?t(i,a):0)):2==s&&N.isAutoLoading()?z(a,i).then((e=>{g?.(void 0,e)})):3==s&&N.isAutoLoading()?g?.(void 0,i):r(1==s&&N.isAutoSaving()?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(i):5==s?e.getMergeableRowDiff(i):6==s?e.getMergeableCellDiff(i):7==s?e.getMergeableValueDiff(i):void 0,(e=>{d++,t(a,n,0,e)}))}));const O=async(e,a,n="")=>l(((o,r)=>{const i=((e=16)=>{return t=(e,t)=>e+D[63&t],E(new Uint8Array(e)).reduce(t,"");var t})(),l=setTimeout((()=>{b(u,i),r(`No response from ${e??"anyone"} to '${a}'`)}),1e3*s);M(u,i,[e,(e,t)=>{clearTimeout(l),b(u,i),o([e,t])}]),d++,t(e,i,a,n)})),x=(e,[t,a])=>{p(t,(([t,a],n)=>{const s=v(e[0],n,H);p(t,(([e,t],a)=>{const n=v(s[0],a,H);p(e,(([e,t],a)=>n[0][a]=m(e,t))),n[1]=L(n[1],t)})),s[1]=L(s[1],a)})),e[1]=L(e[1],a)},z=async(t=null,a)=>{o(a)&&([a,t]=await O(t,1));const[n,s]=a,[r,i]=e.getMergeableContentHashes();let l=H();if(r!=n){const[a,n]=(await O(t,4,e.getMergeableTableHashes()))[0];if(l=a,!h(n)){const[a,s]=(await O(t,5,e.getMergeableRowHashes(n)))[0];if(x(l,a),!h(s)){const a=(await O(t,6,e.getMergeableCellHashes(s)))[0];x(l,a)}}}return[l,i==s?H():(await O(t,7,e.getMergeableValueHashes()))[0],1]},N=((e,t,a,n,s,i,l,c={},g=[])=>{let d,y,u,p=0,v=0,b=0;A(C,g,(()=>0)),A(T,g,(()=>[]));const[w,m,L,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!h(e)||!h(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(l,e),E=t=>{var a;(w&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},O=async e=>(2!=p&&(p=1,v++,await P((async()=>{try{E(await t())}catch(t){i?.(t),e&&D(e)}p=0}))),R),x=()=>(y&&(s(y),y=void 0),R),z=async e=>(1!=p&&(p=2,b++,await P((async()=>{try{await a(m,e)}catch(e){i?.(e)}p=0}))),R),N=()=>(r(u,e.delListener),u=void 0,R),P=async(...e)=>(((e,...t)=>{e.push(...t)})(S(T,g),...e),await(async()=>{if(!S(C,g)){for(M(C,g,1);!o((e=S(T,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}M(C,g,0)}var e})(),R),R={load:O,startAutoLoad:async e=>(await x().load(e),y=n((async(e,t)=>{t||e?2!=p&&(p=1,v++,E(t??e),p=0):await O()})),R),stopAutoLoad:x,isAutoLoading:()=>!o(y),save:z,startAutoSave:async()=>(await N().save(),u=e.addDidFinishTransactionListener((()=>{const e=L();H(e)&&z(e)})),R),stopAutoSave:N,isAutoSaving:()=>!o(u),schedule:P,getStore:()=>e,destroy:()=>x().stopAutoSave(),getStats:()=>({loads:v,saves:b}),...c};return f(R)})(e,(async()=>{const e=await z();return h(e[0][0])&&h(e[1][0])?void 0:e}),(async(a,n)=>{d++,n?t(null,null,3,n):t(null,null,2,e.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),i,2,{startSync:async e=>await(await N.startAutoLoad(e)).startAutoSave(),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(n(),N.stopSync()),getSynchronizerStats:()=>({sends:d,receives:y}),...c});return N})(e,((e,...a)=>{t.send((e??"")+"\n"+JSON.stringify(a,((e,t)=>void 0===t?"":t)))}),(e=>{s=e}),(()=>{t.close()}),a,n,{getWebSocket:()=>t});return c("message",(({data:e})=>{if(!o(s)){const a=e.toString("utf8").indexOf("\n");-1!==a&&s(i(e,0,a),...(t=i(e,a+1),JSON.parse(t,((e,t)=>""===t?void 0:t))))}var t})),l(((e,a)=>{t.readyState!=t.OPEN?(c("error",a),c("open",(()=>e(g)))):e(g)}))}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseSynchronizerWsClient={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=Promise,a=globalThis,n=Math,s=n.floor,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t,a)=>e.slice(t,a),c=e=>new t(e),l=(e,t)=>e.map(t),g=Object,d=e=>g.getPrototypeOf(e),y=g.entries,u=g.keys,f=g.freeze,p=(e,t)=>((e,t)=>e.forEach(t))(y(e),(([e,a])=>t(a,e))),h=e=>(e=>!o(e)&&r(d(e),(e=>e==g.prototype||o(d(e))),(()=>!0)))(e)&&0==(e=>u(e).length)(e),v=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),b=(e,t)=>e?.delete(t),w=e=>new Map(e),S=(e,t)=>e?.get(t),M=(e,t,a)=>o(a)?(b(e,t),e):e?.set(t,a),A=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)||M(e,t,a()),S(e,t)},C=w(),T=w();new a.TextEncoder;const m=(e,t)=>t?[e,t]:[e],L=(e,t)=>((e??"")>(t??"")?e:t)??"",H=(e="")=>m(((e=[])=>g.fromEntries(e))(),e),D="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(l(D,((e,t)=>[e,t])));const E=a.crypto?e=>a.crypto.getRandomValues(e):e=>l(e,(()=>s(256*n.random())));e.createWsSynchronizer=async(e,t,a=1,n)=>{const s=(e,a)=>t.addEventListener(e,a),l=((e,t,a,n,s,i,l={})=>{let g,d=0,y=0;const u=w();a(((a,n,s,i)=>{y++,0==s?r(S(u,n),(([e,t])=>o(e)||e==a?t(i,a):0)):2==s&&N.isAutoLoading()?z(a,i).then((e=>{g?.(void 0,e)})):3==s&&N.isAutoLoading()?g?.(void 0,i):r(1==s&&N.isAutoSaving()?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(i):5==s?e.getMergeableRowDiff(i):6==s?e.getMergeableCellDiff(i):7==s?e.getMergeableValueDiff(i):void 0,(e=>{d++,t(a,n,0,e)}))}));const O=async(e,a,n="")=>c(((o,r)=>{const i=((e=16)=>{return t=(e,t)=>e+D[63&t],E(new Uint8Array(e)).reduce(t,"");var t})(),c=setTimeout((()=>{b(u,i),r(`No response from ${e??"anyone"} to '${a}'`)}),1e3*s);M(u,i,[e,(e,t)=>{clearTimeout(c),b(u,i),o([e,t])}]),d++,t(e,i,a,n)})),x=(e,[t,a])=>{p(t,(([t,a],n)=>{const s=v(e[0],n,H);p(t,(([e,t],a)=>{const n=v(s[0],a,H);p(e,(([e,t],a)=>n[0][a]=m(e,t))),n[1]=L(n[1],t)})),s[1]=L(s[1],a)})),e[1]=L(e[1],a)},z=async(t=null,a)=>{o(a)&&([a,t]=await O(t,1));const[n,s]=a,[r,i]=e.getMergeableContentHashes();let c=H();if(r!=n){const[a,n]=(await O(t,4,e.getMergeableTableHashes()))[0];if(c=a,!h(n)){const[a,s]=(await O(t,5,e.getMergeableRowHashes(n)))[0];if(x(c,a),!h(s)){const a=(await O(t,6,e.getMergeableCellHashes(s)))[0];x(c,a)}}}return[c,i==s?H():(await O(t,7,e.getMergeableValueHashes()))[0],1]},N=((e,t,a,n,s,i,c,l={},g=[])=>{let d,y,u,p=0,v=0,b=0;A(C,g,(()=>0)),A(T,g,(()=>[]));const[w,m,L,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!h(e)||!h(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(c,e),E=t=>{var a;(w&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},O=async e=>(2!=p&&(p=1,v++,await P((async()=>{try{E(await t())}catch(t){i?.(t),e&&D(e)}p=0}))),R),x=()=>(y&&(s(y),y=void 0),R),z=async e=>(1!=p&&(p=2,b++,await P((async()=>{try{await a(m,e)}catch(e){i?.(e)}p=0}))),R),N=()=>(r(u,e.delListener),u=void 0,R),P=async(...e)=>(((e,...t)=>{e.push(...t)})(S(T,g),...e),await(async()=>{if(!S(C,g)){for(M(C,g,1);!o((e=S(T,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}M(C,g,0)}var e})(),R),R={load:O,startAutoLoad:async e=>(await x().load(e),y=n((async(e,t)=>{t||e?2!=p&&(p=1,v++,E(t??e),p=0):await O()})),R),stopAutoLoad:x,isAutoLoading:()=>!o(y),save:z,startAutoSave:async()=>(await N().save(),u=e.addDidFinishTransactionListener((()=>{const e=L();H(e)&&z(e)})),R),stopAutoSave:N,isAutoSaving:()=>!o(u),schedule:P,getStore:()=>e,destroy:()=>x().stopAutoSave(),getStats:()=>({loads:v,saves:b}),...l};return f(R)})(e,(async()=>{const e=await z();return h(e[0][0])&&h(e[1][0])?void 0:e}),(async(a,n)=>{d++,n?t(null,null,3,n):t(null,null,2,e.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),i,2,{startSync:async e=>await(await N.startAutoLoad(e)).startAutoSave(),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(n(),N.stopSync()),getSynchronizerStats:()=>({sends:d,receives:y}),...l});return N})(e,((e,...a)=>t.send((e??"")+"\n"+JSON.stringify(a,((e,t)=>void 0===t?"":t)))),(e=>s("message",(({data:t})=>{const a=t.toString("utf8").indexOf("\n");var n;-1!==a&&e(i(t,0,a),...(n=i(t,a+1),JSON.parse(n,((e,t)=>""===t?void 0:t))))}))),(()=>{t.close()}),a,n,{getWebSocket:()=>t});return c(((e,a)=>{t.readyState!=t.OPEN?(s("error",a),s("open",(()=>e(l)))):e(l)}))}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseSynchronizerWsClient={});
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=Promise,a=globalThis,n=Math,s=n.floor,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t,a)=>e.slice(t,a),l=e=>new t(e),c=(e,t)=>e.map(t),g=Object,d=e=>g.getPrototypeOf(e),y=g.entries,u=g.keys,f=g.freeze,p=(e,t)=>((e,t)=>e.forEach(t))(y(e),(([e,a])=>t(a,e))),h=e=>(e=>!o(e)&&r(d(e),(e=>e==g.prototype||o(d(e))),(()=>!0)))(e)&&0==(e=>u(e).length)(e),v=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),b=(e,t)=>e?.delete(t),w=e=>new Map(e),S=(e,t)=>e?.get(t),M=(e,t,a)=>o(a)?(b(e,t),e):e?.set(t,a),A=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)||M(e,t,a()),S(e,t)},C=w(),T=w();new a.TextEncoder;const m=(e,t)=>t?[e,t]:[e],L=(e,t)=>((e??"")>(t??"")?e:t)??"",H=(e="")=>m(((e=[])=>g.fromEntries(e))(),e),D="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(c(D,((e,t)=>[e,t])));const E=a.crypto?e=>a.crypto.getRandomValues(e):e=>c(e,(()=>s(256*n.random())));e.createWsSynchronizer=async(e,t,a=1,n)=>{let s;const c=(e,a)=>t.addEventListener(e,a),g=((e,t,a,n,s,i,c={})=>{let g,d=0,y=0;const u=w();a(((a,n,s,i)=>{y++,0==s?r(S(u,n),(([e,t])=>o(e)||e==a?t(i,a):0)):2==s&&N.isAutoLoading()?z(a,i).then((e=>{g?.(void 0,e)})):3==s&&N.isAutoLoading()?g?.(void 0,i):r(1==s&&N.isAutoSaving()?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(i):5==s?e.getMergeableRowDiff(i):6==s?e.getMergeableCellDiff(i):7==s?e.getMergeableValueDiff(i):void 0,(e=>{d++,t(a,n,0,e)}))}));const O=async(e,a,n="")=>l(((o,r)=>{const i=((e=16)=>{return t=(e,t)=>e+D[63&t],E(new Uint8Array(e)).reduce(t,"");var t})(),l=setTimeout((()=>{b(u,i),r(`No response from ${e??"anyone"} to '${a}'`)}),1e3*s);M(u,i,[e,(e,t)=>{clearTimeout(l),b(u,i),o([e,t])}]),d++,t(e,i,a,n)})),x=(e,[t,a])=>{p(t,(([t,a],n)=>{const s=v(e[0],n,H);p(t,(([e,t],a)=>{const n=v(s[0],a,H);p(e,(([e,t],a)=>n[0][a]=m(e,t))),n[1]=L(n[1],t)})),s[1]=L(s[1],a)})),e[1]=L(e[1],a)},z=async(t=null,a)=>{o(a)&&([a,t]=await O(t,1));const[n,s]=a,[r,i]=e.getMergeableContentHashes();let l=H();if(r!=n){const[a,n]=(await O(t,4,e.getMergeableTableHashes()))[0];if(l=a,!h(n)){const[a,s]=(await O(t,5,e.getMergeableRowHashes(n)))[0];if(x(l,a),!h(s)){const a=(await O(t,6,e.getMergeableCellHashes(s)))[0];x(l,a)}}}return[l,i==s?H():(await O(t,7,e.getMergeableValueHashes()))[0],1]},N=((e,t,a,n,s,i,l,c={},g=[])=>{let d,y,u,p=0,v=0,b=0;A(C,g,(()=>0)),A(T,g,(()=>[]));const[w,m,L,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!h(e)||!h(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(l,e),E=t=>{var a;(w&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},O=async e=>(2!=p&&(p=1,v++,await P((async()=>{try{E(await t())}catch(t){i?.(t),e&&D(e)}p=0}))),R),x=()=>(y&&(s(y),y=void 0),R),z=async e=>(1!=p&&(p=2,b++,await P((async()=>{try{await a(m,e)}catch(e){i?.(e)}p=0}))),R),N=()=>(r(u,e.delListener),u=void 0,R),P=async(...e)=>(((e,...t)=>{e.push(...t)})(S(T,g),...e),await(async()=>{if(!S(C,g)){for(M(C,g,1);!o((e=S(T,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}M(C,g,0)}var e})(),R),R={load:O,startAutoLoad:async e=>(await x().load(e),y=n((async(e,t)=>{t||e?2!=p&&(p=1,v++,E(t??e),p=0):await O()})),R),stopAutoLoad:x,isAutoLoading:()=>!o(y),save:z,startAutoSave:async()=>(await N().save(),u=e.addDidFinishTransactionListener((()=>{const e=L();H(e)&&z(e)})),R),stopAutoSave:N,isAutoSaving:()=>!o(u),schedule:P,getStore:()=>e,destroy:()=>x().stopAutoSave(),getStats:()=>({loads:v,saves:b}),...c};return f(R)})(e,(async()=>{const e=await z();return h(e[0][0])&&h(e[1][0])?void 0:e}),(async(a,n)=>{d++,n?t(null,null,3,n):t(null,null,2,e.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),i,2,{startSync:async e=>await(await N.startAutoLoad(e)).startAutoSave(),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(n(),N.stopSync()),getSynchronizerStats:()=>({sends:d,receives:y}),...c});return N})(e,((e,...a)=>{t.send((e??"")+"\n"+JSON.stringify(a,((e,t)=>void 0===t?"":t)))}),(e=>{s=e}),(()=>{t.close()}),a,n,{getWebSocket:()=>t});return c("message",(({data:e})=>{if(!o(s)){const a=e.toString("utf8").indexOf("\n");-1!==a&&s(i(e,0,a),...(t=i(e,a+1),JSON.parse(t,((e,t)=>""===t?void 0:t))))}var t})),l(((e,a)=>{t.readyState!=t.OPEN?(c("error",a),c("open",(()=>e(g)))):e(g)}))}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseSynchronizerWsClient={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=Promise,a=globalThis,n=Math,s=n.floor,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=(e,t,a)=>e.slice(t,a),c=e=>new t(e),l=(e,t)=>e.map(t),g=Object,d=e=>g.getPrototypeOf(e),y=g.entries,u=g.keys,f=g.freeze,p=(e,t)=>((e,t)=>e.forEach(t))(y(e),(([e,a])=>t(a,e))),h=e=>(e=>!o(e)&&r(d(e),(e=>e==g.prototype||o(d(e))),(()=>!0)))(e)&&0==(e=>u(e).length)(e),v=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),b=(e,t)=>e?.delete(t),w=e=>new Map(e),S=(e,t)=>e?.get(t),M=(e,t,a)=>o(a)?(b(e,t),e):e?.set(t,a),A=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)||M(e,t,a()),S(e,t)},C=w(),T=w();new a.TextEncoder;const m=(e,t)=>t?[e,t]:[e],L=(e,t)=>((e??"")>(t??"")?e:t)??"",H=(e="")=>m(((e=[])=>g.fromEntries(e))(),e),D="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(l(D,((e,t)=>[e,t])));const E=a.crypto?e=>a.crypto.getRandomValues(e):e=>l(e,(()=>s(256*n.random())));e.createWsSynchronizer=async(e,t,a=1,n)=>{const s=(e,a)=>t.addEventListener(e,a),l=((e,t,a,n,s,i,l={})=>{let g,d=0,y=0;const u=w();a(((a,n,s,i)=>{y++,0==s?r(S(u,n),(([e,t])=>o(e)||e==a?t(i,a):0)):2==s&&N.isAutoLoading()?z(a,i).then((e=>{g?.(void 0,e)})):3==s&&N.isAutoLoading()?g?.(void 0,i):r(1==s&&N.isAutoSaving()?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(i):5==s?e.getMergeableRowDiff(i):6==s?e.getMergeableCellDiff(i):7==s?e.getMergeableValueDiff(i):void 0,(e=>{d++,t(a,n,0,e)}))}));const O=async(e,a,n="")=>c(((o,r)=>{const i=((e=16)=>{return t=(e,t)=>e+D[63&t],E(new Uint8Array(e)).reduce(t,"");var t})(),c=setTimeout((()=>{b(u,i),r(`No response from ${e??"anyone"} to '${a}'`)}),1e3*s);M(u,i,[e,(e,t)=>{clearTimeout(c),b(u,i),o([e,t])}]),d++,t(e,i,a,n)})),x=(e,[t,a])=>{p(t,(([t,a],n)=>{const s=v(e[0],n,H);p(t,(([e,t],a)=>{const n=v(s[0],a,H);p(e,(([e,t],a)=>n[0][a]=m(e,t))),n[1]=L(n[1],t)})),s[1]=L(s[1],a)})),e[1]=L(e[1],a)},z=async(t=null,a)=>{o(a)&&([a,t]=await O(t,1));const[n,s]=a,[r,i]=e.getMergeableContentHashes();let c=H();if(r!=n){const[a,n]=(await O(t,4,e.getMergeableTableHashes()))[0];if(c=a,!h(n)){const[a,s]=(await O(t,5,e.getMergeableRowHashes(n)))[0];if(x(c,a),!h(s)){const a=(await O(t,6,e.getMergeableCellHashes(s)))[0];x(c,a)}}}return[c,i==s?H():(await O(t,7,e.getMergeableValueHashes()))[0],1]},N=((e,t,a,n,s,i,c,l={},g=[])=>{let d,y,u,p=0,v=0,b=0;A(C,g,(()=>0)),A(T,g,(()=>[]));const[w,m,L,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!h(e)||!h(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(c,e),E=t=>{var a;(w&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},O=async e=>(2!=p&&(p=1,v++,await P((async()=>{try{E(await t())}catch(t){i?.(t),e&&D(e)}p=0}))),R),x=()=>(y&&(s(y),y=void 0),R),z=async e=>(1!=p&&(p=2,b++,await P((async()=>{try{await a(m,e)}catch(e){i?.(e)}p=0}))),R),N=()=>(r(u,e.delListener),u=void 0,R),P=async(...e)=>(((e,...t)=>{e.push(...t)})(S(T,g),...e),await(async()=>{if(!S(C,g)){for(M(C,g,1);!o((e=S(T,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}M(C,g,0)}var e})(),R),R={load:O,startAutoLoad:async e=>(await x().load(e),y=n((async(e,t)=>{t||e?2!=p&&(p=1,v++,E(t??e),p=0):await O()})),R),stopAutoLoad:x,isAutoLoading:()=>!o(y),save:z,startAutoSave:async()=>(await N().save(),u=e.addDidFinishTransactionListener((()=>{const e=L();H(e)&&z(e)})),R),stopAutoSave:N,isAutoSaving:()=>!o(u),schedule:P,getStore:()=>e,destroy:()=>x().stopAutoSave(),getStats:()=>({loads:v,saves:b}),...l};return f(R)})(e,(async()=>{const e=await z();return h(e[0][0])&&h(e[1][0])?void 0:e}),(async(a,n)=>{d++,n?t(null,null,3,n):t(null,null,2,e.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),i,2,{startSync:async e=>await(await N.startAutoLoad(e)).startAutoSave(),stopSync:()=>N.stopAutoLoad().stopAutoSave(),destroy:()=>(n(),N.stopSync()),getSynchronizerStats:()=>({sends:d,receives:y}),...l});return N})(e,((e,...a)=>t.send((e??"")+"\n"+JSON.stringify(a,((e,t)=>void 0===t?"":t)))),(e=>s("message",(({data:t})=>{const a=t.toString("utf8").indexOf("\n");var n;-1!==a&&e(i(t,0,a),...(n=i(t,a+1),JSON.parse(n,((e,t)=>""===t?void 0:t))))}))),(()=>{t.close()}),a,n,{getWebSocket:()=>t});return c(((e,a)=>{t.readyState!=t.OPEN?(s("error",a),s("open",(()=>e(l)))):e(l)}))}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseSynchronizerWsClient={});
@@ -297,7 +297,7 @@
297
297
  const createCustomSynchronizer = (
298
298
  store,
299
299
  send,
300
- onReceive,
300
+ registerReceive,
301
301
  destroyImpl,
302
302
  requestTimeoutSeconds,
303
303
  onIgnoredError,
@@ -307,7 +307,7 @@
307
307
  let sends = 0;
308
308
  let receives = 0;
309
309
  const pendingRequests = mapNew();
310
- onReceive((fromClientId, requestId, message, body) => {
310
+ registerReceive((fromClientId, requestId, message, body) => {
311
311
  receives++;
312
312
  if (message == Message.Response) {
313
313
  ifNotUndefined(