tinybase 5.0.0-beta.5 → 5.0.0-beta.6

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 (353) hide show
  1. package/lib/cjs/mergeable-store.cjs +1 -1
  2. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  4. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  6. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  14. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-file.cjs +1 -1
  16. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  18. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  20. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  24. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  26. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  30. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-sync.cjs +1 -0
  32. package/lib/cjs/persisters/persister-sync.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  34. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  35. package/lib/cjs/persisters.cjs +1 -1
  36. package/lib/cjs/persisters.cjs.gz +0 -0
  37. package/lib/cjs/store.cjs +1 -1
  38. package/lib/cjs/store.cjs.gz +0 -0
  39. package/lib/cjs/tinybase.cjs +1 -1
  40. package/lib/cjs/tinybase.cjs.gz +0 -0
  41. package/lib/cjs/tools.cjs +1 -1
  42. package/lib/cjs/tools.cjs.gz +0 -0
  43. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  44. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  45. package/lib/cjs/ui-react.cjs +1 -1
  46. package/lib/cjs/ui-react.cjs.gz +0 -0
  47. package/lib/cjs-es6/mergeable-store.cjs +1 -1
  48. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  70. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  74. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  76. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-sync.cjs +1 -0
  78. package/lib/cjs-es6/persisters/persister-sync.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters.cjs +1 -1
  82. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  83. package/lib/cjs-es6/store.cjs +1 -1
  84. package/lib/cjs-es6/store.cjs.gz +0 -0
  85. package/lib/cjs-es6/tinybase.cjs +1 -1
  86. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  87. package/lib/cjs-es6/tools.cjs +1 -1
  88. package/lib/cjs-es6/tools.cjs.gz +0 -0
  89. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  90. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  91. package/lib/cjs-es6/ui-react.cjs +1 -1
  92. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  93. package/lib/debug/mergeable-store.js +287 -130
  94. package/lib/debug/persisters/persister-automerge.js +39 -46
  95. package/lib/debug/persisters/persister-browser.js +39 -46
  96. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +64 -60
  97. package/lib/debug/persisters/persister-electric-sql.js +64 -60
  98. package/lib/debug/persisters/persister-expo-sqlite-next.js +64 -60
  99. package/lib/debug/persisters/persister-expo-sqlite.js +64 -60
  100. package/lib/debug/persisters/persister-file.js +39 -46
  101. package/lib/debug/persisters/persister-indexed-db.js +39 -46
  102. package/lib/debug/persisters/persister-libsql.js +64 -60
  103. package/lib/debug/persisters/persister-partykit-client.js +39 -46
  104. package/lib/debug/persisters/persister-powersync.js +917 -0
  105. package/lib/debug/persisters/persister-remote.js +39 -46
  106. package/lib/debug/persisters/persister-sqlite-wasm.js +64 -60
  107. package/lib/debug/persisters/persister-sqlite3.js +64 -60
  108. package/lib/debug/persisters/persister-sync.js +594 -0
  109. package/lib/debug/persisters/persister-yjs.js +41 -48
  110. package/lib/debug/persisters.js +38 -45
  111. package/lib/debug/store.js +44 -32
  112. package/lib/debug/tinybase.js +322 -173
  113. package/lib/debug/tools.js +2 -2
  114. package/lib/debug/ui-react-dom.js +81 -76
  115. package/lib/debug/ui-react.js +1 -1
  116. package/lib/es6/mergeable-store.js +1 -1
  117. package/lib/es6/mergeable-store.js.gz +0 -0
  118. package/lib/es6/persisters/persister-automerge.js +1 -1
  119. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  120. package/lib/es6/persisters/persister-browser.js +1 -1
  121. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  122. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  123. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  124. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  125. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  126. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  127. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  128. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  129. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  130. package/lib/es6/persisters/persister-file.js +1 -1
  131. package/lib/es6/persisters/persister-file.js.gz +0 -0
  132. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  133. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  134. package/lib/es6/persisters/persister-libsql.js +1 -1
  135. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  136. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  137. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  138. package/lib/es6/persisters/persister-powersync.js +1 -0
  139. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  140. package/lib/es6/persisters/persister-remote.js +1 -1
  141. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  142. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  143. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  144. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  145. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  146. package/lib/es6/persisters/persister-sync.js +1 -0
  147. package/lib/es6/persisters/persister-sync.js.gz +0 -0
  148. package/lib/es6/persisters/persister-yjs.js +1 -1
  149. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  150. package/lib/es6/persisters.js +1 -1
  151. package/lib/es6/persisters.js.gz +0 -0
  152. package/lib/es6/store.js +1 -1
  153. package/lib/es6/store.js.gz +0 -0
  154. package/lib/es6/tinybase.js +1 -1
  155. package/lib/es6/tinybase.js.gz +0 -0
  156. package/lib/es6/tools.js +1 -1
  157. package/lib/es6/tools.js.gz +0 -0
  158. package/lib/es6/ui-react-dom-debug.js +1 -1
  159. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  160. package/lib/es6/ui-react.js +1 -1
  161. package/lib/es6/ui-react.js.gz +0 -0
  162. package/lib/mergeable-store.js +1 -1
  163. package/lib/mergeable-store.js.gz +0 -0
  164. package/lib/persisters/persister-automerge.js +1 -1
  165. package/lib/persisters/persister-automerge.js.gz +0 -0
  166. package/lib/persisters/persister-browser.js +1 -1
  167. package/lib/persisters/persister-browser.js.gz +0 -0
  168. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  169. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  170. package/lib/persisters/persister-electric-sql.js +1 -1
  171. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  172. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  173. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  174. package/lib/persisters/persister-expo-sqlite.js +1 -1
  175. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  176. package/lib/persisters/persister-file.js +1 -1
  177. package/lib/persisters/persister-file.js.gz +0 -0
  178. package/lib/persisters/persister-indexed-db.js +1 -1
  179. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  180. package/lib/persisters/persister-libsql.js +1 -1
  181. package/lib/persisters/persister-libsql.js.gz +0 -0
  182. package/lib/persisters/persister-partykit-client.js +1 -1
  183. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  184. package/lib/persisters/persister-powersync.js +1 -0
  185. package/lib/persisters/persister-powersync.js.gz +0 -0
  186. package/lib/persisters/persister-remote.js +1 -1
  187. package/lib/persisters/persister-remote.js.gz +0 -0
  188. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  189. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  190. package/lib/persisters/persister-sqlite3.js +1 -1
  191. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  192. package/lib/persisters/persister-sync.js +1 -0
  193. package/lib/persisters/persister-sync.js.gz +0 -0
  194. package/lib/persisters/persister-yjs.js +1 -1
  195. package/lib/persisters/persister-yjs.js.gz +0 -0
  196. package/lib/persisters.js +1 -1
  197. package/lib/persisters.js.gz +0 -0
  198. package/lib/store.js +1 -1
  199. package/lib/store.js.gz +0 -0
  200. package/lib/tinybase.js +1 -1
  201. package/lib/tinybase.js.gz +0 -0
  202. package/lib/tools.js +1 -1
  203. package/lib/tools.js.gz +0 -0
  204. package/lib/types/checkpoints.d.ts +2 -2
  205. package/lib/types/indexes.d.ts +2 -2
  206. package/lib/types/mergeable-store.d.ts +121 -59
  207. package/lib/types/metrics.d.ts +2 -2
  208. package/lib/types/persisters/persister-automerge.d.ts +3 -0
  209. package/lib/types/persisters/persister-browser.d.ts +9 -2
  210. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +3 -0
  211. package/lib/types/persisters/persister-electric-sql.d.ts +3 -0
  212. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +3 -0
  213. package/lib/types/persisters/persister-expo-sqlite.d.ts +3 -0
  214. package/lib/types/persisters/persister-file.d.ts +5 -1
  215. package/lib/types/persisters/persister-indexed-db.d.ts +3 -0
  216. package/lib/types/persisters/persister-libsql.d.ts +3 -0
  217. package/lib/types/persisters/persister-partykit-client.d.ts +3 -0
  218. package/lib/types/persisters/persister-powersync.d.ts +157 -0
  219. package/lib/types/persisters/persister-remote.d.ts +3 -0
  220. package/lib/types/persisters/persister-sqlite-wasm.d.ts +3 -0
  221. package/lib/types/persisters/persister-sqlite3.d.ts +3 -0
  222. package/lib/types/persisters/persister-sync.d.ts +182 -0
  223. package/lib/types/persisters/persister-yjs.d.ts +5 -2
  224. package/lib/types/persisters.d.ts +60 -3
  225. package/lib/types/queries.d.ts +2 -2
  226. package/lib/types/relationships.d.ts +2 -2
  227. package/lib/types/store.d.ts +36 -3
  228. package/lib/types/tinybase.d.ts +9 -9
  229. package/lib/types/tools.d.ts +2 -2
  230. package/lib/types/ui-react.d.ts +8 -8
  231. package/lib/types/with-schemas/checkpoints.d.ts +2 -2
  232. package/lib/types/with-schemas/indexes.d.ts +2 -2
  233. package/lib/types/with-schemas/mergeable-store.d.ts +185 -87
  234. package/lib/types/with-schemas/metrics.d.ts +2 -2
  235. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +4 -1
  236. package/lib/types/with-schemas/persisters/persister-browser.d.ts +13 -6
  237. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +4 -1
  238. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +4 -1
  239. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +4 -1
  240. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +4 -1
  241. package/lib/types/with-schemas/persisters/persister-file.d.ts +7 -3
  242. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +4 -1
  243. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +4 -1
  244. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +4 -1
  245. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +170 -0
  246. package/lib/types/with-schemas/persisters/persister-remote.d.ts +4 -1
  247. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +4 -1
  248. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +4 -1
  249. package/lib/types/with-schemas/persisters/persister-sync.d.ts +195 -0
  250. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +6 -3
  251. package/lib/types/with-schemas/persisters.d.ts +79 -7
  252. package/lib/types/with-schemas/queries.d.ts +3 -3
  253. package/lib/types/with-schemas/relationships.d.ts +2 -2
  254. package/lib/types/with-schemas/store.d.ts +100 -3
  255. package/lib/types/with-schemas/tinybase.d.ts +9 -9
  256. package/lib/types/with-schemas/tools.d.ts +2 -2
  257. package/lib/types/with-schemas/ui-react.d.ts +8 -8
  258. package/lib/ui-react.js +1 -1
  259. package/lib/ui-react.js.gz +0 -0
  260. package/lib/umd/mergeable-store.js +1 -1
  261. package/lib/umd/mergeable-store.js.gz +0 -0
  262. package/lib/umd/persisters/persister-automerge.js +1 -1
  263. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  264. package/lib/umd/persisters/persister-browser.js +1 -1
  265. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  266. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  267. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  268. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  269. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  270. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  271. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  272. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  273. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  274. package/lib/umd/persisters/persister-file.js +1 -1
  275. package/lib/umd/persisters/persister-file.js.gz +0 -0
  276. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  277. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  278. package/lib/umd/persisters/persister-libsql.js +1 -1
  279. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  280. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  281. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  282. package/lib/umd/persisters/persister-powersync.js +1 -0
  283. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  284. package/lib/umd/persisters/persister-remote.js +1 -1
  285. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  286. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  287. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  288. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  289. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  290. package/lib/umd/persisters/persister-sync.js +1 -0
  291. package/lib/umd/persisters/persister-sync.js.gz +0 -0
  292. package/lib/umd/persisters/persister-yjs.js +1 -1
  293. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  294. package/lib/umd/persisters.js +1 -1
  295. package/lib/umd/persisters.js.gz +0 -0
  296. package/lib/umd/store.js +1 -1
  297. package/lib/umd/store.js.gz +0 -0
  298. package/lib/umd/tinybase.js +1 -1
  299. package/lib/umd/tinybase.js.gz +0 -0
  300. package/lib/umd/tools.js +1 -1
  301. package/lib/umd/tools.js.gz +0 -0
  302. package/lib/umd/ui-react-dom-debug.js +1 -1
  303. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  304. package/lib/umd/ui-react.js +1 -1
  305. package/lib/umd/ui-react.js.gz +0 -0
  306. package/lib/umd-es6/mergeable-store.js +1 -1
  307. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  308. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  309. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  310. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  311. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  312. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  313. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  314. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  315. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  316. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  317. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  318. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  319. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  320. package/lib/umd-es6/persisters/persister-file.js +1 -1
  321. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  322. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  323. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  324. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  325. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  326. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  327. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  328. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  329. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  330. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  331. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  332. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  333. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  334. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  335. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  336. package/lib/umd-es6/persisters/persister-sync.js +1 -0
  337. package/lib/umd-es6/persisters/persister-sync.js.gz +0 -0
  338. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  339. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  340. package/lib/umd-es6/persisters.js +1 -1
  341. package/lib/umd-es6/persisters.js.gz +0 -0
  342. package/lib/umd-es6/store.js +1 -1
  343. package/lib/umd-es6/store.js.gz +0 -0
  344. package/lib/umd-es6/tinybase.js +1 -1
  345. package/lib/umd-es6/tinybase.js.gz +0 -0
  346. package/lib/umd-es6/tools.js +1 -1
  347. package/lib/umd-es6/tools.js.gz +0 -0
  348. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  349. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  350. package/lib/umd-es6/ui-react.js +1 -1
  351. package/lib/umd-es6/ui-react.js.gz +0 -0
  352. package/package.json +37 -26
  353. package/readme.md +2 -2
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",g=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==u(a),C=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),b=Object,N=a=>b.getPrototypeOf(a),S=b.entries,D=b.keys,M=b.freeze,I=(a=[])=>b.fromEntries(a),P=(...a)=>b.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>v(S(a),(([a,e])=>t(e,a))),_=a=>b.values(a),B=a=>u(D(a)),W=a=>(a=>!l(a)&&y(N(a),(a=>a==b.prototype||l(N(a))),(()=>!0)))(a)&&0==B(a),x=a=>new Map(a),H=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),U=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(L(a,t)?n?.(j(a,t)):Y(a,t,e()),j(a,t)),q=(a,t,e,n=Y)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),G=a=>new Set(Array.isArray(a)||l(a)?a:[a]),J=(a,t)=>a?.add(t),z=m+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const o=x();return[async()=>q(o,I(await d(v(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(v(await a(m+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(o,t,q(k(o,t,x),e,((a,t,e)=>{e!=j(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(o,t))),async(t,e)=>((a,t)=>!l(j(j(o,a),t)))(t,e)?I(C(v(await a(z+T(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!W(t)))):{},async(t,e,c,r,y,w=!1)=>{const E=G();$(c??{},(a=>v(D(a??{}),(a=>J(E,a)))));const u=O(E);if(!w&&y&&A(u)&&L(o,t))return await a("DROP TABLE"+T(t)),void Y(o,t);if(A(u)||L(o,t)){const s=j(o,t),i=G(H(s));await d([...v(u,(async e=>{R(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),Y(s,e,n))})),...!w&&r?v(O(i),(async n=>{n!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(n)}`),Y(s,n))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${g(v(u,(a=>s+T(a))))});`),Y(o,t,x([[e,n],...v(u,(a=>[a,n]))]));if(w)l(c)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(c,(async(n,s)=>{l(n)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[s]):A(u)||await X(a,t,e,D(n),[s,..._(n)],i)})));else if(A(u))L(o,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=C(H(j(o,t)),(a=>a!=e)),s=[],i=[];$(c??{},((a,t)=>{h(s,t,...v(n,(t=>a?.[t]))),h(i,t)})),await X(a,t,e,n,s),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+g(v(i,(a=>s+T(a))))+")VALUES"+E(o(`,(?${o(",?",u(i))})`,u(c)/(u(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+g(v(i,(a=>T(a)+"=excluded."+T(a))),s):n),v(c,(a=>a??null))),Z=a=>g(v(a,(()=>"?")),s),aa=JSON.parse,ta=x(),ea=x(),na=a=>w(a?.[0]),sa=(a,t,e,n,s,i,o,[c,r]=[],w=[])=>{let E,u,d,p=0,f=0;k(ta,w,(()=>0)),k(ea,w,(()=>[]));const[T,m,g,v]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!W(a)||!W(t)])(o,a),A=async a=>(2!=p&&(p=1,await C.schedule((async()=>{await a(),p=0}))),C),C={load:async(e,n)=>await A((async()=>{try{const e=await t();(T&&na(e)?a.setMergeableContent:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(C.stopAutoLoad(),await C.load(e,s),f=1,d=n((async(e,n)=>{if(n){const t=n();await A((async()=>(T&&na(t)?a.applyMergeableChanges:a.applyChanges)(t)))}else await A((async()=>{try{const n=e?.()??await t();(T&&na(n)?a.setMergeableContent:a.setContent)(n)}catch(a){i?.(a)}}))})),C),stopAutoLoad:()=>(f&&(s(d),d=void 0,f=0),C),save:async a=>(1!=p&&(p=2,await C.schedule((async()=>{try{await e(m,a)}catch(a){i?.(a)}p=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=g();v(a)&&C.save((()=>a))})),C),stopAutoSave:()=>(y(E,a.delListener),E=void 0,C),schedule:async(...a)=>(h(j(ea,w),...a),await(async()=>{if(!j(ta,w)){for(Y(ta,w,1);!l((a=j(ea,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}Y(ta,w,0)}var a})(),C),getStore:()=>a,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(C[c]=()=>r),M(C)},ia="store",oa=(a,t,e,n,s,[i],o,c,r)=>{const[l,y,w,E]=Q(t,o,s);return sa(a,(async()=>await E((async()=>(await l(),aa((await y(i,f))[p]?.[ia]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[ia]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,c],c)},ca=(a,t,e,n,s,[i,o,[c,r,y]],w,E,u,T)=>{const[m,g,v,A]=Q(t,w,s,T),h=async(a,t)=>await d(U(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await v(e,n,a[o],s,i,t)}))),L=async(a,t)=>r?await v(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await A((async()=>{await m();const a=await(async()=>I(C(await d(U(i,(async([a,t],e)=>[a,await g(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>c?(await g(y,f))[p]:{})();return W(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await m(),l(t)){const[t,e]=a();await h(t),await L(e)}else{const[a,e]=t();await h(a,!0),await L(e,!0)}}))),e,n,s,!1,[u,E],E)},ra="json",la="autoLoadIntervalSeconds",ya="rowIdColumnName",wa="tableId",Ea="tableName",ua={mode:ra,[la]:1},da={load:0,save:0,[Ea]:e+"_values"},pa=(a,t,e,n)=>{const s=x();return $(a,((a,i)=>{const o=E(_(P(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||n(i,o[0])||Y(s,i,o)})),s},fa="pragma ",Ta="data_version",ma="schema_version",ga=(a,t,n,s,i,o,c,l,y="getDb",u)=>{let d,p,T;const[g,v,A,C]=(a=>{const t=(a=>P(ua,w(a)?{storeTableName:a}:a??{}))(a),n=t[la];if(t.mode==ra){const{storeTableName:a=e}=t;return[1,n,[a],G(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=E(_(P(da,o)),0,B(da)),r=c[2],l=G(r);return[0,n,[pa(s,{[wa]:null,[ya]:f},wa,(a=>J(l,a)&&a==r)),pa(i,{[Ea]:null,[ya]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>J(l,t)&&t==r)),c],l]})(t);return(g?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(fa+Ta))[0][Ta],e=(await n(fa+ma))[0][ma],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&s==(T??=s)||(a(),d=t,p=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),s((t=>C.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,A,O(C),l,y,u)};a.createCrSqliteWasmPersister=(a,t,e,n,s)=>ga(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,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=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>c.all(a),E="_",f="_id",g=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",v=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),A=a=>0==d(a),C=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,N=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),L=Object,S=a=>L.getPrototypeOf(a),R=L.entries,D=L.keys,I=L.freeze,M=(a=[])=>L.fromEntries(a),P=(...a)=>L.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>h(R(a),(([a,e])=>t(e,a))),x=a=>L.values(a),j=a=>d(D(a)),B=a=>(a=>!l(a)&&y(S(a),(a=>a==L.prototype||l(S(a))),(()=>!0)))(a)&&0==j(a),W=a=>new Map(a),H=a=>[...a?.keys()??[]],U=(a,t)=>a?.get(t),Y=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>l(e)?(b(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(O(a,t)?n?.(U(a,t)):$(a,t,e()),U(a,t)),q=(a,t,e,n=$)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),G=a=>new Set(Array.isArray(a)||l(a)?a:[a]),J=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=m+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,e,i)=>{const o=W();return[async()=>q(o,M(await p(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(m+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>$(o,t,q(k(o,t,W),e,((a,t,e)=>{e!=U(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))))),((a,t)=>$(o,t))),async(t,e)=>((a,t)=>!l(U(U(o,a),t)))(t,e)?M(C(h(await a(Q+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!B(t)))):{},async(t,e,c,r,y,w=!1)=>{const u=G();F(c??{},(a=>h(D(a??{}),(a=>J(u,a)))));const d=N(u);if(!w&&y&&A(d)&&O(o,t))return await a("DROP "+z+g(t)),void $(o,t);if(A(d)||O(o,t)){const s=U(o,t),i=G(H(s));await p([...h(d,(async e=>{b(i,e)||(await a(K+g(t)+"ADD"+g(e)),$(s,e,n))})),...!w&&r?h(N(i),(async n=>{n!=e&&(await a(K+g(t)+"DROP"+g(n)),$(s,n))})):[]])}else await a("CREATE "+z+g(t)+"("+g(e)+` PRIMARY KEY ON CONFLICT REPLACE${v(h(d,(a=>s+g(a))))});`),$(o,t,W([[e,n],...h(d,(a=>[a,n]))]));if(w)l(c)?await a(V+g(t)+Z+" 1"):await p(F(c,(async(n,s)=>{l(n)?await a(V+g(t)+Z+g(e)+"=?",[s]):A(d)||await ta(a,t,e,D(n),[s,...x(n)],i)})));else if(A(d))O(o,t)&&await a(V+g(t)+Z+" 1");else{const n=C(H(U(o,t)),(a=>a!=e)),s=[],r=[];F(c??{},((a,t)=>{T(s,t,...h(n,(t=>a?.[t]))),T(r,t)})),await ta(a,t,e,n,s,i),await a(V+g(t)+Z+g(e)+"NOT IN("+ea(r)+")",r)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ta=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+g(t)+"("+g(e)+v(h(i,(a=>s+g(a))))+")VALUES"+u(o(`,(?${o(",?",d(i))})`,d(c)/(d(i)+1)),1)+(r?"ON CONFLICT("+g(e)+")DO UPDATE SET"+v(h(i,(a=>g(a)+"=excluded."+g(a))),s):n),h(c,(a=>a??null))),ea=a=>v(h(a,(()=>"?")),s),na=JSON.parse,sa=W(),ia=W(),oa=(a,t,e,n,s,i,o,c={},r=[])=>{let u,d,p,E=0;k(sa,r,(()=>0)),k(ia,r,(()=>[]));const[f,g,m,v]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!B(a)||!B(t)])(o,a),h=async a=>(2!=E&&(E=1,await C.schedule((async()=>{await a(),E=0}))),C),A=t=>{(f&&w(t?.[0])?1===t?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},C={load:async(e,n)=>await h((async()=>{try{A(await t())}catch(t){i?.(t),a.setContent([e,n])}})),startAutoLoad:async(a={},e={})=>(await C.stopAutoLoad().load(a,e),d=n((async(a,e)=>{const n=e?.();await h((async()=>{try{A(n??a?.()??await t())}catch(a){i?.(a)}}))})),C),stopAutoLoad:()=>(d&&(s(d),d=void 0),C),isAutoLoading:()=>!l(d),save:async a=>(1!=E&&(E=2,await C.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}E=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=m();v(a)&&C.save((()=>a))})),C),stopAutoSave:()=>(y(p,a.delListener),p=void 0,C),isAutoSaving:()=>!l(p),schedule:async(...a)=>(T(U(ia,r),...a),await(async()=>{if(!U(sa,r)){for($(sa,r,1);!l((a=U(ia,r),u=a.shift()));)try{await u()}catch(a){i?.(a)}$(sa,r,0)}var a})(),C),getStore:()=>a,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return I(C)},ca="store",ra=(a,t,e,n,s,[i],o,c,r,l)=>{const[y,w,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await y(),na((await w(i,f))[E]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,f,{[E]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[r]:()=>c},c)},la=(a,t,e,n,s,[i,o,[c,r,y]],w,u,d,g)=>{const[m,v,h,A]=aa(t,w,s,g),T=async(a,t)=>await p(Y(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await h(e,n,a[o],s,i,t)}))),O=async(a,t)=>r?await h(y,f,{[E]:a},!0,!0,t):null;return oa(a,(async()=>await A((async()=>{await m();const a=await(async()=>M(C(await p(Y(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>c?(await v(y,f))[E]:{})();return B(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await m(),l(t)){const[t,e]=a();await T(t),await O(e)}else{const[a,e]=t();await T(a,!0),await O(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},ya="json",wa="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",pa="tableName",Ea={mode:ya,[wa]:1},fa={load:0,save:0,[pa]:e+"_values"},ga=(a,t,e,n)=>{const s=W();return F(a,((a,i)=>{const o=u(x(P(t,w(a)?{[e]:a}:a)),0,j(t));l(o[0])||n(i,o[0])||$(s,i,o)})),s},ma="pragma ",va="data_version",ha="schema_version",Aa=(a,t,n,s,i,o,c,l,y="getDb",d)=>{let p,E,g;const[v,h,A,C]=(a=>{const t=(a=>P(Ea,w(a)?{storeTableName:a}:a??{}))(a),n=t[wa];if(t.mode==ya){const{storeTableName:a=e}=t;return[1,n,[a],G(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=u(x(P(fa,o)),0,j(fa)),r=c[2],l=G(r);return[0,n,[ga(s,{[da]:null,[ua]:f},da,(a=>J(l,a)&&a==r)),ga(i,{[pa]:null,[ua]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>J(l,t)&&t==r)),c],l]})(t);return(v?ra:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ma+va))[0][va],e=(await n(ma+ha))[0][ha],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(E??=e)&&s==(g??=s)||(a(),p=t,E=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>C.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),p=E=null,i(t)}),c,A,N(C),l,y,d)};a.createCrSqliteWasmPersister=(a,t,e,n,s)=>Aa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,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=",",i=t(n),c=(a,t)=>a.repeat(t),o=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,g="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),h=a=>0==u(a),A=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),O=Object,N=a=>O.getPrototypeOf(a),S=O.entries,D=O.keys,M=O.freeze,I=(a=[])=>O.fromEntries(a),P=(...a)=>O.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>m(S(a),(([a,e])=>t(e,a))),_=a=>O.values(a),B=a=>u(D(a)),H=a=>(a=>!l(a)&&y(N(a),(a=>a==O.prototype||l(N(a))),(()=>!0)))(a)&&0==B(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),q=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(L(a,t)?n?.(W(a,t)):Y(a,t,e()),W(a,t)),G=(a,t,e,n=Y)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),z=g+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const c=j();return[async()=>G(c,I(await d(m(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(g+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(c,t,G(k(c,t,j),e,((a,t,e)=>{e!=W(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(c,t))),async(t,e)=>((a,t)=>!l(W(W(c,a),t)))(t,e)?I(A(m(await a(z+T(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!H(t)))):{},async(t,e,o,r,y,w=!1)=>{const E=J();$(o??{},(a=>m(D(a??{}),(a=>U(E,a)))));const u=b(E);if(!w&&y&&h(u)&&L(c,t))return await a("DROP TABLE"+T(t)),void Y(c,t);if(h(u)||L(c,t)){const s=W(c,t),i=J(x(s));await d([...m(u,(async e=>{R(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),Y(s,e,n))})),...!w&&r?m(b(i),(async n=>{n!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(n)}`),Y(s,n))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(u,(a=>s+T(a))))});`),Y(c,t,j([[e,n],...m(u,(a=>[a,n]))]));if(w)l(o)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(o,(async(n,s)=>{l(n)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[s]):h(u)||await X(a,t,e,D(n),[s,..._(n)],i)})));else if(h(u))L(c,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=A(x(W(c,t)),(a=>a!=e)),s=[],i=[];$(o??{},((a,t)=>{C(s,t,...m(n,(t=>a?.[t]))),C(i,t)})),await X(a,t,e,n,s),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},X=async(a,t,e,i,o,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+v(m(i,(a=>s+T(a))))+")VALUES"+E(c(`,(?${c(",?",u(i))})`,u(o)/(u(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+v(m(i,(a=>T(a)+"=excluded."+T(a))),s):n),m(o,(a=>a??null))),Z=a=>v(m(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),na=a=>w(a?.[0]),sa=(a,t,e,n,s,i,c,[o,r]=[],w=[])=>{let E,u,d,p=0,f=0;k(ta,w,(()=>0)),k(ea,w,(()=>[]));const[T,g,v,m]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!H(a)||!H(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!H(a)||!H(t)])(c,a),h=async a=>(2!=p&&(p=1,await A.schedule((async()=>{await a(),p=0}))),A),A={load:async(e,n)=>await h((async()=>{try{const e=await t();(T&&na(e)?a.setMergeableContent:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),f=1,d=n((async(e,n)=>{if(n){const t=n();await h((async()=>(T&&na(t)?a.applyMergeableChanges:a.applyChanges)(t)))}else await h((async()=>{try{const n=e?.()??await t();(T&&na(n)?a.setMergeableContent:a.setContent)(n)}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(f&&(s(d),d=void 0,f=0),A),save:async a=>(1!=p&&(p=2,await A.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&A.save((()=>a))})),A),stopAutoSave:()=>(y(E,a.delListener),E=void 0,A),schedule:async(...a)=>(C(W(ea,w),...a),await(async()=>{if(!W(ta,w)){for(Y(ta,w,1);!l((a=W(ea,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}Y(ta,w,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(A[o]=()=>r),M(A)},ia="store",ca=(a,t,e,n,s,[i],c,o,r)=>{const[l,y,w,E]=Q(t,c,s);return sa(a,(async()=>await E((async()=>(await l(),aa((await y(i,f))[p]?.[ia]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[ia]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?O.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,o],o)},oa=(a,t,e,n,s,[i,c,[o,r,y]],w,E,u,T)=>{const[g,v,m,h]=Q(t,w,s,T),C=async(a,t)=>await d(q(c,(async([e,n,s,i],c)=>{t&&!F(a,c)||await m(e,n,a[c],s,i,t)}))),L=async(a,t)=>r?await m(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await h((async()=>{await g();const a=await(async()=>I(A(await d(q(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!H(a[1])))))(),t=await(async()=>o?(await v(y,f))[p]:{})();return H(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await g(),l(t)){const[t,e]=a();await C(t),await L(e)}else{const[a,e]=t();await C(a,!0),await L(e,!0)}}))),e,n,s,!1,[u,E],E)},ra="json",la="autoLoadIntervalSeconds",ya="rowIdColumnName",wa="tableId",Ea="tableName",ua={mode:ra,[la]:1},da={load:0,save:0,[Ea]:e+"_values"},pa=(a,t,e,n)=>{const s=j();return $(a,((a,i)=>{const c=E(_(P(t,w(a)?{[e]:a}:a)),0,B(t));l(c[0])||n(i,c[0])||Y(s,i,c)})),s},fa="pragma ",Ta="data_version",ga="schema_version",va=(a,t,n,s,i,c,o,l,y="getDb",u)=>{let d,p,T;const[v,m,h,A]=(a=>{const t=(a=>P(ua,w(a)?{storeTableName:a}:a??{}))(a),n=t[la];if(t.mode==ra){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=t,o=E(_(P(da,c)),0,B(da)),r=o[2],l=J(r);return[0,n,[pa(s,{[wa]:null,[ya]:f},wa,(a=>U(l,a)&&a==r)),pa(i,{[Ea]:null,[ya]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>U(l,t)&&t==r)),o],l]})(t);return(v?ca:oa)(a,c?async(a,t)=>(c(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(fa+Ta))[0][Ta],e=(await n(fa+ga))[0][ga],s=(await n(g+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&s==(T??=s)||(a(),d=t,p=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),o,h,b(A),l,y,u)};a.createElectricSqlPersister=(a,t,e,n,s)=>va(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,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=",",i=t(n),o=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),p="_",f="_id",g=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",m=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),A=a=>0==d(a),T=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,N=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),L=Object,S=a=>L.getPrototypeOf(a),R=L.entries,D=L.keys,I=L.freeze,M=(a=[])=>L.fromEntries(a),P=(...a)=>L.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>h(R(a),(([a,e])=>t(e,a))),j=a=>L.values(a),x=a=>d(D(a)),B=a=>(a=>!l(a)&&y(S(a),(a=>a==L.prototype||l(S(a))),(()=>!0)))(a)&&0==x(a),q=a=>new Map(a),H=a=>[...a?.keys()??[]],Y=(a,t)=>a?.get(t),$=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>l(e)?(O(a,t),a):a?.set(t,e),G=(a,t,e,n)=>(b(a,t)?n?.(Y(a,t)):k(a,t,e()),Y(a,t)),J=(a,t,e,n=k)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),U=a=>new Set(Array.isArray(a)||l(a)?a:[a]),W=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=v+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,e,i)=>{const o=q();return[async()=>J(o,M(await E(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(v+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(o,t,J(G(o,t,q),e,((a,t,e)=>{e!=Y(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(o,t))),async(t,e)=>((a,t)=>!l(Y(Y(o,a),t)))(t,e)?M(T(h(await a(Q+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!B(t)))):{},async(t,e,r,c,y,w=!1)=>{const u=U();F(r??{},(a=>h(D(a??{}),(a=>W(u,a)))));const d=N(u);if(!w&&y&&A(d)&&b(o,t))return await a("DROP "+z+g(t)),void k(o,t);if(A(d)||b(o,t)){const s=Y(o,t),i=U(H(s));await E([...h(d,(async e=>{O(i,e)||(await a(K+g(t)+"ADD"+g(e)),k(s,e,n))})),...!w&&c?h(N(i),(async n=>{n!=e&&(await a(K+g(t)+"DROP"+g(n)),k(s,n))})):[]])}else await a("CREATE "+z+g(t)+"("+g(e)+` PRIMARY KEY ON CONFLICT REPLACE${m(h(d,(a=>s+g(a))))});`),k(o,t,q([[e,n],...h(d,(a=>[a,n]))]));if(w)l(r)?await a(V+g(t)+Z+" 1"):await E(F(r,(async(n,s)=>{l(n)?await a(V+g(t)+Z+g(e)+"=?",[s]):A(d)||await ta(a,t,e,D(n),[s,...j(n)],i)})));else if(A(d))b(o,t)&&await a(V+g(t)+Z+" 1");else{const n=T(H(Y(o,t)),(a=>a!=e)),s=[],c=[];F(r??{},((a,t)=>{C(s,t,...h(n,(t=>a?.[t]))),C(c,t)})),await ta(a,t,e,n,s,i),await a(V+g(t)+Z+g(e)+"NOT IN("+ea(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ta=async(a,t,e,i,r,c=!0)=>await a("INSERT "+(c?n:"OR REPLACE ")+"INTO"+g(t)+"("+g(e)+m(h(i,(a=>s+g(a))))+")VALUES"+u(o(`,(?${o(",?",d(i))})`,d(r)/(d(i)+1)),1)+(c?"ON CONFLICT("+g(e)+")DO UPDATE SET"+m(h(i,(a=>g(a)+"=excluded."+g(a))),s):n),h(r,(a=>a??null))),ea=a=>m(h(a,(()=>"?")),s),na=JSON.parse,sa=q(),ia=q(),oa=(a,t,e,n,s,i,o,r={},c=[])=>{let u,d,E,p=0;G(sa,c,(()=>0)),G(ia,c,(()=>[]));const[f,g,v,m]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!B(a)||!B(t)])(o,a),h=async a=>(2!=p&&(p=1,await T.schedule((async()=>{await a(),p=0}))),T),A=t=>{(f&&w(t?.[0])?1===t?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async(e,n)=>await h((async()=>{try{A(await t())}catch(t){i?.(t),a.setContent([e,n])}})),startAutoLoad:async(a={},e={})=>(await T.stopAutoLoad().load(a,e),d=n((async(a,e)=>{const n=e?.();await h((async()=>{try{A(n??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(s(d),d=void 0),T),isAutoLoading:()=>!l(d),save:async a=>(1!=p&&(p=2,await T.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(E,a.delListener),E=void 0,T),isAutoSaving:()=>!l(E),schedule:async(...a)=>(C(Y(ia,c),...a),await(async()=>{if(!Y(sa,c)){for(k(sa,c,1);!l((a=Y(ia,c),u=a.shift()));)try{await u()}catch(a){i?.(a)}k(sa,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...r};return I(T)},ra="store",ca=(a,t,e,n,s,[i],o,r,c,l)=>{const[y,w,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await y(),na((await w(i,f))[p]?.[ra]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,f,{[p]:{[ra]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[c]:()=>r},r)},la=(a,t,e,n,s,[i,o,[r,c,y]],w,u,d,g)=>{const[v,m,h,A]=aa(t,w,s,g),C=async(a,t)=>await E($(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await h(e,n,a[o],s,i,t)}))),b=async(a,t)=>c?await h(y,f,{[p]:a},!0,!0,t):null;return oa(a,(async()=>await A((async()=>{await v();const a=await(async()=>M(T(await E($(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>r?(await m(y,f))[p]:{})();return B(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),l(t)){const[t,e]=a();await C(t),await b(e)}else{const[a,e]=t();await C(a,!0),await b(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},ya="json",wa="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",Ea="tableName",pa={mode:ya,[wa]:1},fa={load:0,save:0,[Ea]:e+"_values"},ga=(a,t,e,n)=>{const s=q();return F(a,((a,i)=>{const o=u(j(P(t,w(a)?{[e]:a}:a)),0,x(t));l(o[0])||n(i,o[0])||k(s,i,o)})),s},va="pragma ",ma="data_version",ha="schema_version",Aa=(a,t,n,s,i,o,r,l,y="getDb",d)=>{let E,p,g;const[m,h,A,T]=(a=>{const t=(a=>P(pa,w(a)?{storeTableName:a}:a??{}))(a),n=t[wa];if(t.mode==ya){const{storeTableName:a=e}=t;return[1,n,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=u(j(P(fa,o)),0,x(fa)),c=r[2],l=U(c);return[0,n,[ga(s,{[da]:null,[ua]:f},da,(a=>W(l,a)&&a==c)),ga(i,{[Ea]:null,[ua]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>W(l,t)&&t==c)),r],l]})(t);return(m?ca:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+ma))[0][ma],e=(await n(va+ha))[0][ha],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(p??=e)&&s==(g??=s)||(a(),E=t,p=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=p=null,i(t)}),r,A,N(T),l,y,d)};a.createElectricSqlPersister=(a,t,e,n,s)=>Aa(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,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=",",o=e(s),c=(a,t)=>a.repeat(t),r=Promise,l=clearInterval,y=a=>null==a,w=(a,t,e)=>y(a)?e?.():t(a),E=a=>e(a)==o,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>r.all(a),f="_",T="_id",g=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",v=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),h=a=>0==d(a),L=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,N=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),b=Object,S=a=>b.getPrototypeOf(a),D=b.entries,M=b.keys,x=b.freeze,I=(a=[])=>b.fromEntries(a),P=(...a)=>b.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>A(D(a),(([a,e])=>t(e,a))),_=a=>b.values(a),B=a=>d(M(a)),q=a=>(a=>!y(a)&&w(S(a),(a=>a==b.prototype||y(S(a))),(()=>!0)))(a)&&0==B(a),H=a=>new Map(a),j=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),Y=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>y(e)?(O(a,t),a):a?.set(t,e),G=(a,t,e,n)=>(R(a,t)?n?.(W(a,t)):k(a,t,e()),W(a,t)),J=(a,t,e,n=k)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),U=a=>new Set(Array.isArray(a)||y(a)?a:[a]),z=(a,t)=>a?.add(t),K=m+"*FROM",V="FROM pragma_table_",Q="WHERE",X=(a,t,e,n)=>{const o=H();return[async()=>J(o,I(await p(A(await a("SELECT name "+V+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+aa(t)+")ORDER BY name",t),(async({name:t})=>[t,I(A(await a(m+" name,type "+V+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(o,t,J(G(o,t,H),e,((a,t,e)=>{e!=W(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(o,t))),async(t,e)=>((a,t)=>!y(W(W(o,a),t)))(t,e)?I(L(A(await a(K+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!y(a)&&!q(t)))):{},async(t,e,c,r,l,w=!1)=>{const E=U();$(c??{},(a=>A(M(a??{}),(a=>z(E,a)))));const u=N(E);if(!w&&l&&h(u)&&R(o,t))return await a("DROP TABLE"+g(t)),void k(o,t);if(h(u)||R(o,t)){const n=W(o,t),i=U(j(n));await p([...A(u,(async e=>{O(i,e)||(await a(`ALTER TABLE${g(t)}ADD${g(e)}`),k(n,e,s))})),...!w&&r?A(N(i),(async s=>{s!=e&&(await a(`ALTER TABLE${g(t)}DROP${g(s)}`),k(n,s))})):[]])}else await a(`CREATE TABLE${g(t)}(${g(e)} PRIMARY KEY ON CONFLICT REPLACE${v(A(u,(a=>i+g(a))))});`),k(o,t,H([[e,s],...A(u,(a=>[a,s]))]));if(w)y(c)?await a("DELETE FROM"+g(t)+"WHERE 1"):await p($(c,(async(s,i)=>{y(s)?await a("DELETE FROM"+g(t)+Q+g(e)+"=?",[i]):h(u)||await Z(a,t,e,M(s),[i,..._(s)],n)})));else if(h(u))R(o,t)&&await a("DELETE FROM"+g(t)+"WHERE 1");else{const n=L(j(W(o,t)),(a=>a!=e)),s=[],i=[];$(c??{},((a,t)=>{C(s,t,...A(n,(t=>a?.[t]))),C(i,t)})),await Z(a,t,e,n,s),await a("DELETE FROM"+g(t)+Q+g(e)+"NOT IN("+aa(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},Z=async(a,t,e,n,o,r=!0)=>await a("INSERT "+(r?s:"OR REPLACE ")+"INTO"+g(t)+"("+g(e)+v(A(n,(a=>i+g(a))))+")VALUES"+u(c(`,(?${c(",?",d(n))})`,d(o)/(d(n)+1)),1)+(r?"ON CONFLICT("+g(e)+")DO UPDATE SET"+v(A(n,(a=>g(a)+"=excluded."+g(a))),i):s),A(o,(a=>a??null))),aa=a=>v(A(a,(()=>"?")),i),ta=JSON.parse,ea=H(),na=H(),sa=a=>E(a?.[0]),ia=(a,t,e,n,s,i,o,[c,r]=[],l=[])=>{let E,u,d,p=0,f=0;G(ea,l,(()=>0)),G(na,l,(()=>[]));const[T,g,m,v]=((a,t)=>!a||y(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!q(a)||!q(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!q(a)||!q(t)])(o,a),A=async a=>(2!=p&&(p=1,await h.schedule((async()=>{await a(),p=0}))),h),h={load:async(e,n)=>await A((async()=>{try{const e=await t();(T&&sa(e)?a.setMergeableContent:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(h.stopAutoLoad(),await h.load(e,s),f=1,d=n((async(e,n)=>{if(n){const t=n();await A((async()=>(T&&sa(t)?a.applyMergeableChanges:a.applyChanges)(t)))}else await A((async()=>{try{const n=e?.()??await t();(T&&sa(n)?a.setMergeableContent:a.setContent)(n)}catch(a){i?.(a)}}))})),h),stopAutoLoad:()=>(f&&(s(d),d=void 0,f=0),h),save:async a=>(1!=p&&(p=2,await h.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),h),startAutoSave:async()=>(await h.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();v(a)&&h.save((()=>a))})),h),stopAutoSave:()=>(w(E,a.delListener),E=void 0,h),schedule:async(...a)=>(C(W(na,l),...a),await(async()=>{if(!W(ea,l)){for(k(ea,l,1);!y((a=W(na,l),u=a.shift()));)try{await u()}catch(a){i?.(a)}k(ea,l,0)}var a})(),h),getStore:()=>a,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(h[c]=()=>r),x(h)},oa="store",ca=(a,t,e,n,s,[i],o,c,r)=>{const[l,y,w,E]=X(t,o,s);return ia(a,(async()=>await E((async()=>(await l(),ta((await y(i,T))[f]?.[oa]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,T,{[f]:{[oa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,c],c)},ra=(a,t,e,n,s,[i,o,[c,r,l]],w,E,u,d)=>{const[g,m,v,A]=X(t,w,s,d),h=async(a,t)=>await p(Y(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await v(e,n,a[o],s,i,t)}))),C=async(a,t)=>r?await v(l,T,{[f]:a},!0,!0,t):null;return ia(a,(async()=>await A((async()=>{await g();const a=await(async()=>I(L(await p(Y(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!q(a[1])))))(),t=await(async()=>c?(await m(l,T))[f]:{})();return q(a)&&y(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await g(),y(t)){const[t,e]=a();await h(t),await C(e)}else{const[a,e]=t();await h(a,!0),await C(e,!0)}}))),e,n,s,!1,[u,E],E)},la="json",ya="autoLoadIntervalSeconds",wa="rowIdColumnName",Ea="tableId",ua="tableName",da={mode:la,[ya]:1},pa={load:0,save:0,[ua]:n+"_values"},fa=(a,t,e,n)=>{const s=H();return $(a,((a,i)=>{const o=u(_(P(t,E(a)?{[e]:a}:a)),0,B(t));y(o[0])||n(i,o[0])||k(s,i,o)})),s},Ta="pragma ",ga="data_version",ma="schema_version",va=(a,t,e,s,i,o,c,r,y="getDb",w)=>{let d,p,f;const[g,v,A,h]=(a=>{const t=(a=>P(da,E(a)?{storeTableName:a}:a??{}))(a),e=t[ya];if(t.mode==la){const{storeTableName:a=n}=t;return[1,e,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=u(_(P(pa,o)),0,B(pa)),r=c[2],l=U(r);return[0,e,[fa(s,{[Ea]:null,[wa]:T},Ea,(a=>z(l,a)&&a==r)),fa(i,{[ua]:null,[wa]:T,deleteEmptyColumns:0,deleteEmptyTable:0},ua,((a,t)=>z(l,t)&&t==r)),c],l]})(t);return(g?ca:ra)(a,o?async(a,t)=>(o(a,t),await e(a,t)):e,(a=>{return[(t=async()=>{try{const t=(await e(Ta+ga))[0][ga],n=(await e(Ta+ma))[0][ma],s=(await e(m+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&n==(p??=n)&&s==(f??=s)||(a(),d=t,p=n)}catch{}},n=v,t(),setInterval(t,1e3*n)),s((t=>h.has(t)?a():0))];var t,n}),(([a,t])=>{l(a),d=p=null,i(t)}),c,A,N(h),r,y,w)};a.createExpoSqliteNextPersister=(a,e,n,s,i)=>va(a,n,(async(a,t=[])=>await e.getAllAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),s,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite/next")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite/next"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqliteNext={},a["expo-sqlite/next"]);
1
+ var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,n="tinybase",s="",i=",",o=e(s),r=(a,t)=>a.repeat(t),c=Promise,l=clearInterval,y=a=>null==a,w=(a,t,e)=>y(a)?e?.():t(a),u=a=>e(a)==o,d=(a,t,e)=>a.slice(t,e),p=a=>a.length,E=async a=>c.all(a),f="_",g="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),T=a=>0==p(a),C=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),S=Object,R=a=>S.getPrototypeOf(a),x=S.entries,D=S.keys,I=S.freeze,M=(a=[])=>S.fromEntries(a),P=(...a)=>S.assign({},...a),_=(a,t)=>t in a,q=(a,t)=>h(x(a),(([a,e])=>t(e,a))),F=a=>S.values(a),j=a=>p(D(a)),B=a=>(a=>!y(a)&&w(R(a),(a=>a==S.prototype||y(R(a))),(()=>!0)))(a)&&0==j(a),H=a=>new Map(a),Y=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),k=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>y(e)?(O(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(b(a,t)?n?.($(a,t)):G(a,t,e()),$(a,t)),U=(a,t,e,n=G)=>(q(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),W=a=>new Set(Array.isArray(a)||y(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,Q="DELETE FROM",X=m+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,n)=>{const o=H();return[async()=>U(o,M(await E(h(await a("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+na(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(m+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(o,t,U(J(o,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(o,t))),async(t,e)=>((a,t)=>!y($($(o,a),t)))(t,e)?M(C(h(await a(X+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!y(a)&&!B(t)))):{},async(t,e,r,c,l,w=!1)=>{const u=W();q(r??{},(a=>h(D(a??{}),(a=>z(u,a)))));const d=L(u);if(!w&&l&&T(d)&&b(o,t))return await a("DROP "+K+v(t)),void G(o,t);if(T(d)||b(o,t)){const n=$(o,t),i=W(Y(n));await E([...h(d,(async e=>{O(i,e)||(await a(V+v(t)+"ADD"+v(e)),G(n,e,s))})),...!w&&c?h(L(i),(async s=>{s!=e&&(await a(V+v(t)+"DROP"+v(s)),G(n,s))})):[]])}else await a("CREATE "+K+v(t)+"("+v(e)+` PRIMARY KEY ON CONFLICT REPLACE${A(h(d,(a=>i+v(a))))});`),G(o,t,H([[e,s],...h(d,(a=>[a,s]))]));if(w)y(r)?await a(Q+v(t)+aa+" 1"):await E(q(r,(async(s,i)=>{y(s)?await a(Q+v(t)+aa+v(e)+"=?",[i]):T(d)||await ea(a,t,e,D(s),[i,...F(s)],n)})));else if(T(d))b(o,t)&&await a(Q+v(t)+aa+" 1");else{const s=C(Y($(o,t)),(a=>a!=e)),i=[],c=[];q(r??{},((a,t)=>{N(i,t,...h(s,(t=>a?.[t]))),N(c,t)})),await ea(a,t,e,s,i,n),await a(Q+v(t)+aa+v(e)+"NOT IN("+na(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ea=async(a,t,e,n,o,c=!0)=>await a("INSERT "+(c?s:"OR REPLACE ")+"INTO"+v(t)+"("+v(e)+A(h(n,(a=>i+v(a))))+")VALUES"+d(r(`,(?${r(",?",p(n))})`,p(o)/(p(n)+1)),1)+(c?"ON CONFLICT("+v(e)+")DO UPDATE SET"+A(h(n,(a=>v(a)+"=excluded."+v(a))),i):s),h(o,(a=>a??null))),na=a=>A(h(a,(()=>"?")),i),sa=JSON.parse,ia=H(),oa=H(),ra=(a,t,e,n,s,i,o,r={},c=[])=>{let l,d,p,E=0;J(ia,c,(()=>0)),J(oa,c,(()=>[]));const[f,g,v,m]=((a,t)=>!a||y(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!B(a)||!B(t)])(o,a),A=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),h=t=>{(f&&u(t?.[0])?1===t?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async(e,n)=>await A((async()=>{try{h(await t())}catch(t){i?.(t),a.setContent([e,n])}})),startAutoLoad:async(a={},e={})=>(await T.stopAutoLoad().load(a,e),d=n((async(a,e)=>{const n=e?.();await A((async()=>{try{h(n??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(s(d),d=void 0),T),isAutoLoading:()=>!y(d),save:async a=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(w(p,a.delListener),p=void 0,T),isAutoSaving:()=>!y(p),schedule:async(...a)=>(N($(oa,c),...a),await(async()=>{if(!$(ia,c)){for(G(ia,c,1);!y((a=$(oa,c),l=a.shift()));)try{await l()}catch(a){i?.(a)}G(ia,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...r};return I(T)},ca="store",la=(a,t,e,n,s,[i],o,r,c,l)=>{const[y,w,u,d]=ta(t,o,s,l);return ra(a,(async()=>await d((async()=>(await y(),sa((await w(i,g))[f]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,g,{[f]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[c]:()=>r},r)},ya=(a,t,e,n,s,[i,o,[r,c,l]],w,u,d,p)=>{const[v,m,A,h]=ta(t,w,s,p),T=async(a,t)=>await E(k(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await A(e,n,a[o],s,i,t)}))),N=async(a,t)=>c?await A(l,g,{[f]:a},!0,!0,t):null;return ra(a,(async()=>await h((async()=>{await v();const a=await(async()=>M(C(await E(k(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>r?(await m(l,g))[f]:{})();return B(a)&&y(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await v(),y(t)){const[t,e]=a();await T(t),await N(e)}else{const[a,e]=t();await T(a,!0),await N(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",pa="tableId",Ea="tableName",fa={mode:wa,[ua]:1},ga={load:0,save:0,[Ea]:n+"_values"},va=(a,t,e,n)=>{const s=H();return q(a,((a,i)=>{const o=d(F(P(t,u(a)?{[e]:a}:a)),0,j(t));y(o[0])||n(i,o[0])||G(s,i,o)})),s},ma="pragma ",Aa="data_version",ha="schema_version",Ta=(a,t,e,s,i,o,r,c,y="getDb",w)=>{let p,E,f;const[v,A,h,T]=(a=>{const t=(a=>P(fa,u(a)?{storeTableName:a}:a??{}))(a),e=t[ua];if(t.mode==wa){const{storeTableName:a=n}=t;return[1,e,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=d(F(P(ga,o)),0,j(ga)),c=r[2],l=W(c);return[0,e,[va(s,{[pa]:null,[da]:g},pa,(a=>z(l,a)&&a==c)),va(i,{[Ea]:null,[da]:g,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==c)),r],l]})(t);return(v?la:ya)(a,o?async(a,t)=>(o(a,t),await e(a,t)):e,(a=>{return[(t=async()=>{try{const t=(await e(ma+Aa))[0][Aa],n=(await e(ma+ha))[0][ha],s=(await e(m+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&n==(E??=n)&&s==(f??=s)||(a(),p=t,E=n)}catch{}},n=A,t(),setInterval(t,1e3*n)),s((t=>T.has(t)?a():0))];var t,n}),(([a,t])=>{l(a),p=E=null,i(t)}),r,h,L(T),c,y,w)};a.createExpoSqliteNextPersister=(a,e,n,s,i)=>Ta(a,n,(async(a,t=[])=>await e.getAllAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),s,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite/next")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite/next"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqliteNext={},a["expo-sqlite/next"]);
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,g="SELECT",m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==u(a),h=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),b=Object,N=a=>b.getPrototypeOf(a),S=b.entries,D=b.keys,M=b.freeze,I=(a=[])=>b.fromEntries(a),P=(...a)=>b.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>v(S(a),(([a,e])=>t(e,a))),_=a=>b.values(a),x=a=>u(D(a)),B=a=>(a=>!l(a)&&y(N(a),(a=>a==b.prototype||l(N(a))),(()=>!0)))(a)&&0==x(a),H=a=>new Map(a),j=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),q=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>l(e)?(O(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(L(a,t)?n?.(W(a,t)):Y(a,t,e()),W(a,t)),G=(a,t,e,n=Y)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),z=g+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const o=H();return[async()=>G(o,I(await d(v(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(v(await a(g+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(o,t,G(k(o,t,H),e,((a,t,e)=>{e!=W(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(o,t))),async(t,e)=>((a,t)=>!l(W(W(o,a),t)))(t,e)?I(h(v(await a(z+T(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!B(t)))):{},async(t,e,c,r,y,w=!1)=>{const E=J();$(c??{},(a=>v(D(a??{}),(a=>U(E,a)))));const u=R(E);if(!w&&y&&A(u)&&L(o,t))return await a("DROP TABLE"+T(t)),void Y(o,t);if(A(u)||L(o,t)){const s=W(o,t),i=J(j(s));await d([...v(u,(async e=>{O(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),Y(s,e,n))})),...!w&&r?v(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(n)}`),Y(s,n))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${m(v(u,(a=>s+T(a))))});`),Y(o,t,H([[e,n],...v(u,(a=>[a,n]))]));if(w)l(c)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(c,(async(n,s)=>{l(n)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[s]):A(u)||await X(a,t,e,D(n),[s,..._(n)],i)})));else if(A(u))L(o,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=h(j(W(o,t)),(a=>a!=e)),s=[],i=[];$(c??{},((a,t)=>{C(s,t,...v(n,(t=>a?.[t]))),C(i,t)})),await X(a,t,e,n,s),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+m(v(i,(a=>s+T(a))))+")VALUES"+E(o(`,(?${o(",?",u(i))})`,u(c)/(u(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+m(v(i,(a=>T(a)+"=excluded."+T(a))),s):n),v(c,(a=>a??null))),Z=a=>m(v(a,(()=>"?")),s),aa=JSON.parse,ta=H(),ea=H(),na=a=>w(a?.[0]),sa=(a,t,e,n,s,i,o,[c,r]=[],w=[])=>{let E,u,d,p=0,f=0;k(ta,w,(()=>0)),k(ea,w,(()=>[]));const[T,g,m,v]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!B(a)||!B(t)])(o,a),A=async a=>(2!=p&&(p=1,await h.schedule((async()=>{await a(),p=0}))),h),h={load:async(e,n)=>await A((async()=>{try{const e=await t();(T&&na(e)?a.setMergeableContent:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(h.stopAutoLoad(),await h.load(e,s),f=1,d=n((async(e,n)=>{if(n){const t=n();await A((async()=>(T&&na(t)?a.applyMergeableChanges:a.applyChanges)(t)))}else await A((async()=>{try{const n=e?.()??await t();(T&&na(n)?a.setMergeableContent:a.setContent)(n)}catch(a){i?.(a)}}))})),h),stopAutoLoad:()=>(f&&(s(d),d=void 0,f=0),h),save:async a=>(1!=p&&(p=2,await h.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),h),startAutoSave:async()=>(await h.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();v(a)&&h.save((()=>a))})),h),stopAutoSave:()=>(y(E,a.delListener),E=void 0,h),schedule:async(...a)=>(C(W(ea,w),...a),await(async()=>{if(!W(ta,w)){for(Y(ta,w,1);!l((a=W(ea,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}Y(ta,w,0)}var a})(),h),getStore:()=>a,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(h[c]=()=>r),M(h)},ia="store",oa=(a,t,e,n,s,[i],o,c,r)=>{const[l,y,w,E]=Q(t,o,s);return sa(a,(async()=>await E((async()=>(await l(),aa((await y(i,f))[p]?.[ia]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[ia]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,c],c)},ca=(a,t,e,n,s,[i,o,[c,r,y]],w,E,u,T)=>{const[g,m,v,A]=Q(t,w,s,T),C=async(a,t)=>await d(q(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await v(e,n,a[o],s,i,t)}))),L=async(a,t)=>r?await v(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await A((async()=>{await g();const a=await(async()=>I(h(await d(q(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>c?(await m(y,f))[p]:{})();return B(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await g(),l(t)){const[t,e]=a();await C(t),await L(e)}else{const[a,e]=t();await C(a,!0),await L(e,!0)}}))),e,n,s,!1,[u,E],E)},ra="json",la="autoLoadIntervalSeconds",ya="rowIdColumnName",wa="tableId",Ea="tableName",ua={mode:ra,[la]:1},da={load:0,save:0,[Ea]:e+"_values"},pa=(a,t,e,n)=>{const s=H();return $(a,((a,i)=>{const o=E(_(P(t,w(a)?{[e]:a}:a)),0,x(t));l(o[0])||n(i,o[0])||Y(s,i,o)})),s},fa="pragma ",Ta="data_version",ga="schema_version",ma=(a,t,n,s,i,o,c,l,y="getDb",u)=>{let d,p,T;const[m,v,A,h]=(a=>{const t=(a=>P(ua,w(a)?{storeTableName:a}:a??{}))(a),n=t[la];if(t.mode==ra){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=E(_(P(da,o)),0,x(da)),r=c[2],l=J(r);return[0,n,[pa(s,{[wa]:null,[ya]:f},wa,(a=>U(l,a)&&a==r)),pa(i,{[Ea]:null,[ya]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(m?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(fa+Ta))[0][Ta],e=(await n(fa+ga))[0][ga],s=(await n(g+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&s==(T??=s)||(a(),d=t,p=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,A,R(h),l,y,u)};a.createExpoSqlitePersister=(a,t,e,n,s)=>ma(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),n,s,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).TinyBasePersisterExpoSqlite={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>c.all(a),E="_",f="_id",g=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",m=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),A=a=>0==d(a),T=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,N=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),L=Object,S=a=>L.getPrototypeOf(a),R=L.entries,D=L.keys,I=L.freeze,M=(a=[])=>L.fromEntries(a),P=(...a)=>L.assign({},...a),_=(a,t)=>t in a,x=(a,t)=>h(R(a),(([a,e])=>t(e,a))),F=a=>L.values(a),j=a=>d(D(a)),B=a=>(a=>!l(a)&&y(S(a),(a=>a==L.prototype||l(S(a))),(()=>!0)))(a)&&0==j(a),q=a=>new Map(a),H=a=>[...a?.keys()??[]],Y=(a,t)=>a?.get(t),$=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>l(e)?(O(a,t),a):a?.set(t,e),G=(a,t,e,n)=>(b(a,t)?n?.(Y(a,t)):k(a,t,e()),Y(a,t)),J=(a,t,e,n=k)=>(x(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),U=a=>new Set(Array.isArray(a)||l(a)?a:[a]),W=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=v+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,e,i)=>{const o=q();return[async()=>J(o,M(await p(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(v+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(o,t,J(G(o,t,q),e,((a,t,e)=>{e!=Y(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(o,t))),async(t,e)=>((a,t)=>!l(Y(Y(o,a),t)))(t,e)?M(T(h(await a(Q+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!B(t)))):{},async(t,e,c,r,y,w=!1)=>{const u=U();x(c??{},(a=>h(D(a??{}),(a=>W(u,a)))));const d=N(u);if(!w&&y&&A(d)&&b(o,t))return await a("DROP "+z+g(t)),void k(o,t);if(A(d)||b(o,t)){const s=Y(o,t),i=U(H(s));await p([...h(d,(async e=>{O(i,e)||(await a(K+g(t)+"ADD"+g(e)),k(s,e,n))})),...!w&&r?h(N(i),(async n=>{n!=e&&(await a(K+g(t)+"DROP"+g(n)),k(s,n))})):[]])}else await a("CREATE "+z+g(t)+"("+g(e)+` PRIMARY KEY ON CONFLICT REPLACE${m(h(d,(a=>s+g(a))))});`),k(o,t,q([[e,n],...h(d,(a=>[a,n]))]));if(w)l(c)?await a(V+g(t)+Z+" 1"):await p(x(c,(async(n,s)=>{l(n)?await a(V+g(t)+Z+g(e)+"=?",[s]):A(d)||await ta(a,t,e,D(n),[s,...F(n)],i)})));else if(A(d))b(o,t)&&await a(V+g(t)+Z+" 1");else{const n=T(H(Y(o,t)),(a=>a!=e)),s=[],r=[];x(c??{},((a,t)=>{C(s,t,...h(n,(t=>a?.[t]))),C(r,t)})),await ta(a,t,e,n,s,i),await a(V+g(t)+Z+g(e)+"NOT IN("+ea(r)+")",r)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ta=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+g(t)+"("+g(e)+m(h(i,(a=>s+g(a))))+")VALUES"+u(o(`,(?${o(",?",d(i))})`,d(c)/(d(i)+1)),1)+(r?"ON CONFLICT("+g(e)+")DO UPDATE SET"+m(h(i,(a=>g(a)+"=excluded."+g(a))),s):n),h(c,(a=>a??null))),ea=a=>m(h(a,(()=>"?")),s),na=JSON.parse,sa=q(),ia=q(),oa=(a,t,e,n,s,i,o,c={},r=[])=>{let u,d,p,E=0;G(sa,r,(()=>0)),G(ia,r,(()=>[]));const[f,g,v,m]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!B(a)||!B(t)])(o,a),h=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),A=t=>{(f&&w(t?.[0])?1===t?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async(e,n)=>await h((async()=>{try{A(await t())}catch(t){i?.(t),a.setContent([e,n])}})),startAutoLoad:async(a={},e={})=>(await T.stopAutoLoad().load(a,e),d=n((async(a,e)=>{const n=e?.();await h((async()=>{try{A(n??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(s(d),d=void 0),T),isAutoLoading:()=>!l(d),save:async a=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(p,a.delListener),p=void 0,T),isAutoSaving:()=>!l(p),schedule:async(...a)=>(C(Y(ia,r),...a),await(async()=>{if(!Y(sa,r)){for(k(sa,r,1);!l((a=Y(ia,r),u=a.shift()));)try{await u()}catch(a){i?.(a)}k(sa,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return I(T)},ca="store",ra=(a,t,e,n,s,[i],o,c,r,l)=>{const[y,w,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await y(),na((await w(i,f))[E]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,f,{[E]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[r]:()=>c},c)},la=(a,t,e,n,s,[i,o,[c,r,y]],w,u,d,g)=>{const[v,m,h,A]=aa(t,w,s,g),C=async(a,t)=>await p($(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await h(e,n,a[o],s,i,t)}))),b=async(a,t)=>r?await h(y,f,{[E]:a},!0,!0,t):null;return oa(a,(async()=>await A((async()=>{await v();const a=await(async()=>M(T(await p($(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>c?(await m(y,f))[E]:{})();return B(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),l(t)){const[t,e]=a();await C(t),await b(e)}else{const[a,e]=t();await C(a,!0),await b(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},ya="json",wa="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",pa="tableName",Ea={mode:ya,[wa]:1},fa={load:0,save:0,[pa]:e+"_values"},ga=(a,t,e,n)=>{const s=q();return x(a,((a,i)=>{const o=u(F(P(t,w(a)?{[e]:a}:a)),0,j(t));l(o[0])||n(i,o[0])||k(s,i,o)})),s},va="pragma ",ma="data_version",ha="schema_version",Aa=(a,t,n,s,i,o,c,l,y="getDb",d)=>{let p,E,g;const[m,h,A,T]=(a=>{const t=(a=>P(Ea,w(a)?{storeTableName:a}:a??{}))(a),n=t[wa];if(t.mode==ya){const{storeTableName:a=e}=t;return[1,n,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=u(F(P(fa,o)),0,j(fa)),r=c[2],l=U(r);return[0,n,[ga(s,{[da]:null,[ua]:f},da,(a=>W(l,a)&&a==r)),ga(i,{[pa]:null,[ua]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>W(l,t)&&t==r)),c],l]})(t);return(m?ra:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+ma))[0][ma],e=(await n(va+ha))[0][ha],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(E??=e)&&s==(g??=s)||(a(),p=t,E=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),p=E=null,i(t)}),c,A,N(T),l,y,d)};a.createExpoSqlitePersister=(a,t,e,n,s)=>Aa(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),n,s,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).TinyBasePersisterExpoSqlite={});
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e,t,a){"use strict";const s=e=>typeof e,n=s(""),o="utf8",r=e=>null==e,i=(e,t,a)=>r(e)?a?.():t(e),c=Object,l=e=>c.getPrototypeOf(e),y=c.keys,f=c.freeze,p=e=>(e=>!r(e)&&i(l(e),(e=>e==c.prototype||r(l(e))),(()=>!0)))(e)&&0==(e=>y(e).length)(e),d=JSON.parse,u=e=>new Map(e),g=(e,t)=>e?.get(t),h=(e,t,a)=>{return r(a)?(s=e,n=t,s?.delete(n),e):e?.set(t,a);var s,n},w=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(g(e,t)):h(e,t,a()),g(e,t)},v=u(),C=u(),b=e=>{return t=e?.[0],s(t)==n;var t};e.createFilePersister=(e,s,n)=>((e,t,a,s,n,o,c,[l,y]=[],d=[])=>{let u,A,M,S=0,m=0;w(v,d,(()=>0)),w(C,d,(()=>[]));const[F,L,T,O]=((e,t)=>!e||r(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!p(e)||!p(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!p(e)||!p(t)])(c,e),P=async e=>(2!=S&&(S=1,await x.schedule((async()=>{await e(),S=0}))),x),x={load:async(a,s)=>await P((async()=>{try{const a=await t();(F&&b(a)?e.setMergeableContent:e.setContent)(a)}catch{e.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(x.stopAutoLoad(),await x.load(a,n),m=1,M=s((async(a,s)=>{if(s){const t=s();await P((async()=>(F&&b(t)?e.applyMergeableChanges:e.applyChanges)(t)))}else await P((async()=>{try{const s=a?.()??await t();(F&&b(s)?e.setMergeableContent:e.setContent)(s)}catch(e){o?.(e)}}))})),x),stopAutoLoad:()=>(m&&(n(M),M=void 0,m=0),x),save:async e=>(1!=S&&(S=2,await x.schedule((async()=>{try{await a(L,e)}catch(e){o?.(e)}S=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),u=e.addDidFinishTransactionListener((()=>{const e=T();O(e)&&x.save((()=>e))})),x),stopAutoSave:()=>(i(u,e.delListener),u=void 0,x),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(g(C,d),...e),await(async()=>{if(!g(v,d)){for(h(v,d,1);!r((e=g(C,d),A=e.shift()));)try{await A()}catch(e){o?.(e)}h(v,d,0)}var e})(),x),getStore:()=>e,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l&&(x[l]=()=>y),f(x)})(e,(async()=>d(await a.readFile(s,o))),(async e=>{return await a.writeFile(s,(t=e(),JSON.stringify(t,((e,t)=>t instanceof Map?c.fromEntries([...t]):t))),o);var t}),(e=>t.watch(s,(()=>e()))),(e=>e?.close()),n,!0,["getFilePath",s])},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterFile={},e.fs,e["fs/promises"]);
1
+ var e,t;e=this,t=function(e,t,a){"use strict";const s=e=>typeof e,n=s(""),o="utf8",i=e=>null==e,r=(e,t,a)=>i(e)?a?.():t(e),c=Object,y=e=>c.getPrototypeOf(e),l=c.keys,d=c.freeze,f=e=>(e=>!i(e)&&r(y(e),(e=>e==c.prototype||i(y(e))),(()=>!0)))(e)&&0==(e=>l(e).length)(e),p=JSON.parse,u=e=>new Map(e),g=(e,t)=>e?.get(t),h=(e,t,a)=>{return i(a)?(s=e,n=t,s?.delete(n),e):e?.set(t,a);var s,n},w=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(g(e,t)):h(e,t,a()),g(e,t)},v=u(),A=u();e.createFilePersister=(e,y,l)=>((e,t,a,o,c,y,l,p={},u=[])=>{let C,b,S,L=0;w(v,u,(()=>0)),w(A,u,(()=>[]));const[M,m,F,T]=((e,t)=>!e||i(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!f(e)||!f(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!f(e)||!f(t)])(l,e),O=async e=>(2!=L&&(L=1,await x.schedule((async()=>{await e(),L=0}))),x),P=t=>{var a;(M&&(a=t?.[0],s(a)==n)?1===t?.[1][2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},x={load:async(a,s)=>await O((async()=>{try{P(await t())}catch(t){y?.(t),e.setContent([a,s])}})),startAutoLoad:async(e={},a={})=>(await x.stopAutoLoad().load(e,a),b=o((async(e,a)=>{const s=a?.();await O((async()=>{try{P(s??e?.()??await t())}catch(e){y?.(e)}}))})),x),stopAutoLoad:()=>(b&&(c(b),b=void 0),x),isAutoLoading:()=>!i(b),save:async e=>(1!=L&&(L=2,await x.schedule((async()=>{try{await a(m,e)}catch(e){y?.(e)}L=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),S=e.addDidFinishTransactionListener((()=>{const e=F();T(e)&&x.save((()=>e))})),x),stopAutoSave:()=>(r(S,e.delListener),S=void 0,x),isAutoSaving:()=>!i(S),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(g(A,u),...e),await(async()=>{if(!g(v,u)){for(h(v,u,1);!i((e=g(A,u),C=e.shift()));)try{await C()}catch(e){y?.(e)}h(v,u,0)}var e})(),x),getStore:()=>e,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...p};return d(x)})(e,(async()=>p(await a.readFile(y,o))),(async e=>{return await a.writeFile(y,(t=e(),JSON.stringify(t,((e,t)=>t instanceof Map?c.fromEntries([...t]):t))),o);var t}),(e=>t.watch(y,(()=>e()))),(e=>e?.close()),l,!0,{getFilePath:()=>y})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterFile={},e.fs,e["fs/promises"]);
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,a=t(""),n=Promise,s=clearInterval,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),c=e=>new n(e),i=async e=>n.all(e),l=(e,t)=>e.map(t),d=(e,...t)=>e.push(...t),y=Object,u=e=>y.getPrototypeOf(e),p=y.entries,g=y.keys,w=y.freeze,h=e=>(e=>!o(e)&&r(u(e),(e=>e==y.prototype||o(u(e))),(()=>!0)))(e)&&0==(e=>g(e).length)(e),f=e=>new Map(e),v=(e,t)=>e?.get(t),b=(e,t,a)=>{return o(a)?(n=e,s=t,n?.delete(s),e):e?.set(t,a);var n,s},C=(e,t,a,n)=>{var s,o;return s=e,o=t,s?.has(o)?n?.(v(e,t)):b(e,t,a()),v(e,t)},A=f(),S=f(),x=e=>{return n=e?.[0],t(n)==a;var n},M=globalThis.window,D=["t","v"],T={keyPath:"k"},j=async(e,t)=>{const a=((t,a)=>l(p(t),(([t,a])=>m(e,"put",{k:t,v:a}))))(t);l(await m(e,"getAllKeys"),(n=>((e,t)=>t in e)(t,n)?0:d(a,m(e,"delete",n)))),await i(a)},m=async(e,t,a)=>c(((n,s)=>{const o=e[t](a);o.onsuccess=()=>n(o.result),o.onerror=()=>s(`objectStore.${t} error`)}));e.createIndexedDbPersister=(e,t,a=1,n)=>{const u=async(e,a=[],n=0)=>c(((s,o)=>{const r=(M?M.indexedDB:indexedDB).open(t,n?2:void 0);r.onupgradeneeded=()=>n&&l(D,(e=>{try{r.result.createObjectStore(e,T)}catch{}})),r.onsuccess=async()=>{try{const t=r.result.transaction(D,"readwrite"),n=await i(l(D,(async(n,s)=>await e(t.objectStore(n),a[s]))));r.result.close(),s(n)}catch(e){r.result.close(),o(e)}},r.onerror=()=>o("indexedDB.open error")}));return((e,t,a,n,s,c,i,[l,y]=[],u=[])=>{let p,g,f,M=0,D=0;C(A,u,(()=>0)),C(S,u,(()=>[]));const[T,j,m,L]=((e,t)=>!e||o(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!h(e)||!h(t)])(i,e),k=async e=>(2!=M&&(M=1,await P.schedule((async()=>{await e(),M=0}))),P),P={load:async(a,n)=>await k((async()=>{try{const a=await t();(T&&x(a)?e.setMergeableContent:e.setContent)(a)}catch{e.setContent([a,n])}})),startAutoLoad:async(a={},s={})=>(P.stopAutoLoad(),await P.load(a,s),D=1,f=n((async(a,n)=>{if(n){const t=n();await k((async()=>(T&&x(t)?e.applyMergeableChanges:e.applyChanges)(t)))}else await k((async()=>{try{const n=a?.()??await t();(T&&x(n)?e.setMergeableContent:e.setContent)(n)}catch(e){c?.(e)}}))})),P),stopAutoLoad:()=>(D&&(s(f),f=void 0,D=0),P),save:async e=>(1!=M&&(M=2,await P.schedule((async()=>{try{await a(j,e)}catch(e){c?.(e)}M=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),p=e.addDidFinishTransactionListener((()=>{const e=m();L(e)&&P.save((()=>e))})),P),stopAutoSave:()=>(r(p,e.delListener),p=void 0,P),schedule:async(...e)=>(d(v(S,u),...e),await(async()=>{if(!v(A,u)){for(b(A,u,1);!o((e=v(S,u),g=e.shift()));)try{await g()}catch(e){c?.(e)}b(A,u,0)}var e})(),P),getStore:()=>e,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l&&(P[l]=()=>y),w(P)})(e,(async()=>await u((async e=>((e=[])=>y.fromEntries(e))(l(await m(e,"getAll"),(({k:e,v:t})=>[e,t])))))),(async e=>await u((async(e,t)=>await j(e,t)),e(),1)),(e=>setInterval(e,1e3*a)),(e=>s(e)),n,!1,["getDbName",t])},e.objectStoreMatch=j},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterIndexedDb={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,a=t(""),s=Promise,n=clearInterval,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),c=e=>new s(e),i=async e=>s.all(e),d=(e,t)=>e.map(t),l=(e,...t)=>e.push(...t),y=Object,u=e=>y.getPrototypeOf(e),g=y.entries,p=y.keys,w=y.freeze,h=e=>(e=>!o(e)&&r(u(e),(e=>e==y.prototype||o(u(e))),(()=>!0)))(e)&&0==(e=>p(e).length)(e),v=e=>new Map(e),f=(e,t)=>e?.get(t),b=(e,t,a)=>{return o(a)?(s=e,n=t,s?.delete(n),e):e?.set(t,a);var s,n},A=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(f(e,t)):b(e,t,a()),f(e,t)},S=v(),C=v(),x=globalThis.window,D=["t","v"],L={keyPath:"k"},M=async(e,t)=>{const a=((t,a)=>d(g(t),(([t,a])=>T(e,"put",{k:t,v:a}))))(t);d(await T(e,"getAllKeys"),(s=>((e,t)=>t in e)(t,s)?0:l(a,T(e,"delete",s)))),await i(a)},T=async(e,t,a)=>c(((s,n)=>{const o=e[t](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${t} error`)}));e.createIndexedDbPersister=(e,s,u=1,g)=>{const p=async(e,t=[],a=0)=>c(((n,o)=>{const r=(x?x.indexedDB:indexedDB).open(s,a?2:void 0);r.onupgradeneeded=()=>a&&d(D,(e=>{try{r.result.createObjectStore(e,L)}catch{}})),r.onsuccess=async()=>{try{const a=r.result.transaction(D,"readwrite"),s=await i(d(D,(async(s,n)=>await e(a.objectStore(s),t[n]))));r.result.close(),n(s)}catch(e){r.result.close(),o(e)}},r.onerror=()=>o("indexedDB.open error")}));return((e,s,n,c,i,d,y,u={},g=[])=>{let p,v,x,D=0;A(S,g,(()=>0)),A(C,g,(()=>[]));const[L,M,T,j]=((e,t)=>!e||o(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!h(e)||!h(t)])(y,e),m=async e=>(2!=D&&(D=1,await P.schedule((async()=>{await e(),D=0}))),P),k=s=>{var n;(L&&(n=s?.[0],t(n)==a)?1===s?.[1][2]?e.applyMergeableChanges:e.setMergeableContent:1===s?.[2]?e.applyChanges:e.setContent)(s)},P={load:async(t,a)=>await m((async()=>{try{k(await s())}catch(s){d?.(s),e.setContent([t,a])}})),startAutoLoad:async(e={},t={})=>(await P.stopAutoLoad().load(e,t),v=c((async(e,t)=>{const a=t?.();await m((async()=>{try{k(a??e?.()??await s())}catch(e){d?.(e)}}))})),P),stopAutoLoad:()=>(v&&(i(v),v=void 0),P),isAutoLoading:()=>!o(v),save:async e=>(1!=D&&(D=2,await P.schedule((async()=>{try{await n(M,e)}catch(e){d?.(e)}D=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),x=e.addDidFinishTransactionListener((()=>{const e=T();j(e)&&P.save((()=>e))})),P),stopAutoSave:()=>(r(x,e.delListener),x=void 0,P),isAutoSaving:()=>!o(x),schedule:async(...e)=>(l(f(C,g),...e),await(async()=>{if(!f(S,g)){for(b(S,g,1);!o((e=f(C,g),p=e.shift()));)try{await p()}catch(e){d?.(e)}b(S,g,0)}var e})(),P),getStore:()=>e,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...u};return w(P)})(e,(async()=>await p((async e=>((e=[])=>y.fromEntries(e))(d(await T(e,"getAll"),(({k:e,v:t})=>[e,t])))))),(async e=>await p((async(e,t)=>await M(e,t)),e(),1)),(e=>setInterval(e,1e3*u)),(e=>n(e)),g,!1,{getDbName:()=>s})},e.objectStoreMatch=M},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterIndexedDb={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,g="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==u(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),C=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),b=Object,N=a=>b.getPrototypeOf(a),S=b.entries,D=b.keys,M=b.freeze,I=(a=[])=>b.fromEntries(a),P=(...a)=>b.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>m(S(a),(([a,e])=>t(e,a))),_=a=>b.values(a),B=a=>u(D(a)),x=a=>(a=>!l(a)&&y(N(a),(a=>a==b.prototype||l(N(a))),(()=>!0)))(a)&&0==B(a),H=a=>new Map(a),j=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),q=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>l(e)?(O(a,t),a):a?.set(t,e),k=(a,t,e,n)=>(C(a,t)?n?.(W(a,t)):Y(a,t,e()),W(a,t)),G=(a,t,e,n=Y)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),z=g+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const o=H();return[async()=>G(o,I(await d(m(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(g+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(o,t,G(k(o,t,H),e,((a,t,e)=>{e!=W(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(o,t))),async(t,e)=>((a,t)=>!l(W(W(o,a),t)))(t,e)?I(L(m(await a(z+T(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!x(t)))):{},async(t,e,c,r,y,w=!1)=>{const E=J();$(c??{},(a=>m(D(a??{}),(a=>U(E,a)))));const u=R(E);if(!w&&y&&A(u)&&C(o,t))return await a("DROP TABLE"+T(t)),void Y(o,t);if(A(u)||C(o,t)){const s=W(o,t),i=J(j(s));await d([...m(u,(async e=>{O(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),Y(s,e,n))})),...!w&&r?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(n)}`),Y(s,n))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(u,(a=>s+T(a))))});`),Y(o,t,H([[e,n],...m(u,(a=>[a,n]))]));if(w)l(c)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(c,(async(n,s)=>{l(n)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[s]):A(u)||await X(a,t,e,D(n),[s,..._(n)],i)})));else if(A(u))C(o,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=L(j(W(o,t)),(a=>a!=e)),s=[],i=[];$(c??{},((a,t)=>{h(s,t,...m(n,(t=>a?.[t]))),h(i,t)})),await X(a,t,e,n,s),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+v(m(i,(a=>s+T(a))))+")VALUES"+E(o(`,(?${o(",?",u(i))})`,u(c)/(u(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+v(m(i,(a=>T(a)+"=excluded."+T(a))),s):n),m(c,(a=>a??null))),Z=a=>v(m(a,(()=>"?")),s),aa=JSON.parse,ta=H(),ea=H(),na=a=>w(a?.[0]),sa=(a,t,e,n,s,i,o,[c,r]=[],w=[])=>{let E,u,d,p=0,f=0;k(ta,w,(()=>0)),k(ea,w,(()=>[]));const[T,g,v,m]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!x(a)||!x(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!x(a)||!x(t)])(o,a),A=async a=>(2!=p&&(p=1,await L.schedule((async()=>{await a(),p=0}))),L),L={load:async(e,n)=>await A((async()=>{try{const e=await t();(T&&na(e)?a.setMergeableContent:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(L.stopAutoLoad(),await L.load(e,s),f=1,d=n((async(e,n)=>{if(n){const t=n();await A((async()=>(T&&na(t)?a.applyMergeableChanges:a.applyChanges)(t)))}else await A((async()=>{try{const n=e?.()??await t();(T&&na(n)?a.setMergeableContent:a.setContent)(n)}catch(a){i?.(a)}}))})),L),stopAutoLoad:()=>(f&&(s(d),d=void 0,f=0),L),save:async a=>(1!=p&&(p=2,await L.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&L.save((()=>a))})),L),stopAutoSave:()=>(y(E,a.delListener),E=void 0,L),schedule:async(...a)=>(h(W(ea,w),...a),await(async()=>{if(!W(ta,w)){for(Y(ta,w,1);!l((a=W(ea,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}Y(ta,w,0)}var a})(),L),getStore:()=>a,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(L[c]=()=>r),M(L)},ia="store",oa=(a,t,e,n,s,[i],o,c,r)=>{const[l,y,w,E]=Q(t,o,s);return sa(a,(async()=>await E((async()=>(await l(),aa((await y(i,f))[p]?.[ia]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[ia]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,c],c)},ca=(a,t,e,n,s,[i,o,[c,r,y]],w,E,u,T)=>{const[g,v,m,A]=Q(t,w,s,T),h=async(a,t)=>await d(q(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await m(e,n,a[o],s,i,t)}))),C=async(a,t)=>r?await m(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await A((async()=>{await g();const a=await(async()=>I(L(await d(q(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!x(a[1])))))(),t=await(async()=>c?(await v(y,f))[p]:{})();return x(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await g(),l(t)){const[t,e]=a();await h(t),await C(e)}else{const[a,e]=t();await h(a,!0),await C(e,!0)}}))),e,n,s,!1,[u,E],E)},ra="json",la="autoLoadIntervalSeconds",ya="rowIdColumnName",wa="tableId",Ea="tableName",ua={mode:ra,[la]:1},da={load:0,save:0,[Ea]:e+"_values"},pa=(a,t,e,n)=>{const s=H();return $(a,((a,i)=>{const o=E(_(P(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||n(i,o[0])||Y(s,i,o)})),s},fa="pragma ",Ta="data_version",ga="schema_version",va=(a,t,n,s,i,o,c,l,y="getDb",u)=>{let d,p,T;const[v,m,A,L]=(a=>{const t=(a=>P(ua,w(a)?{storeTableName:a}:a??{}))(a),n=t[la];if(t.mode==ra){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=E(_(P(da,o)),0,B(da)),r=c[2],l=J(r);return[0,n,[pa(s,{[wa]:null,[ya]:f},wa,(a=>U(l,a)&&a==r)),pa(i,{[Ea]:null,[ya]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(v?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(fa+Ta))[0][Ta],e=(await n(fa+ga))[0][ga],s=(await n(g+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&s==(T??=s)||(a(),d=t,p=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,A,R(L),l,y,u)};a.createLibSqlPersister=(a,t,e,n,s)=>va(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,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=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>c.all(a),E="_",f="_id",g=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",m=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),A=a=>0==d(a),T=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),O=Object,R=a=>O.getPrototypeOf(a),S=O.entries,D=O.keys,I=O.freeze,M=(a=[])=>O.fromEntries(a),P=(...a)=>O.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>h(S(a),(([a,e])=>t(e,a))),x=a=>O.values(a),j=a=>d(D(a)),B=a=>(a=>!l(a)&&y(R(a),(a=>a==O.prototype||l(R(a))),(()=>!0)))(a)&&0==j(a),q=a=>new Map(a),H=a=>[...a?.keys()??[]],Y=(a,t)=>a?.get(t),$=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>l(e)?(N(a,t),a):a?.set(t,e),G=(a,t,e,n)=>(b(a,t)?n?.(Y(a,t)):k(a,t,e()),Y(a,t)),J=(a,t,e,n=k)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),U=a=>new Set(Array.isArray(a)||l(a)?a:[a]),W=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=v+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,e,i)=>{const o=q();return[async()=>J(o,M(await p(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(v+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(o,t,J(G(o,t,q),e,((a,t,e)=>{e!=Y(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(o,t))),async(t,e)=>((a,t)=>!l(Y(Y(o,a),t)))(t,e)?M(T(h(await a(Q+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!B(t)))):{},async(t,e,c,r,y,w=!1)=>{const u=U();F(c??{},(a=>h(D(a??{}),(a=>W(u,a)))));const d=L(u);if(!w&&y&&A(d)&&b(o,t))return await a("DROP "+z+g(t)),void k(o,t);if(A(d)||b(o,t)){const s=Y(o,t),i=U(H(s));await p([...h(d,(async e=>{N(i,e)||(await a(K+g(t)+"ADD"+g(e)),k(s,e,n))})),...!w&&r?h(L(i),(async n=>{n!=e&&(await a(K+g(t)+"DROP"+g(n)),k(s,n))})):[]])}else await a("CREATE "+z+g(t)+"("+g(e)+` PRIMARY KEY ON CONFLICT REPLACE${m(h(d,(a=>s+g(a))))});`),k(o,t,q([[e,n],...h(d,(a=>[a,n]))]));if(w)l(c)?await a(V+g(t)+Z+" 1"):await p(F(c,(async(n,s)=>{l(n)?await a(V+g(t)+Z+g(e)+"=?",[s]):A(d)||await ta(a,t,e,D(n),[s,...x(n)],i)})));else if(A(d))b(o,t)&&await a(V+g(t)+Z+" 1");else{const n=T(H(Y(o,t)),(a=>a!=e)),s=[],r=[];F(c??{},((a,t)=>{C(s,t,...h(n,(t=>a?.[t]))),C(r,t)})),await ta(a,t,e,n,s,i),await a(V+g(t)+Z+g(e)+"NOT IN("+ea(r)+")",r)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ta=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+g(t)+"("+g(e)+m(h(i,(a=>s+g(a))))+")VALUES"+u(o(`,(?${o(",?",d(i))})`,d(c)/(d(i)+1)),1)+(r?"ON CONFLICT("+g(e)+")DO UPDATE SET"+m(h(i,(a=>g(a)+"=excluded."+g(a))),s):n),h(c,(a=>a??null))),ea=a=>m(h(a,(()=>"?")),s),na=JSON.parse,sa=q(),ia=q(),oa=(a,t,e,n,s,i,o,c={},r=[])=>{let u,d,p,E=0;G(sa,r,(()=>0)),G(ia,r,(()=>[]));const[f,g,v,m]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!B(a)||!B(t)])(o,a),h=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),A=t=>{(f&&w(t?.[0])?1===t?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async(e,n)=>await h((async()=>{try{A(await t())}catch(t){i?.(t),a.setContent([e,n])}})),startAutoLoad:async(a={},e={})=>(await T.stopAutoLoad().load(a,e),d=n((async(a,e)=>{const n=e?.();await h((async()=>{try{A(n??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(s(d),d=void 0),T),isAutoLoading:()=>!l(d),save:async a=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(p,a.delListener),p=void 0,T),isAutoSaving:()=>!l(p),schedule:async(...a)=>(C(Y(ia,r),...a),await(async()=>{if(!Y(sa,r)){for(k(sa,r,1);!l((a=Y(ia,r),u=a.shift()));)try{await u()}catch(a){i?.(a)}k(sa,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return I(T)},ca="store",ra=(a,t,e,n,s,[i],o,c,r,l)=>{const[y,w,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await y(),na((await w(i,f))[E]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,f,{[E]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?O.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[r]:()=>c},c)},la=(a,t,e,n,s,[i,o,[c,r,y]],w,u,d,g)=>{const[v,m,h,A]=aa(t,w,s,g),C=async(a,t)=>await p($(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await h(e,n,a[o],s,i,t)}))),b=async(a,t)=>r?await h(y,f,{[E]:a},!0,!0,t):null;return oa(a,(async()=>await A((async()=>{await v();const a=await(async()=>M(T(await p($(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>c?(await m(y,f))[E]:{})();return B(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),l(t)){const[t,e]=a();await C(t),await b(e)}else{const[a,e]=t();await C(a,!0),await b(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},ya="json",wa="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",pa="tableName",Ea={mode:ya,[wa]:1},fa={load:0,save:0,[pa]:e+"_values"},ga=(a,t,e,n)=>{const s=q();return F(a,((a,i)=>{const o=u(x(P(t,w(a)?{[e]:a}:a)),0,j(t));l(o[0])||n(i,o[0])||k(s,i,o)})),s},va="pragma ",ma="data_version",ha="schema_version",Aa=(a,t,n,s,i,o,c,l,y="getDb",d)=>{let p,E,g;const[m,h,A,T]=(a=>{const t=(a=>P(Ea,w(a)?{storeTableName:a}:a??{}))(a),n=t[wa];if(t.mode==ya){const{storeTableName:a=e}=t;return[1,n,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=u(x(P(fa,o)),0,j(fa)),r=c[2],l=U(r);return[0,n,[ga(s,{[da]:null,[ua]:f},da,(a=>W(l,a)&&a==r)),ga(i,{[pa]:null,[ua]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>W(l,t)&&t==r)),c],l]})(t);return(m?ra:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+ma))[0][ma],e=(await n(va+ha))[0][ha],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(E??=e)&&s==(g??=s)||(a(),p=t,E=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),p=E=null,i(t)}),c,A,L(T),l,y,d)};a.createLibSqlPersister=(a,t,e,n,s)=>Aa(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),n,s,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 t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a="",s=e(a),o=t=>null==t,n=(t,e,a)=>o(t)?a?.():e(t),r=t=>e(t)==s,i=t=>t.length,c=Object,y=t=>c.getPrototypeOf(t),d=c.keys,l=c.freeze,p=t=>(t=>!o(t)&&n(y(t),(t=>t==c.prototype||o(y(t))),(()=>!0)))(t)&&0==(t=>i(d(t)))(t),g=t=>JSON.stringify(t,((t,e)=>e instanceof Map?c.fromEntries([...e]):e)),h=JSON.parse,u="/store",f=t=>new Map(t),v=(t,e)=>t?.get(e),w=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},C=(t,e,a,s)=>{var o,n;return o=t,n=e,o?.has(n)?s?.(v(t,e)):w(t,e,a()),v(t,e)},b=f(),m=f(),P=t=>r(t?.[0]),S="message";t.createPartyKitPersister=(t,e,s,c)=>{const{host:y,room:d}=e.partySocketOptions,{storeProtocol:f="https",storePath:A=u,messagePrefix:L=a}={...r(s)?{storeProtocol:s}:s},M=f+"://"+y+"/parties/"+e.name+"/"+d+A,T=async t=>await(await fetch(M,{...t?{method:"PUT",body:g(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,s,r,i,c,[y,d]=[],g=[])=>{let h,u,f,S=0,A=0;C(b,g,(()=>0)),C(m,g,(()=>[]));const[L,M,T,O]=((t,e)=>!t||o(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!p(t)||!p(e)]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([,[[,t],[,e]]])=>!p(t)||!p(e)])(c,t),x=async t=>(2!=S&&(S=1,await j.schedule((async()=>{await t(),S=0}))),j),j={load:async(a,s)=>await x((async()=>{try{const a=await e();(L&&P(a)?t.setMergeableContent:t.setContent)(a)}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},o={})=>(j.stopAutoLoad(),await j.load(a,o),A=1,f=s((async(a,s)=>{if(s){const e=s();await x((async()=>(L&&P(e)?t.applyMergeableChanges:t.applyChanges)(e)))}else await x((async()=>{try{const s=a?.()??await e();(L&&P(s)?t.setMergeableContent:t.setContent)(s)}catch(t){i?.(t)}}))})),j),stopAutoLoad:()=>(A&&(r(f),f=void 0,A=0),j),save:async t=>(1!=S&&(S=2,await j.schedule((async()=>{try{await a(M,t)}catch(t){i?.(t)}S=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),h=t.addDidFinishTransactionListener((()=>{const t=T();O(t)&&j.save((()=>t))})),j),stopAutoSave:()=>(n(h,t.delListener),h=void 0,j),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(v(m,g),...t),await(async()=>{if(!v(b,g)){for(w(b,g,1);!o((t=v(m,g),u=t.shift()));)try{await u()}catch(t){i?.(t)}w(b,g,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return y&&(j[y]=()=>d),l(j)})(t,(async()=>await T()),(async(t,a)=>{var s,o;a?e.send((s=L,o=a(),s+"s"+(r(o)?o:g(o)))):await T(t())}),(t=>{const a=e=>n(((t,e,a)=>{const s=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],h((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(L,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return e.addEventListener(S,a),a}),(t=>{e.removeEventListener(S,t)}),c,!1,["getConnection",e])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterPartyKitClient={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a="",s=e(a),o=t=>null==t,n=(t,e,a)=>o(t)?a?.():e(t),r=t=>e(t)==s,i=t=>t.length,c=Object,d=t=>c.getPrototypeOf(t),y=c.keys,p=c.freeze,l=t=>(t=>!o(t)&&n(d(t),(t=>t==c.prototype||o(d(t))),(()=>!0)))(t)&&0==(t=>i(y(t)))(t),g=t=>JSON.stringify(t,((t,e)=>e instanceof Map?c.fromEntries([...e]):e)),u=JSON.parse,h="/store",f=t=>new Map(t),v=(t,e)=>t?.get(e),w=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},C=(t,e,a,s)=>{var o,n;return o=t,n=e,o?.has(n)?s?.(v(t,e)):w(t,e,a()),v(t,e)},b=f(),m=f(),A="message";t.createPartyKitPersister=(t,e,s,c)=>{const{host:d,room:y}=e.partySocketOptions,{storeProtocol:f="https",storePath:P=h,messagePrefix:S=a}={...r(s)?{storeProtocol:s}:s},L=f+"://"+d+"/parties/"+e.name+"/"+y+P,M=async t=>await(await fetch(L,{...t?{method:"PUT",body:g(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,s,i,c,d,y={},g=[])=>{let u,h,f,A=0;C(b,g,(()=>0)),C(m,g,(()=>[]));const[P,S,L,M]=((t,e)=>!t||o(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!l(t)||!l(e)]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([,[[,t],[,e]]])=>!l(t)||!l(e)])(d,t),T=async t=>(2!=A&&(A=1,await x.schedule((async()=>{await t(),A=0}))),x),O=e=>{(P&&r(e?.[0])?1===e?.[1][2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},x={load:async(a,s)=>await T((async()=>{try{O(await e())}catch(e){c?.(e),t.setContent([a,s])}})),startAutoLoad:async(t={},a={})=>(await x.stopAutoLoad().load(t,a),h=s((async(t,a)=>{const s=a?.();await T((async()=>{try{O(s??t?.()??await e())}catch(t){c?.(t)}}))})),x),stopAutoLoad:()=>(h&&(i(h),h=void 0),x),isAutoLoading:()=>!o(h),save:async t=>(1!=A&&(A=2,await x.schedule((async()=>{try{await a(S,t)}catch(t){c?.(t)}A=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),f=t.addDidFinishTransactionListener((()=>{const t=L();M(t)&&x.save((()=>t))})),x),stopAutoSave:()=>(n(f,t.delListener),f=void 0,x),isAutoSaving:()=>!o(f),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(v(m,g),...t),await(async()=>{if(!v(b,g)){for(w(b,g,1);!o((t=v(m,g),u=t.shift()));)try{await u()}catch(t){c?.(t)}w(b,g,0)}var t})(),x),getStore:()=>t,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...y};return p(x)})(t,(async()=>await M()),(async(t,a)=>{var s,o;a?e.send((s=S,o=a(),s+"s"+(r(o)?o:g(o)))):await M(t())}),(t=>{const a=e=>n(((t,e,a)=>{const s=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],u((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(S,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return e.addEventListener(A,a),a}),(t=>{e.removeEventListener(A,t)}),c,!1,{getConnection:()=>e})}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterPartyKitClient={});
@@ -0,0 +1 @@
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>r.all(a),g="_",f="_id",E=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",h=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==d(a),T=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,N=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),L=Object,S=a=>L.getPrototypeOf(a),R=L.entries,D=L.keys,I=L.freeze,P=(a=[])=>L.fromEntries(a),M=(...a)=>L.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>m(R(a),(([a,e])=>t(e,a))),x=a=>L.values(a),j=a=>d(D(a)),B=a=>(a=>!l(a)&&y(S(a),(a=>a==L.prototype||l(S(a))),(()=>!0)))(a)&&0==j(a),H=a=>new Map(a),Y=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),k=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),G=(a,t,e)=>l(e)?(O(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(b(a,t)?n?.($(a,t)):G(a,t,e()),$(a,t)),U=(a,t,e,n=G)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),W=a=>new Set(Array.isArray(a)||l(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,q="DELETE FROM",Q=v+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,e,i)=>{const o=H();return[async()=>U(o,P(await p(m(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,P(m(await a(v+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>G(o,t,U(J(o,t,H),e,((a,t,e)=>{e!=$(a,t)&&G(a,t,e)}),((a,t)=>G(a,t))))),((a,t)=>G(o,t))),async(t,e)=>((a,t)=>!l($($(o,a),t)))(t,e)?P(T(m(await a(Q+E(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!B(t)))):{},async(t,e,r,c,y,w=!1)=>{const u=W();F(r??{},(a=>m(D(a??{}),(a=>z(u,a)))));const d=N(u);if(!w&&y&&A(d)&&b(o,t))return await a("DROP "+K+E(t)),void G(o,t);if(A(d)||b(o,t)){const s=$(o,t),i=W(Y(s));await p([...m(d,(async e=>{O(i,e)||(await a(V+E(t)+"ADD"+E(e)),G(s,e,n))})),...!w&&c?m(N(i),(async n=>{n!=e&&(await a(V+E(t)+"DROP"+E(n)),G(s,n))})):[]])}else await a("CREATE "+K+E(t)+"("+E(e)+` PRIMARY KEY ON CONFLICT REPLACE${h(m(d,(a=>s+E(a))))});`),G(o,t,H([[e,n],...m(d,(a=>[a,n]))]));if(w)l(r)?await a(q+E(t)+Z+" 1"):await p(F(r,(async(n,s)=>{l(n)?await a(q+E(t)+Z+E(e)+"=?",[s]):A(d)||await ta(a,t,e,D(n),[s,...x(n)],i)})));else if(A(d))b(o,t)&&await a(q+E(t)+Z+" 1");else{const n=T(Y($(o,t)),(a=>a!=e)),s=[],c=[];F(r??{},((a,t)=>{C(s,t,...m(n,(t=>a?.[t]))),C(c,t)})),await ta(a,t,e,n,s,i),await a(q+E(t)+Z+E(e)+"NOT IN("+ea(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ta=async(a,t,e,i,r,c=!0)=>await a("INSERT "+(c?n:"OR REPLACE ")+"INTO"+E(t)+"("+E(e)+h(m(i,(a=>s+E(a))))+")VALUES"+u(o(`,(?${o(",?",d(i))})`,d(r)/(d(i)+1)),1)+(c?"ON CONFLICT("+E(e)+")DO UPDATE SET"+h(m(i,(a=>E(a)+"=excluded."+E(a))),s):n),m(r,(a=>a??null))),ea=a=>h(m(a,(()=>"?")),s),na=JSON.parse,sa=H(),ia=H(),oa=(a,t,e,n,s,i,o,r={},c=[])=>{let u,d,p,g=0;J(sa,c,(()=>0)),J(ia,c,(()=>[]));const[f,E,v,h]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!B(a)||!B(t)])(o,a),m=async a=>(2!=g&&(g=1,await T.schedule((async()=>{await a(),g=0}))),T),A=t=>{(f&&w(t?.[0])?1===t?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async(e,n)=>await m((async()=>{try{A(await t())}catch(t){i?.(t),a.setContent([e,n])}})),startAutoLoad:async(a={},e={})=>(await T.stopAutoLoad().load(a,e),d=n((async(a,e)=>{const n=e?.();await m((async()=>{try{A(n??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(s(d),d=void 0),T),isAutoLoading:()=>!l(d),save:async a=>(1!=g&&(g=2,await T.schedule((async()=>{try{await e(E,a)}catch(a){i?.(a)}g=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();h(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(p,a.delListener),p=void 0,T),isAutoSaving:()=>!l(p),schedule:async(...a)=>(C($(ia,c),...a),await(async()=>{if(!$(sa,c)){for(G(sa,c,1);!l((a=$(ia,c),u=a.shift()));)try{await u()}catch(a){i?.(a)}G(sa,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...r};return I(T)},ra="store",ca=(a,t,e,n,s,[i],o,r,c,l)=>{const[y,w,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await y(),na((await w(i,f))[g]?.[ra]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,f,{[g]:{[ra]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[c]:()=>r},r)},la=(a,t,e,n,s,[i,o,[r,c,y]],w,u,d,E)=>{const[v,h,m,A]=aa(t,w,s,E),C=async(a,t)=>await p(k(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await m(e,n,a[o],s,i,t)}))),b=async(a,t)=>c?await m(y,f,{[g]:a},!0,!0,t):null;return oa(a,(async()=>await A((async()=>{await v();const a=await(async()=>P(T(await p(k(i,(async([a,t],e)=>[a,await h(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>r?(await h(y,f))[g]:{})();return B(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),l(t)){const[t,e]=a();await C(t),await b(e)}else{const[a,e]=t();await C(a,!0),await b(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},ya="json",wa="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",pa="tableName",ga={mode:ya,[wa]:1},fa={load:0,save:0,[pa]:e+"_values"},Ea=(a,t,e,n)=>{const s=H();return F(a,((a,i)=>{const o=u(x(M(t,w(a)?{[e]:a}:a)),0,j(t));l(o[0])||n(i,o[0])||G(s,i,o)})),s},va="pragma ",ha="data_version",ma="schema_version",Aa=(a,t,n,s,i,o,r,l,y="getDb",d)=>{let p,g,E;const[h,m,A,T]=(a=>{const t=(a=>M(ga,w(a)?{storeTableName:a}:a??{}))(a),n=t[wa];if(t.mode==ya){const{storeTableName:a=e}=t;return[1,n,[a],W(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=u(x(M(fa,o)),0,j(fa)),c=r[2],l=W(c);return[0,n,[Ea(s,{[da]:null,[ua]:f},da,(a=>z(l,a)&&a==c)),Ea(i,{[pa]:null,[ua]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>z(l,t)&&t==c)),r],l]})(t);return(h?ca:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+ha))[0][ha],e=(await n(va+ma))[0][ma],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(g??=e)&&s==(E??=s)||(a(),p=t,g=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),p=g=null,i(t)}),r,A,N(T),l,y,d)};a.createPowerSyncPersister=(a,t,e,n,s,i=!1)=>Aa(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)m(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,t,"getPowerSync",i)},"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 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a=e(""),n=clearInterval,s=t=>null==t,o=(t,e,a)=>s(t)?a?.():e(t),r=Object,c=t=>r.getPrototypeOf(t),i=r.keys,y=r.freeze,l=t=>(t=>!s(t)&&o(c(t),(t=>t==r.prototype||s(c(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),d=JSON.parse,p=t=>new Map(t),g=(t,e)=>t?.get(e),h=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},u=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(g(t,e)):h(t,e,a()),g(t,e)},f=p(),w=p(),v=t=>{return n=t?.[0],e(n)==a;var n},C=t=>t.headers.get("ETag");t.createRemotePersister=(t,e,a,c=5,i)=>{let p;return((t,e,a,n,r,c,i,[d,p]=[],C=[])=>{let b,A,S,T=0,M=0;u(f,C,(()=>0)),u(w,C,(()=>[]));const[m,L,O,x]=((t,e)=>!t||s(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!l(t)||!l(e)]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([,[[,t],[,e]]])=>!l(t)||!l(e)])(i,t),P=async t=>(2!=T&&(T=1,await j.schedule((async()=>{await t(),T=0}))),j),j={load:async(a,n)=>await P((async()=>{try{const a=await e();(m&&v(a)?t.setMergeableContent:t.setContent)(a)}catch{t.setContent([a,n])}})),startAutoLoad:async(a={},s={})=>(j.stopAutoLoad(),await j.load(a,s),M=1,S=n((async(a,n)=>{if(n){const e=n();await P((async()=>(m&&v(e)?t.applyMergeableChanges:t.applyChanges)(e)))}else await P((async()=>{try{const n=a?.()??await e();(m&&v(n)?t.setMergeableContent:t.setContent)(n)}catch(t){c?.(t)}}))})),j),stopAutoLoad:()=>(M&&(r(S),S=void 0,M=0),j),save:async t=>(1!=T&&(T=2,await j.schedule((async()=>{try{await a(L,t)}catch(t){c?.(t)}T=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),b=t.addDidFinishTransactionListener((()=>{const t=O();x(t)&&j.save((()=>t))})),j),stopAutoSave:()=>(o(b,t.delListener),b=void 0,j),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(g(w,C),...t),await(async()=>{if(!g(f,C)){for(h(f,C,1);!s((t=g(w,C),A=t.shift()));)try{await A()}catch(t){c?.(t)}h(f,C,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(j[d]=()=>p),y(j)})(t,(async()=>{const t=await fetch(e);return p=C(t),d(await t.text())}),(async t=>{return await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(e,{method:"HEAD"}),n=C(a);s(p)||s(n)||n==p||(p=n,t())}),1e3*c)),(t=>n(t)),i,!1,["getUrls",[e,a]])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a=e(""),s=clearInterval,n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=Object,i=t=>r.getPrototypeOf(t),c=r.keys,y=r.freeze,d=t=>(t=>!n(t)&&o(i(t),(t=>t==r.prototype||n(i(t))),(()=>!0)))(t)&&0==(t=>c(t).length)(t),l=JSON.parse,p=t=>new Map(t),g=(t,e)=>t?.get(e),u=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},h=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(g(t,e)):u(t,e,a()),g(t,e)},f=p(),v=p(),w=t=>t.headers.get("ETag");t.createRemotePersister=(t,i,c,p=5,A)=>{let C;return((t,s,r,i,c,l,p,w={},A=[])=>{let C,b,S,T=0;h(f,A,(()=>0)),h(v,A,(()=>[]));const[m,L,M,O]=((t,e)=>!t||n(e.getMergeableContent)?[0,e.getContent,e.getTransactionChanges,([t,e])=>!d(t)||!d(e)]:[1,e.getMergeableContent,e.getTransactionMergeableChanges,([,[[,t],[,e]]])=>!d(t)||!d(e)])(p,t),x=async t=>(2!=T&&(T=1,await j.schedule((async()=>{await t(),T=0}))),j),P=s=>{var n;(m&&(n=s?.[0],e(n)==a)?1===s?.[1][2]?t.applyMergeableChanges:t.setMergeableContent:1===s?.[2]?t.applyChanges:t.setContent)(s)},j={load:async(e,a)=>await x((async()=>{try{P(await s())}catch(s){l?.(s),t.setContent([e,a])}})),startAutoLoad:async(t={},e={})=>(await j.stopAutoLoad().load(t,e),b=i((async(t,e)=>{const a=e?.();await x((async()=>{try{P(a??t?.()??await s())}catch(t){l?.(t)}}))})),j),stopAutoLoad:()=>(b&&(c(b),b=void 0),j),isAutoLoading:()=>!n(b),save:async t=>(1!=T&&(T=2,await j.schedule((async()=>{try{await r(L,t)}catch(t){l?.(t)}T=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),S=t.addDidFinishTransactionListener((()=>{const t=M();O(t)&&j.save((()=>t))})),j),stopAutoSave:()=>(o(S,t.delListener),S=void 0,j),isAutoSaving:()=>!n(S),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(g(v,A),...t),await(async()=>{if(!g(f,A)){for(u(f,A,1);!n((t=g(v,A),C=t.shift()));)try{await C()}catch(t){l?.(t)}u(f,A,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...w};return y(j)})(t,(async()=>{const t=await fetch(i);return C=w(t),l(await t.text())}),(async t=>{return await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const e=await fetch(i,{method:"HEAD"}),a=w(e);n(C)||n(a)||a==C||(C=a,t())}),1e3*p)),(t=>s(t)),A,!1,{getUrls:()=>[i,c]})}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",g=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),h=a=>0==E(a),A=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,C=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),b=Object,N=a=>b.getPrototypeOf(a),S=b.entries,D=b.keys,M=b.freeze,I=(a=[])=>b.fromEntries(a),_=(...a)=>b.assign({},...a),P=(a,t)=>t in a,F=(a,t)=>v(S(a),(([a,e])=>t(e,a))),$=a=>b.values(a),B=a=>E(D(a)),W=a=>(a=>!l(a)&&y(N(a),(a=>a==b.prototype||l(N(a))),(()=>!0)))(a)&&0==B(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),k=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),q=(a,t,e)=>l(e)?(O(a,t),a):a?.set(t,e),Y=(a,t,e,n)=>(R(a,t)?n?.(H(a,t)):q(a,t,e()),H(a,t)),G=(a,t,e,n=q)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>P(t,e)?0:n(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),V=m+"*FROM",z="FROM pragma_table_",K="WHERE",Q=(a,t,e,i)=>{const o=j();return[async()=>G(o,I(await d(v(await a("SELECT name "+z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(v(await a(m+" name,type "+z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>q(o,t,G(Y(o,t,j),e,((a,t,e)=>{e!=H(a,t)&&q(a,t,e)}),((a,t)=>q(a,t))))),((a,t)=>q(o,t))),async(t,e)=>((a,t)=>!l(H(H(o,a),t)))(t,e)?I(A(v(await a(V+T(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!W(t)))):{},async(t,e,c,r,y,w=!1)=>{const u=J();F(c??{},(a=>v(D(a??{}),(a=>U(u,a)))));const E=C(u);if(!w&&y&&h(E)&&R(o,t))return await a("DROP TABLE"+T(t)),void q(o,t);if(h(E)||R(o,t)){const s=H(o,t),i=J(x(s));await d([...v(E,(async e=>{O(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),q(s,e,n))})),...!w&&r?v(C(i),(async n=>{n!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(n)}`),q(s,n))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${g(v(E,(a=>s+T(a))))});`),q(o,t,j([[e,n],...v(E,(a=>[a,n]))]));if(w)l(c)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d(F(c,(async(n,s)=>{l(n)?await a("DELETE FROM"+T(t)+K+T(e)+"=?",[s]):h(E)||await X(a,t,e,D(n),[s,...$(n)],i)})));else if(h(E))R(o,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=A(x(H(o,t)),(a=>a!=e)),s=[],i=[];F(c??{},((a,t)=>{L(s,t,...v(n,(t=>a?.[t]))),L(i,t)})),await X(a,t,e,n,s),await a("DELETE FROM"+T(t)+K+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+g(v(i,(a=>s+T(a))))+")VALUES"+u(o(`,(?${o(",?",E(i))})`,E(c)/(E(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+g(v(i,(a=>T(a)+"=excluded."+T(a))),s):n),v(c,(a=>a??null))),Z=a=>g(v(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),na=a=>w(a?.[0]),sa=(a,t,e,n,s,i,o,[c,r]=[],w=[])=>{let u,E,d,p=0,f=0;Y(ta,w,(()=>0)),Y(ea,w,(()=>[]));const[T,m,g,v]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!W(a)||!W(t)])(o,a),h=async a=>(2!=p&&(p=1,await A.schedule((async()=>{await a(),p=0}))),A),A={load:async(e,n)=>await h((async()=>{try{const e=await t();(T&&na(e)?a.setMergeableContent:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),f=1,d=n((async(e,n)=>{if(n){const t=n();await h((async()=>(T&&na(t)?a.applyMergeableChanges:a.applyChanges)(t)))}else await h((async()=>{try{const n=e?.()??await t();(T&&na(n)?a.setMergeableContent:a.setContent)(n)}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(f&&(s(d),d=void 0,f=0),A),save:async a=>(1!=p&&(p=2,await A.schedule((async()=>{try{await e(m,a)}catch(a){i?.(a)}p=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),u=a.addDidFinishTransactionListener((()=>{const a=g();v(a)&&A.save((()=>a))})),A),stopAutoSave:()=>(y(u,a.delListener),u=void 0,A),schedule:async(...a)=>(L(H(ea,w),...a),await(async()=>{if(!H(ta,w)){for(q(ta,w,1);!l((a=H(ea,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}q(ta,w,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>r),M(A)},ia="store",oa=(a,t,e,n,s,[i],o,c,r)=>{const[l,y,w,u]=Q(t,o,s);return sa(a,(async()=>await u((async()=>(await l(),aa((await y(i,f))[p]?.[ia]??"null"))))),(async a=>await u((async()=>{var t;await l(),await w(i,f,{[p]:{[ia]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,c],c)},ca=(a,t,e,n,s,[i,o,[c,r,y]],w,u,E,T)=>{const[m,g,v,h]=Q(t,w,s,T),L=async(a,t)=>await d(k(o,(async([e,n,s,i],o)=>{t&&!P(a,o)||await v(e,n,a[o],s,i,t)}))),R=async(a,t)=>r?await v(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await h((async()=>{await m();const a=await(async()=>I(A(await d(k(i,(async([a,t],e)=>[a,await g(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>c?(await g(y,f))[p]:{})();return W(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await m(),l(t)){const[t,e]=a();await L(t),await R(e)}else{const[a,e]=t();await L(a,!0),await R(e,!0)}}))),e,n,s,!1,[E,u],u)},ra="json",la="autoLoadIntervalSeconds",ya="rowIdColumnName",wa="tableId",ua="tableName",Ea={mode:ra,[la]:1},da={load:0,save:0,[ua]:e+"_values"},pa=(a,t,e,n)=>{const s=j();return F(a,((a,i)=>{const o=u($(_(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||n(i,o[0])||q(s,i,o)})),s},fa="pragma ",Ta="data_version",ma="schema_version",ga=(a,t,n,s,i,o,c,l,y="getDb",E)=>{let d,p,T;const[g,v,h,A]=(a=>{const t=(a=>_(Ea,w(a)?{storeTableName:a}:a??{}))(a),n=t[la];if(t.mode==ra){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=u($(_(da,o)),0,B(da)),r=c[2],l=J(r);return[0,n,[pa(s,{[wa]:null,[ya]:f},wa,(a=>U(l,a)&&a==r)),pa(i,{[ua]:null,[ya]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ua,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(g?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(fa+Ta))[0][Ta],e=(await n(fa+ma))[0][ma],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&s==(T??=s)||(a(),d=t,p=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),s((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,h,C(A),l,y,E)};a.createSqliteWasmPersister=(a,t,e,n,s,i)=>ga(a,n,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,n,s)=>a(s)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),s,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s="",n=",",i=t(s),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>c.all(a),E="_",f="_id",m=a=>`"${a.replace(/"/g,'""')}"`,g="SELECT",v=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),A=a=>0==d(a),T=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),b=(a,t)=>a?.has(t)??!1,N=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),L=Object,R=a=>L.getPrototypeOf(a),S=L.entries,D=L.keys,I=L.freeze,M=(a=[])=>L.fromEntries(a),_=(...a)=>L.assign({},...a),P=(a,t)=>t in a,F=(a,t)=>h(S(a),(([a,e])=>t(e,a))),j=a=>L.values(a),x=a=>d(D(a)),k=a=>(a=>!l(a)&&y(R(a),(a=>a==L.prototype||l(R(a))),(()=>!0)))(a)&&0==x(a),q=a=>new Map(a),B=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),H=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>l(e)?(O(a,t),a):a?.set(t,e),$=(a,t,e,s)=>(b(a,t)?s?.(W(a,t)):Y(a,t,e()),W(a,t)),G=(a,t,e,s=Y)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>P(t,e)?0:s(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),V="TABLE",z="ALTER "+V,K="DELETE FROM",Q=g+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,e,i)=>{const o=q();return[async()=>G(o,M(await p(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(g+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(o,t,G($(o,t,q),e,((a,t,e)=>{e!=W(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(o,t))),async(t,e)=>((a,t)=>!l(W(W(o,a),t)))(t,e)?M(T(h(await a(Q+m(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!k(t)))):{},async(t,e,c,r,y,w=!1)=>{const u=J();F(c??{},(a=>h(D(a??{}),(a=>U(u,a)))));const d=N(u);if(!w&&y&&A(d)&&b(o,t))return await a("DROP "+V+m(t)),void Y(o,t);if(A(d)||b(o,t)){const n=W(o,t),i=J(B(n));await p([...h(d,(async e=>{O(i,e)||(await a(z+m(t)+"ADD"+m(e)),Y(n,e,s))})),...!w&&r?h(N(i),(async s=>{s!=e&&(await a(z+m(t)+"DROP"+m(s)),Y(n,s))})):[]])}else await a("CREATE "+V+m(t)+"("+m(e)+` PRIMARY KEY ON CONFLICT REPLACE${v(h(d,(a=>n+m(a))))});`),Y(o,t,q([[e,s],...h(d,(a=>[a,s]))]));if(w)l(c)?await a(K+m(t)+Z+" 1"):await p(F(c,(async(s,n)=>{l(s)?await a(K+m(t)+Z+m(e)+"=?",[n]):A(d)||await ta(a,t,e,D(s),[n,...j(s)],i)})));else if(A(d))b(o,t)&&await a(K+m(t)+Z+" 1");else{const s=T(B(W(o,t)),(a=>a!=e)),n=[],r=[];F(c??{},((a,t)=>{C(n,t,...h(s,(t=>a?.[t]))),C(r,t)})),await ta(a,t,e,s,n,i),await a(K+m(t)+Z+m(e)+"NOT IN("+ea(r)+")",r)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},ta=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?s:"OR REPLACE ")+"INTO"+m(t)+"("+m(e)+v(h(i,(a=>n+m(a))))+")VALUES"+u(o(`,(?${o(",?",d(i))})`,d(c)/(d(i)+1)),1)+(r?"ON CONFLICT("+m(e)+")DO UPDATE SET"+v(h(i,(a=>m(a)+"=excluded."+m(a))),n):s),h(c,(a=>a??null))),ea=a=>v(h(a,(()=>"?")),n),sa=JSON.parse,na=q(),ia=q(),oa=(a,t,e,s,n,i,o,c={},r=[])=>{let u,d,p,E=0;$(na,r,(()=>0)),$(ia,r,(()=>[]));const[f,m,g,v]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!k(a)||!k(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!k(a)||!k(t)])(o,a),h=async a=>(2!=E&&(E=1,await T.schedule((async()=>{await a(),E=0}))),T),A=t=>{(f&&w(t?.[0])?1===t?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async(e,s)=>await h((async()=>{try{A(await t())}catch(t){i?.(t),a.setContent([e,s])}})),startAutoLoad:async(a={},e={})=>(await T.stopAutoLoad().load(a,e),d=s((async(a,e)=>{const s=e?.();await h((async()=>{try{A(s??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(n(d),d=void 0),T),isAutoLoading:()=>!l(d),save:async a=>(1!=E&&(E=2,await T.schedule((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=g();v(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(p,a.delListener),p=void 0,T),isAutoSaving:()=>!l(p),schedule:async(...a)=>(C(W(ia,r),...a),await(async()=>{if(!W(na,r)){for(Y(na,r,1);!l((a=W(ia,r),u=a.shift()));)try{await u()}catch(a){i?.(a)}Y(na,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...c};return I(T)},ca="store",ra=(a,t,e,s,n,[i],o,c,r,l)=>{const[y,w,u,d]=aa(t,o,n,l);return oa(a,(async()=>await d((async()=>(await y(),sa((await w(i,f))[E]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,f,{[E]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,!1,{[r]:()=>c},c)},la=(a,t,e,s,n,[i,o,[c,r,y]],w,u,d,m)=>{const[g,v,h,A]=aa(t,w,n,m),C=async(a,t)=>await p(H(o,(async([e,s,n,i],o)=>{t&&!P(a,o)||await h(e,s,a[o],n,i,t)}))),b=async(a,t)=>r?await h(y,f,{[E]:a},!0,!0,t):null;return oa(a,(async()=>await A((async()=>{await g();const a=await(async()=>M(T(await p(H(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!k(a[1])))))(),t=await(async()=>c?(await v(y,f))[E]:{})();return k(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await g(),l(t)){const[t,e]=a();await C(t),await b(e)}else{const[a,e]=t();await C(a,!0),await b(e,!0)}}))),e,s,n,!1,{[d]:()=>u},u)},ya="json",wa="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",pa="tableName",Ea={mode:ya,[wa]:1},fa={load:0,save:0,[pa]:e+"_values"},ma=(a,t,e,s)=>{const n=q();return F(a,((a,i)=>{const o=u(j(_(t,w(a)?{[e]:a}:a)),0,x(t));l(o[0])||s(i,o[0])||Y(n,i,o)})),n},ga="pragma ",va="data_version",ha="schema_version",Aa=(a,t,s,n,i,o,c,l,y="getDb",d)=>{let p,E,m;const[v,h,A,T]=(a=>{const t=(a=>_(Ea,w(a)?{storeTableName:a}:a??{}))(a),s=t[wa];if(t.mode==ya){const{storeTableName:a=e}=t;return[1,s,[a],J(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=u(j(_(fa,o)),0,x(fa)),r=c[2],l=J(r);return[0,s,[ma(n,{[da]:null,[ua]:f},da,(a=>U(l,a)&&a==r)),ma(i,{[pa]:null,[ua]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(v?ra:la)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ga+va))[0][va],e=(await s(ga+ha))[0][ha],n=(await s(g+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(E??=e)&&n==(m??=n)||(a(),p=t,E=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),n((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),p=E=null,i(t)}),c,A,N(T),l,y,d)};a.createSqliteWasmPersister=(a,t,e,s,n,i)=>Aa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,g="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==u(a),h=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),C=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],O=(a,t)=>a?.delete(t),b=Object,N=a=>b.getPrototypeOf(a),S=b.entries,D=b.keys,M=b.freeze,I=(a=[])=>b.fromEntries(a),P=(...a)=>b.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>m(S(a),(([a,e])=>t(e,a))),_=a=>b.values(a),B=a=>u(D(a)),H=a=>(a=>!l(a)&&y(N(a),(a=>a==b.prototype||l(N(a))),(()=>!0)))(a)&&0==B(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),Y=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>l(e)?(O(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(C(a,t)?n?.(W(a,t)):k(a,t,e()),W(a,t)),G=(a,t,e,n=k)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),z=g+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const o=j();return[async()=>G(o,I(await d(m(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(g+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(o,t,G(q(o,t,j),e,((a,t,e)=>{e!=W(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(o,t))),async(t,e)=>((a,t)=>!l(W(W(o,a),t)))(t,e)?I(h(m(await a(z+T(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!H(t)))):{},async(t,e,c,r,y,w=!1)=>{const E=J();$(c??{},(a=>m(D(a??{}),(a=>U(E,a)))));const u=R(E);if(!w&&y&&A(u)&&C(o,t))return await a("DROP TABLE"+T(t)),void k(o,t);if(A(u)||C(o,t)){const s=W(o,t),i=J(x(s));await d([...m(u,(async e=>{O(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),k(s,e,n))})),...!w&&r?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(n)}`),k(s,n))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(u,(a=>s+T(a))))});`),k(o,t,j([[e,n],...m(u,(a=>[a,n]))]));if(w)l(c)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(c,(async(n,s)=>{l(n)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[s]):A(u)||await X(a,t,e,D(n),[s,..._(n)],i)})));else if(A(u))C(o,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=h(x(W(o,t)),(a=>a!=e)),s=[],i=[];$(c??{},((a,t)=>{L(s,t,...m(n,(t=>a?.[t]))),L(i,t)})),await X(a,t,e,n,s),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+v(m(i,(a=>s+T(a))))+")VALUES"+E(o(`,(?${o(",?",u(i))})`,u(c)/(u(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+v(m(i,(a=>T(a)+"=excluded."+T(a))),s):n),m(c,(a=>a??null))),Z=a=>v(m(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),na=a=>w(a?.[0]),sa=(a,t,e,n,s,i,o,[c,r]=[],w=[])=>{let E,u,d,p=0,f=0;q(ta,w,(()=>0)),q(ea,w,(()=>[]));const[T,g,v,m]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!H(a)||!H(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!H(a)||!H(t)])(o,a),A=async a=>(2!=p&&(p=1,await h.schedule((async()=>{await a(),p=0}))),h),h={load:async(e,n)=>await A((async()=>{try{const e=await t();(T&&na(e)?a.setMergeableContent:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(h.stopAutoLoad(),await h.load(e,s),f=1,d=n((async(e,n)=>{if(n){const t=n();await A((async()=>(T&&na(t)?a.applyMergeableChanges:a.applyChanges)(t)))}else await A((async()=>{try{const n=e?.()??await t();(T&&na(n)?a.setMergeableContent:a.setContent)(n)}catch(a){i?.(a)}}))})),h),stopAutoLoad:()=>(f&&(s(d),d=void 0,f=0),h),save:async a=>(1!=p&&(p=2,await h.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),h),startAutoSave:async()=>(await h.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&h.save((()=>a))})),h),stopAutoSave:()=>(y(E,a.delListener),E=void 0,h),schedule:async(...a)=>(L(W(ea,w),...a),await(async()=>{if(!W(ta,w)){for(k(ta,w,1);!l((a=W(ea,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}k(ta,w,0)}var a})(),h),getStore:()=>a,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(h[c]=()=>r),M(h)},ia="store",oa=(a,t,e,n,s,[i],o,c,r)=>{const[l,y,w,E]=Q(t,o,s);return sa(a,(async()=>await E((async()=>(await l(),aa((await y(i,f))[p]?.[ia]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[ia]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,c],c)},ca=(a,t,e,n,s,[i,o,[c,r,y]],w,E,u,T)=>{const[g,v,m,A]=Q(t,w,s,T),L=async(a,t)=>await d(Y(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await m(e,n,a[o],s,i,t)}))),C=async(a,t)=>r?await m(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await A((async()=>{await g();const a=await(async()=>I(h(await d(Y(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!H(a[1])))))(),t=await(async()=>c?(await v(y,f))[p]:{})();return H(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await g(),l(t)){const[t,e]=a();await L(t),await C(e)}else{const[a,e]=t();await L(a,!0),await C(e,!0)}}))),e,n,s,!1,[u,E],E)},ra="json",la="autoLoadIntervalSeconds",ya="rowIdColumnName",wa="tableId",Ea="tableName",ua={mode:ra,[la]:1},da={load:0,save:0,[Ea]:e+"_values"},pa=(a,t,e,n)=>{const s=j();return $(a,((a,i)=>{const o=E(_(P(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||n(i,o[0])||k(s,i,o)})),s},fa="pragma ",Ta="data_version",ga="schema_version",va=(a,t,n,s,i,o,c,l,y="getDb",u)=>{let d,p,T;const[v,m,A,h]=(a=>{const t=(a=>P(ua,w(a)?{storeTableName:a}:a??{}))(a),n=t[la];if(t.mode==ra){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=E(_(P(da,o)),0,B(da)),r=c[2],l=J(r);return[0,n,[pa(s,{[wa]:null,[ya]:f},wa,(a=>U(l,a)&&a==r)),pa(i,{[Ea]:null,[ya]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(v?oa:ca)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(fa+Ta))[0][Ta],e=(await n(fa+ga))[0][ga],s=(await n(g+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&s==(T??=s)||(a(),d=t,p=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,A,R(h),l,y,u)},ma="change";a.createSqlite3Persister=(a,t,e,n,s)=>va(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new c(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(ma,e),e}),(a=>t.off(ma,a)),n,s,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).TinyBasePersisterSqlite3={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>r.all(a),f="_",E="_id",g=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",m=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),A=a=>0==d(a),T=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],b=(a,t)=>a?.delete(t),L=Object,S=a=>L.getPrototypeOf(a),R=L.entries,D=L.keys,I=L.freeze,M=(a=[])=>L.fromEntries(a),P=(...a)=>L.assign({},...a),_=(a,t)=>t in a,F=(a,t)=>h(R(a),(([a,e])=>t(e,a))),j=a=>L.values(a),x=a=>d(D(a)),B=a=>(a=>!l(a)&&y(S(a),(a=>a==L.prototype||l(S(a))),(()=>!0)))(a)&&0==x(a),H=a=>new Map(a),Y=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),k=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),q=(a,t,e)=>l(e)?(b(a,t),a):a?.set(t,e),G=(a,t,e,n)=>(N(a,t)?n?.($(a,t)):q(a,t,e()),$(a,t)),J=(a,t,e,n=q)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>_(t,e)?0:n(a,e))),a),U=a=>new Set(Array.isArray(a)||l(a)?a:[a]),W=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=v+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,e,i)=>{const o=H();return[async()=>J(o,M(await p(h(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,M(h(await a(v+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>q(o,t,J(G(o,t,H),e,((a,t,e)=>{e!=$(a,t)&&q(a,t,e)}),((a,t)=>q(a,t))))),((a,t)=>q(o,t))),async(t,e)=>((a,t)=>!l($($(o,a),t)))(t,e)?M(T(h(await a(Q+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!B(t)))):{},async(t,e,r,c,y,w=!1)=>{const u=U();F(r??{},(a=>h(D(a??{}),(a=>W(u,a)))));const d=O(u);if(!w&&y&&A(d)&&N(o,t))return await a("DROP "+z+g(t)),void q(o,t);if(A(d)||N(o,t)){const s=$(o,t),i=U(Y(s));await p([...h(d,(async e=>{b(i,e)||(await a(K+g(t)+"ADD"+g(e)),q(s,e,n))})),...!w&&c?h(O(i),(async n=>{n!=e&&(await a(K+g(t)+"DROP"+g(n)),q(s,n))})):[]])}else await a("CREATE "+z+g(t)+"("+g(e)+` PRIMARY KEY ON CONFLICT REPLACE${m(h(d,(a=>s+g(a))))});`),q(o,t,H([[e,n],...h(d,(a=>[a,n]))]));if(w)l(r)?await a(V+g(t)+Z+" 1"):await p(F(r,(async(n,s)=>{l(n)?await a(V+g(t)+Z+g(e)+"=?",[s]):A(d)||await ta(a,t,e,D(n),[s,...j(n)],i)})));else if(A(d))N(o,t)&&await a(V+g(t)+Z+" 1");else{const n=T(Y($(o,t)),(a=>a!=e)),s=[],c=[];F(r??{},((a,t)=>{C(s,t,...h(n,(t=>a?.[t]))),C(c,t)})),await ta(a,t,e,n,s,i),await a(V+g(t)+Z+g(e)+"NOT IN("+ea(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ta=async(a,t,e,i,r,c=!0)=>await a("INSERT "+(c?n:"OR REPLACE ")+"INTO"+g(t)+"("+g(e)+m(h(i,(a=>s+g(a))))+")VALUES"+u(o(`,(?${o(",?",d(i))})`,d(r)/(d(i)+1)),1)+(c?"ON CONFLICT("+g(e)+")DO UPDATE SET"+m(h(i,(a=>g(a)+"=excluded."+g(a))),s):n),h(r,(a=>a??null))),ea=a=>m(h(a,(()=>"?")),s),na=JSON.parse,sa=H(),ia=H(),oa=(a,t,e,n,s,i,o,r={},c=[])=>{let u,d,p,f=0;G(sa,c,(()=>0)),G(ia,c,(()=>[]));const[E,g,v,m]=((a,t)=>!a||l(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([a,t])=>!B(a)||!B(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,a],[,t]]])=>!B(a)||!B(t)])(o,a),h=async a=>(2!=f&&(f=1,await T.schedule((async()=>{await a(),f=0}))),T),A=t=>{(E&&w(t?.[0])?1===t?.[1][2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T={load:async(e,n)=>await h((async()=>{try{A(await t())}catch(t){i?.(t),a.setContent([e,n])}})),startAutoLoad:async(a={},e={})=>(await T.stopAutoLoad().load(a,e),d=n((async(a,e)=>{const n=e?.();await h((async()=>{try{A(n??a?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(d&&(s(d),d=void 0),T),isAutoLoading:()=>!l(d),save:async a=>(1!=f&&(f=2,await T.schedule((async()=>{try{await e(g,a)}catch(a){i?.(a)}f=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),p=a.addDidFinishTransactionListener((()=>{const a=v();m(a)&&T.save((()=>a))})),T),stopAutoSave:()=>(y(p,a.delListener),p=void 0,T),isAutoSaving:()=>!l(p),schedule:async(...a)=>(C($(ia,c),...a),await(async()=>{if(!$(sa,c)){for(q(sa,c,1);!l((a=$(ia,c),u=a.shift()));)try{await u()}catch(a){i?.(a)}q(sa,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({}),...r};return I(T)},ra="store",ca=(a,t,e,n,s,[i],o,r,c,l)=>{const[y,w,u,d]=aa(t,o,s,l);return oa(a,(async()=>await d((async()=>(await y(),na((await w(i,E))[f]?.[ra]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,E,{[f]:{[ra]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,{[c]:()=>r},r)},la=(a,t,e,n,s,[i,o,[r,c,y]],w,u,d,g)=>{const[v,m,h,A]=aa(t,w,s,g),C=async(a,t)=>await p(k(o,(async([e,n,s,i],o)=>{t&&!_(a,o)||await h(e,n,a[o],s,i,t)}))),N=async(a,t)=>c?await h(y,E,{[f]:a},!0,!0,t):null;return oa(a,(async()=>await A((async()=>{await v();const a=await(async()=>M(T(await p(k(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>r?(await m(y,E))[f]:{})();return B(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),l(t)){const[t,e]=a();await C(t),await N(e)}else{const[a,e]=t();await C(a,!0),await N(e,!0)}}))),e,n,s,!1,{[d]:()=>u},u)},ya="json",wa="autoLoadIntervalSeconds",ua="rowIdColumnName",da="tableId",pa="tableName",fa={mode:ya,[wa]:1},Ea={load:0,save:0,[pa]:e+"_values"},ga=(a,t,e,n)=>{const s=H();return F(a,((a,i)=>{const o=u(j(P(t,w(a)?{[e]:a}:a)),0,x(t));l(o[0])||n(i,o[0])||q(s,i,o)})),s},va="pragma ",ma="data_version",ha="schema_version",Aa=(a,t,n,s,i,o,r,l,y="getDb",d)=>{let p,f,g;const[m,h,A,T]=(a=>{const t=(a=>P(fa,w(a)?{storeTableName:a}:a??{}))(a),n=t[wa];if(t.mode==ya){const{storeTableName:a=e}=t;return[1,n,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,r=u(j(P(Ea,o)),0,x(Ea)),c=r[2],l=U(c);return[0,n,[ga(s,{[da]:null,[ua]:E},da,(a=>W(l,a)&&a==c)),ga(i,{[pa]:null,[ua]:E,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>W(l,t)&&t==c)),r],l]})(t);return(m?ca:la)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+ma))[0][ma],e=(await n(va+ha))[0][ha],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(f??=e)&&s==(g??=s)||(a(),p=t,f=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),p=f=null,i(t)}),r,A,O(T),l,y,d)},Ta="change";a.createSqlite3Persister=(a,t,e,n,s)=>Aa(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new r(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(Ta,e),e}),(a=>t.off(Ta,a)),n,s,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).TinyBasePersisterSqlite3={});