tinybase 5.2.0-beta.4 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/@types/mergeable-store/index.d.cts +114 -11
  2. package/@types/mergeable-store/index.d.ts +114 -11
  3. package/@types/mergeable-store/with-schemas/index.d.cts +192 -11
  4. package/@types/mergeable-store/with-schemas/index.d.ts +192 -11
  5. package/@types/persisters/index.d.cts +177 -16
  6. package/@types/persisters/index.d.ts +177 -16
  7. package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +1 -1
  8. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +1 -1
  9. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +2 -2
  10. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +2 -2
  11. package/@types/persisters/persister-electric-sql/index.d.cts +1 -1
  12. package/@types/persisters/persister-electric-sql/index.d.ts +1 -1
  13. package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +2 -2
  14. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +2 -2
  15. package/@types/persisters/persister-expo-sqlite/index.d.cts +1 -1
  16. package/@types/persisters/persister-expo-sqlite/index.d.ts +1 -1
  17. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +2 -2
  18. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +2 -2
  19. package/@types/persisters/persister-libsql/index.d.cts +1 -1
  20. package/@types/persisters/persister-libsql/index.d.ts +1 -1
  21. package/@types/persisters/persister-libsql/with-schemas/index.d.cts +2 -2
  22. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +2 -2
  23. package/@types/persisters/persister-pglite/index.d.cts +1 -1
  24. package/@types/persisters/persister-pglite/index.d.ts +1 -1
  25. package/@types/persisters/persister-pglite/with-schemas/index.d.cts +2 -2
  26. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +2 -2
  27. package/@types/persisters/persister-postgres/index.d.cts +1 -1
  28. package/@types/persisters/persister-postgres/index.d.ts +1 -1
  29. package/@types/persisters/persister-postgres/with-schemas/index.d.cts +2 -2
  30. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +2 -2
  31. package/@types/persisters/persister-powersync/index.d.cts +1 -1
  32. package/@types/persisters/persister-powersync/index.d.ts +1 -1
  33. package/@types/persisters/persister-powersync/with-schemas/index.d.cts +2 -2
  34. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +2 -2
  35. package/@types/persisters/persister-sqlite-wasm/index.d.cts +1 -1
  36. package/@types/persisters/persister-sqlite-wasm/index.d.ts +1 -1
  37. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +2 -2
  38. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +2 -2
  39. package/@types/persisters/persister-sqlite3/index.d.cts +1 -1
  40. package/@types/persisters/persister-sqlite3/index.d.ts +1 -1
  41. package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +2 -2
  42. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +2 -2
  43. package/@types/persisters/with-schemas/index.d.cts +227 -19
  44. package/@types/persisters/with-schemas/index.d.ts +227 -19
  45. package/@types/synchronizers/index.d.cts +2 -5
  46. package/@types/synchronizers/index.d.ts +2 -5
  47. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +7 -7
  48. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
  49. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +7 -7
  50. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
  51. package/@types/synchronizers/with-schemas/index.d.cts +2 -5
  52. package/@types/synchronizers/with-schemas/index.d.ts +2 -5
  53. package/cjs/es6/index.cjs +54 -566
  54. package/cjs/es6/mergeable-store/index.cjs +9 -6
  55. package/cjs/es6/mergeable-store/with-schemas/index.cjs +9 -6
  56. package/cjs/es6/min/index.cjs +1 -1
  57. package/cjs/es6/min/index.cjs.gz +0 -0
  58. package/cjs/es6/min/persisters/index.cjs +1 -1
  59. package/cjs/es6/min/persisters/index.cjs.gz +0 -0
  60. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  65. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  66. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  67. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  69. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  70. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  71. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  73. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  74. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  77. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  78. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  79. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  80. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  81. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  82. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  83. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  84. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  85. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  86. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  87. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  88. package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
  89. package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
  90. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  91. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  92. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  93. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  94. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  95. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  96. package/cjs/es6/persisters/index.cjs +1095 -10
  97. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +58 -49
  98. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +58 -49
  99. package/cjs/es6/persisters/persister-electric-sql/index.cjs +56 -47
  100. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
  101. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +58 -49
  102. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +58 -49
  103. package/cjs/es6/persisters/persister-indexed-db/index.cjs +2 -2
  104. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
  105. package/cjs/es6/persisters/persister-libsql/index.cjs +56 -47
  106. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +56 -47
  107. package/cjs/es6/persisters/persister-pglite/index.cjs +61 -54
  108. package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +61 -54
  109. package/cjs/es6/persisters/persister-postgres/index.cjs +63 -56
  110. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +63 -56
  111. package/cjs/es6/persisters/persister-powersync/index.cjs +58 -49
  112. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +58 -49
  113. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +62 -49
  114. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +62 -49
  115. package/cjs/es6/persisters/persister-sqlite3/index.cjs +58 -49
  116. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
  117. package/cjs/es6/persisters/with-schemas/index.cjs +1095 -10
  118. package/cjs/es6/synchronizers/index.cjs +9 -6
  119. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +9 -6
  120. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +9 -6
  121. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +9 -6
  122. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +9 -6
  123. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +9 -6
  124. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +9 -6
  125. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +17 -14
  126. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +17 -14
  127. package/cjs/es6/synchronizers/with-schemas/index.cjs +9 -6
  128. package/cjs/es6/with-schemas/index.cjs +54 -566
  129. package/cjs/index.cjs +45 -447
  130. package/cjs/mergeable-store/index.cjs +1 -0
  131. package/cjs/mergeable-store/with-schemas/index.cjs +1 -0
  132. package/cjs/min/index.cjs +1 -1
  133. package/cjs/min/index.cjs.gz +0 -0
  134. package/cjs/min/persisters/index.cjs +1 -1
  135. package/cjs/min/persisters/index.cjs.gz +0 -0
  136. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  137. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  138. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  139. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  140. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  141. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  142. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  143. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  144. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  145. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  146. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  147. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  148. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  149. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  150. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  151. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  152. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  153. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  154. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  155. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  156. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  157. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  158. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  159. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  160. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  161. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  162. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  163. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  164. package/cjs/min/persisters/with-schemas/index.cjs +1 -1
  165. package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
  166. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  167. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  168. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  169. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  170. package/cjs/min/with-schemas/index.cjs +1 -1
  171. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  172. package/cjs/persisters/index.cjs +833 -0
  173. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +57 -48
  174. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +57 -48
  175. package/cjs/persisters/persister-electric-sql/index.cjs +56 -47
  176. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +56 -47
  177. package/cjs/persisters/persister-expo-sqlite/index.cjs +57 -48
  178. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +57 -48
  179. package/cjs/persisters/persister-indexed-db/index.cjs +2 -2
  180. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
  181. package/cjs/persisters/persister-libsql/index.cjs +56 -47
  182. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +56 -47
  183. package/cjs/persisters/persister-pglite/index.cjs +59 -52
  184. package/cjs/persisters/persister-pglite/with-schemas/index.cjs +59 -52
  185. package/cjs/persisters/persister-postgres/index.cjs +61 -54
  186. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +61 -54
  187. package/cjs/persisters/persister-powersync/index.cjs +60 -49
  188. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +60 -49
  189. package/cjs/persisters/persister-sqlite-wasm/index.cjs +58 -49
  190. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +58 -49
  191. package/cjs/persisters/persister-sqlite3/index.cjs +58 -49
  192. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +58 -49
  193. package/cjs/persisters/with-schemas/index.cjs +833 -0
  194. package/cjs/synchronizers/index.cjs +1 -0
  195. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
  196. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
  197. package/cjs/synchronizers/synchronizer-local/index.cjs +1 -0
  198. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -0
  199. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +1 -0
  200. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -0
  201. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +9 -8
  202. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +9 -8
  203. package/cjs/synchronizers/with-schemas/index.cjs +1 -0
  204. package/cjs/with-schemas/index.cjs +45 -447
  205. package/es6/index.js +54 -566
  206. package/es6/mergeable-store/index.js +9 -6
  207. package/es6/mergeable-store/with-schemas/index.js +9 -6
  208. package/es6/min/index.js +1 -1
  209. package/es6/min/index.js.gz +0 -0
  210. package/es6/min/persisters/index.js +1 -1
  211. package/es6/min/persisters/index.js.gz +0 -0
  212. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  213. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  214. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  215. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  216. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  217. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  218. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  219. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  220. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  221. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  222. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  223. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  224. package/es6/min/persisters/persister-libsql/index.js +1 -1
  225. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  226. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  227. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  228. package/es6/min/persisters/persister-powersync/index.js +1 -1
  229. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  230. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  231. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  232. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  233. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  234. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  235. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  236. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  237. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  238. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  239. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  240. package/es6/min/persisters/with-schemas/index.js +1 -1
  241. package/es6/min/persisters/with-schemas/index.js.gz +0 -0
  242. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  243. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  244. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  245. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  246. package/es6/min/with-schemas/index.js +1 -1
  247. package/es6/min/with-schemas/index.js.gz +0 -0
  248. package/es6/persisters/index.js +1099 -11
  249. package/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
  250. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
  251. package/es6/persisters/persister-electric-sql/index.js +56 -47
  252. package/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
  253. package/es6/persisters/persister-expo-sqlite/index.js +58 -49
  254. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
  255. package/es6/persisters/persister-indexed-db/index.js +2 -2
  256. package/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  257. package/es6/persisters/persister-libsql/index.js +56 -47
  258. package/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
  259. package/es6/persisters/persister-pglite/index.js +61 -54
  260. package/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
  261. package/es6/persisters/persister-postgres/index.js +63 -56
  262. package/es6/persisters/persister-postgres/with-schemas/index.js +63 -56
  263. package/es6/persisters/persister-powersync/index.js +58 -49
  264. package/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
  265. package/es6/persisters/persister-sqlite-wasm/index.js +62 -49
  266. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
  267. package/es6/persisters/persister-sqlite3/index.js +58 -49
  268. package/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
  269. package/es6/persisters/with-schemas/index.js +1099 -11
  270. package/es6/synchronizers/index.js +9 -6
  271. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
  272. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
  273. package/es6/synchronizers/synchronizer-local/index.js +9 -6
  274. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
  275. package/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
  276. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
  277. package/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
  278. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
  279. package/es6/synchronizers/with-schemas/index.js +9 -6
  280. package/es6/with-schemas/index.js +54 -566
  281. package/index.js +45 -447
  282. package/mergeable-store/index.js +1 -0
  283. package/mergeable-store/with-schemas/index.js +1 -0
  284. package/min/index.js +1 -1
  285. package/min/index.js.gz +0 -0
  286. package/min/persisters/index.js +1 -1
  287. package/min/persisters/index.js.gz +0 -0
  288. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  289. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  290. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  291. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  292. package/min/persisters/persister-electric-sql/index.js +1 -1
  293. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  294. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  295. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  296. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  297. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  298. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  299. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  300. package/min/persisters/persister-libsql/index.js +1 -1
  301. package/min/persisters/persister-libsql/index.js.gz +0 -0
  302. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  303. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  304. package/min/persisters/persister-powersync/index.js +1 -1
  305. package/min/persisters/persister-powersync/index.js.gz +0 -0
  306. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  307. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  308. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  309. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  310. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  311. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  312. package/min/persisters/persister-sqlite3/index.js +1 -1
  313. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  314. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  315. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  316. package/min/persisters/with-schemas/index.js +1 -1
  317. package/min/persisters/with-schemas/index.js.gz +0 -0
  318. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  319. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  320. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  321. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  322. package/min/with-schemas/index.js +1 -1
  323. package/min/with-schemas/index.js.gz +0 -0
  324. package/package.json +212 -212
  325. package/persisters/index.js +837 -1
  326. package/persisters/persister-cr-sqlite-wasm/index.js +57 -48
  327. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
  328. package/persisters/persister-electric-sql/index.js +56 -47
  329. package/persisters/persister-electric-sql/with-schemas/index.js +56 -47
  330. package/persisters/persister-expo-sqlite/index.js +57 -48
  331. package/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
  332. package/persisters/persister-indexed-db/index.js +2 -2
  333. package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  334. package/persisters/persister-libsql/index.js +56 -47
  335. package/persisters/persister-libsql/with-schemas/index.js +56 -47
  336. package/persisters/persister-pglite/index.js +59 -52
  337. package/persisters/persister-pglite/with-schemas/index.js +59 -52
  338. package/persisters/persister-postgres/index.js +61 -54
  339. package/persisters/persister-postgres/with-schemas/index.js +61 -54
  340. package/persisters/persister-powersync/index.js +60 -49
  341. package/persisters/persister-powersync/with-schemas/index.js +60 -49
  342. package/persisters/persister-sqlite-wasm/index.js +58 -49
  343. package/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
  344. package/persisters/persister-sqlite3/index.js +58 -49
  345. package/persisters/persister-sqlite3/with-schemas/index.js +58 -49
  346. package/persisters/with-schemas/index.js +837 -1
  347. package/readme.md +14 -14
  348. package/releases.md +27 -23
  349. package/synchronizers/index.js +1 -0
  350. package/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  351. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  352. package/synchronizers/synchronizer-local/index.js +1 -0
  353. package/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
  354. package/synchronizers/synchronizer-ws-client/index.js +1 -0
  355. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
  356. package/synchronizers/synchronizer-ws-server/index.js +9 -8
  357. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
  358. package/synchronizers/with-schemas/index.js +1 -0
  359. package/umd/es6/index.js +54 -577
  360. package/umd/es6/mergeable-store/index.js +9 -6
  361. package/umd/es6/mergeable-store/with-schemas/index.js +9 -6
  362. package/umd/es6/min/index.js +1 -1
  363. package/umd/es6/min/index.js.gz +0 -0
  364. package/umd/es6/min/persisters/index.js +1 -1
  365. package/umd/es6/min/persisters/index.js.gz +0 -0
  366. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  367. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  368. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  369. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  370. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  371. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  372. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  373. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  374. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  375. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  376. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  377. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  378. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  379. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  380. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  381. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  382. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  383. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  384. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  385. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  386. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  387. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  388. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  389. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  390. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  391. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  392. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  393. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  394. package/umd/es6/min/persisters/with-schemas/index.js +1 -1
  395. package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
  396. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  397. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  398. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  399. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  400. package/umd/es6/min/with-schemas/index.js +1 -1
  401. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  402. package/umd/es6/persisters/index.js +1106 -10
  403. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +58 -49
  404. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +58 -49
  405. package/umd/es6/persisters/persister-electric-sql/index.js +56 -47
  406. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +56 -47
  407. package/umd/es6/persisters/persister-expo-sqlite/index.js +58 -49
  408. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +58 -49
  409. package/umd/es6/persisters/persister-indexed-db/index.js +2 -2
  410. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  411. package/umd/es6/persisters/persister-libsql/index.js +56 -47
  412. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +56 -47
  413. package/umd/es6/persisters/persister-pglite/index.js +61 -54
  414. package/umd/es6/persisters/persister-pglite/with-schemas/index.js +61 -54
  415. package/umd/es6/persisters/persister-postgres/index.js +66 -56
  416. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +66 -56
  417. package/umd/es6/persisters/persister-powersync/index.js +58 -49
  418. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +58 -49
  419. package/umd/es6/persisters/persister-sqlite-wasm/index.js +58 -49
  420. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +58 -49
  421. package/umd/es6/persisters/persister-sqlite3/index.js +58 -49
  422. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +58 -49
  423. package/umd/es6/persisters/with-schemas/index.js +1106 -10
  424. package/umd/es6/synchronizers/index.js +9 -6
  425. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
  426. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
  427. package/umd/es6/synchronizers/synchronizer-local/index.js +9 -6
  428. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
  429. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +9 -6
  430. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +9 -6
  431. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +17 -14
  432. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +17 -14
  433. package/umd/es6/synchronizers/with-schemas/index.js +9 -6
  434. package/umd/es6/with-schemas/index.js +54 -577
  435. package/umd/index.js +45 -454
  436. package/umd/mergeable-store/index.js +1 -0
  437. package/umd/mergeable-store/with-schemas/index.js +1 -0
  438. package/umd/min/index.js +1 -1
  439. package/umd/min/index.js.gz +0 -0
  440. package/umd/min/persisters/index.js +1 -1
  441. package/umd/min/persisters/index.js.gz +0 -0
  442. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  443. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  444. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  445. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  446. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  447. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  448. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  449. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  450. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  451. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  452. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  453. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  454. package/umd/min/persisters/persister-libsql/index.js +1 -1
  455. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  456. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  457. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  458. package/umd/min/persisters/persister-powersync/index.js +1 -1
  459. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  460. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  461. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  462. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  463. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  464. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  465. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  466. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  467. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  468. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  469. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  470. package/umd/min/persisters/with-schemas/index.js +1 -1
  471. package/umd/min/persisters/with-schemas/index.js.gz +0 -0
  472. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  473. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  474. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  475. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  476. package/umd/min/with-schemas/index.js +1 -1
  477. package/umd/min/with-schemas/index.js.gz +0 -0
  478. package/umd/persisters/index.js +835 -0
  479. package/umd/persisters/persister-cr-sqlite-wasm/index.js +57 -48
  480. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +57 -48
  481. package/umd/persisters/persister-electric-sql/index.js +56 -47
  482. package/umd/persisters/persister-electric-sql/with-schemas/index.js +56 -47
  483. package/umd/persisters/persister-expo-sqlite/index.js +57 -48
  484. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +57 -48
  485. package/umd/persisters/persister-indexed-db/index.js +2 -2
  486. package/umd/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  487. package/umd/persisters/persister-libsql/index.js +56 -47
  488. package/umd/persisters/persister-libsql/with-schemas/index.js +56 -47
  489. package/umd/persisters/persister-pglite/index.js +59 -52
  490. package/umd/persisters/persister-pglite/with-schemas/index.js +59 -52
  491. package/umd/persisters/persister-postgres/index.js +61 -54
  492. package/umd/persisters/persister-postgres/with-schemas/index.js +61 -54
  493. package/umd/persisters/persister-powersync/index.js +58 -49
  494. package/umd/persisters/persister-powersync/with-schemas/index.js +58 -49
  495. package/umd/persisters/persister-sqlite-wasm/index.js +62 -49
  496. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +62 -49
  497. package/umd/persisters/persister-sqlite3/index.js +58 -49
  498. package/umd/persisters/persister-sqlite3/with-schemas/index.js +58 -49
  499. package/umd/persisters/with-schemas/index.js +835 -0
  500. package/umd/synchronizers/index.js +1 -0
  501. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  502. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  503. package/umd/synchronizers/synchronizer-local/index.js +1 -0
  504. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
  505. package/umd/synchronizers/synchronizer-ws-client/index.js +1 -0
  506. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -0
  507. package/umd/synchronizers/synchronizer-ws-server/index.js +9 -8
  508. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +9 -8
  509. package/umd/synchronizers/with-schemas/index.js +1 -0
  510. package/umd/with-schemas/index.js +45 -454
  511. package/with-schemas/index.js +45 -447
