tinybase 9.4.0-beta.1 → 9.4.0

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 (239) hide show
  1. package/@types/persisters/index.d.ts +4 -0
  2. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -2
  3. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +9 -2
  4. package/@types/persisters/with-schemas/index.d.ts +4 -0
  5. package/@types/queries/index.d.ts +4 -0
  6. package/@types/queries/with-schemas/index.d.ts +4 -0
  7. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +7 -3
  8. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +7 -3
  9. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +9 -3
  10. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +9 -3
  11. package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +6 -3
  12. package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +6 -3
  13. package/@types/ui-react-dom/index.d.ts +10 -10
  14. package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
  15. package/@types/ui-react-dom-charts/index.d.ts +7 -7
  16. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +7 -7
  17. package/@types/ui-react-inspector/index.d.ts +1 -1
  18. package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
  19. package/@types/ui-solid-dom/index.d.ts +10 -10
  20. package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
  21. package/@types/ui-solid-inspector/index.d.ts +1 -1
  22. package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
  23. package/@types/ui-svelte-dom/index.d.ts +10 -10
  24. package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
  25. package/@types/ui-svelte-inspector/index.d.ts +1 -1
  26. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
  27. package/index.js +191 -74
  28. package/min/index.js +1 -1
  29. package/min/index.js.gz +0 -0
  30. package/min/omni/index.js +1 -1
  31. package/min/omni/index.js.gz +0 -0
  32. package/min/omni/with-schemas/index.js +1 -1
  33. package/min/omni/with-schemas/index.js.gz +0 -0
  34. package/min/persisters/index.js +1 -1
  35. package/min/persisters/index.js.gz +0 -0
  36. package/min/persisters/persister-automerge/index.js +1 -1
  37. package/min/persisters/persister-automerge/index.js.gz +0 -0
  38. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  39. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  40. package/min/persisters/persister-browser/index.js +1 -1
  41. package/min/persisters/persister-browser/index.js.gz +0 -0
  42. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  45. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  46. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  49. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  50. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  53. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  54. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-electric-sql/index.js +1 -1
  57. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  58. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  61. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  62. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-file/index.js +1 -1
  65. package/min/persisters/persister-file/index.js.gz +0 -0
  66. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-indexed-db/index.js +1 -1
  69. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  70. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-libsql/index.js +1 -1
  73. package/min/persisters/persister-libsql/index.js.gz +0 -0
  74. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-partykit-client/index.js +1 -1
  77. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  78. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-pglite/index.js +1 -1
  81. package/min/persisters/persister-pglite/index.js.gz +0 -0
  82. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/persister-postgres/index.js +1 -1
  85. package/min/persisters/persister-postgres/index.js.gz +0 -0
  86. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  87. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  88. package/min/persisters/persister-powersync/index.js +1 -1
  89. package/min/persisters/persister-powersync/index.js.gz +0 -0
  90. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  91. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  92. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  93. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  94. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  95. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  96. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  97. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  98. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  99. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  100. package/min/persisters/persister-remote/index.js +1 -1
  101. package/min/persisters/persister-remote/index.js.gz +0 -0
  102. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  103. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  104. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  105. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  106. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  107. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  108. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  109. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  110. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-sqlite3/index.js +1 -1
  113. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  114. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-yjs/index.js +1 -1
  117. package/min/persisters/persister-yjs/index.js.gz +0 -0
  118. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/with-schemas/index.js +1 -1
  121. package/min/persisters/with-schemas/index.js.gz +0 -0
  122. package/min/queries/index.js +1 -1
  123. package/min/queries/index.js.gz +0 -0
  124. package/min/queries/with-schemas/index.js +1 -1
  125. package/min/queries/with-schemas/index.js.gz +0 -0
  126. package/min/synchronizers/index.js +1 -1
  127. package/min/synchronizers/index.js.gz +0 -0
  128. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  129. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  130. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  131. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  132. package/min/synchronizers/synchronizer-local/index.js +1 -1
  133. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  134. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  135. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  136. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  137. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  138. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  139. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  140. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  141. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  142. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  143. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  144. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  145. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  146. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  147. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  148. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  149. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  150. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  151. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  152. package/min/synchronizers/with-schemas/index.js +1 -1
  153. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  154. package/min/ui-react-inspector/index.js +1 -1
  155. package/min/ui-react-inspector/index.js.gz +0 -0
  156. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  157. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  158. package/min/ui-solid-inspector/index.js +1 -1
  159. package/min/ui-solid-inspector/index.js.gz +0 -0
  160. package/min/ui-solid-inspector/with-schemas/index.js +1 -1
  161. package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
  162. package/min/ui-svelte-inspector/index.js +1 -1
  163. package/min/ui-svelte-inspector/index.js.gz +0 -0
  164. package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
  165. package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
  166. package/min/with-schemas/index.js +1 -1
  167. package/min/with-schemas/index.js.gz +0 -0
  168. package/omni/index.js +606 -179
  169. package/omni/with-schemas/index.js +606 -179
  170. package/package.json +12 -8
  171. package/persisters/index.js +49 -10
  172. package/persisters/persister-automerge/index.js +29 -5
  173. package/persisters/persister-automerge/with-schemas/index.js +29 -5
  174. package/persisters/persister-browser/index.js +29 -5
  175. package/persisters/persister-browser/with-schemas/index.js +29 -5
  176. package/persisters/persister-cr-sqlite-wasm/index.js +29 -5
  177. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +29 -5
  178. package/persisters/persister-durable-object-sql-storage/index.js +44 -8
  179. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +44 -8
  180. package/persisters/persister-durable-object-storage/index.js +31 -5
  181. package/persisters/persister-durable-object-storage/with-schemas/index.js +31 -5
  182. package/persisters/persister-electric-sql/index.js +29 -5
  183. package/persisters/persister-electric-sql/with-schemas/index.js +29 -5
  184. package/persisters/persister-expo-sqlite/index.js +29 -5
  185. package/persisters/persister-expo-sqlite/with-schemas/index.js +29 -5
  186. package/persisters/persister-file/index.js +31 -5
  187. package/persisters/persister-file/with-schemas/index.js +31 -5
  188. package/persisters/persister-indexed-db/index.js +29 -5
  189. package/persisters/persister-indexed-db/with-schemas/index.js +29 -5
  190. package/persisters/persister-libsql/index.js +29 -5
  191. package/persisters/persister-libsql/with-schemas/index.js +29 -5
  192. package/persisters/persister-partykit-client/index.js +31 -5
  193. package/persisters/persister-partykit-client/with-schemas/index.js +31 -5
  194. package/persisters/persister-pglite/index.js +49 -10
  195. package/persisters/persister-pglite/with-schemas/index.js +49 -10
  196. package/persisters/persister-postgres/index.js +49 -10
  197. package/persisters/persister-postgres/with-schemas/index.js +49 -10
  198. package/persisters/persister-powersync/index.js +29 -5
  199. package/persisters/persister-powersync/with-schemas/index.js +29 -5
  200. package/persisters/persister-react-native-mmkv/index.js +31 -5
  201. package/persisters/persister-react-native-mmkv/with-schemas/index.js +31 -5
  202. package/persisters/persister-react-native-sqlite/index.js +29 -5
  203. package/persisters/persister-react-native-sqlite/with-schemas/index.js +29 -5
  204. package/persisters/persister-remote/index.js +31 -5
  205. package/persisters/persister-remote/with-schemas/index.js +31 -5
  206. package/persisters/persister-sqlite-bun/index.js +29 -5
  207. package/persisters/persister-sqlite-bun/with-schemas/index.js +29 -5
  208. package/persisters/persister-sqlite-wasm/index.js +29 -5
  209. package/persisters/persister-sqlite-wasm/with-schemas/index.js +29 -5
  210. package/persisters/persister-sqlite3/index.js +29 -5
  211. package/persisters/persister-sqlite3/with-schemas/index.js +29 -5
  212. package/persisters/persister-yjs/index.js +29 -5
  213. package/persisters/persister-yjs/with-schemas/index.js +29 -5
  214. package/persisters/with-schemas/index.js +49 -10
  215. package/queries/index.js +205 -74
  216. package/queries/with-schemas/index.js +205 -74
  217. package/readme.md +14 -14
  218. package/releases.md +84 -67
  219. package/synchronizers/index.js +31 -5
  220. package/synchronizers/synchronizer-broadcast-channel/index.js +39 -13
  221. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +39 -13
  222. package/synchronizers/synchronizer-local/index.js +31 -5
  223. package/synchronizers/synchronizer-local/with-schemas/index.js +31 -5
  224. package/synchronizers/synchronizer-ws-client/index.js +220 -61
  225. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +220 -61
  226. package/synchronizers/synchronizer-ws-server/index.js +253 -73
  227. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +253 -73
  228. package/synchronizers/synchronizer-ws-server-durable-object/index.js +88 -40
  229. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +88 -40
  230. package/synchronizers/synchronizer-ws-server-simple/index.js +184 -60
  231. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +184 -60
  232. package/synchronizers/with-schemas/index.js +31 -5
  233. package/ui-react-inspector/index.js +29 -5
  234. package/ui-react-inspector/with-schemas/index.js +29 -5
  235. package/ui-solid-inspector/index.js +29 -5
  236. package/ui-solid-inspector/with-schemas/index.js +29 -5
  237. package/ui-svelte-inspector/index.js +29 -5
  238. package/ui-svelte-inspector/with-schemas/index.js +29 -5
  239. package/with-schemas/index.js +191 -74
