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