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
- "use strict";const t=t=>typeof t,e="",a=t(e),s=t=>null==t,o=(t,e,a)=>s(t)?a?.():e(t),r=e=>t(e)==a,n=t=>Array.isArray(t),i=t=>t.length,c=t=>{throw Error(t)},y=Object,d=t=>y.getPrototypeOf(t),g=y.keys,p=y.freeze,h=t=>(t=>!s(t)&&o(d(t),(t=>t==y.prototype||s(d(t))),(()=>!0)))(t)&&0==(t=>i(g(t)))(t),l=t=>JSON.stringify(t,((t,e)=>e instanceof Map?y.fromEntries([...e]):e)),v=JSON.parse,u="/store",w=t=>new Map(t),f=(t,e)=>t?.get(e),C=(t,e,a)=>{return s(a)?(o=t,r=e,o?.delete(r),t):t?.set(e,a);var o,r},S=(t,e,a,s)=>{var o,r;return o=t,r=e,o?.has(r)||C(t,e,a()),f(t,e)},A=w(),P=w(),b="message";exports.createPartyKitPersister=(t,a,y,d)=>{const{host:g,room:w}=a.partySocketOptions,{storeProtocol:m="https",storePath:L=u,messagePrefix:M=e}={...r(y)?{storeProtocol:y}:y},O=m+"://"+g+"/parties/"+a.name+"/"+w+L,E=async t=>await(await fetch(O,{...t?{method:"PUT",body:l(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,r,i,y,d,g={},l=[])=>{let v,u,w,b=0,m=0,L=0;S(A,l,(()=>0)),S(P,l,(()=>[]));const[M,O,E,T,j]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!h(t)||!h(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!h(t)||!h(e),e.setContent]:c("Store type not supported by this Persister"))(d,t),k=e=>{(M&&n(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=b&&(b=1,m++,await z((async()=>{try{const t=await e();n(t)?k(t):c("Content is not an array "+t)}catch(e){y?.(e),t&&j(t)}b=0}))),F),D=()=>(u&&(i(u),u=void 0),F),J=async t=>(1!=b&&(b=2,L++,await z((async()=>{try{await a(O,t)}catch(t){y?.(t)}b=0}))),F),N=()=>(o(w,t.delListener),w=void 0,F),z=async(...t)=>(((t,...e)=>{t.push(...e)})(f(P,l),...t),await(async()=>{if(!f(A,l)){for(C(A,l,1);!s((t=f(P,l),v=t.shift()));)try{await v()}catch(t){y?.(t)}C(A,l,0)}var t})(),F),F={load:x,startAutoLoad:async t=>{await D().load(t);try{u=await r((async(t,e)=>{e||t?2!=b&&(b=1,m++,k(e??t),b=0):await x()}))}catch(t){y?.(t)}return F},stopAutoLoad:D,isAutoLoading:()=>!s(u),save:J,startAutoSave:async()=>(await N().save(),w=t.addDidFinishTransactionListener((()=>{const t=E();T(t)&&J(t)})),F),stopAutoSave:N,isAutoSaving:()=>!s(w),schedule:z,getStore:()=>t,destroy:()=>(f(P,l).splice(0,void 0),D().stopAutoSave()),getStats:()=>({loads:m,saves:L}),...g};return p(F)})(t,(async()=>await E()),(async(t,e)=>{var s;e?a.send(M+"s"+(r(s=e)?s:l(s))):await E(t())}),(t=>{const e=e=>o(((t,e)=>{const a=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[a],v((s=e,o=a+1,s.slice(o,void 0)))]:void 0;var s,o})(M,e.data),(([e,a])=>{"s"==e&&t(void 0,a)}));return a.addEventListener(b,e),e}),(t=>{a.removeEventListener(b,t)}),d,1,{getConnection:()=>a})};
1
+ "use strict";const t=t=>typeof t,e="",a=t(e),s=t=>null==t,o=(t,e,a)=>s(t)?a?.():e(t),r=e=>t(e)==a,n=t=>Array.isArray(t),i=t=>t.length,c=t=>{throw Error(t)},y=Object,d=t=>y.getPrototypeOf(t),g=y.keys,p=y.freeze,h=t=>(t=>!s(t)&&o(d(t),(t=>t==y.prototype||s(d(t))),(()=>!0)))(t)&&0==(t=>i(g(t)))(t),l=JSON.stringify,v=JSON.parse,u=t=>l(t,((t,e)=>e instanceof Map?y.fromEntries([...e]):e)),w="/store",f=t=>new Map(t),C=(t,e)=>t?.get(e),S=(t,e,a)=>{return s(a)?(o=t,r=e,o?.delete(r),t):t?.set(e,a);var o,r},A=(t,e,a,s)=>{var o,r;return o=t,r=e,o?.has(r)||S(t,e,a()),C(t,e)},P=f(),b=f(),m="message";exports.createPartyKitPersister=(t,a,y,d)=>{const{host:g,room:l}=a.partySocketOptions,{storeProtocol:f="https",storePath:L=w,messagePrefix:M=e}={...r(y)?{storeProtocol:y}:y},O=f+"://"+g+"/parties/"+a.name+"/"+l+L,E=async t=>await(await fetch(O,{...t?{method:"PUT",body:u(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,r,i,y,d,g={},l=[])=>{let v,u,w,f=0,m=0,L=0;A(P,l,(()=>0)),A(b,l,(()=>[]));const[M,O,E,T,j]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!h(t)||!h(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!h(t)||!h(e),e.setContent]:c("Store type not supported by this Persister"))(d,t),k=e=>{(M&&n(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=f&&(f=1,m++,await z((async()=>{try{const t=await e();n(t)?k(t):c("Content is not an array "+t)}catch(e){y?.(e),t&&j(t)}f=0}))),F),D=()=>(u&&(i(u),u=void 0),F),J=async t=>(1!=f&&(f=2,L++,await z((async()=>{try{await a(O,t)}catch(t){y?.(t)}f=0}))),F),N=()=>(o(w,t.delListener),w=void 0,F),z=async(...t)=>(((t,...e)=>{t.push(...e)})(C(b,l),...t),await(async()=>{if(!C(P,l)){for(S(P,l,1);!s((t=C(b,l),v=t.shift()));)try{await v()}catch(t){y?.(t)}S(P,l,0)}var t})(),F),F={load:x,startAutoLoad:async t=>{await D().load(t);try{u=await r((async(t,e)=>{e||t?2!=f&&(f=1,m++,k(e??t),f=0):await x()}))}catch(t){y?.(t)}return F},stopAutoLoad:D,isAutoLoading:()=>!s(u),save:J,startAutoSave:async()=>(await N().save(),w=t.addDidFinishTransactionListener((()=>{const t=E();T(t)&&J(t)})),F),stopAutoSave:N,isAutoSaving:()=>!s(w),schedule:z,getStore:()=>t,destroy:()=>(C(b,l).splice(0,void 0),D().stopAutoSave()),getStats:()=>({loads:m,saves:L}),...g};return p(F)})(t,(async()=>await E()),(async(t,e)=>{var s;e?a.send(M+"s"+(r(s=e)?s:u(s))):await E(t())}),(t=>{const e=e=>o(((t,e)=>{const a=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[a],v((s=e,o=a+1,s.slice(o,void 0)))]:void 0;var s,o})(M,e.data),(([e,a])=>{"s"==e&&t(void 0,a)}));return a.addEventListener(m,e),e}),(t=>{a.removeEventListener(m,t)}),d,1,{getConnection:()=>a})};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,r=a=>null==a,i=(a,t,e)=>r(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),g=(a,...t)=>a.push(...t),y=Object,h=y.entries,f=(a=[])=>y.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?y.fromEntries([...t]):t)),d=JSON.parse,x=(e,s,n)=>e+s+(a(n)==t?n:S(n)),P=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},m=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),D="hasStore",b=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),R=async(a,t="")=>!!await a.get(t+D),C=async(a,t="")=>{const s={},n={};return m(await a.list(),((a,r)=>i(P(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=r}else"v"==a&&(n[t]=r)})))),[s,n]},T=async(a,t,e)=>a.party.broadcast(x(a.config.messagePrefix,"s",t),e),v=async(a,t,n,i)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+D]:1},h=[],f=[];await l(u(t[0],(async(t,s)=>r(t)?!n&&await a.canDelTable(s,i)&&((a,...t)=>a.unshift(...t))(f,O(w,e,s)):await a.canSetTable(s,n,i)&&await l(u(t,(async(t,o)=>r(t)?!n&&await a.canDelRow(s,o,i)&&g(f,O(w,e,s,o)):await a.canSetRow(s,o,n,i)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=O(w,e,...f);r(t)?!n&&await a.canDelCell(...f,i)&&g(h,u):await a.canSetCell(...f,t,n,i,await c.get(u))&&(y[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;r(t)?!n&&await a.canDelValue(e,i)&&g(h,s):await a.canSetValue(e,t,n,i,await c.get(s))&&(y[s]=t)}))),0!=o(f)&&m(await c.list(),(a=>f.every((t=>!s(a,t)||g(h,a)&&0)))),await c.delete(h),await c.put(y)},O=(a,t,...e)=>x(a,t,c(S(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});exports.TinyBasePartyKitServer=class{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 R(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 i(P(e,a,1),(async([a,e])=>{"s"==a&&await R(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,r,i){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}},exports.broadcastChanges=T,exports.hasStoreInStorage=R,exports.loadStoreFromStorage=C;
1
+ "use strict";const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,r=a=>null==a,i=(a,t,e)=>r(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),g=(a,...t)=>a.push(...t),y=Object,h=y.entries,f=(a=[])=>y.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,x=a=>S(a,((a,t)=>t instanceof Map?y.fromEntries([...t]):t)),P=(e,s,n)=>e+s+(a(n)==t?n:x(n)),m=(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))),b="hasStore",R=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),C=async(a,t="")=>!!await a.get(t+b),T=async(a,t="")=>{const s={},n={};return D(await a.list(),((a,r)=>i(m(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=r}else"v"==a&&(n[t]=r)})))),[s,n]},v=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),O=async(a,t,n,i)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+b]:1},h=[],f=[];await l(u(t[0],(async(t,s)=>r(t)?!n&&await a.canDelTable(s,i)&&((a,...t)=>a.unshift(...t))(f,V(w,e,s)):await a.canSetTable(s,n,i)&&await l(u(t,(async(t,o)=>r(t)?!n&&await a.canDelRow(s,o,i)&&g(f,V(w,e,s,o)):await a.canSetRow(s,o,n,i)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=V(w,e,...f);r(t)?!n&&await a.canDelCell(...f,i)&&g(h,u):await a.canSetCell(...f,t,n,i,await c.get(u))&&(y[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;r(t)?!n&&await a.canDelValue(e,i)&&g(h,s):await a.canSetValue(e,t,n,i,await c.get(s))&&(y[s]=t)}))),0!=o(f)&&D(await c.list(),(a=>f.every((t=>!s(a,t)||g(h,a)&&0)))),await c.delete(h),await c.put(y)},V=(a,t,...e)=>P(a,t,c(x(e),1,-1)),E=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});exports.TinyBasePartyKitServer=class{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 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?x(await T(t,s)):"")}return E(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await i(m(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,r,i){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}},exports.broadcastChanges=v,exports.hasStoreInStorage=C,exports.loadStoreFromStorage=T;
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,r=a=>null==a,i=(a,t,e)=>r(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),g=(a,...t)=>a.push(...t),y=Object,h=y.entries,f=(a=[])=>y.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?y.fromEntries([...t]):t)),d=JSON.parse,x=(e,s,n)=>e+s+(a(n)==t?n:S(n)),P=(a,t,e)=>{const n=o(a);return s(t,a)?[t[n],(e?d:String)(c(t,n+1))]:void 0},m=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),D="hasStore",b=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),R=async(a,t="")=>!!await a.get(t+D),C=async(a,t="")=>{const s={},n={};return m(await a.list(),((a,r)=>i(P(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=r}else"v"==a&&(n[t]=r)})))),[s,n]},T=async(a,t,e)=>a.party.broadcast(x(a.config.messagePrefix,"s",t),e),v=async(a,t,n,i)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+D]:1},h=[],f=[];await l(u(t[0],(async(t,s)=>r(t)?!n&&await a.canDelTable(s,i)&&((a,...t)=>a.unshift(...t))(f,O(w,e,s)):await a.canSetTable(s,n,i)&&await l(u(t,(async(t,o)=>r(t)?!n&&await a.canDelRow(s,o,i)&&g(f,O(w,e,s,o)):await a.canSetRow(s,o,n,i)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=O(w,e,...f);r(t)?!n&&await a.canDelCell(...f,i)&&g(h,u):await a.canSetCell(...f,t,n,i,await c.get(u))&&(y[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;r(t)?!n&&await a.canDelValue(e,i)&&g(h,s):await a.canSetValue(e,t,n,i,await c.get(s))&&(y[s]=t)}))),0!=o(f)&&m(await c.list(),(a=>f.every((t=>!s(a,t)||g(h,a)&&0)))),await c.delete(h),await c.put(y)},O=(a,t,...e)=>x(a,t,c(S(e),1,-1)),V=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});exports.TinyBasePartyKitServer=class{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 R(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 i(P(e,a,1),(async([a,e])=>{"s"==a&&await R(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,r,i){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}},exports.broadcastChanges=T,exports.hasStoreInStorage=R,exports.loadStoreFromStorage=C;
1
+ "use strict";const a=a=>typeof a,t=a(""),e="t",s=(a,t)=>a.startsWith(t),n=Promise,r=a=>null==a,i=(a,t,e)=>r(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),g=(a,...t)=>a.push(...t),y=Object,h=y.entries,f=(a=[])=>y.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,x=a=>S(a,((a,t)=>t instanceof Map?y.fromEntries([...t]):t)),P=(e,s,n)=>e+s+(a(n)==t?n:x(n)),m=(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))),b="hasStore",R=f(w(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),C=async(a,t="")=>!!await a.get(t+b),T=async(a,t="")=>{const s={},n={};return D(await a.list(),((a,r)=>i(m(t,a),(([a,t])=>{if(a==e){const[a,e,n]=d("["+t+"]");p(p(s,a,f),e,f)[n]=r}else"v"==a&&(n[t]=r)})))),[s,n]},v=async(a,t,e)=>a.party.broadcast(P(a.config.messagePrefix,"s",t),e),O=async(a,t,n,i)=>{const c=a.party.storage,w=a.config.storagePrefix,y={[w+b]:1},h=[],f=[];await l(u(t[0],(async(t,s)=>r(t)?!n&&await a.canDelTable(s,i)&&((a,...t)=>a.unshift(...t))(f,V(w,e,s)):await a.canSetTable(s,n,i)&&await l(u(t,(async(t,o)=>r(t)?!n&&await a.canDelRow(s,o,i)&&g(f,V(w,e,s,o)):await a.canSetRow(s,o,n,i)&&await l(u(t,(async(t,l)=>{const f=[s,o,l],u=V(w,e,...f);r(t)?!n&&await a.canDelCell(...f,i)&&g(h,u):await a.canSetCell(...f,t,n,i,await c.get(u))&&(y[u]=t)}))))))))),await l(u(t[1],(async(t,e)=>{const s=w+"v"+e;r(t)?!n&&await a.canDelValue(e,i)&&g(h,s):await a.canSetValue(e,t,n,i,await c.get(s))&&(y[s]=t)}))),0!=o(f)&&D(await c.list(),(a=>f.every((t=>!s(a,t)||g(h,a)&&0)))),await c.delete(h),await c.put(y)},V=(a,t,...e)=>P(a,t,c(x(e),1,-1)),E=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});exports.TinyBasePartyKitServer=class{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 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?x(await T(t,s)):"")}return E(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await i(m(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,r,i){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}},exports.broadcastChanges=v,exports.hasStoreInStorage=C,exports.loadStoreFromStorage=T;
@@ -0,0 +1 @@
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,_=a=>u(R(a,((a,t)=>"$"+(t+1))),e),S=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],P=(a,t)=>a?.delete(t),b=Object,f=a=>b.getPrototypeOf(a),D=b.entries,U=b.keys,F=b.freeze,M=(a=[])=>b.fromEntries(a),G=(...a)=>b.assign({},...a),B=(a,t)=>(delete a[t],a),j=(a,t)=>R(D(a),(([a,e])=>t(e,a))),x=a=>b.values(a),X=a=>l(U(a)),Y=a=>(a=>!i(a)&&r(f(a),(a=>a==b.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)?(P(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,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}))),P),m=()=>(u&&(s(u),u=void 0),P),_=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),P),S=()=>(r(R,a.delListener),R=void 0,P),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})(),P),P={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 P},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:_,startAutoSave:async()=>(await S().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&_(a)})),P),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(P)},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)=>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)=>{P(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)),P(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))S(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(${_(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,_]=ea(t,u,R,s,p,O,L,v),S=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,P=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,o,{[N]:()=>A,destroy:()=>(P.stopAutoLoad().stopAutoSave(),r(),P)},A);return P},oa="ColumnName",ca="store",Ea="json",la=ca+"TableName",wa=ca+"Id"+oa,ya=ca+oa,da="autoLoadIntervalSeconds",ua="rowId"+oa,Ra="tableId",Aa="tableName",Ta="deleteEmptyColumns",Na="deleteEmptyTable",ga={mode:Ea,[da]:1},Ca={load:0,save:0,[Aa]:t+"_values"},pa=(a,t,e,n,s)=>{const r=W();return j(a,((a,c)=>{const l=E(x(G(t,o(a)?{[e]:a}:a)),0,X(t));i(l[0])||n(c,l[0])||(s(c,l[0]),K(r,c,l))})),r},Oa=t,La=/^([cd]:)(.+)/,va=t+"_data",$a=t+"_table";exports.createPglitePersister=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,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=>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: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])=>{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");
@@ -0,0 +1 @@
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,_=a=>u(R(a,((a,t)=>"$"+(t+1))),e),S=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],P=(a,t)=>a?.delete(t),b=Object,f=a=>b.getPrototypeOf(a),D=b.entries,U=b.keys,F=b.freeze,M=(a=[])=>b.fromEntries(a),G=(...a)=>b.assign({},...a),B=(a,t)=>(delete a[t],a),j=(a,t)=>R(D(a),(([a,e])=>t(e,a))),x=a=>b.values(a),X=a=>l(U(a)),Y=a=>(a=>!i(a)&&r(f(a),(a=>a==b.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)?(P(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,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}))),P),m=()=>(u&&(s(u),u=void 0),P),_=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),P),S=()=>(r(R,a.delListener),R=void 0,P),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})(),P),P={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 P},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:_,startAutoSave:async()=>(await S().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&_(a)})),P),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(P)},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)=>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)=>{P(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)),P(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))S(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(${_(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,_]=ea(t,u,R,s,p,O,L,v),S=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,P=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,o,{[N]:()=>A,destroy:()=>(P.stopAutoLoad().stopAutoSave(),r(),P)},A);return P},oa="ColumnName",ca="store",Ea="json",la=ca+"TableName",wa=ca+"Id"+oa,ya=ca+oa,da="autoLoadIntervalSeconds",ua="rowId"+oa,Ra="tableId",Aa="tableName",Ta="deleteEmptyColumns",Na="deleteEmptyTable",ga={mode:Ea,[da]:1},Ca={load:0,save:0,[Aa]:t+"_values"},pa=(a,t,e,n,s)=>{const r=W();return j(a,((a,c)=>{const l=E(x(G(t,o(a)?{[e]:a}:a)),0,X(t));i(l[0])||n(c,l[0])||(s(c,l[0]),K(r,c,l))})),r},Oa=t,La=/^([cd]:)(.+)/,va=t+"_data",$a=t+"_table";exports.createPglitePersister=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,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=>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: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])=>{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");
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),r=t=>a(t)==s,c=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),w=a=>a.length,y=async a=>n.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,P=a=>D.getPrototypeOf(a),M=D.entries,U=D.keys,_=D.freeze,F=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>A(M(a),(([a,e])=>t(e,a))),x=a=>D.values(a),B=a=>w(U(a)),Y=a=>(a=>!i(a)&&o(P(a),(a=>a==D.prototype||i(P(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,s)=>(f(a,t)||J(a,t,e()),k(a,t)),z=X(),H=X(),Q=(a,t,e,s,n,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&&(n(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 s((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,s,n,o)=>{const r=X();return[async()=>{r.clear(),A(await s(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},s=e,delete t[s],t)];var t,s})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,s,n,c,l,w=!1)=>{const E=V();j(n??{},(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([s,...u],(async(e,n)=>{b(g,e)||(await a(L+I(t)+"ADD"+I(e)+(0==n?"text":"json")),0==n&&await a("CREATE UNIQUE INDEX pk ON "+I(t)+`(${I(s)})`),W(N,e))}))):(await a("CREATE "+O+I(t)+`(${I(s)}text PRIMARY KEY${d(A(u,(a=>e+I(a)+"json")))});`),J(r,t,V([s,...u])))),await y([...!w&&c?A(m(g),(async e=>{e!=s&&(await a(L+I(t)+"DROP"+I(e)),b(N,e))})):[]]),w)i(n)?await a(S+I(t)+C+" true"):await y(j(n,(async(e,n)=>{i(e)?await a(S+I(t)+C+I(s)+"=$1",[n]):R(u)||await aa(a,t,s,U(e),[n,...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!=s)),i=[],c=[];j(n??{},((a,t)=>{p(i,t,...A(e,(t=>a?.[t]))),p(c,t)})),await aa(a,t,s,e,i,o),await a(S+I(t)+C+I(s)+`NOT IN(${$(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},aa=async(a,t,s,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+I(t)+"("+I(s)+d(A(n,(a=>e+I(a))))+")VALUES"+ta(i,w(n)+1)+(o?"ON CONFLICT("+I(s)+")DO UPDATE SET"+d(A(n,(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,s,n,i,o,[r,c,l],w,y,E,u,d)=>{const[A,R,T,p]=Z(t,w,y,n,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,s,n,o,{[u]:()=>E,destroy:()=>(g.stopAutoLoad().stopAutoSave(),i(),g)},E);return g},sa=(a,t,e,s,n,o,r,[c,l,[w,E,u]],d,A,R,p,v)=>{const[C,O,L,S]=Z(t,d,A,n,v),h=async(a,t)=>await y(q(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await L(e,s,a[o],n,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,s,n,r,{[p]:()=>R,destroy:()=>($.stopAutoLoad().stopAutoSave(),o(),$)},R);return $},na="ColumnName",ia="store",oa="json",ra=ia+"TableName",ca=ia+"Id"+na,la=ia+na,wa="autoLoadIntervalSeconds",ya="rowId"+na,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,s,n)=>{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])||s(c,w[0])||(n(c,w[0]),J(o,c,w))})),o},Na=t;exports.createPostgresPersister=async(a,e,s,n,i)=>{const o=await(e.reserve?.());return((a,e,s,n,i,o,c,w,y,E,u="getDb")=>{const[d,,A,R]=(a=>{const e=(a=>G(Ra,r(a)?{[ra]:a}:a??{}))(a),s=e[wa];if(e.mode==oa){const a=e[ra]??t;return[1,s,[a,e[ca]??g,e[la]??ia],V(a)]}const{tables:{load:n={},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,s,[pa(n,{[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:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(async a=>await n((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,s,o?.unsafe,(async(a,t)=>{const s=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)}()`)}))),s}),(a=>a.unlisten().catch((()=>0))),n,i,(()=>o?.release?.()),3,e,"getSql")};
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,S=a=>u(R(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),P=Object,f=a=>P.getPrototypeOf(a),D=P.entries,U=P.keys,F=P.freeze,M=(a=[])=>P.fromEntries(a),G=(...a)=>P.assign({},...a),B=(a,t)=>(delete a[t],a),j=(a,t)=>R(D(a),(([a,e])=>t(e,a))),x=a=>P.values(a),X=a=>l(U(a)),Y=a=>(a=>!i(a)&&r(f(a),(a=>a==P.prototype||i(f(a))),(()=>!0)))(a)&&0==X(a),q=JSON.stringify,H=JSON.parse,W=a=>new Map(a),k=(a,t)=>a?.get(t),J=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),K=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),V=(a,t,e,n)=>(_(a,t)||K(a,t,e()),k(a,t)),z=W(),Q=W(),Z=(a,t,e,n,s,o,E,l={},w=[])=>{let d,u,R,A=0,T=0,g=0;V(z,w,(()=>0)),V(Q,w,(()=>[]));const[C,p,O,L,v]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Y(a)||!Y(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Y(a)||!Y(t),t.setContent]:y("Store type not supported by this Persister"))(E,a),$=t=>{(C&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},I=async a=>(2!=A&&(A=1,T++,await h((async()=>{try{const a=await t();c(a)?$(a):y("Content is not an array "+a)}catch(t){o?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),S=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),b),_=()=>(r(R,a.delListener),R=void 0,b),h=async(...a)=>(N(k(Q,w),...a),await(async()=>{if(!k(z,w)){for(K(z,w,1);!i((a=k(Q,w),d=a.shift()));)try{await d()}catch(a){o?.(a)}K(z,w,0)}var a})(),b),b={load:I,startAutoLoad:async a=>{await m().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,$(t??a),A=0):await I()}))}catch(a){o?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:S,startAutoSave:async()=>(await _().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&S(a)})),b),stopAutoSave:_,isAutoSaving:()=>!i(R),schedule:h,getStore:()=>a,destroy:()=>(k(Q,w).splice(0,void 0),m().stopAutoSave()),getStats:()=>({loads:T,saves:g}),...l};return F(b)},aa=a=>new Set(c(a)||i(a)?a:[a]),ta=(a,t)=>a?.add(t),ea=(a,t,n,s,r,o,c,E)=>{const l=W();return[async()=>{l.clear(),R(await n(a,t),(({tn:a,cn:t})=>ta(V(l,a,aa),t)))},async(t,e)=>((a,t)=>_(k(l,a),t))(t,e)?M(T(R(await a(I+m(t)),(a=>{return[a[e],E?(t=B(a,e),n=E,M(j(t,((a,t)=>[t,n(a,t)])))):B(a,e)];var t,n})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,n,s,E,y,d=!1)=>{const g=aa();j(s??{},(a=>R(U(a??{}),(a=>ta(g,a)))));const C=h(g);if(!d&&y&&A(C)&&_(l,t))return await a("DROP "+L+m(t)),void K(l,t);const p=k(l,t),I=aa(h(p));if(A(C)||(_(l,t)?await w(R([n,...C],(async(e,s)=>{b(I,e)||(await a(v+m(t)+"ADD"+m(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),ta(p,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}${r} PRIMARY KEY${u(R(C,(a=>e+m(a)+r)))});`),K(l,t,aa([n,...C])))),await w([...!d&&E?R(h(I),(async e=>{e!=n&&(await a(v+m(t)+"DROP"+m(e)),b(p,e))})):[]]),d)i(s)?await a($+m(t)+O+" true"):await w(j(s,(async(e,s)=>{i(e)?await a($+m(t)+O+m(n)+"=$1",[s]):A(C)||await na(a,t,n,U(e),[s,...c?R(x(e),c):x(e)],o)})));else if(A(C))_(l,t)&&await a($+m(t)+O+" true");else{const e=T(h(k(l,t)),(a=>a!=n)),i=[],r=[];j(s??{},((a,t)=>{N(i,t,...R(e,(t=>c?c(a?.[t]):a?.[t]))),N(r,t)})),await na(a,t,n,e,i,o),await a($+m(t)+O+m(n)+`NOT IN(${S(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},na=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+sa(i,l(s)+1)+(r?"":"ON CONFLICT("+m(n)+")DO UPDATE SET"+u(R(s,(a=>m(a)+"=excluded."+m(a))),e)),R(i,(a=>a??null))),sa=(a,t)=>u(d(l(a)/t,(a=>"("+u(d(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,u,R)=>{const[A,T,N,C]=ea(t,l,w,s,u,R),p=Z(a,(async()=>await C((async()=>{return await A(),a=(await T(o,c))[g]?.[E]??"null",H(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await C((async()=>{var t;await A(),await N(o,c,{[g]:{[E]:(t=a()??null,q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>(p.stopAutoLoad().stopAutoSave(),i(),p)},y);return p},ra=(a,t,e,n,s,r,o,[c,E,[l,y,d]],u,R,A,N,p,O,L,v)=>{const[$,I,m,S]=ea(t,u,R,s,p,O,L,v),_=async(a,t)=>await w(J(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await m(e,n,a[r],s,i,t)}))),h=async(a,t)=>y?await m(d,C,{[g]:a},!0,!0,t):null,b=Z(a,(async()=>await S((async()=>{await $();const a=await(async()=>M(T(await w(J(c,(async([a,t],e)=>[a,await I(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>l?(await I(d,C))[g]:{})();return Y(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await $(),i(t)){const[t,e]=a();await _(t),await h(e)}else await _(t[0],!0),await h(t[1],!0)}))),e,n,s,o,{[N]:()=>A,destroy:()=>(b.stopAutoLoad().stopAutoSave(),r(),b)},A);return b},oa="ColumnName",ca="store",Ea="json",la=ca+"TableName",wa=ca+"Id"+oa,ya=ca+oa,da="autoLoadIntervalSeconds",ua="rowId"+oa,Ra="tableId",Aa="tableName",Ta="deleteEmptyColumns",Na="deleteEmptyTable",ga={mode:Ea,[da]:1},Ca={load:0,save:0,[Aa]:t+"_values"},pa=(a,t,e,n,s)=>{const r=W();return j(a,((a,c)=>{const l=E(x(G(t,o(a)?{[e]:a}:a)),0,X(t));i(l[0])||n(c,l[0])||(s(c,l[0]),K(r,c,l))})),r},Oa=t,La=/^([cd]:)(.+)/,va=t+"_data",$a=t+"_table";exports.createPostgresPersister=async(a,e,n,s,i)=>{const c=await(e.reserve?.());return((a,e,n,s,i,c,l,y,d,u,A="getDb")=>{const T=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,c),[N,,g,L]=(a=>{const e=(a=>G(ga,o(a)?{[la]:a}:a??{}))(a),n=e[da];if(e.mode==Ea){const a=e[la]??t;return[1,n,[a,e[wa]??C,e[ya]??ca],aa(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=E(x(G(Ca,r)),0,X(Ca)),l=c[2],w=aa(l),y=aa(l);return[0,n,[pa(s,{[Ra]:null,[ua]:C},Ra,(a=>_(y,a)),(a=>ta(w,a))),pa(i,{[Aa]:null,[ua]:C,[Ta]:0,[Na]:0},Aa,((a,t)=>_(y,t)),((a,t)=>ta(w,t))),c],w]})(e),v=async a=>{await T(`CREATE OR REPLACE TRIGGER ${m(va+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${m(a)} EXECUTE FUNCTION ${va}()`)};return(N?ia:ra)(a,T,(async a=>{await T(`CREATE OR REPLACE FUNCTION ${$a}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${Oa}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await T(`CREATE EVENT TRIGGER ${$a} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${$a}();`)}catch{}return await T(`CREATE OR REPLACE FUNCTION ${va}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${Oa}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(L),(async a=>{await T(`CREATE TABLE IF NOT EXISTS ${m(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(Oa,(async t=>{return await r((e=t,n=La,e?.match(n)),(async([,t,e])=>{_(L,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,l,y,d,g,h(L),(async(a,t)=>await a(`${p} table_name tn,column_name cn FROM information_schema.columns ${O} table_schema='public'AND table_name IN(${S(t)})`,t)),u,A,"text",0,(a=>q(a)),(a=>H(a)))})(a,n,c?.unsafe,(async(a,t)=>e.listen(a,t)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>c?.release?.()),3,e,"getSql")};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),r=t=>a(t)==s,c=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),w=a=>a.length,y=async a=>n.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,P=a=>D.getPrototypeOf(a),M=D.entries,U=D.keys,_=D.freeze,F=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>A(M(a),(([a,e])=>t(e,a))),x=a=>D.values(a),B=a=>w(U(a)),Y=a=>(a=>!i(a)&&o(P(a),(a=>a==D.prototype||i(P(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,s)=>(f(a,t)||J(a,t,e()),k(a,t)),z=X(),H=X(),Q=(a,t,e,s,n,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&&(n(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 s((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,s,n,o)=>{const r=X();return[async()=>{r.clear(),A(await s(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},s=e,delete t[s],t)];var t,s})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,s,n,c,l,w=!1)=>{const E=V();j(n??{},(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([s,...u],(async(e,n)=>{b(g,e)||(await a(L+I(t)+"ADD"+I(e)+(0==n?"text":"json")),0==n&&await a("CREATE UNIQUE INDEX pk ON "+I(t)+`(${I(s)})`),W(N,e))}))):(await a("CREATE "+O+I(t)+`(${I(s)}text PRIMARY KEY${d(A(u,(a=>e+I(a)+"json")))});`),J(r,t,V([s,...u])))),await y([...!w&&c?A(m(g),(async e=>{e!=s&&(await a(L+I(t)+"DROP"+I(e)),b(N,e))})):[]]),w)i(n)?await a(S+I(t)+C+" true"):await y(j(n,(async(e,n)=>{i(e)?await a(S+I(t)+C+I(s)+"=$1",[n]):R(u)||await aa(a,t,s,U(e),[n,...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!=s)),i=[],c=[];j(n??{},((a,t)=>{p(i,t,...A(e,(t=>a?.[t]))),p(c,t)})),await aa(a,t,s,e,i,o),await a(S+I(t)+C+I(s)+`NOT IN(${$(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},aa=async(a,t,s,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+I(t)+"("+I(s)+d(A(n,(a=>e+I(a))))+")VALUES"+ta(i,w(n)+1)+(o?"ON CONFLICT("+I(s)+")DO UPDATE SET"+d(A(n,(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,s,n,i,o,[r,c,l],w,y,E,u,d)=>{const[A,R,T,p]=Z(t,w,y,n,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,s,n,o,{[u]:()=>E,destroy:()=>(g.stopAutoLoad().stopAutoSave(),i(),g)},E);return g},sa=(a,t,e,s,n,o,r,[c,l,[w,E,u]],d,A,R,p,v)=>{const[C,O,L,S]=Z(t,d,A,n,v),h=async(a,t)=>await y(q(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await L(e,s,a[o],n,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,s,n,r,{[p]:()=>R,destroy:()=>($.stopAutoLoad().stopAutoSave(),o(),$)},R);return $},na="ColumnName",ia="store",oa="json",ra=ia+"TableName",ca=ia+"Id"+na,la=ia+na,wa="autoLoadIntervalSeconds",ya="rowId"+na,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,s,n)=>{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])||s(c,w[0])||(n(c,w[0]),J(o,c,w))})),o},Na=t;exports.createPostgresPersister=async(a,e,s,n,i)=>{const o=await(e.reserve?.());return((a,e,s,n,i,o,c,w,y,E,u="getDb")=>{const[d,,A,R]=(a=>{const e=(a=>G(Ra,r(a)?{[ra]:a}:a??{}))(a),s=e[wa];if(e.mode==oa){const a=e[ra]??t;return[1,s,[a,e[ca]??g,e[la]??ia],V(a)]}const{tables:{load:n={},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,s,[pa(n,{[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:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(async a=>await n((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,s,o?.unsafe,(async(a,t)=>{const s=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)}()`)}))),s}),(a=>a.unlisten().catch((()=>0))),n,i,(()=>o?.release?.()),3,e,"getSql")};
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,i=a=>null==a,r=(a,t,e)=>i(a)?e?.():t(a),o=t=>a(t)==n,c=a=>Array.isArray(a),E=(a,t,e)=>a.slice(t,e),l=a=>a.length,w=async a=>s.all(a),y=a=>{throw Error(a)},d=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),u=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==l(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),g="_",C="_id",p="SELECT",O="WHERE",L="TABLE",v="ALTER "+L,$="DELETE FROM",I=p+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,S=a=>u(R(a,((a,t)=>"$"+(t+1))),e),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),P=Object,f=a=>P.getPrototypeOf(a),D=P.entries,U=P.keys,F=P.freeze,M=(a=[])=>P.fromEntries(a),G=(...a)=>P.assign({},...a),B=(a,t)=>(delete a[t],a),j=(a,t)=>R(D(a),(([a,e])=>t(e,a))),x=a=>P.values(a),X=a=>l(U(a)),Y=a=>(a=>!i(a)&&r(f(a),(a=>a==P.prototype||i(f(a))),(()=>!0)))(a)&&0==X(a),q=JSON.stringify,H=JSON.parse,W=a=>new Map(a),k=(a,t)=>a?.get(t),J=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),K=(a,t,e)=>i(e)?(b(a,t),a):a?.set(t,e),V=(a,t,e,n)=>(_(a,t)||K(a,t,e()),k(a,t)),z=W(),Q=W(),Z=(a,t,e,n,s,o,E,l={},w=[])=>{let d,u,R,A=0,T=0,g=0;V(z,w,(()=>0)),V(Q,w,(()=>[]));const[C,p,O,L,v]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Y(a)||!Y(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Y(a)||!Y(t),t.setContent]:y("Store type not supported by this Persister"))(E,a),$=t=>{(C&&c(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},I=async a=>(2!=A&&(A=1,T++,await h((async()=>{try{const a=await t();c(a)?$(a):y("Content is not an array "+a)}catch(t){o?.(t),a&&v(a)}A=0}))),b),m=()=>(u&&(s(u),u=void 0),b),S=async a=>(1!=A&&(A=2,g++,await h((async()=>{try{await e(p,a)}catch(a){o?.(a)}A=0}))),b),_=()=>(r(R,a.delListener),R=void 0,b),h=async(...a)=>(N(k(Q,w),...a),await(async()=>{if(!k(z,w)){for(K(z,w,1);!i((a=k(Q,w),d=a.shift()));)try{await d()}catch(a){o?.(a)}K(z,w,0)}var a})(),b),b={load:I,startAutoLoad:async a=>{await m().load(a);try{u=await n((async(a,t)=>{t||a?2!=A&&(A=1,T++,$(t??a),A=0):await I()}))}catch(a){o?.(a)}return b},stopAutoLoad:m,isAutoLoading:()=>!i(u),save:S,startAutoSave:async()=>(await _().save(),R=a.addDidFinishTransactionListener((()=>{const a=O();L(a)&&S(a)})),b),stopAutoSave:_,isAutoSaving:()=>!i(R),schedule:h,getStore:()=>a,destroy:()=>(k(Q,w).splice(0,void 0),m().stopAutoSave()),getStats:()=>({loads:T,saves:g}),...l};return F(b)},aa=a=>new Set(c(a)||i(a)?a:[a]),ta=(a,t)=>a?.add(t),ea=(a,t,n,s,r,o,c,E)=>{const l=W();return[async()=>{l.clear(),R(await n(a,t),(({tn:a,cn:t})=>ta(V(l,a,aa),t)))},async(t,e)=>((a,t)=>_(k(l,a),t))(t,e)?M(T(R(await a(I+m(t)),(a=>{return[a[e],E?(t=B(a,e),n=E,M(j(t,((a,t)=>[t,n(a,t)])))):B(a,e)];var t,n})),(([a,t])=>!i(a)&&!Y(t)))):{},async(t,n,s,E,y,d=!1)=>{const g=aa();j(s??{},(a=>R(U(a??{}),(a=>ta(g,a)))));const C=h(g);if(!d&&y&&A(C)&&_(l,t))return await a("DROP "+L+m(t)),void K(l,t);const p=k(l,t),I=aa(h(p));if(A(C)||(_(l,t)?await w(R([n,...C],(async(e,s)=>{b(I,e)||(await a(v+m(t)+"ADD"+m(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(n)})`),ta(p,e))}))):(await a("CREATE "+L+m(t)+`(${m(n)}${r} PRIMARY KEY${u(R(C,(a=>e+m(a)+r)))});`),K(l,t,aa([n,...C])))),await w([...!d&&E?R(h(I),(async e=>{e!=n&&(await a(v+m(t)+"DROP"+m(e)),b(p,e))})):[]]),d)i(s)?await a($+m(t)+O+" true"):await w(j(s,(async(e,s)=>{i(e)?await a($+m(t)+O+m(n)+"=$1",[s]):A(C)||await na(a,t,n,U(e),[s,...c?R(x(e),c):x(e)],o)})));else if(A(C))_(l,t)&&await a($+m(t)+O+" true");else{const e=T(h(k(l,t)),(a=>a!=n)),i=[],r=[];j(s??{},((a,t)=>{N(i,t,...R(e,(t=>c?c(a?.[t]):a?.[t]))),N(r,t)})),await na(a,t,n,e,i,o),await a($+m(t)+O+m(n)+`NOT IN(${S(r)})`,r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},na=async(a,t,n,s,i,r=0)=>await a("INSERT "+(r?"OR REPLACE ":"")+"INTO"+m(t)+"("+m(n)+u(R(s,(a=>e+m(a))))+")VALUES"+sa(i,l(s)+1)+(r?"":"ON CONFLICT("+m(n)+")DO UPDATE SET"+u(R(s,(a=>m(a)+"=excluded."+m(a))),e)),R(i,(a=>a??null))),sa=(a,t)=>u(d(l(a)/t,(a=>"("+u(d(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ia=(a,t,e,n,s,i,r,[o,c,E],l,w,y,d,u,R)=>{const[A,T,N,C]=ea(t,l,w,s,u,R),p=Z(a,(async()=>await C((async()=>{return await A(),a=(await T(o,c))[g]?.[E]??"null",H(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await C((async()=>{var t;await A(),await N(o,c,{[g]:{[E]:(t=a()??null,q(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>y,destroy:()=>(p.stopAutoLoad().stopAutoSave(),i(),p)},y);return p},ra=(a,t,e,n,s,r,o,[c,E,[l,y,d]],u,R,A,N,p,O,L,v)=>{const[$,I,m,S]=ea(t,u,R,s,p,O,L,v),_=async(a,t)=>await w(J(E,(async([e,n,s,i],r)=>{t&&!(r in a)||await m(e,n,a[r],s,i,t)}))),h=async(a,t)=>y?await m(d,C,{[g]:a},!0,!0,t):null,b=Z(a,(async()=>await S((async()=>{await $();const a=await(async()=>M(T(await w(J(c,(async([a,t],e)=>[a,await I(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>l?(await I(d,C))[g]:{})();return Y(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await S((async()=>{if(await $(),i(t)){const[t,e]=a();await _(t),await h(e)}else await _(t[0],!0),await h(t[1],!0)}))),e,n,s,o,{[N]:()=>A,destroy:()=>(b.stopAutoLoad().stopAutoSave(),r(),b)},A);return b},oa="ColumnName",ca="store",Ea="json",la=ca+"TableName",wa=ca+"Id"+oa,ya=ca+oa,da="autoLoadIntervalSeconds",ua="rowId"+oa,Ra="tableId",Aa="tableName",Ta="deleteEmptyColumns",Na="deleteEmptyTable",ga={mode:Ea,[da]:1},Ca={load:0,save:0,[Aa]:t+"_values"},pa=(a,t,e,n,s)=>{const r=W();return j(a,((a,c)=>{const l=E(x(G(t,o(a)?{[e]:a}:a)),0,X(t));i(l[0])||n(c,l[0])||(s(c,l[0]),K(r,c,l))})),r},Oa=t,La=/^([cd]:)(.+)/,va=t+"_data",$a=t+"_table";exports.createPostgresPersister=async(a,e,n,s,i)=>{const c=await(e.reserve?.());return((a,e,n,s,i,c,l,y,d,u,A="getDb")=>{const T=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,c),[N,,g,L]=(a=>{const e=(a=>G(ga,o(a)?{[la]:a}:a??{}))(a),n=e[da];if(e.mode==Ea){const a=e[la]??t;return[1,n,[a,e[wa]??C,e[ya]??ca],aa(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=E(x(G(Ca,r)),0,X(Ca)),l=c[2],w=aa(l),y=aa(l);return[0,n,[pa(s,{[Ra]:null,[ua]:C},Ra,(a=>_(y,a)),(a=>ta(w,a))),pa(i,{[Aa]:null,[ua]:C,[Ta]:0,[Na]:0},Aa,((a,t)=>_(y,t)),((a,t)=>ta(w,t))),c],w]})(e),v=async a=>{await T(`CREATE OR REPLACE TRIGGER ${m(va+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${m(a)} EXECUTE FUNCTION ${va}()`)};return(N?ia:ra)(a,T,(async a=>{await T(`CREATE OR REPLACE FUNCTION ${$a}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${Oa}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await T(`CREATE EVENT TRIGGER ${$a} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${$a}();`)}catch{}return await T(`CREATE OR REPLACE FUNCTION ${va}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${Oa}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(L),(async a=>{await T(`CREATE TABLE IF NOT EXISTS ${m(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(Oa,(async t=>{return await r((e=t,n=La,e?.match(n)),(async([,t,e])=>{_(L,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,l,y,d,g,h(L),(async(a,t)=>await a(`${p} table_name tn,column_name cn FROM information_schema.columns ${O} table_schema='public'AND table_name IN(${S(t)})`,t)),u,A,"text",0,(a=>q(a)),(a=>H(a)))})(a,n,c?.unsafe,(async(a,t)=>e.listen(a,t)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>c?.release?.()),3,e,"getSql")};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",b="TABLE",O="ALTER "+b,S="DELETE FROM",f=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),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>p(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!i(a)&&o(x(a),(a=>a==j.prototype||i(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)=>i(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(P(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[m,N,C,T,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),O=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?O(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&b(a)}p=0}))),L),f=()=>(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=()=>(o(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);!i((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}X(Z,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await S()}))}catch(a){r?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!i(v),save:$,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!i(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||i(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,r)=>{const o=Q();return[async()=>{o.clear(),p(await n(a,t),(({tn:a,cn:t})=>na(q(o,a,ea),t)))},async(t,e)=>((a,t)=>P(V(o,a),t))(t,e)?Y(A(p(await a(f+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>p(B(a??{}),(a=>na(y,a)))));const d=_(y);if(!w&&l&&E(d)&&P(o,t))return await a("DROP "+b+D(t)),void X(o,t);const v=V(o,t),m=ea(_(v));if(E(d)||(P(o,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(o,t,ea([n,...d])))),await u([...!w&&c?p(_(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)i(s)?await a(S+D(t)+T+" true"):await u(G(s,(async(e,s)=>{i(e)?await a(S+D(t)+T+D(n)+"=$1",[s]):E(d)||await ra(a,t,n,B(e),[s,...H(e)],r)})));else if(E(d))P(o,t)&&await a(S+D(t)+T+" true");else{const e=A(_(V(o,t)),(a=>a!=n)),i=[],c=[];G(s??{},((a,t)=>{h(i,t,...p(e,(t=>a?.[t]))),h(c,t)})),await ra(a,t,n,e,i,r),await a(S+D(t)+T+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ra=async(a,t,n,s,r,i=!0)=>await a("INSERT "+(i?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+ia(r,y(s)+1)+(i?"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e):""),p(r,(a=>a??null))),ia=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),oa=(a,t,e,n,s,r,i,[o,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(o,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(o,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),r(),h)},u);return h},ca=(a,t,e,n,s,r,o,[c,l,[w,y,d]],v,g,p,E,h)=>{const[C,T,b,O]=sa(t,v,g,s,h),S=async(a,t)=>await u(W(l,(async([e,n,s,r],i)=>{t&&!(i in a)||await b(e,n,a[i],s,r,t)}))),f=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)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await C(),i(t)){const[t,e]=a();await S(t),await f(e)}else await S(t[0],!0),await f(t[1],!0)}))),e,n,s,o,{[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,o)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));i(l[0])||n(o,l[0])||(s(o,l[0]),X(r,o,l))})),r};exports.createPowerSyncPersister=(a,e,n,s,i,o=!1)=>((a,e,n,s,i,o,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:i={}}=e,o=w(H(k(Ca,i)),0,z(Ca)),l=o[2],y=ea(l),u=ea(l);return[0,n,[Ta(s,{[Ea]:null,[pa]:N},Ea,(a=>P(u,a)),(a=>na(y,a))),Ta(r,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>P(u,t)),((a,t)=>na(y,t))),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+` ${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,i(t)}),l,(()=>0),y,m,_(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,i,1,e,"getPowerSync",o);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",$="TABLE",b="ALTER "+$,O="DELETE FROM",S=C+"*FROM",f="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>p(x(a),(([a,e])=>t(e,a))),z=a=>U.values(a),K=a=>y(B(a)),Q=a=>(a=>!i(a)&&o(j(a),(a=>a==U.prototype||i(j(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),q=(a,t)=>a?.get(t),Z=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>i(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(P(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[m,N,C,T,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),b=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?b(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&$(a)}p=0}))),L),S=()=>(v&&(s(v),v=void 0),L),f=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){r?.(a)}p=0}))),L),I=()=>(o(g,a.delListener),g=void 0,L),R=async(...a)=>(h(q(na,y),...a),await(async()=>{if(!q(ea,y)){for(aa(ea,y,1);!i((a=q(na,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}aa(ea,y,0)}var a})(),L),L={load:O,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,b(t??a),p=0):await O()}))}catch(a){r?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!i(v),save:f,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&f(a)})),L),stopAutoSave:I,isAutoSaving:()=>!i(g),schedule:R,getStore:()=>a,destroy:()=>(q(na,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ra=a=>new Set(l(a)||i(a)?a:[a]),ia=(a,t)=>a?.add(t),oa=(a,t,n,s,r,o,c,l)=>{const w=X();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>ia(ta(w,a,ra),t)))},async(t,e)=>((a,t)=>P(q(w,a),t))(t,e)?Y(A(p(await a(S+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!i(a)&&!Q(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ra();H(s??{},(a=>p(B(a??{}),(a=>ia(v,a)))));const m=_(v);if(!d&&y&&E(m)&&P(w,t))return await a("DROP "+$+D(t)),void aa(w,t);const N=q(w,t),C=ra(_(N));if(E(m)||(P(w,t)?await u(p([n,...m],(async(e,s)=>{F(C,e)||(await a(b+D(t)+"ADD"+D(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),ia(N,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}${r} PRIMARY KEY${g(p(m,(a=>e+D(a)+r)))});`),aa(w,t,ra([n,...m])))),await u([...!d&&l?p(_(C),(async e=>{e!=n&&(await a(b+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)i(s)?await a(O+D(t)+T+" true"):await u(H(s,(async(e,s)=>{i(e)?await a(O+D(t)+T+D(n)+"=$1",[s]):E(m)||await ca(a,t,n,B(e),[s,...c?p(z(e),c):z(e)],o)})));else if(E(m))P(w,t)&&await a(O+D(t)+T+" true");else{const e=A(_(q(w,t)),(a=>a!=n)),r=[],i=[];H(s??{},((a,t)=>{h(r,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),h(i,t)})),await ca(a,t,n,e,r,o),await a(O+D(t)+T+D(n)+`NOT IN(${M(i)})`,i)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,r,i=0)=>await a("INSERT "+(i?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+la(r,y(s)+1)+(i?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e)),p(r,(a=>a??null))),la=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,r,i,[o,c,l],w,y,u,d,v,g)=>{const[p,E,A,h]=oa(t,w,y,s,v,g),N=sa(a,(async()=>await h((async()=>{return await p(),a=(await E(o,c))[m]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await h((async()=>{var t;await p(),await A(o,c,{[m]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),r(),N)},u);return N},ya=(a,t,e,n,s,r,o,[c,l,[w,y,d]],v,g,p,E,h,C,T,$)=>{const[b,O,S,f]=oa(t,v,g,s,h,C,T,$),I=async(a,t)=>await u(Z(l,(async([e,n,s,r],i)=>{t&&!(i in a)||await S(e,n,a[i],s,r,t)}))),R=async(a,t)=>y?await S(d,N,{[m]:a},!0,!0,t):null,L=sa(a,(async()=>await f((async()=>{await b();const a=await(async()=>Y(A(await u(Z(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>w?(await O(d,N))[m]:{})();return Q(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await b(),i(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[E]:()=>p,destroy:()=>(L.stopAutoLoad().stopAutoSave(),r(),L)},p);return L},ua="ColumnName",da="store",va="json",ga=da+"TableName",pa=da+"Id"+ua,Ea=da+ua,Aa="autoLoadIntervalSeconds",ha="rowId"+ua,ma="tableId",Na="tableName",Ca="deleteEmptyColumns",Ta="deleteEmptyTable",$a={mode:va,[Aa]:1},ba={load:0,save:0,[Na]:t+"_values"},Oa=(a,t,e,n,s)=>{const r=X();return H(a,((a,o)=>{const l=w(z(k(t,c(a)?{[e]:a}:a)),0,K(t));i(l[0])||n(o,l[0])||(s(o,l[0]),aa(r,o,l))})),r},Sa=(a,e,n,s,i,o,l,y,u,d="getDb",v)=>{let g,p,E;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[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],ra(a)]}const{tables:{load:s={},save:r={}}={},values:i={}}=e,o=w(z(k(ba,i)),0,K(ba)),l=o[2],y=ra(l),u=ra(l);return[0,n,[Oa(s,{[ma]:null,[ha]:N},ma,(a=>P(u,a)),(a=>ia(y,a))),Oa(r,{[Na]:null,[ha]:N,[Ca]:0,[Ta]:0},Na,((a,t)=>P(u,t)),((a,t)=>ia(y,t))),o],y]})(e);return(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 ${f}${I} JOIN ${f}${R}`);t==g&&e==p&&n==E||(null!=g&&a(),g=t,p=e,E=n)}catch{}}),1e3*m),n=()=>{g=p=E=null,r(t)},o=s((t=>{b.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(o)}}),(a=>a()),l,(()=>0),y,$,_(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)};exports.createPowerSyncPersister=(a,t,e,n,s,r=1)=>Sa(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,1,t,"getPowerSync",r);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",b="TABLE",O="ALTER "+b,S="DELETE FROM",f=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),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,x=a=>j.getPrototypeOf(a),U=j.entries,B=j.keys,J=j.freeze,Y=(a=[])=>j.fromEntries(a),k=(...a)=>j.assign({},...a),G=(a,t)=>p(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),z=a=>y(B(a)),K=a=>(a=>!i(a)&&o(x(a),(a=>a==j.prototype||i(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)=>i(e)?(F(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(P(a,t)||X(a,t,e()),V(a,t)),Z=Q(),aa=Q(),ta=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const[m,N,C,T,b]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!K(a)||!K(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!K(a)||!K(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),O=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?O(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&b(a)}p=0}))),L),f=()=>(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=()=>(o(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);!i((a=V(aa,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}X(Z,y,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await f().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,O(t??a),p=0):await S()}))}catch(a){r?.(a)}return L},stopAutoLoad:f,isAutoLoading:()=>!i(v),save:$,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!i(g),schedule:R,getStore:()=>a,destroy:()=>(V(aa,y).splice(0,void 0),f().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ea=a=>new Set(l(a)||i(a)?a:[a]),na=(a,t)=>a?.add(t),sa=(a,t,n,s,r)=>{const o=Q();return[async()=>{o.clear(),p(await n(a,t),(({tn:a,cn:t})=>na(q(o,a,ea),t)))},async(t,e)=>((a,t)=>P(V(o,a),t))(t,e)?Y(A(p(await a(f+D(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!i(a)&&!K(t)))):{},async(t,n,s,c,l,w=!1)=>{const y=ea();G(s??{},(a=>p(B(a??{}),(a=>na(y,a)))));const d=_(y);if(!w&&l&&E(d)&&P(o,t))return await a("DROP "+b+D(t)),void X(o,t);const v=V(o,t),m=ea(_(v));if(E(d)||(P(o,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(o,t,ea([n,...d])))),await u([...!w&&c?p(_(m),(async e=>{e!=n&&(await a(O+D(t)+"DROP"+D(e)),F(v,e))})):[]]),w)i(s)?await a(S+D(t)+T+" true"):await u(G(s,(async(e,s)=>{i(e)?await a(S+D(t)+T+D(n)+"=$1",[s]):E(d)||await ra(a,t,n,B(e),[s,...H(e)],r)})));else if(E(d))P(o,t)&&await a(S+D(t)+T+" true");else{const e=A(_(V(o,t)),(a=>a!=n)),i=[],c=[];G(s??{},((a,t)=>{h(i,t,...p(e,(t=>a?.[t]))),h(c,t)})),await ra(a,t,n,e,i,r),await a(S+D(t)+T+D(n)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ra=async(a,t,n,s,r,i=!0)=>await a("INSERT "+(i?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+ia(r,y(s)+1)+(i?"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e):""),p(r,(a=>a??null))),ia=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),oa=(a,t,e,n,s,r,i,[o,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(o,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(o,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>u,destroy:()=>(h.stopAutoLoad().stopAutoSave(),r(),h)},u);return h},ca=(a,t,e,n,s,r,o,[c,l,[w,y,d]],v,g,p,E,h)=>{const[C,T,b,O]=sa(t,v,g,s,h),S=async(a,t)=>await u(W(l,(async([e,n,s,r],i)=>{t&&!(i in a)||await b(e,n,a[i],s,r,t)}))),f=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)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await C(),i(t)){const[t,e]=a();await S(t),await f(e)}else await S(t[0],!0),await f(t[1],!0)}))),e,n,s,o,{[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,o)=>{const l=w(H(k(t,c(a)?{[e]:a}:a)),0,z(t));i(l[0])||n(o,l[0])||(s(o,l[0]),X(r,o,l))})),r};exports.createPowerSyncPersister=(a,e,n,s,i,o=!1)=>((a,e,n,s,i,o,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:i={}}=e,o=w(H(k(Ca,i)),0,z(Ca)),l=o[2],y=ea(l),u=ea(l);return[0,n,[Ta(s,{[Ea]:null,[pa]:N},Ea,(a=>P(u,a)),(a=>na(y,a))),Ta(r,{[Aa]:null,[pa]:N,[ha]:0,[ma]:0},Aa,((a,t)=>P(u,t)),((a,t)=>na(y,t))),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+` ${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,i(t)}),l,(()=>0),y,m,_(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,i,1,e,"getPowerSync",o);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=Promise,r=clearInterval,i=a=>null==a,o=(a,t,e)=>i(a)?e?.():t(a),c=t=>a(t)==n,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>s.all(a),d=a=>{throw Error(a)},v=(a,t)=>p(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),E=a=>0==y(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",N="_id",C="SELECT",T="WHERE",$="TABLE",b="ALTER "+$,O="DELETE FROM",S=C+"*FROM",f="pragma_",I="data_version",R="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(p(a,((a,t)=>"$"+(t+1))),e),P=(a,t)=>a?.has(t)??!1,_=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),U=Object,j=a=>U.getPrototypeOf(a),x=U.entries,B=U.keys,J=U.freeze,Y=(a=[])=>U.fromEntries(a),k=(...a)=>U.assign({},...a),G=(a,t)=>(delete a[t],a),H=(a,t)=>p(x(a),(([a,e])=>t(e,a))),z=a=>U.values(a),K=a=>y(B(a)),Q=a=>(a=>!i(a)&&o(j(a),(a=>a==U.prototype||i(j(a))),(()=>!0)))(a)&&0==K(a),V=JSON.stringify,W=JSON.parse,X=a=>new Map(a),q=(a,t)=>a?.get(t),Z=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>i(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,n)=>(P(a,t)||aa(a,t,e()),q(a,t)),ea=X(),na=X(),sa=(a,t,e,n,s,r,c,w={},y=[])=>{let u,v,g,p=0,E=0,A=0;ta(ea,y,(()=>0)),ta(na,y,(()=>[]));const[m,N,C,T,$]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!Q(a)||!Q(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),b=t=>{(m&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=p&&(p=1,E++,await R((async()=>{try{const a=await t();l(a)?b(a):d("Content is not an array "+a)}catch(t){r?.(t),a&&$(a)}p=0}))),L),S=()=>(v&&(s(v),v=void 0),L),f=async a=>(1!=p&&(p=2,A++,await R((async()=>{try{await e(N,a)}catch(a){r?.(a)}p=0}))),L),I=()=>(o(g,a.delListener),g=void 0,L),R=async(...a)=>(h(q(na,y),...a),await(async()=>{if(!q(ea,y)){for(aa(ea,y,1);!i((a=q(na,y),u=a.shift()));)try{await u()}catch(a){r?.(a)}aa(ea,y,0)}var a})(),L),L={load:O,startAutoLoad:async a=>{await S().load(a);try{v=await n((async(a,t)=>{t||a?2!=p&&(p=1,E++,b(t??a),p=0):await O()}))}catch(a){r?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!i(v),save:f,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=C();T(a)&&f(a)})),L),stopAutoSave:I,isAutoSaving:()=>!i(g),schedule:R,getStore:()=>a,destroy:()=>(q(na,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:E,saves:A}),...w};return J(L)},ra=a=>new Set(l(a)||i(a)?a:[a]),ia=(a,t)=>a?.add(t),oa=(a,t,n,s,r,o,c,l)=>{const w=X();return[async()=>{w.clear(),p(await n(a,t),(({tn:a,cn:t})=>ia(ta(w,a,ra),t)))},async(t,e)=>((a,t)=>P(q(w,a),t))(t,e)?Y(A(p(await a(S+D(t)),(a=>{return[a[e],l?(t=G(a,e),n=l,Y(H(t,((a,t)=>[t,n(a,t)])))):G(a,e)];var t,n})),(([a,t])=>!i(a)&&!Q(t)))):{},async(t,n,s,l,y,d=!1)=>{const v=ra();H(s??{},(a=>p(B(a??{}),(a=>ia(v,a)))));const m=_(v);if(!d&&y&&E(m)&&P(w,t))return await a("DROP "+$+D(t)),void aa(w,t);const N=q(w,t),C=ra(_(N));if(E(m)||(P(w,t)?await u(p([n,...m],(async(e,s)=>{F(C,e)||(await a(b+D(t)+"ADD"+D(e)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(n)})`),ia(N,e))}))):(await a("CREATE "+$+D(t)+`(${D(n)}${r} PRIMARY KEY${g(p(m,(a=>e+D(a)+r)))});`),aa(w,t,ra([n,...m])))),await u([...!d&&l?p(_(C),(async e=>{e!=n&&(await a(b+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)i(s)?await a(O+D(t)+T+" true"):await u(H(s,(async(e,s)=>{i(e)?await a(O+D(t)+T+D(n)+"=$1",[s]):E(m)||await ca(a,t,n,B(e),[s,...c?p(z(e),c):z(e)],o)})));else if(E(m))P(w,t)&&await a(O+D(t)+T+" true");else{const e=A(_(q(w,t)),(a=>a!=n)),r=[],i=[];H(s??{},((a,t)=>{h(r,t,...p(e,(t=>c?c(a?.[t]):a?.[t]))),h(i,t)})),await ca(a,t,n,e,r,o),await a(O+D(t)+T+D(n)+`NOT IN(${M(i)})`,i)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ca=async(a,t,n,s,r,i=0)=>await a("INSERT "+(i?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(n)+g(p(s,(a=>e+D(a))))+")VALUES"+la(r,y(s)+1)+(i?"":"ON CONFLICT("+D(n)+")DO UPDATE SET"+g(p(s,(a=>D(a)+"=excluded."+D(a))),e)),p(r,(a=>a??null))),la=(a,t)=>g(v(y(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,n,s,r,i,[o,c,l],w,y,u,d,v,g)=>{const[p,E,A,h]=oa(t,w,y,s,v,g),N=sa(a,(async()=>await h((async()=>{return await p(),a=(await E(o,c))[m]?.[l]??"null",W(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await h((async()=>{var t;await p(),await A(o,c,{[m]:{[l]:(t=a()??null,V(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),r(),N)},u);return N},ya=(a,t,e,n,s,r,o,[c,l,[w,y,d]],v,g,p,E,h,C,T,$)=>{const[b,O,S,f]=oa(t,v,g,s,h,C,T,$),I=async(a,t)=>await u(Z(l,(async([e,n,s,r],i)=>{t&&!(i in a)||await S(e,n,a[i],s,r,t)}))),R=async(a,t)=>y?await S(d,N,{[m]:a},!0,!0,t):null,L=sa(a,(async()=>await f((async()=>{await b();const a=await(async()=>Y(A(await u(Z(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>w?(await O(d,N))[m]:{})();return Q(a)&&i(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await b(),i(t)){const[t,e]=a();await I(t),await R(e)}else await I(t[0],!0),await R(t[1],!0)}))),e,n,s,o,{[E]:()=>p,destroy:()=>(L.stopAutoLoad().stopAutoSave(),r(),L)},p);return L},ua="ColumnName",da="store",va="json",ga=da+"TableName",pa=da+"Id"+ua,Ea=da+ua,Aa="autoLoadIntervalSeconds",ha="rowId"+ua,ma="tableId",Na="tableName",Ca="deleteEmptyColumns",Ta="deleteEmptyTable",$a={mode:va,[Aa]:1},ba={load:0,save:0,[Na]:t+"_values"},Oa=(a,t,e,n,s)=>{const r=X();return H(a,((a,o)=>{const l=w(z(k(t,c(a)?{[e]:a}:a)),0,K(t));i(l[0])||n(o,l[0])||(s(o,l[0]),aa(r,o,l))})),r},Sa=(a,e,n,s,i,o,l,y,u,d="getDb",v)=>{let g,p,E;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[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],ra(a)]}const{tables:{load:s={},save:r={}}={},values:i={}}=e,o=w(z(k(ba,i)),0,K(ba)),l=o[2],y=ra(l),u=ra(l);return[0,n,[Oa(s,{[ma]:null,[ha]:N},ma,(a=>P(u,a)),(a=>ia(y,a))),Oa(r,{[Na]:null,[ha]:N,[Ca]:0,[Ta]:0},Na,((a,t)=>P(u,t)),((a,t)=>ia(y,t))),o],y]})(e);return(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 ${f}${I} JOIN ${f}${R}`);t==g&&e==p&&n==E||(null!=g&&a(),g=t,p=e,E=n)}catch{}}),1e3*m),n=()=>{g=p=E=null,r(t)},o=s((t=>{b.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(o)}}),(a=>a()),l,(()=>0),y,$,_(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)};exports.createPowerSyncPersister=(a,t,e,n,s,r=1)=>Sa(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)p(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,1,t,"getPowerSync",r);
@@ -1 +1 @@
1
- "use strict";const t=clearInterval,e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=t=>Array.isArray(t),n=t=>{throw Error(t)},r=Object,o=t=>r.getPrototypeOf(t),i=r.keys,c=r.freeze,y=t=>(t=>!e(t)&&a(o(t),(t=>t==r.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),l=JSON.parse,g=t=>new Map(t),h=(t,e)=>t?.get(e),d=(t,a,s)=>{return e(s)?(n=t,r=a,n?.delete(r),t):t?.set(a,s);var n,r},p=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)||d(t,e,a()),h(t,e)},u=g(),v=g(),w=t=>t.headers.get("ETag");exports.createRemotePersister=(o,i,g,f=5,C)=>{let A;return((t,r,o,i,l,g,w,f={},C=[])=>{let A,S,b,M=0,T=0,L=0;p(u,C,(()=>0)),p(v,C,(()=>[]));const[O,m,E,P,D]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!y(t)||!y(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!y(t)||!y(e),e.setContent]:n("Store type not supported by this Persister"))(w,t),j=e=>{(O&&s(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=M&&(M=1,T++,await k((async()=>{try{const t=await r();s(t)?j(t):n("Content is not an array "+t)}catch(e){g?.(e),t&&D(t)}M=0}))),z),I=()=>(S&&(l(S),S=void 0),z),J=async t=>(1!=M&&(M=2,L++,await k((async()=>{try{await o(m,t)}catch(t){g?.(t)}M=0}))),z),N=()=>(a(b,t.delListener),b=void 0,z),k=async(...t)=>(((t,...e)=>{t.push(...e)})(h(v,C),...t),await(async()=>{if(!h(u,C)){for(d(u,C,1);!e((t=h(v,C),A=t.shift()));)try{await A()}catch(t){g?.(t)}d(u,C,0)}var t})(),z),z={load:x,startAutoLoad:async t=>{await I().load(t);try{S=await i((async(t,e)=>{e||t?2!=M&&(M=1,T++,j(e??t),M=0):await x()}))}catch(t){g?.(t)}return z},stopAutoLoad:I,isAutoLoading:()=>!e(S),save:J,startAutoSave:async()=>(await N().save(),b=t.addDidFinishTransactionListener((()=>{const t=E();P(t)&&J(t)})),z),stopAutoSave:N,isAutoSaving:()=>!e(b),schedule:k,getStore:()=>t,destroy:()=>(h(v,C).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:L}),...f};return c(z)})(o,(async()=>{const t=await fetch(i);return A=w(t),l(await t.text())}),(async t=>{return await fetch(g,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(i,{method:"HEAD"}),s=w(a);e(A)||e(s)||s==A||(A=s,t())}),1e3*f)),(e=>t(e)),C,1,{getUrls:()=>[i,g]})};
1
+ "use strict";const t=clearInterval,e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=t=>Array.isArray(t),n=t=>{throw Error(t)},r=Object,o=t=>r.getPrototypeOf(t),i=r.keys,c=r.freeze,y=t=>(t=>!e(t)&&a(o(t),(t=>t==r.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),l=JSON.stringify,g=JSON.parse,h=t=>new Map(t),d=(t,e)=>t?.get(e),p=(t,a,s)=>{return e(s)?(n=t,r=a,n?.delete(r),t):t?.set(a,s);var n,r},u=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)||p(t,e,a()),d(t,e)},v=h(),w=h(),f=t=>t.headers.get("ETag");exports.createRemotePersister=(o,i,h,C=5,A)=>{let S;return((t,r,o,i,l,g,h,f={},C=[])=>{let A,S,b,M=0,T=0,L=0;u(v,C,(()=>0)),u(w,C,(()=>[]));const[O,m,E,P,D]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!y(t)||!y(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!y(t)||!y(e),e.setContent]:n("Store type not supported by this Persister"))(h,t),j=e=>{(O&&s(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=M&&(M=1,T++,await k((async()=>{try{const t=await r();s(t)?j(t):n("Content is not an array "+t)}catch(e){g?.(e),t&&D(t)}M=0}))),z),I=()=>(S&&(l(S),S=void 0),z),J=async t=>(1!=M&&(M=2,L++,await k((async()=>{try{await o(m,t)}catch(t){g?.(t)}M=0}))),z),N=()=>(a(b,t.delListener),b=void 0,z),k=async(...t)=>(((t,...e)=>{t.push(...e)})(d(w,C),...t),await(async()=>{if(!d(v,C)){for(p(v,C,1);!e((t=d(w,C),A=t.shift()));)try{await A()}catch(t){g?.(t)}p(v,C,0)}var t})(),z),z={load:x,startAutoLoad:async t=>{await I().load(t);try{S=await i((async(t,e)=>{e||t?2!=M&&(M=1,T++,j(e??t),M=0):await x()}))}catch(t){g?.(t)}return z},stopAutoLoad:I,isAutoLoading:()=>!e(S),save:J,startAutoSave:async()=>(await N().save(),b=t.addDidFinishTransactionListener((()=>{const t=E();P(t)&&J(t)})),z),stopAutoSave:N,isAutoSaving:()=>!e(b),schedule:k,getStore:()=>t,destroy:()=>(d(w,C).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:L}),...f};return c(z)})(o,(async()=>{const t=await fetch(i);return S=f(t),g(await t.text())}),(async t=>{return await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),l(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(i,{method:"HEAD"}),s=f(a);e(S)||e(s)||s==S||(S=s,t())}),1e3*C)),(e=>t(e)),A,1,{getUrls:()=>[i,h]})};
@@ -1 +1 @@
1
- "use strict";const t=clearInterval,e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=t=>Array.isArray(t),n=t=>{throw Error(t)},r=Object,o=t=>r.getPrototypeOf(t),i=r.keys,c=r.freeze,y=t=>(t=>!e(t)&&a(o(t),(t=>t==r.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),l=JSON.parse,g=t=>new Map(t),h=(t,e)=>t?.get(e),d=(t,a,s)=>{return e(s)?(n=t,r=a,n?.delete(r),t):t?.set(a,s);var n,r},p=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)||d(t,e,a()),h(t,e)},u=g(),v=g(),w=t=>t.headers.get("ETag");exports.createRemotePersister=(o,i,g,f=5,C)=>{let A;return((t,r,o,i,l,g,w,f={},C=[])=>{let A,S,b,M=0,T=0,L=0;p(u,C,(()=>0)),p(v,C,(()=>[]));const[O,m,E,P,D]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!y(t)||!y(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!y(t)||!y(e),e.setContent]:n("Store type not supported by this Persister"))(w,t),j=e=>{(O&&s(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=M&&(M=1,T++,await k((async()=>{try{const t=await r();s(t)?j(t):n("Content is not an array "+t)}catch(e){g?.(e),t&&D(t)}M=0}))),z),I=()=>(S&&(l(S),S=void 0),z),J=async t=>(1!=M&&(M=2,L++,await k((async()=>{try{await o(m,t)}catch(t){g?.(t)}M=0}))),z),N=()=>(a(b,t.delListener),b=void 0,z),k=async(...t)=>(((t,...e)=>{t.push(...e)})(h(v,C),...t),await(async()=>{if(!h(u,C)){for(d(u,C,1);!e((t=h(v,C),A=t.shift()));)try{await A()}catch(t){g?.(t)}d(u,C,0)}var t})(),z),z={load:x,startAutoLoad:async t=>{await I().load(t);try{S=await i((async(t,e)=>{e||t?2!=M&&(M=1,T++,j(e??t),M=0):await x()}))}catch(t){g?.(t)}return z},stopAutoLoad:I,isAutoLoading:()=>!e(S),save:J,startAutoSave:async()=>(await N().save(),b=t.addDidFinishTransactionListener((()=>{const t=E();P(t)&&J(t)})),z),stopAutoSave:N,isAutoSaving:()=>!e(b),schedule:k,getStore:()=>t,destroy:()=>(h(v,C).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:L}),...f};return c(z)})(o,(async()=>{const t=await fetch(i);return A=w(t),l(await t.text())}),(async t=>{return await fetch(g,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(i,{method:"HEAD"}),s=w(a);e(A)||e(s)||s==A||(A=s,t())}),1e3*f)),(e=>t(e)),C,1,{getUrls:()=>[i,g]})};
1
+ "use strict";const t=clearInterval,e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=t=>Array.isArray(t),n=t=>{throw Error(t)},r=Object,o=t=>r.getPrototypeOf(t),i=r.keys,c=r.freeze,y=t=>(t=>!e(t)&&a(o(t),(t=>t==r.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),l=JSON.stringify,g=JSON.parse,h=t=>new Map(t),d=(t,e)=>t?.get(e),p=(t,a,s)=>{return e(s)?(n=t,r=a,n?.delete(r),t):t?.set(a,s);var n,r},u=(t,e,a,s)=>{var n,r;return n=t,r=e,n?.has(r)||p(t,e,a()),d(t,e)},v=h(),w=h(),f=t=>t.headers.get("ETag");exports.createRemotePersister=(o,i,h,C=5,A)=>{let S;return((t,r,o,i,l,g,h,f={},C=[])=>{let A,S,b,M=0,T=0,L=0;u(v,C,(()=>0)),u(w,C,(()=>[]));const[O,m,E,P,D]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[t],[e]])=>!y(t)||!y(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!y(t)||!y(e),e.setContent]:n("Store type not supported by this Persister"))(h,t),j=e=>{(O&&s(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x=async t=>(2!=M&&(M=1,T++,await k((async()=>{try{const t=await r();s(t)?j(t):n("Content is not an array "+t)}catch(e){g?.(e),t&&D(t)}M=0}))),z),I=()=>(S&&(l(S),S=void 0),z),J=async t=>(1!=M&&(M=2,L++,await k((async()=>{try{await o(m,t)}catch(t){g?.(t)}M=0}))),z),N=()=>(a(b,t.delListener),b=void 0,z),k=async(...t)=>(((t,...e)=>{t.push(...e)})(d(w,C),...t),await(async()=>{if(!d(v,C)){for(p(v,C,1);!e((t=d(w,C),A=t.shift()));)try{await A()}catch(t){g?.(t)}p(v,C,0)}var t})(),z),z={load:x,startAutoLoad:async t=>{await I().load(t);try{S=await i((async(t,e)=>{e||t?2!=M&&(M=1,T++,j(e??t),M=0):await x()}))}catch(t){g?.(t)}return z},stopAutoLoad:I,isAutoLoading:()=>!e(S),save:J,startAutoSave:async()=>(await N().save(),b=t.addDidFinishTransactionListener((()=>{const t=E();P(t)&&J(t)})),z),stopAutoSave:N,isAutoSaving:()=>!e(b),schedule:k,getStore:()=>t,destroy:()=>(d(w,C).splice(0,void 0),I().stopAutoSave()),getStats:()=>({loads:T,saves:L}),...f};return c(z)})(o,(async()=>{const t=await fetch(i);return S=f(t),g(await t.text())}),(async t=>{return await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),l(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(i,{method:"HEAD"}),s=f(a);e(S)||e(s)||s==S||(S=s,t())}),1e3*C)),(e=>t(e)),A,1,{getUrls:()=>[i,h]})};
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==s,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>n.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",S="TABLE",T="ALTER "+S,$="DELETE FROM",b=C+"*FROM",R="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,x=a=>F.getPrototypeOf(a),k=F.entries,U=F.keys,q=F.freeze,B=(a=[])=>F.fromEntries(a),J=(...a)=>F.assign({},...a),Y=(a,t)=>E(k(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>y(U(a)),V=a=>(a=>!o(a)&&r(x(a),(a=>a==F.prototype||o(x(a))),(()=>!0)))(a)&&0==H(a),W=a=>new Map(a),z=(a,t)=>a?.get(t),K=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),Q=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,s)=>(M(a,t)||Q(a,t,e()),z(a,t)),Z=W(),aa=W(),ta=(a,t,e,s,n,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,S]=((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=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,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&&S(a)}E=0}))),L),b=()=>(p&&(n(p),p=void 0),L),R=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(z(aa,y),...a),await(async()=>{if(!z(Z,y)){for(Q(Z,y,1);!o((a=z(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}Q(Z,y,0)}var a})(),L),L={load:$,startAutoLoad:async a=>{await b().load(a);try{p=await s((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await $()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!o(p),save:R,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&R(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(z(aa,y).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return q(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),sa=(a,t)=>a?.add(t),na=(a,t,s,n,i)=>{const r=W();return[async()=>{r.clear(),E(await s(a,t),(({tn:a,cn:t})=>sa(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(z(r,a),t))(t,e)?B(g(E(await a(b+D(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,s,n,c,l,w=!1)=>{const y=ea();Y(n??{},(a=>E(U(a??{}),(a=>sa(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+S+D(t)),void Q(r,t);const p=z(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([s,...d],(async(e,n)=>{j(h,e)||(await a(T+D(t)+"ADD"+D(e)+(0==n?"text":"json")),0==n&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(s)})`),sa(p,e))}))):(await a("CREATE "+S+D(t)+`(${D(s)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),Q(r,t,ea([s,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=s&&(await a(T+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(n)?await a($+D(t)+O+" true"):await u(Y(n,(async(e,n)=>{o(e)?await a($+D(t)+O+D(s)+"=$1",[n]):A(d)||await ia(a,t,s,U(e),[n,...G(e)],i)})));else if(A(d))M(r,t)&&await a($+D(t)+O+" true");else{const e=g(P(z(r,t)),(a=>a!=s)),o=[],c=[];Y(n??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,s,e,o,i),await a($+D(t)+O+D(s)+`NOT IN(${_(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ia=async(a,t,s,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(s)+v(E(n,(a=>e+D(a))))+")VALUES"+oa(i,y(n)+1)+(o?"ON CONFLICT("+D(s)+")DO UPDATE SET"+v(E(n,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,s,n,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=na(t,w,y,n,p),m=ta(a,(async()=>await g((async()=>{return await v(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await A(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,s,n,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,S,T]=na(t,p,v,n,m),$=async(a,t)=>await u(K(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await S(e,s,a[o],n,i,t)}))),b=async(a,t)=>y?await S(d,N,{[h]:a},!0,!0,t):null,R=ta(a,(async()=>await T((async()=>{await C();const a=await(async()=>B(g(await u(K(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!V(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return V(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await C(),o(t)){const[t,e]=a();await $(t),await b(e)}else await $(t[0],!0),await b(t[1],!0)}))),e,s,n,r,{[A]:()=>E,destroy:()=>(R.stopAutoLoad().stopAutoSave(),i(),R)},E);return R},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,pa=wa+la,va="autoLoadIntervalSeconds",Ea="rowId"+la,Aa="tableId",ga="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[va]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,s,n)=>{const i=W();return Y(a,((a,r)=>{const l=w(G(J(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||s(r,l[0])||(n(r,l[0]),Q(i,r,l))})),i};exports.createSqliteWasmPersister=(a,e,s,n,o,r)=>((a,e,s,n,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const[g,m,h,S]=(a=>{const e=(a=>J(Na,c(a)?{[ua]:a}:a??{}))(a),s=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,s,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,r=w(G(J(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,s,[Oa(n,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>sa(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>sa(y,t))),r],y]})(e);return(g?ra:ca)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:n}]=await s(C+` ${f} d,${I} s,TOTAL_CHANGES() c FROM ${R}${f} JOIN ${R}${I}`);t==(v??=t)&&e==(E??=e)&&n==(A??=n)||(a(),v=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>S.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),v=E=A=null,o(t)}),l,(()=>0),y,h,P(S),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,n,(async(a,t=[])=>s.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>e.capi.sqlite3_update_hook(s,((t,e,s,n)=>a(n)),0)),(()=>e.capi.sqlite3_update_hook(s,(()=>0),0)),o,r,3,s);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==s,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>n.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",$="SELECT",C="WHERE",O="TABLE",S="ALTER "+O,T="DELETE FROM",b=$+"*FROM",R="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,k=a=>j.getPrototypeOf(a),U=j.entries,q=j.keys,x=j.freeze,B=(a=[])=>j.fromEntries(a),J=(...a)=>j.assign({},...a),Y=(a,t)=>(delete a[t],a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),V=a=>y(q(a)),W=a=>(a=>!o(a)&&r(k(a),(a=>a==j.prototype||o(k(a))),(()=>!0)))(a)&&0==V(a),z=JSON.stringify,K=JSON.parse,Q=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,s)=>(M(a,t)||aa(a,t,e()),X(a,t)),ea=Q(),sa=Q(),na=(a,t,e,s,n,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;ta(ea,y,(()=>0)),ta(sa,y,(()=>[]));const[h,N,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!W(a)||!W(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),S=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?S(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),b=()=>(p&&(n(p),p=void 0),L),R=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(X(sa,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(sa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:T,startAutoLoad:async a=>{await b().load(a);try{p=await s((async(a,t)=>{t||a?2!=E&&(E=1,A++,S(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!o(p),save:R,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&R(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(X(sa,y).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return x(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,s,n,i,r,c,l)=>{const w=Q();return[async()=>{w.clear(),E(await s(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>M(X(w,a),t))(t,e)?B(g(E(await a(b+D(t)),(a=>{return[a[e],l?(t=Y(a,e),s=l,B(G(t,((a,t)=>[t,s(a,t)])))):Y(a,e)];var t,s})),(([a,t])=>!o(a)&&!W(t)))):{},async(t,s,n,l,y,d=!1)=>{const p=ia();G(n??{},(a=>E(q(a??{}),(a=>oa(p,a)))));const h=P(p);if(!d&&y&&A(h)&&M(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const N=X(w,t),$=ia(P(N));if(A(h)||(M(w,t)?await u(E([s,...h],(async(e,n)=>{F($,e)||(await a(S+D(t)+"ADD"+D(e)+i),0==n&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(s)})`),oa(N,e))}))):(await a("CREATE "+O+D(t)+`(${D(s)}${i} PRIMARY KEY${v(E(h,(a=>e+D(a)+i)))});`),aa(w,t,ia([s,...h])))),await u([...!d&&l?E(P($),(async e=>{e!=s&&(await a(S+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)o(n)?await a(T+D(t)+C+" true"):await u(G(n,(async(e,n)=>{o(e)?await a(T+D(t)+C+D(s)+"=$1",[n]):A(h)||await ca(a,t,s,q(e),[n,...c?E(H(e),c):H(e)],r)})));else if(A(h))M(w,t)&&await a(T+D(t)+C+" true");else{const e=g(P(X(w,t)),(a=>a!=s)),i=[],o=[];G(n??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,s,e,i,r),await a(T+D(t)+C+D(s)+`NOT IN(${_(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ca=async(a,t,s,n,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(s)+v(E(n,(a=>e+D(a))))+")VALUES"+la(i,y(n)+1)+(o?"":"ON CONFLICT("+D(s)+")DO UPDATE SET"+v(E(n,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,s,n,i,o,[r,c,l],w,y,u,d,p,v)=>{const[E,A,g,m]=ra(t,w,y,n,p,v),N=na(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",K(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[h]:{[l]:(t=a()??null,z(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,s,n,i,r,[c,l,[w,y,d]],p,v,E,A,m,$,C,O)=>{const[S,T,b,R]=ra(t,p,v,n,m,$,C,O),f=async(a,t)=>await u(Z(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await b(e,s,a[o],n,i,t)}))),I=async(a,t)=>y?await b(d,N,{[h]:a},!0,!0,t):null,L=na(a,(async()=>await R((async()=>{await S();const a=await(async()=>B(g(await u(Z(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>w?(await T(d,N))[h]:{})();return W(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await S(),o(t)){const[t,e]=a();await f(t),await I(e)}else await f(t[0],!0),await I(t[1],!0)}))),e,s,n,r,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",pa="json",va=da+"TableName",Ea=da+"Id"+ua,Aa=da+ua,ga="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Na="tableName",$a="deleteEmptyColumns",Ca="deleteEmptyTable",Oa={mode:pa,[ga]:1},Sa={load:0,save:0,[Na]:t+"_values"},Ta=(a,t,e,s,n)=>{const i=Q();return G(a,((a,r)=>{const l=w(H(J(t,c(a)?{[e]:a}:a)),0,V(t));o(l[0])||s(r,l[0])||(n(r,l[0]),aa(i,r,l))})),i},ba=(a,e,s,n,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const g=((a,t)=>t?async(e,s)=>(t(e,s),await a(e,s)):a)(s,r),[m,h,O,S]=(a=>{const e=(a=>J(Oa,c(a)?{[va]:a}:a??{}))(a),s=e[ga];if(e.mode==pa){const a=e[va]??t;return[1,s,[a,e[Ea]??N,e[Aa]??da],ia(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,r=w(H(J(Sa,o)),0,V(Sa)),l=r[2],y=ia(l),u=ia(l);return[0,s,[Ta(n,{[ha]:null,[ma]:N},ha,(a=>M(u,a)),(a=>oa(y,a))),Ta(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>M(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(m?wa:ya)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:s}]=await g(`${$} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${R}${f} JOIN ${R}${I}`);t==v&&e==E&&s==A||(null!=v&&a(),v=t,E=e,A=s)}catch{}}),1e3*h),s=()=>{v=E=A=null,i(t)},r=n((t=>{S.has(t)&&(s(),a(),e())}));return e(),()=>{s(),o(r)}}),(a=>a()),l,(()=>0),y,O,P(S),(async(a,t)=>await a(`${$} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,"",p,(a=>!0===a?1:!1===a?0:a),void 0)};exports.createSqliteWasmPersister=(a,t,e,s,n,i)=>ba(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,3,e);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==s,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>n.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",C="SELECT",O="WHERE",S="TABLE",T="ALTER "+S,$="DELETE FROM",b=C+"*FROM",R="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,x=a=>F.getPrototypeOf(a),k=F.entries,U=F.keys,q=F.freeze,B=(a=[])=>F.fromEntries(a),J=(...a)=>F.assign({},...a),Y=(a,t)=>E(k(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>y(U(a)),V=a=>(a=>!o(a)&&r(x(a),(a=>a==F.prototype||o(x(a))),(()=>!0)))(a)&&0==H(a),W=a=>new Map(a),z=(a,t)=>a?.get(t),K=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),Q=(a,t,e)=>o(e)?(j(a,t),a):a?.set(t,e),X=(a,t,e,s)=>(M(a,t)||Q(a,t,e()),z(a,t)),Z=W(),aa=W(),ta=(a,t,e,s,n,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;X(Z,y,(()=>0)),X(aa,y,(()=>[]));const[h,N,C,O,S]=((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=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,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&&S(a)}E=0}))),L),b=()=>(p&&(n(p),p=void 0),L),R=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(z(aa,y),...a),await(async()=>{if(!z(Z,y)){for(Q(Z,y,1);!o((a=z(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}Q(Z,y,0)}var a})(),L),L={load:$,startAutoLoad:async a=>{await b().load(a);try{p=await s((async(a,t)=>{t||a?2!=E&&(E=1,A++,T(t??a),E=0):await $()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!o(p),save:R,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();O(a)&&R(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(z(aa,y).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return q(L)},ea=a=>new Set(l(a)||o(a)?a:[a]),sa=(a,t)=>a?.add(t),na=(a,t,s,n,i)=>{const r=W();return[async()=>{r.clear(),E(await s(a,t),(({tn:a,cn:t})=>sa(X(r,a,ea),t)))},async(t,e)=>((a,t)=>M(z(r,a),t))(t,e)?B(g(E(await a(b+D(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!V(t)))):{},async(t,s,n,c,l,w=!1)=>{const y=ea();Y(n??{},(a=>E(U(a??{}),(a=>sa(y,a)))));const d=P(y);if(!w&&l&&A(d)&&M(r,t))return await a("DROP "+S+D(t)),void Q(r,t);const p=z(r,t),h=ea(P(p));if(A(d)||(M(r,t)?await u(E([s,...d],(async(e,n)=>{j(h,e)||(await a(T+D(t)+"ADD"+D(e)+(0==n?"text":"json")),0==n&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(s)})`),sa(p,e))}))):(await a("CREATE "+S+D(t)+`(${D(s)}text PRIMARY KEY${v(E(d,(a=>e+D(a)+"json")))});`),Q(r,t,ea([s,...d])))),await u([...!w&&c?E(P(h),(async e=>{e!=s&&(await a(T+D(t)+"DROP"+D(e)),j(p,e))})):[]]),w)o(n)?await a($+D(t)+O+" true"):await u(Y(n,(async(e,n)=>{o(e)?await a($+D(t)+O+D(s)+"=$1",[n]):A(d)||await ia(a,t,s,U(e),[n,...G(e)],i)})));else if(A(d))M(r,t)&&await a($+D(t)+O+" true");else{const e=g(P(z(r,t)),(a=>a!=s)),o=[],c=[];Y(n??{},((a,t)=>{m(o,t,...E(e,(t=>a?.[t]))),m(c,t)})),await ia(a,t,s,e,o,i),await a($+D(t)+O+D(s)+`NOT IN(${_(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ia=async(a,t,s,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+D(t)+"("+D(s)+v(E(n,(a=>e+D(a))))+")VALUES"+oa(i,y(n)+1)+(o?"ON CONFLICT("+D(s)+")DO UPDATE SET"+v(E(n,(a=>D(a)+"=excluded."+D(a))),e):""),E(i,(a=>a??null))),oa=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),ra=(a,t,e,s,n,i,o,[r,c,l],w,y,u,d,p)=>{const[v,E,A,g]=na(t,w,y,n,p),m=ta(a,(async()=>await g((async()=>{return await v(),a=(await E(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await A(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[d]:()=>u,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},u);return m},ca=(a,t,e,s,n,i,r,[c,l,[w,y,d]],p,v,E,A,m)=>{const[C,O,S,T]=na(t,p,v,n,m),$=async(a,t)=>await u(K(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await S(e,s,a[o],n,i,t)}))),b=async(a,t)=>y?await S(d,N,{[h]:a},!0,!0,t):null,R=ta(a,(async()=>await T((async()=>{await C();const a=await(async()=>B(g(await u(K(c,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!V(a[1])))))(),t=await(async()=>w?(await O(d,N))[h]:{})();return V(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await C(),o(t)){const[t,e]=a();await $(t),await b(e)}else await $(t[0],!0),await b(t[1],!0)}))),e,s,n,r,{[A]:()=>E,destroy:()=>(R.stopAutoLoad().stopAutoSave(),i(),R)},E);return R},la="ColumnName",wa="store",ya="json",ua=wa+"TableName",da=wa+"Id"+la,pa=wa+la,va="autoLoadIntervalSeconds",Ea="rowId"+la,Aa="tableId",ga="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ya,[va]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,s,n)=>{const i=W();return Y(a,((a,r)=>{const l=w(G(J(t,c(a)?{[e]:a}:a)),0,H(t));o(l[0])||s(r,l[0])||(n(r,l[0]),Q(i,r,l))})),i};exports.createSqliteWasmPersister=(a,e,s,n,o,r)=>((a,e,s,n,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const[g,m,h,S]=(a=>{const e=(a=>J(Na,c(a)?{[ua]:a}:a??{}))(a),s=e[va];if(e.mode==ya){const a=e[ua]??t;return[1,s,[a,e[da]??N,e[pa]??wa],ea(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,r=w(G(J(Ca,o)),0,H(Ca)),l=r[2],y=ea(l),u=ea(l);return[0,s,[Oa(n,{[Aa]:null,[Ea]:N},Aa,(a=>M(u,a)),(a=>sa(y,a))),Oa(i,{[ga]:null,[Ea]:N,[ma]:0,[ha]:0},ga,((a,t)=>M(u,t)),((a,t)=>sa(y,t))),r],y]})(e);return(g?ra:ca)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:n}]=await s(C+` ${f} d,${I} s,TOTAL_CHANGES() c FROM ${R}${f} JOIN ${R}${I}`);t==(v??=t)&&e==(E??=e)&&n==(A??=n)||(a(),v=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>S.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),v=E=A=null,o(t)}),l,(()=>0),y,h,P(S),(async(a,t)=>await a(`${C} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${O} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,n,(async(a,t=[])=>s.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>e.capi.sqlite3_update_hook(s,((t,e,s,n)=>a(n)),0)),(()=>e.capi.sqlite3_update_hook(s,(()=>0),0)),o,r,3,s);
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=Promise,i=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=t=>a(t)==s,l=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),y=a=>a.length,u=async a=>n.all(a),d=a=>{throw Error(a)},p=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),A=a=>0==y(a),g=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",$="SELECT",C="WHERE",O="TABLE",S="ALTER "+O,T="DELETE FROM",b=$+"*FROM",R="pragma_",f="data_version",I="schema_version",L="pragma_table_",D=a=>`"${a.replace(/"/g,'""')}"`,_=a=>v(E(a,((a,t)=>"$"+(t+1))),e),M=(a,t)=>a?.has(t)??!1,P=a=>[...a?.values()??[]],F=(a,t)=>a?.delete(t),j=Object,k=a=>j.getPrototypeOf(a),U=j.entries,q=j.keys,x=j.freeze,B=(a=[])=>j.fromEntries(a),J=(...a)=>j.assign({},...a),Y=(a,t)=>(delete a[t],a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>j.values(a),V=a=>y(q(a)),W=a=>(a=>!o(a)&&r(k(a),(a=>a==j.prototype||o(k(a))),(()=>!0)))(a)&&0==V(a),z=JSON.stringify,K=JSON.parse,Q=a=>new Map(a),X=(a,t)=>a?.get(t),Z=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),aa=(a,t,e)=>o(e)?(F(a,t),a):a?.set(t,e),ta=(a,t,e,s)=>(M(a,t)||aa(a,t,e()),X(a,t)),ea=Q(),sa=Q(),na=(a,t,e,s,n,i,c,w={},y=[])=>{let u,p,v,E=0,A=0,g=0;ta(ea,y,(()=>0)),ta(sa,y,(()=>[]));const[h,N,$,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!W(a)||!W(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t),t.setContent]:d("Store type not supported by this Persister"))(c,a),S=t=>{(h&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=E&&(E=1,A++,await I((async()=>{try{const a=await t();l(a)?S(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}E=0}))),L),b=()=>(p&&(n(p),p=void 0),L),R=async a=>(1!=E&&(E=2,g++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}E=0}))),L),f=()=>(r(v,a.delListener),v=void 0,L),I=async(...a)=>(m(X(sa,y),...a),await(async()=>{if(!X(ea,y)){for(aa(ea,y,1);!o((a=X(sa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}aa(ea,y,0)}var a})(),L),L={load:T,startAutoLoad:async a=>{await b().load(a);try{p=await s((async(a,t)=>{t||a?2!=E&&(E=1,A++,S(t??a),E=0):await T()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!o(p),save:R,startAutoSave:async()=>(await f().save(),v=a.addDidFinishTransactionListener((()=>{const a=$();C(a)&&R(a)})),L),stopAutoSave:f,isAutoSaving:()=>!o(v),schedule:I,getStore:()=>a,destroy:()=>(X(sa,y).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:A,saves:g}),...w};return x(L)},ia=a=>new Set(l(a)||o(a)?a:[a]),oa=(a,t)=>a?.add(t),ra=(a,t,s,n,i,r,c,l)=>{const w=Q();return[async()=>{w.clear(),E(await s(a,t),(({tn:a,cn:t})=>oa(ta(w,a,ia),t)))},async(t,e)=>((a,t)=>M(X(w,a),t))(t,e)?B(g(E(await a(b+D(t)),(a=>{return[a[e],l?(t=Y(a,e),s=l,B(G(t,((a,t)=>[t,s(a,t)])))):Y(a,e)];var t,s})),(([a,t])=>!o(a)&&!W(t)))):{},async(t,s,n,l,y,d=!1)=>{const p=ia();G(n??{},(a=>E(q(a??{}),(a=>oa(p,a)))));const h=P(p);if(!d&&y&&A(h)&&M(w,t))return await a("DROP "+O+D(t)),void aa(w,t);const N=X(w,t),$=ia(P(N));if(A(h)||(M(w,t)?await u(E([s,...h],(async(e,n)=>{F($,e)||(await a(S+D(t)+"ADD"+D(e)+i),0==n&&await a("CREATE UNIQUE INDEX pk ON "+D(t)+`(${D(s)})`),oa(N,e))}))):(await a("CREATE "+O+D(t)+`(${D(s)}${i} PRIMARY KEY${v(E(h,(a=>e+D(a)+i)))});`),aa(w,t,ia([s,...h])))),await u([...!d&&l?E(P($),(async e=>{e!=s&&(await a(S+D(t)+"DROP"+D(e)),F(N,e))})):[]]),d)o(n)?await a(T+D(t)+C+" true"):await u(G(n,(async(e,n)=>{o(e)?await a(T+D(t)+C+D(s)+"=$1",[n]):A(h)||await ca(a,t,s,q(e),[n,...c?E(H(e),c):H(e)],r)})));else if(A(h))M(w,t)&&await a(T+D(t)+C+" true");else{const e=g(P(X(w,t)),(a=>a!=s)),i=[],o=[];G(n??{},((a,t)=>{m(i,t,...E(e,(t=>c?c(a?.[t]):a?.[t]))),m(o,t)})),await ca(a,t,s,e,i,r),await a(T+D(t)+C+D(s)+`NOT IN(${_(o)})`,o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ca=async(a,t,s,n,i,o=0)=>await a("INSERT "+(o?"OR REPLACE ":"")+"INTO"+D(t)+"("+D(s)+v(E(n,(a=>e+D(a))))+")VALUES"+la(i,y(n)+1)+(o?"":"ON CONFLICT("+D(s)+")DO UPDATE SET"+v(E(n,(a=>D(a)+"=excluded."+D(a))),e)),E(i,(a=>a??null))),la=(a,t)=>v(p(y(a)/t,(a=>"("+v(p(t,(e=>"$"+(a*t+e+1))),e)+")")),e),wa=(a,t,e,s,n,i,o,[r,c,l],w,y,u,d,p,v)=>{const[E,A,g,m]=ra(t,w,y,n,p,v),N=na(a,(async()=>await m((async()=>{return await E(),a=(await A(r,c))[h]?.[l]??"null",K(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await E(),await g(r,c,{[h]:{[l]:(t=a()??null,z(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[d]:()=>u,destroy:()=>(N.stopAutoLoad().stopAutoSave(),i(),N)},u);return N},ya=(a,t,e,s,n,i,r,[c,l,[w,y,d]],p,v,E,A,m,$,C,O)=>{const[S,T,b,R]=ra(t,p,v,n,m,$,C,O),f=async(a,t)=>await u(Z(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await b(e,s,a[o],n,i,t)}))),I=async(a,t)=>y?await b(d,N,{[h]:a},!0,!0,t):null,L=na(a,(async()=>await R((async()=>{await S();const a=await(async()=>B(g(await u(Z(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>w?(await T(d,N))[h]:{})();return W(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await S(),o(t)){const[t,e]=a();await f(t),await I(e)}else await f(t[0],!0),await I(t[1],!0)}))),e,s,n,r,{[A]:()=>E,destroy:()=>(L.stopAutoLoad().stopAutoSave(),i(),L)},E);return L},ua="ColumnName",da="store",pa="json",va=da+"TableName",Ea=da+"Id"+ua,Aa=da+ua,ga="autoLoadIntervalSeconds",ma="rowId"+ua,ha="tableId",Na="tableName",$a="deleteEmptyColumns",Ca="deleteEmptyTable",Oa={mode:pa,[ga]:1},Sa={load:0,save:0,[Na]:t+"_values"},Ta=(a,t,e,s,n)=>{const i=Q();return G(a,((a,r)=>{const l=w(H(J(t,c(a)?{[e]:a}:a)),0,V(t));o(l[0])||s(r,l[0])||(n(r,l[0]),aa(i,r,l))})),i},ba=(a,e,s,n,o,r,l,y,u,d="getDb",p)=>{let v,E,A;const g=((a,t)=>t?async(e,s)=>(t(e,s),await a(e,s)):a)(s,r),[m,h,O,S]=(a=>{const e=(a=>J(Oa,c(a)?{[va]:a}:a??{}))(a),s=e[ga];if(e.mode==pa){const a=e[va]??t;return[1,s,[a,e[Ea]??N,e[Aa]??da],ia(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,r=w(H(J(Sa,o)),0,V(Sa)),l=r[2],y=ia(l),u=ia(l);return[0,s,[Ta(n,{[ha]:null,[ma]:N},ha,(a=>M(u,a)),(a=>oa(y,a))),Ta(i,{[Na]:null,[ma]:N,[$a]:0,[Ca]:0},Na,((a,t)=>M(u,t)),((a,t)=>oa(y,t))),r],y]})(e);return(m?wa:ya)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:s}]=await g(`${$} ${f} d,${I} s,TOTAL_CHANGES() c FROM ${R}${f} JOIN ${R}${I}`);t==v&&e==E&&s==A||(null!=v&&a(),v=t,E=e,A=s)}catch{}}),1e3*h),s=()=>{v=E=A=null,i(t)},r=n((t=>{S.has(t)&&(s(),a(),e())}));return e(),()=>{s(),o(r)}}),(a=>a()),l,(()=>0),y,O,P(S),(async(a,t)=>await a(`${$} t.name tn,c.name cn FROM ${L}list()t,${L}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${_(t)})ORDER BY t.name,c.name`,t)),u,d,"",p,(a=>!0===a?1:!1===a?0:a),void 0)};exports.createSqliteWasmPersister=(a,t,e,s,n,i)=>ba(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,3,e);