@@ -1 +1 @@
1
- const t=t=>typeof t,a="",n=t(a),s="t",e="v",r=Promise,i=t=>(a,n,s)=>t(a)?s?.():n(a),o=globalThis,c=t=>null==t,y=t=>void 0===t,u=t=>null===t,w=i(c),l=i(y),d=a=>t(a)==n,f=t=>Array.isArray(t),v=(t,a,n)=>t.slice(a,n),h=t=>t.length,g=t=>0==h(t),p=()=>{},_=t=>new r(t),S=(t,a)=>t.forEach(a),A=(t,a=h(t))=>t.splice(0,a),b=(t,...a)=>t.push(...a),L=(t,n)=>{throw((t,n)=>Error("tinybase:"+t+(y(n)?a:":"+n)))(t,n)},O=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},P=async(t,a)=>{try{return await t()}finally{await a()}},E=Object,m=t=>E.getPrototypeOf(t),x=E.keys,T=E.freeze,z=(t,a,n)=>(E.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),C=(t=[])=>{const a=E.create(null);return S(t,([t,n])=>z(a,t,n)),a},D=(t,a)=>S(x(t),n=>a(t[n],n)),J=t=>(t=>!c(t)&&w(m(t),t=>t==E.prototype||c(m(t)),()=>!0))(t)&&0==(t=>h(x(t)))(t),M=(t,a,n)=>(((t,a)=>E.hasOwn(t,a))(t,a)||z(t,a,n()),t[a]),N=JSON.stringify,j=JSON.parse,k=t=>y(t)||0==(t=>t?.size??0)(t),F=(t,a)=>t?.forEach(a),W=(t,a)=>t?.delete(a),$=Map,q=t=>new $(t),B=(t,a)=>t?.get(a),G=(t,a)=>F(t,(t,n)=>a(n,t)),H=(t,a,n)=>y(n)?(W(t,a),t):t?.set(a,n),I=(t,a,n,s)=>{let e=B(t,a);var r,i;return r=t,i=a,r?.has(i)?s?.(e):H(t,a,e=n()),e},K=(t,a,n,s,e=0)=>l((n?I:B)(t,a[e],e>h(a)-2?n:q),r=>{if(e>h(a)-2)return s?.(r)&&H(t,a[e]),r;const i=K(r,a,n,s,e+1);return k(r)&&H(t,a[e]),i});new o.TextEncoder;const Q=(t,a,n)=>{a>t[1]&&(t[1]=a),t[2]=n>>>0},R=/^\d+$/,U=t=>new Set(f(t)||y(t)?t:[t]),V=q(),X=q(),Y=q(),Z=(t,n,s,e,r,i,o,c={},w=0,d=[])=>{let v,p,E,m,x,z=0,C=0,D=0,M=0,N=0,j=0,$=0,G=0,Q=0;const Z={},tt=c.destroy;I(V,d,()=>0),I(X,d,()=>[]),H(Y,d,(B(Y,d)??0)+1);const at=q(),[nt,st,et,rt,it]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!J(t)||!J(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!J(t)||!J(a),a.setContent]:L(0))(o,t,w),[ot,ct,yt]=(t=>{let n;const[s,e]=(()=>{const t=[];let n=0;return[s=>(s?t.shift():null)??a+n++,a=>{R.test(a)&&h(t)<1e3&&b(t,a)}]})(),r=q(),i=(t,s,e,i)=>{let o,c=!1;if(S(((t,n=[a])=>{const s=[],e=(t,a)=>a==h(n)?b(s,t):u(n[a])?F(t,t=>e(t,a+1)):S([n[a],null],n=>e(B(t,n),a+1));return e(t,0),s})(s,e),a=>F(a,a=>{const s=()=>B(r,a)[0](n,...e??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(s):s()})),c)throw o};return[(e,i,o,c=[],y=()=>[])=>{n??=t();const u=s(1);var w,l;return H(r,u,[e,i,o,c,y]),w=K(i,o??[a],U),l=u,w?.add(l),u},(t,a,...n)=>i(!1,t,a,n),t=>l(B(r,t),([,n,s])=>(K(n,s??[a],void 0,a=>(W(a,t),k(a)?1:0)),H(r,t),e(t),s)),t=>l(B(r,t),([t,,a=[],s,e])=>{const r=(...i)=>{const o=h(i);o==h(a)?t(n,...i,...e(i)):u(a[o])?S(s[o]?.(...i)??[],t=>r(...i,t)):r(...i,a[o])};r()}),(t,a,...n)=>i(!0,t,a,n)]})(()=>Pt),ut=t=>{t!=z&&(z=t,ct(at,void 0,z))},wt=()=>{B(Y,d)||B(V,d)||!g(B(X,d)??[])||(H(V,d),H(X,d),H(Y,d))},lt=a=>{(nt&&f(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{bt()&&t.__?.[0]?.()&&await _t()},ft=t=>P(()=>p=t,()=>{p==t&&(p=void 0)}),vt=async t=>(2!=z&&(await P(async()=>{ut(1),C++,await Ot(()=>O(async()=>{const a=await n();f(a)?lt(a):y(a)&&t?it(t):y(a)||L(1,a)},a=>{i?.(a),t&&it(t)}))},()=>ut(0)),await dt()),Pt),ht=async()=>{const t=$;$=0,t&&t==M&&!Q&&(2==z?$=t:await vt())},gt=async t=>{const a=++M;let n=!0;if(await pt(!0),a==M&&!Q){const s=O(async()=>{const t=await e(async(t,s)=>{if(a==M&&!Q)if(s||t){const a=n||2==z||!!j;N++,a&&j++,await P(async()=>{ut(1),C++,await(a?Ot(()=>lt(s??t)):(()=>{try{return lt(s??t)}finally{ut(0)}})())},()=>{a&&j--,--N||ut(0)}),N||await dt()}else 2==z?$=a:await vt()});a!=M||Q?y(t)||await r(t):v=t},i);await ft(s),a!=M||Q||await P(()=>vt(t),()=>{n=!1})}return Pt},pt=async(t=!1)=>{$=0,t||M++;const a=p,n=v;return v=void 0,await ft(P(async()=>{await a},async()=>{y(n)||await O(()=>r(n),i)})),Pt},_t=async t=>(1!=z&&await P(()=>P(async()=>{ut(2),D++,await Ot(()=>O(()=>s(st,t),i))},()=>ut(0)),ht),Pt),St=async()=>{const a=++G;return await At(!0),a!=G||Q||(await _t(),a!=G||Q||(E=t.addDidFinishTransactionListener(()=>{if(a==G&&!Q){const t=et();rt(t)&&O(()=>_t(t))}}))),Pt},At=async(a=!1)=>{a||G++;const n=E;return E=void 0,y(n)||t.delListener(n),Pt},bt=()=>!y(E),Lt=async(t=!1)=>{const[a,n]=t?[At,pt]:[pt,At];return await P(()=>a(),async()=>{await n()}),Pt},Ot=async(...t)=>{let a,n=!1;const s=_(s=>{return g(t)?s():b(B(X,d),...(e=t,r=(e,r)=>{const o=r==h(t)-1;return[async()=>{let t;x=_(a=>t=a),await P(async()=>{try{await O(e,i)}catch(t){n||(n=!0,a=t)}o&&s()},()=>{x=void 0,t()})},o?s:void 0,Z]},e.map(r)));var e,r});if(await(async()=>{if(!B(V,d)){H(V,d,1);const t=B(X,d);let a=0;await P(async()=>{for(;a<h(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{A(t,a),H(V,d,0),wt()})}})(),await s,n)throw a;return Pt},Pt={load:vt,startAutoLoad:gt,stopAutoLoad:pt,isAutoLoading:()=>!y(v),save:_t,startAutoSave:St,stopAutoSave:At,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,s]=a?[St,gt]:[gt,St];return await n(t),await s(t),Pt},stopAutoPersisting:Lt,getStatus:()=>z,addStatusListener:t=>ot(t,at),delListener:a=>(yt(a),t),schedule:Ot,getStore:()=>t,getStats:()=>({loads:C,saves:D}),...c,destroy:async()=>(y(m)&&(Q=1,m=(async()=>{const t=B(X,d),a=(n=([,t,a])=>a!=Z||(t?.(),!1),t.filter(n));var n;const s=x;A(t),b(t,...a),await P(()=>P(()=>P(Lt,()=>s),()=>tt?.()),()=>{const t=(B(Y,d)??1)-1;H(Y,d,t||void 0),wt()})})()),await m,Pt)};return T(Pt)},tt=()=>[C(),a,0],at=(t,a,n="",r)=>{const i=(t,...a)=>n+t+v(N(a),1,-1);return Z(t,async()=>{const t=tt(),r=tt();return G(await a.list({prefix:n}),(a,[i,o,c])=>l((t=>{if(r=n,t.startsWith(r)){const r=v(t,h(n),h(n)+1);if(r==s||r==e){const e=(()=>{try{return j("["+v(t,h(n)+1)+"]")}catch{return}})();if(f(e)&&h(e)<=(r==s?3:1)&&(a=d,e.every(a)))return[r,...e]}}var a,r})(a),([a,...n])=>a==s?l(n[0],a=>{const s=M(t[0],a,tt);l(n[1],t=>{const a=M(s[0],t,tt);l(n[2],t=>z(a[0],t,[i,o,c]),()=>Q(a,o,c))},()=>Q(s,o,c))},()=>Q(t,o,c)):a==e?l(n[0],t=>z(r[0],t,[i,o,c]),()=>Q(r,o,c)):0)),J(t[0])&&J(r[0])?void 0:[t,r]},async(t,[[n,r,o],[c,y,u]]=t())=>{const w=q();H(w,i(s),[0,r,o]),D(n,([t,a,n],e)=>{H(w,i(s,e),[0,a,n]),D(t,([t,a,n],r)=>{H(w,i(s,e,r),[0,a,n]),D(t,(t,a)=>H(w,i(s,e,r,a),t))})}),H(w,i(e),[0,y,u]),D(c,(t,a)=>H(w,i(e,a),t));const l=(t=>{const a=[];return G(t,(t,n)=>b(a,((t,a)=>[a,t])(n,t))),a})(w);await a.transaction(async t=>{for(let a=0;a<h(l);a+=128)await t.put(C(v(l,a,a+128)))})},p,p,r,2,{getStorage:()=>a})};export{at as createDurableObjectStoragePersister};
1
+ const t=t=>typeof t,a="",n=t(a),s="t",e="v",r=Promise,i=t=>(a,n,s)=>t(a)?s?.():n(a),o=globalThis,c=t=>null==t,w=t=>void 0===t,y=t=>null===t,u=i(c),l=i(w),d=a=>t(a)==n,f=t=>Array.isArray(t),v=(t,a,n)=>t.slice(a,n),h=t=>t.length,g=t=>0==h(t),p=()=>{},_=t=>new r(t),S=(t,a)=>t.forEach(a),A=(t,a=h(t))=>t.splice(0,a),b=(t,...a)=>t.push(...a),L=(t,n)=>{throw((t,n)=>Error("tinybase:"+t+(w(n)?a:":"+n)))(t,n)},O=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},P=(t,a)=>O(t,t=>{O(()=>a?.(t))}),E=async(t,a)=>{try{return await t()}finally{await a()}},m=Object,x=t=>m.getPrototypeOf(t),T=m.keys,z=m.freeze,C=(t,a,n)=>(m.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),D=(t=[])=>{const a=m.create(null);return S(t,([t,n])=>C(a,t,n)),a},J=(t,a)=>S(T(t),n=>a(t[n],n)),M=t=>(t=>!c(t)&&u(x(t),t=>t==m.prototype||c(x(t)),()=>!0))(t)&&0==(t=>h(T(t)))(t),N=(t,a,n)=>(((t,a)=>m.hasOwn(t,a))(t,a)||C(t,a,n()),t[a]),j=JSON.stringify,k=JSON.parse,F=t=>w(t)||0==(t=>t?.size??0)(t),W=(t,a)=>t?.forEach(a),$=(t,a)=>t?.delete(a),q=Map,B=t=>new q(t),G=(t,a)=>t?.get(a),H=(t,a)=>W(t,(t,n)=>a(n,t)),I=(t,a,n)=>w(n)?($(t,a),t):t?.set(a,n),K=(t,a,n,s)=>{let e=G(t,a);var r,i;return r=t,i=a,r?.has(i)?s?.(e):I(t,a,e=n()),e},Q=(t,a,n,s,e=0)=>l((n?K:G)(t,a[e],e>h(a)-2?n:B),r=>{if(e>h(a)-2)return s?.(r)&&I(t,a[e]),r;const i=Q(r,a,n,s,e+1);return F(r)&&I(t,a[e]),i});new o.TextEncoder;const R=(t,a,n)=>{a>t[1]&&(t[1]=a),t[2]=n>>>0},U=/^\d+$/,V=t=>new Set(f(t)||w(t)?t:[t]),X=B(),Y=B(),Z=B(),tt=(t,n,s,e,r,i,o,c={},u=0,d=[])=>{let v,p,m,x,T,C=0,D=0,J=0,N=0,j=0,k=0,q=0,H=0,R=0;const tt={},at=c.destroy;K(X,d,()=>0),K(Y,d,()=>[]),I(Z,d,(G(Z,d)??0)+1);const nt=B(),[st,et,rt,it,ot]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!M(t)||!M(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!M(t)||!M(a),a.setContent]:L(0))(o,t,u),[ct,wt,yt]=(t=>{let n;const[s,e]=(()=>{const t=[];let n=0;return[s=>(s?t.shift():null)??a+n++,a=>{U.test(a)&&h(t)<1e3&&b(t,a)}]})(),r=B(),i=(t,s,e,i)=>{let o,c=!1;if(S(((t,n=[a])=>{const s=[],e=(t,a)=>a==h(n)?b(s,t):y(n[a])?W(t,t=>e(t,a+1)):S([n[a],null],n=>e(G(t,n),a+1));return e(t,0),s})(s,e),a=>W(a,a=>{const s=()=>G(r,a)[0](n,...e??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(s):s()})),c)throw o};return[(e,i,o,c=[],w=()=>[])=>{n??=t();const y=s(1);var u,l;return I(r,y,[e,i,o,c,w]),u=Q(i,o??[a],V),l=y,u?.add(l),y},(t,a,...n)=>i(!1,t,a,n),t=>l(G(r,t),([,n,s])=>(Q(n,s??[a],void 0,a=>($(a,t),F(a)?1:0)),I(r,t),e(t),s)),t=>l(G(r,t),([t,,a=[],s,e])=>{const r=(...i)=>{const o=h(i);o==h(a)?t(n,...i,...e(i)):y(a[o])?S(s[o]?.(...i)??[],t=>r(...i,t)):r(...i,a[o])};r()}),(t,a,...n)=>i(!0,t,a,n)]})(()=>Et),ut=t=>{t!=C&&(C=t,wt(nt,void 0,C))},lt=()=>{G(Z,d)||G(X,d)||!g(G(Y,d)??[])||(I(X,d),I(Y,d),I(Z,d))},dt=a=>{(st&&f(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{Lt()&&t.__?.[0]?.()&&await St()},vt=t=>E(()=>p=t,()=>{p==t&&(p=void 0)}),ht=async t=>(2!=C&&(await E(async()=>{ut(1),D++,await Pt(()=>O(async()=>{const a=await n();f(a)?dt(a):w(a)&&t?ot(t):w(a)||L(1,a)},a=>{i?.(a),t&&ot(t)}))},()=>ut(0)),await ft()),Et),gt=async()=>{const t=q;q=0,t&&t==N&&!R&&(2==C?q=t:await ht())},pt=async t=>{const a=++N;let n=!0;if(await _t(!0),a==N&&!R){const s=O(async()=>{const t=await e(async(t,s)=>{if(a==N&&!R)if(s||t){const a=n||2==C||!!k;j++,a&&k++,await E(async()=>{ut(1),D++,await(a?Pt(()=>dt(s??t)):(()=>{try{return dt(s??t)}finally{ut(0)}})())},()=>{a&&k--,--j||ut(0)}),j||await ft()}else 2==C?q=a:await ht()});a!=N||R?w(t)||await r(t):v=t},i);await vt(s),a!=N||R||await E(()=>ht(t),()=>{n=!1})}return Et},_t=async(t=!1)=>{q=0,t||N++;const a=p,n=v;return v=void 0,await vt(E(async()=>{await a},async()=>{w(n)||await O(()=>r(n),i)})),Et},St=async t=>(1!=C&&await E(()=>E(async()=>{ut(2),J++,await Pt(()=>O(()=>s(et,t),i))},()=>ut(0)),gt),Et),At=async()=>{const a=++H;return await bt(!0),a!=H||R||(await St(),a!=H||R||(m=t.addDidFinishTransactionListener(()=>{if(a==H&&!R){const t=rt();it(t)&&O(()=>St(t))}}))),Et},bt=async(a=!1)=>{a||H++;const n=m;return m=void 0,w(n)||t.delListener(n),Et},Lt=()=>!w(m),Ot=async(t=!1)=>{const[a,n]=t?[bt,_t]:[_t,bt];return await E(()=>a(),async()=>{await n()}),Et},Pt=async(...t)=>{let a,n=!1;const s=_(s=>{return g(t)?s():b(G(Y,d),...(e=t,r=(e,r)=>{const o=r==h(t)-1;return[async()=>{let t;T=_(a=>t=a),await E(async()=>{try{await O(e,i)}catch(t){n||(n=!0,a=t)}o&&s()},()=>{T=void 0,t()})},o?s:void 0,tt]},e.map(r)));var e,r});if(await(async()=>{if(!G(X,d)){I(X,d,1);const t=G(Y,d);let a=0;await E(async()=>{for(;a<h(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{A(t,a),I(X,d,0),lt()})}})(),await s,n)throw a;return Et},Et={load:ht,startAutoLoad:pt,stopAutoLoad:_t,isAutoLoading:()=>!w(v),save:St,startAutoSave:At,stopAutoSave:bt,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[n,s,e,r]=a?[At,pt,bt,_t]:[pt,At,_t,bt],i=n(t),o=a?H:N;await i;const c=s(t),w=a?N:H;try{await c}catch(t){throw w==(a?N:H)&&await P(r),o==(a?H:N)&&await P(e),t}return Et},stopAutoPersisting:Ot,getStatus:()=>C,addStatusListener:t=>ct(t,nt),delListener:a=>(yt(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:D,saves:J}),...c,destroy:async()=>(w(x)&&(R=1,x=(async()=>{const t=G(Y,d),a=(n=([,t,a])=>a!=tt||(t?.(),!1),t.filter(n));var n;const s=T;A(t),b(t,...a),await E(()=>E(()=>E(Ot,()=>s),()=>at?.()),()=>{const t=(G(Z,d)??1)-1;I(Z,d,t||void 0),lt()})})()),await x,Et)};return z(Et)},at=()=>[D(),a,0],nt=(t,a,n="",r)=>{const i=(t,...a)=>n+t+v(j(a),1,-1);return tt(t,async()=>{const t=at(),r=at();return H(await a.list({prefix:n}),(a,[i,o,c])=>l((t=>{if(r=n,t.startsWith(r)){const r=v(t,h(n),h(n)+1);if(r==s||r==e){const e=(()=>{try{return k("["+v(t,h(n)+1)+"]")}catch{return}})();if(f(e)&&h(e)<=(r==s?3:1)&&(a=d,e.every(a)))return[r,...e]}}var a,r})(a),([a,...n])=>a==s?l(n[0],a=>{const s=N(t[0],a,at);l(n[1],t=>{const a=N(s[0],t,at);l(n[2],t=>C(a[0],t,[i,o,c]),()=>R(a,o,c))},()=>R(s,o,c))},()=>R(t,o,c)):a==e?l(n[0],t=>C(r[0],t,[i,o,c]),()=>R(r,o,c)):0)),M(t[0])&&M(r[0])?void 0:[t,r]},async(t,[[n,r,o],[c,w,y]]=t())=>{const u=B();I(u,i(s),[0,r,o]),J(n,([t,a,n],e)=>{I(u,i(s,e),[0,a,n]),J(t,([t,a,n],r)=>{I(u,i(s,e,r),[0,a,n]),J(t,(t,a)=>I(u,i(s,e,r,a),t))})}),I(u,i(e),[0,w,y]),J(c,(t,a)=>I(u,i(e,a),t));const l=(t=>{const a=[];return H(t,(t,n)=>b(a,((t,a)=>[a,t])(n,t))),a})(u);await a.transaction(async t=>{for(let a=0;a<h(l);a+=128)await t.put(D(v(l,a,a+128)))})},p,p,r,2,{getStorage:()=>a})};export{nt as createDurableObjectStoragePersister};
@@ -1 +1 @@
1
- const t=t=>typeof t,a="",n=t(a),s="t",e="v",r=Promise,i=t=>(a,n,s)=>t(a)?s?.():n(a),o=globalThis,c=t=>null==t,y=t=>void 0===t,u=t=>null===t,w=i(c),l=i(y),d=a=>t(a)==n,f=t=>Array.isArray(t),v=(t,a,n)=>t.slice(a,n),h=t=>t.length,g=t=>0==h(t),p=()=>{},_=t=>new r(t),S=(t,a)=>t.forEach(a),A=(t,a=h(t))=>t.splice(0,a),b=(t,...a)=>t.push(...a),L=(t,n)=>{throw((t,n)=>Error("tinybase:"+t+(y(n)?a:":"+n)))(t,n)},O=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},P=async(t,a)=>{try{return await t()}finally{await a()}},E=Object,m=t=>E.getPrototypeOf(t),x=E.keys,T=E.freeze,z=(t,a,n)=>(E.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),C=(t=[])=>{const a=E.create(null);return S(t,([t,n])=>z(a,t,n)),a},D=(t,a)=>S(x(t),n=>a(t[n],n)),J=t=>(t=>!c(t)&&w(m(t),t=>t==E.prototype||c(m(t)),()=>!0))(t)&&0==(t=>h(x(t)))(t),M=(t,a,n)=>(((t,a)=>E.hasOwn(t,a))(t,a)||z(t,a,n()),t[a]),N=JSON.stringify,j=JSON.parse,k=t=>y(t)||0==(t=>t?.size??0)(t),F=(t,a)=>t?.forEach(a),W=(t,a)=>t?.delete(a),$=Map,q=t=>new $(t),B=(t,a)=>t?.get(a),G=(t,a)=>F(t,(t,n)=>a(n,t)),H=(t,a,n)=>y(n)?(W(t,a),t):t?.set(a,n),I=(t,a,n,s)=>{let e=B(t,a);var r,i;return r=t,i=a,r?.has(i)?s?.(e):H(t,a,e=n()),e},K=(t,a,n,s,e=0)=>l((n?I:B)(t,a[e],e>h(a)-2?n:q),r=>{if(e>h(a)-2)return s?.(r)&&H(t,a[e]),r;const i=K(r,a,n,s,e+1);return k(r)&&H(t,a[e]),i});new o.TextEncoder;const Q=(t,a,n)=>{a>t[1]&&(t[1]=a),t[2]=n>>>0},R=/^\d+$/,U=t=>new Set(f(t)||y(t)?t:[t]),V=q(),X=q(),Y=q(),Z=(t,n,s,e,r,i,o,c={},w=0,d=[])=>{let v,p,E,m,x,z=0,C=0,D=0,M=0,N=0,j=0,$=0,G=0,Q=0;const Z={},tt=c.destroy;I(V,d,()=>0),I(X,d,()=>[]),H(Y,d,(B(Y,d)??0)+1);const at=q(),[nt,st,et,rt,it]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!J(t)||!J(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!J(t)||!J(a),a.setContent]:L(0))(o,t,w),[ot,ct,yt]=(t=>{let n;const[s,e]=(()=>{const t=[];let n=0;return[s=>(s?t.shift():null)??a+n++,a=>{R.test(a)&&h(t)<1e3&&b(t,a)}]})(),r=q(),i=(t,s,e,i)=>{let o,c=!1;if(S(((t,n=[a])=>{const s=[],e=(t,a)=>a==h(n)?b(s,t):u(n[a])?F(t,t=>e(t,a+1)):S([n[a],null],n=>e(B(t,n),a+1));return e(t,0),s})(s,e),a=>F(a,a=>{const s=()=>B(r,a)[0](n,...e??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(s):s()})),c)throw o};return[(e,i,o,c=[],y=()=>[])=>{n??=t();const u=s(1);var w,l;return H(r,u,[e,i,o,c,y]),w=K(i,o??[a],U),l=u,w?.add(l),u},(t,a,...n)=>i(!1,t,a,n),t=>l(B(r,t),([,n,s])=>(K(n,s??[a],void 0,a=>(W(a,t),k(a)?1:0)),H(r,t),e(t),s)),t=>l(B(r,t),([t,,a=[],s,e])=>{const r=(...i)=>{const o=h(i);o==h(a)?t(n,...i,...e(i)):u(a[o])?S(s[o]?.(...i)??[],t=>r(...i,t)):r(...i,a[o])};r()}),(t,a,...n)=>i(!0,t,a,n)]})(()=>Pt),ut=t=>{t!=z&&(z=t,ct(at,void 0,z))},wt=()=>{B(Y,d)||B(V,d)||!g(B(X,d)??[])||(H(V,d),H(X,d),H(Y,d))},lt=a=>{(nt&&f(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},dt=async()=>{bt()&&t.__?.[0]?.()&&await _t()},ft=t=>P(()=>p=t,()=>{p==t&&(p=void 0)}),vt=async t=>(2!=z&&(await P(async()=>{ut(1),C++,await Ot(()=>O(async()=>{const a=await n();f(a)?lt(a):y(a)&&t?it(t):y(a)||L(1,a)},a=>{i?.(a),t&&it(t)}))},()=>ut(0)),await dt()),Pt),ht=async()=>{const t=$;$=0,t&&t==M&&!Q&&(2==z?$=t:await vt())},gt=async t=>{const a=++M;let n=!0;if(await pt(!0),a==M&&!Q){const s=O(async()=>{const t=await e(async(t,s)=>{if(a==M&&!Q)if(s||t){const a=n||2==z||!!j;N++,a&&j++,await P(async()=>{ut(1),C++,await(a?Ot(()=>lt(s??t)):(()=>{try{return lt(s??t)}finally{ut(0)}})())},()=>{a&&j--,--N||ut(0)}),N||await dt()}else 2==z?$=a:await vt()});a!=M||Q?y(t)||await r(t):v=t},i);await ft(s),a!=M||Q||await P(()=>vt(t),()=>{n=!1})}return Pt},pt=async(t=!1)=>{$=0,t||M++;const a=p,n=v;return v=void 0,await ft(P(async()=>{await a},async()=>{y(n)||await O(()=>r(n),i)})),Pt},_t=async t=>(1!=z&&await P(()=>P(async()=>{ut(2),D++,await Ot(()=>O(()=>s(st,t),i))},()=>ut(0)),ht),Pt),St=async()=>{const a=++G;return await At(!0),a!=G||Q||(await _t(),a!=G||Q||(E=t.addDidFinishTransactionListener(()=>{if(a==G&&!Q){const t=et();rt(t)&&O(()=>_t(t))}}))),Pt},At=async(a=!1)=>{a||G++;const n=E;return E=void 0,y(n)||t.delListener(n),Pt},bt=()=>!y(E),Lt=async(t=!1)=>{const[a,n]=t?[At,pt]:[pt,At];return await P(()=>a(),async()=>{await n()}),Pt},Ot=async(...t)=>{let a,n=!1;const s=_(s=>{return g(t)?s():b(B(X,d),...(e=t,r=(e,r)=>{const o=r==h(t)-1;return[async()=>{let t;x=_(a=>t=a),await P(async()=>{try{await O(e,i)}catch(t){n||(n=!0,a=t)}o&&s()},()=>{x=void 0,t()})},o?s:void 0,Z]},e.map(r)));var e,r});if(await(async()=>{if(!B(V,d)){H(V,d,1);const t=B(X,d);let a=0;await P(async()=>{for(;a<h(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{A(t,a),H(V,d,0),wt()})}})(),await s,n)throw a;return Pt},Pt={load:vt,startAutoLoad:gt,stopAutoLoad:pt,isAutoLoading:()=>!y(v),save:_t,startAutoSave:St,stopAutoSave:At,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,s]=a?[St,gt]:[gt,St];return await n(t),await s(t),Pt},stopAutoPersisting:Lt,getStatus:()=>z,addStatusListener:t=>ot(t,at),delListener:a=>(yt(a),t),schedule:Ot,getStore:()=>t,getStats:()=>({loads:C,saves:D}),...c,destroy:async()=>(y(m)&&(Q=1,m=(async()=>{const t=B(X,d),a=(n=([,t,a])=>a!=Z||(t?.(),!1),t.filter(n));var n;const s=x;A(t),b(t,...a),await P(()=>P(()=>P(Lt,()=>s),()=>tt?.()),()=>{const t=(B(Y,d)??1)-1;H(Y,d,t||void 0),wt()})})()),await m,Pt)};return T(Pt)},tt=()=>[C(),a,0],at=(t,a,n="",r)=>{const i=(t,...a)=>n+t+v(N(a),1,-1);return Z(t,async()=>{const t=tt(),r=tt();return G(await a.list({prefix:n}),(a,[i,o,c])=>l((t=>{if(r=n,t.startsWith(r)){const r=v(t,h(n),h(n)+1);if(r==s||r==e){const e=(()=>{try{return j("["+v(t,h(n)+1)+"]")}catch{return}})();if(f(e)&&h(e)<=(r==s?3:1)&&(a=d,e.every(a)))return[r,...e]}}var a,r})(a),([a,...n])=>a==s?l(n[0],a=>{const s=M(t[0],a,tt);l(n[1],t=>{const a=M(s[0],t,tt);l(n[2],t=>z(a[0],t,[i,o,c]),()=>Q(a,o,c))},()=>Q(s,o,c))},()=>Q(t,o,c)):a==e?l(n[0],t=>z(r[0],t,[i,o,c]),()=>Q(r,o,c)):0)),J(t[0])&&J(r[0])?void 0:[t,r]},async(t,[[n,r,o],[c,y,u]]=t())=>{const w=q();H(w,i(s),[0,r,o]),D(n,([t,a,n],e)=>{H(w,i(s,e),[0,a,n]),D(t,([t,a,n],r)=>{H(w,i(s,e,r),[0,a,n]),D(t,(t,a)=>H(w,i(s,e,r,a),t))})}),H(w,i(e),[0,y,u]),D(c,(t,a)=>H(w,i(e,a),t));const l=(t=>{const a=[];return G(t,(t,n)=>b(a,((t,a)=>[a,t])(n,t))),a})(w);await a.transaction(async t=>{for(let a=0;a<h(l);a+=128)await t.put(C(v(l,a,a+128)))})},p,p,r,2,{getStorage:()=>a})};export{at as createDurableObjectStoragePersister};
1
+ const t=t=>typeof t,a="",n=t(a),s="t",e="v",r=Promise,i=t=>(a,n,s)=>t(a)?s?.():n(a),o=globalThis,c=t=>null==t,w=t=>void 0===t,y=t=>null===t,u=i(c),l=i(w),d=a=>t(a)==n,f=t=>Array.isArray(t),v=(t,a,n)=>t.slice(a,n),h=t=>t.length,g=t=>0==h(t),p=()=>{},_=t=>new r(t),S=(t,a)=>t.forEach(a),A=(t,a=h(t))=>t.splice(0,a),b=(t,...a)=>t.push(...a),L=(t,n)=>{throw((t,n)=>Error("tinybase:"+t+(w(n)?a:":"+n)))(t,n)},O=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},P=(t,a)=>O(t,t=>{O(()=>a?.(t))}),E=async(t,a)=>{try{return await t()}finally{await a()}},m=Object,x=t=>m.getPrototypeOf(t),T=m.keys,z=m.freeze,C=(t,a,n)=>(m.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),D=(t=[])=>{const a=m.create(null);return S(t,([t,n])=>C(a,t,n)),a},J=(t,a)=>S(T(t),n=>a(t[n],n)),M=t=>(t=>!c(t)&&u(x(t),t=>t==m.prototype||c(x(t)),()=>!0))(t)&&0==(t=>h(T(t)))(t),N=(t,a,n)=>(((t,a)=>m.hasOwn(t,a))(t,a)||C(t,a,n()),t[a]),j=JSON.stringify,k=JSON.parse,F=t=>w(t)||0==(t=>t?.size??0)(t),W=(t,a)=>t?.forEach(a),$=(t,a)=>t?.delete(a),q=Map,B=t=>new q(t),G=(t,a)=>t?.get(a),H=(t,a)=>W(t,(t,n)=>a(n,t)),I=(t,a,n)=>w(n)?($(t,a),t):t?.set(a,n),K=(t,a,n,s)=>{let e=G(t,a);var r,i;return r=t,i=a,r?.has(i)?s?.(e):I(t,a,e=n()),e},Q=(t,a,n,s,e=0)=>l((n?K:G)(t,a[e],e>h(a)-2?n:B),r=>{if(e>h(a)-2)return s?.(r)&&I(t,a[e]),r;const i=Q(r,a,n,s,e+1);return F(r)&&I(t,a[e]),i});new o.TextEncoder;const R=(t,a,n)=>{a>t[1]&&(t[1]=a),t[2]=n>>>0},U=/^\d+$/,V=t=>new Set(f(t)||w(t)?t:[t]),X=B(),Y=B(),Z=B(),tt=(t,n,s,e,r,i,o,c={},u=0,d=[])=>{let v,p,m,x,T,C=0,D=0,J=0,N=0,j=0,k=0,q=0,H=0,R=0;const tt={},at=c.destroy;K(X,d,()=>0),K(Y,d,()=>[]),I(Z,d,(G(Z,d)??0)+1);const nt=B(),[st,et,rt,it,ot]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!M(t)||!M(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!M(t)||!M(a),a.setContent]:L(0))(o,t,u),[ct,wt,yt]=(t=>{let n;const[s,e]=(()=>{const t=[];let n=0;return[s=>(s?t.shift():null)??a+n++,a=>{U.test(a)&&h(t)<1e3&&b(t,a)}]})(),r=B(),i=(t,s,e,i)=>{let o,c=!1;if(S(((t,n=[a])=>{const s=[],e=(t,a)=>a==h(n)?b(s,t):y(n[a])?W(t,t=>e(t,a+1)):S([n[a],null],n=>e(G(t,n),a+1));return e(t,0),s})(s,e),a=>W(a,a=>{const s=()=>G(r,a)[0](n,...e??[],...i);t?(t=>{try{return t()}catch(t){(t=>{c||(o=t),c=!0})?.(t)}})(s):s()})),c)throw o};return[(e,i,o,c=[],w=()=>[])=>{n??=t();const y=s(1);var u,l;return I(r,y,[e,i,o,c,w]),u=Q(i,o??[a],V),l=y,u?.add(l),y},(t,a,...n)=>i(!1,t,a,n),t=>l(G(r,t),([,n,s])=>(Q(n,s??[a],void 0,a=>($(a,t),F(a)?1:0)),I(r,t),e(t),s)),t=>l(G(r,t),([t,,a=[],s,e])=>{const r=(...i)=>{const o=h(i);o==h(a)?t(n,...i,...e(i)):y(a[o])?S(s[o]?.(...i)??[],t=>r(...i,t)):r(...i,a[o])};r()}),(t,a,...n)=>i(!0,t,a,n)]})(()=>Et),ut=t=>{t!=C&&(C=t,wt(nt,void 0,C))},lt=()=>{G(Z,d)||G(X,d)||!g(G(Y,d)??[])||(I(X,d),I(Y,d),I(Z,d))},dt=a=>{(st&&f(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{Lt()&&t.__?.[0]?.()&&await St()},vt=t=>E(()=>p=t,()=>{p==t&&(p=void 0)}),ht=async t=>(2!=C&&(await E(async()=>{ut(1),D++,await Pt(()=>O(async()=>{const a=await n();f(a)?dt(a):w(a)&&t?ot(t):w(a)||L(1,a)},a=>{i?.(a),t&&ot(t)}))},()=>ut(0)),await ft()),Et),gt=async()=>{const t=q;q=0,t&&t==N&&!R&&(2==C?q=t:await ht())},pt=async t=>{const a=++N;let n=!0;if(await _t(!0),a==N&&!R){const s=O(async()=>{const t=await e(async(t,s)=>{if(a==N&&!R)if(s||t){const a=n||2==C||!!k;j++,a&&k++,await E(async()=>{ut(1),D++,await(a?Pt(()=>dt(s??t)):(()=>{try{return dt(s??t)}finally{ut(0)}})())},()=>{a&&k--,--j||ut(0)}),j||await ft()}else 2==C?q=a:await ht()});a!=N||R?w(t)||await r(t):v=t},i);await vt(s),a!=N||R||await E(()=>ht(t),()=>{n=!1})}return Et},_t=async(t=!1)=>{q=0,t||N++;const a=p,n=v;return v=void 0,await vt(E(async()=>{await a},async()=>{w(n)||await O(()=>r(n),i)})),Et},St=async t=>(1!=C&&await E(()=>E(async()=>{ut(2),J++,await Pt(()=>O(()=>s(et,t),i))},()=>ut(0)),gt),Et),At=async()=>{const a=++H;return await bt(!0),a!=H||R||(await St(),a!=H||R||(m=t.addDidFinishTransactionListener(()=>{if(a==H&&!R){const t=rt();it(t)&&O(()=>St(t))}}))),Et},bt=async(a=!1)=>{a||H++;const n=m;return m=void 0,w(n)||t.delListener(n),Et},Lt=()=>!w(m),Ot=async(t=!1)=>{const[a,n]=t?[bt,_t]:[_t,bt];return await E(()=>a(),async()=>{await n()}),Et},Pt=async(...t)=>{let a,n=!1;const s=_(s=>{return g(t)?s():b(G(Y,d),...(e=t,r=(e,r)=>{const o=r==h(t)-1;return[async()=>{let t;T=_(a=>t=a),await E(async()=>{try{await O(e,i)}catch(t){n||(n=!0,a=t)}o&&s()},()=>{T=void 0,t()})},o?s:void 0,tt]},e.map(r)));var e,r});if(await(async()=>{if(!G(X,d)){I(X,d,1);const t=G(Y,d);let a=0;await E(async()=>{for(;a<h(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{A(t,a),I(X,d,0),lt()})}})(),await s,n)throw a;return Et},Et={load:ht,startAutoLoad:pt,stopAutoLoad:_t,isAutoLoading:()=>!w(v),save:St,startAutoSave:At,stopAutoSave:bt,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[n,s,e,r]=a?[At,pt,bt,_t]:[pt,At,_t,bt],i=n(t),o=a?H:N;await i;const c=s(t),w=a?N:H;try{await c}catch(t){throw w==(a?N:H)&&await P(r),o==(a?H:N)&&await P(e),t}return Et},stopAutoPersisting:Ot,getStatus:()=>C,addStatusListener:t=>ct(t,nt),delListener:a=>(yt(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:D,saves:J}),...c,destroy:async()=>(w(x)&&(R=1,x=(async()=>{const t=G(Y,d),a=(n=([,t,a])=>a!=tt||(t?.(),!1),t.filter(n));var n;const s=T;A(t),b(t,...a),await E(()=>E(()=>E(Ot,()=>s),()=>at?.()),()=>{const t=(G(Z,d)??1)-1;I(Z,d,t||void 0),lt()})})()),await x,Et)};return z(Et)},at=()=>[D(),a,0],nt=(t,a,n="",r)=>{const i=(t,...a)=>n+t+v(j(a),1,-1);return tt(t,async()=>{const t=at(),r=at();return H(await a.list({prefix:n}),(a,[i,o,c])=>l((t=>{if(r=n,t.startsWith(r)){const r=v(t,h(n),h(n)+1);if(r==s||r==e){const e=(()=>{try{return k("["+v(t,h(n)+1)+"]")}catch{return}})();if(f(e)&&h(e)<=(r==s?3:1)&&(a=d,e.every(a)))return[r,...e]}}var a,r})(a),([a,...n])=>a==s?l(n[0],a=>{const s=N(t[0],a,at);l(n[1],t=>{const a=N(s[0],t,at);l(n[2],t=>C(a[0],t,[i,o,c]),()=>R(a,o,c))},()=>R(s,o,c))},()=>R(t,o,c)):a==e?l(n[0],t=>C(r[0],t,[i,o,c]),()=>R(r,o,c)):0)),M(t[0])&&M(r[0])?void 0:[t,r]},async(t,[[n,r,o],[c,w,y]]=t())=>{const u=B();I(u,i(s),[0,r,o]),J(n,([t,a,n],e)=>{I(u,i(s,e),[0,a,n]),J(t,([t,a,n],r)=>{I(u,i(s,e,r),[0,a,n]),J(t,(t,a)=>I(u,i(s,e,r,a),t))})}),I(u,i(e),[0,w,y]),J(c,(t,a)=>I(u,i(e,a),t));const l=(t=>{const a=[];return H(t,(t,n)=>b(a,((t,a)=>[a,t])(n,t))),a})(u);await a.transaction(async t=>{for(let a=0;a<h(l);a+=128)await t.put(D(v(l,a,a+128)))})},p,p,r,2,{getStorage:()=>a})};export{nt as createDurableObjectStoragePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,N=a=>0==$(a),_=()=>{},A=a=>new c(a),g=async a=>c.all(a),O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=(a,t)=>a.filter(t),b=(a,t=$(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),I=(a,t)=>a?.has(t)??!1,S=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=async(a,t)=>{try{return await a()}finally{await t()}},q="_",B="_id",U="SELECT",j="WHERE",k="TABLE",J="ALTER "+k,X="FROM",Y="DELETE "+X,z=U+"*"+X,G="pragma_",H="data_version",K="schema_version",Q="pragma_table_",V="CREATE "+k,W=/\$tableName/g,Z=a=>h(p(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>h(p(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>j+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),ca=ea.keys,oa=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return O(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>O(ca(a),n=>t(a[n],n)),va=(a,t)=>p(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>$(ca(a)),ma=a=>ra(a)&&0==Ea(a),$a=Map,Na=a=>new $a(a),_a=(a,t)=>a?.get(t),Aa=(a,t)=>C(a,(a,n)=>t(n,a)),ga=(a,t)=>{const n=[];return Aa(a,(a,e)=>D(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=_a(a,t);return I(a,t)?e?.(i):Oa(a,t,i=n()),i},pa=(a,t,n,e,i=0)=>f((n?ha:_a)(a,t[i],i>$(t)-2?n:Na),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=pa(s,t,n,e,i+1);return S(s)&&Oa(a,t[i]),r}),Ta=a=>new Set(m(a)||u(a)?a:[a]),ba=(a,t)=>a?.add(t),Da="ColumnName",Ia="store",Sa="json",Ra=Ia+"TableName",La=Ia+"Id"+Da,Ca=Ia+Da,Ma="autoLoadIntervalSeconds",Pa="rowId"+Da,Fa="tableId",xa="tableName",qa="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",ja={mode:Sa,[Ma]:1},ka={load:0,save:0,[xa]:t+"_values"},Ja=a=>m(a)?a:void 0,Xa=a=>d(a)||m(a),Ya=(a,t,n,e,i)=>{const s=Na();return da(a,(a,r)=>{const c=(w=la(t,E(a)?{[n]:a}:a),o=ea.values(w),l=Ea(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Oa(s,r,c))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:m(a)?p(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Qa=Na(),Va=Na(),Wa=Na(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,g,h=0,I=0,R=0,L=0,q=0,B=0,U=0,j=0,k=0;const J={},X=o.destroy;ha(Qa,w,()=>0),ha(Va,w,()=>[]),Oa(Wa,w,(_a(Wa,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:P(0))(c,a,l),[V,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&$(a)<1e3&&D(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let c,o=!1;if(O(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?D(e,a):y(t[n])?C(a,a=>i(a,n+1)):O([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return Oa(s,w,[i,r,c,o,l]),ba(pa(r,c??[n],Ta),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(pa(t,e??[n],void 0,t=>(M(t,a),S(t)?1:0)),Oa(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(n)?a(t,...r,...i(r)):y(n[c])?O(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=h&&(h=a,W(Y,void 0,h))},ta=()=>{_a(Wa,w)||_a(Qa,w)||!N(_a(Va,w)??[])||(Oa(Qa,w),Oa(Va,w),Oa(Wa,w))},na=t=>{(z&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>x(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=h&&(await x(async()=>{aa(1),I++,await fa(()=>F(async()=>{const n=await t();m(n)?na(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=U;U=0,a&&a==L&&!k&&(2==h?U=a:await sa())},ca=async a=>{const t=++L;let n=!0;if(await la(!0),t==L&&!k){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!k)if(e||a){const t=n||2==h||!!B;q++,t&&B++,await x(async()=>{aa(1),I++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&B--,--q||aa(0)}),q||await ea()}else 2==h?U=t:await sa()});t!=L||k?u(a)||await s(a):d=a},r);await ia(e),t!=L||k||await x(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{U=0,a||L++;const t=v,n=d;return d=void 0,await ia(x(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),Ea},wa=async a=>(1!=h&&await x(()=>x(async()=>{aa(2),R++,await fa(()=>F(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++j;return await ya(!0),t!=j||k||(await wa(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&F(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await x(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():D(_a(Va,w),...p(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;g=A(t=>a=t),await x(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{g=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Qa,w)){Oa(Qa,w,1);const a=_a(Va,w);let t=0;await x(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),Oa(Qa,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,ca]:[ca,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>h,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:I,saves:R}),...o,destroy:async()=>(u(_)&&(k=1,_=(async()=>{const a=_a(Va,w),t=T(a,([,a,t])=>t!=J||(a?.(),!1)),n=g;b(a),D(a,...t),await x(()=>x(()=>x(va,()=>n),()=>X?.()),()=>{const a=(_a(Wa,w)??1)-1;Oa(Wa,w,a||void 0),ta()})})()),await _,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{L(y),L(d),O(await i(v,n),({tn:a,cn:t,uq:n})=>{ba(ha(y,a,Ta),t),n&&ba(ha(d,a,Ta),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ta(e);return((a,t)=>I(_a(y,a),t))(a,t)?ua(T(p(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(T(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||I(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,m)=>{const $=u(m)?void 0:Ta(m),_=a=>u($)||I($,a),A=Ta();da(i??{},a=>O(T(ca(a??{}),_),a=>ba(A,a)));const b=R(A);if(u($)&&!f&&w&&E==s&&N(b)&&I(y,a))return await v("DROP "+k+Z(a)),Oa(y,a),void Oa(d,a);const S=_a(y,a),L=Ta(T(R(S),a=>a==n||_(a)));if(!N(b))if(I(y,a)){if(await g(p([n,...b],async t=>{M(L,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),ba(S,t))})),c==nt&&!I(_a(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return O(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),ba(ha(d,a,Ta),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${h(p(b,a=>e+Z(a)+r))});`),Oa(y,a,Ta([n,...b])),Oa(d,a,Ta([n]));if(await g([...!f&&l?p(R(L),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),M(S,t))}):[]]),f)u(i)?u($)&&await v(Y+Z(a)+ta(a,E)):await g(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!N(b)){const i=T(ca(t),_);N(i)||await c(v,a,n,i,{[e]:p(i,a=>o?o(t[a]):t[a])},S)}}));else if(N(b))u($)&&I(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=T(R(_a(y,a)),a=>a!=n&&_(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,p(t,t=>o?o(a?.[t]):a?.[t])),D(s,n)}),await c(v,a,n,t,e,S),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await x(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>h(p(a,Z),e))(n,...i)+")VALUES"+h(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+h(p(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...p(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,$,N)=>{const[_,A,g,O]=tt(t,w,y,f,E,void 0,void 0,N);return Za(a,()=>O(async()=>{return await _(),a=(await A(c,o))[q]?.[l]??"null",Ha(Ga(a));var a}),a=>O(async()=>{var t;await _(),await g(c,o,{[q]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,$,N,_,A,O,h)=>{const[b,D,I,S]=tt(t,f,E,N,_,A,O,h),R=(a,t)=>g(ga(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>ua(1==n?T(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):T(p(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await I(y,B,{[q]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>S(async()=>{await b();const a=await(async()=>ua(T(await g(ga(c,async([a,t,n],e)=>[a,await D(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await D(y,B,void 0,d))[q]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await b(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>m,destroy:s},0,m)},st=(a,e,i,r,o,l,y,v,f,m,$="getDb",N,_)=>{let A,g,O;const h=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[p,T,b,D]=(a=>{const n=(a=>la(ja,E(a)?{[Ra]:a}:a??{}))(a),e=n[Ma];if(n.mode==Sa){const a=n[Ra]??t;return[1,e,[a,n[La]??B,n[Ca]??Ia],Ta(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(ka,c),{load:l,save:w}=o,u=[Xa(l),Xa(w),o[xa],Ja(l),Ja(w)],y=u[2],d=Ta(y),v=Ta(y),f=Ya(i,{[Fa]:null,[Pa]:B,[Ua]:s},Fa,a=>I(v,a),a=>ba(d,a)),m=Ya(r,{[xa]:null,[Pa]:B,[qa]:0,[Ba]:0,[Ua]:null},xa,(a,t)=>I(v,t),(a,t)=>ba(d,t));return Aa(m,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!p&&a.isMergeable()&&P(0),(p?et:it)(a,h,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await h(U+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=A||i!=g||r!=O)){const c=t&&!s&&!w(A);A=n,g=i,O=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=x(()=>((t,n)=>F(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{F(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*T)))});return n=c,c},f=r(a=>{e&&I(D,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await x(async()=>await n,async()=>{A=g=O=null,await o(f)})})},a=>a(),y,v,f,b,R(D),async(a,t)=>await a(U+` t.name tn,c.name cn,c.pk OR EXISTS(${U} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${j} i."unique"=1 AND ii.name=c.name AND(${U} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),m,$,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>await t.db.raw({sql:a,args:n}),a=>t.notifier.subscribeToDataChanges(n=>O(t.notifier.alias(n),({tablename:t})=>a(t))),a=>a(),e,i,_,1,t,"getElectricClient");export{rt as createElectricSqlPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,N=a=>0==$(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),g=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=(a,t)=>a.filter(t),b=(a,t=$(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),I=(a,t)=>a?.has(t)??!1,S=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),q=async(a,t)=>{try{return await a()}finally{await t()}},B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(p(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>O(p(a,()=>"$"+t[0]++),e),na=(a,t=s)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return g(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>g(oa(a),n=>t(a[n],n)),fa=(a,t)=>p(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},ma=a=>$(oa(a)),$a=a=>ca(a)&&0==ma(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>C(a,(a,n)=>t(n,a)),ga=(a,t)=>{const n=[];return ha(a,(a,e)=>D(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),pa=(a,t,n,e)=>{let i=Aa(a,t);return I(a,t)?e?.(i):Oa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?pa:Aa)(a,t[i],i>$(t)-2?n:_a),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return S(s)&&Oa(a,t[i]),r}),ba=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ia="ColumnName",Sa="store",Ra="json",La=Sa+"TableName",Ca=Sa+"Id"+Ia,Ma=Sa+Ia,Pa="autoLoadIntervalSeconds",Fa="rowId"+Ia,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:Ra,[Pa]:1},Ja={load:0,save:0,[qa]:t+"_values"},Xa=a=>m(a)?a:void 0,Ya=a=>d(a)||m(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=ma(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Oa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:m(a)?p(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,I=0,R=0,L=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;pa(Va,w,()=>0),pa(Wa,w,()=>[]),Oa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:P(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&$(a)<1e3&&D(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(g(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?D(e,a):y(t[n])?C(a,a=>i(a,n+1)):g([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return Oa(s,w,[i,r,c,o,l]),Da(Ta(r,c??[n],ba),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(M(t,a),S(t)?1:0)),Oa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(n)?a(t,...r,...i(r)):y(n[c])?g(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(Oa(Va,w),Oa(Wa,w),Oa(Za,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>q(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await q(async()=>{ta(1),I++,await Ea(()=>F(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||P(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=j;j=0,a&&a==L&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++L;let n=!0;if(await wa(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await q(async()=>{ta(1),I++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await q(()=>ra(a),()=>{n=!1})}return ma},wa=async(a=!1)=>{j=0,a||L++;const t=v,n=d;return d=void 0,await sa(q(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await q(()=>q(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&F(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await q(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():D(Aa(Wa,w),...p(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;h=A(t=>a=t),await q(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){Oa(Va,w,1);const a=Aa(Wa,w);let t=0;await q(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),Oa(Va,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?k:L;await r;const o=e(a),l=t?L:k;try{await o}catch(a){throw l==(t?L:k)&&await x(s),c==(t?k:L)&&await x(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:I,saves:R}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=T(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;b(a),D(a,...t),await q(()=>q(()=>q(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;Oa(Za,w,a||void 0),na()})})()),await _,ma)};return la(ma)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{L(y),L(d),g(await i(v,n),({tn:a,cn:t,uq:n})=>{Da(pa(y,a,ba),t),n&&Da(pa(d,a,ba),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ba(e);return((a,t)=>I(Aa(y,a),t))(a,t)?ya(T(p(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(T(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||I(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,m)=>{const $=u(m)?void 0:ba(m),_=a=>u($)||I($,a),A=ba();va(i??{},a=>g(T(oa(a??{}),_),a=>Da(A,a)));const b=R(A);if(u($)&&!f&&w&&E==s&&N(b)&&I(y,a))return await v("DROP "+J+aa(a)),Oa(y,a),void Oa(d,a);const S=Aa(y,a),L=ba(T(R(S),a=>a==n||_(a)));if(!N(b))if(I(y,a)){if(await h(p([n,...b],async t=>{M(L,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Da(S,t))})),c==et&&!I(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(pa(d,a,ba),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(p(b,a=>e+aa(a)+r))});`),Oa(y,a,ba([n,...b])),Oa(d,a,ba([n]));if(await h([...!f&&l?p(R(L),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),M(S,t))}):[]]),f)u(i)?u($)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(b)){const i=T(oa(t),_);N(i)||await c(v,a,n,i,{[e]:p(i,a=>o?o(t[a]):t[a])},S)}}));else if(N(b))u($)&&I(y,a)&&await v(z+aa(a)+na(a,E));else{const t=T(R(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,p(t,t=>o?o(a?.[t]):a?.[t])),D(s,n)}),await c(v,a,n,t,e,S),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await q(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(p(a,aa),e))(n,...i)+")VALUES"+O(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(p(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...p(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,$,N)=>{const[_,A,h,g]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>g(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>g(async()=>{var t;await _(),await h(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,$,N,_,A,g,O)=>{const[b,D,I,S]=nt(t,f,E,N,_,A,g,O),R=(a,t)=>h(ga(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>ya(1==n?T(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):T(p(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await b();const a=await(async()=>ya(T(await h(ga(c,async([a,t,n],e)=>[a,await D(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await D(y,U,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await b(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>m,destroy:s},0,m)},rt=(a,e,i,r,o,l,y,v,f,m,$="getDb",N,_)=>{let A,h,g;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[p,T,b,D]=(a=>{const n=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[La]??t;return[1,e,[a,n[Ca]??U,n[Ma]??Sa],ba(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[qa],Xa(l),Xa(w)],y=u[2],d=ba(y),v=ba(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>I(v,a),a=>Da(d,a)),m=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>I(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!p&&a.isMergeable()&&P(0),(p?it:st)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=g)){const c=t&&!s&&!w(A);A=n,h=i,g=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=q(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*T)))});return n=c,c},f=r(a=>{e&&I(D,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await q(async()=>await n,async()=>{A=h=g=null,await o(f)})})},a=>a(),y,v,f,b,R(D),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),m,$,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await t.db.raw({sql:a,args:n}),a=>t.notifier.subscribeToDataChanges(n=>g(t.notifier.alias(n),({tablename:t})=>a(t))),a=>a(),e,i,_,1,t,"getElectricClient");export{ct as createElectricSqlPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,N=a=>0==$(a),_=()=>{},A=a=>new c(a),g=async a=>c.all(a),O=(a,t)=>a.forEach(t),h=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=(a,t)=>a.filter(t),b=(a,t=$(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),I=(a,t)=>a?.has(t)??!1,S=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=async(a,t)=>{try{return await a()}finally{await t()}},q="_",B="_id",U="SELECT",j="WHERE",k="TABLE",J="ALTER "+k,X="FROM",Y="DELETE "+X,z=U+"*"+X,G="pragma_",H="data_version",K="schema_version",Q="pragma_table_",V="CREATE "+k,W=/\$tableName/g,Z=a=>h(p(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),aa=(a,t=[1])=>h(p(a,()=>"$"+t[0]++),e),ta=(a,t=s)=>j+`(${na(t,Z(a))})`,na=(a,t)=>r(a,W,t),ea=Object,ia=a=>ea.getPrototypeOf(a),sa=ea.entries,ra=a=>!w(a)&&v(ia(a),a=>a==ea.prototype||w(ia(a)),()=>!0),ca=ea.keys,oa=ea.freeze,la=(...a)=>ea.assign(ea.create(null),...a),wa=(a,t,n)=>(ea.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ua=(a=[])=>{const t=ea.create(null);return O(a,([a,n])=>wa(t,a,n)),t},ya=(a,t)=>(delete a[t],a),da=(a,t)=>O(ca(a),n=>t(a[n],n)),va=(a,t)=>p(sa(a),([a,n])=>t(n,a)),fa=(a,t)=>{const n=ua();return da(a,(a,e)=>wa(n,e,t(a,e))),n},Ea=a=>$(ca(a)),ma=a=>ra(a)&&0==Ea(a),$a=Map,Na=a=>new $a(a),_a=(a,t)=>a?.get(t),Aa=(a,t)=>C(a,(a,n)=>t(n,a)),ga=(a,t)=>{const n=[];return Aa(a,(a,e)=>D(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=_a(a,t);return I(a,t)?e?.(i):Oa(a,t,i=n()),i},pa=(a,t,n,e,i=0)=>f((n?ha:_a)(a,t[i],i>$(t)-2?n:Na),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=pa(s,t,n,e,i+1);return S(s)&&Oa(a,t[i]),r}),Ta=a=>new Set(m(a)||u(a)?a:[a]),ba=(a,t)=>a?.add(t),Da="ColumnName",Ia="store",Sa="json",Ra=Ia+"TableName",La=Ia+"Id"+Da,Ca=Ia+Da,Ma="autoLoadIntervalSeconds",Pa="rowId"+Da,Fa="tableId",xa="tableName",qa="deleteEmptyColumns",Ba="deleteEmptyTable",Ua="condition",ja={mode:Sa,[Ma]:1},ka={load:0,save:0,[xa]:t+"_values"},Ja=a=>m(a)?a:void 0,Xa=a=>d(a)||m(a),Ya=(a,t,n,e,i)=>{const s=Na();return da(a,(a,r)=>{const c=(w=la(t,E(a)?{[n]:a}:a),o=ea.values(w),l=Ea(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Oa(s,r,c))}),s},za=JSON.stringify,Ga=JSON.parse,Ha=a=>""===a?void 0:m(a)?p(a,Ha):ra(a)?fa(a,Ha):a,Ka=/^\d+$/,Qa=Na(),Va=Na(),Wa=Na(),Za=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,g,h=0,I=0,R=0,L=0,q=0,B=0,U=0,j=0,k=0;const J={},X=o.destroy;ha(Qa,w,()=>0),ha(Va,w,()=>[]),Oa(Wa,w,(_a(Wa,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!ma(a)||!ma(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ma(a)||!ma(t),t.setContent]:P(0))(c,a,l),[V,W,Z]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Ka.test(t)&&$(a)<1e3&&D(a,t)}]})(),s=Na(),r=(a,e,i,r)=>{let c,o=!1;if(O(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?D(e,a):y(t[n])?C(a,a=>i(a,n+1)):O([t[n],null],t=>i(_a(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return Oa(s,w,[i,r,c,o,l]),ba(pa(r,c??[n],Ta),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(_a(s,a),([,t,e])=>(pa(t,e??[n],void 0,t=>(M(t,a),S(t)?1:0)),Oa(s,a),i(a),e)),a=>f(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(n)?a(t,...r,...i(r)):y(n[c])?O(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),aa=a=>{a!=h&&(h=a,W(Y,void 0,h))},ta=()=>{_a(Wa,w)||_a(Qa,w)||!N(_a(Va,w)??[])||(Oa(Qa,w),Oa(Va,w),Oa(Wa,w))},na=t=>{(z&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>x(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=h&&(await x(async()=>{aa(1),I++,await fa(()=>F(async()=>{const n=await t();m(n)?na(n):u(n)&&a?Q(a):u(n)||P(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),Ea),ra=async()=>{const a=U;U=0,a&&a==L&&!k&&(2==h?U=a:await sa())},ca=async a=>{const t=++L;let n=!0;if(await la(!0),t==L&&!k){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!k)if(e||a){const t=n||2==h||!!B;q++,t&&B++,await x(async()=>{aa(1),I++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&B--,--q||aa(0)}),q||await ea()}else 2==h?U=t:await sa()});t!=L||k?u(a)||await s(a):d=a},r);await ia(e),t!=L||k||await x(()=>sa(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{U=0,a||L++;const t=v,n=d;return d=void 0,await ia(x(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),Ea},wa=async a=>(1!=h&&await x(()=>x(async()=>{aa(2),R++,await fa(()=>F(()=>e(G,a),r))},()=>aa(0)),ra),Ea),ua=async()=>{const t=++j;return await ya(!0),t!=j||k||(await wa(),t!=j||k||(E=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&F(()=>wa(a))}}))),Ea},ya=async(t=!1)=>{t||j++;const n=E;return E=void 0,u(n)||a.delListener(n),Ea},da=()=>!u(E),va=async(a=!1)=>{const[t,n]=a?[ya,la]:[la,ya];return await x(()=>t(),async()=>{await n()}),Ea},fa=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():D(_a(Va,w),...p(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;g=A(t=>a=t),await x(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{g=void 0,a()})},c?e:void 0,J]})));if(await(async()=>{if(!_a(Qa,w)){Oa(Qa,w,1);const a=_a(Va,w);let t=0;await x(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),Oa(Qa,w,0),ta()})}})(),await e,n)throw t;return Ea},Ea={load:sa,startAutoLoad:ca,stopAutoLoad:la,isAutoLoading:()=>!u(d),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,ca]:[ca,ua];return await n(a),await e(a),Ea},stopAutoPersisting:va,getStatus:()=>h,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:I,saves:R}),...o,destroy:async()=>(u(_)&&(k=1,_=(async()=>{const a=_a(Va,w),t=T(a,([,a,t])=>t!=J||(a?.(),!1)),n=g;b(a),D(a,...t),await x(()=>x(()=>x(va,()=>n),()=>X?.()),()=>{const a=(_a(Wa,w)??1)-1;Oa(Wa,w,a||void 0),ta()})})()),await _,Ea)};return oa(Ea)},at=new l.TextEncoder,tt=(a,n,i,r,c=nt,o,l,w)=>{const y=Na(),d=Na();let v=a;return[async()=>{L(y),L(d),O(await i(v,n),({tn:a,cn:t,uq:n})=>{ba(ha(y,a,Ta),t),n&&ba(ha(d,a,Ta),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:Ta(e);return((a,t)=>I(_a(y,a),t))(a,t)?ua(T(p(await v(z+Z(a)+ta(a,n)),a=>{const n=a[t],e=l?fa(ya(a,t),l):ya(a,t);return[n,u(i)?e:ua(T(va(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||I(i,a))(a)))]}),a=>!u(a[0])&&!ma(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,m)=>{const $=u(m)?void 0:Ta(m),_=a=>u($)||I($,a),A=Ta();da(i??{},a=>O(T(ca(a??{}),_),a=>ba(A,a)));const b=R(A);if(u($)&&!f&&w&&E==s&&N(b)&&I(y,a))return await v("DROP "+k+Z(a)),Oa(y,a),void Oa(d,a);const S=_a(y,a),L=Ta(T(R(S),a=>a==n||_(a)));if(!N(b))if(I(y,a)){if(await g(p([n,...b],async t=>{M(L,t)||(await v(J+Z(a)+"ADD"+Z(t)+r),ba(S,t))})),c==nt&&!I(_a(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return O(at.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(za([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+Z(e)+"ON"+Z(a)+`(${Z(n)})`),ba(ha(d,a,Ta),n)}}else await v(V+Z(a)+`(${Z(n)}${r} PRIMARY KEY${h(p(b,a=>e+Z(a)+r))});`),Oa(y,a,Ta([n,...b])),Oa(d,a,Ta([n]));if(await g([...!f&&l?p(R(L),async t=>{t!=n&&(await v(J+Z(a)+"DROP"+Z(t)),M(S,t))}):[]]),f)u(i)?u($)&&await v(Y+Z(a)+ta(a,E)):await g(va(i,async(t,e)=>{if(u(t))await v(Y+Z(a)+ta(a,E)+`AND(${Z(n)}=$1)`,[e]);else if(!N(b)){const i=T(ca(t),_);N(i)||await c(v,a,n,i,{[e]:p(i,a=>o?o(t[a]):t[a])},S)}}));else if(N(b))u($)&&I(y,a)&&await v(Y+Z(a)+ta(a,E));else{const t=T(R(_a(y,a)),a=>a!=n&&_(a)),e=ua(),s=[];da(i??{},(a,n)=>{wa(e,n,p(t,t=>o?o(a?.[t]):a?.[t])),D(s,n)}),await c(v,a,n,t,e,S),await v(Y+Z(a)+ta(a,E)+`AND${Z(n)}NOT IN(${aa(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await x(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},nt=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+Z(t)+"("+((...a)=>h(p(a,Z),e))(n,...i)+")VALUES"+h(va(s,a=>"($"+r[0]+++","+aa(a,r)+")"),e)+"ON CONFLICT("+Z(n)+")DO UPDATE SET"+h(p(i,a=>Z(a)+"=excluded."+Z(a)),e),va(s,(a,t)=>[t,...p(a,a=>a??null)]).flat())},et=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,$,N)=>{const[_,A,g,O]=tt(t,w,y,f,E,void 0,void 0,N);return Za(a,()=>O(async()=>{return await _(),a=(await A(c,o))[q]?.[l]??"null",Ha(Ga(a));var a}),a=>O(async()=>{var t;await _(),await g(c,o,{[q]:{[l]:(t=a()??null,za(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},it=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,$,N,_,A,O,h)=>{const[b,D,I,S]=tt(t,f,E,N,_,A,O,h),R=(a,t)=>g(ga(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ea.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>ua(1==n?T(va(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):T(p(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await I(y,B,{[q]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return Za(a,()=>S(async()=>{await b();const a=await(async()=>ua(T(await g(ga(c,async([a,t,n],e)=>[a,await D(e,t,n)])),a=>!ma(a[1]))))(),t=await(async()=>l?(await D(y,B,void 0,d))[q]:{})();return ma(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await b(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>m,destroy:s},0,m)},st=(a,e,i,r,o,l,y,v,f,m,$="getDb",N,_)=>{let A,g,O;const h=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[p,T,b,D]=(a=>{const n=(a=>la(ja,E(a)?{[Ra]:a}:a??{}))(a),e=n[Ma];if(n.mode==Sa){const a=n[Ra]??t;return[1,e,[a,n[La]??B,n[Ca]??Ia],Ta(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=la(ka,c),{load:l,save:w}=o,u=[Xa(l),Xa(w),o[xa],Ja(l),Ja(w)],y=u[2],d=Ta(y),v=Ta(y),f=Ya(i,{[Fa]:null,[Pa]:B,[Ua]:s},Fa,a=>I(v,a),a=>ba(d,a)),m=Ya(r,{[xa]:null,[Pa]:B,[qa]:0,[Ba]:0,[Ua]:null},xa,(a,t)=>I(v,t),(a,t)=>ba(d,t));return Aa(m,(a,t)=>t[4]??=_a(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!p&&a.isMergeable()&&P(0),(p?et:it)(a,h,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await h(U+` ${H} d,${K} s,TOTAL_CHANGES() c FROM ${G}${H} JOIN ${G}${K}`);if(e&&(n!=A||i!=g||r!=O)){const c=t&&!s&&!w(A);A=n,g=i,O=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=x(()=>((t,n)=>F(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},a=>{F(()=>n?.(a))}))(0,y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*T)))});return n=c,c},f=r(a=>{e&&I(D,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await x(async()=>await n,async()=>{A=g=O=null,await o(f)})})},a=>a(),y,v,f,b,R(D),async(a,t)=>await a(U+` t.name tn,c.name cn,c.pk OR EXISTS(${U} 1 FROM ${G}index_list(t.name)i,${G}index_info(i.name)ii ${j} i."unique"=1 AND ii.name=c.name AND(${U} count(*) FROM ${G}index_info(i.name))=1)uq FROM ${Q}list()t,${Q}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${aa(t)})ORDER BY t.name,c.name`,t),m,$,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},rt=(a,t,n,e,i)=>st(a,n,async(a,n=[])=>await t.db.raw({sql:a,args:n}),a=>t.notifier.subscribeToDataChanges(n=>O(t.notifier.alias(n),({tablename:t})=>a(t))),a=>a(),e,i,_,1,t,"getElectricClient");export{rt as createElectricSqlPersister};
1
+ const a=a=>typeof a,t="tinybase",n="",e=",",i=a(n),s="true",r=(a,t,n)=>a.replace(t,n),c=Promise,o=a=>(t,n,e)=>a(t)?e?.():n(t),l=globalThis,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=o(w),f=o(u),E=t=>a(t)==i,m=a=>Array.isArray(a),$=a=>a.length,N=a=>0==$(a),_=()=>{},A=a=>new c(a),h=async a=>c.all(a),g=(a,t)=>a.forEach(t),O=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=(a,t)=>a.filter(t),b=(a,t=$(a))=>a.splice(0,t),D=(a,...t)=>a.push(...t),I=(a,t)=>a?.has(t)??!1,S=a=>u(a)||0==(a=>a?.size??0)(a),R=a=>[...a?.values()??[]],L=a=>a.clear(),C=(a,t)=>a?.forEach(t),M=(a,t)=>a?.delete(t),P=(a,e)=>{throw((a,e)=>Error(t+":"+a+(u(e)?n:":"+e)))(a,e)},F=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},x=(a,t)=>F(a,a=>{F(()=>t?.(a))}),q=async(a,t)=>{try{return await a()}finally{await t()}},B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>O(p(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>O(p(a,()=>"$"+t[0]++),e),na=(a,t=s)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>r(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,ca=a=>!w(a)&&v(sa(a),a=>a==ia.prototype||w(sa(a)),()=>!0),oa=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return g(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>g(oa(a),n=>t(a[n],n)),fa=(a,t)=>p(ra(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},ma=a=>$(oa(a)),$a=a=>ca(a)&&0==ma(a),Na=Map,_a=a=>new Na(a),Aa=(a,t)=>a?.get(t),ha=(a,t)=>C(a,(a,n)=>t(n,a)),ga=(a,t)=>{const n=[];return ha(a,(a,e)=>D(n,t(e,a))),n},Oa=(a,t,n)=>u(n)?(M(a,t),a):a?.set(t,n),pa=(a,t,n,e)=>{let i=Aa(a,t);return I(a,t)?e?.(i):Oa(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>f((n?pa:Aa)(a,t[i],i>$(t)-2?n:_a),s=>{if(i>$(t)-2)return e?.(s)&&Oa(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return S(s)&&Oa(a,t[i]),r}),ba=a=>new Set(m(a)||u(a)?a:[a]),Da=(a,t)=>a?.add(t),Ia="ColumnName",Sa="store",Ra="json",La=Sa+"TableName",Ca=Sa+"Id"+Ia,Ma=Sa+Ia,Pa="autoLoadIntervalSeconds",Fa="rowId"+Ia,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:Ra,[Pa]:1},Ja={load:0,save:0,[qa]:t+"_values"},Xa=a=>m(a)?a:void 0,Ya=a=>d(a)||m(a),za=(a,t,n,e,i)=>{const s=_a();return va(a,(a,r)=>{const c=(w=wa(t,E(a)?{[n]:a}:a),o=ia.values(w),l=ma(t),o.slice(0,l));var o,l,w;y(c[0])||e(r,c[0])||(i(r,c[0]),Oa(s,r,c))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:m(a)?p(a,Ka):ca(a)?Ea(a,Ka):a,Qa=/^\d+$/,Va=_a(),Wa=_a(),Za=_a(),at=(a,t,e,i,s,r,c,o={},l=0,w=[])=>{let d,v,E,_,h,O=0,I=0,R=0,L=0,B=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;pa(Va,w,()=>0),pa(Wa,w,()=>[]),Oa(Za,w,(Aa(Za,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:P(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[e,i]=(()=>{const a=[];let t=0;return[e=>(e?a.shift():null)??n+t++,t=>{Qa.test(t)&&$(a)<1e3&&D(a,t)}]})(),s=_a(),r=(a,e,i,r)=>{let c,o=!1;if(g(((a,t=[n])=>{const e=[],i=(a,n)=>n==$(t)?D(e,a):y(t[n])?C(a,a=>i(a,n+1)):g([t[n],null],t=>i(Aa(a,t),n+1));return i(a,0),e})(e,i),n=>C(n,n=>{const e=()=>Aa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=e(1);return Oa(s,w,[i,r,c,o,l]),Da(Ta(r,c??[n],ba),w),w},(a,t,...n)=>r(!1,a,t,n),a=>f(Aa(s,a),([,t,e])=>(Ta(t,e??[n],void 0,t=>(M(t,a),S(t)?1:0)),Oa(s,a),i(a),e)),a=>f(Aa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=$(r);c==$(n)?a(t,...r,...i(r)):y(n[c])?g(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),ta=a=>{a!=O&&(O=a,Z(z,void 0,O))},na=()=>{Aa(Za,w)||Aa(Va,w)||!N(Aa(Wa,w)??[])||(Oa(Va,w),Oa(Wa,w),Oa(Za,w))},ea=t=>{(G&&m(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>q(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=O&&(await q(async()=>{ta(1),I++,await Ea(()=>F(async()=>{const n=await t();m(n)?ea(n):u(n)&&a?V(a):u(n)||P(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),ma),ca=async()=>{const a=j;j=0,a&&a==L&&!J&&(2==O?j=a:await ra())},oa=async a=>{const t=++L;let n=!0;if(await wa(!0),t==L&&!J){const e=F(async()=>{const a=await i(async(a,e)=>{if(t==L&&!J)if(e||a){const t=n||2==O||!!U;B++,t&&U++,await q(async()=>{ta(1),I++,await(t?Ea(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--B||ta(0)}),B||await ia()}else 2==O?j=t:await ra()});t!=L||J?u(a)||await s(a):d=a},r);await sa(e),t!=L||J||await q(()=>ra(a),()=>{n=!1})}return ma},wa=async(a=!1)=>{j=0,a||L++;const t=v,n=d;return d=void 0,await sa(q(async()=>{await t},async()=>{u(n)||await F(()=>s(n),r)})),ma},ua=async a=>(1!=O&&await q(()=>q(async()=>{ta(2),R++,await Ea(()=>F(()=>e(H,a),r))},()=>ta(0)),ca),ma),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(E=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&F(()=>ua(a))}}))),ma},da=async(t=!1)=>{t||k++;const n=E;return E=void 0,u(n)||a.delListener(n),ma},va=()=>!u(E),fa=async(a=!1)=>{const[t,n]=a?[da,wa]:[wa,da];return await q(()=>t(),async()=>{await n()}),ma},Ea=async(...a)=>{let t,n=!1;const e=A(e=>N(a)?e():D(Aa(Wa,w),...p(a,(i,s)=>{const c=s==$(a)-1;return[async()=>{let a;h=A(t=>a=t),await q(async()=>{try{await F(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{h=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!Aa(Va,w)){Oa(Va,w,1);const a=Aa(Wa,w);let t=0;await q(async()=>{for(;t<$(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{b(a,t),Oa(Va,w,0),na()})}})(),await e,n)throw t;return ma},ma={load:ra,startAutoLoad:oa,stopAutoLoad:wa,isAutoLoading:()=>!u(d),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,wa]:[oa,ya,wa,da],r=n(a),c=t?k:L;await r;const o=e(a),l=t?L:k;try{await o}catch(a){throw l==(t?L:k)&&await x(s),c==(t?k:L)&&await x(i),a}return ma},stopAutoPersisting:fa,getStatus:()=>O,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:Ea,getStore:()=>a,getStats:()=>({loads:I,saves:R}),...o,destroy:async()=>(u(_)&&(J=1,_=(async()=>{const a=Aa(Wa,w),t=T(a,([,a,t])=>t!=X||(a?.(),!1)),n=h;b(a),D(a,...t),await q(()=>q(()=>q(fa,()=>n),()=>Y?.()),()=>{const a=(Aa(Za,w)??1)-1;Oa(Za,w,a||void 0),na()})})()),await _,ma)};return la(ma)},tt=new l.TextEncoder,nt=(a,n,i,r,c=et,o,l,w)=>{const y=_a(),d=_a();let v=a;return[async()=>{L(y),L(d),g(await i(v,n),({tn:a,cn:t,uq:n})=>{Da(pa(y,a,ba),t),n&&Da(pa(d,a,ba),t)})},async(a,t,n,e)=>{const i=u(e)?void 0:ba(e);return((a,t)=>I(Aa(y,a),t))(a,t)?ya(T(p(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?Ea(da(a,t),l):da(a,t);return[n,u(i)?e:ya(T(fa(e,(a,t)=>[t,a]),([a])=>(a=>u(i)||I(i,a))(a)))]}),a=>!u(a[0])&&!$a(a[1]))):{}},async(a,n,i,l,w,f=!1,E=s,m)=>{const $=u(m)?void 0:ba(m),_=a=>u($)||I($,a),A=ba();va(i??{},a=>g(T(oa(a??{}),_),a=>Da(A,a)));const b=R(A);if(u($)&&!f&&w&&E==s&&N(b)&&I(y,a))return await v("DROP "+J+aa(a)),Oa(y,a),void Oa(d,a);const S=Aa(y,a),L=ba(T(R(S),a=>a==n||_(a)));if(!N(b))if(I(y,a)){if(await h(p([n,...b],async t=>{M(L,t)||(await v(X+aa(a)+"ADD"+aa(t)+r),Da(S,t))})),c==et&&!I(Aa(d,a),n)){const e=t+"_pk_"+(a=>{let t=2166136261;return g(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,n]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(n)})`),Da(pa(d,a,ba),n)}}else await v(W+aa(a)+`(${aa(n)}${r} PRIMARY KEY${O(p(b,a=>e+aa(a)+r))});`),Oa(y,a,ba([n,...b])),Oa(d,a,ba([n]));if(await h([...!f&&l?p(R(L),async t=>{t!=n&&(await v(X+aa(a)+"DROP"+aa(t)),M(S,t))}):[]]),f)u(i)?u($)&&await v(z+aa(a)+na(a,E)):await h(fa(i,async(t,e)=>{if(u(t))await v(z+aa(a)+na(a,E)+`AND(${aa(n)}=$1)`,[e]);else if(!N(b)){const i=T(oa(t),_);N(i)||await c(v,a,n,i,{[e]:p(i,a=>o?o(t[a]):t[a])},S)}}));else if(N(b))u($)&&I(y,a)&&await v(z+aa(a)+na(a,E));else{const t=T(R(Aa(y,a)),a=>a!=n&&_(a)),e=ya(),s=[];va(i??{},(a,n)=>{ua(e,n,p(t,t=>o?o(a?.[t]):a?.[t])),D(s,n)}),await c(v,a,n,t,e,S),await v(z+aa(a)+na(a,E)+`AND${aa(n)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await q(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await F(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,i,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>O(p(a,aa),e))(n,...i)+")VALUES"+O(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),e)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+O(p(i,a=>aa(a)+"=excluded."+aa(a)),e),fa(s,(a,t)=>[t,...p(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[c,o,l],w,y,d,v,f,E,m,$,N)=>{const[_,A,h,g]=nt(t,w,y,f,E,void 0,void 0,N);return at(a,()=>g(async()=>{return await _(),a=(await A(c,o))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>g(async()=>{var t;await _(),await h(c,o,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>u(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[c,o,[l,w,y,d,v]],f,E,m,$,N,_,A,g,O)=>{const[b,D,I,S]=nt(t,f,E,N,_,A,g,O),R=(a,t)=>h(ga(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!ia.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),L=(a,t,n)=>ya(1==n?T(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):T(p(t,t=>[t,a[t]]),([,a])=>!u(a))),C=async(a,t)=>w?await I(y,U,{[B]:u(v)?a:L(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await b();const a=await(async()=>ya(T(await h(ga(c,async([a,t,n],e)=>[a,await D(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await D(y,U,void 0,d))[B]:{})();return $a(a)&&u(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await b(),u(t)){const[t,n]=a();await R(t),await C(n)}else await R(t[0],!0),await C(t[1],!0)}),n,e,i,r,{[$]:()=>m,destroy:s},0,m)},rt=(a,e,i,r,o,l,y,v,f,m,$="getDb",N,_)=>{let A,h,g;const O=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[p,T,b,D]=(a=>{const n=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=n[Pa];if(n.mode==Ra){const a=n[La]??t;return[1,e,[a,n[Ca]??U,n[Ma]??Sa],ba(a)]}const{tables:{load:i={},save:r={}}={},values:c={}}=n,o=wa(Ja,c),{load:l,save:w}=o,u=[Ya(l),Ya(w),o[qa],Xa(l),Xa(w)],y=u[2],d=ba(y),v=ba(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:s},xa,a=>I(v,a),a=>Da(d,a)),m=za(r,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>I(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=Aa(f,t[0])?.[2]??s),[0,e,[f,m,u],d]})(e);return!p&&a.isMergeable()&&P(0),(p?it:st)(a,O,a=>{let t,n,e=1,i=0,s=0;const l=async(t=!0)=>{const[{d:n,s:i,c:r}]=await O(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=A||i!=h||r!=g)){const c=t&&!s&&!w(A);A=n,h=i,g=r,c&&e&&await a()}},d=()=>{u(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(r=!1)=>{if(n)return n;const c=q(()=>x(async()=>{for(i?r&&await l():(await l(!1),i=1);e&&s;)s=0,await l(!1),e&&(await a(),await l())},y),()=>{n==c&&(n=void 0),e&&(s?v():e&&u(t)&&(t=setInterval(()=>v(!0),1e3*T)))});return n=c,c},f=r(a=>{e&&I(D,a)&&(s=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,s=0,d(),await q(async()=>await n,async()=>{A=h=g=null,await o(f)})})},a=>a(),y,v,f,b,R(D),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),m,$,n,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0,_)},ct=(a,t,n,e,i)=>rt(a,n,async(a,n=[])=>await t.db.raw({sql:a,args:n}),a=>t.notifier.subscribeToDataChanges(n=>g(t.notifier.alias(n),({tablename:t})=>a(t))),a=>a(),e,i,_,1,t,"getElectricClient");export{ct as createElectricSqlPersister};
@@ -1 +1 @@
1
- import{addDatabaseChangeListener as a}from"expo-sqlite";const t=a=>typeof a,n="tinybase",e="",i=",",s=t(e),r="true",o=(a,t,n)=>a.replace(t,n),c=Promise,l=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,u=a=>null==a,y=a=>void 0===a,d=a=>null===a,v=a=>!0===a,f=l(u),m=l(y),E=a=>t(a)==s,$=a=>Array.isArray(a),A=a=>a.length,N=a=>0==A(a),_=()=>{},p=a=>new c(a),O=async a=>c.all(a),g=(a,t)=>a?.has(t)??!1,h=a=>y(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],I=a=>a.clear(),S=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),b=(a,t)=>{throw((a,t)=>Error(n+":"+a+(y(t)?e:":"+t)))(a,t)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=A(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),i),na=(a,t=r)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>o(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,oa=a=>!u(a)&&f(sa(a),a=>a==ia.prototype||u(sa(a)),()=>!0),ca=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(ca(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},Ea=a=>A(ca(a)),$a=a=>oa(a)&&0==Ea(a),Aa=Map,Na=a=>new Aa(a),_a=(a,t)=>a?.get(t),pa=(a,t)=>S(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return pa(a,(a,e)=>q(n,t(e,a))),n},ga=(a,t,n)=>y(n)?(D(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=_a(a,t);return g(a,t)?e?.(i):ga(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>m((n?ha:_a)(a,t[i],i>A(t)-2?n:Na),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return h(s)&&ga(a,t[i]),r}),Ia=a=>new Set($(a)||y(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",ba="store",Ra="json",La=ba+"TableName",Ca=ba+"Id"+Da,Ma=ba+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:Ra,[Pa]:1},Ja={load:0,save:0,[qa]:n+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>v(a)||$(a),za=(a,t,n,e,i)=>{const s=Na();return va(a,(a,r)=>{const o=(w=wa(t,E(a)?{[n]:a}:a),c=ia.values(w),l=Ea(t),c.slice(0,l));var c,l,w;d(o[0])||e(r,o[0])||(i(r,o[0]),ga(s,r,o))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):oa(a)?ma(a,Ka):a,Qa=/^\d+$/,Va=Na(),Wa=Na(),Za=Na(),at=(a,t,n,i,s,r,o,c={},l=0,w=[])=>{let u,v,f,E,_,O=0,g=0,T=0,I=0,M=0,B=0,U=0,j=0,k=0;const J={},X=c.destroy;ha(Va,w,()=>0),ha(Wa,w,()=>[]),ga(Za,w,(_a(Za,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:b(0))(o,a,l),[V,W,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{Qa.test(t)&&A(a)<1e3&&q(a,t)}]})(),s=Na(),r=(a,n,i,r)=>{let o,c=!1;if(C(((a,t=[e])=>{const n=[],i=(a,e)=>e==A(t)?q(n,a):d(t[e])?S(a,a=>i(a,e+1)):C([t[e],null],t=>i(_a(a,t),e+1));return i(a,0),n})(n,i),n=>S(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=n(1);return ga(s,w,[i,r,o,c,l]),Sa(Ta(r,o??[e],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>m(_a(s,a),([,t,n])=>(Ta(t,n??[e],void 0,t=>(D(t,a),h(t)?1:0)),ga(s,a),i(a),n)),a=>m(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=A(r);o==A(n)?a(t,...r,...i(r)):d(n[o])?C(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),aa=a=>{a!=O&&(O=a,W(Y,void 0,O))},ta=()=>{_a(Za,w)||_a(Va,w)||!N(_a(Wa,w)??[])||(ga(Va,w),ga(Wa,w),ga(Za,w))},na=t=>{(z&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=O&&(await L(async()=>{aa(1),g++,await fa(()=>R(async()=>{const n=await t();$(n)?na(n):y(n)&&a?Q(a):y(n)||b(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),ma),ra=async()=>{const a=U;U=0,a&&a==I&&!k&&(2==O?U=a:await sa())},oa=async a=>{const t=++I;let n=!0;if(await ca(!0),t==I&&!k){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==I&&!k)if(e||a){const t=n||2==O||!!B;M++,t&&B++,await L(async()=>{aa(1),g++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&B--,--M||aa(0)}),M||await ea()}else 2==O?U=t:await sa()});t!=I||k?y(a)||await s(a):u=a},r);await ia(e),t!=I||k||await L(()=>sa(a),()=>{n=!1})}return ma},ca=async(a=!1)=>{U=0,a||I++;const t=v,n=u;return u=void 0,await ia(L(async()=>{await t},async()=>{y(n)||await R(()=>s(n),r)})),ma},wa=async a=>(1!=O&&await L(()=>L(async()=>{aa(2),T++,await fa(()=>R(()=>n(G,a),r))},()=>aa(0)),ra),ma),ua=async()=>{const t=++j;return await ya(!0),t!=j||k||(await wa(),t!=j||k||(f=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>wa(a))}}))),ma},ya=async(t=!1)=>{t||j++;const n=f;return f=void 0,y(n)||a.delListener(n),ma},da=()=>!y(f),va=async(a=!1)=>{const[t,n]=a?[ya,ca]:[ca,ya];return await L(()=>t(),async()=>{await n()}),ma},fa=async(...a)=>{let t,n=!1;const e=p(e=>N(a)?e():q(_a(Wa,w),...P(a,(i,s)=>{const o=s==A(a)-1;return[async()=>{let a;_=p(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{_=void 0,a()})},o?e:void 0,J]})));if(await(async()=>{if(!_a(Va,w)){ga(Va,w,1);const a=_a(Wa,w);let t=0;await L(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(Va,w,0),ta()})}})(),await e,n)throw t;return ma},ma={load:sa,startAutoLoad:oa,stopAutoLoad:ca,isAutoLoading:()=>!y(u),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,oa]:[oa,ua];return await n(a),await e(a),ma},stopAutoPersisting:va,getStatus:()=>O,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...c,destroy:async()=>(y(E)&&(k=1,E=(async()=>{const a=_a(Wa,w),t=F(a,([,a,t])=>t!=J||(a?.(),!1)),n=_;x(a),q(a,...t),await L(()=>L(()=>L(va,()=>n),()=>X?.()),()=>{const a=(_a(Za,w)??1)-1;ga(Za,w,a||void 0),ta()})})()),await E,ma)};return la(ma)},tt=new w.TextEncoder,nt=(a,t,e,s,o=et,c,l,w)=>{const u=Na(),d=Na();let v=a;return[async()=>{I(u),I(d),C(await e(v,t),({tn:a,cn:t,uq:n})=>{Sa(ha(u,a,Ia),t),n&&Sa(ha(d,a,Ia),t)})},async(a,t,n,e)=>{const i=y(e)?void 0:Ia(e);return((a,t)=>g(_a(u,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?ma(da(a,t),l):da(a,t);return[n,y(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>y(i)||g(i,a))(a)))]}),a=>!y(a[0])&&!$a(a[1]))):{}},async(a,t,e,l,w,f=!1,m=r,E)=>{const $=y(E)?void 0:Ia(E),A=a=>y($)||g($,a),_=Ia();va(e??{},a=>C(F(ca(a??{}),A),a=>Sa(_,a)));const p=T(_);if(y($)&&!f&&w&&m==r&&N(p)&&g(u,a))return await v("DROP "+J+aa(a)),ga(u,a),void ga(d,a);const h=_a(u,a),I=Ia(F(T(h),a=>a==t||A(a)));if(!N(p))if(g(u,a)){if(await O(P([t,...p],async t=>{D(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+s),Sa(h,t))})),o==et&&!g(_a(d,a),t)){const e=n+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,t]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(t)})`),Sa(ha(d,a,Ia),t)}}else await v(W+aa(a)+`(${aa(t)}${s} PRIMARY KEY${M(P(p,a=>i+aa(a)+s))});`),ga(u,a,Ia([t,...p])),ga(d,a,Ia([t]));if(await O([...!f&&l?P(T(I),async n=>{n!=t&&(await v(X+aa(a)+"DROP"+aa(n)),D(h,n))}):[]]),f)y(e)?y($)&&await v(z+aa(a)+na(a,m)):await O(fa(e,async(n,e)=>{if(y(n))await v(z+aa(a)+na(a,m)+`AND(${aa(t)}=$1)`,[e]);else if(!N(p)){const i=F(ca(n),A);N(i)||await o(v,a,t,i,{[e]:P(i,a=>c?c(n[a]):n[a])},h)}}));else if(N(p))y($)&&g(u,a)&&await v(z+aa(a)+na(a,m));else{const n=F(T(_a(u,a)),a=>a!=t&&A(a)),i=ya(),s=[];va(e??{},(a,t)=>{ua(i,t,P(n,t=>c?c(a?.[t]):a?.[t])),q(s,t)}),await o(v,a,t,n,i,h),await v(z+aa(a)+na(a,m)+`AND${aa(t)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,e,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),i))(n,...e)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),i)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(e,a=>aa(a)+"=excluded."+aa(a)),i),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[o,c,l],w,u,d,v,f,m,E,$,A)=>{const[N,_,p,O]=nt(t,w,u,f,m,void 0,void 0,A);return at(a,()=>O(async()=>{return await N(),a=(await _(o,c))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await N(),await p(o,c,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>y(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[o,c,[l,w,u,d,v]],f,m,E,$,A,N,_,p,g)=>{const[h,T,I,S]=nt(t,f,m,A,N,_,p,g),D=(a,t)=>O(Oa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!ia.hasOwn(c,l))||await I(n,e,a[o],i,s,t,r)})),b=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!y(a))),R=async(a,t)=>w?await I(u,U,{[B]:y(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await h();const a=await(async()=>ya(F(await O(Oa(o,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await T(u,U,void 0,d))[B]:{})();return $a(a)&&y(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),y(t)){const[t,n]=a();await D(t),await R(n)}else await D(t[0],!0),await R(t[1],!0)}),n,e,i,r,{[$]:()=>E,destroy:s},0,E)},rt=(a,t,i,s,o,l,w,d,f,m,$="getDb",A,N)=>{let _,p,O;const h=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,D,C]=(a=>{const t=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=t[Pa];if(t.mode==Ra){const a=t[La]??n;return[1,e,[a,t[Ca]??U,t[Ma]??ba],Ia(a)]}const{tables:{load:i={},save:s={}}={},values:o={}}=t,c=wa(Ja,o),{load:l,save:w}=c,u=[Ya(l),Ya(w),c[qa],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:r},xa,a=>g(v,a),a=>Sa(d,a)),m=za(s,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>g(v,t),(a,t)=>Sa(d,t));return pa(m,(a,t)=>t[4]??=_a(f,t[0])?.[2]??r),[0,e,[f,m,u],d]})(t);return!I&&a.isMergeable()&&b(0),(I?it:st)(a,h,a=>{let t,n,e=1,i=0,r=0;const l=async(t=!0)=>{const[{d:n,s:i,c:s}]=await h(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=_||i!=p||s!=O)){const o=t&&!r&&!u(_);_=n,p=i,O=s,o&&e&&await a()}},d=()=>{y(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(s=!1)=>{if(n)return n;const o=L(()=>((t,n)=>R(async()=>{for(i?s&&await l():(await l(!1),i=1);e&&r;)r=0,await l(!1),e&&(await a(),await l())},a=>{R(()=>n?.(a))}))(0,w),()=>{n==o&&(n=void 0),e&&(r?v():e&&y(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=o,o},f=s(a=>{e&&g(C,a)&&(r=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,r=0,d(),await L(async()=>await n,async()=>{_=p=O=null,await o(f)})})},a=>a(),w,d,f,D,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),m,$,e,A,a=>v(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(t,n,e,i,s)=>rt(t,e,async(a,t=[])=>await n.getAllAsync(a,t),t=>a(({tableName:a})=>t(a)),a=>a.remove(),i,s,_,3,n);export{ot as createExpoSqlitePersister};
1
+ import{addDatabaseChangeListener as a}from"expo-sqlite";const t=a=>typeof a,n="tinybase",e="",i=",",s=t(e),r="true",c=(a,t,n)=>a.replace(t,n),o=Promise,l=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,u=a=>null==a,y=a=>void 0===a,d=a=>null===a,v=a=>!0===a,f=l(u),m=l(y),E=a=>t(a)==s,$=a=>Array.isArray(a),A=a=>a.length,N=a=>0==A(a),_=()=>{},p=a=>new o(a),h=async a=>o.all(a),O=(a,t)=>a?.has(t)??!1,g=a=>y(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],I=a=>a.clear(),S=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),b=(a,t)=>{throw((a,t)=>Error(n+":"+a+(y(t)?e:":"+t)))(a,t)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},L=(a,t)=>R(a,a=>{R(()=>t?.(a))}),C=async(a,t)=>{try{return await a()}finally{await t()}},M=(a,t)=>a.forEach(t),P=(a,t="")=>a.join(t),F=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),q=(a,t=A(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",J="WHERE",X="TABLE",Y="ALTER "+X,z="FROM",G="DELETE "+z,H=k+"*"+z,K="pragma_",Q="data_version",V="schema_version",W="pragma_table_",Z="CREATE "+X,aa=/\$tableName/g,ta=a=>P(F(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${c(a,/"/g,'""')}"`),"."),na=(a,t=[1])=>P(F(a,()=>"$"+t[0]++),i),ea=(a,t=r)=>J+`(${ia(t,ta(a))})`,ia=(a,t)=>c(a,aa,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!u(a)&&f(ra(a),a=>a==sa.prototype||u(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return M(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>M(la(a),n=>t(a[n],n)),ma=(a,t)=>F(ca(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},$a=a=>A(la(a)),Aa=a=>oa(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),pa=(a,t)=>a?.get(t),ha=(a,t)=>S(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>y(n)?(D(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=pa(a,t);return O(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>m((n?Ta:pa)(a,t[i],i>A(t)-2?n:_a),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return g(s)&&ga(a,t[i]),r}),Sa=a=>new Set($(a)||y(a)?a:[a]),Da=(a,t)=>a?.add(t),ba="ColumnName",Ra="store",La="json",Ca=Ra+"TableName",Ma=Ra+"Id"+ba,Pa=Ra+ba,Fa="autoLoadIntervalSeconds",xa="rowId"+ba,qa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ba]:n+"_values"},Ya=a=>$(a)?a:void 0,za=a=>v(a)||$(a),Ga=(a,t,n,e,i)=>{const s=_a();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=$a(t),o.slice(0,l));var o,l,w;d(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:$(a)?F(a,Qa):oa(a)?Ea(a,Qa):a,Va=/^\d+$/,Wa=_a(),Za=_a(),at=_a(),tt=(a,t,n,i,s,r,c,o={},l=0,w=[])=>{let u,v,f,E,_,h=0,O=0,T=0,I=0,P=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),ga(at,w,(pa(at,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Aa(a)||!Aa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Aa(a)||!Aa(t),t.setContent]:b(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{Va.test(t)&&A(a)<1e3&&B(a,t)}]})(),s=_a(),r=(a,n,i,r)=>{let c,o=!1;if(M(((a,t=[e])=>{const n=[],i=(a,e)=>e==A(t)?B(n,a):d(t[e])?S(a,a=>i(a,e+1)):M([t[e],null],t=>i(pa(a,t),e+1));return i(a,0),n})(n,i),n=>S(n,n=>{const e=()=>pa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=n(1);return ga(s,w,[i,r,c,o,l]),Da(Ia(r,c??[e],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>m(pa(s,a),([,t,n])=>(Ia(t,n??[e],void 0,t=>(D(t,a),g(t)?1:0)),ga(s,a),i(a),n)),a=>m(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=A(r);c==A(n)?a(t,...r,...i(r)):d(n[c])?M(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),ta=a=>{a!=h&&(h=a,Z(z,void 0,h))},na=()=>{pa(at,w)||pa(Wa,w)||!N(pa(Za,w)??[])||(ga(Wa,w),ga(Za,w),ga(at,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>C(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=h&&(await C(async()=>{ta(1),O++,await ma(()=>R(async()=>{const n=await t();$(n)?ea(n):y(n)&&a?V(a):y(n)||b(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),Ea),ca=async()=>{const a=j;j=0,a&&a==I&&!J&&(2==h?j=a:await ra())},oa=async a=>{const t=++I;let n=!0;if(await la(!0),t==I&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==I&&!J)if(e||a){const t=n||2==h||!!U;P++,t&&U++,await C(async()=>{ta(1),O++,await(t?ma(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--P||ta(0)}),P||await ia()}else 2==h?j=t:await ra()});t!=I||J?y(a)||await s(a):u=a},r);await sa(e),t!=I||J||await C(()=>ra(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{j=0,a||I++;const t=v,n=u;return u=void 0,await sa(C(async()=>{await t},async()=>{y(n)||await R(()=>s(n),r)})),Ea},ua=async a=>(1!=h&&await C(()=>C(async()=>{ta(2),T++,await ma(()=>R(()=>n(H,a),r))},()=>ta(0)),ca),Ea),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(f=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),Ea},da=async(t=!1)=>{t||k++;const n=f;return f=void 0,y(n)||a.delListener(n),Ea},va=()=>!y(f),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await C(()=>t(),async()=>{await n()}),Ea},ma=async(...a)=>{let t,n=!1;const e=p(e=>N(a)?e():B(pa(Za,w),...F(a,(i,s)=>{const c=s==A(a)-1;return[async()=>{let a;_=p(t=>a=t),await C(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{_=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!pa(Wa,w)){ga(Wa,w,1);const a=pa(Za,w);let t=0;await C(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{q(a,t),ga(Wa,w,0),na()})}})(),await e,n)throw t;return Ea},Ea={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!y(u),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?k:I;await r;const o=e(a),l=t?I:k;try{await o}catch(a){throw l==(t?I:k)&&await L(s),c==(t?k:I)&&await L(i),a}return Ea},stopAutoPersisting:fa,getStatus:()=>h,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:O,saves:T}),...o,destroy:async()=>(y(E)&&(J=1,E=(async()=>{const a=pa(Za,w),t=x(a,([,a,t])=>t!=X||(a?.(),!1)),n=_;q(a),B(a,...t),await C(()=>C(()=>C(fa,()=>n),()=>Y?.()),()=>{const a=(pa(at,w)??1)-1;ga(at,w,a||void 0),na()})})()),await E,Ea)};return wa(Ea)},nt=new w.TextEncoder,et=(a,t,e,s,c=it,o,l,w)=>{const u=_a(),d=_a();let v=a;return[async()=>{I(u),I(d),M(await e(v,t),({tn:a,cn:t,uq:n})=>{Da(Ta(u,a,Sa),t),n&&Da(Ta(d,a,Sa),t)})},async(a,t,n,e)=>{const i=y(e)?void 0:Sa(e);return((a,t)=>O(pa(u,a),t))(a,t)?da(x(F(await v(H+ta(a)+ea(a,n)),a=>{const n=a[t],e=l?Ea(va(a,t),l):va(a,t);return[n,y(i)?e:da(x(ma(e,(a,t)=>[t,a]),([a])=>(a=>y(i)||O(i,a))(a)))]}),a=>!y(a[0])&&!Aa(a[1]))):{}},async(a,t,e,l,w,f=!1,m=r,E)=>{const $=y(E)?void 0:Sa(E),A=a=>y($)||O($,a),_=Sa();fa(e??{},a=>M(x(la(a??{}),A),a=>Da(_,a)));const p=T(_);if(y($)&&!f&&w&&m==r&&N(p)&&O(u,a))return await v("DROP "+X+ta(a)),ga(u,a),void ga(d,a);const g=pa(u,a),I=Sa(x(T(g),a=>a==t||A(a)));if(!N(p))if(O(u,a)){if(await h(F([t,...p],async t=>{D(I,t)||(await v(Y+ta(a)+"ADD"+ta(t)+s),Da(g,t))})),c==it&&!O(pa(d,a),t)){const e=n+"_pk_"+(a=>{let t=2166136261;return M(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,t]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+ta(e)+"ON"+ta(a)+`(${ta(t)})`),Da(Ta(d,a,Sa),t)}}else await v(Z+ta(a)+`(${ta(t)}${s} PRIMARY KEY${P(F(p,a=>i+ta(a)+s))});`),ga(u,a,Sa([t,...p])),ga(d,a,Sa([t]));if(await h([...!f&&l?F(T(I),async n=>{n!=t&&(await v(Y+ta(a)+"DROP"+ta(n)),D(g,n))}):[]]),f)y(e)?y($)&&await v(G+ta(a)+ea(a,m)):await h(ma(e,async(n,e)=>{if(y(n))await v(G+ta(a)+ea(a,m)+`AND(${ta(t)}=$1)`,[e]);else if(!N(p)){const i=x(la(n),A);N(i)||await c(v,a,t,i,{[e]:F(i,a=>o?o(n[a]):n[a])},g)}}));else if(N(p))y($)&&O(u,a)&&await v(G+ta(a)+ea(a,m));else{const n=x(T(pa(u,a)),a=>a!=t&&A(a)),i=da(),s=[];fa(e??{},(a,t)=>{ya(i,t,F(n,t=>o?o(a?.[t]):a?.[t])),B(s,t)}),await c(v,a,t,n,i,g),await v(G+ta(a)+ea(a,m)+`AND${ta(t)}NOT IN(${na(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await C(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,e,s)=>{const r=[1];await a("INSERT INTO"+ta(t)+"("+((...a)=>P(F(a,ta),i))(n,...e)+")VALUES"+P(ma(s,a=>"($"+r[0]+++","+na(a,r)+")"),i)+"ON CONFLICT("+ta(n)+")DO UPDATE SET"+P(F(e,a=>ta(a)+"=excluded."+ta(a)),i),ma(s,(a,t)=>[t,...F(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,u,d,v,f,m,E,$,A)=>{const[N,_,p,h]=et(t,w,u,f,m,void 0,void 0,A);return tt(a,()=>h(async()=>{return await N(),a=(await _(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>h(async()=>{var t;await N(),await p(c,o,{[U]:{[l]:(t=a()??null,Ha(t,(a,t)=>y(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,u,d,v]],f,m,E,$,A,N,_,p,O)=>{const[g,T,I,S]=et(t,f,m,A,N,_,p,O),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?x(ma(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(F(t,t=>[t,a[t]]),([,a])=>!y(a))),R=async(a,t)=>w?await I(u,j,{[U]:y(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>S(async()=>{await g();const a=await(async()=>da(x(await h(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!Aa(a[1]))))(),t=await(async()=>l?(await T(u,j,void 0,d))[U]:{})();return Aa(a)&&y(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await g(),y(t)){const[t,n]=a();await D(t),await R(n)}else await D(t[0],!0),await R(t[1],!0)}),n,e,i,r,{[$]:()=>E,destroy:s},0,E)},ct=(a,t,i,s,c,l,w,d,f,m,$="getDb",A,N)=>{let _,p,h;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,D,R]=(a=>{const t=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=t[Fa];if(t.mode==La){const a=t[Ca]??n;return[1,e,[a,t[Ma]??j,t[Pa]??Ra],Sa(a)]}const{tables:{load:i={},save:s={}}={},values:c={}}=t,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ba],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[qa]:null,[xa]:j,[ka]:r},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(s,{[Ba]:null,[xa]:j,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=pa(f,t[0])?.[2]??r),[0,e,[f,m,u],d]})(t);return!I&&a.isMergeable()&&b(0),(I?st:rt)(a,g,a=>{let t,n,e=1,i=0,r=0;const l=async(t=!0)=>{const[{d:n,s:i,c:s}]=await g(k+` ${Q} d,${V} s,TOTAL_CHANGES() c FROM ${K}${Q} JOIN ${K}${V}`);if(e&&(n!=_||i!=p||s!=h)){const c=t&&!r&&!u(_);_=n,p=i,h=s,c&&e&&await a()}},d=()=>{y(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(s=!1)=>{if(n)return n;const c=C(()=>L(async()=>{for(i?s&&await l():(await l(!1),i=1);e&&r;)r=0,await l(!1),e&&(await a(),await l())},w),()=>{n==c&&(n=void 0),e&&(r?v():e&&y(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=s(a=>{e&&O(R,a)&&(r=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,r=0,d(),await C(async()=>await n,async()=>{_=p=h=null,await c(f)})})},a=>a(),w,d,f,D,T(R),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${K}index_list(t.name)i,${K}index_info(i.name)ii ${J} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${K}index_info(i.name))=1)uq FROM ${W}list()t,${W}info(t.name)c ${J} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t)})ORDER BY t.name,c.name`,t),m,$,e,A,a=>v(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(t,n,e,i,s)=>ct(t,e,async(a,t=[])=>await n.getAllAsync(a,t),t=>a(({tableName:a})=>t(a)),a=>a.remove(),i,s,_,3,n);export{ot as createExpoSqlitePersister};
@@ -1 +1 @@
1
- import{addDatabaseChangeListener as a}from"expo-sqlite";const t=a=>typeof a,n="tinybase",e="",i=",",s=t(e),r="true",o=(a,t,n)=>a.replace(t,n),c=Promise,l=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,u=a=>null==a,y=a=>void 0===a,d=a=>null===a,v=a=>!0===a,f=l(u),m=l(y),E=a=>t(a)==s,$=a=>Array.isArray(a),A=a=>a.length,N=a=>0==A(a),_=()=>{},p=a=>new c(a),O=async a=>c.all(a),g=(a,t)=>a?.has(t)??!1,h=a=>y(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],I=a=>a.clear(),S=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),b=(a,t)=>{throw((a,t)=>Error(n+":"+a+(y(t)?e:":"+t)))(a,t)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},L=async(a,t)=>{try{return await a()}finally{await t()}},C=(a,t)=>a.forEach(t),M=(a,t="")=>a.join(t),P=(a,t)=>a.map(t),F=(a,t)=>a.filter(t),x=(a,t=A(a))=>a.splice(0,t),q=(a,...t)=>a.push(...t),B="_",U="_id",j="SELECT",k="WHERE",J="TABLE",X="ALTER "+J,Y="FROM",z="DELETE "+Y,G=j+"*"+Y,H="pragma_",K="data_version",Q="schema_version",V="pragma_table_",W="CREATE "+J,Z=/\$tableName/g,aa=a=>M(P(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),ta=(a,t=[1])=>M(P(a,()=>"$"+t[0]++),i),na=(a,t=r)=>k+`(${ea(t,aa(a))})`,ea=(a,t)=>o(a,Z,t),ia=Object,sa=a=>ia.getPrototypeOf(a),ra=ia.entries,oa=a=>!u(a)&&f(sa(a),a=>a==ia.prototype||u(sa(a)),()=>!0),ca=ia.keys,la=ia.freeze,wa=(...a)=>ia.assign(ia.create(null),...a),ua=(a,t,n)=>(ia.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),ya=(a=[])=>{const t=ia.create(null);return C(a,([a,n])=>ua(t,a,n)),t},da=(a,t)=>(delete a[t],a),va=(a,t)=>C(ca(a),n=>t(a[n],n)),fa=(a,t)=>P(ra(a),([a,n])=>t(n,a)),ma=(a,t)=>{const n=ya();return va(a,(a,e)=>ua(n,e,t(a,e))),n},Ea=a=>A(ca(a)),$a=a=>oa(a)&&0==Ea(a),Aa=Map,Na=a=>new Aa(a),_a=(a,t)=>a?.get(t),pa=(a,t)=>S(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return pa(a,(a,e)=>q(n,t(e,a))),n},ga=(a,t,n)=>y(n)?(D(a,t),a):a?.set(t,n),ha=(a,t,n,e)=>{let i=_a(a,t);return g(a,t)?e?.(i):ga(a,t,i=n()),i},Ta=(a,t,n,e,i=0)=>m((n?ha:_a)(a,t[i],i>A(t)-2?n:Na),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ta(s,t,n,e,i+1);return h(s)&&ga(a,t[i]),r}),Ia=a=>new Set($(a)||y(a)?a:[a]),Sa=(a,t)=>a?.add(t),Da="ColumnName",ba="store",Ra="json",La=ba+"TableName",Ca=ba+"Id"+Da,Ma=ba+Da,Pa="autoLoadIntervalSeconds",Fa="rowId"+Da,xa="tableId",qa="tableName",Ba="deleteEmptyColumns",Ua="deleteEmptyTable",ja="condition",ka={mode:Ra,[Pa]:1},Ja={load:0,save:0,[qa]:n+"_values"},Xa=a=>$(a)?a:void 0,Ya=a=>v(a)||$(a),za=(a,t,n,e,i)=>{const s=Na();return va(a,(a,r)=>{const o=(w=wa(t,E(a)?{[n]:a}:a),c=ia.values(w),l=Ea(t),c.slice(0,l));var c,l,w;d(o[0])||e(r,o[0])||(i(r,o[0]),ga(s,r,o))}),s},Ga=JSON.stringify,Ha=JSON.parse,Ka=a=>""===a?void 0:$(a)?P(a,Ka):oa(a)?ma(a,Ka):a,Qa=/^\d+$/,Va=Na(),Wa=Na(),Za=Na(),at=(a,t,n,i,s,r,o,c={},l=0,w=[])=>{let u,v,f,E,_,O=0,g=0,T=0,I=0,M=0,B=0,U=0,j=0,k=0;const J={},X=c.destroy;ha(Va,w,()=>0),ha(Wa,w,()=>[]),ga(Za,w,(_a(Za,w)??0)+1);const Y=Na(),[z,G,H,K,Q]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!$a(a)||!$a(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!$a(a)||!$a(t),t.setContent]:b(0))(o,a,l),[V,W,Z]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{Qa.test(t)&&A(a)<1e3&&q(a,t)}]})(),s=Na(),r=(a,n,i,r)=>{let o,c=!1;if(C(((a,t=[e])=>{const n=[],i=(a,e)=>e==A(t)?q(n,a):d(t[e])?S(a,a=>i(a,e+1)):C([t[e],null],t=>i(_a(a,t),e+1));return i(a,0),n})(n,i),n=>S(n,n=>{const e=()=>_a(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{c||(o=a),c=!0})?.(a)}})(e):e()})),c)throw o};return[(i,r,o,c=[],l=()=>[])=>{t??=a();const w=n(1);return ga(s,w,[i,r,o,c,l]),Sa(Ta(r,o??[e],Ia),w),w},(a,t,...n)=>r(!1,a,t,n),a=>m(_a(s,a),([,t,n])=>(Ta(t,n??[e],void 0,t=>(D(t,a),h(t)?1:0)),ga(s,a),i(a),n)),a=>m(_a(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const o=A(r);o==A(n)?a(t,...r,...i(r)):d(n[o])?C(e[o]?.(...r)??[],a=>s(...r,a)):s(...r,n[o])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>ma),aa=a=>{a!=O&&(O=a,W(Y,void 0,O))},ta=()=>{_a(Za,w)||_a(Va,w)||!N(_a(Wa,w)??[])||(ga(Va,w),ga(Wa,w),ga(Za,w))},na=t=>{(z&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ea=async()=>{da()&&a.__?.[0]?.()&&await wa()},ia=a=>L(()=>v=a,()=>{v==a&&(v=void 0)}),sa=async a=>(2!=O&&(await L(async()=>{aa(1),g++,await fa(()=>R(async()=>{const n=await t();$(n)?na(n):y(n)&&a?Q(a):y(n)||b(1,n)},t=>{r?.(t),a&&Q(a)}))},()=>aa(0)),await ea()),ma),ra=async()=>{const a=U;U=0,a&&a==I&&!k&&(2==O?U=a:await sa())},oa=async a=>{const t=++I;let n=!0;if(await ca(!0),t==I&&!k){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==I&&!k)if(e||a){const t=n||2==O||!!B;M++,t&&B++,await L(async()=>{aa(1),g++,await(t?fa(()=>na(e??a)):(()=>{try{return na(e??a)}finally{aa(0)}})())},()=>{t&&B--,--M||aa(0)}),M||await ea()}else 2==O?U=t:await sa()});t!=I||k?y(a)||await s(a):u=a},r);await ia(e),t!=I||k||await L(()=>sa(a),()=>{n=!1})}return ma},ca=async(a=!1)=>{U=0,a||I++;const t=v,n=u;return u=void 0,await ia(L(async()=>{await t},async()=>{y(n)||await R(()=>s(n),r)})),ma},wa=async a=>(1!=O&&await L(()=>L(async()=>{aa(2),T++,await fa(()=>R(()=>n(G,a),r))},()=>aa(0)),ra),ma),ua=async()=>{const t=++j;return await ya(!0),t!=j||k||(await wa(),t!=j||k||(f=a.addDidFinishTransactionListener(()=>{if(t==j&&!k){const a=H();K(a)&&R(()=>wa(a))}}))),ma},ya=async(t=!1)=>{t||j++;const n=f;return f=void 0,y(n)||a.delListener(n),ma},da=()=>!y(f),va=async(a=!1)=>{const[t,n]=a?[ya,ca]:[ca,ya];return await L(()=>t(),async()=>{await n()}),ma},fa=async(...a)=>{let t,n=!1;const e=p(e=>N(a)?e():q(_a(Wa,w),...P(a,(i,s)=>{const o=s==A(a)-1;return[async()=>{let a;_=p(t=>a=t),await L(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}o&&e()},()=>{_=void 0,a()})},o?e:void 0,J]})));if(await(async()=>{if(!_a(Va,w)){ga(Va,w,1);const a=_a(Wa,w);let t=0;await L(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{x(a,t),ga(Va,w,0),ta()})}})(),await e,n)throw t;return ma},ma={load:sa,startAutoLoad:oa,stopAutoLoad:ca,isAutoLoading:()=>!y(u),save:wa,startAutoSave:ua,stopAutoSave:ya,isAutoSaving:da,startAutoPersisting:async(a,t=!1)=>{const[n,e]=t?[ua,oa]:[oa,ua];return await n(a),await e(a),ma},stopAutoPersisting:va,getStatus:()=>O,addStatusListener:a=>V(a,Y),delListener:t=>(Z(t),a),schedule:fa,getStore:()=>a,getStats:()=>({loads:g,saves:T}),...c,destroy:async()=>(y(E)&&(k=1,E=(async()=>{const a=_a(Wa,w),t=F(a,([,a,t])=>t!=J||(a?.(),!1)),n=_;x(a),q(a,...t),await L(()=>L(()=>L(va,()=>n),()=>X?.()),()=>{const a=(_a(Za,w)??1)-1;ga(Za,w,a||void 0),ta()})})()),await E,ma)};return la(ma)},tt=new w.TextEncoder,nt=(a,t,e,s,o=et,c,l,w)=>{const u=Na(),d=Na();let v=a;return[async()=>{I(u),I(d),C(await e(v,t),({tn:a,cn:t,uq:n})=>{Sa(ha(u,a,Ia),t),n&&Sa(ha(d,a,Ia),t)})},async(a,t,n,e)=>{const i=y(e)?void 0:Ia(e);return((a,t)=>g(_a(u,a),t))(a,t)?ya(F(P(await v(G+aa(a)+na(a,n)),a=>{const n=a[t],e=l?ma(da(a,t),l):da(a,t);return[n,y(i)?e:ya(F(fa(e,(a,t)=>[t,a]),([a])=>(a=>y(i)||g(i,a))(a)))]}),a=>!y(a[0])&&!$a(a[1]))):{}},async(a,t,e,l,w,f=!1,m=r,E)=>{const $=y(E)?void 0:Ia(E),A=a=>y($)||g($,a),_=Ia();va(e??{},a=>C(F(ca(a??{}),A),a=>Sa(_,a)));const p=T(_);if(y($)&&!f&&w&&m==r&&N(p)&&g(u,a))return await v("DROP "+J+aa(a)),ga(u,a),void ga(d,a);const h=_a(u,a),I=Ia(F(T(h),a=>a==t||A(a)));if(!N(p))if(g(u,a)){if(await O(P([t,...p],async t=>{D(I,t)||(await v(X+aa(a)+"ADD"+aa(t)+s),Sa(h,t))})),o==et&&!g(_a(d,a),t)){const e=n+"_pk_"+(a=>{let t=2166136261;return C(tt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ga([a,t]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+aa(e)+"ON"+aa(a)+`(${aa(t)})`),Sa(ha(d,a,Ia),t)}}else await v(W+aa(a)+`(${aa(t)}${s} PRIMARY KEY${M(P(p,a=>i+aa(a)+s))});`),ga(u,a,Ia([t,...p])),ga(d,a,Ia([t]));if(await O([...!f&&l?P(T(I),async n=>{n!=t&&(await v(X+aa(a)+"DROP"+aa(n)),D(h,n))}):[]]),f)y(e)?y($)&&await v(z+aa(a)+na(a,m)):await O(fa(e,async(n,e)=>{if(y(n))await v(z+aa(a)+na(a,m)+`AND(${aa(t)}=$1)`,[e]);else if(!N(p)){const i=F(ca(n),A);N(i)||await o(v,a,t,i,{[e]:P(i,a=>c?c(n[a]):n[a])},h)}}));else if(N(p))y($)&&g(u,a)&&await v(z+aa(a)+na(a,m));else{const n=F(T(_a(u,a)),a=>a!=t&&A(a)),i=ya(),s=[];va(e??{},(a,t)=>{ua(i,t,P(n,t=>c?c(a?.[t]):a?.[t])),q(s,t)}),await o(v,a,t,n,i,h),await v(z+aa(a)+na(a,m)+`AND${aa(t)}NOT IN(${ta(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await L(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},et=async(a,t,n,e,s)=>{const r=[1];await a("INSERT INTO"+aa(t)+"("+((...a)=>M(P(a,aa),i))(n,...e)+")VALUES"+M(fa(s,a=>"($"+r[0]+++","+ta(a,r)+")"),i)+"ON CONFLICT("+aa(n)+")DO UPDATE SET"+M(P(e,a=>aa(a)+"=excluded."+aa(a)),i),fa(s,(a,t)=>[t,...P(a,a=>a??null)]).flat())},it=(a,t,n,e,i,s,r,[o,c,l],w,u,d,v,f,m,E,$,A)=>{const[N,_,p,O]=nt(t,w,u,f,m,void 0,void 0,A);return at(a,()=>O(async()=>{return await N(),a=(await _(o,c))[B]?.[l]??"null",Ka(Ha(a));var a}),a=>O(async()=>{var t;await N(),await p(o,c,{[B]:{[l]:(t=a()??null,Ga(t,(a,t)=>y(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},st=(a,t,n,e,i,s,r,[o,c,[l,w,u,d,v]],f,m,E,$,A,N,_,p,g)=>{const[h,T,I,S]=nt(t,f,m,A,N,_,p,g),D=(a,t)=>O(Oa(c,async([n,e,i,s,r],o)=>{var c,l;t&&(c=a,l=o,!ia.hasOwn(c,l))||await I(n,e,a[o],i,s,t,r)})),b=(a,t,n)=>ya(1==n?F(fa(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):F(P(t,t=>[t,a[t]]),([,a])=>!y(a))),R=async(a,t)=>w?await I(u,U,{[B]:y(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return at(a,()=>S(async()=>{await h();const a=await(async()=>ya(F(await O(Oa(o,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!$a(a[1]))))(),t=await(async()=>l?(await T(u,U,void 0,d))[B]:{})();return $a(a)&&y(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await h(),y(t)){const[t,n]=a();await D(t),await R(n)}else await D(t[0],!0),await R(t[1],!0)}),n,e,i,r,{[$]:()=>E,destroy:s},0,E)},rt=(a,t,i,s,o,l,w,d,f,m,$="getDb",A,N)=>{let _,p,O;const h=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,D,C]=(a=>{const t=(a=>wa(ka,E(a)?{[La]:a}:a??{}))(a),e=t[Pa];if(t.mode==Ra){const a=t[La]??n;return[1,e,[a,t[Ca]??U,t[Ma]??ba],Ia(a)]}const{tables:{load:i={},save:s={}}={},values:o={}}=t,c=wa(Ja,o),{load:l,save:w}=c,u=[Ya(l),Ya(w),c[qa],Xa(l),Xa(w)],y=u[2],d=Ia(y),v=Ia(y),f=za(i,{[xa]:null,[Fa]:U,[ja]:r},xa,a=>g(v,a),a=>Sa(d,a)),m=za(s,{[qa]:null,[Fa]:U,[Ba]:0,[Ua]:0,[ja]:null},qa,(a,t)=>g(v,t),(a,t)=>Sa(d,t));return pa(m,(a,t)=>t[4]??=_a(f,t[0])?.[2]??r),[0,e,[f,m,u],d]})(t);return!I&&a.isMergeable()&&b(0),(I?it:st)(a,h,a=>{let t,n,e=1,i=0,r=0;const l=async(t=!0)=>{const[{d:n,s:i,c:s}]=await h(j+` ${K} d,${Q} s,TOTAL_CHANGES() c FROM ${H}${K} JOIN ${H}${Q}`);if(e&&(n!=_||i!=p||s!=O)){const o=t&&!r&&!u(_);_=n,p=i,O=s,o&&e&&await a()}},d=()=>{y(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(s=!1)=>{if(n)return n;const o=L(()=>((t,n)=>R(async()=>{for(i?s&&await l():(await l(!1),i=1);e&&r;)r=0,await l(!1),e&&(await a(),await l())},a=>{R(()=>n?.(a))}))(0,w),()=>{n==o&&(n=void 0),e&&(r?v():e&&y(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=o,o},f=s(a=>{e&&g(C,a)&&(r=1,d(),c.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,r=0,d(),await L(async()=>await n,async()=>{_=p=O=null,await o(f)})})},a=>a(),w,d,f,D,T(C),async(a,t)=>await a(j+` t.name tn,c.name cn,c.pk OR EXISTS(${j} 1 FROM ${H}index_list(t.name)i,${H}index_info(i.name)ii ${k} i."unique"=1 AND ii.name=c.name AND(${j} count(*) FROM ${H}index_info(i.name))=1)uq FROM ${V}list()t,${V}info(t.name)c ${k} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ta(t)})ORDER BY t.name,c.name`,t),m,$,e,A,a=>v(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(t,n,e,i,s)=>rt(t,e,async(a,t=[])=>await n.getAllAsync(a,t),t=>a(({tableName:a})=>t(a)),a=>a.remove(),i,s,_,3,n);export{ot as createExpoSqlitePersister};
1
+ import{addDatabaseChangeListener as a}from"expo-sqlite";const t=a=>typeof a,n="tinybase",e="",i=",",s=t(e),r="true",c=(a,t,n)=>a.replace(t,n),o=Promise,l=a=>(t,n,e)=>a(t)?e?.():n(t),w=globalThis,u=a=>null==a,y=a=>void 0===a,d=a=>null===a,v=a=>!0===a,f=l(u),m=l(y),E=a=>t(a)==s,$=a=>Array.isArray(a),A=a=>a.length,N=a=>0==A(a),_=()=>{},p=a=>new o(a),h=async a=>o.all(a),O=(a,t)=>a?.has(t)??!1,g=a=>y(a)||0==(a=>a?.size??0)(a),T=a=>[...a?.values()??[]],I=a=>a.clear(),S=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),b=(a,t)=>{throw((a,t)=>Error(n+":"+a+(y(t)?e:":"+t)))(a,t)},R=async(a,t)=>{try{return await a()}catch(a){t?.(a)}},L=(a,t)=>R(a,a=>{R(()=>t?.(a))}),C=async(a,t)=>{try{return await a()}finally{await t()}},M=(a,t)=>a.forEach(t),P=(a,t="")=>a.join(t),F=(a,t)=>a.map(t),x=(a,t)=>a.filter(t),q=(a,t=A(a))=>a.splice(0,t),B=(a,...t)=>a.push(...t),U="_",j="_id",k="SELECT",J="WHERE",X="TABLE",Y="ALTER "+X,z="FROM",G="DELETE "+z,H=k+"*"+z,K="pragma_",Q="data_version",V="schema_version",W="pragma_table_",Z="CREATE "+X,aa=/\$tableName/g,ta=a=>P(F(((a,t="",n)=>a.split(t,n))(a,"."),a=>`"${c(a,/"/g,'""')}"`),"."),na=(a,t=[1])=>P(F(a,()=>"$"+t[0]++),i),ea=(a,t=r)=>J+`(${ia(t,ta(a))})`,ia=(a,t)=>c(a,aa,t),sa=Object,ra=a=>sa.getPrototypeOf(a),ca=sa.entries,oa=a=>!u(a)&&f(ra(a),a=>a==sa.prototype||u(ra(a)),()=>!0),la=sa.keys,wa=sa.freeze,ua=(...a)=>sa.assign(sa.create(null),...a),ya=(a,t,n)=>(sa.defineProperty(a,t,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),da=(a=[])=>{const t=sa.create(null);return M(a,([a,n])=>ya(t,a,n)),t},va=(a,t)=>(delete a[t],a),fa=(a,t)=>M(la(a),n=>t(a[n],n)),ma=(a,t)=>F(ca(a),([a,n])=>t(n,a)),Ea=(a,t)=>{const n=da();return fa(a,(a,e)=>ya(n,e,t(a,e))),n},$a=a=>A(la(a)),Aa=a=>oa(a)&&0==$a(a),Na=Map,_a=a=>new Na(a),pa=(a,t)=>a?.get(t),ha=(a,t)=>S(a,(a,n)=>t(n,a)),Oa=(a,t)=>{const n=[];return ha(a,(a,e)=>B(n,t(e,a))),n},ga=(a,t,n)=>y(n)?(D(a,t),a):a?.set(t,n),Ta=(a,t,n,e)=>{let i=pa(a,t);return O(a,t)?e?.(i):ga(a,t,i=n()),i},Ia=(a,t,n,e,i=0)=>m((n?Ta:pa)(a,t[i],i>A(t)-2?n:_a),s=>{if(i>A(t)-2)return e?.(s)&&ga(a,t[i]),s;const r=Ia(s,t,n,e,i+1);return g(s)&&ga(a,t[i]),r}),Sa=a=>new Set($(a)||y(a)?a:[a]),Da=(a,t)=>a?.add(t),ba="ColumnName",Ra="store",La="json",Ca=Ra+"TableName",Ma=Ra+"Id"+ba,Pa=Ra+ba,Fa="autoLoadIntervalSeconds",xa="rowId"+ba,qa="tableId",Ba="tableName",Ua="deleteEmptyColumns",ja="deleteEmptyTable",ka="condition",Ja={mode:La,[Fa]:1},Xa={load:0,save:0,[Ba]:n+"_values"},Ya=a=>$(a)?a:void 0,za=a=>v(a)||$(a),Ga=(a,t,n,e,i)=>{const s=_a();return fa(a,(a,r)=>{const c=(w=ua(t,E(a)?{[n]:a}:a),o=sa.values(w),l=$a(t),o.slice(0,l));var o,l,w;d(c[0])||e(r,c[0])||(i(r,c[0]),ga(s,r,c))}),s},Ha=JSON.stringify,Ka=JSON.parse,Qa=a=>""===a?void 0:$(a)?F(a,Qa):oa(a)?Ea(a,Qa):a,Va=/^\d+$/,Wa=_a(),Za=_a(),at=_a(),tt=(a,t,n,i,s,r,c,o={},l=0,w=[])=>{let u,v,f,E,_,h=0,O=0,T=0,I=0,P=0,U=0,j=0,k=0,J=0;const X={},Y=o.destroy;Ta(Wa,w,()=>0),Ta(Za,w,()=>[]),ga(at,w,(pa(at,w)??0)+1);const z=_a(),[G,H,K,Q,V]=((a=1,t,n)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!n),([[a],[t]])=>!Aa(a)||!Aa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Aa(a)||!Aa(t),t.setContent]:b(0))(c,a,l),[W,Z,aa]=(a=>{let t;const[n,i]=(()=>{const a=[];let t=0;return[n=>(n?a.shift():null)??e+t++,t=>{Va.test(t)&&A(a)<1e3&&B(a,t)}]})(),s=_a(),r=(a,n,i,r)=>{let c,o=!1;if(M(((a,t=[e])=>{const n=[],i=(a,e)=>e==A(t)?B(n,a):d(t[e])?S(a,a=>i(a,e+1)):M([t[e],null],t=>i(pa(a,t),e+1));return i(a,0),n})(n,i),n=>S(n,n=>{const e=()=>pa(s,n)[0](t,...i??[],...r);a?(a=>{try{return a()}catch(a){(a=>{o||(c=a),o=!0})?.(a)}})(e):e()})),o)throw c};return[(i,r,c,o=[],l=()=>[])=>{t??=a();const w=n(1);return ga(s,w,[i,r,c,o,l]),Da(Ia(r,c??[e],Sa),w),w},(a,t,...n)=>r(!1,a,t,n),a=>m(pa(s,a),([,t,n])=>(Ia(t,n??[e],void 0,t=>(D(t,a),g(t)?1:0)),ga(s,a),i(a),n)),a=>m(pa(s,a),([a,,n=[],e,i])=>{const s=(...r)=>{const c=A(r);c==A(n)?a(t,...r,...i(r)):d(n[c])?M(e[c]?.(...r)??[],a=>s(...r,a)):s(...r,n[c])};s()}),(a,t,...n)=>r(!0,a,t,n)]})(()=>Ea),ta=a=>{a!=h&&(h=a,Z(z,void 0,h))},na=()=>{pa(at,w)||pa(Wa,w)||!N(pa(Za,w)??[])||(ga(Wa,w),ga(Za,w),ga(at,w))},ea=t=>{(G&&$(t?.[0])?1===t?.[2]?a.__[4]:a.__[3]:1===t?.[2]?a._[10]:a._[9])(t)},ia=async()=>{va()&&a.__?.[0]?.()&&await ua()},sa=a=>C(()=>v=a,()=>{v==a&&(v=void 0)}),ra=async a=>(2!=h&&(await C(async()=>{ta(1),O++,await ma(()=>R(async()=>{const n=await t();$(n)?ea(n):y(n)&&a?V(a):y(n)||b(1,n)},t=>{r?.(t),a&&V(a)}))},()=>ta(0)),await ia()),Ea),ca=async()=>{const a=j;j=0,a&&a==I&&!J&&(2==h?j=a:await ra())},oa=async a=>{const t=++I;let n=!0;if(await la(!0),t==I&&!J){const e=R(async()=>{const a=await i(async(a,e)=>{if(t==I&&!J)if(e||a){const t=n||2==h||!!U;P++,t&&U++,await C(async()=>{ta(1),O++,await(t?ma(()=>ea(e??a)):(()=>{try{return ea(e??a)}finally{ta(0)}})())},()=>{t&&U--,--P||ta(0)}),P||await ia()}else 2==h?j=t:await ra()});t!=I||J?y(a)||await s(a):u=a},r);await sa(e),t!=I||J||await C(()=>ra(a),()=>{n=!1})}return Ea},la=async(a=!1)=>{j=0,a||I++;const t=v,n=u;return u=void 0,await sa(C(async()=>{await t},async()=>{y(n)||await R(()=>s(n),r)})),Ea},ua=async a=>(1!=h&&await C(()=>C(async()=>{ta(2),T++,await ma(()=>R(()=>n(H,a),r))},()=>ta(0)),ca),Ea),ya=async()=>{const t=++k;return await da(!0),t!=k||J||(await ua(),t!=k||J||(f=a.addDidFinishTransactionListener(()=>{if(t==k&&!J){const a=K();Q(a)&&R(()=>ua(a))}}))),Ea},da=async(t=!1)=>{t||k++;const n=f;return f=void 0,y(n)||a.delListener(n),Ea},va=()=>!y(f),fa=async(a=!1)=>{const[t,n]=a?[da,la]:[la,da];return await C(()=>t(),async()=>{await n()}),Ea},ma=async(...a)=>{let t,n=!1;const e=p(e=>N(a)?e():B(pa(Za,w),...F(a,(i,s)=>{const c=s==A(a)-1;return[async()=>{let a;_=p(t=>a=t),await C(async()=>{try{await R(i,r)}catch(a){n||(n=!0,t=a)}c&&e()},()=>{_=void 0,a()})},c?e:void 0,X]})));if(await(async()=>{if(!pa(Wa,w)){ga(Wa,w,1);const a=pa(Za,w);let t=0;await C(async()=>{for(;t<A(a);){const n=a[t++];n[2]=void 0,await n[0]()}},()=>{q(a,t),ga(Wa,w,0),na()})}})(),await e,n)throw t;return Ea},Ea={load:ra,startAutoLoad:oa,stopAutoLoad:la,isAutoLoading:()=>!y(u),save:ua,startAutoSave:ya,stopAutoSave:da,isAutoSaving:va,startAutoPersisting:async(a,t=!1)=>{const[n,e,i,s]=t?[ya,oa,da,la]:[oa,ya,la,da],r=n(a),c=t?k:I;await r;const o=e(a),l=t?I:k;try{await o}catch(a){throw l==(t?I:k)&&await L(s),c==(t?k:I)&&await L(i),a}return Ea},stopAutoPersisting:fa,getStatus:()=>h,addStatusListener:a=>W(a,z),delListener:t=>(aa(t),a),schedule:ma,getStore:()=>a,getStats:()=>({loads:O,saves:T}),...o,destroy:async()=>(y(E)&&(J=1,E=(async()=>{const a=pa(Za,w),t=x(a,([,a,t])=>t!=X||(a?.(),!1)),n=_;q(a),B(a,...t),await C(()=>C(()=>C(fa,()=>n),()=>Y?.()),()=>{const a=(pa(at,w)??1)-1;ga(at,w,a||void 0),na()})})()),await E,Ea)};return wa(Ea)},nt=new w.TextEncoder,et=(a,t,e,s,c=it,o,l,w)=>{const u=_a(),d=_a();let v=a;return[async()=>{I(u),I(d),M(await e(v,t),({tn:a,cn:t,uq:n})=>{Da(Ta(u,a,Sa),t),n&&Da(Ta(d,a,Sa),t)})},async(a,t,n,e)=>{const i=y(e)?void 0:Sa(e);return((a,t)=>O(pa(u,a),t))(a,t)?da(x(F(await v(H+ta(a)+ea(a,n)),a=>{const n=a[t],e=l?Ea(va(a,t),l):va(a,t);return[n,y(i)?e:da(x(ma(e,(a,t)=>[t,a]),([a])=>(a=>y(i)||O(i,a))(a)))]}),a=>!y(a[0])&&!Aa(a[1]))):{}},async(a,t,e,l,w,f=!1,m=r,E)=>{const $=y(E)?void 0:Sa(E),A=a=>y($)||O($,a),_=Sa();fa(e??{},a=>M(x(la(a??{}),A),a=>Da(_,a)));const p=T(_);if(y($)&&!f&&w&&m==r&&N(p)&&O(u,a))return await v("DROP "+X+ta(a)),ga(u,a),void ga(d,a);const g=pa(u,a),I=Sa(x(T(g),a=>a==t||A(a)));if(!N(p))if(O(u,a)){if(await h(F([t,...p],async t=>{D(I,t)||(await v(Y+ta(a)+"ADD"+ta(t)+s),Da(g,t))})),c==it&&!O(pa(d,a),t)){const e=n+"_pk_"+(a=>{let t=2166136261;return M(nt.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(Ha([a,t]));await v("CREATE UNIQUE INDEX IF NOT EXISTS"+ta(e)+"ON"+ta(a)+`(${ta(t)})`),Da(Ta(d,a,Sa),t)}}else await v(Z+ta(a)+`(${ta(t)}${s} PRIMARY KEY${P(F(p,a=>i+ta(a)+s))});`),ga(u,a,Sa([t,...p])),ga(d,a,Sa([t]));if(await h([...!f&&l?F(T(I),async n=>{n!=t&&(await v(Y+ta(a)+"DROP"+ta(n)),D(g,n))}):[]]),f)y(e)?y($)&&await v(G+ta(a)+ea(a,m)):await h(ma(e,async(n,e)=>{if(y(n))await v(G+ta(a)+ea(a,m)+`AND(${ta(t)}=$1)`,[e]);else if(!N(p)){const i=x(la(n),A);N(i)||await c(v,a,t,i,{[e]:F(i,a=>o?o(n[a]):n[a])},g)}}));else if(N(p))y($)&&O(u,a)&&await v(G+ta(a)+ea(a,m));else{const n=x(T(pa(u,a)),a=>a!=t&&A(a)),i=da(),s=[];fa(e??{},(a,t)=>{ya(i,t,F(n,t=>o?o(a?.[t]):a?.[t])),B(s,t)}),await c(v,a,t,n,i,g),await v(G+ta(a)+ea(a,m)+`AND${ta(t)}NOT IN(${na(s)})`,s)}},async t=>{if(w)return await w(async a=>{const n=v;return v=a,await C(t,()=>{v=n})});await a("BEGIN");try{const n=await t();return await a("END"),n}catch(t){throw await R(()=>a("ROLLBACK")),t}}]},it=async(a,t,n,e,s)=>{const r=[1];await a("INSERT INTO"+ta(t)+"("+((...a)=>P(F(a,ta),i))(n,...e)+")VALUES"+P(ma(s,a=>"($"+r[0]+++","+na(a,r)+")"),i)+"ON CONFLICT("+ta(n)+")DO UPDATE SET"+P(F(e,a=>ta(a)+"=excluded."+ta(a)),i),ma(s,(a,t)=>[t,...F(a,a=>a??null)]).flat())},st=(a,t,n,e,i,s,r,[c,o,l],w,u,d,v,f,m,E,$,A)=>{const[N,_,p,h]=et(t,w,u,f,m,void 0,void 0,A);return tt(a,()=>h(async()=>{return await N(),a=(await _(c,o))[U]?.[l]??"null",Qa(Ka(a));var a}),a=>h(async()=>{var t;await N(),await p(c,o,{[U]:{[l]:(t=a()??null,Ha(t,(a,t)=>y(t)?"":t))}},!0,!0)}),n,e,i,r,{[v]:()=>d,destroy:s},0,d)},rt=(a,t,n,e,i,s,r,[c,o,[l,w,u,d,v]],f,m,E,$,A,N,_,p,O)=>{const[g,T,I,S]=et(t,f,m,A,N,_,p,O),D=(a,t)=>h(Oa(o,async([n,e,i,s,r],c)=>{var o,l;t&&(o=a,l=c,!sa.hasOwn(o,l))||await I(n,e,a[c],i,s,t,r)})),b=(a,t,n)=>da(1==n?x(ma(a,(a,t)=>[t,a]),([a])=>{return n=a,t.includes(n);var n}):x(F(t,t=>[t,a[t]]),([,a])=>!y(a))),R=async(a,t)=>w?await I(u,j,{[U]:y(v)?a:b(a,v,t)},!0,!0,t,void 0,v):null;return tt(a,()=>S(async()=>{await g();const a=await(async()=>da(x(await h(Oa(c,async([a,t,n],e)=>[a,await T(e,t,n)])),a=>!Aa(a[1]))))(),t=await(async()=>l?(await T(u,j,void 0,d))[U]:{})();return Aa(a)&&y(t)?void 0:[a,t]}),(a,t)=>S(async()=>{if(await g(),y(t)){const[t,n]=a();await D(t),await R(n)}else await D(t[0],!0),await R(t[1],!0)}),n,e,i,r,{[$]:()=>E,destroy:s},0,E)},ct=(a,t,i,s,c,l,w,d,f,m,$="getDb",A,N)=>{let _,p,h;const g=((a,t)=>t?async(n,e)=>(t(n,e),await a(n,e)):a)(i,l),[I,S,D,R]=(a=>{const t=(a=>ua(Ja,E(a)?{[Ca]:a}:a??{}))(a),e=t[Fa];if(t.mode==La){const a=t[Ca]??n;return[1,e,[a,t[Ma]??j,t[Pa]??Ra],Sa(a)]}const{tables:{load:i={},save:s={}}={},values:c={}}=t,o=ua(Xa,c),{load:l,save:w}=o,u=[za(l),za(w),o[Ba],Ya(l),Ya(w)],y=u[2],d=Sa(y),v=Sa(y),f=Ga(i,{[qa]:null,[xa]:j,[ka]:r},qa,a=>O(v,a),a=>Da(d,a)),m=Ga(s,{[Ba]:null,[xa]:j,[Ua]:0,[ja]:0,[ka]:null},Ba,(a,t)=>O(v,t),(a,t)=>Da(d,t));return ha(m,(a,t)=>t[4]??=pa(f,t[0])?.[2]??r),[0,e,[f,m,u],d]})(t);return!I&&a.isMergeable()&&b(0),(I?st:rt)(a,g,a=>{let t,n,e=1,i=0,r=0;const l=async(t=!0)=>{const[{d:n,s:i,c:s}]=await g(k+` ${Q} d,${V} s,TOTAL_CHANGES() c FROM ${K}${Q} JOIN ${K}${V}`);if(e&&(n!=_||i!=p||s!=h)){const c=t&&!r&&!u(_);_=n,p=i,h=s,c&&e&&await a()}},d=()=>{y(t)||((a=>{clearInterval(a)})(t),t=void 0)},v=(s=!1)=>{if(n)return n;const c=C(()=>L(async()=>{for(i?s&&await l():(await l(!1),i=1);e&&r;)r=0,await l(!1),e&&(await a(),await l())},w),()=>{n==c&&(n=void 0),e&&(r?v():e&&y(t)&&(t=setInterval(()=>v(!0),1e3*S)))});return n=c,c},f=s(a=>{e&&O(R,a)&&(r=1,d(),o.resolve().then(()=>e?void v():0))});return v().then(()=>async()=>{e=0,r=0,d(),await C(async()=>await n,async()=>{_=p=h=null,await c(f)})})},a=>a(),w,d,f,D,T(R),async(a,t)=>await a(k+` t.name tn,c.name cn,c.pk OR EXISTS(${k} 1 FROM ${K}index_list(t.name)i,${K}index_info(i.name)ii ${J} i."unique"=1 AND ii.name=c.name AND(${k} count(*) FROM ${K}index_info(i.name))=1)uq FROM ${W}list()t,${W}info(t.name)c ${J} t.schema='main'AND t.type IN('table','view')AND t.name IN(${na(t)})ORDER BY t.name,c.name`,t),m,$,e,A,a=>v(a)?1:(a=>!1===a)(a)?0:a,void 0,N)},ot=(t,n,e,i,s)=>ct(t,e,async(a,t=[])=>await n.getAllAsync(a,t),t=>a(({tableName:a})=>t(a)),a=>a.remove(),i,s,_,3,n);export{ot as createExpoSqlitePersister};
@@ -1 +1 @@
1
- import{unwatchFile as t,existsSync as a,writeFileSync as n,watchFile as s}from"fs";import{lstat as r,realpath as e,readlink as i,stat as o,unlink as c,writeFile as w,chmod as y,rename as l,readFile as u}from"fs/promises";import{resolve as d,dirname as f}from"path";const v="",p="utf8",h=Promise,g=Math,m=t=>(a,n,s)=>t(a)?s?.():n(a),_=globalThis,A=g.floor,S=g.random,b=t=>null==t,L=t=>void 0===t,P=t=>null===t,O=m(b),E=m(L),M=t=>Array.isArray(t),k=t=>t.length,z=t=>0==k(t),C=t=>new h(t),D=(t,a)=>t.forEach(a),F=(t,a)=>t.map(a),J=(t,a=k(t))=>t.splice(0,a),N=(t,...a)=>t.push(...a),T=t=>L(t)||0==(t=>t?.size??0)(t),j=(t,a)=>t?.forEach(a),x=(t,a)=>t?.delete(a),R=Object,U=t=>R.getPrototypeOf(t),V=t=>!b(t)&&O(U(t),t=>t==R.prototype||b(U(t)),()=>!0),q=R.keys,B=R.freeze,G=(t,a,n)=>(R.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),H=t=>V(t)&&0==(t=>k(q(t)))(t),I=Map,K=t=>new I(t),Q=(t,a)=>t?.get(a),W=(t,a,n)=>L(n)?(x(t,a),t):t?.set(a,n),X=(t,a,n,s)=>{let r=Q(t,a);var e,i;return e=t,i=a,e?.has(i)?s?.(r):W(t,a,r=n()),r},Y=(t,a,n,s,r=0)=>E((n?X:Q)(t,a[r],r>k(a)-2?n:K),e=>{if(r>k(a)-2)return s?.(e)&&W(t,a[r]),e;const i=Y(e,a,n,s,r+1);return T(e)&&W(t,a[r]),i}),Z=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))();K(F(Z,(t,a)=>[t,a]));const $=_.crypto?t=>_.crypto.getRandomValues(t):t=>F(t,()=>A(256*S())),tt=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(L(a)?v:":"+a)))(t,a)},at=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},nt=async(t,a)=>{try{return await t()}finally{await a()}},st=JSON.stringify,rt=JSON.parse,et=t=>""===t?void 0:M(t)?F(t,et):V(t)?((t,a)=>{const n=((t=[])=>{const a=R.create(null);return D(t,([t,n])=>G(a,t,n)),a})();return((t,a)=>{D(q(t),n=>a(t[n],n))})(t,(t,s)=>G(n,s,a(t,s))),n})(t,et):t,it=/^\d+$/,ot=t=>new Set(M(t)||L(t)?t:[t]),ct=K(),wt=K(),yt=K(),lt=(t,a,n,s,r,e,i,o={},c=0,w=[])=>{let y,l,u,d,f,p=0,h=0,g=0,m=0,_=0,A=0,S=0,b=0,O=0;const R={},U=o.destroy;X(ct,w,()=>0),X(wt,w,()=>[]),W(yt,w,(Q(yt,w)??0)+1);const V=K(),[q,G,I,Z,$]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!H(t)||!H(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!H(t)||!H(a),a.setContent]:tt(0))(i,t,c),[st,rt,et]=(t=>{let a;const[n,s]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??v+a++,a=>{it.test(a)&&k(t)<1e3&&N(t,a)}]})(),r=K(),e=(t,n,s,e)=>{let i,o=!1;if(D(((t,a=[v])=>{const n=[],s=(t,r)=>r==k(a)?N(n,t):P(a[r])?j(t,t=>s(t,r+1)):D([a[r],null],a=>s(Q(t,a),r+1));return s(t,0),n})(n,s),n=>j(n,n=>{const c=()=>Q(r,n)[0](a,...s??[],...e);t?(t=>{try{return t()}catch(t){(t=>{o||(i=t),o=!0})?.(t)}})(c):c()})),o)throw i};return[(s,e,i,o=[],c=()=>[])=>{a??=t();const w=n(1);var y,l;return W(r,w,[s,e,i,o,c]),y=Y(e,i??[v],ot),l=w,y?.add(l),w},(t,a,...n)=>e(!1,t,a,n),t=>E(Q(r,t),([,a,n])=>(Y(a,n??[v],void 0,a=>(x(a,t),T(a)?1:0)),W(r,t),s(t),n)),t=>E(Q(r,t),([t,,n=[],s,r])=>{const e=(...i)=>{const o=k(i);o==k(n)?t(a,...i,...r(i)):P(n[o])?D(s[o]?.(...i)??[],t=>e(...i,t)):e(...i,n[o])};e()}),(t,a,...n)=>e(!0,t,a,n)]})(()=>Ot),lt=t=>{t!=p&&(p=t,rt(V,void 0,p))},ut=()=>{Q(yt,w)||Q(ct,w)||!z(Q(wt,w)??[])||(W(ct,w),W(wt,w),W(yt,w))},dt=a=>{(q&&M(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{bt()&&t.__?.[0]?.()&&await _t()},vt=t=>nt(()=>l=t,()=>{l==t&&(l=void 0)}),pt=async t=>(2!=p&&(await nt(async()=>{lt(1),h++,await Pt(()=>at(async()=>{const n=await a();M(n)?dt(n):L(n)&&t?$(t):L(n)||tt(1,n)},a=>{e?.(a),t&&$(t)}))},()=>lt(0)),await ft()),Ot),ht=async()=>{const t=S;S=0,t&&t==m&&!O&&(2==p?S=t:await pt())},gt=async t=>{const a=++m;let n=!0;if(await mt(!0),a==m&&!O){const i=at(async()=>{const t=await s(async(t,s)=>{if(a==m&&!O)if(s||t){const a=n||2==p||!!A;_++,a&&A++,await nt(async()=>{lt(1),h++,await(a?Pt(()=>dt(s??t)):(()=>{try{return dt(s??t)}finally{lt(0)}})())},()=>{a&&A--,--_||lt(0)}),_||await ft()}else 2==p?S=a:await pt()});a!=m||O?L(t)||await r(t):y=t},e);await vt(i),a!=m||O||await nt(()=>pt(t),()=>{n=!1})}return Ot},mt=async(t=!1)=>{S=0,t||m++;const a=l,n=y;return y=void 0,await vt(nt(async()=>{await a},async()=>{L(n)||await at(()=>r(n),e)})),Ot},_t=async t=>(1!=p&&await nt(()=>nt(async()=>{lt(2),g++,await Pt(()=>at(()=>n(G,t),e))},()=>lt(0)),ht),Ot),At=async()=>{const a=++b;return await St(!0),a!=b||O||(await _t(),a!=b||O||(u=t.addDidFinishTransactionListener(()=>{if(a==b&&!O){const t=I();Z(t)&&at(()=>_t(t))}}))),Ot},St=async(a=!1)=>{a||b++;const n=u;return u=void 0,L(n)||t.delListener(n),Ot},bt=()=>!L(u),Lt=async(t=!1)=>{const[a,n]=t?[St,mt]:[mt,St];return await nt(()=>a(),async()=>{await n()}),Ot},Pt=async(...t)=>{let a,n=!1;const s=C(s=>z(t)?s():N(Q(wt,w),...F(t,(r,i)=>{const o=i==k(t)-1;return[async()=>{let t;f=C(a=>t=a),await nt(async()=>{try{await at(r,e)}catch(t){n||(n=!0,a=t)}o&&s()},()=>{f=void 0,t()})},o?s:void 0,R]})));if(await(async()=>{if(!Q(ct,w)){W(ct,w,1);const t=Q(wt,w);let a=0;await nt(async()=>{for(;a<k(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{J(t,a),W(ct,w,0),ut()})}})(),await s,n)throw a;return Ot},Ot={load:pt,startAutoLoad:gt,stopAutoLoad:mt,isAutoLoading:()=>!L(y),save:_t,startAutoSave:At,stopAutoSave:St,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,s]=a?[At,gt]:[gt,At];return await n(t),await s(t),Ot},stopAutoPersisting:Lt,getStatus:()=>p,addStatusListener:t=>st(t,V),delListener:a=>(et(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:h,saves:g}),...o,destroy:async()=>(L(d)&&(O=1,d=(async()=>{const t=Q(wt,w),a=(n=([,t,a])=>a!=R||(t?.(),!1),t.filter(n));var n;const s=f;J(t),N(t,...a),await nt(()=>nt(()=>nt(Lt,()=>s),()=>U?.()),()=>{const t=(Q(yt,w)??1)-1;W(yt,w,t||void 0),ut()})})()),await d,Ot)};return B(Ot)},ut=(h,g,m)=>{let _;return lt(h,async()=>{return t=await u(g,p),et(rt(t));var t},async t=>{const a=await at(()=>r(g)),n=a?.isSymbolicLink()?await at(()=>e(g))??d(f(g),await i(g)):g,s=(await at(()=>o(n)))?.mode,u=n+"."+((t=16)=>{return a=(t,a)=>t+Z[63&a],$(new Uint8Array(t)).reduce(a,"");var a})()+".tmp",v=(h=t(),st(h,(t,a)=>L(a)?"":a));var h;const m=_;_=v,await nt(async()=>{try{await w(u,v,p),await E(s,t=>y(u,4095&t)),await l(u,n)}catch(t){throw _=m,t}},()=>at(()=>c(u)))},t=>{a(g)||n(g,v,p);const r=()=>(async()=>await at(async()=>{const a=await u(g,p);a!=_&&(_=a,t())},()=>{null!==_&&(_=null,t())}))();return s(g,{interval:50},r),r},a=>t(g,a),m,3,{getFilePath:()=>g})};export{ut as createFilePersister};
1
+ import{unwatchFile as t,existsSync as a,writeFileSync as n,watchFile as s}from"fs";import{lstat as r,realpath as e,readlink as i,stat as o,unlink as c,writeFile as w,chmod as y,rename as l,readFile as u}from"fs/promises";import{resolve as d,dirname as f}from"path";const v="",h="utf8",p=Promise,g=Math,m=t=>(a,n,s)=>t(a)?s?.():n(a),_=globalThis,A=g.floor,S=g.random,b=t=>null==t,L=t=>void 0===t,P=t=>null===t,O=m(b),E=m(L),M=t=>Array.isArray(t),k=t=>t.length,z=t=>0==k(t),C=t=>new p(t),D=(t,a)=>t.forEach(a),F=(t,a)=>t.map(a),J=(t,a=k(t))=>t.splice(0,a),N=(t,...a)=>t.push(...a),T=t=>L(t)||0==(t=>t?.size??0)(t),j=(t,a)=>t?.forEach(a),x=(t,a)=>t?.delete(a),R=Object,U=t=>R.getPrototypeOf(t),V=t=>!b(t)&&O(U(t),t=>t==R.prototype||b(U(t)),()=>!0),q=R.keys,B=R.freeze,G=(t,a,n)=>(R.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),H=t=>V(t)&&0==(t=>k(q(t)))(t),I=Map,K=t=>new I(t),Q=(t,a)=>t?.get(a),W=(t,a,n)=>L(n)?(x(t,a),t):t?.set(a,n),X=(t,a,n,s)=>{let r=Q(t,a);var e,i;return e=t,i=a,e?.has(i)?s?.(r):W(t,a,r=n()),r},Y=(t,a,n,s,r=0)=>E((n?X:Q)(t,a[r],r>k(a)-2?n:K),e=>{if(r>k(a)-2)return s?.(e)&&W(t,a[r]),e;const i=Y(e,a,n,s,r+1);return T(e)&&W(t,a[r]),i}),Z=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))();K(F(Z,(t,a)=>[t,a]));const $=_.crypto?t=>_.crypto.getRandomValues(t):t=>F(t,()=>A(256*S())),tt=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(L(a)?v:":"+a)))(t,a)},at=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},nt=(t,a)=>at(t,t=>{at(()=>a?.(t))}),st=async(t,a)=>{try{return await t()}finally{await a()}},rt=JSON.stringify,et=JSON.parse,it=t=>""===t?void 0:M(t)?F(t,it):V(t)?((t,a)=>{const n=((t=[])=>{const a=R.create(null);return D(t,([t,n])=>G(a,t,n)),a})();return((t,a)=>{D(q(t),n=>a(t[n],n))})(t,(t,s)=>G(n,s,a(t,s))),n})(t,it):t,ot=/^\d+$/,ct=t=>new Set(M(t)||L(t)?t:[t]),wt=K(),yt=K(),lt=K(),ut=(t,a,n,s,r,e,i,o={},c=0,w=[])=>{let y,l,u,d,f,h=0,p=0,g=0,m=0,_=0,A=0,S=0,b=0,O=0;const R={},U=o.destroy;X(wt,w,()=>0),X(yt,w,()=>[]),W(lt,w,(Q(lt,w)??0)+1);const V=K(),[q,G,I,Z,$]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!H(t)||!H(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!H(t)||!H(a),a.setContent]:tt(0))(i,t,c),[rt,et,it]=(t=>{let a;const[n,s]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??v+a++,a=>{ot.test(a)&&k(t)<1e3&&N(t,a)}]})(),r=K(),e=(t,n,s,e)=>{let i,o=!1;if(D(((t,a=[v])=>{const n=[],s=(t,r)=>r==k(a)?N(n,t):P(a[r])?j(t,t=>s(t,r+1)):D([a[r],null],a=>s(Q(t,a),r+1));return s(t,0),n})(n,s),n=>j(n,n=>{const c=()=>Q(r,n)[0](a,...s??[],...e);t?(t=>{try{return t()}catch(t){(t=>{o||(i=t),o=!0})?.(t)}})(c):c()})),o)throw i};return[(s,e,i,o=[],c=()=>[])=>{a??=t();const w=n(1);var y,l;return W(r,w,[s,e,i,o,c]),y=Y(e,i??[v],ct),l=w,y?.add(l),w},(t,a,...n)=>e(!1,t,a,n),t=>E(Q(r,t),([,a,n])=>(Y(a,n??[v],void 0,a=>(x(a,t),T(a)?1:0)),W(r,t),s(t),n)),t=>E(Q(r,t),([t,,n=[],s,r])=>{const e=(...i)=>{const o=k(i);o==k(n)?t(a,...i,...r(i)):P(n[o])?D(s[o]?.(...i)??[],t=>e(...i,t)):e(...i,n[o])};e()}),(t,a,...n)=>e(!0,t,a,n)]})(()=>Et),ut=t=>{t!=h&&(h=t,et(V,void 0,h))},dt=()=>{Q(lt,w)||Q(wt,w)||!z(Q(yt,w)??[])||(W(wt,w),W(yt,w),W(lt,w))},ft=a=>{(q&&M(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{Lt()&&t.__?.[0]?.()&&await At()},ht=t=>st(()=>l=t,()=>{l==t&&(l=void 0)}),pt=async t=>(2!=h&&(await st(async()=>{ut(1),p++,await Ot(()=>at(async()=>{const n=await a();M(n)?ft(n):L(n)&&t?$(t):L(n)||tt(1,n)},a=>{e?.(a),t&&$(t)}))},()=>ut(0)),await vt()),Et),gt=async()=>{const t=S;S=0,t&&t==m&&!O&&(2==h?S=t:await pt())},mt=async t=>{const a=++m;let n=!0;if(await _t(!0),a==m&&!O){const i=at(async()=>{const t=await s(async(t,s)=>{if(a==m&&!O)if(s||t){const a=n||2==h||!!A;_++,a&&A++,await st(async()=>{ut(1),p++,await(a?Ot(()=>ft(s??t)):(()=>{try{return ft(s??t)}finally{ut(0)}})())},()=>{a&&A--,--_||ut(0)}),_||await vt()}else 2==h?S=a:await pt()});a!=m||O?L(t)||await r(t):y=t},e);await ht(i),a!=m||O||await st(()=>pt(t),()=>{n=!1})}return Et},_t=async(t=!1)=>{S=0,t||m++;const a=l,n=y;return y=void 0,await ht(st(async()=>{await a},async()=>{L(n)||await at(()=>r(n),e)})),Et},At=async t=>(1!=h&&await st(()=>st(async()=>{ut(2),g++,await Ot(()=>at(()=>n(G,t),e))},()=>ut(0)),gt),Et),St=async()=>{const a=++b;return await bt(!0),a!=b||O||(await At(),a!=b||O||(u=t.addDidFinishTransactionListener(()=>{if(a==b&&!O){const t=I();Z(t)&&at(()=>At(t))}}))),Et},bt=async(a=!1)=>{a||b++;const n=u;return u=void 0,L(n)||t.delListener(n),Et},Lt=()=>!L(u),Pt=async(t=!1)=>{const[a,n]=t?[bt,_t]:[_t,bt];return await st(()=>a(),async()=>{await n()}),Et},Ot=async(...t)=>{let a,n=!1;const s=C(s=>z(t)?s():N(Q(yt,w),...F(t,(r,i)=>{const o=i==k(t)-1;return[async()=>{let t;f=C(a=>t=a),await st(async()=>{try{await at(r,e)}catch(t){n||(n=!0,a=t)}o&&s()},()=>{f=void 0,t()})},o?s:void 0,R]})));if(await(async()=>{if(!Q(wt,w)){W(wt,w,1);const t=Q(yt,w);let a=0;await st(async()=>{for(;a<k(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{J(t,a),W(wt,w,0),dt()})}})(),await s,n)throw a;return Et},Et={load:pt,startAutoLoad:mt,stopAutoLoad:_t,isAutoLoading:()=>!L(y),save:At,startAutoSave:St,stopAutoSave:bt,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[n,s,r,e]=a?[St,mt,bt,_t]:[mt,St,_t,bt],i=n(t),o=a?b:m;await i;const c=s(t),w=a?m:b;try{await c}catch(t){throw w==(a?m:b)&&await nt(e),o==(a?b:m)&&await nt(r),t}return Et},stopAutoPersisting:Pt,getStatus:()=>h,addStatusListener:t=>rt(t,V),delListener:a=>(it(a),t),schedule:Ot,getStore:()=>t,getStats:()=>({loads:p,saves:g}),...o,destroy:async()=>(L(d)&&(O=1,d=(async()=>{const t=Q(yt,w),a=(n=([,t,a])=>a!=R||(t?.(),!1),t.filter(n));var n;const s=f;J(t),N(t,...a),await st(()=>st(()=>st(Pt,()=>s),()=>U?.()),()=>{const t=(Q(lt,w)??1)-1;W(lt,w,t||void 0),dt()})})()),await d,Et)};return B(Et)},dt=(p,g,m)=>{let _;return ut(p,async()=>{return t=await u(g,h),it(et(t));var t},async t=>{const a=await at(()=>r(g)),n=a?.isSymbolicLink()?await at(()=>e(g))??d(f(g),await i(g)):g,s=(await at(()=>o(n)))?.mode,u=n+"."+((t=16)=>{return a=(t,a)=>t+Z[63&a],$(new Uint8Array(t)).reduce(a,"");var a})()+".tmp",v=(p=t(),rt(p,(t,a)=>L(a)?"":a));var p;const m=_;_=v,await st(async()=>{try{await w(u,v,h),await E(s,t=>y(u,4095&t)),await l(u,n)}catch(t){throw _=m,t}},()=>at(()=>c(u)))},t=>{a(g)||n(g,v,h);const r=()=>(async()=>await at(async()=>{const a=await u(g,h);a!=_&&(_=a,t())},()=>{null!==_&&(_=null,t())}))();return s(g,{interval:50},r),r},a=>t(g,a),m,3,{getFilePath:()=>g})};export{dt as createFilePersister};
@@ -1 +1 @@
1
- import{unwatchFile as t,existsSync as a,writeFileSync as n,watchFile as s}from"fs";import{lstat as r,realpath as e,readlink as i,stat as o,unlink as c,writeFile as w,chmod as y,rename as l,readFile as u}from"fs/promises";import{resolve as d,dirname as f}from"path";const v="",p="utf8",h=Promise,g=Math,m=t=>(a,n,s)=>t(a)?s?.():n(a),_=globalThis,A=g.floor,S=g.random,b=t=>null==t,L=t=>void 0===t,P=t=>null===t,O=m(b),E=m(L),M=t=>Array.isArray(t),k=t=>t.length,z=t=>0==k(t),C=t=>new h(t),D=(t,a)=>t.forEach(a),F=(t,a)=>t.map(a),J=(t,a=k(t))=>t.splice(0,a),N=(t,...a)=>t.push(...a),T=t=>L(t)||0==(t=>t?.size??0)(t),j=(t,a)=>t?.forEach(a),x=(t,a)=>t?.delete(a),R=Object,U=t=>R.getPrototypeOf(t),V=t=>!b(t)&&O(U(t),t=>t==R.prototype||b(U(t)),()=>!0),q=R.keys,B=R.freeze,G=(t,a,n)=>(R.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),H=t=>V(t)&&0==(t=>k(q(t)))(t),I=Map,K=t=>new I(t),Q=(t,a)=>t?.get(a),W=(t,a,n)=>L(n)?(x(t,a),t):t?.set(a,n),X=(t,a,n,s)=>{let r=Q(t,a);var e,i;return e=t,i=a,e?.has(i)?s?.(r):W(t,a,r=n()),r},Y=(t,a,n,s,r=0)=>E((n?X:Q)(t,a[r],r>k(a)-2?n:K),e=>{if(r>k(a)-2)return s?.(e)&&W(t,a[r]),e;const i=Y(e,a,n,s,r+1);return T(e)&&W(t,a[r]),i}),Z=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))();K(F(Z,(t,a)=>[t,a]));const $=_.crypto?t=>_.crypto.getRandomValues(t):t=>F(t,()=>A(256*S())),tt=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(L(a)?v:":"+a)))(t,a)},at=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},nt=async(t,a)=>{try{return await t()}finally{await a()}},st=JSON.stringify,rt=JSON.parse,et=t=>""===t?void 0:M(t)?F(t,et):V(t)?((t,a)=>{const n=((t=[])=>{const a=R.create(null);return D(t,([t,n])=>G(a,t,n)),a})();return((t,a)=>{D(q(t),n=>a(t[n],n))})(t,(t,s)=>G(n,s,a(t,s))),n})(t,et):t,it=/^\d+$/,ot=t=>new Set(M(t)||L(t)?t:[t]),ct=K(),wt=K(),yt=K(),lt=(t,a,n,s,r,e,i,o={},c=0,w=[])=>{let y,l,u,d,f,p=0,h=0,g=0,m=0,_=0,A=0,S=0,b=0,O=0;const R={},U=o.destroy;X(ct,w,()=>0),X(wt,w,()=>[]),W(yt,w,(Q(yt,w)??0)+1);const V=K(),[q,G,I,Z,$]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!H(t)||!H(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!H(t)||!H(a),a.setContent]:tt(0))(i,t,c),[st,rt,et]=(t=>{let a;const[n,s]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??v+a++,a=>{it.test(a)&&k(t)<1e3&&N(t,a)}]})(),r=K(),e=(t,n,s,e)=>{let i,o=!1;if(D(((t,a=[v])=>{const n=[],s=(t,r)=>r==k(a)?N(n,t):P(a[r])?j(t,t=>s(t,r+1)):D([a[r],null],a=>s(Q(t,a),r+1));return s(t,0),n})(n,s),n=>j(n,n=>{const c=()=>Q(r,n)[0](a,...s??[],...e);t?(t=>{try{return t()}catch(t){(t=>{o||(i=t),o=!0})?.(t)}})(c):c()})),o)throw i};return[(s,e,i,o=[],c=()=>[])=>{a??=t();const w=n(1);var y,l;return W(r,w,[s,e,i,o,c]),y=Y(e,i??[v],ot),l=w,y?.add(l),w},(t,a,...n)=>e(!1,t,a,n),t=>E(Q(r,t),([,a,n])=>(Y(a,n??[v],void 0,a=>(x(a,t),T(a)?1:0)),W(r,t),s(t),n)),t=>E(Q(r,t),([t,,n=[],s,r])=>{const e=(...i)=>{const o=k(i);o==k(n)?t(a,...i,...r(i)):P(n[o])?D(s[o]?.(...i)??[],t=>e(...i,t)):e(...i,n[o])};e()}),(t,a,...n)=>e(!0,t,a,n)]})(()=>Ot),lt=t=>{t!=p&&(p=t,rt(V,void 0,p))},ut=()=>{Q(yt,w)||Q(ct,w)||!z(Q(wt,w)??[])||(W(ct,w),W(wt,w),W(yt,w))},dt=a=>{(q&&M(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{bt()&&t.__?.[0]?.()&&await _t()},vt=t=>nt(()=>l=t,()=>{l==t&&(l=void 0)}),pt=async t=>(2!=p&&(await nt(async()=>{lt(1),h++,await Pt(()=>at(async()=>{const n=await a();M(n)?dt(n):L(n)&&t?$(t):L(n)||tt(1,n)},a=>{e?.(a),t&&$(t)}))},()=>lt(0)),await ft()),Ot),ht=async()=>{const t=S;S=0,t&&t==m&&!O&&(2==p?S=t:await pt())},gt=async t=>{const a=++m;let n=!0;if(await mt(!0),a==m&&!O){const i=at(async()=>{const t=await s(async(t,s)=>{if(a==m&&!O)if(s||t){const a=n||2==p||!!A;_++,a&&A++,await nt(async()=>{lt(1),h++,await(a?Pt(()=>dt(s??t)):(()=>{try{return dt(s??t)}finally{lt(0)}})())},()=>{a&&A--,--_||lt(0)}),_||await ft()}else 2==p?S=a:await pt()});a!=m||O?L(t)||await r(t):y=t},e);await vt(i),a!=m||O||await nt(()=>pt(t),()=>{n=!1})}return Ot},mt=async(t=!1)=>{S=0,t||m++;const a=l,n=y;return y=void 0,await vt(nt(async()=>{await a},async()=>{L(n)||await at(()=>r(n),e)})),Ot},_t=async t=>(1!=p&&await nt(()=>nt(async()=>{lt(2),g++,await Pt(()=>at(()=>n(G,t),e))},()=>lt(0)),ht),Ot),At=async()=>{const a=++b;return await St(!0),a!=b||O||(await _t(),a!=b||O||(u=t.addDidFinishTransactionListener(()=>{if(a==b&&!O){const t=I();Z(t)&&at(()=>_t(t))}}))),Ot},St=async(a=!1)=>{a||b++;const n=u;return u=void 0,L(n)||t.delListener(n),Ot},bt=()=>!L(u),Lt=async(t=!1)=>{const[a,n]=t?[St,mt]:[mt,St];return await nt(()=>a(),async()=>{await n()}),Ot},Pt=async(...t)=>{let a,n=!1;const s=C(s=>z(t)?s():N(Q(wt,w),...F(t,(r,i)=>{const o=i==k(t)-1;return[async()=>{let t;f=C(a=>t=a),await nt(async()=>{try{await at(r,e)}catch(t){n||(n=!0,a=t)}o&&s()},()=>{f=void 0,t()})},o?s:void 0,R]})));if(await(async()=>{if(!Q(ct,w)){W(ct,w,1);const t=Q(wt,w);let a=0;await nt(async()=>{for(;a<k(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{J(t,a),W(ct,w,0),ut()})}})(),await s,n)throw a;return Ot},Ot={load:pt,startAutoLoad:gt,stopAutoLoad:mt,isAutoLoading:()=>!L(y),save:_t,startAutoSave:At,stopAutoSave:St,isAutoSaving:bt,startAutoPersisting:async(t,a=!1)=>{const[n,s]=a?[At,gt]:[gt,At];return await n(t),await s(t),Ot},stopAutoPersisting:Lt,getStatus:()=>p,addStatusListener:t=>st(t,V),delListener:a=>(et(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:h,saves:g}),...o,destroy:async()=>(L(d)&&(O=1,d=(async()=>{const t=Q(wt,w),a=(n=([,t,a])=>a!=R||(t?.(),!1),t.filter(n));var n;const s=f;J(t),N(t,...a),await nt(()=>nt(()=>nt(Lt,()=>s),()=>U?.()),()=>{const t=(Q(yt,w)??1)-1;W(yt,w,t||void 0),ut()})})()),await d,Ot)};return B(Ot)},ut=(h,g,m)=>{let _;return lt(h,async()=>{return t=await u(g,p),et(rt(t));var t},async t=>{const a=await at(()=>r(g)),n=a?.isSymbolicLink()?await at(()=>e(g))??d(f(g),await i(g)):g,s=(await at(()=>o(n)))?.mode,u=n+"."+((t=16)=>{return a=(t,a)=>t+Z[63&a],$(new Uint8Array(t)).reduce(a,"");var a})()+".tmp",v=(h=t(),st(h,(t,a)=>L(a)?"":a));var h;const m=_;_=v,await nt(async()=>{try{await w(u,v,p),await E(s,t=>y(u,4095&t)),await l(u,n)}catch(t){throw _=m,t}},()=>at(()=>c(u)))},t=>{a(g)||n(g,v,p);const r=()=>(async()=>await at(async()=>{const a=await u(g,p);a!=_&&(_=a,t())},()=>{null!==_&&(_=null,t())}))();return s(g,{interval:50},r),r},a=>t(g,a),m,3,{getFilePath:()=>g})};export{ut as createFilePersister};
1
+ import{unwatchFile as t,existsSync as a,writeFileSync as n,watchFile as s}from"fs";import{lstat as r,realpath as e,readlink as i,stat as o,unlink as c,writeFile as w,chmod as y,rename as l,readFile as u}from"fs/promises";import{resolve as d,dirname as f}from"path";const v="",h="utf8",p=Promise,g=Math,m=t=>(a,n,s)=>t(a)?s?.():n(a),_=globalThis,A=g.floor,S=g.random,b=t=>null==t,L=t=>void 0===t,P=t=>null===t,O=m(b),E=m(L),M=t=>Array.isArray(t),k=t=>t.length,z=t=>0==k(t),C=t=>new p(t),D=(t,a)=>t.forEach(a),F=(t,a)=>t.map(a),J=(t,a=k(t))=>t.splice(0,a),N=(t,...a)=>t.push(...a),T=t=>L(t)||0==(t=>t?.size??0)(t),j=(t,a)=>t?.forEach(a),x=(t,a)=>t?.delete(a),R=Object,U=t=>R.getPrototypeOf(t),V=t=>!b(t)&&O(U(t),t=>t==R.prototype||b(U(t)),()=>!0),q=R.keys,B=R.freeze,G=(t,a,n)=>(R.defineProperty(t,a,{configurable:!0,enumerable:!0,value:n,writable:!0}),n),H=t=>V(t)&&0==(t=>k(q(t)))(t),I=Map,K=t=>new I(t),Q=(t,a)=>t?.get(a),W=(t,a,n)=>L(n)?(x(t,a),t):t?.set(a,n),X=(t,a,n,s)=>{let r=Q(t,a);var e,i;return e=t,i=a,e?.has(i)?s?.(r):W(t,a,r=n()),r},Y=(t,a,n,s,r=0)=>E((n?X:Q)(t,a[r],r>k(a)-2?n:K),e=>{if(r>k(a)-2)return s?.(e)&&W(t,a[r]),e;const i=Y(e,a,n,s,r+1);return T(e)&&W(t,a[r]),i}),Z=((t,a="")=>"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(a,void 0))();K(F(Z,(t,a)=>[t,a]));const $=_.crypto?t=>_.crypto.getRandomValues(t):t=>F(t,()=>A(256*S())),tt=(t,a)=>{throw((t,a)=>Error("tinybase:"+t+(L(a)?v:":"+a)))(t,a)},at=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},nt=(t,a)=>at(t,t=>{at(()=>a?.(t))}),st=async(t,a)=>{try{return await t()}finally{await a()}},rt=JSON.stringify,et=JSON.parse,it=t=>""===t?void 0:M(t)?F(t,it):V(t)?((t,a)=>{const n=((t=[])=>{const a=R.create(null);return D(t,([t,n])=>G(a,t,n)),a})();return((t,a)=>{D(q(t),n=>a(t[n],n))})(t,(t,s)=>G(n,s,a(t,s))),n})(t,it):t,ot=/^\d+$/,ct=t=>new Set(M(t)||L(t)?t:[t]),wt=K(),yt=K(),lt=K(),ut=(t,a,n,s,r,e,i,o={},c=0,w=[])=>{let y,l,u,d,f,h=0,p=0,g=0,m=0,_=0,A=0,S=0,b=0,O=0;const R={},U=o.destroy;X(wt,w,()=>0),X(yt,w,()=>[]),W(lt,w,(Q(lt,w)??0)+1);const V=K(),[q,G,I,Z,$]=((t=1,a,n)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!n),([[t],[a]])=>!H(t)||!H(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!H(t)||!H(a),a.setContent]:tt(0))(i,t,c),[rt,et,it]=(t=>{let a;const[n,s]=(()=>{const t=[];let a=0;return[n=>(n?t.shift():null)??v+a++,a=>{ot.test(a)&&k(t)<1e3&&N(t,a)}]})(),r=K(),e=(t,n,s,e)=>{let i,o=!1;if(D(((t,a=[v])=>{const n=[],s=(t,r)=>r==k(a)?N(n,t):P(a[r])?j(t,t=>s(t,r+1)):D([a[r],null],a=>s(Q(t,a),r+1));return s(t,0),n})(n,s),n=>j(n,n=>{const c=()=>Q(r,n)[0](a,...s??[],...e);t?(t=>{try{return t()}catch(t){(t=>{o||(i=t),o=!0})?.(t)}})(c):c()})),o)throw i};return[(s,e,i,o=[],c=()=>[])=>{a??=t();const w=n(1);var y,l;return W(r,w,[s,e,i,o,c]),y=Y(e,i??[v],ct),l=w,y?.add(l),w},(t,a,...n)=>e(!1,t,a,n),t=>E(Q(r,t),([,a,n])=>(Y(a,n??[v],void 0,a=>(x(a,t),T(a)?1:0)),W(r,t),s(t),n)),t=>E(Q(r,t),([t,,n=[],s,r])=>{const e=(...i)=>{const o=k(i);o==k(n)?t(a,...i,...r(i)):P(n[o])?D(s[o]?.(...i)??[],t=>e(...i,t)):e(...i,n[o])};e()}),(t,a,...n)=>e(!0,t,a,n)]})(()=>Et),ut=t=>{t!=h&&(h=t,et(V,void 0,h))},dt=()=>{Q(lt,w)||Q(wt,w)||!z(Q(yt,w)??[])||(W(wt,w),W(yt,w),W(lt,w))},ft=a=>{(q&&M(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{Lt()&&t.__?.[0]?.()&&await At()},ht=t=>st(()=>l=t,()=>{l==t&&(l=void 0)}),pt=async t=>(2!=h&&(await st(async()=>{ut(1),p++,await Ot(()=>at(async()=>{const n=await a();M(n)?ft(n):L(n)&&t?$(t):L(n)||tt(1,n)},a=>{e?.(a),t&&$(t)}))},()=>ut(0)),await vt()),Et),gt=async()=>{const t=S;S=0,t&&t==m&&!O&&(2==h?S=t:await pt())},mt=async t=>{const a=++m;let n=!0;if(await _t(!0),a==m&&!O){const i=at(async()=>{const t=await s(async(t,s)=>{if(a==m&&!O)if(s||t){const a=n||2==h||!!A;_++,a&&A++,await st(async()=>{ut(1),p++,await(a?Ot(()=>ft(s??t)):(()=>{try{return ft(s??t)}finally{ut(0)}})())},()=>{a&&A--,--_||ut(0)}),_||await vt()}else 2==h?S=a:await pt()});a!=m||O?L(t)||await r(t):y=t},e);await ht(i),a!=m||O||await st(()=>pt(t),()=>{n=!1})}return Et},_t=async(t=!1)=>{S=0,t||m++;const a=l,n=y;return y=void 0,await ht(st(async()=>{await a},async()=>{L(n)||await at(()=>r(n),e)})),Et},At=async t=>(1!=h&&await st(()=>st(async()=>{ut(2),g++,await Ot(()=>at(()=>n(G,t),e))},()=>ut(0)),gt),Et),St=async()=>{const a=++b;return await bt(!0),a!=b||O||(await At(),a!=b||O||(u=t.addDidFinishTransactionListener(()=>{if(a==b&&!O){const t=I();Z(t)&&at(()=>At(t))}}))),Et},bt=async(a=!1)=>{a||b++;const n=u;return u=void 0,L(n)||t.delListener(n),Et},Lt=()=>!L(u),Pt=async(t=!1)=>{const[a,n]=t?[bt,_t]:[_t,bt];return await st(()=>a(),async()=>{await n()}),Et},Ot=async(...t)=>{let a,n=!1;const s=C(s=>z(t)?s():N(Q(yt,w),...F(t,(r,i)=>{const o=i==k(t)-1;return[async()=>{let t;f=C(a=>t=a),await st(async()=>{try{await at(r,e)}catch(t){n||(n=!0,a=t)}o&&s()},()=>{f=void 0,t()})},o?s:void 0,R]})));if(await(async()=>{if(!Q(wt,w)){W(wt,w,1);const t=Q(yt,w);let a=0;await st(async()=>{for(;a<k(t);){const n=t[a++];n[2]=void 0,await n[0]()}},()=>{J(t,a),W(wt,w,0),dt()})}})(),await s,n)throw a;return Et},Et={load:pt,startAutoLoad:mt,stopAutoLoad:_t,isAutoLoading:()=>!L(y),save:At,startAutoSave:St,stopAutoSave:bt,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[n,s,r,e]=a?[St,mt,bt,_t]:[mt,St,_t,bt],i=n(t),o=a?b:m;await i;const c=s(t),w=a?m:b;try{await c}catch(t){throw w==(a?m:b)&&await nt(e),o==(a?b:m)&&await nt(r),t}return Et},stopAutoPersisting:Pt,getStatus:()=>h,addStatusListener:t=>rt(t,V),delListener:a=>(it(a),t),schedule:Ot,getStore:()=>t,getStats:()=>({loads:p,saves:g}),...o,destroy:async()=>(L(d)&&(O=1,d=(async()=>{const t=Q(yt,w),a=(n=([,t,a])=>a!=R||(t?.(),!1),t.filter(n));var n;const s=f;J(t),N(t,...a),await st(()=>st(()=>st(Pt,()=>s),()=>U?.()),()=>{const t=(Q(lt,w)??1)-1;W(lt,w,t||void 0),dt()})})()),await d,Et)};return B(Et)},dt=(p,g,m)=>{let _;return ut(p,async()=>{return t=await u(g,h),it(et(t));var t},async t=>{const a=await at(()=>r(g)),n=a?.isSymbolicLink()?await at(()=>e(g))??d(f(g),await i(g)):g,s=(await at(()=>o(n)))?.mode,u=n+"."+((t=16)=>{return a=(t,a)=>t+Z[63&a],$(new Uint8Array(t)).reduce(a,"");var a})()+".tmp",v=(p=t(),rt(p,(t,a)=>L(a)?"":a));var p;const m=_;_=v,await st(async()=>{try{await w(u,v,h),await E(s,t=>y(u,4095&t)),await l(u,n)}catch(t){throw _=m,t}},()=>at(()=>c(u)))},t=>{a(g)||n(g,v,h);const r=()=>(async()=>await at(async()=>{const a=await u(g,h);a!=_&&(_=a,t())},()=>{null!==_&&(_=null,t())}))();return s(g,{interval:50},r),r},a=>t(g,a),m,3,{getFilePath:()=>g})};export{dt as createFilePersister};
@@ -1 +1 @@
1
- const t=Promise,a=t=>(a,e,n)=>t(a)?n?.():e(a),e=globalThis.window,n=t=>null==t,s=t=>void 0===t,r=t=>null===t,o=a(n),c=a(s),i=t=>Array.isArray(t),l=t=>t.length,y=t=>0==l(t),w=a=>new t(a),u=async a=>t.all(a),d=(t,a)=>t.forEach(a),v=(t,a)=>t.map(a),f=(t,a=l(t))=>t.splice(0,a),g=(t,...a)=>t.push(...a),h=(t,a)=>Error("tinybase:"+t+(s(a)?"":":"+a)),p=(t,a)=>{throw h(t,a)},_=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},b=(t,a)=>{try{return t()}catch(t){a?.(t)}},A=async(t,a)=>{try{return await t()}finally{await a()}},S=Object,L=t=>S.getPrototypeOf(t),k=S.entries,P=S.keys,m=S.freeze,D=t=>(t=>!n(t)&&o(L(t),t=>t==S.prototype||n(L(t)),()=>!0))(t)&&0==(t=>l(P(t)))(t),O=JSON.stringify,j=t=>O(t,(t,a)=>s(a)?"":a),x=t=>s(t)||0==(t=>t?.size??0)(t),E=(t,a)=>t?.forEach(a),z=(t,a)=>t?.delete(a),B=Map,C=t=>new B(t),I=(t,a)=>t?.get(a),M=(t,a,e)=>s(e)?(z(t,a),t):t?.set(a,e),N=(t,a,e,n)=>{let s=I(t,a);var r,o;return r=t,o=a,r?.has(o)?n?.(s):M(t,a,s=e()),s},T=(t,a,e,n,s=0)=>c((e?N:I)(t,a[s],s>l(a)-2?e:C),r=>{if(s>l(a)-2)return n?.(r)&&M(t,a[s]),r;const o=T(r,a,e,n,s+1);return x(r)&&M(t,a[s]),o}),F=/^\d+$/,J=t=>new Set(i(t)||s(t)?t:[t]),K=C(),$=C(),q=C(),G=(t,a,e,n,o,u,h,S={},L=0,k=[])=>{let P,O,j,B,G,H=0,Q=0,R=0,U=0,V=0,W=0,X=0,Y=0,Z=0;const tt={},at=S.destroy;N(K,k,()=>0),N($,k,()=>[]),M(q,k,(I(q,k)??0)+1);const et=C(),[nt,st,rt,ot,ct]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!D(t)||!D(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!D(t)||!D(a),a.setContent]:p(0))(h,t,L),[it,lt,yt]=(()=>{let t;const[a,e]=(()=>{const t=[];let a=0;return[e=>(e?t.shift():null)??""+a++,a=>{F.test(a)&&l(t)<1e3&&g(t,a)}]})(),n=C(),s=(a,e,s,o)=>{let c,i=!1;if(d(((t,a=[""])=>{const e=[],n=(t,s)=>s==l(a)?g(e,t):r(a[s])?E(t,t=>n(t,s+1)):d([a[s],null],a=>n(I(t,a),s+1));return n(t,0),e})(e,s),e=>E(e,e=>{const r=()=>I(n,e)[0](t,...s??[],...o);a?b(r,t=>{i||(c=t),i=!0}):r()})),i)throw c};return[(e,s,r,o=[],c=()=>[])=>{t??=mt;const i=a(1);var l,y;return M(n,i,[e,s,r,o,c]),l=T(s,r??[""],J),y=i,l?.add(y),i},(t,a,...e)=>s(!1,t,a,e),t=>c(I(n,t),([,a,s])=>(T(a,s??[""],void 0,a=>(z(a,t),x(a)?1:0)),M(n,t),e(t),s)),a=>c(I(n,a),([a,,e=[],n,s])=>{const o=(...c)=>{const i=l(c);i==l(e)?a(t,...c,...s(c)):r(e[i])?d(n[i]?.(...c)??[],t=>o(...c,t)):o(...c,e[i])};o()}),(t,a,...e)=>s(!0,t,a,e)]})(),wt=t=>{t!=H&&(H=t,lt(et,void 0,H))},ut=()=>{I(q,k)||I(K,k)||!y(I($,k)??[])||(M(K,k),M($,k),M(q,k))},dt=a=>{(nt&&i(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},vt=async()=>{Lt()&&t.__?.[0]?.()&&await bt()},ft=t=>A(()=>O=t,()=>{O==t&&(O=void 0)}),gt=async t=>(2!=H&&(await A(async()=>{wt(1),Q++,await Pt(()=>_(async()=>{const e=await a();i(e)?dt(e):s(e)&&t?ct(t):s(e)||p(1,e)},a=>{u?.(a),t&&ct(t)}))},()=>wt(0)),await vt()),mt),ht=async()=>{const t=X;X=0,t&&t==U&&!Z&&(2==H?X=t:await gt())},pt=async t=>{const a=++U;let e=!0;if(await _t(!0),a==U&&!Z){const r=_(async()=>{const t=await n(async(t,n)=>{if(a==U&&!Z)if(n||t){const a=e||2==H||!!W;V++,a&&W++,await A(async()=>{wt(1),Q++,await(a?Pt(()=>dt(n??t)):(()=>{try{return dt(n??t)}finally{wt(0)}})())},()=>{a&&W--,--V||wt(0)}),V||await vt()}else 2==H?X=a:await gt()});a!=U||Z?s(t)||await o(t):P=t},u);await ft(r),a!=U||Z||await A(()=>gt(t),()=>{e=!1})}return mt},_t=async(t=!1)=>{X=0,t||U++;const a=O,e=P;return P=void 0,await ft(A(async()=>{await a},async()=>{s(e)||await _(()=>o(e),u)})),mt},bt=async t=>(1!=H&&await A(()=>A(async()=>{wt(2),R++,await Pt(()=>_(()=>e(st,t),u))},()=>wt(0)),ht),mt),At=async()=>{const a=++Y;return await St(!0),a!=Y||Z||(await bt(),a!=Y||Z||(j=t.addDidFinishTransactionListener(()=>{if(a==Y&&!Z){const t=rt();ot(t)&&_(()=>bt(t))}}))),mt},St=async(a=!1)=>{a||Y++;const e=j;return j=void 0,s(e)||t.delListener(e),mt},Lt=()=>!s(j),kt=async(t=!1)=>{const[a,e]=t?[St,_t]:[_t,St];return await A(()=>a(),async()=>{await e()}),mt},Pt=async(...t)=>{let a,e=!1;const n=w(n=>y(t)?n():g(I($,k),...v(t,(s,r)=>{const o=r==l(t)-1;return[async()=>{let t;G=w(a=>t=a),await A(async()=>{try{await _(s,u)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{G=void 0,t()})},o?n:void 0,tt]})));if(await(async()=>{if(!I(K,k)){M(K,k,1);const t=I($,k);let a=0;await A(async()=>{for(;a<l(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{f(t,a),M(K,k,0),ut()})}})(),await n,e)throw a;return mt},mt={load:gt,startAutoLoad:pt,stopAutoLoad:_t,isAutoLoading:()=>!s(P),save:bt,startAutoSave:At,stopAutoSave:St,isAutoSaving:Lt,startAutoPersisting:async(t,a=!1)=>{const[e,n]=a?[At,pt]:[pt,At];return await e(t),await n(t),mt},stopAutoPersisting:kt,getStatus:()=>H,addStatusListener:t=>it(t,et),delListener:a=>(yt(a),t),schedule:Pt,getStore:()=>t,getStats:()=>({loads:Q,saves:R}),...S,destroy:async()=>(s(B)&&(Z=1,B=(async()=>{const t=I($,k),a=(e=([,t,a])=>a!=tt||(t?.(),!1),t.filter(e));var e;const n=G;f(t),g(t,...a),await A(()=>A(()=>A(kt,()=>n),()=>at?.()),()=>{const t=(I(q,k)??1)-1;M(q,k,t||void 0),ut()})})()),await B,mt)};return m(mt)},H=["t","v"],Q={keyPath:"k"},R=async(t,a,e)=>w((n,s)=>{const r=t[a](e);r.onsuccess=()=>n(r.result),r.onerror=()=>s(h(11,a))}),U=(t,a,n=1,s)=>{const r=async(t,n=[],s=0,r="readonly")=>w((o,c)=>{const i=(e?e.indexedDB:indexedDB).open(a,s?2:void 0);let l=0;i.onupgradeneeded=()=>s&&d(H,t=>b(()=>i.result.createObjectStore(t,Q))),i.onblocked=()=>{l=1,c(h(12))},i.onsuccess=()=>l?i.result.close():_(async()=>{i.result.onversionchange=()=>i.result.close();const a=i.result.transaction(H,r),e=w((t,e)=>{a.oncomplete=()=>t(),a.onerror=a.onabort=()=>e(h(11))}),[s]=await u([u(v(H,(e,s)=>t(a.objectStore(e),n[s]))),e]);i.result.close(),o(s)},t=>{i.result.close(),c(t)}),i.onerror=()=>c(h(12))}),o=async()=>await r(async t=>((t=[])=>{const a=S.create(null);return d(t,([t,e])=>((t,a,e)=>(S.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e))(a,t,e)),a})(v(await R(t,"getAll"),({k:t,v:a})=>[t,a])));return G(t,o,t=>r((t,a)=>(async(t,a)=>{const e=(a=>v(k(a),([a,e])=>R(t,"put",{k:a,v:e})))(a);d(await R(t,"getAllKeys"),n=>((t,a)=>S.hasOwn(t,a))(a,n)?0:g(e,R(t,"delete",n))),await u(e)})(t,a),t(),1,"readwrite"),t=>o().then(a=>{let e,r=1,c=j(a);const i=(l=()=>{if(r&&!e){const a=A(()=>((a,e)=>_(async()=>{const a=await o();if(r){const e=j(a);e!=c&&(c=e,await t(a))}},t=>{_(()=>e?.(t))}))(0,s),()=>{e==a&&(e=void 0)});e=a}},setInterval(l,1e3*n));var l;return async()=>{r=0,(t=>{clearInterval(t)})(i),await e}}),async t=>await t(),s,1,{getDbName:()=>a})};export{U as createIndexedDbPersister};
1
+ const t=Promise,a=t=>(a,e,n)=>t(a)?n?.():e(a),e=globalThis.window,n=t=>null==t,s=t=>void 0===t,r=t=>null===t,o=a(n),c=a(s),i=t=>Array.isArray(t),l=t=>t.length,w=t=>0==l(t),y=a=>new t(a),u=async a=>t.all(a),d=(t,a)=>t.forEach(a),v=(t,a)=>t.map(a),f=(t,a=l(t))=>t.splice(0,a),h=(t,...a)=>t.push(...a),g=(t,a)=>Error("tinybase:"+t+(s(a)?"":":"+a)),p=(t,a)=>{throw g(t,a)},_=async(t,a)=>{try{return await t()}catch(t){a?.(t)}},b=(t,a)=>_(t,t=>{_(()=>a?.(t))}),A=(t,a)=>{try{return t()}catch(t){a?.(t)}},S=async(t,a)=>{try{return await t()}finally{await a()}},L=Object,k=t=>L.getPrototypeOf(t),P=L.entries,m=L.keys,D=L.freeze,O=t=>(t=>!n(t)&&o(k(t),t=>t==L.prototype||n(k(t)),()=>!0))(t)&&0==(t=>l(m(t)))(t),j=JSON.stringify,x=t=>j(t,(t,a)=>s(a)?"":a),E=t=>s(t)||0==(t=>t?.size??0)(t),z=(t,a)=>t?.forEach(a),B=(t,a)=>t?.delete(a),C=Map,I=t=>new C(t),M=(t,a)=>t?.get(a),N=(t,a,e)=>s(e)?(B(t,a),t):t?.set(a,e),T=(t,a,e,n)=>{let s=M(t,a);var r,o;return r=t,o=a,r?.has(o)?n?.(s):N(t,a,s=e()),s},F=(t,a,e,n,s=0)=>c((e?T:M)(t,a[s],s>l(a)-2?e:I),r=>{if(s>l(a)-2)return n?.(r)&&N(t,a[s]),r;const o=F(r,a,e,n,s+1);return E(r)&&N(t,a[s]),o}),J=/^\d+$/,K=t=>new Set(i(t)||s(t)?t:[t]),$=I(),q=I(),G=I(),H=(t,a,e,n,o,u,g,L={},k=0,P=[])=>{let m,j,x,C,H,Q=0,R=0,U=0,V=0,W=0,X=0,Y=0,Z=0,tt=0;const at={},et=L.destroy;T($,P,()=>0),T(q,P,()=>[]),N(G,P,(M(G,P)??0)+1);const nt=I(),[st,rt,ot,ct,it]=((t=1,a,e)=>1!=t&&a.isMergeable()?[1,a.__[1],()=>a.__[2](!e),([[t],[a]])=>!O(t)||!O(a),a.setDefaultContent]:2!=t?[0,a._[7],a._[8],([t,a])=>!O(t)||!O(a),a.setContent]:p(0))(g,t,k),[lt,wt,yt]=(()=>{let t;const[a,e]=(()=>{const t=[];let a=0;return[e=>(e?t.shift():null)??""+a++,a=>{J.test(a)&&l(t)<1e3&&h(t,a)}]})(),n=I(),s=(a,e,s,o)=>{let c,i=!1;if(d(((t,a=[""])=>{const e=[],n=(t,s)=>s==l(a)?h(e,t):r(a[s])?z(t,t=>n(t,s+1)):d([a[s],null],a=>n(M(t,a),s+1));return n(t,0),e})(e,s),e=>z(e,e=>{const r=()=>M(n,e)[0](t,...s??[],...o);a?A(r,t=>{i||(c=t),i=!0}):r()})),i)throw c};return[(e,s,r,o=[],c=()=>[])=>{t??=Dt;const i=a(1);var l,w;return N(n,i,[e,s,r,o,c]),l=F(s,r??[""],K),w=i,l?.add(w),i},(t,a,...e)=>s(!1,t,a,e),t=>c(M(n,t),([,a,s])=>(F(a,s??[""],void 0,a=>(B(a,t),E(a)?1:0)),N(n,t),e(t),s)),a=>c(M(n,a),([a,,e=[],n,s])=>{const o=(...c)=>{const i=l(c);i==l(e)?a(t,...c,...s(c)):r(e[i])?d(n[i]?.(...c)??[],t=>o(...c,t)):o(...c,e[i])};o()}),(t,a,...e)=>s(!0,t,a,e)]})(),ut=t=>{t!=Q&&(Q=t,wt(nt,void 0,Q))},dt=()=>{M(G,P)||M($,P)||!w(M(q,P)??[])||(N($,P),N(q,P),N(G,P))},vt=a=>{(st&&i(a?.[0])?1===a?.[2]?t.__[4]:t.__[3]:1===a?.[2]?t._[10]:t._[9])(a)},ft=async()=>{kt()&&t.__?.[0]?.()&&await At()},ht=t=>S(()=>j=t,()=>{j==t&&(j=void 0)}),gt=async t=>(2!=Q&&(await S(async()=>{ut(1),R++,await mt(()=>_(async()=>{const e=await a();i(e)?vt(e):s(e)&&t?it(t):s(e)||p(1,e)},a=>{u?.(a),t&&it(t)}))},()=>ut(0)),await ft()),Dt),pt=async()=>{const t=Y;Y=0,t&&t==V&&!tt&&(2==Q?Y=t:await gt())},_t=async t=>{const a=++V;let e=!0;if(await bt(!0),a==V&&!tt){const r=_(async()=>{const t=await n(async(t,n)=>{if(a==V&&!tt)if(n||t){const a=e||2==Q||!!X;W++,a&&X++,await S(async()=>{ut(1),R++,await(a?mt(()=>vt(n??t)):(()=>{try{return vt(n??t)}finally{ut(0)}})())},()=>{a&&X--,--W||ut(0)}),W||await ft()}else 2==Q?Y=a:await gt()});a!=V||tt?s(t)||await o(t):m=t},u);await ht(r),a!=V||tt||await S(()=>gt(t),()=>{e=!1})}return Dt},bt=async(t=!1)=>{Y=0,t||V++;const a=j,e=m;return m=void 0,await ht(S(async()=>{await a},async()=>{s(e)||await _(()=>o(e),u)})),Dt},At=async t=>(1!=Q&&await S(()=>S(async()=>{ut(2),U++,await mt(()=>_(()=>e(rt,t),u))},()=>ut(0)),pt),Dt),St=async()=>{const a=++Z;return await Lt(!0),a!=Z||tt||(await At(),a!=Z||tt||(x=t.addDidFinishTransactionListener(()=>{if(a==Z&&!tt){const t=ot();ct(t)&&_(()=>At(t))}}))),Dt},Lt=async(a=!1)=>{a||Z++;const e=x;return x=void 0,s(e)||t.delListener(e),Dt},kt=()=>!s(x),Pt=async(t=!1)=>{const[a,e]=t?[Lt,bt]:[bt,Lt];return await S(()=>a(),async()=>{await e()}),Dt},mt=async(...t)=>{let a,e=!1;const n=y(n=>w(t)?n():h(M(q,P),...v(t,(s,r)=>{const o=r==l(t)-1;return[async()=>{let t;H=y(a=>t=a),await S(async()=>{try{await _(s,u)}catch(t){e||(e=!0,a=t)}o&&n()},()=>{H=void 0,t()})},o?n:void 0,at]})));if(await(async()=>{if(!M($,P)){N($,P,1);const t=M(q,P);let a=0;await S(async()=>{for(;a<l(t);){const e=t[a++];e[2]=void 0,await e[0]()}},()=>{f(t,a),N($,P,0),dt()})}})(),await n,e)throw a;return Dt},Dt={load:gt,startAutoLoad:_t,stopAutoLoad:bt,isAutoLoading:()=>!s(m),save:At,startAutoSave:St,stopAutoSave:Lt,isAutoSaving:kt,startAutoPersisting:async(t,a=!1)=>{const[e,n,s,r]=a?[St,_t,Lt,bt]:[_t,St,bt,Lt],o=e(t),c=a?Z:V;await o;const i=n(t),l=a?V:Z;try{await i}catch(t){throw l==(a?V:Z)&&await b(r),c==(a?Z:V)&&await b(s),t}return Dt},stopAutoPersisting:Pt,getStatus:()=>Q,addStatusListener:t=>lt(t,nt),delListener:a=>(yt(a),t),schedule:mt,getStore:()=>t,getStats:()=>({loads:R,saves:U}),...L,destroy:async()=>(s(C)&&(tt=1,C=(async()=>{const t=M(q,P),a=(e=([,t,a])=>a!=at||(t?.(),!1),t.filter(e));var e;const n=H;f(t),h(t,...a),await S(()=>S(()=>S(Pt,()=>n),()=>et?.()),()=>{const t=(M(G,P)??1)-1;N(G,P,t||void 0),dt()})})()),await C,Dt)};return D(Dt)},Q=["t","v"],R={keyPath:"k"},U=async(t,a,e)=>y((n,s)=>{const r=t[a](e);r.onsuccess=()=>n(r.result),r.onerror=()=>s(g(11,a))}),V=(t,a,n=1,s)=>{const r=async(t,n=[],s=0,r="readonly")=>y((o,c)=>{const i=(e?e.indexedDB:indexedDB).open(a,s?2:void 0);let l=0;i.onupgradeneeded=()=>s&&d(Q,t=>A(()=>i.result.createObjectStore(t,R))),i.onblocked=()=>{l=1,c(g(12))},i.onsuccess=()=>l?i.result.close():_(async()=>{i.result.onversionchange=()=>i.result.close();const a=i.result.transaction(Q,r),e=y((t,e)=>{a.oncomplete=()=>t(),a.onerror=a.onabort=()=>e(g(11))}),[s]=await u([u(v(Q,(e,s)=>t(a.objectStore(e),n[s]))),e]);i.result.close(),o(s)},t=>{i.result.close(),c(t)}),i.onerror=()=>c(g(12))}),o=async()=>await r(async t=>((t=[])=>{const a=L.create(null);return d(t,([t,e])=>((t,a,e)=>(L.defineProperty(t,a,{configurable:!0,enumerable:!0,value:e,writable:!0}),e))(a,t,e)),a})(v(await U(t,"getAll"),({k:t,v:a})=>[t,a])));return H(t,o,t=>r((t,a)=>(async(t,a)=>{const e=(a=>v(P(a),([a,e])=>U(t,"put",{k:a,v:e})))(a);d(await U(t,"getAllKeys"),n=>((t,a)=>L.hasOwn(t,a))(a,n)?0:h(e,U(t,"delete",n))),await u(e)})(t,a),t(),1,"readwrite"),t=>o().then(a=>{let e,r=1,c=x(a);const i=setInterval(()=>{if(r&&!e){const a=S(()=>b(async()=>{const a=await o();if(r){const e=x(a);e!=c&&(c=e,await t(a))}},s),()=>{e==a&&(e=void 0)});e=a}},1e3*n);return async()=>{r=0,(t=>{clearInterval(t)})(i),await e}}),async t=>await t(),s,1,{getDbName:()=>a})};export{V as createIndexedDbPersister};