tinybase 5.2.0-beta.2 → 5.2.0-beta.3

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 (724) hide show
  1. package/@types/common/index.d.cts +34 -2
  2. package/@types/common/index.d.ts +34 -2
  3. package/@types/common/with-schemas/index.d.cts +34 -2
  4. package/@types/common/with-schemas/index.d.ts +34 -2
  5. package/@types/synchronizers/synchronizer-local/index.d.cts +1 -0
  6. package/@types/synchronizers/synchronizer-local/index.d.ts +1 -0
  7. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +1 -0
  8. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +1 -0
  9. package/checkpoints/index.js +9 -7
  10. package/checkpoints/with-schemas/index.js +9 -7
  11. package/cjs/checkpoints/index.cjs +9 -7
  12. package/cjs/checkpoints/with-schemas/index.cjs +9 -7
  13. package/cjs/es6/checkpoints/index.cjs +15 -13
  14. package/cjs/es6/checkpoints/with-schemas/index.cjs +15 -13
  15. package/cjs/es6/index.cjs +28 -20
  16. package/cjs/es6/indexes/index.cjs +15 -13
  17. package/cjs/es6/indexes/with-schemas/index.cjs +15 -13
  18. package/cjs/es6/mergeable-store/index.cjs +23 -17
  19. package/cjs/es6/mergeable-store/with-schemas/index.cjs +23 -17
  20. package/cjs/es6/metrics/index.cjs +15 -13
  21. package/cjs/es6/metrics/with-schemas/index.cjs +15 -13
  22. package/cjs/es6/min/index.cjs +1 -1
  23. package/cjs/es6/min/index.cjs.gz +0 -0
  24. package/cjs/es6/min/mergeable-store/index.cjs +1 -1
  25. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  26. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
  27. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  28. package/cjs/es6/min/persisters/persister-automerge/index.cjs +1 -1
  29. package/cjs/es6/min/persisters/persister-automerge/index.cjs.gz +0 -0
  30. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  31. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  32. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  33. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  34. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  35. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  36. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  37. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  38. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  39. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  40. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  41. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  42. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  43. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  44. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  45. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  46. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  47. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  48. package/cjs/es6/min/persisters/persister-postgres/index.cjs +1 -1
  49. package/cjs/es6/min/persisters/persister-postgres/index.cjs.gz +0 -0
  50. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  51. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  52. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  53. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  54. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  55. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  56. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  57. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  58. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  59. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  60. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/store/index.cjs +1 -1
  65. package/cjs/es6/min/store/index.cjs.gz +0 -0
  66. package/cjs/es6/min/store/with-schemas/index.cjs +1 -1
  67. package/cjs/es6/min/store/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  69. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  70. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  71. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/es6/min/ui-react-inspector/index.cjs +1 -1
  73. package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
  74. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  77. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  78. package/cjs/es6/persisters/index.cjs +5 -3
  79. package/cjs/es6/persisters/persister-automerge/index.cjs +7 -4
  80. package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +7 -4
  81. package/cjs/es6/persisters/persister-browser/index.cjs +5 -3
  82. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +5 -3
  83. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +82 -45
  84. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +82 -45
  85. package/cjs/es6/persisters/persister-electric-sql/index.cjs +82 -45
  86. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +82 -45
  87. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +82 -45
  88. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +82 -45
  89. package/cjs/es6/persisters/persister-file/index.cjs +5 -3
  90. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +5 -3
  91. package/cjs/es6/persisters/persister-indexed-db/index.cjs +5 -3
  92. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +5 -3
  93. package/cjs/es6/persisters/persister-libsql/index.cjs +82 -45
  94. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +82 -45
  95. package/cjs/es6/persisters/persister-partykit-client/index.cjs +5 -3
  96. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +5 -3
  97. package/cjs/es6/persisters/persister-partykit-server/index.cjs +36 -22
  98. package/cjs/es6/persisters/persister-partykit-server/with-schemas/index.cjs +36 -22
  99. package/cjs/es6/persisters/persister-postgres/index.cjs +108 -37
  100. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +108 -37
  101. package/cjs/es6/persisters/persister-powersync/index.cjs +82 -45
  102. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +82 -45
  103. package/cjs/es6/persisters/persister-remote/index.cjs +5 -3
  104. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +5 -3
  105. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +82 -45
  106. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +82 -45
  107. package/cjs/es6/persisters/persister-sqlite3/index.cjs +82 -45
  108. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +82 -45
  109. package/cjs/es6/persisters/persister-yjs/index.cjs +5 -3
  110. package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +5 -3
  111. package/cjs/es6/persisters/with-schemas/index.cjs +5 -3
  112. package/cjs/es6/relationships/index.cjs +15 -13
  113. package/cjs/es6/relationships/with-schemas/index.cjs +15 -13
  114. package/cjs/es6/store/index.cjs +23 -17
  115. package/cjs/es6/store/with-schemas/index.cjs +23 -17
  116. package/cjs/es6/synchronizers/index.cjs +5 -3
  117. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -3
  118. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -3
  119. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +5 -3
  120. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -3
  121. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +8 -6
  122. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +8 -6
  123. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +79 -75
  124. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +79 -75
  125. package/cjs/es6/synchronizers/with-schemas/index.cjs +5 -3
  126. package/cjs/es6/ui-react-inspector/index.cjs +30 -21
  127. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +30 -21
  128. package/cjs/es6/with-schemas/index.cjs +28 -20
  129. package/cjs/index.cjs +22 -12
  130. package/cjs/indexes/index.cjs +9 -7
  131. package/cjs/indexes/with-schemas/index.cjs +9 -7
  132. package/cjs/mergeable-store/index.cjs +17 -9
  133. package/cjs/mergeable-store/with-schemas/index.cjs +17 -9
  134. package/cjs/metrics/index.cjs +9 -7
  135. package/cjs/metrics/with-schemas/index.cjs +9 -7
  136. package/cjs/min/index.cjs +1 -1
  137. package/cjs/min/index.cjs.gz +0 -0
  138. package/cjs/min/mergeable-store/index.cjs +1 -1
  139. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  140. package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
  141. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  142. package/cjs/min/persisters/persister-automerge/index.cjs +1 -1
  143. package/cjs/min/persisters/persister-automerge/index.cjs.gz +0 -0
  144. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  145. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  146. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  147. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  148. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  149. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  150. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  151. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  152. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  153. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  154. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  155. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  156. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  157. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  158. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  159. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  160. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  161. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  162. package/cjs/min/persisters/persister-postgres/index.cjs +1 -1
  163. package/cjs/min/persisters/persister-postgres/index.cjs.gz +0 -0
  164. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  165. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  166. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  167. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  168. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  169. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  170. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  171. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  172. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  173. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  174. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  175. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  176. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  177. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  178. package/cjs/min/store/index.cjs +1 -1
  179. package/cjs/min/store/index.cjs.gz +0 -0
  180. package/cjs/min/store/with-schemas/index.cjs +1 -1
  181. package/cjs/min/store/with-schemas/index.cjs.gz +0 -0
  182. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  183. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  184. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  185. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  186. package/cjs/min/tools/index.cjs +1 -1
  187. package/cjs/min/tools/index.cjs.gz +0 -0
  188. package/cjs/min/tools/with-schemas/index.cjs +1 -1
  189. package/cjs/min/tools/with-schemas/index.cjs.gz +0 -0
  190. package/cjs/min/ui-react-inspector/index.cjs +1 -1
  191. package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
  192. package/cjs/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  193. package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  194. package/cjs/min/with-schemas/index.cjs +1 -1
  195. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  196. package/cjs/persisters/index.cjs +5 -3
  197. package/cjs/persisters/persister-automerge/index.cjs +7 -4
  198. package/cjs/persisters/persister-automerge/with-schemas/index.cjs +7 -4
  199. package/cjs/persisters/persister-browser/index.cjs +5 -3
  200. package/cjs/persisters/persister-browser/with-schemas/index.cjs +5 -3
  201. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +52 -37
  202. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +52 -37
  203. package/cjs/persisters/persister-electric-sql/index.cjs +52 -37
  204. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +52 -37
  205. package/cjs/persisters/persister-expo-sqlite/index.cjs +52 -37
  206. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +52 -37
  207. package/cjs/persisters/persister-file/index.cjs +5 -3
  208. package/cjs/persisters/persister-file/with-schemas/index.cjs +5 -3
  209. package/cjs/persisters/persister-indexed-db/index.cjs +5 -3
  210. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +5 -3
  211. package/cjs/persisters/persister-libsql/index.cjs +52 -37
  212. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +52 -37
  213. package/cjs/persisters/persister-partykit-client/index.cjs +5 -3
  214. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +5 -3
  215. package/cjs/persisters/persister-partykit-server/index.cjs +36 -25
  216. package/cjs/persisters/persister-partykit-server/with-schemas/index.cjs +36 -25
  217. package/cjs/persisters/persister-postgres/index.cjs +77 -31
  218. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +77 -31
  219. package/cjs/persisters/persister-powersync/index.cjs +52 -37
  220. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +52 -37
  221. package/cjs/persisters/persister-remote/index.cjs +5 -3
  222. package/cjs/persisters/persister-remote/with-schemas/index.cjs +5 -3
  223. package/cjs/persisters/persister-sqlite-wasm/index.cjs +52 -37
  224. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +52 -37
  225. package/cjs/persisters/persister-sqlite3/index.cjs +52 -37
  226. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +52 -37
  227. package/cjs/persisters/persister-yjs/index.cjs +5 -3
  228. package/cjs/persisters/persister-yjs/with-schemas/index.cjs +5 -3
  229. package/cjs/persisters/with-schemas/index.cjs +5 -3
  230. package/cjs/relationships/index.cjs +9 -7
  231. package/cjs/relationships/with-schemas/index.cjs +9 -7
  232. package/cjs/store/index.cjs +17 -9
  233. package/cjs/store/with-schemas/index.cjs +17 -9
  234. package/cjs/synchronizers/index.cjs +5 -3
  235. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -3
  236. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -3
  237. package/cjs/synchronizers/synchronizer-local/index.cjs +5 -3
  238. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -3
  239. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +8 -6
  240. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +8 -6
  241. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +30 -23
  242. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +30 -23
  243. package/cjs/synchronizers/with-schemas/index.cjs +5 -3
  244. package/cjs/tools/index.cjs +1 -1
  245. package/cjs/tools/with-schemas/index.cjs +1 -1
  246. package/cjs/ui-react-inspector/index.cjs +24 -13
  247. package/cjs/ui-react-inspector/with-schemas/index.cjs +24 -13
  248. package/cjs/with-schemas/index.cjs +22 -12
  249. package/es6/checkpoints/index.js +15 -13
  250. package/es6/checkpoints/with-schemas/index.js +15 -13
  251. package/es6/index.js +28 -20
  252. package/es6/indexes/index.js +15 -13
  253. package/es6/indexes/with-schemas/index.js +15 -13
  254. package/es6/mergeable-store/index.js +23 -17
  255. package/es6/mergeable-store/with-schemas/index.js +23 -17
  256. package/es6/metrics/index.js +15 -13
  257. package/es6/metrics/with-schemas/index.js +15 -13
  258. package/es6/min/index.js +1 -1
  259. package/es6/min/index.js.gz +0 -0
  260. package/es6/min/mergeable-store/index.js +1 -1
  261. package/es6/min/mergeable-store/index.js.gz +0 -0
  262. package/es6/min/mergeable-store/with-schemas/index.js +1 -1
  263. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  264. package/es6/min/persisters/persister-automerge/index.js +1 -1
  265. package/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  266. package/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  267. package/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  268. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  269. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  270. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  271. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  272. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  273. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  274. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  275. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  276. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  277. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  278. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  279. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  280. package/es6/min/persisters/persister-libsql/index.js +1 -1
  281. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  282. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  283. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  284. package/es6/min/persisters/persister-postgres/index.js +1 -1
  285. package/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  286. package/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  287. package/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  288. package/es6/min/persisters/persister-powersync/index.js +1 -1
  289. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  290. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  291. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  292. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  293. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  294. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  295. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  296. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  297. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  298. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  299. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  300. package/es6/min/store/index.js +1 -1
  301. package/es6/min/store/index.js.gz +0 -0
  302. package/es6/min/store/with-schemas/index.js +1 -1
  303. package/es6/min/store/with-schemas/index.js.gz +0 -0
  304. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  305. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  306. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  307. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  308. package/es6/min/ui-react-inspector/index.js +1 -1
  309. package/es6/min/ui-react-inspector/index.js.gz +0 -0
  310. package/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  311. package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  312. package/es6/min/with-schemas/index.js +1 -1
  313. package/es6/min/with-schemas/index.js.gz +0 -0
  314. package/es6/persisters/index.js +5 -3
  315. package/es6/persisters/persister-automerge/index.js +7 -4
  316. package/es6/persisters/persister-automerge/with-schemas/index.js +7 -4
  317. package/es6/persisters/persister-browser/index.js +5 -3
  318. package/es6/persisters/persister-browser/with-schemas/index.js +5 -3
  319. package/es6/persisters/persister-cr-sqlite-wasm/index.js +82 -45
  320. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +82 -45
  321. package/es6/persisters/persister-electric-sql/index.js +82 -45
  322. package/es6/persisters/persister-electric-sql/with-schemas/index.js +82 -45
  323. package/es6/persisters/persister-expo-sqlite/index.js +82 -45
  324. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +82 -45
  325. package/es6/persisters/persister-file/index.js +5 -3
  326. package/es6/persisters/persister-file/with-schemas/index.js +5 -3
  327. package/es6/persisters/persister-indexed-db/index.js +5 -3
  328. package/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  329. package/es6/persisters/persister-libsql/index.js +82 -45
  330. package/es6/persisters/persister-libsql/with-schemas/index.js +82 -45
  331. package/es6/persisters/persister-partykit-client/index.js +5 -3
  332. package/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  333. package/es6/persisters/persister-partykit-server/index.js +36 -22
  334. package/es6/persisters/persister-partykit-server/with-schemas/index.js +36 -22
  335. package/es6/persisters/persister-postgres/index.js +108 -37
  336. package/es6/persisters/persister-postgres/with-schemas/index.js +108 -37
  337. package/es6/persisters/persister-powersync/index.js +82 -45
  338. package/es6/persisters/persister-powersync/with-schemas/index.js +82 -45
  339. package/es6/persisters/persister-remote/index.js +5 -3
  340. package/es6/persisters/persister-remote/with-schemas/index.js +5 -3
  341. package/es6/persisters/persister-sqlite-wasm/index.js +82 -45
  342. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +82 -45
  343. package/es6/persisters/persister-sqlite3/index.js +82 -45
  344. package/es6/persisters/persister-sqlite3/with-schemas/index.js +82 -45
  345. package/es6/persisters/persister-yjs/index.js +5 -3
  346. package/es6/persisters/persister-yjs/with-schemas/index.js +5 -3
  347. package/es6/persisters/with-schemas/index.js +5 -3
  348. package/es6/relationships/index.js +15 -13
  349. package/es6/relationships/with-schemas/index.js +15 -13
  350. package/es6/store/index.js +23 -17
  351. package/es6/store/with-schemas/index.js +23 -17
  352. package/es6/synchronizers/index.js +5 -3
  353. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  354. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  355. package/es6/synchronizers/synchronizer-local/index.js +5 -3
  356. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  357. package/es6/synchronizers/synchronizer-ws-client/index.js +8 -6
  358. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  359. package/es6/synchronizers/synchronizer-ws-server/index.js +79 -75
  360. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +79 -75
  361. package/es6/synchronizers/with-schemas/index.js +5 -3
  362. package/es6/ui-react-inspector/index.js +30 -21
  363. package/es6/ui-react-inspector/with-schemas/index.js +30 -21
  364. package/es6/with-schemas/index.js +28 -20
  365. package/index.js +22 -12
  366. package/indexes/index.js +9 -7
  367. package/indexes/with-schemas/index.js +9 -7
  368. package/mergeable-store/index.js +17 -9
  369. package/mergeable-store/with-schemas/index.js +17 -9
  370. package/metrics/index.js +9 -7
  371. package/metrics/with-schemas/index.js +9 -7
  372. package/min/index.js +1 -1
  373. package/min/index.js.gz +0 -0
  374. package/min/mergeable-store/index.js +1 -1
  375. package/min/mergeable-store/index.js.gz +0 -0
  376. package/min/mergeable-store/with-schemas/index.js +1 -1
  377. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  378. package/min/persisters/persister-automerge/index.js +1 -1
  379. package/min/persisters/persister-automerge/index.js.gz +0 -0
  380. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  381. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  382. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  383. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  384. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  385. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  386. package/min/persisters/persister-electric-sql/index.js +1 -1
  387. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  388. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  389. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  390. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  391. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  392. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  393. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  394. package/min/persisters/persister-libsql/index.js +1 -1
  395. package/min/persisters/persister-libsql/index.js.gz +0 -0
  396. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  397. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  398. package/min/persisters/persister-postgres/index.js +1 -1
  399. package/min/persisters/persister-postgres/index.js.gz +0 -0
  400. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  401. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  402. package/min/persisters/persister-powersync/index.js +1 -1
  403. package/min/persisters/persister-powersync/index.js.gz +0 -0
  404. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  405. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  406. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  407. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  408. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  409. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  410. package/min/persisters/persister-sqlite3/index.js +1 -1
  411. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  412. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  413. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  414. package/min/store/index.js +1 -1
  415. package/min/store/index.js.gz +0 -0
  416. package/min/store/with-schemas/index.js +1 -1
  417. package/min/store/with-schemas/index.js.gz +0 -0
  418. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  419. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  420. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  421. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  422. package/min/tools/index.js +1 -1
  423. package/min/tools/index.js.gz +0 -0
  424. package/min/tools/with-schemas/index.js +1 -1
  425. package/min/tools/with-schemas/index.js.gz +0 -0
  426. package/min/ui-react-inspector/index.js +1 -1
  427. package/min/ui-react-inspector/index.js.gz +0 -0
  428. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  429. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  430. package/min/with-schemas/index.js +1 -1
  431. package/min/with-schemas/index.js.gz +0 -0
  432. package/package.json +3 -3
  433. package/persisters/index.js +5 -3
  434. package/persisters/persister-automerge/index.js +7 -4
  435. package/persisters/persister-automerge/with-schemas/index.js +7 -4
  436. package/persisters/persister-browser/index.js +5 -3
  437. package/persisters/persister-browser/with-schemas/index.js +5 -3
  438. package/persisters/persister-cr-sqlite-wasm/index.js +52 -37
  439. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +52 -37
  440. package/persisters/persister-electric-sql/index.js +52 -37
  441. package/persisters/persister-electric-sql/with-schemas/index.js +52 -37
  442. package/persisters/persister-expo-sqlite/index.js +52 -37
  443. package/persisters/persister-expo-sqlite/with-schemas/index.js +52 -37
  444. package/persisters/persister-file/index.js +5 -3
  445. package/persisters/persister-file/with-schemas/index.js +5 -3
  446. package/persisters/persister-indexed-db/index.js +5 -3
  447. package/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  448. package/persisters/persister-libsql/index.js +52 -37
  449. package/persisters/persister-libsql/with-schemas/index.js +52 -37
  450. package/persisters/persister-partykit-client/index.js +5 -3
  451. package/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  452. package/persisters/persister-partykit-server/index.js +36 -25
  453. package/persisters/persister-partykit-server/with-schemas/index.js +36 -25
  454. package/persisters/persister-postgres/index.js +77 -31
  455. package/persisters/persister-postgres/with-schemas/index.js +77 -31
  456. package/persisters/persister-powersync/index.js +52 -37
  457. package/persisters/persister-powersync/with-schemas/index.js +52 -37
  458. package/persisters/persister-remote/index.js +5 -3
  459. package/persisters/persister-remote/with-schemas/index.js +5 -3
  460. package/persisters/persister-sqlite-wasm/index.js +52 -37
  461. package/persisters/persister-sqlite-wasm/with-schemas/index.js +52 -37
  462. package/persisters/persister-sqlite3/index.js +52 -37
  463. package/persisters/persister-sqlite3/with-schemas/index.js +52 -37
  464. package/persisters/persister-yjs/index.js +5 -3
  465. package/persisters/persister-yjs/with-schemas/index.js +5 -3
  466. package/persisters/with-schemas/index.js +5 -3
  467. package/readme.md +2 -2
  468. package/relationships/index.js +9 -7
  469. package/relationships/with-schemas/index.js +9 -7
  470. package/store/index.js +17 -9
  471. package/store/with-schemas/index.js +17 -9
  472. package/synchronizers/index.js +5 -3
  473. package/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  474. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  475. package/synchronizers/synchronizer-local/index.js +5 -3
  476. package/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  477. package/synchronizers/synchronizer-ws-client/index.js +8 -6
  478. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  479. package/synchronizers/synchronizer-ws-server/index.js +30 -23
  480. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +30 -23
  481. package/synchronizers/with-schemas/index.js +5 -3
  482. package/tools/index.js +1 -1
  483. package/tools/with-schemas/index.js +1 -1
  484. package/ui-react-inspector/index.js +24 -13
  485. package/ui-react-inspector/with-schemas/index.js +24 -13
  486. package/umd/checkpoints/index.js +9 -7
  487. package/umd/checkpoints/with-schemas/index.js +9 -7
  488. package/umd/es6/checkpoints/index.js +15 -13
  489. package/umd/es6/checkpoints/with-schemas/index.js +15 -13
  490. package/umd/es6/index.js +28 -20
  491. package/umd/es6/indexes/index.js +15 -13
  492. package/umd/es6/indexes/with-schemas/index.js +15 -13
  493. package/umd/es6/mergeable-store/index.js +23 -17
  494. package/umd/es6/mergeable-store/with-schemas/index.js +23 -17
  495. package/umd/es6/metrics/index.js +15 -13
  496. package/umd/es6/metrics/with-schemas/index.js +15 -13
  497. package/umd/es6/min/index.js +1 -1
  498. package/umd/es6/min/index.js.gz +0 -0
  499. package/umd/es6/min/mergeable-store/index.js +1 -1
  500. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  501. package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
  502. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  503. package/umd/es6/min/persisters/persister-automerge/index.js +1 -1
  504. package/umd/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  505. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  506. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  507. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  508. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  509. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  510. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  511. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  512. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  513. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  514. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  515. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  516. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  517. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  518. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  519. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  520. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  521. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  522. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  523. package/umd/es6/min/persisters/persister-postgres/index.js +1 -1
  524. package/umd/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  525. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  526. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  527. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  528. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  529. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  530. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  531. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  532. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  533. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  534. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  535. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  536. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  537. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  538. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  539. package/umd/es6/min/store/index.js +1 -1
  540. package/umd/es6/min/store/index.js.gz +0 -0
  541. package/umd/es6/min/store/with-schemas/index.js +1 -1
  542. package/umd/es6/min/store/with-schemas/index.js.gz +0 -0
  543. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  544. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  545. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  546. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  547. package/umd/es6/min/ui-react-inspector/index.js +1 -1
  548. package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
  549. package/umd/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  550. package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  551. package/umd/es6/min/with-schemas/index.js +1 -1
  552. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  553. package/umd/es6/persisters/index.js +5 -3
  554. package/umd/es6/persisters/persister-automerge/index.js +7 -4
  555. package/umd/es6/persisters/persister-automerge/with-schemas/index.js +7 -4
  556. package/umd/es6/persisters/persister-browser/index.js +5 -3
  557. package/umd/es6/persisters/persister-browser/with-schemas/index.js +5 -3
  558. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +86 -47
  559. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +86 -47
  560. package/umd/es6/persisters/persister-electric-sql/index.js +86 -47
  561. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +86 -47
  562. package/umd/es6/persisters/persister-expo-sqlite/index.js +86 -47
  563. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +86 -47
  564. package/umd/es6/persisters/persister-file/index.js +5 -3
  565. package/umd/es6/persisters/persister-file/with-schemas/index.js +5 -3
  566. package/umd/es6/persisters/persister-indexed-db/index.js +5 -3
  567. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  568. package/umd/es6/persisters/persister-libsql/index.js +86 -47
  569. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +86 -47
  570. package/umd/es6/persisters/persister-partykit-client/index.js +5 -3
  571. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  572. package/umd/es6/persisters/persister-partykit-server/index.js +36 -22
  573. package/umd/es6/persisters/persister-partykit-server/with-schemas/index.js +36 -22
  574. package/umd/es6/persisters/persister-postgres/index.js +108 -37
  575. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +108 -37
  576. package/umd/es6/persisters/persister-powersync/index.js +86 -47
  577. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +86 -47
  578. package/umd/es6/persisters/persister-remote/index.js +5 -3
  579. package/umd/es6/persisters/persister-remote/with-schemas/index.js +5 -3
  580. package/umd/es6/persisters/persister-sqlite-wasm/index.js +86 -47
  581. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +86 -47
  582. package/umd/es6/persisters/persister-sqlite3/index.js +86 -47
  583. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +86 -47
  584. package/umd/es6/persisters/persister-yjs/index.js +5 -3
  585. package/umd/es6/persisters/persister-yjs/with-schemas/index.js +5 -3
  586. package/umd/es6/persisters/with-schemas/index.js +5 -3
  587. package/umd/es6/relationships/index.js +15 -13
  588. package/umd/es6/relationships/with-schemas/index.js +15 -13
  589. package/umd/es6/store/index.js +23 -17
  590. package/umd/es6/store/with-schemas/index.js +23 -17
  591. package/umd/es6/synchronizers/index.js +5 -3
  592. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  593. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  594. package/umd/es6/synchronizers/synchronizer-local/index.js +5 -3
  595. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  596. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +8 -6
  597. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  598. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +79 -77
  599. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +79 -77
  600. package/umd/es6/synchronizers/with-schemas/index.js +5 -3
  601. package/umd/es6/ui-react-inspector/index.js +30 -21
  602. package/umd/es6/ui-react-inspector/with-schemas/index.js +30 -21
  603. package/umd/es6/with-schemas/index.js +28 -20
  604. package/umd/index.js +22 -12
  605. package/umd/indexes/index.js +9 -7
  606. package/umd/indexes/with-schemas/index.js +9 -7
  607. package/umd/mergeable-store/index.js +17 -9
  608. package/umd/mergeable-store/with-schemas/index.js +17 -9
  609. package/umd/metrics/index.js +9 -7
  610. package/umd/metrics/with-schemas/index.js +9 -7
  611. package/umd/min/index.js +1 -1
  612. package/umd/min/index.js.gz +0 -0
  613. package/umd/min/mergeable-store/index.js +1 -1
  614. package/umd/min/mergeable-store/index.js.gz +0 -0
  615. package/umd/min/mergeable-store/with-schemas/index.js +1 -1
  616. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  617. package/umd/min/persisters/persister-automerge/index.js +1 -1
  618. package/umd/min/persisters/persister-automerge/index.js.gz +0 -0
  619. package/umd/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  620. package/umd/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  621. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  622. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  623. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  624. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  625. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  626. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  627. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  628. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  629. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  630. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  631. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  632. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  633. package/umd/min/persisters/persister-libsql/index.js +1 -1
  634. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  635. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  636. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  637. package/umd/min/persisters/persister-postgres/index.js +1 -1
  638. package/umd/min/persisters/persister-postgres/index.js.gz +0 -0
  639. package/umd/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  640. package/umd/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  641. package/umd/min/persisters/persister-powersync/index.js +1 -1
  642. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  643. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  644. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  645. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  646. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  647. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  648. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  649. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  650. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  651. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  652. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  653. package/umd/min/store/index.js +1 -1
  654. package/umd/min/store/index.js.gz +0 -0
  655. package/umd/min/store/with-schemas/index.js +1 -1
  656. package/umd/min/store/with-schemas/index.js.gz +0 -0
  657. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  658. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  659. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  660. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  661. package/umd/min/tools/index.js +1 -1
  662. package/umd/min/tools/index.js.gz +0 -0
  663. package/umd/min/tools/with-schemas/index.js +1 -1
  664. package/umd/min/tools/with-schemas/index.js.gz +0 -0
  665. package/umd/min/ui-react-inspector/index.js +1 -1
  666. package/umd/min/ui-react-inspector/index.js.gz +0 -0
  667. package/umd/min/ui-react-inspector/with-schemas/index.js +1 -1
  668. package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  669. package/umd/min/with-schemas/index.js +1 -1
  670. package/umd/min/with-schemas/index.js.gz +0 -0
  671. package/umd/persisters/index.js +5 -3
  672. package/umd/persisters/persister-automerge/index.js +7 -4
  673. package/umd/persisters/persister-automerge/with-schemas/index.js +7 -4
  674. package/umd/persisters/persister-browser/index.js +5 -3
  675. package/umd/persisters/persister-browser/with-schemas/index.js +5 -3
  676. package/umd/persisters/persister-cr-sqlite-wasm/index.js +52 -37
  677. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +52 -37
  678. package/umd/persisters/persister-electric-sql/index.js +52 -37
  679. package/umd/persisters/persister-electric-sql/with-schemas/index.js +52 -37
  680. package/umd/persisters/persister-expo-sqlite/index.js +52 -37
  681. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +52 -37
  682. package/umd/persisters/persister-file/index.js +5 -3
  683. package/umd/persisters/persister-file/with-schemas/index.js +5 -3
  684. package/umd/persisters/persister-indexed-db/index.js +5 -3
  685. package/umd/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  686. package/umd/persisters/persister-libsql/index.js +52 -37
  687. package/umd/persisters/persister-libsql/with-schemas/index.js +52 -37
  688. package/umd/persisters/persister-partykit-client/index.js +5 -3
  689. package/umd/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  690. package/umd/persisters/persister-partykit-server/index.js +36 -25
  691. package/umd/persisters/persister-partykit-server/with-schemas/index.js +36 -25
  692. package/umd/persisters/persister-postgres/index.js +77 -31
  693. package/umd/persisters/persister-postgres/with-schemas/index.js +77 -31
  694. package/umd/persisters/persister-powersync/index.js +52 -37
  695. package/umd/persisters/persister-powersync/with-schemas/index.js +52 -37
  696. package/umd/persisters/persister-remote/index.js +5 -3
  697. package/umd/persisters/persister-remote/with-schemas/index.js +5 -3
  698. package/umd/persisters/persister-sqlite-wasm/index.js +52 -37
  699. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +52 -37
  700. package/umd/persisters/persister-sqlite3/index.js +52 -37
  701. package/umd/persisters/persister-sqlite3/with-schemas/index.js +52 -37
  702. package/umd/persisters/persister-yjs/index.js +5 -3
  703. package/umd/persisters/persister-yjs/with-schemas/index.js +5 -3
  704. package/umd/persisters/with-schemas/index.js +5 -3
  705. package/umd/relationships/index.js +9 -7
  706. package/umd/relationships/with-schemas/index.js +9 -7
  707. package/umd/store/index.js +17 -9
  708. package/umd/store/with-schemas/index.js +17 -9
  709. package/umd/synchronizers/index.js +5 -3
  710. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  711. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  712. package/umd/synchronizers/synchronizer-local/index.js +5 -3
  713. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  714. package/umd/synchronizers/synchronizer-ws-client/index.js +8 -6
  715. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  716. package/umd/synchronizers/synchronizer-ws-server/index.js +30 -23
  717. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +30 -23
  718. package/umd/synchronizers/with-schemas/index.js +5 -3
  719. package/umd/tools/index.js +1 -1
  720. package/umd/tools/with-schemas/index.js +1 -1
  721. package/umd/ui-react-inspector/index.js +24 -13
  722. package/umd/ui-react-inspector/with-schemas/index.js +24 -13
  723. package/umd/with-schemas/index.js +22 -12
  724. package/with-schemas/index.js +22 -12
