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
@@ -0,0 +1,628 @@
1
+ 'use strict';
2
+
3
+ const EMPTY_STRING = '';
4
+
5
+ const promise = Promise;
6
+ const GLOBAL = globalThis;
7
+ const math = Math;
8
+ const mathFloor = math.floor;
9
+ const isUndefined = (thing) => thing == void 0;
10
+ const ifNotUndefined = (value, then, otherwise) =>
11
+ isUndefined(value) ? (otherwise == null ? void 0 : otherwise()) : then(value);
12
+ const isArray = (thing) => Array.isArray(thing);
13
+ const size = (arrayOrString) => arrayOrString.length;
14
+ const promiseNew = (resolver) => new promise(resolver);
15
+ const errorNew = (message) => {
16
+ throw new Error(message);
17
+ };
18
+
19
+ const arrayForEach = (array, cb) => array.forEach(cb);
20
+ const arrayMap = (array, cb) => array.map(cb);
21
+ const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
22
+ const arrayPush = (array, ...values) => array.push(...values);
23
+ const arrayShift = (array) => array.shift();
24
+
25
+ const object = Object;
26
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
27
+ const objEntries = object.entries;
28
+ const isObject = (obj) =>
29
+ !isUndefined(obj) &&
30
+ ifNotUndefined(
31
+ getPrototypeOf(obj),
32
+ (objPrototype) =>
33
+ objPrototype == object.prototype ||
34
+ isUndefined(getPrototypeOf(objPrototype)),
35
+
36
+ /* istanbul ignore next */
37
+ () => true,
38
+ );
39
+ const objIds = object.keys;
40
+ const objFreeze = object.freeze;
41
+ const objNew = (entries = []) => object.fromEntries(entries);
42
+ const objHas = (obj, id) => id in obj;
43
+ const objForEach = (obj, cb) =>
44
+ arrayForEach(objEntries(obj), ([id, value]) => cb(value, id));
45
+ const objSize = (obj) => size(objIds(obj));
46
+ const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
47
+ const objEnsure = (obj, id, getDefaultValue) => {
48
+ if (!objHas(obj, id)) {
49
+ obj[id] = getDefaultValue();
50
+ }
51
+ return obj[id];
52
+ };
53
+
54
+ const collHas = (coll, keyOrValue) => {
55
+ var _a;
56
+ return (_a = coll == null ? void 0 : coll.has(keyOrValue)) != null
57
+ ? _a
58
+ : false;
59
+ };
60
+ const collDel = (coll, keyOrValue) =>
61
+ coll == null ? void 0 : coll.delete(keyOrValue);
62
+
63
+ const mapNew = (entries) => new Map(entries);
64
+ const mapGet = (map, key) => (map == null ? void 0 : map.get(key));
65
+ const mapSet = (map, key, value) =>
66
+ isUndefined(value)
67
+ ? (collDel(map, key), map)
68
+ : map == null
69
+ ? void 0
70
+ : map.set(key, value);
71
+ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
72
+ if (!collHas(map, key)) {
73
+ mapSet(map, key, getDefaultValue());
74
+ }
75
+ return mapGet(map, key);
76
+ };
77
+
78
+ var __defProp$1 = Object.defineProperty;
79
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
80
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
81
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
82
+ var __defNormalProp$1 = (obj, key, value) =>
83
+ key in obj
84
+ ? __defProp$1(obj, key, {
85
+ enumerable: true,
86
+ configurable: true,
87
+ writable: true,
88
+ value,
89
+ })
90
+ : (obj[key] = value);
91
+ var __spreadValues$1 = (a, b) => {
92
+ for (var prop in b || (b = {}))
93
+ if (__hasOwnProp$1.call(b, prop)) __defNormalProp$1(a, prop, b[prop]);
94
+ if (__getOwnPropSymbols$1)
95
+ for (var prop of __getOwnPropSymbols$1(b)) {
96
+ if (__propIsEnum$1.call(b, prop)) __defNormalProp$1(a, prop, b[prop]);
97
+ }
98
+ return a;
99
+ };
100
+ var __async$1 = (__this, __arguments, generator) => {
101
+ return new Promise((resolve, reject) => {
102
+ var fulfilled = (value) => {
103
+ try {
104
+ step(generator.next(value));
105
+ } catch (e) {
106
+ reject(e);
107
+ }
108
+ };
109
+ var rejected = (value) => {
110
+ try {
111
+ step(generator.throw(value));
112
+ } catch (e) {
113
+ reject(e);
114
+ }
115
+ };
116
+ var step = (x) =>
117
+ x.done
118
+ ? resolve(x.value)
119
+ : Promise.resolve(x.value).then(fulfilled, rejected);
120
+ step((generator = generator.apply(__this, __arguments)).next());
121
+ });
122
+ };
123
+ const Persists = {
124
+ StoreOnly: 1,
125
+ MergeableStoreOnly: 2,
126
+ StoreOrMergeableStore: 3,
127
+ };
128
+ const scheduleRunning = mapNew();
129
+ const scheduleActions = mapNew();
130
+ const getStoreFunctions = (persist = Persists.StoreOnly, store) =>
131
+ persist != Persists.StoreOnly && store.isMergeable()
132
+ ? [
133
+ 1,
134
+ store.getMergeableContent,
135
+ store.getTransactionMergeableChanges,
136
+ ([[changedTables], [changedValues]]) =>
137
+ !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
138
+ store.setDefaultContent,
139
+ ]
140
+ : persist != Persists.MergeableStoreOnly
141
+ ? [
142
+ 0,
143
+ store.getContent,
144
+ store.getTransactionChanges,
145
+ ([changedTables, changedValues]) =>
146
+ !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
147
+ store.setContent,
148
+ ]
149
+ : errorNew('Store type not supported by this Persister');
150
+ const createCustomPersister = (
151
+ store,
152
+ getPersisted,
153
+ setPersisted,
154
+ addPersisterListener,
155
+ delPersisterListener,
156
+ onIgnoredError,
157
+ persist,
158
+ extra = {},
159
+ scheduleId = [],
160
+ ) => {
161
+ let loadSave = 0;
162
+ let loads = 0;
163
+ let saves = 0;
164
+ let action;
165
+ let autoLoadHandle;
166
+ let autoSaveListenerId;
167
+ mapEnsure(scheduleRunning, scheduleId, () => 0);
168
+ mapEnsure(scheduleActions, scheduleId, () => []);
169
+ const [
170
+ isMergeableStore,
171
+ getContent,
172
+ getChanges,
173
+ hasChanges,
174
+ setDefaultContent,
175
+ ] = getStoreFunctions(persist, store);
176
+ const run = () =>
177
+ __async$1(void 0, null, function* () {
178
+ /* istanbul ignore else */
179
+ if (!mapGet(scheduleRunning, scheduleId)) {
180
+ mapSet(scheduleRunning, scheduleId, 1);
181
+ while (
182
+ !isUndefined(
183
+ (action = arrayShift(mapGet(scheduleActions, scheduleId))),
184
+ )
185
+ ) {
186
+ try {
187
+ yield action();
188
+ } catch (error) {
189
+ /* istanbul ignore next */
190
+ onIgnoredError == null ? void 0 : onIgnoredError(error);
191
+ }
192
+ }
193
+ mapSet(scheduleRunning, scheduleId, 0);
194
+ }
195
+ });
196
+ const setContentOrChanges = (contentOrChanges) => {
197
+ (isMergeableStore &&
198
+ isArray(contentOrChanges == null ? void 0 : contentOrChanges[0])
199
+ ? (contentOrChanges == null ? void 0 : contentOrChanges[2]) === 1
200
+ ? store.applyMergeableChanges
201
+ : store.setMergeableContent
202
+ : (contentOrChanges == null ? void 0 : contentOrChanges[2]) === 1
203
+ ? store.applyChanges
204
+ : store.setContent)(contentOrChanges);
205
+ };
206
+ const load = (initialContent) =>
207
+ __async$1(void 0, null, function* () {
208
+ /* istanbul ignore else */
209
+ if (loadSave != 2) {
210
+ loadSave = 1;
211
+ loads++;
212
+ yield schedule(() =>
213
+ __async$1(void 0, null, function* () {
214
+ try {
215
+ setContentOrChanges(yield getPersisted());
216
+ } catch (error) {
217
+ onIgnoredError == null ? void 0 : onIgnoredError(error);
218
+ if (initialContent) {
219
+ setDefaultContent(initialContent);
220
+ }
221
+ }
222
+ loadSave = 0;
223
+ }),
224
+ );
225
+ }
226
+ return persister;
227
+ });
228
+ const startAutoLoad = (initialContent) =>
229
+ __async$1(void 0, null, function* () {
230
+ yield stopAutoLoad().load(initialContent);
231
+ autoLoadHandle = addPersisterListener((content, changes) =>
232
+ __async$1(void 0, null, function* () {
233
+ if (changes || content) {
234
+ /* istanbul ignore else */
235
+ if (loadSave != 2) {
236
+ loadSave = 1;
237
+ loads++;
238
+ setContentOrChanges(changes != null ? changes : content);
239
+ loadSave = 0;
240
+ }
241
+ } else {
242
+ yield load();
243
+ }
244
+ }),
245
+ );
246
+ return persister;
247
+ });
248
+ const stopAutoLoad = () => {
249
+ if (autoLoadHandle) {
250
+ delPersisterListener(autoLoadHandle);
251
+ autoLoadHandle = void 0;
252
+ }
253
+ return persister;
254
+ };
255
+ const isAutoLoading = () => !isUndefined(autoLoadHandle);
256
+ const save = (changes) =>
257
+ __async$1(void 0, null, function* () {
258
+ /* istanbul ignore else */
259
+ if (loadSave != 1) {
260
+ loadSave = 2;
261
+ saves++;
262
+ yield schedule(() =>
263
+ __async$1(void 0, null, function* () {
264
+ try {
265
+ yield setPersisted(getContent, changes);
266
+ } catch (error) {
267
+ /* istanbul ignore next */
268
+ onIgnoredError == null ? void 0 : onIgnoredError(error);
269
+ }
270
+ loadSave = 0;
271
+ }),
272
+ );
273
+ }
274
+ return persister;
275
+ });
276
+ const startAutoSave = () =>
277
+ __async$1(void 0, null, function* () {
278
+ yield stopAutoSave().save();
279
+ autoSaveListenerId = store.addDidFinishTransactionListener(() => {
280
+ const changes = getChanges();
281
+ if (hasChanges(changes)) {
282
+ save(changes);
283
+ }
284
+ });
285
+ return persister;
286
+ });
287
+ const stopAutoSave = () => {
288
+ ifNotUndefined(autoSaveListenerId, store.delListener);
289
+ autoSaveListenerId = void 0;
290
+ return persister;
291
+ };
292
+ const isAutoSaving = () => !isUndefined(autoSaveListenerId);
293
+ const schedule = (...actions) =>
294
+ __async$1(void 0, null, function* () {
295
+ arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
296
+ yield run();
297
+ return persister;
298
+ });
299
+ const getStore = () => store;
300
+ const destroy = () => stopAutoLoad().stopAutoSave();
301
+ const getStats = () => ({loads, saves});
302
+ const persister = __spreadValues$1(
303
+ {
304
+ load,
305
+ startAutoLoad,
306
+ stopAutoLoad,
307
+ isAutoLoading,
308
+ save,
309
+ startAutoSave,
310
+ stopAutoSave,
311
+ isAutoSaving,
312
+ schedule,
313
+ getStore,
314
+ destroy,
315
+ getStats,
316
+ },
317
+ extra,
318
+ );
319
+ return objFreeze(persister);
320
+ };
321
+
322
+ new GLOBAL.TextEncoder();
323
+
324
+ const newStamp = (value, time) => (time ? [value, time] : [value]);
325
+ const getLatestTime = (time1, time2) => {
326
+ var _a;
327
+ return (_a =
328
+ (time1 != null ? time1 : '') > (time2 != null ? time2 : '')
329
+ ? time1
330
+ : time2) != null
331
+ ? _a
332
+ : '';
333
+ };
334
+ const stampNewObj = (time = EMPTY_STRING) => newStamp(objNew(), time);
335
+
336
+ const MASK6 = 63;
337
+ const ENCODE =
338
+ '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
339
+ EMPTY_STRING,
340
+ );
341
+ mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
342
+ const encode = (num) => ENCODE[num & MASK6];
343
+
344
+ const getRandomValues = GLOBAL.crypto
345
+ ? (array) => GLOBAL.crypto.getRandomValues(array)
346
+ : /* istanbul ignore next */
347
+ (array) => arrayMap(array, () => mathFloor(math.random() * 256));
348
+ const getUniqueId = (length = 16) =>
349
+ arrayReduce(
350
+ getRandomValues(new Uint8Array(length)),
351
+ (uniqueId, number) => uniqueId + encode(number),
352
+ '',
353
+ );
354
+
355
+ var __defProp = Object.defineProperty;
356
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
357
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
358
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
359
+ var __defNormalProp = (obj, key, value) =>
360
+ key in obj
361
+ ? __defProp(obj, key, {
362
+ enumerable: true,
363
+ configurable: true,
364
+ writable: true,
365
+ value,
366
+ })
367
+ : (obj[key] = value);
368
+ var __spreadValues = (a, b) => {
369
+ for (var prop in b || (b = {}))
370
+ if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
371
+ if (__getOwnPropSymbols)
372
+ for (var prop of __getOwnPropSymbols(b)) {
373
+ if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
374
+ }
375
+ return a;
376
+ };
377
+ var __async = (__this, __arguments, generator) => {
378
+ return new Promise((resolve, reject) => {
379
+ var fulfilled = (value) => {
380
+ try {
381
+ step(generator.next(value));
382
+ } catch (e) {
383
+ reject(e);
384
+ }
385
+ };
386
+ var rejected = (value) => {
387
+ try {
388
+ step(generator.throw(value));
389
+ } catch (e) {
390
+ reject(e);
391
+ }
392
+ };
393
+ var step = (x) =>
394
+ x.done
395
+ ? resolve(x.value)
396
+ : Promise.resolve(x.value).then(fulfilled, rejected);
397
+ step((generator = generator.apply(__this, __arguments)).next());
398
+ });
399
+ };
400
+ const Message = {
401
+ Response: 0,
402
+ GetContentHashes: 1,
403
+ ContentHashes: 2,
404
+ ContentDiff: 3,
405
+ GetTableDiff: 4,
406
+ GetRowDiff: 5,
407
+ GetCellDiff: 6,
408
+ GetValueDiff: 7,
409
+ };
410
+ const createCustomSynchronizer = (
411
+ store,
412
+ send,
413
+ registerReceive,
414
+ destroyImpl,
415
+ requestTimeoutSeconds,
416
+ onIgnoredError,
417
+ extra = {},
418
+ ) => {
419
+ let persisterListener;
420
+ let sends = 0;
421
+ let receives = 0;
422
+ const pendingRequests = mapNew();
423
+ registerReceive((fromClientId, requestId, message, body) => {
424
+ receives++;
425
+ if (message == Message.Response) {
426
+ ifNotUndefined(
427
+ mapGet(pendingRequests, requestId),
428
+ ([toClientId, handleResponse]) =>
429
+ isUndefined(toClientId) || toClientId == fromClientId
430
+ ? handleResponse(body, fromClientId)
431
+ : /* istanbul ignore next */
432
+ 0,
433
+ );
434
+ } else if (message == Message.ContentHashes && persister.isAutoLoading()) {
435
+ getChangesFromOtherStore(fromClientId, body).then((changes) => {
436
+ persisterListener == null ? void 0 : persisterListener(void 0, changes);
437
+ });
438
+ } else if (message == Message.ContentDiff && persister.isAutoLoading()) {
439
+ persisterListener == null ? void 0 : persisterListener(void 0, body);
440
+ } else {
441
+ ifNotUndefined(
442
+ message == Message.GetContentHashes && persister.isAutoSaving()
443
+ ? store.getMergeableContentHashes()
444
+ : message == Message.GetTableDiff
445
+ ? store.getMergeableTableDiff(body)
446
+ : message == Message.GetRowDiff
447
+ ? store.getMergeableRowDiff(body)
448
+ : message == Message.GetCellDiff
449
+ ? store.getMergeableCellDiff(body)
450
+ : message == Message.GetValueDiff
451
+ ? store.getMergeableValueDiff(body)
452
+ : void 0,
453
+ (response) => {
454
+ sends++;
455
+ send(fromClientId, requestId, Message.Response, response);
456
+ },
457
+ );
458
+ }
459
+ });
460
+ const request = (_0, _1, ..._2) =>
461
+ __async(
462
+ void 0,
463
+ [_0, _1, ..._2],
464
+ function* (toClientId, message, body = EMPTY_STRING) {
465
+ return promiseNew((resolve, reject) => {
466
+ const requestId = getUniqueId();
467
+ const timeout = setTimeout(() => {
468
+ collDel(pendingRequests, requestId);
469
+ reject(
470
+ `No response from ${toClientId != null ? toClientId : 'anyone'} to '${message}'`,
471
+ );
472
+ }, requestTimeoutSeconds * 1e3);
473
+ mapSet(pendingRequests, requestId, [
474
+ toClientId,
475
+ (response, fromClientId) => {
476
+ clearTimeout(timeout);
477
+ collDel(pendingRequests, requestId);
478
+ resolve([response, fromClientId]);
479
+ },
480
+ ]);
481
+ sends++;
482
+ send(toClientId, requestId, message, body);
483
+ });
484
+ },
485
+ );
486
+ const mergeTablesStamps = (tablesStamp, [tableStamps2, tablesTime2]) => {
487
+ objForEach(tableStamps2, ([rowStamps2, tableTime2], tableId) => {
488
+ const tableStamp = objEnsure(tablesStamp[0], tableId, stampNewObj);
489
+ objForEach(rowStamps2, ([cellStamps2, rowTime2], rowId) => {
490
+ const rowStamp = objEnsure(tableStamp[0], rowId, stampNewObj);
491
+ objForEach(
492
+ cellStamps2,
493
+ ([cell2, cellTime2], cellId) =>
494
+ (rowStamp[0][cellId] = newStamp(cell2, cellTime2)),
495
+ );
496
+ rowStamp[1] = getLatestTime(rowStamp[1], rowTime2);
497
+ });
498
+ tableStamp[1] = getLatestTime(tableStamp[1], tableTime2);
499
+ });
500
+ tablesStamp[1] = getLatestTime(tablesStamp[1], tablesTime2);
501
+ };
502
+ const getChangesFromOtherStore = (otherClientId = null, otherContentHashes) =>
503
+ __async(void 0, null, function* () {
504
+ if (isUndefined(otherContentHashes)) {
505
+ [otherContentHashes, otherClientId] = yield request(
506
+ otherClientId,
507
+ Message.GetContentHashes,
508
+ );
509
+ }
510
+ const [otherTablesHash, otherValuesHash] = otherContentHashes;
511
+ const [tablesHash, valuesHash] = store.getMergeableContentHashes();
512
+ let tablesChanges = stampNewObj();
513
+ if (tablesHash != otherTablesHash) {
514
+ const [newTables, differentTableHashes] = (yield request(
515
+ otherClientId,
516
+ Message.GetTableDiff,
517
+ store.getMergeableTableHashes(),
518
+ ))[0];
519
+ tablesChanges = newTables;
520
+ if (!objIsEmpty(differentTableHashes)) {
521
+ const [newRows, differentRowHashes] = (yield request(
522
+ otherClientId,
523
+ Message.GetRowDiff,
524
+ store.getMergeableRowHashes(differentTableHashes),
525
+ ))[0];
526
+ mergeTablesStamps(tablesChanges, newRows);
527
+ if (!objIsEmpty(differentRowHashes)) {
528
+ const newCells = (yield request(
529
+ otherClientId,
530
+ Message.GetCellDiff,
531
+ store.getMergeableCellHashes(differentRowHashes),
532
+ ))[0];
533
+ mergeTablesStamps(tablesChanges, newCells);
534
+ }
535
+ }
536
+ }
537
+ return [
538
+ tablesChanges,
539
+ valuesHash == otherValuesHash
540
+ ? stampNewObj()
541
+ : (yield request(
542
+ otherClientId,
543
+ Message.GetValueDiff,
544
+ store.getMergeableValueHashes(),
545
+ ))[0],
546
+ 1,
547
+ ];
548
+ });
549
+ const getPersisted = () =>
550
+ __async(void 0, null, function* () {
551
+ const changes = yield getChangesFromOtherStore();
552
+ return !objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0])
553
+ ? changes
554
+ : void 0;
555
+ });
556
+ const setPersisted = (_getContent, changes) =>
557
+ __async(void 0, null, function* () {
558
+ sends++;
559
+ if (changes) {
560
+ send(null, null, Message.ContentDiff, changes);
561
+ } else {
562
+ send(
563
+ null,
564
+ null,
565
+ Message.ContentHashes,
566
+ store.getMergeableContentHashes(),
567
+ );
568
+ }
569
+ });
570
+ const addPersisterListener = (listener) => (persisterListener = listener);
571
+ const delPersisterListener = () => (persisterListener = void 0);
572
+ const startSync = (initialContent) =>
573
+ __async(void 0, null, function* () {
574
+ return yield (yield persister.startAutoLoad(
575
+ initialContent,
576
+ )).startAutoSave();
577
+ });
578
+ const stopSync = () => persister.stopAutoLoad().stopAutoSave();
579
+ const destroy = () => {
580
+ destroyImpl();
581
+ return persister.stopSync();
582
+ };
583
+ const getSynchronizerStats = () => ({sends, receives});
584
+ const persister = createCustomPersister(
585
+ store,
586
+ getPersisted,
587
+ setPersisted,
588
+ addPersisterListener,
589
+ delPersisterListener,
590
+ onIgnoredError,
591
+ Persists.MergeableStoreOnly,
592
+ __spreadValues({startSync, stopSync, destroy, getSynchronizerStats}, extra),
593
+ );
594
+ return persister;
595
+ };
596
+
597
+ const createBroadcastChannelSynchronizer = (
598
+ store,
599
+ channelName,
600
+ onIgnoredError,
601
+ ) => {
602
+ const clientId = getUniqueId();
603
+ const channel = new BroadcastChannel(channelName);
604
+ const send = (toClientId, requestId, message, body) =>
605
+ channel.postMessage([clientId, toClientId, requestId, message, body]);
606
+ const registerReceive = (receive) => {
607
+ channel.onmessage = ({
608
+ data: [fromClientId, toClientId, requestId, message, body],
609
+ }) =>
610
+ isUndefined(toClientId) || toClientId == clientId
611
+ ? receive(fromClientId, requestId, message, body)
612
+ : 0;
613
+ };
614
+ const destroy = () => {
615
+ channel.close();
616
+ };
617
+ return createCustomSynchronizer(
618
+ store,
619
+ send,
620
+ registerReceive,
621
+ destroy,
622
+ 0.01,
623
+ onIgnoredError,
624
+ {getChannelName: () => channelName},
625
+ );
626
+ };
627
+
628
+ exports.createBroadcastChannelSynchronizer = createBroadcastChannelSynchronizer;
@@ -413,7 +413,7 @@ const Message = {
413
413
  const createCustomSynchronizer = (
414
414
  store,
415
415
  send,
416
- onReceive,
416
+ registerReceive,
417
417
  destroyImpl,
418
418
  requestTimeoutSeconds,
419
419
  onIgnoredError,
@@ -423,7 +423,7 @@ const createCustomSynchronizer = (
423
423
  let sends = 0;
424
424
  let receives = 0;
425
425
  const pendingRequests = mapNew();
426
- onReceive((fromClientId, requestId, message, body) => {
426
+ registerReceive((fromClientId, requestId, message, body) => {
427
427
  receives++;
428
428
  if (message == Message.Response) {
429
429
  ifNotUndefined(
@@ -614,7 +614,7 @@ const createLocalSynchronizer = (store, onIgnoredError) => {
614
614
  : _a(clientId, requestId, message, body);
615
615
  }, 0);
616
616
  };
617
- const onReceive = (receive) => {
617
+ const registerReceive = (receive) => {
618
618
  mapSet(clients, clientId, receive);
619
619
  };
620
620
  const destroy = () => {
@@ -623,7 +623,7 @@ const createLocalSynchronizer = (store, onIgnoredError) => {
623
623
  return createCustomSynchronizer(
624
624
  store,
625
625
  send,
626
- onReceive,
626
+ registerReceive,
627
627
  destroy,
628
628
  0.01,
629
629
  onIgnoredError,
@@ -413,7 +413,7 @@ const Message = {
413
413
  const createCustomSynchronizer = (
414
414
  store,
415
415
  send,
416
- onReceive,
416
+ registerReceive,
417
417
  destroyImpl,
418
418
  requestTimeoutSeconds,
419
419
  onIgnoredError,
@@ -423,7 +423,7 @@ const createCustomSynchronizer = (
423
423
  let sends = 0;
424
424
  let receives = 0;
425
425
  const pendingRequests = mapNew();
426
- onReceive((fromClientId, requestId, message, body) => {
426
+ registerReceive((fromClientId, requestId, message, body) => {
427
427
  receives++;
428
428
  if (message == Message.Response) {
429
429
  ifNotUndefined(
@@ -614,7 +614,7 @@ const createLocalSynchronizer = (store, onIgnoredError) => {
614
614
  : _a(clientId, requestId, message, body);
615
615
  }, 0);
616
616
  };
617
- const onReceive = (receive) => {
617
+ const registerReceive = (receive) => {
618
618
  mapSet(clients, clientId, receive);
619
619
  };
620
620
  const destroy = () => {
@@ -623,7 +623,7 @@ const createLocalSynchronizer = (store, onIgnoredError) => {
623
623
  return createCustomSynchronizer(
624
624
  store,
625
625
  send,
626
- onReceive,
626
+ registerReceive,
627
627
  destroy,
628
628
  0.01,
629
629
  onIgnoredError,