tinybase 5.2.0-beta.2 → 5.2.0-beta.4

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 (916) hide show
  1. package/@types/common/index.d.cts +34 -2
  2. package/@types/common/index.d.ts +34 -2
  3. package/@types/common/with-schemas/index.d.cts +34 -2
  4. package/@types/common/with-schemas/index.d.ts +34 -2
  5. package/@types/persisters/index.d.cts +21 -2
  6. package/@types/persisters/index.d.ts +21 -2
  7. package/@types/persisters/persister-pglite/index.d.cts +178 -0
  8. package/@types/persisters/persister-pglite/index.d.ts +178 -0
  9. package/@types/persisters/persister-pglite/with-schemas/index.d.cts +197 -0
  10. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +197 -0
  11. package/@types/persisters/persister-postgres/index.d.cts +2 -1
  12. package/@types/persisters/persister-postgres/index.d.ts +2 -1
  13. package/@types/persisters/persister-postgres/with-schemas/index.d.cts +2 -1
  14. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +2 -1
  15. package/@types/persisters/with-schemas/index.d.cts +21 -2
  16. package/@types/persisters/with-schemas/index.d.ts +21 -2
  17. package/@types/synchronizers/synchronizer-local/index.d.cts +1 -0
  18. package/@types/synchronizers/synchronizer-local/index.d.ts +1 -0
  19. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +1 -0
  20. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +1 -0
  21. package/checkpoints/index.js +9 -7
  22. package/checkpoints/with-schemas/index.js +9 -7
  23. package/cjs/checkpoints/index.cjs +9 -7
  24. package/cjs/checkpoints/with-schemas/index.cjs +9 -7
  25. package/cjs/es6/checkpoints/index.cjs +15 -13
  26. package/cjs/es6/checkpoints/with-schemas/index.cjs +15 -13
  27. package/cjs/es6/index.cjs +31 -22
  28. package/cjs/es6/indexes/index.cjs +15 -13
  29. package/cjs/es6/indexes/with-schemas/index.cjs +15 -13
  30. package/cjs/es6/mergeable-store/index.cjs +26 -19
  31. package/cjs/es6/mergeable-store/with-schemas/index.cjs +26 -19
  32. package/cjs/es6/metrics/index.cjs +15 -13
  33. package/cjs/es6/metrics/with-schemas/index.cjs +15 -13
  34. package/cjs/es6/min/index.cjs +1 -1
  35. package/cjs/es6/min/index.cjs.gz +0 -0
  36. package/cjs/es6/min/mergeable-store/index.cjs +1 -1
  37. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  38. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
  39. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  40. package/cjs/es6/min/persisters/persister-automerge/index.cjs +1 -1
  41. package/cjs/es6/min/persisters/persister-automerge/index.cjs.gz +0 -0
  42. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  43. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  44. package/cjs/es6/min/persisters/persister-browser/index.cjs +1 -1
  45. package/cjs/es6/min/persisters/persister-browser/index.cjs.gz +0 -0
  46. package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs +1 -1
  47. package/cjs/es6/min/persisters/persister-browser/with-schemas/index.cjs.gz +0 -0
  48. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  49. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  50. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  51. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  52. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  53. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  54. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  55. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  56. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  57. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  58. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  59. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  60. package/cjs/es6/min/persisters/persister-file/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-file/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  65. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  66. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  67. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/es6/min/persisters/persister-partykit-client/index.cjs +1 -1
  69. package/cjs/es6/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
  70. package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
  71. package/cjs/es6/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/es6/min/persisters/persister-partykit-server/index.cjs +1 -1
  73. package/cjs/es6/min/persisters/persister-partykit-server/index.cjs.gz +0 -0
  74. package/cjs/es6/min/persisters/persister-partykit-server/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/persisters/persister-partykit-server/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/persisters/persister-pglite/index.cjs +1 -0
  77. package/cjs/es6/min/persisters/persister-pglite/index.cjs.gz +0 -0
  78. package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs +1 -0
  79. package/cjs/es6/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
  80. package/cjs/es6/min/persisters/persister-postgres/index.cjs +1 -1
  81. package/cjs/es6/min/persisters/persister-postgres/index.cjs.gz +0 -0
  82. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  83. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  84. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  85. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  86. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  87. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  88. package/cjs/es6/min/persisters/persister-remote/index.cjs +1 -1
  89. package/cjs/es6/min/persisters/persister-remote/index.cjs.gz +0 -0
  90. package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs +1 -1
  91. package/cjs/es6/min/persisters/persister-remote/with-schemas/index.cjs.gz +0 -0
  92. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  93. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  94. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  95. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  96. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  97. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  98. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  99. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  100. package/cjs/es6/min/store/index.cjs +1 -1
  101. package/cjs/es6/min/store/index.cjs.gz +0 -0
  102. package/cjs/es6/min/store/with-schemas/index.cjs +1 -1
  103. package/cjs/es6/min/store/with-schemas/index.cjs.gz +0 -0
  104. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  105. package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  106. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  107. package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  108. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  109. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  110. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  111. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  112. package/cjs/es6/min/ui-react-inspector/index.cjs +1 -1
  113. package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
  114. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  115. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  116. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  117. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  118. package/cjs/es6/persisters/index.cjs +5 -3
  119. package/cjs/es6/persisters/persister-automerge/index.cjs +7 -4
  120. package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +7 -4
  121. package/cjs/es6/persisters/persister-browser/index.cjs +8 -5
  122. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +8 -5
  123. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +147 -102
  124. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +147 -102
  125. package/cjs/es6/persisters/persister-electric-sql/index.cjs +147 -102
  126. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +147 -102
  127. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +147 -102
  128. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +147 -102
  129. package/cjs/es6/persisters/persister-file/index.cjs +9 -5
  130. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +9 -5
  131. package/cjs/es6/persisters/persister-indexed-db/index.cjs +5 -3
  132. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +5 -3
  133. package/cjs/es6/persisters/persister-libsql/index.cjs +147 -102
  134. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +147 -102
  135. package/cjs/es6/persisters/persister-partykit-client/index.cjs +8 -5
  136. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +8 -5
  137. package/cjs/es6/persisters/persister-partykit-server/index.cjs +39 -24
  138. package/cjs/es6/persisters/persister-partykit-server/with-schemas/index.cjs +39 -24
  139. package/cjs/es6/persisters/persister-pglite/index.cjs +1320 -0
  140. package/cjs/es6/persisters/persister-pglite/with-schemas/index.cjs +1320 -0
  141. package/cjs/es6/persisters/persister-postgres/index.cjs +171 -92
  142. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +171 -92
  143. package/cjs/es6/persisters/persister-powersync/index.cjs +149 -104
  144. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +149 -104
  145. package/cjs/es6/persisters/persister-remote/index.cjs +8 -5
  146. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +8 -5
  147. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +147 -102
  148. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +147 -102
  149. package/cjs/es6/persisters/persister-sqlite3/index.cjs +147 -102
  150. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +147 -102
  151. package/cjs/es6/persisters/persister-yjs/index.cjs +5 -3
  152. package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +5 -3
  153. package/cjs/es6/persisters/with-schemas/index.cjs +5 -3
  154. package/cjs/es6/relationships/index.cjs +15 -13
  155. package/cjs/es6/relationships/with-schemas/index.cjs +15 -13
  156. package/cjs/es6/store/index.cjs +26 -19
  157. package/cjs/es6/store/with-schemas/index.cjs +26 -19
  158. package/cjs/es6/synchronizers/index.cjs +5 -3
  159. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -3
  160. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -3
  161. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +5 -3
  162. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -3
  163. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +12 -8
  164. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +12 -8
  165. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +83 -77
  166. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +83 -77
  167. package/cjs/es6/synchronizers/with-schemas/index.cjs +5 -3
  168. package/cjs/es6/ui-react-inspector/index.cjs +35 -25
  169. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +35 -25
  170. package/cjs/es6/with-schemas/index.cjs +31 -22
  171. package/cjs/index.cjs +25 -14
  172. package/cjs/indexes/index.cjs +9 -7
  173. package/cjs/indexes/with-schemas/index.cjs +9 -7
  174. package/cjs/mergeable-store/index.cjs +20 -11
  175. package/cjs/mergeable-store/with-schemas/index.cjs +20 -11
  176. package/cjs/metrics/index.cjs +9 -7
  177. package/cjs/metrics/with-schemas/index.cjs +9 -7
  178. package/cjs/min/index.cjs +1 -1
  179. package/cjs/min/index.cjs.gz +0 -0
  180. package/cjs/min/mergeable-store/index.cjs +1 -1
  181. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  182. package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
  183. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  184. package/cjs/min/persisters/persister-automerge/index.cjs +1 -1
  185. package/cjs/min/persisters/persister-automerge/index.cjs.gz +0 -0
  186. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  187. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  188. package/cjs/min/persisters/persister-browser/index.cjs +1 -1
  189. package/cjs/min/persisters/persister-browser/index.cjs.gz +0 -0
  190. package/cjs/min/persisters/persister-browser/with-schemas/index.cjs +1 -1
  191. package/cjs/min/persisters/persister-browser/with-schemas/index.cjs.gz +0 -0
  192. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  193. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  194. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  195. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  196. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  197. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  198. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  199. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  200. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  201. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  202. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  203. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  204. package/cjs/min/persisters/persister-file/index.cjs +1 -1
  205. package/cjs/min/persisters/persister-file/index.cjs.gz +0 -0
  206. package/cjs/min/persisters/persister-file/with-schemas/index.cjs +1 -1
  207. package/cjs/min/persisters/persister-file/with-schemas/index.cjs.gz +0 -0
  208. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  209. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  210. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  211. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  212. package/cjs/min/persisters/persister-partykit-client/index.cjs +1 -1
  213. package/cjs/min/persisters/persister-partykit-client/index.cjs.gz +0 -0
  214. package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs +1 -1
  215. package/cjs/min/persisters/persister-partykit-client/with-schemas/index.cjs.gz +0 -0
  216. package/cjs/min/persisters/persister-partykit-server/index.cjs +1 -1
  217. package/cjs/min/persisters/persister-partykit-server/index.cjs.gz +0 -0
  218. package/cjs/min/persisters/persister-partykit-server/with-schemas/index.cjs +1 -1
  219. package/cjs/min/persisters/persister-partykit-server/with-schemas/index.cjs.gz +0 -0
  220. package/cjs/min/persisters/persister-pglite/index.cjs +1 -0
  221. package/cjs/min/persisters/persister-pglite/index.cjs.gz +0 -0
  222. package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs +1 -0
  223. package/cjs/min/persisters/persister-pglite/with-schemas/index.cjs.gz +0 -0
  224. package/cjs/min/persisters/persister-postgres/index.cjs +1 -1
  225. package/cjs/min/persisters/persister-postgres/index.cjs.gz +0 -0
  226. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  227. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  228. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  229. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  230. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  231. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  232. package/cjs/min/persisters/persister-remote/index.cjs +1 -1
  233. package/cjs/min/persisters/persister-remote/index.cjs.gz +0 -0
  234. package/cjs/min/persisters/persister-remote/with-schemas/index.cjs +1 -1
  235. package/cjs/min/persisters/persister-remote/with-schemas/index.cjs.gz +0 -0
  236. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  237. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  238. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  239. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  240. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  241. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  242. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  243. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  244. package/cjs/min/store/index.cjs +1 -1
  245. package/cjs/min/store/index.cjs.gz +0 -0
  246. package/cjs/min/store/with-schemas/index.cjs +1 -1
  247. package/cjs/min/store/with-schemas/index.cjs.gz +0 -0
  248. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
  249. package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
  250. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
  251. package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
  252. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  253. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  254. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  255. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  256. package/cjs/min/tools/index.cjs +1 -1
  257. package/cjs/min/tools/index.cjs.gz +0 -0
  258. package/cjs/min/tools/with-schemas/index.cjs +1 -1
  259. package/cjs/min/tools/with-schemas/index.cjs.gz +0 -0
  260. package/cjs/min/ui-react-inspector/index.cjs +1 -1
  261. package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
  262. package/cjs/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  263. package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  264. package/cjs/min/with-schemas/index.cjs +1 -1
  265. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  266. package/cjs/persisters/index.cjs +5 -3
  267. package/cjs/persisters/persister-automerge/index.cjs +7 -4
  268. package/cjs/persisters/persister-automerge/with-schemas/index.cjs +7 -4
  269. package/cjs/persisters/persister-browser/index.cjs +8 -5
  270. package/cjs/persisters/persister-browser/with-schemas/index.cjs +8 -5
  271. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +103 -60
  272. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +103 -60
  273. package/cjs/persisters/persister-electric-sql/index.cjs +103 -60
  274. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +103 -60
  275. package/cjs/persisters/persister-expo-sqlite/index.cjs +103 -60
  276. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +103 -60
  277. package/cjs/persisters/persister-file/index.cjs +9 -5
  278. package/cjs/persisters/persister-file/with-schemas/index.cjs +9 -5
  279. package/cjs/persisters/persister-indexed-db/index.cjs +5 -3
  280. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +5 -3
  281. package/cjs/persisters/persister-libsql/index.cjs +103 -60
  282. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +103 -60
  283. package/cjs/persisters/persister-partykit-client/index.cjs +8 -5
  284. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +8 -5
  285. package/cjs/persisters/persister-partykit-server/index.cjs +39 -27
  286. package/cjs/persisters/persister-partykit-server/with-schemas/index.cjs +39 -27
  287. package/cjs/persisters/persister-pglite/index.cjs +994 -0
  288. package/cjs/persisters/persister-pglite/with-schemas/index.cjs +994 -0
  289. package/cjs/persisters/persister-postgres/index.cjs +126 -52
  290. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +126 -52
  291. package/cjs/persisters/persister-powersync/index.cjs +105 -62
  292. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +105 -62
  293. package/cjs/persisters/persister-remote/index.cjs +8 -5
  294. package/cjs/persisters/persister-remote/with-schemas/index.cjs +8 -5
  295. package/cjs/persisters/persister-sqlite-wasm/index.cjs +103 -60
  296. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +103 -60
  297. package/cjs/persisters/persister-sqlite3/index.cjs +103 -60
  298. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +103 -60
  299. package/cjs/persisters/persister-yjs/index.cjs +5 -3
  300. package/cjs/persisters/persister-yjs/with-schemas/index.cjs +5 -3
  301. package/cjs/persisters/with-schemas/index.cjs +5 -3
  302. package/cjs/relationships/index.cjs +9 -7
  303. package/cjs/relationships/with-schemas/index.cjs +9 -7
  304. package/cjs/store/index.cjs +20 -11
  305. package/cjs/store/with-schemas/index.cjs +20 -11
  306. package/cjs/synchronizers/index.cjs +5 -3
  307. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -3
  308. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -3
  309. package/cjs/synchronizers/synchronizer-local/index.cjs +5 -3
  310. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -3
  311. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +12 -8
  312. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +12 -8
  313. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +34 -25
  314. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +34 -25
  315. package/cjs/synchronizers/with-schemas/index.cjs +5 -3
  316. package/cjs/tools/index.cjs +1 -1
  317. package/cjs/tools/with-schemas/index.cjs +1 -1
  318. package/cjs/ui-react-inspector/index.cjs +29 -17
  319. package/cjs/ui-react-inspector/with-schemas/index.cjs +29 -17
  320. package/cjs/with-schemas/index.cjs +25 -14
  321. package/es6/checkpoints/index.js +15 -13
  322. package/es6/checkpoints/with-schemas/index.js +15 -13
  323. package/es6/index.js +31 -22
  324. package/es6/indexes/index.js +15 -13
  325. package/es6/indexes/with-schemas/index.js +15 -13
  326. package/es6/mergeable-store/index.js +26 -19
  327. package/es6/mergeable-store/with-schemas/index.js +26 -19
  328. package/es6/metrics/index.js +15 -13
  329. package/es6/metrics/with-schemas/index.js +15 -13
  330. package/es6/min/index.js +1 -1
  331. package/es6/min/index.js.gz +0 -0
  332. package/es6/min/mergeable-store/index.js +1 -1
  333. package/es6/min/mergeable-store/index.js.gz +0 -0
  334. package/es6/min/mergeable-store/with-schemas/index.js +1 -1
  335. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  336. package/es6/min/persisters/persister-automerge/index.js +1 -1
  337. package/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  338. package/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  339. package/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  340. package/es6/min/persisters/persister-browser/index.js +1 -1
  341. package/es6/min/persisters/persister-browser/index.js.gz +0 -0
  342. package/es6/min/persisters/persister-browser/with-schemas/index.js +1 -1
  343. package/es6/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  344. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  345. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  346. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  347. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  348. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  349. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  350. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  351. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  352. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  353. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  354. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  355. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  356. package/es6/min/persisters/persister-file/index.js +1 -1
  357. package/es6/min/persisters/persister-file/index.js.gz +0 -0
  358. package/es6/min/persisters/persister-file/with-schemas/index.js +1 -1
  359. package/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  360. package/es6/min/persisters/persister-libsql/index.js +1 -1
  361. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  362. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  363. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  364. package/es6/min/persisters/persister-partykit-client/index.js +1 -1
  365. package/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
  366. package/es6/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  367. package/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  368. package/es6/min/persisters/persister-partykit-server/index.js +1 -1
  369. package/es6/min/persisters/persister-partykit-server/index.js.gz +0 -0
  370. package/es6/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  371. package/es6/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  372. package/es6/min/persisters/persister-pglite/index.js +1 -0
  373. package/es6/min/persisters/persister-pglite/index.js.gz +0 -0
  374. package/es6/min/persisters/persister-pglite/with-schemas/index.js +1 -0
  375. package/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  376. package/es6/min/persisters/persister-postgres/index.js +1 -1
  377. package/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  378. package/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  379. package/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  380. package/es6/min/persisters/persister-powersync/index.js +1 -1
  381. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  382. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  383. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  384. package/es6/min/persisters/persister-remote/index.js +1 -1
  385. package/es6/min/persisters/persister-remote/index.js.gz +0 -0
  386. package/es6/min/persisters/persister-remote/with-schemas/index.js +1 -1
  387. package/es6/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  388. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  389. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  390. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  391. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  392. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  393. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  394. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  395. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  396. package/es6/min/store/index.js +1 -1
  397. package/es6/min/store/index.js.gz +0 -0
  398. package/es6/min/store/with-schemas/index.js +1 -1
  399. package/es6/min/store/with-schemas/index.js.gz +0 -0
  400. package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  401. package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  402. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  403. package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  404. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  405. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  406. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  407. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  408. package/es6/min/ui-react-inspector/index.js +1 -1
  409. package/es6/min/ui-react-inspector/index.js.gz +0 -0
  410. package/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  411. package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  412. package/es6/min/with-schemas/index.js +1 -1
  413. package/es6/min/with-schemas/index.js.gz +0 -0
  414. package/es6/persisters/index.js +5 -3
  415. package/es6/persisters/persister-automerge/index.js +7 -4
  416. package/es6/persisters/persister-automerge/with-schemas/index.js +7 -4
  417. package/es6/persisters/persister-browser/index.js +8 -5
  418. package/es6/persisters/persister-browser/with-schemas/index.js +8 -5
  419. package/es6/persisters/persister-cr-sqlite-wasm/index.js +147 -102
  420. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +147 -102
  421. package/es6/persisters/persister-electric-sql/index.js +147 -102
  422. package/es6/persisters/persister-electric-sql/with-schemas/index.js +147 -102
  423. package/es6/persisters/persister-expo-sqlite/index.js +147 -102
  424. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +147 -102
  425. package/es6/persisters/persister-file/index.js +9 -5
  426. package/es6/persisters/persister-file/with-schemas/index.js +9 -5
  427. package/es6/persisters/persister-indexed-db/index.js +5 -3
  428. package/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  429. package/es6/persisters/persister-libsql/index.js +147 -102
  430. package/es6/persisters/persister-libsql/with-schemas/index.js +147 -102
  431. package/es6/persisters/persister-partykit-client/index.js +8 -5
  432. package/es6/persisters/persister-partykit-client/with-schemas/index.js +8 -5
  433. package/es6/persisters/persister-partykit-server/index.js +39 -24
  434. package/es6/persisters/persister-partykit-server/with-schemas/index.js +39 -24
  435. package/es6/persisters/persister-pglite/index.js +1318 -0
  436. package/es6/persisters/persister-pglite/with-schemas/index.js +1318 -0
  437. package/es6/persisters/persister-postgres/index.js +171 -92
  438. package/es6/persisters/persister-postgres/with-schemas/index.js +171 -92
  439. package/es6/persisters/persister-powersync/index.js +149 -104
  440. package/es6/persisters/persister-powersync/with-schemas/index.js +149 -104
  441. package/es6/persisters/persister-remote/index.js +8 -5
  442. package/es6/persisters/persister-remote/with-schemas/index.js +8 -5
  443. package/es6/persisters/persister-sqlite-wasm/index.js +147 -102
  444. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +147 -102
  445. package/es6/persisters/persister-sqlite3/index.js +147 -102
  446. package/es6/persisters/persister-sqlite3/with-schemas/index.js +147 -102
  447. package/es6/persisters/persister-yjs/index.js +5 -3
  448. package/es6/persisters/persister-yjs/with-schemas/index.js +5 -3
  449. package/es6/persisters/with-schemas/index.js +5 -3
  450. package/es6/relationships/index.js +15 -13
  451. package/es6/relationships/with-schemas/index.js +15 -13
  452. package/es6/store/index.js +26 -19
  453. package/es6/store/with-schemas/index.js +26 -19
  454. package/es6/synchronizers/index.js +5 -3
  455. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  456. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  457. package/es6/synchronizers/synchronizer-local/index.js +5 -3
  458. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  459. package/es6/synchronizers/synchronizer-ws-client/index.js +12 -8
  460. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +12 -8
  461. package/es6/synchronizers/synchronizer-ws-server/index.js +83 -77
  462. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +83 -77
  463. package/es6/synchronizers/with-schemas/index.js +5 -3
  464. package/es6/ui-react-inspector/index.js +35 -25
  465. package/es6/ui-react-inspector/with-schemas/index.js +35 -25
  466. package/es6/with-schemas/index.js +31 -22
  467. package/index.js +25 -14
  468. package/indexes/index.js +9 -7
  469. package/indexes/with-schemas/index.js +9 -7
  470. package/mergeable-store/index.js +20 -11
  471. package/mergeable-store/with-schemas/index.js +20 -11
  472. package/metrics/index.js +9 -7
  473. package/metrics/with-schemas/index.js +9 -7
  474. package/min/index.js +1 -1
  475. package/min/index.js.gz +0 -0
  476. package/min/mergeable-store/index.js +1 -1
  477. package/min/mergeable-store/index.js.gz +0 -0
  478. package/min/mergeable-store/with-schemas/index.js +1 -1
  479. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  480. package/min/persisters/persister-automerge/index.js +1 -1
  481. package/min/persisters/persister-automerge/index.js.gz +0 -0
  482. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  483. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  484. package/min/persisters/persister-browser/index.js +1 -1
  485. package/min/persisters/persister-browser/index.js.gz +0 -0
  486. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  487. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  488. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  489. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  490. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  491. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  492. package/min/persisters/persister-electric-sql/index.js +1 -1
  493. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  494. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  495. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  496. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  497. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  498. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  499. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  500. package/min/persisters/persister-file/index.js +1 -1
  501. package/min/persisters/persister-file/index.js.gz +0 -0
  502. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  503. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  504. package/min/persisters/persister-libsql/index.js +1 -1
  505. package/min/persisters/persister-libsql/index.js.gz +0 -0
  506. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  507. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  508. package/min/persisters/persister-partykit-client/index.js +1 -1
  509. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  510. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  511. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  512. package/min/persisters/persister-partykit-server/index.js +1 -1
  513. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  514. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  515. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  516. package/min/persisters/persister-pglite/index.js +1 -0
  517. package/min/persisters/persister-pglite/index.js.gz +0 -0
  518. package/min/persisters/persister-pglite/with-schemas/index.js +1 -0
  519. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  520. package/min/persisters/persister-postgres/index.js +1 -1
  521. package/min/persisters/persister-postgres/index.js.gz +0 -0
  522. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  523. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  524. package/min/persisters/persister-powersync/index.js +1 -1
  525. package/min/persisters/persister-powersync/index.js.gz +0 -0
  526. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  527. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  528. package/min/persisters/persister-remote/index.js +1 -1
  529. package/min/persisters/persister-remote/index.js.gz +0 -0
  530. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  531. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  532. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  533. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  534. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  535. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  536. package/min/persisters/persister-sqlite3/index.js +1 -1
  537. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  538. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  539. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  540. package/min/store/index.js +1 -1
  541. package/min/store/index.js.gz +0 -0
  542. package/min/store/with-schemas/index.js +1 -1
  543. package/min/store/with-schemas/index.js.gz +0 -0
  544. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  545. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  546. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  547. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  548. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  549. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  550. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  551. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  552. package/min/tools/index.js +1 -1
  553. package/min/tools/index.js.gz +0 -0
  554. package/min/tools/with-schemas/index.js +1 -1
  555. package/min/tools/with-schemas/index.js.gz +0 -0
  556. package/min/ui-react-inspector/index.js +1 -1
  557. package/min/ui-react-inspector/index.js.gz +0 -0
  558. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  559. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  560. package/min/with-schemas/index.js +1 -1
  561. package/min/with-schemas/index.js.gz +0 -0
  562. package/package.json +218 -110
  563. package/persisters/index.js +5 -3
  564. package/persisters/persister-automerge/index.js +7 -4
  565. package/persisters/persister-automerge/with-schemas/index.js +7 -4
  566. package/persisters/persister-browser/index.js +8 -5
  567. package/persisters/persister-browser/with-schemas/index.js +8 -5
  568. package/persisters/persister-cr-sqlite-wasm/index.js +103 -60
  569. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +103 -60
  570. package/persisters/persister-electric-sql/index.js +103 -60
  571. package/persisters/persister-electric-sql/with-schemas/index.js +103 -60
  572. package/persisters/persister-expo-sqlite/index.js +103 -60
  573. package/persisters/persister-expo-sqlite/with-schemas/index.js +103 -60
  574. package/persisters/persister-file/index.js +9 -5
  575. package/persisters/persister-file/with-schemas/index.js +9 -5
  576. package/persisters/persister-indexed-db/index.js +5 -3
  577. package/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  578. package/persisters/persister-libsql/index.js +103 -60
  579. package/persisters/persister-libsql/with-schemas/index.js +103 -60
  580. package/persisters/persister-partykit-client/index.js +8 -5
  581. package/persisters/persister-partykit-client/with-schemas/index.js +8 -5
  582. package/persisters/persister-partykit-server/index.js +39 -27
  583. package/persisters/persister-partykit-server/with-schemas/index.js +39 -27
  584. package/persisters/persister-pglite/index.js +992 -0
  585. package/persisters/persister-pglite/with-schemas/index.js +992 -0
  586. package/persisters/persister-postgres/index.js +126 -52
  587. package/persisters/persister-postgres/with-schemas/index.js +126 -52
  588. package/persisters/persister-powersync/index.js +105 -62
  589. package/persisters/persister-powersync/with-schemas/index.js +105 -62
  590. package/persisters/persister-remote/index.js +8 -5
  591. package/persisters/persister-remote/with-schemas/index.js +8 -5
  592. package/persisters/persister-sqlite-wasm/index.js +103 -60
  593. package/persisters/persister-sqlite-wasm/with-schemas/index.js +103 -60
  594. package/persisters/persister-sqlite3/index.js +103 -60
  595. package/persisters/persister-sqlite3/with-schemas/index.js +103 -60
  596. package/persisters/persister-yjs/index.js +5 -3
  597. package/persisters/persister-yjs/with-schemas/index.js +5 -3
  598. package/persisters/with-schemas/index.js +5 -3
  599. package/readme.md +2 -2
  600. package/relationships/index.js +9 -7
  601. package/relationships/with-schemas/index.js +9 -7
  602. package/store/index.js +20 -11
  603. package/store/with-schemas/index.js +20 -11
  604. package/synchronizers/index.js +5 -3
  605. package/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  606. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  607. package/synchronizers/synchronizer-local/index.js +5 -3
  608. package/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  609. package/synchronizers/synchronizer-ws-client/index.js +12 -8
  610. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +12 -8
  611. package/synchronizers/synchronizer-ws-server/index.js +34 -25
  612. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +34 -25
  613. package/synchronizers/with-schemas/index.js +5 -3
  614. package/tools/index.js +1 -1
  615. package/tools/with-schemas/index.js +1 -1
  616. package/ui-react-inspector/index.js +29 -17
  617. package/ui-react-inspector/with-schemas/index.js +29 -17
  618. package/umd/checkpoints/index.js +9 -7
  619. package/umd/checkpoints/with-schemas/index.js +9 -7
  620. package/umd/es6/checkpoints/index.js +15 -13
  621. package/umd/es6/checkpoints/with-schemas/index.js +15 -13
  622. package/umd/es6/index.js +31 -22
  623. package/umd/es6/indexes/index.js +15 -13
  624. package/umd/es6/indexes/with-schemas/index.js +15 -13
  625. package/umd/es6/mergeable-store/index.js +26 -19
  626. package/umd/es6/mergeable-store/with-schemas/index.js +26 -19
  627. package/umd/es6/metrics/index.js +15 -13
  628. package/umd/es6/metrics/with-schemas/index.js +15 -13
  629. package/umd/es6/min/index.js +1 -1
  630. package/umd/es6/min/index.js.gz +0 -0
  631. package/umd/es6/min/mergeable-store/index.js +1 -1
  632. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  633. package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
  634. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  635. package/umd/es6/min/persisters/persister-automerge/index.js +1 -1
  636. package/umd/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  637. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  638. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  639. package/umd/es6/min/persisters/persister-browser/index.js +1 -1
  640. package/umd/es6/min/persisters/persister-browser/index.js.gz +0 -0
  641. package/umd/es6/min/persisters/persister-browser/with-schemas/index.js +1 -1
  642. package/umd/es6/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  643. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  644. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  645. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  646. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  647. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  648. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  649. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  650. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  651. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  652. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  653. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  654. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  655. package/umd/es6/min/persisters/persister-file/index.js +1 -1
  656. package/umd/es6/min/persisters/persister-file/index.js.gz +0 -0
  657. package/umd/es6/min/persisters/persister-file/with-schemas/index.js +1 -1
  658. package/umd/es6/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  659. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  660. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  661. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  662. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  663. package/umd/es6/min/persisters/persister-partykit-client/index.js +1 -1
  664. package/umd/es6/min/persisters/persister-partykit-client/index.js.gz +0 -0
  665. package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  666. package/umd/es6/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  667. package/umd/es6/min/persisters/persister-partykit-server/index.js +1 -1
  668. package/umd/es6/min/persisters/persister-partykit-server/index.js.gz +0 -0
  669. package/umd/es6/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  670. package/umd/es6/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  671. package/umd/es6/min/persisters/persister-pglite/index.js +1 -0
  672. package/umd/es6/min/persisters/persister-pglite/index.js.gz +0 -0
  673. package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js +1 -0
  674. package/umd/es6/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  675. package/umd/es6/min/persisters/persister-postgres/index.js +1 -1
  676. package/umd/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  677. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  678. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  679. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  680. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  681. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  682. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  683. package/umd/es6/min/persisters/persister-remote/index.js +1 -1
  684. package/umd/es6/min/persisters/persister-remote/index.js.gz +0 -0
  685. package/umd/es6/min/persisters/persister-remote/with-schemas/index.js +1 -1
  686. package/umd/es6/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  687. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  688. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  689. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  690. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  691. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  692. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  693. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  694. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  695. package/umd/es6/min/store/index.js +1 -1
  696. package/umd/es6/min/store/index.js.gz +0 -0
  697. package/umd/es6/min/store/with-schemas/index.js +1 -1
  698. package/umd/es6/min/store/with-schemas/index.js.gz +0 -0
  699. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  700. package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  701. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  702. package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  703. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  704. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  705. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  706. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  707. package/umd/es6/min/ui-react-inspector/index.js +1 -1
  708. package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
  709. package/umd/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  710. package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  711. package/umd/es6/min/with-schemas/index.js +1 -1
  712. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  713. package/umd/es6/persisters/index.js +5 -3
  714. package/umd/es6/persisters/persister-automerge/index.js +7 -4
  715. package/umd/es6/persisters/persister-automerge/with-schemas/index.js +7 -4
  716. package/umd/es6/persisters/persister-browser/index.js +8 -7
  717. package/umd/es6/persisters/persister-browser/with-schemas/index.js +8 -7
  718. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +151 -106
  719. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +151 -106
  720. package/umd/es6/persisters/persister-electric-sql/index.js +151 -106
  721. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +151 -106
  722. package/umd/es6/persisters/persister-expo-sqlite/index.js +151 -106
  723. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +151 -106
  724. package/umd/es6/persisters/persister-file/index.js +9 -7
  725. package/umd/es6/persisters/persister-file/with-schemas/index.js +9 -7
  726. package/umd/es6/persisters/persister-indexed-db/index.js +5 -3
  727. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  728. package/umd/es6/persisters/persister-libsql/index.js +151 -106
  729. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +151 -106
  730. package/umd/es6/persisters/persister-partykit-client/index.js +8 -5
  731. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +8 -5
  732. package/umd/es6/persisters/persister-partykit-server/index.js +39 -24
  733. package/umd/es6/persisters/persister-partykit-server/with-schemas/index.js +39 -24
  734. package/umd/es6/persisters/persister-pglite/index.js +1341 -0
  735. package/umd/es6/persisters/persister-pglite/with-schemas/index.js +1341 -0
  736. package/umd/es6/persisters/persister-postgres/index.js +171 -94
  737. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +171 -94
  738. package/umd/es6/persisters/persister-powersync/index.js +153 -108
  739. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +153 -108
  740. package/umd/es6/persisters/persister-remote/index.js +8 -5
  741. package/umd/es6/persisters/persister-remote/with-schemas/index.js +8 -5
  742. package/umd/es6/persisters/persister-sqlite-wasm/index.js +151 -106
  743. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +151 -106
  744. package/umd/es6/persisters/persister-sqlite3/index.js +151 -106
  745. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +151 -106
  746. package/umd/es6/persisters/persister-yjs/index.js +5 -3
  747. package/umd/es6/persisters/persister-yjs/with-schemas/index.js +5 -3
  748. package/umd/es6/persisters/with-schemas/index.js +5 -3
  749. package/umd/es6/relationships/index.js +15 -13
  750. package/umd/es6/relationships/with-schemas/index.js +15 -13
  751. package/umd/es6/store/index.js +26 -19
  752. package/umd/es6/store/with-schemas/index.js +26 -19
  753. package/umd/es6/synchronizers/index.js +5 -3
  754. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  755. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  756. package/umd/es6/synchronizers/synchronizer-local/index.js +5 -3
  757. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  758. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +12 -10
  759. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +12 -10
  760. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +83 -81
  761. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +83 -81
  762. package/umd/es6/synchronizers/with-schemas/index.js +5 -3
  763. package/umd/es6/ui-react-inspector/index.js +35 -27
  764. package/umd/es6/ui-react-inspector/with-schemas/index.js +35 -27
  765. package/umd/es6/with-schemas/index.js +31 -22
  766. package/umd/index.js +25 -14
  767. package/umd/indexes/index.js +9 -7
  768. package/umd/indexes/with-schemas/index.js +9 -7
  769. package/umd/mergeable-store/index.js +20 -11
  770. package/umd/mergeable-store/with-schemas/index.js +20 -11
  771. package/umd/metrics/index.js +9 -7
  772. package/umd/metrics/with-schemas/index.js +9 -7
  773. package/umd/min/index.js +1 -1
  774. package/umd/min/index.js.gz +0 -0
  775. package/umd/min/mergeable-store/index.js +1 -1
  776. package/umd/min/mergeable-store/index.js.gz +0 -0
  777. package/umd/min/mergeable-store/with-schemas/index.js +1 -1
  778. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  779. package/umd/min/persisters/persister-automerge/index.js +1 -1
  780. package/umd/min/persisters/persister-automerge/index.js.gz +0 -0
  781. package/umd/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  782. package/umd/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  783. package/umd/min/persisters/persister-browser/index.js +1 -1
  784. package/umd/min/persisters/persister-browser/index.js.gz +0 -0
  785. package/umd/min/persisters/persister-browser/with-schemas/index.js +1 -1
  786. package/umd/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  787. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  788. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  789. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  790. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  791. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  792. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  793. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  794. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  795. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  796. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  797. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  798. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  799. package/umd/min/persisters/persister-file/index.js +1 -1
  800. package/umd/min/persisters/persister-file/index.js.gz +0 -0
  801. package/umd/min/persisters/persister-file/with-schemas/index.js +1 -1
  802. package/umd/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  803. package/umd/min/persisters/persister-libsql/index.js +1 -1
  804. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  805. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  806. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  807. package/umd/min/persisters/persister-partykit-client/index.js +1 -1
  808. package/umd/min/persisters/persister-partykit-client/index.js.gz +0 -0
  809. package/umd/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  810. package/umd/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  811. package/umd/min/persisters/persister-partykit-server/index.js +1 -1
  812. package/umd/min/persisters/persister-partykit-server/index.js.gz +0 -0
  813. package/umd/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  814. package/umd/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  815. package/umd/min/persisters/persister-pglite/index.js +1 -0
  816. package/umd/min/persisters/persister-pglite/index.js.gz +0 -0
  817. package/umd/min/persisters/persister-pglite/with-schemas/index.js +1 -0
  818. package/umd/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  819. package/umd/min/persisters/persister-postgres/index.js +1 -1
  820. package/umd/min/persisters/persister-postgres/index.js.gz +0 -0
  821. package/umd/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  822. package/umd/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  823. package/umd/min/persisters/persister-powersync/index.js +1 -1
  824. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  825. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  826. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  827. package/umd/min/persisters/persister-remote/index.js +1 -1
  828. package/umd/min/persisters/persister-remote/index.js.gz +0 -0
  829. package/umd/min/persisters/persister-remote/with-schemas/index.js +1 -1
  830. package/umd/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  831. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  832. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  833. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  834. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  835. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  836. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  837. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  838. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  839. package/umd/min/store/index.js +1 -1
  840. package/umd/min/store/index.js.gz +0 -0
  841. package/umd/min/store/with-schemas/index.js +1 -1
  842. package/umd/min/store/with-schemas/index.js.gz +0 -0
  843. package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  844. package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  845. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  846. package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  847. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  848. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  849. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  850. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  851. package/umd/min/tools/index.js +1 -1
  852. package/umd/min/tools/index.js.gz +0 -0
  853. package/umd/min/tools/with-schemas/index.js +1 -1
  854. package/umd/min/tools/with-schemas/index.js.gz +0 -0
  855. package/umd/min/ui-react-inspector/index.js +1 -1
  856. package/umd/min/ui-react-inspector/index.js.gz +0 -0
  857. package/umd/min/ui-react-inspector/with-schemas/index.js +1 -1
  858. package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  859. package/umd/min/with-schemas/index.js +1 -1
  860. package/umd/min/with-schemas/index.js.gz +0 -0
  861. package/umd/persisters/index.js +5 -3
  862. package/umd/persisters/persister-automerge/index.js +7 -4
  863. package/umd/persisters/persister-automerge/with-schemas/index.js +7 -4
  864. package/umd/persisters/persister-browser/index.js +8 -7
  865. package/umd/persisters/persister-browser/with-schemas/index.js +8 -7
  866. package/umd/persisters/persister-cr-sqlite-wasm/index.js +103 -62
  867. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +103 -62
  868. package/umd/persisters/persister-electric-sql/index.js +103 -62
  869. package/umd/persisters/persister-electric-sql/with-schemas/index.js +103 -62
  870. package/umd/persisters/persister-expo-sqlite/index.js +103 -62
  871. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +103 -62
  872. package/umd/persisters/persister-file/index.js +9 -7
  873. package/umd/persisters/persister-file/with-schemas/index.js +9 -7
  874. package/umd/persisters/persister-indexed-db/index.js +5 -3
  875. package/umd/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  876. package/umd/persisters/persister-libsql/index.js +103 -62
  877. package/umd/persisters/persister-libsql/with-schemas/index.js +103 -62
  878. package/umd/persisters/persister-partykit-client/index.js +8 -5
  879. package/umd/persisters/persister-partykit-client/with-schemas/index.js +8 -5
  880. package/umd/persisters/persister-partykit-server/index.js +39 -27
  881. package/umd/persisters/persister-partykit-server/with-schemas/index.js +39 -27
  882. package/umd/persisters/persister-pglite/index.js +1010 -0
  883. package/umd/persisters/persister-pglite/with-schemas/index.js +1010 -0
  884. package/umd/persisters/persister-postgres/index.js +126 -54
  885. package/umd/persisters/persister-postgres/with-schemas/index.js +126 -54
  886. package/umd/persisters/persister-powersync/index.js +105 -64
  887. package/umd/persisters/persister-powersync/with-schemas/index.js +105 -64
  888. package/umd/persisters/persister-remote/index.js +8 -5
  889. package/umd/persisters/persister-remote/with-schemas/index.js +8 -5
  890. package/umd/persisters/persister-sqlite-wasm/index.js +103 -62
  891. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +103 -62
  892. package/umd/persisters/persister-sqlite3/index.js +103 -62
  893. package/umd/persisters/persister-sqlite3/with-schemas/index.js +103 -62
  894. package/umd/persisters/persister-yjs/index.js +5 -3
  895. package/umd/persisters/persister-yjs/with-schemas/index.js +5 -3
  896. package/umd/persisters/with-schemas/index.js +5 -3
  897. package/umd/relationships/index.js +9 -7
  898. package/umd/relationships/with-schemas/index.js +9 -7
  899. package/umd/store/index.js +20 -11
  900. package/umd/store/with-schemas/index.js +20 -11
  901. package/umd/synchronizers/index.js +5 -3
  902. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  903. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  904. package/umd/synchronizers/synchronizer-local/index.js +5 -3
  905. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  906. package/umd/synchronizers/synchronizer-ws-client/index.js +12 -10
  907. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +12 -10
  908. package/umd/synchronizers/synchronizer-ws-server/index.js +34 -27
  909. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +34 -27
  910. package/umd/synchronizers/with-schemas/index.js +5 -3
  911. package/umd/tools/index.js +1 -1
  912. package/umd/tools/with-schemas/index.js +1 -1
  913. package/umd/ui-react-inspector/index.js +29 -19
  914. package/umd/ui-react-inspector/with-schemas/index.js +29 -19
  915. package/umd/with-schemas/index.js +25 -14
  916. package/with-schemas/index.js +25 -14
