tinybase 5.0.0-beta.5 → 5.0.0-beta.6

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 (353) hide show
  1. package/lib/cjs/mergeable-store.cjs +1 -1
  2. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  4. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  6. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  14. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-file.cjs +1 -1
  16. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  18. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  20. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  24. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  26. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  30. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-sync.cjs +1 -0
  32. package/lib/cjs/persisters/persister-sync.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  34. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  35. package/lib/cjs/persisters.cjs +1 -1
  36. package/lib/cjs/persisters.cjs.gz +0 -0
  37. package/lib/cjs/store.cjs +1 -1
  38. package/lib/cjs/store.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/tools.cjs +1 -1
  42. package/lib/cjs/tools.cjs.gz +0 -0
  43. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  44. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  45. package/lib/cjs/ui-react.cjs +1 -1
  46. package/lib/cjs/ui-react.cjs.gz +0 -0
  47. package/lib/cjs-es6/mergeable-store.cjs +1 -1
  48. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  70. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  74. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  76. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-sync.cjs +1 -0
  78. package/lib/cjs-es6/persisters/persister-sync.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters.cjs +1 -1
  82. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  83. package/lib/cjs-es6/store.cjs +1 -1
  84. package/lib/cjs-es6/store.cjs.gz +0 -0
  85. package/lib/cjs-es6/tinybase.cjs +1 -1
  86. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  87. package/lib/cjs-es6/tools.cjs +1 -1
  88. package/lib/cjs-es6/tools.cjs.gz +0 -0
  89. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  90. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  91. package/lib/cjs-es6/ui-react.cjs +1 -1
  92. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  93. package/lib/debug/mergeable-store.js +287 -130
  94. package/lib/debug/persisters/persister-automerge.js +39 -46
  95. package/lib/debug/persisters/persister-browser.js +39 -46
  96. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +64 -60
  97. package/lib/debug/persisters/persister-electric-sql.js +64 -60
  98. package/lib/debug/persisters/persister-expo-sqlite-next.js +64 -60
  99. package/lib/debug/persisters/persister-expo-sqlite.js +64 -60
  100. package/lib/debug/persisters/persister-file.js +39 -46
  101. package/lib/debug/persisters/persister-indexed-db.js +39 -46
  102. package/lib/debug/persisters/persister-libsql.js +64 -60
  103. package/lib/debug/persisters/persister-partykit-client.js +39 -46
  104. package/lib/debug/persisters/persister-powersync.js +917 -0
  105. package/lib/debug/persisters/persister-remote.js +39 -46
  106. package/lib/debug/persisters/persister-sqlite-wasm.js +64 -60
  107. package/lib/debug/persisters/persister-sqlite3.js +64 -60
  108. package/lib/debug/persisters/persister-sync.js +594 -0
  109. package/lib/debug/persisters/persister-yjs.js +41 -48
  110. package/lib/debug/persisters.js +38 -45
  111. package/lib/debug/store.js +44 -32
  112. package/lib/debug/tinybase.js +322 -173
  113. package/lib/debug/tools.js +2 -2
  114. package/lib/debug/ui-react-dom.js +81 -76
  115. package/lib/debug/ui-react.js +1 -1
  116. package/lib/es6/mergeable-store.js +1 -1
  117. package/lib/es6/mergeable-store.js.gz +0 -0
  118. package/lib/es6/persisters/persister-automerge.js +1 -1
  119. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  120. package/lib/es6/persisters/persister-browser.js +1 -1
  121. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  122. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  123. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  124. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  125. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  126. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  127. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  128. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  129. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  130. package/lib/es6/persisters/persister-file.js +1 -1
  131. package/lib/es6/persisters/persister-file.js.gz +0 -0
  132. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  133. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  134. package/lib/es6/persisters/persister-libsql.js +1 -1
  135. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  136. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  137. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  138. package/lib/es6/persisters/persister-powersync.js +1 -0
  139. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  140. package/lib/es6/persisters/persister-remote.js +1 -1
  141. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  142. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  143. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  144. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  145. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  146. package/lib/es6/persisters/persister-sync.js +1 -0
  147. package/lib/es6/persisters/persister-sync.js.gz +0 -0
  148. package/lib/es6/persisters/persister-yjs.js +1 -1
  149. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  150. package/lib/es6/persisters.js +1 -1
  151. package/lib/es6/persisters.js.gz +0 -0
  152. package/lib/es6/store.js +1 -1
  153. package/lib/es6/store.js.gz +0 -0
  154. package/lib/es6/tinybase.js +1 -1
  155. package/lib/es6/tinybase.js.gz +0 -0
  156. package/lib/es6/tools.js +1 -1
  157. package/lib/es6/tools.js.gz +0 -0
  158. package/lib/es6/ui-react-dom-debug.js +1 -1
  159. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  160. package/lib/es6/ui-react.js +1 -1
  161. package/lib/es6/ui-react.js.gz +0 -0
  162. package/lib/mergeable-store.js +1 -1
  163. package/lib/mergeable-store.js.gz +0 -0
  164. package/lib/persisters/persister-automerge.js +1 -1
  165. package/lib/persisters/persister-automerge.js.gz +0 -0
  166. package/lib/persisters/persister-browser.js +1 -1
  167. package/lib/persisters/persister-browser.js.gz +0 -0
  168. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  169. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  170. package/lib/persisters/persister-electric-sql.js +1 -1
  171. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  172. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  173. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  174. package/lib/persisters/persister-expo-sqlite.js +1 -1
  175. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  176. package/lib/persisters/persister-file.js +1 -1
  177. package/lib/persisters/persister-file.js.gz +0 -0
  178. package/lib/persisters/persister-indexed-db.js +1 -1
  179. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  180. package/lib/persisters/persister-libsql.js +1 -1
  181. package/lib/persisters/persister-libsql.js.gz +0 -0
  182. package/lib/persisters/persister-partykit-client.js +1 -1
  183. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  184. package/lib/persisters/persister-powersync.js +1 -0
  185. package/lib/persisters/persister-powersync.js.gz +0 -0
  186. package/lib/persisters/persister-remote.js +1 -1
  187. package/lib/persisters/persister-remote.js.gz +0 -0
  188. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  189. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  190. package/lib/persisters/persister-sqlite3.js +1 -1
  191. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  192. package/lib/persisters/persister-sync.js +1 -0
  193. package/lib/persisters/persister-sync.js.gz +0 -0
  194. package/lib/persisters/persister-yjs.js +1 -1
  195. package/lib/persisters/persister-yjs.js.gz +0 -0
  196. package/lib/persisters.js +1 -1
  197. package/lib/persisters.js.gz +0 -0
  198. package/lib/store.js +1 -1
  199. package/lib/store.js.gz +0 -0
  200. package/lib/tinybase.js +1 -1
  201. package/lib/tinybase.js.gz +0 -0
  202. package/lib/tools.js +1 -1
  203. package/lib/tools.js.gz +0 -0
  204. package/lib/types/checkpoints.d.ts +2 -2
  205. package/lib/types/indexes.d.ts +2 -2
  206. package/lib/types/mergeable-store.d.ts +121 -59
  207. package/lib/types/metrics.d.ts +2 -2
  208. package/lib/types/persisters/persister-automerge.d.ts +3 -0
  209. package/lib/types/persisters/persister-browser.d.ts +9 -2
  210. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +3 -0
  211. package/lib/types/persisters/persister-electric-sql.d.ts +3 -0
  212. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +3 -0
  213. package/lib/types/persisters/persister-expo-sqlite.d.ts +3 -0
  214. package/lib/types/persisters/persister-file.d.ts +5 -1
  215. package/lib/types/persisters/persister-indexed-db.d.ts +3 -0
  216. package/lib/types/persisters/persister-libsql.d.ts +3 -0
  217. package/lib/types/persisters/persister-partykit-client.d.ts +3 -0
  218. package/lib/types/persisters/persister-powersync.d.ts +157 -0
  219. package/lib/types/persisters/persister-remote.d.ts +3 -0
  220. package/lib/types/persisters/persister-sqlite-wasm.d.ts +3 -0
  221. package/lib/types/persisters/persister-sqlite3.d.ts +3 -0
  222. package/lib/types/persisters/persister-sync.d.ts +182 -0
  223. package/lib/types/persisters/persister-yjs.d.ts +5 -2
  224. package/lib/types/persisters.d.ts +60 -3
  225. package/lib/types/queries.d.ts +2 -2
  226. package/lib/types/relationships.d.ts +2 -2
  227. package/lib/types/store.d.ts +36 -3
  228. package/lib/types/tinybase.d.ts +9 -9
  229. package/lib/types/tools.d.ts +2 -2
  230. package/lib/types/ui-react.d.ts +8 -8
  231. package/lib/types/with-schemas/checkpoints.d.ts +2 -2
  232. package/lib/types/with-schemas/indexes.d.ts +2 -2
  233. package/lib/types/with-schemas/mergeable-store.d.ts +185 -87
  234. package/lib/types/with-schemas/metrics.d.ts +2 -2
  235. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +4 -1
  236. package/lib/types/with-schemas/persisters/persister-browser.d.ts +13 -6
  237. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +4 -1
  238. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +4 -1
  239. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +4 -1
  240. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +4 -1
  241. package/lib/types/with-schemas/persisters/persister-file.d.ts +7 -3
  242. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +4 -1
  243. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +4 -1
  244. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +4 -1
  245. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
  246. package/lib/types/with-schemas/persisters/persister-remote.d.ts +4 -1
  247. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +4 -1
  248. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +4 -1
  249. package/lib/types/with-schemas/persisters/persister-sync.d.ts +195 -0
  250. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +6 -3
  251. package/lib/types/with-schemas/persisters.d.ts +79 -7
  252. package/lib/types/with-schemas/queries.d.ts +3 -3
  253. package/lib/types/with-schemas/relationships.d.ts +2 -2
  254. package/lib/types/with-schemas/store.d.ts +100 -3
  255. package/lib/types/with-schemas/tinybase.d.ts +9 -9
  256. package/lib/types/with-schemas/tools.d.ts +2 -2
  257. package/lib/types/with-schemas/ui-react.d.ts +8 -8
  258. package/lib/ui-react.js +1 -1
  259. package/lib/ui-react.js.gz +0 -0
  260. package/lib/umd/mergeable-store.js +1 -1
  261. package/lib/umd/mergeable-store.js.gz +0 -0
  262. package/lib/umd/persisters/persister-automerge.js +1 -1
  263. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  264. package/lib/umd/persisters/persister-browser.js +1 -1
  265. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  266. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  267. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  268. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  269. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  270. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  271. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  272. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  273. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  274. package/lib/umd/persisters/persister-file.js +1 -1
  275. package/lib/umd/persisters/persister-file.js.gz +0 -0
  276. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  277. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  278. package/lib/umd/persisters/persister-libsql.js +1 -1
  279. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  280. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  281. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  282. package/lib/umd/persisters/persister-powersync.js +1 -0
  283. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  284. package/lib/umd/persisters/persister-remote.js +1 -1
  285. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  286. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  287. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  288. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  289. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  290. package/lib/umd/persisters/persister-sync.js +1 -0
  291. package/lib/umd/persisters/persister-sync.js.gz +0 -0
  292. package/lib/umd/persisters/persister-yjs.js +1 -1
  293. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  294. package/lib/umd/persisters.js +1 -1
  295. package/lib/umd/persisters.js.gz +0 -0
  296. package/lib/umd/store.js +1 -1
  297. package/lib/umd/store.js.gz +0 -0
  298. package/lib/umd/tinybase.js +1 -1
  299. package/lib/umd/tinybase.js.gz +0 -0
  300. package/lib/umd/tools.js +1 -1
  301. package/lib/umd/tools.js.gz +0 -0
  302. package/lib/umd/ui-react-dom-debug.js +1 -1
  303. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  304. package/lib/umd/ui-react.js +1 -1
  305. package/lib/umd/ui-react.js.gz +0 -0
  306. package/lib/umd-es6/mergeable-store.js +1 -1
  307. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  308. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  309. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  310. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  311. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  312. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  313. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  314. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  315. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  316. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  317. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  318. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  319. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  320. package/lib/umd-es6/persisters/persister-file.js +1 -1
  321. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  322. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  323. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  324. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  325. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  326. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  327. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  328. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  329. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  330. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  331. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  332. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  333. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  334. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  335. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  336. package/lib/umd-es6/persisters/persister-sync.js +1 -0
  337. package/lib/umd-es6/persisters/persister-sync.js.gz +0 -0
  338. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  339. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  340. package/lib/umd-es6/persisters.js +1 -1
  341. package/lib/umd-es6/persisters.js.gz +0 -0
  342. package/lib/umd-es6/store.js +1 -1
  343. package/lib/umd-es6/store.js.gz +0 -0
  344. package/lib/umd-es6/tinybase.js +1 -1
  345. package/lib/umd-es6/tinybase.js.gz +0 -0
  346. package/lib/umd-es6/tools.js +1 -1
  347. package/lib/umd-es6/tools.js.gz +0 -0
  348. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  349. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  350. package/lib/umd-es6/ui-react.js +1 -1
  351. package/lib/umd-es6/ui-react.js.gz +0 -0
  352. package/package.json +37 -26
  353. package/readme.md +2 -2
