tinybase 5.0.0-beta.13 → 5.0.0-beta.15

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 (301) hide show
  1. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  2. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  4. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  6. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  8. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  10. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-file.cjs +1 -1
  14. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  16. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  18. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  20. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-powersync.cjs +1 -1
  22. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  24. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  26. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  30. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  31. package/lib/cjs/persisters.cjs +1 -1
  32. package/lib/cjs/persisters.cjs.gz +0 -0
  33. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -1
  34. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  35. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -1
  36. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  37. package/lib/cjs/synchronizers.cjs +1 -1
  38. package/lib/cjs/synchronizers.cjs.gz +0 -0
  39. package/lib/cjs/tinybase.cjs +1 -1
  40. package/lib/cjs/tinybase.cjs.gz +0 -0
  41. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  42. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  44. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  70. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters.cjs +1 -1
  74. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  75. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -1
  76. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  77. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -1
  78. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  79. package/lib/cjs-es6/synchronizers.cjs +1 -1
  80. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  81. package/lib/cjs-es6/tinybase.cjs +1 -1
  82. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  83. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  84. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  85. package/lib/debug/persisters/persister-automerge.js +1 -1
  86. package/lib/debug/persisters/persister-browser.js +5 -8
  87. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +56 -49
  88. package/lib/debug/persisters/persister-electric-sql.js +56 -49
  89. package/lib/debug/persisters/persister-expo-sqlite-next.js +56 -49
  90. package/lib/debug/persisters/persister-expo-sqlite.js +56 -49
  91. package/lib/debug/persisters/persister-file.js +4 -8
  92. package/lib/debug/persisters/persister-indexed-db.js +1 -1
  93. package/lib/debug/persisters/persister-libsql.js +56 -49
  94. package/lib/debug/persisters/persister-partykit-client.js +1 -1
  95. package/lib/debug/persisters/persister-powersync.js +56 -49
  96. package/lib/debug/persisters/persister-remote.js +1 -1
  97. package/lib/debug/persisters/persister-sqlite-wasm.js +56 -49
  98. package/lib/debug/persisters/persister-sqlite3.js +56 -49
  99. package/lib/debug/persisters/persister-yjs.js +1 -1
  100. package/lib/debug/persisters.js +1 -1
  101. package/lib/debug/synchronizers/synchronizer-local.js +1 -1
  102. package/lib/debug/synchronizers/synchronizer-ws-client.js +4 -8
  103. package/lib/debug/synchronizers.js +1 -1
  104. package/lib/debug/tinybase.js +1 -1
  105. package/lib/debug/ui-react-dom.js +8 -9
  106. package/lib/es6/persisters/persister-automerge.js +1 -1
  107. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  108. package/lib/es6/persisters/persister-browser.js +1 -1
  109. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  110. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  111. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  112. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  113. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  114. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  115. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  116. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  117. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  118. package/lib/es6/persisters/persister-file.js +1 -1
  119. package/lib/es6/persisters/persister-file.js.gz +0 -0
  120. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  121. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  122. package/lib/es6/persisters/persister-libsql.js +1 -1
  123. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  124. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  125. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  126. package/lib/es6/persisters/persister-powersync.js +1 -1
  127. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  128. package/lib/es6/persisters/persister-remote.js +1 -1
  129. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  130. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  131. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  132. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  133. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  134. package/lib/es6/persisters/persister-yjs.js +1 -1
  135. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  136. package/lib/es6/persisters.js +1 -1
  137. package/lib/es6/persisters.js.gz +0 -0
  138. package/lib/es6/synchronizers/synchronizer-local.js +1 -1
  139. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  140. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -1
  141. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  142. package/lib/es6/synchronizers.js +1 -1
  143. package/lib/es6/synchronizers.js.gz +0 -0
  144. package/lib/es6/tinybase.js +1 -1
  145. package/lib/es6/tinybase.js.gz +0 -0
  146. package/lib/es6/ui-react-dom-debug.js +1 -1
  147. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  148. package/lib/persisters/persister-automerge.js +1 -1
  149. package/lib/persisters/persister-automerge.js.gz +0 -0
  150. package/lib/persisters/persister-browser.js +1 -1
  151. package/lib/persisters/persister-browser.js.gz +0 -0
  152. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  153. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  154. package/lib/persisters/persister-electric-sql.js +1 -1
  155. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  156. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  157. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  158. package/lib/persisters/persister-expo-sqlite.js +1 -1
  159. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  160. package/lib/persisters/persister-file.js +1 -1
  161. package/lib/persisters/persister-file.js.gz +0 -0
  162. package/lib/persisters/persister-indexed-db.js +1 -1
  163. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  164. package/lib/persisters/persister-libsql.js +1 -1
  165. package/lib/persisters/persister-libsql.js.gz +0 -0
  166. package/lib/persisters/persister-partykit-client.js +1 -1
  167. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  168. package/lib/persisters/persister-powersync.js +1 -1
  169. package/lib/persisters/persister-powersync.js.gz +0 -0
  170. package/lib/persisters/persister-remote.js +1 -1
  171. package/lib/persisters/persister-remote.js.gz +0 -0
  172. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  173. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  174. package/lib/persisters/persister-sqlite3.js +1 -1
  175. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  176. package/lib/persisters/persister-yjs.js +1 -1
  177. package/lib/persisters/persister-yjs.js.gz +0 -0
  178. package/lib/persisters.js +1 -1
  179. package/lib/persisters.js.gz +0 -0
  180. package/lib/synchronizers/synchronizer-local.js +1 -1
  181. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  182. package/lib/synchronizers/synchronizer-ws-client.js +1 -1
  183. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  184. package/lib/synchronizers.js +1 -1
  185. package/lib/synchronizers.js.gz +0 -0
  186. package/lib/tinybase.js +1 -1
  187. package/lib/tinybase.js.gz +0 -0
  188. package/lib/types/mergeable-store.d.ts +1 -1
  189. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +1 -1
  190. package/lib/types/persisters/persister-expo-sqlite.d.ts +1 -1
  191. package/lib/types/persisters/persister-libsql.d.ts +1 -1
  192. package/lib/types/persisters/persister-powersync.d.ts +1 -1
  193. package/lib/types/persisters/persister-sqlite-wasm.d.ts +1 -1
  194. package/lib/types/persisters/persister-sqlite3.d.ts +1 -1
  195. package/lib/types/persisters.d.ts +23 -11
  196. package/lib/types/relationships.d.ts +1 -1
  197. package/lib/types/synchronizers/synchronizer-local.d.ts +2 -2
  198. package/lib/types/synchronizers/synchronizer-ws-client.d.ts +2 -2
  199. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +2 -2
  200. package/lib/types/synchronizers.d.ts +13 -9
  201. package/lib/types/ui-react.d.ts +6 -6
  202. package/lib/types/with-schemas/mergeable-store.d.ts +2 -2
  203. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +1 -1
  204. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +1 -1
  205. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +1 -1
  206. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +2 -2
  207. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +1 -1
  208. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +1 -1
  209. package/lib/types/with-schemas/persisters.d.ts +22 -10
  210. package/lib/types/with-schemas/relationships.d.ts +1 -1
  211. package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +3 -3
  212. package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +3 -3
  213. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +2 -2
  214. package/lib/types/with-schemas/synchronizers.d.ts +13 -9
  215. package/lib/types/with-schemas/ui-react.d.ts +6 -6
  216. package/lib/umd/persisters/persister-automerge.js +1 -1
  217. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  218. package/lib/umd/persisters/persister-browser.js +1 -1
  219. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  220. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  221. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  222. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  223. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  224. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  225. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  226. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  227. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  228. package/lib/umd/persisters/persister-file.js +1 -1
  229. package/lib/umd/persisters/persister-file.js.gz +0 -0
  230. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  231. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  232. package/lib/umd/persisters/persister-libsql.js +1 -1
  233. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  234. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  235. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  236. package/lib/umd/persisters/persister-powersync.js +1 -1
  237. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  238. package/lib/umd/persisters/persister-remote.js +1 -1
  239. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  240. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  241. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  242. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  243. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  244. package/lib/umd/persisters/persister-yjs.js +1 -1
  245. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  246. package/lib/umd/persisters.js +1 -1
  247. package/lib/umd/persisters.js.gz +0 -0
  248. package/lib/umd/synchronizers/synchronizer-local.js +1 -1
  249. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  250. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -1
  251. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  252. package/lib/umd/synchronizers.js +1 -1
  253. package/lib/umd/synchronizers.js.gz +0 -0
  254. package/lib/umd/tinybase.js +1 -1
  255. package/lib/umd/tinybase.js.gz +0 -0
  256. package/lib/umd/ui-react-dom-debug.js +1 -1
  257. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  258. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  259. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  260. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  261. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  262. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  263. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  264. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  265. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  266. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  267. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  268. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  269. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  270. package/lib/umd-es6/persisters/persister-file.js +1 -1
  271. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  272. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  273. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  274. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  275. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  276. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  277. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  278. package/lib/umd-es6/persisters/persister-powersync.js +1 -1
  279. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  280. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  281. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  282. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  283. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  284. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  285. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  286. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  287. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  288. package/lib/umd-es6/persisters.js +1 -1
  289. package/lib/umd-es6/persisters.js.gz +0 -0
  290. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -1
  291. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  292. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -1
  293. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  294. package/lib/umd-es6/synchronizers.js +1 -1
  295. package/lib/umd-es6/synchronizers.js.gz +0 -0
  296. package/lib/umd-es6/tinybase.js +1 -1
  297. package/lib/umd-es6/tinybase.js.gz +0 -0
  298. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  299. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  300. package/package.json +24 -24
  301. package/readme.md +2 -2
