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/cjs/index.cjs CHANGED
@@ -34,7 +34,6 @@ const id = (key) => EMPTY_STRING + key;
34
34
  const strStartsWith = (str, prefix) => str.startsWith(prefix);
35
35
  const strEndsWith = (str, suffix) => str.endsWith(suffix);
36
36
 
37
- const promise = Promise;
38
37
  const GLOBAL = globalThis;
39
38
  const math = Math;
40
39
  const mathMax = math.max;
@@ -53,10 +52,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
53
52
  const size = (arrayOrString) => arrayOrString.length;
54
53
  const test = (regex, subject) => regex.test(subject);
55
54
  const getUndefined = () => void 0;
56
- const promiseNew = (resolver) => new promise(resolver);
57
- const errorNew = (message) => {
58
- throw new Error(message);
59
- };
60
55
 
61
56
  const arrayHas = (array, value) => array.includes(value);
62
57
  const arrayEvery = (array, cb) => array.every(cb);
@@ -1149,444 +1144,6 @@ const createMetrics = getCreateFunction((store) => {
1149
1144
  return objFreeze(metrics);
1150
1145
  });
1151
1146
 
1152
- const Persists = {
1153
- StoreOnly: 1 /* StoreOnly */,
1154
- MergeableStoreOnly: 2 /* MergeableStoreOnly */,
1155
- StoreOrMergeableStore: 3 /* StoreOrMergeableStore */,
1156
- };
1157
- const scheduleRunning = mapNew();
1158
- const scheduleActions = mapNew();
1159
- const getStoreFunctions = (persist = 1 /* StoreOnly */, store) =>
1160
- persist != 1 /* StoreOnly */ && store.isMergeable()
1161
- ? [
1162
- 1,
1163
- store.getMergeableContent,
1164
- store.getTransactionMergeableChanges,
1165
- ([[changedTables], [changedValues]]) =>
1166
- !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
1167
- store.setDefaultContent,
1168
- ]
1169
- : persist != 2 /* MergeableStoreOnly */
1170
- ? [
1171
- 0,
1172
- store.getContent,
1173
- store.getTransactionChanges,
1174
- ([changedTables, changedValues]) =>
1175
- !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
1176
- store.setContent,
1177
- ]
1178
- : errorNew('Store type not supported by this Persister');
1179
- const createCustomPersister = (
1180
- store,
1181
- getPersisted,
1182
- setPersisted,
1183
- addPersisterListener,
1184
- delPersisterListener,
1185
- onIgnoredError,
1186
- persist,
1187
- extra = {},
1188
- scheduleId = [],
1189
- ) => {
1190
- let loadSave = 0;
1191
- let loads = 0;
1192
- let saves = 0;
1193
- let action;
1194
- let autoLoadHandle;
1195
- let autoSaveListenerId;
1196
- mapEnsure(scheduleRunning, scheduleId, () => 0);
1197
- mapEnsure(scheduleActions, scheduleId, () => []);
1198
- const [
1199
- isMergeableStore,
1200
- getContent,
1201
- getChanges,
1202
- hasChanges,
1203
- setDefaultContent,
1204
- ] = getStoreFunctions(persist, store);
1205
- const run = async () => {
1206
- /* istanbul ignore else */
1207
- if (!mapGet(scheduleRunning, scheduleId)) {
1208
- mapSet(scheduleRunning, scheduleId, 1);
1209
- while (
1210
- !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
1211
- ) {
1212
- try {
1213
- await action();
1214
- } catch (error) {
1215
- /* istanbul ignore next */
1216
- onIgnoredError?.(error);
1217
- }
1218
- }
1219
- mapSet(scheduleRunning, scheduleId, 0);
1220
- }
1221
- };
1222
- const setContentOrChanges = (contentOrChanges) => {
1223
- (isMergeableStore && isArray(contentOrChanges?.[0])
1224
- ? contentOrChanges?.[2] === 1
1225
- ? store.applyMergeableChanges
1226
- : store.setMergeableContent
1227
- : contentOrChanges?.[2] === 1
1228
- ? store.applyChanges
1229
- : store.setContent)(contentOrChanges);
1230
- };
1231
- const load = async (initialContent) => {
1232
- /* istanbul ignore else */
1233
- if (loadSave != 2) {
1234
- loadSave = 1;
1235
- loads++;
1236
- await schedule(async () => {
1237
- try {
1238
- const content = await getPersisted();
1239
- if (isArray(content)) {
1240
- setContentOrChanges(content);
1241
- } else {
1242
- errorNew(`Content is not an array ${content}`);
1243
- }
1244
- } catch (error) {
1245
- onIgnoredError?.(error);
1246
- if (initialContent) {
1247
- setDefaultContent(initialContent);
1248
- }
1249
- }
1250
- loadSave = 0;
1251
- });
1252
- }
1253
- return persister;
1254
- };
1255
- const startAutoLoad = async (initialContent) => {
1256
- await stopAutoLoad().load(initialContent);
1257
- try {
1258
- autoLoadHandle = await addPersisterListener(async (content, changes) => {
1259
- if (changes || content) {
1260
- /* istanbul ignore else */
1261
- if (loadSave != 2) {
1262
- loadSave = 1;
1263
- loads++;
1264
- setContentOrChanges(changes ?? content);
1265
- loadSave = 0;
1266
- }
1267
- } else {
1268
- await load();
1269
- }
1270
- });
1271
- } catch (error) {
1272
- /* istanbul ignore next */
1273
- onIgnoredError?.(error);
1274
- }
1275
- return persister;
1276
- };
1277
- const stopAutoLoad = () => {
1278
- if (autoLoadHandle) {
1279
- delPersisterListener(autoLoadHandle);
1280
- autoLoadHandle = void 0;
1281
- }
1282
- return persister;
1283
- };
1284
- const isAutoLoading = () => !isUndefined(autoLoadHandle);
1285
- const save = async (changes) => {
1286
- /* istanbul ignore else */
1287
- if (loadSave != 1) {
1288
- loadSave = 2;
1289
- saves++;
1290
- await schedule(async () => {
1291
- try {
1292
- await setPersisted(getContent, changes);
1293
- } catch (error) {
1294
- /* istanbul ignore next */
1295
- onIgnoredError?.(error);
1296
- }
1297
- loadSave = 0;
1298
- });
1299
- }
1300
- return persister;
1301
- };
1302
- const startAutoSave = async () => {
1303
- await stopAutoSave().save();
1304
- autoSaveListenerId = store.addDidFinishTransactionListener(() => {
1305
- const changes = getChanges();
1306
- if (hasChanges(changes)) {
1307
- save(changes);
1308
- }
1309
- });
1310
- return persister;
1311
- };
1312
- const stopAutoSave = () => {
1313
- ifNotUndefined(autoSaveListenerId, store.delListener);
1314
- autoSaveListenerId = void 0;
1315
- return persister;
1316
- };
1317
- const isAutoSaving = () => !isUndefined(autoSaveListenerId);
1318
- const schedule = async (...actions) => {
1319
- arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
1320
- await run();
1321
- return persister;
1322
- };
1323
- const getStore = () => store;
1324
- const destroy = () => {
1325
- arrayClear(mapGet(scheduleActions, scheduleId));
1326
- return stopAutoLoad().stopAutoSave();
1327
- };
1328
- const getStats = () => ({loads, saves});
1329
- const persister = {
1330
- load,
1331
- startAutoLoad,
1332
- stopAutoLoad,
1333
- isAutoLoading,
1334
- save,
1335
- startAutoSave,
1336
- stopAutoSave,
1337
- isAutoSaving,
1338
- schedule,
1339
- getStore,
1340
- destroy,
1341
- getStats,
1342
- ...extra,
1343
- };
1344
- return objFreeze(persister);
1345
- };
1346
-
1347
- const textEncoder = new GLOBAL.TextEncoder();
1348
- const getHash = (value) => {
1349
- let hash = 2166136261;
1350
- arrayForEach(textEncoder.encode(value), (char) => {
1351
- hash ^= char;
1352
- hash +=
1353
- (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
1354
- });
1355
- return hash >>> 0;
1356
- };
1357
-
1358
- const stampCloneWithHash = ([value, time, hash]) => [value, time, hash];
1359
- const stampCloneWithoutHash = ([value, time]) => newStamp(value, time);
1360
- const newStamp = (value, time) => (time ? [value, time] : [value]);
1361
- const getStampHash = (stamp) => stamp[2];
1362
- const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
1363
- const replaceTimeHash = (oldTime, newTime) =>
1364
- newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
1365
- const getLatestTime = (time1, time2) =>
1366
- ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
1367
- const stampUpdate = (stamp, hash, time) => {
1368
- stamp[2] = hash >>> 0;
1369
- if (time > stamp[1]) {
1370
- stamp[1] = time;
1371
- }
1372
- };
1373
- const stampNewObj = (time = EMPTY_STRING) => newStamp(objNew(), time);
1374
- const stampNewMap = (time = EMPTY_STRING) => [mapNew(), time, 0];
1375
- const stampMapToObjWithHash = (
1376
- [map, time, hash],
1377
- mapper = stampCloneWithHash,
1378
- ) => [mapToObj(map, mapper), time, hash];
1379
- const stampMapToObjWithoutHash = (
1380
- [map, time],
1381
- mapper = stampCloneWithoutHash,
1382
- ) => newStamp(mapToObj(map, mapper), time);
1383
- const stampValidate = (stamp, validateThing) =>
1384
- isArray(stamp) &&
1385
- size(stamp) == 3 &&
1386
- isString(stamp[1]) &&
1387
- getTypeOf(stamp[2]) == NUMBER &&
1388
- isFiniteNumber(stamp[2]) &&
1389
- validateThing(stamp[0]);
1390
-
1391
- const Message = {
1392
- Response: 0 /* Response */,
1393
- GetContentHashes: 1 /* GetContentHashes */,
1394
- ContentHashes: 2 /* ContentHashes */,
1395
- ContentDiff: 3 /* ContentDiff */,
1396
- GetTableDiff: 4 /* GetTableDiff */,
1397
- GetRowDiff: 5 /* GetRowDiff */,
1398
- GetCellDiff: 6 /* GetCellDiff */,
1399
- GetValueDiff: 7 /* GetValueDiff */,
1400
- };
1401
- const createCustomSynchronizer = (
1402
- store,
1403
- send,
1404
- registerReceive,
1405
- destroyImpl,
1406
- requestTimeoutSeconds,
1407
- onSend,
1408
- onReceive,
1409
- onIgnoredError,
1410
- extra = {},
1411
- ) => {
1412
- let persisterListener;
1413
- let sends = 0;
1414
- let receives = 0;
1415
- const pendingRequests = mapNew();
1416
- const sendImpl = (toClientId, requestId, message, body) => {
1417
- sends++;
1418
- onSend?.(toClientId, requestId, message, body);
1419
- send(toClientId, requestId, message, body);
1420
- };
1421
- const request = async (toClientId, message, body = EMPTY_STRING) =>
1422
- promiseNew((resolve, reject) => {
1423
- const requestId = getUniqueId();
1424
- const timeout = setTimeout(() => {
1425
- collDel(pendingRequests, requestId);
1426
- reject(
1427
- `No response from ${toClientId ?? 'anyone'} to ${requestId}, ` +
1428
- message,
1429
- );
1430
- }, requestTimeoutSeconds * 1e3);
1431
- mapSet(pendingRequests, requestId, [
1432
- toClientId,
1433
- (response, fromClientId) => {
1434
- clearTimeout(timeout);
1435
- collDel(pendingRequests, requestId);
1436
- resolve([response, fromClientId]);
1437
- },
1438
- ]);
1439
- sendImpl(toClientId, requestId, message, body);
1440
- });
1441
- const mergeTablesStamps = (tablesStamp, [tableStamps2, tablesTime2]) => {
1442
- objForEach(tableStamps2, ([rowStamps2, tableTime2], tableId) => {
1443
- const tableStamp = objEnsure(tablesStamp[0], tableId, stampNewObj);
1444
- objForEach(rowStamps2, ([cellStamps2, rowTime2], rowId) => {
1445
- const rowStamp = objEnsure(tableStamp[0], rowId, stampNewObj);
1446
- objForEach(
1447
- cellStamps2,
1448
- ([cell2, cellTime2], cellId) =>
1449
- (rowStamp[0][cellId] = newStamp(cell2, cellTime2)),
1450
- );
1451
- rowStamp[1] = getLatestTime(rowStamp[1], rowTime2);
1452
- });
1453
- tableStamp[1] = getLatestTime(tableStamp[1], tableTime2);
1454
- });
1455
- tablesStamp[1] = getLatestTime(tablesStamp[1], tablesTime2);
1456
- };
1457
- const getChangesFromOtherStore = async (
1458
- otherClientId = null,
1459
- otherContentHashes,
1460
- ) => {
1461
- if (isUndefined(otherContentHashes)) {
1462
- [otherContentHashes, otherClientId] = await request(
1463
- otherClientId,
1464
- 1 /* GetContentHashes */,
1465
- );
1466
- }
1467
- const [otherTablesHash, otherValuesHash] = otherContentHashes;
1468
- const [tablesHash, valuesHash] = store.getMergeableContentHashes();
1469
- let tablesChanges = stampNewObj();
1470
- if (tablesHash != otherTablesHash) {
1471
- const [newTables, differentTableHashes] = (
1472
- await request(
1473
- otherClientId,
1474
- 4 /* GetTableDiff */,
1475
- store.getMergeableTableHashes(),
1476
- )
1477
- )[0];
1478
- tablesChanges = newTables;
1479
- if (!objIsEmpty(differentTableHashes)) {
1480
- const [newRows, differentRowHashes] = (
1481
- await request(
1482
- otherClientId,
1483
- 5 /* GetRowDiff */,
1484
- store.getMergeableRowHashes(differentTableHashes),
1485
- )
1486
- )[0];
1487
- mergeTablesStamps(tablesChanges, newRows);
1488
- if (!objIsEmpty(differentRowHashes)) {
1489
- const newCells = (
1490
- await request(
1491
- otherClientId,
1492
- 6 /* GetCellDiff */,
1493
- store.getMergeableCellHashes(differentRowHashes),
1494
- )
1495
- )[0];
1496
- mergeTablesStamps(tablesChanges, newCells);
1497
- }
1498
- }
1499
- }
1500
- return [
1501
- tablesChanges,
1502
- valuesHash == otherValuesHash
1503
- ? stampNewObj()
1504
- : (
1505
- await request(
1506
- otherClientId,
1507
- 7 /* GetValueDiff */,
1508
- store.getMergeableValueHashes(),
1509
- )
1510
- )[0],
1511
- 1,
1512
- ];
1513
- };
1514
- const getPersisted = async () => {
1515
- const changes = await getChangesFromOtherStore();
1516
- return !objIsEmpty(changes[0][0]) || !objIsEmpty(changes[1][0])
1517
- ? changes
1518
- : void 0;
1519
- };
1520
- const setPersisted = async (_getContent, changes) =>
1521
- changes
1522
- ? sendImpl(null, null, 3 /* ContentDiff */, changes)
1523
- : sendImpl(
1524
- null,
1525
- null,
1526
- 2 /* ContentHashes */,
1527
- store.getMergeableContentHashes(),
1528
- );
1529
- const addPersisterListener = (listener) => (persisterListener = listener);
1530
- const delPersisterListener = () => (persisterListener = void 0);
1531
- const startSync = async (initialContent) =>
1532
- await (await persister.startAutoLoad(initialContent)).startAutoSave();
1533
- const stopSync = () => persister.stopAutoLoad().stopAutoSave();
1534
- const destroy = () => {
1535
- destroyImpl();
1536
- return persister.stopSync();
1537
- };
1538
- const getSynchronizerStats = () => ({sends, receives});
1539
- const persister = createCustomPersister(
1540
- store,
1541
- getPersisted,
1542
- setPersisted,
1543
- addPersisterListener,
1544
- delPersisterListener,
1545
- onIgnoredError,
1546
- 2,
1547
- // MergeableStoreOnly
1548
- {startSync, stopSync, destroy, getSynchronizerStats, ...extra},
1549
- );
1550
- registerReceive((fromClientId, requestId, message, body) => {
1551
- receives++;
1552
- onReceive?.(fromClientId, requestId, message, body);
1553
- if (message == 0 /* Response */) {
1554
- ifNotUndefined(
1555
- mapGet(pendingRequests, requestId),
1556
- ([toClientId, handleResponse]) =>
1557
- isUndefined(toClientId) || toClientId == fromClientId
1558
- ? handleResponse(body, fromClientId)
1559
- : /* istanbul ignore next */
1560
- 0,
1561
- );
1562
- } else if (message == 2 /* ContentHashes */ && persister.isAutoLoading()) {
1563
- getChangesFromOtherStore(fromClientId, body).then((changes) => {
1564
- persisterListener?.(void 0, changes);
1565
- });
1566
- } else if (message == 3 /* ContentDiff */ && persister.isAutoLoading()) {
1567
- persisterListener?.(void 0, body);
1568
- } else {
1569
- ifNotUndefined(
1570
- message == 1 /* GetContentHashes */ && persister.isAutoSaving()
1571
- ? store.getMergeableContentHashes()
1572
- : message == 4 /* GetTableDiff */
1573
- ? store.getMergeableTableDiff(body)
1574
- : message == 5 /* GetRowDiff */
1575
- ? store.getMergeableRowDiff(body)
1576
- : message == 6 /* GetCellDiff */
1577
- ? store.getMergeableCellDiff(body)
1578
- : message == 7 /* GetValueDiff */
1579
- ? store.getMergeableValueDiff(body)
1580
- : void 0,
1581
- (response) => {
1582
- sendImpl(fromClientId, requestId, 0 /* Response */, response);
1583
- },
1584
- );
1585
- }
1586
- });
1587
- return persister;
1588
- };
1589
-
1590
1147
  const createQueries = getCreateFunction((store) => {
1591
1148
  const createStore = store.createStore;
1592
1149
  const preStore = createStore();
@@ -2235,6 +1792,51 @@ const createRelationships = getCreateFunction((store) => {
2235
1792
  return objFreeze(relationships);
2236
1793
  });
2237
1794
 
1795
+ const textEncoder = new GLOBAL.TextEncoder();
1796
+ const getHash = (value) => {
1797
+ let hash = 2166136261;
1798
+ arrayForEach(textEncoder.encode(value), (char) => {
1799
+ hash ^= char;
1800
+ hash +=
1801
+ (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
1802
+ });
1803
+ return hash >>> 0;
1804
+ };
1805
+
1806
+ const stampCloneWithHash = ([value, time, hash]) => [value, time, hash];
1807
+ const stampCloneWithoutHash = ([value, time]) => newStamp(value, time);
1808
+ const newStamp = (value, time) => (time ? [value, time] : [value]);
1809
+ const getStampHash = (stamp) => stamp[2];
1810
+ const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
1811
+ const replaceTimeHash = (oldTime, newTime) =>
1812
+ newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
1813
+ const getLatestTime = (time1, time2) =>
1814
+ /* istanbul ignore next */
1815
+ ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
1816
+ const stampUpdate = (stamp, hash, time) => {
1817
+ stamp[2] = hash >>> 0;
1818
+ if (time > stamp[1]) {
1819
+ stamp[1] = time;
1820
+ }
1821
+ };
1822
+ const stampNewObj = (time = EMPTY_STRING) => newStamp(objNew(), time);
1823
+ const stampNewMap = (time = EMPTY_STRING) => [mapNew(), time, 0];
1824
+ const stampMapToObjWithHash = (
1825
+ [map, time, hash],
1826
+ mapper = stampCloneWithHash,
1827
+ ) => [mapToObj(map, mapper), time, hash];
1828
+ const stampMapToObjWithoutHash = (
1829
+ [map, time],
1830
+ mapper = stampCloneWithoutHash,
1831
+ ) => newStamp(mapToObj(map, mapper), time);
1832
+ const stampValidate = (stamp, validateThing) =>
1833
+ isArray(stamp) &&
1834
+ size(stamp) == 3 &&
1835
+ isString(stamp[1]) &&
1836
+ getTypeOf(stamp[2]) == NUMBER &&
1837
+ isFiniteNumber(stamp[2]) &&
1838
+ validateThing(stamp[0]);
1839
+
2238
1840
  const pairNew = (value) => [value, value];
2239
1841
  const pairCollSize2 = (pair, func = collSize2) => func(pair[0]) + func(pair[1]);
2240
1842
  const pairNewMap = () => [mapNew(), mapNew()];
@@ -4126,11 +3728,7 @@ const createMergeableStore = (uniqueId) => {
4126
3728
  return objFreeze(mergeableStore);
4127
3729
  };
4128
3730
 
4129
- exports.Message = Message;
4130
- exports.Persists = Persists;
4131
3731
  exports.createCheckpoints = createCheckpoints;
4132
- exports.createCustomPersister = createCustomPersister;
4133
- exports.createCustomSynchronizer = createCustomSynchronizer;
4134
3732
  exports.createIndexes = createIndexes;
4135
3733
  exports.createMergeableStore = createMergeableStore;
4136
3734
  exports.createMetrics = createMetrics;
@@ -226,6 +226,7 @@ const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
226
226
  const replaceTimeHash = (oldTime, newTime) =>
227
227
  newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
228
228
  const getLatestTime = (time1, time2) =>
229
+ /* istanbul ignore next */
229
230
  ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
230
231
  const stampUpdate = (stamp, hash, time) => {
231
232
  stamp[2] = hash >>> 0;
@@ -226,6 +226,7 @@ const hashIdAndHash = (id, hash) => getHash(id + ':' + hash);
226
226
  const replaceTimeHash = (oldTime, newTime) =>
227
227
  newTime > oldTime ? (oldTime ? getHash(oldTime) : 0) ^ getHash(newTime) : 0;
228
228
  const getLatestTime = (time1, time2) =>
229
+ /* istanbul ignore next */
229
230
  ((time1 ?? '') > (time2 ?? '') ? time1 : time2) ?? '';
230
231
  const stampUpdate = (stamp, hash, time) => {
231
232
  stamp[2] = hash >>> 0;