tinybase 5.2.0-beta.3 → 5.2.0-beta.5

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 (855) 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 +188 -13
  6. package/@types/persisters/index.d.ts +188 -13
  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 +178 -0
  24. package/@types/persisters/persister-pglite/index.d.ts +178 -0
  25. package/@types/persisters/persister-pglite/with-schemas/index.d.cts +197 -0
  26. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +197 -0
  27. package/@types/persisters/persister-postgres/index.d.cts +3 -2
  28. package/@types/persisters/persister-postgres/index.d.ts +3 -2
  29. package/@types/persisters/persister-postgres/with-schemas/index.d.cts +4 -3
  30. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +4 -3
  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 +238 -16
  44. package/@types/persisters/with-schemas/index.d.ts +238 -16
  45. package/@types/synchronizers/index.d.cts +2 -5
  46. package/@types/synchronizers/index.d.ts +2 -5
  47. package/@types/synchronizers/with-schemas/index.d.cts +2 -5
  48. package/@types/synchronizers/with-schemas/index.d.ts +2 -5
  49. package/cjs/es6/index.cjs +57 -568
  50. package/cjs/es6/mergeable-store/index.cjs +12 -8
  51. package/cjs/es6/mergeable-store/with-schemas/index.cjs +12 -8
  52. package/cjs/es6/min/index.cjs +1 -1
  53. package/cjs/es6/min/index.cjs.gz +0 -0
  54. package/cjs/es6/min/mergeable-store/index.cjs +1 -1
  55. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  56. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
  57. package/cjs/es6/min/mergeable-store/with-schemas/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-browser/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-browser/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  65. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  66. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  67. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  69. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  70. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  71. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  73. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  74. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/persisters/persister-file/index.cjs +1 -1
  77. package/cjs/es6/min/persisters/persister-file/index.cjs.gz +0 -0
  78. package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs +1 -1
  79. package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
  80. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  81. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  82. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  83. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  84. package/cjs/es6/min/persisters/persister-partykit-client/index.cjs +1 -1
  85. package/cjs/es6/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
  86. package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
  87. package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
  88. package/cjs/es6/min/persisters/persister-partykit-server/index.cjs +1 -1
  89. package/cjs/es6/min/persisters/persister-partykit-server/index.cjs.gz +0 -0
  90. package/cjs/es6/min/persisters/persister-partykit-server/with-schemas/index.cjs +1 -1
  91. package/cjs/es6/min/persisters/persister-partykit-server/with-schemas/index.cjs.gz +0 -0
  92. package/cjs/es6/min/persisters/persister-pglite/index.cjs +1 -0
  93. package/cjs/es6/min/persisters/persister-pglite/index.cjs.gz +0 -0
  94. package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs +1 -0
  95. package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
  96. package/cjs/es6/min/persisters/persister-postgres/index.cjs +1 -1
  97. package/cjs/es6/min/persisters/persister-postgres/index.cjs.gz +0 -0
  98. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  99. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  100. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  101. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  102. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  103. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  104. package/cjs/es6/min/persisters/persister-remote/index.cjs +1 -1
  105. package/cjs/es6/min/persisters/persister-remote/index.cjs.gz +0 -0
  106. package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs +1 -1
  107. package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs.gz +0 -0
  108. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  109. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  110. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  111. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  112. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  113. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  114. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  115. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  116. package/cjs/es6/min/persisters/with-schemas/index.cjs +1 -1
  117. package/cjs/es6/min/persisters/with-schemas/index.cjs.gz +0 -0
  118. package/cjs/es6/min/store/index.cjs +1 -1
  119. package/cjs/es6/min/store/index.cjs.gz +0 -0
  120. package/cjs/es6/min/store/with-schemas/index.cjs +1 -1
  121. package/cjs/es6/min/store/with-schemas/index.cjs.gz +0 -0
  122. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  123. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  124. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  125. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  126. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  127. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  128. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  129. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  130. package/cjs/es6/min/ui-react-inspector/index.cjs +1 -1
  131. package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
  132. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  133. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  134. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  135. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  136. package/cjs/es6/persisters/index.cjs +1095 -10
  137. package/cjs/es6/persisters/persister-browser/index.cjs +3 -2
  138. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +3 -2
  139. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +123 -106
  140. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +123 -106
  141. package/cjs/es6/persisters/persister-electric-sql/index.cjs +121 -104
  142. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +121 -104
  143. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +123 -106
  144. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +123 -106
  145. package/cjs/es6/persisters/persister-file/index.cjs +4 -2
  146. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +4 -2
  147. package/cjs/es6/persisters/persister-indexed-db/index.cjs +2 -2
  148. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
  149. package/cjs/es6/persisters/persister-libsql/index.cjs +121 -104
  150. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +121 -104
  151. package/cjs/es6/persisters/persister-partykit-client/index.cjs +3 -2
  152. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +3 -2
  153. package/cjs/es6/persisters/persister-partykit-server/index.cjs +3 -2
  154. package/cjs/es6/persisters/persister-partykit-server/with-schemas/index.cjs +3 -2
  155. package/cjs/es6/persisters/persister-pglite/index.cjs +1327 -0
  156. package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +1327 -0
  157. package/cjs/es6/persisters/persister-postgres/index.cjs +126 -111
  158. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +126 -111
  159. package/cjs/es6/persisters/persister-powersync/index.cjs +125 -108
  160. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +125 -108
  161. package/cjs/es6/persisters/persister-remote/index.cjs +3 -2
  162. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +3 -2
  163. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +127 -106
  164. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +127 -106
  165. package/cjs/es6/persisters/persister-sqlite3/index.cjs +123 -106
  166. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +123 -106
  167. package/cjs/es6/persisters/with-schemas/index.cjs +1095 -10
  168. package/cjs/es6/store/index.cjs +3 -2
  169. package/cjs/es6/store/with-schemas/index.cjs +3 -2
  170. package/cjs/es6/synchronizers/index.cjs +9 -6
  171. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +9 -6
  172. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +9 -6
  173. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +9 -6
  174. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +9 -6
  175. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +13 -8
  176. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +13 -8
  177. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +21 -16
  178. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +21 -16
  179. package/cjs/es6/synchronizers/with-schemas/index.cjs +9 -6
  180. package/cjs/es6/ui-react-inspector/index.cjs +5 -4
  181. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +5 -4
  182. package/cjs/es6/with-schemas/index.cjs +57 -568
  183. package/cjs/index.cjs +48 -449
  184. package/cjs/mergeable-store/index.cjs +4 -2
  185. package/cjs/mergeable-store/with-schemas/index.cjs +4 -2
  186. package/cjs/min/index.cjs +1 -1
  187. package/cjs/min/index.cjs.gz +0 -0
  188. package/cjs/min/mergeable-store/index.cjs +1 -1
  189. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  190. package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
  191. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  192. package/cjs/min/persisters/index.cjs +1 -1
  193. package/cjs/min/persisters/index.cjs.gz +0 -0
  194. package/cjs/min/persisters/persister-browser/index.cjs +1 -1
  195. package/cjs/min/persisters/persister-browser/index.cjs.gz +0 -0
  196. package/cjs/min/persisters/persister-browser/with-schemas/index.cjs +1 -1
  197. package/cjs/min/persisters/persister-browser/with-schemas/index.cjs.gz +0 -0
  198. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  199. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  200. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  201. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  202. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  203. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  204. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  205. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  206. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  207. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  208. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  209. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  210. package/cjs/min/persisters/persister-file/index.cjs +1 -1
  211. package/cjs/min/persisters/persister-file/index.cjs.gz +0 -0
  212. package/cjs/min/persisters/persister-file/with-schemas/index.cjs +1 -1
  213. package/cjs/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
  214. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  215. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  216. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  217. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  218. package/cjs/min/persisters/persister-partykit-client/index.cjs +1 -1
  219. package/cjs/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
  220. package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
  221. package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
  222. package/cjs/min/persisters/persister-partykit-server/index.cjs +1 -1
  223. package/cjs/min/persisters/persister-partykit-server/index.cjs.gz +0 -0
  224. package/cjs/min/persisters/persister-partykit-server/with-schemas/index.cjs +1 -1
  225. package/cjs/min/persisters/persister-partykit-server/with-schemas/index.cjs.gz +0 -0
  226. package/cjs/min/persisters/persister-pglite/index.cjs +1 -0
  227. package/cjs/min/persisters/persister-pglite/index.cjs.gz +0 -0
  228. package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs +1 -0
  229. package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
  230. package/cjs/min/persisters/persister-postgres/index.cjs +1 -1
  231. package/cjs/min/persisters/persister-postgres/index.cjs.gz +0 -0
  232. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  233. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  234. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  235. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  236. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  237. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  238. package/cjs/min/persisters/persister-remote/index.cjs +1 -1
  239. package/cjs/min/persisters/persister-remote/index.cjs.gz +0 -0
  240. package/cjs/min/persisters/persister-remote/with-schemas/index.cjs +1 -1
  241. package/cjs/min/persisters/persister-remote/with-schemas/index.cjs.gz +0 -0
  242. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  243. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  244. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  245. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  246. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  247. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  248. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  249. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  250. package/cjs/min/persisters/with-schemas/index.cjs +1 -1
  251. package/cjs/min/persisters/with-schemas/index.cjs.gz +0 -0
  252. package/cjs/min/store/index.cjs +1 -1
  253. package/cjs/min/store/index.cjs.gz +0 -0
  254. package/cjs/min/store/with-schemas/index.cjs +1 -1
  255. package/cjs/min/store/with-schemas/index.cjs.gz +0 -0
  256. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  257. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  258. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  259. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  260. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  261. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  262. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  263. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  264. package/cjs/min/ui-react-inspector/index.cjs +1 -1
  265. package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
  266. package/cjs/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  267. package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  268. package/cjs/min/with-schemas/index.cjs +1 -1
  269. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  270. package/cjs/persisters/index.cjs +833 -0
  271. package/cjs/persisters/persister-browser/index.cjs +3 -2
  272. package/cjs/persisters/persister-browser/with-schemas/index.cjs +3 -2
  273. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +108 -71
  274. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +108 -71
  275. package/cjs/persisters/persister-electric-sql/index.cjs +107 -70
  276. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +107 -70
  277. package/cjs/persisters/persister-expo-sqlite/index.cjs +108 -71
  278. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +108 -71
  279. package/cjs/persisters/persister-file/index.cjs +4 -2
  280. package/cjs/persisters/persister-file/with-schemas/index.cjs +4 -2
  281. package/cjs/persisters/persister-indexed-db/index.cjs +2 -2
  282. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +2 -2
  283. package/cjs/persisters/persister-libsql/index.cjs +107 -70
  284. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +107 -70
  285. package/cjs/persisters/persister-partykit-client/index.cjs +3 -2
  286. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +3 -2
  287. package/cjs/persisters/persister-partykit-server/index.cjs +3 -2
  288. package/cjs/persisters/persister-partykit-server/with-schemas/index.cjs +3 -2
  289. package/cjs/persisters/persister-pglite/index.cjs +1001 -0
  290. package/cjs/persisters/persister-pglite/with-schemas/index.cjs +1001 -0
  291. package/cjs/persisters/persister-postgres/index.cjs +110 -75
  292. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +110 -75
  293. package/cjs/persisters/persister-powersync/index.cjs +113 -74
  294. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +113 -74
  295. package/cjs/persisters/persister-remote/index.cjs +3 -2
  296. package/cjs/persisters/persister-remote/with-schemas/index.cjs +3 -2
  297. package/cjs/persisters/persister-sqlite-wasm/index.cjs +109 -72
  298. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +109 -72
  299. package/cjs/persisters/persister-sqlite3/index.cjs +109 -72
  300. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +109 -72
  301. package/cjs/persisters/with-schemas/index.cjs +833 -0
  302. package/cjs/store/index.cjs +3 -2
  303. package/cjs/store/with-schemas/index.cjs +3 -2
  304. package/cjs/synchronizers/index.cjs +1 -0
  305. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
  306. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
  307. package/cjs/synchronizers/synchronizer-local/index.cjs +1 -0
  308. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +1 -0
  309. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +5 -2
  310. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +5 -2
  311. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +13 -10
  312. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +13 -10
  313. package/cjs/synchronizers/with-schemas/index.cjs +1 -0
  314. package/cjs/ui-react-inspector/index.cjs +5 -4
  315. package/cjs/ui-react-inspector/with-schemas/index.cjs +5 -4
  316. package/cjs/with-schemas/index.cjs +48 -449
  317. package/es6/index.js +57 -568
  318. package/es6/mergeable-store/index.js +12 -8
  319. package/es6/mergeable-store/with-schemas/index.js +12 -8
  320. package/es6/min/index.js +1 -1
  321. package/es6/min/index.js.gz +0 -0
  322. package/es6/min/mergeable-store/index.js +1 -1
  323. package/es6/min/mergeable-store/index.js.gz +0 -0
  324. package/es6/min/mergeable-store/with-schemas/index.js +1 -1
  325. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  326. package/es6/min/persisters/index.js +1 -1
  327. package/es6/min/persisters/index.js.gz +0 -0
  328. package/es6/min/persisters/persister-browser/index.js +1 -1
  329. package/es6/min/persisters/persister-browser/index.js.gz +0 -0
  330. package/es6/min/persisters/persister-browser/with-schemas/index.js +1 -1
  331. package/es6/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  332. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  333. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  334. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  335. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  336. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  337. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  338. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  339. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  340. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  341. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  342. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  343. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  344. package/es6/min/persisters/persister-file/index.js +1 -1
  345. package/es6/min/persisters/persister-file/index.js.gz +0 -0
  346. package/es6/min/persisters/persister-file/with-schemas/index.js +1 -1
  347. package/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  348. package/es6/min/persisters/persister-libsql/index.js +1 -1
  349. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  350. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  351. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  352. package/es6/min/persisters/persister-partykit-client/index.js +1 -1
  353. package/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
  354. package/es6/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  355. package/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  356. package/es6/min/persisters/persister-partykit-server/index.js +1 -1
  357. package/es6/min/persisters/persister-partykit-server/index.js.gz +0 -0
  358. package/es6/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  359. package/es6/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  360. package/es6/min/persisters/persister-pglite/index.js +1 -0
  361. package/es6/min/persisters/persister-pglite/index.js.gz +0 -0
  362. package/es6/min/persisters/persister-pglite/with-schemas/index.js +1 -0
  363. package/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  364. package/es6/min/persisters/persister-postgres/index.js +1 -1
  365. package/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  366. package/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  367. package/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  368. package/es6/min/persisters/persister-powersync/index.js +1 -1
  369. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  370. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  371. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  372. package/es6/min/persisters/persister-remote/index.js +1 -1
  373. package/es6/min/persisters/persister-remote/index.js.gz +0 -0
  374. package/es6/min/persisters/persister-remote/with-schemas/index.js +1 -1
  375. package/es6/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  376. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  377. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  378. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  379. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  380. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  381. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  382. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  383. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  384. package/es6/min/persisters/with-schemas/index.js +1 -1
  385. package/es6/min/persisters/with-schemas/index.js.gz +0 -0
  386. package/es6/min/store/index.js +1 -1
  387. package/es6/min/store/index.js.gz +0 -0
  388. package/es6/min/store/with-schemas/index.js +1 -1
  389. package/es6/min/store/with-schemas/index.js.gz +0 -0
  390. package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  391. package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  392. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  393. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  394. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  395. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  396. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  397. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  398. package/es6/min/ui-react-inspector/index.js +1 -1
  399. package/es6/min/ui-react-inspector/index.js.gz +0 -0
  400. package/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  401. package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  402. package/es6/min/with-schemas/index.js +1 -1
  403. package/es6/min/with-schemas/index.js.gz +0 -0
  404. package/es6/persisters/index.js +1099 -11
  405. package/es6/persisters/persister-browser/index.js +3 -2
  406. package/es6/persisters/persister-browser/with-schemas/index.js +3 -2
  407. package/es6/persisters/persister-cr-sqlite-wasm/index.js +123 -106
  408. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +123 -106
  409. package/es6/persisters/persister-electric-sql/index.js +121 -104
  410. package/es6/persisters/persister-electric-sql/with-schemas/index.js +121 -104
  411. package/es6/persisters/persister-expo-sqlite/index.js +123 -106
  412. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +123 -106
  413. package/es6/persisters/persister-file/index.js +4 -2
  414. package/es6/persisters/persister-file/with-schemas/index.js +4 -2
  415. package/es6/persisters/persister-indexed-db/index.js +2 -2
  416. package/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  417. package/es6/persisters/persister-libsql/index.js +121 -104
  418. package/es6/persisters/persister-libsql/with-schemas/index.js +121 -104
  419. package/es6/persisters/persister-partykit-client/index.js +3 -2
  420. package/es6/persisters/persister-partykit-client/with-schemas/index.js +3 -2
  421. package/es6/persisters/persister-partykit-server/index.js +3 -2
  422. package/es6/persisters/persister-partykit-server/with-schemas/index.js +3 -2
  423. package/es6/persisters/persister-pglite/index.js +1325 -0
  424. package/es6/persisters/persister-pglite/with-schemas/index.js +1325 -0
  425. package/es6/persisters/persister-postgres/index.js +126 -111
  426. package/es6/persisters/persister-postgres/with-schemas/index.js +126 -111
  427. package/es6/persisters/persister-powersync/index.js +125 -108
  428. package/es6/persisters/persister-powersync/with-schemas/index.js +125 -108
  429. package/es6/persisters/persister-remote/index.js +3 -2
  430. package/es6/persisters/persister-remote/with-schemas/index.js +3 -2
  431. package/es6/persisters/persister-sqlite-wasm/index.js +127 -106
  432. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +127 -106
  433. package/es6/persisters/persister-sqlite3/index.js +123 -106
  434. package/es6/persisters/persister-sqlite3/with-schemas/index.js +123 -106
  435. package/es6/persisters/with-schemas/index.js +1099 -11
  436. package/es6/store/index.js +3 -2
  437. package/es6/store/with-schemas/index.js +3 -2
  438. package/es6/synchronizers/index.js +9 -6
  439. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
  440. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
  441. package/es6/synchronizers/synchronizer-local/index.js +9 -6
  442. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
  443. package/es6/synchronizers/synchronizer-ws-client/index.js +13 -8
  444. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +13 -8
  445. package/es6/synchronizers/synchronizer-ws-server/index.js +21 -16
  446. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +21 -16
  447. package/es6/synchronizers/with-schemas/index.js +9 -6
  448. package/es6/ui-react-inspector/index.js +5 -4
  449. package/es6/ui-react-inspector/with-schemas/index.js +5 -4
  450. package/es6/with-schemas/index.js +57 -568
  451. package/index.js +48 -449
  452. package/mergeable-store/index.js +4 -2
  453. package/mergeable-store/with-schemas/index.js +4 -2
  454. package/min/index.js +1 -1
  455. package/min/index.js.gz +0 -0
  456. package/min/mergeable-store/index.js +1 -1
  457. package/min/mergeable-store/index.js.gz +0 -0
  458. package/min/mergeable-store/with-schemas/index.js +1 -1
  459. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  460. package/min/persisters/index.js +1 -1
  461. package/min/persisters/index.js.gz +0 -0
  462. package/min/persisters/persister-browser/index.js +1 -1
  463. package/min/persisters/persister-browser/index.js.gz +0 -0
  464. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  465. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  466. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  467. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  468. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  469. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  470. package/min/persisters/persister-electric-sql/index.js +1 -1
  471. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  472. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  473. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  474. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  475. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  476. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  477. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  478. package/min/persisters/persister-file/index.js +1 -1
  479. package/min/persisters/persister-file/index.js.gz +0 -0
  480. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  481. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  482. package/min/persisters/persister-libsql/index.js +1 -1
  483. package/min/persisters/persister-libsql/index.js.gz +0 -0
  484. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  485. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  486. package/min/persisters/persister-partykit-client/index.js +1 -1
  487. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  488. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  489. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  490. package/min/persisters/persister-partykit-server/index.js +1 -1
  491. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  492. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  493. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  494. package/min/persisters/persister-pglite/index.js +1 -0
  495. package/min/persisters/persister-pglite/index.js.gz +0 -0
  496. package/min/persisters/persister-pglite/with-schemas/index.js +1 -0
  497. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  498. package/min/persisters/persister-postgres/index.js +1 -1
  499. package/min/persisters/persister-postgres/index.js.gz +0 -0
  500. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  501. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  502. package/min/persisters/persister-powersync/index.js +1 -1
  503. package/min/persisters/persister-powersync/index.js.gz +0 -0
  504. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  505. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  506. package/min/persisters/persister-remote/index.js +1 -1
  507. package/min/persisters/persister-remote/index.js.gz +0 -0
  508. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  509. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  510. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  511. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  512. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  513. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  514. package/min/persisters/persister-sqlite3/index.js +1 -1
  515. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  516. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  517. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  518. package/min/persisters/with-schemas/index.js +1 -1
  519. package/min/persisters/with-schemas/index.js.gz +0 -0
  520. package/min/store/index.js +1 -1
  521. package/min/store/index.js.gz +0 -0
  522. package/min/store/with-schemas/index.js +1 -1
  523. package/min/store/with-schemas/index.js.gz +0 -0
  524. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  525. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  526. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  527. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  528. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  529. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  530. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  531. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  532. package/min/ui-react-inspector/index.js +1 -1
  533. package/min/ui-react-inspector/index.js.gz +0 -0
  534. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  535. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  536. package/min/with-schemas/index.js +1 -1
  537. package/min/with-schemas/index.js.gz +0 -0
  538. package/package.json +431 -323
  539. package/persisters/index.js +837 -1
  540. package/persisters/persister-browser/index.js +3 -2
  541. package/persisters/persister-browser/with-schemas/index.js +3 -2
  542. package/persisters/persister-cr-sqlite-wasm/index.js +108 -71
  543. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +108 -71
  544. package/persisters/persister-electric-sql/index.js +107 -70
  545. package/persisters/persister-electric-sql/with-schemas/index.js +107 -70
  546. package/persisters/persister-expo-sqlite/index.js +108 -71
  547. package/persisters/persister-expo-sqlite/with-schemas/index.js +108 -71
  548. package/persisters/persister-file/index.js +4 -2
  549. package/persisters/persister-file/with-schemas/index.js +4 -2
  550. package/persisters/persister-indexed-db/index.js +2 -2
  551. package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  552. package/persisters/persister-libsql/index.js +107 -70
  553. package/persisters/persister-libsql/with-schemas/index.js +107 -70
  554. package/persisters/persister-partykit-client/index.js +3 -2
  555. package/persisters/persister-partykit-client/with-schemas/index.js +3 -2
  556. package/persisters/persister-partykit-server/index.js +3 -2
  557. package/persisters/persister-partykit-server/with-schemas/index.js +3 -2
  558. package/persisters/persister-pglite/index.js +999 -0
  559. package/persisters/persister-pglite/with-schemas/index.js +999 -0
  560. package/persisters/persister-postgres/index.js +110 -75
  561. package/persisters/persister-postgres/with-schemas/index.js +110 -75
  562. package/persisters/persister-powersync/index.js +113 -74
  563. package/persisters/persister-powersync/with-schemas/index.js +113 -74
  564. package/persisters/persister-remote/index.js +3 -2
  565. package/persisters/persister-remote/with-schemas/index.js +3 -2
  566. package/persisters/persister-sqlite-wasm/index.js +109 -72
  567. package/persisters/persister-sqlite-wasm/with-schemas/index.js +109 -72
  568. package/persisters/persister-sqlite3/index.js +109 -72
  569. package/persisters/persister-sqlite3/with-schemas/index.js +109 -72
  570. package/persisters/with-schemas/index.js +837 -1
  571. package/readme.md +2 -2
  572. package/releases.md +6 -2
  573. package/store/index.js +3 -2
  574. package/store/with-schemas/index.js +3 -2
  575. package/synchronizers/index.js +1 -0
  576. package/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  577. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  578. package/synchronizers/synchronizer-local/index.js +1 -0
  579. package/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
  580. package/synchronizers/synchronizer-ws-client/index.js +5 -2
  581. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +5 -2
  582. package/synchronizers/synchronizer-ws-server/index.js +13 -10
  583. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +13 -10
  584. package/synchronizers/with-schemas/index.js +1 -0
  585. package/ui-react-inspector/index.js +5 -4
  586. package/ui-react-inspector/with-schemas/index.js +5 -4
  587. package/umd/es6/index.js +57 -579
  588. package/umd/es6/mergeable-store/index.js +12 -8
  589. package/umd/es6/mergeable-store/with-schemas/index.js +12 -8
  590. package/umd/es6/min/index.js +1 -1
  591. package/umd/es6/min/index.js.gz +0 -0
  592. package/umd/es6/min/mergeable-store/index.js +1 -1
  593. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  594. package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
  595. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  596. package/umd/es6/min/persisters/index.js +1 -1
  597. package/umd/es6/min/persisters/index.js.gz +0 -0
  598. package/umd/es6/min/persisters/persister-browser/index.js +1 -1
  599. package/umd/es6/min/persisters/persister-browser/index.js.gz +0 -0
  600. package/umd/es6/min/persisters/persister-browser/with-schemas/index.js +1 -1
  601. package/umd/es6/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  602. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  603. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  604. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  605. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  606. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  607. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  608. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  609. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  610. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  611. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  612. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  613. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  614. package/umd/es6/min/persisters/persister-file/index.js +1 -1
  615. package/umd/es6/min/persisters/persister-file/index.js.gz +0 -0
  616. package/umd/es6/min/persisters/persister-file/with-schemas/index.js +1 -1
  617. package/umd/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  618. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  619. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  620. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  621. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  622. package/umd/es6/min/persisters/persister-partykit-client/index.js +1 -1
  623. package/umd/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
  624. package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  625. package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  626. package/umd/es6/min/persisters/persister-partykit-server/index.js +1 -1
  627. package/umd/es6/min/persisters/persister-partykit-server/index.js.gz +0 -0
  628. package/umd/es6/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  629. package/umd/es6/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  630. package/umd/es6/min/persisters/persister-pglite/index.js +1 -0
  631. package/umd/es6/min/persisters/persister-pglite/index.js.gz +0 -0
  632. package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js +1 -0
  633. package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  634. package/umd/es6/min/persisters/persister-postgres/index.js +1 -1
  635. package/umd/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  636. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  637. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  638. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  639. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  640. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  641. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  642. package/umd/es6/min/persisters/persister-remote/index.js +1 -1
  643. package/umd/es6/min/persisters/persister-remote/index.js.gz +0 -0
  644. package/umd/es6/min/persisters/persister-remote/with-schemas/index.js +1 -1
  645. package/umd/es6/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  646. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  647. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  648. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  649. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  650. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  651. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  652. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  653. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  654. package/umd/es6/min/persisters/with-schemas/index.js +1 -1
  655. package/umd/es6/min/persisters/with-schemas/index.js.gz +0 -0
  656. package/umd/es6/min/store/index.js +1 -1
  657. package/umd/es6/min/store/index.js.gz +0 -0
  658. package/umd/es6/min/store/with-schemas/index.js +1 -1
  659. package/umd/es6/min/store/with-schemas/index.js.gz +0 -0
  660. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  661. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  662. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  663. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  664. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  665. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  666. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  667. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  668. package/umd/es6/min/ui-react-inspector/index.js +1 -1
  669. package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
  670. package/umd/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  671. package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  672. package/umd/es6/min/with-schemas/index.js +1 -1
  673. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  674. package/umd/es6/persisters/index.js +1106 -10
  675. package/umd/es6/persisters/persister-browser/index.js +3 -4
  676. package/umd/es6/persisters/persister-browser/with-schemas/index.js +3 -4
  677. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +123 -108
  678. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +123 -108
  679. package/umd/es6/persisters/persister-electric-sql/index.js +121 -106
  680. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +121 -106
  681. package/umd/es6/persisters/persister-expo-sqlite/index.js +123 -108
  682. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +123 -108
  683. package/umd/es6/persisters/persister-file/index.js +4 -4
  684. package/umd/es6/persisters/persister-file/with-schemas/index.js +4 -4
  685. package/umd/es6/persisters/persister-indexed-db/index.js +2 -2
  686. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  687. package/umd/es6/persisters/persister-libsql/index.js +121 -106
  688. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +121 -106
  689. package/umd/es6/persisters/persister-partykit-client/index.js +3 -2
  690. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +3 -2
  691. package/umd/es6/persisters/persister-partykit-server/index.js +3 -2
  692. package/umd/es6/persisters/persister-partykit-server/with-schemas/index.js +3 -2
  693. package/umd/es6/persisters/persister-pglite/index.js +1348 -0
  694. package/umd/es6/persisters/persister-pglite/with-schemas/index.js +1348 -0
  695. package/umd/es6/persisters/persister-postgres/index.js +129 -113
  696. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +129 -113
  697. package/umd/es6/persisters/persister-powersync/index.js +125 -110
  698. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +125 -110
  699. package/umd/es6/persisters/persister-remote/index.js +3 -2
  700. package/umd/es6/persisters/persister-remote/with-schemas/index.js +3 -2
  701. package/umd/es6/persisters/persister-sqlite-wasm/index.js +123 -108
  702. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +123 -108
  703. package/umd/es6/persisters/persister-sqlite3/index.js +123 -108
  704. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +123 -108
  705. package/umd/es6/persisters/with-schemas/index.js +1106 -10
  706. package/umd/es6/store/index.js +3 -2
  707. package/umd/es6/store/with-schemas/index.js +3 -2
  708. package/umd/es6/synchronizers/index.js +9 -6
  709. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +9 -6
  710. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +9 -6
  711. package/umd/es6/synchronizers/synchronizer-local/index.js +9 -6
  712. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +9 -6
  713. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +13 -10
  714. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +13 -10
  715. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +21 -18
  716. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +21 -18
  717. package/umd/es6/synchronizers/with-schemas/index.js +9 -6
  718. package/umd/es6/ui-react-inspector/index.js +5 -6
  719. package/umd/es6/ui-react-inspector/with-schemas/index.js +5 -6
  720. package/umd/es6/with-schemas/index.js +57 -579
  721. package/umd/index.js +48 -456
  722. package/umd/mergeable-store/index.js +4 -2
  723. package/umd/mergeable-store/with-schemas/index.js +4 -2
  724. package/umd/min/index.js +1 -1
  725. package/umd/min/index.js.gz +0 -0
  726. package/umd/min/mergeable-store/index.js +1 -1
  727. package/umd/min/mergeable-store/index.js.gz +0 -0
  728. package/umd/min/mergeable-store/with-schemas/index.js +1 -1
  729. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  730. package/umd/min/persisters/index.js +1 -1
  731. package/umd/min/persisters/index.js.gz +0 -0
  732. package/umd/min/persisters/persister-browser/index.js +1 -1
  733. package/umd/min/persisters/persister-browser/index.js.gz +0 -0
  734. package/umd/min/persisters/persister-browser/with-schemas/index.js +1 -1
  735. package/umd/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  736. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  737. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  738. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  739. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  740. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  741. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  742. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  743. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  744. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  745. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  746. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  747. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  748. package/umd/min/persisters/persister-file/index.js +1 -1
  749. package/umd/min/persisters/persister-file/index.js.gz +0 -0
  750. package/umd/min/persisters/persister-file/with-schemas/index.js +1 -1
  751. package/umd/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  752. package/umd/min/persisters/persister-libsql/index.js +1 -1
  753. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  754. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  755. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  756. package/umd/min/persisters/persister-partykit-client/index.js +1 -1
  757. package/umd/min/persisters/persister-partykit-client/index.js.gz +0 -0
  758. package/umd/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  759. package/umd/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  760. package/umd/min/persisters/persister-partykit-server/index.js +1 -1
  761. package/umd/min/persisters/persister-partykit-server/index.js.gz +0 -0
  762. package/umd/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  763. package/umd/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  764. package/umd/min/persisters/persister-pglite/index.js +1 -0
  765. package/umd/min/persisters/persister-pglite/index.js.gz +0 -0
  766. package/umd/min/persisters/persister-pglite/with-schemas/index.js +1 -0
  767. package/umd/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  768. package/umd/min/persisters/persister-postgres/index.js +1 -1
  769. package/umd/min/persisters/persister-postgres/index.js.gz +0 -0
  770. package/umd/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  771. package/umd/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  772. package/umd/min/persisters/persister-powersync/index.js +1 -1
  773. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  774. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  775. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  776. package/umd/min/persisters/persister-remote/index.js +1 -1
  777. package/umd/min/persisters/persister-remote/index.js.gz +0 -0
  778. package/umd/min/persisters/persister-remote/with-schemas/index.js +1 -1
  779. package/umd/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  780. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  781. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  782. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  783. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  784. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  785. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  786. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  787. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  788. package/umd/min/persisters/with-schemas/index.js +1 -1
  789. package/umd/min/persisters/with-schemas/index.js.gz +0 -0
  790. package/umd/min/store/index.js +1 -1
  791. package/umd/min/store/index.js.gz +0 -0
  792. package/umd/min/store/with-schemas/index.js +1 -1
  793. package/umd/min/store/with-schemas/index.js.gz +0 -0
  794. package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  795. package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  796. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  797. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  798. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  799. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  800. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  801. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  802. package/umd/min/ui-react-inspector/index.js +1 -1
  803. package/umd/min/ui-react-inspector/index.js.gz +0 -0
  804. package/umd/min/ui-react-inspector/with-schemas/index.js +1 -1
  805. package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  806. package/umd/min/with-schemas/index.js +1 -1
  807. package/umd/min/with-schemas/index.js.gz +0 -0
  808. package/umd/persisters/index.js +835 -0
  809. package/umd/persisters/persister-browser/index.js +3 -4
  810. package/umd/persisters/persister-browser/with-schemas/index.js +3 -4
  811. package/umd/persisters/persister-cr-sqlite-wasm/index.js +108 -73
  812. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +108 -73
  813. package/umd/persisters/persister-electric-sql/index.js +107 -72
  814. package/umd/persisters/persister-electric-sql/with-schemas/index.js +107 -72
  815. package/umd/persisters/persister-expo-sqlite/index.js +108 -73
  816. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +108 -73
  817. package/umd/persisters/persister-file/index.js +4 -4
  818. package/umd/persisters/persister-file/with-schemas/index.js +4 -4
  819. package/umd/persisters/persister-indexed-db/index.js +2 -2
  820. package/umd/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  821. package/umd/persisters/persister-libsql/index.js +107 -72
  822. package/umd/persisters/persister-libsql/with-schemas/index.js +107 -72
  823. package/umd/persisters/persister-partykit-client/index.js +3 -2
  824. package/umd/persisters/persister-partykit-client/with-schemas/index.js +3 -2
  825. package/umd/persisters/persister-partykit-server/index.js +3 -2
  826. package/umd/persisters/persister-partykit-server/with-schemas/index.js +3 -2
  827. package/umd/persisters/persister-pglite/index.js +1017 -0
  828. package/umd/persisters/persister-pglite/with-schemas/index.js +1017 -0
  829. package/umd/persisters/persister-postgres/index.js +110 -77
  830. package/umd/persisters/persister-postgres/with-schemas/index.js +110 -77
  831. package/umd/persisters/persister-powersync/index.js +111 -76
  832. package/umd/persisters/persister-powersync/with-schemas/index.js +111 -76
  833. package/umd/persisters/persister-remote/index.js +3 -2
  834. package/umd/persisters/persister-remote/with-schemas/index.js +3 -2
  835. package/umd/persisters/persister-sqlite-wasm/index.js +113 -74
  836. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +113 -74
  837. package/umd/persisters/persister-sqlite3/index.js +109 -74
  838. package/umd/persisters/persister-sqlite3/with-schemas/index.js +109 -74
  839. package/umd/persisters/with-schemas/index.js +835 -0
  840. package/umd/store/index.js +3 -2
  841. package/umd/store/with-schemas/index.js +3 -2
  842. package/umd/synchronizers/index.js +1 -0
  843. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
  844. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
  845. package/umd/synchronizers/synchronizer-local/index.js +1 -0
  846. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +1 -0
  847. package/umd/synchronizers/synchronizer-ws-client/index.js +5 -4
  848. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +5 -4
  849. package/umd/synchronizers/synchronizer-ws-server/index.js +13 -12
  850. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +13 -12
  851. package/umd/synchronizers/with-schemas/index.js +1 -0
  852. package/umd/ui-react-inspector/index.js +5 -6
  853. package/umd/ui-react-inspector/with-schemas/index.js +5 -6
  854. package/umd/with-schemas/index.js +48 -456
  855. package/with-schemas/index.js +48 -449
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,S=a=>u(R(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),P=Object,f=a=>P.getPrototypeOf(a),D=P.entries,U=P.keys,F=P.freeze,M=(a=[])=>P.fromEntries(a),G=(...a)=>P.assign({},...a),B=(a,t)=>R(D(a),(([a,e])=>t(e,a))),j=a=>P.values(a),x=a=>l(U(a)),X=a=>(a=>!i(a)&&r(f(a),(a=>a==P.prototype||i(f(a))),(()=>!0)))(a)&&0==x(a),Y=a=>new Map(a),q=(a,t)=>a?.get(t),H=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(_(a,t)||W(a,t,e()),q(a,t)),J=Y(),K=Y(),V=(a,t,e,n,s,o,E,l={},w=[])=>{let d,u,R,A=0,T=0,g=0;k(J,w,(()=>0)),k(K,w,(()=>[]));const[C,p,O,L,v]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!X(a)||!X(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!X(a)||!X(t),t.setContent]:y("Store type not supported by this Persister"))(E,a),$=t=>{(C&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},I=async a=>(2!=A&&(A=1,T++,await h((async()=>{try{const a=await t();c(a)?$(a):y("Content is not an array "+a)}catch(t){o?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),S=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),b),_=()=>(r(R,a.delListener),R=void 0,b),h=async(...a)=>(N(q(K,w),...a),await(async()=>{if(!q(J,w)){for(W(J,w,1);!i((a=q(K,w),d=a.shift()));)try{await d()}catch(a){o?.(a)}W(J,w,0)}var a})(),b),b={load:I,startAutoLoad:async a=>{await m().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,$(t??a),A=0):await I()}))}catch(a){o?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:S,startAutoSave:async()=>(await _().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&S(a)})),b),stopAutoSave:_,isAutoSaving:()=>!i(R),schedule:h,getStore:()=>a,destroy:()=>(q(K,w).splice(0,void 0),m().stopAutoSave()),getStats:()=>({loads:T,saves:g}),...l};return F(b)},z=a=>new Set(c(a)||i(a)?a:[a]),Q=(a,t)=>a?.add(t),Z=(a,t,n,s,r)=>{const o=Y();return[async()=>{o.clear(),R(await n(a,t),(({tn:a,cn:t})=>Q(k(o,a,z),t)))},async(t,e)=>((a,t)=>_(q(o,a),t))(t,e)?M(T(R(await a(I+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!X(t)))):{},async(t,n,s,c,E,l=!1)=>{const y=z();B(s??{},(a=>R(U(a??{}),(a=>Q(y,a)))));const d=h(y);if(!l&&E&&A(d)&&_(o,t))return await a("DROP "+L+m(t)),void W(o,t);const g=q(o,t),C=z(h(g));if(A(d)||(_(o,t)?await w(R([n,...d],(async(e,s)=>{b(C,e)||(await a(v+m(t)+"ADD"+m(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),Q(g,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}text PRIMARY KEY${u(R(d,(a=>e+m(a)+"json")))});`),W(o,t,z([n,...d])))),await w([...!l&&c?R(h(C),(async e=>{e!=n&&(await a(v+m(t)+"DROP"+m(e)),b(g,e))})):[]]),l)i(s)?await a($+m(t)+O+" true"):await w(B(s,(async(e,s)=>{i(e)?await a($+m(t)+O+m(n)+"=$1",[s]):A(d)||await aa(a,t,n,U(e),[s,...j(e)],r)})));else if(A(d))_(o,t)&&await a($+m(t)+O+" true");else{const e=T(h(q(o,t)),(a=>a!=n)),i=[],c=[];B(s??{},((a,t)=>{N(i,t,...R(e,(t=>a?.[t]))),N(c,t)})),await aa(a,t,n,e,i,r),await a($+m(t)+O+m(n)+`NOT IN(${S(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},aa=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+ta(i,l(s)+1)+(r?"ON CONFLICT("+m(n)+")DO UPDATE SET"+u(R(s,(a=>m(a)+"=excluded."+m(a))),e):""),R(i,(a=>a??null))),ta=(a,t)=>u(d(l(a)/t,(a=>"("+u(d(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ea=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,u)=>{const[R,A,T,N]=Z(t,l,w,s,u),C=V(a,(async()=>await N((async()=>{return await R(),a=(await A(o,c))[g]?.[E]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await N((async()=>{var t;await R(),await T(o,c,{[g]:{[E]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>(C.stopAutoLoad().stopAutoSave(),i(),C)},y);return C},na=(a,t,e,n,s,r,o,[c,E,[l,y,d]],u,R,A,N,p)=>{const[O,L,v,$]=Z(t,u,R,s,p),I=async(a,t)=>await w(H(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await v(e,n,a[r],s,i,t)}))),m=async(a,t)=>y?await v(d,C,{[g]:a},!0,!0,t):null,S=V(a,(async()=>await $((async()=>{await O();const a=await(async()=>M(T(await w(H(c,(async([a,t],e)=>[a,await L(e,t)]))),(a=>!X(a[1])))))(),t=await(async()=>l?(await L(d,C))[g]:{})();return X(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await $((async()=>{if(await O(),i(t)){const[t,e]=a();await I(t),await m(e)}else await I(t[0],!0),await m(t[1],!0)}))),e,n,s,o,{[N]:()=>A,destroy:()=>(S.stopAutoLoad().stopAutoSave(),r(),S)},A);return S},sa="ColumnName",ia="store",ra="json",oa=ia+"TableName",ca=ia+"Id"+sa,Ea=ia+sa,la="autoLoadIntervalSeconds",wa="rowId"+sa,ya="tableId",da="tableName",ua="deleteEmptyColumns",Ra="deleteEmptyTable",Aa={mode:ra,[la]:1},Ta={load:0,save:0,[da]:t+"_values"},Na=(a,t,e,n,s)=>{const r=Y();return B(a,((a,c)=>{const l=E(j(G(t,o(a)?{[e]:a}:a)),0,x(t));i(l[0])||n(c,l[0])||(s(c,l[0]),W(r,c,l))})),r},ga=t,Ca=/^([cd]:)(.+)/,pa=t+"_data",Oa=t+"_table";exports.createPostgresPersister=async(a,e,n,s,i)=>{const c=await(e.reserve?.());return((a,e,n,s,i,c,l,y,d,u,A="getDb")=>{const T=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,c),[N,,g,L]=(a=>{const e=(a=>G(Aa,o(a)?{[oa]:a}:a??{}))(a),n=e[la];if(e.mode==ra){const a=e[oa]??t;return[1,n,[a,e[ca]??C,e[Ea]??ia],z(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=E(j(G(Ta,r)),0,x(Ta)),l=c[2],w=z(l),y=z(l);return[0,n,[Na(s,{[ya]:null,[wa]:C},ya,(a=>_(y,a)),(a=>Q(w,a))),Na(i,{[da]:null,[wa]:C,[ua]:0,[Ra]:0},da,((a,t)=>_(y,t)),((a,t)=>Q(w,t))),c],w]})(e),v=async a=>{await T(`CREATE OR REPLACE TRIGGER ${m(pa+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${m(a)} EXECUTE FUNCTION ${pa}()`)};return(N?ea:na)(a,T,(async a=>{await T(`CREATE OR REPLACE FUNCTION ${Oa}()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('${ga}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await T(`CREATE EVENT TRIGGER ${Oa} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${Oa}();`)}catch{}return await T(`CREATE OR REPLACE FUNCTION ${pa}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${ga}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(L),(async a=>{await T(`CREATE TABLE IF NOT EXISTS ${m(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(ga,(async t=>{return await r((e=t,n=Ca,e?.match(n)),(async([,t,e])=>{_(L,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,l,y,d,g,h(L),(async(a,t)=>await a(`${p} table_name tn,column_name cn FROM information_schema.columns ${O} table_schema='public'AND table_name IN(${S(t)})`,t)),u,A)})(a,n,c?.unsafe,(async(a,t)=>e.listen(a,t)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>c?.release?.()),3,e,"getSql")};
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,S=a=>u(R(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),P=Object,f=a=>P.getPrototypeOf(a),D=P.entries,U=P.keys,F=P.freeze,M=(a=[])=>P.fromEntries(a),G=(...a)=>P.assign({},...a),B=(a,t)=>(delete a[t],a),j=(a,t)=>R(D(a),(([a,e])=>t(e,a))),x=a=>P.values(a),X=a=>l(U(a)),Y=a=>(a=>!i(a)&&r(f(a),(a=>a==P.prototype||i(f(a))),(()=>!0)))(a)&&0==X(a),q=JSON.stringify,H=JSON.parse,W=a=>new Map(a),k=(a,t)=>a?.get(t),J=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),K=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),V=(a,t,e,n)=>(_(a,t)||K(a,t,e()),k(a,t)),z=W(),Q=W(),Z=(a,t,e,n,s,o,E,l={},w=[])=>{let d,u,R,A=0,T=0,g=0;V(z,w,(()=>0)),V(Q,w,(()=>[]));const[C,p,O,L,v]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Y(a)||!Y(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Y(a)||!Y(t),t.setContent]:y("Store type not supported by this Persister"))(E,a),$=t=>{(C&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},I=async a=>(2!=A&&(A=1,T++,await h((async()=>{try{const a=await t();c(a)?$(a):y("Content is not an array "+a)}catch(t){o?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),S=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),b),_=()=>(r(R,a.delListener),R=void 0,b),h=async(...a)=>(N(k(Q,w),...a),await(async()=>{if(!k(z,w)){for(K(z,w,1);!i((a=k(Q,w),d=a.shift()));)try{await d()}catch(a){o?.(a)}K(z,w,0)}var a})(),b),b={load:I,startAutoLoad:async a=>{await m().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,$(t??a),A=0):await I()}))}catch(a){o?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:S,startAutoSave:async()=>(await _().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&S(a)})),b),stopAutoSave:_,isAutoSaving:()=>!i(R),schedule:h,getStore:()=>a,destroy:()=>(k(Q,w).splice(0,void 0),m().stopAutoSave()),getStats:()=>({loads:T,saves:g}),...l};return F(b)},aa=a=>new Set(c(a)||i(a)?a:[a]),ta=(a,t)=>a?.add(t),ea=(a,t,n,s,r,o,c,E)=>{const l=W();return[async()=>{l.clear(),R(await n(a,t),(({tn:a,cn:t})=>ta(V(l,a,aa),t)))},async(t,e)=>((a,t)=>_(k(l,a),t))(t,e)?M(T(R(await a(I+m(t)),(a=>{return[a[e],E?(t=B(a,e),n=E,M(j(t,((a,t)=>[t,n(a,t)])))):B(a,e)];var t,n})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,n,s,E,y,d=!1)=>{const g=aa();j(s??{},(a=>R(U(a??{}),(a=>ta(g,a)))));const C=h(g);if(!d&&y&&A(C)&&_(l,t))return await a("DROP "+L+m(t)),void K(l,t);const p=k(l,t),I=aa(h(p));if(A(C)||(_(l,t)?await w(R([n,...C],(async(e,s)=>{b(I,e)||(await a(v+m(t)+"ADD"+m(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),ta(p,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}${r} PRIMARY KEY${u(R(C,(a=>e+m(a)+r)))});`),K(l,t,aa([n,...C])))),await w([...!d&&E?R(h(I),(async e=>{e!=n&&(await a(v+m(t)+"DROP"+m(e)),b(p,e))})):[]]),d)i(s)?await a($+m(t)+O+" true"):await w(j(s,(async(e,s)=>{i(e)?await a($+m(t)+O+m(n)+"=$1",[s]):A(C)||await na(a,t,n,U(e),[s,...c?R(x(e),c):x(e)],o)})));else if(A(C))_(l,t)&&await a($+m(t)+O+" true");else{const e=T(h(k(l,t)),(a=>a!=n)),i=[],r=[];j(s??{},((a,t)=>{N(i,t,...R(e,(t=>c?c(a?.[t]):a?.[t]))),N(r,t)})),await na(a,t,n,e,i,o),await a($+m(t)+O+m(n)+`NOT IN(${S(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},na=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+sa(i,l(s)+1)+(r?"":"ON CONFLICT("+m(n)+")DO UPDATE SET"+u(R(s,(a=>m(a)+"=excluded."+m(a))),e)),R(i,(a=>a??null))),sa=(a,t)=>u(d(l(a)/t,(a=>"("+u(d(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,u,R)=>{const[A,T,N,C]=ea(t,l,w,s,u,R),p=Z(a,(async()=>await C((async()=>{return await A(),a=(await T(o,c))[g]?.[E]??"null",H(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await C((async()=>{var t;await A(),await N(o,c,{[g]:{[E]:(t=a()??null,q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>(p.stopAutoLoad().stopAutoSave(),i(),p)},y);return p},ra=(a,t,e,n,s,r,o,[c,E,[l,y,d]],u,R,A,N,p,O,L,v)=>{const[$,I,m,S]=ea(t,u,R,s,p,O,L,v),_=async(a,t)=>await w(J(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await m(e,n,a[r],s,i,t)}))),h=async(a,t)=>y?await m(d,C,{[g]:a},!0,!0,t):null,b=Z(a,(async()=>await S((async()=>{await $();const a=await(async()=>M(T(await w(J(c,(async([a,t],e)=>[a,await I(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>l?(await I(d,C))[g]:{})();return Y(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await $(),i(t)){const[t,e]=a();await _(t),await h(e)}else await _(t[0],!0),await h(t[1],!0)}))),e,n,s,o,{[N]:()=>A,destroy:()=>(b.stopAutoLoad().stopAutoSave(),r(),b)},A);return b},oa="ColumnName",ca="store",Ea="json",la=ca+"TableName",wa=ca+"Id"+oa,ya=ca+oa,da="autoLoadIntervalSeconds",ua="rowId"+oa,Ra="tableId",Aa="tableName",Ta="deleteEmptyColumns",Na="deleteEmptyTable",ga={mode:Ea,[da]:1},Ca={load:0,save:0,[Aa]:t+"_values"},pa=(a,t,e,n,s)=>{const r=W();return j(a,((a,c)=>{const l=E(x(G(t,o(a)?{[e]:a}:a)),0,X(t));i(l[0])||n(c,l[0])||(s(c,l[0]),K(r,c,l))})),r},Oa=t,La=/^([cd]:)(.+)/,va=t+"_data",$a=t+"_table";exports.createPostgresPersister=async(a,e,n,s,i)=>{const c=await(e.reserve?.());return((a,e,n,s,i,c,l,y,d,u,A="getDb")=>{const T=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,c),[N,,g,L]=(a=>{const e=(a=>G(ga,o(a)?{[la]:a}:a??{}))(a),n=e[da];if(e.mode==Ea){const a=e[la]??t;return[1,n,[a,e[wa]??C,e[ya]??ca],aa(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=E(x(G(Ca,r)),0,X(Ca)),l=c[2],w=aa(l),y=aa(l);return[0,n,[pa(s,{[Ra]:null,[ua]:C},Ra,(a=>_(y,a)),(a=>ta(w,a))),pa(i,{[Aa]:null,[ua]:C,[Ta]:0,[Na]:0},Aa,((a,t)=>_(y,t)),((a,t)=>ta(w,t))),c],w]})(e),v=async a=>{await T(`CREATE OR REPLACE TRIGGER ${m(va+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${m(a)} EXECUTE FUNCTION ${va}()`)};return(N?ia:ra)(a,T,(async a=>{await T(`CREATE OR REPLACE FUNCTION ${$a}()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('${Oa}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await T(`CREATE EVENT TRIGGER ${$a} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${$a}();`)}catch{}return await T(`CREATE OR REPLACE FUNCTION ${va}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${Oa}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(L),(async a=>{await T(`CREATE TABLE IF NOT EXISTS ${m(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(Oa,(async t=>{return await r((e=t,n=La,e?.match(n)),(async([,t,e])=>{_(L,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,l,y,d,g,h(L),(async(a,t)=>await a(`${p} table_name tn,column_name cn FROM information_schema.columns ${O} table_schema='public'AND table_name IN(${S(t)})`,t)),u,A,"text",0,(a=>q(a)),(a=>H(a)))})(a,n,c?.unsafe,(async(a,t)=>e.listen(a,t)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>c?.release?.()),3,e,"getSql")};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,S=a=>u(R(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),P=Object,f=a=>P.getPrototypeOf(a),D=P.entries,U=P.keys,F=P.freeze,M=(a=[])=>P.fromEntries(a),G=(...a)=>P.assign({},...a),B=(a,t)=>R(D(a),(([a,e])=>t(e,a))),j=a=>P.values(a),x=a=>l(U(a)),X=a=>(a=>!i(a)&&r(f(a),(a=>a==P.prototype||i(f(a))),(()=>!0)))(a)&&0==x(a),Y=a=>new Map(a),q=(a,t)=>a?.get(t),H=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(_(a,t)||W(a,t,e()),q(a,t)),J=Y(),K=Y(),V=(a,t,e,n,s,o,E,l={},w=[])=>{let d,u,R,A=0,T=0,g=0;k(J,w,(()=>0)),k(K,w,(()=>[]));const[C,p,O,L,v]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!X(a)||!X(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!X(a)||!X(t),t.setContent]:y("Store type not supported by this Persister"))(E,a),$=t=>{(C&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},I=async a=>(2!=A&&(A=1,T++,await h((async()=>{try{const a=await t();c(a)?$(a):y("Content is not an array "+a)}catch(t){o?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),S=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),b),_=()=>(r(R,a.delListener),R=void 0,b),h=async(...a)=>(N(q(K,w),...a),await(async()=>{if(!q(J,w)){for(W(J,w,1);!i((a=q(K,w),d=a.shift()));)try{await d()}catch(a){o?.(a)}W(J,w,0)}var a})(),b),b={load:I,startAutoLoad:async a=>{await m().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,$(t??a),A=0):await I()}))}catch(a){o?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:S,startAutoSave:async()=>(await _().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&S(a)})),b),stopAutoSave:_,isAutoSaving:()=>!i(R),schedule:h,getStore:()=>a,destroy:()=>(q(K,w).splice(0,void 0),m().stopAutoSave()),getStats:()=>({loads:T,saves:g}),...l};return F(b)},z=a=>new Set(c(a)||i(a)?a:[a]),Q=(a,t)=>a?.add(t),Z=(a,t,n,s,r)=>{const o=Y();return[async()=>{o.clear(),R(await n(a,t),(({tn:a,cn:t})=>Q(k(o,a,z),t)))},async(t,e)=>((a,t)=>_(q(o,a),t))(t,e)?M(T(R(await a(I+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!X(t)))):{},async(t,n,s,c,E,l=!1)=>{const y=z();B(s??{},(a=>R(U(a??{}),(a=>Q(y,a)))));const d=h(y);if(!l&&E&&A(d)&&_(o,t))return await a("DROP "+L+m(t)),void W(o,t);const g=q(o,t),C=z(h(g));if(A(d)||(_(o,t)?await w(R([n,...d],(async(e,s)=>{b(C,e)||(await a(v+m(t)+"ADD"+m(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),Q(g,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}text PRIMARY KEY${u(R(d,(a=>e+m(a)+"json")))});`),W(o,t,z([n,...d])))),await w([...!l&&c?R(h(C),(async e=>{e!=n&&(await a(v+m(t)+"DROP"+m(e)),b(g,e))})):[]]),l)i(s)?await a($+m(t)+O+" true"):await w(B(s,(async(e,s)=>{i(e)?await a($+m(t)+O+m(n)+"=$1",[s]):A(d)||await aa(a,t,n,U(e),[s,...j(e)],r)})));else if(A(d))_(o,t)&&await a($+m(t)+O+" true");else{const e=T(h(q(o,t)),(a=>a!=n)),i=[],c=[];B(s??{},((a,t)=>{N(i,t,...R(e,(t=>a?.[t]))),N(c,t)})),await aa(a,t,n,e,i,r),await a($+m(t)+O+m(n)+`NOT IN(${S(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},aa=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+ta(i,l(s)+1)+(r?"ON CONFLICT("+m(n)+")DO UPDATE SET"+u(R(s,(a=>m(a)+"=excluded."+m(a))),e):""),R(i,(a=>a??null))),ta=(a,t)=>u(d(l(a)/t,(a=>"("+u(d(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ea=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,u)=>{const[R,A,T,N]=Z(t,l,w,s,u),C=V(a,(async()=>await N((async()=>{return await R(),a=(await A(o,c))[g]?.[E]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await N((async()=>{var t;await R(),await T(o,c,{[g]:{[E]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>(C.stopAutoLoad().stopAutoSave(),i(),C)},y);return C},na=(a,t,e,n,s,r,o,[c,E,[l,y,d]],u,R,A,N,p)=>{const[O,L,v,$]=Z(t,u,R,s,p),I=async(a,t)=>await w(H(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await v(e,n,a[r],s,i,t)}))),m=async(a,t)=>y?await v(d,C,{[g]:a},!0,!0,t):null,S=V(a,(async()=>await $((async()=>{await O();const a=await(async()=>M(T(await w(H(c,(async([a,t],e)=>[a,await L(e,t)]))),(a=>!X(a[1])))))(),t=await(async()=>l?(await L(d,C))[g]:{})();return X(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await $((async()=>{if(await O(),i(t)){const[t,e]=a();await I(t),await m(e)}else await I(t[0],!0),await m(t[1],!0)}))),e,n,s,o,{[N]:()=>A,destroy:()=>(S.stopAutoLoad().stopAutoSave(),r(),S)},A);return S},sa="ColumnName",ia="store",ra="json",oa=ia+"TableName",ca=ia+"Id"+sa,Ea=ia+sa,la="autoLoadIntervalSeconds",wa="rowId"+sa,ya="tableId",da="tableName",ua="deleteEmptyColumns",Ra="deleteEmptyTable",Aa={mode:ra,[la]:1},Ta={load:0,save:0,[da]:t+"_values"},Na=(a,t,e,n,s)=>{const r=Y();return B(a,((a,c)=>{const l=E(j(G(t,o(a)?{[e]:a}:a)),0,x(t));i(l[0])||n(c,l[0])||(s(c,l[0]),W(r,c,l))})),r},ga=t,Ca=/^([cd]:)(.+)/,pa=t+"_data",Oa=t+"_table";exports.createPostgresPersister=async(a,e,n,s,i)=>{const c=await(e.reserve?.());return((a,e,n,s,i,c,l,y,d,u,A="getDb")=>{const T=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,c),[N,,g,L]=(a=>{const e=(a=>G(Aa,o(a)?{[oa]:a}:a??{}))(a),n=e[la];if(e.mode==ra){const a=e[oa]??t;return[1,n,[a,e[ca]??C,e[Ea]??ia],z(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=E(j(G(Ta,r)),0,x(Ta)),l=c[2],w=z(l),y=z(l);return[0,n,[Na(s,{[ya]:null,[wa]:C},ya,(a=>_(y,a)),(a=>Q(w,a))),Na(i,{[da]:null,[wa]:C,[ua]:0,[Ra]:0},da,((a,t)=>_(y,t)),((a,t)=>Q(w,t))),c],w]})(e),v=async a=>{await T(`CREATE OR REPLACE TRIGGER ${m(pa+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${m(a)} EXECUTE FUNCTION ${pa}()`)};return(N?ea:na)(a,T,(async a=>{await T(`CREATE OR REPLACE FUNCTION ${Oa}()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('${ga}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await T(`CREATE EVENT TRIGGER ${Oa} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${Oa}();`)}catch{}return await T(`CREATE OR REPLACE FUNCTION ${pa}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${ga}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(L),(async a=>{await T(`CREATE TABLE IF NOT EXISTS ${m(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(ga,(async t=>{return await r((e=t,n=Ca,e?.match(n)),(async([,t,e])=>{_(L,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,l,y,d,g,h(L),(async(a,t)=>await a(`${p} table_name tn,column_name cn FROM information_schema.columns ${O} table_schema='public'AND table_name IN(${S(t)})`,t)),u,A)})(a,n,c?.unsafe,(async(a,t)=>e.listen(a,t)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>c?.release?.()),3,e,"getSql")};
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,S=a=>u(R(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),P=Object,f=a=>P.getPrototypeOf(a),D=P.entries,U=P.keys,F=P.freeze,M=(a=[])=>P.fromEntries(a),G=(...a)=>P.assign({},...a),B=(a,t)=>(delete a[t],a),j=(a,t)=>R(D(a),(([a,e])=>t(e,a))),x=a=>P.values(a),X=a=>l(U(a)),Y=a=>(a=>!i(a)&&r(f(a),(a=>a==P.prototype||i(f(a))),(()=>!0)))(a)&&0==X(a),q=JSON.stringify,H=JSON.parse,W=a=>new Map(a),k=(a,t)=>a?.get(t),J=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),K=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),V=(a,t,e,n)=>(_(a,t)||K(a,t,e()),k(a,t)),z=W(),Q=W(),Z=(a,t,e,n,s,o,E,l={},w=[])=>{let d,u,R,A=0,T=0,g=0;V(z,w,(()=>0)),V(Q,w,(()=>[]));const[C,p,O,L,v]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Y(a)||!Y(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Y(a)||!Y(t),t.setContent]:y("Store type not supported by this Persister"))(E,a),$=t=>{(C&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},I=async a=>(2!=A&&(A=1,T++,await h((async()=>{try{const a=await t();c(a)?$(a):y("Content is not an array "+a)}catch(t){o?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),S=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),b),_=()=>(r(R,a.delListener),R=void 0,b),h=async(...a)=>(N(k(Q,w),...a),await(async()=>{if(!k(z,w)){for(K(z,w,1);!i((a=k(Q,w),d=a.shift()));)try{await d()}catch(a){o?.(a)}K(z,w,0)}var a})(),b),b={load:I,startAutoLoad:async a=>{await m().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,$(t??a),A=0):await I()}))}catch(a){o?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:S,startAutoSave:async()=>(await _().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&S(a)})),b),stopAutoSave:_,isAutoSaving:()=>!i(R),schedule:h,getStore:()=>a,destroy:()=>(k(Q,w).splice(0,void 0),m().stopAutoSave()),getStats:()=>({loads:T,saves:g}),...l};return F(b)},aa=a=>new Set(c(a)||i(a)?a:[a]),ta=(a,t)=>a?.add(t),ea=(a,t,n,s,r,o,c,E)=>{const l=W();return[async()=>{l.clear(),R(await n(a,t),(({tn:a,cn:t})=>ta(V(l,a,aa),t)))},async(t,e)=>((a,t)=>_(k(l,a),t))(t,e)?M(T(R(await a(I+m(t)),(a=>{return[a[e],E?(t=B(a,e),n=E,M(j(t,((a,t)=>[t,n(a,t)])))):B(a,e)];var t,n})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,n,s,E,y,d=!1)=>{const g=aa();j(s??{},(a=>R(U(a??{}),(a=>ta(g,a)))));const C=h(g);if(!d&&y&&A(C)&&_(l,t))return await a("DROP "+L+m(t)),void K(l,t);const p=k(l,t),I=aa(h(p));if(A(C)||(_(l,t)?await w(R([n,...C],(async(e,s)=>{b(I,e)||(await a(v+m(t)+"ADD"+m(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),ta(p,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}${r} PRIMARY KEY${u(R(C,(a=>e+m(a)+r)))});`),K(l,t,aa([n,...C])))),await w([...!d&&E?R(h(I),(async e=>{e!=n&&(await a(v+m(t)+"DROP"+m(e)),b(p,e))})):[]]),d)i(s)?await a($+m(t)+O+" true"):await w(j(s,(async(e,s)=>{i(e)?await a($+m(t)+O+m(n)+"=$1",[s]):A(C)||await na(a,t,n,U(e),[s,...c?R(x(e),c):x(e)],o)})));else if(A(C))_(l,t)&&await a($+m(t)+O+" true");else{const e=T(h(k(l,t)),(a=>a!=n)),i=[],r=[];j(s??{},((a,t)=>{N(i,t,...R(e,(t=>c?c(a?.[t]):a?.[t]))),N(r,t)})),await na(a,t,n,e,i,o),await a($+m(t)+O+m(n)+`NOT IN(${S(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},na=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+sa(i,l(s)+1)+(r?"":"ON CONFLICT("+m(n)+")DO UPDATE SET"+u(R(s,(a=>m(a)+"=excluded."+m(a))),e)),R(i,(a=>a??null))),sa=(a,t)=>u(d(l(a)/t,(a=>"("+u(d(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,u,R)=>{const[A,T,N,C]=ea(t,l,w,s,u,R),p=Z(a,(async()=>await C((async()=>{return await A(),a=(await T(o,c))[g]?.[E]??"null",H(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await C((async()=>{var t;await A(),await N(o,c,{[g]:{[E]:(t=a()??null,q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>(p.stopAutoLoad().stopAutoSave(),i(),p)},y);return p},ra=(a,t,e,n,s,r,o,[c,E,[l,y,d]],u,R,A,N,p,O,L,v)=>{const[$,I,m,S]=ea(t,u,R,s,p,O,L,v),_=async(a,t)=>await w(J(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await m(e,n,a[r],s,i,t)}))),h=async(a,t)=>y?await m(d,C,{[g]:a},!0,!0,t):null,b=Z(a,(async()=>await S((async()=>{await $();const a=await(async()=>M(T(await w(J(c,(async([a,t],e)=>[a,await I(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>l?(await I(d,C))[g]:{})();return Y(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await $(),i(t)){const[t,e]=a();await _(t),await h(e)}else await _(t[0],!0),await h(t[1],!0)}))),e,n,s,o,{[N]:()=>A,destroy:()=>(b.stopAutoLoad().stopAutoSave(),r(),b)},A);return b},oa="ColumnName",ca="store",Ea="json",la=ca+"TableName",wa=ca+"Id"+oa,ya=ca+oa,da="autoLoadIntervalSeconds",ua="rowId"+oa,Ra="tableId",Aa="tableName",Ta="deleteEmptyColumns",Na="deleteEmptyTable",ga={mode:Ea,[da]:1},Ca={load:0,save:0,[Aa]:t+"_values"},pa=(a,t,e,n,s)=>{const r=W();return j(a,((a,c)=>{const l=E(x(G(t,o(a)?{[e]:a}:a)),0,X(t));i(l[0])||n(c,l[0])||(s(c,l[0]),K(r,c,l))})),r},Oa=t,La=/^([cd]:)(.+)/,va=t+"_data",$a=t+"_table";exports.createPostgresPersister=async(a,e,n,s,i)=>{const c=await(e.reserve?.());return((a,e,n,s,i,c,l,y,d,u,A="getDb")=>{const T=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,c),[N,,g,L]=(a=>{const e=(a=>G(ga,o(a)?{[la]:a}:a??{}))(a),n=e[da];if(e.mode==Ea){const a=e[la]??t;return[1,n,[a,e[wa]??C,e[ya]??ca],aa(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=E(x(G(Ca,r)),0,X(Ca)),l=c[2],w=aa(l),y=aa(l);return[0,n,[pa(s,{[Ra]:null,[ua]:C},Ra,(a=>_(y,a)),(a=>ta(w,a))),pa(i,{[Aa]:null,[ua]:C,[Ta]:0,[Na]:0},Aa,((a,t)=>_(y,t)),((a,t)=>ta(w,t))),c],w]})(e),v=async a=>{await T(`CREATE OR REPLACE TRIGGER ${m(va+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${m(a)} EXECUTE FUNCTION ${va}()`)};return(N?ia:ra)(a,T,(async a=>{await T(`CREATE OR REPLACE FUNCTION ${$a}()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('${Oa}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await T(`CREATE EVENT TRIGGER ${$a} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${$a}();`)}catch{}return await T(`CREATE OR REPLACE FUNCTION ${va}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${Oa}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(L),(async a=>{await T(`CREATE TABLE IF NOT EXISTS ${m(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(Oa,(async t=>{return await r((e=t,n=La,e?.match(n)),(async([,t,e])=>{_(L,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,l,y,d,g,h(L),(async(a,t)=>await a(`${p} table_name tn,column_name cn FROM information_schema.columns ${O} table_schema='public'AND table_name IN(${S(t)})`,t)),u,A,"text",0,(a=>q(a)),(a=>H(a)))})(a,n,c?.unsafe,(async(a,t)=>e.listen(a,t)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>c?.release?.()),3,e,"getSql")};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,o=a=>null==a,i=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",b="TABLE",O="ALTER "+b,S="DELETE FROM",$=C+"*FROM",f="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>p(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&i(x(a),(a=>a==j.prototype||o(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(P(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[m,N,C,T,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),O=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?O(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&b(a)}p=0}))),L),$=()=>(v&&(s(v),v=void 0),L),f=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){r?.(a)}p=0}))),L),I=()=>(i(g,a.delListener),g=void 0,L),R=async(...a)=>(h(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!o((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}X(Z,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await $().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await S()}))}catch(a){r?.(a)}return L},stopAutoLoad:$,isAutoLoading:()=>!o(v),save:f,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&f(a)})),L),stopAutoSave:I,isAutoSaving:()=>!o(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),$().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,r)=>{const i=Q();return[async()=>{i.clear(),p(await n(a,t),(({tn:a,cn:t})=>na(q(i,a,ea),t)))},async(t,e)=>((a,t)=>P(V(i,a),t))(t,e)?Y(A(p(await a($+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>p(B(a??{}),(a=>na(y,a)))));const d=_(y);if(!w&&l&&E(d)&&P(i,t))return await a("DROP "+b+D(t)),void X(i,t);const v=V(i,t),m=ea(_(v));if(E(d)||(P(i,t)?await u(p([n,...d],(async(e,s)=>{F(m,e)||(await a(O+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+b+D(t)+`(${D(n)}text PRIMARY KEY${g(p(d,(a=>e+D(a)+"json")))});`),X(i,t,ea([n,...d])))),await u([...!w&&c?p(_(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(S+D(t)+T+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(S+D(t)+T+D(n)+"=$1",[s]):E(d)||await ra(a,t,n,B(e),[s,...H(e)],r)})));else if(E(d))P(i,t)&&await a(S+D(t)+T+" true");else{const e=A(_(V(i,t)),(a=>a!=n)),o=[],c=[];G(s??{},((a,t)=>{h(o,t,...p(e,(t=>a?.[t]))),h(c,t)})),await ra(a,t,n,e,o,r),await a(S+D(t)+T+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ra=async(a,t,n,s,r,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+oa(r,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e):""),p(r,(a=>a??null))),oa=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,r,o,[i,c,l],w,y,u,d,v)=>{const[g,p,E,A]=sa(t,w,y,s,v),h=ta(a,(async()=>await A((async()=>{return await g(),a=(await p(i,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await g(),await E(i,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),r(),h)},u);return h},ca=(a,t,e,n,s,r,i,[c,l,[w,y,d]],v,g,p,E,h)=>{const[C,T,b,O]=sa(t,v,g,s,h),S=async(a,t)=>await u(W(l,(async([e,n,s,r],o)=>{t&&!(o in a)||await b(e,n,a[o],s,r,t)}))),$=async(a,t)=>y?await b(d,N,{[m]:a},!0,!0,t):null,f=ta(a,(async()=>await O((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await T(d,N))[m]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await C(),o(t)){const[t,e]=a();await S(t),await $(e)}else await S(t[0],!0),await $(t[1],!0)}))),e,n,s,i,{[E]:()=>p,destroy:()=>(f.stopAutoLoad().stopAutoSave(),r(),f)},p);return f},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,ga="autoLoadIntervalSeconds",pa="rowId"+la,Ea="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",Na={mode:ya,[ga]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Ta=(a,t,e,n,s)=>{const r=Q();return G(a,((a,i)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(i,l[0])||(s(i,l[0]),X(r,i,l))})),r},ba=(a,e,n,s,o,i,l,y,u,d="getDb",v)=>{let g,p,E;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,i),[h,m,b,O]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[ga];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,i=w(H(k(Ca,o)),0,z(Ca)),l=i[2],y=ea(l),u=ea(l);return[0,n,[Ta(s,{[Ea]:null,[pa]:N},Ea,(a=>P(u,a)),(a=>na(y,a))),Ta(r,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>P(u,t)),((a,t)=>na(y,t))),i],y]})(e);return(h?ia:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${f}${I} JOIN ${f}${R}`);t==g&&e==p&&n==E||(null!=g&&a(),g=t,p=e,E=n)}catch{}}),1e3*m),n=()=>{g=p=E=null,r(t)},i=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(i)}}),(a=>a()),l,(()=>0),y,b,_(O),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)};exports.createPowerSyncPersister=(a,t,e,n,s,r=!1)=>ba(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,1,t,"getPowerSync",r);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",$="TABLE",b="ALTER "+$,O="DELETE FROM",S=C+"*FROM",f="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>p(x(a),(([a,e])=>t(e,a))),z=a=>U.values(a),K=a=>y(B(a)),Q=a=>(a=>!i(a)&&o(j(a),(a=>a==U.prototype||i(j(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),q=(a,t)=>a?.get(t),Z=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>i(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(P(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[m,N,C,T,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),b=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?b(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&$(a)}p=0}))),L),S=()=>(v&&(s(v),v=void 0),L),f=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){r?.(a)}p=0}))),L),I=()=>(o(g,a.delListener),g=void 0,L),R=async(...a)=>(h(q(na,y),...a),await(async()=>{if(!q(ea,y)){for(aa(ea,y,1);!i((a=q(na,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}aa(ea,y,0)}var a})(),L),L={load:O,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,b(t??a),p=0):await O()}))}catch(a){r?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!i(v),save:f,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&f(a)})),L),stopAutoSave:I,isAutoSaving:()=>!i(g),schedule:R,getStore:()=>a,destroy:()=>(q(na,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ra=a=>new Set(l(a)||i(a)?a:[a]),ia=(a,t)=>a?.add(t),oa=(a,t,n,s,r,o,c,l)=>{const w=X();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>ia(ta(w,a,ra),t)))},async(t,e)=>((a,t)=>P(q(w,a),t))(t,e)?Y(A(p(await a(S+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!i(a)&&!Q(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ra();H(s??{},(a=>p(B(a??{}),(a=>ia(v,a)))));const m=_(v);if(!d&&y&&E(m)&&P(w,t))return await a("DROP "+$+D(t)),void aa(w,t);const N=q(w,t),C=ra(_(N));if(E(m)||(P(w,t)?await u(p([n,...m],(async(e,s)=>{F(C,e)||(await a(b+D(t)+"ADD"+D(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),ia(N,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}${r} PRIMARY KEY${g(p(m,(a=>e+D(a)+r)))});`),aa(w,t,ra([n,...m])))),await u([...!d&&l?p(_(C),(async e=>{e!=n&&(await a(b+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)i(s)?await a(O+D(t)+T+" true"):await u(H(s,(async(e,s)=>{i(e)?await a(O+D(t)+T+D(n)+"=$1",[s]):E(m)||await ca(a,t,n,B(e),[s,...c?p(z(e),c):z(e)],o)})));else if(E(m))P(w,t)&&await a(O+D(t)+T+" true");else{const e=A(_(q(w,t)),(a=>a!=n)),r=[],i=[];H(s??{},((a,t)=>{h(r,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),h(i,t)})),await ca(a,t,n,e,r,o),await a(O+D(t)+T+D(n)+`NOT IN(${M(i)})`,i)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,r,i=0)=>await a("INSERT "+(i?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+la(r,y(s)+1)+(i?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e)),p(r,(a=>a??null))),la=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,r,i,[o,c,l],w,y,u,d,v,g)=>{const[p,E,A,h]=oa(t,w,y,s,v,g),N=sa(a,(async()=>await h((async()=>{return await p(),a=(await E(o,c))[m]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await h((async()=>{var t;await p(),await A(o,c,{[m]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),r(),N)},u);return N},ya=(a,t,e,n,s,r,o,[c,l,[w,y,d]],v,g,p,E,h,C,T,$)=>{const[b,O,S,f]=oa(t,v,g,s,h,C,T,$),I=async(a,t)=>await u(Z(l,(async([e,n,s,r],i)=>{t&&!(i in a)||await S(e,n,a[i],s,r,t)}))),R=async(a,t)=>y?await S(d,N,{[m]:a},!0,!0,t):null,L=sa(a,(async()=>await f((async()=>{await b();const a=await(async()=>Y(A(await u(Z(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>w?(await O(d,N))[m]:{})();return Q(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await b(),i(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[E]:()=>p,destroy:()=>(L.stopAutoLoad().stopAutoSave(),r(),L)},p);return L},ua="ColumnName",da="store",va="json",ga=da+"TableName",pa=da+"Id"+ua,Ea=da+ua,Aa="autoLoadIntervalSeconds",ha="rowId"+ua,ma="tableId",Na="tableName",Ca="deleteEmptyColumns",Ta="deleteEmptyTable",$a={mode:va,[Aa]:1},ba={load:0,save:0,[Na]:t+"_values"},Oa=(a,t,e,n,s)=>{const r=X();return H(a,((a,o)=>{const l=w(z(k(t,c(a)?{[e]:a}:a)),0,K(t));i(l[0])||n(o,l[0])||(s(o,l[0]),aa(r,o,l))})),r},Sa=(a,e,n,s,i,o,l,y,u,d,v="getDb",g)=>{let p,E,A;const h=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[m,$,b,O]=(a=>{const e=(a=>k($a,c(a)?{[ga]:a}:a??{}))(a),n=e[Aa];if(e.mode==va){const a=e[ga]??t;return[1,n,[a,e[pa]??N,e[Ea]??da],ra(a)]}const{tables:{load:s={},save:r={}}={},values:i={}}=e,o=w(z(k(ba,i)),0,K(ba)),l=o[2],y=ra(l),u=ra(l);return[0,n,[Oa(s,{[ma]:null,[ha]:N},ma,(a=>P(u,a)),(a=>ia(y,a))),Oa(r,{[Na]:null,[ha]:N,[Ca]:0,[Ta]:0},Na,((a,t)=>P(u,t)),((a,t)=>ia(y,t))),o],y]})(e);return(m?wa:ya)(a,h,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await h(`${C} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${f}${I} JOIN ${f}${R}`);t==p&&e==E&&n==A||(null!=p&&a(),p=t,E=e,A=n)}catch{}}),1e3*$),n=()=>{p=E=A=null,r(t)},o=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(o)}}),(a=>a()),l,y,u,b,_(O),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",g,(a=>!0===a?1:!1===a?0:a),void 0)};exports.createPowerSyncPersister=(a,t,e,n,s,r=1)=>Sa(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,(()=>0),1,t,"getPowerSync",r);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,o=a=>null==a,i=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",b="TABLE",O="ALTER "+b,S="DELETE FROM",$=C+"*FROM",f="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>p(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!o(a)&&i(x(a),(a=>a==j.prototype||o(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(P(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[m,N,C,T,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),O=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?O(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&b(a)}p=0}))),L),$=()=>(v&&(s(v),v=void 0),L),f=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){r?.(a)}p=0}))),L),I=()=>(i(g,a.delListener),g=void 0,L),R=async(...a)=>(h(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!o((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}X(Z,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await $().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await S()}))}catch(a){r?.(a)}return L},stopAutoLoad:$,isAutoLoading:()=>!o(v),save:f,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&f(a)})),L),stopAutoSave:I,isAutoSaving:()=>!o(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),$().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,r)=>{const i=Q();return[async()=>{i.clear(),p(await n(a,t),(({tn:a,cn:t})=>na(q(i,a,ea),t)))},async(t,e)=>((a,t)=>P(V(i,a),t))(t,e)?Y(A(p(await a($+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>p(B(a??{}),(a=>na(y,a)))));const d=_(y);if(!w&&l&&E(d)&&P(i,t))return await a("DROP "+b+D(t)),void X(i,t);const v=V(i,t),m=ea(_(v));if(E(d)||(P(i,t)?await u(p([n,...d],(async(e,s)=>{F(m,e)||(await a(O+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+b+D(t)+`(${D(n)}text PRIMARY KEY${g(p(d,(a=>e+D(a)+"json")))});`),X(i,t,ea([n,...d])))),await u([...!w&&c?p(_(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(S+D(t)+T+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(S+D(t)+T+D(n)+"=$1",[s]):E(d)||await ra(a,t,n,B(e),[s,...H(e)],r)})));else if(E(d))P(i,t)&&await a(S+D(t)+T+" true");else{const e=A(_(V(i,t)),(a=>a!=n)),o=[],c=[];G(s??{},((a,t)=>{h(o,t,...p(e,(t=>a?.[t]))),h(c,t)})),await ra(a,t,n,e,o,r),await a(S+D(t)+T+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ra=async(a,t,n,s,r,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+oa(r,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e):""),p(r,(a=>a??null))),oa=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,r,o,[i,c,l],w,y,u,d,v)=>{const[g,p,E,A]=sa(t,w,y,s,v),h=ta(a,(async()=>await A((async()=>{return await g(),a=(await p(i,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await g(),await E(i,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),r(),h)},u);return h},ca=(a,t,e,n,s,r,i,[c,l,[w,y,d]],v,g,p,E,h)=>{const[C,T,b,O]=sa(t,v,g,s,h),S=async(a,t)=>await u(W(l,(async([e,n,s,r],o)=>{t&&!(o in a)||await b(e,n,a[o],s,r,t)}))),$=async(a,t)=>y?await b(d,N,{[m]:a},!0,!0,t):null,f=ta(a,(async()=>await O((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await T(d,N))[m]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await C(),o(t)){const[t,e]=a();await S(t),await $(e)}else await S(t[0],!0),await $(t[1],!0)}))),e,n,s,i,{[E]:()=>p,destroy:()=>(f.stopAutoLoad().stopAutoSave(),r(),f)},p);return f},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,ga="autoLoadIntervalSeconds",pa="rowId"+la,Ea="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",Na={mode:ya,[ga]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Ta=(a,t,e,n,s)=>{const r=Q();return G(a,((a,i)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));o(l[0])||n(i,l[0])||(s(i,l[0]),X(r,i,l))})),r},ba=(a,e,n,s,o,i,l,y,u,d="getDb",v)=>{let g,p,E;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,i),[h,m,b,O]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[ga];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,i=w(H(k(Ca,o)),0,z(Ca)),l=i[2],y=ea(l),u=ea(l);return[0,n,[Ta(s,{[Ea]:null,[pa]:N},Ea,(a=>P(u,a)),(a=>na(y,a))),Ta(r,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>P(u,t)),((a,t)=>na(y,t))),i],y]})(e);return(h?ia:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${f}${I} JOIN ${f}${R}`);t==g&&e==p&&n==E||(null!=g&&a(),g=t,p=e,E=n)}catch{}}),1e3*m),n=()=>{g=p=E=null,r(t)},i=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(i)}}),(a=>a()),l,(()=>0),y,b,_(O),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)};exports.createPowerSyncPersister=(a,t,e,n,s,r=!1)=>ba(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,1,t,"getPowerSync",r);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",$="TABLE",b="ALTER "+$,O="DELETE FROM",S=C+"*FROM",f="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>p(x(a),(([a,e])=>t(e,a))),z=a=>U.values(a),K=a=>y(B(a)),Q=a=>(a=>!i(a)&&o(j(a),(a=>a==U.prototype||i(j(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),q=(a,t)=>a?.get(t),Z=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>i(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(P(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[m,N,C,T,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),b=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?b(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&$(a)}p=0}))),L),S=()=>(v&&(s(v),v=void 0),L),f=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){r?.(a)}p=0}))),L),I=()=>(o(g,a.delListener),g=void 0,L),R=async(...a)=>(h(q(na,y),...a),await(async()=>{if(!q(ea,y)){for(aa(ea,y,1);!i((a=q(na,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}aa(ea,y,0)}var a})(),L),L={load:O,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,b(t??a),p=0):await O()}))}catch(a){r?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!i(v),save:f,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&f(a)})),L),stopAutoSave:I,isAutoSaving:()=>!i(g),schedule:R,getStore:()=>a,destroy:()=>(q(na,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ra=a=>new Set(l(a)||i(a)?a:[a]),ia=(a,t)=>a?.add(t),oa=(a,t,n,s,r,o,c,l)=>{const w=X();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>ia(ta(w,a,ra),t)))},async(t,e)=>((a,t)=>P(q(w,a),t))(t,e)?Y(A(p(await a(S+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!i(a)&&!Q(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ra();H(s??{},(a=>p(B(a??{}),(a=>ia(v,a)))));const m=_(v);if(!d&&y&&E(m)&&P(w,t))return await a("DROP "+$+D(t)),void aa(w,t);const N=q(w,t),C=ra(_(N));if(E(m)||(P(w,t)?await u(p([n,...m],(async(e,s)=>{F(C,e)||(await a(b+D(t)+"ADD"+D(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),ia(N,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}${r} PRIMARY KEY${g(p(m,(a=>e+D(a)+r)))});`),aa(w,t,ra([n,...m])))),await u([...!d&&l?p(_(C),(async e=>{e!=n&&(await a(b+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)i(s)?await a(O+D(t)+T+" true"):await u(H(s,(async(e,s)=>{i(e)?await a(O+D(t)+T+D(n)+"=$1",[s]):E(m)||await ca(a,t,n,B(e),[s,...c?p(z(e),c):z(e)],o)})));else if(E(m))P(w,t)&&await a(O+D(t)+T+" true");else{const e=A(_(q(w,t)),(a=>a!=n)),r=[],i=[];H(s??{},((a,t)=>{h(r,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),h(i,t)})),await ca(a,t,n,e,r,o),await a(O+D(t)+T+D(n)+`NOT IN(${M(i)})`,i)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,r,i=0)=>await a("INSERT "+(i?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+la(r,y(s)+1)+(i?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e)),p(r,(a=>a??null))),la=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,r,i,[o,c,l],w,y,u,d,v,g)=>{const[p,E,A,h]=oa(t,w,y,s,v,g),N=sa(a,(async()=>await h((async()=>{return await p(),a=(await E(o,c))[m]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await h((async()=>{var t;await p(),await A(o,c,{[m]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),r(),N)},u);return N},ya=(a,t,e,n,s,r,o,[c,l,[w,y,d]],v,g,p,E,h,C,T,$)=>{const[b,O,S,f]=oa(t,v,g,s,h,C,T,$),I=async(a,t)=>await u(Z(l,(async([e,n,s,r],i)=>{t&&!(i in a)||await S(e,n,a[i],s,r,t)}))),R=async(a,t)=>y?await S(d,N,{[m]:a},!0,!0,t):null,L=sa(a,(async()=>await f((async()=>{await b();const a=await(async()=>Y(A(await u(Z(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>w?(await O(d,N))[m]:{})();return Q(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await b(),i(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[E]:()=>p,destroy:()=>(L.stopAutoLoad().stopAutoSave(),r(),L)},p);return L},ua="ColumnName",da="store",va="json",ga=da+"TableName",pa=da+"Id"+ua,Ea=da+ua,Aa="autoLoadIntervalSeconds",ha="rowId"+ua,ma="tableId",Na="tableName",Ca="deleteEmptyColumns",Ta="deleteEmptyTable",$a={mode:va,[Aa]:1},ba={load:0,save:0,[Na]:t+"_values"},Oa=(a,t,e,n,s)=>{const r=X();return H(a,((a,o)=>{const l=w(z(k(t,c(a)?{[e]:a}:a)),0,K(t));i(l[0])||n(o,l[0])||(s(o,l[0]),aa(r,o,l))})),r},Sa=(a,e,n,s,i,o,l,y,u,d,v="getDb",g)=>{let p,E,A;const h=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[m,$,b,O]=(a=>{const e=(a=>k($a,c(a)?{[ga]:a}:a??{}))(a),n=e[Aa];if(e.mode==va){const a=e[ga]??t;return[1,n,[a,e[pa]??N,e[Ea]??da],ra(a)]}const{tables:{load:s={},save:r={}}={},values:i={}}=e,o=w(z(k(ba,i)),0,K(ba)),l=o[2],y=ra(l),u=ra(l);return[0,n,[Oa(s,{[ma]:null,[ha]:N},ma,(a=>P(u,a)),(a=>ia(y,a))),Oa(r,{[Na]:null,[ha]:N,[Ca]:0,[Ta]:0},Na,((a,t)=>P(u,t)),((a,t)=>ia(y,t))),o],y]})(e);return(m?wa:ya)(a,h,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await h(`${C} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${f}${I} JOIN ${f}${R}`);t==p&&e==E&&n==A||(null!=p&&a(),p=t,E=e,A=n)}catch{}}),1e3*$),n=()=>{p=E=A=null,r(t)},o=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(o)}}),(a=>a()),l,y,u,b,_(O),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",g,(a=>!0===a?1:!1===a?0:a),void 0)};exports.createPowerSyncPersister=(a,t,e,n,s,r=1)=>Sa(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,(()=>0),1,t,"getPowerSync",r);
@@ -1 +1 @@
1
- "use strict";const t=clearInterval,e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=t=>Array.isArray(t),n=t=>{throw Error(t)},r=Object,o=t=>r.getPrototypeOf(t),i=r.keys,c=r.freeze,y=t=>(t=>!e(t)&&a(o(t),(t=>t==r.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),l=JSON.parse,g=t=>new Map(t),h=(t,e)=>t?.get(e),d=(t,a,s)=>{return e(s)?(n=t,r=a,n?.delete(r),t):t?.set(a,s);var n,r},p=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)||d(t,e,a()),h(t,e)},u=g(),v=g(),w=t=>t.headers.get("ETag");exports.createRemotePersister=(o,i,g,f=5,C)=>{let A;return((t,r,o,i,l,g,w,f={},C=[])=>{let A,S,b,M=0,T=0,L=0;p(u,C,(()=>0)),p(v,C,(()=>[]));const[O,m,E,P,D]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!y(t)||!y(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!y(t)||!y(e),e.setContent]:n("Store type not supported by this Persister"))(w,t),j=e=>{(O&&s(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=M&&(M=1,T++,await k((async()=>{try{const t=await r();s(t)?j(t):n("Content is not an array "+t)}catch(e){g?.(e),t&&D(t)}M=0}))),z),I=()=>(S&&(l(S),S=void 0),z),J=async t=>(1!=M&&(M=2,L++,await k((async()=>{try{await o(m,t)}catch(t){g?.(t)}M=0}))),z),N=()=>(a(b,t.delListener),b=void 0,z),k=async(...t)=>(((t,...e)=>{t.push(...e)})(h(v,C),...t),await(async()=>{if(!h(u,C)){for(d(u,C,1);!e((t=h(v,C),A=t.shift()));)try{await A()}catch(t){g?.(t)}d(u,C,0)}var t})(),z),z={load:x,startAutoLoad:async t=>{await I().load(t);try{S=await i((async(t,e)=>{e||t?2!=M&&(M=1,T++,j(e??t),M=0):await x()}))}catch(t){g?.(t)}return z},stopAutoLoad:I,isAutoLoading:()=>!e(S),save:J,startAutoSave:async()=>(await N().save(),b=t.addDidFinishTransactionListener((()=>{const t=E();P(t)&&J(t)})),z),stopAutoSave:N,isAutoSaving:()=>!e(b),schedule:k,getStore:()=>t,destroy:()=>(h(v,C).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:L}),...f};return c(z)})(o,(async()=>{const t=await fetch(i);return A=w(t),l(await t.text())}),(async t=>{return await fetch(g,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(i,{method:"HEAD"}),s=w(a);e(A)||e(s)||s==A||(A=s,t())}),1e3*f)),(e=>t(e)),C,1,{getUrls:()=>[i,g]})};
1
+ "use strict";const t=clearInterval,e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=t=>Array.isArray(t),n=t=>{throw Error(t)},r=Object,o=t=>r.getPrototypeOf(t),i=r.keys,c=r.freeze,y=t=>(t=>!e(t)&&a(o(t),(t=>t==r.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),l=JSON.stringify,g=JSON.parse,h=t=>new Map(t),d=(t,e)=>t?.get(e),p=(t,a,s)=>{return e(s)?(n=t,r=a,n?.delete(r),t):t?.set(a,s);var n,r},u=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)||p(t,e,a()),d(t,e)},v=h(),w=h(),f=t=>t.headers.get("ETag");exports.createRemotePersister=(o,i,h,C=5,A)=>{let S;return((t,r,o,i,l,g,h,f={},C=[])=>{let A,S,b,M=0,T=0,L=0;u(v,C,(()=>0)),u(w,C,(()=>[]));const[O,m,E,P,D]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!y(t)||!y(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!y(t)||!y(e),e.setContent]:n("Store type not supported by this Persister"))(h,t),j=e=>{(O&&s(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=M&&(M=1,T++,await k((async()=>{try{const t=await r();s(t)?j(t):n("Content is not an array "+t)}catch(e){g?.(e),t&&D(t)}M=0}))),z),I=()=>(S&&(l(S),S=void 0),z),J=async t=>(1!=M&&(M=2,L++,await k((async()=>{try{await o(m,t)}catch(t){g?.(t)}M=0}))),z),N=()=>(a(b,t.delListener),b=void 0,z),k=async(...t)=>(((t,...e)=>{t.push(...e)})(d(w,C),...t),await(async()=>{if(!d(v,C)){for(p(v,C,1);!e((t=d(w,C),A=t.shift()));)try{await A()}catch(t){g?.(t)}p(v,C,0)}var t})(),z),z={load:x,startAutoLoad:async t=>{await I().load(t);try{S=await i((async(t,e)=>{e||t?2!=M&&(M=1,T++,j(e??t),M=0):await x()}))}catch(t){g?.(t)}return z},stopAutoLoad:I,isAutoLoading:()=>!e(S),save:J,startAutoSave:async()=>(await N().save(),b=t.addDidFinishTransactionListener((()=>{const t=E();P(t)&&J(t)})),z),stopAutoSave:N,isAutoSaving:()=>!e(b),schedule:k,getStore:()=>t,destroy:()=>(d(w,C).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:L}),...f};return c(z)})(o,(async()=>{const t=await fetch(i);return S=f(t),g(await t.text())}),(async t=>{return await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),l(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(i,{method:"HEAD"}),s=f(a);e(S)||e(s)||s==S||(S=s,t())}),1e3*C)),(e=>t(e)),A,1,{getUrls:()=>[i,h]})};
@@ -1 +1 @@
1
- "use strict";const t=clearInterval,e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=t=>Array.isArray(t),n=t=>{throw Error(t)},r=Object,o=t=>r.getPrototypeOf(t),i=r.keys,c=r.freeze,y=t=>(t=>!e(t)&&a(o(t),(t=>t==r.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),l=JSON.parse,g=t=>new Map(t),h=(t,e)=>t?.get(e),d=(t,a,s)=>{return e(s)?(n=t,r=a,n?.delete(r),t):t?.set(a,s);var n,r},p=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)||d(t,e,a()),h(t,e)},u=g(),v=g(),w=t=>t.headers.get("ETag");exports.createRemotePersister=(o,i,g,f=5,C)=>{let A;return((t,r,o,i,l,g,w,f={},C=[])=>{let A,S,b,M=0,T=0,L=0;p(u,C,(()=>0)),p(v,C,(()=>[]));const[O,m,E,P,D]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!y(t)||!y(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!y(t)||!y(e),e.setContent]:n("Store type not supported by this Persister"))(w,t),j=e=>{(O&&s(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=M&&(M=1,T++,await k((async()=>{try{const t=await r();s(t)?j(t):n("Content is not an array "+t)}catch(e){g?.(e),t&&D(t)}M=0}))),z),I=()=>(S&&(l(S),S=void 0),z),J=async t=>(1!=M&&(M=2,L++,await k((async()=>{try{await o(m,t)}catch(t){g?.(t)}M=0}))),z),N=()=>(a(b,t.delListener),b=void 0,z),k=async(...t)=>(((t,...e)=>{t.push(...e)})(h(v,C),...t),await(async()=>{if(!h(u,C)){for(d(u,C,1);!e((t=h(v,C),A=t.shift()));)try{await A()}catch(t){g?.(t)}d(u,C,0)}var t})(),z),z={load:x,startAutoLoad:async t=>{await I().load(t);try{S=await i((async(t,e)=>{e||t?2!=M&&(M=1,T++,j(e??t),M=0):await x()}))}catch(t){g?.(t)}return z},stopAutoLoad:I,isAutoLoading:()=>!e(S),save:J,startAutoSave:async()=>(await N().save(),b=t.addDidFinishTransactionListener((()=>{const t=E();P(t)&&J(t)})),z),stopAutoSave:N,isAutoSaving:()=>!e(b),schedule:k,getStore:()=>t,destroy:()=>(h(v,C).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:L}),...f};return c(z)})(o,(async()=>{const t=await fetch(i);return A=w(t),l(await t.text())}),(async t=>{return await fetch(g,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(i,{method:"HEAD"}),s=w(a);e(A)||e(s)||s==A||(A=s,t())}),1e3*f)),(e=>t(e)),C,1,{getUrls:()=>[i,g]})};
1
+ "use strict";const t=clearInterval,e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=t=>Array.isArray(t),n=t=>{throw Error(t)},r=Object,o=t=>r.getPrototypeOf(t),i=r.keys,c=r.freeze,y=t=>(t=>!e(t)&&a(o(t),(t=>t==r.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),l=JSON.stringify,g=JSON.parse,h=t=>new Map(t),d=(t,e)=>t?.get(e),p=(t,a,s)=>{return e(s)?(n=t,r=a,n?.delete(r),t):t?.set(a,s);var n,r},u=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)||p(t,e,a()),d(t,e)},v=h(),w=h(),f=t=>t.headers.get("ETag");exports.createRemotePersister=(o,i,h,C=5,A)=>{let S;return((t,r,o,i,l,g,h,f={},C=[])=>{let A,S,b,M=0,T=0,L=0;u(v,C,(()=>0)),u(w,C,(()=>[]));const[O,m,E,P,D]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!y(t)||!y(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!y(t)||!y(e),e.setContent]:n("Store type not supported by this Persister"))(h,t),j=e=>{(O&&s(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=M&&(M=1,T++,await k((async()=>{try{const t=await r();s(t)?j(t):n("Content is not an array "+t)}catch(e){g?.(e),t&&D(t)}M=0}))),z),I=()=>(S&&(l(S),S=void 0),z),J=async t=>(1!=M&&(M=2,L++,await k((async()=>{try{await o(m,t)}catch(t){g?.(t)}M=0}))),z),N=()=>(a(b,t.delListener),b=void 0,z),k=async(...t)=>(((t,...e)=>{t.push(...e)})(d(w,C),...t),await(async()=>{if(!d(v,C)){for(p(v,C,1);!e((t=d(w,C),A=t.shift()));)try{await A()}catch(t){g?.(t)}p(v,C,0)}var t})(),z),z={load:x,startAutoLoad:async t=>{await I().load(t);try{S=await i((async(t,e)=>{e||t?2!=M&&(M=1,T++,j(e??t),M=0):await x()}))}catch(t){g?.(t)}return z},stopAutoLoad:I,isAutoLoading:()=>!e(S),save:J,startAutoSave:async()=>(await N().save(),b=t.addDidFinishTransactionListener((()=>{const t=E();P(t)&&J(t)})),z),stopAutoSave:N,isAutoSaving:()=>!e(b),schedule:k,getStore:()=>t,destroy:()=>(d(w,C).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:L}),...f};return c(z)})(o,(async()=>{const t=await fetch(i);return S=f(t),g(await t.text())}),(async t=>{return await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),l(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(i,{method:"HEAD"}),s=f(a);e(S)||e(s)||s==S||(S=s,t())}),1e3*C)),(e=>t(e)),A,1,{getUrls:()=>[i,h]})};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==s,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>n.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",$="TABLE",S="ALTER "+$,T="DELETE FROM",b=C+"*FROM",R="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,x=a=>F.getPrototypeOf(a),k=F.entries,U=F.keys,q=F.freeze,B=(a=[])=>F.fromEntries(a),J=(...a)=>F.assign({},...a),Y=(a,t)=>E(k(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>y(U(a)),V=a=>(a=>!o(a)&&r(x(a),(a=>a==F.prototype||o(x(a))),(()=>!0)))(a)&&0==H(a),W=a=>new Map(a),z=(a,t)=>a?.get(t),K=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),Q=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,s)=>(M(a,t)||Q(a,t,e()),z(a,t)),Z=W(),aa=W(),ta=(a,t,e,s,n,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!V(a)||!V(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),S=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?S(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),b=()=>(p&&(n(p),p=void 0),L),R=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(z(aa,y),...a),await(async()=>{if(!z(Z,y)){for(Q(Z,y,1);!o((a=z(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}Q(Z,y,0)}var a})(),L),L={load:T,startAutoLoad:async a=>{await b().load(a);try{p=await s((async(a,t)=>{t||a?2!=E&&(E=1,A++,S(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!o(p),save:R,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&R(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(z(aa,y).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return q(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),sa=(a,t)=>a?.add(t),na=(a,t,s,n,i)=>{const r=W();return[async()=>{r.clear(),E(await s(a,t),(({tn:a,cn:t})=>sa(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(z(r,a),t))(t,e)?B(g(E(await a(b+D(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,s,n,c,l,w=!1)=>{const y=ea();Y(n??{},(a=>E(U(a??{}),(a=>sa(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+$+D(t)),void Q(r,t);const p=z(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([s,...d],(async(e,n)=>{j(h,e)||(await a(S+D(t)+"ADD"+D(e)+(0==n?"text":"json")),0==n&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(s)})`),sa(p,e))}))):(await a("CREATE "+$+D(t)+`(${D(s)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),Q(r,t,ea([s,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=s&&(await a(S+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(n)?await a(T+D(t)+O+" true"):await u(Y(n,(async(e,n)=>{o(e)?await a(T+D(t)+O+D(s)+"=$1",[n]):A(d)||await ia(a,t,s,U(e),[n,...G(e)],i)})));else if(A(d))M(r,t)&&await a(T+D(t)+O+" true");else{const e=g(P(z(r,t)),(a=>a!=s)),o=[],c=[];Y(n??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,s,e,o,i),await a(T+D(t)+O+D(s)+`NOT IN(${_(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ia=async(a,t,s,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(s)+v(E(n,(a=>e+D(a))))+")VALUES"+oa(i,y(n)+1)+(o?"ON CONFLICT("+D(s)+")DO UPDATE SET"+v(E(n,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,s,n,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=na(t,w,y,n,p),m=ta(a,(async()=>await g((async()=>{return await v(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await A(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,s,n,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,$,S]=na(t,p,v,n,m),T=async(a,t)=>await u(K(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await $(e,s,a[o],n,i,t)}))),b=async(a,t)=>y?await $(d,N,{[h]:a},!0,!0,t):null,R=ta(a,(async()=>await S((async()=>{await C();const a=await(async()=>B(g(await u(K(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!V(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return V(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await C(),o(t)){const[t,e]=a();await T(t),await b(e)}else await T(t[0],!0),await b(t[1],!0)}))),e,s,n,r,{[A]:()=>E,destroy:()=>(R.stopAutoLoad().stopAutoSave(),i(),R)},E);return R},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,pa=wa+la,va="autoLoadIntervalSeconds",Ea="rowId"+la,Aa="tableId",ga="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[va]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,s,n)=>{const i=W();return Y(a,((a,r)=>{const l=w(G(J(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||s(r,l[0])||(n(r,l[0]),Q(i,r,l))})),i},$a=(a,e,s,n,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const g=((a,t)=>t?async(e,s)=>(t(e,s),await a(e,s)):a)(s,r),[m,h,$,S]=(a=>{const e=(a=>J(Na,c(a)?{[ua]:a}:a??{}))(a),s=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,s,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,r=w(G(J(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,s,[Oa(n,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>sa(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>sa(y,t))),r],y]})(e);return(m?ra:ca)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:s}]=await g(`${C} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${R}${f} JOIN ${R}${I}`);t==v&&e==E&&s==A||(null!=v&&a(),v=t,E=e,A=s)}catch{}}),1e3*h),s=()=>{v=E=A=null,i(t)},r=n((t=>{S.has(t)&&(s(),a(),e())}));return e(),()=>{s(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(S),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,p)};exports.createSqliteWasmPersister=(a,t,e,s,n,i)=>$a(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,3,e);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==s,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>n.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",$="SELECT",C="WHERE",O="TABLE",S="ALTER "+O,T="DELETE FROM",b=$+"*FROM",R="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,k=a=>j.getPrototypeOf(a),U=j.entries,q=j.keys,x=j.freeze,B=(a=[])=>j.fromEntries(a),J=(...a)=>j.assign({},...a),Y=(a,t)=>(delete a[t],a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),V=a=>y(q(a)),W=a=>(a=>!o(a)&&r(k(a),(a=>a==j.prototype||o(k(a))),(()=>!0)))(a)&&0==V(a),z=JSON.stringify,K=JSON.parse,Q=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,s)=>(M(a,t)||aa(a,t,e()),X(a,t)),ea=Q(),sa=Q(),na=(a,t,e,s,n,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;ta(ea,y,(()=>0)),ta(sa,y,(()=>[]));const[h,N,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!W(a)||!W(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),S=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?S(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),b=()=>(p&&(n(p),p=void 0),L),R=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(X(sa,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(sa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:T,startAutoLoad:async a=>{await b().load(a);try{p=await s((async(a,t)=>{t||a?2!=E&&(E=1,A++,S(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!o(p),save:R,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&R(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(X(sa,y).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return x(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,s,n,i,r,c,l)=>{const w=Q();return[async()=>{w.clear(),E(await s(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>M(X(w,a),t))(t,e)?B(g(E(await a(b+D(t)),(a=>{return[a[e],l?(t=Y(a,e),s=l,B(G(t,((a,t)=>[t,s(a,t)])))):Y(a,e)];var t,s})),(([a,t])=>!o(a)&&!W(t)))):{},async(t,s,n,l,y,d=!1)=>{const p=ia();G(n??{},(a=>E(q(a??{}),(a=>oa(p,a)))));const h=P(p);if(!d&&y&&A(h)&&M(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const N=X(w,t),$=ia(P(N));if(A(h)||(M(w,t)?await u(E([s,...h],(async(e,n)=>{F($,e)||(await a(S+D(t)+"ADD"+D(e)+i),0==n&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(s)})`),oa(N,e))}))):(await a("CREATE "+O+D(t)+`(${D(s)}${i} PRIMARY KEY${v(E(h,(a=>e+D(a)+i)))});`),aa(w,t,ia([s,...h])))),await u([...!d&&l?E(P($),(async e=>{e!=s&&(await a(S+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)o(n)?await a(T+D(t)+C+" true"):await u(G(n,(async(e,n)=>{o(e)?await a(T+D(t)+C+D(s)+"=$1",[n]):A(h)||await ca(a,t,s,q(e),[n,...c?E(H(e),c):H(e)],r)})));else if(A(h))M(w,t)&&await a(T+D(t)+C+" true");else{const e=g(P(X(w,t)),(a=>a!=s)),i=[],o=[];G(n??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,s,e,i,r),await a(T+D(t)+C+D(s)+`NOT IN(${_(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ca=async(a,t,s,n,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(s)+v(E(n,(a=>e+D(a))))+")VALUES"+la(i,y(n)+1)+(o?"":"ON CONFLICT("+D(s)+")DO UPDATE SET"+v(E(n,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,s,n,i,o,[r,c,l],w,y,u,d,p,v)=>{const[E,A,g,m]=ra(t,w,y,n,p,v),N=na(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",K(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[h]:{[l]:(t=a()??null,z(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,s,n,i,r,[c,l,[w,y,d]],p,v,E,A,m,$,C,O)=>{const[S,T,b,R]=ra(t,p,v,n,m,$,C,O),f=async(a,t)=>await u(Z(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await b(e,s,a[o],n,i,t)}))),I=async(a,t)=>y?await b(d,N,{[h]:a},!0,!0,t):null,L=na(a,(async()=>await R((async()=>{await S();const a=await(async()=>B(g(await u(Z(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>w?(await T(d,N))[h]:{})();return W(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await S(),o(t)){const[t,e]=a();await f(t),await I(e)}else await f(t[0],!0),await I(t[1],!0)}))),e,s,n,r,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",pa="json",va=da+"TableName",Ea=da+"Id"+ua,Aa=da+ua,ga="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Na="tableName",$a="deleteEmptyColumns",Ca="deleteEmptyTable",Oa={mode:pa,[ga]:1},Sa={load:0,save:0,[Na]:t+"_values"},Ta=(a,t,e,s,n)=>{const i=Q();return G(a,((a,r)=>{const l=w(H(J(t,c(a)?{[e]:a}:a)),0,V(t));o(l[0])||s(r,l[0])||(n(r,l[0]),aa(i,r,l))})),i},ba=(a,e,s,n,o,r,l,y,u,d,p="getDb",v)=>{let E,A,g;const m=((a,t)=>t?async(e,s)=>(t(e,s),await a(e,s)):a)(s,r),[h,O,S,T]=(a=>{const e=(a=>J(Oa,c(a)?{[va]:a}:a??{}))(a),s=e[ga];if(e.mode==pa){const a=e[va]??t;return[1,s,[a,e[Ea]??N,e[Aa]??da],ia(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,r=w(H(J(Sa,o)),0,V(Sa)),l=r[2],y=ia(l),u=ia(l);return[0,s,[Ta(n,{[ha]:null,[ma]:N},ha,(a=>M(u,a)),(a=>oa(y,a))),Ta(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>M(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(h?wa:ya)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:s}]=await m(`${$} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${R}${f} JOIN ${R}${I}`);t==E&&e==A&&s==g||(null!=E&&a(),E=t,A=e,g=s)}catch{}}),1e3*O),s=()=>{E=A=g=null,i(t)},r=n((t=>{T.has(t)&&(s(),a(),e())}));return e(),()=>{s(),o(r)}}),(a=>a()),l,y,u,S,P(T),(async(a,t)=>await a(`${$} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),d,p,"",v,(a=>!0===a?1:!1===a?0:a),void 0)};exports.createSqliteWasmPersister=(a,t,e,s,n,i)=>ba(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,(()=>0),3,e);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==s,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>n.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",$="TABLE",S="ALTER "+$,T="DELETE FROM",b=C+"*FROM",R="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,x=a=>F.getPrototypeOf(a),k=F.entries,U=F.keys,q=F.freeze,B=(a=[])=>F.fromEntries(a),J=(...a)=>F.assign({},...a),Y=(a,t)=>E(k(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>y(U(a)),V=a=>(a=>!o(a)&&r(x(a),(a=>a==F.prototype||o(x(a))),(()=>!0)))(a)&&0==H(a),W=a=>new Map(a),z=(a,t)=>a?.get(t),K=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),Q=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,s)=>(M(a,t)||Q(a,t,e()),z(a,t)),Z=W(),aa=W(),ta=(a,t,e,s,n,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!V(a)||!V(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!V(a)||!V(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),S=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?S(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),b=()=>(p&&(n(p),p=void 0),L),R=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(z(aa,y),...a),await(async()=>{if(!z(Z,y)){for(Q(Z,y,1);!o((a=z(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}Q(Z,y,0)}var a})(),L),L={load:T,startAutoLoad:async a=>{await b().load(a);try{p=await s((async(a,t)=>{t||a?2!=E&&(E=1,A++,S(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!o(p),save:R,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&R(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(z(aa,y).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return q(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),sa=(a,t)=>a?.add(t),na=(a,t,s,n,i)=>{const r=W();return[async()=>{r.clear(),E(await s(a,t),(({tn:a,cn:t})=>sa(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(z(r,a),t))(t,e)?B(g(E(await a(b+D(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,s,n,c,l,w=!1)=>{const y=ea();Y(n??{},(a=>E(U(a??{}),(a=>sa(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+$+D(t)),void Q(r,t);const p=z(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([s,...d],(async(e,n)=>{j(h,e)||(await a(S+D(t)+"ADD"+D(e)+(0==n?"text":"json")),0==n&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(s)})`),sa(p,e))}))):(await a("CREATE "+$+D(t)+`(${D(s)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),Q(r,t,ea([s,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=s&&(await a(S+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(n)?await a(T+D(t)+O+" true"):await u(Y(n,(async(e,n)=>{o(e)?await a(T+D(t)+O+D(s)+"=$1",[n]):A(d)||await ia(a,t,s,U(e),[n,...G(e)],i)})));else if(A(d))M(r,t)&&await a(T+D(t)+O+" true");else{const e=g(P(z(r,t)),(a=>a!=s)),o=[],c=[];Y(n??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,s,e,o,i),await a(T+D(t)+O+D(s)+`NOT IN(${_(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ia=async(a,t,s,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(s)+v(E(n,(a=>e+D(a))))+")VALUES"+oa(i,y(n)+1)+(o?"ON CONFLICT("+D(s)+")DO UPDATE SET"+v(E(n,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,s,n,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=na(t,w,y,n,p),m=ta(a,(async()=>await g((async()=>{return await v(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await A(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,s,n,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,$,S]=na(t,p,v,n,m),T=async(a,t)=>await u(K(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await $(e,s,a[o],n,i,t)}))),b=async(a,t)=>y?await $(d,N,{[h]:a},!0,!0,t):null,R=ta(a,(async()=>await S((async()=>{await C();const a=await(async()=>B(g(await u(K(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!V(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return V(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await C(),o(t)){const[t,e]=a();await T(t),await b(e)}else await T(t[0],!0),await b(t[1],!0)}))),e,s,n,r,{[A]:()=>E,destroy:()=>(R.stopAutoLoad().stopAutoSave(),i(),R)},E);return R},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,pa=wa+la,va="autoLoadIntervalSeconds",Ea="rowId"+la,Aa="tableId",ga="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[va]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,s,n)=>{const i=W();return Y(a,((a,r)=>{const l=w(G(J(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||s(r,l[0])||(n(r,l[0]),Q(i,r,l))})),i},$a=(a,e,s,n,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const g=((a,t)=>t?async(e,s)=>(t(e,s),await a(e,s)):a)(s,r),[m,h,$,S]=(a=>{const e=(a=>J(Na,c(a)?{[ua]:a}:a??{}))(a),s=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,s,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,r=w(G(J(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,s,[Oa(n,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>sa(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>sa(y,t))),r],y]})(e);return(m?ra:ca)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:s}]=await g(`${C} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${R}${f} JOIN ${R}${I}`);t==v&&e==E&&s==A||(null!=v&&a(),v=t,E=e,A=s)}catch{}}),1e3*h),s=()=>{v=E=A=null,i(t)},r=n((t=>{S.has(t)&&(s(),a(),e())}));return e(),()=>{s(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(S),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,p)};exports.createSqliteWasmPersister=(a,t,e,s,n,i)=>$a(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,3,e);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==s,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>n.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",$="SELECT",C="WHERE",O="TABLE",S="ALTER "+O,T="DELETE FROM",b=$+"*FROM",R="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,k=a=>j.getPrototypeOf(a),U=j.entries,q=j.keys,x=j.freeze,B=(a=[])=>j.fromEntries(a),J=(...a)=>j.assign({},...a),Y=(a,t)=>(delete a[t],a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),V=a=>y(q(a)),W=a=>(a=>!o(a)&&r(k(a),(a=>a==j.prototype||o(k(a))),(()=>!0)))(a)&&0==V(a),z=JSON.stringify,K=JSON.parse,Q=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,s)=>(M(a,t)||aa(a,t,e()),X(a,t)),ea=Q(),sa=Q(),na=(a,t,e,s,n,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;ta(ea,y,(()=>0)),ta(sa,y,(()=>[]));const[h,N,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!W(a)||!W(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),S=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?S(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),b=()=>(p&&(n(p),p=void 0),L),R=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(X(sa,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(sa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:T,startAutoLoad:async a=>{await b().load(a);try{p=await s((async(a,t)=>{t||a?2!=E&&(E=1,A++,S(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!o(p),save:R,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&R(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(X(sa,y).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return x(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,s,n,i,r,c,l)=>{const w=Q();return[async()=>{w.clear(),E(await s(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>M(X(w,a),t))(t,e)?B(g(E(await a(b+D(t)),(a=>{return[a[e],l?(t=Y(a,e),s=l,B(G(t,((a,t)=>[t,s(a,t)])))):Y(a,e)];var t,s})),(([a,t])=>!o(a)&&!W(t)))):{},async(t,s,n,l,y,d=!1)=>{const p=ia();G(n??{},(a=>E(q(a??{}),(a=>oa(p,a)))));const h=P(p);if(!d&&y&&A(h)&&M(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const N=X(w,t),$=ia(P(N));if(A(h)||(M(w,t)?await u(E([s,...h],(async(e,n)=>{F($,e)||(await a(S+D(t)+"ADD"+D(e)+i),0==n&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(s)})`),oa(N,e))}))):(await a("CREATE "+O+D(t)+`(${D(s)}${i} PRIMARY KEY${v(E(h,(a=>e+D(a)+i)))});`),aa(w,t,ia([s,...h])))),await u([...!d&&l?E(P($),(async e=>{e!=s&&(await a(S+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)o(n)?await a(T+D(t)+C+" true"):await u(G(n,(async(e,n)=>{o(e)?await a(T+D(t)+C+D(s)+"=$1",[n]):A(h)||await ca(a,t,s,q(e),[n,...c?E(H(e),c):H(e)],r)})));else if(A(h))M(w,t)&&await a(T+D(t)+C+" true");else{const e=g(P(X(w,t)),(a=>a!=s)),i=[],o=[];G(n??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,s,e,i,r),await a(T+D(t)+C+D(s)+`NOT IN(${_(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ca=async(a,t,s,n,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(s)+v(E(n,(a=>e+D(a))))+")VALUES"+la(i,y(n)+1)+(o?"":"ON CONFLICT("+D(s)+")DO UPDATE SET"+v(E(n,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,s,n,i,o,[r,c,l],w,y,u,d,p,v)=>{const[E,A,g,m]=ra(t,w,y,n,p,v),N=na(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",K(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[h]:{[l]:(t=a()??null,z(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,s,n,i,r,[c,l,[w,y,d]],p,v,E,A,m,$,C,O)=>{const[S,T,b,R]=ra(t,p,v,n,m,$,C,O),f=async(a,t)=>await u(Z(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await b(e,s,a[o],n,i,t)}))),I=async(a,t)=>y?await b(d,N,{[h]:a},!0,!0,t):null,L=na(a,(async()=>await R((async()=>{await S();const a=await(async()=>B(g(await u(Z(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>w?(await T(d,N))[h]:{})();return W(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await S(),o(t)){const[t,e]=a();await f(t),await I(e)}else await f(t[0],!0),await I(t[1],!0)}))),e,s,n,r,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",pa="json",va=da+"TableName",Ea=da+"Id"+ua,Aa=da+ua,ga="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Na="tableName",$a="deleteEmptyColumns",Ca="deleteEmptyTable",Oa={mode:pa,[ga]:1},Sa={load:0,save:0,[Na]:t+"_values"},Ta=(a,t,e,s,n)=>{const i=Q();return G(a,((a,r)=>{const l=w(H(J(t,c(a)?{[e]:a}:a)),0,V(t));o(l[0])||s(r,l[0])||(n(r,l[0]),aa(i,r,l))})),i},ba=(a,e,s,n,o,r,l,y,u,d,p="getDb",v)=>{let E,A,g;const m=((a,t)=>t?async(e,s)=>(t(e,s),await a(e,s)):a)(s,r),[h,O,S,T]=(a=>{const e=(a=>J(Oa,c(a)?{[va]:a}:a??{}))(a),s=e[ga];if(e.mode==pa){const a=e[va]??t;return[1,s,[a,e[Ea]??N,e[Aa]??da],ia(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,r=w(H(J(Sa,o)),0,V(Sa)),l=r[2],y=ia(l),u=ia(l);return[0,s,[Ta(n,{[ha]:null,[ma]:N},ha,(a=>M(u,a)),(a=>oa(y,a))),Ta(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>M(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(h?wa:ya)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:s}]=await m(`${$} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${R}${f} JOIN ${R}${I}`);t==E&&e==A&&s==g||(null!=E&&a(),E=t,A=e,g=s)}catch{}}),1e3*O),s=()=>{E=A=g=null,i(t)},r=n((t=>{T.has(t)&&(s(),a(),e())}));return e(),()=>{s(),o(r)}}),(a=>a()),l,y,u,S,P(T),(async(a,t)=>await a(`${$} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),d,p,"",v,(a=>!0===a?1:!1===a?0:a),void 0)};exports.createSqliteWasmPersister=(a,t,e,s,n,i)=>ba(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,(()=>0),3,e);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",$="TABLE",f="ALTER "+$,S="DELETE FROM",T=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),q=a=>y(B(a)),z=a=>(a=>!r(a)&&o(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==q(a),K=a=>new Map(a),Q=(a,t)=>a?.get(t),V=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(P(a,t)||W(a,t,e()),Q(a,t)),Z=K(),aa=K(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!z(a)||!z(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),T=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(o(p,a.delListener),p=void 0,L),b=async(...a)=>(m(Q(aa,y),...a),await(async()=>{if(!Q(Z,y)){for(W(Z,y,1);!r((a=Q(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await T().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,f(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:T,isAutoLoading:()=>!r(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!r(p),schedule:b,getStore:()=>a,destroy:()=>(Q(aa,y).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||r(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const o=K();return[async()=>{o.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(o,a,ea),t)))},async(t,e)=>((a,t)=>P(Q(o,a),t))(t,e)?Y(A(E(await a(T+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!z(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=_(y);if(!w&&l&&g(d)&&P(o,t))return await a("DROP "+$+D(t)),void W(o,t);const v=Q(o,t),h=ea(_(v));if(g(d)||(P(o,t)?await u(E([n,...d],(async(e,s)=>{F(h,e)||(await a(f+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),W(o,t,ea([n,...d])))),await u([...!w&&c?E(_(h),(async e=>{e!=n&&(await a(f+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)r(s)?await a(S+D(t)+O+" true"):await u(G(s,(async(e,s)=>{r(e)?await a(S+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))P(o,t)&&await a(S+D(t)+O+" true");else{const e=A(_(Q(o,t)),(a=>a!=n)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,r,i),await a(S+D(t)+O+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+ra(i,y(s)+1)+(r?"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),ra=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),oa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v)=>{const[p,E,g,A]=sa(t,w,y,s,v),m=ta(a,(async()=>await A((async()=>{return await p(),a=(await E(o,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await p(),await g(o,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,p,E,g,m)=>{const[C,O,$,f]=sa(t,v,p,s,m),S=async(a,t)=>await u(V(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await $(e,n,a[r],s,i,t)}))),T=async(a,t)=>y?await $(d,N,{[h]:a},!0,!0,t):null,I=ta(a,(async()=>await f((async()=>{await C();const a=await(async()=>Y(A(await u(V(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return z(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await C(),r(t)){const[t,e]=a();await S(t),await T(e)}else await S(t[0],!0),await T(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},E);return I},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,pa="autoLoadIntervalSeconds",Ea="rowId"+la,ga="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[pa]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=K();return G(a,((a,o)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,q(t));r(l[0])||n(o,l[0])||(s(o,l[0]),W(i,o,l))})),i},$a=(a,e,n,s,r,o,l,y,u,d="getDb",v)=>{let p,E,g;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[m,h,$,f]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[pa];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(H(k(Ca,r)),0,q(Ca)),l=o[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:N},ga,(a=>P(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>P(u,t)),((a,t)=>na(y,t))),o],y]})(e);return(m?oa:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==p&&e==E&&n==g||(null!=p&&a(),p=t,E=e,g=n)}catch{}}),1e3*h),n=()=>{p=E=g=null,i(t)},o=s((t=>{f.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(o)}}),(a=>a()),l,(()=>0),y,$,_(f),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)},fa="change";exports.createSqlite3Persister=(a,t,e,n,i)=>$a(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(fa,e),e}),(a=>t.off(fa,a)),n,i,3,t);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",$="SELECT",C="WHERE",O="TABLE",f="ALTER "+O,S="DELETE FROM",T=$+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),B=U.entries,J=U.keys,Y=U.freeze,k=(a=[])=>U.fromEntries(a),x=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(B(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(J(a)),K=a=>(a=>!r(a)&&o(j(a),(a=>a==U.prototype||r(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(P(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[h,N,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),T=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(o(p,a.delListener),p=void 0,L),b=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!r((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await T().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,f(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:T,isAutoLoading:()=>!r(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!r(p),schedule:b,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return Y(L)},ia=a=>new Set(l(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),oa=(a,t,n,s,i,o,c,l)=>{const w=W();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>ra(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>P(X(w,a),t))(t,e)?k(A(E(await a(T+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,k(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>E(J(a??{}),(a=>ra(v,a)))));const h=_(v);if(!d&&y&&g(h)&&P(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const N=X(w,t),$=ia(_(N));if(g(h)||(P(w,t)?await u(E([n,...h],(async(e,s)=>{F($,e)||(await a(f+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),ra(N,e))}))):(await a("CREATE "+O+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(h,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...h])))),await u([...!d&&l?E(_($),(async e=>{e!=n&&(await a(f+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)r(s)?await a(S+D(t)+C+" true"):await u(H(s,(async(e,s)=>{r(e)?await a(S+D(t)+C+D(n)+"=$1",[s]):g(h)||await ca(a,t,n,J(e),[s,...c?E(q(e),c):q(e)],o)})));else if(g(h))P(w,t)&&await a(S+D(t)+C+" true");else{const e=A(_(X(w,t)),(a=>a!=n)),i=[],r=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(r,t)})),await ca(a,t,n,e,i,o),await a(S+D(t)+C+D(n)+`NOT IN(${M(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(r?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v,p)=>{const[E,g,A,m]=oa(t,w,y,s,v,p),N=sa(a,(async()=>await m((async()=>{return await E(),a=(await g(o,c))[h]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await A(o,c,{[h]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,p,E,g,m,$,C,O)=>{const[f,S,T,I]=oa(t,v,p,s,m,$,C,O),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t)}))),b=async(a,t)=>y?await T(d,N,{[h]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await f();const a=await(async()=>k(A(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await S(d,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await f(),r(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Na="tableName",$a="deleteEmptyColumns",Ca="deleteEmptyTable",Oa={mode:va,[Aa]:1},fa={load:0,save:0,[Na]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=W();return H(a,((a,o)=>{const l=w(q(x(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),aa(i,o,l))})),i},Ta=(a,e,n,s,r,o,l,y,u,d,v="getDb",p)=>{let E,g,A;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[h,O,f,S]=(a=>{const e=(a=>x(Oa,c(a)?{[pa]:a}:a??{}))(a),n=e[Aa];if(e.mode==va){const a=e[pa]??t;return[1,n,[a,e[Ea]??N,e[ga]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(q(x(fa,r)),0,z(fa)),l=o[2],y=ia(l),u=ia(l);return[0,n,[Sa(s,{[ha]:null,[ma]:N},ha,(a=>P(u,a)),(a=>ra(y,a))),Sa(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>P(u,t)),((a,t)=>ra(y,t))),o],y]})(e);return(h?wa:ya)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${$} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==E&&e==g&&n==A||(null!=E&&a(),E=t,g=e,A=n)}catch{}}),1e3*O),n=()=>{E=g=A=null,i(t)},o=s((t=>{S.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(o)}}),(a=>a()),l,y,u,f,_(S),(async(a,t)=>await a(`${$} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Ia="change";exports.createSqlite3Persister=(a,t,e,n,i)=>Ta(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(Ia,e),e}),(a=>t.off(Ia,a)),n,i,(()=>0),3,t);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",$="TABLE",f="ALTER "+$,S="DELETE FROM",T=C+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),q=a=>y(B(a)),z=a=>(a=>!r(a)&&o(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==q(a),K=a=>new Map(a),Q=(a,t)=>a?.get(t),V=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(P(a,t)||W(a,t,e()),Q(a,t)),Z=K(),aa=K(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!z(a)||!z(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&$(a)}E=0}))),L),T=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(o(p,a.delListener),p=void 0,L),b=async(...a)=>(m(Q(aa,y),...a),await(async()=>{if(!Q(Z,y)){for(W(Z,y,1);!r((a=Q(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await T().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,f(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:T,isAutoLoading:()=>!r(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!r(p),schedule:b,getStore:()=>a,destroy:()=>(Q(aa,y).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||r(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const o=K();return[async()=>{o.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(o,a,ea),t)))},async(t,e)=>((a,t)=>P(Q(o,a),t))(t,e)?Y(A(E(await a(T+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!z(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=_(y);if(!w&&l&&g(d)&&P(o,t))return await a("DROP "+$+D(t)),void W(o,t);const v=Q(o,t),h=ea(_(v));if(g(d)||(P(o,t)?await u(E([n,...d],(async(e,s)=>{F(h,e)||(await a(f+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(v,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),W(o,t,ea([n,...d])))),await u([...!w&&c?E(_(h),(async e=>{e!=n&&(await a(f+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)r(s)?await a(S+D(t)+O+" true"):await u(G(s,(async(e,s)=>{r(e)?await a(S+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))P(o,t)&&await a(S+D(t)+O+" true");else{const e=A(_(Q(o,t)),(a=>a!=n)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,r,i),await a(S+D(t)+O+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,n,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+ra(i,y(s)+1)+(r?"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),ra=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),oa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v)=>{const[p,E,g,A]=sa(t,w,y,s,v),m=ta(a,(async()=>await A((async()=>{return await p(),a=(await E(o,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await A((async()=>{var t;await p(),await g(o,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,p,E,g,m)=>{const[C,O,$,f]=sa(t,v,p,s,m),S=async(a,t)=>await u(V(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await $(e,n,a[r],s,i,t)}))),T=async(a,t)=>y?await $(d,N,{[h]:a},!0,!0,t):null,I=ta(a,(async()=>await f((async()=>{await C();const a=await(async()=>Y(A(await u(V(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return z(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await C(),r(t)){const[t,e]=a();await S(t),await T(e)}else await S(t[0],!0),await T(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},E);return I},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,va=wa+la,pa="autoLoadIntervalSeconds",Ea="rowId"+la,ga="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[pa]:1},Ca={load:0,save:0,[Aa]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=K();return G(a,((a,o)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,q(t));r(l[0])||n(o,l[0])||(s(o,l[0]),W(i,o,l))})),i},$a=(a,e,n,s,r,o,l,y,u,d="getDb",v)=>{let p,E,g;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[m,h,$,f]=(a=>{const e=(a=>k(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[pa];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[va]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(H(k(Ca,r)),0,q(Ca)),l=o[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:N},ga,(a=>P(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>P(u,t)),((a,t)=>na(y,t))),o],y]})(e);return(m?oa:ca)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${C} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==p&&e==E&&n==g||(null!=p&&a(),p=t,E=e,g=n)}catch{}}),1e3*h),n=()=>{p=E=g=null,i(t)},o=s((t=>{f.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(o)}}),(a=>a()),l,(()=>0),y,$,_(f),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,v)},fa="change";exports.createSqlite3Persister=(a,t,e,n,i)=>$a(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(fa,e),e}),(a=>t.off(fa,a)),n,i,3,t);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),g=a=>0==y(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",$="SELECT",C="WHERE",O="TABLE",f="ALTER "+O,S="DELETE FROM",T=$+"*FROM",I="pragma_",R="data_version",b="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>p(E(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),B=U.entries,J=U.keys,Y=U.freeze,k=(a=[])=>U.fromEntries(a),x=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>E(B(a),(([a,e])=>t(e,a))),q=a=>U.values(a),z=a=>y(J(a)),K=a=>(a=>!r(a)&&o(j(a),(a=>a==U.prototype||r(j(a))),(()=>!0)))(a)&&0==z(a),Q=JSON.stringify,V=JSON.parse,W=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(P(a,t)||aa(a,t,e()),X(a,t)),ea=W(),na=W(),sa=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[h,N,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),f=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?f(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),T=()=>(v&&(s(v),v=void 0),L),I=async a=>(1!=E&&(E=2,A++,await b((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),R=()=>(o(p,a.delListener),p=void 0,L),b=async(...a)=>(m(X(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!r((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await T().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,f(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:T,isAutoLoading:()=>!r(v),save:I,startAutoSave:async()=>(await R().save(),p=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&I(a)})),L),stopAutoSave:R,isAutoSaving:()=>!r(p),schedule:b,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:g,saves:A}),...w};return Y(L)},ia=a=>new Set(l(a)||r(a)?a:[a]),ra=(a,t)=>a?.add(t),oa=(a,t,n,s,i,o,c,l)=>{const w=W();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>ra(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>P(X(w,a),t))(t,e)?k(A(E(await a(T+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,k(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>E(J(a??{}),(a=>ra(v,a)))));const h=_(v);if(!d&&y&&g(h)&&P(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const N=X(w,t),$=ia(_(N));if(g(h)||(P(w,t)?await u(E([n,...h],(async(e,s)=>{F($,e)||(await a(f+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),ra(N,e))}))):(await a("CREATE "+O+D(t)+`(${D(n)}${i} PRIMARY KEY${p(E(h,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...h])))),await u([...!d&&l?E(_($),(async e=>{e!=n&&(await a(f+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)r(s)?await a(S+D(t)+C+" true"):await u(H(s,(async(e,s)=>{r(e)?await a(S+D(t)+C+D(n)+"=$1",[s]):g(h)||await ca(a,t,n,J(e),[s,...c?E(q(e),c):q(e)],o)})));else if(g(h))P(w,t)&&await a(S+D(t)+C+" true");else{const e=A(_(X(w,t)),(a=>a!=n)),i=[],r=[];H(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(r,t)})),await ca(a,t,n,e,i,o),await a(S+D(t)+C+D(n)+`NOT IN(${M(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+p(E(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(r?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+p(E(s,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>p(v(y(a)/t,(a=>"("+p(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,i,r,[o,c,l],w,y,u,d,v,p)=>{const[E,g,A,m]=oa(t,w,y,s,v,p),N=sa(a,(async()=>await m((async()=>{return await E(),a=(await g(o,c))[h]?.[l]??"null",V(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await A(o,c,{[h]:{[l]:(t=a()??null,Q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,n,s,i,o,[c,l,[w,y,d]],v,p,E,g,m,$,C,O)=>{const[f,S,T,I]=oa(t,v,p,s,m,$,C,O),R=async(a,t)=>await u(Z(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t)}))),b=async(a,t)=>y?await T(d,N,{[h]:a},!0,!0,t):null,L=sa(a,(async()=>await I((async()=>{await f();const a=await(async()=>k(A(await u(Z(c,(async([a,t],e)=>[a,await S(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await S(d,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await I((async()=>{if(await f(),r(t)){const[t,e]=a();await R(t),await b(e)}else await R(t[0],!0),await b(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",va="json",pa=da+"TableName",Ea=da+"Id"+ua,ga=da+ua,Aa="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Na="tableName",$a="deleteEmptyColumns",Ca="deleteEmptyTable",Oa={mode:va,[Aa]:1},fa={load:0,save:0,[Na]:t+"_values"},Sa=(a,t,e,n,s)=>{const i=W();return H(a,((a,o)=>{const l=w(q(x(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),aa(i,o,l))})),i},Ta=(a,e,n,s,r,o,l,y,u,d,v="getDb",p)=>{let E,g,A;const m=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[h,O,f,S]=(a=>{const e=(a=>x(Oa,c(a)?{[pa]:a}:a??{}))(a),n=e[Aa];if(e.mode==va){const a=e[pa]??t;return[1,n,[a,e[Ea]??N,e[ga]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=w(q(x(fa,r)),0,z(fa)),l=o[2],y=ia(l),u=ia(l);return[0,n,[Sa(s,{[ha]:null,[ma]:N},ha,(a=>P(u,a)),(a=>ra(y,a))),Sa(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>P(u,t)),((a,t)=>ra(y,t))),o],y]})(e);return(h?wa:ya)(a,m,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await m(`${$} ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==E&&e==g&&n==A||(null!=E&&a(),E=t,g=e,A=n)}catch{}}),1e3*O),n=()=>{E=g=A=null,i(t)},o=s((t=>{S.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(o)}}),(a=>a()),l,y,u,f,_(S),(async(a,t)=>await a(`${$} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),d,v,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Ia="change";exports.createSqlite3Persister=(a,t,e,n,i)=>Ta(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(Ia,e),e}),(a=>t.off(Ia,a)),n,i,(()=>0),3,t);
@@ -1 +1 @@
1
- "use strict";const t=t=>null==t,e=(e,a,s)=>t(e)?s?.():a(e),a=t=>Array.isArray(t),s=t=>{throw Error(t)},r=Object,n=t=>r.getPrototypeOf(t),o=r.keys,i=r.freeze,c=a=>(a=>!t(a)&&e(n(a),(e=>e==r.prototype||t(n(e))),(()=>!0)))(a)&&0==(t=>o(t).length)(a),y=t=>new Map(t),l=(t,e)=>t?.get(e),g=(e,a,s)=>{return t(s)?(r=e,n=a,r?.delete(n),e):e?.set(a,s);var r,n},p=(t,e,a,s)=>{var r,n;return r=t,n=e,r?.has(n)||g(t,e,a()),l(t,e)},u=y(),d=y();exports.Persists={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},exports.createCustomPersister=(r,n,o,y,h,v,w,C={},S=[])=>{let b,A,M,f=0,L=0,O=0;p(u,S,(()=>0)),p(d,S,(()=>[]));const[P,T,x,D,j]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!c(t)||!c(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!c(t)||!c(e),e.setContent]:s("Store type not supported by this Persister"))(w,r),k=t=>{(P&&a(t?.[0])?1===t?.[2]?r.applyMergeableChanges:r.setMergeableContent:1===t?.[2]?r.applyChanges:r.setContent)(t)},m=async t=>(2!=f&&(f=1,L++,await q((async()=>{try{const t=await n();a(t)?k(t):s("Content is not an array "+t)}catch(e){v?.(e),t&&j(t)}f=0}))),B),z=()=>(A&&(h(A),A=void 0),B),E=async t=>(1!=f&&(f=2,O++,await q((async()=>{try{await o(T,t)}catch(t){v?.(t)}f=0}))),B),F=()=>(e(M,r.delListener),M=void 0,B),q=async(...e)=>(((t,...e)=>{t.push(...e)})(l(d,S),...e),await(async()=>{if(!l(u,S)){for(g(u,S,1);!t((e=l(d,S),b=e.shift()));)try{await b()}catch(t){v?.(t)}g(u,S,0)}var e})(),B),B={load:m,startAutoLoad:async t=>{await z().load(t);try{A=await y((async(t,e)=>{e||t?2!=f&&(f=1,L++,k(e??t),f=0):await m()}))}catch(t){v?.(t)}return B},stopAutoLoad:z,isAutoLoading:()=>!t(A),save:E,startAutoSave:async()=>(await F().save(),M=r.addDidFinishTransactionListener((()=>{const t=x();D(t)&&E(t)})),B),stopAutoSave:F,isAutoSaving:()=>!t(M),schedule:q,getStore:()=>r,destroy:()=>(l(d,S).splice(0,void 0),z().stopAutoSave()),getStats:()=>({loads:L,saves:O}),...C};return i(B)};
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),w=a=>a.length,y=async a=>s.all(a),d=a=>{throw Error(a)},u=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),R=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==w(a),N=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),g=Object,p=a=>g.getPrototypeOf(a),$=g.entries,m=g.keys,C=g.freeze,v=(a=[])=>g.fromEntries(a),I=(...a)=>g.assign({},...a),L=(a,t)=>(delete a[t],a),S=(a,t)=>A($(a),(([a,e])=>t(e,a))),_=a=>g.values(a),b=a=>w(m(a)),h=a=>(a=>!i(a)&&o(p(a),(a=>a==g.prototype||i(p(a))),(()=>!0)))(a)&&0==b(a),P=(a,t)=>a?.has(t)??!1,D=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),M=a=>new Map(a),F=(a,t)=>a?.get(t),U=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>i(e)?(f(a,t),a):a?.set(t,e),B=(a,t,e,n)=>(P(a,t)||G(a,t,e()),F(a,t)),x=M(),j=M(),Y=(a,t,e,n,s,r,c,E={},w=[])=>{let y,u,R,A=0,T=0,N=0;B(x,w,(()=>0)),B(j,w,(()=>[]));const[g,p,$,m,v]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!h(a)||!h(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!h(a)||!h(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),I=t=>{(g&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},L=async a=>(2!=A&&(A=1,T++,await P((async()=>{try{const a=await t();l(a)?I(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&v(a)}A=0}))),D),S=()=>(u&&(s(u),u=void 0),D),_=async a=>(1!=A&&(A=2,N++,await P((async()=>{try{await e(p,a)}catch(a){r?.(a)}A=0}))),D),b=()=>(o(R,a.delListener),R=void 0,D),P=async(...a)=>(O(F(j,w),...a),await(async()=>{if(!F(x,w)){for(G(x,w,1);!i((a=F(j,w),y=a.shift()));)try{await y()}catch(a){r?.(a)}G(x,w,0)}var a})(),D),D={load:L,startAutoLoad:async a=>{await S().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,I(t??a),A=0):await L()}))}catch(a){r?.(a)}return D},stopAutoLoad:S,isAutoLoading:()=>!i(u),save:_,startAutoSave:async()=>(await b().save(),R=a.addDidFinishTransactionListener((()=>{const a=$();m(a)&&_(a)})),D),stopAutoSave:b,isAutoSaving:()=>!i(R),schedule:P,getStore:()=>a,destroy:()=>(F(j,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:T,saves:N}),...E};return C(D)},q="_",H="_id",X="SELECT",J="WHERE",W="TABLE",k="ALTER "+W,K="DELETE FROM",V=X+"*FROM",z="pragma_",Q="data_version",Z="schema_version",aa="pragma_table_",ta=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,ea=a=>`"${a.replace(/"/g,'""')}"`,na=a=>R(A(a,((a,t)=>"$"+(t+1))),e),sa=JSON.stringify,ra=JSON.parse,ia=a=>new Set(l(a)||i(a)?a:[a]),oa=(a,t)=>a?.add(t),ca=(a,t,n,s,r,o,c,l)=>{const E=M();return[async()=>{E.clear(),A(await n(a,t),(({tn:a,cn:t})=>oa(B(E,a,ia),t)))},async(t,e)=>((a,t)=>P(F(E,a),t))(t,e)?v(N(A(await a(V+ea(t)),(a=>{return[a[e],l?(t=L(a,e),n=l,v(S(t,((a,t)=>[t,n(a,t)])))):L(a,e)];var t,n})),(([a,t])=>!i(a)&&!h(t)))):{},async(t,n,s,l,w,d=!1)=>{const u=ia();S(s??{},(a=>A(m(a??{}),(a=>oa(u,a)))));const g=D(u);if(!d&&w&&T(g)&&P(E,t))return await a("DROP "+W+ea(t)),void G(E,t);const p=F(E,t),$=ia(D(p));if(T(g)||(P(E,t)?await y(A([n,...g],(async(e,s)=>{f($,e)||(await a(k+ea(t)+"ADD"+ea(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+ea(t)+`(${ea(n)})`),oa(p,e))}))):(await a("CREATE "+W+ea(t)+`(${ea(n)}${r} PRIMARY KEY${R(A(g,(a=>e+ea(a)+r)))});`),G(E,t,ia([n,...g])))),await y([...!d&&l?A(D($),(async e=>{e!=n&&(await a(k+ea(t)+"DROP"+ea(e)),f(p,e))})):[]]),d)i(s)?await a(K+ea(t)+J+" true"):await y(S(s,(async(e,s)=>{i(e)?await a(K+ea(t)+J+ea(n)+"=$1",[s]):T(g)||await la(a,t,n,m(e),[s,...c?A(_(e),c):_(e)],o)})));else if(T(g))P(E,t)&&await a(K+ea(t)+J+" true");else{const e=N(D(F(E,t)),(a=>a!=n)),r=[],i=[];S(s??{},((a,t)=>{O(r,t,...A(e,(t=>c?c(a?.[t]):a?.[t]))),O(i,t)})),await la(a,t,n,e,r,o),await a(K+ea(t)+J+ea(n)+`NOT IN(${na(i)})`,i)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},la=async(a,t,n,s,r,i=0)=>await a("INSERT "+(i?"OR REPLACE ":"")+"INTO"+ea(t)+"("+ea(n)+R(A(s,(a=>e+ea(a))))+")VALUES"+Ea(r,w(s)+1)+(i?"":"ON CONFLICT("+ea(n)+")DO UPDATE SET"+R(A(s,(a=>ea(a)+"=excluded."+ea(a))),e)),A(r,(a=>a??null))),Ea=(a,t)=>R(u(w(a)/t,(a=>"("+R(u(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,r,i,[o,c,l],E,w,y,d,u,R)=>{const[A,T,N,O]=ca(t,E,w,s,u,R),g=Y(a,(async()=>await O((async()=>{return await A(),a=(await T(o,c))[q]?.[l]??"null",ra(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await O((async()=>{var t;await A(),await N(o,c,{[q]:{[l]:(t=a()??null,sa(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>y,destroy:()=>(g.stopAutoLoad().stopAutoSave(),r(),g)},y);return g},ya=(a,t,e,n,s,r,o,[c,l,[E,w,d]],u,R,A,T,O,g,p,$)=>{const[m,C,I,L]=ca(t,u,R,s,O,g,p,$),S=async(a,t)=>await y(U(l,(async([e,n,s,r],i)=>{t&&!(i in a)||await I(e,n,a[i],s,r,t)}))),_=async(a,t)=>w?await I(d,H,{[q]:a},!0,!0,t):null,b=Y(a,(async()=>await L((async()=>{await m();const a=await(async()=>v(N(await y(U(c,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!h(a[1])))))(),t=await(async()=>E?(await C(d,H))[q]:{})();return h(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await L((async()=>{if(await m(),i(t)){const[t,e]=a();await S(t),await _(e)}else await S(t[0],!0),await _(t[1],!0)}))),e,n,s,o,{[T]:()=>A,destroy:()=>(b.stopAutoLoad().stopAutoSave(),r(),b)},A);return b},da="ColumnName",ua="store",Ra="json",Aa=ua+"TableName",Ta=ua+"Id"+da,Na=ua+da,Oa="autoLoadIntervalSeconds",ga="rowId"+da,pa="tableId",$a="tableName",ma="deleteEmptyColumns",Ca="deleteEmptyTable",va={mode:Ra,[Oa]:1},Ia={load:0,save:0,[$a]:t+"_values"},La=(a,t,e,n,s)=>{const r=M();return S(a,((a,o)=>{const l=E(_(I(t,c(a)?{[e]:a}:a)),0,b(t));i(l[0])||n(o,l[0])||(s(o,l[0]),G(r,o,l))})),r},Sa=a=>{const e=(a=>I(va,c(a)?{[Aa]:a}:a??{}))(a),n=e[Oa];if(e.mode==Ra){const a=e[Aa]??t;return[1,n,[a,e[Ta]??H,e[Na]??ua],ia(a)]}const{tables:{load:s={},save:r={}}={},values:i={}}=e,o=E(_(I(Ia,i)),0,b(Ia)),l=o[2],w=ia(l),y=ia(l);return[0,n,[La(s,{[pa]:null,[ga]:H},pa,(a=>P(y,a)),(a=>oa(w,a))),La(r,{[$a]:null,[ga]:H,[ma]:0,[Ca]:0},$a,((a,t)=>P(y,t)),((a,t)=>oa(w,t))),o],w]},_a=t,ba=/^([cd]:)(.+)/,ha=t+"_data",Pa=t+"_table";exports.Persists={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},exports.createCustomPersister=Y,exports.createCustomPostgreSqlPersister=(a,t,e,n,s,r,i,c,l,E,w="getDb")=>{const d=ta(e,r),[u,,R,T]=Sa(t),N=async a=>{await d(`CREATE OR REPLACE TRIGGER ${ea(ha+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${ea(a)} EXECUTE FUNCTION ${ha}()`)};return(u?wa:ya)(a,d,(async a=>{await d(`CREATE OR REPLACE FUNCTION ${Pa}()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('${_a}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await d(`CREATE EVENT TRIGGER ${Pa} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${Pa}();`)}catch{}return await d(`CREATE OR REPLACE FUNCTION ${ha}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${_a}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await y(A(D(T),(async a=>{await d(`CREATE TABLE IF NOT EXISTS ${ea(a)}("_id"text PRIMARY KEY)`),await N(a)}))),await n(_a,(async t=>{return await o((e=t,n=ba,e?.match(n)),(async([,t,e])=>{P(T,e)&&("c:"==t&&await N(e),a())}));var e,n}))}),s,i,c,l,R,D(T),(async(a,t)=>await a(`${X} table_name tn,column_name cn FROM information_schema.columns ${J} table_schema='public'AND table_name IN(${na(t)})`,t)),E,w,"text",0,(a=>sa(a)),(a=>ra(a)))},exports.createCustomSqlitePersister=(a,t,e,n,s,i,o,c,l,E,w="getDb",y)=>{let d,u,R;const A=ta(e,i),[T,N,O,g]=Sa(t);return(T?wa:ya)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${X} ${Q} d,${Z} s,TOTAL_CHANGES() c FROM ${z}${Q} JOIN ${z}${Z}`);t==d&&e==u&&n==R||(null!=d&&a(),d=t,u=e,R=n)}catch{}}),1e3*N),i=()=>{d=u=R=null,r(t)},o=n((t=>{g.has(t)&&(i(),a(),e())}));return e(),()=>{i(),s(o)}}),(a=>a()),o,c,l,O,D(g),(async(a,t)=>await a(`${X} t.name tn,c.name cn FROM ${aa}list()t,${aa}info(t.name)c ${J} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t)})ORDER BY t.name,c.name`,t)),E,w,"",y,(a=>!0===a?1:!1===a?0:a),void 0)};