@@ -3,6 +3,7 @@ const TINYBASE = 'tinybase';
3
3
  const EMPTY_STRING = '';
4
4
  const COMMA = ',';
5
5
  const STRING = getTypeOf(EMPTY_STRING);
6
+ const UNDEFINED = '\uFFFC';
6
7
  const strRepeat = (str, count) => str.repeat(count);
7
8
 
8
9
  const promise = Promise;
@@ -11,7 +12,6 @@ const startInterval = (callback, sec, immediate) => {
11
12
  return setInterval(callback, sec * 1e3);
12
13
  };
13
14
  const stopInterval = clearInterval;
14
- const isInstanceOf = (thing, cls) => thing instanceof cls;
15
15
  const isUndefined = (thing) => thing == void 0;
16
16
  const ifNotUndefined = (value, then, otherwise) =>
17
17
  isUndefined(value) ? otherwise?.() : then(value);
@@ -21,11 +21,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
21
21
  const size = (arrayOrString) => arrayOrString.length;
22
22
  const promiseAll = async (promises) => promise.all(promises);
23
23
 
24
- const SINGLE_ROW_ID = '_';
25
- const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
26
- const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
27
- const SELECT = 'SELECT';
28
-
29
24
  const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
30
25
  const arrayMap = (array, cb) => array.map(cb);