@@ -153,20 +153,24 @@
153
153
  T,
154
154
  ...ids,
155
155
  );
156
- isUndefined(cell)
157
- ? !initialSave &&
158
- (await that.canDelCell(
159
- ...ids,
160
- requestOrConnection,
161
- )) &&
162
- arrayPush(keysToDel, key)
163
- : (await that.canSetCell(
164
- ...ids,
165
- cell,
166
- initialSave,
167
- requestOrConnection,
168
- await storage.get(key),
169
- )) && (keysToSet[key] = cell);
156
+ if (isUndefined(cell)) {
157
+ if (
158
+ !initialSave &&
159
+ (await that.canDelCell(...ids, requestOrConnection))
160
+ ) {
161
+ arrayPush(keysToDel, key);
162
+ }
163
+ } else if (
164
+ await that.canSetCell(
165
+ ...ids,
166
+ cell,
167
+ initialSave,
168
+ requestOrConnection,
169
+ await storage.get(key),
170
+ )
171
+ ) {
172
+ keysToSet[key] = cell;
173
+ }
170
174
  }),
171
175
  )),
172
176
  ),
@@ -176,17 +180,24 @@
176
180
  await promiseAll(
177
181
  objToArray(changes[1], async (value, valueId) => {
178
182
  const key = storagePrefix + V + valueId;
179
- isUndefined(value)
180
- ? !initialSave &&
181
- (await that.canDelValue(valueId, requestOrConnection)) &&
182
- arrayPush(keysToDel, key)
183
- : (await that.canSetValue(
184
- valueId,
185
- value,
186
- initialSave,
187
- requestOrConnection,
188
- await storage.get(key),
189
- )) && (keysToSet[key] = value);
183
+ if (isUndefined(value)) {
184
+ if (
185
+ !initialSave &&
186
+ (await that.canDelValue(valueId, requestOrConnection))
187
+ ) {
188
+ arrayPush(keysToDel, key);
189
+ }
190
+ } else if (
191
+ await that.canSetValue(
192
+ valueId,
193
+ value,
194
+ initialSave,
195
+ requestOrConnection,
196
+ await storage.get(key),
197
+ )
198
+ ) {
199
+ keysToSet[key] = value;
200
+ }
190
201
  }),
191
202
  );
