tinybase 5.0.0-beta.22 → 5.0.0-beta.24

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 (271) hide show
  1. package/@types/mergeable-store/index.d.cts +77 -11
  2. package/@types/mergeable-store/index.d.ts +77 -11
  3. package/@types/mergeable-store/with-schemas/index.d.cts +96 -11
  4. package/@types/mergeable-store/with-schemas/index.d.ts +96 -11
  5. package/@types/persisters/index.d.cts +0 -1
  6. package/@types/persisters/index.d.ts +0 -1
  7. package/@types/persisters/persister-expo-sqlite/index.d.cts +36 -40
  8. package/@types/persisters/persister-expo-sqlite/index.d.ts +36 -40
  9. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +36 -40
  10. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +36 -40
  11. package/@types/persisters/with-schemas/index.d.cts +0 -1
  12. package/@types/persisters/with-schemas/index.d.ts +0 -1
  13. package/cjs/es6/index.cjs +3 -3
  14. package/cjs/es6/mergeable-store/index.cjs +2 -2
  15. package/cjs/es6/mergeable-store/with-schemas/index.cjs +2 -2
  16. package/cjs/es6/min/index.cjs +1 -1
  17. package/cjs/es6/min/index.cjs.gz +0 -0
  18. package/cjs/es6/min/mergeable-store/index.cjs +1 -1
  19. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  20. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
  21. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  22. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  23. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  24. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  25. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  26. package/cjs/es6/min/synchronizers/index.cjs +1 -1
  27. package/cjs/es6/min/synchronizers/index.cjs.gz +0 -0
  28. package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs +1 -1
  29. package/cjs/es6/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  30. package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
  31. package/cjs/es6/min/synchronizers/synchronizer-local/with-schemas/index.cjs.gz +0 -0
  32. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  33. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  34. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  35. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  36. package/cjs/es6/min/synchronizers/with-schemas/index.cjs +1 -1
  37. package/cjs/es6/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  38. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  39. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  40. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +7 -2
  41. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +7 -2
  42. package/cjs/es6/synchronizers/index.cjs +1 -1
  43. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +1 -1
  44. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
  45. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  46. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  47. package/cjs/es6/synchronizers/with-schemas/index.cjs +1 -1
  48. package/cjs/es6/with-schemas/index.cjs +3 -3
  49. package/cjs/index.cjs +3 -3
  50. package/cjs/mergeable-store/index.cjs +2 -2
  51. package/cjs/mergeable-store/with-schemas/index.cjs +2 -2
  52. package/cjs/min/index.cjs +1 -1
  53. package/cjs/min/index.cjs.gz +0 -0
  54. package/cjs/min/mergeable-store/index.cjs +1 -1
  55. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  56. package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
  57. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  58. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  59. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  60. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  61. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  62. package/cjs/min/synchronizers/index.cjs +1 -1
  63. package/cjs/min/synchronizers/index.cjs.gz +0 -0
  64. package/cjs/min/synchronizers/synchronizer-local/index.cjs +1 -1
  65. package/cjs/min/synchronizers/synchronizer-local/index.cjs.gz +0 -0
  66. package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
  67. package/cjs/min/synchronizers/synchronizer-local/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  69. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  70. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  71. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/min/synchronizers/with-schemas/index.cjs +1 -1
  73. package/cjs/min/synchronizers/with-schemas/index.cjs.gz +0 -0
  74. package/cjs/min/with-schemas/index.cjs +1 -1
  75. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/persisters/persister-expo-sqlite/index.cjs +7 -3
  77. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +7 -3
  78. package/cjs/synchronizers/index.cjs +1 -1
  79. package/cjs/synchronizers/synchronizer-local/index.cjs +1 -1
  80. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -1
  81. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  82. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  83. package/cjs/synchronizers/with-schemas/index.cjs +1 -1
  84. package/cjs/with-schemas/index.cjs +3 -3
  85. package/es6/index.js +3 -3
  86. package/es6/mergeable-store/index.js +2 -2
  87. package/es6/mergeable-store/with-schemas/index.js +2 -2
  88. package/es6/min/index.js +1 -1
  89. package/es6/min/index.js.gz +0 -0
  90. package/es6/min/mergeable-store/index.js +1 -1
  91. package/es6/min/mergeable-store/index.js.gz +0 -0
  92. package/es6/min/mergeable-store/with-schemas/index.js +1 -1
  93. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  94. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  95. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  96. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  97. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  98. package/es6/min/synchronizers/index.js +1 -1
  99. package/es6/min/synchronizers/index.js.gz +0 -0
  100. package/es6/min/synchronizers/synchronizer-local/index.js +1 -1
  101. package/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  102. package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  103. package/es6/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  104. package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  105. package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  106. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  107. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  108. package/es6/min/synchronizers/with-schemas/index.js +1 -1
  109. package/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  110. package/es6/min/with-schemas/index.js +1 -1
  111. package/es6/min/with-schemas/index.js.gz +0 -0
  112. package/es6/persisters/persister-expo-sqlite/index.js +5 -2
  113. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +5 -2
  114. package/es6/synchronizers/index.js +1 -1
  115. package/es6/synchronizers/synchronizer-local/index.js +1 -1
  116. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  117. package/es6/synchronizers/synchronizer-ws-client/index.js +1 -1
  118. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  119. package/es6/synchronizers/with-schemas/index.js +1 -1
  120. package/es6/with-schemas/index.js +3 -3
  121. package/index.js +3 -3
  122. package/mergeable-store/index.js +2 -2
  123. package/mergeable-store/with-schemas/index.js +2 -2
  124. package/min/index.js +1 -1
  125. package/min/index.js.gz +0 -0
  126. package/min/mergeable-store/index.js +1 -1
  127. package/min/mergeable-store/index.js.gz +0 -0
  128. package/min/mergeable-store/with-schemas/index.js +1 -1
  129. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  130. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  131. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  132. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  133. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  134. package/min/synchronizers/index.js +1 -1
  135. package/min/synchronizers/index.js.gz +0 -0
  136. package/min/synchronizers/synchronizer-local/index.js +1 -1
  137. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  138. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  139. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  140. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  141. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  142. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  143. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  144. package/min/synchronizers/with-schemas/index.js +1 -1
  145. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  146. package/min/with-schemas/index.js +1 -1
  147. package/min/with-schemas/index.js.gz +0 -0
  148. package/package.json +9 -112
  149. package/persisters/persister-expo-sqlite/index.js +5 -3
  150. package/persisters/persister-expo-sqlite/with-schemas/index.js +5 -3
  151. package/readme.md +2 -2
  152. package/releases.md +2 -2
  153. package/synchronizers/index.js +1 -1
  154. package/synchronizers/synchronizer-local/index.js +1 -1
  155. package/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  156. package/synchronizers/synchronizer-ws-client/index.js +1 -1
  157. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  158. package/synchronizers/with-schemas/index.js +1 -1
  159. package/umd/es6/index.js +3 -3
  160. package/umd/es6/mergeable-store/index.js +2 -2
  161. package/umd/es6/mergeable-store/with-schemas/index.js +2 -2
  162. package/umd/es6/min/index.js +1 -1
  163. package/umd/es6/min/index.js.gz +0 -0
  164. package/umd/es6/min/mergeable-store/index.js +1 -1
  165. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  166. package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
  167. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  168. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  169. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  170. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  171. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  172. package/umd/es6/min/synchronizers/index.js +1 -1
  173. package/umd/es6/min/synchronizers/index.js.gz +0 -0
  174. package/umd/es6/min/synchronizers/synchronizer-local/index.js +1 -1
  175. package/umd/es6/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  176. package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  177. package/umd/es6/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  178. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  179. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  180. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  181. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  182. package/umd/es6/min/synchronizers/with-schemas/index.js +1 -1
  183. package/umd/es6/min/synchronizers/with-schemas/index.js.gz +0 -0
  184. package/umd/es6/min/with-schemas/index.js +1 -1
  185. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  186. package/umd/es6/persisters/persister-expo-sqlite/index.js +12 -6
  187. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +12 -6
  188. package/umd/es6/synchronizers/index.js +1 -1
  189. package/umd/es6/synchronizers/synchronizer-local/index.js +1 -1
  190. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  191. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +1 -1
  192. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  193. package/umd/es6/synchronizers/with-schemas/index.js +1 -1
  194. package/umd/es6/with-schemas/index.js +3 -3
  195. package/umd/index.js +3 -3
  196. package/umd/mergeable-store/index.js +2 -2
  197. package/umd/mergeable-store/with-schemas/index.js +2 -2
  198. package/umd/min/index.js +1 -1
  199. package/umd/min/index.js.gz +0 -0
  200. package/umd/min/mergeable-store/index.js +1 -1
  201. package/umd/min/mergeable-store/index.js.gz +0 -0
  202. package/umd/min/mergeable-store/with-schemas/index.js +1 -1
  203. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  204. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  205. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  206. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  207. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  208. package/umd/min/synchronizers/index.js +1 -1
  209. package/umd/min/synchronizers/index.js.gz +0 -0
  210. package/umd/min/synchronizers/synchronizer-local/index.js +1 -1
  211. package/umd/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  212. package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  213. package/umd/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  214. package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  215. package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  216. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  217. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  218. package/umd/min/synchronizers/with-schemas/index.js +1 -1
  219. package/umd/min/synchronizers/with-schemas/index.js.gz +0 -0
  220. package/umd/min/with-schemas/index.js +1 -1
  221. package/umd/min/with-schemas/index.js.gz +0 -0
  222. package/umd/persisters/persister-expo-sqlite/index.js +12 -7
  223. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +12 -7
  224. package/umd/synchronizers/index.js +1 -1
  225. package/umd/synchronizers/synchronizer-local/index.js +1 -1
  226. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  227. package/umd/synchronizers/synchronizer-ws-client/index.js +1 -1
  228. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  229. package/umd/synchronizers/with-schemas/index.js +1 -1
  230. package/umd/with-schemas/index.js +3 -3
  231. package/with-schemas/index.js +3 -3
  232. package/@types/persisters/persister-expo-sqlite-next/index.d.cts +0 -187
  233. package/@types/persisters/persister-expo-sqlite-next/index.d.ts +0 -187
  234. package/@types/persisters/persister-expo-sqlite-next/with-schemas/index.d.cts +0 -206
  235. package/@types/persisters/persister-expo-sqlite-next/with-schemas/index.d.ts +0 -206
  236. package/cjs/es6/min/persisters/persister-expo-sqlite-next/index.cjs +0 -1
  237. package/cjs/es6/min/persisters/persister-expo-sqlite-next/index.cjs.gz +0 -0
  238. package/cjs/es6/min/persisters/persister-expo-sqlite-next/with-schemas/index.cjs +0 -1
  239. package/cjs/es6/min/persisters/persister-expo-sqlite-next/with-schemas/index.cjs.gz +0 -0
  240. package/cjs/es6/persisters/persister-expo-sqlite-next/index.cjs +0 -1253
  241. package/cjs/es6/persisters/persister-expo-sqlite-next/with-schemas/index.cjs +0 -1253
  242. package/cjs/min/persisters/persister-expo-sqlite-next/index.cjs +0 -1
  243. package/cjs/min/persisters/persister-expo-sqlite-next/index.cjs.gz +0 -0
  244. package/cjs/min/persisters/persister-expo-sqlite-next/with-schemas/index.cjs +0 -1
  245. package/cjs/min/persisters/persister-expo-sqlite-next/with-schemas/index.cjs.gz +0 -0
  246. package/cjs/persisters/persister-expo-sqlite-next/index.cjs +0 -926
  247. package/cjs/persisters/persister-expo-sqlite-next/with-schemas/index.cjs +0 -926
  248. package/es6/min/persisters/persister-expo-sqlite-next/index.js +0 -1
  249. package/es6/min/persisters/persister-expo-sqlite-next/index.js.gz +0 -0
  250. package/es6/min/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -1
  251. package/es6/min/persisters/persister-expo-sqlite-next/with-schemas/index.js.gz +0 -0
  252. package/es6/persisters/persister-expo-sqlite-next/index.js +0 -1251
  253. package/es6/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -1251
  254. package/min/persisters/persister-expo-sqlite-next/index.js +0 -1
  255. package/min/persisters/persister-expo-sqlite-next/index.js.gz +0 -0
  256. package/min/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -1
  257. package/min/persisters/persister-expo-sqlite-next/with-schemas/index.js.gz +0 -0
  258. package/persisters/persister-expo-sqlite-next/index.js +0 -924
  259. package/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -924
  260. package/umd/es6/min/persisters/persister-expo-sqlite-next/index.js +0 -1
  261. package/umd/es6/min/persisters/persister-expo-sqlite-next/index.js.gz +0 -0
  262. package/umd/es6/min/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -1
  263. package/umd/es6/min/persisters/persister-expo-sqlite-next/with-schemas/index.js.gz +0 -0
  264. package/umd/es6/persisters/persister-expo-sqlite-next/index.js +0 -1293
  265. package/umd/es6/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -1293
  266. package/umd/min/persisters/persister-expo-sqlite-next/index.js +0 -1
  267. package/umd/min/persisters/persister-expo-sqlite-next/index.js.gz +0 -0
  268. package/umd/min/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -1
  269. package/umd/min/persisters/persister-expo-sqlite-next/with-schemas/index.js.gz +0 -0
  270. package/umd/persisters/persister-expo-sqlite-next/index.js +0 -957
  271. package/umd/persisters/persister-expo-sqlite-next/with-schemas/index.js +0 -957