@@ -1,18 +1,67 @@
1
+ const getTypeOf = (thing) => typeof thing;
2
+ const TINYBASE = 'tinybase';
3
+ const EMPTY_STRING = '';
4
+ const COMMA = ',';
5
+ const STRING = getTypeOf(EMPTY_STRING);
6
+ const UNDEFINED = '\uFFFC';
7
+ const strMatch = (str, regex) => (str == null ? void 0 : str.match(regex));
8
+
9
+ var __async$7 = (__this, __arguments, generator) => {
10
+ return new Promise((resolve, reject) => {
11
+ var fulfilled = (value) => {
12
+ try {
13
+ step(generator.next(value));
14
+ } catch (e) {
15
+ reject(e);
16
+ }
17
+ };
18
+ var rejected = (value) => {
19
+ try {
20
+ step(generator.throw(value));
21
+ } catch (e) {
22
+ reject(e);
23
+ }
24
+ };
25
+ var step = (x) =>
26
+ x.done
27
+ ? resolve(x.value)
28
+ : Promise.resolve(x.value).then(fulfilled, rejected);
29
+ step((generator = generator.apply(__this, __arguments)).next());
30
+ });
31
+ };
32
+ const promise = Promise;
33
+ const startInterval = (callback, sec, immediate) => {
34
+ return setInterval(callback, sec * 1e3);
35
+ };
36
+ const stopInterval = clearInterval;
1
37
  const isUndefined = (thing) => thing == void 0;