192
203
  if (!arrayIsEmpty(keyPrefixesToDel)) {
@@ -153,20 +153,24 @@
153
153
  T,
154
154
  ...ids,
155
155
  );
156
- isUndefined(cell)
157
- ? !initialSave &&
158
- (await that.canDelCell(
159
- ...ids,
160
- requestOrConnection,
161
- )) &&
162
- arrayPush(keysToDel, key)
163
- : (await that.canSetCell(
164
- ...ids,
165
- cell,
166
- initialSave,
167
- requestOrConnection,
168
- await storage.get(key),
169
- )) && (keysToSet[key] = cell);
156
+ if (isUndefined(cell)) {
157
+ if (
158
+ !initialSave &&
159
+ (await that.canDelCell(...ids, requestOrConnection))
160
+ ) {
161
+ arrayPush(keysToDel, key);
162
+ }
163
+ } else if (
164
+ await that.canSetCell(
165
+ ...ids,
166
+ cell,
167
+ initialSave,
168
+ requestOrConnection,
169
+ await storage.get(key),
170
+ )
171
+ ) {
172
+ keysToSet[key] = cell;
173
+ }
170
174
  }),
171
175
  )),
172
176
  ),
@@ -176,17 +180,24 @@
176
180
  await promiseAll(
177
181
  objToArray(changes[1], async (value, valueId) => {
178
182
  const key = storagePrefix + V + valueId;
179
- isUndefined(value)
180
- ? !initialSave &&
181
- (await that.canDelValue(valueId, requestOrConnection)) &&
182
- arrayPush(keysToDel, key)
183
- : (await that.canSetValue(
184
- valueId,
185
- value,
186
- initialSave,
187
- requestOrConnection,
188
- await storage.get(key),
189
- )) && (keysToSet[key] = value);
183
+ if (isUndefined(value)) {
184
+ if (
185
+ !initialSave &&
186
+ (await that.canDelValue(valueId, requestOrConnection))
187
+ ) {
188
+ arrayPush(keysToDel, key);
189
+ }
190
+ } else if (
191
+ await that.canSetValue(
192
+ valueId,
193
+ value,
194
+ initialSave,
195
+ requestOrConnection,
196
+ await storage.get(key),
197
+ )
198
+ ) {
199
+ keysToSet[key] = value;
200
+ }
190
201
  }),
191
202
  );
