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