@@ -1 +1 @@
1
- const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),o=a=>a.length,l=async a=>n.all(a),w=(a,t)=>a.map(t),y=(a,...t)=>a.push(...t),g=Object,h=g.entries,f=(a=[])=>g.fromEntries(a),u=(a,t)=>w(h(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>t in a)(a,t)||(a[t]=e()),a[t]),S=a=>JSON.stringify(a,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)),d=JSON.parse,P=(e,s,n)=>e+s+(a(n)==t?n:S(n)),m=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},x=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),D="hasStore",R=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),b=async(a,t="")=>!!await a.get(t+D),C=async(a,t="")=>{const s={},n={};return x(await a.list(),((a,i)=>r(m(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},T=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),v=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,g={[w+D]:1},h=[],f=[];await l(u(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(f,O(w,e,s)):await a.canSetTable(s,n,r)&&await l(u(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&y(f,O(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=O(w,e,...f);i(t)?!n&&await a.canDelCell(...f,r)&&y(h,u):await a.canSetCell(...f,t,n,r,await c.get(u))&&(g[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;i(t)?!n&&await a.canDelValue(e,r)&&y(h,s):await a.canSetValue(e,t,n,r,await c.get(s))&&(g[s]=t)}))),0!=o(f)&&x(await c.list(),(a=>f.every((t=>!s(a,t)||y(h,a)&&0)))),await c.delete(h),await c.put(g)},O=(a,t,...e)=>P(a,t,c(S(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class E{constructor(a){this.party=a,this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=R}config={};async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await b(t,s),n=await a.text();return"PUT"==a.method?e?V(this,205):(await v(this,d(n),!0,a),V(this,201)):V(this,200,e?S(await C(t,s)):"")}return V(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(m(e,a,1),(async([a,e])=>{"s"==a&&await b(this.party.storage,s)&&(await v(this,e,!1,t),T(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}}export{E as TinyBasePartyKitServer,T as broadcastChanges,b as hasStoreInStorage,C as loadStoreFromStorage};
1
+ const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),o=a=>a.length,l=async a=>n.all(a),w=(a,t)=>a.map(t),y=(a,...t)=>a.push(...t),g=Object,h=g.entries,f=(a=[])=>g.fromEntries(a),u=(a,t)=>w(h(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>t in a)(a,t)||(a[t]=e()),a[t]),S=JSON.stringify,d=JSON.parse,P=a=>S(a,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)),m=(e,s,n)=>e+s+(a(n)==t?n:P(n)),x=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},D=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),R="hasStore",b=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),C=async(a,t="")=>!!await a.get(t+R),T=async(a,t="")=>{const s={},n={};return D(await a.list(),((a,i)=>r(x(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},v=async(a,t,e)=>a.party.broadcast(m(a.config.messagePrefix,"s",t),e),O=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,g={[w+R]:1},h=[],f=[];await l(u(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(f,V(w,e,s)):await a.canSetTable(s,n,r)&&await l(u(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&y(f,V(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=V(w,e,...f);i(t)?!n&&await a.canDelCell(...f,r)&&y(h,u):await a.canSetCell(...f,t,n,r,await c.get(u))&&(g[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;i(t)?!n&&await a.canDelValue(e,r)&&y(h,s):await a.canSetValue(e,t,n,r,await c.get(s))&&(g[s]=t)}))),0!=o(f)&&D(await c.list(),(a=>f.every((t=>!s(a,t)||y(h,a)&&0)))),await c.delete(h),await c.put(g)},V=(a,t,...e)=>m(a,t,c(P(e),1,-1)),E=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class H{constructor(a){this.party=a,this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=b}config={};async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await C(t,s),n=await a.text();return"PUT"==a.method?e?E(this,205):(await O(this,d(n),!0,a),E(this,201)):E(this,200,e?P(await T(t,s)):"")}return E(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(x(e,a,1),(async([a,e])=>{"s"==a&&await C(this.party.storage,s)&&(await O(this,e,!1,t),v(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}}export{H as TinyBasePartyKitServer,v as broadcastChanges,C as hasStoreInStorage,T as loadStoreFromStorage};
@@ -1 +1 @@
1
- const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),o=a=>a.length,l=async a=>n.all(a),w=(a,t)=>a.map(t),y=(a,...t)=>a.push(...t),g=Object,h=g.entries,f=(a=[])=>g.fromEntries(a),u=(a,t)=>w(h(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>t in a)(a,t)||(a[t]=e()),a[t]),S=a=>JSON.stringify(a,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)),d=JSON.parse,P=(e,s,n)=>e+s+(a(n)==t?n:S(n)),m=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},x=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),D="hasStore",R=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),b=async(a,t="")=>!!await a.get(t+D),C=async(a,t="")=>{const s={},n={};return x(await a.list(),((a,i)=>r(m(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},T=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),v=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,g={[w+D]:1},h=[],f=[];await l(u(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(f,O(w,e,s)):await a.canSetTable(s,n,r)&&await l(u(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&y(f,O(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=O(w,e,...f);i(t)?!n&&await a.canDelCell(...f,r)&&y(h,u):await a.canSetCell(...f,t,n,r,await c.get(u))&&(g[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;i(t)?!n&&await a.canDelValue(e,r)&&y(h,s):await a.canSetValue(e,t,n,r,await c.get(s))&&(g[s]=t)}))),0!=o(f)&&x(await c.list(),(a=>f.every((t=>!s(a,t)||y(h,a)&&0)))),await c.delete(h),await c.put(g)},O=(a,t,...e)=>P(a,t,c(S(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class E{constructor(a){this.party=a,this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=R}config={};async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await b(t,s),n=await a.text();return"PUT"==a.method?e?V(this,205):(await v(this,d(n),!0,a),V(this,201)):V(this,200,e?S(await C(t,s)):"")}return V(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(m(e,a,1),(async([a,e])=>{"s"==a&&await b(this.party.storage,s)&&(await v(this,e,!1,t),T(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}}export{E as TinyBasePartyKitServer,T as broadcastChanges,b as hasStoreInStorage,C as loadStoreFromStorage};
1
+ const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),o=a=>a.length,l=async a=>n.all(a),w=(a,t)=>a.map(t),y=(a,...t)=>a.push(...t),g=Object,h=g.entries,f=(a=[])=>g.fromEntries(a),u=(a,t)=>w(h(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>t in a)(a,t)||(a[t]=e()),a[t]),S=JSON.stringify,d=JSON.parse,P=a=>S(a,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)),m=(e,s,n)=>e+s+(a(n)==t?n:P(n)),x=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},D=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),R="hasStore",b=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),C=async(a,t="")=>!!await a.get(t+R),T=async(a,t="")=>{const s={},n={};return D(await a.list(),((a,i)=>r(x(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=i}else"v"==a&&(n[t]=i)})))),[s,n]},v=async(a,t,e)=>a.party.broadcast(m(a.config.messagePrefix,"s",t),e),O=async(a,t,n,r)=>{const c=a.party.storage,w=a.config.storagePrefix,g={[w+R]:1},h=[],f=[];await l(u(t[0],(async(t,s)=>i(t)?!n&&await a.canDelTable(s,r)&&((a,...t)=>a.unshift(...t))(f,V(w,e,s)):await a.canSetTable(s,n,r)&&await l(u(t,(async(t,o)=>i(t)?!n&&await a.canDelRow(s,o,r)&&y(f,V(w,e,s,o)):await a.canSetRow(s,o,n,r)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=V(w,e,...f);i(t)?!n&&await a.canDelCell(...f,r)&&y(h,u):await a.canSetCell(...f,t,n,r,await c.get(u))&&(g[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;i(t)?!n&&await a.canDelValue(e,r)&&y(h,s):await a.canSetValue(e,t,n,r,await c.get(s))&&(g[s]=t)}))),0!=o(f)&&D(await c.list(),(a=>f.every((t=>!s(a,t)||y(h,a)&&0)))),await c.delete(h),await c.put(g)},V=(a,t,...e)=>m(a,t,c(P(e),1,-1)),E=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});class H{constructor(a){this.party=a,this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=b}config={};async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await C(t,s),n=await a.text();return"PUT"==a.method?e?E(this,205):(await O(this,d(n),!0,a),E(this,201)):E(this,200,e?P(await T(t,s)):"")}return E(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await r(x(e,a,1),(async([a,e])=>{"s"==a&&await C(this.party.storage,s)&&(await O(this,e,!1,t),v(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}}export{H as TinyBasePartyKitServer,v as broadcastChanges,C as hasStoreInStorage,T as loadStoreFromStorage};
@@ -0,0 +1 @@
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),r=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,'""')}"`,_=a=>u(R(a,((a,t)=>"$"+(t+1))),e),S=(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)&&o(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)=>(S(a,t)||K(a,t,e()),k(a,t)),z=W(),Q=W(),Z=(a,t,e,n,s,r,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){r?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),_=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){r?.(a)}A=0}))),b),S=()=>(o(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){r?.(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){r?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:_,startAutoSave:async()=>(await S().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&_(a)})),b),stopAutoSave:S,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,o,r,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)=>S(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)&&S(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)||(S(l,t)?await w(R([n,...C],(async(e,s)=>{b(I,e)||(await a(v+m(t)+"ADD"+m(e)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),ta(p,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}${o} PRIMARY KEY${u(R(C,(a=>e+m(a)+o)))});`),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)],r)})));else if(A(C))S(l,t)&&await a($+m(t)+O+" true");else{const e=T(h(k(l,t)),(a=>a!=n)),i=[],o=[];j(s??{},((a,t)=>{N(i,t,...R(e,(t=>c?c(a?.[t]):a?.[t]))),N(o,t)})),await na(a,t,n,e,i,r),await a($+m(t)+O+m(n)+`NOT IN(${_(o)})`,o)}},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,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+sa(i,l(s)+1)+(o?"":"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,o,[r,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(r,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(r,c,{[g]:{[E]:(t=a()??null,q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>y,destroy:()=>(p.stopAutoLoad().stopAutoSave(),i(),p)},y);return p},oa=(a,t,e,n,s,o,r,[c,E,[l,y,d]],u,R,A,N,p,O,L,v)=>{const[$,I,m,_]=ea(t,u,R,s,p,O,L,v),S=async(a,t)=>await w(J(E,(async([e,n,s,i],o)=>{t&&!(o in a)||await m(e,n,a[o],s,i,t)}))),h=async(a,t)=>y?await m(d,C,{[g]:a},!0,!0,t):null,b=Z(a,(async()=>await _((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 _((async()=>{if(await $(),i(t)){const[t,e]=a();await S(t),await h(e)}else await S(t[0],!0),await h(t[1],!0)}))),e,n,s,r,{[N]:()=>A,destroy:()=>(b.stopAutoLoad().stopAutoSave(),o(),b)},A);return b},ra="ColumnName",ca="store",Ea="json",la=ca+"TableName",wa=ca+"Id"+ra,ya=ca+ra,da="autoLoadIntervalSeconds",ua="rowId"+ra,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 o=W();return j(a,((a,c)=>{const l=E(x(G(t,r(a)?{[e]:a}:a)),0,X(t));i(l[0])||n(c,l[0])||(s(c,l[0]),K(o,c,l))})),o},Oa=t,La=/^([cd]:)(.+)/,va=t+"_data",$a=t+"_table",Ia=async(a,e,n,s,i)=>((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,r(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:o={}}=e,c=E(x(G(Ca,o)),0,X(Ca)),l=c[2],w=aa(l),y=aa(l);return[0,n,[pa(s,{[Ra]:null,[ua]:C},Ra,(a=>S(y,a)),(a=>ta(w,a))),pa(i,{[Aa]:null,[ua]:C,[Ta]:0,[Na]:0},Aa,((a,t)=>S(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:oa)(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 o((e=t,n=La,e?.match(n)),(async([,t,e])=>{S(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(${_(t)})`,t)),u,A,"text",0,(a=>q(a)),(a=>H(a)))})(a,n,(async(a,t=[])=>(await e.query(a,t)).rows),(async(a,t)=>e.listen(a,t)),(async a=>{try{await a()}catch(a){i?.(a)}}),s,i,(()=>0),3,e,"getPglite");export{Ia as createPglitePersister};
@@ -0,0 +1 @@
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),r=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,'""')}"`,_=a=>u(R(a,((a,t)=>"$"+(t+1))),e),S=(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)&&o(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)=>(S(a,t)||K(a,t,e()),k(a,t)),z=W(),Q=W(),Z=(a,t,e,n,s,r,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){r?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),_=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){r?.(a)}A=0}))),b),S=()=>(o(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){r?.(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){r?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:_,startAutoSave:async()=>(await S().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&_(a)})),b),stopAutoSave:S,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,o,r,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)=>S(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)&&S(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)||(S(l,t)?await w(R([n,...C],(async(e,s)=>{b(I,e)||(await a(v+m(t)+"ADD"+m(e)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),ta(p,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}${o} PRIMARY KEY${u(R(C,(a=>e+m(a)+o)))});`),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)],r)})));else if(A(C))S(l,t)&&await a($+m(t)+O+" true");else{const e=T(h(k(l,t)),(a=>a!=n)),i=[],o=[];j(s??{},((a,t)=>{N(i,t,...R(e,(t=>c?c(a?.[t]):a?.[t]))),N(o,t)})),await na(a,t,n,e,i,r),await a($+m(t)+O+m(n)+`NOT IN(${_(o)})`,o)}},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,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+sa(i,l(s)+1)+(o?"":"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,o,[r,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(r,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(r,c,{[g]:{[E]:(t=a()??null,q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>y,destroy:()=>(p.stopAutoLoad().stopAutoSave(),i(),p)},y);return p},oa=(a,t,e,n,s,o,r,[c,E,[l,y,d]],u,R,A,N,p,O,L,v)=>{const[$,I,m,_]=ea(t,u,R,s,p,O,L,v),S=async(a,t)=>await w(J(E,(async([e,n,s,i],o)=>{t&&!(o in a)||await m(e,n,a[o],s,i,t)}))),h=async(a,t)=>y?await m(d,C,{[g]:a},!0,!0,t):null,b=Z(a,(async()=>await _((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 _((async()=>{if(await $(),i(t)){const[t,e]=a();await S(t),await h(e)}else await S(t[0],!0),await h(t[1],!0)}))),e,n,s,r,{[N]:()=>A,destroy:()=>(b.stopAutoLoad().stopAutoSave(),o(),b)},A);return b},ra="ColumnName",ca="store",Ea="json",la=ca+"TableName",wa=ca+"Id"+ra,ya=ca+ra,da="autoLoadIntervalSeconds",ua="rowId"+ra,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 o=W();return j(a,((a,c)=>{const l=E(x(G(t,r(a)?{[e]:a}:a)),0,X(t));i(l[0])||n(c,l[0])||(s(c,l[0]),K(o,c,l))})),o},Oa=t,La=/^([cd]:)(.+)/,va=t+"_data",$a=t+"_table",Ia=async(a,e,n,s,i)=>((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,r(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:o={}}=e,c=E(x(G(Ca,o)),0,X(Ca)),l=c[2],w=aa(l),y=aa(l);return[0,n,[pa(s,{[Ra]:null,[ua]:C},Ra,(a=>S(y,a)),(a=>ta(w,a))),pa(i,{[Aa]:null,[ua]:C,[Ta]:0,[Na]:0},Aa,((a,t)=>S(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:oa)(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 o((e=t,n=La,e?.match(n)),(async([,t,e])=>{S(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(${_(t)})`,t)),u,A,"text",0,(a=>q(a)),(a=>H(a)))})(a,n,(async(a,t=[])=>(await e.query(a,t)).rows),(async(a,t)=>e.listen(a,t)),(async a=>{try{await a()}catch(a){i?.(a)}}),s,i,(()=>0),3,e,"getPglite");export{Ia as createPglitePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),r=t=>a(t)==n,c=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),w=a=>a.length,y=async a=>s.all(a),E=a=>{throw Error(a)},u=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),d=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),R=a=>0==w(a),T=(a,t)=>a.filter(t),p=(a,...t)=>a.push(...t),N="_",g="_id",v="SELECT",C="WHERE",O="TABLE",L="ALTER "+O,S="DELETE FROM",h=v+"*FROM",I=a=>`"${a.replace(/"/g,'""')}"`,$=a=>d(A(a,((a,t)=>"$"+(t+1))),e),f=(a,t)=>a?.has(t)??!1,m=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),D=Object,M=a=>D.getPrototypeOf(a),P=D.entries,U=D.keys,_=D.freeze,F=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>A(P(a),(([a,e])=>t(e,a))),x=a=>D.values(a),B=a=>w(U(a)),Y=a=>(a=>!i(a)&&o(M(a),(a=>a==D.prototype||i(M(a))),(()=>!0)))(a)&&0==B(a),X=a=>new Map(a),k=(a,t)=>a?.get(t),q=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),J=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),K=(a,t,e,n)=>(f(a,t)||J(a,t,e()),k(a,t)),z=X(),H=X(),Q=(a,t,e,n,s,r,l,w={},y=[])=>{let u,d,A,R=0,T=0,N=0;K(z,y,(()=>0)),K(H,y,(()=>[]));const[g,v,C,O,L]=((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]:E("Store type not supported by this Persister"))(l,a),S=t=>{(g&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},h=async a=>(2!=R&&(R=1,T++,await m((async()=>{try{const a=await t();c(a)?S(a):E("Content is not an array "+a)}catch(t){r?.(t),a&&L(a)}R=0}))),b),I=()=>(d&&(s(d),d=void 0),b),$=async a=>(1!=R&&(R=2,N++,await m((async()=>{try{await e(v,a)}catch(a){r?.(a)}R=0}))),b),f=()=>(o(A,a.delListener),A=void 0,b),m=async(...a)=>(p(k(H,y),...a),await(async()=>{if(!k(z,y)){for(J(z,y,1);!i((a=k(H,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}J(z,y,0)}var a})(),b),b={load:h,startAutoLoad:async a=>{await I().load(a);try{d=await n((async(a,t)=>{t||a?2!=R&&(R=1,T++,S(t??a),R=0):await h()}))}catch(a){r?.(a)}return b},stopAutoLoad:I,isAutoLoading:()=>!i(d),save:$,startAutoSave:async()=>(await f().save(),A=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&$(a)})),b),stopAutoSave:f,isAutoSaving:()=>!i(A),schedule:m,getStore:()=>a,destroy:()=>(k(H,y).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:N}),...w};return _(b)},V=a=>new Set(c(a)||i(a)?a:[a]),W=(a,t)=>a?.add(t),Z=(a,t,n,s,o)=>{const r=X();return[async()=>{r.clear(),A(await n(a,t),(({tn:a,cn:t})=>W(K(r,a,V),t)))},async(t,e)=>((a,t)=>f(k(r,a),t))(t,e)?F(T(A(await a(h+I(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,n,s,c,l,w=!1)=>{const E=V();j(s??{},(a=>A(U(a??{}),(a=>W(E,a)))));const u=m(E);if(!w&&l&&R(u)&&f(r,t))return await a("DROP "+O+I(t)),void J(r,t);const N=k(r,t),g=V(m(N));if(R(u)||(f(r,t)?await y(A([n,...u],(async(e,s)=>{b(g,e)||(await a(L+I(t)+"ADD"+I(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+I(t)+`(${I(n)})`),W(N,e))}))):(await a("CREATE "+O+I(t)+`(${I(n)}text PRIMARY KEY${d(A(u,(a=>e+I(a)+"json")))});`),J(r,t,V([n,...u])))),await y([...!w&&c?A(m(g),(async e=>{e!=n&&(await a(L+I(t)+"DROP"+I(e)),b(N,e))})):[]]),w)i(s)?await a(S+I(t)+C+" true"):await y(j(s,(async(e,s)=>{i(e)?await a(S+I(t)+C+I(n)+"=$1",[s]):R(u)||await aa(a,t,n,U(e),[s,...x(e)],o)})));else if(R(u))f(r,t)&&await a(S+I(t)+C+" true");else{const e=T(m(k(r,t)),(a=>a!=n)),i=[],c=[];j(s??{},((a,t)=>{p(i,t,...A(e,(t=>a?.[t]))),p(c,t)})),await aa(a,t,n,e,i,o),await a(S+I(t)+C+I(n)+`NOT IN(${$(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,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+I(t)+"("+I(n)+d(A(s,(a=>e+I(a))))+")VALUES"+ta(i,w(s)+1)+(o?"ON CONFLICT("+I(n)+")DO UPDATE SET"+d(A(s,(a=>I(a)+"=excluded."+I(a))),e):""),A(i,(a=>a??null))),ta=(a,t)=>d(u(w(a)/t,(a=>"("+d(u(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ea=(a,t,e,n,s,i,o,[r,c,l],w,y,E,u,d)=>{const[A,R,T,p]=Z(t,w,y,s,d),g=Q(a,(async()=>await p((async()=>{return await A(),a=(await R(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await p((async()=>{var t;await A(),await T(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>E,destroy:()=>(g.stopAutoLoad().stopAutoSave(),i(),g)},E);return g},na=(a,t,e,n,s,o,r,[c,l,[w,E,u]],d,A,R,p,v)=>{const[C,O,L,S]=Z(t,d,A,s,v),h=async(a,t)=>await y(q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await L(e,n,a[o],s,i,t)}))),I=async(a,t)=>E?await L(u,g,{[N]:a},!0,!0,t):null,$=Q(a,(async()=>await S((async()=>{await C();const a=await(async()=>F(T(await y(q(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>w?(await O(u,g))[N]:{})();return Y(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await C(),i(t)){const[t,e]=a();await h(t),await I(e)}else await h(t[0],!0),await I(t[1],!0)}))),e,n,s,r,{[p]:()=>R,destroy:()=>($.stopAutoLoad().stopAutoSave(),o(),$)},R);return $},sa="ColumnName",ia="store",oa="json",ra=ia+"TableName",ca=ia+"Id"+sa,la=ia+sa,wa="autoLoadIntervalSeconds",ya="rowId"+sa,Ea="tableId",ua="tableName",da="deleteEmptyColumns",Aa="deleteEmptyTable",Ra={mode:oa,[wa]:1},Ta={load:0,save:0,[ua]:t+"_values"},pa=(a,t,e,n,s)=>{const o=X();return j(a,((a,c)=>{const w=l(x(G(t,r(a)?{[e]:a}:a)),0,B(t));i(w[0])||n(c,w[0])||(s(c,w[0]),J(o,c,w))})),o},Na=t,ga=async(a,e,n,s,i)=>{const o=await(e.reserve?.());return((a,e,n,s,i,o,c,w,y,E,u="getDb")=>{const[d,,A,R]=(a=>{const e=(a=>G(Ra,r(a)?{[ra]:a}:a??{}))(a),n=e[wa];if(e.mode==oa){const a=e[ra]??t;return[1,n,[a,e[ca]??g,e[la]??ia],V(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,c=l(x(G(Ta,o)),0,B(Ta)),w=c[2],y=V(w),E=V(w);return[0,n,[pa(s,{[Ea]:null,[ya]:g},Ea,(a=>f(E,a)),(a=>W(y,a))),pa(i,{[ua]:null,[ya]:g,[da]:0,[Aa]:0},ua,((a,t)=>f(E,t)),((a,t)=>W(y,t))),c],y]})(e);return(d?ea:na)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(async a=>await s((t=>R.has(t)?a():0),R)),i,c,w,y,A,m(R),(async(a,t)=>await a(`${v} table_name tn,column_name cn FROM information_schema.columns ${C} table_schema='public'AND table_name IN(${$(t)})`,t)),E,u)})(a,n,o?.unsafe,(async(a,t)=>{const n=await e.listen(Na,(t=>a?.(t)));return await(e`CREATE OR REPLACE FUNCTION ${e(Na)}()RETURNS trigger AS $t$ BEGIN PERFORM pg_notify('${e.unsafe(Na)}',TG_TABLE_NAME);RETURN NULL;END;$t$ LANGUAGE plpgsql;`),await y(A(m(t),(async a=>{await(e`CREATE TABLE IF NOT EXISTS ${e(a)}("_id"text PRIMARY KEY)`),await(e`CREATE OR REPLACE TRIGGER ${e(Na+a)} AFTER INSERT OR UPDATE OR DELETE ON ${e(a)} EXECUTE FUNCTION ${e(Na)}()`)}))),n}),(a=>a.unlisten().catch((()=>0))),s,i,(()=>o?.release?.()),3,e,"getSql")};export{ga as createPostgresPersister};
1
+ 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),f=Object,D=a=>f.getPrototypeOf(a),P=f.entries,U=f.keys,F=f.freeze,M=(a=[])=>f.fromEntries(a),G=(...a)=>f.assign({},...a),B=(a,t)=>(delete a[t],a),j=(a,t)=>R(P(a),(([a,e])=>t(e,a))),x=a=>f.values(a),X=a=>l(U(a)),Y=a=>(a=>!i(a)&&r(D(a),(a=>a==f.prototype||i(D(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",Ia=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")};export{Ia as createPostgresPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),r=t=>a(t)==n,c=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),w=a=>a.length,y=async a=>s.all(a),E=a=>{throw Error(a)},u=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),d=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),R=a=>0==w(a),T=(a,t)=>a.filter(t),p=(a,...t)=>a.push(...t),N="_",g="_id",v="SELECT",C="WHERE",O="TABLE",L="ALTER "+O,S="DELETE FROM",h=v+"*FROM",I=a=>`"${a.replace(/"/g,'""')}"`,$=a=>d(A(a,((a,t)=>"$"+(t+1))),e),f=(a,t)=>a?.has(t)??!1,m=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),D=Object,M=a=>D.getPrototypeOf(a),P=D.entries,U=D.keys,_=D.freeze,F=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>A(P(a),(([a,e])=>t(e,a))),x=a=>D.values(a),B=a=>w(U(a)),Y=a=>(a=>!i(a)&&o(M(a),(a=>a==D.prototype||i(M(a))),(()=>!0)))(a)&&0==B(a),X=a=>new Map(a),k=(a,t)=>a?.get(t),q=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),J=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),K=(a,t,e,n)=>(f(a,t)||J(a,t,e()),k(a,t)),z=X(),H=X(),Q=(a,t,e,n,s,r,l,w={},y=[])=>{let u,d,A,R=0,T=0,N=0;K(z,y,(()=>0)),K(H,y,(()=>[]));const[g,v,C,O,L]=((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]:E("Store type not supported by this Persister"))(l,a),S=t=>{(g&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},h=async a=>(2!=R&&(R=1,T++,await m((async()=>{try{const a=await t();c(a)?S(a):E("Content is not an array "+a)}catch(t){r?.(t),a&&L(a)}R=0}))),b),I=()=>(d&&(s(d),d=void 0),b),$=async a=>(1!=R&&(R=2,N++,await m((async()=>{try{await e(v,a)}catch(a){r?.(a)}R=0}))),b),f=()=>(o(A,a.delListener),A=void 0,b),m=async(...a)=>(p(k(H,y),...a),await(async()=>{if(!k(z,y)){for(J(z,y,1);!i((a=k(H,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}J(z,y,0)}var a})(),b),b={load:h,startAutoLoad:async a=>{await I().load(a);try{d=await n((async(a,t)=>{t||a?2!=R&&(R=1,T++,S(t??a),R=0):await h()}))}catch(a){r?.(a)}return b},stopAutoLoad:I,isAutoLoading:()=>!i(d),save:$,startAutoSave:async()=>(await f().save(),A=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&$(a)})),b),stopAutoSave:f,isAutoSaving:()=>!i(A),schedule:m,getStore:()=>a,destroy:()=>(k(H,y).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:N}),...w};return _(b)},V=a=>new Set(c(a)||i(a)?a:[a]),W=(a,t)=>a?.add(t),Z=(a,t,n,s,o)=>{const r=X();return[async()=>{r.clear(),A(await n(a,t),(({tn:a,cn:t})=>W(K(r,a,V),t)))},async(t,e)=>((a,t)=>f(k(r,a),t))(t,e)?F(T(A(await a(h+I(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,n,s,c,l,w=!1)=>{const E=V();j(s??{},(a=>A(U(a??{}),(a=>W(E,a)))));const u=m(E);if(!w&&l&&R(u)&&f(r,t))return await a("DROP "+O+I(t)),void J(r,t);const N=k(r,t),g=V(m(N));if(R(u)||(f(r,t)?await y(A([n,...u],(async(e,s)=>{b(g,e)||(await a(L+I(t)+"ADD"+I(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+I(t)+`(${I(n)})`),W(N,e))}))):(await a("CREATE "+O+I(t)+`(${I(n)}text PRIMARY KEY${d(A(u,(a=>e+I(a)+"json")))});`),J(r,t,V([n,...u])))),await y([...!w&&c?A(m(g),(async e=>{e!=n&&(await a(L+I(t)+"DROP"+I(e)),b(N,e))})):[]]),w)i(s)?await a(S+I(t)+C+" true"):await y(j(s,(async(e,s)=>{i(e)?await a(S+I(t)+C+I(n)+"=$1",[s]):R(u)||await aa(a,t,n,U(e),[s,...x(e)],o)})));else if(R(u))f(r,t)&&await a(S+I(t)+C+" true");else{const e=T(m(k(r,t)),(a=>a!=n)),i=[],c=[];j(s??{},((a,t)=>{p(i,t,...A(e,(t=>a?.[t]))),p(c,t)})),await aa(a,t,n,e,i,o),await a(S+I(t)+C+I(n)+`NOT IN(${$(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,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+I(t)+"("+I(n)+d(A(s,(a=>e+I(a))))+")VALUES"+ta(i,w(s)+1)+(o?"ON CONFLICT("+I(n)+")DO UPDATE SET"+d(A(s,(a=>I(a)+"=excluded."+I(a))),e):""),A(i,(a=>a??null))),ta=(a,t)=>d(u(w(a)/t,(a=>"("+d(u(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ea=(a,t,e,n,s,i,o,[r,c,l],w,y,E,u,d)=>{const[A,R,T,p]=Z(t,w,y,s,d),g=Q(a,(async()=>await p((async()=>{return await A(),a=(await R(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await p((async()=>{var t;await A(),await T(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>E,destroy:()=>(g.stopAutoLoad().stopAutoSave(),i(),g)},E);return g},na=(a,t,e,n,s,o,r,[c,l,[w,E,u]],d,A,R,p,v)=>{const[C,O,L,S]=Z(t,d,A,s,v),h=async(a,t)=>await y(q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await L(e,n,a[o],s,i,t)}))),I=async(a,t)=>E?await L(u,g,{[N]:a},!0,!0,t):null,$=Q(a,(async()=>await S((async()=>{await C();const a=await(async()=>F(T(await y(q(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>w?(await O(u,g))[N]:{})();return Y(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await C(),i(t)){const[t,e]=a();await h(t),await I(e)}else await h(t[0],!0),await I(t[1],!0)}))),e,n,s,r,{[p]:()=>R,destroy:()=>($.stopAutoLoad().stopAutoSave(),o(),$)},R);return $},sa="ColumnName",ia="store",oa="json",ra=ia+"TableName",ca=ia+"Id"+sa,la=ia+sa,wa="autoLoadIntervalSeconds",ya="rowId"+sa,Ea="tableId",ua="tableName",da="deleteEmptyColumns",Aa="deleteEmptyTable",Ra={mode:oa,[wa]:1},Ta={load:0,save:0,[ua]:t+"_values"},pa=(a,t,e,n,s)=>{const o=X();return j(a,((a,c)=>{const w=l(x(G(t,r(a)?{[e]:a}:a)),0,B(t));i(w[0])||n(c,w[0])||(s(c,w[0]),J(o,c,w))})),o},Na=t,ga=async(a,e,n,s,i)=>{const o=await(e.reserve?.());return((a,e,n,s,i,o,c,w,y,E,u="getDb")=>{const[d,,A,R]=(a=>{const e=(a=>G(Ra,r(a)?{[ra]:a}:a??{}))(a),n=e[wa];if(e.mode==oa){const a=e[ra]??t;return[1,n,[a,e[ca]??g,e[la]??ia],V(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,c=l(x(G(Ta,o)),0,B(Ta)),w=c[2],y=V(w),E=V(w);return[0,n,[pa(s,{[Ea]:null,[ya]:g},Ea,(a=>f(E,a)),(a=>W(y,a))),pa(i,{[ua]:null,[ya]:g,[da]:0,[Aa]:0},ua,((a,t)=>f(E,t)),((a,t)=>W(y,t))),c],y]})(e);return(d?ea:na)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(async a=>await s((t=>R.has(t)?a():0),R)),i,c,w,y,A,m(R),(async(a,t)=>await a(`${v} table_name tn,column_name cn FROM information_schema.columns ${C} table_schema='public'AND table_name IN(${$(t)})`,t)),E,u)})(a,n,o?.unsafe,(async(a,t)=>{const n=await e.listen(Na,(t=>a?.(t)));return await(e`CREATE OR REPLACE FUNCTION ${e(Na)}()RETURNS trigger AS $t$ BEGIN PERFORM pg_notify('${e.unsafe(Na)}',TG_TABLE_NAME);RETURN NULL;END;$t$ LANGUAGE plpgsql;`),await y(A(m(t),(async a=>{await(e`CREATE TABLE IF NOT EXISTS ${e(a)}("_id"text PRIMARY KEY)`),await(e`CREATE OR REPLACE TRIGGER ${e(Na+a)} AFTER INSERT OR UPDATE OR DELETE ON ${e(a)} EXECUTE FUNCTION ${e(Na)}()`)}))),n}),(a=>a.unlisten().catch((()=>0))),s,i,(()=>o?.release?.()),3,e,"getSql")};export{ga as createPostgresPersister};
1
+ 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),f=Object,D=a=>f.getPrototypeOf(a),P=f.entries,U=f.keys,F=f.freeze,M=(a=[])=>f.fromEntries(a),G=(...a)=>f.assign({},...a),B=(a,t)=>(delete a[t],a),j=(a,t)=>R(P(a),(([a,e])=>t(e,a))),x=a=>f.values(a),X=a=>l(U(a)),Y=a=>(a=>!i(a)&&r(D(a),(a=>a==f.prototype||i(D(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",Ia=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")};export{Ia as createPostgresPersister};
@@ -1 +1 @@
1
- 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,f="DELETE FROM",S=C+"*FROM",$="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),_=(a,t)=>a?.has(t)??!1,P=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)=>(_(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)},f=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),S=()=>(v&&(s(v),v=void 0),L),$=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:f,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await f()}))}catch(a){r?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!o(v),save:$,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!o(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),S().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)=>_(V(i,a),t))(t,e)?Y(A(p(await a(S+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=P(y);if(!w&&l&&E(d)&&_(i,t))return await a("DROP "+b+D(t)),void X(i,t);const v=V(i,t),m=ea(P(v));if(E(d)||(_(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(P(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(f+D(t)+T+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(f+D(t)+T+D(n)+"=$1",[s]):E(d)||await ra(a,t,n,B(e),[s,...H(e)],r)})));else if(E(d))_(i,t)&&await a(f+D(t)+T+" true");else{const e=A(P(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(f+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),f=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)}))),S=async(a,t)=>y?await b(d,N,{[m]:a},!0,!0,t):null,$=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 f(t),await S(e)}else await f(t[0],!0),await S(t[1],!0)}))),e,n,s,i,{[E]:()=>p,destroy:()=>($.stopAutoLoad().stopAutoSave(),r(),$)},p);return $},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=!1)=>((a,e,n,s,o,i,l,y,u,d="getDb",v)=>{let g,p,E;const[A,h,m,b]=(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=>_(u,a)),(a=>na(y,a))),Ta(r,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),i],y]})(e);return(A?ia:ca)(a,i?async(a,t)=>(i(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${I} d,${R} s,TOTAL_CHANGES() c FROM ${$}${I} JOIN ${$}${R}`);t==(g??=t)&&e==(p??=e)&&s==(E??=s)||(a(),g=t,p=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>b.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),g=p=E=null,o(t)}),l,(()=>0),y,m,P(b),(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)})(a,n,(async(a,t=[])=>e.execute(a,t).then((a=>a.rows?._array??[]))),(a=>{const t=new AbortController,n=e.onChange({rawTableNames:!0,signal:t.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),t}),(a=>a.abort()),s,o,1,e,"getPowerSync",i);export{ba as createPowerSyncPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(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",$="TABLE",b="ALTER "+$,O="DELETE FROM",f=C+"*FROM",S="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),_=(a,t)=>a?.has(t)??!1,P=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=>!o(a)&&r(j(a),(a=>a==U.prototype||o(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)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,i,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){i?.(t),a&&$(a)}p=0}))),L),f=()=>(v&&(s(v),v=void 0),L),S=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){i?.(a)}p=0}))),L),I=()=>(r(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);!o((a=q(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:O,startAutoLoad:async a=>{await f().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){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:S,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&S(a)})),L),stopAutoSave:I,isAutoSaving:()=>!o(g),schedule:R,getStore:()=>a,destroy:()=>(q(na,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const w=X();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(q(w,a),t))(t,e)?Y(A(p(await a(f+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])=>!o(a)&&!Q(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>p(B(a??{}),(a=>oa(v,a)))));const m=P(v);if(!d&&y&&E(m)&&_(w,t))return await a("DROP "+$+D(t)),void aa(w,t);const N=q(w,t),C=ia(P(N));if(E(m)||(_(w,t)?await u(p([n,...m],(async(e,s)=>{F(C,e)||(await a(b+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(N,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}${i} PRIMARY KEY${g(p(m,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...m])))),await u([...!d&&l?p(P(C),(async e=>{e!=n&&(await a(b+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)o(s)?await a(O+D(t)+T+" true"):await u(H(s,(async(e,s)=>{o(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)],r)})));else if(E(m))_(w,t)&&await a(O+D(t)+T+" true");else{const e=A(P(q(w,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{h(i,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),h(o,t)})),await ca(a,t,n,e,i,r),await a(O+D(t)+T+D(n)+`NOT IN(${M(o)})`,o)}},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,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e)),p(i,(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,i,o,[r,c,l],w,y,u,d,v,g)=>{const[p,E,A,h]=ra(t,w,y,s,v,g),N=sa(a,(async()=>await h((async()=>{return await p(),a=(await E(r,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(r,c,{[m]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,g,p,E,h,C,T,$)=>{const[b,O,f,S]=ra(t,v,g,s,h,C,T,$),I=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),R=async(a,t)=>y?await f(d,N,{[m]:a},!0,!0,t):null,L=sa(a,(async()=>await S((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)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await b(),o(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,r,{[E]:()=>p,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),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 i=X();return H(a,((a,r)=>{const l=w(z(k(t,c(a)?{[e]:a}:a)),0,K(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,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,r),[h,m,$,b]=(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],ia(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(z(k(ba,o)),0,K(ba)),l=r[2],y=ia(l),u=ia(l);return[0,n,[Oa(s,{[ma]:null,[ha]:N},ma,(a=>_(u,a)),(a=>oa(y,a))),Oa(i,{[Na]:null,[ha]:N,[Ca]:0,[Ta]:0},Na,((a,t)=>_(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(h?wa:ya)(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 ${S}${I} JOIN ${S}${R}`);t==g&&e==p&&n==E||(null!=g&&a(),g=t,p=e,E=n)}catch{}}),1e3*m),n=()=>{g=p=E=null,i(t)},r=s((t=>{b.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(b),(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,(a=>!0===a?1:!1===a?0:a),void 0)},Sa=(a,t,e,n,s,i=1)=>fa(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",i);export{Sa as createPowerSyncPersister};
@@ -1 +1 @@
1
- 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,f="DELETE FROM",S=C+"*FROM",$="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),_=(a,t)=>a?.has(t)??!1,P=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)=>(_(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)},f=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),S=()=>(v&&(s(v),v=void 0),L),$=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:f,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await f()}))}catch(a){r?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!o(v),save:$,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!o(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),S().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)=>_(V(i,a),t))(t,e)?Y(A(p(await a(S+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=P(y);if(!w&&l&&E(d)&&_(i,t))return await a("DROP "+b+D(t)),void X(i,t);const v=V(i,t),m=ea(P(v));if(E(d)||(_(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(P(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)o(s)?await a(f+D(t)+T+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(f+D(t)+T+D(n)+"=$1",[s]):E(d)||await ra(a,t,n,B(e),[s,...H(e)],r)})));else if(E(d))_(i,t)&&await a(f+D(t)+T+" true");else{const e=A(P(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(f+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),f=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)}))),S=async(a,t)=>y?await b(d,N,{[m]:a},!0,!0,t):null,$=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 f(t),await S(e)}else await f(t[0],!0),await S(t[1],!0)}))),e,n,s,i,{[E]:()=>p,destroy:()=>($.stopAutoLoad().stopAutoSave(),r(),$)},p);return $},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=!1)=>((a,e,n,s,o,i,l,y,u,d="getDb",v)=>{let g,p,E;const[A,h,m,b]=(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=>_(u,a)),(a=>na(y,a))),Ta(r,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),i],y]})(e);return(A?ia:ca)(a,i?async(a,t)=>(i(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${I} d,${R} s,TOTAL_CHANGES() c FROM ${$}${I} JOIN ${$}${R}`);t==(g??=t)&&e==(p??=e)&&s==(E??=s)||(a(),g=t,p=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>b.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),g=p=E=null,o(t)}),l,(()=>0),y,m,P(b),(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)})(a,n,(async(a,t=[])=>e.execute(a,t).then((a=>a.rows?._array??[]))),(a=>{const t=new AbortController,n=e.onChange({rawTableNames:!0,signal:t.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),t}),(a=>a.abort()),s,o,1,e,"getPowerSync",i);export{ba as createPowerSyncPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(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",$="TABLE",b="ALTER "+$,O="DELETE FROM",f=C+"*FROM",S="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),_=(a,t)=>a?.has(t)??!1,P=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=>!o(a)&&r(j(a),(a=>a==U.prototype||o(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)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(_(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,i,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){i?.(t),a&&$(a)}p=0}))),L),f=()=>(v&&(s(v),v=void 0),L),S=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){i?.(a)}p=0}))),L),I=()=>(r(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);!o((a=q(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:O,startAutoLoad:async a=>{await f().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){i?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!o(v),save:S,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&S(a)})),L),stopAutoSave:I,isAutoSaving:()=>!o(g),schedule:R,getStore:()=>a,destroy:()=>(q(na,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const w=X();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(q(w,a),t))(t,e)?Y(A(p(await a(f+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])=>!o(a)&&!Q(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>p(B(a??{}),(a=>oa(v,a)))));const m=P(v);if(!d&&y&&E(m)&&_(w,t))return await a("DROP "+$+D(t)),void aa(w,t);const N=q(w,t),C=ia(P(N));if(E(m)||(_(w,t)?await u(p([n,...m],(async(e,s)=>{F(C,e)||(await a(b+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(N,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}${i} PRIMARY KEY${g(p(m,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...m])))),await u([...!d&&l?p(P(C),(async e=>{e!=n&&(await a(b+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)o(s)?await a(O+D(t)+T+" true"):await u(H(s,(async(e,s)=>{o(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)],r)})));else if(E(m))_(w,t)&&await a(O+D(t)+T+" true");else{const e=A(P(q(w,t)),(a=>a!=n)),i=[],o=[];H(s??{},((a,t)=>{h(i,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),h(o,t)})),await ca(a,t,n,e,i,r),await a(O+D(t)+T+D(n)+`NOT IN(${M(o)})`,o)}},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,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e)),p(i,(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,i,o,[r,c,l],w,y,u,d,v,g)=>{const[p,E,A,h]=ra(t,w,y,s,v,g),N=sa(a,(async()=>await h((async()=>{return await p(),a=(await E(r,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(r,c,{[m]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,n,s,i,r,[c,l,[w,y,d]],v,g,p,E,h,C,T,$)=>{const[b,O,f,S]=ra(t,v,g,s,h,C,T,$),I=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await f(e,n,a[o],s,i,t)}))),R=async(a,t)=>y?await f(d,N,{[m]:a},!0,!0,t):null,L=sa(a,(async()=>await S((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)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await b(),o(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,r,{[E]:()=>p,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),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 i=X();return H(a,((a,r)=>{const l=w(z(k(t,c(a)?{[e]:a}:a)),0,K(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},fa=(a,e,n,s,o,r,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,r),[h,m,$,b]=(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],ia(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(z(k(ba,o)),0,K(ba)),l=r[2],y=ia(l),u=ia(l);return[0,n,[Oa(s,{[ma]:null,[ha]:N},ma,(a=>_(u,a)),(a=>oa(y,a))),Oa(i,{[Na]:null,[ha]:N,[Ca]:0,[Ta]:0},Na,((a,t)=>_(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(h?wa:ya)(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 ${S}${I} JOIN ${S}${R}`);t==g&&e==p&&n==E||(null!=g&&a(),g=t,p=e,E=n)}catch{}}),1e3*m),n=()=>{g=p=E=null,i(t)},r=s((t=>{b.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,$,P(b),(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,(a=>!0===a?1:!1===a?0:a),void 0)},Sa=(a,t,e,n,s,i=1)=>fa(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",i);export{Sa as createPowerSyncPersister};
@@ -1 +1 @@
1
- const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=t=>Array.isArray(t),s=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,n)=>{return e(n)?(s=t,r=a,s?.delete(r),t):t?.set(a,n);var s,r},p=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)||d(t,e,a()),h(t,e)},u=g(),v=g(),w=t=>t.headers.get("ETag"),f=(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,E,m,D,P]=((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]:s("Store type not supported by this Persister"))(w,t),j=e=>{(O&&n(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();n(t)?j(t):s("Content is not an array "+t)}catch(e){g?.(e),t&&P(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(E,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=m();D(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"}),n=w(a);e(A)||e(n)||n==A||(A=n,t())}),1e3*f)),(e=>t(e)),C,1,{getUrls:()=>[i,g]})};export{f as createRemotePersister};
1
+ const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=t=>Array.isArray(t),s=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,n)=>{return e(n)?(s=t,r=a,s?.delete(r),t):t?.set(a,n);var s,r},u=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)||p(t,e,a()),d(t,e)},v=h(),w=h(),f=t=>t.headers.get("ETag"),C=(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,E,m,D,P]=((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]:s("Store type not supported by this Persister"))(h,t),j=e=>{(O&&n(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();n(t)?j(t):s("Content is not an array "+t)}catch(e){g?.(e),t&&P(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(E,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=m();D(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"}),n=f(a);e(S)||e(n)||n==S||(S=n,t())}),1e3*C)),(e=>t(e)),A,1,{getUrls:()=>[i,h]})};export{C as createRemotePersister};
@@ -1 +1 @@
1
- const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=t=>Array.isArray(t),s=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,n)=>{return e(n)?(s=t,r=a,s?.delete(r),t):t?.set(a,n);var s,r},p=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)||d(t,e,a()),h(t,e)},u=g(),v=g(),w=t=>t.headers.get("ETag"),f=(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,E,m,D,P]=((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]:s("Store type not supported by this Persister"))(w,t),j=e=>{(O&&n(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();n(t)?j(t):s("Content is not an array "+t)}catch(e){g?.(e),t&&P(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(E,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=m();D(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"}),n=w(a);e(A)||e(n)||n==A||(A=n,t())}),1e3*f)),(e=>t(e)),C,1,{getUrls:()=>[i,g]})};export{f as createRemotePersister};
1
+ const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=t=>Array.isArray(t),s=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,n)=>{return e(n)?(s=t,r=a,s?.delete(r),t):t?.set(a,n);var s,r},u=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)||p(t,e,a()),d(t,e)},v=h(),w=h(),f=t=>t.headers.get("ETag"),C=(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,E,m,D,P]=((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]:s("Store type not supported by this Persister"))(h,t),j=e=>{(O&&n(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();n(t)?j(t):s("Content is not an array "+t)}catch(e){g?.(e),t&&P(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(E,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=m();D(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"}),n=f(a);e(S)||e(n)||n==S||(S=n,t())}),1e3*C)),(e=>t(e)),A,1,{getUrls:()=>[i,h]})};export{C as createRemotePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(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)},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",T="TABLE",$="ALTER "+T,b="DELETE FROM",R=C+"*FROM",S="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,B=F.freeze,J=(a=[])=>F.fromEntries(a),Y=(...a)=>F.assign({},...a),q=(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),z=a=>new Map(a),K=(a,t)=>a?.get(t),Q=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(M(a,t)||W(a,t,e()),K(a,t)),Z=z(),aa=z(),ta=(a,t,e,n,s,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,T]=((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),$=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},b=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?$(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),R=()=>(p&&(s(p),p=void 0),L),S=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(K(aa,y),...a),await(async()=>{if(!K(Z,y)){for(W(Z,y,1);!o((a=K(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:b,startAutoLoad:async a=>{await R().load(a);try{p=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,$(t??a),E=0):await b()}))}catch(a){i?.(a)}return L},stopAutoLoad:R,isAutoLoading:()=>!o(p),save:S,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&S(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(K(aa,y).splice(0,void 0),R().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return B(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=z();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(K(r,a),t))(t,e)?J(g(E(await a(R+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();q(s??{},(a=>E(U(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+T+D(t)),void W(r,t);const p=K(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([n,...d],(async(e,s)=>{j(h,e)||(await a($+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(p,e))}))):(await a("CREATE "+T+D(t)+`(${D(n)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),W(r,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a($+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(s)?await a(b+D(t)+O+" true"):await u(q(s,(async(e,s)=>{o(e)?await a(b+D(t)+O+D(n)+"=$1",[s]):A(d)||await ia(a,t,n,U(e),[s,...G(e)],i)})));else if(A(d))M(r,t)&&await a(b+D(t)+O+" true");else{const e=g(P(K(r,t)),(a=>a!=n)),o=[],c=[];q(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(b+D(t)+O+D(n)+`NOT IN(${_(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,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+v(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+v(E(s,(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,n,s,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=sa(t,w,y,s,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,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,T,$]=sa(t,p,v,s,m),b=async(a,t)=>await u(Q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t)}))),R=async(a,t)=>y?await T(d,N,{[h]:a},!0,!0,t):null,S=ta(a,(async()=>await $((async()=>{await C();const a=await(async()=>J(g(await u(Q(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 $((async()=>{if(await C(),o(t)){const[t,e]=a();await b(t),await R(e)}else await b(t[0],!0),await R(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(S.stopAutoLoad().stopAutoSave(),i(),S)},E);return S},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,n,s)=>{const i=z();return q(a,((a,r)=>{const l=w(G(Y(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||n(r,l[0])||(s(r,l[0]),W(i,r,l))})),i},Ta=(a,e,n,s,o,r)=>((a,e,n,s,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const[g,m,h,T]=(a=>{const e=(a=>Y(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(G(Y(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>na(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(g?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${f} d,${I} s,TOTAL_CHANGES() c FROM ${S}${f} JOIN ${S}${I}`);t==(v??=t)&&e==(E??=e)&&s==(A??=s)||(a(),v=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),v=E=A=null,o(t)}),l,(()=>0),y,h,P(T),(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)})(a,s,(async(a,t=[])=>n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>e.capi.sqlite3_update_hook(n,((t,e,n,s)=>a(s)),0)),(()=>e.capi.sqlite3_update_hook(n,(()=>0),0)),o,r,3,n);export{Ta as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(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)},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",T="ALTER "+O,b="DELETE FROM",R=$+"*FROM",S="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,x=j.keys,B=j.freeze,J=(a=[])=>j.fromEntries(a),Y=(...a)=>j.assign({},...a),q=(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(x(a)),z=a=>(a=>!o(a)&&r(k(a),(a=>a==j.prototype||o(k(a))),(()=>!0)))(a)&&0==V(a),K=JSON.stringify,Q=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)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(M(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,p,v,E=0,A=0,g=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]])=>!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),T=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},b=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),R=()=>(p&&(s(p),p=void 0),L),S=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(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:b,startAutoLoad:async a=>{await R().load(a);try{p=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await b()}))}catch(a){i?.(a)}return L},stopAutoLoad:R,isAutoLoading:()=>!o(p),save:S,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&S(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),R().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return B(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const w=W();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>M(X(w,a),t))(t,e)?J(g(E(await a(R+D(t)),(a=>{return[a[e],l?(t=q(a,e),n=l,J(G(t,((a,t)=>[t,n(a,t)])))):q(a,e)];var t,n})),(([a,t])=>!o(a)&&!z(t)))):{},async(t,n,s,l,y,d=!1)=>{const p=ia();G(s??{},(a=>E(x(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([n,...h],(async(e,s)=>{F($,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(N,e))}))):(await a("CREATE "+O+D(t)+`(${D(n)}${i} PRIMARY KEY${v(E(h,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...h])))),await u([...!d&&l?E(P($),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)o(s)?await a(b+D(t)+C+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(b+D(t)+C+D(n)+"=$1",[s]):A(h)||await ca(a,t,n,x(e),[s,...c?E(H(e),c):H(e)],r)})));else if(A(h))M(w,t)&&await a(b+D(t)+C+" true");else{const e=g(P(X(w,t)),(a=>a!=n)),i=[],o=[];G(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(b+D(t)+C+D(n)+`NOT IN(${_(o)})`,o)}},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,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+v(E(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+v(E(s,(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,n,s,i,o,[r,c,l],w,y,u,d,p,v)=>{const[E,A,g,m]=ra(t,w,y,s,p,v),N=sa(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",Q(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,K(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,n,s,i,r,[c,l,[w,y,d]],p,v,E,A,m,$,C,O)=>{const[T,b,R,S]=ra(t,p,v,s,m,$,C,O),f=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await R(e,n,a[o],s,i,t)}))),I=async(a,t)=>y?await R(d,N,{[h]:a},!0,!0,t):null,L=sa(a,(async()=>await S((async()=>{await T();const a=await(async()=>J(g(await u(Z(c,(async([a,t],e)=>[a,await b(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>w?(await b(d,N))[h]:{})();return z(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await T(),o(t)){const[t,e]=a();await f(t),await I(e)}else await f(t[0],!0),await I(t[1],!0)}))),e,n,s,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},Ta={load:0,save:0,[Na]:t+"_values"},ba=(a,t,e,n,s)=>{const i=W();return G(a,((a,r)=>{const l=w(H(Y(t,c(a)?{[e]:a}:a)),0,V(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},Ra=(a,e,n,s,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const g=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,h,O,T]=(a=>{const e=(a=>Y(Oa,c(a)?{[va]:a}:a??{}))(a),n=e[ga];if(e.mode==pa){const a=e[va]??t;return[1,n,[a,e[Ea]??N,e[Aa]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(H(Y(Ta,o)),0,V(Ta)),l=r[2],y=ia(l),u=ia(l);return[0,n,[ba(s,{[ha]:null,[ma]:N},ha,(a=>M(u,a)),(a=>oa(y,a))),ba(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>M(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(m?wa:ya)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await g(`${$} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${S}${f} JOIN ${S}${I}`);t==v&&e==E&&n==A||(null!=v&&a(),v=t,E=e,A=n)}catch{}}),1e3*h),n=()=>{v=E=A=null,i(t)},r=s((t=>{T.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,O,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)),u,d,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Sa=(a,t,e,n,s,i)=>Ra(a,n,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,n,s)=>a(s)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),s,i,3,e);export{Sa as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(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)},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",T="TABLE",$="ALTER "+T,b="DELETE FROM",R=C+"*FROM",S="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,B=F.freeze,J=(a=[])=>F.fromEntries(a),Y=(...a)=>F.assign({},...a),q=(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),z=a=>new Map(a),K=(a,t)=>a?.get(t),Q=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,n)=>(M(a,t)||W(a,t,e()),K(a,t)),Z=z(),aa=z(),ta=(a,t,e,n,s,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,T]=((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),$=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},b=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?$(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),R=()=>(p&&(s(p),p=void 0),L),S=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(K(aa,y),...a),await(async()=>{if(!K(Z,y)){for(W(Z,y,1);!o((a=K(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),L),L={load:b,startAutoLoad:async a=>{await R().load(a);try{p=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,$(t??a),E=0):await b()}))}catch(a){i?.(a)}return L},stopAutoLoad:R,isAutoLoading:()=>!o(p),save:S,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&S(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(K(aa,y).splice(0,void 0),R().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return B(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,i)=>{const r=z();return[async()=>{r.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(K(r,a),t))(t,e)?J(g(E(await a(R+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();q(s??{},(a=>E(U(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+T+D(t)),void W(r,t);const p=K(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([n,...d],(async(e,s)=>{j(h,e)||(await a($+D(t)+"ADD"+D(e)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),na(p,e))}))):(await a("CREATE "+T+D(t)+`(${D(n)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),W(r,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a($+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(s)?await a(b+D(t)+O+" true"):await u(q(s,(async(e,s)=>{o(e)?await a(b+D(t)+O+D(n)+"=$1",[s]):A(d)||await ia(a,t,n,U(e),[s,...G(e)],i)})));else if(A(d))M(r,t)&&await a(b+D(t)+O+" true");else{const e=g(P(K(r,t)),(a=>a!=n)),o=[],c=[];q(s??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,n,e,o,i),await a(b+D(t)+O+D(n)+`NOT IN(${_(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,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+v(E(s,(a=>e+D(a))))+")VALUES"+oa(i,y(s)+1)+(o?"ON CONFLICT("+D(n)+")DO UPDATE SET"+v(E(s,(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,n,s,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=sa(t,w,y,s,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,n,s,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,n,s,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,T,$]=sa(t,p,v,s,m),b=async(a,t)=>await u(Q(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t)}))),R=async(a,t)=>y?await T(d,N,{[h]:a},!0,!0,t):null,S=ta(a,(async()=>await $((async()=>{await C();const a=await(async()=>J(g(await u(Q(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 $((async()=>{if(await C(),o(t)){const[t,e]=a();await b(t),await R(e)}else await b(t[0],!0),await R(t[1],!0)}))),e,n,s,r,{[A]:()=>E,destroy:()=>(S.stopAutoLoad().stopAutoSave(),i(),S)},E);return S},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,n,s)=>{const i=z();return q(a,((a,r)=>{const l=w(G(Y(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||n(r,l[0])||(s(r,l[0]),W(i,r,l))})),i},Ta=(a,e,n,s,o,r)=>((a,e,n,s,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const[g,m,h,T]=(a=>{const e=(a=>Y(Na,c(a)?{[ua]:a}:a??{}))(a),n=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,n,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(G(Y(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>na(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>na(y,t))),r],y]})(e);return(g?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${f} d,${I} s,TOTAL_CHANGES() c FROM ${S}${f} JOIN ${S}${I}`);t==(v??=t)&&e==(E??=e)&&s==(A??=s)||(a(),v=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),v=E=A=null,o(t)}),l,(()=>0),y,h,P(T),(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)})(a,s,(async(a,t=[])=>n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>e.capi.sqlite3_update_hook(n,((t,e,n,s)=>a(s)),0)),(()=>e.capi.sqlite3_update_hook(n,(()=>0),0)),o,r,3,n);export{Ta as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=clearInterval,o=a=>null==a,r=(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)},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",T="ALTER "+O,b="DELETE FROM",R=$+"*FROM",S="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,x=j.keys,B=j.freeze,J=(a=[])=>j.fromEntries(a),Y=(...a)=>j.assign({},...a),q=(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(x(a)),z=a=>(a=>!o(a)&&r(k(a),(a=>a==j.prototype||o(k(a))),(()=>!0)))(a)&&0==V(a),K=JSON.stringify,Q=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)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(M(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,p,v,E=0,A=0,g=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]])=>!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),T=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},b=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),R=()=>(p&&(s(p),p=void 0),L),S=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(na,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(na,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:b,startAutoLoad:async a=>{await R().load(a);try{p=await n((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await b()}))}catch(a){i?.(a)}return L},stopAutoLoad:R,isAutoLoading:()=>!o(p),save:S,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&S(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(X(na,y).splice(0,void 0),R().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return B(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,n,s,i,r,c,l)=>{const w=W();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>M(X(w,a),t))(t,e)?J(g(E(await a(R+D(t)),(a=>{return[a[e],l?(t=q(a,e),n=l,J(G(t,((a,t)=>[t,n(a,t)])))):q(a,e)];var t,n})),(([a,t])=>!o(a)&&!z(t)))):{},async(t,n,s,l,y,d=!1)=>{const p=ia();G(s??{},(a=>E(x(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([n,...h],(async(e,s)=>{F($,e)||(await a(T+D(t)+"ADD"+D(e)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),oa(N,e))}))):(await a("CREATE "+O+D(t)+`(${D(n)}${i} PRIMARY KEY${v(E(h,(a=>e+D(a)+i)))});`),aa(w,t,ia([n,...h])))),await u([...!d&&l?E(P($),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)o(s)?await a(b+D(t)+C+" true"):await u(G(s,(async(e,s)=>{o(e)?await a(b+D(t)+C+D(n)+"=$1",[s]):A(h)||await ca(a,t,n,x(e),[s,...c?E(H(e),c):H(e)],r)})));else if(A(h))M(w,t)&&await a(b+D(t)+C+" true");else{const e=g(P(X(w,t)),(a=>a!=n)),i=[],o=[];G(s??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,n,e,i,r),await a(b+D(t)+C+D(n)+`NOT IN(${_(o)})`,o)}},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,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+v(E(s,(a=>e+D(a))))+")VALUES"+la(i,y(s)+1)+(o?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+v(E(s,(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,n,s,i,o,[r,c,l],w,y,u,d,p,v)=>{const[E,A,g,m]=ra(t,w,y,s,p,v),N=sa(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",Q(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,K(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,n,s,i,r,[c,l,[w,y,d]],p,v,E,A,m,$,C,O)=>{const[T,b,R,S]=ra(t,p,v,s,m,$,C,O),f=async(a,t)=>await u(Z(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await R(e,n,a[o],s,i,t)}))),I=async(a,t)=>y?await R(d,N,{[h]:a},!0,!0,t):null,L=sa(a,(async()=>await S((async()=>{await T();const a=await(async()=>J(g(await u(Z(c,(async([a,t],e)=>[a,await b(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>w?(await b(d,N))[h]:{})();return z(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await T(),o(t)){const[t,e]=a();await f(t),await I(e)}else await f(t[0],!0),await I(t[1],!0)}))),e,n,s,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},Ta={load:0,save:0,[Na]:t+"_values"},ba=(a,t,e,n,s)=>{const i=W();return G(a,((a,r)=>{const l=w(H(Y(t,c(a)?{[e]:a}:a)),0,V(t));o(l[0])||n(r,l[0])||(s(r,l[0]),aa(i,r,l))})),i},Ra=(a,e,n,s,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const g=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,h,O,T]=(a=>{const e=(a=>Y(Oa,c(a)?{[va]:a}:a??{}))(a),n=e[ga];if(e.mode==pa){const a=e[va]??t;return[1,n,[a,e[Ea]??N,e[Aa]??da],ia(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=e,r=w(H(Y(Ta,o)),0,V(Ta)),l=r[2],y=ia(l),u=ia(l);return[0,n,[ba(s,{[ha]:null,[ma]:N},ha,(a=>M(u,a)),(a=>oa(y,a))),ba(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>M(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(m?wa:ya)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await g(`${$} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${S}${f} JOIN ${S}${I}`);t==v&&e==E&&n==A||(null!=v&&a(),v=t,E=e,A=n)}catch{}}),1e3*h),n=()=>{v=E=A=null,i(t)},r=s((t=>{T.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),l,(()=>0),y,O,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)),u,d,"",p,(a=>!0===a?1:!1===a?0:a),void 0)},Sa=(a,t,e,n,s,i)=>Ra(a,n,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,n,s)=>a(s)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),s,i,3,e);export{Sa as createSqliteWasmPersister};
@@ -1 +1 @@
1
- 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",f="TABLE",T="ALTER "+f,$="DELETE FROM",S=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),_=(a,t)=>a?.has(t)??!1,P=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),z=a=>y(B(a)),K=a=>(a=>!r(a)&&o(x(a),(a=>a==j.prototype||r(x(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,i,c,w={},y=[])=>{let u,v,p,E=0,g=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[h,N,C,O,f]=((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),T=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},$=async a=>(2!=E&&(E=1,g++,await b((async()=>{try{const a=await t();l(a)?T(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&f(a)}E=0}))),L),S=()=>(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(V(aa,y),...a),await(async()=>{if(!V(Z,y)){for(X(Z,y,1);!r((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(Z,y,0)}var a})(),L),L={load:$,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,T(t??a),E=0):await $()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,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:()=>(V(aa,y).splice(0,void 0),S().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=Q();return[async()=>{o.clear(),E(await n(a,t),(({tn:a,cn:t})=>na(q(o,a,ea),t)))},async(t,e)=>((a,t)=>_(V(o,a),t))(t,e)?Y(A(E(await a(S+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>E(B(a??{}),(a=>na(y,a)))));const d=P(y);if(!w&&l&&g(d)&&_(o,t))return await a("DROP "+f+D(t)),void X(o,t);const v=V(o,t),h=ea(P(v));if(g(d)||(_(o,t)?await u(E([n,...d],(async(e,s)=>{F(h,e)||(await a(T+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 "+f+D(t)+`(${D(n)}text PRIMARY KEY${p(E(d,(a=>e+D(a)+"json")))});`),X(o,t,ea([n,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=n&&(await a(T+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)r(s)?await a($+D(t)+O+" true"):await u(G(s,(async(e,s)=>{r(e)?await a($+D(t)+O+D(n)+"=$1",[s]):g(d)||await ia(a,t,n,B(e),[s,...H(e)],i)})));else if(g(d))_(o,t)&&await a($+D(t)+O+" true");else{const e=A(P(V(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($+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,T]=sa(t,v,p,s,m),$=async(a,t)=>await u(W(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await f(e,n,a[r],s,i,t)}))),S=async(a,t)=>y?await f(d,N,{[h]:a},!0,!0,t):null,I=ta(a,(async()=>await T((async()=>{await C();const a=await(async()=>Y(A(await u(W(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await C(),r(t)){const[t,e]=a();await $(t),await S(e)}else await $(t[0],!0),await S(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=Q();return G(a,((a,o)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));r(l[0])||n(o,l[0])||(s(o,l[0]),X(i,o,l))})),i},fa="change",Ta=(a,e,n,r,o)=>((a,e,n,s,r,o,l,y,u,d="getDb",v)=>{let p,E,g;const[A,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,z(Ca)),l=o[2],y=ea(l),u=ea(l);return[0,n,[Oa(s,{[ga]:null,[Ea]:N},ga,(a=>_(u,a)),(a=>na(y,a))),Oa(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>na(y,t))),o],y]})(e);return(A?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(C+` ${R} d,${b} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${b}`);t==(p??=t)&&e==(E??=e)&&s==(g??=s)||(a(),p=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),p=E=g=null,r(t)}),l,(()=>0),y,h,P(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)})(a,n,(async(a,t=[])=>{return await(n=(n,s)=>e.all(a,t,((a,t)=>a?s(a):n(t))),new s(n));var n}),(a=>{const t=(t,e,n)=>a(n);return e.on(fa,t),t}),(a=>e.off(fa,a)),r,o,3,e);export{Ta as createSqlite3Persister};
1
+ 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,T="DELETE FROM",S=$+"*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),_=(a,t)=>a?.has(t)??!1,P=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))),z=a=>U.values(a),K=a=>y(J(a)),Q=a=>(a=>!r(a)&&o(j(a),(a=>a==U.prototype||r(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)=>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)=>(_(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),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]])=>!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),f=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,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),S=()=>(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(na,y),...a),await(async()=>{if(!q(ea,y)){for(aa(ea,y,1);!r((a=q(na,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 S().load(a);try{v=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,f(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:S,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:()=>(q(na,y).splice(0,void 0),S().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=X();return[async()=>{w.clear(),E(await n(a,t),(({tn:a,cn:t})=>ra(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>_(q(w,a),t))(t,e)?k(A(E(await a(S+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)&&!Q(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ia();H(s??{},(a=>E(J(a??{}),(a=>ra(v,a)))));const h=P(v);if(!d&&y&&g(h)&&_(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const N=q(w,t),$=ia(P(N));if(g(h)||(_(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(P($),(async e=>{e!=n&&(await a(f+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)r(s)?await a(T+D(t)+C+" true"):await u(H(s,(async(e,s)=>{r(e)?await a(T+D(t)+C+D(n)+"=$1",[s]):g(h)||await ca(a,t,n,J(e),[s,...c?E(z(e),c):z(e)],o)})));else if(g(h))_(w,t)&&await a(T+D(t)+C+" true");else{const e=A(P(q(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(T+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",W(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,V(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,T,S,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 S(e,n,a[r],s,i,t)}))),b=async(a,t)=>y?await S(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 T(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>w?(await T(d,N))[h]:{})();return Q(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"},Ta=(a,t,e,n,s)=>{const i=X();return H(a,((a,o)=>{const l=w(z(x(t,c(a)?{[e]:a}:a)),0,K(t));r(l[0])||n(o,l[0])||(s(o,l[0]),aa(i,o,l))})),i},Sa=(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,O,f]=(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(z(x(fa,r)),0,K(fa)),l=o[2],y=ia(l),u=ia(l);return[0,n,[Ta(s,{[ha]:null,[ma]:N},ha,(a=>_(u,a)),(a=>ra(y,a))),Ta(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>_(u,t)),((a,t)=>ra(y,t))),o],y]})(e);return(m?wa:ya)(a,A,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await A(`${$} ${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,O,P(f),(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)),u,d,"",v,(a=>!0===a?1:!1===a?0:a),void 0)},Ia="change",Ra=(a,t,e,n,i)=>Sa(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,3,t);export{Ra as createSqlite3Persister};