tinybase 5.2.0-beta.4 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/@types/mergeable-store/index.d.cts +114 -11
  2. package/@types/mergeable-store/index.d.ts +114 -11
  3. package/@types/mergeable-store/with-schemas/index.d.cts +192 -11
  4. package/@types/mergeable-store/with-schemas/index.d.ts +192 -11
  5. package/@types/persisters/index.d.cts +177 -16
  6. package/@types/persisters/index.d.ts +177 -16
  7. package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +1 -1
  8. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +1 -1
  9. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +2 -2
  10. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +2 -2
  11. package/@types/persisters/persister-electric-sql/index.d.cts +1 -1
  12. package/@types/persisters/persister-electric-sql/index.d.ts +1 -1
  13. package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +2 -2
  14. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +2 -2
  15. package/@types/persisters/persister-expo-sqlite/index.d.cts +1 -1
  16. package/@types/persisters/persister-expo-sqlite/index.d.ts +1 -1
  17. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +2 -2
  18. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +2 -2
  19. package/@types/persisters/persister-libsql/index.d.cts +1 -1
  20. package/@types/persisters/persister-libsql/index.d.ts +1 -1
  21. package/@types/persisters/persister-libsql/with-schemas/index.d.cts +2 -2
  22. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +2 -2
  23. package/@types/persisters/persister-pglite/index.d.cts +1 -1
  24. package/@types/persisters/persister-pglite/index.d.ts +1 -1
  25. package/@types/persisters/persister-pglite/with-schemas/index.d.cts +2 -2
  26. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +2 -2
  27. package/@types/persisters/persister-postgres/index.d.cts +1 -1
  28. package/@types/persisters/persister-postgres/index.d.ts +1 -1
  29. package/@types/persisters/persister-postgres/with-schemas/index.d.cts +2 -2
  30. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +2 -2
  31. package/@types/persisters/persister-powersync/index.d.cts +1 -1
  32. package/@types/persisters/persister-powersync/index.d.ts +1 -1
  33. package/@types/persisters/persister-powersync/with-schemas/index.d.cts +2 -2
  34. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +2 -2
  35. package/@types/persisters/persister-sqlite-wasm/index.d.cts +1 -1
  36. package/@types/persisters/persister-sqlite-wasm/index.d.ts +1 -1
  37. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +2 -2
  38. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +2 -2
  39. package/@types/persisters/persister-sqlite3/index.d.cts +1 -1
  40. package/@types/persisters/persister-sqlite3/index.d.ts +1 -1
  41. package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +2 -2
  42. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +2 -2
  43. package/@types/persisters/with-schemas/index.d.cts +227 -19
  44. package/@types/persisters/with-schemas/index.d.ts +227 -19
  45. package/@types/synchronizers/index.d.cts +2 -5
  46. package/@types/synchronizers/index.d.ts +2 -5
  47. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +7 -7
  48. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
  49. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +7 -7
  50. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
  51. package/@types/synchronizers/with-schemas/index.d.cts +2 -5
  52. package/@types/synchronizers/with-schemas/index.d.ts +2 -5
  53. package/cjs/es6/index.cjs +54 -566
  54. package/cjs/es6/mergeable-store/index.cjs +9 -6
  55. package/cjs/es6/mergeable-store/with-schemas/index.cjs +9 -6
  56. package/cjs/es6/min/index.cjs +1 -1
  57. package/cjs/es6/min/index.cjs.gz +0 -0
  58. package/cjs/es6/min/persisters/index.cjs +1 -1
  59. package/cjs/es6/min/persisters/index.cjs.gz +0 -0
  60. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  65. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  66. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  67. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  69. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  70. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  71. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  73. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  74. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  77. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  78. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  79. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  80. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  81. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  82. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  83. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  84. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  85. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  86. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  87. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  88. package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
  89. package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
  90. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  91. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  92. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  93. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  94. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  95. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  96. package/cjs/es6/persisters/index.cjs +1095 -10
  97. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +58 -49
  98. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +58 -49
  99. package/cjs/es6/persisters/persister-electric-sql/index.cjs +56 -47
  100. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
  101. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +58 -49
  102. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +58 -49
  103. package/cjs/es6/persisters/persister-indexed-db/index.cjs +2 -2
  104. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
  105. package/cjs/es6/persisters/persister-libsql/index.cjs +56 -47
  106. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +56 -47
  107. package/cjs/es6/persisters/persister-pglite/index.cjs +61 -54
  108. package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +61 -54
  109. package/cjs/es6/persisters/persister-postgres/index.cjs +63 -56
  110. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +63 -56
  111. package/cjs/es6/persisters/persister-powersync/index.cjs +58 -49
  112. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +58 -49
  113. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +62 -49
  114. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +62 -49
  115. package/cjs/es6/persisters/persister-sqlite3/index.cjs +58 -49
  116. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
  117. package/cjs/es6/persisters/with-schemas/index.cjs +1095 -10
  118. package/cjs/es6/synchronizers/index.cjs +9 -6
  119. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +9 -6
  120. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +9 -6
  121. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +9 -6
  122. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +9 -6
  123. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +9 -6
  124. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +9 -6
  125. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +17 -14
  126. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +17 -14
  127. package/cjs/es6/synchronizers/with-schemas/index.cjs +9 -6
  128. package/cjs/es6/with-schemas/index.cjs +54 -566
  129. package/cjs/index.cjs +45 -447
  130. package/cjs/mergeable-store/index.cjs +1 -0
  131. package/cjs/mergeable-store/with-schemas/index.cjs +1 -0
  132. package/cjs/min/index.cjs +1 -1
  133. package/cjs/min/index.cjs.gz +0 -0
  134. package/cjs/min/persisters/index.cjs +1 -1
  135. package/cjs/min/persisters/index.cjs.gz +0 -0
  136. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  137. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  138. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  139. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  140. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  141. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  142. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  143. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  144. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  145. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  146. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  147. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  148. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  149. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  150. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  151. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  152. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  153. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  154. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  155. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  156. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  157. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  158. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  159. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  160. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  161. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  162. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  163. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  164. package/cjs/min/persisters/with-schemas/index.cjs +1 -1
  165. package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
  166. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  167. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  168. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  169. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  170. package/cjs/min/with-schemas/index.cjs +1 -1
  171. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  172. package/cjs/persisters/index.cjs +833 -0
  173. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +57 -48
  174. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +57 -48
  175. package/cjs/persisters/persister-electric-sql/index.cjs +56 -47
  176. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
  177. package/cjs/persisters/persister-expo-sqlite/index.cjs +57 -48
  178. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +57 -48
  179. package/cjs/persisters/persister-indexed-db/index.cjs +2 -2
  180. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
  181. package/cjs/persisters/persister-libsql/index.cjs +56 -47
  182. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +56 -47
  183. package/cjs/persisters/persister-pglite/index.cjs +59 -52
  184. package/cjs/persisters/persister-pglite/with-schemas/index.cjs +59 -52
  185. package/cjs/persisters/persister-postgres/index.cjs +61 -54
  186. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +61 -54
  187. package/cjs/persisters/persister-powersync/index.cjs +60 -49
  188. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +60 -49
  189. package/cjs/persisters/persister-sqlite-wasm/index.cjs +58 -49
  190. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +58 -49
  191. package/cjs/persisters/persister-sqlite3/index.cjs +58 -49
  192. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
  193. package/cjs/persisters/with-schemas/index.cjs +833 -0
  194. package/cjs/synchronizers/index.cjs +1 -0
  195. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
  196. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
  197. package/cjs/synchronizers/synchronizer-local/index.cjs +1 -0
  198. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -0
  199. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +1 -0
  200. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -0
  201. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +9 -8
  202. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +9 -8
  203. package/cjs/synchronizers/with-schemas/index.cjs +1 -0
  204. package/cjs/with-schemas/index.cjs +45 -447
  205. package/es6/index.js +54 -566
  206. package/es6/mergeable-store/index.js +9 -6
  207. package/es6/mergeable-store/with-schemas/index.js +9 -6
  208. package/es6/min/index.js +1 -1
  209. package/es6/min/index.js.gz +0 -0
  210. package/es6/min/persisters/index.js +1 -1
  211. package/es6/min/persisters/index.js.gz +0 -0
  212. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  213. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  214. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  215. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  216. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  217. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  218. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  219. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  220. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  221. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  222. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  223. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  224. package/es6/min/persisters/persister-libsql/index.js +1 -1
  225. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  226. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  227. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  228. package/es6/min/persisters/persister-powersync/index.js +1 -1
  229. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  230. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  231. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  232. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  233. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  234. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  235. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  236. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  237. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  238. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  239. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  240. package/es6/min/persisters/with-schemas/index.js +1 -1
  241. package/es6/min/persisters/with-schemas/index.js.gz +0 -0
  242. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  243. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  244. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  245. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  246. package/es6/min/with-schemas/index.js +1 -1
  247. package/es6/min/with-schemas/index.js.gz +0 -0
  248. package/es6/persisters/index.js +1099 -11
  249. package/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
  250. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
  251. package/es6/persisters/persister-electric-sql/index.js +56 -47
  252. package/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
  253. package/es6/persisters/persister-expo-sqlite/index.js +58 -49
  254. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
  255. package/es6/persisters/persister-indexed-db/index.js +2 -2
  256. package/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  257. package/es6/persisters/persister-libsql/index.js +56 -47
  258. package/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
  259. package/es6/persisters/persister-pglite/index.js +61 -54
  260. package/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
  261. package/es6/persisters/persister-postgres/index.js +63 -56
  262. package/es6/persisters/persister-postgres/with-schemas/index.js +63 -56
  263. package/es6/persisters/persister-powersync/index.js +58 -49
  264. package/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
  265. package/es6/persisters/persister-sqlite-wasm/index.js +62 -49
  266. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
  267. package/es6/persisters/persister-sqlite3/index.js +58 -49
  268. package/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
  269. package/es6/persisters/with-schemas/index.js +1099 -11
  270. package/es6/synchronizers/index.js +9 -6
  271. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
  272. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
  273. package/es6/synchronizers/synchronizer-local/index.js +9 -6
  274. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
  275. package/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
  276. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
  277. package/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
  278. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
  279. package/es6/synchronizers/with-schemas/index.js +9 -6
  280. package/es6/with-schemas/index.js +54 -566
  281. package/index.js +45 -447
  282. package/mergeable-store/index.js +1 -0
  283. package/mergeable-store/with-schemas/index.js +1 -0
  284. package/min/index.js +1 -1
  285. package/min/index.js.gz +0 -0
  286. package/min/persisters/index.js +1 -1
  287. package/min/persisters/index.js.gz +0 -0
  288. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  289. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  290. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  291. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  292. package/min/persisters/persister-electric-sql/index.js +1 -1
  293. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  294. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  295. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  296. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  297. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  298. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  299. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  300. package/min/persisters/persister-libsql/index.js +1 -1
  301. package/min/persisters/persister-libsql/index.js.gz +0 -0
  302. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  303. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  304. package/min/persisters/persister-powersync/index.js +1 -1
  305. package/min/persisters/persister-powersync/index.js.gz +0 -0
  306. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  307. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  308. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  309. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  310. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  311. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  312. package/min/persisters/persister-sqlite3/index.js +1 -1
  313. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  314. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  315. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  316. package/min/persisters/with-schemas/index.js +1 -1
  317. package/min/persisters/with-schemas/index.js.gz +0 -0
  318. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  319. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  320. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  321. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  322. package/min/with-schemas/index.js +1 -1
  323. package/min/with-schemas/index.js.gz +0 -0
  324. package/package.json +212 -212
  325. package/persisters/index.js +837 -1
  326. package/persisters/persister-cr-sqlite-wasm/index.js +57 -48
  327. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
  328. package/persisters/persister-electric-sql/index.js +56 -47
  329. package/persisters/persister-electric-sql/with-schemas/index.js +56 -47
  330. package/persisters/persister-expo-sqlite/index.js +57 -48
  331. package/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
  332. package/persisters/persister-indexed-db/index.js +2 -2
  333. package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  334. package/persisters/persister-libsql/index.js +56 -47
  335. package/persisters/persister-libsql/with-schemas/index.js +56 -47
  336. package/persisters/persister-pglite/index.js +59 -52
  337. package/persisters/persister-pglite/with-schemas/index.js +59 -52
  338. package/persisters/persister-postgres/index.js +61 -54
  339. package/persisters/persister-postgres/with-schemas/index.js +61 -54
  340. package/persisters/persister-powersync/index.js +60 -49
  341. package/persisters/persister-powersync/with-schemas/index.js +60 -49
  342. package/persisters/persister-sqlite-wasm/index.js +58 -49
  343. package/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
  344. package/persisters/persister-sqlite3/index.js +58 -49
  345. package/persisters/persister-sqlite3/with-schemas/index.js +58 -49
  346. package/persisters/with-schemas/index.js +837 -1
  347. package/readme.md +14 -14
  348. package/releases.md +27 -23
  349. package/synchronizers/index.js +1 -0
  350. package/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  351. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  352. package/synchronizers/synchronizer-local/index.js +1 -0
  353. package/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
  354. package/synchronizers/synchronizer-ws-client/index.js +1 -0
  355. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
  356. package/synchronizers/synchronizer-ws-server/index.js +9 -8
  357. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
  358. package/synchronizers/with-schemas/index.js +1 -0
  359. package/umd/es6/index.js +54 -577
  360. package/umd/es6/mergeable-store/index.js +9 -6
  361. package/umd/es6/mergeable-store/with-schemas/index.js +9 -6
  362. package/umd/es6/min/index.js +1 -1
  363. package/umd/es6/min/index.js.gz +0 -0
  364. package/umd/es6/min/persisters/index.js +1 -1
  365. package/umd/es6/min/persisters/index.js.gz +0 -0
  366. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  367. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  368. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  369. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  370. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  371. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  372. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  373. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  374. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  375. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  376. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  377. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  378. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  379. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  380. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  381. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  382. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  383. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  384. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  385. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  386. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  387. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  388. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  389. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  390. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  391. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  392. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  393. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  394. package/umd/es6/min/persisters/with-schemas/index.js +1 -1
  395. package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
  396. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  397. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  398. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  399. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  400. package/umd/es6/min/with-schemas/index.js +1 -1
  401. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  402. package/umd/es6/persisters/index.js +1106 -10
  403. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
  404. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
  405. package/umd/es6/persisters/persister-electric-sql/index.js +56 -47
  406. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
  407. package/umd/es6/persisters/persister-expo-sqlite/index.js +58 -49
  408. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
  409. package/umd/es6/persisters/persister-indexed-db/index.js +2 -2
  410. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  411. package/umd/es6/persisters/persister-libsql/index.js +56 -47
  412. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
  413. package/umd/es6/persisters/persister-pglite/index.js +61 -54
  414. package/umd/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
  415. package/umd/es6/persisters/persister-postgres/index.js +66 -56
  416. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +66 -56
  417. package/umd/es6/persisters/persister-powersync/index.js +58 -49
  418. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
  419. package/umd/es6/persisters/persister-sqlite-wasm/index.js +58 -49
  420. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
  421. package/umd/es6/persisters/persister-sqlite3/index.js +58 -49
  422. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
  423. package/umd/es6/persisters/with-schemas/index.js +1106 -10
  424. package/umd/es6/synchronizers/index.js +9 -6
  425. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
  426. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
  427. package/umd/es6/synchronizers/synchronizer-local/index.js +9 -6
  428. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
  429. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
  430. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
  431. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
  432. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
  433. package/umd/es6/synchronizers/with-schemas/index.js +9 -6
  434. package/umd/es6/with-schemas/index.js +54 -577
  435. package/umd/index.js +45 -454
  436. package/umd/mergeable-store/index.js +1 -0
  437. package/umd/mergeable-store/with-schemas/index.js +1 -0
  438. package/umd/min/index.js +1 -1
  439. package/umd/min/index.js.gz +0 -0
  440. package/umd/min/persisters/index.js +1 -1
  441. package/umd/min/persisters/index.js.gz +0 -0
  442. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  443. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  444. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  445. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  446. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  447. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  448. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  449. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  450. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  451. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  452. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  453. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  454. package/umd/min/persisters/persister-libsql/index.js +1 -1
  455. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  456. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  457. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  458. package/umd/min/persisters/persister-powersync/index.js +1 -1
  459. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  460. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  461. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  462. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  463. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  464. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  465. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  466. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  467. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  468. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  469. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  470. package/umd/min/persisters/with-schemas/index.js +1 -1
  471. package/umd/min/persisters/with-schemas/index.js.gz +0 -0
  472. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  473. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  474. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  475. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  476. package/umd/min/with-schemas/index.js +1 -1
  477. package/umd/min/with-schemas/index.js.gz +0 -0
  478. package/umd/persisters/index.js +835 -0
  479. package/umd/persisters/persister-cr-sqlite-wasm/index.js +57 -48
  480. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
  481. package/umd/persisters/persister-electric-sql/index.js +56 -47
  482. package/umd/persisters/persister-electric-sql/with-schemas/index.js +56 -47
  483. package/umd/persisters/persister-expo-sqlite/index.js +57 -48
  484. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
  485. package/umd/persisters/persister-indexed-db/index.js +2 -2
  486. package/umd/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  487. package/umd/persisters/persister-libsql/index.js +56 -47
  488. package/umd/persisters/persister-libsql/with-schemas/index.js +56 -47
  489. package/umd/persisters/persister-pglite/index.js +59 -52
  490. package/umd/persisters/persister-pglite/with-schemas/index.js +59 -52
  491. package/umd/persisters/persister-postgres/index.js +61 -54
  492. package/umd/persisters/persister-postgres/with-schemas/index.js +61 -54
  493. package/umd/persisters/persister-powersync/index.js +58 -49
  494. package/umd/persisters/persister-powersync/with-schemas/index.js +58 -49
  495. package/umd/persisters/persister-sqlite-wasm/index.js +62 -49
  496. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
  497. package/umd/persisters/persister-sqlite3/index.js +58 -49
  498. package/umd/persisters/persister-sqlite3/with-schemas/index.js +58 -49
  499. package/umd/persisters/with-schemas/index.js +835 -0
  500. package/umd/synchronizers/index.js +1 -0
  501. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  502. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  503. package/umd/synchronizers/synchronizer-local/index.js +1 -0
  504. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
  505. package/umd/synchronizers/synchronizer-ws-client/index.js +1 -0
  506. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
  507. package/umd/synchronizers/synchronizer-ws-server/index.js +9 -8
  508. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
  509. package/umd/synchronizers/with-schemas/index.js +1 -0
  510. package/umd/with-schemas/index.js +45 -454
  511. package/with-schemas/index.js +45 -447