192
203
  if (!arrayIsEmpty(keyPrefixesToDel)) {
@@ -15,6 +15,7 @@
15
15
  const COMMA = ',';
16
16
  const STRING = getTypeOf(EMPTY_STRING);
17
17
  const UNDEFINED = '\uFFFC';
18
+ const strMatch = (str, regex) => str?.match(regex);
18
19
 
19
20
  const promise = Promise;
20
21
  const isUndefined = (thing) => thing == void 0;
@@ -47,6 +48,13 @@
47
48
  const ALTER_TABLE = 'ALTER ' + TABLE;
48
49
  const DELETE_FROM = 'DELETE FROM';
49
50
  const SELECT_STAR_FROM = SELECT + '*FROM';
51
+ const getWrappedCommand = (rawCmd, onSqlCommand) =>
52
+ onSqlCommand
53
+ ? async (sql, args) => {
54
+ onSqlCommand(sql, args);
55
+ return await rawCmd(sql, args);
56
+ }
57
+ : rawCmd;
50
58
  const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
51
59
  const getPlaceholders = (array) =>
52
60
  arrayJoin(
@@ -192,9 +200,11 @@
192
200
  await schedule(async () => {
193
201
  try {
194
202
  const content = await getPersisted();
195
- isArray(content)
196
- ? setContentOrChanges(content)
197
- : errorNew(`Content is not an array ${content}`);
203
+ if (isArray(content)) {
204
+ setContentOrChanges(content);
205
+ } else {
206
+ errorNew(`Content is not an array ${content}`);
207
+ }
198
208
  } catch (error) {
199
209
  onIgnoredError?.(error);
200
210
  if (initialContent) {
@@ -853,12 +863,16 @@
853
863
  return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
854
864
  };
855
865
 
856
- const createPostgresqlPersister = (
866
+ const EVENT_CHANNEL = TINYBASE;
867
+ const EVENT_REGEX = /^([cd]:)(.+)/;
868
+ const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
869
+ const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
870
+ const createPostgreSqlPersister = (
857
871
  store,
858
872
  configOrStoreTableName,
859
- cmd,
860
- addUpdateListener,
861
- delUpdateListener,
873
+ rawCmd,
874
+ addNotifyListener,
875
+ delNotifyListener,
862
876
  onSqlCommand,
863
877
  onIgnoredError,
864
878
  destroy,
@@ -866,22 +880,59 @@
866
880
  thing,
867
881
  getThing = 'getDb',
868
882
  ) => {
883
+ const cmd = getWrappedCommand(rawCmd, onSqlCommand);
869
884
  const [isJson, , defaultedConfig, managedTableNamesSet] =
870
885
  getConfigStructures(configOrStoreTableName);
871
- const addPersisterListener = async (listener) =>
872
- await addUpdateListener(
873
- (tableName) => (managedTableNamesSet.has(tableName) ? listener() : 0),
874
- managedTableNamesSet,
886
+ const addDataTrigger = async (tableName) => {
887
+ await cmd(
888
+ // eslint-disable-next-line max-len
889
+ `CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
890
+ );
891
+ };
892
+ const addPersisterListener = async (listener) => {
893
+ await cmd(
894
+ // eslint-disable-next-line max-len
895
+ `CREATE OR REPLACE FUNCTION ${CREATE_TABLE_TRIGGER}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${EVENT_CHANNEL}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`,
875
896
  );
876
- const delPersisterListener = delUpdateListener;
897
+ try {
898
+ await cmd(
899
+ // eslint-disable-next-line max-len
900
+ `CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
901
+ );
902
+ } catch {}
903
+ await cmd(
904
+ // eslint-disable-next-line max-len
905
+ `CREATE OR REPLACE FUNCTION ${CHANGE_DATA_TRIGGER}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${EVENT_CHANNEL}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`,
906
+ );
907
+ await promiseAll(
908
+ arrayMap(collValues(managedTableNamesSet), async (tableName) => {
909
+ await cmd(
910
+ // eslint-disable-next-line max-len
911
+ `CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
912
+ );
913
+ await addDataTrigger(tableName);
914
+ }),
915
+ );
916
+ return await addNotifyListener(
917
+ EVENT_CHANNEL,
918
+ async (prefixAndTableName) =>
919
+ await ifNotUndefined(
920
+ strMatch(prefixAndTableName, EVENT_REGEX),
921
+ async ([, eventType, tableName]) => {
922
+ if (collHas(managedTableNamesSet, tableName)) {
923
+ if (eventType == 'c:') {
924
+ await addDataTrigger(tableName);
925
+ }
926
+ listener();
927
+ }
928
+ },
929
+ ),
930
+ );
931
+ };
932
+ const delPersisterListener = delNotifyListener;
877
933
  return (isJson ? createJsonPersister : createTabularPersister)(
878
934
  store,
879
- onSqlCommand
880
- ? async (sql, args) => {
881
- onSqlCommand(sql, args);
882
- return await cmd(sql, args);
883
- }
884
- : cmd,
935
+ cmd,
885
936
  addPersisterListener,
886
937
  delPersisterListener,
887
938
  onIgnoredError,
@@ -900,7 +951,6 @@
900
951
  );
901
952
  };
902
953
 
903
- const TRIGGER = TINYBASE;
904
954
  const createPostgresPersister = async (
905
955
  store,
906
956
  sql,
@@ -909,22 +959,18 @@
909
959
  onIgnoredError,
910
960
  ) => {
911
961
  const cmdSql = await sql.reserve?.();
912
- return createPostgresqlPersister(
962
+ return createPostgreSqlPersister(
913
963
  store,
914
964
  configOrStoreTableName,
915
965
  cmdSql?.unsafe,
916
- async (listener, managedTableNamesSet) => {
917
- const listen = await sql.listen(TRIGGER, (value) => listener?.(value));
918
- await sql`CREATE OR REPLACE FUNCTION ${sql(TRIGGER)}()RETURNS trigger AS $t$ BEGIN PERFORM pg_notify('${sql.unsafe(TRIGGER)}',TG_TABLE_NAME);RETURN NULL;END;$t$ LANGUAGE plpgsql;`;
919
- await promiseAll(
920
- arrayMap(collValues(managedTableNamesSet), async (tableName) => {
921
- await sql`CREATE TABLE IF NOT EXISTS ${sql(tableName)}("_id"text PRIMARY KEY)`;
922
- await sql`CREATE OR REPLACE TRIGGER ${sql(TRIGGER + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${sql(tableName)} EXECUTE FUNCTION ${sql(TRIGGER)}()`;
923
- }),
924
- );
925
- return listen;
966
+ async (channel, notifyListener) => sql.listen(channel, notifyListener),
967
+ async (notifyListener) => {
968
+ try {
969
+ await notifyListener.unlisten();
970
+ } catch (e) {
971
+ onIgnoredError?.(e);
972
+ }
926
973
  },
927
- (listen) => listen.unlisten().catch(() => 0),
928
974
  onSqlCommand,
929
975
  onIgnoredError,
930
976
  () => cmdSql?.release?.(),
@@ -15,6 +15,7 @@
15
15
  const COMMA = ',';
16
16
  const STRING = getTypeOf(EMPTY_STRING);
17
17
  const UNDEFINED = '\uFFFC';
18
+ const strMatch = (str, regex) => str?.match(regex);
18
19
 
19
20
  const promise = Promise;
20
21
  const isUndefined = (thing) => thing == void 0;
@@ -47,6 +48,13 @@
47
48
  const ALTER_TABLE = 'ALTER ' + TABLE;
48
49
  const DELETE_FROM = 'DELETE FROM';
49
50
  const SELECT_STAR_FROM = SELECT + '*FROM';
51
+ const getWrappedCommand = (rawCmd, onSqlCommand) =>
52
+ onSqlCommand
53
+ ? async (sql, args) => {
54
+ onSqlCommand(sql, args);
55
+ return await rawCmd(sql, args);
56
+ }
57
+ : rawCmd;
50
58
  const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
51
59
  const getPlaceholders = (array) =>
52
60
  arrayJoin(
@@ -192,9 +200,11 @@
192
200
  await schedule(async () => {
193
201
  try {
194
202
  const content = await getPersisted();
195
- isArray(content)
196
- ? setContentOrChanges(content)
197
- : errorNew(`Content is not an array ${content}`);
203
+ if (isArray(content)) {
204
+ setContentOrChanges(content);
205
+ } else {
206
+ errorNew(`Content is not an array ${content}`);
207
+ }
198
208
  } catch (error) {
199
209
  onIgnoredError?.(error);
200
210
  if (initialContent) {
@@ -853,12 +863,16 @@
853
863
  return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
854
864
  };
855
865
 
856
- const createPostgresqlPersister = (
866
+ const EVENT_CHANNEL = TINYBASE;
867
+ const EVENT_REGEX = /^([cd]:)(.+)/;
868
+ const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
869
+ const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
870
+ const createPostgreSqlPersister = (
857
871
  store,
858
872
  configOrStoreTableName,
859
- cmd,
860
- addUpdateListener,
861
- delUpdateListener,
873
+ rawCmd,
874
+ addNotifyListener,
875
+ delNotifyListener,
862
876
  onSqlCommand,
863
877
  onIgnoredError,
864
878
  destroy,
@@ -866,22 +880,59 @@
866
880
  thing,
867
881
  getThing = 'getDb',
868
882
  ) => {
883
+ const cmd = getWrappedCommand(rawCmd, onSqlCommand);
869
884
  const [isJson, , defaultedConfig, managedTableNamesSet] =
870
885
  getConfigStructures(configOrStoreTableName);
871
- const addPersisterListener = async (listener) =>
872
- await addUpdateListener(
873
- (tableName) => (managedTableNamesSet.has(tableName) ? listener() : 0),
874
- managedTableNamesSet,
886
+ const addDataTrigger = async (tableName) => {
887
+ await cmd(
888
+ // eslint-disable-next-line max-len
889
+ `CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
890
+ );
891
+ };
892
+ const addPersisterListener = async (listener) => {
893
+ await cmd(
894
+ // eslint-disable-next-line max-len
895
+ `CREATE OR REPLACE FUNCTION ${CREATE_TABLE_TRIGGER}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${EVENT_CHANNEL}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`,
875
896
  );
876
- const delPersisterListener = delUpdateListener;
897
+ try {
898
+ await cmd(
899
+ // eslint-disable-next-line max-len
900
+ `CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
901
+ );
902
+ } catch {}
903
+ await cmd(
904
+ // eslint-disable-next-line max-len
905
+ `CREATE OR REPLACE FUNCTION ${CHANGE_DATA_TRIGGER}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${EVENT_CHANNEL}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`,
906
+ );
907
+ await promiseAll(
908
+ arrayMap(collValues(managedTableNamesSet), async (tableName) => {
909
+ await cmd(
910
+ // eslint-disable-next-line max-len
911
+ `CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
912
+ );
913
+ await addDataTrigger(tableName);
914
+ }),
915
+ );
916
+ return await addNotifyListener(
917
+ EVENT_CHANNEL,
918
+ async (prefixAndTableName) =>
919
+ await ifNotUndefined(
920
+ strMatch(prefixAndTableName, EVENT_REGEX),
921
+ async ([, eventType, tableName]) => {
922
+ if (collHas(managedTableNamesSet, tableName)) {
923
+ if (eventType == 'c:') {
924
+ await addDataTrigger(tableName);
925
+ }
926
+ listener();
927
+ }
928
+ },
929
+ ),
930
+ );
931
+ };
932
+ const delPersisterListener = delNotifyListener;
877
933
  return (isJson ? createJsonPersister : createTabularPersister)(
878
934
  store,
879
- onSqlCommand
880
- ? async (sql, args) => {
881
- onSqlCommand(sql, args);
882
- return await cmd(sql, args);
883
- }
884
- : cmd,
935
+ cmd,
885
936
  addPersisterListener,
886
937
  delPersisterListener,
887
938
  onIgnoredError,
@@ -900,7 +951,6 @@
900
951
  );
901
952
  };
902
953
 
903
- const TRIGGER = TINYBASE;
904
954
  const createPostgresPersister = async (
905
955
  store,
906
956
  sql,
@@ -909,22 +959,18 @@
909
959
  onIgnoredError,
910
960
  ) => {
911
961
  const cmdSql = await sql.reserve?.();
912
- return createPostgresqlPersister(
962
+ return createPostgreSqlPersister(
913
963
  store,
914
964
  configOrStoreTableName,
915
965
  cmdSql?.unsafe,
916
- async (listener, managedTableNamesSet) => {
917
- const listen = await sql.listen(TRIGGER, (value) => listener?.(value));
918
- await sql`CREATE OR REPLACE FUNCTION ${sql(TRIGGER)}()RETURNS trigger AS $t$ BEGIN PERFORM pg_notify('${sql.unsafe(TRIGGER)}',TG_TABLE_NAME);RETURN NULL;END;$t$ LANGUAGE plpgsql;`;
919
- await promiseAll(
920
- arrayMap(collValues(managedTableNamesSet), async (tableName) => {
921
- await sql`CREATE TABLE IF NOT EXISTS ${sql(tableName)}("_id"text PRIMARY KEY)`;
922
- await sql`CREATE OR REPLACE TRIGGER ${sql(TRIGGER + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${sql(tableName)} EXECUTE FUNCTION ${sql(TRIGGER)}()`;
923
- }),
924
- );
925
- return listen;
966
+ async (channel, notifyListener) => sql.listen(channel, notifyListener),
967
+ async (notifyListener) => {
968
+ try {
969
+ await notifyListener.unlisten();
970
+ } catch (e) {
971
+ onIgnoredError?.(e);
972
+ }
926
973
  },
927
- (listen) => listen.unlisten().catch(() => 0),
928
974
  onSqlCommand,
929
975
  onIgnoredError,
930
976
  () => cmdSql?.release?.(),
@@ -18,7 +18,6 @@
18
18
 
19
19
  const promise = Promise;
20
20
  const startInterval = (callback, sec, immediate) => {
21
- callback();
22
21
  return setInterval(callback, sec * 1e3);
23
22
  };
24
23
  const stopInterval = clearInterval;
@@ -57,6 +56,13 @@
57
56
  const SCHEMA_VERSION = 'schema_version';
58
57
  const FROM = 'FROM ';
59
58
  const PRAGMA_TABLE = 'pragma_table_';
59
+ const getWrappedCommand = (rawCmd, onSqlCommand) =>
60
+ onSqlCommand
61
+ ? async (sql, args) => {
62
+ onSqlCommand(sql, args);
63
+ return await rawCmd(sql, args);
64
+ }
65
+ : rawCmd;
60
66
  const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
61
67
  const getPlaceholders = (array) =>
62
68
  arrayJoin(
@@ -202,9 +208,11 @@
202
208
  await schedule(async () => {
203
209
  try {
204
210
  const content = await getPersisted();
205
- isArray(content)
206
- ? setContentOrChanges(content)
207
- : errorNew(`Content is not an array ${content}`);
211
+ if (isArray(content)) {
212
+ setContentOrChanges(content);
213
+ } else {
214
+ errorNew(`Content is not an array ${content}`);
215
+ }
208
216
  } catch (error) {
209
217
  onIgnoredError?.(error);
210
218
  if (initialContent) {
@@ -866,7 +874,7 @@
866
874
  const createSqlitePersister = (
867
875
  store,
868
876
  configOrStoreTableName,
869
- cmd,
877
+ rawCmd,
870
878
  addUpdateListener,
871
879
  delUpdateListener,
872
880
  onSqlCommand,
@@ -879,47 +887,54 @@
879
887
  let dataVersion;
880
888
  let schemaVersion;
881
889
  let totalChanges;
890
+ const cmd = getWrappedCommand(rawCmd, onSqlCommand);
882
891
  const [
883
892
  isJson,
884
893
  autoLoadIntervalSeconds,
885
894
  defaultedConfig,
886
895
  managedTableNamesSet,
887
896
  ] = getConfigStructures(configOrStoreTableName);
888
- const addPersisterListener = (listener) => [
889
- startInterval(async () => {
890
- try {
891
- const [{d, s, c}] = await cmd(
892
- SELECT +
893
- ` ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
894
- );
895
- if (
896
- d != (dataVersion ??= d) ||
897
- s != (schemaVersion ??= s) ||
898
- c != (totalChanges ??= c)
899
- ) {
900
- listener();
901
- dataVersion = d;
902
- schemaVersion = s;
903
- }
904
- } catch {}
905
- }, autoLoadIntervalSeconds),
906
- addUpdateListener((tableName) =>
907
- managedTableNamesSet.has(tableName) ? listener() : 0,
908
- ),
909
- ];
910
- const delPersisterListener = ([interval, listeningHandle]) => {
911
- stopInterval(interval);
912
- dataVersion = schemaVersion = totalChanges = null;
913
- delUpdateListener(listeningHandle);
897
+ const addPersisterListener = (listener) => {
898
+ let interval;
899
+ const startPolling = () =>
900
+ (interval = startInterval(async () => {
901
+ try {
902
+ const [{d, s, c}] = await cmd(
903
+ // eslint-disable-next-line max-len
904
+ `${SELECT} ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
905
+ );
906
+ if (d != dataVersion || s != schemaVersion || c != totalChanges) {
907
+ if (dataVersion != null) {
908
+ listener();
909
+ }
910
+ dataVersion = d;
911
+ schemaVersion = s;
912
+ totalChanges = c;
913
+ }
914
+ } catch {}
915
+ }, autoLoadIntervalSeconds));
916
+ const stopPolling = () => {
917
+ dataVersion = schemaVersion = totalChanges = null;
918
+ stopInterval(interval);
919
+ };
920
+ const listeningHandle = addUpdateListener((tableName) => {
921
+ if (managedTableNamesSet.has(tableName)) {
922
+ stopPolling();
923
+ listener();
924
+ startPolling();
925
+ }
926
+ });
927
+ startPolling();
928
+ return () => {
929
+ stopPolling();
930
+ delUpdateListener(listeningHandle);
931
+ };
914
932
  };
933
+ const delPersisterListener = (stopPollingAndDelUpdateListener) =>
934
+ stopPollingAndDelUpdateListener();
915
935
  return (isJson ? createJsonPersister : createTabularPersister)(
916
936
  store,
917
- onSqlCommand
918
- ? async (sql, args) => {
919
- onSqlCommand(sql, args);
920
- return await cmd(sql, args);
921
- }
922
- : cmd,
937
+ cmd,
923
938
  addPersisterListener,
924
939
  delPersisterListener,
925
940
  onIgnoredError,