tinybase 5.0.0-beta.2 → 5.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) 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-partykit-client.cjs +1 -1
  20. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  24. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  26. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  30. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  31. package/lib/cjs/persisters.cjs +1 -1
  32. package/lib/cjs/persisters.cjs.gz +0 -0
  33. package/lib/cjs/store.cjs +1 -1
  34. package/lib/cjs/store.cjs.gz +0 -0
  35. package/lib/cjs/tinybase.cjs +1 -1
  36. package/lib/cjs/tinybase.cjs.gz +0 -0
  37. package/lib/cjs/tools.cjs +1 -1
  38. package/lib/cjs/tools.cjs.gz +0 -0
  39. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  40. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  41. package/lib/cjs-es6/mergeable-store.cjs +1 -1
  42. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  44. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  70. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters.cjs +1 -1
  72. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  73. package/lib/cjs-es6/store.cjs +1 -1
  74. package/lib/cjs-es6/store.cjs.gz +0 -0
  75. package/lib/cjs-es6/tinybase.cjs +1 -1
  76. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  77. package/lib/cjs-es6/tools.cjs +1 -1
  78. package/lib/cjs-es6/tools.cjs.gz +0 -0
  79. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  80. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  81. package/lib/debug/mergeable-store.js +158 -187
  82. package/lib/debug/persisters/persister-automerge.js +42 -43
  83. package/lib/debug/persisters/persister-browser.js +28 -18
  84. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +77 -54
  85. package/lib/debug/persisters/persister-electric-sql.js +77 -54
  86. package/lib/debug/persisters/persister-expo-sqlite-next.js +77 -54
  87. package/lib/debug/persisters/persister-expo-sqlite.js +77 -54
  88. package/lib/debug/persisters/persister-file.js +27 -18
  89. package/lib/debug/persisters/persister-indexed-db.js +28 -20
  90. package/lib/debug/persisters/persister-partykit-client.js +26 -23
  91. package/lib/debug/persisters/persister-partykit-server.js +8 -18
  92. package/lib/debug/persisters/persister-remote.js +28 -18
  93. package/lib/debug/persisters/persister-sqlite-wasm.js +77 -54
  94. package/lib/debug/persisters/persister-sqlite3.js +77 -54
  95. package/lib/debug/persisters/persister-yjs.js +44 -42
  96. package/lib/debug/persisters.js +27 -18
  97. package/lib/debug/store.js +50 -68
  98. package/lib/debug/tinybase.js +180 -205
  99. package/lib/debug/tools.js +9 -11
  100. package/lib/debug/ui-react-dom.js +73 -86
  101. package/lib/es6/mergeable-store.js +1 -1
  102. package/lib/es6/mergeable-store.js.gz +0 -0
  103. package/lib/es6/persisters/persister-automerge.js +1 -1
  104. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  105. package/lib/es6/persisters/persister-browser.js +1 -1
  106. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  107. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  108. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  109. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  110. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  111. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  112. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  113. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  114. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  115. package/lib/es6/persisters/persister-file.js +1 -1
  116. package/lib/es6/persisters/persister-file.js.gz +0 -0
  117. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  118. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  119. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  120. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  121. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  122. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  123. package/lib/es6/persisters/persister-remote.js +1 -1
  124. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  125. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  126. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  127. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  128. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  129. package/lib/es6/persisters/persister-yjs.js +1 -1
  130. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  131. package/lib/es6/persisters.js +1 -1
  132. package/lib/es6/persisters.js.gz +0 -0
  133. package/lib/es6/store.js +1 -1
  134. package/lib/es6/store.js.gz +0 -0
  135. package/lib/es6/tinybase.js +1 -1
  136. package/lib/es6/tinybase.js.gz +0 -0
  137. package/lib/es6/tools.js +1 -1
  138. package/lib/es6/tools.js.gz +0 -0
  139. package/lib/es6/ui-react-dom-debug.js +1 -1
  140. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  141. package/lib/mergeable-store.js +1 -1
  142. package/lib/mergeable-store.js.gz +0 -0
  143. package/lib/persisters/persister-automerge.js +1 -1
  144. package/lib/persisters/persister-automerge.js.gz +0 -0
  145. package/lib/persisters/persister-browser.js +1 -1
  146. package/lib/persisters/persister-browser.js.gz +0 -0
  147. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  148. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  149. package/lib/persisters/persister-electric-sql.js +1 -1
  150. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  151. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  152. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  153. package/lib/persisters/persister-expo-sqlite.js +1 -1
  154. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  155. package/lib/persisters/persister-file.js +1 -1
  156. package/lib/persisters/persister-file.js.gz +0 -0
  157. package/lib/persisters/persister-indexed-db.js +1 -1
  158. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  159. package/lib/persisters/persister-partykit-client.js +1 -1
  160. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  161. package/lib/persisters/persister-partykit-server.js +1 -1
  162. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  163. package/lib/persisters/persister-remote.js +1 -1
  164. package/lib/persisters/persister-remote.js.gz +0 -0
  165. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  166. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  167. package/lib/persisters/persister-sqlite3.js +1 -1
  168. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  169. package/lib/persisters/persister-yjs.js +1 -1
  170. package/lib/persisters/persister-yjs.js.gz +0 -0
  171. package/lib/persisters.js +1 -1
  172. package/lib/persisters.js.gz +0 -0
  173. package/lib/store.js +1 -1
  174. package/lib/store.js.gz +0 -0
  175. package/lib/tinybase.js +1 -1
  176. package/lib/tinybase.js.gz +0 -0
  177. package/lib/tools.js +1 -1
  178. package/lib/tools.js.gz +0 -0
  179. package/lib/types/mergeable-store.d.ts +37 -13
  180. package/lib/types/persisters/persister-partykit-server.d.ts +7 -8
  181. package/lib/types/persisters.d.ts +47 -27
  182. package/lib/types/store.d.ts +153 -111
  183. package/lib/types/tools.d.ts +2 -2
  184. package/lib/types/with-schemas/mergeable-store.d.ts +40 -13
  185. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +10 -11
  186. package/lib/types/with-schemas/persisters.d.ts +78 -42
  187. package/lib/types/with-schemas/store.d.ts +165 -136
  188. package/lib/types/with-schemas/tools.d.ts +2 -2
  189. package/lib/umd/mergeable-store.js +1 -1
  190. package/lib/umd/mergeable-store.js.gz +0 -0
  191. package/lib/umd/persisters/persister-automerge.js +1 -1
  192. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  193. package/lib/umd/persisters/persister-browser.js +1 -1
  194. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  195. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  196. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  197. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  198. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  199. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  200. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  201. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  202. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  203. package/lib/umd/persisters/persister-file.js +1 -1
  204. package/lib/umd/persisters/persister-file.js.gz +0 -0
  205. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  206. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  207. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  208. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  209. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  210. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  211. package/lib/umd/persisters/persister-remote.js +1 -1
  212. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  213. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  214. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  215. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  216. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  217. package/lib/umd/persisters/persister-yjs.js +1 -1
  218. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  219. package/lib/umd/persisters.js +1 -1
  220. package/lib/umd/persisters.js.gz +0 -0
  221. package/lib/umd/store.js +1 -1
  222. package/lib/umd/store.js.gz +0 -0
  223. package/lib/umd/tinybase.js +1 -1
  224. package/lib/umd/tinybase.js.gz +0 -0
  225. package/lib/umd/tools.js +1 -1
  226. package/lib/umd/tools.js.gz +0 -0
  227. package/lib/umd/ui-react-dom-debug.js +1 -1
  228. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  229. package/lib/umd-es6/mergeable-store.js +1 -1
  230. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  231. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  232. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  233. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  234. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  235. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  236. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  237. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  238. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  239. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  240. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  241. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  242. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  243. package/lib/umd-es6/persisters/persister-file.js +1 -1
  244. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  245. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  246. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  247. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  248. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  249. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  250. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  251. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  252. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  253. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  254. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  255. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  256. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  257. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  258. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  259. package/lib/umd-es6/persisters.js +1 -1
  260. package/lib/umd-es6/persisters.js.gz +0 -0
  261. package/lib/umd-es6/store.js +1 -1
  262. package/lib/umd-es6/store.js.gz +0 -0
  263. package/lib/umd-es6/tinybase.js +1 -1
  264. package/lib/umd-es6/tinybase.js.gz +0 -0
  265. package/lib/umd-es6/tools.js +1 -1
  266. package/lib/umd-es6/tools.js.gz +0 -0
  267. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  268. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  269. package/package.json +26 -22
  270. package/readme.md +2 -2
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=Object,n=t=>s.getPrototypeOf(t),o=s.keys,r=s.freeze,i=t=>(t=>!e(t)&&a(n(t),(t=>t==s.prototype||e(n(t))),(()=>!0)))(t)&&0==(t=>o(t).length)(t),c=JSON.parse,y=t=>new Map(t),d=(t,e)=>t?.get(e),u=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},l=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||u(t,e,a()),d(t,e)},f=y(),p=y(),g="storage",w=globalThis.window,h=(t,n,o,y)=>((t,s,n,o,c,y,[g,w]=[],h=[])=>{let v,S,A,L=0,m=0;l(f,h,(()=>0)),l(p,h,(()=>[]));const T=async t=>(2!=L&&(L=1,await b.schedule((async()=>{await t(),L=0}))),b),b={load:async(e,a)=>await T((async()=>{try{t.setContent(await s())}catch{t.setContent([e,a])}})),startAutoLoad:async(e={},a={})=>(b.stopAutoLoad(),await b.load(e,a),m=1,A=o((async(e,a)=>{if(a){const e=a();await T((async()=>t.setTransactionChanges(e)))}else await T((async()=>{try{t.setContent(e?.()??await s())}catch(t){y?.(t)}}))})),b),stopAutoLoad:()=>(m&&(c(A),A=void 0,m=0),b),save:async e=>(1!=L&&(L=2,await b.schedule((async()=>{try{await n(t.getContent,e)}catch(t){y?.(t)}L=0}))),b),startAutoSave:async()=>(await b.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();i(a)&&i(s)||b.save((()=>[a,s]))})),b),stopAutoSave:()=>(a(v,t.delListener),v=void 0,b),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(d(p,h),...t),await(async()=>{if(!d(f,h)){for(u(f,h,1);!e((t=d(p,h),S=t.shift()));)try{await S()}catch(t){y?.(t)}u(f,h,0)}var t})(),b),getStore:()=>t,destroy:()=>b.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return g&&(b[g]=()=>w),r(b)})(t,(async()=>c(o.getItem(n))),(async t=>{return o.setItem(n,(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?s.fromEntries([...e]):e))));var e}),(t=>{const e=e=>{e.storageArea===o&&e.key===n&&t((()=>c(e.newValue)))};return w.addEventListener(g,e),e}),(t=>w.removeEventListener(g,t)),y,["getStorageName",n]);t.createLocalPersister=(t,e,a)=>h(t,e,localStorage,a),t.createSessionPersister=(t,e,a)=>h(t,e,sessionStorage,a)},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterBrowser={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,a=t(""),s=e=>null==e,n=(e,t,a)=>s(e)?a?.():t(e),o=Object,r=e=>o.getPrototypeOf(e),i=o.keys,c=o.freeze,y=e=>(e=>!s(e)&&n(r(e),(e=>e==o.prototype||s(r(e))),(()=>!0)))(e)&&0==(e=>i(e).length)(e),l=JSON.parse,d=e=>new Map(e),u=(e,t)=>e?.get(t),p=(e,t,a)=>{return s(a)?(n=e,o=t,n?.delete(o),e):e?.set(t,a);var n,o},g=(e,t,a)=>{var s,n;return s=e,n=t,s?.has(n)||p(e,t,a()),u(e,t)},f=d(),h=d(),w="storage",v=globalThis.window,S=(e,r,i,d)=>((e,o,r,i,l,d,w,[v,S]=[],A=[])=>{let L,C,b,m=0,T=0;g(f,A,(()=>0)),g(h,A,(()=>[]));const M=(w?e.getMergeableContent:null)??e.getContent,O=e.getTransactionChanges,P=async e=>(2!=m&&(m=1,await x.schedule((async()=>{await e(),m=0}))),x),x={load:async(s,n)=>await P((async()=>{try{const s=await o();(w&&(e=>t(e)==a)(s[0])?e.applyMergeableChanges:e.setContent)(s)}catch{e.setContent([s,n])}})),startAutoLoad:async(t={},a={})=>(x.stopAutoLoad(),await x.load(t,a),T=1,b=i((async(t,a)=>{if(a){const t=a();await P((async()=>e.applyChanges(t)))}else await P((async()=>{try{e.setContent(t?.()??await o())}catch(e){d?.(e)}}))})),x),stopAutoLoad:()=>(T&&(l(b),b=void 0,T=0),x),save:async e=>(1!=m&&(m=2,await x.schedule((async()=>{try{await r(M,e)}catch(e){d?.(e)}m=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),L=e.addDidFinishTransactionListener((()=>{const[e,t]=O();y(e)&&y(t)||x.save((()=>[e,t]))})),x),stopAutoSave:()=>(n(L,e.delListener),L=void 0,x),schedule:async(...e)=>(((e,...t)=>{e.push(...t)})(u(h,A),...e),await(async()=>{if(!u(f,A)){for(p(f,A,1);!s((e=u(h,A),C=e.shift()));)try{await C()}catch(e){d?.(e)}p(f,A,0)}var e})(),x),getStore:()=>e,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return v&&(x[v]=()=>S),c(x)})(e,(async()=>l(i.getItem(r))),(async e=>{return i.setItem(r,(t=e(),JSON.stringify(t,((e,t)=>t instanceof Map?o.fromEntries([...t]):t))));var t}),(e=>{const t=t=>{t.storageArea===i&&t.key===r&&e((()=>l(t.newValue)))};return v.addEventListener(w,t),t}),(e=>v.removeEventListener(w,e)),d,!1,["getStorageName",r]);e.createLocalPersister=(e,t,a)=>S(e,t,localStorage,a),e.createSessionPersister=(e,t,a)=>S(e,t,sessionStorage,a)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterBrowser={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>o.all(a),u="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==E(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),C=Object,S=a=>C.getPrototypeOf(a),D=C.entries,g=C.keys,b=C.freeze,I=(a=[])=>C.fromEntries(a),F=(...a)=>C.assign({},...a),M=(a,t)=>v(D(a),(([a,e])=>t(e,a))),P=a=>C.values(a),$=a=>E(g(a)),_=a=>(a=>!r(a)&&l(S(a),(a=>a==C.prototype||r(S(a))),(()=>!0)))(a)&&0==$(a),B=a=>new Map(a),W=a=>[...a?.keys()??[]],x=(a,t)=>a?.get(t),H=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),U=(a,t,e)=>(O(a,t)||j(a,t,e()),x(a,t)),Y=(a,t,e,s=j)=>(M(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),q=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",z="WHERE",K=(a,t,e)=>{const n=B();return[async()=>Y(n,I(await d(v(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+Q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(v(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,Y(U(n,t,B),e,((a,t,e)=>{e!=x(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!r(x(x(n,a),t)))(t,e)?I(L(v(await a(G+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!_(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=k();M(i??{},(a=>v(g(a??{}),(a=>q(y,a)))));const w=R(y);if(!l&&c&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void j(n,t);if(A(w)||O(n,t)){const s=x(n,t),i=k(W(s));await d([...v(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),j(s,e,""))})),...!l&&o?v(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),j(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${m(v(w,(a=>s+p(a))))});`),j(n,t,B([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await d(M(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+z+p(e)+"=?",[n]):A(w)||await V(a,t,e,g(s),[n,...P(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=L(W(x(n,t)),(a=>a!=e)),o=[],c=[];M(i??{},((a,t)=>{h(o,t,...v(s,(t=>a?.[t]))),h(c,t)})),await V(a,t,e,s,o),await a("DELETE FROM"+p(t)+z+p(e)+"NOT IN("+Q(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},V=async(a,t,e,n,o)=>await a("INSERT INTO"+p(t)+"("+p(e)+m(v(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(o)/(E(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+m(v(n,(a=>p(a)+"=excluded."+p(a))),s),o),Q=a=>m(v(a,(()=>"?")),s),X=JSON.parse,Z=B(),aa=B(),ta=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,E,d,u=0,f=0;U(Z,y,(()=>0)),U(aa,y,(()=>[]));const p=async a=>(2!=u&&(u=1,await T.schedule((async()=>{await a(),u=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,d=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(d),d=void 0,f=0),T),save:async t=>(1!=u&&(u=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}u=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(x(aa,y),...a),await(async()=>{if(!x(Z,y)){for(j(Z,y,1);!r((a=x(aa,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(Z,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),b(T)},ea="store",sa=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,E]=K(t,o,n);return ta(a,(async()=>await E((async()=>(await l(),X((await y(i,f))[u]?.[ea]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[u]:{[ea]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,c],c)},na=(a,t,e,s,n,[i,o,[c,l,y]],w,E,p)=>{const[T,m,v,A]=K(t,w,n),h=async(a,t)=>await d(H(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await v(e,s,c,n,i,t)}))),O=async(a,t)=>l?await v(y,f,{[u]:a},!0,!0,t):null;return ta(a,(async()=>await A((async()=>{await T();const a=await(async()=>I(L(await d(H(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>c?(await m(y,f))[u]:{})();return _(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await T(),r(t)){const[t,e]=a();await h(t),await O(e)}else{const[a,e]=t();await h(a,!0),await O(e,!0)}}))),e,s,n,[p,E],E)},ia="json",oa="autoLoadIntervalSeconds",ca="rowIdColumnName",ra="tableId",la="tableName",ya={mode:ia,[oa]:1},wa={load:0,save:0,[la]:e+"_values"},Ea=(a,t,e,s)=>{const n=B();return M(a,((a,i)=>{const o=w(P(F(t,y(a)?{[e]:a}:a)),0,$(t));r(o[0])||s(i,o[0])||j(n,i,o)})),n},da="pragma ",ua="data_version",fa="schema_version",pa=(a,t,s,n,i,o,r,l,E="getDb")=>{let d,u,p;const[m,v,A,L]=(a=>{const t=(a=>F(ya,y(a)?{storeTableName:a}:a??{}))(a),s=t[oa];if(t.mode==ia){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(P(F(wa,o)),0,$(wa)),r=c[2],l=k(r);return[0,s,[Ea(n,{[ra]:null,[ca]:f},ra,(a=>q(l,a)&&a==r)),Ea(i,{[la]:null,[ca]:f,deleteEmptyColumns:0,deleteEmptyTable:0},la,((a,t)=>q(l,t)&&t==r)),c],l]})(t);return(m?sa:na)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(da+ua))[0][ua],e=(await s(da+fa))[0][fa],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(u??=e)&&n==(p??=n)||(a(),d=t,u=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),d=u=null,i(t)}),r,A,R(L),l,E)};a.createCrSqliteWasmPersister=(a,t,e,s,n)=>pa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s="",n=",",i=t(s),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",v=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),L=a=>0==u(a),h=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,C=a=>[...a?.values()??[]],g=(a,t)=>a?.delete(t),N=Object,S=a=>N.getPrototypeOf(a),b=N.entries,D=N.keys,I=N.freeze,M=(a=[])=>N.fromEntries(a),P=(...a)=>N.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>A(b(a),(([a,e])=>t(e,a))),_=a=>N.values(a),B=a=>u(D(a)),W=a=>(a=>!l(a)&&y(S(a),(a=>a==N.prototype||l(S(a))),(()=>!0)))(a)&&0==B(a),x=a=>new Map(a),H=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),U=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>l(e)?(g(a,t),a):a?.set(t,e),k=(a,t,e)=>(R(a,t)||Y(a,t,e()),j(a,t)),q=(a,t,e,s=Y)=>($(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:s(a,e))),a),G=a=>new Set(Array.isArray(a)||l(a)?a:[a]),J=(a,t)=>a?.add(t),z=m+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const o=x();return[async()=>q(o,M(await d(A(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(m+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(o,t,q(k(o,t,x),e,((a,t,e)=>{e!=j(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(o,t))),async(t,e)=>((a,t)=>!l(j(j(o,a),t)))(t,e)?M(h(A(await a(z+T(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!W(t)))):{},async(t,e,c,r,y,w=!1)=>{const E=G();$(c??{},(a=>A(D(a??{}),(a=>J(E,a)))));const u=C(E);if(!w&&y&&L(u)&&R(o,t))return await a("DROP TABLE"+T(t)),void Y(o,t);if(L(u)||R(o,t)){const n=j(o,t),i=G(H(n));await d([...A(u,(async e=>{g(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),Y(n,e,s))})),...!w&&r?A(C(i),(async s=>{s!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(s)}`),Y(n,s))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${v(A(u,(a=>n+T(a))))});`),Y(o,t,x([[e,s],...A(u,(a=>[a,s]))]));if(w)l(c)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(c,(async(s,n)=>{l(s)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[n]):L(u)||await X(a,t,e,D(s),[n,..._(s)],i)})));else if(L(u))R(o,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const s=h(H(j(o,t)),(a=>a!=e)),n=[],i=[];$(c??{},((a,t)=>{O(n,t,...A(s,(t=>a?.[t]))),O(i,t)})),await X(a,t,e,s,n),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?s:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+v(A(i,(a=>n+T(a))))+")VALUES"+E(o(`,(?${o(",?",u(i))})`,u(c)/(u(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+v(A(i,(a=>T(a)+"=excluded."+T(a))),n):s),A(c,(a=>a??null))),Z=a=>v(A(a,(()=>"?")),n),aa=JSON.parse,ta=x(),ea=x(),sa=(a,t,e,s,n,i,o,[c,r]=[],E=[])=>{let u,d,p,f=0,T=0;k(ta,E,(()=>0)),k(ea,E,(()=>[]));const m=(o?a.getMergeableContent:null)??a.getContent,v=a.getTransactionChanges,A=async a=>(2!=f&&(f=1,await L.schedule((async()=>{await a(),f=0}))),L),L={load:async(e,s)=>await A((async()=>{try{const e=await t();(o&&w(e[0])?a.applyMergeableChanges:a.setContent)(e)}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(L.stopAutoLoad(),await L.load(e,n),T=1,p=s((async(e,s)=>{if(s){const t=s();await A((async()=>a.applyChanges(t)))}else await A((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),L),stopAutoLoad:()=>(T&&(n(p),p=void 0,T=0),L),save:async a=>(1!=f&&(f=2,await L.schedule((async()=>{try{await e(m,a)}catch(a){i?.(a)}f=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),u=a.addDidFinishTransactionListener((()=>{const[a,t]=v();W(a)&&W(t)||L.save((()=>[a,t]))})),L),stopAutoSave:()=>(y(u,a.delListener),u=void 0,L),schedule:async(...a)=>(O(j(ea,E),...a),await(async()=>{if(!j(ta,E)){for(Y(ta,E,1);!l((a=j(ea,E),d=a.shift()));)try{await d()}catch(a){i?.(a)}Y(ta,E,0)}var a})(),L),getStore:()=>a,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(L[c]=()=>r),I(L)},na="store",ia=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,E]=Q(t,o,n);return sa(a,(async()=>await E((async()=>(await l(),aa((await y(i,f))[p]?.[na]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[na]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,!1,[r,c],c)},oa=(a,t,e,s,n,[i,o,[c,r,y]],w,E,u,T)=>{const[m,v,A,L]=Q(t,w,n,T),O=async(a,t)=>await d(U(o,(async([e,s,n,i],o)=>{t&&!F(a,o)||await A(e,s,a[o],n,i,t)}))),R=async(a,t)=>r?await A(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await L((async()=>{await m();const a=await(async()=>M(h(await d(U(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>c?(await v(y,f))[p]:{})();return W(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await L((async()=>{if(await m(),l(t)){const[t,e]=a();await O(t),await R(e)}else{const[a,e]=t();await O(a,!0),await R(e,!0)}}))),e,s,n,!1,[u,E],E)},ca="json",ra="autoLoadIntervalSeconds",la="rowIdColumnName",ya="tableId",wa="tableName",Ea={mode:ca,[ra]:1},ua={load:0,save:0,[wa]:e+"_values"},da=(a,t,e,s)=>{const n=x();return $(a,((a,i)=>{const o=E(_(P(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||s(i,o[0])||Y(n,i,o)})),n},pa="pragma ",fa="data_version",Ta="schema_version",ma=(a,t,s,n,i,o,c,l,y="getDb",u)=>{let d,p,T;const[v,A,L,h]=(a=>{const t=(a=>P(Ea,w(a)?{storeTableName:a}:a??{}))(a),s=t[ra];if(t.mode==ca){const{storeTableName:a=e}=t;return[1,s,[a],G(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=E(_(P(ua,o)),0,B(ua)),r=c[2],l=G(r);return[0,s,[da(n,{[ya]:null,[la]:f},ya,(a=>J(l,a)&&a==r)),da(i,{[wa]:null,[la]:f,deleteEmptyColumns:0,deleteEmptyTable:0},wa,((a,t)=>J(l,t)&&t==r)),c],l]})(t);return(v?ia:oa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(pa+fa))[0][fa],e=(await s(pa+Ta))[0][Ta],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&n==(T??=n)||(a(),d=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,L,C(h),l,y,u)};a.createCrSqliteWasmPersister=(a,t,e,s,n)=>ma(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==E(a),h=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),b=Object,g=a=>b.getPrototypeOf(a),C=b.entries,S=b.keys,D=b.freeze,I=(a=[])=>b.fromEntries(a),F=(...a)=>b.assign({},...a),M=(a,t)=>m(C(a),(([a,e])=>t(e,a))),P=a=>b.values(a),$=a=>E(S(a)),_=a=>(a=>!r(a)&&l(g(a),(a=>a==b.prototype||r(g(a))),(()=>!0)))(a)&&0==$(a),B=a=>new Map(a),H=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),x=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),q=(a,t,e)=>(O(a,t)||W(a,t,e()),j(a,t)),Y=(a,t,e,s=W)=>(M(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J=T+"*FROM",U="FROM pragma_table_",z="WHERE",K=(a,t,e)=>{const n=B();return[async()=>Y(n,I(await u(m(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+Q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(T+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,Y(q(n,t,B),e,((a,t,e)=>{e!=j(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!r(j(j(n,a),t)))(t,e)?I(h(m(await a(J+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!_(t)))):{},async(t,e,i,c,o,l=!1)=>{const y=k();M(i??{},(a=>m(S(a??{}),(a=>G(y,a)))));const w=R(y);if(!l&&o&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void W(n,t);if(A(w)||O(n,t)){const s=j(n,t),i=k(H(s));await u([...m(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),W(s,e,""))})),...!l&&c?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),W(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(w,(a=>s+p(a))))});`),W(n,t,B([[e,""],...m(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await u(M(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+z+p(e)+"=?",[n]):A(w)||await V(a,t,e,S(s),[n,...P(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=h(H(j(n,t)),(a=>a!=e)),c=[],o=[];M(i??{},((a,t)=>{L(c,t,...m(s,(t=>a?.[t]))),L(o,t)})),await V(a,t,e,s,c),await a("DELETE FROM"+p(t)+z+p(e)+"NOT IN("+Q(o)+")",o)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},V=async(a,t,e,n,c)=>await a("INSERT INTO"+p(t)+"("+p(e)+v(m(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(c)/(E(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+v(m(n,(a=>p(a)+"=excluded."+p(a))),s),c),Q=a=>v(m(a,(()=>"?")),s),X=JSON.parse,Z=B(),aa=B(),ta=(a,t,e,s,n,i,[c,o]=[],y=[])=>{let w,E,u,d=0,f=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const p=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,u=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(u),u=void 0,f=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(L(j(aa,y),...a),await(async()=>{if(!j(Z,y)){for(W(Z,y,1);!r((a=j(aa,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Z,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>o),D(T)},ea="store",sa=(a,t,e,s,n,[i],c,o,r)=>{const[l,y,w,E]=K(t,c,n);return ta(a,(async()=>await E((async()=>(await l(),X((await y(i,f))[d]?.[ea]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[d]:{[ea]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},na=(a,t,e,s,n,[i,c,[o,l,y]],w,E,p)=>{const[T,v,m,A]=K(t,w,n),L=async(a,t)=>await u(x(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),O=async(a,t)=>l?await m(y,f,{[d]:a},!0,!0,t):null;return ta(a,(async()=>await A((async()=>{await T();const a=await(async()=>I(h(await u(x(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>o?(await v(y,f))[d]:{})();return _(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await T(),r(t)){const[t,e]=a();await L(t),await O(e)}else{const[a,e]=t();await L(a,!0),await O(e,!0)}}))),e,s,n,[p,E],E)},ia="json",ca="autoLoadIntervalSeconds",oa="rowIdColumnName",ra="tableId",la="tableName",ya={mode:ia,[ca]:1},wa={load:0,save:0,[la]:e+"_values"},Ea=(a,t,e,s)=>{const n=B();return M(a,((a,i)=>{const c=w(P(F(t,y(a)?{[e]:a}:a)),0,$(t));r(c[0])||s(i,c[0])||W(n,i,c)})),n},ua="pragma ",da="data_version",fa="schema_version",pa=(a,t,s,n,i,c,r,l,E="getDb")=>{let u,d,p;const[v,m,A,h]=(a=>{const t=(a=>F(ya,y(a)?{storeTableName:a}:a??{}))(a),s=t[ca];if(t.mode==ia){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=w(P(F(wa,c)),0,$(wa)),r=o[2],l=k(r);return[0,s,[Ea(n,{[ra]:null,[oa]:f},ra,(a=>G(l,a)&&a==r)),Ea(i,{[la]:null,[oa]:f,deleteEmptyColumns:0,deleteEmptyTable:0},la,((a,t)=>G(l,t)&&t==r)),o],l]})(t);return(v?sa:na)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ua+da))[0][da],e=(await s(ua+fa))[0][fa],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(d??=e)&&n==(p??=n)||(a(),u=t,d=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),u=d=null,i(t)}),r,A,R(h),l,E)};a.createElectricSqlPersister=(a,t,e,s,n)=>pa(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return s=({tablename:t})=>a(t),t.notifier.alias(e).forEach(s);var s}))),(a=>a()),s,n,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),c=(a,t)=>a.repeat(t),o=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",m=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),h=a=>0==u(a),L=(a,t)=>a.filter(t),g=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],C=(a,t)=>a?.delete(t),b=Object,N=a=>b.getPrototypeOf(a),S=b.entries,D=b.keys,I=b.freeze,M=(a=[])=>b.fromEntries(a),P=(...a)=>b.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>A(S(a),(([a,e])=>t(e,a))),_=a=>b.values(a),B=a=>u(D(a)),H=a=>(a=>!l(a)&&y(N(a),(a=>a==b.prototype||l(N(a))),(()=>!0)))(a)&&0==B(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),q=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>l(e)?(C(a,t),a):a?.set(t,e),k=(a,t,e)=>(R(a,t)||Y(a,t,e()),W(a,t)),G=(a,t,e,n=Y)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),z=v+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const c=j();return[async()=>G(c,M(await d(A(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(v+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(c,t,G(k(c,t,j),e,((a,t,e)=>{e!=W(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(c,t))),async(t,e)=>((a,t)=>!l(W(W(c,a),t)))(t,e)?M(L(A(await a(z+T(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!H(t)))):{},async(t,e,o,r,y,w=!1)=>{const E=J();$(o??{},(a=>A(D(a??{}),(a=>U(E,a)))));const u=O(E);if(!w&&y&&h(u)&&R(c,t))return await a("DROP TABLE"+T(t)),void Y(c,t);if(h(u)||R(c,t)){const s=W(c,t),i=J(x(s));await d([...A(u,(async e=>{C(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),Y(s,e,n))})),...!w&&r?A(O(i),(async n=>{n!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(n)}`),Y(s,n))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${m(A(u,(a=>s+T(a))))});`),Y(c,t,j([[e,n],...A(u,(a=>[a,n]))]));if(w)l(o)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(o,(async(n,s)=>{l(n)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[s]):h(u)||await X(a,t,e,D(n),[s,..._(n)],i)})));else if(h(u))R(c,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=L(x(W(c,t)),(a=>a!=e)),s=[],i=[];$(o??{},((a,t)=>{g(s,t,...A(n,(t=>a?.[t]))),g(i,t)})),await X(a,t,e,n,s),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},X=async(a,t,e,i,o,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+m(A(i,(a=>s+T(a))))+")VALUES"+E(c(`,(?${c(",?",u(i))})`,u(o)/(u(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+m(A(i,(a=>T(a)+"=excluded."+T(a))),s):n),A(o,(a=>a??null))),Z=a=>m(A(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),na=(a,t,e,n,s,i,c,[o,r]=[],E=[])=>{let u,d,p,f=0,T=0;k(ta,E,(()=>0)),k(ea,E,(()=>[]));const v=(c?a.getMergeableContent:null)??a.getContent,m=a.getTransactionChanges,A=async a=>(2!=f&&(f=1,await h.schedule((async()=>{await a(),f=0}))),h),h={load:async(e,n)=>await A((async()=>{try{const e=await t();(c&&w(e[0])?a.applyMergeableChanges:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(h.stopAutoLoad(),await h.load(e,s),T=1,p=n((async(e,n)=>{if(n){const t=n();await A((async()=>a.applyChanges(t)))}else await A((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),h),stopAutoLoad:()=>(T&&(s(p),p=void 0,T=0),h),save:async a=>(1!=f&&(f=2,await h.schedule((async()=>{try{await e(v,a)}catch(a){i?.(a)}f=0}))),h),startAutoSave:async()=>(await h.stopAutoSave().save(),u=a.addDidFinishTransactionListener((()=>{const[a,t]=m();H(a)&&H(t)||h.save((()=>[a,t]))})),h),stopAutoSave:()=>(y(u,a.delListener),u=void 0,h),schedule:async(...a)=>(g(W(ea,E),...a),await(async()=>{if(!W(ta,E)){for(Y(ta,E,1);!l((a=W(ea,E),d=a.shift()));)try{await d()}catch(a){i?.(a)}Y(ta,E,0)}var a})(),h),getStore:()=>a,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(h[o]=()=>r),I(h)},sa="store",ia=(a,t,e,n,s,[i],c,o,r)=>{const[l,y,w,E]=Q(t,c,s);return na(a,(async()=>await E((async()=>(await l(),aa((await y(i,f))[p]?.[sa]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[sa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,o],o)},ca=(a,t,e,n,s,[i,c,[o,r,y]],w,E,u,T)=>{const[v,m,A,h]=Q(t,w,s,T),g=async(a,t)=>await d(q(c,(async([e,n,s,i],c)=>{t&&!F(a,c)||await A(e,n,a[c],s,i,t)}))),R=async(a,t)=>r?await A(y,f,{[p]:a},!0,!0,t):null;return na(a,(async()=>await h((async()=>{await v();const a=await(async()=>M(L(await d(q(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!H(a[1])))))(),t=await(async()=>o?(await m(y,f))[p]:{})();return H(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await v(),l(t)){const[t,e]=a();await g(t),await R(e)}else{const[a,e]=t();await g(a,!0),await R(e,!0)}}))),e,n,s,!1,[u,E],E)},oa="json",ra="autoLoadIntervalSeconds",la="rowIdColumnName",ya="tableId",wa="tableName",Ea={mode:oa,[ra]:1},ua={load:0,save:0,[wa]:e+"_values"},da=(a,t,e,n)=>{const s=j();return $(a,((a,i)=>{const c=E(_(P(t,w(a)?{[e]:a}:a)),0,B(t));l(c[0])||n(i,c[0])||Y(s,i,c)})),s},pa="pragma ",fa="data_version",Ta="schema_version",va=(a,t,n,s,i,c,o,l,y="getDb",u)=>{let d,p,T;const[m,A,h,L]=(a=>{const t=(a=>P(Ea,w(a)?{storeTableName:a}:a??{}))(a),n=t[ra];if(t.mode==oa){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=t,o=E(_(P(ua,c)),0,B(ua)),r=o[2],l=J(r);return[0,n,[da(s,{[ya]:null,[la]:f},ya,(a=>U(l,a)&&a==r)),da(i,{[wa]:null,[la]:f,deleteEmptyColumns:0,deleteEmptyTable:0},wa,((a,t)=>U(l,t)&&t==r)),o],l]})(t);return(m?ia:ca)(a,c?async(a,t)=>(c(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(pa+fa))[0][fa],e=(await n(pa+Ta))[0][Ta],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&s==(T??=s)||(a(),d=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),o,h,O(L),l,y,u)};a.createElectricSqlPersister=(a,t,e,n,s)=>va(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return n=({tablename:t})=>a(t),t.notifier.alias(e).forEach(n);var n}))),(a=>a()),n,s,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,s="tinybase",n=",",i=e(""),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=>e(a)==i,E=(a,t,e)=>a.slice(t,e),d=a=>a.length,u=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",v=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),L=a=>0==d(a),h=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],S=(a,t)=>a?.delete(t),g=Object,C=a=>g.getPrototypeOf(a),D=g.entries,b=g.keys,x=g.freeze,I=(a=[])=>g.fromEntries(a),F=(...a)=>g.assign({},...a),M=(a,t)=>A(D(a),(([a,e])=>t(e,a))),P=a=>g.values(a),$=a=>d(b(a)),_=a=>(a=>!l(a)&&y(C(a),(a=>a==g.prototype||l(C(a))),(()=>!0)))(a)&&0==$(a),B=a=>new Map(a),q=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),j=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>l(e)?(S(a,t),a):a?.set(t,e),Y=(a,t,e)=>(O(a,t)||W(a,t,e()),H(a,t)),k=(a,t,e,s=W)=>(M(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>y(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),G=a=>new Set(Array.isArray(a)||l(a)?a:[a]),J=(a,t)=>a?.add(t),U=m+"*FROM",z="FROM pragma_table_",K="WHERE",V=(a,t,e)=>{const s=B();return[async()=>k(s,I(await u(A(await a("SELECT name "+z+"list WHERE schema='main'AND type='table'AND name IN("+X(t)+")ORDER BY name",t),(async({name:t})=>[t,I(A(await a(m+" name,type "+z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(s,t,k(Y(s,t,B),e,((a,t,e)=>{e!=H(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(s,t))),async(t,e)=>((a,t)=>!l(H(H(s,a),t)))(t,e)?I(h(A(await a(U+T(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!_(t)))):{},async(t,e,i,o,c,r=!1)=>{const y=G();M(i??{},(a=>A(b(a??{}),(a=>J(y,a)))));const w=R(y);if(!r&&c&&L(w)&&O(s,t))return await a("DROP TABLE"+T(t)),void W(s,t);if(L(w)||O(s,t)){const n=H(s,t),i=G(q(n));await u([...A(w,(async e=>{S(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),W(n,e,""))})),...!r&&o?A(R(i),(async s=>{s!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(s)}`),W(n,s))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${v(A(w,(a=>n+T(a))))});`),W(s,t,B([[e,""],...A(w,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+T(t)+"WHERE 1"):await u(M(i,(async(s,n)=>{l(s)?await a("DELETE FROM"+T(t)+K+T(e)+"=?",[n]):L(w)||await Q(a,t,e,b(s),[n,...P(s)])})));else if(L(w))O(s,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=h(q(H(s,t)),(a=>a!=e)),o=[],c=[];M(i??{},((a,t)=>{N(o,t,...A(n,(t=>a?.[t]))),N(c,t)})),await Q(a,t,e,n,o),await a("DELETE FROM"+T(t)+K+T(e)+"NOT IN("+X(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},Q=async(a,t,e,s,i)=>await a("INSERT INTO"+T(t)+"("+T(e)+v(A(s,(a=>n+T(a))))+")VALUES"+E(o(`,(?${o(",?",d(s))})`,d(i)/(d(s)+1)),1)+"ON CONFLICT("+T(e)+")DO UPDATE SET"+v(A(s,(a=>T(a)+"=excluded."+T(a))),n),i),X=a=>v(A(a,(()=>"?")),n),Z=JSON.parse,aa=B(),ta=B(),ea=(a,t,e,s,n,i,[o,c]=[],r=[])=>{let w,E,d,u=0,p=0;Y(aa,r,(()=>0)),Y(ta,r,(()=>[]));const f=async a=>(2!=u&&(u=1,await T.schedule((async()=>{await a(),u=0}))),T),T={load:async(e,s)=>await f((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,d=s((async(e,s)=>{if(s){const t=s();await f((async()=>a.setTransactionChanges(t)))}else await f((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(d),d=void 0,p=0),T),save:async t=>(1!=u&&(u=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}u=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(y(w,a.delListener),w=void 0,T),schedule:async(...a)=>(N(H(ta,r),...a),await(async()=>{if(!H(aa,r)){for(W(aa,r,1);!l((a=H(ta,r),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(aa,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),x(T)},sa="store",na=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,E]=V(t,o,n);return ea(a,(async()=>await E((async()=>(await l(),Z((await y(i,f))[p]?.[sa]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[sa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,c],c)},ia=(a,t,e,s,n,[i,o,[c,r,y]],w,E,d)=>{const[T,m,v,A]=V(t,w,n),L=async(a,t)=>await u(j(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await v(e,s,c,n,i,t)}))),N=async(a,t)=>r?await v(y,f,{[p]:a},!0,!0,t):null;return ea(a,(async()=>await A((async()=>{await T();const a=await(async()=>I(h(await u(j(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>c?(await m(y,f))[p]:{})();return _(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await T(),l(t)){const[t,e]=a();await L(t),await N(e)}else{const[a,e]=t();await L(a,!0),await N(e,!0)}}))),e,s,n,[d,E],E)},oa="json",ca="autoLoadIntervalSeconds",ra="rowIdColumnName",la="tableId",ya="tableName",wa={mode:oa,[ca]:1},Ea={load:0,save:0,[ya]:s+"_values"},da=(a,t,e,s)=>{const n=B();return M(a,((a,i)=>{const o=E(P(F(t,w(a)?{[e]:a}:a)),0,$(t));l(o[0])||s(i,o[0])||W(n,i,o)})),n},ua="pragma ",pa="data_version",fa="schema_version",Ta=(a,t,e,n,i,o,c,l,y="getDb")=>{let d,u,p;const[T,v,A,L]=(a=>{const t=(a=>F(wa,w(a)?{storeTableName:a}:a??{}))(a),e=t[ca];if(t.mode==oa){const{storeTableName:a=s}=t;return[1,e,[a],G(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=E(P(F(Ea,o)),0,$(Ea)),r=c[2],l=G(r);return[0,e,[da(n,{[la]:null,[ra]:f},la,(a=>J(l,a)&&a==r)),da(i,{[ya]:null,[ra]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ya,((a,t)=>J(l,t)&&t==r)),c],l]})(t);return(T?na:ia)(a,o?async(a,t)=>(o(a,t),await e(a,t)):e,(a=>{return[(t=async()=>{try{const t=(await e(ua+pa))[0][pa],s=(await e(ua+fa))[0][fa],n=(await e(m+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&s==(u??=s)&&n==(p??=n)||(a(),d=t,u=s)}catch{}},s=v,t(),setInterval(t,1e3*s)),n((t=>L.has(t)?a():0))];var t,s}),(([a,t])=>{r(a),d=u=null,i(t)}),c,A,R(L),l,y)};a.createExpoSqliteNextPersister=(a,e,s,n,i)=>Ta(a,s,(async(a,t=[])=>await e.getAllAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),n,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite/next")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite/next"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqliteNext={},a["expo-sqlite/next"]);
1
+ var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,n="tinybase",s="",i=",",o=e(s),c=(a,t)=>a.repeat(t),r=Promise,l=clearInterval,y=a=>null==a,w=(a,t,e)=>y(a)?e?.():t(a),E=a=>e(a)==o,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,p=async a=>r.all(a),f="_",T="_id",m=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",A=(a,t="")=>a.join(t),L=(a,t)=>a.map(t),h=a=>0==d(a),R=(a,t)=>a.filter(t),g=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],C=(a,t)=>a?.delete(t),b=Object,S=a=>b.getPrototypeOf(a),D=b.entries,x=b.keys,I=b.freeze,M=(a=[])=>b.fromEntries(a),P=(...a)=>b.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>L(D(a),(([a,e])=>t(e,a))),_=a=>b.values(a),B=a=>d(x(a)),q=a=>(a=>!y(a)&&w(S(a),(a=>a==b.prototype||y(S(a))),(()=>!0)))(a)&&0==B(a),H=a=>new Map(a),j=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),Y=(a,t)=>L([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>y(e)?(C(a,t),a):a?.set(t,e),G=(a,t,e)=>(N(a,t)||k(a,t,e()),W(a,t)),J=(a,t,e,n=k)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),U=a=>new Set(Array.isArray(a)||y(a)?a:[a]),z=(a,t)=>a?.add(t),K=v+"*FROM",V="FROM pragma_table_",Q="WHERE",X=(a,t,e,n)=>{const o=H();return[async()=>J(o,M(await p(L(await a("SELECT name "+V+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+aa(t)+")ORDER BY name",t),(async({name:t})=>[t,M(L(await a(v+" name,type "+V+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(o,t,J(G(o,t,H),e,((a,t,e)=>{e!=W(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(o,t))),async(t,e)=>((a,t)=>!y(W(W(o,a),t)))(t,e)?M(R(L(await a(K+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!y(a)&&!q(t)))):{},async(t,e,c,r,l,w=!1)=>{const E=U();$(c??{},(a=>L(x(a??{}),(a=>z(E,a)))));const u=O(E);if(!w&&l&&h(u)&&N(o,t))return await a("DROP TABLE"+m(t)),void k(o,t);if(h(u)||N(o,t)){const n=W(o,t),i=U(j(n));await p([...L(u,(async e=>{C(i,e)||(await a(`ALTER TABLE${m(t)}ADD${m(e)}`),k(n,e,s))})),...!w&&r?L(O(i),(async s=>{s!=e&&(await a(`ALTER TABLE${m(t)}DROP${m(s)}`),k(n,s))})):[]])}else await a(`CREATE TABLE${m(t)}(${m(e)} PRIMARY KEY ON CONFLICT REPLACE${A(L(u,(a=>i+m(a))))});`),k(o,t,H([[e,s],...L(u,(a=>[a,s]))]));if(w)y(c)?await a("DELETE FROM"+m(t)+"WHERE 1"):await p($(c,(async(s,i)=>{y(s)?await a("DELETE FROM"+m(t)+Q+m(e)+"=?",[i]):h(u)||await Z(a,t,e,x(s),[i,..._(s)],n)})));else if(h(u))N(o,t)&&await a("DELETE FROM"+m(t)+"WHERE 1");else{const n=R(j(W(o,t)),(a=>a!=e)),s=[],i=[];$(c??{},((a,t)=>{g(s,t,...L(n,(t=>a?.[t]))),g(i,t)})),await Z(a,t,e,n,s),await a("DELETE FROM"+m(t)+Q+m(e)+"NOT IN("+aa(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},Z=async(a,t,e,n,o,r=!0)=>await a("INSERT "+(r?s:"OR REPLACE ")+"INTO"+m(t)+"("+m(e)+A(L(n,(a=>i+m(a))))+")VALUES"+u(c(`,(?${c(",?",d(n))})`,d(o)/(d(n)+1)),1)+(r?"ON CONFLICT("+m(e)+")DO UPDATE SET"+A(L(n,(a=>m(a)+"=excluded."+m(a))),i):s),L(o,(a=>a??null))),aa=a=>A(L(a,(()=>"?")),i),ta=JSON.parse,ea=H(),na=H(),sa=(a,t,e,n,s,i,o,[c,r]=[],l=[])=>{let u,d,p,f=0,T=0;G(ea,l,(()=>0)),G(na,l,(()=>[]));const m=(o?a.getMergeableContent:null)??a.getContent,v=a.getTransactionChanges,A=async a=>(2!=f&&(f=1,await L.schedule((async()=>{await a(),f=0}))),L),L={load:async(e,n)=>await A((async()=>{try{const e=await t();(o&&E(e[0])?a.applyMergeableChanges:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(L.stopAutoLoad(),await L.load(e,s),T=1,p=n((async(e,n)=>{if(n){const t=n();await A((async()=>a.applyChanges(t)))}else await A((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),L),stopAutoLoad:()=>(T&&(s(p),p=void 0,T=0),L),save:async a=>(1!=f&&(f=2,await L.schedule((async()=>{try{await e(m,a)}catch(a){i?.(a)}f=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),u=a.addDidFinishTransactionListener((()=>{const[a,t]=v();q(a)&&q(t)||L.save((()=>[a,t]))})),L),stopAutoSave:()=>(w(u,a.delListener),u=void 0,L),schedule:async(...a)=>(g(W(na,l),...a),await(async()=>{if(!W(ea,l)){for(k(ea,l,1);!y((a=W(na,l),d=a.shift()));)try{await d()}catch(a){i?.(a)}k(ea,l,0)}var a})(),L),getStore:()=>a,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(L[c]=()=>r),I(L)},ia="store",oa=(a,t,e,n,s,[i],o,c,r)=>{const[l,y,w,E]=X(t,o,s);return sa(a,(async()=>await E((async()=>(await l(),ta((await y(i,T))[f]?.[ia]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,T,{[f]:{[ia]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,c],c)},ca=(a,t,e,n,s,[i,o,[c,r,l]],w,E,u,d)=>{const[m,v,A,L]=X(t,w,s,d),h=async(a,t)=>await p(Y(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await A(e,n,a[o],s,i,t)}))),g=async(a,t)=>r?await A(l,T,{[f]:a},!0,!0,t):null;return sa(a,(async()=>await L((async()=>{await m();const a=await(async()=>M(R(await p(Y(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!q(a[1])))))(),t=await(async()=>c?(await v(l,T))[f]:{})();return q(a)&&y(t)?void 0:[a,t]}))),(async(a,t)=>await L((async()=>{if(await m(),y(t)){const[t,e]=a();await h(t),await g(e)}else{const[a,e]=t();await h(a,!0),await g(e,!0)}}))),e,n,s,!1,[u,E],E)},ra="json",la="autoLoadIntervalSeconds",ya="rowIdColumnName",wa="tableId",Ea="tableName",ua={mode:ra,[la]:1},da={load:0,save:0,[Ea]:n+"_values"},pa=(a,t,e,n)=>{const s=H();return $(a,((a,i)=>{const o=u(_(P(t,E(a)?{[e]:a}:a)),0,B(t));y(o[0])||n(i,o[0])||k(s,i,o)})),s},fa="pragma ",Ta="data_version",ma="schema_version",va=(a,t,e,s,i,o,c,r,y="getDb",w)=>{let d,p,f;const[m,A,L,h]=(a=>{const t=(a=>P(ua,E(a)?{storeTableName:a}:a??{}))(a),e=t[la];if(t.mode==ra){const{storeTableName:a=n}=t;return[1,e,[a],U(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=u(_(P(da,o)),0,B(da)),r=c[2],l=U(r);return[0,e,[pa(s,{[wa]:null,[ya]:T},wa,(a=>z(l,a)&&a==r)),pa(i,{[Ea]:null,[ya]:T,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==r)),c],l]})(t);return(m?oa:ca)(a,o?async(a,t)=>(o(a,t),await e(a,t)):e,(a=>{return[(t=async()=>{try{const t=(await e(fa+Ta))[0][Ta],n=(await e(fa+ma))[0][ma],s=(await e(v+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&n==(p??=n)&&s==(f??=s)||(a(),d=t,p=n)}catch{}},n=A,t(),setInterval(t,1e3*n)),s((t=>h.has(t)?a():0))];var t,n}),(([a,t])=>{l(a),d=p=null,i(t)}),c,L,O(h),r,y,w)};a.createExpoSqliteNextPersister=(a,e,n,s,i)=>va(a,n,(async(a,t=[])=>await e.getAllAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),s,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite/next")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite/next"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqliteNext={},a["expo-sqlite/next"]);
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>o.all(a),u="_",p="_id",f=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==E(a),L=(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),S=Object,g=a=>S.getPrototypeOf(a),C=S.entries,D=S.keys,b=S.freeze,I=(a=[])=>S.fromEntries(a),F=(...a)=>S.assign({},...a),M=(a,t)=>v(C(a),(([a,e])=>t(e,a))),P=a=>S.values(a),$=a=>E(D(a)),_=a=>(a=>!r(a)&&l(g(a),(a=>a==S.prototype||r(g(a))),(()=>!0)))(a)&&0==$(a),x=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),j=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>r(e)?(R(a,t),a):a?.set(t,e),q=(a,t,e)=>(N(a,t)||W(a,t,e()),H(a,t)),Y=(a,t,e,s=W)=>(M(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J=T+"*FROM",U="FROM pragma_table_",z="WHERE",K=(a,t,e)=>{const n=x();return[async()=>Y(n,I(await d(v(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+Q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(v(await a(T+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,Y(q(n,t,x),e,((a,t,e)=>{e!=H(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!r(H(H(n,a),t)))(t,e)?I(L(v(await a(J+f(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!_(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=k();M(i??{},(a=>v(D(a??{}),(a=>G(y,a)))));const w=O(y);if(!l&&c&&A(w)&&N(n,t))return await a("DROP TABLE"+f(t)),void W(n,t);if(A(w)||N(n,t)){const s=H(n,t),i=k(B(s));await d([...v(w,(async e=>{R(i,e)||(await a(`ALTER TABLE${f(t)}ADD${f(e)}`),W(s,e,""))})),...!l&&o?v(O(i),(async n=>{n!=e&&(await a(`ALTER TABLE${f(t)}DROP${f(n)}`),W(s,n))})):[]])}else await a(`CREATE TABLE${f(t)}(${f(e)} PRIMARY KEY ON CONFLICT REPLACE${m(v(w,(a=>s+f(a))))});`),W(n,t,x([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+f(t)+"WHERE 1"):await d(M(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+f(t)+z+f(e)+"=?",[n]):A(w)||await V(a,t,e,D(s),[n,...P(s)])})));else if(A(w))N(n,t)&&await a("DELETE FROM"+f(t)+"WHERE 1");else{const s=L(B(H(n,t)),(a=>a!=e)),o=[],c=[];M(i??{},((a,t)=>{h(o,t,...v(s,(t=>a?.[t]))),h(c,t)})),await V(a,t,e,s,o),await a("DELETE FROM"+f(t)+z+f(e)+"NOT IN("+Q(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},V=async(a,t,e,n,o)=>await a("INSERT INTO"+f(t)+"("+f(e)+m(v(n,(a=>s+f(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(o)/(E(n)+1)),1)+"ON CONFLICT("+f(e)+")DO UPDATE SET"+m(v(n,(a=>f(a)+"=excluded."+f(a))),s),o),Q=a=>m(v(a,(()=>"?")),s),X=JSON.parse,Z=x(),aa=x(),ta=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,E,d,u=0,p=0;q(Z,y,(()=>0)),q(aa,y,(()=>[]));const f=async a=>(2!=u&&(u=1,await T.schedule((async()=>{await a(),u=0}))),T),T={load:async(e,s)=>await f((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,d=s((async(e,s)=>{if(s){const t=s();await f((async()=>a.setTransactionChanges(t)))}else await f((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(d),d=void 0,p=0),T),save:async t=>(1!=u&&(u=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}u=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(H(aa,y),...a),await(async()=>{if(!H(Z,y)){for(W(Z,y,1);!r((a=H(aa,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Z,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),b(T)},ea="store",sa=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,E]=K(t,o,n);return ta(a,(async()=>await E((async()=>(await l(),X((await y(i,p))[u]?.[ea]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,p,{[u]:{[ea]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,c],c)},na=(a,t,e,s,n,[i,o,[c,l,y]],w,E,f)=>{const[T,m,v,A]=K(t,w,n),h=async(a,t)=>await d(j(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await v(e,s,c,n,i,t)}))),N=async(a,t)=>l?await v(y,p,{[u]:a},!0,!0,t):null;return ta(a,(async()=>await A((async()=>{await T();const a=await(async()=>I(L(await d(j(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>c?(await m(y,p))[u]:{})();return _(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await T(),r(t)){const[t,e]=a();await h(t),await N(e)}else{const[a,e]=t();await h(a,!0),await N(e,!0)}}))),e,s,n,[f,E],E)},ia="json",oa="autoLoadIntervalSeconds",ca="rowIdColumnName",ra="tableId",la="tableName",ya={mode:ia,[oa]:1},wa={load:0,save:0,[la]:e+"_values"},Ea=(a,t,e,s)=>{const n=x();return M(a,((a,i)=>{const o=w(P(F(t,y(a)?{[e]:a}:a)),0,$(t));r(o[0])||s(i,o[0])||W(n,i,o)})),n},da="pragma ",ua="data_version",pa="schema_version",fa=(a,t,s,n,i,o,r,l,E="getDb")=>{let d,u,f;const[m,v,A,L]=(a=>{const t=(a=>F(ya,y(a)?{storeTableName:a}:a??{}))(a),s=t[oa];if(t.mode==ia){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(P(F(wa,o)),0,$(wa)),r=c[2],l=k(r);return[0,s,[Ea(n,{[ra]:null,[ca]:p},ra,(a=>G(l,a)&&a==r)),Ea(i,{[la]:null,[ca]:p,deleteEmptyColumns:0,deleteEmptyTable:0},la,((a,t)=>G(l,t)&&t==r)),c],l]})(t);return(m?sa:na)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(da+ua))[0][ua],e=(await s(da+pa))[0][pa],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(u??=e)&&n==(f??=n)||(a(),d=t,u=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),d=u=null,i(t)}),r,A,O(L),l,E)};a.createExpoSqlitePersister=(a,t,e,s,n)=>fa(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()),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqlite={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s="",n=",",i=t(s),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",v=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),h=a=>0==u(a),L=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),g=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],C=(a,t)=>a?.delete(t),N=Object,b=a=>N.getPrototypeOf(a),S=N.entries,D=N.keys,I=N.freeze,M=(a=[])=>N.fromEntries(a),P=(...a)=>N.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>A(S(a),(([a,e])=>t(e,a))),_=a=>N.values(a),x=a=>u(D(a)),B=a=>(a=>!l(a)&&y(b(a),(a=>a==N.prototype||l(b(a))),(()=>!0)))(a)&&0==x(a),H=a=>new Map(a),j=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),q=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>l(e)?(C(a,t),a):a?.set(t,e),k=(a,t,e)=>(g(a,t)||Y(a,t,e()),W(a,t)),G=(a,t,e,s=Y)=>($(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:s(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),z=m+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const o=H();return[async()=>G(o,M(await d(A(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(m+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(o,t,G(k(o,t,H),e,((a,t,e)=>{e!=W(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(o,t))),async(t,e)=>((a,t)=>!l(W(W(o,a),t)))(t,e)?M(L(A(await a(z+T(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!B(t)))):{},async(t,e,c,r,y,w=!1)=>{const E=J();$(c??{},(a=>A(D(a??{}),(a=>U(E,a)))));const u=O(E);if(!w&&y&&h(u)&&g(o,t))return await a("DROP TABLE"+T(t)),void Y(o,t);if(h(u)||g(o,t)){const n=W(o,t),i=J(j(n));await d([...A(u,(async e=>{C(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),Y(n,e,s))})),...!w&&r?A(O(i),(async s=>{s!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(s)}`),Y(n,s))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${v(A(u,(a=>n+T(a))))});`),Y(o,t,H([[e,s],...A(u,(a=>[a,s]))]));if(w)l(c)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(c,(async(s,n)=>{l(s)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[n]):h(u)||await X(a,t,e,D(s),[n,..._(s)],i)})));else if(h(u))g(o,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const s=L(j(W(o,t)),(a=>a!=e)),n=[],i=[];$(c??{},((a,t)=>{R(n,t,...A(s,(t=>a?.[t]))),R(i,t)})),await X(a,t,e,s,n),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?s:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+v(A(i,(a=>n+T(a))))+")VALUES"+E(o(`,(?${o(",?",u(i))})`,u(c)/(u(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+v(A(i,(a=>T(a)+"=excluded."+T(a))),n):s),A(c,(a=>a??null))),Z=a=>v(A(a,(()=>"?")),n),aa=JSON.parse,ta=H(),ea=H(),sa=(a,t,e,s,n,i,o,[c,r]=[],E=[])=>{let u,d,p,f=0,T=0;k(ta,E,(()=>0)),k(ea,E,(()=>[]));const m=(o?a.getMergeableContent:null)??a.getContent,v=a.getTransactionChanges,A=async a=>(2!=f&&(f=1,await h.schedule((async()=>{await a(),f=0}))),h),h={load:async(e,s)=>await A((async()=>{try{const e=await t();(o&&w(e[0])?a.applyMergeableChanges:a.setContent)(e)}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(h.stopAutoLoad(),await h.load(e,n),T=1,p=s((async(e,s)=>{if(s){const t=s();await A((async()=>a.applyChanges(t)))}else await A((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),h),stopAutoLoad:()=>(T&&(n(p),p=void 0,T=0),h),save:async a=>(1!=f&&(f=2,await h.schedule((async()=>{try{await e(m,a)}catch(a){i?.(a)}f=0}))),h),startAutoSave:async()=>(await h.stopAutoSave().save(),u=a.addDidFinishTransactionListener((()=>{const[a,t]=v();B(a)&&B(t)||h.save((()=>[a,t]))})),h),stopAutoSave:()=>(y(u,a.delListener),u=void 0,h),schedule:async(...a)=>(R(W(ea,E),...a),await(async()=>{if(!W(ta,E)){for(Y(ta,E,1);!l((a=W(ea,E),d=a.shift()));)try{await d()}catch(a){i?.(a)}Y(ta,E,0)}var a})(),h),getStore:()=>a,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(h[c]=()=>r),I(h)},na="store",ia=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,E]=Q(t,o,n);return sa(a,(async()=>await E((async()=>(await l(),aa((await y(i,f))[p]?.[na]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[p]:{[na]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,!1,[r,c],c)},oa=(a,t,e,s,n,[i,o,[c,r,y]],w,E,u,T)=>{const[m,v,A,h]=Q(t,w,n,T),R=async(a,t)=>await d(q(o,(async([e,s,n,i],o)=>{t&&!F(a,o)||await A(e,s,a[o],n,i,t)}))),g=async(a,t)=>r?await A(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await h((async()=>{await m();const a=await(async()=>M(L(await d(q(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!B(a[1])))))(),t=await(async()=>c?(await v(y,f))[p]:{})();return B(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await m(),l(t)){const[t,e]=a();await R(t),await g(e)}else{const[a,e]=t();await R(a,!0),await g(e,!0)}}))),e,s,n,!1,[u,E],E)},ca="json",ra="autoLoadIntervalSeconds",la="rowIdColumnName",ya="tableId",wa="tableName",Ea={mode:ca,[ra]:1},ua={load:0,save:0,[wa]:e+"_values"},da=(a,t,e,s)=>{const n=H();return $(a,((a,i)=>{const o=E(_(P(t,w(a)?{[e]:a}:a)),0,x(t));l(o[0])||s(i,o[0])||Y(n,i,o)})),n},pa="pragma ",fa="data_version",Ta="schema_version",ma=(a,t,s,n,i,o,c,l,y="getDb",u)=>{let d,p,T;const[v,A,h,L]=(a=>{const t=(a=>P(Ea,w(a)?{storeTableName:a}:a??{}))(a),s=t[ra];if(t.mode==ca){const{storeTableName:a=e}=t;return[1,s,[a],J(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=E(_(P(ua,o)),0,x(ua)),r=c[2],l=J(r);return[0,s,[da(n,{[ya]:null,[la]:f},ya,(a=>U(l,a)&&a==r)),da(i,{[wa]:null,[la]:f,deleteEmptyColumns:0,deleteEmptyTable:0},wa,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(v?ia:oa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(pa+fa))[0][fa],e=(await s(pa+Ta))[0][Ta],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&n==(T??=n)||(a(),d=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,h,O(L),l,y,u)};a.createExpoSqlitePersister=(a,t,e,s,n)=>ma(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqlite={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t,e,a){"use strict";const s="utf8",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),i=Object,r=t=>i.getPrototypeOf(t),c=i.keys,y=i.freeze,f=t=>(t=>!n(t)&&o(r(t),(t=>t==i.prototype||n(r(t))),(()=>!0)))(t)&&0==(t=>c(t).length)(t),d=JSON.parse,u=t=>new Map(t),l=(t,e)=>t?.get(e),p=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},h=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||p(t,e,a()),l(t,e)},w=u(),v=u();t.createFilePersister=(t,r,c)=>((t,e,a,s,i,r,[c,d]=[],u=[])=>{let g,A,S,m=0,F=0;h(w,u,(()=>0)),h(v,u,(()=>[]));const L=async t=>(2!=m&&(m=1,await C.schedule((async()=>{await t(),m=0}))),C),C={load:async(a,s)=>await L((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(C.stopAutoLoad(),await C.load(a,n),F=1,S=s((async(a,s)=>{if(s){const e=s();await L((async()=>t.setTransactionChanges(e)))}else await L((async()=>{try{t.setContent(a?.()??await e())}catch(t){r?.(t)}}))})),C),stopAutoLoad:()=>(F&&(i(S),S=void 0,F=0),C),save:async e=>(1!=m&&(m=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){r?.(t)}m=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();f(a)&&f(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(o(g,t.delListener),g=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(l(v,u),...t),await(async()=>{if(!l(w,u)){for(p(w,u,1);!n((t=l(v,u),A=t.shift()));)try{await A()}catch(t){r?.(t)}p(w,u,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(C[c]=()=>d),y(C)})(t,(async()=>d(await a.readFile(r,s))),(async t=>{return await a.writeFile(r,(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?i.fromEntries([...e]):e))),s);var e}),(t=>e.watch(r,(()=>t()))),(t=>t?.close()),c,["getFilePath",r])},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterFile={},t.fs,t["fs/promises"]);
1
+ var t,e;t=this,e=function(t,e,a){"use strict";const s=t=>typeof t,n=s(""),o="utf8",i=t=>null==t,r=(t,e,a)=>i(t)?a?.():e(t),c=Object,y=t=>c.getPrototypeOf(t),l=c.keys,f=c.freeze,p=t=>(t=>!i(t)&&r(y(t),(t=>t==c.prototype||i(y(t))),(()=>!0)))(t)&&0==(t=>l(t).length)(t),d=JSON.parse,u=t=>new Map(t),h=(t,e)=>t?.get(e),w=(t,e,a)=>{return i(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},g=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||w(t,e,a()),h(t,e)},v=u(),A=u();t.createFilePersister=(t,y,l)=>((t,e,a,o,c,y,l,[d,u]=[],C=[])=>{let S,b,m,F=0,L=0;g(v,C,(()=>0)),g(A,C,(()=>[]));const T=(l?t.getMergeableContent:null)??t.getContent,M=t.getTransactionChanges,O=async t=>(2!=F&&(F=1,await P.schedule((async()=>{await t(),F=0}))),P),P={load:async(a,o)=>await O((async()=>{try{const a=await e();(l&&(t=>s(t)==n)(a[0])?t.applyMergeableChanges:t.setContent)(a)}catch{t.setContent([a,o])}})),startAutoLoad:async(a={},s={})=>(P.stopAutoLoad(),await P.load(a,s),L=1,m=o((async(a,s)=>{if(s){const e=s();await O((async()=>t.applyChanges(e)))}else await O((async()=>{try{t.setContent(a?.()??await e())}catch(t){y?.(t)}}))})),P),stopAutoLoad:()=>(L&&(c(m),m=void 0,L=0),P),save:async t=>(1!=F&&(F=2,await P.schedule((async()=>{try{await a(T,t)}catch(t){y?.(t)}F=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),S=t.addDidFinishTransactionListener((()=>{const[t,e]=M();p(t)&&p(e)||P.save((()=>[t,e]))})),P),stopAutoSave:()=>(r(S,t.delListener),S=void 0,P),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(h(A,C),...t),await(async()=>{if(!h(v,C)){for(w(v,C,1);!i((t=h(A,C),b=t.shift()));)try{await b()}catch(t){y?.(t)}w(v,C,0)}var t})(),P),getStore:()=>t,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(P[d]=()=>u),f(P)})(t,(async()=>d(await a.readFile(y,o))),(async t=>{return await a.writeFile(y,(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?c.fromEntries([...e]):e))),o);var e}),(t=>e.watch(y,(()=>t()))),(t=>t?.close()),l,!1,["getFilePath",y])},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterFile={},t.fs,t["fs/promises"]);
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=Promise,a=clearInterval,s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=t=>new e(t),r=async t=>e.all(t),c=(t,e)=>t.map(e),i=(t,...e)=>t.push(...e),d=Object,y=t=>d.getPrototypeOf(t),l=d.entries,u=d.keys,w=d.freeze,p=t=>(t=>!s(t)&&n(y(t),(t=>t==d.prototype||s(y(t))),(()=>!0)))(t)&&0==(t=>u(t).length)(t),h=t=>new Map(t),f=(t,e)=>t?.get(e),v=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},g=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||v(t,e,a()),f(t,e)},b=h(),A=h(),S=globalThis.window,x=["t","v"],D={keyPath:"k"},j=async(t,e)=>{const a=((e,a)=>c(l(e),(([e,a])=>m(t,"put",{k:e,v:a}))))(e);c(await m(t,"getAllKeys"),(o=>((t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)))(e,o)?0:i(a,m(t,"delete",o)))),await r(a)},m=async(t,e,a)=>o(((s,n)=>{const o=t[e](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${e} error`)}));t.createIndexedDbPersister=(t,e,y=1,l)=>{const u=async(t,a=[],s=0)=>o(((n,o)=>{const i=(S?S.indexedDB:indexedDB).open(e,s?2:void 0);i.onupgradeneeded=()=>s&&c(x,(t=>{try{i.result.createObjectStore(t,D)}catch{}})),i.onsuccess=async()=>{try{const e=i.result.transaction(x,"readwrite"),s=await r(c(x,(async(s,n)=>await t(e.objectStore(s),a[n]))));i.result.close(),n(s)}catch(t){i.result.close(),o(t)}},i.onerror=()=>o("indexedDB.open error")}));return((t,e,a,o,r,c,[d,y]=[],l=[])=>{let u,h,S,x=0,D=0;g(b,l,(()=>0)),g(A,l,(()=>[]));const j=async t=>(2!=x&&(x=1,await m.schedule((async()=>{await t(),x=0}))),m),m={load:async(a,s)=>await j((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(m.stopAutoLoad(),await m.load(a,s),D=1,S=o((async(a,s)=>{if(s){const e=s();await j((async()=>t.setTransactionChanges(e)))}else await j((async()=>{try{t.setContent(a?.()??await e())}catch(t){c?.(t)}}))})),m),stopAutoLoad:()=>(D&&(r(S),S=void 0,D=0),m),save:async e=>(1!=x&&(x=2,await m.schedule((async()=>{try{await a(t.getContent,e)}catch(t){c?.(t)}x=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),u=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();p(a)&&p(s)||m.save((()=>[a,s]))})),m),stopAutoSave:()=>(n(u,t.delListener),u=void 0,m),schedule:async(...t)=>(i(f(A,l),...t),await(async()=>{if(!f(b,l)){for(v(b,l,1);!s((t=f(A,l),h=t.shift()));)try{await h()}catch(t){c?.(t)}v(b,l,0)}var t})(),m),getStore:()=>t,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(m[d]=()=>y),w(m)})(t,(async()=>await u((async t=>((t=[])=>d.fromEntries(t))(c(await m(t,"getAll"),(({k:t,v:e})=>[t,e])))))),(async t=>await u((async(t,e)=>await j(t,e)),t(),1)),(t=>setInterval(t,1e3*y)),(t=>a(t)),l,["getDbName",e])},t.objectStoreMatch=j},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterIndexedDb={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,a=t(""),s=Promise,n=clearInterval,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),c=e=>new s(e),i=async e=>s.all(e),d=(e,t)=>e.map(t),l=(e,...t)=>e.push(...t),y=Object,u=e=>y.getPrototypeOf(e),p=y.entries,w=y.keys,h=y.freeze,f=e=>(e=>!o(e)&&r(u(e),(e=>e==y.prototype||o(u(e))),(()=>!0)))(e)&&0==(e=>w(e).length)(e),g=e=>new Map(e),v=(e,t)=>e?.get(t),b=(e,t,a)=>{return o(a)?(s=e,n=t,s?.delete(n),e):e?.set(t,a);var s,n},A=(e,t,a)=>{var s,n;return s=e,n=t,s?.has(n)||b(e,t,a()),v(e,t)},S=g(),x=g(),C=globalThis.window,D=["t","v"],j={keyPath:"k"},m=async(e,t)=>{const a=((t,a)=>d(p(t),(([t,a])=>L(e,"put",{k:t,v:a}))))(t);d(await L(e,"getAllKeys"),(s=>((e,t)=>t in e)(t,s)?0:l(a,L(e,"delete",s)))),await i(a)},L=async(e,t,a)=>c(((s,n)=>{const o=e[t](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${t} error`)}));e.createIndexedDbPersister=(e,s,u=1,p)=>{const w=async(e,t=[],a=0)=>c(((n,o)=>{const r=(C?C.indexedDB:indexedDB).open(s,a?2:void 0);r.onupgradeneeded=()=>a&&d(D,(e=>{try{r.result.createObjectStore(e,j)}catch{}})),r.onsuccess=async()=>{try{const a=r.result.transaction(D,"readwrite"),s=await i(d(D,(async(s,n)=>await e(a.objectStore(s),t[n]))));r.result.close(),n(s)}catch(e){r.result.close(),o(e)}},r.onerror=()=>o("indexedDB.open error")}));return((e,s,n,c,i,d,y,[u,p]=[],w=[])=>{let g,C,D,j=0,m=0;A(S,w,(()=>0)),A(x,w,(()=>[]));const L=(y?e.getMergeableContent:null)??e.getContent,T=e.getTransactionChanges,k=async e=>(2!=j&&(j=1,await P.schedule((async()=>{await e(),j=0}))),P),P={load:async(n,o)=>await k((async()=>{try{const n=await s();(y&&(e=>t(e)==a)(n[0])?e.applyMergeableChanges:e.setContent)(n)}catch{e.setContent([n,o])}})),startAutoLoad:async(t={},a={})=>(P.stopAutoLoad(),await P.load(t,a),m=1,D=c((async(t,a)=>{if(a){const t=a();await k((async()=>e.applyChanges(t)))}else await k((async()=>{try{e.setContent(t?.()??await s())}catch(e){d?.(e)}}))})),P),stopAutoLoad:()=>(m&&(i(D),D=void 0,m=0),P),save:async e=>(1!=j&&(j=2,await P.schedule((async()=>{try{await n(L,e)}catch(e){d?.(e)}j=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),g=e.addDidFinishTransactionListener((()=>{const[e,t]=T();f(e)&&f(t)||P.save((()=>[e,t]))})),P),stopAutoSave:()=>(r(g,e.delListener),g=void 0,P),schedule:async(...e)=>(l(v(x,w),...e),await(async()=>{if(!v(S,w)){for(b(S,w,1);!o((e=v(x,w),C=e.shift()));)try{await C()}catch(e){d?.(e)}b(S,w,0)}var e})(),P),getStore:()=>e,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return u&&(P[u]=()=>p),h(P)})(e,(async()=>await w((async e=>((e=[])=>y.fromEntries(e))(d(await L(e,"getAll"),(({k:e,v:t})=>[e,t])))))),(async e=>await w((async(e,t)=>await m(e,t)),e(),1)),(e=>setInterval(e,1e3*u)),(e=>n(e)),p,!1,["getDbName",s])},e.objectStoreMatch=m},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterIndexedDb={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a="",s=e(a),o=t=>null==t,n=(t,e,a)=>o(t)?a?.():e(t),r=t=>e(t)==s,i=t=>t.length,c=Object,d=t=>c.getPrototypeOf(t),y=c.keys,p=c.freeze,u=t=>(t=>!o(t)&&n(d(t),(t=>t==c.prototype||o(d(t))),(()=>!0)))(t)&&0==(t=>i(y(t)))(t),f=t=>JSON.stringify(t,((t,e)=>e instanceof Map?c.fromEntries([...e]):e)),h=JSON.parse,l="/store",v=t=>new Map(t),w=(t,e)=>t?.get(e),g=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},m=(t,e,a)=>{var s,o;return s=t,o=e,s?.has(o)||g(t,e,a()),w(t,e)},P=v(),S=v(),A="message";t.createPartyKitPersister=(t,e,s,c)=>{const{host:d,room:y}=e.partySocketOptions,{storeProtocol:v="https",storePath:L=l,messagePrefix:C=a}={...r(s)?{storeProtocol:s}:s},T=v+"://"+d+"/parties/"+e.name+"/"+y+L,b=async t=>await(await fetch(T,{...t?{method:"PUT",body:f(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,s,r,i,[c,d]=[],y=[])=>{let f,h,l,v=0,A=0;m(P,y,(()=>0)),m(S,y,(()=>[]));const L=async t=>(2!=v&&(v=1,await C.schedule((async()=>{await t(),v=0}))),C),C={load:async(a,s)=>await L((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},o={})=>(C.stopAutoLoad(),await C.load(a,o),A=1,l=s((async(a,s)=>{if(s){const e=s();await L((async()=>t.setTransactionChanges(e)))}else await L((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(A&&(r(l),l=void 0,A=0),C),save:async e=>(1!=v&&(v=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}v=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),f=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();u(a)&&u(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(n(f,t.delListener),f=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(w(S,y),...t),await(async()=>{if(!w(P,y)){for(g(P,y,1);!o((t=w(S,y),h=t.shift()));)try{await h()}catch(t){i?.(t)}g(P,y,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(C[c]=()=>d),p(C)})(t,(async()=>await b()),(async(t,a)=>{var s,o;a?e.send((s=C,o=a(),s+"s"+(r(o)?o:f(o)))):await b(t())}),(t=>{const a=e=>n(((t,e,a)=>{const s=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],h((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(C,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return e.addEventListener(A,a),a}),(t=>{e.removeEventListener(A,t)}),c,["getConnection",e])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterPartyKitClient={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a="",s=e(a),o=t=>null==t,n=(t,e,a)=>o(t)?a?.():e(t),r=t=>e(t)==s,i=t=>t.length,c=Object,y=t=>c.getPrototypeOf(t),d=c.keys,p=c.freeze,l=t=>(t=>!o(t)&&n(y(t),(t=>t==c.prototype||o(y(t))),(()=>!0)))(t)&&0==(t=>i(d(t)))(t),u=t=>JSON.stringify(t,((t,e)=>e instanceof Map?c.fromEntries([...e]):e)),h=JSON.parse,f="/store",v=t=>new Map(t),g=(t,e)=>t?.get(e),w=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},m=(t,e,a)=>{var s,o;return s=t,o=e,s?.has(o)||w(t,e,a()),g(t,e)},C=v(),P=v(),S="message";t.createPartyKitPersister=(t,e,s,c)=>{const{host:y,room:d}=e.partySocketOptions,{storeProtocol:v="https",storePath:A=f,messagePrefix:L=a}={...r(s)?{storeProtocol:s}:s},b=v+"://"+y+"/parties/"+e.name+"/"+d+A,T=async t=>await(await fetch(b,{...t?{method:"PUT",body:u(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,s,i,c,y,[d,u]=[],h=[])=>{let f,v,S,A=0,L=0;m(C,h,(()=>0)),m(P,h,(()=>[]));const b=(y?t.getMergeableContent:null)??t.getContent,T=t.getTransactionChanges,O=async t=>(2!=A&&(A=1,await x.schedule((async()=>{await t(),A=0}))),x),x={load:async(a,s)=>await O((async()=>{try{const a=await e();(y&&r(a[0])?t.applyMergeableChanges:t.setContent)(a)}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},o={})=>(x.stopAutoLoad(),await x.load(a,o),L=1,S=s((async(a,s)=>{if(s){const e=s();await O((async()=>t.applyChanges(e)))}else await O((async()=>{try{t.setContent(a?.()??await e())}catch(t){c?.(t)}}))})),x),stopAutoLoad:()=>(L&&(i(S),S=void 0,L=0),x),save:async t=>(1!=A&&(A=2,await x.schedule((async()=>{try{await a(b,t)}catch(t){c?.(t)}A=0}))),x),startAutoSave:async()=>(await x.stopAutoSave().save(),f=t.addDidFinishTransactionListener((()=>{const[t,e]=T();l(t)&&l(e)||x.save((()=>[t,e]))})),x),stopAutoSave:()=>(n(f,t.delListener),f=void 0,x),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(g(P,h),...t),await(async()=>{if(!g(C,h)){for(w(C,h,1);!o((t=g(P,h),v=t.shift()));)try{await v()}catch(t){c?.(t)}w(C,h,0)}var t})(),x),getStore:()=>t,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(x[d]=()=>u),p(x)})(t,(async()=>await T()),(async(t,a)=>{var s,o;a?e.send((s=L,o=a(),s+"s"+(r(o)?o:u(o)))):await T(t())}),(t=>{const a=e=>n(((t,e,a)=>{const s=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],h((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(L,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return e.addEventListener(S,a),a}),(t=>{e.removeEventListener(S,t)}),c,!1,["getConnection",e])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterPartyKitClient={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e=t(""),s="t",n=(a,t)=>a.startsWith(t),i=Promise,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),l=a=>a.length,f=async a=>i.all(a),y=(a,t)=>a.map(t),h=(a,...t)=>a.push(...t),g=Object,w=g.entries,u=(a=[])=>g.fromEntries(a),d=(a,t)=>y(w(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>!r(((a,t)=>o(a,(a=>a[t])))(a,t)))(a,t)||(a[t]=e()),a[t]),S=a=>JSON.stringify(a,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)),P=JSON.parse,m=(a,s,n)=>a+s+(t(n)==e?n:S(n)),x=(a,t,e)=>{const s=l(a);return n(t,a)?[t[s],(e?P:String)(c(t,s+1))]:void 0},b=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),T="hasStore",D=u(y(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),v=async(a,t="")=>!!await a.get(t+T),R=async(a,t="")=>{const e={},n={};return b(await a.list(),((a,i)=>o(x(t,a),(([a,t])=>{if(a==s){const[a,s,n]=P("["+t+"]");p(p(e,a,u),s,u)[n]=i}else"v"==a&&(n[t]=i)})))),[e,n]},C=async(a,t,e)=>a.party.broadcast(m(a.config.messagePrefix,"s",t),e),O=async(a,t,e,i)=>{const o=a.party.storage,c=a.config.storagePrefix,y={[c+T]:1},g=[],w=[];await f(d(t[0],(async(t,n)=>r(t)?!e&&await a.canDelTable(n,i)&&((a,...t)=>a.unshift(...t))(w,V(c,s,n)):await a.canSetTable(n,e,i)&&await f(d(t,(async(t,l)=>r(t)?!e&&await a.canDelRow(n,l,i)&&h(w,V(c,s,n,l)):await a.canSetRow(n,l,e,i)&&await f(d(t,(async(t,f)=>{const w=[n,l,f],u=V(c,s,...w);r(t)?!e&&await a.canDelCell(...w,i)&&h(g,u):await a.canSetCell(...w,t,e,i,await o.get(u))&&(y[u]=t)}))))))))),await f(d(t[1],(async(t,s)=>{const n=c+"v"+s;r(t)?!e&&await a.canDelValue(s,i)&&h(g,n):await a.canSetValue(s,t,e,i,await o.get(n))&&(y[n]=t)}))),0!=l(w)&&b(await o.list(),(a=>w.every((t=>!n(a,t)||h(g,a)&&0)))),await o.delete(g),await o.put(y)},V=(a,t,...e)=>m(a,t,c(S(e),1,-1)),E=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});a.TinyBasePartyKitServer=class{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=D}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await v(t,s),n=await a.text();return"PUT"==a.method?e?E(this,205):(await O(this,P(n),!0,a),E(this,201)):E(this,200,e?S(await R(t,s)):"")}return E(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await o(x(e,a,1),(async([a,e])=>{"s"==a&&await v(this.party.storage,s)&&(await O(this,e,!1,t),C(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}},a.broadcastTransactionChanges=C,a.hasStoreInStorage=v,a.loadStoreFromStorage=R},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPartyKitServer={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e=t(""),s="t",n=(a,t)=>a.startsWith(t),i=Promise,r=a=>null==a,o=(a,t,e)=>r(a)?e?.():t(a),c=(a,t,e)=>a.slice(t,e),l=a=>a.length,f=async a=>i.all(a),y=(a,t)=>a.map(t),h=(a,...t)=>a.push(...t),g=Object,w=g.entries,u=(a=[])=>g.fromEntries(a),d=(a,t)=>y(w(a),(([a,e])=>t(e,a))),p=(a,t,e)=>(((a,t)=>t in a)(a,t)||(a[t]=e()),a[t]),S=a=>JSON.stringify(a,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)),P=JSON.parse,m=(a,s,n)=>a+s+(t(n)==e?n:S(n)),x=(a,t,e)=>{const s=l(a);return n(t,a)?[t[s],(e?P:String)(c(t,s+1))]:void 0},b=(a,t)=>((a,t)=>a?.forEach(t))(a,((a,e)=>t(e,a))),T="hasStore",D=u(y(["Origin","Methods","Headers"],(a=>["Access-Control-Allow-"+a,"*"]))),v=async(a,t="")=>!!await a.get(t+T),R=async(a,t="")=>{const e={},n={};return b(await a.list(),((a,i)=>o(x(t,a),(([a,t])=>{if(a==s){const[a,s,n]=P("["+t+"]");p(p(e,a,u),s,u)[n]=i}else"v"==a&&(n[t]=i)})))),[e,n]},C=async(a,t,e)=>a.party.broadcast(m(a.config.messagePrefix,"s",t),e),O=async(a,t,e,i)=>{const o=a.party.storage,c=a.config.storagePrefix,y={[c+T]:1},g=[],w=[];await f(d(t[0],(async(t,n)=>r(t)?!e&&await a.canDelTable(n,i)&&((a,...t)=>a.unshift(...t))(w,V(c,s,n)):await a.canSetTable(n,e,i)&&await f(d(t,(async(t,l)=>r(t)?!e&&await a.canDelRow(n,l,i)&&h(w,V(c,s,n,l)):await a.canSetRow(n,l,e,i)&&await f(d(t,(async(t,f)=>{const w=[n,l,f],u=V(c,s,...w);r(t)?!e&&await a.canDelCell(...w,i)&&h(g,u):await a.canSetCell(...w,t,e,i,await o.get(u))&&(y[u]=t)}))))))))),await f(d(t[1],(async(t,s)=>{const n=c+"v"+s;r(t)?!e&&await a.canDelValue(s,i)&&h(g,n):await a.canSetValue(s,t,e,i,await o.get(n))&&(y[n]=t)}))),0!=l(w)&&b(await o.list(),(a=>w.every((t=>!n(a,t)||h(g,a)&&0)))),await o.delete(g),await o.put(y)},V=(a,t,...e)=>m(a,t,c(S(e),1,-1)),E=async(a,t,e=null)=>new Response(e,{status:t,headers:a.config.responseHeaders});a.TinyBasePartyKitServer=class{constructor(a){this.party=a,this.config={},this.config.storePath??="/store",this.config.messagePrefix??="",this.config.storagePrefix??="",this.config.responseHeaders??=D}async onRequest(a){const{party:{storage:t},config:{storePath:e,storagePrefix:s}}=this;if(new URL(a.url).pathname.endsWith(e)){const e=await v(t,s),n=await a.text();return"PUT"==a.method?e?E(this,205):(await O(this,P(n),!0,a),E(this,201)):E(this,200,e?S(await R(t,s)):"")}return E(this,404)}async onMessage(a,t){const{config:{messagePrefix:e,storagePrefix:s}}=this;await o(x(e,a,1),(async([a,e])=>{"s"==a&&await v(this.party.storage,s)&&(await O(this,e,!1,t),C(this,e,[t.id]))}))}async canSetTable(a,t,e){return!0}async canDelTable(a,t){return!0}async canSetRow(a,t,e,s){return!0}async canDelRow(a,t,e){return!0}async canSetCell(a,t,e,s,n,i,r){return!0}async canDelCell(a,t,e,s){return!0}async canSetValue(a,t,e,s,n){return!0}async canDelValue(a,t){return!0}},a.broadcastChanges=C,a.hasStoreInStorage=v,a.loadStoreFromStorage=R},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterPartyKitServer={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=clearInterval,a=t=>null==t,s=(t,e,s)=>a(t)?s?.():e(t),n=Object,o=t=>n.getPrototypeOf(t),r=n.keys,i=n.freeze,c=t=>(t=>!a(t)&&s(o(t),(t=>t==n.prototype||a(o(t))),(()=>!0)))(t)&&0==(t=>r(t).length)(t),y=JSON.parse,d=t=>new Map(t),u=(t,e)=>t?.get(e),f=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},l=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),u(t,e)},h=d(),p=d(),w=t=>t.headers.get("ETag");t.createRemotePersister=(t,o,r,d=5,v)=>{let g;return((t,e,n,o,r,y,[d,w]=[],v=[])=>{let g,A,S,T=0,m=0;l(h,v,(()=>0)),l(p,v,(()=>[]));const C=async t=>(2!=T&&(T=1,await L.schedule((async()=>{await t(),T=0}))),L),L={load:async(a,s)=>await C((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(L.stopAutoLoad(),await L.load(a,s),m=1,S=o((async(a,s)=>{if(s){const e=s();await C((async()=>t.setTransactionChanges(e)))}else await C((async()=>{try{t.setContent(a?.()??await e())}catch(t){y?.(t)}}))})),L),stopAutoLoad:()=>(m&&(r(S),S=void 0,m=0),L),save:async e=>(1!=T&&(T=2,await L.schedule((async()=>{try{await n(t.getContent,e)}catch(t){y?.(t)}T=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();c(a)&&c(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(s(g,t.delListener),g=void 0,L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(u(p,v),...t),await(async()=>{if(!u(h,v)){for(f(h,v,1);!a((t=u(p,v),A=t.shift()));)try{await A()}catch(t){y?.(t)}f(h,v,0)}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(L[d]=()=>w),i(L)})(t,(async()=>{const t=await fetch(o);return g=w(t),y(await t.text())}),(async t=>{return await fetch(r,{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 e=await fetch(o,{method:"HEAD"}),s=w(e);a(g)||a(s)||s==g||(g=s,t())}),1e3*d)),(t=>e(t)),v,["getUrls",[o,r]])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a=e(""),s=clearInterval,n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=Object,i=t=>r.getPrototypeOf(t),c=r.keys,y=r.freeze,d=t=>(t=>!n(t)&&o(i(t),(t=>t==r.prototype||n(i(t))),(()=>!0)))(t)&&0==(t=>c(t).length)(t),l=JSON.parse,p=t=>new Map(t),u=(t,e)=>t?.get(e),f=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},h=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),u(t,e)},g=p(),w=p(),v=t=>t.headers.get("ETag");t.createRemotePersister=(t,i,c,p=5,A)=>{let C;return((t,s,r,i,c,l,p,[v,A]=[],C=[])=>{let S,T,b,m=0,L=0;h(g,C,(()=>0)),h(w,C,(()=>[]));const O=(p?t.getMergeableContent:null)??t.getContent,x=t.getTransactionChanges,M=async t=>(2!=m&&(m=1,await P.schedule((async()=>{await t(),m=0}))),P),P={load:async(n,o)=>await M((async()=>{try{const n=await s();(p&&(t=>e(t)==a)(n[0])?t.applyMergeableChanges:t.setContent)(n)}catch{t.setContent([n,o])}})),startAutoLoad:async(e={},a={})=>(P.stopAutoLoad(),await P.load(e,a),L=1,b=i((async(e,a)=>{if(a){const e=a();await M((async()=>t.applyChanges(e)))}else await M((async()=>{try{t.setContent(e?.()??await s())}catch(t){l?.(t)}}))})),P),stopAutoLoad:()=>(L&&(c(b),b=void 0,L=0),P),save:async t=>(1!=m&&(m=2,await P.schedule((async()=>{try{await r(O,t)}catch(t){l?.(t)}m=0}))),P),startAutoSave:async()=>(await P.stopAutoSave().save(),S=t.addDidFinishTransactionListener((()=>{const[t,e]=x();d(t)&&d(e)||P.save((()=>[t,e]))})),P),stopAutoSave:()=>(o(S,t.delListener),S=void 0,P),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(u(w,C),...t),await(async()=>{if(!u(g,C)){for(f(g,C,1);!n((t=u(w,C),T=t.shift()));)try{await T()}catch(t){l?.(t)}f(g,C,0)}var t})(),P),getStore:()=>t,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return v&&(P[v]=()=>A),y(P)})(t,(async()=>{const t=await fetch(i);return C=v(t),l(await t.text())}),(async t=>{return await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?r.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const e=await fetch(i,{method:"HEAD"}),a=v(e);n(C)||n(a)||a==C||(C=a,t())}),1e3*p)),(t=>s(t)),A,!1,["getUrls",[i,c]])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),E="_",p="_id",f=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",T=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==u(a),h=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),S=Object,b=a=>S.getPrototypeOf(a),C=S.entries,D=S.keys,g=S.freeze,I=(a=[])=>S.fromEntries(a),_=(...a)=>S.assign({},...a),M=(a,t)=>v(C(a),(([a,e])=>t(e,a))),F=a=>S.values(a),P=a=>u(D(a)),$=a=>(a=>!r(a)&&l(b(a),(a=>a==S.prototype||r(b(a))),(()=>!0)))(a)&&0==P(a),B=a=>new Map(a),W=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),x=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),H=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),k=(a,t,e)=>(R(a,t)||H(a,t,e()),j(a,t)),q=(a,t,e,s=H)=>(M(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J=m+"*FROM",U="FROM pragma_table_",V="WHERE",z=(a,t,e)=>{const n=B();return[async()=>q(n,I(await d(v(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+Q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(v(await a(m+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>H(n,t,q(k(n,t,B),e,((a,t,e)=>{e!=j(a,t)&&H(a,t,e)}),((a,t)=>H(a,t))))),((a,t)=>H(n,t))),async(t,e)=>((a,t)=>!r(j(j(n,a),t)))(t,e)?I(h(v(await a(J+f(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=Y();M(i??{},(a=>v(D(a??{}),(a=>G(y,a)))));const w=O(y);if(!l&&c&&A(w)&&R(n,t))return await a("DROP TABLE"+f(t)),void H(n,t);if(A(w)||R(n,t)){const s=j(n,t),i=Y(W(s));await d([...v(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${f(t)}ADD${f(e)}`),H(s,e,""))})),...!l&&o?v(O(i),(async n=>{n!=e&&(await a(`ALTER TABLE${f(t)}DROP${f(n)}`),H(s,n))})):[]])}else await a(`CREATE TABLE${f(t)}(${f(e)} PRIMARY KEY ON CONFLICT REPLACE${T(v(w,(a=>s+f(a))))});`),H(n,t,B([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+f(t)+"WHERE 1"):await d(M(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+f(t)+V+f(e)+"=?",[n]):A(w)||await K(a,t,e,D(s),[n,...F(s)])})));else if(A(w))R(n,t)&&await a("DELETE FROM"+f(t)+"WHERE 1");else{const s=h(W(j(n,t)),(a=>a!=e)),o=[],c=[];M(i??{},((a,t)=>{L(o,t,...v(s,(t=>a?.[t]))),L(c,t)})),await K(a,t,e,s,o),await a("DELETE FROM"+f(t)+V+f(e)+"NOT IN("+Q(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,o)=>await a("INSERT INTO"+f(t)+"("+f(e)+T(v(n,(a=>s+f(a))))+")VALUES"+w(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+f(e)+")DO UPDATE SET"+T(v(n,(a=>f(a)+"=excluded."+f(a))),s),o),Q=a=>T(v(a,(()=>"?")),s),X=JSON.parse,Z=B(),aa=B(),ta=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,u,d,E=0,p=0;k(Z,y,(()=>0)),k(aa,y,(()=>[]));const f=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=0}))),m),m={load:async(e,s)=>await f((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),p=1,d=s((async(e,s)=>{if(s){const t=s();await f((async()=>a.setTransactionChanges(t)))}else await f((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(p&&(n(d),d=void 0,p=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(l(w,a.delListener),w=void 0,m),schedule:async(...a)=>(L(j(aa,y),...a),await(async()=>{if(!j(Z,y)){for(H(Z,y,1);!r((a=j(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}H(Z,y,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(m[o]=()=>c),g(m)},ea="store",sa=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,u]=z(t,o,n);return ta(a,(async()=>await u((async()=>(await l(),X((await y(i,p))[E]?.[ea]??"null"))))),(async a=>await u((async()=>{var t;await l(),await w(i,p,{[E]:{[ea]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,c],c)},na=(a,t,e,s,n,[i,o,[c,l,y]],w,u,f)=>{const[m,T,v,A]=z(t,w,n),L=async(a,t)=>await d(x(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await v(e,s,c,n,i,t)}))),R=async(a,t)=>l?await v(y,p,{[E]:a},!0,!0,t):null;return ta(a,(async()=>await A((async()=>{await m();const a=await(async()=>I(h(await d(x(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await T(y,p))[E]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await m(),r(t)){const[t,e]=a();await L(t),await R(e)}else{const[a,e]=t();await L(a,!0),await R(e,!0)}}))),e,s,n,[f,u],u)},ia="json",oa="autoLoadIntervalSeconds",ca="rowIdColumnName",ra="tableId",la="tableName",ya={mode:ia,[oa]:1},wa={load:0,save:0,[la]:e+"_values"},ua=(a,t,e,s)=>{const n=B();return M(a,((a,i)=>{const o=w(F(_(t,y(a)?{[e]:a}:a)),0,P(t));r(o[0])||s(i,o[0])||H(n,i,o)})),n},da="pragma ",Ea="data_version",pa="schema_version",fa=(a,t,s,n,i,o,r,l,u="getDb")=>{let d,E,f;const[T,v,A,h]=(a=>{const t=(a=>_(ya,y(a)?{storeTableName:a}:a??{}))(a),s=t[oa];if(t.mode==ia){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(F(_(wa,o)),0,P(wa)),r=c[2],l=Y(r);return[0,s,[ua(n,{[ra]:null,[ca]:p},ra,(a=>G(l,a)&&a==r)),ua(i,{[la]:null,[ca]:p,deleteEmptyColumns:0,deleteEmptyTable:0},la,((a,t)=>G(l,t)&&t==r)),c],l]})(t);return(T?sa:na)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(da+Ea))[0][Ea],e=(await s(da+pa))[0][pa],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(E??=e)&&n==(f??=n)||(a(),d=t,E=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),n((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),d=E=null,i(t)}),r,A,O(h),l,u)};a.createSqliteWasmPersister=(a,t,e,s,n,i)=>fa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s="",n=",",i=t(s),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>c.all(a),p="_",f="_id",m=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",v=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),h=a=>0==E(a),L=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,g=a=>[...a?.values()??[]],C=(a,t)=>a?.delete(t),N=Object,b=a=>N.getPrototypeOf(a),S=N.entries,D=N.keys,I=N.freeze,M=(a=[])=>N.fromEntries(a),_=(...a)=>N.assign({},...a),P=(a,t)=>t in a,F=(a,t)=>A(S(a),(([a,e])=>t(e,a))),$=a=>N.values(a),B=a=>E(D(a)),W=a=>(a=>!l(a)&&y(b(a),(a=>a==N.prototype||l(b(a))),(()=>!0)))(a)&&0==B(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),k=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),q=(a,t,e)=>l(e)?(C(a,t),a):a?.set(t,e),Y=(a,t,e)=>(O(a,t)||q(a,t,e()),H(a,t)),G=(a,t,e,s=q)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>P(t,e)?0:s(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),V=T+"*FROM",z="FROM pragma_table_",K="WHERE",Q=(a,t,e,i)=>{const o=j();return[async()=>G(o,M(await d(A(await a("SELECT name "+z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(T+" name,type "+z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>q(o,t,G(Y(o,t,j),e,((a,t,e)=>{e!=H(a,t)&&q(a,t,e)}),((a,t)=>q(a,t))))),((a,t)=>q(o,t))),async(t,e)=>((a,t)=>!l(H(H(o,a),t)))(t,e)?M(L(A(await a(V+m(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!W(t)))):{},async(t,e,c,r,y,w=!1)=>{const u=J();F(c??{},(a=>A(D(a??{}),(a=>U(u,a)))));const E=g(u);if(!w&&y&&h(E)&&O(o,t))return await a("DROP TABLE"+m(t)),void q(o,t);if(h(E)||O(o,t)){const n=H(o,t),i=J(x(n));await d([...A(E,(async e=>{C(i,e)||(await a(`ALTER TABLE${m(t)}ADD${m(e)}`),q(n,e,s))})),...!w&&r?A(g(i),(async s=>{s!=e&&(await a(`ALTER TABLE${m(t)}DROP${m(s)}`),q(n,s))})):[]])}else await a(`CREATE TABLE${m(t)}(${m(e)} PRIMARY KEY ON CONFLICT REPLACE${v(A(E,(a=>n+m(a))))});`),q(o,t,j([[e,s],...A(E,(a=>[a,s]))]));if(w)l(c)?await a("DELETE FROM"+m(t)+"WHERE 1"):await d(F(c,(async(s,n)=>{l(s)?await a("DELETE FROM"+m(t)+K+m(e)+"=?",[n]):h(E)||await X(a,t,e,D(s),[n,...$(s)],i)})));else if(h(E))O(o,t)&&await a("DELETE FROM"+m(t)+"WHERE 1");else{const s=L(x(H(o,t)),(a=>a!=e)),n=[],i=[];F(c??{},((a,t)=>{R(n,t,...A(s,(t=>a?.[t]))),R(i,t)})),await X(a,t,e,s,n),await a("DELETE FROM"+m(t)+K+m(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?s:"OR REPLACE ")+"INTO"+m(t)+"("+m(e)+v(A(i,(a=>n+m(a))))+")VALUES"+u(o(`,(?${o(",?",E(i))})`,E(c)/(E(i)+1)),1)+(r?"ON CONFLICT("+m(e)+")DO UPDATE SET"+v(A(i,(a=>m(a)+"=excluded."+m(a))),n):s),A(c,(a=>a??null))),Z=a=>v(A(a,(()=>"?")),n),aa=JSON.parse,ta=j(),ea=j(),sa=(a,t,e,s,n,i,o,[c,r]=[],u=[])=>{let E,d,p,f=0,m=0;Y(ta,u,(()=>0)),Y(ea,u,(()=>[]));const T=(o?a.getMergeableContent:null)??a.getContent,v=a.getTransactionChanges,A=async a=>(2!=f&&(f=1,await h.schedule((async()=>{await a(),f=0}))),h),h={load:async(e,s)=>await A((async()=>{try{const e=await t();(o&&w(e[0])?a.applyMergeableChanges:a.setContent)(e)}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(h.stopAutoLoad(),await h.load(e,n),m=1,p=s((async(e,s)=>{if(s){const t=s();await A((async()=>a.applyChanges(t)))}else await A((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),h),stopAutoLoad:()=>(m&&(n(p),p=void 0,m=0),h),save:async a=>(1!=f&&(f=2,await h.schedule((async()=>{try{await e(T,a)}catch(a){i?.(a)}f=0}))),h),startAutoSave:async()=>(await h.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const[a,t]=v();W(a)&&W(t)||h.save((()=>[a,t]))})),h),stopAutoSave:()=>(y(E,a.delListener),E=void 0,h),schedule:async(...a)=>(R(H(ea,u),...a),await(async()=>{if(!H(ta,u)){for(q(ta,u,1);!l((a=H(ea,u),d=a.shift()));)try{await d()}catch(a){i?.(a)}q(ta,u,0)}var a})(),h),getStore:()=>a,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(h[c]=()=>r),I(h)},na="store",ia=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,u]=Q(t,o,n);return sa(a,(async()=>await u((async()=>(await l(),aa((await y(i,f))[p]?.[na]??"null"))))),(async a=>await u((async()=>{var t;await l(),await w(i,f,{[p]:{[na]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,!1,[r,c],c)},oa=(a,t,e,s,n,[i,o,[c,r,y]],w,u,E,m)=>{const[T,v,A,h]=Q(t,w,n,m),R=async(a,t)=>await d(k(o,(async([e,s,n,i],o)=>{t&&!P(a,o)||await A(e,s,a[o],n,i,t)}))),O=async(a,t)=>r?await A(y,f,{[p]:a},!0,!0,t):null;return sa(a,(async()=>await h((async()=>{await T();const a=await(async()=>M(L(await d(k(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>c?(await v(y,f))[p]:{})();return W(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await T(),l(t)){const[t,e]=a();await R(t),await O(e)}else{const[a,e]=t();await R(a,!0),await O(e,!0)}}))),e,s,n,!1,[E,u],u)},ca="json",ra="autoLoadIntervalSeconds",la="rowIdColumnName",ya="tableId",wa="tableName",ua={mode:ca,[ra]:1},Ea={load:0,save:0,[wa]:e+"_values"},da=(a,t,e,s)=>{const n=j();return F(a,((a,i)=>{const o=u($(_(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||s(i,o[0])||q(n,i,o)})),n},pa="pragma ",fa="data_version",ma="schema_version",Ta=(a,t,s,n,i,o,c,l,y="getDb",E)=>{let d,p,m;const[v,A,h,L]=(a=>{const t=(a=>_(ua,w(a)?{storeTableName:a}:a??{}))(a),s=t[ra];if(t.mode==ca){const{storeTableName:a=e}=t;return[1,s,[a],J(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=u($(_(Ea,o)),0,B(Ea)),r=c[2],l=J(r);return[0,s,[da(n,{[ya]:null,[la]:f},ya,(a=>U(l,a)&&a==r)),da(i,{[wa]:null,[la]:f,deleteEmptyColumns:0,deleteEmptyTable:0},wa,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(v?ia:oa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(pa+fa))[0][fa],e=(await s(pa+ma))[0][ma],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&n==(m??=n)||(a(),d=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,h,g(L),l,y,E)};a.createSqliteWasmPersister=(a,t,e,s,n,i)=>Ta(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),u=a=>a.length,E=async a=>o.all(a),d="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==u(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),S=Object,g=a=>S.getPrototypeOf(a),C=S.entries,D=S.keys,b=S.freeze,I=(a=[])=>S.fromEntries(a),F=(...a)=>S.assign({},...a),M=(a,t)=>m(C(a),(([a,e])=>t(e,a))),P=a=>S.values(a),$=a=>u(D(a)),_=a=>(a=>!r(a)&&l(g(a),(a=>a==S.prototype||r(g(a))),(()=>!0)))(a)&&0==$(a),B=a=>new Map(a),H=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),x=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),Y=(a,t,e)=>(O(a,t)||W(a,t,e()),j(a,t)),k=(a,t,e,s=W)=>(M(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),q=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J=T+"*FROM",U="FROM pragma_table_",z="WHERE",K=(a,t,e)=>{const n=B();return[async()=>k(n,I(await E(m(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+Q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(T+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,k(Y(n,t,B),e,((a,t,e)=>{e!=j(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!r(j(j(n,a),t)))(t,e)?I(L(m(await a(J+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!_(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=q();M(i??{},(a=>m(D(a??{}),(a=>G(y,a)))));const w=R(y);if(!l&&c&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void W(n,t);if(A(w)||O(n,t)){const s=j(n,t),i=q(H(s));await E([...m(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),W(s,e,""))})),...!l&&o?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),W(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(w,(a=>s+p(a))))});`),W(n,t,B([[e,""],...m(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(M(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+z+p(e)+"=?",[n]):A(w)||await V(a,t,e,D(s),[n,...P(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=L(H(j(n,t)),(a=>a!=e)),o=[],c=[];M(i??{},((a,t)=>{h(o,t,...m(s,(t=>a?.[t]))),h(c,t)})),await V(a,t,e,s,o),await a("DELETE FROM"+p(t)+z+p(e)+"NOT IN("+Q(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},V=async(a,t,e,n,o)=>await a("INSERT INTO"+p(t)+"("+p(e)+v(m(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+v(m(n,(a=>p(a)+"=excluded."+p(a))),s),o),Q=a=>v(m(a,(()=>"?")),s),X=JSON.parse,Z=B(),aa=B(),ta=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,u,E,d=0,f=0;Y(Z,y,(()=>0)),Y(aa,y,(()=>[]));const p=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,E=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(E),E=void 0,f=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(j(aa,y),...a),await(async()=>{if(!j(Z,y)){for(W(Z,y,1);!r((a=j(aa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}W(Z,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),b(T)},ea="store",sa=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,u]=K(t,o,n);return ta(a,(async()=>await u((async()=>(await l(),X((await y(i,f))[d]?.[ea]??"null"))))),(async a=>await u((async()=>{var t;await l(),await w(i,f,{[d]:{[ea]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,c],c)},na=(a,t,e,s,n,[i,o,[c,l,y]],w,u,p)=>{const[T,v,m,A]=K(t,w,n),h=async(a,t)=>await E(x(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await m(e,s,c,n,i,t)}))),O=async(a,t)=>l?await m(y,f,{[d]:a},!0,!0,t):null;return ta(a,(async()=>await A((async()=>{await T();const a=await(async()=>I(L(await E(x(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>c?(await v(y,f))[d]:{})();return _(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await T(),r(t)){const[t,e]=a();await h(t),await O(e)}else{const[a,e]=t();await h(a,!0),await O(e,!0)}}))),e,s,n,[p,u],u)},ia="json",oa="autoLoadIntervalSeconds",ca="rowIdColumnName",ra="tableId",la="tableName",ya={mode:ia,[oa]:1},wa={load:0,save:0,[la]:e+"_values"},ua=(a,t,e,s)=>{const n=B();return M(a,((a,i)=>{const o=w(P(F(t,y(a)?{[e]:a}:a)),0,$(t));r(o[0])||s(i,o[0])||W(n,i,o)})),n},Ea="pragma ",da="data_version",fa="schema_version",pa=(a,t,s,n,i,o,r,l,u="getDb")=>{let E,d,p;const[v,m,A,L]=(a=>{const t=(a=>F(ya,y(a)?{storeTableName:a}:a??{}))(a),s=t[oa];if(t.mode==ia){const{storeTableName:a=e}=t;return[1,s,[a],q(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(P(F(wa,o)),0,$(wa)),r=c[2],l=q(r);return[0,s,[ua(n,{[ra]:null,[ca]:f},ra,(a=>G(l,a)&&a==r)),ua(i,{[la]:null,[ca]:f,deleteEmptyColumns:0,deleteEmptyTable:0},la,((a,t)=>G(l,t)&&t==r)),c],l]})(t);return(v?sa:na)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+da))[0][da],e=(await s(Ea+fa))[0][fa],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(d??=e)&&n==(p??=n)||(a(),E=t,d=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=d=null,i(t)}),r,A,R(L),l,u)},Ta="change";a.createSqlite3Persister=(a,t,e,s,n)=>pa(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t))),new o(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(Ta,e),e}),(a=>t.off(Ta,a)),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",m=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),h=a=>0==E(a),L=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,g=a=>[...a?.values()??[]],C=(a,t)=>a?.delete(t),N=Object,S=a=>N.getPrototypeOf(a),b=N.entries,D=N.keys,I=N.freeze,M=(a=[])=>N.fromEntries(a),P=(...a)=>N.assign({},...a),F=(a,t)=>t in a,$=(a,t)=>A(b(a),(([a,e])=>t(e,a))),_=a=>N.values(a),B=a=>E(D(a)),H=a=>(a=>!l(a)&&y(S(a),(a=>a==N.prototype||l(S(a))),(()=>!0)))(a)&&0==B(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),Y=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>l(e)?(C(a,t),a):a?.set(t,e),q=(a,t,e)=>(O(a,t)||k(a,t,e()),W(a,t)),G=(a,t,e,n=k)=>($(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),z=v+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,e,i)=>{const o=j();return[async()=>G(o,M(await d(A(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,M(A(await a(v+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(o,t,G(q(o,t,j),e,((a,t,e)=>{e!=W(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(o,t))),async(t,e)=>((a,t)=>!l(W(W(o,a),t)))(t,e)?M(L(A(await a(z+T(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!H(t)))):{},async(t,e,c,r,y,w=!1)=>{const u=J();$(c??{},(a=>A(D(a??{}),(a=>U(u,a)))));const E=g(u);if(!w&&y&&h(E)&&O(o,t))return await a("DROP TABLE"+T(t)),void k(o,t);if(h(E)||O(o,t)){const s=W(o,t),i=J(x(s));await d([...A(E,(async e=>{C(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),k(s,e,n))})),...!w&&r?A(g(i),(async n=>{n!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(n)}`),k(s,n))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${m(A(E,(a=>s+T(a))))});`),k(o,t,j([[e,n],...A(E,(a=>[a,n]))]));if(w)l(c)?await a("DELETE FROM"+T(t)+"WHERE 1"):await d($(c,(async(n,s)=>{l(n)?await a("DELETE FROM"+T(t)+V+T(e)+"=?",[s]):h(E)||await X(a,t,e,D(n),[s,..._(n)],i)})));else if(h(E))O(o,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=L(x(W(o,t)),(a=>a!=e)),s=[],i=[];$(c??{},((a,t)=>{R(s,t,...A(n,(t=>a?.[t]))),R(i,t)})),await X(a,t,e,n,s),await a("DELETE FROM"+T(t)+V+T(e)+"NOT IN("+Z(i)+")",i)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},X=async(a,t,e,i,c,r=!0)=>await a("INSERT "+(r?n:"OR REPLACE ")+"INTO"+T(t)+"("+T(e)+m(A(i,(a=>s+T(a))))+")VALUES"+u(o(`,(?${o(",?",E(i))})`,E(c)/(E(i)+1)),1)+(r?"ON CONFLICT("+T(e)+")DO UPDATE SET"+m(A(i,(a=>T(a)+"=excluded."+T(a))),s):n),A(c,(a=>a??null))),Z=a=>m(A(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),na=(a,t,e,n,s,i,o,[c,r]=[],u=[])=>{let E,d,p,f=0,T=0;q(ta,u,(()=>0)),q(ea,u,(()=>[]));const v=(o?a.getMergeableContent:null)??a.getContent,m=a.getTransactionChanges,A=async a=>(2!=f&&(f=1,await h.schedule((async()=>{await a(),f=0}))),h),h={load:async(e,n)=>await A((async()=>{try{const e=await t();(o&&w(e[0])?a.applyMergeableChanges:a.setContent)(e)}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(h.stopAutoLoad(),await h.load(e,s),T=1,p=n((async(e,n)=>{if(n){const t=n();await A((async()=>a.applyChanges(t)))}else await A((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),h),stopAutoLoad:()=>(T&&(s(p),p=void 0,T=0),h),save:async a=>(1!=f&&(f=2,await h.schedule((async()=>{try{await e(v,a)}catch(a){i?.(a)}f=0}))),h),startAutoSave:async()=>(await h.stopAutoSave().save(),E=a.addDidFinishTransactionListener((()=>{const[a,t]=m();H(a)&&H(t)||h.save((()=>[a,t]))})),h),stopAutoSave:()=>(y(E,a.delListener),E=void 0,h),schedule:async(...a)=>(R(W(ea,u),...a),await(async()=>{if(!W(ta,u)){for(k(ta,u,1);!l((a=W(ea,u),d=a.shift()));)try{await d()}catch(a){i?.(a)}k(ta,u,0)}var a})(),h),getStore:()=>a,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(h[c]=()=>r),I(h)},sa="store",ia=(a,t,e,n,s,[i],o,c,r)=>{const[l,y,w,u]=Q(t,o,s);return na(a,(async()=>await u((async()=>(await l(),aa((await y(i,f))[p]?.[sa]??"null"))))),(async a=>await u((async()=>{var t;await l(),await w(i,f,{[p]:{[sa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,!1,[r,c],c)},oa=(a,t,e,n,s,[i,o,[c,r,y]],w,u,E,T)=>{const[v,m,A,h]=Q(t,w,s,T),R=async(a,t)=>await d(Y(o,(async([e,n,s,i],o)=>{t&&!F(a,o)||await A(e,n,a[o],s,i,t)}))),O=async(a,t)=>r?await A(y,f,{[p]:a},!0,!0,t):null;return na(a,(async()=>await h((async()=>{await v();const a=await(async()=>M(L(await d(Y(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!H(a[1])))))(),t=await(async()=>c?(await m(y,f))[p]:{})();return H(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await h((async()=>{if(await v(),l(t)){const[t,e]=a();await R(t),await O(e)}else{const[a,e]=t();await R(a,!0),await O(e,!0)}}))),e,n,s,!1,[E,u],u)},ca="json",ra="autoLoadIntervalSeconds",la="rowIdColumnName",ya="tableId",wa="tableName",ua={mode:ca,[ra]:1},Ea={load:0,save:0,[wa]:e+"_values"},da=(a,t,e,n)=>{const s=j();return $(a,((a,i)=>{const o=u(_(P(t,w(a)?{[e]:a}:a)),0,B(t));l(o[0])||n(i,o[0])||k(s,i,o)})),s},pa="pragma ",fa="data_version",Ta="schema_version",va=(a,t,n,s,i,o,c,l,y="getDb",E)=>{let d,p,T;const[m,A,h,L]=(a=>{const t=(a=>P(ua,w(a)?{storeTableName:a}:a??{}))(a),n=t[ra];if(t.mode==ca){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:o={}}=t,c=u(_(P(Ea,o)),0,B(Ea)),r=c[2],l=J(r);return[0,n,[da(s,{[ya]:null,[la]:f},ya,(a=>U(l,a)&&a==r)),da(i,{[wa]:null,[la]:f,deleteEmptyColumns:0,deleteEmptyTable:0},wa,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(m?ia:oa)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(pa+fa))[0][fa],e=(await n(pa+Ta))[0][Ta],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&s==(T??=s)||(a(),d=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=p=null,i(t)}),c,h,g(L),l,y,E)},ma="change";a.createSqlite3Persister=(a,t,e,n,s)=>va(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new c(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(ma,e),e}),(a=>t.off(ma,a)),n,s,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});