tinybase 5.2.0-beta.1 → 5.2.0-beta.3

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 (729) 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/synchronizers/synchronizer-local/index.d.cts +1 -0
  6. package/@types/synchronizers/synchronizer-local/index.d.ts +1 -0
  7. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +1 -0
  8. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +1 -0
  9. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +4 -1
  10. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +4 -1
  11. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +6 -1
  12. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +6 -1
  13. package/checkpoints/index.js +9 -7
  14. package/checkpoints/with-schemas/index.js +9 -7
  15. package/cjs/checkpoints/index.cjs +9 -7
  16. package/cjs/checkpoints/with-schemas/index.cjs +9 -7
  17. package/cjs/es6/checkpoints/index.cjs +15 -13
  18. package/cjs/es6/checkpoints/with-schemas/index.cjs +15 -13
  19. package/cjs/es6/index.cjs +28 -20
  20. package/cjs/es6/indexes/index.cjs +15 -13
  21. package/cjs/es6/indexes/with-schemas/index.cjs +15 -13
  22. package/cjs/es6/mergeable-store/index.cjs +23 -17
  23. package/cjs/es6/mergeable-store/with-schemas/index.cjs +23 -17
  24. package/cjs/es6/metrics/index.cjs +15 -13
  25. package/cjs/es6/metrics/with-schemas/index.cjs +15 -13
  26. package/cjs/es6/min/index.cjs +1 -1
  27. package/cjs/es6/min/index.cjs.gz +0 -0
  28. package/cjs/es6/min/mergeable-store/index.cjs +1 -1
  29. package/cjs/es6/min/mergeable-store/index.cjs.gz +0 -0
  30. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs +1 -1
  31. package/cjs/es6/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  32. package/cjs/es6/min/persisters/persister-automerge/index.cjs +1 -1
  33. package/cjs/es6/min/persisters/persister-automerge/index.cjs.gz +0 -0
  34. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  35. package/cjs/es6/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  36. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  37. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  38. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  39. package/cjs/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  40. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs +1 -1
  41. package/cjs/es6/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  42. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  43. package/cjs/es6/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  44. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  45. package/cjs/es6/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  46. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  47. package/cjs/es6/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  48. package/cjs/es6/min/persisters/persister-libsql/index.cjs +1 -1
  49. package/cjs/es6/min/persisters/persister-libsql/index.cjs.gz +0 -0
  50. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  51. package/cjs/es6/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  52. package/cjs/es6/min/persisters/persister-postgres/index.cjs +1 -1
  53. package/cjs/es6/min/persisters/persister-postgres/index.cjs.gz +0 -0
  54. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  55. package/cjs/es6/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  56. package/cjs/es6/min/persisters/persister-powersync/index.cjs +1 -1
  57. package/cjs/es6/min/persisters/persister-powersync/index.cjs.gz +0 -0
  58. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  59. package/cjs/es6/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  60. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  61. package/cjs/es6/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  62. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  63. package/cjs/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  64. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs +1 -1
  65. package/cjs/es6/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  66. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  67. package/cjs/es6/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  68. package/cjs/es6/min/store/index.cjs +1 -1
  69. package/cjs/es6/min/store/index.cjs.gz +0 -0
  70. package/cjs/es6/min/store/with-schemas/index.cjs +1 -1
  71. package/cjs/es6/min/store/with-schemas/index.cjs.gz +0 -0
  72. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  73. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  74. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  75. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  76. package/cjs/es6/min/ui-react-inspector/index.cjs +1 -1
  77. package/cjs/es6/min/ui-react-inspector/index.cjs.gz +0 -0
  78. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  79. package/cjs/es6/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  80. package/cjs/es6/min/with-schemas/index.cjs +1 -1
  81. package/cjs/es6/min/with-schemas/index.cjs.gz +0 -0
  82. package/cjs/es6/persisters/index.cjs +5 -3
  83. package/cjs/es6/persisters/persister-automerge/index.cjs +7 -4
  84. package/cjs/es6/persisters/persister-automerge/with-schemas/index.cjs +7 -4
  85. package/cjs/es6/persisters/persister-browser/index.cjs +5 -3
  86. package/cjs/es6/persisters/persister-browser/with-schemas/index.cjs +5 -3
  87. package/cjs/es6/persisters/persister-cr-sqlite-wasm/index.cjs +82 -45
  88. package/cjs/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +82 -45
  89. package/cjs/es6/persisters/persister-electric-sql/index.cjs +82 -45
  90. package/cjs/es6/persisters/persister-electric-sql/with-schemas/index.cjs +82 -45
  91. package/cjs/es6/persisters/persister-expo-sqlite/index.cjs +82 -45
  92. package/cjs/es6/persisters/persister-expo-sqlite/with-schemas/index.cjs +82 -45
  93. package/cjs/es6/persisters/persister-file/index.cjs +5 -3
  94. package/cjs/es6/persisters/persister-file/with-schemas/index.cjs +5 -3
  95. package/cjs/es6/persisters/persister-indexed-db/index.cjs +5 -3
  96. package/cjs/es6/persisters/persister-indexed-db/with-schemas/index.cjs +5 -3
  97. package/cjs/es6/persisters/persister-libsql/index.cjs +82 -45
  98. package/cjs/es6/persisters/persister-libsql/with-schemas/index.cjs +82 -45
  99. package/cjs/es6/persisters/persister-partykit-client/index.cjs +5 -3
  100. package/cjs/es6/persisters/persister-partykit-client/with-schemas/index.cjs +5 -3
  101. package/cjs/es6/persisters/persister-partykit-server/index.cjs +36 -22
  102. package/cjs/es6/persisters/persister-partykit-server/with-schemas/index.cjs +36 -22
  103. package/cjs/es6/persisters/persister-postgres/index.cjs +108 -37
  104. package/cjs/es6/persisters/persister-postgres/with-schemas/index.cjs +108 -37
  105. package/cjs/es6/persisters/persister-powersync/index.cjs +82 -45
  106. package/cjs/es6/persisters/persister-powersync/with-schemas/index.cjs +82 -45
  107. package/cjs/es6/persisters/persister-remote/index.cjs +5 -3
  108. package/cjs/es6/persisters/persister-remote/with-schemas/index.cjs +5 -3
  109. package/cjs/es6/persisters/persister-sqlite-wasm/index.cjs +82 -45
  110. package/cjs/es6/persisters/persister-sqlite-wasm/with-schemas/index.cjs +82 -45
  111. package/cjs/es6/persisters/persister-sqlite3/index.cjs +82 -45
  112. package/cjs/es6/persisters/persister-sqlite3/with-schemas/index.cjs +82 -45
  113. package/cjs/es6/persisters/persister-yjs/index.cjs +5 -3
  114. package/cjs/es6/persisters/persister-yjs/with-schemas/index.cjs +5 -3
  115. package/cjs/es6/persisters/with-schemas/index.cjs +5 -3
  116. package/cjs/es6/relationships/index.cjs +15 -13
  117. package/cjs/es6/relationships/with-schemas/index.cjs +15 -13
  118. package/cjs/es6/store/index.cjs +23 -17
  119. package/cjs/es6/store/with-schemas/index.cjs +23 -17
  120. package/cjs/es6/synchronizers/index.cjs +5 -3
  121. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -3
  122. package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -3
  123. package/cjs/es6/synchronizers/synchronizer-local/index.cjs +5 -3
  124. package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -3
  125. package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +8 -6
  126. package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +8 -6
  127. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +113 -103
  128. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +113 -103
  129. package/cjs/es6/synchronizers/with-schemas/index.cjs +5 -3
  130. package/cjs/es6/ui-react-inspector/index.cjs +30 -21
  131. package/cjs/es6/ui-react-inspector/with-schemas/index.cjs +30 -21
  132. package/cjs/es6/with-schemas/index.cjs +28 -20
  133. package/cjs/index.cjs +22 -12
  134. package/cjs/indexes/index.cjs +9 -7
  135. package/cjs/indexes/with-schemas/index.cjs +9 -7
  136. package/cjs/mergeable-store/index.cjs +17 -9
  137. package/cjs/mergeable-store/with-schemas/index.cjs +17 -9
  138. package/cjs/metrics/index.cjs +9 -7
  139. package/cjs/metrics/with-schemas/index.cjs +9 -7
  140. package/cjs/min/index.cjs +1 -1
  141. package/cjs/min/index.cjs.gz +0 -0
  142. package/cjs/min/mergeable-store/index.cjs +1 -1
  143. package/cjs/min/mergeable-store/index.cjs.gz +0 -0
  144. package/cjs/min/mergeable-store/with-schemas/index.cjs +1 -1
  145. package/cjs/min/mergeable-store/with-schemas/index.cjs.gz +0 -0
  146. package/cjs/min/persisters/persister-automerge/index.cjs +1 -1
  147. package/cjs/min/persisters/persister-automerge/index.cjs.gz +0 -0
  148. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs +1 -1
  149. package/cjs/min/persisters/persister-automerge/with-schemas/index.cjs.gz +0 -0
  150. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs +1 -1
  151. package/cjs/min/persisters/persister-cr-sqlite-wasm/index.cjs.gz +0 -0
  152. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +1 -1
  153. package/cjs/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  154. package/cjs/min/persisters/persister-electric-sql/index.cjs +1 -1
  155. package/cjs/min/persisters/persister-electric-sql/index.cjs.gz +0 -0
  156. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs +1 -1
  157. package/cjs/min/persisters/persister-electric-sql/with-schemas/index.cjs.gz +0 -0
  158. package/cjs/min/persisters/persister-expo-sqlite/index.cjs +1 -1
  159. package/cjs/min/persisters/persister-expo-sqlite/index.cjs.gz +0 -0
  160. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs +1 -1
  161. package/cjs/min/persisters/persister-expo-sqlite/with-schemas/index.cjs.gz +0 -0
  162. package/cjs/min/persisters/persister-libsql/index.cjs +1 -1
  163. package/cjs/min/persisters/persister-libsql/index.cjs.gz +0 -0
  164. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs +1 -1
  165. package/cjs/min/persisters/persister-libsql/with-schemas/index.cjs.gz +0 -0
  166. package/cjs/min/persisters/persister-postgres/index.cjs +1 -1
  167. package/cjs/min/persisters/persister-postgres/index.cjs.gz +0 -0
  168. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs +1 -1
  169. package/cjs/min/persisters/persister-postgres/with-schemas/index.cjs.gz +0 -0
  170. package/cjs/min/persisters/persister-powersync/index.cjs +1 -1
  171. package/cjs/min/persisters/persister-powersync/index.cjs.gz +0 -0
  172. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs +1 -1
  173. package/cjs/min/persisters/persister-powersync/with-schemas/index.cjs.gz +0 -0
  174. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs +1 -1
  175. package/cjs/min/persisters/persister-sqlite-wasm/index.cjs.gz +0 -0
  176. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs +1 -1
  177. package/cjs/min/persisters/persister-sqlite-wasm/with-schemas/index.cjs.gz +0 -0
  178. package/cjs/min/persisters/persister-sqlite3/index.cjs +1 -1
  179. package/cjs/min/persisters/persister-sqlite3/index.cjs.gz +0 -0
  180. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs +1 -1
  181. package/cjs/min/persisters/persister-sqlite3/with-schemas/index.cjs.gz +0 -0
  182. package/cjs/min/store/index.cjs +1 -1
  183. package/cjs/min/store/index.cjs.gz +0 -0
  184. package/cjs/min/store/with-schemas/index.cjs +1 -1
  185. package/cjs/min/store/with-schemas/index.cjs.gz +0 -0
  186. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  187. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  188. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  189. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  190. package/cjs/min/tools/index.cjs +1 -1
  191. package/cjs/min/tools/index.cjs.gz +0 -0
  192. package/cjs/min/tools/with-schemas/index.cjs +1 -1
  193. package/cjs/min/tools/with-schemas/index.cjs.gz +0 -0
  194. package/cjs/min/ui-react-inspector/index.cjs +1 -1
  195. package/cjs/min/ui-react-inspector/index.cjs.gz +0 -0
  196. package/cjs/min/ui-react-inspector/with-schemas/index.cjs +1 -1
  197. package/cjs/min/ui-react-inspector/with-schemas/index.cjs.gz +0 -0
  198. package/cjs/min/with-schemas/index.cjs +1 -1
  199. package/cjs/min/with-schemas/index.cjs.gz +0 -0
  200. package/cjs/persisters/index.cjs +5 -3
  201. package/cjs/persisters/persister-automerge/index.cjs +7 -4
  202. package/cjs/persisters/persister-automerge/with-schemas/index.cjs +7 -4
  203. package/cjs/persisters/persister-browser/index.cjs +5 -3
  204. package/cjs/persisters/persister-browser/with-schemas/index.cjs +5 -3
  205. package/cjs/persisters/persister-cr-sqlite-wasm/index.cjs +52 -37
  206. package/cjs/persisters/persister-cr-sqlite-wasm/with-schemas/index.cjs +52 -37
  207. package/cjs/persisters/persister-electric-sql/index.cjs +52 -37
  208. package/cjs/persisters/persister-electric-sql/with-schemas/index.cjs +52 -37
  209. package/cjs/persisters/persister-expo-sqlite/index.cjs +52 -37
  210. package/cjs/persisters/persister-expo-sqlite/with-schemas/index.cjs +52 -37
  211. package/cjs/persisters/persister-file/index.cjs +5 -3
  212. package/cjs/persisters/persister-file/with-schemas/index.cjs +5 -3
  213. package/cjs/persisters/persister-indexed-db/index.cjs +5 -3
  214. package/cjs/persisters/persister-indexed-db/with-schemas/index.cjs +5 -3
  215. package/cjs/persisters/persister-libsql/index.cjs +52 -37
  216. package/cjs/persisters/persister-libsql/with-schemas/index.cjs +52 -37
  217. package/cjs/persisters/persister-partykit-client/index.cjs +5 -3
  218. package/cjs/persisters/persister-partykit-client/with-schemas/index.cjs +5 -3
  219. package/cjs/persisters/persister-partykit-server/index.cjs +36 -25
  220. package/cjs/persisters/persister-partykit-server/with-schemas/index.cjs +36 -25
  221. package/cjs/persisters/persister-postgres/index.cjs +77 -31
  222. package/cjs/persisters/persister-postgres/with-schemas/index.cjs +77 -31
  223. package/cjs/persisters/persister-powersync/index.cjs +52 -37
  224. package/cjs/persisters/persister-powersync/with-schemas/index.cjs +52 -37
  225. package/cjs/persisters/persister-remote/index.cjs +5 -3
  226. package/cjs/persisters/persister-remote/with-schemas/index.cjs +5 -3
  227. package/cjs/persisters/persister-sqlite-wasm/index.cjs +52 -37
  228. package/cjs/persisters/persister-sqlite-wasm/with-schemas/index.cjs +52 -37
  229. package/cjs/persisters/persister-sqlite3/index.cjs +52 -37
  230. package/cjs/persisters/persister-sqlite3/with-schemas/index.cjs +52 -37
  231. package/cjs/persisters/persister-yjs/index.cjs +5 -3
  232. package/cjs/persisters/persister-yjs/with-schemas/index.cjs +5 -3
  233. package/cjs/persisters/with-schemas/index.cjs +5 -3
  234. package/cjs/relationships/index.cjs +9 -7
  235. package/cjs/relationships/with-schemas/index.cjs +9 -7
  236. package/cjs/store/index.cjs +17 -9
  237. package/cjs/store/with-schemas/index.cjs +17 -9
  238. package/cjs/synchronizers/index.cjs +5 -3
  239. package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +5 -3
  240. package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +5 -3
  241. package/cjs/synchronizers/synchronizer-local/index.cjs +5 -3
  242. package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +5 -3
  243. package/cjs/synchronizers/synchronizer-ws-client/index.cjs +8 -6
  244. package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +8 -6
  245. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +60 -50
  246. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +60 -50
  247. package/cjs/synchronizers/with-schemas/index.cjs +5 -3
  248. package/cjs/tools/index.cjs +1 -1
  249. package/cjs/tools/with-schemas/index.cjs +1 -1
  250. package/cjs/ui-react-inspector/index.cjs +24 -13
  251. package/cjs/ui-react-inspector/with-schemas/index.cjs +24 -13
  252. package/cjs/with-schemas/index.cjs +22 -12
  253. package/es6/checkpoints/index.js +15 -13
  254. package/es6/checkpoints/with-schemas/index.js +15 -13
  255. package/es6/index.js +28 -20
  256. package/es6/indexes/index.js +15 -13
  257. package/es6/indexes/with-schemas/index.js +15 -13
  258. package/es6/mergeable-store/index.js +23 -17
  259. package/es6/mergeable-store/with-schemas/index.js +23 -17
  260. package/es6/metrics/index.js +15 -13
  261. package/es6/metrics/with-schemas/index.js +15 -13
  262. package/es6/min/index.js +1 -1
  263. package/es6/min/index.js.gz +0 -0
  264. package/es6/min/mergeable-store/index.js +1 -1
  265. package/es6/min/mergeable-store/index.js.gz +0 -0
  266. package/es6/min/mergeable-store/with-schemas/index.js +1 -1
  267. package/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  268. package/es6/min/persisters/persister-automerge/index.js +1 -1
  269. package/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  270. package/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  271. package/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  272. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  273. package/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  274. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  275. package/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  276. package/es6/min/persisters/persister-electric-sql/index.js +1 -1
  277. package/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  278. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  279. package/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  280. package/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  281. package/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  282. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  283. package/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  284. package/es6/min/persisters/persister-libsql/index.js +1 -1
  285. package/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  286. package/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  287. package/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  288. package/es6/min/persisters/persister-postgres/index.js +1 -1
  289. package/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  290. package/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  291. package/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  292. package/es6/min/persisters/persister-powersync/index.js +1 -1
  293. package/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  294. package/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  295. package/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  296. package/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  297. package/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  298. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  299. package/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  300. package/es6/min/persisters/persister-sqlite3/index.js +1 -1
  301. package/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  302. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  303. package/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  304. package/es6/min/store/index.js +1 -1
  305. package/es6/min/store/index.js.gz +0 -0
  306. package/es6/min/store/with-schemas/index.js +1 -1
  307. package/es6/min/store/with-schemas/index.js.gz +0 -0
  308. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  309. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  310. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  311. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  312. package/es6/min/ui-react-inspector/index.js +1 -1
  313. package/es6/min/ui-react-inspector/index.js.gz +0 -0
  314. package/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  315. package/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  316. package/es6/min/with-schemas/index.js +1 -1
  317. package/es6/min/with-schemas/index.js.gz +0 -0
  318. package/es6/persisters/index.js +5 -3
  319. package/es6/persisters/persister-automerge/index.js +7 -4
  320. package/es6/persisters/persister-automerge/with-schemas/index.js +7 -4
  321. package/es6/persisters/persister-browser/index.js +5 -3
  322. package/es6/persisters/persister-browser/with-schemas/index.js +5 -3
  323. package/es6/persisters/persister-cr-sqlite-wasm/index.js +82 -45
  324. package/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +82 -45
  325. package/es6/persisters/persister-electric-sql/index.js +82 -45
  326. package/es6/persisters/persister-electric-sql/with-schemas/index.js +82 -45
  327. package/es6/persisters/persister-expo-sqlite/index.js +82 -45
  328. package/es6/persisters/persister-expo-sqlite/with-schemas/index.js +82 -45
  329. package/es6/persisters/persister-file/index.js +5 -3
  330. package/es6/persisters/persister-file/with-schemas/index.js +5 -3
  331. package/es6/persisters/persister-indexed-db/index.js +5 -3
  332. package/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  333. package/es6/persisters/persister-libsql/index.js +82 -45
  334. package/es6/persisters/persister-libsql/with-schemas/index.js +82 -45
  335. package/es6/persisters/persister-partykit-client/index.js +5 -3
  336. package/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  337. package/es6/persisters/persister-partykit-server/index.js +36 -22
  338. package/es6/persisters/persister-partykit-server/with-schemas/index.js +36 -22
  339. package/es6/persisters/persister-postgres/index.js +108 -37
  340. package/es6/persisters/persister-postgres/with-schemas/index.js +108 -37
  341. package/es6/persisters/persister-powersync/index.js +82 -45
  342. package/es6/persisters/persister-powersync/with-schemas/index.js +82 -45
  343. package/es6/persisters/persister-remote/index.js +5 -3
  344. package/es6/persisters/persister-remote/with-schemas/index.js +5 -3
  345. package/es6/persisters/persister-sqlite-wasm/index.js +82 -45
  346. package/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +82 -45
  347. package/es6/persisters/persister-sqlite3/index.js +82 -45
  348. package/es6/persisters/persister-sqlite3/with-schemas/index.js +82 -45
  349. package/es6/persisters/persister-yjs/index.js +5 -3
  350. package/es6/persisters/persister-yjs/with-schemas/index.js +5 -3
  351. package/es6/persisters/with-schemas/index.js +5 -3
  352. package/es6/relationships/index.js +15 -13
  353. package/es6/relationships/with-schemas/index.js +15 -13
  354. package/es6/store/index.js +23 -17
  355. package/es6/store/with-schemas/index.js +23 -17
  356. package/es6/synchronizers/index.js +5 -3
  357. package/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  358. package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  359. package/es6/synchronizers/synchronizer-local/index.js +5 -3
  360. package/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  361. package/es6/synchronizers/synchronizer-ws-client/index.js +8 -6
  362. package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  363. package/es6/synchronizers/synchronizer-ws-server/index.js +113 -103
  364. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +113 -103
  365. package/es6/synchronizers/with-schemas/index.js +5 -3
  366. package/es6/ui-react-inspector/index.js +30 -21
  367. package/es6/ui-react-inspector/with-schemas/index.js +30 -21
  368. package/es6/with-schemas/index.js +28 -20
  369. package/index.js +22 -12
  370. package/indexes/index.js +9 -7
  371. package/indexes/with-schemas/index.js +9 -7
  372. package/mergeable-store/index.js +17 -9
  373. package/mergeable-store/with-schemas/index.js +17 -9
  374. package/metrics/index.js +9 -7
  375. package/metrics/with-schemas/index.js +9 -7
  376. package/min/index.js +1 -1
  377. package/min/index.js.gz +0 -0
  378. package/min/mergeable-store/index.js +1 -1
  379. package/min/mergeable-store/index.js.gz +0 -0
  380. package/min/mergeable-store/with-schemas/index.js +1 -1
  381. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  382. package/min/persisters/persister-automerge/index.js +1 -1
  383. package/min/persisters/persister-automerge/index.js.gz +0 -0
  384. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  385. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  386. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  387. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  388. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  389. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  390. package/min/persisters/persister-electric-sql/index.js +1 -1
  391. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  392. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  393. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  394. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  395. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  396. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  397. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  398. package/min/persisters/persister-libsql/index.js +1 -1
  399. package/min/persisters/persister-libsql/index.js.gz +0 -0
  400. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  401. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  402. package/min/persisters/persister-postgres/index.js +1 -1
  403. package/min/persisters/persister-postgres/index.js.gz +0 -0
  404. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  405. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  406. package/min/persisters/persister-powersync/index.js +1 -1
  407. package/min/persisters/persister-powersync/index.js.gz +0 -0
  408. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  409. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  410. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  411. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  412. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  413. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  414. package/min/persisters/persister-sqlite3/index.js +1 -1
  415. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  416. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  417. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  418. package/min/store/index.js +1 -1
  419. package/min/store/index.js.gz +0 -0
  420. package/min/store/with-schemas/index.js +1 -1
  421. package/min/store/with-schemas/index.js.gz +0 -0
  422. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  423. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  424. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  425. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  426. package/min/tools/index.js +1 -1
  427. package/min/tools/index.js.gz +0 -0
  428. package/min/tools/with-schemas/index.js +1 -1
  429. package/min/tools/with-schemas/index.js.gz +0 -0
  430. package/min/ui-react-inspector/index.js +1 -1
  431. package/min/ui-react-inspector/index.js.gz +0 -0
  432. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  433. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  434. package/min/with-schemas/index.js +1 -1
  435. package/min/with-schemas/index.js.gz +0 -0
  436. package/package.json +3 -3
  437. package/persisters/index.js +5 -3
  438. package/persisters/persister-automerge/index.js +7 -4
  439. package/persisters/persister-automerge/with-schemas/index.js +7 -4
  440. package/persisters/persister-browser/index.js +5 -3
  441. package/persisters/persister-browser/with-schemas/index.js +5 -3
  442. package/persisters/persister-cr-sqlite-wasm/index.js +52 -37
  443. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +52 -37
  444. package/persisters/persister-electric-sql/index.js +52 -37
  445. package/persisters/persister-electric-sql/with-schemas/index.js +52 -37
  446. package/persisters/persister-expo-sqlite/index.js +52 -37
  447. package/persisters/persister-expo-sqlite/with-schemas/index.js +52 -37
  448. package/persisters/persister-file/index.js +5 -3
  449. package/persisters/persister-file/with-schemas/index.js +5 -3
  450. package/persisters/persister-indexed-db/index.js +5 -3
  451. package/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  452. package/persisters/persister-libsql/index.js +52 -37
  453. package/persisters/persister-libsql/with-schemas/index.js +52 -37
  454. package/persisters/persister-partykit-client/index.js +5 -3
  455. package/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  456. package/persisters/persister-partykit-server/index.js +36 -25
  457. package/persisters/persister-partykit-server/with-schemas/index.js +36 -25
  458. package/persisters/persister-postgres/index.js +77 -31
  459. package/persisters/persister-postgres/with-schemas/index.js +77 -31
  460. package/persisters/persister-powersync/index.js +52 -37
  461. package/persisters/persister-powersync/with-schemas/index.js +52 -37
  462. package/persisters/persister-remote/index.js +5 -3
  463. package/persisters/persister-remote/with-schemas/index.js +5 -3
  464. package/persisters/persister-sqlite-wasm/index.js +52 -37
  465. package/persisters/persister-sqlite-wasm/with-schemas/index.js +52 -37
  466. package/persisters/persister-sqlite3/index.js +52 -37
  467. package/persisters/persister-sqlite3/with-schemas/index.js +52 -37
  468. package/persisters/persister-yjs/index.js +5 -3
  469. package/persisters/persister-yjs/with-schemas/index.js +5 -3
  470. package/persisters/with-schemas/index.js +5 -3
  471. package/readme.md +3 -3
  472. package/relationships/index.js +9 -7
  473. package/relationships/with-schemas/index.js +9 -7
  474. package/releases.md +4 -4
  475. package/store/index.js +17 -9
  476. package/store/with-schemas/index.js +17 -9
  477. package/synchronizers/index.js +5 -3
  478. package/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  479. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  480. package/synchronizers/synchronizer-local/index.js +5 -3
  481. package/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  482. package/synchronizers/synchronizer-ws-client/index.js +8 -6
  483. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  484. package/synchronizers/synchronizer-ws-server/index.js +60 -50
  485. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +60 -50
  486. package/synchronizers/with-schemas/index.js +5 -3
  487. package/tools/index.js +1 -1
  488. package/tools/with-schemas/index.js +1 -1
  489. package/ui-react-inspector/index.js +24 -13
  490. package/ui-react-inspector/with-schemas/index.js +24 -13
  491. package/umd/checkpoints/index.js +9 -7
  492. package/umd/checkpoints/with-schemas/index.js +9 -7
  493. package/umd/es6/checkpoints/index.js +15 -13
  494. package/umd/es6/checkpoints/with-schemas/index.js +15 -13
  495. package/umd/es6/index.js +28 -20
  496. package/umd/es6/indexes/index.js +15 -13
  497. package/umd/es6/indexes/with-schemas/index.js +15 -13
  498. package/umd/es6/mergeable-store/index.js +23 -17
  499. package/umd/es6/mergeable-store/with-schemas/index.js +23 -17
  500. package/umd/es6/metrics/index.js +15 -13
  501. package/umd/es6/metrics/with-schemas/index.js +15 -13
  502. package/umd/es6/min/index.js +1 -1
  503. package/umd/es6/min/index.js.gz +0 -0
  504. package/umd/es6/min/mergeable-store/index.js +1 -1
  505. package/umd/es6/min/mergeable-store/index.js.gz +0 -0
  506. package/umd/es6/min/mergeable-store/with-schemas/index.js +1 -1
  507. package/umd/es6/min/mergeable-store/with-schemas/index.js.gz +0 -0
  508. package/umd/es6/min/persisters/persister-automerge/index.js +1 -1
  509. package/umd/es6/min/persisters/persister-automerge/index.js.gz +0 -0
  510. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  511. package/umd/es6/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  512. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  513. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  514. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  515. package/umd/es6/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  516. package/umd/es6/min/persisters/persister-electric-sql/index.js +1 -1
  517. package/umd/es6/min/persisters/persister-electric-sql/index.js.gz +0 -0
  518. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  519. package/umd/es6/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  520. package/umd/es6/min/persisters/persister-expo-sqlite/index.js +1 -1
  521. package/umd/es6/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  522. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  523. package/umd/es6/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  524. package/umd/es6/min/persisters/persister-libsql/index.js +1 -1
  525. package/umd/es6/min/persisters/persister-libsql/index.js.gz +0 -0
  526. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  527. package/umd/es6/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  528. package/umd/es6/min/persisters/persister-postgres/index.js +1 -1
  529. package/umd/es6/min/persisters/persister-postgres/index.js.gz +0 -0
  530. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  531. package/umd/es6/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  532. package/umd/es6/min/persisters/persister-powersync/index.js +1 -1
  533. package/umd/es6/min/persisters/persister-powersync/index.js.gz +0 -0
  534. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  535. package/umd/es6/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  536. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js +1 -1
  537. package/umd/es6/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  538. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  539. package/umd/es6/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  540. package/umd/es6/min/persisters/persister-sqlite3/index.js +1 -1
  541. package/umd/es6/min/persisters/persister-sqlite3/index.js.gz +0 -0
  542. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  543. package/umd/es6/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  544. package/umd/es6/min/store/index.js +1 -1
  545. package/umd/es6/min/store/index.js.gz +0 -0
  546. package/umd/es6/min/store/with-schemas/index.js +1 -1
  547. package/umd/es6/min/store/with-schemas/index.js.gz +0 -0
  548. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  549. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  550. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  551. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  552. package/umd/es6/min/ui-react-inspector/index.js +1 -1
  553. package/umd/es6/min/ui-react-inspector/index.js.gz +0 -0
  554. package/umd/es6/min/ui-react-inspector/with-schemas/index.js +1 -1
  555. package/umd/es6/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  556. package/umd/es6/min/with-schemas/index.js +1 -1
  557. package/umd/es6/min/with-schemas/index.js.gz +0 -0
  558. package/umd/es6/persisters/index.js +5 -3
  559. package/umd/es6/persisters/persister-automerge/index.js +7 -4
  560. package/umd/es6/persisters/persister-automerge/with-schemas/index.js +7 -4
  561. package/umd/es6/persisters/persister-browser/index.js +5 -3
  562. package/umd/es6/persisters/persister-browser/with-schemas/index.js +5 -3
  563. package/umd/es6/persisters/persister-cr-sqlite-wasm/index.js +86 -47
  564. package/umd/es6/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +86 -47
  565. package/umd/es6/persisters/persister-electric-sql/index.js +86 -47
  566. package/umd/es6/persisters/persister-electric-sql/with-schemas/index.js +86 -47
  567. package/umd/es6/persisters/persister-expo-sqlite/index.js +86 -47
  568. package/umd/es6/persisters/persister-expo-sqlite/with-schemas/index.js +86 -47
  569. package/umd/es6/persisters/persister-file/index.js +5 -3
  570. package/umd/es6/persisters/persister-file/with-schemas/index.js +5 -3
  571. package/umd/es6/persisters/persister-indexed-db/index.js +5 -3
  572. package/umd/es6/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  573. package/umd/es6/persisters/persister-libsql/index.js +86 -47
  574. package/umd/es6/persisters/persister-libsql/with-schemas/index.js +86 -47
  575. package/umd/es6/persisters/persister-partykit-client/index.js +5 -3
  576. package/umd/es6/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  577. package/umd/es6/persisters/persister-partykit-server/index.js +36 -22
  578. package/umd/es6/persisters/persister-partykit-server/with-schemas/index.js +36 -22
  579. package/umd/es6/persisters/persister-postgres/index.js +108 -37
  580. package/umd/es6/persisters/persister-postgres/with-schemas/index.js +108 -37
  581. package/umd/es6/persisters/persister-powersync/index.js +86 -47
  582. package/umd/es6/persisters/persister-powersync/with-schemas/index.js +86 -47
  583. package/umd/es6/persisters/persister-remote/index.js +5 -3
  584. package/umd/es6/persisters/persister-remote/with-schemas/index.js +5 -3
  585. package/umd/es6/persisters/persister-sqlite-wasm/index.js +86 -47
  586. package/umd/es6/persisters/persister-sqlite-wasm/with-schemas/index.js +86 -47
  587. package/umd/es6/persisters/persister-sqlite3/index.js +86 -47
  588. package/umd/es6/persisters/persister-sqlite3/with-schemas/index.js +86 -47
  589. package/umd/es6/persisters/persister-yjs/index.js +5 -3
  590. package/umd/es6/persisters/persister-yjs/with-schemas/index.js +5 -3
  591. package/umd/es6/persisters/with-schemas/index.js +5 -3
  592. package/umd/es6/relationships/index.js +15 -13
  593. package/umd/es6/relationships/with-schemas/index.js +15 -13
  594. package/umd/es6/store/index.js +23 -17
  595. package/umd/es6/store/with-schemas/index.js +23 -17
  596. package/umd/es6/synchronizers/index.js +5 -3
  597. package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  598. package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  599. package/umd/es6/synchronizers/synchronizer-local/index.js +5 -3
  600. package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  601. package/umd/es6/synchronizers/synchronizer-ws-client/index.js +8 -6
  602. package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  603. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +113 -109
  604. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +113 -109
  605. package/umd/es6/synchronizers/with-schemas/index.js +5 -3
  606. package/umd/es6/ui-react-inspector/index.js +30 -21
  607. package/umd/es6/ui-react-inspector/with-schemas/index.js +30 -21
  608. package/umd/es6/with-schemas/index.js +28 -20
  609. package/umd/index.js +22 -12
  610. package/umd/indexes/index.js +9 -7
  611. package/umd/indexes/with-schemas/index.js +9 -7
  612. package/umd/mergeable-store/index.js +17 -9
  613. package/umd/mergeable-store/with-schemas/index.js +17 -9
  614. package/umd/metrics/index.js +9 -7
  615. package/umd/metrics/with-schemas/index.js +9 -7
  616. package/umd/min/index.js +1 -1
  617. package/umd/min/index.js.gz +0 -0
  618. package/umd/min/mergeable-store/index.js +1 -1
  619. package/umd/min/mergeable-store/index.js.gz +0 -0
  620. package/umd/min/mergeable-store/with-schemas/index.js +1 -1
  621. package/umd/min/mergeable-store/with-schemas/index.js.gz +0 -0
  622. package/umd/min/persisters/persister-automerge/index.js +1 -1
  623. package/umd/min/persisters/persister-automerge/index.js.gz +0 -0
  624. package/umd/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  625. package/umd/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  626. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  627. package/umd/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  628. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  629. package/umd/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  630. package/umd/min/persisters/persister-electric-sql/index.js +1 -1
  631. package/umd/min/persisters/persister-electric-sql/index.js.gz +0 -0
  632. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  633. package/umd/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  634. package/umd/min/persisters/persister-expo-sqlite/index.js +1 -1
  635. package/umd/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  636. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  637. package/umd/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  638. package/umd/min/persisters/persister-libsql/index.js +1 -1
  639. package/umd/min/persisters/persister-libsql/index.js.gz +0 -0
  640. package/umd/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  641. package/umd/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  642. package/umd/min/persisters/persister-postgres/index.js +1 -1
  643. package/umd/min/persisters/persister-postgres/index.js.gz +0 -0
  644. package/umd/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  645. package/umd/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  646. package/umd/min/persisters/persister-powersync/index.js +1 -1
  647. package/umd/min/persisters/persister-powersync/index.js.gz +0 -0
  648. package/umd/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  649. package/umd/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  650. package/umd/min/persisters/persister-sqlite-wasm/index.js +1 -1
  651. package/umd/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  652. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  653. package/umd/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  654. package/umd/min/persisters/persister-sqlite3/index.js +1 -1
  655. package/umd/min/persisters/persister-sqlite3/index.js.gz +0 -0
  656. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  657. package/umd/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  658. package/umd/min/store/index.js +1 -1
  659. package/umd/min/store/index.js.gz +0 -0
  660. package/umd/min/store/with-schemas/index.js +1 -1
  661. package/umd/min/store/with-schemas/index.js.gz +0 -0
  662. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  663. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  664. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  665. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  666. package/umd/min/tools/index.js +1 -1
  667. package/umd/min/tools/index.js.gz +0 -0
  668. package/umd/min/tools/with-schemas/index.js +1 -1
  669. package/umd/min/tools/with-schemas/index.js.gz +0 -0
  670. package/umd/min/ui-react-inspector/index.js +1 -1
  671. package/umd/min/ui-react-inspector/index.js.gz +0 -0
  672. package/umd/min/ui-react-inspector/with-schemas/index.js +1 -1
  673. package/umd/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  674. package/umd/min/with-schemas/index.js +1 -1
  675. package/umd/min/with-schemas/index.js.gz +0 -0
  676. package/umd/persisters/index.js +5 -3
  677. package/umd/persisters/persister-automerge/index.js +7 -4
  678. package/umd/persisters/persister-automerge/with-schemas/index.js +7 -4
  679. package/umd/persisters/persister-browser/index.js +5 -3
  680. package/umd/persisters/persister-browser/with-schemas/index.js +5 -3
  681. package/umd/persisters/persister-cr-sqlite-wasm/index.js +52 -37
  682. package/umd/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +52 -37
  683. package/umd/persisters/persister-electric-sql/index.js +52 -37
  684. package/umd/persisters/persister-electric-sql/with-schemas/index.js +52 -37
  685. package/umd/persisters/persister-expo-sqlite/index.js +52 -37
  686. package/umd/persisters/persister-expo-sqlite/with-schemas/index.js +52 -37
  687. package/umd/persisters/persister-file/index.js +5 -3
  688. package/umd/persisters/persister-file/with-schemas/index.js +5 -3
  689. package/umd/persisters/persister-indexed-db/index.js +5 -3
  690. package/umd/persisters/persister-indexed-db/with-schemas/index.js +5 -3
  691. package/umd/persisters/persister-libsql/index.js +52 -37
  692. package/umd/persisters/persister-libsql/with-schemas/index.js +52 -37
  693. package/umd/persisters/persister-partykit-client/index.js +5 -3
  694. package/umd/persisters/persister-partykit-client/with-schemas/index.js +5 -3
  695. package/umd/persisters/persister-partykit-server/index.js +36 -25
  696. package/umd/persisters/persister-partykit-server/with-schemas/index.js +36 -25
  697. package/umd/persisters/persister-postgres/index.js +77 -31
  698. package/umd/persisters/persister-postgres/with-schemas/index.js +77 -31
  699. package/umd/persisters/persister-powersync/index.js +52 -37
  700. package/umd/persisters/persister-powersync/with-schemas/index.js +52 -37
  701. package/umd/persisters/persister-remote/index.js +5 -3
  702. package/umd/persisters/persister-remote/with-schemas/index.js +5 -3
  703. package/umd/persisters/persister-sqlite-wasm/index.js +52 -37
  704. package/umd/persisters/persister-sqlite-wasm/with-schemas/index.js +52 -37
  705. package/umd/persisters/persister-sqlite3/index.js +52 -37
  706. package/umd/persisters/persister-sqlite3/with-schemas/index.js +52 -37
  707. package/umd/persisters/persister-yjs/index.js +5 -3
  708. package/umd/persisters/persister-yjs/with-schemas/index.js +5 -3
  709. package/umd/persisters/with-schemas/index.js +5 -3
  710. package/umd/relationships/index.js +9 -7
  711. package/umd/relationships/with-schemas/index.js +9 -7
  712. package/umd/store/index.js +17 -9
  713. package/umd/store/with-schemas/index.js +17 -9
  714. package/umd/synchronizers/index.js +5 -3
  715. package/umd/synchronizers/synchronizer-broadcast-channel/index.js +5 -3
  716. package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +5 -3
  717. package/umd/synchronizers/synchronizer-local/index.js +5 -3
  718. package/umd/synchronizers/synchronizer-local/with-schemas/index.js +5 -3
  719. package/umd/synchronizers/synchronizer-ws-client/index.js +8 -6
  720. package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +8 -6
  721. package/umd/synchronizers/synchronizer-ws-server/index.js +62 -50
  722. package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +62 -50
  723. package/umd/synchronizers/with-schemas/index.js +5 -3
  724. package/umd/tools/index.js +1 -1
  725. package/umd/tools/with-schemas/index.js +1 -1
  726. package/umd/ui-react-inspector/index.js +24 -13
  727. package/umd/ui-react-inspector/with-schemas/index.js +24 -13
  728. package/umd/with-schemas/index.js +22 -12
  729. package/with-schemas/index.js +22 -12
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),d=a=>a.length,u=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),g=a=>0==d(a),m=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),h="_",C="_id",N="SELECT",T="WHERE",O="TABLE",S="ALTER "+O,b="DELETE FROM",$=N+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>E(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,U=a=>F.getPrototypeOf(a),B=F.entries,J=F.keys,W=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),q=(a,t)=>f(B(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>d(J(a)),z=a=>(a=>!r(a)&&c(U(a),(a=>a==F.prototype||r(U(a))),(()=>!0)))(a)&&0==H(a),K=a=>new Map(a),Q=(a,t)=>a?.get(t),V=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),Q(a,t)),aa=K(),ta=K(),ea=(a,t,e,n,s,i,o,l={},w=[])=>{let d,u,v,E=0,f=0,g=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[m,h,C,N,T]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!z(a)||!z(t),t.setContent]:p("Store type not supported by this Persister"))(o,a),O=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,f++,await R((async()=>{try{const a=await t();y(a)?O(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),b=()=>(u&&(s(u),u=void 0),L),$=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),I=()=>(c(v,a.delListener),v=void 0,L),R=async(...a)=>(A(Q(ta,w),...a),await(async()=>{if(!Q(aa,w)){for(X(aa,w,1);!r((a=Q(ta,w),d=a.shift()));)try{await d()}catch(a){i?.(a)}X(aa,w,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await b().load(a);try{u=await n((async(a,t)=>{t||a?2!=E&&(E=1,f++,O(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!r(u),save:$,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();N(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(v),schedule:R,getStore:()=>a,destroy:()=>(Q(ta,w).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:f,saves:g}),...l};return W(L)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const o=K();return[async()=>{o.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(o,a,na),t)))},async(t,e)=>((a,t)=>_(Q(o,a),t))(t,e)?Y(m(f(await a($+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!z(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();q(s??{},(a=>f(J(a??{}),(a=>sa(w,a)))));const d=x(w);if(!y&&l&&g(d)&&_(o,t))return await a("DROP "+O+M(t)),void X(o,t);const p=Q(o,t),v=na(x(p));if(g(d)||(_(o,t)?await u(f([e,...d],(async(n,s)=>{j(v,n)||(await a(S+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+O+M(t)+`(${M(e)}text PRIMARY KEY${E(f(d,(a=>n+M(a)+"json")))});`),X(o,t,na([e,...d])))),await u([...!y&&c?f(x(v),(async n=>{n!=e&&(await a(S+M(t)+"DROP"+M(n)),j(p,n))})):[]]),y)r(s)?await a(b+M(t)+T+" true"):await u(q(s,(async(n,s)=>{r(n)?await a(b+M(t)+T+M(e)+"=$1",[s]):g(d)||await oa(a,t,e,J(n),[s,...G(n)],i)})));else if(g(d))_(o,t)&&await a(b+M(t)+T+" true");else{const n=m(x(Q(o,t)),(a=>a!=e)),r=[],c=[];q(s??{},((a,t)=>{A(r,t,...f(n,(t=>a?.[t]))),A(c,t)})),await oa(a,t,e,n,r,i),await a(b+M(t)+T+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+E(f(s,(a=>n+M(a))))+")VALUES"+ra(i,d(s)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(f(s,(a=>M(a)+"=excluded."+M(a))),n):""),f(i,(a=>a??null))),ra=(a,t)=>E(v(d(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,o,[r,c,l],y,w,d,u,p)=>{const[v,E,f,g]=ia(t,y,w,s,p),m=ea(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 f(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},d);return m},la=(a,t,e,n,s,i,o,[c,l,[y,w,d]],p,v,E,f,g)=>{const[A,N,T,O]=ia(t,p,v,s,g),S=async(a,t)=>await u(V(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t)}))),b=async(a,t)=>w?await T(d,C,{[h]:a},!0,!0,t):null,$=ea(a,(async()=>await O((async()=>{await A();const a=await(async()=>Y(m(await u(V(c,(async([a,t],e)=>[a,await N(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>y?(await N(d,C))[h]:{})();return z(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await A(),r(t)){const[t,e]=a();await S(t),await b(e)}else await S(t[0],!0),await b(t[1],!0)}))),e,n,s,o,{[f]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},ya="ColumnName",wa="store",da="json",ua=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,Ea="autoLoadIntervalSeconds",fa="rowId"+ya,ga="tableId",ma="tableName",Aa="deleteEmptyColumns",ha="deleteEmptyTable",Ca={mode:da,[Ea]:1},Na={load:0,save:0,[ma]:e+"_values"},Ta=(a,t,e,n,s)=>{const i=K();return q(a,((a,o)=>{const c=w(G(k(t,l(a)?{[e]:a}:a)),0,H(t));r(c[0])||n(o,c[0])||(s(o,c[0]),X(i,o,c))})),i};a.createCrSqliteWasmPersister=(a,t,n,s,i)=>((a,t,n,s,i,r,c,y,d,u="getDb",p)=>{let v,E,f;const[g,m,A,h]=(a=>{const t=(a=>k(Ca,l(a)?{[ua]:a}:a??{}))(a),n=t[Ea];if(t.mode==da){const a=t[ua]??e;return[1,n,[a,t[pa]??C,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(G(k(Na,o)),0,H(Na)),c=r[2],y=na(c),d=na(c);return[0,n,[Ta(s,{[ga]:null,[fa]:C},ga,(a=>_(d,a)),(a=>sa(y,a))),Ta(i,{[ma]:null,[fa]:C,[Aa]:0,[ha]:0},ma,((a,t)=>_(d,t)),((a,t)=>sa(y,t))),r],y]})(t);return(g?ca:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(N+` ${R} d,${L} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${L}`);t==(v??=t)&&e==(E??=e)&&s==(f??=s)||(a(),v=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),v=E=f=null,i(t)}),c,(()=>0),y,A,x(h),(async(a,t)=>await a(`${N} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),d,u,p)})(a,n,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),s,i,1,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),d=a=>a.length,u=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),g=a=>0==d(a),m=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),h="_",C="_id",N="SELECT",T="WHERE",O="TABLE",S="ALTER "+O,$="DELETE FROM",b=N+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>E(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,U=a=>F.getPrototypeOf(a),B=F.entries,J=F.keys,W=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),q=(a,t)=>f(B(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>d(J(a)),z=a=>(a=>!r(a)&&c(U(a),(a=>a==F.prototype||r(U(a))),(()=>!0)))(a)&&0==H(a),K=a=>new Map(a),Q=(a,t)=>a?.get(t),V=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),Q(a,t)),aa=K(),ta=K(),ea=(a,t,e,n,s,i,o,l={},w=[])=>{let d,u,v,E=0,f=0,g=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[m,h,C,N,T]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!z(a)||!z(t),t.setContent]:p("Store type not supported by this Persister"))(o,a),O=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,f++,await R((async()=>{try{const a=await t();y(a)?O(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),$=()=>(u&&(s(u),u=void 0),L),b=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),I=()=>(c(v,a.delListener),v=void 0,L),R=async(...a)=>(A(Q(ta,w),...a),await(async()=>{if(!Q(aa,w)){for(X(aa,w,1);!r((a=Q(ta,w),d=a.shift()));)try{await d()}catch(a){i?.(a)}X(aa,w,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await $().load(a);try{u=await n((async(a,t)=>{t||a?2!=E&&(E=1,f++,O(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:$,isAutoLoading:()=>!r(u),save:b,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();N(a)&&b(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(v),schedule:R,getStore:()=>a,destroy:()=>(Q(ta,w).splice(0,void 0),$().stopAutoSave()),getStats:()=>({loads:f,saves:g}),...l};return W(L)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const o=K();return[async()=>{o.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(o,a,na),t)))},async(t,e)=>((a,t)=>_(Q(o,a),t))(t,e)?Y(m(f(await a(b+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!z(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();q(s??{},(a=>f(J(a??{}),(a=>sa(w,a)))));const d=x(w);if(!y&&l&&g(d)&&_(o,t))return await a("DROP "+O+M(t)),void X(o,t);const p=Q(o,t),v=na(x(p));if(g(d)||(_(o,t)?await u(f([e,...d],(async(n,s)=>{j(v,n)||(await a(S+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+O+M(t)+`(${M(e)}text PRIMARY KEY${E(f(d,(a=>n+M(a)+"json")))});`),X(o,t,na([e,...d])))),await u([...!y&&c?f(x(v),(async n=>{n!=e&&(await a(S+M(t)+"DROP"+M(n)),j(p,n))})):[]]),y)r(s)?await a($+M(t)+T+" true"):await u(q(s,(async(n,s)=>{r(n)?await a($+M(t)+T+M(e)+"=$1",[s]):g(d)||await oa(a,t,e,J(n),[s,...G(n)],i)})));else if(g(d))_(o,t)&&await a($+M(t)+T+" true");else{const n=m(x(Q(o,t)),(a=>a!=e)),r=[],c=[];q(s??{},((a,t)=>{A(r,t,...f(n,(t=>a?.[t]))),A(c,t)})),await oa(a,t,e,n,r,i),await a($+M(t)+T+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+E(f(s,(a=>n+M(a))))+")VALUES"+ra(i,d(s)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(f(s,(a=>M(a)+"=excluded."+M(a))),n):""),f(i,(a=>a??null))),ra=(a,t)=>E(v(d(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,o,[r,c,l],y,w,d,u,p)=>{const[v,E,f,g]=ia(t,y,w,s,p),m=ea(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 f(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},d);return m},la=(a,t,e,n,s,i,o,[c,l,[y,w,d]],p,v,E,f,g)=>{const[A,N,T,O]=ia(t,p,v,s,g),S=async(a,t)=>await u(V(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t)}))),$=async(a,t)=>w?await T(d,C,{[h]:a},!0,!0,t):null,b=ea(a,(async()=>await O((async()=>{await A();const a=await(async()=>Y(m(await u(V(c,(async([a,t],e)=>[a,await N(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>y?(await N(d,C))[h]:{})();return z(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await A(),r(t)){const[t,e]=a();await S(t),await $(e)}else await S(t[0],!0),await $(t[1],!0)}))),e,n,s,o,{[f]:()=>E,destroy:()=>(b.stopAutoLoad().stopAutoSave(),i(),b)},E);return b},ya="ColumnName",wa="store",da="json",ua=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,Ea="autoLoadIntervalSeconds",fa="rowId"+ya,ga="tableId",ma="tableName",Aa="deleteEmptyColumns",ha="deleteEmptyTable",Ca={mode:da,[Ea]:1},Na={load:0,save:0,[ma]:e+"_values"},Ta=(a,t,e,n,s)=>{const i=K();return q(a,((a,o)=>{const c=w(G(k(t,l(a)?{[e]:a}:a)),0,H(t));r(c[0])||n(o,c[0])||(s(o,c[0]),X(i,o,c))})),i},Oa=(a,t,n,s,i,r,c,y,d,u="getDb",p)=>{let v,E,f;const g=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,A,h,O]=(a=>{const t=(a=>k(Ca,l(a)?{[ua]:a}:a??{}))(a),n=t[Ea];if(t.mode==da){const a=t[ua]??e;return[1,n,[a,t[pa]??C,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(G(k(Na,o)),0,H(Na)),c=r[2],y=na(c),d=na(c);return[0,n,[Ta(s,{[ga]:null,[fa]:C},ga,(a=>_(d,a)),(a=>sa(y,a))),Ta(i,{[ma]:null,[fa]:C,[Aa]:0,[ha]:0},ma,((a,t)=>_(d,t)),((a,t)=>sa(y,t))),r],y]})(t);return(m?ca:la)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await g(`${N} ${R} d,${L} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${L}`);t==v&&e==E&&n==f||(null!=v&&a(),v=t,E=e,f=n)}catch{}}),1e3*A),n=()=>{v=E=f=null,o(t)},r=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(r)}}),(a=>a()),c,(()=>0),y,h,x(O),(async(a,t)=>await a(`${N} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),d,u,p)};a.createCrSqliteWasmPersister=(a,t,e,n,s)=>Oa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,1,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),d=a=>a.length,u=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),g=a=>0==d(a),m=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),h="_",C="_id",N="SELECT",T="WHERE",O="TABLE",S="ALTER "+O,b="DELETE FROM",$=N+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>E(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,U=a=>F.getPrototypeOf(a),B=F.entries,J=F.keys,W=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),q=(a,t)=>f(B(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>d(J(a)),z=a=>(a=>!r(a)&&c(U(a),(a=>a==F.prototype||r(U(a))),(()=>!0)))(a)&&0==H(a),K=a=>new Map(a),Q=(a,t)=>a?.get(t),V=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),Q(a,t)),aa=K(),ta=K(),ea=(a,t,e,n,s,i,o,l={},w=[])=>{let d,u,v,E=0,f=0,g=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[m,h,C,N,T]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!z(a)||!z(t),t.setContent]:p("Store type not supported by this Persister"))(o,a),O=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,f++,await R((async()=>{try{const a=await t();y(a)?O(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),b=()=>(u&&(s(u),u=void 0),L),$=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),I=()=>(c(v,a.delListener),v=void 0,L),R=async(...a)=>(A(Q(ta,w),...a),await(async()=>{if(!Q(aa,w)){for(X(aa,w,1);!r((a=Q(ta,w),d=a.shift()));)try{await d()}catch(a){i?.(a)}X(aa,w,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await b().load(a);try{u=await n((async(a,t)=>{t||a?2!=E&&(E=1,f++,O(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:b,isAutoLoading:()=>!r(u),save:$,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();N(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(v),schedule:R,getStore:()=>a,destroy:()=>(Q(ta,w).splice(0,void 0),b().stopAutoSave()),getStats:()=>({loads:f,saves:g}),...l};return W(L)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const o=K();return[async()=>{o.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(o,a,na),t)))},async(t,e)=>((a,t)=>_(Q(o,a),t))(t,e)?Y(m(f(await a($+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!z(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();q(s??{},(a=>f(J(a??{}),(a=>sa(w,a)))));const d=x(w);if(!y&&l&&g(d)&&_(o,t))return await a("DROP "+O+M(t)),void X(o,t);const p=Q(o,t),v=na(x(p));if(g(d)||(_(o,t)?await u(f([e,...d],(async(n,s)=>{j(v,n)||(await a(S+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+O+M(t)+`(${M(e)}text PRIMARY KEY${E(f(d,(a=>n+M(a)+"json")))});`),X(o,t,na([e,...d])))),await u([...!y&&c?f(x(v),(async n=>{n!=e&&(await a(S+M(t)+"DROP"+M(n)),j(p,n))})):[]]),y)r(s)?await a(b+M(t)+T+" true"):await u(q(s,(async(n,s)=>{r(n)?await a(b+M(t)+T+M(e)+"=$1",[s]):g(d)||await oa(a,t,e,J(n),[s,...G(n)],i)})));else if(g(d))_(o,t)&&await a(b+M(t)+T+" true");else{const n=m(x(Q(o,t)),(a=>a!=e)),r=[],c=[];q(s??{},((a,t)=>{A(r,t,...f(n,(t=>a?.[t]))),A(c,t)})),await oa(a,t,e,n,r,i),await a(b+M(t)+T+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+E(f(s,(a=>n+M(a))))+")VALUES"+ra(i,d(s)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(f(s,(a=>M(a)+"=excluded."+M(a))),n):""),f(i,(a=>a??null))),ra=(a,t)=>E(v(d(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,o,[r,c,l],y,w,d,u,p)=>{const[v,E,f,g]=ia(t,y,w,s,p),m=ea(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 f(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},d);return m},la=(a,t,e,n,s,i,o,[c,l,[y,w,d]],p,v,E,f,g)=>{const[A,N,T,O]=ia(t,p,v,s,g),S=async(a,t)=>await u(V(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t)}))),b=async(a,t)=>w?await T(d,C,{[h]:a},!0,!0,t):null,$=ea(a,(async()=>await O((async()=>{await A();const a=await(async()=>Y(m(await u(V(c,(async([a,t],e)=>[a,await N(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>y?(await N(d,C))[h]:{})();return z(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await A(),r(t)){const[t,e]=a();await S(t),await b(e)}else await S(t[0],!0),await b(t[1],!0)}))),e,n,s,o,{[f]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},ya="ColumnName",wa="store",da="json",ua=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,Ea="autoLoadIntervalSeconds",fa="rowId"+ya,ga="tableId",ma="tableName",Aa="deleteEmptyColumns",ha="deleteEmptyTable",Ca={mode:da,[Ea]:1},Na={load:0,save:0,[ma]:e+"_values"},Ta=(a,t,e,n,s)=>{const i=K();return q(a,((a,o)=>{const c=w(G(k(t,l(a)?{[e]:a}:a)),0,H(t));r(c[0])||n(o,c[0])||(s(o,c[0]),X(i,o,c))})),i};a.createCrSqliteWasmPersister=(a,t,n,s,i)=>((a,t,n,s,i,r,c,y,d,u="getDb",p)=>{let v,E,f;const[g,m,A,h]=(a=>{const t=(a=>k(Ca,l(a)?{[ua]:a}:a??{}))(a),n=t[Ea];if(t.mode==da){const a=t[ua]??e;return[1,n,[a,t[pa]??C,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(G(k(Na,o)),0,H(Na)),c=r[2],y=na(c),d=na(c);return[0,n,[Ta(s,{[ga]:null,[fa]:C},ga,(a=>_(d,a)),(a=>sa(y,a))),Ta(i,{[ma]:null,[fa]:C,[Aa]:0,[ha]:0},ma,((a,t)=>_(d,t)),((a,t)=>sa(y,t))),r],y]})(t);return(g?ca:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(N+` ${R} d,${L} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${L}`);t==(v??=t)&&e==(E??=e)&&s==(f??=s)||(a(),v=t,E=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),v=E=f=null,i(t)}),c,(()=>0),y,A,x(h),(async(a,t)=>await a(`${N} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),d,u,p)})(a,n,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),s,i,1,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),d=a=>a.length,u=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),g=a=>0==d(a),m=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),h="_",C="_id",N="SELECT",T="WHERE",O="TABLE",S="ALTER "+O,$="DELETE FROM",b=N+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>E(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,U=a=>F.getPrototypeOf(a),B=F.entries,J=F.keys,W=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),q=(a,t)=>f(B(a),(([a,e])=>t(e,a))),G=a=>F.values(a),H=a=>d(J(a)),z=a=>(a=>!r(a)&&c(U(a),(a=>a==F.prototype||r(U(a))),(()=>!0)))(a)&&0==H(a),K=a=>new Map(a),Q=(a,t)=>a?.get(t),V=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),Q(a,t)),aa=K(),ta=K(),ea=(a,t,e,n,s,i,o,l={},w=[])=>{let d,u,v,E=0,f=0,g=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[m,h,C,N,T]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!z(a)||!z(t),t.setContent]:p("Store type not supported by this Persister"))(o,a),O=t=>{(m&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},S=async a=>(2!=E&&(E=1,f++,await R((async()=>{try{const a=await t();y(a)?O(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&T(a)}E=0}))),L),$=()=>(u&&(s(u),u=void 0),L),b=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(h,a)}catch(a){i?.(a)}E=0}))),L),I=()=>(c(v,a.delListener),v=void 0,L),R=async(...a)=>(A(Q(ta,w),...a),await(async()=>{if(!Q(aa,w)){for(X(aa,w,1);!r((a=Q(ta,w),d=a.shift()));)try{await d()}catch(a){i?.(a)}X(aa,w,0)}var a})(),L),L={load:S,startAutoLoad:async a=>{await $().load(a);try{u=await n((async(a,t)=>{t||a?2!=E&&(E=1,f++,O(t??a),E=0):await S()}))}catch(a){i?.(a)}return L},stopAutoLoad:$,isAutoLoading:()=>!r(u),save:b,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=C();N(a)&&b(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(v),schedule:R,getStore:()=>a,destroy:()=>(Q(ta,w).splice(0,void 0),$().stopAutoSave()),getStats:()=>({loads:f,saves:g}),...l};return W(L)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const o=K();return[async()=>{o.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(o,a,na),t)))},async(t,e)=>((a,t)=>_(Q(o,a),t))(t,e)?Y(m(f(await a(b+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!z(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();q(s??{},(a=>f(J(a??{}),(a=>sa(w,a)))));const d=x(w);if(!y&&l&&g(d)&&_(o,t))return await a("DROP "+O+M(t)),void X(o,t);const p=Q(o,t),v=na(x(p));if(g(d)||(_(o,t)?await u(f([e,...d],(async(n,s)=>{j(v,n)||(await a(S+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+O+M(t)+`(${M(e)}text PRIMARY KEY${E(f(d,(a=>n+M(a)+"json")))});`),X(o,t,na([e,...d])))),await u([...!y&&c?f(x(v),(async n=>{n!=e&&(await a(S+M(t)+"DROP"+M(n)),j(p,n))})):[]]),y)r(s)?await a($+M(t)+T+" true"):await u(q(s,(async(n,s)=>{r(n)?await a($+M(t)+T+M(e)+"=$1",[s]):g(d)||await oa(a,t,e,J(n),[s,...G(n)],i)})));else if(g(d))_(o,t)&&await a($+M(t)+T+" true");else{const n=m(x(Q(o,t)),(a=>a!=e)),r=[],c=[];q(s??{},((a,t)=>{A(r,t,...f(n,(t=>a?.[t]))),A(c,t)})),await oa(a,t,e,n,r,i),await a($+M(t)+T+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+E(f(s,(a=>n+M(a))))+")VALUES"+ra(i,d(s)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(f(s,(a=>M(a)+"=excluded."+M(a))),n):""),f(i,(a=>a??null))),ra=(a,t)=>E(v(d(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,o,[r,c,l],y,w,d,u,p)=>{const[v,E,f,g]=ia(t,y,w,s,p),m=ea(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 f(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},d);return m},la=(a,t,e,n,s,i,o,[c,l,[y,w,d]],p,v,E,f,g)=>{const[A,N,T,O]=ia(t,p,v,s,g),S=async(a,t)=>await u(V(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await T(e,n,a[o],s,i,t)}))),$=async(a,t)=>w?await T(d,C,{[h]:a},!0,!0,t):null,b=ea(a,(async()=>await O((async()=>{await A();const a=await(async()=>Y(m(await u(V(c,(async([a,t],e)=>[a,await N(e,t)]))),(a=>!z(a[1])))))(),t=await(async()=>y?(await N(d,C))[h]:{})();return z(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await A(),r(t)){const[t,e]=a();await S(t),await $(e)}else await S(t[0],!0),await $(t[1],!0)}))),e,n,s,o,{[f]:()=>E,destroy:()=>(b.stopAutoLoad().stopAutoSave(),i(),b)},E);return b},ya="ColumnName",wa="store",da="json",ua=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,Ea="autoLoadIntervalSeconds",fa="rowId"+ya,ga="tableId",ma="tableName",Aa="deleteEmptyColumns",ha="deleteEmptyTable",Ca={mode:da,[Ea]:1},Na={load:0,save:0,[ma]:e+"_values"},Ta=(a,t,e,n,s)=>{const i=K();return q(a,((a,o)=>{const c=w(G(k(t,l(a)?{[e]:a}:a)),0,H(t));r(c[0])||n(o,c[0])||(s(o,c[0]),X(i,o,c))})),i},Oa=(a,t,n,s,i,r,c,y,d,u="getDb",p)=>{let v,E,f;const g=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[m,A,h,O]=(a=>{const t=(a=>k(Ca,l(a)?{[ua]:a}:a??{}))(a),n=t[Ea];if(t.mode==da){const a=t[ua]??e;return[1,n,[a,t[pa]??C,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(G(k(Na,o)),0,H(Na)),c=r[2],y=na(c),d=na(c);return[0,n,[Ta(s,{[ga]:null,[fa]:C},ga,(a=>_(d,a)),(a=>sa(y,a))),Ta(i,{[ma]:null,[fa]:C,[Aa]:0,[ha]:0},ma,((a,t)=>_(d,t)),((a,t)=>sa(y,t))),r],y]})(t);return(m?ca:la)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await g(`${N} ${R} d,${L} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${L}`);t==v&&e==E&&n==f||(null!=v&&a(),v=t,E=e,f=n)}catch{}}),1e3*A),n=()=>{v=E=f=null,o(t)},r=s((t=>{O.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(r)}}),(a=>a()),c,(()=>0),y,h,x(O),(async(a,t)=>await a(`${N} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${T} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),d,u,p)};a.createCrSqliteWasmPersister=(a,t,e,n,s)=>Oa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,1,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,r=clearInterval,o=a=>null==a,c=(a,t,e)=>o(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),g=a=>0==u(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",b="_id",T="SELECT",C="WHERE",N="TABLE",O="ALTER "+N,S="DELETE FROM",$=T+"*FROM",I="pragma_",R="data_version",D="schema_version",L="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>E(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,j=a=>[...a?.values()??[]],x=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,q=F.keys,J=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),G=(a,t)=>f(U(a),(([a,e])=>t(e,a))),H=a=>F.values(a),z=a=>u(q(a)),K=a=>(a=>!o(a)&&c(B(a),(a=>a==F.prototype||o(B(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(x(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),aa=Q(),ta=Q(),ea=(a,t,e,n,s,i,r,l={},w=[])=>{let u,d,v,E=0,f=0,g=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,m,b,T,C]=((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]:p("Store type not supported by this Persister"))(r,a),N=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=E&&(E=1,f++,await R((async()=>{try{const a=await t();y(a)?N(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&C(a)}E=0}))),D),S=()=>(d&&(s(d),d=void 0),D),$=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),D),I=()=>(c(v,a.delListener),v=void 0,D),R=async(...a)=>(h(V(ta,w),...a),await(async()=>{if(!V(aa,w)){for(X(aa,w,1);!o((a=V(ta,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(aa,w,0)}var a})(),D),D={load:O,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=E&&(E=1,f++,N(t??a),E=0):await O()}))}catch(a){i?.(a)}return D},stopAutoLoad:S,isAutoLoading:()=>!o(d),save:$,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=b();T(a)&&$(a)})),D),stopAutoSave:I,isAutoSaving:()=>!o(v),schedule:R,getStore:()=>a,destroy:()=>(V(ta,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:f,saves:g}),...l};return J(D)},na=a=>new Set(y(a)||o(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const r=Q();return[async()=>{r.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(r,a,na),t)))},async(t,e)=>((a,t)=>_(V(r,a),t))(t,e)?Y(A(f(await a($+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();G(s??{},(a=>f(q(a??{}),(a=>sa(w,a)))));const u=j(w);if(!y&&l&&g(u)&&_(r,t))return await a("DROP "+N+M(t)),void X(r,t);const p=V(r,t),v=na(j(p));if(g(u)||(_(r,t)?await d(f([e,...u],(async(n,s)=>{x(v,n)||(await a(O+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+N+M(t)+`(${M(e)}text PRIMARY KEY${E(f(u,(a=>n+M(a)+"json")))});`),X(r,t,na([e,...u])))),await d([...!y&&c?f(j(v),(async n=>{n!=e&&(await a(O+M(t)+"DROP"+M(n)),x(p,n))})):[]]),y)o(s)?await a(S+M(t)+C+" true"):await d(G(s,(async(n,s)=>{o(n)?await a(S+M(t)+C+M(e)+"=$1",[s]):g(u)||await ra(a,t,e,q(n),[s,...H(n)],i)})));else if(g(u))_(r,t)&&await a(S+M(t)+C+" true");else{const n=A(j(V(r,t)),(a=>a!=e)),o=[],c=[];G(s??{},((a,t)=>{h(o,t,...f(n,(t=>a?.[t]))),h(c,t)})),await ra(a,t,e,n,o,i),await a(S+M(t)+C+M(e)+`NOT IN(${P(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,e,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+E(f(s,(a=>n+M(a))))+")VALUES"+oa(i,u(s)+1)+(r?"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(f(s,(a=>M(a)+"=excluded."+M(a))),n):""),f(i,(a=>a??null))),oa=(a,t)=>E(v(u(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,r,[o,c,l],y,w,u,d,p)=>{const[v,E,f,g]=ia(t,y,w,s,p),A=ea(a,(async()=>await g((async()=>{return await v(),a=(await E(o,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await f(o,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},u);return A},la=(a,t,e,n,s,i,r,[c,l,[y,w,u]],p,v,E,f,g)=>{const[h,T,C,N]=ia(t,p,v,s,g),O=async(a,t)=>await d(W(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await C(e,n,a[r],s,i,t)}))),S=async(a,t)=>w?await C(u,b,{[m]:a},!0,!0,t):null,$=ea(a,(async()=>await N((async()=>{await h();const a=await(async()=>Y(A(await d(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>y?(await T(u,b))[m]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await h(),o(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,r,{[f]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,Ea="autoLoadIntervalSeconds",fa="rowId"+ya,ga="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",ba={mode:ua,[Ea]:1},Ta={load:0,save:0,[Aa]:e+"_values"},Ca=(a,t,e,n,s)=>{const i=Q();return G(a,((a,r)=>{const c=w(H(k(t,l(a)?{[e]:a}:a)),0,z(t));o(c[0])||n(r,c[0])||(s(r,c[0]),X(i,r,c))})),i};a.createElectricSqlPersister=(a,t,n,s,i)=>((a,t,n,s,i,o,c,y,u,d="getDb",p)=>{let v,E,f;const[g,A,h,m]=(a=>{const t=(a=>k(ba,l(a)?{[da]:a}:a??{}))(a),n=t[Ea];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??b,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,o=w(H(k(Ta,r)),0,z(Ta)),c=o[2],y=na(c),u=na(c);return[0,n,[Ca(s,{[ga]:null,[fa]:b},ga,(a=>_(u,a)),(a=>sa(y,a))),Ca(i,{[Aa]:null,[fa]:b,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),o],y]})(t);return(g?ca:la)(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(T+` ${R} d,${D} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${D}`);t==(v??=t)&&e==(E??=e)&&s==(f??=s)||(a(),v=t,E=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>m.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),v=E=f=null,i(t)}),c,(()=>0),y,h,j(m),(async(a,t)=>await a(`${T} 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(${P(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,n,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),s,i,1,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,r=clearInterval,o=a=>null==a,c=(a,t,e)=>o(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),g=a=>0==u(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",b="_id",T="SELECT",C="WHERE",N="TABLE",O="ALTER "+N,S="DELETE FROM",$=T+"*FROM",I="pragma_",R="data_version",D="schema_version",L="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>E(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,j=a=>[...a?.values()??[]],x=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,q=F.keys,J=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),G=(a,t)=>f(U(a),(([a,e])=>t(e,a))),H=a=>F.values(a),z=a=>u(q(a)),K=a=>(a=>!o(a)&&c(B(a),(a=>a==F.prototype||o(B(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(x(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),aa=Q(),ta=Q(),ea=(a,t,e,n,s,i,r,l={},w=[])=>{let u,d,v,E=0,f=0,g=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,m,b,T,C]=((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]:p("Store type not supported by this Persister"))(r,a),N=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=E&&(E=1,f++,await R((async()=>{try{const a=await t();y(a)?N(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&C(a)}E=0}))),D),S=()=>(d&&(s(d),d=void 0),D),$=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),D),I=()=>(c(v,a.delListener),v=void 0,D),R=async(...a)=>(h(V(ta,w),...a),await(async()=>{if(!V(aa,w)){for(X(aa,w,1);!o((a=V(ta,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(aa,w,0)}var a})(),D),D={load:O,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=E&&(E=1,f++,N(t??a),E=0):await O()}))}catch(a){i?.(a)}return D},stopAutoLoad:S,isAutoLoading:()=>!o(d),save:$,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=b();T(a)&&$(a)})),D),stopAutoSave:I,isAutoSaving:()=>!o(v),schedule:R,getStore:()=>a,destroy:()=>(V(ta,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:f,saves:g}),...l};return J(D)},na=a=>new Set(y(a)||o(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const r=Q();return[async()=>{r.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(r,a,na),t)))},async(t,e)=>((a,t)=>_(V(r,a),t))(t,e)?Y(A(f(await a($+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();G(s??{},(a=>f(q(a??{}),(a=>sa(w,a)))));const u=j(w);if(!y&&l&&g(u)&&_(r,t))return await a("DROP "+N+M(t)),void X(r,t);const p=V(r,t),v=na(j(p));if(g(u)||(_(r,t)?await d(f([e,...u],(async(n,s)=>{x(v,n)||(await a(O+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+N+M(t)+`(${M(e)}text PRIMARY KEY${E(f(u,(a=>n+M(a)+"json")))});`),X(r,t,na([e,...u])))),await d([...!y&&c?f(j(v),(async n=>{n!=e&&(await a(O+M(t)+"DROP"+M(n)),x(p,n))})):[]]),y)o(s)?await a(S+M(t)+C+" true"):await d(G(s,(async(n,s)=>{o(n)?await a(S+M(t)+C+M(e)+"=$1",[s]):g(u)||await ra(a,t,e,q(n),[s,...H(n)],i)})));else if(g(u))_(r,t)&&await a(S+M(t)+C+" true");else{const n=A(j(V(r,t)),(a=>a!=e)),o=[],c=[];G(s??{},((a,t)=>{h(o,t,...f(n,(t=>a?.[t]))),h(c,t)})),await ra(a,t,e,n,o,i),await a(S+M(t)+C+M(e)+`NOT IN(${P(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,e,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+E(f(s,(a=>n+M(a))))+")VALUES"+oa(i,u(s)+1)+(r?"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(f(s,(a=>M(a)+"=excluded."+M(a))),n):""),f(i,(a=>a??null))),oa=(a,t)=>E(v(u(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,r,[o,c,l],y,w,u,d,p)=>{const[v,E,f,g]=ia(t,y,w,s,p),A=ea(a,(async()=>await g((async()=>{return await v(),a=(await E(o,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await f(o,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},u);return A},la=(a,t,e,n,s,i,r,[c,l,[y,w,u]],p,v,E,f,g)=>{const[h,T,C,N]=ia(t,p,v,s,g),O=async(a,t)=>await d(W(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await C(e,n,a[r],s,i,t)}))),S=async(a,t)=>w?await C(u,b,{[m]:a},!0,!0,t):null,$=ea(a,(async()=>await N((async()=>{await h();const a=await(async()=>Y(A(await d(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>y?(await T(u,b))[m]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await h(),o(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,r,{[f]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,Ea="autoLoadIntervalSeconds",fa="rowId"+ya,ga="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",ba={mode:ua,[Ea]:1},Ta={load:0,save:0,[Aa]:e+"_values"},Ca=(a,t,e,n,s)=>{const i=Q();return G(a,((a,r)=>{const c=w(H(k(t,l(a)?{[e]:a}:a)),0,z(t));o(c[0])||n(r,c[0])||(s(r,c[0]),X(i,r,c))})),i},Na=(a,t,n,s,i,o,c,y,u,d="getDb",p)=>{let v,E,f;const g=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[A,h,m,N]=(a=>{const t=(a=>k(ba,l(a)?{[da]:a}:a??{}))(a),n=t[Ea];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??b,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,o=w(H(k(Ta,r)),0,z(Ta)),c=o[2],y=na(c),u=na(c);return[0,n,[Ca(s,{[ga]:null,[fa]:b},ga,(a=>_(u,a)),(a=>sa(y,a))),Ca(i,{[Aa]:null,[fa]:b,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),o],y]})(t);return(A?ca:la)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await g(`${T} ${R} d,${D} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${D}`);t==v&&e==E&&n==f||(null!=v&&a(),v=t,E=e,f=n)}catch{}}),1e3*h),n=()=>{v=E=f=null,r(t)},o=s((t=>{N.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(o)}}),(a=>a()),c,(()=>0),y,m,j(N),(async(a,t)=>await a(`${T} 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(${P(t)})ORDER BY t.name,c.name`,t)),u,d,p)};a.createElectricSqlPersister=(a,t,e,n,s)=>Na(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),n,s,1,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,r=clearInterval,o=a=>null==a,c=(a,t,e)=>o(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),g=a=>0==u(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",b="_id",T="SELECT",C="WHERE",N="TABLE",O="ALTER "+N,S="DELETE FROM",$=T+"*FROM",I="pragma_",R="data_version",D="schema_version",L="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>E(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,j=a=>[...a?.values()??[]],x=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,q=F.keys,J=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),G=(a,t)=>f(U(a),(([a,e])=>t(e,a))),H=a=>F.values(a),z=a=>u(q(a)),K=a=>(a=>!o(a)&&c(B(a),(a=>a==F.prototype||o(B(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(x(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),aa=Q(),ta=Q(),ea=(a,t,e,n,s,i,r,l={},w=[])=>{let u,d,v,E=0,f=0,g=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,m,b,T,C]=((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]:p("Store type not supported by this Persister"))(r,a),N=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=E&&(E=1,f++,await R((async()=>{try{const a=await t();y(a)?N(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&C(a)}E=0}))),D),S=()=>(d&&(s(d),d=void 0),D),$=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),D),I=()=>(c(v,a.delListener),v=void 0,D),R=async(...a)=>(h(V(ta,w),...a),await(async()=>{if(!V(aa,w)){for(X(aa,w,1);!o((a=V(ta,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(aa,w,0)}var a})(),D),D={load:O,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=E&&(E=1,f++,N(t??a),E=0):await O()}))}catch(a){i?.(a)}return D},stopAutoLoad:S,isAutoLoading:()=>!o(d),save:$,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=b();T(a)&&$(a)})),D),stopAutoSave:I,isAutoSaving:()=>!o(v),schedule:R,getStore:()=>a,destroy:()=>(V(ta,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:f,saves:g}),...l};return J(D)},na=a=>new Set(y(a)||o(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const r=Q();return[async()=>{r.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(r,a,na),t)))},async(t,e)=>((a,t)=>_(V(r,a),t))(t,e)?Y(A(f(await a($+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();G(s??{},(a=>f(q(a??{}),(a=>sa(w,a)))));const u=j(w);if(!y&&l&&g(u)&&_(r,t))return await a("DROP "+N+M(t)),void X(r,t);const p=V(r,t),v=na(j(p));if(g(u)||(_(r,t)?await d(f([e,...u],(async(n,s)=>{x(v,n)||(await a(O+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+N+M(t)+`(${M(e)}text PRIMARY KEY${E(f(u,(a=>n+M(a)+"json")))});`),X(r,t,na([e,...u])))),await d([...!y&&c?f(j(v),(async n=>{n!=e&&(await a(O+M(t)+"DROP"+M(n)),x(p,n))})):[]]),y)o(s)?await a(S+M(t)+C+" true"):await d(G(s,(async(n,s)=>{o(n)?await a(S+M(t)+C+M(e)+"=$1",[s]):g(u)||await ra(a,t,e,q(n),[s,...H(n)],i)})));else if(g(u))_(r,t)&&await a(S+M(t)+C+" true");else{const n=A(j(V(r,t)),(a=>a!=e)),o=[],c=[];G(s??{},((a,t)=>{h(o,t,...f(n,(t=>a?.[t]))),h(c,t)})),await ra(a,t,e,n,o,i),await a(S+M(t)+C+M(e)+`NOT IN(${P(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,e,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+E(f(s,(a=>n+M(a))))+")VALUES"+oa(i,u(s)+1)+(r?"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(f(s,(a=>M(a)+"=excluded."+M(a))),n):""),f(i,(a=>a??null))),oa=(a,t)=>E(v(u(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,r,[o,c,l],y,w,u,d,p)=>{const[v,E,f,g]=ia(t,y,w,s,p),A=ea(a,(async()=>await g((async()=>{return await v(),a=(await E(o,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await f(o,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},u);return A},la=(a,t,e,n,s,i,r,[c,l,[y,w,u]],p,v,E,f,g)=>{const[h,T,C,N]=ia(t,p,v,s,g),O=async(a,t)=>await d(W(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await C(e,n,a[r],s,i,t)}))),S=async(a,t)=>w?await C(u,b,{[m]:a},!0,!0,t):null,$=ea(a,(async()=>await N((async()=>{await h();const a=await(async()=>Y(A(await d(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>y?(await T(u,b))[m]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await h(),o(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,r,{[f]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,Ea="autoLoadIntervalSeconds",fa="rowId"+ya,ga="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",ba={mode:ua,[Ea]:1},Ta={load:0,save:0,[Aa]:e+"_values"},Ca=(a,t,e,n,s)=>{const i=Q();return G(a,((a,r)=>{const c=w(H(k(t,l(a)?{[e]:a}:a)),0,z(t));o(c[0])||n(r,c[0])||(s(r,c[0]),X(i,r,c))})),i};a.createElectricSqlPersister=(a,t,n,s,i)=>((a,t,n,s,i,o,c,y,u,d="getDb",p)=>{let v,E,f;const[g,A,h,m]=(a=>{const t=(a=>k(ba,l(a)?{[da]:a}:a??{}))(a),n=t[Ea];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??b,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,o=w(H(k(Ta,r)),0,z(Ta)),c=o[2],y=na(c),u=na(c);return[0,n,[Ca(s,{[ga]:null,[fa]:b},ga,(a=>_(u,a)),(a=>sa(y,a))),Ca(i,{[Aa]:null,[fa]:b,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),o],y]})(t);return(g?ca:la)(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(T+` ${R} d,${D} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${D}`);t==(v??=t)&&e==(E??=e)&&s==(f??=s)||(a(),v=t,E=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>m.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),v=E=f=null,i(t)}),c,(()=>0),y,h,j(m),(async(a,t)=>await a(`${T} 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(${P(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,n,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),s,i,1,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,r=clearInterval,o=a=>null==a,c=(a,t,e)=>o(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),E=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),g=a=>0==u(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",b="_id",T="SELECT",C="WHERE",N="TABLE",O="ALTER "+N,S="DELETE FROM",$=T+"*FROM",I="pragma_",R="data_version",D="schema_version",L="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>E(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,j=a=>[...a?.values()??[]],x=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,q=F.keys,J=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),G=(a,t)=>f(U(a),(([a,e])=>t(e,a))),H=a=>F.values(a),z=a=>u(q(a)),K=a=>(a=>!o(a)&&c(B(a),(a=>a==F.prototype||o(B(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>o(e)?(x(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),aa=Q(),ta=Q(),ea=(a,t,e,n,s,i,r,l={},w=[])=>{let u,d,v,E=0,f=0,g=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,m,b,T,C]=((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]:p("Store type not supported by this Persister"))(r,a),N=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=E&&(E=1,f++,await R((async()=>{try{const a=await t();y(a)?N(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&C(a)}E=0}))),D),S=()=>(d&&(s(d),d=void 0),D),$=async a=>(1!=E&&(E=2,g++,await R((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),D),I=()=>(c(v,a.delListener),v=void 0,D),R=async(...a)=>(h(V(ta,w),...a),await(async()=>{if(!V(aa,w)){for(X(aa,w,1);!o((a=V(ta,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(aa,w,0)}var a})(),D),D={load:O,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=E&&(E=1,f++,N(t??a),E=0):await O()}))}catch(a){i?.(a)}return D},stopAutoLoad:S,isAutoLoading:()=>!o(d),save:$,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=b();T(a)&&$(a)})),D),stopAutoSave:I,isAutoSaving:()=>!o(v),schedule:R,getStore:()=>a,destroy:()=>(V(ta,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:f,saves:g}),...l};return J(D)},na=a=>new Set(y(a)||o(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const r=Q();return[async()=>{r.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(r,a,na),t)))},async(t,e)=>((a,t)=>_(V(r,a),t))(t,e)?Y(A(f(await a($+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!K(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();G(s??{},(a=>f(q(a??{}),(a=>sa(w,a)))));const u=j(w);if(!y&&l&&g(u)&&_(r,t))return await a("DROP "+N+M(t)),void X(r,t);const p=V(r,t),v=na(j(p));if(g(u)||(_(r,t)?await d(f([e,...u],(async(n,s)=>{x(v,n)||(await a(O+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+N+M(t)+`(${M(e)}text PRIMARY KEY${E(f(u,(a=>n+M(a)+"json")))});`),X(r,t,na([e,...u])))),await d([...!y&&c?f(j(v),(async n=>{n!=e&&(await a(O+M(t)+"DROP"+M(n)),x(p,n))})):[]]),y)o(s)?await a(S+M(t)+C+" true"):await d(G(s,(async(n,s)=>{o(n)?await a(S+M(t)+C+M(e)+"=$1",[s]):g(u)||await ra(a,t,e,q(n),[s,...H(n)],i)})));else if(g(u))_(r,t)&&await a(S+M(t)+C+" true");else{const n=A(j(V(r,t)),(a=>a!=e)),o=[],c=[];G(s??{},((a,t)=>{h(o,t,...f(n,(t=>a?.[t]))),h(c,t)})),await ra(a,t,e,n,o,i),await a(S+M(t)+C+M(e)+`NOT IN(${P(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,e,s,i,r=!0)=>await a("INSERT "+(r?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+E(f(s,(a=>n+M(a))))+")VALUES"+oa(i,u(s)+1)+(r?"ON CONFLICT("+M(e)+")DO UPDATE SET"+E(f(s,(a=>M(a)+"=excluded."+M(a))),n):""),f(i,(a=>a??null))),oa=(a,t)=>E(v(u(a)/t,(a=>"("+E(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,r,[o,c,l],y,w,u,d,p)=>{const[v,E,f,g]=ia(t,y,w,s,p),A=ea(a,(async()=>await g((async()=>{return await v(),a=(await E(o,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await v(),await f(o,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,r,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},u);return A},la=(a,t,e,n,s,i,r,[c,l,[y,w,u]],p,v,E,f,g)=>{const[h,T,C,N]=ia(t,p,v,s,g),O=async(a,t)=>await d(W(l,(async([e,n,s,i],r)=>{t&&!(r in a)||await C(e,n,a[r],s,i,t)}))),S=async(a,t)=>w?await C(u,b,{[m]:a},!0,!0,t):null,$=ea(a,(async()=>await N((async()=>{await h();const a=await(async()=>Y(A(await d(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>y?(await T(u,b))[m]:{})();return K(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await h(),o(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,r,{[f]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,Ea="autoLoadIntervalSeconds",fa="rowId"+ya,ga="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",ba={mode:ua,[Ea]:1},Ta={load:0,save:0,[Aa]:e+"_values"},Ca=(a,t,e,n,s)=>{const i=Q();return G(a,((a,r)=>{const c=w(H(k(t,l(a)?{[e]:a}:a)),0,z(t));o(c[0])||n(r,c[0])||(s(r,c[0]),X(i,r,c))})),i},Na=(a,t,n,s,i,o,c,y,u,d="getDb",p)=>{let v,E,f;const g=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[A,h,m,N]=(a=>{const t=(a=>k(ba,l(a)?{[da]:a}:a??{}))(a),n=t[Ea];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??b,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,o=w(H(k(Ta,r)),0,z(Ta)),c=o[2],y=na(c),u=na(c);return[0,n,[Ca(s,{[ga]:null,[fa]:b},ga,(a=>_(u,a)),(a=>sa(y,a))),Ca(i,{[Aa]:null,[fa]:b,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),o],y]})(t);return(A?ca:la)(a,g,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await g(`${T} ${R} d,${D} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${D}`);t==v&&e==E&&n==f||(null!=v&&a(),v=t,E=e,f=n)}catch{}}),1e3*h),n=()=>{v=E=f=null,r(t)},o=s((t=>{N.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(o)}}),(a=>a()),c,(()=>0),y,m,j(N),(async(a,t)=>await a(`${T} 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(${P(t)})ORDER BY t.name,c.name`,t)),u,d,p)};a.createElectricSqlPersister=(a,t,e,n,s)=>Na(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),n,s,1,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,n="tinybase",s=",",i=e(""),o=Promise,r=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),y=a=>e(a)==i,w=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),u=a=>a.length,p=async a=>o.all(a),v=a=>{throw Error(a)},E=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),A=a=>0==u(a),m=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),N="_",T="_id",b="SELECT",C="WHERE",O="TABLE",S="ALTER "+O,$="DELETE FROM",I=b+"*FROM",L="pragma_",R="data_version",D="schema_version",x="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>g(f(a,((a,t)=>"$"+(t+1))),s),_=(a,t)=>a?.has(t)??!1,j=a=>[...a?.values()??[]],q=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,J=F.keys,Y=F.freeze,k=(a=[])=>F.fromEntries(a),G=(...a)=>F.assign({},...a),H=(a,t)=>f(U(a),(([a,e])=>t(e,a))),z=a=>F.values(a),K=a=>u(J(a)),Q=a=>(a=>!c(a)&&l(B(a),(a=>a==F.prototype||c(B(a))),(()=>!0)))(a)&&0==K(a),V=a=>new Map(a),W=(a,t)=>a?.get(t),X=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),Z=(a,t,e)=>c(e)?(q(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(_(a,t)||Z(a,t,e()),W(a,t)),ta=V(),ea=V(),na=(a,t,e,n,s,i,o,r={},y=[])=>{let d,u,p,E=0,g=0,f=0;aa(ta,y,(()=>0)),aa(ea,y,(()=>[]));const[A,m,N,T,b]=((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]:v("Store type not supported by this Persister"))(o,a),C=t=>{(A&&w(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=E&&(E=1,g++,await L((async()=>{try{const a=await t();w(a)?C(a):v("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}E=0}))),R),S=()=>(u&&(s(u),u=void 0),R),$=async a=>(1!=E&&(E=2,f++,await L((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),R),I=()=>(l(p,a.delListener),p=void 0,R),L=async(...a)=>(h(W(ea,y),...a),await(async()=>{if(!W(ta,y)){for(Z(ta,y,1);!c((a=W(ea,y),d=a.shift()));)try{await d()}catch(a){i?.(a)}Z(ta,y,0)}var a})(),R),R={load:O,startAutoLoad:async a=>{await S().load(a);try{u=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,C(t??a),E=0):await O()}))}catch(a){i?.(a)}return R},stopAutoLoad:S,isAutoLoading:()=>!c(u),save:$,startAutoSave:async()=>(await I().save(),p=a.addDidFinishTransactionListener((()=>{const a=N();T(a)&&$(a)})),R),stopAutoSave:I,isAutoSaving:()=>!c(p),schedule:L,getStore:()=>a,destroy:()=>(W(ea,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:g,saves:f}),...r};return Y(R)},sa=a=>new Set(w(a)||c(a)?a:[a]),ia=(a,t)=>a?.add(t),oa=(a,t,e,n,i)=>{const o=V();return[async()=>{o.clear(),f(await e(a,t),(({tn:a,cn:t})=>ia(aa(o,a,sa),t)))},async(t,e)=>((a,t)=>_(W(o,a),t))(t,e)?k(m(f(await a(I+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!c(a)&&!Q(t)))):{},async(t,e,n,r,l,y=!1)=>{const w=sa();H(n??{},(a=>f(J(a??{}),(a=>ia(w,a)))));const d=j(w);if(!y&&l&&A(d)&&_(o,t))return await a("DROP "+O+M(t)),void Z(o,t);const u=W(o,t),v=sa(j(u));if(A(d)||(_(o,t)?await p(f([e,...d],(async(n,s)=>{q(v,n)||(await a(S+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),ia(u,n))}))):(await a("CREATE "+O+M(t)+`(${M(e)}text PRIMARY KEY${g(f(d,(a=>s+M(a)+"json")))});`),Z(o,t,sa([e,...d])))),await p([...!y&&r?f(j(v),(async n=>{n!=e&&(await a(S+M(t)+"DROP"+M(n)),q(u,n))})):[]]),y)c(n)?await a($+M(t)+C+" true"):await p(H(n,(async(n,s)=>{c(n)?await a($+M(t)+C+M(e)+"=$1",[s]):A(d)||await ra(a,t,e,J(n),[s,...z(n)],i)})));else if(A(d))_(o,t)&&await a($+M(t)+C+" true");else{const s=m(j(W(o,t)),(a=>a!=e)),r=[],c=[];H(n??{},((a,t)=>{h(r,t,...f(s,(t=>a?.[t]))),h(c,t)})),await ra(a,t,e,s,r,i),await a($+M(t)+C+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ra=async(a,t,e,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+g(f(n,(a=>s+M(a))))+")VALUES"+ca(i,u(n)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+g(f(n,(a=>M(a)+"=excluded."+M(a))),s):""),f(i,(a=>a??null))),ca=(a,t)=>g(E(u(a)/t,(a=>"("+g(E(t,(e=>"$"+(a*t+e+1))),s)+")")),s),la=(a,t,e,n,s,i,o,[r,c,l],y,w,d,u,p)=>{const[v,E,g,f]=oa(t,y,w,s,p),A=na(a,(async()=>await f((async()=>{return await v(),a=(await E(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await v(),await g(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},d);return A},ya=(a,t,e,n,s,i,o,[r,l,[y,w,d]],u,v,E,g,f)=>{const[A,h,b,C]=oa(t,u,v,s,f),O=async(a,t)=>await p(X(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await b(e,n,a[o],s,i,t)}))),S=async(a,t)=>w?await b(d,T,{[N]:a},!0,!0,t):null,$=na(a,(async()=>await C((async()=>{await A();const a=await(async()=>k(m(await p(X(r,(async([a,t],e)=>[a,await h(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await h(d,T))[N]:{})();return Q(a)&&c(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await A(),c(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},wa="ColumnName",da="store",ua="json",pa=da+"TableName",va=da+"Id"+wa,Ea=da+wa,ga="autoLoadIntervalSeconds",fa="rowId"+wa,Aa="tableId",ma="tableName",ha="deleteEmptyColumns",Na="deleteEmptyTable",Ta={mode:ua,[ga]:1},ba={load:0,save:0,[ma]:n+"_values"},Ca=(a,t,e,n,s)=>{const i=V();return H(a,((a,o)=>{const r=d(z(G(t,y(a)?{[e]:a}:a)),0,K(t));c(r[0])||n(o,r[0])||(s(o,r[0]),Z(i,o,r))})),i};a.createExpoSqlitePersister=(a,e,s,i,o)=>((a,t,e,s,i,o,c,l,w,u="getDb",p)=>{let v,E,g;const[f,A,m,h]=(a=>{const t=(a=>G(Ta,y(a)?{[pa]:a}:a??{}))(a),e=t[ga];if(t.mode==ua){const a=t[pa]??n;return[1,e,[a,t[va]??T,t[Ea]??da],sa(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=d(z(G(ba,o)),0,K(ba)),c=r[2],l=sa(c),w=sa(c);return[0,e,[Ca(s,{[Aa]:null,[fa]:T},Aa,(a=>_(w,a)),(a=>ia(l,a))),Ca(i,{[ma]:null,[fa]:T,[ha]:0,[Na]:0},ma,((a,t)=>_(w,t)),((a,t)=>ia(l,t))),r],l]})(t);return(f?la:ya)(a,o?async(a,t)=>(o(a,t),await e(a,t)):e,(a=>{return[(t=async()=>{try{const[{d:t,s:n,c:s}]=await e(b+` ${R} d,${D} s,TOTAL_CHANGES() c FROM ${L}${R} JOIN ${L}${D}`);t==(v??=t)&&n==(E??=n)&&s==(g??=s)||(a(),v=t,E=n)}catch{}},n=A,t(),setInterval(t,1e3*n)),s((t=>h.has(t)?a():0))];var t,n}),(([a,t])=>{r(a),v=E=g=null,i(t)}),c,(()=>0),l,m,j(h),(async(a,t)=>await a(`${b} t.name tn,c.name cn FROM ${x}list()t,${x}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),w,u,p)})(a,s,(async(a,t=[])=>await e.getAllAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),i,o,3,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqlite={},a["expo-sqlite"]);
1
+ var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,n="tinybase",s=",",i=e(""),o=Promise,r=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),y=a=>e(a)==i,w=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),u=a=>a.length,p=async a=>o.all(a),v=a=>{throw Error(a)},E=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),A=a=>0==u(a),m=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),N="_",T="_id",b="SELECT",C="WHERE",O="TABLE",S="ALTER "+O,$="DELETE FROM",I=b+"*FROM",L="pragma_",R="data_version",D="schema_version",x="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>g(f(a,((a,t)=>"$"+(t+1))),s),_=(a,t)=>a?.has(t)??!1,j=a=>[...a?.values()??[]],q=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,J=F.keys,Y=F.freeze,k=(a=[])=>F.fromEntries(a),G=(...a)=>F.assign({},...a),H=(a,t)=>f(U(a),(([a,e])=>t(e,a))),z=a=>F.values(a),K=a=>u(J(a)),Q=a=>(a=>!c(a)&&l(B(a),(a=>a==F.prototype||c(B(a))),(()=>!0)))(a)&&0==K(a),V=a=>new Map(a),W=(a,t)=>a?.get(t),X=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),Z=(a,t,e)=>c(e)?(q(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(_(a,t)||Z(a,t,e()),W(a,t)),ta=V(),ea=V(),na=(a,t,e,n,s,i,o,r={},y=[])=>{let d,u,p,E=0,g=0,f=0;aa(ta,y,(()=>0)),aa(ea,y,(()=>[]));const[A,m,N,T,b]=((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]:v("Store type not supported by this Persister"))(o,a),C=t=>{(A&&w(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=E&&(E=1,g++,await L((async()=>{try{const a=await t();w(a)?C(a):v("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}E=0}))),R),S=()=>(u&&(s(u),u=void 0),R),$=async a=>(1!=E&&(E=2,f++,await L((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),R),I=()=>(l(p,a.delListener),p=void 0,R),L=async(...a)=>(h(W(ea,y),...a),await(async()=>{if(!W(ta,y)){for(Z(ta,y,1);!c((a=W(ea,y),d=a.shift()));)try{await d()}catch(a){i?.(a)}Z(ta,y,0)}var a})(),R),R={load:O,startAutoLoad:async a=>{await S().load(a);try{u=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,C(t??a),E=0):await O()}))}catch(a){i?.(a)}return R},stopAutoLoad:S,isAutoLoading:()=>!c(u),save:$,startAutoSave:async()=>(await I().save(),p=a.addDidFinishTransactionListener((()=>{const a=N();T(a)&&$(a)})),R),stopAutoSave:I,isAutoSaving:()=>!c(p),schedule:L,getStore:()=>a,destroy:()=>(W(ea,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:g,saves:f}),...r};return Y(R)},sa=a=>new Set(w(a)||c(a)?a:[a]),ia=(a,t)=>a?.add(t),oa=(a,t,e,n,i)=>{const o=V();return[async()=>{o.clear(),f(await e(a,t),(({tn:a,cn:t})=>ia(aa(o,a,sa),t)))},async(t,e)=>((a,t)=>_(W(o,a),t))(t,e)?k(m(f(await a(I+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!c(a)&&!Q(t)))):{},async(t,e,n,r,l,y=!1)=>{const w=sa();H(n??{},(a=>f(J(a??{}),(a=>ia(w,a)))));const d=j(w);if(!y&&l&&A(d)&&_(o,t))return await a("DROP "+O+M(t)),void Z(o,t);const u=W(o,t),v=sa(j(u));if(A(d)||(_(o,t)?await p(f([e,...d],(async(n,s)=>{q(v,n)||(await a(S+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),ia(u,n))}))):(await a("CREATE "+O+M(t)+`(${M(e)}text PRIMARY KEY${g(f(d,(a=>s+M(a)+"json")))});`),Z(o,t,sa([e,...d])))),await p([...!y&&r?f(j(v),(async n=>{n!=e&&(await a(S+M(t)+"DROP"+M(n)),q(u,n))})):[]]),y)c(n)?await a($+M(t)+C+" true"):await p(H(n,(async(n,s)=>{c(n)?await a($+M(t)+C+M(e)+"=$1",[s]):A(d)||await ra(a,t,e,J(n),[s,...z(n)],i)})));else if(A(d))_(o,t)&&await a($+M(t)+C+" true");else{const s=m(j(W(o,t)),(a=>a!=e)),r=[],c=[];H(n??{},((a,t)=>{h(r,t,...f(s,(t=>a?.[t]))),h(c,t)})),await ra(a,t,e,s,r,i),await a($+M(t)+C+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ra=async(a,t,e,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+g(f(n,(a=>s+M(a))))+")VALUES"+ca(i,u(n)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+g(f(n,(a=>M(a)+"=excluded."+M(a))),s):""),f(i,(a=>a??null))),ca=(a,t)=>g(E(u(a)/t,(a=>"("+g(E(t,(e=>"$"+(a*t+e+1))),s)+")")),s),la=(a,t,e,n,s,i,o,[r,c,l],y,w,d,u,p)=>{const[v,E,g,f]=oa(t,y,w,s,p),A=na(a,(async()=>await f((async()=>{return await v(),a=(await E(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await v(),await g(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},d);return A},ya=(a,t,e,n,s,i,o,[r,l,[y,w,d]],u,v,E,g,f)=>{const[A,h,b,C]=oa(t,u,v,s,f),O=async(a,t)=>await p(X(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await b(e,n,a[o],s,i,t)}))),S=async(a,t)=>w?await b(d,T,{[N]:a},!0,!0,t):null,$=na(a,(async()=>await C((async()=>{await A();const a=await(async()=>k(m(await p(X(r,(async([a,t],e)=>[a,await h(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await h(d,T))[N]:{})();return Q(a)&&c(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await A(),c(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},wa="ColumnName",da="store",ua="json",pa=da+"TableName",va=da+"Id"+wa,Ea=da+wa,ga="autoLoadIntervalSeconds",fa="rowId"+wa,Aa="tableId",ma="tableName",ha="deleteEmptyColumns",Na="deleteEmptyTable",Ta={mode:ua,[ga]:1},ba={load:0,save:0,[ma]:n+"_values"},Ca=(a,t,e,n,s)=>{const i=V();return H(a,((a,o)=>{const r=d(z(G(t,y(a)?{[e]:a}:a)),0,K(t));c(r[0])||n(o,r[0])||(s(o,r[0]),Z(i,o,r))})),i},Oa=(a,t,e,s,i,o,c,l,w,u="getDb",p)=>{let v,E,g;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(e,o),[A,m,h,N]=(a=>{const t=(a=>G(Ta,y(a)?{[pa]:a}:a??{}))(a),e=t[ga];if(t.mode==ua){const a=t[pa]??n;return[1,e,[a,t[va]??T,t[Ea]??da],sa(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=d(z(G(ba,o)),0,K(ba)),c=r[2],l=sa(c),w=sa(c);return[0,e,[Ca(s,{[Aa]:null,[fa]:T},Aa,(a=>_(w,a)),(a=>ia(l,a))),Ca(i,{[ma]:null,[fa]:T,[ha]:0,[Na]:0},ma,((a,t)=>_(w,t)),((a,t)=>ia(l,t))),r],l]})(t);return(A?la:ya)(a,f,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await f(`${b} ${R} d,${D} s,TOTAL_CHANGES() c FROM ${L}${R} JOIN ${L}${D}`);t==v&&e==E&&n==g||(null!=v&&a(),v=t,E=e,g=n)}catch{}}),1e3*m),n=()=>{v=E=g=null,r(t)},o=s((t=>{N.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(o)}}),(a=>a()),c,(()=>0),l,h,j(N),(async(a,t)=>await a(`${b} t.name tn,c.name cn FROM ${x}list()t,${x}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),w,u,p)};a.createExpoSqlitePersister=(a,e,n,s,i)=>Oa(a,n,(async(a,t=[])=>await e.getAllAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),s,i,3,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqlite={},a["expo-sqlite"]);
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,n="tinybase",s=",",i=e(""),o=Promise,r=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),y=a=>e(a)==i,w=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),u=a=>a.length,p=async a=>o.all(a),v=a=>{throw Error(a)},E=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),A=a=>0==u(a),m=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),N="_",T="_id",b="SELECT",C="WHERE",O="TABLE",S="ALTER "+O,$="DELETE FROM",I=b+"*FROM",L="pragma_",R="data_version",D="schema_version",x="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>g(f(a,((a,t)=>"$"+(t+1))),s),_=(a,t)=>a?.has(t)??!1,j=a=>[...a?.values()??[]],q=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,J=F.keys,Y=F.freeze,k=(a=[])=>F.fromEntries(a),G=(...a)=>F.assign({},...a),H=(a,t)=>f(U(a),(([a,e])=>t(e,a))),z=a=>F.values(a),K=a=>u(J(a)),Q=a=>(a=>!c(a)&&l(B(a),(a=>a==F.prototype||c(B(a))),(()=>!0)))(a)&&0==K(a),V=a=>new Map(a),W=(a,t)=>a?.get(t),X=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),Z=(a,t,e)=>c(e)?(q(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(_(a,t)||Z(a,t,e()),W(a,t)),ta=V(),ea=V(),na=(a,t,e,n,s,i,o,r={},y=[])=>{let d,u,p,E=0,g=0,f=0;aa(ta,y,(()=>0)),aa(ea,y,(()=>[]));const[A,m,N,T,b]=((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]:v("Store type not supported by this Persister"))(o,a),C=t=>{(A&&w(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=E&&(E=1,g++,await L((async()=>{try{const a=await t();w(a)?C(a):v("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}E=0}))),R),S=()=>(u&&(s(u),u=void 0),R),$=async a=>(1!=E&&(E=2,f++,await L((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),R),I=()=>(l(p,a.delListener),p=void 0,R),L=async(...a)=>(h(W(ea,y),...a),await(async()=>{if(!W(ta,y)){for(Z(ta,y,1);!c((a=W(ea,y),d=a.shift()));)try{await d()}catch(a){i?.(a)}Z(ta,y,0)}var a})(),R),R={load:O,startAutoLoad:async a=>{await S().load(a);try{u=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,C(t??a),E=0):await O()}))}catch(a){i?.(a)}return R},stopAutoLoad:S,isAutoLoading:()=>!c(u),save:$,startAutoSave:async()=>(await I().save(),p=a.addDidFinishTransactionListener((()=>{const a=N();T(a)&&$(a)})),R),stopAutoSave:I,isAutoSaving:()=>!c(p),schedule:L,getStore:()=>a,destroy:()=>(W(ea,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:g,saves:f}),...r};return Y(R)},sa=a=>new Set(w(a)||c(a)?a:[a]),ia=(a,t)=>a?.add(t),oa=(a,t,e,n,i)=>{const o=V();return[async()=>{o.clear(),f(await e(a,t),(({tn:a,cn:t})=>ia(aa(o,a,sa),t)))},async(t,e)=>((a,t)=>_(W(o,a),t))(t,e)?k(m(f(await a(I+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!c(a)&&!Q(t)))):{},async(t,e,n,r,l,y=!1)=>{const w=sa();H(n??{},(a=>f(J(a??{}),(a=>ia(w,a)))));const d=j(w);if(!y&&l&&A(d)&&_(o,t))return await a("DROP "+O+M(t)),void Z(o,t);const u=W(o,t),v=sa(j(u));if(A(d)||(_(o,t)?await p(f([e,...d],(async(n,s)=>{q(v,n)||(await a(S+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),ia(u,n))}))):(await a("CREATE "+O+M(t)+`(${M(e)}text PRIMARY KEY${g(f(d,(a=>s+M(a)+"json")))});`),Z(o,t,sa([e,...d])))),await p([...!y&&r?f(j(v),(async n=>{n!=e&&(await a(S+M(t)+"DROP"+M(n)),q(u,n))})):[]]),y)c(n)?await a($+M(t)+C+" true"):await p(H(n,(async(n,s)=>{c(n)?await a($+M(t)+C+M(e)+"=$1",[s]):A(d)||await ra(a,t,e,J(n),[s,...z(n)],i)})));else if(A(d))_(o,t)&&await a($+M(t)+C+" true");else{const s=m(j(W(o,t)),(a=>a!=e)),r=[],c=[];H(n??{},((a,t)=>{h(r,t,...f(s,(t=>a?.[t]))),h(c,t)})),await ra(a,t,e,s,r,i),await a($+M(t)+C+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ra=async(a,t,e,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+g(f(n,(a=>s+M(a))))+")VALUES"+ca(i,u(n)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+g(f(n,(a=>M(a)+"=excluded."+M(a))),s):""),f(i,(a=>a??null))),ca=(a,t)=>g(E(u(a)/t,(a=>"("+g(E(t,(e=>"$"+(a*t+e+1))),s)+")")),s),la=(a,t,e,n,s,i,o,[r,c,l],y,w,d,u,p)=>{const[v,E,g,f]=oa(t,y,w,s,p),A=na(a,(async()=>await f((async()=>{return await v(),a=(await E(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await v(),await g(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},d);return A},ya=(a,t,e,n,s,i,o,[r,l,[y,w,d]],u,v,E,g,f)=>{const[A,h,b,C]=oa(t,u,v,s,f),O=async(a,t)=>await p(X(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await b(e,n,a[o],s,i,t)}))),S=async(a,t)=>w?await b(d,T,{[N]:a},!0,!0,t):null,$=na(a,(async()=>await C((async()=>{await A();const a=await(async()=>k(m(await p(X(r,(async([a,t],e)=>[a,await h(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await h(d,T))[N]:{})();return Q(a)&&c(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await A(),c(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},wa="ColumnName",da="store",ua="json",pa=da+"TableName",va=da+"Id"+wa,Ea=da+wa,ga="autoLoadIntervalSeconds",fa="rowId"+wa,Aa="tableId",ma="tableName",ha="deleteEmptyColumns",Na="deleteEmptyTable",Ta={mode:ua,[ga]:1},ba={load:0,save:0,[ma]:n+"_values"},Ca=(a,t,e,n,s)=>{const i=V();return H(a,((a,o)=>{const r=d(z(G(t,y(a)?{[e]:a}:a)),0,K(t));c(r[0])||n(o,r[0])||(s(o,r[0]),Z(i,o,r))})),i};a.createExpoSqlitePersister=(a,e,s,i,o)=>((a,t,e,s,i,o,c,l,w,u="getDb",p)=>{let v,E,g;const[f,A,m,h]=(a=>{const t=(a=>G(Ta,y(a)?{[pa]:a}:a??{}))(a),e=t[ga];if(t.mode==ua){const a=t[pa]??n;return[1,e,[a,t[va]??T,t[Ea]??da],sa(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=d(z(G(ba,o)),0,K(ba)),c=r[2],l=sa(c),w=sa(c);return[0,e,[Ca(s,{[Aa]:null,[fa]:T},Aa,(a=>_(w,a)),(a=>ia(l,a))),Ca(i,{[ma]:null,[fa]:T,[ha]:0,[Na]:0},ma,((a,t)=>_(w,t)),((a,t)=>ia(l,t))),r],l]})(t);return(f?la:ya)(a,o?async(a,t)=>(o(a,t),await e(a,t)):e,(a=>{return[(t=async()=>{try{const[{d:t,s:n,c:s}]=await e(b+` ${R} d,${D} s,TOTAL_CHANGES() c FROM ${L}${R} JOIN ${L}${D}`);t==(v??=t)&&n==(E??=n)&&s==(g??=s)||(a(),v=t,E=n)}catch{}},n=A,t(),setInterval(t,1e3*n)),s((t=>h.has(t)?a():0))];var t,n}),(([a,t])=>{r(a),v=E=g=null,i(t)}),c,(()=>0),l,m,j(h),(async(a,t)=>await a(`${b} t.name tn,c.name cn FROM ${x}list()t,${x}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),w,u,p)})(a,s,(async(a,t=[])=>await e.getAllAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),i,o,3,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqlite={},a["expo-sqlite"]);
1
+ var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,n="tinybase",s=",",i=e(""),o=Promise,r=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),y=a=>e(a)==i,w=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),u=a=>a.length,p=async a=>o.all(a),v=a=>{throw Error(a)},E=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),A=a=>0==u(a),m=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),N="_",T="_id",b="SELECT",C="WHERE",O="TABLE",S="ALTER "+O,$="DELETE FROM",I=b+"*FROM",L="pragma_",R="data_version",D="schema_version",x="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>g(f(a,((a,t)=>"$"+(t+1))),s),_=(a,t)=>a?.has(t)??!1,j=a=>[...a?.values()??[]],q=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,J=F.keys,Y=F.freeze,k=(a=[])=>F.fromEntries(a),G=(...a)=>F.assign({},...a),H=(a,t)=>f(U(a),(([a,e])=>t(e,a))),z=a=>F.values(a),K=a=>u(J(a)),Q=a=>(a=>!c(a)&&l(B(a),(a=>a==F.prototype||c(B(a))),(()=>!0)))(a)&&0==K(a),V=a=>new Map(a),W=(a,t)=>a?.get(t),X=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),Z=(a,t,e)=>c(e)?(q(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(_(a,t)||Z(a,t,e()),W(a,t)),ta=V(),ea=V(),na=(a,t,e,n,s,i,o,r={},y=[])=>{let d,u,p,E=0,g=0,f=0;aa(ta,y,(()=>0)),aa(ea,y,(()=>[]));const[A,m,N,T,b]=((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]:v("Store type not supported by this Persister"))(o,a),C=t=>{(A&&w(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=E&&(E=1,g++,await L((async()=>{try{const a=await t();w(a)?C(a):v("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}E=0}))),R),S=()=>(u&&(s(u),u=void 0),R),$=async a=>(1!=E&&(E=2,f++,await L((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),R),I=()=>(l(p,a.delListener),p=void 0,R),L=async(...a)=>(h(W(ea,y),...a),await(async()=>{if(!W(ta,y)){for(Z(ta,y,1);!c((a=W(ea,y),d=a.shift()));)try{await d()}catch(a){i?.(a)}Z(ta,y,0)}var a})(),R),R={load:O,startAutoLoad:async a=>{await S().load(a);try{u=await n((async(a,t)=>{t||a?2!=E&&(E=1,g++,C(t??a),E=0):await O()}))}catch(a){i?.(a)}return R},stopAutoLoad:S,isAutoLoading:()=>!c(u),save:$,startAutoSave:async()=>(await I().save(),p=a.addDidFinishTransactionListener((()=>{const a=N();T(a)&&$(a)})),R),stopAutoSave:I,isAutoSaving:()=>!c(p),schedule:L,getStore:()=>a,destroy:()=>(W(ea,y).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:g,saves:f}),...r};return Y(R)},sa=a=>new Set(w(a)||c(a)?a:[a]),ia=(a,t)=>a?.add(t),oa=(a,t,e,n,i)=>{const o=V();return[async()=>{o.clear(),f(await e(a,t),(({tn:a,cn:t})=>ia(aa(o,a,sa),t)))},async(t,e)=>((a,t)=>_(W(o,a),t))(t,e)?k(m(f(await a(I+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!c(a)&&!Q(t)))):{},async(t,e,n,r,l,y=!1)=>{const w=sa();H(n??{},(a=>f(J(a??{}),(a=>ia(w,a)))));const d=j(w);if(!y&&l&&A(d)&&_(o,t))return await a("DROP "+O+M(t)),void Z(o,t);const u=W(o,t),v=sa(j(u));if(A(d)||(_(o,t)?await p(f([e,...d],(async(n,s)=>{q(v,n)||(await a(S+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),ia(u,n))}))):(await a("CREATE "+O+M(t)+`(${M(e)}text PRIMARY KEY${g(f(d,(a=>s+M(a)+"json")))});`),Z(o,t,sa([e,...d])))),await p([...!y&&r?f(j(v),(async n=>{n!=e&&(await a(S+M(t)+"DROP"+M(n)),q(u,n))})):[]]),y)c(n)?await a($+M(t)+C+" true"):await p(H(n,(async(n,s)=>{c(n)?await a($+M(t)+C+M(e)+"=$1",[s]):A(d)||await ra(a,t,e,J(n),[s,...z(n)],i)})));else if(A(d))_(o,t)&&await a($+M(t)+C+" true");else{const s=m(j(W(o,t)),(a=>a!=e)),r=[],c=[];H(n??{},((a,t)=>{h(r,t,...f(s,(t=>a?.[t]))),h(c,t)})),await ra(a,t,e,s,r,i),await a($+M(t)+C+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ra=async(a,t,e,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+g(f(n,(a=>s+M(a))))+")VALUES"+ca(i,u(n)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+g(f(n,(a=>M(a)+"=excluded."+M(a))),s):""),f(i,(a=>a??null))),ca=(a,t)=>g(E(u(a)/t,(a=>"("+g(E(t,(e=>"$"+(a*t+e+1))),s)+")")),s),la=(a,t,e,n,s,i,o,[r,c,l],y,w,d,u,p)=>{const[v,E,g,f]=oa(t,y,w,s,p),A=na(a,(async()=>await f((async()=>{return await v(),a=(await E(r,c))[N]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await v(),await g(r,c,{[N]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},d);return A},ya=(a,t,e,n,s,i,o,[r,l,[y,w,d]],u,v,E,g,f)=>{const[A,h,b,C]=oa(t,u,v,s,f),O=async(a,t)=>await p(X(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await b(e,n,a[o],s,i,t)}))),S=async(a,t)=>w?await b(d,T,{[N]:a},!0,!0,t):null,$=na(a,(async()=>await C((async()=>{await A();const a=await(async()=>k(m(await p(X(r,(async([a,t],e)=>[a,await h(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await h(d,T))[N]:{})();return Q(a)&&c(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await A(),c(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[g]:()=>E,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},E);return $},wa="ColumnName",da="store",ua="json",pa=da+"TableName",va=da+"Id"+wa,Ea=da+wa,ga="autoLoadIntervalSeconds",fa="rowId"+wa,Aa="tableId",ma="tableName",ha="deleteEmptyColumns",Na="deleteEmptyTable",Ta={mode:ua,[ga]:1},ba={load:0,save:0,[ma]:n+"_values"},Ca=(a,t,e,n,s)=>{const i=V();return H(a,((a,o)=>{const r=d(z(G(t,y(a)?{[e]:a}:a)),0,K(t));c(r[0])||n(o,r[0])||(s(o,r[0]),Z(i,o,r))})),i},Oa=(a,t,e,s,i,o,c,l,w,u="getDb",p)=>{let v,E,g;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(e,o),[A,m,h,N]=(a=>{const t=(a=>G(Ta,y(a)?{[pa]:a}:a??{}))(a),e=t[ga];if(t.mode==ua){const a=t[pa]??n;return[1,e,[a,t[va]??T,t[Ea]??da],sa(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=d(z(G(ba,o)),0,K(ba)),c=r[2],l=sa(c),w=sa(c);return[0,e,[Ca(s,{[Aa]:null,[fa]:T},Aa,(a=>_(w,a)),(a=>ia(l,a))),Ca(i,{[ma]:null,[fa]:T,[ha]:0,[Na]:0},ma,((a,t)=>_(w,t)),((a,t)=>ia(l,t))),r],l]})(t);return(A?la:ya)(a,f,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await f(`${b} ${R} d,${D} s,TOTAL_CHANGES() c FROM ${L}${R} JOIN ${L}${D}`);t==v&&e==E&&n==g||(null!=v&&a(),v=t,E=e,g=n)}catch{}}),1e3*m),n=()=>{v=E=g=null,r(t)},o=s((t=>{N.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(o)}}),(a=>a()),c,(()=>0),l,h,j(N),(async(a,t)=>await a(`${b} t.name tn,c.name cn FROM ${x}list()t,${x}info(t.name)c ${C} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),w,u,p)};a.createExpoSqlitePersister=(a,e,n,s,i)=>Oa(a,n,(async(a,t=[])=>await e.getAllAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),s,i,3,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqlite={},a["expo-sqlite"]);
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),f=a=>0==u(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",T="SELECT",b="WHERE",C="TABLE",O="ALTER "+C,S="DELETE FROM",$=T+"*FROM",L="pragma_",I="data_version",R="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>g(E(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,q=F.keys,J=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>F.values(a),z=a=>u(q(a)),K=a=>(a=>!r(a)&&c(B(a),(a=>a==F.prototype||r(B(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),aa=Q(),ta=Q(),ea=(a,t,e,n,s,i,o,l={},w=[])=>{let u,d,v,g=0,E=0,f=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,h,N,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]:p("Store type not supported by this Persister"))(o,a),C=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=g&&(g=1,E++,await I((async()=>{try{const a=await t();y(a)?C(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}g=0}))),R),S=()=>(d&&(s(d),d=void 0),R),$=async a=>(1!=g&&(g=2,f++,await I((async()=>{try{await e(h,a)}catch(a){i?.(a)}g=0}))),R),L=()=>(c(v,a.delListener),v=void 0,R),I=async(...a)=>(m(V(ta,w),...a),await(async()=>{if(!V(aa,w)){for(X(aa,w,1);!r((a=V(ta,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(aa,w,0)}var a})(),R),R={load:O,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=g&&(g=1,E++,C(t??a),g=0):await O()}))}catch(a){i?.(a)}return R},stopAutoLoad:S,isAutoLoading:()=>!r(d),save:$,startAutoSave:async()=>(await L().save(),v=a.addDidFinishTransactionListener((()=>{const a=N();T(a)&&$(a)})),R),stopAutoSave:L,isAutoSaving:()=>!r(v),schedule:I,getStore:()=>a,destroy:()=>(V(ta,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:E,saves:f}),...l};return J(R)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const o=Q();return[async()=>{o.clear(),E(await e(a,t),(({tn:a,cn:t})=>sa(Z(o,a,na),t)))},async(t,e)=>((a,t)=>_(V(o,a),t))(t,e)?Y(A(E(await a($+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();G(s??{},(a=>E(q(a??{}),(a=>sa(w,a)))));const u=x(w);if(!y&&l&&f(u)&&_(o,t))return await a("DROP "+C+M(t)),void X(o,t);const p=V(o,t),v=na(x(p));if(f(u)||(_(o,t)?await d(E([e,...u],(async(n,s)=>{j(v,n)||(await a(O+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+C+M(t)+`(${M(e)}text PRIMARY KEY${g(E(u,(a=>n+M(a)+"json")))});`),X(o,t,na([e,...u])))),await d([...!y&&c?E(x(v),(async n=>{n!=e&&(await a(O+M(t)+"DROP"+M(n)),j(p,n))})):[]]),y)r(s)?await a(S+M(t)+b+" true"):await d(G(s,(async(n,s)=>{r(n)?await a(S+M(t)+b+M(e)+"=$1",[s]):f(u)||await oa(a,t,e,q(n),[s,...H(n)],i)})));else if(f(u))_(o,t)&&await a(S+M(t)+b+" true");else{const n=A(x(V(o,t)),(a=>a!=e)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(n,(t=>a?.[t]))),m(c,t)})),await oa(a,t,e,n,r,i),await a(S+M(t)+b+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+g(E(s,(a=>n+M(a))))+")VALUES"+ra(i,u(s)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+g(E(s,(a=>M(a)+"=excluded."+M(a))),n):""),E(i,(a=>a??null))),ra=(a,t)=>g(v(u(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,p)=>{const[v,g,E,f]=ia(t,y,w,s,p),A=ea(a,(async()=>await f((async()=>{return await v(),a=(await g(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await v(),await E(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},u);return A},la=(a,t,e,n,s,i,o,[c,l,[y,w,u]],p,v,g,E,f)=>{const[m,T,b,C]=ia(t,p,v,s,f),O=async(a,t)=>await d(W(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await b(e,n,a[o],s,i,t)}))),S=async(a,t)=>w?await b(u,N,{[h]:a},!0,!0,t):null,$=ea(a,(async()=>await C((async()=>{await m();const a=await(async()=>Y(A(await d(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>y?(await T(u,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await m(),r(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[E]:()=>g,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},g);return $},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,ga="autoLoadIntervalSeconds",Ea="rowId"+ya,fa="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ua,[ga]:1},Ta={load:0,save:0,[Aa]:e+"_values"},ba=(a,t,e,n,s)=>{const i=Q();return G(a,((a,o)=>{const c=w(H(k(t,l(a)?{[e]:a}:a)),0,z(t));r(c[0])||n(o,c[0])||(s(o,c[0]),X(i,o,c))})),i};a.createLibSqlPersister=(a,t,n,s,i)=>((a,t,n,s,i,r,c,y,u,d="getDb",p)=>{let v,g,E;const[f,A,m,h]=(a=>{const t=(a=>k(Na,l(a)?{[da]:a}:a??{}))(a),n=t[ga];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??N,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(H(k(Ta,o)),0,z(Ta)),c=r[2],y=na(c),u=na(c);return[0,n,[ba(s,{[fa]:null,[Ea]:N},fa,(a=>_(u,a)),(a=>sa(y,a))),ba(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),r],y]})(t);return(f?ca:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(T+` ${I} d,${R} s,TOTAL_CHANGES() c FROM ${L}${I} JOIN ${L}${R}`);t==(v??=t)&&e==(g??=e)&&s==(E??=s)||(a(),v=t,g=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),v=g=E=null,i(t)}),c,(()=>0),y,m,x(h),(async(a,t)=>await a(`${T} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${b} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,n,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),s,i,1,t,"getClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterLibsql={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),f=a=>0==u(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",T="SELECT",b="WHERE",C="TABLE",O="ALTER "+C,$="DELETE FROM",S=T+"*FROM",L="pragma_",I="data_version",R="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>g(E(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,q=F.keys,J=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>F.values(a),z=a=>u(q(a)),K=a=>(a=>!r(a)&&c(B(a),(a=>a==F.prototype||r(B(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),aa=Q(),ta=Q(),ea=(a,t,e,n,s,i,o,l={},w=[])=>{let u,d,v,g=0,E=0,f=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,h,N,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]:p("Store type not supported by this Persister"))(o,a),C=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=g&&(g=1,E++,await I((async()=>{try{const a=await t();y(a)?C(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}g=0}))),R),$=()=>(d&&(s(d),d=void 0),R),S=async a=>(1!=g&&(g=2,f++,await I((async()=>{try{await e(h,a)}catch(a){i?.(a)}g=0}))),R),L=()=>(c(v,a.delListener),v=void 0,R),I=async(...a)=>(m(V(ta,w),...a),await(async()=>{if(!V(aa,w)){for(X(aa,w,1);!r((a=V(ta,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(aa,w,0)}var a})(),R),R={load:O,startAutoLoad:async a=>{await $().load(a);try{d=await n((async(a,t)=>{t||a?2!=g&&(g=1,E++,C(t??a),g=0):await O()}))}catch(a){i?.(a)}return R},stopAutoLoad:$,isAutoLoading:()=>!r(d),save:S,startAutoSave:async()=>(await L().save(),v=a.addDidFinishTransactionListener((()=>{const a=N();T(a)&&S(a)})),R),stopAutoSave:L,isAutoSaving:()=>!r(v),schedule:I,getStore:()=>a,destroy:()=>(V(ta,w).splice(0,void 0),$().stopAutoSave()),getStats:()=>({loads:E,saves:f}),...l};return J(R)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const o=Q();return[async()=>{o.clear(),E(await e(a,t),(({tn:a,cn:t})=>sa(Z(o,a,na),t)))},async(t,e)=>((a,t)=>_(V(o,a),t))(t,e)?Y(A(E(await a(S+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();G(s??{},(a=>E(q(a??{}),(a=>sa(w,a)))));const u=x(w);if(!y&&l&&f(u)&&_(o,t))return await a("DROP "+C+M(t)),void X(o,t);const p=V(o,t),v=na(x(p));if(f(u)||(_(o,t)?await d(E([e,...u],(async(n,s)=>{j(v,n)||(await a(O+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+C+M(t)+`(${M(e)}text PRIMARY KEY${g(E(u,(a=>n+M(a)+"json")))});`),X(o,t,na([e,...u])))),await d([...!y&&c?E(x(v),(async n=>{n!=e&&(await a(O+M(t)+"DROP"+M(n)),j(p,n))})):[]]),y)r(s)?await a($+M(t)+b+" true"):await d(G(s,(async(n,s)=>{r(n)?await a($+M(t)+b+M(e)+"=$1",[s]):f(u)||await oa(a,t,e,q(n),[s,...H(n)],i)})));else if(f(u))_(o,t)&&await a($+M(t)+b+" true");else{const n=A(x(V(o,t)),(a=>a!=e)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(n,(t=>a?.[t]))),m(c,t)})),await oa(a,t,e,n,r,i),await a($+M(t)+b+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+g(E(s,(a=>n+M(a))))+")VALUES"+ra(i,u(s)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+g(E(s,(a=>M(a)+"=excluded."+M(a))),n):""),E(i,(a=>a??null))),ra=(a,t)=>g(v(u(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,p)=>{const[v,g,E,f]=ia(t,y,w,s,p),A=ea(a,(async()=>await f((async()=>{return await v(),a=(await g(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await v(),await E(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},u);return A},la=(a,t,e,n,s,i,o,[c,l,[y,w,u]],p,v,g,E,f)=>{const[m,T,b,C]=ia(t,p,v,s,f),O=async(a,t)=>await d(W(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await b(e,n,a[o],s,i,t)}))),$=async(a,t)=>w?await b(u,N,{[h]:a},!0,!0,t):null,S=ea(a,(async()=>await C((async()=>{await m();const a=await(async()=>Y(A(await d(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>y?(await T(u,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await m(),r(t)){const[t,e]=a();await O(t),await $(e)}else await O(t[0],!0),await $(t[1],!0)}))),e,n,s,o,{[E]:()=>g,destroy:()=>(S.stopAutoLoad().stopAutoSave(),i(),S)},g);return S},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,ga="autoLoadIntervalSeconds",Ea="rowId"+ya,fa="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ua,[ga]:1},Ta={load:0,save:0,[Aa]:e+"_values"},ba=(a,t,e,n,s)=>{const i=Q();return G(a,((a,o)=>{const c=w(H(k(t,l(a)?{[e]:a}:a)),0,z(t));r(c[0])||n(o,c[0])||(s(o,c[0]),X(i,o,c))})),i},Ca=(a,t,n,s,i,r,c,y,u,d="getDb",p)=>{let v,g,E;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[A,m,h,C]=(a=>{const t=(a=>k(Na,l(a)?{[da]:a}:a??{}))(a),n=t[ga];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??N,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(H(k(Ta,o)),0,z(Ta)),c=r[2],y=na(c),u=na(c);return[0,n,[ba(s,{[fa]:null,[Ea]:N},fa,(a=>_(u,a)),(a=>sa(y,a))),ba(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),r],y]})(t);return(A?ca:la)(a,f,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await f(`${T} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${L}${I} JOIN ${L}${R}`);t==v&&e==g&&n==E||(null!=v&&a(),v=t,g=e,E=n)}catch{}}),1e3*m),n=()=>{v=g=E=null,o(t)},r=s((t=>{C.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(r)}}),(a=>a()),c,(()=>0),y,h,x(C),(async(a,t)=>await a(`${T} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${b} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),u,d,p)};a.createLibSqlPersister=(a,t,e,n,s)=>Ca(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,1,t,"getClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterLibsql={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),f=a=>0==u(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",T="SELECT",b="WHERE",C="TABLE",O="ALTER "+C,S="DELETE FROM",$=T+"*FROM",L="pragma_",I="data_version",R="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>g(E(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,q=F.keys,J=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>F.values(a),z=a=>u(q(a)),K=a=>(a=>!r(a)&&c(B(a),(a=>a==F.prototype||r(B(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),aa=Q(),ta=Q(),ea=(a,t,e,n,s,i,o,l={},w=[])=>{let u,d,v,g=0,E=0,f=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,h,N,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]:p("Store type not supported by this Persister"))(o,a),C=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=g&&(g=1,E++,await I((async()=>{try{const a=await t();y(a)?C(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}g=0}))),R),S=()=>(d&&(s(d),d=void 0),R),$=async a=>(1!=g&&(g=2,f++,await I((async()=>{try{await e(h,a)}catch(a){i?.(a)}g=0}))),R),L=()=>(c(v,a.delListener),v=void 0,R),I=async(...a)=>(m(V(ta,w),...a),await(async()=>{if(!V(aa,w)){for(X(aa,w,1);!r((a=V(ta,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(aa,w,0)}var a})(),R),R={load:O,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=g&&(g=1,E++,C(t??a),g=0):await O()}))}catch(a){i?.(a)}return R},stopAutoLoad:S,isAutoLoading:()=>!r(d),save:$,startAutoSave:async()=>(await L().save(),v=a.addDidFinishTransactionListener((()=>{const a=N();T(a)&&$(a)})),R),stopAutoSave:L,isAutoSaving:()=>!r(v),schedule:I,getStore:()=>a,destroy:()=>(V(ta,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:E,saves:f}),...l};return J(R)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const o=Q();return[async()=>{o.clear(),E(await e(a,t),(({tn:a,cn:t})=>sa(Z(o,a,na),t)))},async(t,e)=>((a,t)=>_(V(o,a),t))(t,e)?Y(A(E(await a($+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();G(s??{},(a=>E(q(a??{}),(a=>sa(w,a)))));const u=x(w);if(!y&&l&&f(u)&&_(o,t))return await a("DROP "+C+M(t)),void X(o,t);const p=V(o,t),v=na(x(p));if(f(u)||(_(o,t)?await d(E([e,...u],(async(n,s)=>{j(v,n)||(await a(O+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+C+M(t)+`(${M(e)}text PRIMARY KEY${g(E(u,(a=>n+M(a)+"json")))});`),X(o,t,na([e,...u])))),await d([...!y&&c?E(x(v),(async n=>{n!=e&&(await a(O+M(t)+"DROP"+M(n)),j(p,n))})):[]]),y)r(s)?await a(S+M(t)+b+" true"):await d(G(s,(async(n,s)=>{r(n)?await a(S+M(t)+b+M(e)+"=$1",[s]):f(u)||await oa(a,t,e,q(n),[s,...H(n)],i)})));else if(f(u))_(o,t)&&await a(S+M(t)+b+" true");else{const n=A(x(V(o,t)),(a=>a!=e)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(n,(t=>a?.[t]))),m(c,t)})),await oa(a,t,e,n,r,i),await a(S+M(t)+b+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+g(E(s,(a=>n+M(a))))+")VALUES"+ra(i,u(s)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+g(E(s,(a=>M(a)+"=excluded."+M(a))),n):""),E(i,(a=>a??null))),ra=(a,t)=>g(v(u(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,p)=>{const[v,g,E,f]=ia(t,y,w,s,p),A=ea(a,(async()=>await f((async()=>{return await v(),a=(await g(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await v(),await E(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},u);return A},la=(a,t,e,n,s,i,o,[c,l,[y,w,u]],p,v,g,E,f)=>{const[m,T,b,C]=ia(t,p,v,s,f),O=async(a,t)=>await d(W(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await b(e,n,a[o],s,i,t)}))),S=async(a,t)=>w?await b(u,N,{[h]:a},!0,!0,t):null,$=ea(a,(async()=>await C((async()=>{await m();const a=await(async()=>Y(A(await d(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>y?(await T(u,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await m(),r(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,o,{[E]:()=>g,destroy:()=>($.stopAutoLoad().stopAutoSave(),i(),$)},g);return $},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,ga="autoLoadIntervalSeconds",Ea="rowId"+ya,fa="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ua,[ga]:1},Ta={load:0,save:0,[Aa]:e+"_values"},ba=(a,t,e,n,s)=>{const i=Q();return G(a,((a,o)=>{const c=w(H(k(t,l(a)?{[e]:a}:a)),0,z(t));r(c[0])||n(o,c[0])||(s(o,c[0]),X(i,o,c))})),i};a.createLibSqlPersister=(a,t,n,s,i)=>((a,t,n,s,i,r,c,y,u,d="getDb",p)=>{let v,g,E;const[f,A,m,h]=(a=>{const t=(a=>k(Na,l(a)?{[da]:a}:a??{}))(a),n=t[ga];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??N,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(H(k(Ta,o)),0,z(Ta)),c=r[2],y=na(c),u=na(c);return[0,n,[ba(s,{[fa]:null,[Ea]:N},fa,(a=>_(u,a)),(a=>sa(y,a))),ba(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),r],y]})(t);return(f?ca:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(T+` ${I} d,${R} s,TOTAL_CHANGES() c FROM ${L}${I} JOIN ${L}${R}`);t==(v??=t)&&e==(g??=e)&&s==(E??=s)||(a(),v=t,g=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),v=g=E=null,i(t)}),c,(()=>0),y,m,x(h),(async(a,t)=>await a(`${T} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${b} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,n,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),s,i,1,t,"getClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterLibsql={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>i.all(a),p=a=>{throw Error(a)},v=(a,t)=>E(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),E=(a,t)=>a.map(t),f=a=>0==u(a),A=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h="_",N="_id",T="SELECT",b="WHERE",C="TABLE",O="ALTER "+C,$="DELETE FROM",S=T+"*FROM",L="pragma_",I="data_version",R="schema_version",D="pragma_table_",M=a=>`"${a.replace(/"/g,'""')}"`,P=a=>g(E(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,q=F.keys,J=F.freeze,Y=(a=[])=>F.fromEntries(a),k=(...a)=>F.assign({},...a),G=(a,t)=>E(U(a),(([a,e])=>t(e,a))),H=a=>F.values(a),z=a=>u(q(a)),K=a=>(a=>!r(a)&&c(B(a),(a=>a==F.prototype||r(B(a))),(()=>!0)))(a)&&0==z(a),Q=a=>new Map(a),V=(a,t)=>a?.get(t),W=(a,t)=>E([...a?.entries()??[]],(([a,e])=>t(e,a))),X=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||X(a,t,e()),V(a,t)),aa=Q(),ta=Q(),ea=(a,t,e,n,s,i,o,l={},w=[])=>{let u,d,v,g=0,E=0,f=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,h,N,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]:p("Store type not supported by this Persister"))(o,a),C=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=g&&(g=1,E++,await I((async()=>{try{const a=await t();y(a)?C(a):p("Content is not an array "+a)}catch(t){i?.(t),a&&b(a)}g=0}))),R),$=()=>(d&&(s(d),d=void 0),R),S=async a=>(1!=g&&(g=2,f++,await I((async()=>{try{await e(h,a)}catch(a){i?.(a)}g=0}))),R),L=()=>(c(v,a.delListener),v=void 0,R),I=async(...a)=>(m(V(ta,w),...a),await(async()=>{if(!V(aa,w)){for(X(aa,w,1);!r((a=V(ta,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}X(aa,w,0)}var a})(),R),R={load:O,startAutoLoad:async a=>{await $().load(a);try{d=await n((async(a,t)=>{t||a?2!=g&&(g=1,E++,C(t??a),g=0):await O()}))}catch(a){i?.(a)}return R},stopAutoLoad:$,isAutoLoading:()=>!r(d),save:S,startAutoSave:async()=>(await L().save(),v=a.addDidFinishTransactionListener((()=>{const a=N();T(a)&&S(a)})),R),stopAutoSave:L,isAutoSaving:()=>!r(v),schedule:I,getStore:()=>a,destroy:()=>(V(ta,w).splice(0,void 0),$().stopAutoSave()),getStats:()=>({loads:E,saves:f}),...l};return J(R)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),ia=(a,t,e,s,i)=>{const o=Q();return[async()=>{o.clear(),E(await e(a,t),(({tn:a,cn:t})=>sa(Z(o,a,na),t)))},async(t,e)=>((a,t)=>_(V(o,a),t))(t,e)?Y(A(E(await a(S+M(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!K(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();G(s??{},(a=>E(q(a??{}),(a=>sa(w,a)))));const u=x(w);if(!y&&l&&f(u)&&_(o,t))return await a("DROP "+C+M(t)),void X(o,t);const p=V(o,t),v=na(x(p));if(f(u)||(_(o,t)?await d(E([e,...u],(async(n,s)=>{j(v,n)||(await a(O+M(t)+"ADD"+M(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+M(t)+`(${M(e)})`),sa(p,n))}))):(await a("CREATE "+C+M(t)+`(${M(e)}text PRIMARY KEY${g(E(u,(a=>n+M(a)+"json")))});`),X(o,t,na([e,...u])))),await d([...!y&&c?E(x(v),(async n=>{n!=e&&(await a(O+M(t)+"DROP"+M(n)),j(p,n))})):[]]),y)r(s)?await a($+M(t)+b+" true"):await d(G(s,(async(n,s)=>{r(n)?await a($+M(t)+b+M(e)+"=$1",[s]):f(u)||await oa(a,t,e,q(n),[s,...H(n)],i)})));else if(f(u))_(o,t)&&await a($+M(t)+b+" true");else{const n=A(x(V(o,t)),(a=>a!=e)),r=[],c=[];G(s??{},((a,t)=>{m(r,t,...E(n,(t=>a?.[t]))),m(c,t)})),await oa(a,t,e,n,r,i),await a($+M(t)+b+M(e)+`NOT IN(${P(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},oa=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+M(t)+"("+M(e)+g(E(s,(a=>n+M(a))))+")VALUES"+ra(i,u(s)+1)+(o?"ON CONFLICT("+M(e)+")DO UPDATE SET"+g(E(s,(a=>M(a)+"=excluded."+M(a))),n):""),E(i,(a=>a??null))),ra=(a,t)=>g(v(u(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,i,o,[r,c,l],y,w,u,d,p)=>{const[v,g,E,f]=ia(t,y,w,s,p),A=ea(a,(async()=>await f((async()=>{return await v(),a=(await g(r,c))[h]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await v(),await E(r,c,{[h]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),i(),A)},u);return A},la=(a,t,e,n,s,i,o,[c,l,[y,w,u]],p,v,g,E,f)=>{const[m,T,b,C]=ia(t,p,v,s,f),O=async(a,t)=>await d(W(l,(async([e,n,s,i],o)=>{t&&!(o in a)||await b(e,n,a[o],s,i,t)}))),$=async(a,t)=>w?await b(u,N,{[h]:a},!0,!0,t):null,S=ea(a,(async()=>await C((async()=>{await m();const a=await(async()=>Y(A(await d(W(c,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!K(a[1])))))(),t=await(async()=>y?(await T(u,N))[h]:{})();return K(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await m(),r(t)){const[t,e]=a();await O(t),await $(e)}else await O(t[0],!0),await $(t[1],!0)}))),e,n,s,o,{[E]:()=>g,destroy:()=>(S.stopAutoLoad().stopAutoSave(),i(),S)},g);return S},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,ga="autoLoadIntervalSeconds",Ea="rowId"+ya,fa="tableId",Aa="tableName",ma="deleteEmptyColumns",ha="deleteEmptyTable",Na={mode:ua,[ga]:1},Ta={load:0,save:0,[Aa]:e+"_values"},ba=(a,t,e,n,s)=>{const i=Q();return G(a,((a,o)=>{const c=w(H(k(t,l(a)?{[e]:a}:a)),0,z(t));r(c[0])||n(o,c[0])||(s(o,c[0]),X(i,o,c))})),i},Ca=(a,t,n,s,i,r,c,y,u,d="getDb",p)=>{let v,g,E;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[A,m,h,C]=(a=>{const t=(a=>k(Na,l(a)?{[da]:a}:a??{}))(a),n=t[ga];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??N,t[va]??wa],na(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=w(H(k(Ta,o)),0,z(Ta)),c=r[2],y=na(c),u=na(c);return[0,n,[ba(s,{[fa]:null,[Ea]:N},fa,(a=>_(u,a)),(a=>sa(y,a))),ba(i,{[Aa]:null,[Ea]:N,[ma]:0,[ha]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),r],y]})(t);return(A?ca:la)(a,f,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await f(`${T} ${I} d,${R} s,TOTAL_CHANGES() c FROM ${L}${I} JOIN ${L}${R}`);t==v&&e==g&&n==E||(null!=v&&a(),v=t,g=e,E=n)}catch{}}),1e3*m),n=()=>{v=g=E=null,o(t)},r=s((t=>{C.has(t)&&(n(),a(),e())}));return e(),()=>{n(),i(r)}}),(a=>a()),c,(()=>0),y,h,x(C),(async(a,t)=>await a(`${T} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${b} t.schema='main'AND t.type IN('table','view')AND t.name IN(${P(t)})ORDER BY t.name,c.name`,t)),u,d,p)};a.createLibSqlPersister=(a,t,e,n,s)=>Ca(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,1,t,"getClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterLibsql={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=Promise,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=a=>t(a)==n,l=a=>Array.isArray(a),y=(a,t,e)=>a.slice(t,e),w=a=>a.length,u=async a=>i.all(a),E=a=>{throw Error(a)},d=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==w(a),R=(a,t)=>a.filter(t),g=(a,...t)=>a.push(...t),f="_",N="_id",v="SELECT",C="WHERE",O="TABLE",h="ALTER "+O,L="DELETE FROM",S=v+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,b=a=>p(A(a,((a,t)=>"$"+(t+1))),s),I=(a,t)=>a?.has(t)??!1,$=a=>[...a?.values()??[]],P=(a,t)=>a?.delete(t),D=Object,M=a=>D.getPrototypeOf(a),U=D.entries,_=D.keys,F=D.freeze,x=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>A(U(a),(([a,e])=>t(e,a))),B=a=>D.values(a),Y=a=>w(_(a)),X=a=>(a=>!o(a)&&r(M(a),(a=>a==D.prototype||o(M(a))),(()=>!0)))(a)&&0==Y(a),k=a=>new Map(a),q=(a,t)=>a?.get(t),J=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),K=(a,t,e)=>o(e)?(P(a,t),a):a?.set(t,e),z=(a,t,e,s)=>(I(a,t)||K(a,t,e()),q(a,t)),H=k(),Q=k(),V=(a,t,e,s,n,i,c,y={},w=[])=>{let u,d,p,A=0,T=0,R=0;z(H,w,(()=>0)),z(Q,w,(()=>[]));const[f,N,v,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!X(a)||!X(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!X(a)||!X(t),t.setContent]:E("Store type not supported by this Persister"))(c,a),h=t=>{(f&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},L=async a=>(2!=A&&(A=1,T++,await I((async()=>{try{const a=await t();l(a)?h(a):E("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}A=0}))),$),S=()=>(d&&(n(d),d=void 0),$),m=async a=>(1!=A&&(A=2,R++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}A=0}))),$),b=()=>(r(p,a.delListener),p=void 0,$),I=async(...a)=>(g(q(Q,w),...a),await(async()=>{if(!q(H,w)){for(K(H,w,1);!o((a=q(Q,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}K(H,w,0)}var a})(),$),$={load:L,startAutoLoad:async a=>{await S().load(a);try{d=await s((async(a,t)=>{t||a?2!=A&&(A=1,T++,h(t??a),A=0):await L()}))}catch(a){i?.(a)}return $},stopAutoLoad:S,isAutoLoading:()=>!o(d),save:m,startAutoSave:async()=>(await b().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();C(a)&&m(a)})),$),stopAutoSave:b,isAutoSaving:()=>!o(p),schedule:I,getStore:()=>a,destroy:()=>(q(Q,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:T,saves:R}),...y};return F($)},W=a=>new Set(l(a)||o(a)?a:[a]),Z=(a,t)=>a?.add(t),aa=(a,t,e,n,i)=>{const r=k();return[async()=>{r.clear(),A(await e(a,t),(({tn:a,cn:t})=>Z(z(r,a,W),t)))},async(t,e)=>((a,t)=>I(q(r,a),t))(t,e)?x(R(A(await a(S+m(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!X(t)))):{},async(t,e,n,c,l,y=!1)=>{const w=W();j(n??{},(a=>A(_(a??{}),(a=>Z(w,a)))));const E=$(w);if(!y&&l&&T(E)&&I(r,t))return await a("DROP "+O+m(t)),void K(r,t);const d=q(r,t),f=W($(d));if(T(E)||(I(r,t)?await u(A([e,...E],(async(s,n)=>{P(f,s)||(await a(h+m(t)+"ADD"+m(s)+(0==n?"text":"json")),0==n&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(e)})`),Z(d,s))}))):(await a("CREATE "+O+m(t)+`(${m(e)}text PRIMARY KEY${p(A(E,(a=>s+m(a)+"json")))});`),K(r,t,W([e,...E])))),await u([...!y&&c?A($(f),(async s=>{s!=e&&(await a(h+m(t)+"DROP"+m(s)),P(d,s))})):[]]),y)o(n)?await a(L+m(t)+C+" true"):await u(j(n,(async(s,n)=>{o(s)?await a(L+m(t)+C+m(e)+"=$1",[n]):T(E)||await ta(a,t,e,_(s),[n,...B(s)],i)})));else if(T(E))I(r,t)&&await a(L+m(t)+C+" true");else{const s=R($(q(r,t)),(a=>a!=e)),o=[],c=[];j(n??{},((a,t)=>{g(o,t,...A(s,(t=>a?.[t]))),g(c,t)})),await ta(a,t,e,s,o,i),await a(L+m(t)+C+m(e)+`NOT IN(${b(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ta=async(a,t,e,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+m(t)+"("+m(e)+p(A(n,(a=>s+m(a))))+")VALUES"+ea(i,w(n)+1)+(o?"ON CONFLICT("+m(e)+")DO UPDATE SET"+p(A(n,(a=>m(a)+"=excluded."+m(a))),s):""),A(i,(a=>a??null))),ea=(a,t)=>p(d(w(a)/t,(a=>"("+p(d(t,(e=>"$"+(a*t+e+1))),s)+")")),s),sa=(a,t,e,s,n,i,o,[r,c,l],y,w,u,E,d)=>{const[p,A,T,R]=aa(t,y,w,n,d),g=V(a,(async()=>await R((async()=>{return await p(),a=(await A(r,c))[f]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await R((async()=>{var t;await p(),await T(r,c,{[f]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[E]:()=>u,destroy:()=>(g.stopAutoLoad().stopAutoSave(),i(),g)},u);return g},na=(a,t,e,s,n,i,r,[c,l,[y,w,E]],d,p,A,T,g)=>{const[v,C,O,h]=aa(t,d,p,n,g),L=async(a,t)=>await u(J(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await O(e,s,a[o],n,i,t)}))),S=async(a,t)=>w?await O(E,N,{[f]:a},!0,!0,t):null,m=V(a,(async()=>await h((async()=>{await v();const a=await(async()=>x(R(await u(J(c,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!X(a[1])))))(),t=await(async()=>y?(await C(E,N))[f]:{})();return X(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await v(),o(t)){const[t,e]=a();await L(t),await S(e)}else await L(t[0],!0),await S(t[1],!0)}))),e,s,n,r,{[T]:()=>A,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},A);return m},ia="ColumnName",oa="store",ra="json",ca=oa+"TableName",la=oa+"Id"+ia,ya=oa+ia,wa="autoLoadIntervalSeconds",ua="rowId"+ia,Ea="tableId",da="tableName",pa="deleteEmptyColumns",Aa="deleteEmptyTable",Ta={mode:ra,[wa]:1},Ra={load:0,save:0,[da]:e+"_values"},ga=(a,t,e,s,n)=>{const i=k();return j(a,((a,r)=>{const l=y(B(G(t,c(a)?{[e]:a}:a)),0,Y(t));o(l[0])||s(r,l[0])||(n(r,l[0]),K(i,r,l))})),i},fa=e;a.createPostgresPersister=async(a,t,s,n,i)=>{const o=await(t.reserve?.());return((a,t,s,n,i,o,r,l,w,u,E="getDb")=>{const[d,,p,A]=(a=>{const t=(a=>G(Ta,c(a)?{[ca]:a}:a??{}))(a),s=t[wa];if(t.mode==ra){const a=t[ca]??e;return[1,s,[a,t[la]??N,t[ya]??oa],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,r=y(B(G(Ra,o)),0,Y(Ra)),l=r[2],w=W(l),u=W(l);return[0,s,[ga(n,{[Ea]:null,[ua]:N},Ea,(a=>I(u,a)),(a=>Z(w,a))),ga(i,{[da]:null,[ua]:N,[pa]:0,[Aa]:0},da,((a,t)=>I(u,t)),((a,t)=>Z(w,t))),r],w]})(t);return(d?sa:na)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(async a=>await n((t=>A.has(t)?a():0),A)),i,r,l,w,p,$(A),(async(a,t)=>await a(`${v} table_name tn,column_name cn FROM information_schema.columns ${C} table_schema='public'AND table_name IN(${b(t)})`,t)),u,E)})(a,s,o?.unsafe,(async(a,e)=>{const s=await t.listen(fa,(t=>a?.(t)));return await(t`CREATE OR REPLACE FUNCTION ${t(fa)}()RETURNS trigger AS $t$ BEGIN PERFORM pg_notify('${t.unsafe(fa)}',TG_TABLE_NAME);RETURN NULL;END;$t$ LANGUAGE plpgsql;`),await u(A($(e),(async a=>{await(t`CREATE TABLE IF NOT EXISTS ${t(a)}("_id"text PRIMARY KEY)`),await(t`CREATE OR REPLACE TRIGGER ${t(fa+a)} AFTER INSERT OR UPDATE OR DELETE ON ${t(a)} EXECUTE FUNCTION ${t(fa)}()`)}))),s}),(a=>a.unlisten().catch((()=>0))),n,i,(()=>o?.release?.()),3,t,"getSql")}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPostgres={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=a=>t(a)==s,E=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),y=a=>a.length,w=async a=>i.all(a),d=a=>{throw Error(a)},u=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),T=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==y(a),N=(a,t)=>a.filter(t),p=(a,...t)=>a.push(...t),g="_",C="_id",O="SELECT",f="WHERE",v="TABLE",L="ALTER "+v,m="DELETE FROM",$=O+"*FROM",I=a=>`"${a.replace(/"/g,'""')}"`,S=a=>T(R(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),P=Object,D=a=>P.getPrototypeOf(a),U=P.entries,F=P.keys,M=P.freeze,G=(a=[])=>P.fromEntries(a),B=(...a)=>P.assign({},...a),j=(a,t)=>R(U(a),(([a,e])=>t(e,a))),x=a=>P.values(a),X=a=>y(F(a)),Y=a=>(a=>!o(a)&&r(D(a),(a=>a==P.prototype||o(D(a))),(()=>!0)))(a)&&0==X(a),q=a=>new Map(a),H=(a,t)=>a?.get(t),W=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>o(e)?(b(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(_(a,t)||k(a,t,e()),H(a,t)),K=q(),V=q(),z=(a,t,e,n,s,i,c,l={},y=[])=>{let w,u,T,R=0,A=0,N=0;J(K,y,(()=>0)),J(V,y,(()=>[]));const[g,C,O,f,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]:d("Store type not supported by this Persister"))(c,a),L=t=>{(g&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},m=async a=>(2!=R&&(R=1,A++,await _((async()=>{try{const a=await t();E(a)?L(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&v(a)}R=0}))),h),$=()=>(u&&(s(u),u=void 0),h),I=async a=>(1!=R&&(R=2,N++,await _((async()=>{try{await e(C,a)}catch(a){i?.(a)}R=0}))),h),S=()=>(r(T,a.delListener),T=void 0,h),_=async(...a)=>(p(H(V,y),...a),await(async()=>{if(!H(K,y)){for(k(K,y,1);!o((a=H(V,y),w=a.shift()));)try{await w()}catch(a){i?.(a)}k(K,y,0)}var a})(),h),h={load:m,startAutoLoad:async a=>{await $().load(a);try{u=await n((async(a,t)=>{t||a?2!=R&&(R=1,A++,L(t??a),R=0):await m()}))}catch(a){i?.(a)}return h},stopAutoLoad:$,isAutoLoading:()=>!o(u),save:I,startAutoSave:async()=>(await S().save(),T=a.addDidFinishTransactionListener((()=>{const a=O();f(a)&&I(a)})),h),stopAutoSave:S,isAutoSaving:()=>!o(T),schedule:_,getStore:()=>a,destroy:()=>(H(V,y).splice(0,void 0),$().stopAutoSave()),getStats:()=>({loads:A,saves:N}),...l};return M(h)},Q=a=>new Set(E(a)||o(a)?a:[a]),Z=(a,t)=>a?.add(t),aa=(a,t,e,s,i)=>{const r=q();return[async()=>{r.clear(),R(await e(a,t),(({tn:a,cn:t})=>Z(J(r,a,Q),t)))},async(t,e)=>((a,t)=>_(H(r,a),t))(t,e)?G(N(R(await a($+I(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!Y(t)))):{},async(t,e,s,c,E,l=!1)=>{const y=Q();j(s??{},(a=>R(F(a??{}),(a=>Z(y,a)))));const d=h(y);if(!l&&E&&A(d)&&_(r,t))return await a("DROP "+v+I(t)),void k(r,t);const u=H(r,t),g=Q(h(u));if(A(d)||(_(r,t)?await w(R([e,...d],(async(n,s)=>{b(g,n)||(await a(L+I(t)+"ADD"+I(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+I(t)+`(${I(e)})`),Z(u,n))}))):(await a("CREATE "+v+I(t)+`(${I(e)}text PRIMARY KEY${T(R(d,(a=>n+I(a)+"json")))});`),k(r,t,Q([e,...d])))),await w([...!l&&c?R(h(g),(async n=>{n!=e&&(await a(L+I(t)+"DROP"+I(n)),b(u,n))})):[]]),l)o(s)?await a(m+I(t)+f+" true"):await w(j(s,(async(n,s)=>{o(n)?await a(m+I(t)+f+I(e)+"=$1",[s]):A(d)||await ta(a,t,e,F(n),[s,...x(n)],i)})));else if(A(d))_(r,t)&&await a(m+I(t)+f+" true");else{const n=N(h(H(r,t)),(a=>a!=e)),o=[],c=[];j(s??{},((a,t)=>{p(o,t,...R(n,(t=>a?.[t]))),p(c,t)})),await ta(a,t,e,n,o,i),await a(m+I(t)+f+I(e)+`NOT IN(${S(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+I(t)+"("+I(e)+T(R(s,(a=>n+I(a))))+")VALUES"+ea(i,y(s)+1)+(o?"ON CONFLICT("+I(e)+")DO UPDATE SET"+T(R(s,(a=>I(a)+"=excluded."+I(a))),n):""),R(i,(a=>a??null))),ea=(a,t)=>T(u(y(a)/t,(a=>"("+T(u(t,(e=>"$"+(a*t+e+1))),n)+")")),n),na=(a,t,e,n,s,i,o,[r,c,E],l,y,w,d,u)=>{const[T,R,A,N]=aa(t,l,y,s,u),p=z(a,(async()=>await N((async()=>{return await T(),a=(await R(r,c))[g]?.[E]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await N((async()=>{var t;await T(),await A(r,c,{[g]:{[E]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>w,destroy:()=>(p.stopAutoLoad().stopAutoSave(),i(),p)},w);return p},sa=(a,t,e,n,s,i,r,[c,E,[l,y,d]],u,T,R,A,p)=>{const[O,f,v,L]=aa(t,u,T,s,p),m=async(a,t)=>await w(W(E,(async([e,n,s,i],o)=>{t&&!(o in a)||await v(e,n,a[o],s,i,t)}))),$=async(a,t)=>y?await v(d,C,{[g]:a},!0,!0,t):null,I=z(a,(async()=>await L((async()=>{await O();const a=await(async()=>G(N(await w(W(c,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>l?(await f(d,C))[g]:{})();return Y(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await L((async()=>{if(await O(),o(t)){const[t,e]=a();await m(t),await $(e)}else await m(t[0],!0),await $(t[1],!0)}))),e,n,s,r,{[A]:()=>R,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},R);return I},ia="ColumnName",oa="store",ra="json",ca=oa+"TableName",Ea=oa+"Id"+ia,la=oa+ia,ya="autoLoadIntervalSeconds",wa="rowId"+ia,da="tableId",ua="tableName",Ta="deleteEmptyColumns",Ra="deleteEmptyTable",Aa={mode:ra,[ya]:1},Na={load:0,save:0,[ua]:e+"_values"},pa=(a,t,e,n,s)=>{const i=q();return j(a,((a,r)=>{const E=l(x(B(t,c(a)?{[e]:a}:a)),0,X(t));o(E[0])||n(r,E[0])||(s(r,E[0]),k(i,r,E))})),i},ga=e,Ca=/^([cd]:)(.+)/,Oa=e+"_data",fa=e+"_table";a.createPostgresPersister=async(a,t,n,s,i)=>{const o=await(t.reserve?.());return((a,t,n,s,i,o,E,y,d,u,T="getDb")=>{const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[N,,p,g]=(a=>{const t=(a=>B(Aa,c(a)?{[ca]:a}:a??{}))(a),n=t[ya];if(t.mode==ra){const a=t[ca]??e;return[1,n,[a,t[Ea]??C,t[la]??oa],Q(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=l(x(B(Na,o)),0,X(Na)),E=r[2],y=Q(E),w=Q(E);return[0,n,[pa(s,{[da]:null,[wa]:C},da,(a=>_(w,a)),(a=>Z(y,a))),pa(i,{[ua]:null,[wa]:C,[Ta]:0,[Ra]:0},ua,((a,t)=>_(w,t)),((a,t)=>Z(y,t))),r],y]})(t),v=async a=>{await A(`CREATE OR REPLACE TRIGGER ${I(Oa+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${I(a)} EXECUTE FUNCTION ${Oa}()`)};return(N?na:sa)(a,A,(async a=>{await A(`CREATE OR REPLACE FUNCTION ${fa}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${ga}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await A(`CREATE EVENT TRIGGER ${fa} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${fa}();`)}catch{}return await A(`CREATE OR REPLACE FUNCTION ${Oa}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${ga}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(g),(async a=>{await A(`CREATE TABLE IF NOT EXISTS ${I(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(ga,(async t=>{return await r((e=t,n=Ca,e?.match(n)),(async([,t,e])=>{_(g,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,E,y,d,p,h(g),(async(a,t)=>await a(`${O} table_name tn,column_name cn FROM information_schema.columns ${f} table_schema='public'AND table_name IN(${S(t)})`,t)),u,T)})(a,n,o?.unsafe,(async(a,e)=>t.listen(a,e)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>o?.release?.()),3,t,"getSql")}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPostgres={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=Promise,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=a=>t(a)==n,l=a=>Array.isArray(a),y=(a,t,e)=>a.slice(t,e),w=a=>a.length,u=async a=>i.all(a),E=a=>{throw Error(a)},d=(a,t)=>A(Array(a).fill(0),((a,e)=>t(e))),p=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),T=a=>0==w(a),R=(a,t)=>a.filter(t),g=(a,...t)=>a.push(...t),f="_",N="_id",v="SELECT",C="WHERE",O="TABLE",h="ALTER "+O,L="DELETE FROM",S=v+"*FROM",m=a=>`"${a.replace(/"/g,'""')}"`,b=a=>p(A(a,((a,t)=>"$"+(t+1))),s),I=(a,t)=>a?.has(t)??!1,$=a=>[...a?.values()??[]],P=(a,t)=>a?.delete(t),D=Object,M=a=>D.getPrototypeOf(a),U=D.entries,_=D.keys,F=D.freeze,x=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>A(U(a),(([a,e])=>t(e,a))),B=a=>D.values(a),Y=a=>w(_(a)),X=a=>(a=>!o(a)&&r(M(a),(a=>a==D.prototype||o(M(a))),(()=>!0)))(a)&&0==Y(a),k=a=>new Map(a),q=(a,t)=>a?.get(t),J=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),K=(a,t,e)=>o(e)?(P(a,t),a):a?.set(t,e),z=(a,t,e,s)=>(I(a,t)||K(a,t,e()),q(a,t)),H=k(),Q=k(),V=(a,t,e,s,n,i,c,y={},w=[])=>{let u,d,p,A=0,T=0,R=0;z(H,w,(()=>0)),z(Q,w,(()=>[]));const[f,N,v,C,O]=((a=1,t)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!X(a)||!X(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!X(a)||!X(t),t.setContent]:E("Store type not supported by this Persister"))(c,a),h=t=>{(f&&l(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},L=async a=>(2!=A&&(A=1,T++,await I((async()=>{try{const a=await t();l(a)?h(a):E("Content is not an array "+a)}catch(t){i?.(t),a&&O(a)}A=0}))),$),S=()=>(d&&(n(d),d=void 0),$),m=async a=>(1!=A&&(A=2,R++,await I((async()=>{try{await e(N,a)}catch(a){i?.(a)}A=0}))),$),b=()=>(r(p,a.delListener),p=void 0,$),I=async(...a)=>(g(q(Q,w),...a),await(async()=>{if(!q(H,w)){for(K(H,w,1);!o((a=q(Q,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}K(H,w,0)}var a})(),$),$={load:L,startAutoLoad:async a=>{await S().load(a);try{d=await s((async(a,t)=>{t||a?2!=A&&(A=1,T++,h(t??a),A=0):await L()}))}catch(a){i?.(a)}return $},stopAutoLoad:S,isAutoLoading:()=>!o(d),save:m,startAutoSave:async()=>(await b().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();C(a)&&m(a)})),$),stopAutoSave:b,isAutoSaving:()=>!o(p),schedule:I,getStore:()=>a,destroy:()=>(q(Q,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:T,saves:R}),...y};return F($)},W=a=>new Set(l(a)||o(a)?a:[a]),Z=(a,t)=>a?.add(t),aa=(a,t,e,n,i)=>{const r=k();return[async()=>{r.clear(),A(await e(a,t),(({tn:a,cn:t})=>Z(z(r,a,W),t)))},async(t,e)=>((a,t)=>I(q(r,a),t))(t,e)?x(R(A(await a(S+m(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!X(t)))):{},async(t,e,n,c,l,y=!1)=>{const w=W();j(n??{},(a=>A(_(a??{}),(a=>Z(w,a)))));const E=$(w);if(!y&&l&&T(E)&&I(r,t))return await a("DROP "+O+m(t)),void K(r,t);const d=q(r,t),f=W($(d));if(T(E)||(I(r,t)?await u(A([e,...E],(async(s,n)=>{P(f,s)||(await a(h+m(t)+"ADD"+m(s)+(0==n?"text":"json")),0==n&&await a("CREATE UNIQUE INDEX pk ON "+m(t)+`(${m(e)})`),Z(d,s))}))):(await a("CREATE "+O+m(t)+`(${m(e)}text PRIMARY KEY${p(A(E,(a=>s+m(a)+"json")))});`),K(r,t,W([e,...E])))),await u([...!y&&c?A($(f),(async s=>{s!=e&&(await a(h+m(t)+"DROP"+m(s)),P(d,s))})):[]]),y)o(n)?await a(L+m(t)+C+" true"):await u(j(n,(async(s,n)=>{o(s)?await a(L+m(t)+C+m(e)+"=$1",[n]):T(E)||await ta(a,t,e,_(s),[n,...B(s)],i)})));else if(T(E))I(r,t)&&await a(L+m(t)+C+" true");else{const s=R($(q(r,t)),(a=>a!=e)),o=[],c=[];j(n??{},((a,t)=>{g(o,t,...A(s,(t=>a?.[t]))),g(c,t)})),await ta(a,t,e,s,o,i),await a(L+m(t)+C+m(e)+`NOT IN(${b(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},ta=async(a,t,e,n,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+m(t)+"("+m(e)+p(A(n,(a=>s+m(a))))+")VALUES"+ea(i,w(n)+1)+(o?"ON CONFLICT("+m(e)+")DO UPDATE SET"+p(A(n,(a=>m(a)+"=excluded."+m(a))),s):""),A(i,(a=>a??null))),ea=(a,t)=>p(d(w(a)/t,(a=>"("+p(d(t,(e=>"$"+(a*t+e+1))),s)+")")),s),sa=(a,t,e,s,n,i,o,[r,c,l],y,w,u,E,d)=>{const[p,A,T,R]=aa(t,y,w,n,d),g=V(a,(async()=>await R((async()=>{return await p(),a=(await A(r,c))[f]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await R((async()=>{var t;await p(),await T(r,c,{[f]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,s,n,o,{[E]:()=>u,destroy:()=>(g.stopAutoLoad().stopAutoSave(),i(),g)},u);return g},na=(a,t,e,s,n,i,r,[c,l,[y,w,E]],d,p,A,T,g)=>{const[v,C,O,h]=aa(t,d,p,n,g),L=async(a,t)=>await u(J(l,(async([e,s,n,i],o)=>{t&&!(o in a)||await O(e,s,a[o],n,i,t)}))),S=async(a,t)=>w?await O(E,N,{[f]:a},!0,!0,t):null,m=V(a,(async()=>await h((async()=>{await v();const a=await(async()=>x(R(await u(J(c,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!X(a[1])))))(),t=await(async()=>y?(await C(E,N))[f]:{})();return X(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await v(),o(t)){const[t,e]=a();await L(t),await S(e)}else await L(t[0],!0),await S(t[1],!0)}))),e,s,n,r,{[T]:()=>A,destroy:()=>(m.stopAutoLoad().stopAutoSave(),i(),m)},A);return m},ia="ColumnName",oa="store",ra="json",ca=oa+"TableName",la=oa+"Id"+ia,ya=oa+ia,wa="autoLoadIntervalSeconds",ua="rowId"+ia,Ea="tableId",da="tableName",pa="deleteEmptyColumns",Aa="deleteEmptyTable",Ta={mode:ra,[wa]:1},Ra={load:0,save:0,[da]:e+"_values"},ga=(a,t,e,s,n)=>{const i=k();return j(a,((a,r)=>{const l=y(B(G(t,c(a)?{[e]:a}:a)),0,Y(t));o(l[0])||s(r,l[0])||(n(r,l[0]),K(i,r,l))})),i},fa=e;a.createPostgresPersister=async(a,t,s,n,i)=>{const o=await(t.reserve?.());return((a,t,s,n,i,o,r,l,w,u,E="getDb")=>{const[d,,p,A]=(a=>{const t=(a=>G(Ta,c(a)?{[ca]:a}:a??{}))(a),s=t[wa];if(t.mode==ra){const a=t[ca]??e;return[1,s,[a,t[la]??N,t[ya]??oa],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,r=y(B(G(Ra,o)),0,Y(Ra)),l=r[2],w=W(l),u=W(l);return[0,s,[ga(n,{[Ea]:null,[ua]:N},Ea,(a=>I(u,a)),(a=>Z(w,a))),ga(i,{[da]:null,[ua]:N,[pa]:0,[Aa]:0},da,((a,t)=>I(u,t)),((a,t)=>Z(w,t))),r],w]})(t);return(d?sa:na)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(async a=>await n((t=>A.has(t)?a():0),A)),i,r,l,w,p,$(A),(async(a,t)=>await a(`${v} table_name tn,column_name cn FROM information_schema.columns ${C} table_schema='public'AND table_name IN(${b(t)})`,t)),u,E)})(a,s,o?.unsafe,(async(a,e)=>{const s=await t.listen(fa,(t=>a?.(t)));return await(t`CREATE OR REPLACE FUNCTION ${t(fa)}()RETURNS trigger AS $t$ BEGIN PERFORM pg_notify('${t.unsafe(fa)}',TG_TABLE_NAME);RETURN NULL;END;$t$ LANGUAGE plpgsql;`),await u(A($(e),(async a=>{await(t`CREATE TABLE IF NOT EXISTS ${t(a)}("_id"text PRIMARY KEY)`),await(t`CREATE OR REPLACE TRIGGER ${t(fa+a)} AFTER INSERT OR UPDATE OR DELETE ON ${t(a)} EXECUTE FUNCTION ${t(fa)}()`)}))),s}),(a=>a.unlisten().catch((()=>0))),n,i,(()=>o?.release?.()),3,t,"getSql")}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPostgres={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),i=Promise,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),c=a=>t(a)==s,E=a=>Array.isArray(a),l=(a,t,e)=>a.slice(t,e),y=a=>a.length,w=async a=>i.all(a),d=a=>{throw Error(a)},u=(a,t)=>R(Array(a).fill(0),((a,e)=>t(e))),T=(a,t="")=>a.join(t),R=(a,t)=>a.map(t),A=a=>0==y(a),N=(a,t)=>a.filter(t),p=(a,...t)=>a.push(...t),g="_",C="_id",O="SELECT",f="WHERE",v="TABLE",L="ALTER "+v,m="DELETE FROM",$=O+"*FROM",I=a=>`"${a.replace(/"/g,'""')}"`,S=a=>T(R(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),P=Object,D=a=>P.getPrototypeOf(a),U=P.entries,F=P.keys,M=P.freeze,G=(a=[])=>P.fromEntries(a),B=(...a)=>P.assign({},...a),j=(a,t)=>R(U(a),(([a,e])=>t(e,a))),x=a=>P.values(a),X=a=>y(F(a)),Y=a=>(a=>!o(a)&&r(D(a),(a=>a==P.prototype||o(D(a))),(()=>!0)))(a)&&0==X(a),q=a=>new Map(a),H=(a,t)=>a?.get(t),W=(a,t)=>R([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>o(e)?(b(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(_(a,t)||k(a,t,e()),H(a,t)),K=q(),V=q(),z=(a,t,e,n,s,i,c,l={},y=[])=>{let w,u,T,R=0,A=0,N=0;J(K,y,(()=>0)),J(V,y,(()=>[]));const[g,C,O,f,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]:d("Store type not supported by this Persister"))(c,a),L=t=>{(g&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},m=async a=>(2!=R&&(R=1,A++,await _((async()=>{try{const a=await t();E(a)?L(a):d("Content is not an array "+a)}catch(t){i?.(t),a&&v(a)}R=0}))),h),$=()=>(u&&(s(u),u=void 0),h),I=async a=>(1!=R&&(R=2,N++,await _((async()=>{try{await e(C,a)}catch(a){i?.(a)}R=0}))),h),S=()=>(r(T,a.delListener),T=void 0,h),_=async(...a)=>(p(H(V,y),...a),await(async()=>{if(!H(K,y)){for(k(K,y,1);!o((a=H(V,y),w=a.shift()));)try{await w()}catch(a){i?.(a)}k(K,y,0)}var a})(),h),h={load:m,startAutoLoad:async a=>{await $().load(a);try{u=await n((async(a,t)=>{t||a?2!=R&&(R=1,A++,L(t??a),R=0):await m()}))}catch(a){i?.(a)}return h},stopAutoLoad:$,isAutoLoading:()=>!o(u),save:I,startAutoSave:async()=>(await S().save(),T=a.addDidFinishTransactionListener((()=>{const a=O();f(a)&&I(a)})),h),stopAutoSave:S,isAutoSaving:()=>!o(T),schedule:_,getStore:()=>a,destroy:()=>(H(V,y).splice(0,void 0),$().stopAutoSave()),getStats:()=>({loads:A,saves:N}),...l};return M(h)},Q=a=>new Set(E(a)||o(a)?a:[a]),Z=(a,t)=>a?.add(t),aa=(a,t,e,s,i)=>{const r=q();return[async()=>{r.clear(),R(await e(a,t),(({tn:a,cn:t})=>Z(J(r,a,Q),t)))},async(t,e)=>((a,t)=>_(H(r,a),t))(t,e)?G(N(R(await a($+I(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!Y(t)))):{},async(t,e,s,c,E,l=!1)=>{const y=Q();j(s??{},(a=>R(F(a??{}),(a=>Z(y,a)))));const d=h(y);if(!l&&E&&A(d)&&_(r,t))return await a("DROP "+v+I(t)),void k(r,t);const u=H(r,t),g=Q(h(u));if(A(d)||(_(r,t)?await w(R([e,...d],(async(n,s)=>{b(g,n)||(await a(L+I(t)+"ADD"+I(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+I(t)+`(${I(e)})`),Z(u,n))}))):(await a("CREATE "+v+I(t)+`(${I(e)}text PRIMARY KEY${T(R(d,(a=>n+I(a)+"json")))});`),k(r,t,Q([e,...d])))),await w([...!l&&c?R(h(g),(async n=>{n!=e&&(await a(L+I(t)+"DROP"+I(n)),b(u,n))})):[]]),l)o(s)?await a(m+I(t)+f+" true"):await w(j(s,(async(n,s)=>{o(n)?await a(m+I(t)+f+I(e)+"=$1",[s]):A(d)||await ta(a,t,e,F(n),[s,...x(n)],i)})));else if(A(d))_(r,t)&&await a(m+I(t)+f+" true");else{const n=N(h(H(r,t)),(a=>a!=e)),o=[],c=[];j(s??{},((a,t)=>{p(o,t,...R(n,(t=>a?.[t]))),p(c,t)})),await ta(a,t,e,n,o,i),await a(m+I(t)+f+I(e)+`NOT IN(${S(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,e,s,i,o=!0)=>await a("INSERT "+(o?"":"OR REPLACE ")+"INTO"+I(t)+"("+I(e)+T(R(s,(a=>n+I(a))))+")VALUES"+ea(i,y(s)+1)+(o?"ON CONFLICT("+I(e)+")DO UPDATE SET"+T(R(s,(a=>I(a)+"=excluded."+I(a))),n):""),R(i,(a=>a??null))),ea=(a,t)=>T(u(y(a)/t,(a=>"("+T(u(t,(e=>"$"+(a*t+e+1))),n)+")")),n),na=(a,t,e,n,s,i,o,[r,c,E],l,y,w,d,u)=>{const[T,R,A,N]=aa(t,l,y,s,u),p=z(a,(async()=>await N((async()=>{return await T(),a=(await R(r,c))[g]?.[E]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await N((async()=>{var t;await T(),await A(r,c,{[g]:{[E]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>w,destroy:()=>(p.stopAutoLoad().stopAutoSave(),i(),p)},w);return p},sa=(a,t,e,n,s,i,r,[c,E,[l,y,d]],u,T,R,A,p)=>{const[O,f,v,L]=aa(t,u,T,s,p),m=async(a,t)=>await w(W(E,(async([e,n,s,i],o)=>{t&&!(o in a)||await v(e,n,a[o],s,i,t)}))),$=async(a,t)=>y?await v(d,C,{[g]:a},!0,!0,t):null,I=z(a,(async()=>await L((async()=>{await O();const a=await(async()=>G(N(await w(W(c,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!Y(a[1])))))(),t=await(async()=>l?(await f(d,C))[g]:{})();return Y(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await L((async()=>{if(await O(),o(t)){const[t,e]=a();await m(t),await $(e)}else await m(t[0],!0),await $(t[1],!0)}))),e,n,s,r,{[A]:()=>R,destroy:()=>(I.stopAutoLoad().stopAutoSave(),i(),I)},R);return I},ia="ColumnName",oa="store",ra="json",ca=oa+"TableName",Ea=oa+"Id"+ia,la=oa+ia,ya="autoLoadIntervalSeconds",wa="rowId"+ia,da="tableId",ua="tableName",Ta="deleteEmptyColumns",Ra="deleteEmptyTable",Aa={mode:ra,[ya]:1},Na={load:0,save:0,[ua]:e+"_values"},pa=(a,t,e,n,s)=>{const i=q();return j(a,((a,r)=>{const E=l(x(B(t,c(a)?{[e]:a}:a)),0,X(t));o(E[0])||n(r,E[0])||(s(r,E[0]),k(i,r,E))})),i},ga=e,Ca=/^([cd]:)(.+)/,Oa=e+"_data",fa=e+"_table";a.createPostgresPersister=async(a,t,n,s,i)=>{const o=await(t.reserve?.());return((a,t,n,s,i,o,E,y,d,u,T="getDb")=>{const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,o),[N,,p,g]=(a=>{const t=(a=>B(Aa,c(a)?{[ca]:a}:a??{}))(a),n=t[ya];if(t.mode==ra){const a=t[ca]??e;return[1,n,[a,t[Ea]??C,t[la]??oa],Q(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=l(x(B(Na,o)),0,X(Na)),E=r[2],y=Q(E),w=Q(E);return[0,n,[pa(s,{[da]:null,[wa]:C},da,(a=>_(w,a)),(a=>Z(y,a))),pa(i,{[ua]:null,[wa]:C,[Ta]:0,[Ra]:0},ua,((a,t)=>_(w,t)),((a,t)=>Z(y,t))),r],y]})(t),v=async a=>{await A(`CREATE OR REPLACE TRIGGER ${I(Oa+"_"+a)} AFTER INSERT OR UPDATE OR DELETE ON ${I(a)} EXECUTE FUNCTION ${Oa}()`)};return(N?na:sa)(a,A,(async a=>{await A(`CREATE OR REPLACE FUNCTION ${fa}()RETURNS event_trigger AS $t2$ DECLARE row record; BEGIN FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()WHERE command_tag='CREATE TABLE' LOOP PERFORM pg_notify('${ga}','c:'||SPLIT_PART(row.object_identity,'.',2));END LOOP;END;$t2$ LANGUAGE plpgsql;`);try{await A(`CREATE EVENT TRIGGER ${fa} ON ddl_command_end WHEN TAG IN('CREATE TABLE')EXECUTE FUNCTION ${fa}();`)}catch{}return await A(`CREATE OR REPLACE FUNCTION ${Oa}()RETURNS trigger AS $t1$ BEGIN PERFORM pg_notify('${ga}','d:'||TG_TABLE_NAME);RETURN NULL;END;$t1$ LANGUAGE plpgsql;`),await w(R(h(g),(async a=>{await A(`CREATE TABLE IF NOT EXISTS ${I(a)}("_id"text PRIMARY KEY)`),await v(a)}))),await s(ga,(async t=>{return await r((e=t,n=Ca,e?.match(n)),(async([,t,e])=>{_(g,e)&&("c:"==t&&await v(e),a())}));var e,n}))}),i,E,y,d,p,h(g),(async(a,t)=>await a(`${O} table_name tn,column_name cn FROM information_schema.columns ${f} table_schema='public'AND table_name IN(${S(t)})`,t)),u,T)})(a,n,o?.unsafe,(async(a,e)=>t.listen(a,e)),(async a=>{try{await a.unlisten()}catch(a){i?.(a)}}),s,i,(()=>o?.release?.()),3,t,"getSql")}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPostgres={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),o=Promise,i=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),p=a=>{throw Error(a)},v=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),g=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),E=a=>0==u(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",T="_id",b="SELECT",N="WHERE",C="TABLE",O="ALTER "+C,S="DELETE FROM",$=b+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",P=a=>`"${a.replace(/"/g,'""')}"`,M=a=>g(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,J=F.keys,Y=F.freeze,k=(a=[])=>F.fromEntries(a),G=(...a)=>F.assign({},...a),H=(a,t)=>f(U(a),(([a,e])=>t(e,a))),z=a=>F.values(a),K=a=>u(J(a)),Q=a=>(a=>!r(a)&&c(B(a),(a=>a==F.prototype||r(B(a))),(()=>!0)))(a)&&0==K(a),V=a=>new Map(a),W=(a,t)=>a?.get(t),X=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),q=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||q(a,t,e()),W(a,t)),aa=V(),ta=V(),ea=(a,t,e,n,s,o,i,l={},w=[])=>{let u,d,v,g=0,f=0,E=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,m,T,b,N]=((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]:p("Store type not supported by this Persister"))(i,a),C=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=g&&(g=1,f++,await R((async()=>{try{const a=await t();y(a)?C(a):p("Content is not an array "+a)}catch(t){o?.(t),a&&N(a)}g=0}))),L),S=()=>(d&&(s(d),d=void 0),L),$=async a=>(1!=g&&(g=2,E++,await R((async()=>{try{await e(m,a)}catch(a){o?.(a)}g=0}))),L),I=()=>(c(v,a.delListener),v=void 0,L),R=async(...a)=>(h(W(ta,w),...a),await(async()=>{if(!W(aa,w)){for(q(aa,w,1);!r((a=W(ta,w),u=a.shift()));)try{await u()}catch(a){o?.(a)}q(aa,w,0)}var a})(),L),L={load:O,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=g&&(g=1,f++,C(t??a),g=0):await O()}))}catch(a){o?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!r(d),save:$,startAutoSave:async()=>(await I().save(),v=a.addDidFinishTransactionListener((()=>{const a=T();b(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(v),schedule:R,getStore:()=>a,destroy:()=>(W(ta,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:f,saves:E}),...l};return Y(L)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),oa=(a,t,e,s,o)=>{const i=V();return[async()=>{i.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(i,a,na),t)))},async(t,e)=>((a,t)=>_(W(i,a),t))(t,e)?k(A(f(await a($+P(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!Q(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();H(s??{},(a=>f(J(a??{}),(a=>sa(w,a)))));const u=x(w);if(!y&&l&&E(u)&&_(i,t))return await a("DROP "+C+P(t)),void q(i,t);const p=W(i,t),v=na(x(p));if(E(u)||(_(i,t)?await d(f([e,...u],(async(n,s)=>{j(v,n)||(await a(O+P(t)+"ADD"+P(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+P(t)+`(${P(e)})`),sa(p,n))}))):(await a("CREATE "+C+P(t)+`(${P(e)}text PRIMARY KEY${g(f(u,(a=>n+P(a)+"json")))});`),q(i,t,na([e,...u])))),await d([...!y&&c?f(x(v),(async n=>{n!=e&&(await a(O+P(t)+"DROP"+P(n)),j(p,n))})):[]]),y)r(s)?await a(S+P(t)+N+" true"):await d(H(s,(async(n,s)=>{r(n)?await a(S+P(t)+N+P(e)+"=$1",[s]):E(u)||await ia(a,t,e,J(n),[s,...z(n)],o)})));else if(E(u))_(i,t)&&await a(S+P(t)+N+" true");else{const n=A(x(W(i,t)),(a=>a!=e)),r=[],c=[];H(s??{},((a,t)=>{h(r,t,...f(n,(t=>a?.[t]))),h(c,t)})),await ia(a,t,e,n,r,o),await a(S+P(t)+N+P(e)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,e,s,o,i=!0)=>await a("INSERT "+(i?"":"OR REPLACE ")+"INTO"+P(t)+"("+P(e)+g(f(s,(a=>n+P(a))))+")VALUES"+ra(o,u(s)+1)+(i?"ON CONFLICT("+P(e)+")DO UPDATE SET"+g(f(s,(a=>P(a)+"=excluded."+P(a))),n):""),f(o,(a=>a??null))),ra=(a,t)=>g(v(u(a)/t,(a=>"("+g(v(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,o,i,[r,c,l],y,w,u,d,p)=>{const[v,g,f,E]=oa(t,y,w,s,p),A=ea(a,(async()=>await E((async()=>{return await v(),a=(await g(r,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await E((async()=>{var t;await v(),await f(r,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),o(),A)},u);return A},la=(a,t,e,n,s,o,i,[c,l,[y,w,u]],p,v,g,f,E)=>{const[h,b,N,C]=oa(t,p,v,s,E),O=async(a,t)=>await d(X(l,(async([e,n,s,o],i)=>{t&&!(i in a)||await N(e,n,a[i],s,o,t)}))),S=async(a,t)=>w?await N(u,T,{[m]:a},!0,!0,t):null,$=ea(a,(async()=>await C((async()=>{await h();const a=await(async()=>k(A(await d(X(c,(async([a,t],e)=>[a,await b(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await b(u,T))[m]:{})();return Q(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await h(),r(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,i,{[f]:()=>g,destroy:()=>($.stopAutoLoad().stopAutoSave(),o(),$)},g);return $},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,va=wa+ya,ga="autoLoadIntervalSeconds",fa="rowId"+ya,Ea="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",Ta={mode:ua,[ga]:1},ba={load:0,save:0,[Aa]:e+"_values"},Na=(a,t,e,n,s)=>{const o=V();return H(a,((a,i)=>{const c=w(z(G(t,l(a)?{[e]:a}:a)),0,K(t));r(c[0])||n(i,c[0])||(s(i,c[0]),q(o,i,c))})),o};a.createPowerSyncPersister=(a,t,n,s,o,r=!1)=>((a,t,n,s,o,r,c,y,u,d="getDb",p)=>{let v,g,f;const[E,A,h,m]=(a=>{const t=(a=>G(Ta,l(a)?{[da]:a}:a??{}))(a),n=t[ga];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??T,t[va]??wa],na(a)]}const{tables:{load:s={},save:o={}}={},values:i={}}=t,r=w(z(G(ba,i)),0,K(ba)),c=r[2],y=na(c),u=na(c);return[0,n,[Na(s,{[Ea]:null,[fa]:T},Ea,(a=>_(u,a)),(a=>sa(y,a))),Na(o,{[Aa]:null,[fa]:T,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),r],y]})(t);return(E?ca:la)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(b+` ${R} d,${L} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${L}`);t==(v??=t)&&e==(g??=e)&&s==(f??=s)||(a(),v=t,g=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>m.has(t)?a():0))];var t,e}),(([a,t])=>{i(a),v=g=f=null,o(t)}),c,(()=>0),y,h,x(m),(async(a,t)=>await a(`${b} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${N} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,p)})(a,n,(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)f(t.changedTables,a)})(),e}),(a=>a.abort()),s,o,1,t,"getPowerSync",r)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPowersync={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n=",",s=t(""),o=Promise,i=clearInterval,r=a=>null==a,c=(a,t,e)=>r(a)?e?.():t(a),l=a=>t(a)==s,y=a=>Array.isArray(a),w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),p=a=>{throw Error(a)},g=(a,t)=>f(Array(a).fill(0),((a,e)=>t(e))),v=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),E=a=>0==u(a),A=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),m="_",T="_id",b="SELECT",N="WHERE",C="TABLE",O="ALTER "+C,S="DELETE FROM",$=b+"*FROM",I="pragma_",R="data_version",L="schema_version",D="pragma_table_",P=a=>`"${a.replace(/"/g,'""')}"`,M=a=>v(f(a,((a,t)=>"$"+(t+1))),n),_=(a,t)=>a?.has(t)??!1,x=a=>[...a?.values()??[]],j=(a,t)=>a?.delete(t),F=Object,B=a=>F.getPrototypeOf(a),U=F.entries,J=F.keys,Y=F.freeze,k=(a=[])=>F.fromEntries(a),G=(...a)=>F.assign({},...a),H=(a,t)=>f(U(a),(([a,e])=>t(e,a))),z=a=>F.values(a),K=a=>u(J(a)),Q=a=>(a=>!r(a)&&c(B(a),(a=>a==F.prototype||r(B(a))),(()=>!0)))(a)&&0==K(a),V=a=>new Map(a),W=(a,t)=>a?.get(t),X=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),q=(a,t,e)=>r(e)?(j(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(_(a,t)||q(a,t,e()),W(a,t)),aa=V(),ta=V(),ea=(a,t,e,n,s,o,i,l={},w=[])=>{let u,d,g,v=0,f=0,E=0;Z(aa,w,(()=>0)),Z(ta,w,(()=>[]));const[A,m,T,b,N]=((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]:p("Store type not supported by this Persister"))(i,a),C=t=>{(A&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=v&&(v=1,f++,await R((async()=>{try{const a=await t();y(a)?C(a):p("Content is not an array "+a)}catch(t){o?.(t),a&&N(a)}v=0}))),L),S=()=>(d&&(s(d),d=void 0),L),$=async a=>(1!=v&&(v=2,E++,await R((async()=>{try{await e(m,a)}catch(a){o?.(a)}v=0}))),L),I=()=>(c(g,a.delListener),g=void 0,L),R=async(...a)=>(h(W(ta,w),...a),await(async()=>{if(!W(aa,w)){for(q(aa,w,1);!r((a=W(ta,w),u=a.shift()));)try{await u()}catch(a){o?.(a)}q(aa,w,0)}var a})(),L),L={load:O,startAutoLoad:async a=>{await S().load(a);try{d=await n((async(a,t)=>{t||a?2!=v&&(v=1,f++,C(t??a),v=0):await O()}))}catch(a){o?.(a)}return L},stopAutoLoad:S,isAutoLoading:()=>!r(d),save:$,startAutoSave:async()=>(await I().save(),g=a.addDidFinishTransactionListener((()=>{const a=T();b(a)&&$(a)})),L),stopAutoSave:I,isAutoSaving:()=>!r(g),schedule:R,getStore:()=>a,destroy:()=>(W(ta,w).splice(0,void 0),S().stopAutoSave()),getStats:()=>({loads:f,saves:E}),...l};return Y(L)},na=a=>new Set(y(a)||r(a)?a:[a]),sa=(a,t)=>a?.add(t),oa=(a,t,e,s,o)=>{const i=V();return[async()=>{i.clear(),f(await e(a,t),(({tn:a,cn:t})=>sa(Z(i,a,na),t)))},async(t,e)=>((a,t)=>_(W(i,a),t))(t,e)?k(A(f(await a($+P(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!Q(t)))):{},async(t,e,s,c,l,y=!1)=>{const w=na();H(s??{},(a=>f(J(a??{}),(a=>sa(w,a)))));const u=x(w);if(!y&&l&&E(u)&&_(i,t))return await a("DROP "+C+P(t)),void q(i,t);const p=W(i,t),g=na(x(p));if(E(u)||(_(i,t)?await d(f([e,...u],(async(n,s)=>{j(g,n)||(await a(O+P(t)+"ADD"+P(n)+(0==s?"text":"json")),0==s&&await a("CREATE UNIQUE INDEX pk ON "+P(t)+`(${P(e)})`),sa(p,n))}))):(await a("CREATE "+C+P(t)+`(${P(e)}text PRIMARY KEY${v(f(u,(a=>n+P(a)+"json")))});`),q(i,t,na([e,...u])))),await d([...!y&&c?f(x(g),(async n=>{n!=e&&(await a(O+P(t)+"DROP"+P(n)),j(p,n))})):[]]),y)r(s)?await a(S+P(t)+N+" true"):await d(H(s,(async(n,s)=>{r(n)?await a(S+P(t)+N+P(e)+"=$1",[s]):E(u)||await ia(a,t,e,J(n),[s,...z(n)],o)})));else if(E(u))_(i,t)&&await a(S+P(t)+N+" true");else{const n=A(x(W(i,t)),(a=>a!=e)),r=[],c=[];H(s??{},((a,t)=>{h(r,t,...f(n,(t=>a?.[t]))),h(c,t)})),await ia(a,t,e,n,r,o),await a(S+P(t)+N+P(e)+`NOT IN(${M(c)})`,c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ia=async(a,t,e,s,o,i=!0)=>await a("INSERT "+(i?"":"OR REPLACE ")+"INTO"+P(t)+"("+P(e)+v(f(s,(a=>n+P(a))))+")VALUES"+ra(o,u(s)+1)+(i?"ON CONFLICT("+P(e)+")DO UPDATE SET"+v(f(s,(a=>P(a)+"=excluded."+P(a))),n):""),f(o,(a=>a??null))),ra=(a,t)=>v(g(u(a)/t,(a=>"("+v(g(t,(e=>"$"+(a*t+e+1))),n)+")")),n),ca=(a,t,e,n,s,o,i,[r,c,l],y,w,u,d,p)=>{const[g,v,f,E]=oa(t,y,w,s,p),A=ea(a,(async()=>await E((async()=>{return await g(),a=(await v(r,c))[m]?.[l]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await E((async()=>{var t;await g(),await f(r,c,{[m]:{[l]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>u,destroy:()=>(A.stopAutoLoad().stopAutoSave(),o(),A)},u);return A},la=(a,t,e,n,s,o,i,[c,l,[y,w,u]],p,g,v,f,E)=>{const[h,b,N,C]=oa(t,p,g,s,E),O=async(a,t)=>await d(X(l,(async([e,n,s,o],i)=>{t&&!(i in a)||await N(e,n,a[i],s,o,t)}))),S=async(a,t)=>w?await N(u,T,{[m]:a},!0,!0,t):null,$=ea(a,(async()=>await C((async()=>{await h();const a=await(async()=>k(A(await d(X(c,(async([a,t],e)=>[a,await b(e,t)]))),(a=>!Q(a[1])))))(),t=await(async()=>y?(await b(u,T))[m]:{})();return Q(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await C((async()=>{if(await h(),r(t)){const[t,e]=a();await O(t),await S(e)}else await O(t[0],!0),await S(t[1],!0)}))),e,n,s,i,{[f]:()=>v,destroy:()=>($.stopAutoLoad().stopAutoSave(),o(),$)},v);return $},ya="ColumnName",wa="store",ua="json",da=wa+"TableName",pa=wa+"Id"+ya,ga=wa+ya,va="autoLoadIntervalSeconds",fa="rowId"+ya,Ea="tableId",Aa="tableName",ha="deleteEmptyColumns",ma="deleteEmptyTable",Ta={mode:ua,[va]:1},ba={load:0,save:0,[Aa]:e+"_values"},Na=(a,t,e,n,s)=>{const o=V();return H(a,((a,i)=>{const c=w(z(G(t,l(a)?{[e]:a}:a)),0,K(t));r(c[0])||n(i,c[0])||(s(i,c[0]),q(o,i,c))})),o},Ca=(a,t,n,s,o,r,c,y,u,d="getDb",p)=>{let g,v,f;const E=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(n,r),[A,h,m,C]=(a=>{const t=(a=>G(Ta,l(a)?{[da]:a}:a??{}))(a),n=t[va];if(t.mode==ua){const a=t[da]??e;return[1,n,[a,t[pa]??T,t[ga]??wa],na(a)]}const{tables:{load:s={},save:o={}}={},values:i={}}=t,r=w(z(G(ba,i)),0,K(ba)),c=r[2],y=na(c),u=na(c);return[0,n,[Na(s,{[Ea]:null,[fa]:T},Ea,(a=>_(u,a)),(a=>sa(y,a))),Na(o,{[Aa]:null,[fa]:T,[ha]:0,[ma]:0},Aa,((a,t)=>_(u,t)),((a,t)=>sa(y,t))),r],y]})(t);return(A?ca:la)(a,E,(a=>{let t;const e=()=>t=setInterval((async()=>{try{const[{d:t,s:e,c:n}]=await E(`${b} ${R} d,${L} s,TOTAL_CHANGES() c FROM ${I}${R} JOIN ${I}${L}`);t==g&&e==v&&n==f||(null!=g&&a(),g=t,v=e,f=n)}catch{}}),1e3*h),n=()=>{g=v=f=null,i(t)},r=s((t=>{C.has(t)&&(n(),a(),e())}));return e(),()=>{n(),o(r)}}),(a=>a()),c,(()=>0),y,m,x(C),(async(a,t)=>await a(`${b} t.name tn,c.name cn FROM ${D}list()t,${D}info(t.name)c ${N} t.schema='main'AND t.type IN('table','view')AND t.name IN(${M(t)})ORDER BY t.name,c.name`,t)),u,d,p)};a.createPowerSyncPersister=(a,t,e,n,s,o=!1)=>Ca(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)f(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,1,t,"getPowerSync",o)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPowersync={});