2
38
  const ifNotUndefined = (value, then, otherwise) =>
3
39
  isUndefined(value) ? (otherwise == null ? void 0 : otherwise()) : then(value);
40
+ const isString = (thing) => getTypeOf(thing) == STRING;
4
41
  const isArray = (thing) => Array.isArray(thing);
42
+ const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
5
43
  const size = (arrayOrString) => arrayOrString.length;
44
+ const promiseAll = (promises) =>
45
+ __async$7(void 0, null, function* () {
46
+ return promise.all(promises);
47
+ });
6
48
  const errorNew = (message) => {
7
49
  throw new Error(message);
8
50
  };
9
51
 
52
+ const arrayNew = (size2, cb) =>
53
+ arrayMap(new Array(size2).fill(0), (_, index) => cb(index));
54
+ const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
55
+ const arrayMap = (array, cb) => array.map(cb);
56
+ const arrayIsEmpty = (array) => size(array) == 0;
57
+ const arrayFilter = (array, cb) => array.filter(cb);
10
58
  const arrayClear = (array, to) => array.splice(0, to);
11
59
  const arrayPush = (array, ...values) => array.push(...values);
12
60
  const arrayShift = (array) => array.shift();
13
61
 
14
62
  const object = Object;
15
63
  const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
64
+ const objEntries = object.entries;
16
65
  const isObject = (obj) =>
17
66
  !isUndefined(obj) &&
18
67
  ifNotUndefined(
@@ -26,6 +75,18 @@ const isObject = (obj) =>
26
75
  );
27
76
  const objIds = object.keys;
28
77
  const objFreeze = object.freeze;
78
+ const objNew = (entries = []) => object.fromEntries(entries);
79
+ const objMerge = (...objs) => object.assign({}, ...objs);
80
+ const objHas = (obj, id) => id in obj;
81
+ const objDel = (obj, id) => {
82
+ delete obj[id];
83
+ return obj;
84
+ };
85
+ const objToArray = (obj, cb) =>
86
+ arrayMap(objEntries(obj), ([id, value]) => cb(value, id));
87
+ const objMap = (obj, cb) =>
88
+ objNew(objToArray(obj, (value, id) => [id, cb(value, id)]));
89
+ const objValues = (obj) => object.values(obj);
29
90
  const objSize = (obj) => size(objIds(obj));
30
91
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
31
92
 
@@ -35,11 +96,23 @@ const collHas = (coll, keyOrValue) => {
35
96
  ? _a
36
97
  : false;
37
98
  };
99
+ const collValues = (coll) => {
100
+ var _a;
101
+ return [...((_a = coll == null ? void 0 : coll.values()) != null ? _a : [])];
102
+ };
103
+ const collClear = (coll) => coll.clear();
38
104
  const collDel = (coll, keyOrValue) =>
39
105
  coll == null ? void 0 : coll.delete(keyOrValue);
40
106
 
41
107
  const mapNew = (entries) => new Map(entries);
42
108
  const mapGet = (map, key) => (map == null ? void 0 : map.get(key));
109
+ const mapMap = (coll, cb) => {
110
+ var _a;
111
+ return arrayMap(
112
+ [...((_a = coll == null ? void 0 : coll.entries()) != null ? _a : [])],
113
+ ([key, value]) => cb(value, key),
114
+ );
115
+ };
43
116
  const mapSet = (map, key, value) =>
44
117
  isUndefined(value)
45
118
  ? (collDel(map, key), map)
@@ -75,7 +148,7 @@ var __spreadValues = (a, b) => {
75
148
  }
76
149
  return a;
77
150
  };
