tinybase 5.0.0-beta.10 → 5.0.0-beta.11

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