@@ -1,5 +1,11 @@
1
1
  /**
2
- * The mergeable-store module
2
+ * The mergeable-store module contains the types, interfaces, and functions to
3
+ * work with MergeableStore objects, which provide merge and synchronization
4
+ * functionality.
5
+ *
6
+ * The main entry point to this module is the createMergeableStore function,
7
+ * which returns a new MergeableStore, a subtype of Store that can be merged
8
+ * with another with deterministic results.
3
9
  * @packageDocumentation
4
10
  * @module mergeable-store
5
11
  * @since v5.0.0
@@ -27,20 +33,45 @@ import type {
27
33
  import type {Id} from '../../common/with-schemas/index.d.cts';
28
34
 
29
35
  /**
30
- * The Hash type
36
+ * The Hash type is used within the mergeable-store module to quickly compare
37
+ * the content of two objects.
38
+ *
39
+ * This is simply an alias for a JavaScript `number`.
40
+ *
41
+ * This type is mostly utilized internally within TinyBase itself and is
42
+ * generally assumed to be opaque to applications that use it.
31
43
  * @category Stamps
44
+ * @since v5.0.0
32
45
  */
33
46
  export type Hash = number;
34
47
 
35
48
  /**
36
- * The Time type
49
+ * The Time type is used within the mergeable-store module to store the value of
50
+ * a hybrid logical clock (HLC).
51
+ *
52
+ * It is simply an alias for a JavaScript `string`, but it comprises three HLC
53
+ * parts: a logical timestamp, a sequence counter, and a client Id. It is
54
+ * designed to be string-sortable and unique across all of the systems involved
55
+ * in synchronizing a MergeableStore.
56
+ *
57
+ * This type is mostly utilized internally within TinyBase itself and is
58
+ * generally assumed to be opaque to applications that use it.
37
59
  * @category Stamps
60
+ * @since v5.0.0
38
61
  */