78
- var __async = (__this, __arguments, generator) => {
151
+ var __async$6 = (__this, __arguments, generator) => {
79
152
  return new Promise((resolve, reject) => {
80
153
  var fulfilled = (value) => {
81
154
  try {
@@ -152,7 +225,7 @@ const createCustomPersister = (
152
225
  setDefaultContent,
153
226
  ] = getStoreFunctions(persist, store);
154
227
  const run = () =>
155
- __async(void 0, null, function* () {
228
+ __async$6(void 0, null, function* () {
156
229
  /* istanbul ignore else */
157
230
  if (!mapGet(scheduleRunning, scheduleId)) {
158
231
  mapSet(scheduleRunning, scheduleId, 1);
@@ -182,13 +255,13 @@ const createCustomPersister = (
182
255
  : store.setContent)(contentOrChanges);
183
256
  };
184
257
  const load = (initialContent) =>
185
- __async(void 0, null, function* () {
258
+ __async$6(void 0, null, function* () {
186
259
  /* istanbul ignore else */
187
260
  if (loadSave != 2) {
188
261
  loadSave = 1;
189
262
  loads++;
190
263
  yield schedule(() =>
191
- __async(void 0, null, function* () {
264
+ __async$6(void 0, null, function* () {
192
265
  try {
193
266
  const content = yield getPersisted();
194
267
  if (isArray(content)) {
@@ -209,11 +282,11 @@ const createCustomPersister = (
209
282
  return persister;
210
283
  });
211
284
  const startAutoLoad = (initialContent) =>
212
- __async(void 0, null, function* () {
285
+ __async$6(void 0, null, function* () {
213
286
  yield stopAutoLoad().load(initialContent);
214
287
  try {
215
288
  autoLoadHandle = yield addPersisterListener((content, changes) =>
216
- __async(void 0, null, function* () {
289
+ __async$6(void 0, null, function* () {
217
290
  if (changes || content) {
218
291
  /* istanbul ignore else */
219
292
  if (loadSave != 2) {
@@ -242,13 +315,13 @@ const createCustomPersister = (
242
315
  };
243
316
  const isAutoLoading = () => !isUndefined(autoLoadHandle);
244
317
  const save = (changes) =>
245
- __async(void 0, null, function* () {
318
+ __async$6(void 0, null, function* () {
246
319
  /* istanbul ignore else */
247
320
  if (loadSave != 1) {
248
321
  loadSave = 2;
249
322
  saves++;
250
323
  yield schedule(() =>
251
- __async(void 0, null, function* () {
324
+ __async$6(void 0, null, function* () {
252
325
  try {
253
326
  yield setPersisted(getContent, changes);
254
327
  } catch (error) {
@@ -262,7 +335,7 @@ const createCustomPersister = (
262
335
  return persister;
263
336
  });
264
337
  const startAutoSave = () =>
265
- __async(void 0, null, function* () {
338
+ __async$6(void 0, null, function* () {
266
339
  yield stopAutoSave().save();
267
340
  autoSaveListenerId = store.addDidFinishTransactionListener(() => {
268
341
  const changes = getChanges();
@@ -279,7 +352,7 @@ const createCustomPersister = (
279
352
  };
280
353
  const isAutoSaving = () => !isUndefined(autoSaveListenerId);
281
354
  const schedule = (...actions) =>
282
- __async(void 0, null, function* () {
355
+ __async$6(void 0, null, function* () {
283
356
  arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
284
357
  yield run();
285
358
  return persister;
@@ -310,4 +383,1019 @@ const createCustomPersister = (
310
383
  return objFreeze(persister);
311
384
  };
312
385
 
313
- export {Persists, createCustomPersister};
386
+ var __async$5 = (__this, __arguments, generator) => {
387
+ return new Promise((resolve, reject) => {
388
+ var fulfilled = (value) => {
389
+ try {
390
+ step(generator.next(value));
391
+ } catch (e) {
392
+ reject(e);
393
+ }
394
+ };
395
+ var rejected = (value) => {
396
+ try {
397
+ step(generator.throw(value));
398
+ } catch (e) {
399
+ reject(e);
400
+ }
401
+ };
402
+ var step = (x) =>
403
+ x.done
404
+ ? resolve(x.value)
405
+ : Promise.resolve(x.value).then(fulfilled, rejected);
406
+ step((generator = generator.apply(__this, __arguments)).next());
407
+ });
408
+ };
409
+ const SINGLE_ROW_ID = '_';
410
+ const DEFAULT_ROW_ID_COLUMN_NAME = '_id';
411
+ const SELECT = 'SELECT';
412
+ const WHERE = 'WHERE';
413
+ const TABLE = 'TABLE';
414
+ const ALTER_TABLE = 'ALTER ' + TABLE;
415
+ const DELETE_FROM = 'DELETE FROM';
416
+ const SELECT_STAR_FROM = SELECT + '*FROM';
417
+ const PRAGMA = 'pragma_';
418
+ const DATA_VERSION = 'data_version';
419
+ const SCHEMA_VERSION = 'schema_version';
420
+ const FROM = 'FROM ';
421
+ const PRAGMA_TABLE = 'pragma_table_';
422
+ const getWrappedCommand = (executeCommand, onSqlCommand) =>
423
+ onSqlCommand
424
+ ? (sql, params) =>
425
+ __async$5(void 0, null, function* () {
426
+ onSqlCommand(sql, params);
427
+ return yield executeCommand(sql, params);
428
+ })
429
+ : executeCommand;
430
+ const escapeId = (str) => `"${str.replace(/"/g, '""')}"`;
431
+ const getPlaceholders = (array) =>
432
+ arrayJoin(
433
+ arrayMap(array, (_, index) => '$' + (index + 1)),
434
+ COMMA,
435
+ );
436
+
437
+ const jsonString = JSON.stringify;
438
+ const jsonParse = JSON.parse;
439
+ const jsonStringWithUndefined = (obj) =>
440
+ jsonString(obj, (_key, value) => (value === void 0 ? UNDEFINED : value));
441
+ const jsonParseWithUndefined = (str) =>
442
+ jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
443
+
444
+ const setNew = (entryOrEntries) =>
445
+ new Set(
446
+ isArray(entryOrEntries) || isUndefined(entryOrEntries)
447
+ ? entryOrEntries
448
+ : [entryOrEntries],
449
+ );
450
+ const setAdd = (set, value) => (set == null ? void 0 : set.add(value));
451
+
452
+ var __async$4 = (__this, __arguments, generator) => {
453
+ return new Promise((resolve, reject) => {
454
+ var fulfilled = (value) => {
455
+ try {
456
+ step(generator.next(value));
457
+ } catch (e) {
458
+ reject(e);
459
+ }
460
+ };
461
+ var rejected = (value) => {
462
+ try {
463
+ step(generator.throw(value));
464
+ } catch (e) {
465
+ reject(e);
466
+ }
467
+ };
468
+ var step = (x) =>
469
+ x.done
470
+ ? resolve(x.value)
471
+ : Promise.resolve(x.value).then(fulfilled, rejected);
472
+ step((generator = generator.apply(__this, __arguments)).next());
473
+ });
474
+ };
475
+ const getCommandFunctions = (
476
+ databaseExecuteCommand,
477
+ managedTableNames,
478
+ querySchema,
479
+ onIgnoredError,
480
+ columnType,
481
+ orReplace,
482
+ encode,
483
+ decode,
484
+ ) => {
485
+ const schemaMap = mapNew();
486
+ const canSelect = (tableName, rowIdColumnName) =>
487
+ collHas(mapGet(schemaMap, tableName), rowIdColumnName);
488
+ const refreshSchema = () =>
489
+ __async$4(void 0, null, function* () {
490
+ collClear(schemaMap);
491
+ arrayMap(
492
+ yield querySchema(databaseExecuteCommand, managedTableNames),
493
+ ({tn, cn}) => setAdd(mapEnsure(schemaMap, tn, setNew), cn),
494
+ );
495
+ });
496
+ const loadTable = (tableName, rowIdColumnName) =>
497
+ __async$4(void 0, null, function* () {
498
+ return canSelect(tableName, rowIdColumnName)
499
+ ? objNew(
500
+ arrayFilter(
501
+ arrayMap(
502
+ yield databaseExecuteCommand(
503
+ SELECT_STAR_FROM + escapeId(tableName),
504
+ ),
505
+ (row) => [
506
+ row[rowIdColumnName],
507
+ decode
508
+ ? objMap(objDel(row, rowIdColumnName), decode)
509
+ : objDel(row, rowIdColumnName),
510
+ ],
511
+ ),
512
+ ([rowId, row]) => !isUndefined(rowId) && !objIsEmpty(row),
513
+ ),
514
+ )
515
+ : {};
516
+ });
517
+ const saveTable = (
518
+ tableName,
519
+ rowIdColumnName,
520
+ content,
521
+ deleteEmptyColumns,
522
+ deleteEmptyTable,
523
+ partial = false,
524
+ ) =>
525
+ __async$4(void 0, null, function* () {
526
+ const tableCellOrValueIds = setNew();
527
+ objToArray(content != null ? content : {}, (contentRow) =>
528
+ arrayMap(
529
+ objIds(contentRow != null ? contentRow : {}),
530
+ (cellOrValueId) => setAdd(tableCellOrValueIds, cellOrValueId),
531
+ ),
532
+ );
533
+ const tableColumnNames = collValues(tableCellOrValueIds);
534
+ if (
535
+ !partial &&
536
+ deleteEmptyTable &&
537
+ arrayIsEmpty(tableColumnNames) &&
538
+ collHas(schemaMap, tableName)
539
+ ) {
540
+ yield databaseExecuteCommand('DROP ' + TABLE + escapeId(tableName));
541
+ mapSet(schemaMap, tableName);
542
+ return;
543
+ }
544
+ const tableSchemaColumns = mapGet(schemaMap, tableName);
545
+ const currentColumnNames = setNew(collValues(tableSchemaColumns));
546
+ if (!arrayIsEmpty(tableColumnNames)) {
547
+ if (!collHas(schemaMap, tableName)) {
548
+ yield databaseExecuteCommand(
549
+ 'CREATE ' +
550
+ TABLE +
551
+ escapeId(tableName) +
552
+ `(${escapeId(rowIdColumnName)}${columnType} PRIMARY KEY${arrayJoin(
553
+ arrayMap(
554
+ tableColumnNames,
555
+ (columnName) => COMMA + escapeId(columnName) + columnType,
556
+ ),
557
+ )});`,
558
+ );
559
+ mapSet(
560
+ schemaMap,
561
+ tableName,
562
+ setNew([rowIdColumnName, ...tableColumnNames]),
563
+ );
564
+ } else {
565
+ yield promiseAll(
566
+ arrayMap(
567
+ [rowIdColumnName, ...tableColumnNames],
568
+ (columnName, index) =>
569
+ __async$4(void 0, null, function* () {
570
+ if (!collDel(currentColumnNames, columnName)) {
571
+ yield databaseExecuteCommand(
572
+ ALTER_TABLE +
573
+ escapeId(tableName) +
574
+ 'ADD' +
575
+ escapeId(columnName) +
576
+ columnType,
577
+ );
578
+ if (index == 0) {
579
+ yield databaseExecuteCommand(
580
+ 'CREATE UNIQUE INDEX pk ON ' +
581
+ escapeId(tableName) +
582
+ `(${escapeId(rowIdColumnName)})`,
583
+ );
584
+ }
585
+ setAdd(tableSchemaColumns, columnName);
586
+ }
587
+ }),
588
+ ),
589
+ );
590
+ }
591
+ }
592
+ yield promiseAll([
593
+ ...(!partial && deleteEmptyColumns
594
+ ? arrayMap(collValues(currentColumnNames), (columnName) =>
595
+ __async$4(void 0, null, function* () {
596
+ if (columnName != rowIdColumnName) {
597
+ yield databaseExecuteCommand(
598
+ ALTER_TABLE +
599
+ escapeId(tableName) +
600
+ 'DROP' +
601
+ escapeId(columnName),
602
+ );
603
+ collDel(tableSchemaColumns, columnName);
604
+ }
605
+ }),
606
+ )
607
+ : []),
608
+ ]);
609
+ if (partial) {
610
+ if (isUndefined(content)) {
611
+ yield databaseExecuteCommand(
612
+ DELETE_FROM + escapeId(tableName) + WHERE + ' true',
613
+ );
614
+ } else {
615
+ yield promiseAll(
616
+ objToArray(content, (row, rowId) =>
617
+ __async$4(void 0, null, function* () {
618
+ if (isUndefined(row)) {
619
+ yield databaseExecuteCommand(
620
+ DELETE_FROM +
621
+ escapeId(tableName) +
622
+ WHERE +
623
+ escapeId(rowIdColumnName) +
624
+ '=$1',
625
+ [rowId],
626
+ );
627
+ } else if (!arrayIsEmpty(tableColumnNames)) {
628
+ yield upsert(
629
+ databaseExecuteCommand,
630
+ tableName,
631
+ rowIdColumnName,
632
+ objIds(row),
633
+ [
634
+ rowId,
635
+ ...(encode
636
+ ? arrayMap(objValues(row), encode)
637
+ : objValues(row)),
638
+ ],
639
+ orReplace,
640
+ );
641
+ }
642
+ }),
643
+ ),
644
+ );
645
+ }
646
+ } else {
647
+ if (!arrayIsEmpty(tableColumnNames)) {
648
+ const changingColumnNames = arrayFilter(
649
+ collValues(mapGet(schemaMap, tableName)),
650
+ (columnName) => columnName != rowIdColumnName,
651
+ );
652
+ const params = [];
653
+ const deleteRowIds = [];
654
+ objToArray(content != null ? content : {}, (row, rowId) => {
655
+ arrayPush(
656
+ params,
657
+ rowId,
658
+ ...arrayMap(changingColumnNames, (cellId) =>
659
+ encode
660
+ ? encode(row == null ? void 0 : row[cellId])
661
+ : row == null
662
+ ? void 0
663
+ : row[cellId],
664
+ ),
665
+ );
666
+ arrayPush(deleteRowIds, rowId);
667
+ });
668
+ yield upsert(
669
+ databaseExecuteCommand,
670
+ tableName,
671
+ rowIdColumnName,
672
+ changingColumnNames,
673
+ params,
674
+ orReplace,
675
+ );
676
+ yield databaseExecuteCommand(
677
+ DELETE_FROM +
678
+ escapeId(tableName) +
679
+ WHERE +
680
+ escapeId(rowIdColumnName) +
681
+ `NOT IN(${getPlaceholders(deleteRowIds)})`,
682
+ deleteRowIds,
683
+ );
684
+ } else if (collHas(schemaMap, tableName)) {
685
+ yield databaseExecuteCommand(
686
+ DELETE_FROM + escapeId(tableName) + WHERE + ' true',
687
+ );
688
+ }
689
+ }
690
+ });
691
+ const transaction = (actions) =>
692
+ __async$4(void 0, null, function* () {
693
+ let result;
694
+ yield databaseExecuteCommand('BEGIN');
695
+ try {
696
+ result = yield actions();
697
+ } catch (error) {
698
+ onIgnoredError == null ? void 0 : onIgnoredError(error);
699
+ }
700
+ yield databaseExecuteCommand('END');
701
+ return result;
702
+ });
703
+ return [refreshSchema, loadTable, saveTable, transaction];
704
+ };
705
+ const upsert = (
706
+ executeCommand,
707
+ tableName,
708
+ rowIdColumnName,
709
+ changingColumnNames,
710
+ params,
711
+ orReplace = 0,
712
+ ) =>
713
+ __async$4(void 0, null, function* () {
714
+ return yield executeCommand(
715
+ 'INSERT ' +
716
+ (orReplace ? 'OR REPLACE ' : EMPTY_STRING) +
717
+ 'INTO' +
718
+ escapeId(tableName) +
719
+ '(' +
720
+ escapeId(rowIdColumnName) +
721
+ arrayJoin(
722
+ arrayMap(
723
+ changingColumnNames,
724
+ (columnName) => COMMA + escapeId(columnName),
725
+ ),
726
+ ) +
727
+ ')VALUES' +
728
+ getUpsertPlaceholders(params, size(changingColumnNames) + 1) +
729
+ (orReplace
730
+ ? EMPTY_STRING
731
+ : 'ON CONFLICT(' +
732
+ escapeId(rowIdColumnName) +
733
+ ')DO UPDATE SET' +
734
+ arrayJoin(
735
+ arrayMap(
736
+ changingColumnNames,
737
+ (columnName) =>
738
+ escapeId(columnName) + '=excluded.' + escapeId(columnName),
739
+ ),
740
+ COMMA,
741
+ )),
742
+ arrayMap(params, (param) => (param != null ? param : null)),
743
+ );
744
+ });
745
+ const getUpsertPlaceholders = (array, columnCount) =>
746
+ arrayJoin(
747
+ arrayNew(
748
+ size(array) / columnCount,
749
+ (row) =>
750
+ '(' +
751
+ arrayJoin(
752
+ arrayNew(
753
+ columnCount,
754
+ (column) => '$' + (row * columnCount + column + 1),
755
+ ),
756
+ COMMA,
757
+ ) +
758
+ ')',
759
+ ),
760
+ COMMA,
761
+ );
762
+
763
+ var __async$3 = (__this, __arguments, generator) => {
764
+ return new Promise((resolve, reject) => {
765
+ var fulfilled = (value) => {
766
+ try {
767
+ step(generator.next(value));
768
+ } catch (e) {
769
+ reject(e);
770
+ }
771
+ };
772
+ var rejected = (value) => {
773
+ try {
774
+ step(generator.throw(value));
775
+ } catch (e) {
776
+ reject(e);
777
+ }
778
+ };
779
+ var step = (x) =>
780
+ x.done
781
+ ? resolve(x.value)
782
+ : Promise.resolve(x.value).then(fulfilled, rejected);
783
+ step((generator = generator.apply(__this, __arguments)).next());
784
+ });
785
+ };
786
+ const createJsonPersister = (
787
+ store,
788
+ executeCommand,
789
+ addPersisterListener,
790
+ delPersisterListener,
791
+ onIgnoredError,
792
+ destroyImpl,
793
+ persist,
794
+ [storeTableName, storeIdColumnName, storeColumnName],
795
+ managedTableNames,
796
+ querySchema,
797
+ thing,
798
+ getThing,
799
+ columnType,
800
+ orReplace,
801
+ ) => {
802
+ const [refreshSchema, loadTable, saveTable, transaction] =
803
+ getCommandFunctions(
804
+ executeCommand,
805
+ managedTableNames,
806
+ querySchema,
807
+ onIgnoredError,
808
+ columnType,
809
+ orReplace,
810
+ );
811
+ const getPersisted = () =>
812
+ __async$3(void 0, null, function* () {
813
+ return yield transaction(() =>
814
+ __async$3(void 0, null, function* () {
815
+ var _a, _b;
816
+ yield refreshSchema();
817
+ return jsonParseWithUndefined(
818
+ (_b =
819
+ (_a = (yield loadTable(storeTableName, storeIdColumnName))[
820
+ SINGLE_ROW_ID
821
+ ]) == null
822
+ ? void 0
823
+ : _a[storeColumnName]) != null
824
+ ? _b
825
+ : 'null',
826
+ );
827
+ }),
828
+ );
829
+ });
830
+ const setPersisted = (getContent) =>
831
+ __async$3(void 0, null, function* () {
832
+ return yield transaction(() =>
833
+ __async$3(void 0, null, function* () {
834
+ var _a;
835
+ yield refreshSchema();
836
+ yield saveTable(
837
+ storeTableName,
838
+ storeIdColumnName,
839
+ {
840
+ [SINGLE_ROW_ID]: {
841
+ [storeColumnName]: jsonStringWithUndefined(
842
+ (_a = getContent()) != null ? _a : null,
843
+ ),
844
+ },
845
+ },
846
+ true,
847
+ true,
848
+ );
849
+ }),
850
+ );
851
+ });
852
+ const destroy = () => {
853
+ persister.stopAutoLoad().stopAutoSave();
854
+ destroyImpl();
855
+ return persister;
856
+ };
857
+ const persister = createCustomPersister(
858
+ store,
859
+ getPersisted,
860
+ setPersisted,
861
+ addPersisterListener,
862
+ delPersisterListener,
863
+ onIgnoredError,
864
+ persist,
865
+ {[getThing]: () => thing, destroy},
866
+ thing,
867
+ );
868
+ return persister;
869
+ };
870
+
871
+ var __async$2 = (__this, __arguments, generator) => {
872
+ return new Promise((resolve, reject) => {
873
+ var fulfilled = (value) => {
874
+ try {
875
+ step(generator.next(value));
876
+ } catch (e) {
877
+ reject(e);
878
+ }
879
+ };
880
+ var rejected = (value) => {
881
+ try {
882
+ step(generator.throw(value));
883
+ } catch (e) {
884
+ reject(e);
885
+ }
886
+ };
887
+ var step = (x) =>
888
+ x.done
889
+ ? resolve(x.value)
890
+ : Promise.resolve(x.value).then(fulfilled, rejected);
891
+ step((generator = generator.apply(__this, __arguments)).next());
892
+ });
893
+ };
894
+ const createTabularPersister = (
895
+ store,
896
+ executeCommand,
897
+ addPersisterListener,
898
+ delPersisterListener,
899
+ onIgnoredError,
900
+ destroyImpl,
901
+ persist,
902
+ [
903
+ tablesLoadConfig,
904
+ tablesSaveConfig,
905
+ [valuesLoad, valuesSave, valuesTableName],
906
+ ],
907
+ managedTableNames,
908
+ querySchema,
909
+ thing,
910
+ getThing,
911
+ columnType,
912
+ orReplace,
913
+ encode,
914
+ decode,
915
+ ) => {
916
+ const [refreshSchema, loadTable, saveTable, transaction] =
917
+ getCommandFunctions(
918
+ executeCommand,
919
+ managedTableNames,
920
+ querySchema,
921
+ onIgnoredError,
922
+ columnType,
923
+ orReplace,
924
+ encode,
925
+ decode,
926
+ );
927
+ const saveTables = (tables, partial) =>
928
+ __async$2(void 0, null, function* () {
929
+ return yield promiseAll(
930
+ mapMap(tablesSaveConfig, (_0, _1) =>
931
+ __async$2(
932
+ void 0,
933
+ [_0, _1],
934
+ function* (
935
+ [
936
+ tableName,
937
+ rowIdColumnName,
938
+ deleteEmptyColumns,
939
+ deleteEmptyTable,
940
+ ],
941
+ tableId,
942
+ ) {
943
+ if (!partial || objHas(tables, tableId)) {
944
+ yield saveTable(
945
+ tableName,
946
+ rowIdColumnName,
947
+ tables[tableId],
948
+ deleteEmptyColumns,
949
+ deleteEmptyTable,
950
+ partial,
951
+ );
952
+ }
953
+ },
954
+ ),
955
+ ),
956
+ );
957
+ });
958
+ const saveValues = (values, partial) =>
959
+ __async$2(void 0, null, function* () {
960
+ return valuesSave
961
+ ? yield saveTable(
962
+ valuesTableName,
963
+ DEFAULT_ROW_ID_COLUMN_NAME,
964
+ {[SINGLE_ROW_ID]: values},
965
+ true,
966
+ true,
967
+ partial,
968
+ )
969
+ : null;
970
+ });
971
+ const loadTables = () =>
972
+ __async$2(void 0, null, function* () {
973
+ return objNew(
974
+ arrayFilter(
975
+ yield promiseAll(
976
+ mapMap(tablesLoadConfig, (_0, _1) =>
977
+ __async$2(
978
+ void 0,
979
+ [_0, _1],
980
+ function* ([tableId, rowIdColumnName], tableName) {
981
+ return [tableId, yield loadTable(tableName, rowIdColumnName)];
982
+ },
983
+ ),
984
+ ),
985
+ ),
986
+ (pair) => !objIsEmpty(pair[1]),
987
+ ),
988
+ );
989
+ });
990
+ const loadValues = () =>
991
+ __async$2(void 0, null, function* () {
992
+ return valuesLoad
993
+ ? (yield loadTable(valuesTableName, DEFAULT_ROW_ID_COLUMN_NAME))[
994
+ SINGLE_ROW_ID
995
+ ]
996
+ : {};
997
+ });
998
+ const getPersisted = () =>
999
+ __async$2(void 0, null, function* () {
1000
+ return yield transaction(() =>
1001
+ __async$2(void 0, null, function* () {
1002
+ yield refreshSchema();
1003
+ const tables = yield loadTables();
1004
+ const values = yield loadValues();
1005
+ return !objIsEmpty(tables) || !isUndefined(values)
1006
+ ? [tables, values]
1007
+ : void 0;
1008
+ }),
1009
+ );
1010
+ });
1011
+ const setPersisted = (getContent, changes) =>
1012
+ __async$2(void 0, null, function* () {
1013
+ return yield transaction(() =>
1014
+ __async$2(void 0, null, function* () {
1015
+ yield refreshSchema();
1016
+ if (!isUndefined(changes)) {
1017
+ yield saveTables(changes[0], true);
1018
+ yield saveValues(changes[1], true);
1019
+ } else {
1020
+ const [tables, values] = getContent();
1021
+ yield saveTables(tables);
1022
+ yield saveValues(values);
1023
+ }
1024
+ }),
1025
+ );
1026
+ });
1027
+ const destroy = () => {
1028
+ persister.stopAutoLoad().stopAutoSave();
1029
+ destroyImpl();
1030
+ return persister;
1031
+ };
1032
+ const persister = createCustomPersister(
1033
+ store,
1034
+ getPersisted,
1035
+ setPersisted,
1036
+ addPersisterListener,
1037
+ delPersisterListener,
1038
+ onIgnoredError,
1039
+ persist,
1040
+ {[getThing]: () => thing, destroy},
1041
+ thing,
1042
+ );
1043
+ return persister;
1044
+ };
1045
+
1046
+ const COLUMN_NAME = 'ColumnName';
1047
+ const STORE = 'store';
1048
+ const JSON$1 = 'json';
1049
+ const STORE_TABLE_NAME = STORE + 'TableName';
1050
+ const STORE_ID_COLUMN_NAME = STORE + 'Id' + COLUMN_NAME;
1051
+ const STORE_COLUMN_NAME = STORE + COLUMN_NAME;
1052
+ const AUTO_LOAD_INTERVAL_SECONDS = 'autoLoadIntervalSeconds';
1053
+ const ROW_ID_COLUMN_NAME = 'rowId' + COLUMN_NAME;
1054
+ const TABLE_ID = 'tableId';
1055
+ const TABLE_NAME = 'tableName';
1056
+ const DELETE_EMPTY_COLUMNS = 'deleteEmptyColumns';
1057
+ const DELETE_EMPTY_TABLE = 'deleteEmptyTable';
1058
+ const DEFAULT_CONFIG = {
1059
+ mode: JSON$1,
1060
+ [AUTO_LOAD_INTERVAL_SECONDS]: 1,
1061
+ };
1062
+ const DEFAULT_TABULAR_VALUES_CONFIG = {
1063
+ load: 0,
1064
+ save: 0,
1065
+ [TABLE_NAME]: TINYBASE + '_values',
1066
+ };
1067
+ const getDefaultedConfig = (configOrStoreTableName) =>
1068
+ objMerge(
1069
+ DEFAULT_CONFIG,
1070
+ isString(configOrStoreTableName)
1071
+ ? {[STORE_TABLE_NAME]: configOrStoreTableName}
1072
+ : configOrStoreTableName != null
1073
+ ? configOrStoreTableName
1074
+ : {},
1075
+ );
1076
+ const getDefaultedTabularConfigMap = (
1077
+ configsObj,
1078
+ defaultObj,
1079
+ tableField,
1080
+ exclude,
1081
+ then,
1082
+ ) => {
1083
+ const configMap = mapNew();
1084
+ objToArray(configsObj, (configObj, id) => {
1085
+ const defaultedConfig = slice(
1086
+ objValues(
1087
+ objMerge(
1088
+ defaultObj,
1089
+ isString(configObj) ? {[tableField]: configObj} : configObj,
1090
+ ),
1091
+ ),
1092
+ 0,
1093
+ objSize(defaultObj),
1094
+ );
1095
+ if (!isUndefined(defaultedConfig[0]) && !exclude(id, defaultedConfig[0])) {
1096
+ then(id, defaultedConfig[0]);
1097
+ mapSet(configMap, id, defaultedConfig);
1098
+ }
1099
+ });
1100
+ return configMap;
1101
+ };
1102
+ const getConfigStructures = (configOrStoreTableName) => {
1103
+ var _a, _b, _c;
1104
+ const config = getDefaultedConfig(configOrStoreTableName);
1105
+ const autoLoadIntervalSeconds = config[AUTO_LOAD_INTERVAL_SECONDS];
1106
+ if (config.mode == JSON$1) {
1107
+ const storeTableName =
1108
+ (_a = config[STORE_TABLE_NAME]) != null ? _a : TINYBASE;
1109
+ return [
1110
+ 1,
1111
+ autoLoadIntervalSeconds,
1112
+ [
1113
+ storeTableName,
1114
+ (_b = config[STORE_ID_COLUMN_NAME]) != null
1115
+ ? _b
1116
+ : DEFAULT_ROW_ID_COLUMN_NAME,
1117
+ (_c = config[STORE_COLUMN_NAME]) != null ? _c : STORE,
1118
+ ],
1119
+ setNew(storeTableName),
1120
+ ];
1121
+ }
1122
+ const {tables: {load = {}, save = {}} = {}, values = {}} = config;
1123
+ const valuesConfig = slice(
1124
+ objValues(objMerge(DEFAULT_TABULAR_VALUES_CONFIG, values)),
1125
+ 0,
1126
+ objSize(DEFAULT_TABULAR_VALUES_CONFIG),
1127
+ );
1128
+ const valuesTable = valuesConfig[2];
1129
+ const managedTableNames = setNew(valuesTable);
1130
+ const excludedTableNames = setNew(valuesTable);
1131
+ const tabularConfig = [
1132
+ getDefaultedTabularConfigMap(
1133
+ load,
1134
+ {[TABLE_ID]: null, [ROW_ID_COLUMN_NAME]: DEFAULT_ROW_ID_COLUMN_NAME},
1135
+ TABLE_ID,
1136
+ (tableName) => collHas(excludedTableNames, tableName),
1137
+ (tableName) => setAdd(managedTableNames, tableName),
1138
+ ),
1139
+ getDefaultedTabularConfigMap(
1140
+ save,
1141
+ {
1142
+ [TABLE_NAME]: null,
1143
+ [ROW_ID_COLUMN_NAME]: DEFAULT_ROW_ID_COLUMN_NAME,
1144
+ [DELETE_EMPTY_COLUMNS]: 0,
1145
+ [DELETE_EMPTY_TABLE]: 0,
1146
+ },
1147
+ TABLE_NAME,
1148
+ (_, tableName) => collHas(excludedTableNames, tableName),
1149
+ (_, tableName) => setAdd(managedTableNames, tableName),
1150
+ ),
1151
+ valuesConfig,
1152
+ ];
1153
+ return [0, autoLoadIntervalSeconds, tabularConfig, managedTableNames];
1154
+ };
1155
+
1156
+ var __async$1 = (__this, __arguments, generator) => {
1157
+ return new Promise((resolve, reject) => {
1158
+ var fulfilled = (value) => {
1159
+ try {
1160
+ step(generator.next(value));
1161
+ } catch (e) {
1162
+ reject(e);
1163
+ }
1164
+ };
1165
+ var rejected = (value) => {
1166
+ try {
1167
+ step(generator.throw(value));
1168
+ } catch (e) {
1169
+ reject(e);
1170
+ }
1171
+ };
1172
+ var step = (x) =>
1173
+ x.done
1174
+ ? resolve(x.value)
1175
+ : Promise.resolve(x.value).then(fulfilled, rejected);
1176
+ step((generator = generator.apply(__this, __arguments)).next());
1177
+ });
1178
+ };
1179
+ const createCustomSqlitePersister = (
1180
+ store,
1181
+ configOrStoreTableName,
1182
+ rawExecuteCommand,
1183
+ addChangeListener,
1184
+ delChangeListener,
1185
+ onSqlCommand,
1186
+ onIgnoredError,
1187
+ destroy,
1188
+ persist,
1189
+ thing,
1190
+ getThing = 'getDb',
1191
+ orReplace,
1192
+ ) => {
1193
+ let dataVersion;
1194
+ let schemaVersion;
1195
+ let totalChanges;
1196
+ const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
1197
+ const [
1198
+ isJson,
1199
+ autoLoadIntervalSeconds,
1200
+ defaultedConfig,
1201
+ managedTableNamesSet,
1202
+ ] = getConfigStructures(configOrStoreTableName);
1203
+ const addPersisterListener = (listener) => {
1204
+ let interval;
1205
+ const startPolling = () =>
1206
+ (interval = startInterval(
1207
+ () =>
1208
+ __async$1(void 0, null, function* () {
1209
+ try {
1210
+ const [{d, s, c}] = yield executeCommand(
1211
+ // eslint-disable-next-line max-len
1212
+ `${SELECT} ${DATA_VERSION} d,${SCHEMA_VERSION} s,TOTAL_CHANGES() c FROM ${PRAGMA}${DATA_VERSION} JOIN ${PRAGMA}${SCHEMA_VERSION}`,
1213
+ );
1214
+ if (d != dataVersion || s != schemaVersion || c != totalChanges) {
1215
+ if (dataVersion != null) {
1216
+ listener();
1217
+ }
1218
+ dataVersion = d;
1219
+ schemaVersion = s;
1220
+ totalChanges = c;
1221
+ }
1222
+ } catch (e) {}
1223
+ }),
1224
+ autoLoadIntervalSeconds,
1225
+ ));
1226
+ const stopPolling = () => {
1227
+ dataVersion = schemaVersion = totalChanges = null;
1228
+ stopInterval(interval);
1229
+ };
1230
+ const listeningHandle = addChangeListener((tableName) => {
1231
+ if (managedTableNamesSet.has(tableName)) {
1232
+ stopPolling();
1233
+ listener();
1234
+ startPolling();
1235
+ }
1236
+ });
1237
+ startPolling();
1238
+ return () => {
1239
+ stopPolling();
1240
+ delChangeListener(listeningHandle);
1241
+ };
1242
+ };
1243
+ const delPersisterListener = (stopPollingAndDelUpdateListener) =>
1244
+ stopPollingAndDelUpdateListener();
1245
+ return (isJson ? createJsonPersister : createTabularPersister)(
1246
+ store,
1247
+ executeCommand,
1248
+ addPersisterListener,
1249
+ delPersisterListener,
1250
+ onIgnoredError,
1251
+ destroy,
1252
+ persist,
1253
+ defaultedConfig,
1254
+ collValues(managedTableNamesSet),
1255
+ (executeCommand2, managedTableNames) =>
1256
+ __async$1(void 0, null, function* () {
1257
+ return yield executeCommand2(
1258
+ // eslint-disable-next-line max-len
1259
+ `${SELECT} t.name tn,c.name cn ${FROM}${PRAGMA_TABLE}list()t,${PRAGMA_TABLE}info(t.name)c ${WHERE} t.schema='main'AND t.type IN('table','view')AND t.name IN(${getPlaceholders(managedTableNames)})ORDER BY t.name,c.name`,
1260
+ managedTableNames,
1261
+ );
1262
+ }),
1263
+ thing,
1264
+ getThing,
1265
+ EMPTY_STRING,
1266
+ orReplace,
1267
+ (cellOrValue) =>
1268
+ cellOrValue === true ? 1 : cellOrValue === false ? 0 : cellOrValue,
1269
+ void 0,
1270
+ );
1271
+ };
1272
+
1273
+ var __async = (__this, __arguments, generator) => {
1274
+ return new Promise((resolve, reject) => {
1275
+ var fulfilled = (value) => {
1276
+ try {
1277
+ step(generator.next(value));
1278
+ } catch (e) {
1279
+ reject(e);
1280
+ }
1281
+ };
1282
+ var rejected = (value) => {
1283
+ try {
1284
+ step(generator.throw(value));
1285
+ } catch (e) {
1286
+ reject(e);
1287
+ }
1288
+ };
1289
+ var step = (x) =>
1290
+ x.done
1291
+ ? resolve(x.value)
1292
+ : Promise.resolve(x.value).then(fulfilled, rejected);
1293
+ step((generator = generator.apply(__this, __arguments)).next());
1294
+ });
1295
+ };
1296
+ const EVENT_CHANNEL = TINYBASE;
1297
+ const EVENT_REGEX = /^([cd]:)(.+)/;
1298
+ const CHANGE_DATA_TRIGGER = TINYBASE + '_data';
1299
+ const CREATE_TABLE_TRIGGER = TINYBASE + '_table';
1300
+ const createCustomPostgreSqlPersister = (
1301
+ store,
1302
+ configOrStoreTableName,
1303
+ rawExecuteCommand,
1304
+ addChangeListener,
1305
+ delChangeListener,
1306
+ onSqlCommand,
1307
+ onIgnoredError,
1308
+ destroy,
1309
+ persist,
1310
+ thing,
1311
+ getThing = 'getDb',
1312
+ ) => {
1313
+ const executeCommand = getWrappedCommand(rawExecuteCommand, onSqlCommand);
1314
+ const [isJson, , defaultedConfig, managedTableNamesSet] = getConfigStructures(
1315
+ configOrStoreTableName,
1316
+ );
1317
+ const addDataTrigger = (tableName) =>
1318
+ __async(void 0, null, function* () {
1319
+ yield executeCommand(
1320
+ // eslint-disable-next-line max-len
1321
+ `CREATE OR REPLACE TRIGGER ${escapeId(CHANGE_DATA_TRIGGER + '_' + tableName)} AFTER INSERT OR UPDATE OR DELETE ON ${escapeId(tableName)} EXECUTE FUNCTION ${CHANGE_DATA_TRIGGER}()`,
1322
+ );
1323
+ });
1324
+ const addPersisterListener = (listener) =>
1325
+ __async(void 0, null, function* () {
1326
+ yield executeCommand(
1327
+ // eslint-disable-next-line max-len
1328
+ `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;`,
1329
+ );
1330
+ try {
1331
+ yield executeCommand(
1332
+ // eslint-disable-next-line max-len
1333
+ `CREATE EVENT TRIGGER ${CREATE_TABLE_TRIGGER} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${CREATE_TABLE_TRIGGER}();`,
1334
+ );
1335
+ } catch (e) {}
1336
+ yield executeCommand(
1337
+ // eslint-disable-next-line max-len
1338
+ `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;`,
1339
+ );
1340
+ yield promiseAll(
1341
+ arrayMap(collValues(managedTableNamesSet), (tableName) =>
1342
+ __async(void 0, null, function* () {
1343
+ yield executeCommand(
1344
+ // eslint-disable-next-line max-len
1345
+ `CREATE TABLE IF NOT EXISTS ${escapeId(tableName)}("_id"text PRIMARY KEY)`,
1346
+ );
1347
+ yield addDataTrigger(tableName);
1348
+ }),
1349
+ ),
1350
+ );
1351
+ return yield addChangeListener(EVENT_CHANNEL, (prefixAndTableName) =>
1352
+ __async(void 0, null, function* () {
1353
+ return yield ifNotUndefined(
1354
+ strMatch(prefixAndTableName, EVENT_REGEX),
1355
+ (_0) =>
1356
+ __async(void 0, [_0], function* ([, eventType, tableName]) {
1357
+ if (collHas(managedTableNamesSet, tableName)) {
1358
+ if (eventType == 'c:') {
1359
+ yield addDataTrigger(tableName);
1360
+ }
1361
+ listener();
1362
+ }
1363
+ }),
1364
+ );
1365
+ }),
1366
+ );
1367
+ });
1368
+ const delPersisterListener = delChangeListener;
1369
+ return (isJson ? createJsonPersister : createTabularPersister)(
1370
+ store,
1371
+ executeCommand,
1372
+ addPersisterListener,
1373
+ delPersisterListener,
1374
+ onIgnoredError,
1375
+ destroy,
1376
+ persist,
1377
+ defaultedConfig,
1378
+ collValues(managedTableNamesSet),
1379
+ (executeCommand2, managedTableNames) =>
1380
+ __async(void 0, null, function* () {
1381
+ return yield executeCommand2(
1382
+ // eslint-disable-next-line max-len
1383
+ `${SELECT} table_name tn,column_name cn FROM information_schema.columns ${WHERE} table_schema='public'AND table_name IN(${getPlaceholders(managedTableNames)})`,
1384
+ managedTableNames,
1385
+ );
1386
+ }),
1387
+ thing,
1388
+ getThing,
1389
+ 'text',
1390
+ 0,
1391
+ (cellOrValue) => jsonString(cellOrValue),
1392
+ (field) => jsonParse(field),
1393
+ );
1394
+ };
1395
+
1396
+ export {
1397
+ Persists,
1398
+ createCustomPersister,
1399
+ createCustomPostgreSqlPersister,
1400
+ createCustomSqlitePersister,
1401
+ };