31
26
  const arrayIsEmpty = (array) => size(array) == 0;
@@ -87,6 +82,11 @@ const mapMatch = (map, obj, set, del = mapSet) => {
87
82
  return map;
88
83
  };
89
84
 
85
+ const SINGLE_ROW_ID = '_';
86
+ const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
87
+ const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
88
+ const SELECT = 'SELECT';
89
+
90
90
  const setNew = (entryOrEntries) =>
91
91
  new Set(
92
92
  isArray(entryOrEntries) || isUndefined(entryOrEntries)
@@ -378,16 +378,15 @@ const getPlaceholders = (array) =>
378
378
  COMMA,
379
379
  );
380
380
 
381
- const jsonStringWithMap = (obj) =>
382
- JSON.stringify(obj, (_key, value) =>
383
- isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
384
- );
385
- const jsonParse = JSON.parse;
381
+ const jsonStringWithUndefined = (obj) =>
382
+ JSON.stringify(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
383
+ const jsonParseWithUndefined = (str) =>
384
+ JSON.parse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
386
385
 
387
386
  const scheduleRunning = mapNew();
388
387
  const scheduleActions = mapNew();
389
388
  const getStoreFunctions = (supportedStoreType = 1, store) =>
390
- supportedStoreType > 1 && 'getMergeableContent' in store
389
+ supportedStoreType > 1 && 'merge' in store
391
390
  ? [
392
391
  1,
393
392
  store.getMergeableContent,
@@ -568,14 +567,14 @@ const createCustomPersister = (
568
567
  return objFreeze(persister);
569
568
  };
570
569
 
571
- const STORE_COLUMN = 'store';
572
570
  const createJsonSqlitePersister = (
573
571
  store,
574
572
  cmd,
575
573
  addPersisterListener,
576
574
  delPersisterListener,
577
575
  onIgnoredError,
578
- [storeTableName],
576
+ supportedStoreType,
577
+ [storeTableName, storeIdColumnName, storeColumnName],
579
578
  managedTableNames,
580
579
  db,
581
580
  getThing,
@@ -586,10 +585,10 @@ const createJsonSqlitePersister = (
586
585
  const getPersisted = async () =>
587
586
  await transaction(async () => {
588
587
  await refreshSchema();
589
- return jsonParse(
590
- (await loadTable(storeTableName, DEFAULT_ROW_ID_COLUMN_NAME))[
591
- SINGLE_ROW_ID
592
- ]?.[STORE_COLUMN] ?? 'null',
588
+ return jsonParseWithUndefined(
589
+ (await loadTable(storeTableName, storeIdColumnName))[SINGLE_ROW_ID]?.[
590
+ storeColumnName
591
+ ] ?? 'null',
593
592
  );
594
593
  });
595
594
  const setPersisted = async (getContent) =>
@@ -597,10 +596,10 @@ const createJsonSqlitePersister = (
597
596
  await refreshSchema();
598
597
  await saveTable(
599
598
  storeTableName,
600
- DEFAULT_ROW_ID_COLUMN_NAME,
599
+ storeIdColumnName,
601
600
  {
602
601
  [SINGLE_ROW_ID]: {
603
- [STORE_COLUMN]: jsonStringWithMap(getContent() ?? null),
602
+ [storeColumnName]: jsonStringWithUndefined(getContent() ?? null),
604
603
  },
605
604
  },
606
605
  true,
@@ -614,7 +613,7 @@ const createJsonSqlitePersister = (
614
613
  addPersisterListener,
615
614
  delPersisterListener,
616
615
  onIgnoredError,
617
- 1,
616
+ supportedStoreType,
618
617
  {[getThing]: () => db},
619
618
  db,
620
619
  );
@@ -627,6 +626,7 @@ const createTabularSqlitePersister = (
627
626
  addPersisterListener,
628
627
  delPersisterListener,
629
628
  onIgnoredError,
629
+ supportedStoreType,
630
630
  [
631
631
  tablesLoadConfig,
632
632
  tablesSaveConfig,
@@ -720,17 +720,21 @@ const createTabularSqlitePersister = (
720
720
  addPersisterListener,
721
721
  delPersisterListener,
722
722
  onIgnoredError,
723
- 1,
723
+ supportedStoreType,
724
724
  {[getThing]: () => db},
725
725
  db,
726
726
  );
727
727
  return persister;
728
728
  };
729
729
 
730
+ const COLUMN_NAME = 'ColumnName';
731
+ const STORE = 'store';
730
732
  const JSON$1 = 'json';
733
+ const STORE_TABLE_NAME = STORE + 'TableName';
734
+ const STORE_ID_COLUMN_NAME = STORE + 'Id' + COLUMN_NAME;
735
+ const STORE_COLUMN_NAME = STORE + COLUMN_NAME;
731
736
  const AUTO_LOAD_INTERVAL_SECONDS = 'autoLoadIntervalSeconds';
732
- const STORE_TABLE_NAME = 'storeTableName';
733
- const ROW_ID_COLUMN_NAME = 'rowIdColumnName';
737
+ const ROW_ID_COLUMN_NAME = 'rowId' + COLUMN_NAME;
734
738
  const TABLE_ID = 'tableId';
735
739
  const TABLE_NAME = 'tableName';
736
740
  const DELETE_EMPTY_COLUMNS = 'deleteEmptyColumns';
@@ -755,7 +759,8 @@ const getDefaultedTabularConfigMap = (
755
759
  configsObj,
756
760
  defaultObj,
757
761
  tableField,
758
- filter,
762
+ exclude,
763
+ then,
759
764
  ) => {
760
765
  const configMap = mapNew();
761
766
  objToArray(configsObj, (configObj, id) => {
@@ -769,7 +774,8 @@ const getDefaultedTabularConfigMap = (
769
774
  0,
770
775
  objSize(defaultObj),
771
776
  );
772
- if (!isUndefined(defaultedConfig[0]) && !filter(id, defaultedConfig[0])) {
777
+ if (!isUndefined(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
778
+ then(id, defaultedConfig[0]);
773
779
  mapSet(configMap, id, defaultedConfig);
774
780
  }
775
781
  });
@@ -779,11 +785,15 @@ const getConfigStructures = (configOrStoreTableName) => {
779
785
  const config = getDefaultedConfig(configOrStoreTableName);
780
786
  const autoLoadIntervalSeconds = config[AUTO_LOAD_INTERVAL_SECONDS];
781
787
  if (config.mode == JSON$1) {
782
- const {storeTableName = TINYBASE} = config;
788
+ const storeTableName = config[STORE_TABLE_NAME] ?? TINYBASE;
783
789
  return [
784
790
  1,
785
791
  autoLoadIntervalSeconds,
786
- [storeTableName],
792
+ [
793
+ storeTableName,
794
+ config[STORE_ID_COLUMN_NAME] ?? DEFAULT_ROW_ID_COLUMN_NAME,
795
+ config[STORE_COLUMN_NAME] ?? STORE,
796
+ ],
787
797
  setNew(storeTableName),
788
798
  ];
789
799
  }
@@ -795,13 +805,14 @@ const getConfigStructures = (configOrStoreTableName) => {
795
805
  );
796
806
  const valuesTable = valuesConfig[2];
797
807
  const managedTableNames = setNew(valuesTable);
808
+ const excludedTableNames = setNew(valuesTable);
798
809
  const tabularConfig = [
799
810
  getDefaultedTabularConfigMap(
800
811
  load,
801
812
  {[TABLE_ID]: null, [ROW_ID_COLUMN_NAME]: DEFAULT_ROW_ID_COLUMN_NAME},
802
813
  TABLE_ID,
803
- (tableName) =>
804
- setAdd(managedTableNames, tableName) && tableName == valuesTable,
814
+ (tableName) => collHas(excludedTableNames, tableName),
815
+ (tableName) => setAdd(managedTableNames, tableName),
805
816
  ),
806
817
  getDefaultedTabularConfigMap(
807
818
  save,
@@ -812,15 +823,15 @@ const getConfigStructures = (configOrStoreTableName) => {
812
823
  [DELETE_EMPTY_TABLE]: 0,
813
824
  },
814
825
  TABLE_NAME,
815
- (_, tableName) =>
816
- setAdd(managedTableNames, tableName) && tableName == valuesTable,
826
+ (_, tableName) => collHas(excludedTableNames, tableName),
827
+ (_, tableName) => setAdd(managedTableNames, tableName),
817
828
  ),
818
829
  valuesConfig,
819
830
  ];
820
831
  return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
821
832
  };
822
833
 
823
- const PRAGMA = 'pragma ';
834
+ const PRAGMA = 'pragma_';
824
835
  const DATA_VERSION = 'data_version';
825
836
  const SCHEMA_VERSION = 'schema_version';
826
837
  const createSqlitePersister = (
@@ -831,6 +842,7 @@ const createSqlitePersister = (
831
842
  delUpdateListener,
832
843
  onSqlCommand,
833
844
  onIgnoredError,
845
+ supportedStoreType,
834
846
  db,
835
847
  getThing = 'getDb',
836
848
  useOnConflict,
@@ -838,7 +850,6 @@ const createSqlitePersister = (
838
850
  let dataVersion;
839
851
  let schemaVersion;
840
852
  let totalChanges;
841
- const CHANGES_COLUMN = 'c';
842
853
  const [
843
854
  isJson,
844
855
  autoLoadIntervalSeconds,
@@ -848,23 +859,17 @@ const createSqlitePersister = (
848
859
  const addPersisterListener = (listener) => [
849
860
  startInterval(async () => {
850
861
  try {
851
- const newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
852
- DATA_VERSION
853
- ];
854
- const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
855
- SCHEMA_VERSION
856
- ];
857
- const newTotalChanges = (
858
- await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
859
- )[0][CHANGES_COLUMN];
862
+ const [{d, s, c}] = await cmd(
863
+ `SELECT ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
864
+ );
860
865
  if (
861
- newDataVersion != (dataVersion ??= newDataVersion) ||
862
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
863
- newTotalChanges != (totalChanges ??= newTotalChanges)
866
+ d != (dataVersion ??= d) ||
867
+ s != (schemaVersion ??= s) ||
868
+ c != (totalChanges ??= c)
864
869
  ) {
865
870
  listener();
866
- dataVersion = newDataVersion;
867
- schemaVersion = newSchemaVersion;
871
+ dataVersion = d;
872
+ schemaVersion = s;
868
873
  }
869
874
  } catch {}
870
875
  }, autoLoadIntervalSeconds),
@@ -874,7 +879,7 @@ const createSqlitePersister = (
874
879
  ];
875
880
  const delPersisterListener = ([interval, listeningHandle]) => {
876
881
  stopInterval(interval);
877
- dataVersion = schemaVersion = null;
882
+ dataVersion = schemaVersion = totalChanges = null;
878
883
  delUpdateListener(listeningHandle);
879
884
  };
880
885
  return (isJson ? createJsonSqlitePersister : createTabularSqlitePersister)(
@@ -888,6 +893,7 @@ const createSqlitePersister = (
888
893
  addPersisterListener,
889
894
  delPersisterListener,
890
895
  onIgnoredError,
896
+ supportedStoreType,
891
897
  defaultedConfig,
892
898
  collValues(managedTableNamesSet),
893
899
  db,
@@ -911,6 +917,7 @@ const createLibSqlPersister = (
911
917
  (unsubscribeFunction) => unsubscribeFunction(),
912
918
  onSqlCommand,
913
919
  onIgnoredError,
920
+ 1,
914
921
  client,
915
922
  'getClient',
916
923
  );
@@ -70,7 +70,7 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
70
70
  const scheduleRunning = mapNew();
71
71
  const scheduleActions = mapNew();
72
72
  const getStoreFunctions = (supportedStoreType = 1, store) =>
73
- supportedStoreType > 1 && 'getMergeableContent' in store
73
+ supportedStoreType > 1 && 'merge' in store
74
74
  ? [
75
75
  1,
76
76
  store.getMergeableContent,
@@ -3,6 +3,7 @@ const TINYBASE = 'tinybase';
3
3
  const EMPTY_STRING = '';
4
4
  const COMMA = ',';
5
5
  const STRING = getTypeOf(EMPTY_STRING);
6
+ const UNDEFINED = '\uFFFC';
6
7
  const strRepeat = (str, count) => str.repeat(count);
7
8
 
8
9
  const promise = Promise;
@@ -11,7 +12,6 @@ const startInterval = (callback, sec, immediate) => {
11
12
  return setInterval(callback, sec * 1e3);
12
13
  };
13
14
  const stopInterval = clearInterval;
14
- const isInstanceOf = (thing, cls) => thing instanceof cls;
15
15
  const isUndefined = (thing) => thing == void 0;
16
16
  const ifNotUndefined = (value, then, otherwise) =>
17
17
  isUndefined(value) ? otherwise?.() : then(value);
@@ -21,11 +21,6 @@ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
21
21
  const size = (arrayOrString) => arrayOrString.length;
22
22
  const promiseAll = async (promises) => promise.all(promises);
23
23
 
24
- const SINGLE_ROW_ID = '_';
25
- const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
26
- const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
27
- const SELECT = 'SELECT';
28
-
29
24
  const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
30
25
  const arrayMap = (array, cb) => array.map(cb);
31
26
  const arrayIsEmpty = (array) => size(array) == 0;
@@ -87,6 +82,11 @@ const mapMatch = (map, obj, set, del = mapSet) => {
87
82
  return map;
88
83
  };
89
84
 
85
+ const SINGLE_ROW_ID = '_';
86
+ const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
87
+ const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
88
+ const SELECT = 'SELECT';
89
+
90
90
  const setNew = (entryOrEntries) =>
91
91
  new Set(
92
92
  isArray(entryOrEntries) || isUndefined(entryOrEntries)
@@ -378,16 +378,15 @@ const getPlaceholders = (array) =>
378
378
  COMMA,
379
379
  );
380
380
 
381
- const jsonStringWithMap = (obj) =>
382
- JSON.stringify(obj, (_key, value) =>
383
- isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
384
- );
385
- const jsonParse = JSON.parse;
381
+ const jsonStringWithUndefined = (obj) =>
382
+ JSON.stringify(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
383
+ const jsonParseWithUndefined = (str) =>
384
+ JSON.parse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
386
385
 
387
386
  const scheduleRunning = mapNew();
388
387
  const scheduleActions = mapNew();
389
388
  const getStoreFunctions = (supportedStoreType = 1, store) =>
390
- supportedStoreType > 1 && 'getMergeableContent' in store
389
+ supportedStoreType > 1 && 'merge' in store
391
390
  ? [
392
391
  1,
393
392
  store.getMergeableContent,
@@ -568,14 +567,14 @@ const createCustomPersister = (
568
567
  return objFreeze(persister);
569
568
  };
570
569
 
571
- const STORE_COLUMN = 'store';
572
570
  const createJsonSqlitePersister = (
573
571
  store,
574
572
  cmd,
575
573
  addPersisterListener,
576
574
  delPersisterListener,
577
575
  onIgnoredError,
578
- [storeTableName],
576
+ supportedStoreType,
577
+ [storeTableName, storeIdColumnName, storeColumnName],
579
578
  managedTableNames,
580
579
  db,
581
580
  getThing,
@@ -586,10 +585,10 @@ const createJsonSqlitePersister = (
586
585
  const getPersisted = async () =>
587
586
  await transaction(async () => {
588
587
  await refreshSchema();
589
- return jsonParse(
590
- (await loadTable(storeTableName, DEFAULT_ROW_ID_COLUMN_NAME))[
591
- SINGLE_ROW_ID
592
- ]?.[STORE_COLUMN] ?? 'null',
588
+ return jsonParseWithUndefined(
589
+ (await loadTable(storeTableName, storeIdColumnName))[SINGLE_ROW_ID]?.[
590
+ storeColumnName
591
+ ] ?? 'null',
593
592
  );
594
593
  });
595
594
  const setPersisted = async (getContent) =>
@@ -597,10 +596,10 @@ const createJsonSqlitePersister = (
597
596
  await refreshSchema();
598
597
  await saveTable(
599
598
  storeTableName,
600
- DEFAULT_ROW_ID_COLUMN_NAME,
599
+ storeIdColumnName,
601
600
  {
602
601
  [SINGLE_ROW_ID]: {
603
- [STORE_COLUMN]: jsonStringWithMap(getContent() ?? null),
602
+ [storeColumnName]: jsonStringWithUndefined(getContent() ?? null),
604
603
  },
605
604
  },
606
605
  true,
@@ -614,7 +613,7 @@ const createJsonSqlitePersister = (
614
613
  addPersisterListener,
615
614
  delPersisterListener,
616
615
  onIgnoredError,
617
- 1,
616
+ supportedStoreType,
618
617
  {[getThing]: () => db},
619
618
  db,
620
619
  );
@@ -627,6 +626,7 @@ const createTabularSqlitePersister = (
627
626
  addPersisterListener,
628
627
  delPersisterListener,
629
628
  onIgnoredError,
629
+ supportedStoreType,
630
630
  [
631
631
  tablesLoadConfig,
632
632
  tablesSaveConfig,
@@ -720,17 +720,21 @@ const createTabularSqlitePersister = (
720
720
  addPersisterListener,
721
721
  delPersisterListener,
722
722
  onIgnoredError,
723
- 1,
723
+ supportedStoreType,
724
724
  {[getThing]: () => db},
725
725
  db,
726
726
  );
727
727
  return persister;
728
728
  };
729
729
 
730
+ const COLUMN_NAME = 'ColumnName';
731
+ const STORE = 'store';
730
732
  const JSON$1 = 'json';
733
+ const STORE_TABLE_NAME = STORE + 'TableName';
734
+ const STORE_ID_COLUMN_NAME = STORE + 'Id' + COLUMN_NAME;
735
+ const STORE_COLUMN_NAME = STORE + COLUMN_NAME;
731
736
  const AUTO_LOAD_INTERVAL_SECONDS = 'autoLoadIntervalSeconds';
732
- const STORE_TABLE_NAME = 'storeTableName';
733
- const ROW_ID_COLUMN_NAME = 'rowIdColumnName';
737
+ const ROW_ID_COLUMN_NAME = 'rowId' + COLUMN_NAME;
734
738
  const TABLE_ID = 'tableId';
735
739
  const TABLE_NAME = 'tableName';
736
740
  const DELETE_EMPTY_COLUMNS = 'deleteEmptyColumns';
@@ -755,7 +759,8 @@ const getDefaultedTabularConfigMap = (
755
759
  configsObj,
756
760
  defaultObj,
757
761
  tableField,
758
- filter,
762
+ exclude,
763
+ then,
759
764
  ) => {
760
765
  const configMap = mapNew();
761
766
  objToArray(configsObj, (configObj, id) => {
@@ -769,7 +774,8 @@ const getDefaultedTabularConfigMap = (
769
774
  0,
770
775
  objSize(defaultObj),
771
776
  );
772
- if (!isUndefined(defaultedConfig[0]) && !filter(id, defaultedConfig[0])) {
777
+ if (!isUndefined(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
778
+ then(id, defaultedConfig[0]);
773
779
  mapSet(configMap, id, defaultedConfig);
774
780
  }
775
781
  });
@@ -779,11 +785,15 @@ const getConfigStructures = (configOrStoreTableName) => {
779
785
  const config = getDefaultedConfig(configOrStoreTableName);
780
786
  const autoLoadIntervalSeconds = config[AUTO_LOAD_INTERVAL_SECONDS];
781
787
  if (config.mode == JSON$1) {
782
- const {storeTableName = TINYBASE} = config;
788
+ const storeTableName = config[STORE_TABLE_NAME] ?? TINYBASE;
783
789
  return [
784
790
  1,
785
791
  autoLoadIntervalSeconds,
786
- [storeTableName],
792
+ [
793
+ storeTableName,
794
+ config[STORE_ID_COLUMN_NAME] ?? DEFAULT_ROW_ID_COLUMN_NAME,
795
+ config[STORE_COLUMN_NAME] ?? STORE,
796
+ ],
787
797
  setNew(storeTableName),
788
798
  ];
789
799
  }
@@ -795,13 +805,14 @@ const getConfigStructures = (configOrStoreTableName) => {
795
805
  );
796
806
  const valuesTable = valuesConfig[2];
797
807
  const managedTableNames = setNew(valuesTable);
808
+ const excludedTableNames = setNew(valuesTable);
798
809
  const tabularConfig = [
799
810
  getDefaultedTabularConfigMap(
800
811
  load,
801
812
  {[TABLE_ID]: null, [ROW_ID_COLUMN_NAME]: DEFAULT_ROW_ID_COLUMN_NAME},
802
813
  TABLE_ID,
803
- (tableName) =>
804
- setAdd(managedTableNames, tableName) && tableName == valuesTable,
814
+ (tableName) => collHas(excludedTableNames, tableName),
815
+ (tableName) => setAdd(managedTableNames, tableName),
805
816
  ),
806
817
  getDefaultedTabularConfigMap(
807
818
  save,
@@ -812,15 +823,15 @@ const getConfigStructures = (configOrStoreTableName) => {
812
823
  [DELETE_EMPTY_TABLE]: 0,
813
824
  },
814
825
  TABLE_NAME,
815
- (_, tableName) =>
816
- setAdd(managedTableNames, tableName) && tableName == valuesTable,
826
+ (_, tableName) => collHas(excludedTableNames, tableName),
827
+ (_, tableName) => setAdd(managedTableNames, tableName),
817
828
  ),
818
829
  valuesConfig,
819
830
  ];
820
831
  return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
821
832
  };
822
833
 
823
- const PRAGMA = 'pragma ';
834
+ const PRAGMA = 'pragma_';
824
835
  const DATA_VERSION = 'data_version';
825
836
  const SCHEMA_VERSION = 'schema_version';
826
837
  const createSqlitePersister = (
@@ -831,6 +842,7 @@ const createSqlitePersister = (
831
842
  delUpdateListener,
832
843
  onSqlCommand,
833
844
  onIgnoredError,
845
+ supportedStoreType,
834
846
  db,
835
847
  getThing = 'getDb',
836
848
  useOnConflict,
@@ -838,7 +850,6 @@ const createSqlitePersister = (
838
850
  let dataVersion;
839
851
  let schemaVersion;
840
852
  let totalChanges;
841
- const CHANGES_COLUMN = 'c';
842
853
  const [
843
854
  isJson,
844
855
  autoLoadIntervalSeconds,
@@ -848,23 +859,17 @@ const createSqlitePersister = (
848
859
  const addPersisterListener = (listener) => [
849
860
  startInterval(async () => {
850
861
  try {
851
- const newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
852
- DATA_VERSION
853
- ];
854
- const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
855
- SCHEMA_VERSION
856
- ];
857
- const newTotalChanges = (
858
- await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
859
- )[0][CHANGES_COLUMN];
862
+ const [{d, s, c}] = await cmd(
863
+ `SELECT ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
864
+ );
860
865
  if (
861
- newDataVersion != (dataVersion ??= newDataVersion) ||
862
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
863
- newTotalChanges != (totalChanges ??= newTotalChanges)
866
+ d != (dataVersion ??= d) ||
867
+ s != (schemaVersion ??= s) ||
868
+ c != (totalChanges ??= c)
864
869
  ) {
865
870
  listener();
866
- dataVersion = newDataVersion;
867
- schemaVersion = newSchemaVersion;
871
+ dataVersion = d;
872
+ schemaVersion = s;
868
873
  }
869
874
  } catch {}
870
875
  }, autoLoadIntervalSeconds),
@@ -874,7 +879,7 @@ const createSqlitePersister = (
874
879
  ];
875
880
  const delPersisterListener = ([interval, listeningHandle]) => {
876
881
  stopInterval(interval);
877
- dataVersion = schemaVersion = null;
882
+ dataVersion = schemaVersion = totalChanges = null;
878
883
  delUpdateListener(listeningHandle);
879
884
  };
880
885
  return (isJson ? createJsonSqlitePersister : createTabularSqlitePersister)(
@@ -888,6 +893,7 @@ const createSqlitePersister = (
888
893
  addPersisterListener,
889
894
  delPersisterListener,
890
895
  onIgnoredError,
896
+ supportedStoreType,
891
897
  defaultedConfig,
892
898
  collValues(managedTableNamesSet),
893
899
  db,
@@ -925,6 +931,7 @@ const createPowerSyncPersister = (
925
931
  (abortController) => abortController.abort(),
926
932
  onSqlCommand,
927
933
  onIgnoredError,
934
+ 1,
928
935
  powerSync,
929
936
  'getPowerSync',
930
937
  useOnConflict,
@@ -52,7 +52,7 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
52
52
  const scheduleRunning = mapNew();
53
53
  const scheduleActions = mapNew();
54
54
  const getStoreFunctions = (supportedStoreType = 1, store) =>
55
- supportedStoreType > 1 && 'getMergeableContent' in store
55
+ supportedStoreType > 1 && 'merge' in store
56
56
  ? [
57
57
  1,
58
58
  store.getMergeableContent,