39
62
  export type Time = string;
40
63
 
41
64
  /**
42
- * The Stamp type
65
+ * The Stamp type is used as metadata to decide how to merge two different
66
+ * MergeableStore objects together.
67
+ *
68
+ * It describes a combination of a value (or object), a Time, and optionally a
69
+ * Hash, all in an array.
70
+ *
71
+ * This type is mostly utilized internally within TinyBase itself and is
72
+ * generally assumed to be opaque to applications that use it.
43
73
  * @category Stamps
74
+ * @since v5.0.0
44
75
  */
45
76
  export type Stamp<Thing, Hashed extends boolean = false> = Hashed extends true
46
77
  ? [thing: Thing, time: Time, hash: Hash]
@@ -128,8 +159,8 @@ export type ValuesStamp<
128
159
  Hashed
129
160
  >;
130
161
 
131
- // ValuesHashes
132
- export type ValuesHashes<Schema extends OptionalValuesSchema> = {
162
+ // ValueHashes
163
+ export type ValueHashes<Schema extends OptionalValuesSchema> = {
133
164
  [ValueId in ValueIdFromSchema<Schema>]?: Hash;
134
165
  };
135
166
 
@@ -141,8 +172,25 @@ export type ValueStamp<
141
172
  > = Stamp<ValueOrUndefined<Schema, ValueId>, Hashed>;
142
173
 
143
174
  /**
144
- * The MergeableContent type
175
+ * The MergeableContent type represents the content of a MergeableStore and the
176
+ * metadata about that content) required to merge it with another.
177
+ *
178
+ * This has schema-based typing. The following is a simplified representation:
179
+ *
180
+ * ```ts override
181
+ * [
182
+ * mergeableTables: TablesStamp<true>,
183
+ * mergeableValues: ValuesStamp<true>,
184
+ * ];
185
+ * ```
186
+ *
187
+ * It is simply an array of two Stamp types, one for the MergeableStore's Tables
188
+ * and one for its Values.
189
+ *
190
+ * This type is mostly utilized internally within TinyBase itself and is
191
+ * generally assumed to be opaque to applications that use it.
145
192
  * @category Mergeable
193
+ * @since v5.0.0
146
194
  */
147
195
  export type MergeableContent<Schemas extends OptionalSchemas> = [
148
196
  mergeableTables: TablesStamp<Schemas[0], true>,
@@ -150,8 +198,28 @@ export type MergeableContent<Schemas extends OptionalSchemas> = [
150
198
  ];
151
199
 
152
200
  /**
153
- * The MergeableChanges type
201
+ * The MergeableChanges type represents changes to the content of a
202
+ * MergeableStore and the metadata about that content) required to merge it with
203
+ * another.
204
+ *
205
+ * This has schema-based typing. The following is a simplified representation:
206
+ *
207
+ * ```ts override
208
+ * [
209
+ * mergeableTables: TablesStamp,
210
+ * mergeableValues: ValuesStamp,
211
+ * isChanges: 1,
212
+ * ];
213
+ * ```
214
+ *
215
+ * It is simply an array of two Stamp types, one for changes to the
216
+ * MergeableStore's Tables and one for changes to its Values. A final `1` is
217
+ * used to distinguish it from a full MergeableContent object.
218
+ *
219
+ * This type is mostly utilized internally within TinyBase itself and is
220
+ * generally assumed to be opaque to applications that use it.
154
221
  * @category Mergeable
222
+ * @since v5.0.0
155
223
  */
156
224
  export type MergeableChanges<Schemas extends OptionalSchemas> = [
157
225
  mergeableTables: TablesStamp<Schemas[0]>,
@@ -162,6 +230,7 @@ export type MergeableChanges<Schemas extends OptionalSchemas> = [
162
230
  /**
163
231
  * The MergeableStore type
164
232
  * @category Mergeable
233
+ * @since v5.0.0
165
234
  */
166
235
  export interface MergeableStore<Schemas extends OptionalSchemas>
167
236
  extends Store<Schemas> {
@@ -169,24 +238,28 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
169
238
  /**
170
239
  * The getMergeableContent method
171
240
  * @category Getter
241
+ * @since v5.0.0
172
242
  */
173
243
  getMergeableContent(): MergeableContent<Schemas>;
174
244
 
175
245
  /**
176
246
  * The getMergeableContentHashes method
177
247
  * @category Syncing
248
+ * @since v5.0.0
178
249
  */
179
250
  getMergeableContentHashes(): ContentHashes;
180
251
 
181
252
  /**
182
253
  * The getMergeableTableHashes method
183
254
  * @category Syncing
255
+ * @since v5.0.0
184
256
  */
185
257
  getMergeableTableHashes(): TableHashes<Schemas[0]>;
186
258
 
187
259
  /**
188
260
  * The getMergeableTableDiff method
189
261
  * @category Syncing
262
+ * @since v5.0.0
190
263
  */
191
264
  getMergeableTableDiff(
192
265
  relativeTo: TableHashes<Schemas[0]>,
@@ -198,6 +271,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
198
271
  /**
199
272
  * The getMergeableRowHashes method
200
273
  * @category Syncing
274
+ * @since v5.0.0
201
275
  */
202
276
  getMergeableRowHashes(
203
277
  otherTableHashes: TableHashes<Schemas[0]>,
@@ -206,6 +280,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
206
280
  /**
207
281
  * The getMergeableRowDiff method
208
282
  * @category Syncing
283
+ * @since v5.0.0
209
284
  */
210
285
  getMergeableRowDiff(
211
286
  otherTableRowHashes: RowHashes<Schemas[0]>,
@@ -217,6 +292,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
217
292
  /**
218
293
  * The getMergeableCellHashes method
219
294
  * @category Syncing
295
+ * @since v5.0.0
220
296
  */
221
297
  getMergeableCellHashes(
222
298
  otherTableRowHashes: RowHashes<Schemas[0]>,
@@ -225,28 +301,32 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
225
301
  /**
226
302
  * The getMergeableCellDiff method
227
303
  * @category Syncing
304
+ * @since v5.0.0
228
305
  */
229
306
  getMergeableCellDiff(
230
307
  otherTableRowCellHashes: CellHashes<Schemas[0]>,
231
308
  ): TablesStamp<Schemas[0]>;
232
309
 
233
310
  /**
234
- * The getMergeableValuesHashes method
311
+ * The getMergeableValueHashes method
235
312
  * @category Syncing
313
+ * @since v5.0.0
236
314
  */
237
- getMergeableValuesHashes(): ValuesHashes<Schemas[1]>;
315
+ getMergeableValueHashes(): ValueHashes<Schemas[1]>;
238
316
 
239
317
  /**
240
318
  * The getMergeableValueDiff method
241
319
  * @category Syncing
320
+ * @since v5.0.0
242
321
  */
243
322
  getMergeableValueDiff(
244
- relativeTo: ValuesHashes<Schemas[1]>,
323
+ relativeTo: ValueHashes<Schemas[1]>,
245
324
  ): ValuesStamp<Schemas[1]>;
246
325
 
247
326
  /**
248
327
  * The setMergeableContent method
249
328
  * @category Setter
329
+ * @since v5.0.0
250
330
  */
251
331
  setMergeableContent(
252
332
  mergeableContent: MergeableContent<Schemas>,
@@ -255,18 +335,21 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
255
335
  /**
256
336
  * The setDefaultContent method
257
337
  * @category Setter
338
+ * @since v5.0.0
258
339
  */
259
340
  setDefaultContent(content: Content<Schemas>): MergeableStore<Schemas>;
260
341
 
261
342
  /**
262
343
  * The getTransactionMergeableChanges method
263
344
  * @category Getter
345
+ * @since v5.0.0
264
346
  */
265
347
  getTransactionMergeableChanges(): MergeableChanges<Schemas>;
266
348
 
267
349
  /**
268
350
  * The applyMergeableChanges method
269
351
  * @category Setter
352
+ * @since v5.0.0
270
353
  */
271
354
  applyMergeableChanges(
272
355
  mergeableChanges: MergeableChanges<Schemas> | MergeableContent<Schemas>,
@@ -275,6 +358,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
275
358
  /**
276
359
  * The merge method
277
360
  * @category Setter
361
+ * @since v5.0.0
278
362
  */
279
363
  merge(mergeableStore: MergeableStore<Schemas>): MergeableStore<Schemas>;
280
364
 
@@ -505,5 +589,6 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
505
589
  /**
506
590
  * The createMergeableStore function
507
591
  * @category Creation
592
+ * @since v5.0.0
508
593
  */
509
594
  export function createMergeableStore(uniqueId?: Id): MergeableStore<NoSchemas>;
@@ -1,5 +1,11 @@
1
1
  /**
2
- * The mergeable-store module
2
+ * The mergeable-store module contains the types, interfaces, and functions to
3
+ * work with MergeableStore objects, which provide merge and synchronization
4
+ * functionality.
5
+ *
6
+ * The main entry point to this module is the createMergeableStore function,
7
+ * which returns a new MergeableStore, a subtype of Store that can be merged
8
+ * with another with deterministic results.
3
9
  * @packageDocumentation
4
10
  * @module mergeable-store
5
11
  * @since v5.0.0
@@ -27,20 +33,45 @@ import type {
27
33
  import type {Id} from '../../common/with-schemas/index.d.ts';
28
34
 
29
35
  /**
30
- * The Hash type
36
+ * The Hash type is used within the mergeable-store module to quickly compare
37
+ * the content of two objects.
38
+ *
39
+ * This is simply an alias for a JavaScript `number`.
40
+ *
41
+ * This type is mostly utilized internally within TinyBase itself and is
42
+ * generally assumed to be opaque to applications that use it.
31
43
  * @category Stamps
44
+ * @since v5.0.0
32
45
  */
33
46
  export type Hash = number;
34
47
 
35
48
  /**
36
- * The Time type
49
+ * The Time type is used within the mergeable-store module to store the value of
50
+ * a hybrid logical clock (HLC).
51
+ *
52
+ * It is simply an alias for a JavaScript `string`, but it comprises three HLC
53
+ * parts: a logical timestamp, a sequence counter, and a client Id. It is
54
+ * designed to be string-sortable and unique across all of the systems involved
55
+ * in synchronizing a MergeableStore.
56
+ *
57
+ * This type is mostly utilized internally within TinyBase itself and is
58
+ * generally assumed to be opaque to applications that use it.
37
59
  * @category Stamps
60
+ * @since v5.0.0
38
61
  */
39
62
  export type Time = string;
40
63
 
41
64
  /**
42
- * The Stamp type
65
+ * The Stamp type is used as metadata to decide how to merge two different
66
+ * MergeableStore objects together.
67
+ *
68
+ * It describes a combination of a value (or object), a Time, and optionally a
69
+ * Hash, all in an array.
70
+ *
71
+ * This type is mostly utilized internally within TinyBase itself and is
72
+ * generally assumed to be opaque to applications that use it.
43
73
  * @category Stamps
74
+ * @since v5.0.0
44
75
  */
45
76
  export type Stamp<Thing, Hashed extends boolean = false> = Hashed extends true
46
77
  ? [thing: Thing, time: Time, hash: Hash]
@@ -128,8 +159,8 @@ export type ValuesStamp<
128
159
  Hashed
129
160
  >;
130
161
 
131
- // ValuesHashes
132
- export type ValuesHashes<Schema extends OptionalValuesSchema> = {
162
+ // ValueHashes
163
+ export type ValueHashes<Schema extends OptionalValuesSchema> = {
133
164
  [ValueId in ValueIdFromSchema<Schema>]?: Hash;
134
165
  };
135
166
 
@@ -141,8 +172,25 @@ export type ValueStamp<
141
172
  > = Stamp<ValueOrUndefined<Schema, ValueId>, Hashed>;
142
173
 
143
174
  /**
144
- * The MergeableContent type
175
+ * The MergeableContent type represents the content of a MergeableStore and the
176
+ * metadata about that content) required to merge it with another.
177
+ *
178
+ * This has schema-based typing. The following is a simplified representation:
179
+ *
180
+ * ```ts override
181
+ * [
182
+ * mergeableTables: TablesStamp<true>,
183
+ * mergeableValues: ValuesStamp<true>,
184
+ * ];
185
+ * ```
186
+ *
187
+ * It is simply an array of two Stamp types, one for the MergeableStore's Tables
188
+ * and one for its Values.
189
+ *
190
+ * This type is mostly utilized internally within TinyBase itself and is
191
+ * generally assumed to be opaque to applications that use it.
145
192
  * @category Mergeable
193
+ * @since v5.0.0
146
194
  */
147
195
  export type MergeableContent<Schemas extends OptionalSchemas> = [
148
196
  mergeableTables: TablesStamp<Schemas[0], true>,
@@ -150,8 +198,28 @@ export type MergeableContent<Schemas extends OptionalSchemas> = [
150
198
  ];
151
199
 
152
200
  /**
153
- * The MergeableChanges type
201
+ * The MergeableChanges type represents changes to the content of a
202
+ * MergeableStore and the metadata about that content) required to merge it with
203
+ * another.
204
+ *
205
+ * This has schema-based typing. The following is a simplified representation:
206
+ *
207
+ * ```ts override
208
+ * [
209
+ * mergeableTables: TablesStamp,
210
+ * mergeableValues: ValuesStamp,
211
+ * isChanges: 1,
212
+ * ];
213
+ * ```
214
+ *
215
+ * It is simply an array of two Stamp types, one for changes to the
216
+ * MergeableStore's Tables and one for changes to its Values. A final `1` is
217
+ * used to distinguish it from a full MergeableContent object.
218
+ *
219
+ * This type is mostly utilized internally within TinyBase itself and is
220
+ * generally assumed to be opaque to applications that use it.
154
221
  * @category Mergeable
222
+ * @since v5.0.0
155
223
  */
156
224
  export type MergeableChanges<Schemas extends OptionalSchemas> = [
157
225
  mergeableTables: TablesStamp<Schemas[0]>,
@@ -162,6 +230,7 @@ export type MergeableChanges<Schemas extends OptionalSchemas> = [
162
230
  /**
163
231
  * The MergeableStore type
164
232
  * @category Mergeable
233
+ * @since v5.0.0
165
234
  */
166
235
  export interface MergeableStore<Schemas extends OptionalSchemas>
167
236
  extends Store<Schemas> {
@@ -169,24 +238,28 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
169
238
  /**
170
239
  * The getMergeableContent method
171
240
  * @category Getter
241
+ * @since v5.0.0
172
242
  */
173
243
  getMergeableContent(): MergeableContent<Schemas>;
174
244
 
175
245
  /**
176
246
  * The getMergeableContentHashes method
177
247
  * @category Syncing
248
+ * @since v5.0.0
178
249
  */
179
250
  getMergeableContentHashes(): ContentHashes;
180
251
 
181
252
  /**
182
253
  * The getMergeableTableHashes method
183
254
  * @category Syncing
255
+ * @since v5.0.0
184
256
  */
185
257
  getMergeableTableHashes(): TableHashes<Schemas[0]>;
186
258
 
187
259
  /**
188
260
  * The getMergeableTableDiff method
189
261
  * @category Syncing
262
+ * @since v5.0.0
190
263
  */
191
264
  getMergeableTableDiff(
192
265
  relativeTo: TableHashes<Schemas[0]>,
@@ -198,6 +271,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
198
271
  /**
199
272
  * The getMergeableRowHashes method
200
273
  * @category Syncing
274
+ * @since v5.0.0
201
275
  */
202
276
  getMergeableRowHashes(
203
277
  otherTableHashes: TableHashes<Schemas[0]>,
@@ -206,6 +280,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
206
280
  /**
207
281
  * The getMergeableRowDiff method
208
282
  * @category Syncing
283
+ * @since v5.0.0
209
284
  */
210
285
  getMergeableRowDiff(
211
286
  otherTableRowHashes: RowHashes<Schemas[0]>,
@@ -217,6 +292,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
217
292
  /**
218
293
  * The getMergeableCellHashes method
219
294
  * @category Syncing
295
+ * @since v5.0.0
220
296
  */
221
297
  getMergeableCellHashes(
222
298
  otherTableRowHashes: RowHashes<Schemas[0]>,
@@ -225,28 +301,32 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
225
301
  /**
226
302
  * The getMergeableCellDiff method
227
303
  * @category Syncing
304
+ * @since v5.0.0
228
305
  */
229
306
  getMergeableCellDiff(
230
307
  otherTableRowCellHashes: CellHashes<Schemas[0]>,
231
308
  ): TablesStamp<Schemas[0]>;
232
309
 
233
310
  /**
234
- * The getMergeableValuesHashes method
311
+ * The getMergeableValueHashes method
235
312
  * @category Syncing
313
+ * @since v5.0.0
236
314
  */
237
- getMergeableValuesHashes(): ValuesHashes<Schemas[1]>;
315
+ getMergeableValueHashes(): ValueHashes<Schemas[1]>;
238
316
 
239
317
  /**
240
318
  * The getMergeableValueDiff method
241
319
  * @category Syncing
320
+ * @since v5.0.0
242
321
  */
243
322
  getMergeableValueDiff(
244
- relativeTo: ValuesHashes<Schemas[1]>,
323
+ relativeTo: ValueHashes<Schemas[1]>,
245
324
  ): ValuesStamp<Schemas[1]>;
246
325
 
247
326
  /**
248
327
  * The setMergeableContent method
249
328
  * @category Setter
329
+ * @since v5.0.0
250
330
  */
251
331
  setMergeableContent(
252
332
  mergeableContent: MergeableContent<Schemas>,
@@ -255,18 +335,21 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
255
335
  /**
256
336
  * The setDefaultContent method
257
337
  * @category Setter
338
+ * @since v5.0.0
258
339
  */
259
340
  setDefaultContent(content: Content<Schemas>): MergeableStore<Schemas>;
260
341
 
261
342
  /**
262
343
  * The getTransactionMergeableChanges method
263
344
  * @category Getter
345
+ * @since v5.0.0
264
346
  */
265
347
  getTransactionMergeableChanges(): MergeableChanges<Schemas>;
266
348
 
267
349
  /**
268
350
  * The applyMergeableChanges method
269
351
  * @category Setter
352
+ * @since v5.0.0
270
353
  */
271
354
  applyMergeableChanges(
272
355
  mergeableChanges: MergeableChanges<Schemas> | MergeableContent<Schemas>,
@@ -275,6 +358,7 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
275
358
  /**
276
359
  * The merge method
277
360
  * @category Setter
361
+ * @since v5.0.0
278
362
  */
279
363
  merge(mergeableStore: MergeableStore<Schemas>): MergeableStore<Schemas>;
280
364
 
@@ -505,5 +589,6 @@ export interface MergeableStore<Schemas extends OptionalSchemas>
505
589
  /**
506
590
  * The createMergeableStore function
507
591
  * @category Creation
592
+ * @since v5.0.0
508
593
  */
509
594
  export function createMergeableStore(uniqueId?: Id): MergeableStore<NoSchemas>;
@@ -20,7 +20,6 @@
20
20
  * |persister-sqlite-wasm|createSqliteWasmPersister|SQLite in a browser, via [sqlite-wasm](https://github.com/tomayac/sqlite-wasm)|
21
21
  * |persister-cr-sqlite-wasm|createCrSqliteWasmPersister|SQLite CRDTs, via [cr-sqlite-wasm](https://github.com/vlcn-io/cr-sqlite)|
22
22
  * |persister-expo-sqlite|createExpoSqlitePersister|SQLite in React Native, via [expo-sqlite](https://github.com/expo/expo/tree/main/packages/expo-sqlite)|
23
- * |persister-expo-sqlite-next|createExpoSqliteNextPersister|SQLite in React Native, via [expo-sqlite/next](https://github.com/expo/expo/tree/main/packages/expo-sqlite/next)|
24
23
  * |persister-electric-sql|createElectricSqlPersister|Electric SQL, via [electric-sql](https://github.com/electric-sql/electric)|
25
24
  * |persister-libsql|createLibSqlPersister|LibSQL for Turso, via [libsql-client](https://github.com/tursodatabase/libsql-client-ts)|
26
25
  * |persister-powersync|createPowerSyncPersister|PowerSync, via [powersync-sdk](https://github.com/powersync-ja/powersync-js)|
@@ -20,7 +20,6 @@
20
20
  * |persister-sqlite-wasm|createSqliteWasmPersister|SQLite in a browser, via [sqlite-wasm](https://github.com/tomayac/sqlite-wasm)|
21
21
  * |persister-cr-sqlite-wasm|createCrSqliteWasmPersister|SQLite CRDTs, via [cr-sqlite-wasm](https://github.com/vlcn-io/cr-sqlite)|
22
22
  * |persister-expo-sqlite|createExpoSqlitePersister|SQLite in React Native, via [expo-sqlite](https://github.com/expo/expo/tree/main/packages/expo-sqlite)|
23
- * |persister-expo-sqlite-next|createExpoSqliteNextPersister|SQLite in React Native, via [expo-sqlite/next](https://github.com/expo/expo/tree/main/packages/expo-sqlite/next)|
24
23
  * |persister-electric-sql|createElectricSqlPersister|Electric SQL, via [electric-sql](https://github.com/electric-sql/electric)|
25
24
  * |persister-libsql|createLibSqlPersister|LibSQL for Turso, via [libsql-client](https://github.com/tursodatabase/libsql-client-ts)|
26
25
  * |persister-powersync|createPowerSyncPersister|PowerSync, via [powersync-sdk](https://github.com/powersync-ja/powersync-js)|