package/index.js CHANGED
@@ -32,7 +32,6 @@ const id = (key) => EMPTY_STRING + key;
32
32
  const strStartsWith = (str, prefix) => str.startsWith(prefix);
33
33
  const strEndsWith = (str, suffix) => str.endsWith(suffix);
34
34
 
35
- const promise = Promise;
36
35
  const GLOBAL = globalThis;
37
36
  const math = Math;
38
37
  const mathMax = math.max;
@@ -51,10 +50,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
51
50
  const size = (arrayOrString) => arrayOrString.length;
52
51
  const test = (regex, subject) => regex.test(subject);
53
52
  const getUndefined = () => void 0;
54
- const promiseNew = (resolver) => new promise(resolver);
55
- const errorNew = (message) => {
56
- throw new Error(message);
57
- };
58
53
 
59
54
  const arrayHas = (array, value) => array.includes(value);
60
55
  const arrayEvery = (array, cb) => array.every(cb);
@@ -1147,444 +1142,6 @@ const createMetrics = getCreateFunction((store) => {
1147
1142
  return objFreeze(metrics);
1148
1143
  });
1149
1144
 
1150
- const Persists = {
1151
- StoreOnly: 1 /* StoreOnly */,
1152
- MergeableStoreOnly: 2 /* MergeableStoreOnly */,
1153
- StoreOrMergeableStore: 3 /* StoreOrMergeableStore */,
1154
- };
1155
- const scheduleRunning = mapNew();
1156
- const scheduleActions = mapNew();
1157
- const getStoreFunctions = (persist = 1 /* StoreOnly */, store) =>
1158
- persist != 1 /* StoreOnly */ && store.isMergeable()
1159
- ? [
1160
- 1,
1161
- store.getMergeableContent,
1162
- store.getTransactionMergeableChanges,
1163
- ([[changedTables], [changedValues]]) =>
1164
- !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
1165
- store.setDefaultContent,
1166
- ]
1167
- : persist != 2 /* MergeableStoreOnly */
1168
- ? [
1169
- 0,
1170
- store.getContent,
1171
- store.getTransactionChanges,
1172
- ([changedTables, changedValues]) =>
1173
- !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
1174
- store.setContent,
1175
- ]
1176
- : errorNew('Store type not supported by this Persister');
1177
- const createCustomPersister = (
1178
- store,
1179
- getPersisted,
1180
- setPersisted,
1181
- addPersisterListener,
1182
- delPersisterListener,
1183
- onIgnoredError,
1184
- persist,
1185
- extra = {},
1186
- scheduleId = [],
1187
- ) => {
1188
- let loadSave = 0;
1189
- let loads = 0;
1190
- let saves = 0;
1191
- let action;
1192
- let autoLoadHandle;
1193
- let autoSaveListenerId;
1194
- mapEnsure(scheduleRunning, scheduleId, () => 0);
1195
- mapEnsure(scheduleActions, scheduleId, () => []);
1196
- const [
1197
- isMergeableStore,
1198
- getContent,
1199
- getChanges,
1200
- hasChanges,
1201
- setDefaultContent,
1202
- ] = getStoreFunctions(persist, store);
1203
- const run = async () => {
1204
- /* istanbul ignore else */
1205
- if (!mapGet(scheduleRunning, scheduleId)) {
1206
- mapSet(scheduleRunning, scheduleId, 1);
1207
- while (
1208
- !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
1209
- ) {
1210
- try {
1211
- await action();
1212
- } catch (error) {
1213
- /* istanbul ignore next */
1214
- onIgnoredError?.(error);
1215
- }
1216
- }
1217
- mapSet(scheduleRunning, scheduleId, 0);
1218
- }
1219
- };
1220
- const setContentOrChanges = (contentOrChanges) => {
1221
- (isMergeableStore && isArray(contentOrChanges?.[0])
1222
- ? contentOrChanges?.[2] === 1
1223
- ? store.applyMergeableChanges
1224
- : store.setMergeableContent
1225
- : contentOrChanges?.[2] === 1
1226
- ? store.applyChanges
1227
- : store.setContent)(contentOrChanges);
1228
- };
1229
- const load = async (initialContent) => {
1230
- /* istanbul ignore else */
1231
- if (loadSave != 2) {
1232
- loadSave = 1;
1233
- loads++;
1234
- await schedule(async () => {
1235
- try {
1236
- const content = await getPersisted();
1237
- if (isArray(content)) {
1238
- setContentOrChanges(content);
1239
- } else {
1240
- errorNew(`Content is not an array ${content}`);
1241
- }
1242
- } catch (error) {
1243
- onIgnoredError?.(error);
1244
- if (initialContent) {
1245
- setDefaultContent(initialContent);
1246
- }
1247
- }
1248
- loadSave = 0;
1249
- });
1250
- }
1251
- return persister;
1252
- };
1253
- const startAutoLoad = async (initialContent) => {
1254
- await stopAutoLoad().load(initialContent);
1255
- try {
1256
- autoLoadHandle = await addPersisterListener(async (content, changes) => {
1257
- if (changes || content) {
1258
- /* istanbul ignore else */
1259
- if (loadSave != 2) {
1260
- loadSave = 1;
1261
- loads++;
1262
- setContentOrChanges(changes ?? content);
1263
- loadSave = 0;
1264
- }
1265
- } else {
1266
- await load();
1267
- }
1268
- });
1269
- } catch (error) {
1270
- /* istanbul ignore next */
1271
- onIgnoredError?.(error);
1272
- }
1273
- return persister;
1274
- };
1275
- const stopAutoLoad = () => {
1276
- if (autoLoadHandle) {
1277
- delPersisterListener(autoLoadHandle);
1278
- autoLoadHandle = void 0;
1279
- }
1280
- return persister;
1281
- };
1282
- const isAutoLoading = () => !isUndefined(autoLoadHandle);
1283
- const save = async (changes) => {
1284
- /* istanbul ignore else */
1285
- if (loadSave != 1) {
1286
- loadSave = 2;
1287
- saves++;
1288
- await schedule(async () => {
1289
- try {
1290
- await setPersisted(getContent, changes);
1291
- } catch (error) {
1292
- /* istanbul ignore next */
1293
- onIgnoredError?.(error);
1294
- }
1295
- loadSave = 0;
1296
- });
1297
- }
1298
- return persister;
1299
- };
1300
- const startAutoSave = async () => {
1301
- await stopAutoSave().save();
1302
- autoSaveListenerId = store.addDidFinishTransactionListener(() => {
1303
- const changes = getChanges();
1304
- if (hasChanges(changes)) {
1305
- save(changes);
1306
- }
1307
- });
1308
- return persister;
1309
- };
1310
- const stopAutoSave = () => {
1311
- ifNotUndefined(autoSaveListenerId, store.delListener);
1312
- autoSaveListenerId = void 0;
1313
- return persister;
1314
- };
1315
- const isAutoSaving = () => !isUndefined(autoSaveListenerId);
1316
- const schedule = async (...actions) => {
1317
- arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
1318
- await run();
1319
- return persister;
1320
- };
1321
- const getStore = () => store;
1322
- const destroy = () => {
1323
- arrayClear(mapGet(scheduleActions, scheduleId));
1324
- return stopAutoLoad().stopAutoSave();
1325
- };
1326
- const getStats = () => ({loads, saves});
1327
- const persister = {
1328
- load,
1329
- startAutoLoad,
1330
- stopAutoLoad,
1331
- isAutoLoading,
1332
- save,
1333
- startAutoSave,
1334
- stopAutoSave,
1335
- isAutoSaving,
1336
- schedule,
1337
- getStore,
1338
- destroy,
1339
- getStats,
1340
- ...extra,
1341
- };
1342
- return objFreeze(persister);
1343
- };
1344
-
1345
- const textEncoder = new GLOBAL.TextEncoder();
1346
- const getHash = (value) => {
1347
- let hash = 2166136261;
1348
- arrayForEach(textEncoder.encode(value), (char) => {
1349
- hash ^= char;
1350
- hash +=
1351
- (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
1352
- });
1353
- return hash >>> 0;
1354
- };
1355
-
1356
- const stampCloneWithHash = ([value, time, hash]) => [value, time, hash];
1357
- const stampCloneWithoutHash = ([value, time]) => newStamp(value, time);
1358
- const newStamp = (value, time) => (time ? [value, time] : [value]);
1359
- const getStampHash = (stamp) => stamp[2];
1360
- const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
1361
- const replaceTimeHash = (oldTime, newTime) =>
1362
- newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
1363
- const getLatestTime = (time1, time2) =>
1364
- ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
1365
- const stampUpdate = (stamp, hash, time) => {
1366
- stamp[2] = hash >>> 0;
1367
- if (time > stamp[1]) {
1368
- stamp[1] = time;
1369
- }
1370
- };
1371
- const stampNewObj = (time = EMPTY_STRING) => newStamp(objNew(), time);
1372
- const stampNewMap = (time = EMPTY_STRING) => [mapNew(), time, 0];
1373
- const stampMapToObjWithHash = (
1374
- [map, time, hash],
1375
- mapper = stampCloneWithHash,
1376
- ) => [mapToObj(map, mapper), time, hash];
1377
- const stampMapToObjWithoutHash = (
1378
- [map, time],
1379
- mapper = stampCloneWithoutHash,
1380
- ) => newStamp(mapToObj(map, mapper), time);
1381
- const stampValidate = (stamp, validateThing) =>
1382
- isArray(stamp) &&
1383
- size(stamp) == 3 &&
1384
- isString(stamp[1]) &&
1385
- getTypeOf(stamp[2]) == NUMBER &&
1386
- isFiniteNumber(stamp[2]) &&
1387
- validateThing(stamp[0]);
1388
-
1389
- const Message = {
1390
- Response: 0 /* Response */,
1391
- GetContentHashes: 1 /* GetContentHashes */,
1392
- ContentHashes: 2 /* ContentHashes */,
1393
- ContentDiff: 3 /* ContentDiff */,
1394
- GetTableDiff: 4 /* GetTableDiff */,
1395
- GetRowDiff: 5 /* GetRowDiff */,
1396
- GetCellDiff: 6 /* GetCellDiff */,
1397
- GetValueDiff: 7 /* GetValueDiff */,
1398
- };
1399
- const createCustomSynchronizer = (
1400
- store,
1401
- send,
1402
- registerReceive,
1403
- destroyImpl,
1404
- requestTimeoutSeconds,
1405
- onSend,
1406
- onReceive,
1407
- onIgnoredError,
1408
- extra = {},
1409
- ) => {
1410
- let persisterListener;
1411
- let sends = 0;
1412
- let receives = 0;
1413
- const pendingRequests = mapNew();
1414
- const sendImpl = (toClientId, requestId, message, body) => {
1415
- sends++;
1416
- onSend?.(toClientId, requestId, message, body);
1417
- send(toClientId, requestId, message, body);
1418
- };
1419
- const request = async (toClientId, message, body = EMPTY_STRING) =>
1420
- promiseNew((resolve, reject) => {
1421
- const requestId = getUniqueId();
1422
- const timeout = setTimeout(() => {
1423
- collDel(pendingRequests, requestId);
1424
- reject(
1425
- `No response from ${toClientId ?? 'anyone'} to ${requestId}, ` +
1426
- message,
1427
- );
1428
- }, requestTimeoutSeconds * 1e3);
1429
- mapSet(pendingRequests, requestId, [
1430
- toClientId,
1431
- (response, fromClientId) => {
1432
- clearTimeout(timeout);
1433
- collDel(pendingRequests, requestId);
1434
- resolve([response, fromClientId]);
1435
- },
1436
- ]);
1437
- sendImpl(toClientId, requestId, message, body);
1438
- });
1439
- const mergeTablesStamps = (tablesStamp, [tableStamps2, tablesTime2]) => {
1440
- objForEach(tableStamps2, ([rowStamps2, tableTime2], tableId) => {
1441
- const tableStamp = objEnsure(tablesStamp[0], tableId, stampNewObj);
1442
- objForEach(rowStamps2, ([cellStamps2, rowTime2], rowId) => {
1443
- const rowStamp = objEnsure(tableStamp[0], rowId, stampNewObj);
1444
- objForEach(
1445
- cellStamps2,
1446
- ([cell2, cellTime2], cellId) =>
1447
- (rowStamp[0][cellId] = newStamp(cell2, cellTime2)),
1448
- );
1449
- rowStamp[1] = getLatestTime(rowStamp[1], rowTime2);
1450
- });
1451
- tableStamp[1] = getLatestTime(tableStamp[1], tableTime2);
1452
- });
1453
- tablesStamp[1] = getLatestTime(tablesStamp[1], tablesTime2);
1454
- };
1455
- const getChangesFromOtherStore = async (
1456
- otherClientId = null,
1457
- otherContentHashes,
1458
- ) => {
1459
- if (isUndefined(otherContentHashes)) {
1460
- [otherContentHashes, otherClientId] = await request(
1461
- otherClientId,
1462
- 1 /* GetContentHashes */,
1463
- );
1464
- }
1465
- const [otherTablesHash, otherValuesHash] = otherContentHashes;
1466
- const [tablesHash, valuesHash] = store.getMergeableContentHashes();
1467
- let tablesChanges = stampNewObj();
1468
- if (tablesHash != otherTablesHash) {
1469
- const [newTables, differentTableHashes] = (
1470
- await request(
1471
- otherClientId,
1472
- 4 /* GetTableDiff */,
1473
- store.getMergeableTableHashes(),
1474
- )
1475
- )[0];
1476
- tablesChanges = newTables;
1477
- if (!objIsEmpty(differentTableHashes)) {
1478
- const [newRows, differentRowHashes] = (
1479
- await request(
1480
- otherClientId,
1481
- 5 /* GetRowDiff */,
1482
- store.getMergeableRowHashes(differentTableHashes),
1483
- )
1484
- )[0];
1485
- mergeTablesStamps(tablesChanges, newRows);
1486
- if (!objIsEmpty(differentRowHashes)) {
1487
- const newCells = (
1488
- await request(
1489
- otherClientId,
1490
- 6 /* GetCellDiff */,
1491
- store.getMergeableCellHashes(differentRowHashes),
1492
- )
1493
- )[0];
1494
- mergeTablesStamps(tablesChanges, newCells);
1495
- }
1496
- }
1497
- }
1498
- return [
1499
- tablesChanges,
1500
- valuesHash == otherValuesHash
1501
- ? stampNewObj()
1502
- : (
1503
- await request(
1504
- otherClientId,
1505
- 7 /* GetValueDiff */,
1506
- store.getMergeableValueHashes(),
1507
- )
1508
- )[0],
1509
- 1,
1510
- ];
1511
- };
1512
- const getPersisted = async () => {
1513
- const changes = await getChangesFromOtherStore();
1514
- return !objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0])
1515
- ? changes
1516
- : void 0;
1517
- };
1518
- const setPersisted = async (_getContent, changes) =>
1519
- changes
1520
- ? sendImpl(null, null, 3 /* ContentDiff */, changes)
1521
- : sendImpl(
1522
- null,
1523
- null,
1524
- 2 /* ContentHashes */,
1525
- store.getMergeableContentHashes(),
1526
- );
1527
- const addPersisterListener = (listener) => (persisterListener = listener);
1528
- const delPersisterListener = () => (persisterListener = void 0);
1529
- const startSync = async (initialContent) =>
1530
- await (await persister.startAutoLoad(initialContent)).startAutoSave();
1531
- const stopSync = () => persister.stopAutoLoad().stopAutoSave();
1532
- const destroy = () => {
1533
- destroyImpl();
1534
- return persister.stopSync();
1535
- };
1536
- const getSynchronizerStats = () => ({sends, receives});
1537
- const persister = createCustomPersister(
1538
- store,
1539
- getPersisted,
1540
- setPersisted,
1541
- addPersisterListener,
1542
- delPersisterListener,
1543
- onIgnoredError,
1544
- 2,
1545
- // MergeableStoreOnly
1546
- {startSync, stopSync, destroy, getSynchronizerStats, ...extra},
1547
- );
1548
- registerReceive((fromClientId, requestId, message, body) => {
1549
- receives++;
1550
- onReceive?.(fromClientId, requestId, message, body);
1551
- if (message == 0 /* Response */) {
1552
- ifNotUndefined(
1553
- mapGet(pendingRequests, requestId),
1554
- ([toClientId, handleResponse]) =>
1555
- isUndefined(toClientId) || toClientId == fromClientId
1556
- ? handleResponse(body, fromClientId)
1557
- : /* istanbul ignore next */
1558
- 0,
1559
- );
1560
- } else if (message == 2 /* ContentHashes */ && persister.isAutoLoading()) {
1561
- getChangesFromOtherStore(fromClientId, body).then((changes) => {
1562
- persisterListener?.(void 0, changes);
1563
- });
1564
- } else if (message == 3 /* ContentDiff */ && persister.isAutoLoading()) {
1565
- persisterListener?.(void 0, body);
1566
- } else {
1567
- ifNotUndefined(
1568
- message == 1 /* GetContentHashes */ && persister.isAutoSaving()
1569
- ? store.getMergeableContentHashes()
1570
- : message == 4 /* GetTableDiff */
1571
- ? store.getMergeableTableDiff(body)
1572
- : message == 5 /* GetRowDiff */
1573
- ? store.getMergeableRowDiff(body)
1574
- : message == 6 /* GetCellDiff */
1575
- ? store.getMergeableCellDiff(body)
1576
- : message == 7 /* GetValueDiff */
1577
- ? store.getMergeableValueDiff(body)
1578
- : void 0,
1579
- (response) => {
1580
- sendImpl(fromClientId, requestId, 0 /* Response */, response);
1581
- },
1582
- );
1583
- }
1584
- });
1585
- return persister;
1586
- };
1587
-
1588
1145
  const createQueries = getCreateFunction((store) => {
1589
1146
  const createStore = store.createStore;
1590
1147
  const preStore = createStore();
@@ -2233,6 +1790,51 @@ const createRelationships = getCreateFunction((store) => {
2233
1790
  return objFreeze(relationships);
2234
1791
  });
2235
1792
 
1793
+ const textEncoder = new GLOBAL.TextEncoder();
1794
+ const getHash = (value) => {
1795
+ let hash = 2166136261;
1796
+ arrayForEach(textEncoder.encode(value), (char) => {
1797
+ hash ^= char;
1798
+ hash +=
1799
+ (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
1800
+ });
1801
+ return hash >>> 0;
1802
+ };
1803
+
1804
+ const stampCloneWithHash = ([value, time, hash]) => [value, time, hash];
1805
+ const stampCloneWithoutHash = ([value, time]) => newStamp(value, time);
1806
+ const newStamp = (value, time) => (time ? [value, time] : [value]);
1807
+ const getStampHash = (stamp) => stamp[2];
1808
+ const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
1809
+ const replaceTimeHash = (oldTime, newTime) =>
1810
+ newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
1811
+ const getLatestTime = (time1, time2) =>
1812
+ /* istanbul ignore next */
1813
+ ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
1814
+ const stampUpdate = (stamp, hash, time) => {
1815
+ stamp[2] = hash >>> 0;
1816
+ if (time > stamp[1]) {
1817
+ stamp[1] = time;
1818
+ }
1819
+ };
1820
+ const stampNewObj = (time = EMPTY_STRING) => newStamp(objNew(), time);
1821
+ const stampNewMap = (time = EMPTY_STRING) => [mapNew(), time, 0];
1822
+ const stampMapToObjWithHash = (
1823
+ [map, time, hash],
1824
+ mapper = stampCloneWithHash,
1825
+ ) => [mapToObj(map, mapper), time, hash];
1826
+ const stampMapToObjWithoutHash = (
1827
+ [map, time],
1828
+ mapper = stampCloneWithoutHash,
1829
+ ) => newStamp(mapToObj(map, mapper), time);
1830
+ const stampValidate = (stamp, validateThing) =>
1831
+ isArray(stamp) &&
1832
+ size(stamp) == 3 &&
1833
+ isString(stamp[1]) &&
1834
+ getTypeOf(stamp[2]) == NUMBER &&
1835
+ isFiniteNumber(stamp[2]) &&
1836
+ validateThing(stamp[0]);
1837
+
2236
1838
  const pairNew = (value) => [value, value];
2237
1839
  const pairCollSize2 = (pair, func = collSize2) => func(pair[0]) + func(pair[1]);
2238
1840
  const pairNewMap = () => [mapNew(), mapNew()];
@@ -4125,11 +3727,7 @@ const createMergeableStore = (uniqueId) => {
4125
3727
  };
4126
3728
 
4127
3729
  export {
4128
- Message,
4129
- Persists,
4130
3730
  createCheckpoints,
4131
- createCustomPersister,
4132
- createCustomSynchronizer,
4133
3731
  createIndexes,
4134
3732
  createMergeableStore,
4135
3733
  createMetrics,
@@ -224,6 +224,7 @@ const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
224
224
  const replaceTimeHash = (oldTime, newTime) =>
225
225
  newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
226
226
  const getLatestTime = (time1, time2) =>
227
+ /* istanbul ignore next */
227
228
  ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
228
229
  const stampUpdate = (stamp, hash, time) => {
229
230
  stamp[2] = hash >>> 0;
@@ -224,6 +224,7 @@ const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
224
224
  const replaceTimeHash = (oldTime, newTime) =>
225
225
  newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
226
226
  const getLatestTime = (time1, time2) =>
227
+ /* istanbul ignore next */
227
228
  ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
228
229
  const stampUpdate = (stamp, hash, time) => {
229
230
  stamp[2] = hash >>> 0;