@@ -16,8 +16,6 @@ const arrayShift = (array) => array.shift();
16
16
  const object = Object;
17
17
  const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
18
18
  const objEntries = object.entries;
19
- const objIds = object.keys;
20
- const objFreeze = object.freeze;
21
19
  const isObject = (obj) =>
22
20
  !isUndefined(obj) &&
23
21
  ifNotUndefined(
@@ -28,6 +26,8 @@ const isObject = (obj) =>
28
26
  /* istanbul ignore next */
29
27
  () => true,
30
28
  );
29
+ const objIds = object.keys;
30
+ const objFreeze = object.freeze;
31
31
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
32
32
  const objHas = (obj, id) => id in obj;
33
33
  const objDel = (obj, id) => {
@@ -63,7 +63,6 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
63
63
 
64
64
  const scheduleRunning = mapNew();
65
65
  const scheduleActions = mapNew();
66
- const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
67
66
  const getStoreFunctions = (supportsMergeableStore, store) =>
68
67
  !supportsMergeableStore || isUndefined(store.getMergeableContent)
69
68
  ? [
@@ -88,16 +87,15 @@ const createCustomPersister = (
88
87
  delPersisterListener,
89
88
  onIgnoredError,
90
89
  supportsMergeableStore,
91
- [getThing, thing] = [],
90
+ extra = {},
92
91
  scheduleId = [],
93
92
  ) => {
94
- let listenerId;
95
93
  let loadSave = 0;
96
94
  let loads = 0;
97
95
  let saves = 0;
98
- let listening = 0;
99
96
  let action;
100
- let listeningHandle;
97
+ let autoLoadHandle;
98
+ let autoSaveListenerId;
101
99
  mapEnsure(scheduleRunning, scheduleId, () => 0);
102
100
  mapEnsure(scheduleActions, scheduleId, () => []);
103
101
  const [isMergeableStore, getContent, getChanges, hasChanges] =
@@ -133,55 +131,51 @@ const createCustomPersister = (
133
131
  }
134
132
  return persister;
135
133
  };
134
+ const setContentOrChanges = (contentOrChanges) => {
135
+ (isMergeableStore && isString(contentOrChanges?.[0])
136
+ ? contentOrChanges?.[1][2] === 1
137
+ ? store.applyMergeableChanges
138
+ : store.setMergeableContent
139
+ : contentOrChanges?.[2] === 1
140
+ ? store.applyChanges
141
+ : store.setContent)(contentOrChanges);
142
+ };
136
143
  const persister = {
137
144
  load: async (initialTables, initialValues) =>
138
145
  await loadLock(async () => {
139
146
  try {
140
- const content = await getPersisted();
141
- (isMergeableStore && isMergeable(content)
142
- ? store.setMergeableContent
143
- : store.setContent)(content);
144
- } catch {
147
+ setContentOrChanges(await getPersisted());
148
+ } catch (error) {
149
+ onIgnoredError?.(error);
145
150
  store.setContent([initialTables, initialValues]);
146
151
  }
147
152
  }),
148
153
  startAutoLoad: async (initialTables = {}, initialValues = {}) => {
149
- persister.stopAutoLoad();
150
- await persister.load(initialTables, initialValues);
151
- listening = 1;
152
- listeningHandle = addPersisterListener(
154
+ await persister.stopAutoLoad().load(initialTables, initialValues);
155
+ autoLoadHandle = addPersisterListener(
153
156
  async (getContent2, getChanges2) => {
154
- if (getChanges2) {
155
- const changes = getChanges2();
156
- await loadLock(async () =>
157
- (isMergeableStore && isMergeable(changes)
158
- ? store.applyMergeableChanges
159
- : store.applyChanges)(changes),
160
- );
161
- } else {
162
- await loadLock(async () => {
163
- try {
164
- const content = getContent2?.() ?? (await getPersisted());
165
- (isMergeableStore && isMergeable(content)
166
- ? store.setMergeableContent
167
- : store.setContent)(content);
168
- } catch (error) {
169
- onIgnoredError?.(error);
170
- }
171
- });
172
- }
157
+ const changes = getChanges2?.();
158
+ await loadLock(async () => {
159
+ try {
160
+ setContentOrChanges(
161
+ changes ?? getContent2?.() ?? (await getPersisted()),
162
+ );
163
+ } catch (error) {
164
+ onIgnoredError?.(error);
165
+ }
166
+ });
173
167
  },
174
168
  );
175
169
  return persister;
176
170
  },
177
171
  stopAutoLoad: () => {
178
- if (listening) {
179
- delPersisterListener(listeningHandle);
180
- listeningHandle = void 0;
181
- listening = 0;
172
+ if (autoLoadHandle) {
173
+ delPersisterListener(autoLoadHandle);
174
+ autoLoadHandle = void 0;
182
175
  }
183
176
  return persister;
184
177
  },
178
+ isAutoLoading: () => !isUndefined(autoLoadHandle),
185
179
  save: async (getChanges2) => {
186
180
  /* istanbul ignore else */
187
181
  if (loadSave != 1) {
@@ -203,7 +197,7 @@ const createCustomPersister = (
203
197
  },
204
198
  startAutoSave: async () => {
205
199
  await persister.stopAutoSave().save();
206
- listenerId = store.addDidFinishTransactionListener(() => {
200
+ autoSaveListenerId = store.addDidFinishTransactionListener(() => {
207
201
  const changes = getChanges();
208
202
  if (hasChanges(changes)) {
209
203
  persister.save(() => changes);
@@ -212,10 +206,11 @@ const createCustomPersister = (
212
206
  return persister;
213
207
  },
214
208
  stopAutoSave: () => {
215
- ifNotUndefined(listenerId, store.delListener);
216
- listenerId = void 0;
209
+ ifNotUndefined(autoSaveListenerId, store.delListener);
210
+ autoSaveListenerId = void 0;
217
211
  return persister;
218
212
  },
213
+ isAutoSaving: () => !isUndefined(autoSaveListenerId),
219
214
  schedule: async (...actions) => {
220
215
  arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
221
216
  await run();
@@ -224,10 +219,8 @@ const createCustomPersister = (
224
219
  getStore: () => store,
225
220
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
226
221
  getStats: () => ({loads, saves}),
222
+ ...extra,
227
223
  };
228
- if (getThing) {
229
- persister[getThing] = () => thing;
230
- }
231
224
  return objFreeze(persister);
232
225
  };
233
226
 
@@ -357,7 +350,7 @@ const createAutomergePersister = (
357
350
  delPersisterListener,
358
351
  onIgnoredError,
359
352
  false,
360
- ['getDocHandle', docHandle],
353
+ {getDocHandle: () => docHandle},
361
354
  );
362
355
  };
363
356
 
@@ -14,8 +14,6 @@ const arrayShift = (array) => array.shift();
14
14
 
15
15
  const object = Object;
16
16
  const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
17
- const objIds = object.keys;
18
- const objFreeze = object.freeze;
19
17
  const isObject = (obj) =>
20
18
  !isUndefined(obj) &&
21
19
  ifNotUndefined(
@@ -26,6 +24,8 @@ const isObject = (obj) =>
26
24
  /* istanbul ignore next */
27
25
  () => true,
28
26
  );
27
+ const objIds = object.keys;
28
+ const objFreeze = object.freeze;
29
29
  const objSize = (obj) => size(objIds(obj));
30
30
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
31
31
 
@@ -53,7 +53,6 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
53
53
 
54
54
  const scheduleRunning = mapNew();
55
55
  const scheduleActions = mapNew();
56
- const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
57
56
  const getStoreFunctions = (supportsMergeableStore, store) =>
58
57
  !supportsMergeableStore || isUndefined(store.getMergeableContent)
59
58
  ? [
@@ -78,16 +77,15 @@ const createCustomPersister = (
78
77
  delPersisterListener,
79
78
  onIgnoredError,
80
79
  supportsMergeableStore,
81
- [getThing, thing] = [],
80
+ extra = {},
82
81
  scheduleId = [],
83
82
  ) => {
84
- let listenerId;
85
83
  let loadSave = 0;
86
84
  let loads = 0;
87
85
  let saves = 0;
88
- let listening = 0;
89
86
  let action;
90
- let listeningHandle;
87
+ let autoLoadHandle;
88
+ let autoSaveListenerId;
91
89
  mapEnsure(scheduleRunning, scheduleId, () => 0);
92
90
  mapEnsure(scheduleActions, scheduleId, () => []);
93
91
  const [isMergeableStore, getContent, getChanges, hasChanges] =
@@ -123,55 +121,51 @@ const createCustomPersister = (
123
121
  }
124
122
  return persister;
125
123
  };
124
+ const setContentOrChanges = (contentOrChanges) => {
125
+ (isMergeableStore && isString(contentOrChanges?.[0])
126
+ ? contentOrChanges?.[1][2] === 1
127
+ ? store.applyMergeableChanges
128
+ : store.setMergeableContent
129
+ : contentOrChanges?.[2] === 1
130
+ ? store.applyChanges
131
+ : store.setContent)(contentOrChanges);
132
+ };
126
133
  const persister = {
127
134
  load: async (initialTables, initialValues) =>
128
135
  await loadLock(async () => {
129
136
  try {
130
- const content = await getPersisted();
131
- (isMergeableStore && isMergeable(content)
132
- ? store.setMergeableContent
133
- : store.setContent)(content);
134
- } catch {
137
+ setContentOrChanges(await getPersisted());
138
+ } catch (error) {
139
+ onIgnoredError?.(error);
135
140
  store.setContent([initialTables, initialValues]);
136
141
  }
137
142
  }),
138
143
  startAutoLoad: async (initialTables = {}, initialValues = {}) => {
139
- persister.stopAutoLoad();
140
- await persister.load(initialTables, initialValues);
141
- listening = 1;
142
- listeningHandle = addPersisterListener(
144
+ await persister.stopAutoLoad().load(initialTables, initialValues);
145
+ autoLoadHandle = addPersisterListener(
143
146
  async (getContent2, getChanges2) => {
144
- if (getChanges2) {
145
- const changes = getChanges2();
146
- await loadLock(async () =>
147
- (isMergeableStore && isMergeable(changes)
148
- ? store.applyMergeableChanges
149
- : store.applyChanges)(changes),
150
- );
151
- } else {
152
- await loadLock(async () => {
153
- try {
154
- const content = getContent2?.() ?? (await getPersisted());
155
- (isMergeableStore && isMergeable(content)
156
- ? store.setMergeableContent
157
- : store.setContent)(content);
158
- } catch (error) {
159
- onIgnoredError?.(error);
160
- }
161
- });
162
- }
147
+ const changes = getChanges2?.();
148
+ await loadLock(async () => {
149
+ try {
150
+ setContentOrChanges(
151
+ changes ?? getContent2?.() ?? (await getPersisted()),
152
+ );
153
+ } catch (error) {
154
+ onIgnoredError?.(error);
155
+ }
156
+ });
163
157
  },
164
158
  );
165
159
  return persister;
166
160
  },
167
161
  stopAutoLoad: () => {
168
- if (listening) {
169
- delPersisterListener(listeningHandle);
170
- listeningHandle = void 0;
171
- listening = 0;
162
+ if (autoLoadHandle) {
163
+ delPersisterListener(autoLoadHandle);
164
+ autoLoadHandle = void 0;
172
165
  }
173
166
  return persister;
174
167
  },
168
+ isAutoLoading: () => !isUndefined(autoLoadHandle),
175
169
  save: async (getChanges2) => {
176
170
  /* istanbul ignore else */
177
171
  if (loadSave != 1) {
@@ -193,7 +187,7 @@ const createCustomPersister = (
193
187
  },
194
188
  startAutoSave: async () => {
195
189
  await persister.stopAutoSave().save();
196
- listenerId = store.addDidFinishTransactionListener(() => {
190
+ autoSaveListenerId = store.addDidFinishTransactionListener(() => {
197
191
  const changes = getChanges();
198
192
  if (hasChanges(changes)) {
199
193
  persister.save(() => changes);
@@ -202,10 +196,11 @@ const createCustomPersister = (
202
196
  return persister;
203
197
  },
204
198
  stopAutoSave: () => {
205
- ifNotUndefined(listenerId, store.delListener);
206
- listenerId = void 0;
199
+ ifNotUndefined(autoSaveListenerId, store.delListener);
200
+ autoSaveListenerId = void 0;
207
201
  return persister;
208
202
  },
203
+ isAutoSaving: () => !isUndefined(autoSaveListenerId),
209
204
  schedule: async (...actions) => {
210
205
  arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
211
206
  await run();
@@ -214,10 +209,8 @@ const createCustomPersister = (
214
209
  getStore: () => store,
215
210
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
216
211
  getStats: () => ({loads, saves}),
212
+ ...extra,
217
213
  };
218
- if (getThing) {
219
- persister[getThing] = () => thing;
220
- }
221
214
  return objFreeze(persister);
222
215
  };
223
216
 
@@ -251,7 +244,7 @@ const createStoragePersister = (
251
244
  delPersisterListener,
252
245
  onIgnoredError,
253
246
  true,
254
- ['getStorageName', storageName],
247
+ {getStorageName: () => storageName},
255
248
  );
256
249
  };
257
250
  const createLocalPersister = (store, storageName, onIgnoredError) =>
@@ -41,8 +41,6 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
41
41
  const object = Object;
42
42
  const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
43
43
  const objEntries = object.entries;
44
- const objIds = object.keys;
45
- const objFreeze = object.freeze;
46
44
  const isObject = (obj) =>
47
45
  !isUndefined(obj) &&
48
46
  ifNotUndefined(
@@ -53,6 +51,8 @@ const isObject = (obj) =>
53
51
  /* istanbul ignore next */
54
52
  () => true,
55
53
  );
54
+ const objIds = object.keys;
55
+ const objFreeze = object.freeze;
56
56
  const objNew = (entries = []) => object.fromEntries(entries);
57
57
  const objMerge = (...objs) => object.assign({}, ...objs);
58
58
  const objHas = (obj, id) => id in obj;
@@ -97,6 +97,9 @@ const setNew = (entryOrEntries) =>
97
97
  );
98
98
  const setAdd = (set, value) => set?.add(value);
99
99
 
100
+ const TABLE = 'TABLE';
101
+ const ALTER_TABLE = 'ALTER ' + TABLE;
102
+ const DELETE_FROM = 'DELETE FROM';
100
103
  const SELECT_STAR_FROM = SELECT + '*FROM';
101
104
  const FROM_PRAGMA_TABLE = 'FROM pragma_table_';
102
105
  const WHERE = 'WHERE';
@@ -191,15 +194,20 @@ const getCommandFunctions = (
191
194
  arrayIsEmpty(tableColumnNames) &&
192
195
  collHas(schemaMap, tableName)
193
196
  ) {
194
- await cmd('DROP TABLE' + escapeId(tableName));
197
+ await cmd('DROP ' + TABLE + escapeId(tableName));
195
198
  mapSet(schemaMap, tableName);
196
199
  return;
197
200
  }
198
201
  if (!arrayIsEmpty(tableColumnNames) && !collHas(schemaMap, tableName)) {
199
202
  await cmd(
200
- `CREATE TABLE${escapeId(tableName)}(${escapeId(rowIdColumnName)} PRIMARY KEY ON CONFLICT REPLACE${arrayJoin(
201
- arrayMap(tableColumnNames, (cellId) => COMMA + escapeId(cellId)),
202
- )});`,
203
+ `CREATE ` +
204
+ TABLE +
205
+ escapeId(tableName) +
206
+ '(' +
207
+ escapeId(rowIdColumnName) +
208
+ ` PRIMARY KEY ON CONFLICT REPLACE${arrayJoin(
209
+ arrayMap(tableColumnNames, (cellId) => COMMA + escapeId(cellId)),
210
+ )});`,
203
211
  );
204
212
  mapSet(
205
213
  schemaMap,
@@ -219,7 +227,7 @@ const getCommandFunctions = (
219
227
  ...arrayMap(tableColumnNames, async (columnName) => {
220
228
  if (!collDel(columnNamesAccountedFor, columnName)) {
221
229
  await cmd(
222
- `ALTER TABLE${escapeId(tableName)}ADD${escapeId(columnName)}`,
230
+ ALTER_TABLE + escapeId(tableName) + 'ADD' + escapeId(columnName),
223
231
  );
224
232
  mapSet(tableSchemaMap, columnName, EMPTY_STRING);
225
233
  }
@@ -230,9 +238,10 @@ const getCommandFunctions = (
230
238
  async (columnName) => {
231
239
  if (columnName != rowIdColumnName) {
232
240
  await cmd(
233
- `ALTER TABLE${escapeId(tableName)}DROP${escapeId(
234
- columnName,
235
- )}`,
241
+ ALTER_TABLE +
242
+ escapeId(tableName) +
243
+ 'DROP' +
244
+ escapeId(columnName),
236
245
  );
237
246
  mapSet(tableSchemaMap, columnName);
238
247
  }
@@ -243,13 +252,13 @@ const getCommandFunctions = (
243
252
  }
244
253
  if (partial) {
245
254
  if (isUndefined(content)) {
246
- await cmd('DELETE FROM' + escapeId(tableName) + 'WHERE 1');
255
+ await cmd(DELETE_FROM + escapeId(tableName) + WHERE + ' 1');
247
256
  } else {
248
257
  await promiseAll(
249
258
  objToArray(content, async (row, rowId) => {
250
259
  if (isUndefined(row)) {
251
260
  await cmd(
252
- 'DELETE FROM' +
261
+ DELETE_FROM +
253
262
  escapeId(tableName) +
254
263
  WHERE +
255
264
  escapeId(rowIdColumnName) +
@@ -291,9 +300,10 @@ const getCommandFunctions = (
291
300
  rowIdColumnName,
292
301
  changingColumnNames,
293
302
  args,
303
+ useOnConflict,
294
304
  );
295
305
  await cmd(
296
- 'DELETE FROM' +
306
+ DELETE_FROM +
297
307
  escapeId(tableName) +
298
308
  WHERE +
299
309
  escapeId(rowIdColumnName) +
@@ -303,7 +313,7 @@ const getCommandFunctions = (
303
313
  deleteRowIds,
304
314
  );
305
315
  } else if (collHas(schemaMap, tableName)) {
306
- await cmd('DELETE FROM' + escapeId(tableName) + 'WHERE 1');
316
+ await cmd(DELETE_FROM + escapeId(tableName) + WHERE + ' 1');
307
317
  }
308
318
  }
309
319
  };
@@ -378,7 +388,6 @@ const jsonParse = JSON.parse;
378
388
 
379
389
  const scheduleRunning = mapNew();
380
390
  const scheduleActions = mapNew();
381
- const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
382
391
  const getStoreFunctions = (supportsMergeableStore, store) =>
383
392
  !supportsMergeableStore || isUndefined(store.getMergeableContent)
384
393
  ? [
@@ -403,16 +412,15 @@ const createCustomPersister = (
403
412
  delPersisterListener,
404
413
  onIgnoredError,
405
414
  supportsMergeableStore,
406
- [getThing, thing] = [],
415
+ extra = {},
407
416
  scheduleId = [],
408
417
  ) => {
409
- let listenerId;
410
418
  let loadSave = 0;
411
419
  let loads = 0;
412
420
  let saves = 0;
413
- let listening = 0;
414
421
  let action;
415
- let listeningHandle;
422
+ let autoLoadHandle;
423
+ let autoSaveListenerId;
416
424
  mapEnsure(scheduleRunning, scheduleId, () => 0);
417
425
  mapEnsure(scheduleActions, scheduleId, () => []);
418
426
  const [isMergeableStore, getContent, getChanges, hasChanges] =
@@ -448,55 +456,51 @@ const createCustomPersister = (
448
456
  }
449
457
  return persister;
450
458
  };
459
+ const setContentOrChanges = (contentOrChanges) => {
460
+ (isMergeableStore && isString(contentOrChanges?.[0])
461
+ ? contentOrChanges?.[1][2] === 1
462
+ ? store.applyMergeableChanges
463
+ : store.setMergeableContent
464
+ : contentOrChanges?.[2] === 1
465
+ ? store.applyChanges
466
+ : store.setContent)(contentOrChanges);
467
+ };
451
468
  const persister = {
452
469
  load: async (initialTables, initialValues) =>
453
470
  await loadLock(async () => {
454
471
  try {
455
- const content = await getPersisted();
456
- (isMergeableStore && isMergeable(content)
457
- ? store.setMergeableContent
458
- : store.setContent)(content);
459
- } catch {
472
+ setContentOrChanges(await getPersisted());
473
+ } catch (error) {
474
+ onIgnoredError?.(error);
460
475
  store.setContent([initialTables, initialValues]);
461
476
  }
462
477
  }),
463
478
  startAutoLoad: async (initialTables = {}, initialValues = {}) => {
464
- persister.stopAutoLoad();
465
- await persister.load(initialTables, initialValues);
466
- listening = 1;
467
- listeningHandle = addPersisterListener(
479
+ await persister.stopAutoLoad().load(initialTables, initialValues);
480
+ autoLoadHandle = addPersisterListener(
468
481
  async (getContent2, getChanges2) => {
469
- if (getChanges2) {
470
- const changes = getChanges2();
471
- await loadLock(async () =>
472
- (isMergeableStore && isMergeable(changes)
473
- ? store.applyMergeableChanges
474
- : store.applyChanges)(changes),
475
- );
476
- } else {
477
- await loadLock(async () => {
478
- try {
479
- const content = getContent2?.() ?? (await getPersisted());
480
- (isMergeableStore && isMergeable(content)
481
- ? store.setMergeableContent
482
- : store.setContent)(content);
483
- } catch (error) {
484
- onIgnoredError?.(error);
485
- }
486
- });
487
- }
482
+ const changes = getChanges2?.();
483
+ await loadLock(async () => {
484
+ try {
485
+ setContentOrChanges(
486
+ changes ?? getContent2?.() ?? (await getPersisted()),
487
+ );
488
+ } catch (error) {
489
+ onIgnoredError?.(error);
490
+ }
491
+ });
488
492
  },
489
493
  );
490
494
  return persister;
491
495
  },
492
496
  stopAutoLoad: () => {
493
- if (listening) {
494
- delPersisterListener(listeningHandle);
495
- listeningHandle = void 0;
496
- listening = 0;
497
+ if (autoLoadHandle) {
498
+ delPersisterListener(autoLoadHandle);
499
+ autoLoadHandle = void 0;
497
500
  }
498
501
  return persister;
499
502
  },
503
+ isAutoLoading: () => !isUndefined(autoLoadHandle),
500
504
  save: async (getChanges2) => {
501
505
  /* istanbul ignore else */
502
506
  if (loadSave != 1) {
@@ -518,7 +522,7 @@ const createCustomPersister = (
518
522
  },
519
523
  startAutoSave: async () => {
520
524
  await persister.stopAutoSave().save();
521
- listenerId = store.addDidFinishTransactionListener(() => {
525
+ autoSaveListenerId = store.addDidFinishTransactionListener(() => {
522
526
  const changes = getChanges();
523
527
  if (hasChanges(changes)) {
524
528
  persister.save(() => changes);
@@ -527,10 +531,11 @@ const createCustomPersister = (
527
531
  return persister;
528
532
  },
529
533
  stopAutoSave: () => {
530
- ifNotUndefined(listenerId, store.delListener);
531
- listenerId = void 0;
534
+ ifNotUndefined(autoSaveListenerId, store.delListener);
535
+ autoSaveListenerId = void 0;
532
536
  return persister;
533
537
  },
538
+ isAutoSaving: () => !isUndefined(autoSaveListenerId),
534
539
  schedule: async (...actions) => {
535
540
  arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
536
541
  await run();
@@ -539,10 +544,8 @@ const createCustomPersister = (
539
544
  getStore: () => store,
540
545
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
541
546
  getStats: () => ({loads, saves}),
547
+ ...extra,
542
548
  };
543
- if (getThing) {
544
- persister[getThing] = () => thing;
545
- }
546
549
  return objFreeze(persister);
547
550
  };
548
551
 
@@ -557,9 +560,10 @@ const createJsonSqlitePersister = (
557
560
  managedTableNames,
558
561
  db,
559
562
  getThing,
563
+ useOnConflict,
560
564
  ) => {
561
565
  const [refreshSchema, loadTable, saveTable, transaction] =
562
- getCommandFunctions(cmd, managedTableNames, onIgnoredError);
566
+ getCommandFunctions(cmd, managedTableNames, onIgnoredError, useOnConflict);
563
567
  const getPersisted = async () =>
564
568
  await transaction(async () => {
565
569
  await refreshSchema();
@@ -590,7 +594,7 @@ const createJsonSqlitePersister = (
590
594
  delPersisterListener,
591
595
  onIgnoredError,
592
596
  false,
593
- [getThing, db],
597
+ {[getThing]: () => db},
594
598
  db,
595
599
  );
596
600
  return persister;
@@ -697,7 +701,7 @@ const createTabularSqlitePersister = (
697
701
  delPersisterListener,
698
702
  onIgnoredError,
699
703
  false,
700
- [getThing, db],
704
+ {[getThing]: () => db},
701
705
  db,
702
706
  );
703
707
  return persister;