tinybase 8.5.0 → 9.0.0-beta.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 (161) hide show
  1. package/@types/_internal/queries/with-schemas/index.d.ts +1 -2
  2. package/@types/_internal/ui/with-schemas/index.d.ts +8 -16
  3. package/@types/persisters/index.d.ts +32 -12
  4. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -8
  5. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +10 -10
  6. package/@types/persisters/with-schemas/index.d.ts +56 -20
  7. package/@types/queries/index.d.ts +1 -7
  8. package/@types/queries/with-schemas/index.d.ts +5 -15
  9. package/@types/store/index.d.ts +1 -2
  10. package/@types/store/with-schemas/index.d.ts +19 -29
  11. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +9 -3
  12. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +10 -3
  13. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +15 -2
  14. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +17 -2
  15. package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +51 -0
  16. package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +51 -0
  17. package/@types/ui-react/with-schemas/index.d.ts +3 -6
  18. package/@types/ui-react-dom/index.d.ts +10 -10
  19. package/@types/ui-react-dom/with-schemas/index.d.ts +16 -22
  20. package/@types/ui-react-dom-charts/index.d.ts +7 -7
  21. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +10 -11
  22. package/@types/ui-react-inspector/index.d.ts +1 -1
  23. package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
  24. package/@types/ui-solid/with-schemas/index.d.ts +4 -8
  25. package/@types/ui-solid-dom/index.d.ts +10 -10
  26. package/@types/ui-solid-dom/with-schemas/index.d.ts +16 -22
  27. package/@types/ui-solid-inspector/index.d.ts +1 -1
  28. package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
  29. package/@types/ui-svelte-dom/index.d.ts +10 -10
  30. package/@types/ui-svelte-dom/with-schemas/index.d.ts +16 -22
  31. package/@types/ui-svelte-inspector/index.d.ts +1 -1
  32. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
  33. package/index.js +21 -19
  34. package/indexes/index.js +6 -8
  35. package/indexes/with-schemas/index.js +6 -8
  36. package/metrics/index.js +6 -8
  37. package/metrics/with-schemas/index.js +6 -8
  38. package/min/index.js +1 -1
  39. package/min/index.js.gz +0 -0
  40. package/min/omni/index.js +1 -1
  41. package/min/omni/index.js.gz +0 -0
  42. package/min/omni/with-schemas/index.js +1 -1
  43. package/min/omni/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/index.js +1 -1
  45. package/min/persisters/index.js.gz +0 -0
  46. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  47. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  48. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  49. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  50. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  51. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  53. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  54. package/min/persisters/persister-electric-sql/index.js +1 -1
  55. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  56. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  57. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  58. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  59. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  60. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  61. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  62. package/min/persisters/persister-libsql/index.js +1 -1
  63. package/min/persisters/persister-libsql/index.js.gz +0 -0
  64. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  65. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  66. package/min/persisters/persister-pglite/index.js +1 -1
  67. package/min/persisters/persister-pglite/index.js.gz +0 -0
  68. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  69. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  70. package/min/persisters/persister-postgres/index.js +1 -1
  71. package/min/persisters/persister-postgres/index.js.gz +0 -0
  72. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  73. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  74. package/min/persisters/persister-powersync/index.js +1 -1
  75. package/min/persisters/persister-powersync/index.js.gz +0 -0
  76. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  77. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  78. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  79. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  80. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  81. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  82. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  83. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  84. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  85. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  86. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  87. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  88. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  89. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  90. package/min/persisters/persister-sqlite3/index.js +1 -1
  91. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  92. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  93. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  94. package/min/persisters/with-schemas/index.js +1 -1
  95. package/min/persisters/with-schemas/index.js.gz +0 -0
  96. package/min/queries/index.js +1 -1
  97. package/min/queries/index.js.gz +0 -0
  98. package/min/queries/with-schemas/index.js +1 -1
  99. package/min/queries/with-schemas/index.js.gz +0 -0
  100. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  101. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  102. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  103. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  104. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  105. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  106. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  107. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  108. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  109. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  110. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  111. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  112. package/min/with-schemas/index.js +1 -1
  113. package/min/with-schemas/index.js.gz +0 -0
  114. package/omni/index.js +311 -141
  115. package/omni/with-schemas/index.js +311 -141
  116. package/package.json +7 -7
  117. package/persisters/index.js +129 -37
  118. package/persisters/persister-cr-sqlite-wasm/index.js +129 -37
  119. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +129 -37
  120. package/persisters/persister-durable-object-sql-storage/index.js +271 -110
  121. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +271 -110
  122. package/persisters/persister-electric-sql/index.js +129 -37
  123. package/persisters/persister-electric-sql/with-schemas/index.js +129 -37
  124. package/persisters/persister-expo-sqlite/index.js +129 -37
  125. package/persisters/persister-expo-sqlite/with-schemas/index.js +129 -37
  126. package/persisters/persister-libsql/index.js +129 -37
  127. package/persisters/persister-libsql/with-schemas/index.js +129 -37
  128. package/persisters/persister-pglite/index.js +130 -37
  129. package/persisters/persister-pglite/with-schemas/index.js +130 -37
  130. package/persisters/persister-postgres/index.js +130 -37
  131. package/persisters/persister-postgres/with-schemas/index.js +130 -37
  132. package/persisters/persister-powersync/index.js +182 -117
  133. package/persisters/persister-powersync/with-schemas/index.js +182 -117
  134. package/persisters/persister-react-native-sqlite/index.js +129 -37
  135. package/persisters/persister-react-native-sqlite/with-schemas/index.js +129 -37
  136. package/persisters/persister-sqlite-bun/index.js +129 -37
  137. package/persisters/persister-sqlite-bun/with-schemas/index.js +129 -37
  138. package/persisters/persister-sqlite-wasm/index.js +129 -37
  139. package/persisters/persister-sqlite-wasm/with-schemas/index.js +129 -37
  140. package/persisters/persister-sqlite3/index.js +129 -37
  141. package/persisters/persister-sqlite3/with-schemas/index.js +129 -37
  142. package/persisters/with-schemas/index.js +129 -37
  143. package/queries/index.js +21 -19
  144. package/queries/with-schemas/index.js +21 -19
  145. package/readme.md +14 -14
  146. package/relationships/index.js +6 -8
  147. package/relationships/with-schemas/index.js +6 -8
  148. package/releases.md +57 -57
  149. package/synchronizers/synchronizer-ws-client/index.js +116 -42
  150. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +116 -42
  151. package/synchronizers/synchronizer-ws-server/index.js +109 -28
  152. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +109 -28
  153. package/synchronizers/synchronizer-ws-server-durable-object/index.js +122 -38
  154. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +122 -38
  155. package/ui-svelte/index.js +1 -1
  156. package/ui-svelte/with-schemas/index.js +1 -1
  157. package/ui-svelte-dom/index.js +2 -2
  158. package/ui-svelte-dom/with-schemas/index.js +2 -2
  159. package/ui-svelte-inspector/index.js +2 -2
  160. package/ui-svelte-inspector/with-schemas/index.js +2 -2
  161. package/with-schemas/index.js +21 -19
@@ -1 +1 @@
1
- import{addDatabaseChangeListener as e}from"expo-sqlite";import{existsSync as t,writeFileSync as a,watch as s}from"fs";import{writeFile as n,readFile as o}from"fs/promises";import{Map as r}from"yjs";import{DurableObject as i}from"cloudflare:workers";const l=e=>typeof e,c="tinybase",d="",u=",",g=l(d),w=l(!0),h=l(0),y=l(l),f="object",b="array",v="true",S="type",C="default",p="allowNull",m="utf8",R="Listener",I="Result",T="add",L="Has",E="Ids",D="Table",N=D+"s",M=D+E,O="Row",A=O+"Count",P=O+E,k="Sorted"+O+E,_="Cell",V=_+E,$="Value",x=$+"s",W=$+E,H="message",F="error",J="t",U="v",j=e=>d+e,G=(e,t)=>e.startsWith(t),q=(e,t)=>e.endsWith(t),B=(e,t)=>e?.match(t),z=(e,t=d,a)=>e.split(t,a),Q=(e,t,a)=>e.replace(t,a),Y=Promise,X=Math,K=e=>(t,a,s)=>e(t)?s?.():a(t),Z=globalThis,ee=Z.window,te=String,ae=(e,t,a)=>setInterval(e,1e3*t),se=clearInterval,ne=(e,t=0)=>setTimeout(e,1e3*t),oe=X.max,re=X.min,ie=X.floor,le=X.random,ce=isFinite,de=e=>null==e,ue=e=>void 0===e,ge=e=>null===e,we=e=>!0===e,he=e=>!1===e,ye=K(de),fe=K(ue),be=e=>e==g||e==w,ve=e=>l(e)==g,Se=e=>l(e)==y,Ce=e=>Array.isArray(e),pe=(e,t,a)=>e.slice(t,a),me=e=>e.length,Re=()=>{},Ie=()=>{},Te=e=>new Y(e),Le=async e=>Y.all(e),Ee=Z.structuredClone,De=e=>{throw Error(e)},Ne=async(e,t,a)=>{try{return await e()}catch(e){t?.(e)}},Me=(e,t)=>e.includes(t),Oe=(e,t)=>e.every(t),Ae=(e,t)=>me(e)===me(t)&&Oe(e,(e,a)=>t[a]===e),Pe=(e,t)=>Oe(e,(a,s)=>0==s||t(e[s-1],a)<=0),ke=(e,t)=>e.sort(t),_e=(e,t)=>e.forEach(t),Ve=(e,t=d)=>e.join(t),$e=(e,t)=>e.map(t),xe=e=>He(e,(e,t)=>e+t,0),We=e=>0==me(e),He=(e,t,a)=>e.reduce(t,a),Fe=(e,t)=>e.filter(t),Je=(e,t)=>e.splice(0,t),Ue=(e,...t)=>e.push(...t),je=e=>e.pop(),Ge=(e,...t)=>e.unshift(...t),qe=e=>e.shift(),Be=e=>t=>He(et(t),(t,a)=>t+e(a),0),ze=e=>e?.size??0,Qe=Be(ze),Ye=Be(Qe),Xe=Be(Ye),Ke=(e,t)=>e?.has(t)??!1,Ze=e=>ue(e)||0==ze(e),et=e=>[...e?.values()??[]],tt=e=>e.clear(),at=(e,t)=>e?.forEach(t),st=(e,t)=>e?.delete(t),nt=Object,ot=e=>nt.getPrototypeOf(e),rt=nt.isFrozen,it=nt.entries,lt=e=>!de(e)&&ye(ot(e),e=>e==nt.prototype||de(ot(e)),()=>!0),ct=nt.keys,dt=nt.freeze,ut=(e=[])=>nt.fromEntries(e),gt=(...e)=>nt.assign({},...e),wt=(e,t)=>fe(e,e=>e[t]),ht=(e,t)=>t in e,yt=(e,t)=>(delete e[t],e),ft=(e,t)=>_e(it(e),([e,a])=>t(a,e)),bt=(e,t)=>$e(it(e),([e,a])=>t(a,e)),vt=(e,t)=>ut(bt(e,(e,a)=>[a,t(e,a)])),St=e=>nt.values(e),Ct=e=>me(ct(e)),pt=e=>lt(e)&&0==Ct(e),mt=(e,t,a=(e,t)=>e===t)=>{const s=it(e);return me(s)===Ct(t)&&Oe(s,([e,s])=>lt(s)?!!lt(t[e])&&mt(t[e],s,a):a(s,t[e]))},Rt=(e,t,a)=>(ht(e,t)||(e[t]=a()),e[t]),It=(e,t,a,s=0)=>de(e)||!lt(e)||!s&&pt(e)||rt(e)?(a?.(),!1):(ft(e,(a,s)=>{t(a,s)||yt(e,s)}),!!s||!pt(e)),Tt=Map,Lt=e=>new Tt(e),Et=e=>[...e?.keys()??[]],Dt=(e,t)=>e?.get(t),Nt=(e,t)=>at(e,(e,a)=>t(a,e)),Mt=(e,t)=>$e([...e?.entries()??[]],([e,a])=>t(a,e)),Ot=(e,t,a)=>ue(a)?(st(e,t),e):e?.set(t,a),At=(e,t,a,s)=>(Ke(e,t)?s?.(Dt(e,t)):Ot(e,t,a()),Dt(e,t)),Pt=(e,t,a,s=Ot)=>(vt(t,(t,s)=>a(e,s,t)),Nt(e,a=>ht(t,a)?0:s(e,a)),e),kt=(e,t,a,s)=>{const n={};return at(e,(e,o)=>{if(!a?.(e,o)){const a=t?t(e,o):e;s?.(a)||(n[o]=a)}}),n},_t=(e,t,a)=>kt(e,e=>kt(e,t,a),Ze,pt),Vt=(e,t,a)=>kt(e,e=>_t(e,t,a),Ze,pt),$t=(e,t)=>{const a=Lt();return at(e,(e,s)=>a.set(s,t?.(e)??e)),a},xt=e=>$t(e,$t),Wt=e=>$t(e,xt),Ht=(e,t,a,s,n=0)=>fe((a?At:Dt)(e,t[n],n>me(t)-2?a:Lt),o=>{if(n>me(t)-2)return s?.(o)&&Ot(e,t[n]),o;const r=Ht(o,t,a,s,n+1);return Ze(o)&&Ot(e,t[n]),r}),Ft=e=>new Set(Ce(e)||ue(e)?e:[e]),Jt=(e,t)=>e?.add(t),Ut=(e,t,a,s,n)=>{const o=e.hasRow,r=Lt(),i=Lt(),l=Lt(),c=Lt(),d=Lt(),u=Lt(),g=t=>fe(Dt(u,t),a=>{_e(et(a),t=>{e.delListener(t),st(a,t)}),Ot(u,t)}),w=(e,a)=>{Ot(r,e,a),Ke(i,e)||(Ot(i,e,t()),Ot(c,e,Lt()),Ot(d,e,Lt()),n(l))},h=e=>{Ot(r,e),Ot(i,e),Ot(c,e),Ot(d,e),g(e),n(l)};return[()=>e,()=>Et(r),e=>Nt(i,e),e=>Ke(i,e),e=>Dt(r,e),e=>Dt(i,e),(e,t)=>Ot(i,e,t),w,(t,s,n,r,i)=>{w(t,s);const l=Lt(),h=Lt(),y=Dt(c,t),f=Dt(d,t),b=t=>{const n=a=>e.getCell(s,t,a),c=Dt(y,t),d=o(s,t)?a(r(n,t)):void 0;if(c===d||Ce(c)&&Ce(d)&&Ae(c,d)||Ot(l,t,[c,d]),!ue(i)){const e=Dt(f,t),a=o(s,t)?i(n,t):void 0;e!=a&&Ot(h,t,a)}},v=e=>{n(()=>{at(l,([,e],t)=>Ot(y,t,e)),at(h,(e,t)=>Ot(f,t,e))},l,h,y,f,e),tt(l),tt(h)};Nt(y,b),e.hasTable(s)&&_e(e.getRowIds(s),e=>{Ke(y,e)||b(e)}),v(!0),g(t),((e,...t)=>{const a=At(u,e,Ft);_e(t,e=>Jt(a,e))})(t,e.addRowListener(s,null,(e,t,a)=>b(a)),e.addTableListener(s,()=>v()))},h,e=>s(e,l),()=>Nt(u,h)]},jt=(e,t)=>ve(e)?t=>t(e):e??(()=>t??d),Gt=(e,t)=>{const a=new WeakMap;return s=>{a.has(s)||a.set(s,e(s));const n=a.get(s);return t?.(n),n}},qt=/^\d+$/,Bt=()=>{const e=[];let t=0;return[a=>(a?qe(e):null)??d+t++,t=>{qt.test(t)&&me(e)<1e3&&Ue(e,t)}]},zt=e=>{let t;const[a,s]=Bt(),n=Lt();return[(s,o,r,i=[],l=()=>[])=>{t??=e();const c=a(1);return Ot(n,c,[s,o,r,i,l]),Jt(Ht(o,r??[d],Ft),c),c},(e,a,...s)=>_e(((e,t=[d])=>{const a=[],s=(e,n)=>n==me(t)?Ue(a,e):ge(t[n])?at(e,e=>s(e,n+1)):_e([t[n],null],t=>s(Dt(e,t),n+1));return s(e,0),a})(e,a),e=>at(e,e=>Dt(n,e)[0](t,...a??[],...s))),e=>fe(Dt(n,e),([,t,a])=>(Ht(t,a??[d],void 0,t=>(st(t,e),Ze(t)?1:0)),Ot(n,e),s(e),a)),e=>fe(Dt(n,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=me(r);i==me(a)?e(t,...r,...n(r)):ge(a[i])?_e(s[i]?.(...r)??[],e=>o(...r,e)):o(...r,a[i])};o()})]},Qt=Gt(e=>{let t,a,s,n=100,o=Lt(),r=Lt(),i=1;const l=Lt(),c=Lt(),[u,g,w]=zt(()=>P),h=Lt(),y=Lt(),f=[],b=[],v=(t,a)=>{i=0,e.transaction(()=>{const[s,n]=Dt(h,a);at(s,(a,s)=>at(a,(a,n)=>at(a,(a,o)=>e._[5](s,n,o,a[t],!0)))),at(n,(a,s)=>e._[6](s,a[t],!0))}),i=1},S=e=>{Ot(h,e),Ot(y,e),g(c,[e])},C=(e,t)=>_e(Je(e,t??me(e)),S),p=()=>C(f,me(f)-n),m=()=>fe(t,()=>{Ue(f,t),p(),C(b),t=void 0,s=1}),R=()=>{t=je(f),s=1};let I,T;const L=(e=d)=>(ue(t)&&(t=d+a++,Ot(h,t,[o,r]),O(t,e),o=Lt(),r=Lt(),s=1),t),E=()=>{We(f)||(Ge(b,L()),v(0,t),t=je(f),s=1)},D=()=>{We(b)||(Ue(f,t),t=qe(b),v(1,t),s=1)},N=()=>{s&&(g(l),s=0)},M=e=>{const t=L(e);return N(),t},O=(e,t)=>(A(e)&&Dt(y,e)!==t&&(Ot(y,e,t),g(c,[e])),P),A=e=>Ke(h,e),P={setSize:e=>(n=e,p(),P),addCheckpoint:M,setCheckpoint:O,getStore:()=>e,getCheckpointIds:()=>[[...f],t,[...b]],forEachCheckpoint:e=>Nt(y,e),hasCheckpoint:A,getCheckpoint:e=>Dt(y,e),goBackward:()=>(E(),N(),P),goForward:()=>(D(),N(),P),goTo:e=>{const a=Me(f,e)?E:Me(b,e)?D:void 0;for(;!ue(a)&&e!=t;)a();return N(),P},addCheckpointIdsListener:e=>u(e,l),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(w(e),P),clear:()=>(C(f),C(b),ue(t)||S(t),t=void 0,a=0,M(),P),clearForward:()=>(We(b)||(C(b),g(l)),P),destroy:()=>{e.delListener(I),e.delListener(T)},getListenerStats:()=>({checkpointIds:Qe(l),checkpoint:Qe(c)}),_registerListeners:()=>{I=e.addCellListener(null,null,null,(e,t,a,s,n,r)=>{if(i){m();const e=At(o,t,Lt),i=At(e,a,Lt),l=At(i,s,()=>[r,void 0]);l[1]=n,l[0]===n&&Ze(Ot(i,s))&&Ze(Ot(e,a))&&Ze(Ot(o,t))&&R(),N()}}),T=e.addValueListener(null,(e,t,a,s)=>{if(i){m();const e=At(r,t,()=>[s,void 0]);e[1]=a,e[0]===a&&Ze(Ot(r,t))&&R(),N()}})}};return dt(P.clear())},e=>e._registerListeners()),Yt=z("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Xt=Lt($e(Yt,(e,t)=>[e,t])),Kt=e=>Yt[63&e],Zt=(e,t)=>Dt(Xt,e[t])??0,ea=Z.crypto?e=>Z.crypto.getRandomValues(e):e=>$e(e,()=>ie(256*le())),ta=(e=16)=>He(ea(new Uint8Array(e)),(e,t)=>e+Kt(t),d),aa=JSON.stringify,sa=JSON.parse,na=e=>aa(e,(e,t)=>t instanceof Map?nt.fromEntries([...t]):t),oa=e=>aa(e,(e,t)=>ue(t)?"":t),ra=e=>ia(sa(e)),ia=e=>""===e?void 0:Ce(e)?$e(e,ia):lt(e)?vt(e,ia):e,la=new Z.TextEncoder,ca=e=>{let t=2166136261;return _e(la.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},da=(e,t)=>(e^t)>>>0,ua=e=>He(it(e),(e,[t,a])=>da(e,ga(t,a)^ga(t,0)),0),ga=(e,t)=>ca(e+":"+t),wa=(e,t)=>ca(na(e??null)+":"+t),ha=wa,ya=ga,fa=ua,ba=ga,va=e=>He(it(e),(e,[t,a])=>da(e,ga(t,a)),0),Sa=ga,Ca=va,pa=2**36,ma=2**30,Ra=2**24,Ia=2**18,Ta=4096,La=e=>{const t=ca(e);return Kt(t/Ra)+Kt(t/Ia)+Kt(t/Ta)+Kt(t/64)+Kt(t)},Ea=(e,t=Date.now)=>{let a=0,s=-1;const n=fe(e,La,()=>ta(5)),o=e=>{const n=a,[o,r]=ue(e)||e==d?[0,0]:i(e);a=oe(n,o,t()),s=a==n?a==o?oe(s,r):s:a==o?r:-1},r=(e,t,a)=>Kt(e/pa)+Kt(e/ma)+Kt(e/Ra)+Kt(e/Ia)+Kt(e/Ta)+Kt(e/64)+Kt(e)+Kt(t/Ia)+Kt(t/Ta)+Kt(t/64)+Kt(t)+(ue(a)?n:La(a)),i=e=>[Zt(e,0)*pa+Zt(e,1)*ma+Zt(e,2)*Ra+Zt(e,3)*Ia+Zt(e,4)*Ta+64*Zt(e,5)+Zt(e,6),Zt(e,7)*Ia+Zt(e,8)*Ta+64*Zt(e,9)+Zt(e,10),e.slice(11)];return[()=>(o(),r(a,++s)),o,r,i,()=>a,()=>s,()=>n]},Da=(e,t)=>(e??0)<(t??0)?-1:1,Na=Gt(e=>{const t=Lt(),a=Lt(),[s,n,o]=zt(()=>S),[r,i,l,c,u,g,w,,h,y,f,b]=Ut(e,Lt,e=>ue(e)?d:Ce(e)?$e(e,j):j(e),s,n),v=(t,a,s)=>{const n=u(t);at(s,(t,s)=>a(s,a=>at(t,t=>a(t,a=>e.forEachCell(n,t,a)))))},S={setIndexDefinition:(e,s,o,r,i,l=Da)=>{const c=ue(i)?void 0:([e],[t])=>i(e,t);return h(e,s,(s,o,i,d,u,h)=>{let y=0;const f=Ft(),b=Ft(),v=g(e);if(at(o,([e,t],a)=>{const s=Ft(e),n=Ft(t);at(s,e=>st(n,e)?st(s,e):0),at(s,e=>{Jt(f,e),fe(Dt(v,e),t=>{st(t,a),Ze(t)&&(Ot(v,e),y=1)})}),at(n,e=>{Jt(f,e),Ke(v,e)||(Ot(v,e,Ft()),y=1),Jt(Dt(v,e),a),ue(r)||Jt(b,e)})}),s(),Ze(u)||(h?Nt(v,e=>Jt(b,e)):Nt(i,e=>fe(Dt(d,e),e=>_e(Ce(e)?e:[e],e=>Jt(b,e)))),at(b,e=>{const t=(t,a)=>l(Dt(u,t),Dt(u,a),e),a=[...Dt(v,e)];Pe(a,t)||(Ot(v,e,Ft(ke(a,t))),Jt(f,e))})),(y||h)&&!ue(c)){const t=[...v];Pe(t,c)||(w(e,Lt(ke(t,c))),y=1)}y&&n(t,[e]),at(f,t=>n(a,[e,t]))},jt(o),fe(r,jt)),S},delIndexDefinition:e=>(y(e),S),getStore:r,getIndexIds:i,forEachIndex:e=>l((t,a)=>e(t,e=>v(t,e,a))),forEachSlice:(e,t)=>v(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Ke(g(e),t),getTableId:u,getSliceIds:e=>Et(g(e)),getSliceRowIds:(e,t)=>et(Dt(g(e),t)),addIndexIdsListener:f,addSliceIdsListener:(e,a)=>s(a,t,[e]),addSliceRowIdsListener:(e,t,n)=>s(n,a,[e,t]),delListener:e=>(o(e),S),destroy:b,getListenerStats:()=>({sliceIds:Qe(t),sliceRowIds:Ye(a)})};return dt(S)}),Ma=e=>{if(ge(e))return"null";if(Ce(e))return b;if(lt(e))return f;const t=l(e);return be(t)||t==h&&ce(e)?t:void 0},Oa=e=>ue(e)||!ue(Ma(e)),Aa=e=>e==f||e==b,Pa=e=>lt(e)||Ce(e)?"�"+aa(e):e,ka=e=>ve(e)&&"�"==e[0],_a=(e,t,a)=>!a&&ka(e)?sa(pe(e,1)):e,Va=([e,t])=>$a(e,t),$a=(e,t)=>t?[e,t]:[e],xa=(e,t,a)=>[e,t,a],Wa=e=>e[2],Ha=(e,t)=>t>e?(e?ca(e):0)^ca(t):0,Fa=(e,t)=>((e??d)>(t??d)?e:t)??d,Ja=(e,t,a)=>{t>e[1]&&(e[1]=t),e[2]=a>>>0},Ua=(e=d)=>$a(ut(),e),ja=(e=d)=>[Lt(),e,0],Ga=([e,t,a],s)=>[kt(e,s),t,a],qa=([e,t],a=Va)=>$a(kt(e,a),t),Ba=(e,t)=>{return Ce(e)&&3==me(e)&&ve(e[1])&&(a=e[2],l(a)==h)&&ce(e[2])&&t(e[0]);var a},za=e=>[e,e],Qa=(e,t=Qe)=>t(e[0])+t(e[1]),Ya=()=>[Lt(),Lt()],Xa=e=>[...e],Ka=([e,t])=>e===t,Za=(e,t,a)=>Ot(e,t,Dt(e,t)==-a?void 0:a),es=([e,t],[a,s])=>mt(e,a)&&mt(t,s),ts=()=>{let e,t,a=!1,s=!1,n=0,o=[],r=[],i=0;const l=Lt(),c=Lt(),d=Lt(),u=Lt(),g=Lt(),w=Lt(),y=Lt(),f=Lt(),b=Lt(),v=Lt(),m=Lt(),I=Lt(),E=Lt(),k=Lt(),H=Ft(),F=Lt(),J=Lt(),U=Lt(),G=Lt(),q=Ya(),B=Ya(),z=Ya(),Q=Ya(),Y=Ya(),X=Ya(),K=Ya(),Z=Ya(),ee=Ya(),te=Ya(),ae=Ya(),se=Ya(),ne=Ya(),oe=Ya(),re=Ya(),ie=Ya(),le=Ya(),ce=Ya(),de=Ya(),we=Ya(),he=Ya(),ye=Ya(),ve=Lt(),me=Ya(),[Re,Ie,Te,Le]=zt(()=>is),De=e=>{const t=i;i=1;const a=e();return i=t,a},Oe=(e,t,a,s=Object.is)=>fe(t(),t=>e===t||s(e,t)?a(t):De(()=>a(t))),Pe=e=>{if(!It(e,(e,t)=>Me([S,C,p],t)))return!1;const t=e[S];if(!be(t)&&t!=h&&!Aa(t))return!1;const a=e[C];return!(ge(a)&&!e[p]||(ge(a)||(Ma(a)!=t?yt(e,C):e[C]=Pa(a)),0))},Ve=Ce,xe=(t,a)=>(!e||Ke(m,a)||Xt(a))&&It(t,(e,t)=>We(a,t,e),()=>Xt(a)),We=(e,t,a,s)=>It(s?a:je(a,e,t),(s,n)=>fe(He(e,t,n,s),e=>(a[n]=e,!0),()=>!1),()=>Xt(e,t)),He=(t,a,s,n)=>e?fe(Dt(Dt(m,t),s),e=>ge(n)?e[p]?n:Xt(t,a,s,n,e[C]):Ma(n)===e[S]?Pa(n):Aa(e[S])&&ka(n)?n:Xt(t,a,s,n,e[C]),()=>Xt(t,a,s,n)):ue(Ma(n))?Xt(t,a,s,n):Pa(n),Fe=(e,t)=>It(t?e:Ge(e),(t,a)=>fe(Je(a,t),t=>(e[a]=t,!0),()=>!1),()=>Kt()),Je=(e,a)=>t?fe(Dt(E,e),t=>ge(a)?t[p]?a:Kt(e,a,t[C]):Ma(a)===t[S]?Pa(a):Aa(t[S])&&ka(a)?a:Kt(e,a,t[C]),()=>Kt(e,a)):ue(Ma(a))?Kt(e,a):Pa(a),je=(e,t,a)=>(fe(Dt(I,t),([s,n])=>{at(s,(t,a)=>{ht(e,a)||(e[a]=t)}),at(n,s=>{ht(e,s)||Xt(t,a,s)})}),e),Ge=e=>(t&&(at(k,(t,a)=>{ht(e,a)||(e[a]=t)}),at(H,t=>{ht(e,t)||Kt(t)})),e),qe=e=>Pt(m,e,(e,t,a)=>{const s=Lt(),n=Ft();Pt(At(m,t,Lt),a,(e,t,a)=>{Ot(e,t,a),fe(a[C],e=>Ot(s,t,e),()=>Jt(n,t))}),Ot(I,t,[s,n])},(e,t)=>{Ot(m,t),Ot(I,t)}),Be=e=>Pt(E,e,(e,t,a)=>{Ot(E,t,a),fe(a[C],e=>Ot(k,t,e),()=>Jt(H,t))},(e,t)=>{Ot(E,t),Ot(k,t),st(H,t)}),et=e=>pt(e)?Ja():Oa(e),nt=(e,t,a,s,n,o)=>ue(s)?Ga(e,t,a,!0,n):Va(e,t,a,s,n,o),ot=e=>pt(e)?qa():$a(e),rt=(e,t,a)=>ue(t)?Ba(e,a):xa(e,t,a),it=(e,t)=>Oe(e,()=>t?e:fe(o[1],t=>De(()=>t(Ee(e))),()=>e),e=>Pt(U,e,(e,t,a)=>ct(t,a),(e,t)=>Ct(t)),mt),ct=(e,t,a)=>Oe(t,()=>a?t:fe(o[2],a=>De(()=>a(e,Ee(t))),()=>t),t=>Pt(At(U,e,()=>(Ut(e,1),Ot(F,e,Bt()),Ot(J,e,Lt()),Lt())),t,(t,a,s)=>ut(e,t,a,s),(t,a)=>Rt(e,t,a)),mt),ut=(e,t,a,s,n)=>Oe(s,()=>n?s:fe(o[3],t=>De(()=>t(e,a,Ee(s))),()=>s),s=>Pt(At(t,a,()=>(jt(e,a,1),Lt())),s,(t,s,n)=>gt(e,a,t,s,n),(s,o)=>Tt(e,t,a,s,o,n)),mt),gt=(e,t,a,s,n,r)=>Oe(n,()=>fe(r?void 0:o[4],a=>De(()=>a(e,t,s,n)),()=>n),n=>{Ke(a,s)||Gt(e,t,s,1);const o=Dt(a,s);n!==o&&(qt(e,t,s,o,n),Ot(a,s,n))}),wt=(e,t,a,s,n,o)=>fe(Dt(t,a),t=>gt(e,a,t,s,n,o),()=>{const r=Lt();Ot(t,a,r),jt(e,a,1),vt(je({[s]:n},e,a),(t,s)=>gt(e,a,r,s,t,o))}),ft=(e,t)=>Oe(e,()=>t?e:fe(o[5],t=>De(()=>t(Ee(e))),()=>e),e=>Pt(G,e,(e,t,a)=>bt(t,a),(e,t)=>Ht(t)),mt),bt=(e,t,a)=>Oe(t,()=>fe(a?void 0:o[6],a=>De(()=>a(e,t)),()=>t),t=>{Ke(G,e)||Qt(e,1);const a=Dt(G,e);t!==a&&(Yt(e,a,t),Ot(G,e,t))}),St=e=>At(U,e,()=>(Ut(e,1),Ot(F,e,Bt()),Ot(J,e,Lt()),Lt())),Ct=e=>De(()=>o[8]?.(e))??1?ct(e,{},!0):Dt(U,e),Rt=(e,t,a)=>{if(De(()=>o[9]?.(e,a))??1){const[,s]=Dt(F,e);s(a),ut(e,t,a,{},!0)}},Tt=(e,t,a,s,n,r,i)=>{const l=Dt(Dt(I,e)?.[0],n);if(!ue(l)&&!r)return gt(e,a,s,n,l);if(i||(De(()=>o[10]?.(e,a,n))??1)){const o=t=>{qt(e,a,t,Dt(s,t)),Gt(e,a,t,-1),Ot(s,t)};ue(l)?o(n):Nt(s,o),Ze(s)&&(jt(e,a,-1),Ze(Ot(t,a))&&(Ut(e,-1),Ot(U,e),Ot(F,e),Ot(J,e)))}},Ht=(e,t)=>{const a=Dt(k,e);if(!ue(a))return bt(e,a);(t||(De(()=>o[12]?.(e))??1))&&(Yt(e,Dt(G,e)),Qt(e,-1),Ot(G,e))},Ut=(e,t)=>Za(l,e,t),jt=(e,t,a)=>Za(At(u,e,Lt),t,a)&&Ot(d,e,At(d,e,()=>0)+a),Gt=(e,t,a,s)=>{const n=Dt(J,e),o=Dt(n,a)??0;(0==o&&1==s||1==o&&-1==s)&&Za(At(c,e,Lt),a,s),Ot(n,a,o!=-s?o+s:void 0),Za(At(At(g,e,Lt),t,Lt),a,s)},qt=(e,t,a,s,n)=>{At(At(At(w,e,Lt),t,Lt),a,()=>[s,0])[1]=n,r[3]?.(e,t,a,n,i)},Qt=(e,t)=>Za(y,e,t),Yt=(e,t,a)=>{At(f,e,()=>[t,0])[1]=a,r[4]?.(e,a,i)},Xt=(e,t,a,s,n)=>(Ue(At(At(At(b,e,Lt),t,Lt),a,()=>[]),s),n),Kt=(e,t,a)=>(Ue(At(v,e,()=>[]),t),a),Zt=(e,t,a)=>fe(Dt(Dt(Dt(w,e),t),a),([e,t])=>[!0,_a(e),_a(t)],()=>[!1,...za(va(e,t,a))]),ea=e=>fe(Dt(f,e),([e,t])=>[!0,_a(e),_a(t)],()=>[!1,...za(pa(e))]),ta=e=>Ze(b)||Ze(ie[e])?0:at(e?Wt(b):b,(t,a)=>at(t,(t,s)=>at(t,(t,n)=>Ie(ie[e],[a,s,n],t)))),aa=e=>Ze(v)||Ze(le[e])?0:at(e?$t(v):v,(t,a)=>Ie(le[e],[a],t)),oa=(e,t,a,s)=>{if(!Ze(e))return Ie(t,s,()=>kt(e)),Nt(e,(e,t)=>Ie(a,[...s??[],e],1==t)),1},ra=e=>{const t=!Ze(q[e]),s=!Ze(te[e]),n=!(Ze(ne[e])&&Ze(oe[e])&&Ze(ee[e])&&Ze(ae[e])&&Ze(X[e])&&Ze(K[e])&&Ze(Z[e])&&!s&&Ze(z[e])&&Ze(Q[e])),o=!(Ze(re[e])&&Ze(se[e])&&Ze(Y[e])&&Ze(B[e]));if(t||n||o){const i=e?[$t(l),xt(c),$t(d),xt(u),Wt(g),(r=w,$t(r,e=>$t(e,e=>$t(e,Xa))))]:[l,c,d,u,g,w];if(t){const t=ma();t!=a&&Ie(q[e],void 0,t)}if(n){oa(i[0],z[e],Q[e]),at(i[1],(t,a)=>oa(t,X[e],K[e],[a])),at(i[2],(t,a)=>{0!=t&&Ie(Z[e],[a],ha(a))});const t=Ft();at(i[3],(a,n)=>{oa(a,ee[e],ae[e],[n])&&s&&(Ie(te[e],[n,null]),Jt(t,n))}),s&&at(i[5],(a,s)=>{if(!Ke(t,s)){const t=Ft();at(a,e=>at(e,([a,s],n)=>s!==a?Jt(t,n):st(e,n))),at(t,t=>Ie(te[e],[s,t]))}}),at(i[4],(t,a)=>at(t,(t,s)=>oa(t,ne[e],oe[e],[a,s])))}if(o){let t;at(i[5],(a,s)=>{let n;at(a,(a,o)=>{let r;at(a,([a,i],l)=>{i!==a&&(Ie(re[e],[s,o,l],_a(i),_a(a),Zt),t=n=r=1)}),r&&Ie(se[e],[s,o],Zt)}),n&&Ie(Y[e],[s],Zt)}),t&&Ie(B[e],void 0,Zt)}}var r},ia=e=>{const t=!Ze(ce[e]),a=!Ze(we[e])||!Ze(he[e]),n=!Ze(ye[e])||!Ze(de[e]);if(t||a||n){const o=e?[$t(y),$t(f,Xa)]:[y,f];if(t){const t=Ea();t!=s&&Ie(ce[e],void 0,t)}if(a&&oa(o[0],we[e],he[e]),n){let t;at(o[1],([a,s],n)=>{s!==a&&(Ie(ye[e],[n],_a(s),_a(a),ea),t=1)}),t&&Ie(de[e],void 0,ea)}}},la=(e,...t)=>(ns(()=>e(...$e(t,j))),is),ca=(e,t,a,s,n)=>{let o=fa(e,t,...a);return Re(()=>{const n=fa(e,t,...a);Ae(n,o)||(o=n,s(is,e,t,...a,o))},te[n?1:0],[e,t],[ga])},da=(e=!1)=>[kt(w,(t,a)=>-1===Dt(l,a)?void 0:kt(t,(t,s)=>-1===Dt(Dt(u,a),s)?void 0:kt(t,([,t])=>_a(t,0,e),e=>Ka(e)),Ze,pt),Ze,pt),kt(f,([,t])=>_a(t,0,e),e=>Ka(e)),1],ua=()=>Vt(U,_a),ga=()=>Et(U),wa=e=>Et(Dt(J,j(e))),ha=e=>ze(Dt(U,j(e))),ya=e=>Et(Dt(U,j(e))),fa=(e,t,a,s=0,n)=>lt(e)?fa(e.tableId,e.cellId,e.descending,e.offset,e.limit):$e(pe(ke(Mt(Dt(U,j(e)),(e,a)=>[ue(t)?a:Dt(e,j(t)),a]),([e],[t])=>Da(e,t)*(a?-1:1)),s,ue(n)?n:s+n),([,e])=>e),ba=(e,t)=>Et(Dt(Dt(U,j(e)),j(t))),va=(e,t,a)=>_a(Dt(Dt(Dt(U,j(e)),j(t)),j(a))),Sa=()=>kt(G,_a),Ca=()=>Et(G),pa=e=>_a(Dt(G,j(e))),ma=()=>!Ze(U),Ra=e=>Ke(U,j(e)),Ia=(e,t)=>Ke(Dt(J,j(e)),j(t)),Ta=(e,t)=>Ke(Dt(U,j(e)),j(t)),La=(e,t,a)=>Ke(Dt(Dt(U,j(e)),j(t)),j(a)),Ea=()=>!Ze(G),Na=e=>Ke(G,j(e)),Oa=e=>la(()=>(e=>It(e,xe,Xt))(e)?it(e):0),Va=(e,t,a,s,n,r)=>la((e,t,a)=>fe(He(e,t,a,Se(s)?s(va(e,t,a)):s),s=>{const i=St(e);fe(n||r||!o[14]?.()?void 0:o[3],o=>{const r=Dt(i,t),l={...r?kt(r):{},[a]:s};fe(De(()=>o(e,t,Ee(l))),a=>((e,t,a,s,n)=>{Pt(At(t,a,()=>(jt(e,a,1),Lt())),s,(t,s,o)=>fe(He(e,a,s,o),o=>gt(e,a,t,s,o,n)),(s,n)=>Tt(e,t,a,s,n,!0))})(e,i,t,a,n))},()=>wt(e,i,t,a,s,n))}),e,t,a),$a=e=>la(()=>Fe(e)?ft(e):0),xa=(e,t,a)=>la(e=>fe(Je(e,Se(t)?t(pa(e)):t),t=>bt(e,t,a)),e),Wa=e=>(Ne(()=>et(sa(e))),is),Ha=t=>la(()=>{if((e=It(t,e=>It(e,Pe)))&&(qe(t),!Ze(U))){const e=ua();Ja(),Oa(e)}}),Fa=e=>la(()=>{if(t=(e=>It(e,Pe))(e)){const a=Sa();ss(),qa(),t=!0,Be(e),$a(a)}}),Ja=()=>la(()=>De(()=>o[7]?.())??1?it({},!0):0),Ua=e=>la(e=>Ke(U,e)?Ct(e):0,e),ja=(e,t)=>la((e,t)=>fe(Dt(U,e),a=>Ke(a,t)?Rt(e,a,t):0),e,t),Ga=(e,t,a,s,n)=>la((e,t,a)=>fe(Dt(U,e),o=>fe(Dt(o,t),r=>Ke(r,a)?Tt(e,o,t,r,a,s,n):0)),e,t,a),qa=()=>la(()=>De(()=>o[11]?.())??1?ft({},!0):0),Ba=(e,t)=>la(e=>Ke(G,e)?Ht(e,t):0,e),as=()=>la(()=>{qe({}),e=!1}),ss=()=>la(()=>{Be({}),t=!1}),ns=(e,t)=>{if(-1!=n){os();const a=e();return rs(t),a}},os=()=>(-1!=n&&n++,1==n&&(r[0]?.(),Ie(ve)),is),rs=e=>(n>0&&(n--,0==n&&(n=1,De(()=>{ta(1),Ze(w)||ra(1),aa(1),Ze(f)||ia(1)}),e?.(is)&&(at(w,(e,t)=>at(e,(e,a)=>at(e,([e],s)=>nt(t,a,s,e,!0)))),tt(w),at(f,([e],t)=>rt(t,e,!0)),tt(f)),Ie(me[0],void 0),n=-1,ta(0),Ze(w)||ra(0),aa(0),Ze(f)||ia(0),r[1]?.(),Ie(me[1],void 0),r[2]?.(),n=0,a=ma(),s=Ea(),_e([l,c,d,u,g,w,b,y,f,v],tt))),is),is={getContent:()=>[ua(),Sa()],getTables:ua,getTableIds:ga,getTable:e=>_t(Dt(U,j(e)),_a),getTableCellIds:wa,getRowCount:ha,getRowIds:ya,getSortedRowIds:fa,getRow:(e,t)=>kt(Dt(Dt(U,j(e)),j(t)),_a),getCellIds:ba,getCell:va,getValues:Sa,getValueIds:Ca,getValue:pa,hasTables:ma,hasTable:Ra,hasTableCell:Ia,hasRow:Ta,hasCell:La,hasValues:Ea,hasValue:Na,getTablesJson:()=>na(U),getValuesJson:()=>na(G),getJson:()=>na([U,G]),getTablesSchemaJson:()=>na(m),getValuesSchemaJson:()=>na(E),getSchemaJson:()=>na([m,E]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>la(()=>{const t=Se(e)?e():e;Ve(t)&&(e=>{Oe(e,()=>fe(o[0],t=>De(()=>t(Ee(e))),()=>e),([e,t])=>{(pt(e)?Ja:Oa)(e),(pt(t)?qa:$a)(t)},es)})(t)}),setTables:Oa,setTable:(e,t)=>la(e=>xe(t,e)?ct(e,t):0,e),setRow:(e,t,a)=>la((e,t)=>We(e,t,a)?ut(e,St(e),t,a):0,e,t),addRow:(e,t,a=!0)=>ns(()=>{let s;return We(e,s,t)&&(e=j(e),ut(e,St(e),s=((e,t)=>{const[a]=Dt(F,e);let s;do{s=a(t)}while(Ke(Dt(U,e),s));return s})(e,a?1:0),t)),s}),setPartialRow:(e,t,a)=>la((e,t)=>{if(We(e,t,a,1)){const s=St(e);vt(a,(a,n)=>wt(e,s,t,n,a))}},e,t),setCell:Va,setValues:$a,setPartialValues:e=>la(()=>Fe(e,1)?vt(e,(e,t)=>bt(t,e)):0),setValue:xa,applyChanges:e=>la(()=>Oe(e,()=>fe(o[13],t=>De(()=>t(Ee(e))),()=>e),e=>{vt(e[0],(e,t)=>ue(e)?Ua(t):vt(e,(e,a)=>ue(e)?ja(t,a):vt(e,(e,s)=>nt(t,a,s,e,void 0,!0)))),vt(e[1],(e,t)=>rt(t,e))},es)),setTablesJson:Wa,setValuesJson:e=>(Ne(()=>ot(sa(e))),is),setJson:e=>la(()=>Ne(()=>{const[t,a]=sa(e);et(t),ot(a)},()=>Wa(e))),setTablesSchema:Ha,setValuesSchema:Fa,setSchema:(e,t)=>la(()=>{Ha(e),Fa(t)}),delTables:Ja,delTable:Ua,delRow:ja,delCell:Ga,delValues:qa,delValue:Ba,delTablesSchema:as,delValuesSchema:ss,delSchema:()=>la(()=>{as(),ss()}),transaction:ns,startTransaction:os,getTransactionChanges:()=>da(),getTransactionLog:()=>[!Ze(w),!Ze(f),Vt(w,Xa,Ka),Vt(b),kt(f,Xa,Ka),kt(v),kt(l),_t(u),Vt(g),kt(y)],finishTransaction:rs,forEachTable:e=>at(U,(t,a)=>e(a,e=>at(t,(t,a)=>e(a,e=>Nt(t,(t,a)=>e(t,_a(a))))))),forEachTableCell:(e,t)=>Nt(Dt(J,j(e)),t),forEachRow:(e,t)=>at(Dt(U,j(e)),(e,a)=>t(a,t=>Nt(e,(e,a)=>t(e,_a(a))))),forEachCell:(e,t,a)=>Nt(Dt(Dt(U,j(e)),j(t)),(e,t)=>a(e,_a(t))),forEachValue:e=>Nt(G,(t,a)=>e(t,_a(a))),addSortedRowIdsListener:(e,t,a,s,n,o,r)=>lt(e)?ca(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,a):ca(e,t,[a,s,n],o,r),addStartTransactionListener:e=>Re(e,ve),addWillFinishTransactionListener:e=>Re(e,me[0]),addDidFinishTransactionListener:e=>Re(e,me[1]),callListener:e=>(Le(e),is),delListener:e=>(Te(e),is),getListenerStats:()=>({hasTables:Qa(q),tables:Qa(B),tableIds:Qa(z),hasTable:Qa(Q),table:Qa(Y),tableCellIds:Qa(X),hasTableCell:Qa(K,Ye),rowCount:Qa(Z),rowIds:Qa(ee),sortedRowIds:Qa(te),hasRow:Qa(ae,Ye),row:Qa(se,Ye),cellIds:Qa(ne,Ye),hasCell:Qa(oe,Xe),cell:Qa(re,Xe),invalidCell:Qa(ie,Xe),hasValues:Qa(ce),values:Qa(de),valueIds:Qa(we),hasValue:Qa(he),value:Qa(ye),invalidValue:Qa(le),transaction:Qe(ve)+Qa(me)}),isMergeable:()=>!1,_:[ts,Re,Ie,(e,t,a,s,n)=>r=[e,t,a,s,n],(e,t,a,s,n,r,i,l,c,d,u,g,w,h,y)=>o=[e,t,a,s,n,r,i,l,c,d,u,g,w,h,y],nt,rt,()=>[Vt(U),kt(G)],()=>da(!0)]};return vt({[L+N]:[0,q,[],()=>[ma()]],[N]:[0,B],[M]:[0,z],[L+D]:[1,Q,[ga],e=>[Ra(...e)]],[D]:[1,Y,[ga]],[D+V]:[1,X,[ga]],[L+D+_]:[2,K,[ga,wa],e=>[Ia(...e)]],[A]:[1,Z,[ga]],[P]:[1,ee,[ga]],[L+O]:[2,ae,[ga,ya],e=>[Ta(...e)]],[O]:[2,se,[ga,ya]],[V]:[2,ne,[ga,ya]],[L+_]:[3,oe,[ga,ya,ba],e=>[La(...e)]],[_]:[3,re,[ga,ya,ba],e=>za(va(...e))],InvalidCell:[3,ie],[L+x]:[0,ce,[],()=>[Ea()]],[x]:[0,de],[W]:[0,we],[L+$]:[1,he,[Ca],e=>[Na(...e)]],[$]:[1,ye,[Ca],e=>za(pa(e[0]))],InvalidValue:[1,le]},([e,t,a,s],n)=>{is[T+n+R]=(...n)=>Re(n[e],t[n[e+1]?1:0],e>0?pe(n,0,e):void 0,a,s)}),dt(is)},as={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},ss=(e=d)=>[ja(e),ja(e)],ns=(e,t)=>{let a=1,s=ss(),n=0,o=0;const r=Lt(),i=Ft(),[l,c]=Ea(e,t),u=ts(),g=e=>{const t=a;return a=0,e(),a=t,p},w=(e,t=0)=>{const a={},n={},[[o,r=d,i=0],l]=e,[u,g]=s,[w,y,f]=u;let b=t?i:f,v=r;ft(o,([e,s=d,n=0],o)=>{const r=At(w,o,ja),[i,l,c]=r;let u=t?n:c,g=s;ft(e,(e,s)=>{const[n,r,l]=h(e,At(i,s,ja),Rt(Rt(a,o,ut),s,ut),t);u^=t?0:da(r?ga(s,r):0,ga(s,l)),g=Fa(g,n)}),u^=t?0:Ha(l,s),Ja(r,s,u),b^=t?0:da(c?ga(o,c):0,ga(o,r[2])),v=Fa(v,g)}),b^=t?0:Ha(y,r),Ja(u,r,b);const[S]=h(l,g,n,t);return c(Fa(v,S)),[a,n,1]},h=(e,t,a,s)=>{const[n,o=d,r=0]=e,[i,l,c]=t;let u=o,g=s?r:c;return ft(n,([e,t=d,n=0],o)=>{const r=At(i,o,()=>[void 0,d,0]),[,l,c]=r;(!l||t>l)&&(Ja(r,t,s?n:wa(e,t)),r[0]=e,a[o]=e,g^=s?0:da(ga(o,c),ga(o,r[2])),u=Fa(u,t))}),g^=s?0:Ha(l,o),Ja(t,o,g),[u,c,t[2]]},y=Ie,f=Ie,b=(e=!1)=>[Ga(s[0],t=>Ga(t,t=>Ga(t,([t,a,s])=>[_a(t,0,e),a,s]))),Ga(s[1],([t,a,s])=>[_a(t,0,e),a,s])],v=(e,t=!1)=>{const[[a,n,o],[l,c,d]]=s,u=e?xa:$a,g={};at(r,(e,s)=>fe(Dt(a,s),([a,n,o])=>{const r={};at(e,(e,s)=>fe(Dt(a,s),([a,n,o])=>{const i={};at(e,e=>{fe(Dt(a,e),([a,s,n])=>i[e]=u(t?a:_a(a),s,n))}),r[s]=u(i,n,o)})),g[s]=u(r,n,o)}));const w={};return at(i,e=>fe(Dt(l,e),([a,s,n])=>w[e]=u(t?a:_a(a),s,n))),[u(g,n,o),u(w,c,d),1]},S=()=>b(),C=e=>g(()=>u.applyChanges(w(e))),p={getMergeableContent:S,getMergeableContentHashes:()=>[s[0][2],s[1][2]],getMergeableTableHashes:()=>kt(s[0][0],Wa),getMergeableTableDiff:e=>{const t=Ua(s[0][1]),a={};return Nt(s[0][0],(s,[n,o,r])=>ht(e,s)?r!=e[s]?a[s]=r:0:t[0][s]=qa([n,o],e=>qa(e))),[t,a]},getMergeableRowHashes:e=>{const t={};return ft(e,(e,a)=>fe(Dt(s[0][0],a),([s,,n])=>n!=e?Nt(s,(e,[,,s])=>Rt(t,a,ut)[e]=s):0)),t},getMergeableRowDiff:e=>{const t=Ua(s[0][1]),a={};return ft(e,(e,n)=>Nt(Dt(s[0][0],n)?.[0],(s,[o,r,i])=>ht(e,s)?i!==e[s]?Rt(a,n,ut)[s]=i:0:Rt(t[0],n,Ua)[0][s]=qa([o,r]))),[t,a]},getMergeableCellHashes:e=>{const t={};return ft(e,(e,a)=>fe(Dt(s[0][0],a),([s])=>ft(e,(e,n)=>fe(Dt(s,n),([s,,o])=>o!==e?Nt(s,(e,[,,s])=>Rt(Rt(t,a,ut),n,ut)[e]=s):0)))),t},getMergeableCellDiff:e=>{const[[t,a]]=s,n={};return ft(e,(e,a)=>ft(e,(e,s)=>fe(Dt(t,a),([t,o])=>fe(Dt(t,s),([t,r])=>Nt(t,(t,[i,l,c])=>c!==e[t]?Rt(Rt(n,a,()=>Ua(o))[0],s,()=>Ua(r))[0][t]=[i,l]:0))))),$a(n,a)},getMergeableValueHashes:()=>kt(s[1][0],Wa),getMergeableValueDiff:e=>{const[,[t,a]]=s,n=kt(t,Va,([,,t],a)=>t==e?.[a]);return $a(n,a)},setMergeableContent:e=>g(()=>(e=>Ce(e)&&2==me(e)&&Ba(e[0],e=>It(e,e=>Ba(e,e=>It(e,e=>Ba(e,e=>It(e,e=>Ba(e,Oa),void 0,1)),void 0,1)),void 0,1))&&Ba(e[1],e=>It(e,e=>Ba(e,Oa),void 0,1)))(e)?u.transaction(()=>{u.delTables().delValues(),s=ss(),u.applyChanges(w(e,1))}):0),setDefaultContent:e=>(u.transaction(()=>{n=1,u.setContent(e),n=0}),p),getTransactionMergeableChanges:(e=!1)=>v(e),applyMergeableChanges:C,merge:e=>{const t=S(),a=e.getMergeableContent();return e.applyMergeableChanges(t),C(a)},__:[()=>{const e=o;return o=0,e},()=>b(!0),e=>v(e,!0)]};return u._[3](y,f,()=>{tt(r),tt(i)},(e,t,s,i,c)=>{Jt(At(At(r,e,Lt),t,Ft),s),(a||c)&&(c&&(o=1),w([[{[e]:[{[t]:[{[s]:[i,n?d:l()]}]}]}],[{}],1]))},(e,t,s)=>{Jt(i,e),(a||s)&&(s&&(o=1),w([[{}],[{[e]:[t,n?d:l()]}],1]))}),vt(u,(e,t)=>p[t]=G(t,"set")||G(t,"del")||G(t,"apply")||q(t,"Transaction")||t=="call"+R||"use"==t?(...t)=>(e(...t),p):G(t,T)&&q(t,R)?(...a)=>{const s=as[pe(t,3,-8)]??0,n=a[s];return a[s]=(e,...t)=>n(p,...t),e(...a)}:"isMergeable"==t?()=>!0:e),dt(p)},os=Lt([["avg",[(e,t)=>xe(e)/t,(e,t,a)=>e+(t-e)/(a+1),(e,t,a)=>e+(e-t)/(a-1),(e,t,a,s)=>e+(t-a)/s]],["max",[e=>oe(...e),(e,t)=>oe(t,e),(e,t)=>t==e?void 0:e,(e,t,a)=>a==e?void 0:oe(t,e)]],["min",[e=>re(...e),(e,t)=>re(t,e),(e,t)=>t==e?void 0:e,(e,t,a)=>a==e?void 0:re(t,e)]],["sum",[e=>xe(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,a)=>e-a+t]]]),rs=(e,t,a,s,n,o=!1)=>{if(Ze(a))return;const[r,i,l,c]=n;return o||=ue(e),at(s,([a,s])=>{o||(e=ue(a)?i?.(e,s,t++):ue(s)?l?.(e,a,t--):c?.(e,s,a,t),o||=ue(e))}),o?r(et(a),ze(a)):e},is=Gt(e=>{const t=Lt(),[a,s,n]=zt(()=>b),[o,r,i,l,c,u,g,,w,h,y,f]=Ut(e,Re,e=>isNaN(e)||ue(e)||we(e)||he(e)||e===d?void 0:1*e,a,s),b={setMetricDefinition:(e,a,n,o,r,i,l)=>{const c=Se(n)?[n,r,i,l]:Dt(os,n)??Dt(os,"sum");return w(e,a,(a,n,o,r,i,l)=>{const d=u(e),w=ze(r);l||=ue(d),a();let h=rs(d,w,r,n,c,l);ce(h)||(h=void 0),h!=d&&(g(e,h),s(t,[e],h,d))},jt(o,1)),b},delMetricDefinition:e=>(h(e),b),getStore:o,getMetricIds:r,forEachMetric:i,hasMetric:l,getTableId:c,getMetric:u,addMetricIdsListener:y,addMetricListener:(e,s)=>a(s,t,[e]),delListener:e=>(n(e),b),destroy:f,getListenerStats:()=>({metric:Qe(t)})};return dt(b)}),ls=(e,t,...a)=>He(e,(e,t)=>ue(e)?e:t(...a,e),t),cs=(e,...t)=>Oe(e,e=>e(...t)),ds=Gt(e=>{const t=e=>t=>(Ue(e,t),M),a=[],s=[],n=[],o=[],r=[],i=[],l=[],c=[],d=[],u=[],g=[],w=[],h=[],y=[],f=t(a),b=t(s),v=t(n),S=t(o),C=t(r),p=t(i),m=t(l),R=t(c),I=t(d),T=t(u),L=t(g),E=t(w),D=t(h),N=t(y),M=dt({getStore:()=>e,addWillSetContentCallback:f,addWillSetTablesCallback:b,addWillSetTableCallback:v,addWillSetRowCallback:S,addWillSetCellCallback:C,addWillSetValuesCallback:p,addWillSetValueCallback:m,addWillDelTablesCallback:R,addWillDelTableCallback:I,addWillDelRowCallback:T,addWillDelCellCallback:L,addWillDelValuesCallback:E,addWillDelValueCallback:D,addWillApplyChangesCallback:N,destroy:()=>{}});return e._[4](e=>ls(a,e),e=>ls(s,e),(e,t)=>ls(n,t,e),(e,t,a)=>ls(o,a,e,t),(e,t,a,s)=>ls(r,s,e,t,a),e=>ls(i,e),(e,t)=>ls(l,t,e),()=>cs(c),e=>cs(d,e),(e,t)=>cs(u,e,t),(e,t,a)=>cs(g,e,t,a),()=>cs(w),e=>cs(h,e),e=>ls(y,e),()=>o.length>0),M}),us={Idle:0,Loading:1,Saving:2},gs={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},ws=Lt(),hs=Lt(),ys=(e,t,a,s,n,o,r,i={},l=0,c=[])=>{let d,u,g,w=0,h=0,y=0;At(ws,c,()=>0),At(hs,c,()=>[]);const f=Lt(),[b,v,S,C,p]=((e=1,t,a)=>1!=e&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!a),([[e],[t]])=>!pt(e)||!pt(t),t.setDefaultContent]:2!=e?[0,t._[7],t._[8],([e,t])=>!pt(e)||!pt(t),t.setContent]:De("Store type not supported by this Persister"))(r,e,l),[m,R,I]=zt(()=>$),T=e=>{e!=w&&(w=e,R(f,void 0,w))},L=t=>{(b&&Ce(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},E=async()=>{k()&&e.__?.[0]?.()&&await O()},D=async e=>(2!=w&&(T(1),h++,await V(async()=>{await Ne(async()=>{const a=await t();Ce(a)?L(a):e?p(e):De("Content is not an array: "+a)},()=>{e&&p(e)}),T(0),await E()})),$),N=async e=>(M(),await D(e),await Ne(async()=>u=await s(async(e,t)=>{t||e?2!=w&&(T(1),h++,L(t??e),T(0),await E()):await D()}),o),$),M=async()=>(u&&(await Ne(()=>n(u),o),u=void 0),$),O=async e=>(1!=w&&(T(2),y++,await V(async()=>{await Ne(()=>a(v,e),o),T(0)})),$),A=async()=>(P(),await O(),g=e.addDidFinishTransactionListener(()=>{const e=S();C(e)&&O(e)}),$),P=async()=>(g&&(e.delListener(g),g=void 0),$),k=()=>!ue(g),_=async(e=!1)=>{const[t,a]=e?[P,M]:[M,P];return await t(),await a(),$},V=async(...e)=>(Ue(Dt(hs,c),...e),await(async()=>{if(!Dt(ws,c)){for(Ot(ws,c,1);!ue(d=qe(Dt(hs,c)));)await Ne(d,o);Ot(ws,c,0)}})(),$),$={load:D,startAutoLoad:N,stopAutoLoad:M,isAutoLoading:()=>!ue(u),save:O,startAutoSave:A,stopAutoSave:P,isAutoSaving:k,startAutoPersisting:async(e,t=!1)=>{const[a,s]=t?[A,N]:[N,A];return await a(e),await s(e),$},stopAutoPersisting:_,getStatus:()=>w,addStatusListener:e=>m(e,f),delListener:t=>(I(t),e),schedule:V,getStore:()=>e,destroy:()=>(Je(Dt(hs,c)),_()),getStats:()=>({loads:h,saves:y}),...i};return dt($)},fs="_",bs="_id",vs="SELECT",Ss="WHERE",Cs="TABLE",ps="INSERT",ms="DELETE",Rs="UPDATE",Is="ALTER "+Cs,Ts="FROM",Ls=ms+" "+Ts,Es=vs+"*"+Ts,Ds="pragma_",Ns="data_version",Ms="schema_version",Os="pragma_table_",As="CREATE ",Ps=As+Cs,ks="OR REPLACE ",_s="FUNCTION",Vs="$tableName",$s=(e,t)=>t?async(a,s)=>(t(a,s),await e(a,s)):e,xs=e=>Ve($e(z(e,"."),e=>`"${Q(e,/"/g,'""')}"`),"."),Ws=(...e)=>xs(Ve(e,"_")),Hs=(...e)=>Ve($e(e,xs),u),Fs=(e,t=[1])=>Ve($e(e,()=>"$"+t[0]++),u),Js=(e,t=v)=>Ss+`(${Q(t,Vs,xs(e))})`,Us="ColumnName",js="store",Gs="json",qs=js+"TableName",Bs=js+"Id"+Us,zs=js+Us,Qs="autoLoadIntervalSeconds",Ys="rowId"+Us,Xs="tableId",Ks="tableName",Zs="deleteEmptyColumns",en="deleteEmptyTable",tn="condition",an={mode:Gs,[Qs]:1},sn={load:0,save:0,[Ks]:c+"_values"},nn=(e,t,a,s,n)=>{const o=Lt();return vt(e,(e,r)=>{const i=pe(St(gt(t,ve(e)?{[a]:e}:e)),0,Ct(t));ge(i[0])||s(r,i[0])||(n(r,i[0]),Ot(o,r,i))}),o},on=e=>{const t=(e=>gt(an,ve(e)?{[qs]:e}:e??{}))(e),a=t[Qs];if(t.mode==Gs){const e=t[qs]??c;return[1,a,[e,t[Bs]??bs,t[zs]??js],Ft(e)]}const{tables:{load:s={},save:n={}}={},values:o={}}=t,r=pe(St(gt(sn,o)),0,Ct(sn)),i=r[2],l=Ft(i),d=Ft(i),u=nn(s,{[Xs]:null,[Ys]:bs,[tn]:v},Xs,e=>Ke(d,e),e=>Jt(l,e)),g=nn(n,{[Ks]:null,[Ys]:bs,[Zs]:0,[en]:0,[tn]:null},Ks,(e,t)=>Ke(d,t),(e,t)=>Jt(l,t));return Nt(g,(e,t)=>t[4]??=Dt(u,t[0])?.[2]??v),[0,a,[u,g,r],l]},rn=(e,t,a,s,n,o=ln,r,i)=>{const l=Lt();return[async()=>{tt(l),$e(await a(e,t),({tn:e,cn:t})=>Jt(At(l,e,Ft),t))},async(t,a,s)=>((e,t)=>Ke(Dt(l,e),t))(t,a)?ut(Fe($e(await e(Es+xs(t)+Js(t,s)),e=>[e[a],i?vt(yt(e,a),i):yt(e,a)]),e=>!ue(e[0])&&!pt(e[1]))):{},async(t,a,s,i,c,d=!1,g=v)=>{const w=Ft();vt(s??{},e=>$e(ct(e??{}),e=>Jt(w,e)));const h=et(w);if(!d&&c&&g==v&&We(h)&&Ke(l,t))return await e("DROP "+Cs+xs(t)),void Ot(l,t);const y=Dt(l,t),f=Ft(et(y));if(We(h)||(Ke(l,t)?await Le($e([a,...h],async(s,o)=>{st(f,s)||(await e(Is+xs(t)+"ADD"+xs(s)+n),0==o&&await e("CREATE UNIQUE INDEX pk ON "+xs(t)+`(${xs(a)})`),Jt(y,s))})):(await e(Ps+xs(t)+`(${xs(a)}${n} PRIMARY KEY${Ve($e(h,e=>u+xs(e)+n))});`),Ot(l,t,Ft([a,...h])))),await Le([...!d&&i?$e(et(f),async s=>{s!=a&&(await e(Is+xs(t)+"DROP"+xs(s)),st(y,s))}):[]]),d)ue(s)?await e(Ls+xs(t)+Js(t,g)):await Le(bt(s,async(s,n)=>{ue(s)?await e(Ls+xs(t)+Js(t,g)+`AND(${xs(a)}=$1)`,[n]):We(h)||await o(e,t,a,ct(s),{[n]:r?$e(St(s),r):St(s)},y)}));else if(We(h))Ke(l,t)&&await e(Ls+xs(t)+Js(t,g));else{const n=Fe(et(Dt(l,t)),e=>e!=a),i={},c=[];vt(s??{},(e,t)=>{i[t]=$e(n,t=>r?r(e?.[t]):e?.[t]),Ue(c,t)}),await o(e,t,a,n,i),await e(Ls+xs(t)+Js(t,g)+`AND${xs(a)}NOT IN(${Fs(c)})`,c)}},async t=>{let a;return await e("BEGIN"),await Ne(async()=>a=await t(),s),await e("END"),a}]},ln=async(e,t,a,s,n)=>{const o=[1];await e(ps+" INTO"+xs(t)+"("+Hs(a,...s)+")VALUES"+Ve(bt(n,e=>"($"+o[0]+++","+Fs(e,o)+")"),u)+"ON CONFLICT("+xs(a)+`)DO ${Rs} SET`+Ve($e(s,e=>xs(e)+"=excluded."+xs(e)),u),bt(n,(e,t)=>[t,...$e(e,e=>e??null)]).flat())},cn=(e,t,a,s,n,o,r,[i,l,c],d,u,g,w,h,y)=>{const[f,b,v,S]=rn(t,d,u,n,h,y),C=ys(e,()=>S(async()=>(await f(),ra((await b(i,l))[fs]?.[c]??"null"))),e=>S(async()=>{await f(),await v(i,l,{[fs]:{[c]:oa(e()??null)}},!0,!0)}),a,s,n,r,{[w]:()=>g,destroy:async()=>(await C.stopAutoPersisting(),o(),C)},0,g);return C},dn=(e,t,a,s,n,o,r,[i,l,[c,d,u]],g,w,h,y,f,b,v,S)=>{const[C,p,m,R]=rn(t,g,w,n,f,b,v,S),I=(e,t)=>Le(Mt(l,async([a,s,n,o,r],i)=>{t&&!ht(e,i)||await m(a,s,e[i],n,o,t,r)})),T=async(e,t)=>d?await m(u,bs,{[fs]:e},!0,!0,t):null,L=ys(e,()=>R(async()=>{await C();const e=await(async()=>ut(Fe(await Le(Mt(i,async([e,t,a],s)=>[e,await p(s,t,a)])),e=>!pt(e[1]))))(),t=await(async()=>c?(await p(u,bs))[fs]:{})();return pt(e)&&ue(t)?void 0:[e,t]}),(e,t)=>R(async()=>{if(await C(),ue(t)){const[t,a]=e();await I(t),await T(a)}else await I(t[0],!0),await T(t[1],!0)}),a,s,n,r,{[y]:()=>h,destroy:async()=>(await L.stopAutoPersisting(),o(),L)},0,h);return L},un=/^([cd]:)(.+)/,gn=(e,t,a,s,n,o,r,i,l,u,g="getDb")=>{const w=$s(a,o),[h,,y,f]=on(t),b=d+ca(oa(y)),S=c+"_"+b,C=async(e,t,a="",s="")=>{const n=Ws(c,e,b);return await w(As+ks+_s+n+`()RETURNS ${a}trigger AS $$ ${s}BEGIN ${t}END;$$ LANGUAGE plpgsql;`),n},p=async(e,t,a,s)=>(await w(As+e+"TRIGGER"+t+a+"EXECUTE "+_s+s+"()"),t),m=e=>`PERFORM pg_notify('${S}',${e});`,R=(e,t)=>h?v:2===t?R(e,0)+" OR "+R(e,1):Q(Dt(y[0],e)?.[2]??v,Vs,0==t?"NEW":"OLD"),I=(e,t)=>Le($e([ps,ms,Rs],(a,s)=>p(ks,Ws(c,"d",b,e,a),`AFTER ${a} ON${xs(e)}FOR EACH ROW WHEN(${R(e,s)})`,t)));return(h?cn:dn)(e,w,async e=>{const t=await C("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Ss} command_tag='${Ps}' LOOP ${m("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await p("EVENT ",Ws(c,"c",b),`ON ddl_command_end WHEN TAG IN('${Ps}')`,t);const a=await C("d",m("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await Le($e(et(f),async e=>(await w(Ps+` IF NOT EXISTS${xs(e)}("_id"text PRIMARY KEY)`),await I(e,a)))),[await s(S,t=>fe(B(t,un),async([,t,s])=>{Ke(f,s)&&("c:"==t&&await I(s,a),e())})),[t,a]]},async([e,t])=>{n(e),await w(`DROP FUNCTION IF EXISTS${Ve(t,",")}CASCADE`)},r,i,l,y,et(f),async(e,t)=>await e(vs+` table_name tn,column_name cn FROM information_schema.columns ${Ss} table_schema='public'AND table_name IN(${Fs(t)})`,t),u,g,"text",void 0,e=>aa(e),e=>sa(e))},wn=(e,t,a,s,n,o,r,i,l,c,u="getDb",g)=>{let w,h,y;const f=$s(a,o),[b,v,S,C]=on(t);return(b?cn:dn)(e,f,e=>{let t;const a=()=>t=ae(()=>Ne(async()=>{const[{d:t,s:a,c:s}]=await f(vs+` ${Ns} d,${Ms} s,TOTAL_CHANGES() c FROM ${Ds}${Ns} JOIN ${Ds}${Ms}`);t==w&&a==h&&s==y||(de(w)||e(),w=t,h=a,y=s)}),v),o=()=>{w=h=y=null,se(t)},r=s(t=>{C.has(t)&&(o(),e(),a())});return a(),()=>{o(),n(r)}},e=>e(),r,i,l,S,et(C),async(e,t)=>await e(vs+` t.name tn,c.name cn FROM ${Os}list()t,${Os}info(t.name)c ${Ss} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Fs(t)})ORDER BY t.name,c.name`,t),c,u,d,g,e=>we(e)?1:he(e)?0:e,void 0)},hn=(e,t)=>[e[t].t,e[t].v],yn=(e,t,a,s)=>{const n=ue(t)?e:Rt(e,t,()=>({}));let o;return vt(a,(e,t)=>{s(n,t,e)&&(o=1)}),vt(n,(e,t)=>{ht(a,t)||(yt(n,t),o=1)}),!ue(t)&&pt(n)&&yt(e,t),o},fn=(e,t,a=c,s)=>(t.change(e=>Rt(e,a,ut)),ys(e,async()=>{const e=t.doc();return 2==Ct(e?.[a])?hn(e,a):void 0},async(e,s)=>t.change(t=>((e,t,a,s)=>{((e,t)=>{pt(e[t])&&(e[t]={t:{},v:{}})})(e,t);const[n,o]=hn(e,t),r=()=>{i=1};let i=1;if(fe(s,([e,t])=>{i=0,vt(e,(e,t)=>i?0:ue(e)?yt(n,t):fe(n[t],t=>vt(e,(e,a)=>i?0:ue(e)?yt(t,a):fe(wt(t,a),t=>vt(e,(e,a)=>ue(e)?yt(t,a):t[a]=e),r)),r)),vt(t,(e,t)=>i?0:ue(e)?yt(o,t):o[t]=e)}),i){const[e,t]=a();yn(n,void 0,e,(e,t,a)=>yn(n,t,a,(e,t,a)=>yn(e,t,a,(e,t,a)=>{if(wt(e,t)!==a)return e[t]=a,1}))),yn(o,void 0,t,(e,t,a)=>{wt(o,t)!==a&&(o[t]=a)})}})(t,a,e,s)),e=>{const s=({doc:t})=>e(hn(t,a));return t.on("change",s),s},e=>{t.removeListener("change",e)},s,1,{getDocHandle:()=>t})),bn="storage",vn=(e,t,a,s)=>ys(e,async()=>ra(a.getItem(t)),async e=>a.setItem(t,oa(e())),e=>{const s=s=>{s.storageArea===a&&s.key===t&&Ne(()=>e(ra(s.newValue)),e)};return ee.addEventListener(bn,s),s},e=>ee.removeEventListener(bn,e),s,3,{getStorageName:()=>t}),Sn=(e,t,a)=>vn(e,t,localStorage,a),Cn=(e,t,a)=>vn(e,t,sessionStorage,a),pn=(e,t,a)=>ys(e,async()=>ra(await(await t.getFile()).text()),async e=>{const a=await t.createWritable();await a.write(oa(e())),await a.close()},async e=>{const a=new FileSystemObserver(()=>e());return await a.observe(t),a},e=>e?.disconnect(),a,3,{getHandle:()=>t}),mn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await t.execO(e,a),e=>t.onUpdate((t,a,s)=>e(s)),e=>e(),s,n,Ie,1,t),Rn=()=>xa({},d,0),In=(e,t,a=d,s)=>{const n=(e,...t)=>a+e+pe(oa(t),1,-1);return ys(e,async()=>{const e=Rn(),s=Rn();return(await t.list({prefix:a})).forEach(async([t,n,o],r)=>fe((e=>{if(G(e,a)){const t=pe(e,me(a),me(a)+1);return t==J||t==U?[t,...JSON.parse("["+pe(e,me(a)+1)+"]")]:void 0}})(r),([a,...r])=>a==J?fe(r[0],a=>{const s=Rt(e[0],a,Rn);fe(r[1],e=>{const a=Rt(s[0],e,Rn);fe(r[2],e=>a[0][e]=[t,n,o],()=>Ja(a,n,o))},()=>Ja(s,n,o))},()=>Ja(e,n,o)):a==U?fe(r[0],e=>s[0][e]=[t,n,o],()=>Ja(s,n,o)):0)),pt(e[0])&&pt(s[0])?void 0:[e,s]},async(e,[[a,s,o],[r,i,l]]=e())=>{const c=Lt();Ot(c,n(J),[0,s,o]),ft(a,([e,t,a],s)=>{Ot(c,n(J,s),[0,t,a]),ft(e,([e,t,a],o)=>{Ot(c,n(J,s,o),[0,t,a]),ft(e,(e,t)=>Ot(c,n(J,s,o,t),e))})}),Ot(c,n(U),[0,i,l]),ft(r,(e,t)=>Ot(c,n(U,t),e)),await t.put(kt(c))},Ie,Ie,s,2,{getStorage:()=>t})},Tn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await t.db.raw({sql:e,args:a}),e=>t.notifier.subscribeToDataChanges(a=>_e(t.notifier.alias(a),({tablename:t})=>e(t))),e=>e(),s,n,Ie,1,t,"getElectricClient"),Ln=(t,a,s,n,o)=>wn(t,s,async(e,t=[])=>await a.getAllAsync(e,t),t=>e(({tableName:e})=>t(e)),e=>e.remove(),n,o,Ie,3,a),En=(e,r,i)=>ys(e,async()=>ra(await o(r,m)),async e=>await n(r,oa(e()),m),e=>(t(r)||a(r,d,m),s(r,()=>e())),e=>e?.close(),i,3,{getFilePath:()=>r}),Dn=[J,U],Nn={keyPath:"k"},Mn=async(e,t)=>{const a=bt(t,(t,a)=>On(e,"put",{k:a,v:t}));$e(await On(e,"getAllKeys"),s=>ht(t,s)?0:Ue(a,On(e,"delete",s))),await Le(a)},On=async(e,t,a)=>Te((s,n)=>{const o=e[t](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${t} error`)}),An=(e,t,a=1,s)=>{const n=async(e,a=[],s=0)=>Te((n,o)=>{const r=(ee?ee.indexedDB:indexedDB).open(t,s?2:void 0);r.onupgradeneeded=()=>s&&$e(Dn,e=>Ne(()=>r.result.createObjectStore(e,Nn))),r.onsuccess=()=>Ne(async()=>{const t=r.result.transaction(Dn,"readwrite"),s=await Le($e(Dn,(s,n)=>e(t.objectStore(s),a[n])));r.result.close(),n(s)},e=>{r.result.close(),o(e)}),r.onerror=()=>o("indexedDB.open error")});return ys(e,async()=>await n(async e=>ut($e(await On(e,"getAll"),({k:e,v:t})=>[e,t]))),e=>n((e,t)=>Mn(e,t),e(),1),e=>ae(e,a),e=>se(e),s,1,{getDbName:()=>t})},Pn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>(await t.execute({sql:e,args:a})).rows,()=>Ie,e=>e(),s,n,Ie,1,t,"getClient"),kn="s",_n="/store",Vn=(e,t,a)=>e+t+(ve(a)?a:oa(a)),$n=(e,t,a)=>{const s=me(e);return G(t,e)?[t[s],(a?ra:te)(pe(t,s+1))]:void 0},xn=(e,t,a,s)=>{const{host:n,room:o}=t.partySocketOptions,{storeProtocol:r="https",storePath:i=_n,messagePrefix:l=d}={...ve(a)?{storeProtocol:a}:a},c=r+"://"+n+"/parties/"+t.name+"/"+o+i,u=async e=>await(await fetch(c,{...e?{method:"PUT",body:na(e)}:{},mode:"cors",cache:"no-store"})).json();return ys(e,u,async(e,a)=>{a?t.send(Vn(l,kn,a)):await u(e())},e=>{const a=t=>fe($n(l,t.data,1),([t,a])=>{t==kn&&e(void 0,a)});return t.addEventListener(H,a),a},e=>{t.removeEventListener(H,e)},s,1,{getConnection:()=>t})},Wn="hasStore",Hn=ut($e(["Origin","Methods","Headers"],e=>["Access-Control-Allow-"+e,"*"])),Fn=async(e,t=d)=>!!await e.get(t+Wn),Jn=async(e,t=d)=>{const a={},s={};return Nt(await e.list(),(e,n)=>fe($n(t,e),([e,t])=>{if(e==J){const[e,s,o]=sa("["+t+"]");Rt(Rt(a,e,ut),s,ut)[o]=n}else e==U&&(s[t]=n)})),[a,s]},Un=async(e,t,a)=>e.party.broadcast(Vn(e.config.messagePrefix??d,kn,t),a),jn=async(e,t,a,s)=>{const n=e.party.storage,o=e.config.storagePrefix??d,r={[o+Wn]:1},i=[],l=[];await Le(bt(t[0],async(t,c)=>ue(t)?!a&&await e.canDelTable(c,s)&&Ge(l,Gn(o,J,c)):await e.canSetTable(c,a,s)&&await Le(bt(t,async(t,d)=>ue(t)?!a&&await e.canDelRow(c,d,s)&&Ue(l,Gn(o,J,c,d)):await e.canSetRow(c,d,a,s)&&await Le(bt(t,async(t,l)=>{const u=[c,d,l],g=Gn(o,J,...u);ue(t)?!a&&await e.canDelCell(...u,s)&&Ue(i,g):await e.canSetCell(...u,t,a,s,await n.get(g))&&(r[g]=t)})))))),await Le(bt(t[1],async(t,l)=>{const c=o+U+l;ue(t)?!a&&await e.canDelValue(l,s)&&Ue(i,c):await e.canSetValue(l,t,a,s,await n.get(c))&&(r[c]=t)})),We(l)||Nt(await n.list(),e=>Oe(l,t=>!G(e,t)||Ue(i,e)&&0)),await n.delete(i),await n.put(r)},Gn=(e,t,...a)=>Vn(e,t,pe(na(a),1,-1)),qn=async(e,t,a=null)=>new Response(a,{status:t,headers:e.config.responseHeaders});class Bn{constructor(e){this.party=e,this.config.storePath??=_n,this.config.messagePrefix??=d,this.config.storagePrefix??=d,this.config.responseHeaders??=Hn}party;config={};async onRequest(e){const{party:{storage:t},config:{storePath:a=_n,storagePrefix:s}}=this;if(new URL(e.url).pathname.endsWith(a)){const a=await Fn(t,s),n=await e.text();return"PUT"==e.method?a?qn(this,205):(await jn(this,sa(n),!0,e),qn(this,201)):qn(this,200,a?na(await Jn(t,s)):d)}return qn(this,404)}async onMessage(e,t){const{config:{messagePrefix:a=d,storagePrefix:s}}=this;await fe($n(a,e,1),async([e,a])=>{e==kn&&await Fn(this.party.storage,s)&&(await jn(this,a,!1,t),Un(this,a,[t.id]))})}async canSetTable(e,t,a){return!0}async canDelTable(e,t){return!0}async canSetRow(e,t,a,s){return!0}async canDelRow(e,t,a){return!0}async canSetCell(e,t,a,s,n,o,r){return!0}async canDelCell(e,t,a,s){return!0}async canSetValue(e,t,a,s,n){return!0}async canDelValue(e,t){return!0}}const zn=async(e,t,a,s,n)=>gn(e,a,async(e,a=[])=>(await t.query(e,a)).rows,(e,a)=>t.listen(e,a),e=>Ne(e,n),s,n,Ie,3,t,"getPglite"),Qn=async(e,t,a,s,n)=>{const o=await(t.reserve?.());return gn(e,a,o?.unsafe,async(e,a)=>t.listen(e,a),e=>Ne(e.unlisten,n),s,n,()=>o?.release?.(),3,t,"getSql")},Yn=(e,t,a,s,n)=>{let o;return wn(e,a,async(e,a=[])=>t.execute(e,a).then(e=>e.rows?._array??[]),e=>{const a=new AbortController,s=t.onChange({rawTableNames:!0,signal:a.signal});return(async()=>{for await(const e of s)o&&$e(e.changedTables,o)})(),o=e,a},e=>{o=void 0,e.abort()},s,n,Ie,1,t,"getPowerSync",Xn)},Xn=async(e,t,a,s,n,o)=>{const r=[1],i=Ft(s),l=o?Fe([...o],e=>e!=a&&!Ke(i,e)):[];if(!We(l)){const s=ct(n),o=ut($e(await e(vs+Hs(a,...l)+Ts+xs(t)+Ss+xs(a)+"IN("+Fs(s)+")",s),e=>[e[a],e]));_e(s,e=>Ue(n[e],...$e(l,t=>o?.[e]?.[t]??null)))}await e(ps+" "+ks+"INTO"+xs(t)+"("+Hs(a,...s,...l)+")VALUES"+Ve(bt(n,e=>"($"+r[0]+++","+Fs(e,r)+")"),u),bt(n,(e,t)=>[t,...$e(e,e=>e??null)]).flat())},Kn=(e,t,a="storage",s)=>ys(e,async()=>{const e=t.getString(a),s=ue(e)?void 0:JSON.parse(e);return Promise.resolve(s)},async e=>{const s=e();ue(s)||t.set(a,JSON.stringify(s))},e=>t.addOnValueChangedListener(s=>{if(s===a){const s=t.getString(a);s&&e(JSON.parse(s))}}),e=>{e.remove()},s,3,{getStorageName:()=>a}),Zn=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>(await t.executeSql(e,a))[0].rows.raw(),Ie,Ie,s,n,Ie,3,t),eo=e=>e.headers.get("ETag")??d,to=e=>e==d?void 0:{"If-None-Match":e},ao=(e,t,a,s=5,n)=>{let o=d;return ys(e,async()=>{const e=await fetch(t,{headers:to(o)});return o=eo(e),sa(await e.text())},async e=>await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:na(e())}),e=>ae(async()=>{const a=await fetch(t,{method:"HEAD",headers:to(o)}),s=eo(a);s!=o&&(o=s,e())},s),e=>se(e),n,1,{getUrls:()=>[t,a]})},so=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>t.query(e).all(...a),()=>Ie,e=>e(),s,n,Ie,3,t),no=(e,t,a,s,n,o)=>wn(e,s,async(e,t=[])=>a.exec(e,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(e=>({...e})),e=>t.capi.sqlite3_update_hook(a,(t,a,s,n)=>e(n),0),()=>t.capi.sqlite3_update_hook(a,Ie,0),n,o,Ie,3,a),oo="change",ro=(e,t,a,s,n)=>wn(e,a,async(e,a=[])=>await Te((s,n)=>t.all(e,a,(e,t)=>e?n(e):s(t))),e=>{const a=(t,a,s)=>e(s);return t.on(oo,a),a},e=>t.off(oo,e),s,n,Ie,3,t),io="delete",lo=e=>[e.get(J),e.get(U)],co=(e,t,a,s)=>{const n=ue(t)?e:e.get(t)??e.set(t,new r);let o;return vt(a,(e,t)=>{s(n,t,e)&&(o=1)}),n.forEach((e,t)=>{ht(a,t)||(n.delete(t),o=1)}),ue(t)||n.size||e.delete(t),o},uo=(e,t,a=c,s)=>{const n=t.getMap(a);return ys(e,async()=>n.size?[n.get(J).toJSON(),n.get(U).toJSON()]:void 0,async(e,a)=>t.transact(()=>((e,t,a)=>{e.size||(e.set(J,new r),e.set(U,new r));const[s,n]=lo(e),o=()=>{i=1};let i=1;if(fe(a,([e,t])=>{i=0,vt(e,(e,t)=>i?0:ue(e)?s.delete(t):fe(s.get(t),t=>vt(e,(e,a)=>i?0:ue(e)?t.delete(a):fe(t.get(a),t=>vt(e,(e,a)=>ue(e)?t.delete(a):t.set(a,e)),o)),o)),vt(t,(e,t)=>i?0:ue(e)?n.delete(t):n.set(t,e))}),i){const[e,a]=t();co(s,void 0,e,(e,t,a)=>co(s,t,a,(e,t,a)=>co(e,t,a,(e,t,a)=>{if(e.get(t)!==a)return e.set(t,a),1}))),co(n,void 0,a,(e,t,a)=>{n.get(t)!==a&&n.set(t,a)})}})(n,e,a)),e=>{const t=t=>e(void 0,((e,t)=>{if(1==me(t)&&We(t[0].path))return[e.get(J).toJSON(),e.get(U).toJSON(),1];const[a,s]=lo(e),n={},o={};return _e(t,({path:e,changes:{keys:t}})=>qe(e)==J?fe(qe(e),s=>{const o=Rt(n,s,ut),r=a.get(s);fe(qe(e),e=>{const a=Rt(o,e,ut),s=r.get(e);Nt(t,(e,{action:t})=>a[e]=t==io?void 0:s.get(e))},()=>Nt(t,(e,{action:t})=>o[e]=t==io?void 0:r.get(e)?.toJSON()))},()=>Nt(t,(e,{action:t})=>n[e]=t==io?void 0:a.get(e)?.toJSON())):Nt(t,(e,{action:t})=>o[e]=t==io?void 0:s.get(e))),[n,o,1]})(n,t));return n.observeDeep(t),t},e=>{n.unobserveDeep(e)},s,1,{getYDoc:()=>t})},go="_",wo=Gt(e=>{const t=e._[0],a=t(),s=t(),n=t(),o=Lt(),r=Ft(),i=Lt(),l=Lt(),c={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},u=Lt(),g=Lt(),{_:[,w,h],delListener:y}=n,[f,b,v,S,C,p,m,L,,E,N,M]=Ut(e,()=>[],Re,w,h),$=e=>At(o,e,t),x=(e,t,...a)=>_e(a,a=>Jt(At(At(u,t,Lt),e,Ft),a)),W=e=>{fe(Dt(u,e),e=>{Nt(e,(e,t)=>at(t,t=>e.delListener(t))),tt(e)}),_e([$(e),a],t=>t.delTable(e))},H=(e,t,a,...s)=>{const n=At(At(g,t,Lt),e,Ft);return _e(s,t=>{Jt(n,t),a&&e.callListener(t)}),s},F=(e,t,a)=>fe(Dt(Dt(g,e),t),s=>{t.delListener(a),st(s,a),Ze(s)&&Ot(Dt(g,e),t)}),J=e=>fe(Dt(g,e),e=>{Nt(e,(e,t)=>at(t,t=>e.delListener(t))),tt(e)}),U=(e,t,a)=>x(t,e,t.addStartTransactionListener(a.startTransaction),t.addDidFinishTransactionListener(()=>a.finishTransaction())),j=(e,t)=>(pt(t)?s.delRow:s.setRow)(go,e,{...t}),G=t=>$(t).transaction(()=>fe(p(t),([s,,n])=>{const o=C(t),i=n?$(o):e,l=$(t),c=B(t);Jt(r,t),W(t),J(t);const u=[],g=[[void 0,[o,void 0,void 0,[],Lt(),i]]],w=[],h=[],y=[];s({select:(e,t,a)=>{const s=we(e)?t:e,n=we(e)?a:t,o=Se(e)?[me(u)+d,e]:ue(n)?[e,t=>t(e)]:[n,t=>we(e)?t(!0,s,n):t(s,n)];return Ue(u,o),{as:e=>o[0]=e}},join:(t,a,s,n)=>{const o=we(t)?a:t,[r,i]=we(t)?ue(n)||Se(s)?[void 0,s]:[s,n]:ue(s)||Se(a)?[void 0,a]:[a,s],l=[o,[o,r,Se(i)?i:e=>e(i),[],Lt(),we(t)?$(o):e]];return Ue(g,l),{as:e=>l[0]=e}},where:(e,t,a,s)=>Ue(w,Se(e)?e:we(e)?e=>e(!0,t,a)===s:ue(a)?a=>a(e)===t:s=>s(e,t)===a),group:(e,t,a,s,n)=>{const o=[e,[e,Se(t)?[t,a,s,n]:Dt(os,t)??[(e,t)=>t]]];return Ue(h,o),{as:e=>o[0]=e}},having:(e,t)=>Ue(y,Se(e)?e:a=>a(e)===t),param:e=>wt(c,e)});const f=Lt(u);if(Ze(f))return st(r,t),z;const b=Lt(g);Nt(b,(e,[,t])=>fe(Dt(b,t),({3:t})=>ue(e)?0:Ue(t,e)));const v=Lt(h);let S=a;if(Ze(v)&&We(y))S=l;else{U(t,S,l);const e=Lt();Nt(v,(t,[a,s])=>Jt(At(e,a,Ft),[t,s]));const a=Ft();Nt(f,t=>Ke(e,t)?0:Jt(a,t));const s=Lt(),n=(a,s,n,o)=>fe(a,([r,i,c,d])=>{Nt(s,(t,[a])=>{const s=At(r,t,Lt),i=Dt(s,n),l=o?void 0:a;if(i!==l){const a=Ft([[i,l]]),o=ze(s);Ot(s,n,l),at(Dt(e,t),([e,t])=>{const n=rs(d[e],o,s,a,t);d[e]=ue(Ma(n))?void 0:n})}}),Ze(i)||!Oe(y,e=>e(e=>d[e]))?l.delRow(t,c):ue(c)?a[2]=l.addRow(t,d):l.setRow(t,c,d)});x(S,t,S.addRowListener(t,null,(o,r,i,l)=>{const c=[],d=[],u=Lt(),g=S.hasRow(t,i);let w=!g;at(a,e=>{const[a,s,n]=l(t,i,e);Ue(c,s),Ue(d,n),w||=a}),Nt(e,e=>{const[a,,s]=l(t,i,e);(w||a)&&Ot(u,e,[s])}),w&&n(Ht(s,c,void 0,([,e])=>(st(e,i),Ze(e))),u,i,1),g&&n(Ht(s,d,()=>{const e={};return at(a,a=>e[a]=S.getCell(t,i,a)),[Lt(),Ft(),void 0,e]},([,e])=>{Jt(e,i)}),u,i)}))}U(t,i,S);const p=(e,a,s,n,r)=>{const l=e=>a.getCell(s,n,e);_e(r,a=>{const[s,,n,o,r,i]=Dt(b,a),c=n?.(l,e),d=Dt(r,e),u=d?.[0];c!=u&&(fe(d,([,e,a])=>F(t,e,a)),Ot(r,e,ue(c)?void 0:[c,i,...H(i,t,1,i.addRowListener(s,c,()=>p(e,i,s,c,o)))]))}),(e=>{const a=(t,a,s)=>{const n=we(t)?a:t,r=we(t)?s:a;if(ue(r))return i.getCell(o,e,t);if(n===o&&!we(t))return i.getCell(o,e,r);const l=Dt(b,n);return ue(l)?void 0:l[5].getCell(l[0],Dt(l[4],e)?.[0],r)};S.transaction(()=>Oe(w,e=>e(a))?Nt(f,(s,n)=>S._[5](t,e,s,n(a,e))):S.delRow(t,e))})(e)},{3:m}=Dt(b,void 0),R=(e,a,s)=>{i.hasRow(o,s)?p(s,i,o,s,m):(S.delRow(t,s),at(b,({4:e})=>fe(Dt(e,s),([,a,n])=>{F(t,a,n),Ot(e,s)})))};return S.transaction(()=>{_e(i.getRowIds(o),e=>R(0,0,e)),H(i,t,0,i.addRowListener(o,null,R))}),st(r,t),z})),q=e=>(fe(p(e),([,e])=>s.delListener(e)),s.delRow(go,e),W(e),J(e),E(e),z),B=e=>s.getRow(go,e),z={setQueryDefinition:(e,t,a,n,o={})=>{const[r,i,l,c]=we(t)?[a,n,1,o]:[t,a,0,n??{}];return fe(p(e),([,e])=>s.delListener(e)),L(e,r),m(e,[i,s.addRowListener(go,e,()=>G(e)),l]),j(e,c),G(e),z},delQueryDefinition:q,getParamValues:B,getParamValue:(e,t)=>s.getCell(go,e,t),setParamValues:(e,t)=>(S(e)&&j(e,t),z),setParamValue:(e,t,a)=>(S(e)&&s.setCell(go,e,t,a),z),getStore:f,getQueryIds:b,forEachQuery:v,hasQuery:S,getTableId:C,forEachResultTable:e=>v(t=>$(t).hasTable(t)?e(t,e=>z.forEachResultRow(t,e)):0),addQueryIdsListener:e=>N(()=>e(z)),addParamValuesListener:(e,t)=>"p"+s.addRowListener(go,e,(e,a,s)=>t(z,s,B(s))),addParamValueListener:(e,t,a)=>"p"+s.addCellListener(go,e,t,(e,t,s,n,o)=>a(z,s,n,o)),delListener:e=>{const t=Dt(i,e);if("p"==e[0])s.delListener(pe(e,1));else if(ue(t))y(e);else{const[a,s,n]=t;Nt(s,(e,[t,a])=>t.delListener(a)),fe(n,y),Ot(i,e),y(e),c[a]--}return z},destroy:()=>{_e(b(),q),M()},getListenerStats:()=>({...c,paramValues:s.getListenerStats().row-me(b()),paramValue:s.getListenerStats().cell})};return vt({[D]:[2,1],[D+V]:[1,1],[A]:[1,1],[P]:[1,1],[k]:[1,5],[O]:[3,2],[V]:[1,2],[_]:[3,3]},([e,t],a)=>{_e(pe(["get","has","forEach"],0,e),e=>z[e+I+a]=(...t)=>$(t[0])[e+a](...t)),z[T+I+a+R]=(...e)=>((s,n)=>{const o=w(Re,l),r=Lt(),d=()=>{const s=null==n?b():[n];_e(s,s=>{return Ke(r,s)?0:Ot(r,s,[$(s),(n=$(s),n[T+a+R](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:pe(e,0,t))(e,t),(a,...s)=>e[t](z,...s),!0))]);var n}),Nt(r,(e,[t,a])=>null==n&&S(e)||e==n?0:(t.delListener(a),void Ot(r,e)))};return d(),Ot(i,o,[s,r,null==n?N(d):void 0]),c[s]++,o})((e=>e[0].toLowerCase()+pe(e,1))(a),e[0])}),dt(z)}),ho=Gt(e=>{const t=Lt(),a=Lt(),s=Lt(),n=Lt(),[o,r,i]=zt(()=>m),[l,c,u,g,w,h,,,y,f,b,v]=Ut(e,()=>[Lt(),Lt(),Lt(),Lt()],e=>ue(e)?void 0:e+d,o,r),S=(e,t,a)=>fe(h(e),([s,,n])=>{if(!Ke(n,t)){const o=Ft();if(w(e)!=p(e))Jt(o,t);else{let e=t;for(;!ue(e)&&!Ke(o,e);)Jt(o,e),e=Dt(s,e)}if(a)return o;Ot(n,t,o)}return Dt(n,t)}),C=(e,t)=>fe(h(e),([,,e])=>Ot(e,t)),p=e=>Dt(t,e),m={setRelationshipDefinition:(e,o,i,l)=>(Ot(t,e,i),y(e,o,(t,o)=>{const i=Ft(),l=Ft(),c=Ft(),[d,u]=h(e);at(o,([t,a],s)=>{ue(t)||(Jt(l,t),fe(Dt(u,t),e=>{st(e,s),Ze(e)&&Ot(u,t)})),ue(a)||(Jt(l,a),Ke(u,a)||Ot(u,a,Ft()),Jt(Dt(u,a),s)),Jt(i,s),Ot(d,s,a),Nt(Dt(n,e),t=>{Ke(S(e,t),s)&&Jt(c,t)})}),t(),at(i,t=>r(a,[e,t])),at(l,t=>r(s,[e,t])),at(c,t=>{C(e,t),r(n,[e,t])})},jt(l)),m),delRelationshipDefinition:e=>(Ot(t,e),f(e),m),getStore:l,getRelationshipIds:c,forEachRelationship:t=>u(a=>t(a,t=>e.forEachRow(w(a),t))),hasRelationship:g,getLocalTableId:w,getRemoteTableId:p,getRemoteRowId:(e,t)=>Dt(h(e)?.[0],t),getLocalRowIds:(e,t)=>et(Dt(h(e)?.[1],t)),getLinkedRowIds:(e,t)=>ue(h(e))?[t]:et(S(e,t,!0)),addRelationshipIdsListener:b,addRemoteRowIdListener:(e,t,s)=>o(s,a,[e,t]),addLocalRowIdsListener:(e,t,a)=>o(a,s,[e,t]),addLinkedRowIdsListener:(e,t,a)=>(S(e,t),o(a,n,[e,t])),delListener:e=>(C(...i(e)??[]),m),destroy:v,getListenerStats:()=>({remoteRowId:Ye(a),localRowIds:Ye(s),linkedRowIds:Ye(n)})};return dt(m)}),yo={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},fo=(e,t,a,s,n,o,r,i,l={})=>{let c,u=0,g=0,w=0;const h=Lt(),y=()=>ta(11),f=(e,a,s,n)=>{g++,o?.(e,a,s,n),t(e,a,s,n)},b=async(e,t,a,s)=>Te((o,r)=>{const i=s+"."+ta(4),l=ne(()=>{st(h,i),r(`No response from ${e??"anyone"} to ${i}, `+t)},n);Ot(h,i,[e,(e,t)=>{clearTimeout(l),st(h,i),o([e,t,s])}]),f(e,i,t,a)}),v=(e,[t,a])=>{ft(t,([t,a],s)=>{const n=Rt(e[0],s,Ua);ft(t,([e,t],a)=>{const s=Rt(n[0],a,Ua);ft(e,([e,t],a)=>s[0][a]=$a(e,t)),s[1]=Fa(s[1],t)}),n[1]=Fa(n[1],a)}),e[1]=Fa(e[1],a)},S=(t=null,a,s=y())=>Ne(async()=>{ue(a)&&([a,t,s]=await b(null,1,d,s));const[n,o]=a,[r,i]=e.getMergeableContentHashes();let l=Ua();if(r!=n){const[a,n]=(await b(t,4,e.getMergeableTableHashes(),s))[0];if(l=a,!pt(n)){const[a,o]=(await b(t,5,e.getMergeableRowHashes(n),s))[0];if(v(l,a),!pt(o)){const a=(await b(t,6,e.getMergeableCellHashes(o),s))[0];v(l,a)}}}return[l,i==o?Ua():(await b(t,7,e.getMergeableValueHashes(),s))[0],1]},i),C=ys(e,async()=>{const e=await S();return!e||pt(e[0][0])&&pt(e[1][0])?void 0:e},async(t,a)=>a?f(null,y(),3,a):f(null,y(),2,e.getMergeableContentHashes()),e=>c=e,()=>c=void 0,i,2,{startSync:async e=>(u=1,await C.startAutoPersisting(e)),stopSync:async()=>(u=0,await C.stopAutoPersisting(),C),destroy:async()=>(await C.stopSync(),s(),C),getSynchronizerStats:()=>({sends:g,receives:w}),...l},1);return a((t,a,s,n)=>{const o=u||C.isAutoLoading();w++,r?.(t,a,s,n),0==s?fe(Dt(h,a),([e,a])=>ge(e)||e==t?a(n,t):0):2==s&&o?S(t,n,a??void 0).then(e=>{c?.(void 0,e)}).catch(i):3==s&&o?c?.(void 0,n):fe(1==s&&(u||C.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{f(t,a,0,e)})}),C},bo=(e,t,a,s,n)=>{const o=ta(),r=new BroadcastChannel(t);return fo(e,(e,t,a,s)=>r.postMessage([o,e,t,a,s]),e=>{r.onmessage=({data:[t,a,s,n,r]})=>ge(a)||a==o?e(t,s,n,r):0},()=>{r.close()},.01,a,s,n,{getChannelName:()=>t})},vo=Lt(),So=(e,t,a,s)=>{const n=ta();return fo(e,(e,t,a,s)=>ne(()=>ge(e)?Nt(vo,(e,o)=>e!=n?o(n,t,a,s):0):Dt(vo,e)?.(n,t,a,s)),e=>{Ot(vo,n,e)},()=>{st(vo,n)},.01,t,a,s)},Co=(e,t)=>{const a=e.indexOf("\n");-1!==a&&t(pe(e,0,a),pe(e,a+1))},po=(e,t)=>Co(e,(e,a)=>t(e,...ra(a))),mo=(e,...t)=>Ro(e??d,oa(t)),Ro=(e,t)=>e+"\n"+t,Io=async(e,t,a=1,s,n,o)=>{const r=(e,a)=>(t.addEventListener(e,a),()=>t.removeEventListener(e,a)),i=fo(e,(e,...a)=>t.send(mo(e,...a)),e=>r(H,({data:t})=>po(t.toString(m),e)),()=>{t.close()},a,s,n,o,{getWebSocket:()=>t});return Te(e=>{if(t.readyState!=t.OPEN){const t=t=>{t&&o?.(t),a(),s(),e(i)},a=r("open",()=>t()),s=r(F,t)}else e(i)})},To=/\/([^?]*)/,Lo="S",Eo=e=>B(new URL(e.url).pathname,To)?.[1]??d,Do=e=>"websocket"==e.headers.get("upgrade")?.toLowerCase()?e.headers.get("sec-websocket-key"):null,No=(e,t=null,a=null)=>new Response(a,{status:e,webSocket:t}),Mo=()=>No(426,null,"Upgrade required");class Oo extends i{#e;constructor(e,t){super(e,t),this.ctx.blockConcurrencyWhile(async()=>await fe(await this.createPersister(),async e=>{const t=fo(e.getStore(),(e,t,a,s)=>this.#t(Lo,mo(e,t,a,s)),e=>this.#e=t=>po(t,e),Ie,1);await e.load(),await e.startAutoSave(),ne(t.startSync)}))}fetch(e){const t=Eo(e);return fe(Do(e),e=>{const[a,s]=St(new WebSocketPair);return We(this.#a())&&this.onPathId(t,1),this.ctx.acceptWebSocket(s,[e,t]),this.onClientId(t,e,1),s.send(mo(Lo,null,1,d)),No(101,a)},Mo)}webSocketMessage(e,t){fe(this.ctx.getTags(e)[0],a=>this.#t(a,t.toString(),e))}webSocketClose(e){const[t,a]=this.ctx.getTags(e);this.onClientId(a,t,-1),1==me(this.#a())&&this.onPathId(a,-1)}#t(e,t,a){Co(t.toString(),(t,s)=>{const n=Ro(e,s);this.onMessage(e,t,s),t==d?(e!=Lo&&this.#e?.(n),_e(this.#a(),e=>{e!=a&&e.send(n)})):t==Lo?this.#e?.(n):t!=e&&this.#a(t)[0]?.send(n)})}#a(e){return this.ctx.getWebSockets(e)}createPersister(){}getPathId(){return this.ctx.getTags(this.#a()[0])?.[1]}getClientIds(){return $e(this.#a(),e=>this.ctx.getTags(e)[0])}onPathId(e,t){}onClientId(e,t,a){}onMessage(e,t,a){}}const Ao=e=>(t,a)=>Do(t)?a[e].get(a[e].idFromName(Eo(t))).fetch(t):Mo(),Po=/\/([^?]*)/,ko=e=>{const t=Lt();return e.on("connection",(e,a)=>fe(B(a.url,Po),([,s])=>fe(a.headers["sec-websocket-key"],async a=>{const n=At(t,s,Lt);Ot(n,a,e),e.on(H,e=>Co(e.toString(m),(e,t)=>{const s=Ro(a,t);e===d?Nt(n,(e,t)=>e!==a?t.send(s):0):Dt(n,e)?.send(s)})),e.on("close",()=>{st(n,a),Ze(n)&&st(t,s)})}))),dt({getWebSocketServer:()=>e,destroy:async()=>{tt(t),e.close()}})},_o=/\/([^?]*)/,Vo=(e,t,a)=>{const s=Lt(),n=Lt(),o=Lt(),r=Lt(),[i,l,c]=zt(()=>w),u=async e=>{await(e[1]?.destroy()),await(e[2]?.destroy())},g=(e,t,a)=>s=>Co(s,(s,n)=>{const o=Ro(e,n);s===d?("S"!==e&&a[3]?.(o),Nt(t,(t,a)=>t!==e?a.send(o):0)):"S"===s?a[3]?.(o):Dt(t,s)?.send(o)});e.on("connection",(e,i)=>fe(B(i.url,_o),([,c])=>fe(i.headers["sec-websocket-key"],async i=>{const d=At(o,c,Lt),w=At(r,c,()=>[0]),h=g(i,d,w);Ze(d)&&(l(s,void 0,c,1),await(async(e,s,n)=>fe(await(t?.(s)),t=>{e[0]=1,e[1]=Ce(t)?t[0]:t;const s=g("S",n,e);e[2]=fo(e[1].getStore(),(e,t,a,n)=>s(mo(e,t,a,n)),t=>e[3]=e=>po(e,t),Ie,1,void 0,void 0,a),e[4]=[],e[5]=Ce(t)?t[1]:e=>0}))(w,c,d)),Ot(d,i,e),l(n,[c],i,1),e.on(H,e=>{const t=e.toString(m);0==w[0]?h(t):Ue(w[4],t)}),1==w[0]&&(await(async e=>{e[0]=2,await e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})(w),_e(w[4],h),w[4]=[]),e.on("close",async()=>{st(d,i),l(n,[c],i,-1),Ze(d)&&(await u(w),st(r,c),st(o,c),l(s,void 0,c,-1))}),a&&e.on(F,a)}))),a&&e.on(F,a);const w={getWebSocketServer:()=>e,getPathIds:()=>Et(o),getClientIds:e=>Et(Dt(o,e)),addPathIdsListener:e=>i(e,s),addClientIdsListener:(e,t)=>i(t,n,[e]),delListener:e=>(c(e),w),getStats:()=>({paths:ze(o),clients:Qe(o)}),destroy:async()=>{tt(o),await Le(Mt(r,u)),e.close()}};return dt(w)};export{yo as Message,gs as Persists,us as Status,Bn as TinyBasePartyKitServer,Oo as WsServerDurableObject,da as addOrRemoveHash,Un as broadcastChanges,fn as createAutomergePersister,bo as createBroadcastChannelSynchronizer,Qt as createCheckpoints,mn as createCrSqliteWasmPersister,ys as createCustomPersister,gn as createCustomPostgreSqlPersister,wn as createCustomSqlitePersister,fo as createCustomSynchronizer,In as createDurableObjectStoragePersister,Tn as createElectricSqlPersister,Ln as createExpoSqlitePersister,En as createFilePersister,An as createIndexedDbPersister,Na as createIndexes,Pn as createLibSqlPersister,Sn as createLocalPersister,So as createLocalSynchronizer,ns as createMergeableStore,is as createMetrics,ds as createMiddleware,pn as createOpfsPersister,xn as createPartyKitPersister,zn as createPglitePersister,Qn as createPostgresPersister,Yn as createPowerSyncPersister,wo as createQueries,Kn as createReactNativeMmkvPersister,Zn as createReactNativeSqlitePersister,ho as createRelationships,ao as createRemotePersister,Cn as createSessionPersister,ro as createSqlite3Persister,so as createSqliteBunPersister,no as createSqliteWasmPersister,ts as createStore,Vo as createWsServer,ko as createWsServerSimple,Io as createWsSynchronizer,uo as createYjsPersister,Da as defaultSorter,ha as getCellHash,ya as getCellInRowHash,ca as getHash,Ea as getHlcFunctions,fa as getRowHash,ba as getRowInTableHash,va as getTableHash,Sa as getTableInTablesHash,Ca as getTablesHash,ta as getUniqueId,wa as getValueHash,ga as getValueInValuesHash,ua as getValuesHash,Ao as getWsServerDurableObjectFetch,Fn as hasStoreInStorage,Jn as loadStoreFromStorage,Mn as objectStoreMatch};
1
+ import{addDatabaseChangeListener as e}from"expo-sqlite";import{existsSync as t,writeFileSync as a,watch as s}from"fs";import{writeFile as n,readFile as o}from"fs/promises";import{Map as r}from"yjs";import{DurableObject as i}from"cloudflare:workers";const l=e=>typeof e,c="tinybase",d="",u=",",g=l(d),w=l(!0),h=l(0),y=l(l),f="object",b="array",v="true",S="type",C="default",p="allowNull",m="utf8",R="Listener",T="Result",I="add",L="Has",E="Ids",D="Table",N=D+"s",M=D+E,O="Row",A=O+"Count",P=O+E,k="Sorted"+O+E,_="Cell",V=_+E,$="Value",x=$+"s",W=$+E,H="message",F="error",J="t",U="v",j=e=>d+e,G=(e,t)=>e.startsWith(t),q=(e,t)=>e.endsWith(t),z=(e,t)=>e?.match(t),B=(e,t=d,a)=>e.split(t,a),Q=(e,t,a)=>e.replace(t,a),Y=Promise,X=Math,K=e=>(t,a,s)=>e(t)?s?.():a(t),Z=globalThis,ee=Z.window,te=String,ae=(e,t,a)=>setInterval(e,1e3*t),se=clearInterval,ne=(e,t=0)=>setTimeout(e,1e3*t),oe=clearTimeout,re=X.max,ie=X.min,le=X.floor,ce=X.random,de=isFinite,ue=e=>null==e,ge=e=>void 0===e,we=e=>null===e,he=e=>!0===e,ye=e=>!1===e,fe=K(ue),be=K(ge),ve=e=>e==g||e==w,Se=e=>l(e)==g,Ce=e=>l(e)==y,pe=e=>Array.isArray(e),me=(e,t,a)=>e.slice(t,a),Re=e=>e.length,Te=()=>{},Ie=()=>{},Le=e=>new Y(e),Ee=async e=>Y.all(e),De=Z.structuredClone,Ne=e=>{throw Error(e)},Me=async(e,t,a)=>{try{return await e()}catch(e){t?.(e)}},Oe=(e,t)=>e.includes(t),Ae=(e,t)=>e.every(t),Pe=(e,t)=>Re(e)===Re(t)&&Ae(e,(e,a)=>t[a]===e),ke=(e,t)=>Ae(e,(a,s)=>0==s||t(e[s-1],a)<=0),_e=(e,t)=>e.sort(t),Ve=(e,t)=>e.forEach(t),$e=(e,t=d)=>e.join(t),xe=(e,t)=>e.map(t),We=e=>Fe(e,(e,t)=>e+t,0),He=e=>0==Re(e),Fe=(e,t,a)=>e.reduce(t,a),Je=(e,t)=>e.filter(t),Ue=(e,t)=>e.splice(0,t),je=(e,...t)=>e.push(...t),Ge=e=>e.pop(),qe=(e,...t)=>e.unshift(...t),ze=e=>e.shift(),Be=e=>t=>Fe(tt(t),(t,a)=>t+e(a),0),Qe=e=>e?.size??0,Ye=Be(Qe),Xe=Be(Ye),Ke=Be(Xe),Ze=(e,t)=>e?.has(t)??!1,et=e=>ge(e)||0==Qe(e),tt=e=>[...e?.values()??[]],at=e=>e.clear(),st=(e,t)=>e?.forEach(t),nt=(e,t)=>e?.delete(t),ot=Object,rt=e=>ot.getPrototypeOf(e),it=ot.isFrozen,lt=ot.entries,ct=e=>!ue(e)&&fe(rt(e),e=>e==ot.prototype||ue(rt(e)),()=>!0),dt=ot.keys,ut=ot.freeze,gt=(e=[])=>ot.fromEntries(e),wt=(...e)=>ot.assign({},...e),ht=(e,t)=>be(e,e=>e[t]),yt=(e,t)=>t in e,ft=(e,t)=>(delete e[t],e),bt=(e,t)=>Ve(lt(e),([e,a])=>t(a,e)),vt=(e,t)=>xe(lt(e),([e,a])=>t(a,e)),St=(e,t)=>gt(vt(e,(e,a)=>[a,t(e,a)])),Ct=e=>ot.values(e),pt=e=>Re(dt(e)),mt=e=>ct(e)&&0==pt(e),Rt=(e,t,a=(e,t)=>e===t)=>{const s=lt(e);return Re(s)===pt(t)&&Ae(s,([e,s])=>ct(s)?!!ct(t[e])&&Rt(t[e],s,a):a(s,t[e]))},Tt=(e,t,a)=>(yt(e,t)||(e[t]=a()),e[t]),It=(e,t,a,s=0)=>ue(e)||!ct(e)||!s&&mt(e)||it(e)?(a?.(),!1):(bt(e,(a,s)=>{t(a,s)||ft(e,s)}),!!s||!mt(e)),Lt=Map,Et=e=>new Lt(e),Dt=e=>[...e?.keys()??[]],Nt=(e,t)=>e?.get(t),Mt=(e,t)=>st(e,(e,a)=>t(a,e)),Ot=(e,t)=>xe([...e?.entries()??[]],([e,a])=>t(a,e)),At=(e,t,a)=>ge(a)?(nt(e,t),e):e?.set(t,a),Pt=(e,t,a,s)=>(Ze(e,t)?s?.(Nt(e,t)):At(e,t,a()),Nt(e,t)),kt=(e,t,a,s=At)=>(St(t,(t,s)=>a(e,s,t)),Mt(e,a=>yt(t,a)?0:s(e,a)),e),_t=(e,t,a,s)=>{const n={};return st(e,(e,o)=>{if(!a?.(e,o)){const a=t?t(e,o):e;s?.(a)||(n[o]=a)}}),n},Vt=(e,t,a)=>_t(e,e=>_t(e,t,a),et,mt),$t=(e,t,a)=>_t(e,e=>Vt(e,t,a),et,mt),xt=(e,t)=>{const a=Et();return st(e,(e,s)=>a.set(s,t?.(e)??e)),a},Wt=e=>xt(e,xt),Ht=e=>xt(e,Wt),Ft=(e,t,a,s,n=0)=>be((a?Pt:Nt)(e,t[n],n>Re(t)-2?a:Et),o=>{if(n>Re(t)-2)return s?.(o)&&At(e,t[n]),o;const r=Ft(o,t,a,s,n+1);return et(o)&&At(e,t[n]),r}),Jt=e=>new Set(pe(e)||ge(e)?e:[e]),Ut=(e,t)=>e?.add(t),jt=(e,t,a,s,n)=>{const o=e.hasRow,r=Et(),i=Et(),l=Et(),c=Et(),d=Et(),u=Et(),g=t=>be(Nt(u,t),a=>{Ve(tt(a),t=>{e.delListener(t),nt(a,t)}),At(u,t)}),w=(e,a)=>{At(r,e,a),Ze(i,e)||(At(i,e,t()),At(c,e,Et()),At(d,e,Et()),n(l))},h=e=>{At(r,e),At(i,e),At(c,e),At(d,e),g(e),n(l)};return[()=>e,()=>Dt(r),e=>Mt(i,e),e=>Ze(i,e),e=>Nt(r,e),e=>Nt(i,e),(e,t)=>At(i,e,t),w,(t,s,n,r,i)=>{w(t,s);const l=Et(),h=Et(),y=Nt(c,t),f=Nt(d,t),b=t=>{const n=a=>e.getCell(s,t,a),c=Nt(y,t),d=o(s,t)?a(r(n,t)):void 0;if(c===d||pe(c)&&pe(d)&&Pe(c,d)||At(l,t,[c,d]),!ge(i)){const e=Nt(f,t),a=o(s,t)?i(n,t):void 0;e!=a&&At(h,t,a)}},v=e=>{n(()=>{st(l,([,e],t)=>At(y,t,e)),st(h,(e,t)=>At(f,t,e))},l,h,y,f,e),at(l),at(h)};Mt(y,b),e.hasTable(s)&&Ve(e.getRowIds(s),e=>{Ze(y,e)||b(e)}),v(!0),g(t),((e,...t)=>{const a=Pt(u,e,Jt);Ve(t,e=>Ut(a,e))})(t,e.addRowListener(s,null,(e,t,a)=>b(a)),e.addTableListener(s,()=>v()))},h,e=>s(e,l),()=>Mt(u,h)]},Gt=(e,t)=>Se(e)?t=>t(e):e??(()=>t??d),qt=(e,t)=>{const a=new WeakMap;return s=>{a.has(s)||a.set(s,e(s));const n=a.get(s);return t?.(n),n}},zt=/^\d+$/,Bt=()=>{const e=[];let t=0;return[a=>(a?ze(e):null)??d+t++,t=>{zt.test(t)&&Re(e)<1e3&&je(e,t)}]},Qt=e=>{let t;const[a,s]=Bt(),n=Et();return[(s,o,r,i=[],l=()=>[])=>{t??=e();const c=a(1);return At(n,c,[s,o,r,i,l]),Ut(Ft(o,r??[d],Jt),c),c},(e,a,...s)=>Ve(((e,t=[d])=>{const a=[],s=(e,n)=>n==Re(t)?je(a,e):we(t[n])?st(e,e=>s(e,n+1)):Ve([t[n],null],t=>s(Nt(e,t),n+1));return s(e,0),a})(e,a),e=>st(e,e=>Nt(n,e)[0](t,...a??[],...s))),e=>be(Nt(n,e),([,t,a])=>(Ft(t,a??[d],void 0,t=>(nt(t,e),et(t)?1:0)),At(n,e),s(e),a)),e=>be(Nt(n,e),([e,,a=[],s,n])=>{const o=(...r)=>{const i=Re(r);i==Re(a)?e(t,...r,...n(r)):we(a[i])?Ve(s[i]?.(...r)??[],e=>o(...r,e)):o(...r,a[i])};o()})]},Yt=qt(e=>{let t,a,s,n=100,o=Et(),r=Et(),i=1;const l=Et(),c=Et(),[u,g,w]=Qt(()=>P),h=Et(),y=Et(),f=[],b=[],v=(t,a)=>{i=0,e.transaction(()=>{const[s,n]=Nt(h,a);st(s,(a,s)=>st(a,(a,n)=>st(a,(a,o)=>e._[5](s,n,o,a[t],!0)))),st(n,(a,s)=>e._[6](s,a[t],!0))}),i=1},S=e=>{At(h,e),At(y,e),g(c,[e])},C=(e,t)=>Ve(Ue(e,t??Re(e)),S),p=()=>C(f,Re(f)-n),m=()=>be(t,()=>{je(f,t),p(),C(b),t=void 0,s=1}),R=()=>{t=Ge(f),s=1};let T,I;const L=(e=d)=>(ge(t)&&(t=d+a++,At(h,t,[o,r]),O(t,e),o=Et(),r=Et(),s=1),t),E=()=>{He(f)||(qe(b,L()),v(0,t),t=Ge(f),s=1)},D=()=>{He(b)||(je(f,t),t=ze(b),v(1,t),s=1)},N=()=>{s&&(g(l),s=0)},M=e=>{const t=L(e);return N(),t},O=(e,t)=>(A(e)&&Nt(y,e)!==t&&(At(y,e,t),g(c,[e])),P),A=e=>Ze(h,e),P={setSize:e=>(n=e,p(),P),addCheckpoint:M,setCheckpoint:O,getStore:()=>e,getCheckpointIds:()=>[[...f],t,[...b]],forEachCheckpoint:e=>Mt(y,e),hasCheckpoint:A,getCheckpoint:e=>Nt(y,e),goBackward:()=>(E(),N(),P),goForward:()=>(D(),N(),P),goTo:e=>{const a=Oe(f,e)?E:Oe(b,e)?D:void 0;for(;!ge(a)&&e!=t;)a();return N(),P},addCheckpointIdsListener:e=>u(e,l),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(w(e),P),clear:()=>(C(f),C(b),ge(t)||S(t),t=void 0,a=0,M(),P),clearForward:()=>(He(b)||(C(b),g(l)),P),destroy:()=>{e.delListener(T),e.delListener(I)},getListenerStats:()=>({checkpointIds:Ye(l),checkpoint:Ye(c)}),_registerListeners:()=>{T=e.addCellListener(null,null,null,(e,t,a,s,n,r)=>{if(i){m();const e=Pt(o,t,Et),i=Pt(e,a,Et),l=Pt(i,s,()=>[r,void 0]);l[1]=n,l[0]===n&&et(At(i,s))&&et(At(e,a))&&et(At(o,t))&&R(),N()}}),I=e.addValueListener(null,(e,t,a,s)=>{if(i){m();const e=Pt(r,t,()=>[s,void 0]);e[1]=a,e[0]===a&&et(At(r,t))&&R(),N()}})}};return ut(P.clear())},e=>e._registerListeners()),Xt=B("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Kt=Et(xe(Xt,(e,t)=>[e,t])),Zt=e=>Xt[63&e],ea=(e,t)=>Nt(Kt,e[t])??0,ta=Z.crypto?e=>Z.crypto.getRandomValues(e):e=>xe(e,()=>le(256*ce())),aa=(e=16)=>Fe(ta(new Uint8Array(e)),(e,t)=>e+Zt(t),d),sa=JSON.stringify,na=JSON.parse,oa=e=>sa(e,(e,t)=>t instanceof Map?ot.fromEntries([...t]):t),ra=e=>sa(e,(e,t)=>ge(t)?"":t),ia=e=>la(na(e)),la=e=>""===e?void 0:pe(e)?xe(e,la):ct(e)?St(e,la):e,ca=new Z.TextEncoder,da=e=>{let t=2166136261;return Ve(ca.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},ua=(e,t)=>(e^t)>>>0,ga=e=>Fe(lt(e),(e,[t,a])=>ua(e,wa(t,a)^wa(t,0)),0),wa=(e,t)=>da(e+":"+t),ha=(e,t)=>da(oa(e??null)+":"+t),ya=ha,fa=wa,ba=ga,va=wa,Sa=e=>Fe(lt(e),(e,[t,a])=>ua(e,wa(t,a)),0),Ca=wa,pa=Sa,ma=2**36,Ra=2**30,Ta=2**24,Ia=2**18,La=4096,Ea=e=>{const t=da(e);return Zt(t/Ta)+Zt(t/Ia)+Zt(t/La)+Zt(t/64)+Zt(t)},Da=(e,t=Date.now)=>{let a=0,s=-1;const n=be(e,Ea,()=>aa(5)),o=e=>{const n=a,[o,r]=ge(e)||e==d?[0,0]:i(e);a=re(n,o,t()),s=a==n?a==o?re(s,r):s:a==o?r:-1},r=(e,t,a)=>Zt(e/ma)+Zt(e/Ra)+Zt(e/Ta)+Zt(e/Ia)+Zt(e/La)+Zt(e/64)+Zt(e)+Zt(t/Ia)+Zt(t/La)+Zt(t/64)+Zt(t)+(ge(a)?n:Ea(a)),i=e=>[ea(e,0)*ma+ea(e,1)*Ra+ea(e,2)*Ta+ea(e,3)*Ia+ea(e,4)*La+64*ea(e,5)+ea(e,6),ea(e,7)*Ia+ea(e,8)*La+64*ea(e,9)+ea(e,10),e.slice(11)];return[()=>(o(),r(a,++s)),o,r,i,()=>a,()=>s,()=>n]},Na=(e,t)=>(e??0)<(t??0)?-1:1,Ma=qt(e=>{const t=Et(),a=Et(),[s,n,o]=Qt(()=>S),[r,i,l,c,u,g,w,,h,y,f,b]=jt(e,Et,e=>ge(e)?d:pe(e)?xe(e,j):j(e),s,n),v=(t,a,s)=>{const n=u(t);st(s,(t,s)=>a(s,a=>st(t,t=>a(t,a=>e.forEachCell(n,t,a)))))},S={setIndexDefinition:(e,s,o,r,i,l=Na)=>{const c=ge(i)?void 0:([e],[t])=>i(e,t);return h(e,s,(s,o,i,d,u,h)=>{let y=0;const f=Jt(),b=Jt(),v=g(e);if(st(o,([e,t],a)=>{const s=Jt(e),n=Jt(t);st(s,e=>nt(n,e)?nt(s,e):0),st(s,e=>{Ut(f,e),be(Nt(v,e),t=>{nt(t,a),et(t)&&(At(v,e),y=1)})}),st(n,e=>{Ut(f,e),Ze(v,e)||(At(v,e,Jt()),y=1),Ut(Nt(v,e),a),ge(r)||Ut(b,e)})}),s(),et(u)||(h?Mt(v,e=>Ut(b,e)):Mt(i,e=>be(Nt(d,e),e=>Ve(pe(e)?e:[e],e=>Ut(b,e)))),st(b,e=>{const t=(t,a)=>l(Nt(u,t),Nt(u,a),e),a=[...Nt(v,e)];ke(a,t)||(At(v,e,Jt(_e(a,t))),Ut(f,e))})),(y||h)&&!ge(c)){const t=[...v];ke(t,c)||(w(e,Et(_e(t,c))),y=1)}y&&n(t,[e]),st(f,t=>n(a,[e,t]))},Gt(o),be(r,Gt)),S},delIndexDefinition:e=>(y(e),S),getStore:r,getIndexIds:i,forEachIndex:e=>l((t,a)=>e(t,e=>v(t,e,a))),forEachSlice:(e,t)=>v(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Ze(g(e),t),getTableId:u,getSliceIds:e=>Dt(g(e)),getSliceRowIds:(e,t)=>tt(Nt(g(e),t)),addIndexIdsListener:f,addSliceIdsListener:(e,a)=>s(a,t,[e]),addSliceRowIdsListener:(e,t,n)=>s(n,a,[e,t]),delListener:e=>(o(e),S),destroy:b,getListenerStats:()=>({sliceIds:Ye(t),sliceRowIds:Xe(a)})};return ut(S)}),Oa=e=>{if(we(e))return"null";if(pe(e))return b;if(ct(e))return f;const t=l(e);return ve(t)||t==h&&de(e)?t:void 0},Aa=e=>ge(e)||!ge(Oa(e)),Pa=e=>e==f||e==b,ka=e=>ct(e)||pe(e)?"�"+sa(e):e,_a=e=>Se(e)&&"�"==e[0],Va=(e,t,a)=>!a&&_a(e)?na(me(e,1)):e,$a=([e,t])=>xa(e,t),xa=(e,t)=>t?[e,t]:[e],Wa=(e,t,a)=>[e,t,a],Ha=e=>e[2],Fa=(e,t)=>t>e?(e?da(e):0)^da(t):0,Ja=(e,t)=>((e??d)>(t??d)?e:t)??d,Ua=(e,t,a)=>{t>e[1]&&(e[1]=t),e[2]=a>>>0},ja=(e=d)=>xa(gt(),e),Ga=(e=d)=>[Et(),e,0],qa=([e,t,a],s)=>[_t(e,s),t,a],za=([e,t],a=$a)=>xa(_t(e,a),t),Ba=(e,t)=>{return pe(e)&&3==Re(e)&&Se(e[1])&&(a=e[2],l(a)==h)&&de(e[2])&&t(e[0]);var a},Qa=e=>[e,e],Ya=(e,t=Ye)=>t(e[0])+t(e[1]),Xa=()=>[Et(),Et()],Ka=e=>[...e],Za=([e,t])=>e===t,es=(e,t,a)=>At(e,t,Nt(e,t)==-a?void 0:a),ts=([e,t],[a,s])=>Rt(e,a)&&Rt(t,s),as=()=>{let e,t,a=!1,s=!1,n=0,o=[],r=[],i=0;const l=Et(),c=Et(),d=Et(),u=Et(),g=Et(),w=Et(),y=Et(),f=Et(),b=Et(),v=Et(),m=Et(),T=Et(),E=Et(),k=Et(),H=Jt(),F=Et(),J=Et(),U=Et(),G=Et(),q=Xa(),z=Xa(),B=Xa(),Q=Xa(),Y=Xa(),X=Xa(),K=Xa(),Z=Xa(),ee=Xa(),te=Xa(),ae=Xa(),se=Xa(),ne=Xa(),oe=Xa(),re=Xa(),ie=Xa(),le=Xa(),ce=Xa(),de=Xa(),ue=Xa(),he=Xa(),ye=Xa(),fe=Et(),Se=Xa(),[Re,Te,Ie,Le]=Qt(()=>is),Ee=e=>{const t=i;i=1;const a=e();return i=t,a},Ne=(e,t,a,s=Object.is)=>be(t(),t=>e===t||s(e,t)?a(t):Ee(()=>a(t))),Ae=e=>{if(!It(e,(e,t)=>Oe([S,C,p],t)))return!1;const t=e[S];if(!ve(t)&&t!=h&&!Pa(t))return!1;const a=e[C];return!(we(a)&&!e[p]||(we(a)||(Oa(a)!=t?ft(e,C):e[C]=ka(a)),0))},ke=pe,$e=(t,a)=>(!e||Ze(m,a)||Xt(a))&&It(t,(e,t)=>We(a,t,e),()=>Xt(a)),We=(e,t,a,s)=>It(s?a:Ue(a,e,t),(s,n)=>be(He(e,t,n,s),e=>(a[n]=e,!0),()=>!1),()=>Xt(e,t)),He=(t,a,s,n)=>e?be(Nt(Nt(m,t),s),e=>we(n)?e[p]?n:Xt(t,a,s,n,e[C]):Oa(n)===e[S]?ka(n):Pa(e[S])&&_a(n)?n:Xt(t,a,s,n,e[C]),()=>Xt(t,a,s,n)):ge(Oa(n))?Xt(t,a,s,n):ka(n),Fe=(e,t)=>It(t?e:Ge(e),(t,a)=>be(Je(a,t),t=>(e[a]=t,!0),()=>!1),()=>Kt()),Je=(e,a)=>t?be(Nt(E,e),t=>we(a)?t[p]?a:Kt(e,a,t[C]):Oa(a)===t[S]?ka(a):Pa(t[S])&&_a(a)?a:Kt(e,a,t[C]),()=>Kt(e,a)):ge(Oa(a))?Kt(e,a):ka(a),Ue=(e,t,a)=>(be(Nt(T,t),([s,n])=>{st(s,(t,a)=>{yt(e,a)||(e[a]=t)}),st(n,s=>{yt(e,s)||Xt(t,a,s)})}),e),Ge=e=>(t&&(st(k,(t,a)=>{yt(e,a)||(e[a]=t)}),st(H,t=>{yt(e,t)||Kt(t)})),e),qe=e=>kt(m,e,(e,t,a)=>{const s=Et(),n=Jt();kt(Pt(m,t,Et),a,(e,t,a)=>{At(e,t,a),be(a[C],e=>At(s,t,e),()=>Ut(n,t))}),At(T,t,[s,n])},(e,t)=>{At(m,t),At(T,t)}),ze=e=>kt(E,e,(e,t,a)=>{At(E,t,a),be(a[C],e=>At(k,t,e),()=>Ut(H,t))},(e,t)=>{At(E,t),At(k,t),nt(H,t)}),Be=e=>mt(e)?Ja():Ma(e),tt=(e,t,a,s,n,o)=>ge(s)?Ga(e,t,a,!0,n):Aa(e,t,a,s,n,o),ot=e=>mt(e)?qa():$a(e),rt=(e,t,a)=>ge(t)?za(e,a):xa(e,t,a),it=(e,t)=>Ne(e,()=>t?e:be(o[1],t=>Ee(()=>t(De(e))),()=>e),e=>kt(U,e,(e,t,a)=>lt(t,a),(e,t)=>Ct(t)),Rt),lt=(e,t,a)=>Ne(t,()=>a?t:be(o[2],a=>Ee(()=>a(e,De(t))),()=>t),t=>kt(Pt(U,e,()=>(Ft(e,1),At(F,e,Bt()),At(J,e,Et()),Et())),t,(t,a,s)=>dt(e,t,a,s),(t,a)=>pt(e,t,a)),Rt),dt=(e,t,a,s,n)=>Ne(s,()=>n?s:be(o[3],t=>Ee(()=>t(e,a,De(s))),()=>s),s=>kt(Pt(t,a,()=>(jt(e,a,1),Et())),s,(t,s,n)=>gt(e,a,t,s,n),(s,o)=>Tt(e,t,a,s,o,n)),Rt),gt=(e,t,a,s,n,r)=>Ne(n,()=>be(r?void 0:o[4],a=>Ee(()=>a(e,t,s,n)),()=>n),n=>{Ze(a,s)||Gt(e,t,s,1);const o=Nt(a,s);n!==o&&(qt(e,t,s,o,n),At(a,s,n))}),wt=(e,t,a,s,n,o)=>be(Nt(t,a),t=>gt(e,a,t,s,n,o),()=>{const r=Et();At(t,a,r),jt(e,a,1),St(Ue({[s]:n},e,a),(t,s)=>gt(e,a,r,s,t,o))}),ht=(e,t)=>Ne(e,()=>t?e:be(o[5],t=>Ee(()=>t(De(e))),()=>e),e=>kt(G,e,(e,t,a)=>bt(t,a),(e,t)=>Lt(t)),Rt),bt=(e,t,a)=>Ne(t,()=>be(a?void 0:o[6],a=>Ee(()=>a(e,t)),()=>t),t=>{Ze(G,e)||zt(e,1);const a=Nt(G,e);t!==a&&(Yt(e,a,t),At(G,e,t))}),vt=e=>Pt(U,e,()=>(Ft(e,1),At(F,e,Bt()),At(J,e,Et()),Et())),Ct=e=>Ee(()=>o[8]?.(e))??1?lt(e,{},!0):Nt(U,e),pt=(e,t,a)=>{if(Ee(()=>o[9]?.(e,a))??1){const[,s]=Nt(F,e);s(a),dt(e,t,a,{},!0)}},Tt=(e,t,a,s,n,r,i)=>{const l=Nt(Nt(T,e)?.[0],n);if(!ge(l)&&!r)return gt(e,a,s,n,l);if(i||(Ee(()=>o[10]?.(e,a,n))??1)){const o=t=>{qt(e,a,t,Nt(s,t)),Gt(e,a,t,-1),At(s,t)};ge(l)?o(n):Mt(s,o),et(s)&&(jt(e,a,-1),et(At(t,a))&&(Ft(e,-1),At(U,e),At(F,e),At(J,e)))}},Lt=(e,t)=>{const a=Nt(k,e);if(!ge(a))return bt(e,a);(t||(Ee(()=>o[12]?.(e))??1))&&(Yt(e,Nt(G,e)),zt(e,-1),At(G,e))},Ft=(e,t)=>es(l,e,t),jt=(e,t,a)=>es(Pt(u,e,Et),t,a)&&At(d,e,Pt(d,e,()=>0)+a),Gt=(e,t,a,s)=>{const n=Nt(J,e),o=Nt(n,a)??0;(0==o&&1==s||1==o&&-1==s)&&es(Pt(c,e,Et),a,s),At(n,a,o!=-s?o+s:void 0),es(Pt(Pt(g,e,Et),t,Et),a,s)},qt=(e,t,a,s,n)=>{Pt(Pt(Pt(w,e,Et),t,Et),a,()=>[s,0])[1]=n,r[3]?.(e,t,a,n,i)},zt=(e,t)=>es(y,e,t),Yt=(e,t,a)=>{Pt(f,e,()=>[t,0])[1]=a,r[4]?.(e,a,i)},Xt=(e,t,a,s,n)=>(je(Pt(Pt(Pt(b,e,Et),t,Et),a,()=>[]),s),n),Kt=(e,t,a)=>(je(Pt(v,e,()=>[]),t),a),Zt=(e,t,a)=>be(Nt(Nt(Nt(w,e),t),a),([e,t])=>[!0,Va(e),Va(t)],()=>[!1,...Qa(va(e,t,a))]),ea=e=>be(Nt(f,e),([e,t])=>[!0,Va(e),Va(t)],()=>[!1,...Qa(pa(e))]),ta=e=>et(b)||et(ie[e])?0:st(e?Ht(b):b,(t,a)=>st(t,(t,s)=>st(t,(t,n)=>Te(ie[e],[a,s,n],t)))),aa=e=>et(v)||et(le[e])?0:st(e?xt(v):v,(t,a)=>Te(le[e],[a],t)),sa=(e,t,a,s)=>{if(!et(e))return Te(t,s,()=>_t(e)),Mt(e,(e,t)=>Te(a,[...s??[],e],1==t)),1},ra=e=>{const t=!et(q[e]),s=!et(te[e]),n=!(et(ne[e])&&et(oe[e])&&et(ee[e])&&et(ae[e])&&et(X[e])&&et(K[e])&&et(Z[e])&&!s&&et(B[e])&&et(Q[e])),o=!(et(re[e])&&et(se[e])&&et(Y[e])&&et(z[e]));if(t||n||o){const i=e?[xt(l),Wt(c),xt(d),Wt(u),Ht(g),(r=w,xt(r,e=>xt(e,e=>xt(e,Ka))))]:[l,c,d,u,g,w];if(t){const t=ma();t!=a&&Te(q[e],void 0,t)}if(n){sa(i[0],B[e],Q[e]),st(i[1],(t,a)=>sa(t,X[e],K[e],[a])),st(i[2],(t,a)=>{0!=t&&Te(Z[e],[a],ha(a))});const t=Jt();st(i[3],(a,n)=>{sa(a,ee[e],ae[e],[n])&&s&&(Te(te[e],[n,null]),Ut(t,n))}),s&&st(i[5],(a,s)=>{if(!Ze(t,s)){const t=Jt();st(a,e=>st(e,([a,s],n)=>s!==a?Ut(t,n):nt(e,n))),st(t,t=>Te(te[e],[s,t]))}}),st(i[4],(t,a)=>st(t,(t,s)=>sa(t,ne[e],oe[e],[a,s])))}if(o){let t;st(i[5],(a,s)=>{let n;st(a,(a,o)=>{let r;st(a,([a,i],l)=>{i!==a&&(Te(re[e],[s,o,l],Va(i),Va(a),Zt),t=n=r=1)}),r&&Te(se[e],[s,o],Zt)}),n&&Te(Y[e],[s],Zt)}),t&&Te(z[e],void 0,Zt)}}var r},ia=e=>{const t=!et(ce[e]),a=!et(ue[e])||!et(he[e]),n=!et(ye[e])||!et(de[e]);if(t||a||n){const o=e?[xt(y),xt(f,Ka)]:[y,f];if(t){const t=Ea();t!=s&&Te(ce[e],void 0,t)}if(a&&sa(o[0],ue[e],he[e]),n){let t;st(o[1],([a,s],n)=>{s!==a&&(Te(ye[e],[n],Va(s),Va(a),ea),t=1)}),t&&Te(de[e],void 0,ea)}}},la=(e,...t)=>(ns(()=>e(...xe(t,j))),is),ca=(e,t,a,s,n)=>{let o=fa(e,t,...a);return Re(()=>{const n=fa(e,t,...a);Pe(n,o)||(o=n,s(is,e,t,...a,o))},te[n?1:0],[e,t],[ga])},da=(e=!1)=>[_t(w,(t,a)=>-1===Nt(l,a)?void 0:_t(t,(t,s)=>-1===Nt(Nt(u,a),s)?void 0:_t(t,([,t])=>Va(t,0,e),e=>Za(e)),et,mt),et,mt),_t(f,([,t])=>Va(t,0,e),e=>Za(e)),1],ua=()=>$t(U,Va),ga=()=>Dt(U),wa=e=>Dt(Nt(J,j(e))),ha=e=>Qe(Nt(U,j(e))),ya=e=>Dt(Nt(U,j(e))),fa=(e,t,a,s=0,n)=>ct(e)?fa(e.tableId,e.cellId,e.descending,e.offset,e.limit):xe(me(_e(Ot(Nt(U,j(e)),(e,a)=>[ge(t)?a:Nt(e,j(t)),a]),([e],[t])=>Na(e,t)*(a?-1:1)),s,ge(n)?n:s+n),([,e])=>e),ba=(e,t)=>Dt(Nt(Nt(U,j(e)),j(t))),va=(e,t,a)=>Va(Nt(Nt(Nt(U,j(e)),j(t)),j(a))),Sa=()=>_t(G,Va),Ca=()=>Dt(G),pa=e=>Va(Nt(G,j(e))),ma=()=>!et(U),Ra=e=>Ze(U,j(e)),Ta=(e,t)=>Ze(Nt(J,j(e)),j(t)),Ia=(e,t)=>Ze(Nt(U,j(e)),j(t)),La=(e,t,a)=>Ze(Nt(Nt(U,j(e)),j(t)),j(a)),Ea=()=>!et(G),Da=e=>Ze(G,j(e)),Ma=e=>la(()=>(e=>It(e,$e,Xt))(e)?it(e):0),Aa=(e,t,a,s,n,r)=>la((e,t,a)=>be(He(e,t,a,Ce(s)?s(va(e,t,a)):s),s=>{const i=vt(e);be(n||r||!o[14]?.()?void 0:o[3],o=>{const r=Nt(i,t),l={...r?_t(r):{},[a]:s};be(Ee(()=>o(e,t,De(l))),a=>((e,t,a,s,n)=>{kt(Pt(t,a,()=>(jt(e,a,1),Et())),s,(t,s,o)=>be(He(e,a,s,o),o=>gt(e,a,t,s,o,n)),(s,n)=>Tt(e,t,a,s,n,!0))})(e,i,t,a,n))},()=>wt(e,i,t,a,s,n))}),e,t,a),$a=e=>la(()=>Fe(e)?ht(e):0),xa=(e,t,a)=>la(e=>be(Je(e,Ce(t)?t(pa(e)):t),t=>bt(e,t,a)),e),Wa=e=>(Me(()=>Be(na(e))),is),Ha=t=>la(()=>{if((e=It(t,e=>It(e,Ae)))&&(qe(t),!et(U))){const e=ua();Ja(),Ma(e)}}),Fa=e=>la(()=>{if(t=(e=>It(e,Ae))(e)){const a=Sa();ss(),qa(),t=!0,ze(e),$a(a)}}),Ja=()=>la(()=>Ee(()=>o[7]?.())??1?it({},!0):0),Ua=e=>la(e=>Ze(U,e)?Ct(e):0,e),ja=(e,t)=>la((e,t)=>be(Nt(U,e),a=>Ze(a,t)?pt(e,a,t):0),e,t),Ga=(e,t,a,s,n)=>la((e,t,a)=>be(Nt(U,e),o=>be(Nt(o,t),r=>Ze(r,a)?Tt(e,o,t,r,a,s,n):0)),e,t,a),qa=()=>la(()=>Ee(()=>o[11]?.())??1?ht({},!0):0),za=(e,t)=>la(e=>Ze(G,e)?Lt(e,t):0,e),Ba=()=>la(()=>{qe({}),e=!1}),ss=()=>la(()=>{ze({}),t=!1}),ns=(e,t)=>{if(-1!=n){os();const a=e();return rs(t),a}},os=()=>(-1!=n&&n++,1==n&&(r[0]?.(),Te(fe)),is),rs=e=>(n>0&&(n--,0==n&&(n=1,Ee(()=>{ta(1),et(w)||ra(1),aa(1),et(f)||ia(1)}),e?.(is)&&(st(w,(e,t)=>st(e,(e,a)=>st(e,([e],s)=>tt(t,a,s,e,!0)))),at(w),st(f,([e],t)=>rt(t,e,!0)),at(f)),Te(Se[0],void 0),n=-1,ta(0),et(w)||ra(0),aa(0),et(f)||ia(0),r[1]?.(),Te(Se[1],void 0),r[2]?.(),n=0,a=ma(),s=Ea(),Ve([l,c,d,u,g,w,b,y,f,v],at))),is),is={getContent:()=>[ua(),Sa()],getTables:ua,getTableIds:ga,getTable:e=>Vt(Nt(U,j(e)),Va),getTableCellIds:wa,getRowCount:ha,getRowIds:ya,getSortedRowIds:fa,getRow:(e,t)=>_t(Nt(Nt(U,j(e)),j(t)),Va),getCellIds:ba,getCell:va,getValues:Sa,getValueIds:Ca,getValue:pa,hasTables:ma,hasTable:Ra,hasTableCell:Ta,hasRow:Ia,hasCell:La,hasValues:Ea,hasValue:Da,getTablesJson:()=>oa(U),getValuesJson:()=>oa(G),getJson:()=>oa([U,G]),getTablesSchemaJson:()=>oa(m),getValuesSchemaJson:()=>oa(E),getSchemaJson:()=>oa([m,E]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>la(()=>{const t=Ce(e)?e():e;ke(t)&&(e=>{Ne(e,()=>be(o[0],t=>Ee(()=>t(De(e))),()=>e),([e,t])=>{(mt(e)?Ja:Ma)(e),(mt(t)?qa:$a)(t)},ts)})(t)}),setTables:Ma,setTable:(e,t)=>la(e=>$e(t,e)?lt(e,t):0,e),setRow:(e,t,a)=>la((e,t)=>We(e,t,a)?dt(e,vt(e),t,a):0,e,t),addRow:(e,t,a=!0)=>ns(()=>{let s;return We(e,s,t)&&(e=j(e),dt(e,vt(e),s=((e,t)=>{const[a]=Nt(F,e);let s;do{s=a(t)}while(Ze(Nt(U,e),s));return s})(e,a?1:0),t)),s}),setPartialRow:(e,t,a)=>la((e,t)=>{if(We(e,t,a,1)){const s=vt(e);St(a,(a,n)=>wt(e,s,t,n,a))}},e,t),setCell:Aa,setValues:$a,setPartialValues:e=>la(()=>Fe(e,1)?St(e,(e,t)=>bt(t,e)):0),setValue:xa,applyChanges:e=>la(()=>Ne(e,()=>be(o[13],t=>Ee(()=>t(De(e))),()=>e),e=>{St(e[0],(e,t)=>ge(e)?Ua(t):St(e,(e,a)=>ge(e)?ja(t,a):St(e,(e,s)=>tt(t,a,s,e,void 0,!0)))),St(e[1],(e,t)=>rt(t,e))},ts)),setTablesJson:Wa,setValuesJson:e=>(Me(()=>ot(na(e))),is),setJson:e=>la(()=>Me(()=>{const[t,a]=na(e);Be(t),ot(a)},()=>Wa(e))),setTablesSchema:Ha,setValuesSchema:Fa,setSchema:(e,t)=>la(()=>{Ha(e),Fa(t)}),delTables:Ja,delTable:Ua,delRow:ja,delCell:Ga,delValues:qa,delValue:za,delTablesSchema:Ba,delValuesSchema:ss,delSchema:()=>la(()=>{Ba(),ss()}),transaction:ns,startTransaction:os,getTransactionChanges:()=>da(),getTransactionLog:()=>[!et(w),!et(f),$t(w,Ka,Za),$t(b),_t(f,Ka,Za),_t(v),_t(l),Vt(u),$t(g),_t(y)],finishTransaction:rs,forEachTable:e=>st(U,(t,a)=>e(a,e=>st(t,(t,a)=>e(a,e=>Mt(t,(t,a)=>e(t,Va(a))))))),forEachTableCell:(e,t)=>Mt(Nt(J,j(e)),t),forEachRow:(e,t)=>st(Nt(U,j(e)),(e,a)=>t(a,t=>Mt(e,(e,a)=>t(e,Va(a))))),forEachCell:(e,t,a)=>Mt(Nt(Nt(U,j(e)),j(t)),(e,t)=>a(e,Va(t))),forEachValue:e=>Mt(G,(t,a)=>e(t,Va(a))),addSortedRowIdsListener:(e,t,a,s,n,o,r)=>ct(e)?ca(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,a):ca(e,t,[a,s,n],o,r),addStartTransactionListener:e=>Re(e,fe),addWillFinishTransactionListener:e=>Re(e,Se[0]),addDidFinishTransactionListener:e=>Re(e,Se[1]),callListener:e=>(Le(e),is),delListener:e=>(Ie(e),is),getListenerStats:()=>({hasTables:Ya(q),tables:Ya(z),tableIds:Ya(B),hasTable:Ya(Q),table:Ya(Y),tableCellIds:Ya(X),hasTableCell:Ya(K,Xe),rowCount:Ya(Z),rowIds:Ya(ee),sortedRowIds:Ya(te),hasRow:Ya(ae,Xe),row:Ya(se,Xe),cellIds:Ya(ne,Xe),hasCell:Ya(oe,Ke),cell:Ya(re,Ke),invalidCell:Ya(ie,Ke),hasValues:Ya(ce),values:Ya(de),valueIds:Ya(ue),hasValue:Ya(he),value:Ya(ye),invalidValue:Ya(le),transaction:Ye(fe)+Ya(Se)}),isMergeable:()=>!1,_:[as,Re,Te,(e,t,a,s,n)=>r=[e,t,a,s,n],(e,t,a,s,n,r,i,l,c,d,u,g,w,h,y)=>o=[e,t,a,s,n,r,i,l,c,d,u,g,w,h,y],tt,rt,()=>[$t(U),_t(G)],()=>da(!0)]};return St({[L+N]:[0,q,[],()=>[ma()]],[N]:[0,z],[M]:[0,B],[L+D]:[1,Q,[ga],e=>[Ra(...e)]],[D]:[1,Y,[ga]],[D+V]:[1,X,[ga]],[L+D+_]:[2,K,[ga,wa],e=>[Ta(...e)]],[A]:[1,Z,[ga]],[P]:[1,ee,[ga]],[L+O]:[2,ae,[ga,ya],e=>[Ia(...e)]],[O]:[2,se,[ga,ya]],[V]:[2,ne,[ga,ya]],[L+_]:[3,oe,[ga,ya,ba],e=>[La(...e)]],[_]:[3,re,[ga,ya,ba],e=>Qa(va(...e))],InvalidCell:[3,ie],[L+x]:[0,ce,[],()=>[Ea()]],[x]:[0,de],[W]:[0,ue],[L+$]:[1,he,[Ca],e=>[Da(...e)]],[$]:[1,ye,[Ca],e=>Qa(pa(e[0]))],InvalidValue:[1,le]},([e,t,a,s],n)=>{is[I+n+R]=(...n)=>Re(n[e],t[n[e+1]?1:0],e>0?me(n,0,e):void 0,a,s)}),ut(is)},ss={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},ns=(e=d)=>[Ga(e),Ga(e)],os=(e,t)=>{let a=1,s=ns(),n=0,o=0;const r=Et(),i=Jt(),[l,c]=Da(e,t),u=as(),g=e=>{const t=a;return a=0,e(),a=t,p},w=(e,t=0)=>{const a={},n={},[[o,r=d,i=0],l]=e,[u,g]=s,[w,y,f]=u;let b=t?i:f,v=r;bt(o,([e,s=d,n=0],o)=>{const r=Pt(w,o,Ga),[i,l,c]=r;let u=t?n:c,g=s;bt(e,(e,s)=>{const[n,r,l]=h(e,Pt(i,s,Ga),Tt(Tt(a,o,gt),s,gt),t);u^=t?0:ua(r?wa(s,r):0,wa(s,l)),g=Ja(g,n)}),u^=t?0:Fa(l,s),Ua(r,s,u),b^=t?0:ua(c?wa(o,c):0,wa(o,r[2])),v=Ja(v,g)}),b^=t?0:Fa(y,r),Ua(u,r,b);const[S]=h(l,g,n,t);return c(Ja(v,S)),[a,n,1]},h=(e,t,a,s)=>{const[n,o=d,r=0]=e,[i,l,c]=t;let u=o,g=s?r:c;return bt(n,([e,t=d,n=0],o)=>{const r=Pt(i,o,()=>[void 0,d,0]),[,l,c]=r;(!l||t>l)&&(Ua(r,t,s?n:ha(e,t)),r[0]=e,a[o]=e,g^=s?0:ua(wa(o,c),wa(o,r[2])),u=Ja(u,t))}),g^=s?0:Fa(l,o),Ua(t,o,g),[u,c,t[2]]},y=Ie,f=Ie,b=(e=!1)=>[qa(s[0],t=>qa(t,t=>qa(t,([t,a,s])=>[Va(t,0,e),a,s]))),qa(s[1],([t,a,s])=>[Va(t,0,e),a,s])],v=(e,t=!1)=>{const[[a,n,o],[l,c,d]]=s,u=e?Wa:xa,g={};st(r,(e,s)=>be(Nt(a,s),([a,n,o])=>{const r={};st(e,(e,s)=>be(Nt(a,s),([a,n,o])=>{const i={};st(e,e=>{be(Nt(a,e),([a,s,n])=>i[e]=u(t?a:Va(a),s,n))}),r[s]=u(i,n,o)})),g[s]=u(r,n,o)}));const w={};return st(i,e=>be(Nt(l,e),([a,s,n])=>w[e]=u(t?a:Va(a),s,n))),[u(g,n,o),u(w,c,d),1]},S=()=>b(),C=e=>g(()=>u.applyChanges(w(e))),p={getMergeableContent:S,getMergeableContentHashes:()=>[s[0][2],s[1][2]],getMergeableTableHashes:()=>_t(s[0][0],Ha),getMergeableTableDiff:e=>{const t=ja(s[0][1]),a={};return Mt(s[0][0],(s,[n,o,r])=>yt(e,s)?r!=e[s]?a[s]=r:0:t[0][s]=za([n,o],e=>za(e))),[t,a]},getMergeableRowHashes:e=>{const t={};return bt(e,(e,a)=>be(Nt(s[0][0],a),([s,,n])=>n!=e?Mt(s,(e,[,,s])=>Tt(t,a,gt)[e]=s):0)),t},getMergeableRowDiff:e=>{const t=ja(s[0][1]),a={};return bt(e,(e,n)=>Mt(Nt(s[0][0],n)?.[0],(s,[o,r,i])=>yt(e,s)?i!==e[s]?Tt(a,n,gt)[s]=i:0:Tt(t[0],n,ja)[0][s]=za([o,r]))),[t,a]},getMergeableCellHashes:e=>{const t={};return bt(e,(e,a)=>be(Nt(s[0][0],a),([s])=>bt(e,(e,n)=>be(Nt(s,n),([s,,o])=>o!==e?Mt(s,(e,[,,s])=>Tt(Tt(t,a,gt),n,gt)[e]=s):0)))),t},getMergeableCellDiff:e=>{const[[t,a]]=s,n={};return bt(e,(e,a)=>bt(e,(e,s)=>be(Nt(t,a),([t,o])=>be(Nt(t,s),([t,r])=>Mt(t,(t,[i,l,c])=>c!==e[t]?Tt(Tt(n,a,()=>ja(o))[0],s,()=>ja(r))[0][t]=[i,l]:0))))),xa(n,a)},getMergeableValueHashes:()=>_t(s[1][0],Ha),getMergeableValueDiff:e=>{const[,[t,a]]=s,n=_t(t,$a,([,,t],a)=>t==e?.[a]);return xa(n,a)},setMergeableContent:e=>g(()=>(e=>pe(e)&&2==Re(e)&&Ba(e[0],e=>It(e,e=>Ba(e,e=>It(e,e=>Ba(e,e=>It(e,e=>Ba(e,Aa),void 0,1)),void 0,1)),void 0,1))&&Ba(e[1],e=>It(e,e=>Ba(e,Aa),void 0,1)))(e)?u.transaction(()=>{u.delTables().delValues(),s=ns(),u.applyChanges(w(e,1))}):0),setDefaultContent:e=>(u.transaction(()=>{n=1,u.setContent(e),n=0}),p),getTransactionMergeableChanges:(e=!1)=>v(e),applyMergeableChanges:C,merge:e=>{const t=S(),a=e.getMergeableContent();return e.applyMergeableChanges(t),C(a)},__:[()=>{const e=o;return o=0,e},()=>b(!0),e=>v(e,!0)]};return u._[3](y,f,()=>{at(r),at(i)},(e,t,s,i,c)=>{Ut(Pt(Pt(r,e,Et),t,Jt),s),(a||c)&&(c&&(o=1),w([[{[e]:[{[t]:[{[s]:[i,n?d:l()]}]}]}],[{}],1]))},(e,t,s)=>{Ut(i,e),(a||s)&&(s&&(o=1),w([[{}],[{[e]:[t,n?d:l()]}],1]))}),St(u,(e,t)=>p[t]=G(t,"set")||G(t,"del")||G(t,"apply")||q(t,"Transaction")||t=="call"+R||"use"==t?(...t)=>(e(...t),p):G(t,I)&&q(t,R)?(...a)=>{const s=ss[me(t,3,-8)]??0,n=a[s];return a[s]=(e,...t)=>n(p,...t),e(...a)}:"isMergeable"==t?()=>!0:e),ut(p)},rs=Et([["avg",[(e,t)=>We(e)/t,(e,t,a)=>e+(t-e)/(a+1),(e,t,a)=>e+(e-t)/(a-1),(e,t,a,s)=>e+(t-a)/s]],["max",[e=>re(...e),(e,t)=>re(t,e),(e,t)=>t==e?void 0:e,(e,t,a)=>a==e?void 0:re(t,e)]],["min",[e=>ie(...e),(e,t)=>ie(t,e),(e,t)=>t==e?void 0:e,(e,t,a)=>a==e?void 0:ie(t,e)]],["sum",[e=>We(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,a)=>e-a+t]]]),is=(e,t,a,s,n,o=!1)=>{if(et(a))return;const[r,i,l,c]=n;return o||=ge(e),st(s,([a,s])=>{o||(e=ge(a)?i?.(e,s,t++):ge(s)?l?.(e,a,t--):c?.(e,s,a,t),o||=ge(e))}),o?r(tt(a),Qe(a)):e},ls=qt(e=>{const t=Et(),[a,s,n]=Qt(()=>b),[o,r,i,l,c,u,g,,w,h,y,f]=jt(e,Te,e=>isNaN(e)||ge(e)||he(e)||ye(e)||e===d?void 0:1*e,a,s),b={setMetricDefinition:(e,a,n,o,r,i,l)=>{const c=Ce(n)?[n,r,i,l]:Nt(rs,n)??Nt(rs,"sum");return w(e,a,(a,n,o,r,i,l)=>{const d=u(e),w=Qe(r);l||=ge(d),a();let h=is(d,w,r,n,c,l);de(h)||(h=void 0),h!=d&&(g(e,h),s(t,[e],h,d))},Gt(o,1)),b},delMetricDefinition:e=>(h(e),b),getStore:o,getMetricIds:r,forEachMetric:i,hasMetric:l,getTableId:c,getMetric:u,addMetricIdsListener:y,addMetricListener:(e,s)=>a(s,t,[e]),delListener:e=>(n(e),b),destroy:f,getListenerStats:()=>({metric:Ye(t)})};return ut(b)}),cs=(e,t,...a)=>Fe(e,(e,t)=>ge(e)?e:t(...a,e),t),ds=(e,...t)=>Ae(e,e=>e(...t)),us=qt(e=>{const t=e=>t=>(je(e,t),M),a=[],s=[],n=[],o=[],r=[],i=[],l=[],c=[],d=[],u=[],g=[],w=[],h=[],y=[],f=t(a),b=t(s),v=t(n),S=t(o),C=t(r),p=t(i),m=t(l),R=t(c),T=t(d),I=t(u),L=t(g),E=t(w),D=t(h),N=t(y),M=ut({getStore:()=>e,addWillSetContentCallback:f,addWillSetTablesCallback:b,addWillSetTableCallback:v,addWillSetRowCallback:S,addWillSetCellCallback:C,addWillSetValuesCallback:p,addWillSetValueCallback:m,addWillDelTablesCallback:R,addWillDelTableCallback:T,addWillDelRowCallback:I,addWillDelCellCallback:L,addWillDelValuesCallback:E,addWillDelValueCallback:D,addWillApplyChangesCallback:N,destroy:()=>{}});return e._[4](e=>cs(a,e),e=>cs(s,e),(e,t)=>cs(n,t,e),(e,t,a)=>cs(o,a,e,t),(e,t,a,s)=>cs(r,s,e,t,a),e=>cs(i,e),(e,t)=>cs(l,t,e),()=>ds(c),e=>ds(d,e),(e,t)=>ds(u,e,t),(e,t,a)=>ds(g,e,t,a),()=>ds(w),e=>ds(h,e),e=>cs(y,e),()=>o.length>0),M}),gs={Idle:0,Loading:1,Saving:2},ws={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},hs=Et(),ys=Et(),fs=(e,t,a,s,n,o,r,i={},l=0,c=[])=>{let d,u,g,w=0,h=0,y=0;Pt(hs,c,()=>0),Pt(ys,c,()=>[]);const f=Et(),[b,v,S,C,p]=((e=1,t,a)=>1!=e&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!a),([[e],[t]])=>!mt(e)||!mt(t),t.setDefaultContent]:2!=e?[0,t._[7],t._[8],([e,t])=>!mt(e)||!mt(t),t.setContent]:Ne("Store type not supported by this Persister"))(r,e,l),[m,R,T]=Qt(()=>$),I=e=>{e!=w&&(w=e,R(f,void 0,w))},L=t=>{(b&&pe(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},E=async()=>{k()&&e.__?.[0]?.()&&await O()},D=async e=>(2!=w&&(I(1),h++,await V(async()=>{await Me(async()=>{const a=await t();pe(a)?L(a):e?p(e):Ne("Content is not an array: "+a)},()=>{e&&p(e)}),I(0),await E()})),$),N=async e=>(M(),await D(e),await Me(async()=>u=await s(async(e,t)=>{t||e?2!=w&&(I(1),h++,L(t??e),I(0),await E()):await D()}),o),$),M=async()=>(u&&(await Me(()=>n(u),o),u=void 0),$),O=async e=>(1!=w&&(I(2),y++,await V(async()=>{await Me(()=>a(v,e),o),I(0)})),$),A=async()=>(P(),await O(),g=e.addDidFinishTransactionListener(()=>{const e=S();C(e)&&O(e)}),$),P=async()=>(g&&(e.delListener(g),g=void 0),$),k=()=>!ge(g),_=async(e=!1)=>{const[t,a]=e?[P,M]:[M,P];return await t(),await a(),$},V=async(...e)=>(je(Nt(ys,c),...e),await(async()=>{if(!Nt(hs,c)){for(At(hs,c,1);!ge(d=ze(Nt(ys,c)));)await Me(d,o);At(hs,c,0)}})(),$),$={load:D,startAutoLoad:N,stopAutoLoad:M,isAutoLoading:()=>!ge(u),save:O,startAutoSave:A,stopAutoSave:P,isAutoSaving:k,startAutoPersisting:async(e,t=!1)=>{const[a,s]=t?[A,N]:[N,A];return await a(e),await s(e),$},stopAutoPersisting:_,getStatus:()=>w,addStatusListener:e=>m(e,f),delListener:t=>(T(t),e),schedule:V,getStore:()=>e,destroy:()=>(Ue(Nt(ys,c)),_()),getStats:()=>({loads:h,saves:y}),...i};return ut($)},bs="_",vs="_id",Ss="SELECT",Cs="WHERE",ps="TABLE",ms="INSERT",Rs="DELETE",Ts="UPDATE",Is="ALTER "+ps,Ls="FROM",Es=Rs+" "+Ls,Ds=Ss+"*"+Ls,Ns="pragma_",Ms="data_version",Os="schema_version",As="pragma_table_",Ps="CREATE ",ks=Ps+ps,_s="OR REPLACE ",Vs="FUNCTION",$s="$tableName",xs=(e,t)=>t?async(a,s)=>(t(a,s),await e(a,s)):e,Ws=e=>$e(xe(B(e,"."),e=>`"${Q(e,/"/g,'""')}"`),"."),Hs=(...e)=>Ws($e(e,"_")),Fs=(...e)=>$e(xe(e,Ws),u),Js=(e,t=[1])=>$e(xe(e,()=>"$"+t[0]++),u),Us=(e,t=v)=>Cs+`(${Q(t,$s,Ws(e))})`,js="ColumnName",Gs="store",qs="json",zs=Gs+"TableName",Bs=Gs+"Id"+js,Qs=Gs+js,Ys="autoLoadIntervalSeconds",Xs="rowId"+js,Ks="tableId",Zs="tableName",en="deleteEmptyColumns",tn="deleteEmptyTable",an="condition",sn={mode:qs,[Ys]:1},nn={load:0,save:0,[Zs]:c+"_values"},on=e=>pe(e)?e:void 0,rn=e=>he(e)||pe(e),ln=(e,t,a,s,n)=>{const o=Et();return St(e,(e,r)=>{const i=me(Ct(wt(t,Se(e)?{[a]:e}:e)),0,pt(t));we(i[0])||s(r,i[0])||(n(r,i[0]),At(o,r,i))}),o},cn=e=>{const t=(e=>wt(sn,Se(e)?{[zs]:e}:e??{}))(e),a=t[Ys];if(t.mode==qs){const e=t[zs]??c;return[1,a,[e,t[Bs]??vs,t[Qs]??Gs],Jt(e)]}const{tables:{load:s={},save:n={}}={},values:o={}}=t,r=wt(nn,o),{load:i,save:l}=r,d=[rn(i),rn(l),r[Zs],on(i),on(l)],u=d[2],g=Jt(u),w=Jt(u),h=ln(s,{[Ks]:null,[Xs]:vs,[an]:v},Ks,e=>Ze(w,e),e=>Ut(g,e)),y=ln(n,{[Zs]:null,[Xs]:vs,[en]:0,[tn]:0,[an]:null},Zs,(e,t)=>Ze(w,t),(e,t)=>Ut(g,t));return Mt(y,(e,t)=>t[4]??=Nt(h,t[0])?.[2]??v),[0,a,[h,y,d],g]},dn=(e,t,a,s,n,o=un,r,i)=>{const l=Et();return[async()=>{at(l),xe(await a(e,t),({tn:e,cn:t})=>Ut(Pt(l,e,Jt),t))},async(t,a,s,n)=>{const o=ge(n)?void 0:Jt(n);return((e,t)=>Ze(Nt(l,e),t))(t,a)?gt(Je(xe(await e(Ds+Ws(t)+Us(t,s)),e=>{const t=e[a],s=i?St(ft(e,a),i):ft(e,a);return[t,ge(o)?s:gt(Je(vt(s,(e,t)=>[t,e]),([e])=>(e=>ge(o)||Ze(o,e))(e)))]}),e=>!ge(e[0])&&!mt(e[1]))):{}},async(t,a,s,i,c,d=!1,g=v,w)=>{const h=ge(w)?void 0:Jt(w),y=e=>ge(h)||Ze(h,e),f=Jt();St(s??{},e=>xe(Je(dt(e??{}),y),e=>Ut(f,e)));const b=tt(f);if(ge(h)&&!d&&c&&g==v&&He(b)&&Ze(l,t))return await e("DROP "+ps+Ws(t)),void At(l,t);const S=Nt(l,t),C=Jt(Je(tt(S),e=>e==a||y(e)));if(He(b)||(Ze(l,t)?await Ee(xe([a,...b],async(s,o)=>{nt(C,s)||(await e(Is+Ws(t)+"ADD"+Ws(s)+n),0==o&&await e("CREATE UNIQUE INDEX pk ON "+Ws(t)+`(${Ws(a)})`),Ut(S,s))})):(await e(ks+Ws(t)+`(${Ws(a)}${n} PRIMARY KEY${$e(xe(b,e=>u+Ws(e)+n))});`),At(l,t,Jt([a,...b])))),await Ee([...!d&&i?xe(tt(C),async s=>{s!=a&&(await e(Is+Ws(t)+"DROP"+Ws(s)),nt(S,s))}):[]]),d)ge(s)?ge(h)&&await e(Es+Ws(t)+Us(t,g)):await Ee(vt(s,async(s,n)=>{if(ge(s))await e(Es+Ws(t)+Us(t,g)+`AND(${Ws(a)}=$1)`,[n]);else if(!He(b)){const i=Je(dt(s),y);He(i)||await o(e,t,a,i,{[n]:xe(i,e=>r?r(s[e]):s[e])},S)}}));else if(He(b))ge(h)&&Ze(l,t)&&await e(Es+Ws(t)+Us(t,g));else{const n=Je(tt(Nt(l,t)),e=>e!=a&&y(e)),i={},c=[];St(s??{},(e,t)=>{i[t]=xe(n,t=>r?r(e?.[t]):e?.[t]),je(c,t)}),await o(e,t,a,n,i,S),await e(Es+Ws(t)+Us(t,g)+`AND${Ws(a)}NOT IN(${Js(c)})`,c)}},async t=>{let a;return await e("BEGIN"),await Me(async()=>a=await t(),s),await e("END"),a}]},un=async(e,t,a,s,n)=>{const o=[1];await e(ms+" INTO"+Ws(t)+"("+Fs(a,...s)+")VALUES"+$e(vt(n,e=>"($"+o[0]+++","+Js(e,o)+")"),u)+"ON CONFLICT("+Ws(a)+`)DO ${Ts} SET`+$e(xe(s,e=>Ws(e)+"=excluded."+Ws(e)),u),vt(n,(e,t)=>[t,...xe(e,e=>e??null)]).flat())},gn=(e,t,a,s,n,o,r,[i,l,c],d,u,g,w,h,y)=>{const[f,b,v,S]=dn(t,d,u,n,h,y),C=fs(e,()=>S(async()=>(await f(),ia((await b(i,l))[bs]?.[c]??"null"))),e=>S(async()=>{await f(),await v(i,l,{[bs]:{[c]:ra(e()??null)}},!0,!0)}),a,s,n,r,{[w]:()=>g,destroy:async()=>(await C.stopAutoPersisting(),o(),C)},0,g);return C},wn=(e,t,a,s,n,o,r,[i,l,[c,d,u,g,w]],h,y,f,b,v,S,C,p)=>{const[m,R,T,I]=dn(t,h,y,n,v,S,C,p),L=(e,t)=>Ee(Ot(l,async([a,s,n,o,r],i)=>{t&&!yt(e,i)||await T(a,s,e[i],n,o,t,r)})),E=(e,t,a)=>gt(1==a?Je(vt(e,(e,t)=>[t,e]),([e])=>Oe(t,e)):Je(xe(t,t=>[t,e[t]]),([,e])=>!ge(e))),D=async(e,t)=>d?await T(u,vs,{[bs]:ge(w)?e:E(e,w,t)},!0,!0,t,void 0,w):null,N=fs(e,()=>I(async()=>{await m();const e=await(async()=>gt(Je(await Ee(Ot(i,async([e,t,a],s)=>[e,await R(s,t,a)])),e=>!mt(e[1]))))(),t=await(async()=>c?(await R(u,vs,void 0,g))[bs]:{})();return mt(e)&&ge(t)?void 0:[e,t]}),(e,t)=>I(async()=>{if(await m(),ge(t)){const[t,a]=e();await L(t),await D(a)}else await L(t[0],!0),await D(t[1],!0)}),a,s,n,r,{[b]:()=>f,destroy:async()=>(await N.stopAutoPersisting(),o(),N)},0,f);return N},hn=/^([cd]:)(.+)/,yn=(e,t,a,s,n,o,r,i,l,u,g="getDb")=>{const w=xs(a,o),[h,,y,f]=cn(t),b=d+da(ra(y)),S=c+"_"+b,C=async(e,t,a="",s="")=>{const n=Hs(c,e,b);return await w(Ps+_s+Vs+n+`()RETURNS ${a}trigger AS $$ ${s}BEGIN ${t}END;$$ LANGUAGE plpgsql;`),n},p=async(e,t,a,s)=>(await w(Ps+e+"TRIGGER"+t+a+"EXECUTE "+Vs+s+"()"),t),m=e=>`PERFORM pg_notify('${S}',${e});`,R=(e,t)=>h?v:2===t?R(e,0)+" OR "+R(e,1):Q(Nt(y[0],e)?.[2]??v,$s,0==t?"NEW":"OLD"),T=(e,t)=>Ee(xe([ms,Rs,Ts],(a,s)=>p(_s,Hs(c,"d",b,e,a),`AFTER ${a} ON${Ws(e)}FOR EACH ROW WHEN(${R(e,s)})`,t)));return(h?gn:wn)(e,w,async e=>{const t=await C("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Cs} command_tag='${ks}' LOOP ${m("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await p("EVENT ",Hs(c,"c",b),`ON ddl_command_end WHEN TAG IN('${ks}')`,t);const a=await C("d",m("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await Ee(xe(tt(f),async e=>(await w(ks+` IF NOT EXISTS${Ws(e)}("_id"text PRIMARY KEY)`),await T(e,a)))),[await s(S,t=>be(z(t,hn),async([,t,s])=>{Ze(f,s)&&("c:"==t&&await T(s,a),e())})),[t,a]]},async([e,t])=>{n(e),await w(`DROP FUNCTION IF EXISTS${$e(t,",")}CASCADE`)},r,i,l,y,tt(f),async(e,t)=>await e(Ss+` table_name tn,column_name cn FROM information_schema.columns ${Cs} table_schema='public'AND table_name IN(${Js(t)})`,t),u,g,"text",void 0,e=>sa(e),e=>na(e))},fn=(e,t,a,s,n,o,r,i,l,c,u="getDb",g)=>{let w,h,y;const f=xs(a,o),[b,v,S,C]=cn(t);return(b?gn:wn)(e,f,e=>{let t;const a=()=>t=ae(()=>Me(async()=>{const[{d:t,s:a,c:s}]=await f(Ss+` ${Ms} d,${Os} s,TOTAL_CHANGES() c FROM ${Ns}${Ms} JOIN ${Ns}${Os}`);t==w&&a==h&&s==y||(ue(w)||e(),w=t,h=a,y=s)}),v),o=()=>{w=h=y=null,se(t)},r=s(t=>{C.has(t)&&(o(),e(),a())});return a(),()=>{o(),n(r)}},e=>e(),r,i,l,S,tt(C),async(e,t)=>await e(Ss+` t.name tn,c.name cn FROM ${As}list()t,${As}info(t.name)c ${Cs} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Js(t)})ORDER BY t.name,c.name`,t),c,u,d,g,e=>he(e)?1:ye(e)?0:e,void 0)},bn=(e,t)=>[e[t].t,e[t].v],vn=(e,t,a,s)=>{const n=ge(t)?e:Tt(e,t,()=>({}));let o;return St(a,(e,t)=>{s(n,t,e)&&(o=1)}),St(n,(e,t)=>{yt(a,t)||(ft(n,t),o=1)}),!ge(t)&&mt(n)&&ft(e,t),o},Sn=(e,t,a=c,s)=>(t.change(e=>Tt(e,a,gt)),fs(e,async()=>{const e=t.doc();return 2==pt(e?.[a])?bn(e,a):void 0},async(e,s)=>t.change(t=>((e,t,a,s)=>{((e,t)=>{mt(e[t])&&(e[t]={t:{},v:{}})})(e,t);const[n,o]=bn(e,t),r=()=>{i=1};let i=1;if(be(s,([e,t])=>{i=0,St(e,(e,t)=>i?0:ge(e)?ft(n,t):be(n[t],t=>St(e,(e,a)=>i?0:ge(e)?ft(t,a):be(ht(t,a),t=>St(e,(e,a)=>ge(e)?ft(t,a):t[a]=e),r)),r)),St(t,(e,t)=>i?0:ge(e)?ft(o,t):o[t]=e)}),i){const[e,t]=a();vn(n,void 0,e,(e,t,a)=>vn(n,t,a,(e,t,a)=>vn(e,t,a,(e,t,a)=>{if(ht(e,t)!==a)return e[t]=a,1}))),vn(o,void 0,t,(e,t,a)=>{ht(o,t)!==a&&(o[t]=a)})}})(t,a,e,s)),e=>{const s=({doc:t})=>e(bn(t,a));return t.on("change",s),s},e=>{t.removeListener("change",e)},s,1,{getDocHandle:()=>t})),Cn="storage",pn=(e,t,a,s)=>fs(e,async()=>ia(a.getItem(t)),async e=>a.setItem(t,ra(e())),e=>{const s=s=>{s.storageArea===a&&s.key===t&&Me(()=>e(ia(s.newValue)),e)};return ee.addEventListener(Cn,s),s},e=>ee.removeEventListener(Cn,e),s,3,{getStorageName:()=>t}),mn=(e,t,a)=>pn(e,t,localStorage,a),Rn=(e,t,a)=>pn(e,t,sessionStorage,a),Tn=(e,t,a)=>fs(e,async()=>ia(await(await t.getFile()).text()),async e=>{const a=await t.createWritable();await a.write(ra(e())),await a.close()},async e=>{const a=new FileSystemObserver(()=>e());return await a.observe(t),a},e=>e?.disconnect(),a,3,{getHandle:()=>t}),In=(e,t,a,s,n)=>fn(e,a,async(e,a=[])=>await t.execO(e,a),e=>t.onUpdate((t,a,s)=>e(s)),e=>e(),s,n,Ie,1,t),Ln=()=>Wa({},d,0),En=(e,t,a=d,s)=>{const n=(e,...t)=>a+e+me(ra(t),1,-1);return fs(e,async()=>{const e=Ln(),s=Ln();return(await t.list({prefix:a})).forEach(async([t,n,o],r)=>be((e=>{if(G(e,a)){const t=me(e,Re(a),Re(a)+1);return t==J||t==U?[t,...JSON.parse("["+me(e,Re(a)+1)+"]")]:void 0}})(r),([a,...r])=>a==J?be(r[0],a=>{const s=Tt(e[0],a,Ln);be(r[1],e=>{const a=Tt(s[0],e,Ln);be(r[2],e=>a[0][e]=[t,n,o],()=>Ua(a,n,o))},()=>Ua(s,n,o))},()=>Ua(e,n,o)):a==U?be(r[0],e=>s[0][e]=[t,n,o],()=>Ua(s,n,o)):0)),mt(e[0])&&mt(s[0])?void 0:[e,s]},async(e,[[a,s,o],[r,i,l]]=e())=>{const c=Et();At(c,n(J),[0,s,o]),bt(a,([e,t,a],s)=>{At(c,n(J,s),[0,t,a]),bt(e,([e,t,a],o)=>{At(c,n(J,s,o),[0,t,a]),bt(e,(e,t)=>At(c,n(J,s,o,t),e))})}),At(c,n(U),[0,i,l]),bt(r,(e,t)=>At(c,n(U,t),e)),await t.put(_t(c))},Ie,Ie,s,2,{getStorage:()=>t})},Dn=(e,t,a,s,n)=>fn(e,a,async(e,a=[])=>await t.db.raw({sql:e,args:a}),e=>t.notifier.subscribeToDataChanges(a=>Ve(t.notifier.alias(a),({tablename:t})=>e(t))),e=>e(),s,n,Ie,1,t,"getElectricClient"),Nn=(t,a,s,n,o)=>fn(t,s,async(e,t=[])=>await a.getAllAsync(e,t),t=>e(({tableName:e})=>t(e)),e=>e.remove(),n,o,Ie,3,a),Mn=(e,r,i)=>fs(e,async()=>ia(await o(r,m)),async e=>await n(r,ra(e()),m),e=>(t(r)||a(r,d,m),s(r,()=>e())),e=>e?.close(),i,3,{getFilePath:()=>r}),On=[J,U],An={keyPath:"k"},Pn=async(e,t)=>{const a=vt(t,(t,a)=>kn(e,"put",{k:a,v:t}));xe(await kn(e,"getAllKeys"),s=>yt(t,s)?0:je(a,kn(e,"delete",s))),await Ee(a)},kn=async(e,t,a)=>Le((s,n)=>{const o=e[t](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${t} error`)}),_n=(e,t,a=1,s)=>{const n=async(e,a=[],s=0)=>Le((n,o)=>{const r=(ee?ee.indexedDB:indexedDB).open(t,s?2:void 0);r.onupgradeneeded=()=>s&&xe(On,e=>Me(()=>r.result.createObjectStore(e,An))),r.onsuccess=()=>Me(async()=>{const t=r.result.transaction(On,"readwrite"),s=await Ee(xe(On,(s,n)=>e(t.objectStore(s),a[n])));r.result.close(),n(s)},e=>{r.result.close(),o(e)}),r.onerror=()=>o("indexedDB.open error")});return fs(e,async()=>await n(async e=>gt(xe(await kn(e,"getAll"),({k:e,v:t})=>[e,t]))),e=>n((e,t)=>Pn(e,t),e(),1),e=>ae(e,a),e=>se(e),s,1,{getDbName:()=>t})},Vn=(e,t,a,s,n)=>fn(e,a,async(e,a=[])=>(await t.execute({sql:e,args:a})).rows,()=>Ie,e=>e(),s,n,Ie,1,t,"getClient"),$n="s",xn="/store",Wn=(e,t,a)=>e+t+(Se(a)?a:ra(a)),Hn=(e,t,a)=>{const s=Re(e);return G(t,e)?[t[s],(a?ia:te)(me(t,s+1))]:void 0},Fn=(e,t,a,s)=>{const{host:n,room:o}=t.partySocketOptions,{storeProtocol:r="https",storePath:i=xn,messagePrefix:l=d}={...Se(a)?{storeProtocol:a}:a},c=r+"://"+n+"/parties/"+t.name+"/"+o+i,u=async e=>await(await fetch(c,{...e?{method:"PUT",body:oa(e)}:{},mode:"cors",cache:"no-store"})).json();return fs(e,u,async(e,a)=>{a?t.send(Wn(l,$n,a)):await u(e())},e=>{const a=t=>be(Hn(l,t.data,1),([t,a])=>{t==$n&&e(void 0,a)});return t.addEventListener(H,a),a},e=>{t.removeEventListener(H,e)},s,1,{getConnection:()=>t})},Jn="hasStore",Un=gt(xe(["Origin","Methods","Headers"],e=>["Access-Control-Allow-"+e,"*"])),jn=async(e,t=d)=>!!await e.get(t+Jn),Gn=async(e,t=d)=>{const a={},s={};return Mt(await e.list(),(e,n)=>be(Hn(t,e),([e,t])=>{if(e==J){const[e,s,o]=na("["+t+"]");Tt(Tt(a,e,gt),s,gt)[o]=n}else e==U&&(s[t]=n)})),[a,s]},qn=async(e,t,a)=>e.party.broadcast(Wn(e.config.messagePrefix??d,$n,t),a),zn=async(e,t,a,s)=>{const n=e.party.storage,o=e.config.storagePrefix??d,r={[o+Jn]:1},i=[],l=[];await Ee(vt(t[0],async(t,c)=>ge(t)?!a&&await e.canDelTable(c,s)&&qe(l,Bn(o,J,c)):await e.canSetTable(c,a,s)&&await Ee(vt(t,async(t,d)=>ge(t)?!a&&await e.canDelRow(c,d,s)&&je(l,Bn(o,J,c,d)):await e.canSetRow(c,d,a,s)&&await Ee(vt(t,async(t,l)=>{const u=[c,d,l],g=Bn(o,J,...u);ge(t)?!a&&await e.canDelCell(...u,s)&&je(i,g):await e.canSetCell(...u,t,a,s,await n.get(g))&&(r[g]=t)})))))),await Ee(vt(t[1],async(t,l)=>{const c=o+U+l;ge(t)?!a&&await e.canDelValue(l,s)&&je(i,c):await e.canSetValue(l,t,a,s,await n.get(c))&&(r[c]=t)})),He(l)||Mt(await n.list(),e=>Ae(l,t=>!G(e,t)||je(i,e)&&0)),await n.delete(i),await n.put(r)},Bn=(e,t,...a)=>Wn(e,t,me(oa(a),1,-1)),Qn=async(e,t,a=null)=>new Response(a,{status:t,headers:e.config.responseHeaders});class Yn{constructor(e){this.party=e,this.config.storePath??=xn,this.config.messagePrefix??=d,this.config.storagePrefix??=d,this.config.responseHeaders??=Un}party;config={};async onRequest(e){const{party:{storage:t},config:{storePath:a=xn,storagePrefix:s}}=this;if(new URL(e.url).pathname.endsWith(a)){const a=await jn(t,s),n=await e.text();return"PUT"==e.method?a?Qn(this,205):(await zn(this,na(n),!0,e),Qn(this,201)):Qn(this,200,a?oa(await Gn(t,s)):d)}return Qn(this,404)}async onMessage(e,t){const{config:{messagePrefix:a=d,storagePrefix:s}}=this;await be(Hn(a,e,1),async([e,a])=>{e==$n&&await jn(this.party.storage,s)&&(await zn(this,a,!1,t),qn(this,a,[t.id]))})}async canSetTable(e,t,a){return!0}async canDelTable(e,t){return!0}async canSetRow(e,t,a,s){return!0}async canDelRow(e,t,a){return!0}async canSetCell(e,t,a,s,n,o,r){return!0}async canDelCell(e,t,a,s){return!0}async canSetValue(e,t,a,s,n){return!0}async canDelValue(e,t){return!0}}const Xn=async(e,t,a,s,n)=>yn(e,a,async(e,a=[])=>(await t.query(e,a)).rows,(e,a)=>t.listen(e,a),e=>Me(e,n),s,n,Ie,3,t,"getPglite"),Kn=async(e,t,a,s,n)=>{const o=await(t.reserve?.());return yn(e,a,o?.unsafe,async(e,a)=>t.listen(e,a),e=>Me(e.unlisten,n),s,n,()=>o?.release?.(),3,t,"getSql")},Zn=(e,t,a,s,n)=>{let o;return fn(e,a,async(e,a=[])=>t.execute(e,a).then(e=>e.rows?._array??[]),e=>{const a=new AbortController,s=t.onChange({rawTableNames:!0,signal:a.signal});return(async()=>{for await(const e of s)o&&xe(e.changedTables,o)})(),o=e,a},e=>{o=void 0,e.abort()},s,n,Ie,1,t,"getPowerSync",eo)},eo=async(e,t,a,s,n)=>{const o=$e(xe(s,(e,t)=>Ws(e)+"=$"+(t+1)),u);for(const[r,i]of vt(n,(e,t)=>[t,e])){const n=xe(i,e=>e??null);if(He(await e(Ts+Ws(t)+" SET"+o+" "+Cs+Ws(a)+"=$"+(i.length+1)+" RETURNING"+Ws(a),[...n,r]))){const o=[1];await e(ms+" INTO"+Ws(t)+"("+Fs(a,...s)+")VALUES("+Js([r,...i],o)+")",[r,...n])}}},to=(e,t,a="storage",s)=>fs(e,async()=>{const e=t.getString(a),s=ge(e)?void 0:JSON.parse(e);return Promise.resolve(s)},async e=>{const s=e();ge(s)||t.set(a,JSON.stringify(s))},e=>t.addOnValueChangedListener(s=>{if(s===a){const s=t.getString(a);s&&e(JSON.parse(s))}}),e=>{e.remove()},s,3,{getStorageName:()=>a}),ao=(e,t,a,s,n)=>fn(e,a,async(e,a=[])=>(await t.executeSql(e,a))[0].rows.raw(),Ie,Ie,s,n,Ie,3,t),so=e=>e.headers.get("ETag")??d,no=e=>e==d?void 0:{"If-None-Match":e},oo=(e,t,a,s=5,n)=>{let o=d;return fs(e,async()=>{const e=await fetch(t,{headers:no(o)});return o=so(e),na(await e.text())},async e=>await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:oa(e())}),e=>ae(async()=>{const a=await fetch(t,{method:"HEAD",headers:no(o)}),s=so(a);s!=o&&(o=s,e())},s),e=>se(e),n,1,{getUrls:()=>[t,a]})},ro=(e,t,a,s,n)=>fn(e,a,async(e,a=[])=>t.query(e).all(...a),()=>Ie,e=>e(),s,n,Ie,3,t),io=(e,t,a,s,n,o)=>fn(e,s,async(e,t=[])=>a.exec(e,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(e=>({...e})),e=>t.capi.sqlite3_update_hook(a,(t,a,s,n)=>e(n),0),()=>t.capi.sqlite3_update_hook(a,Ie,0),n,o,Ie,3,a),lo="change",co=(e,t,a,s,n)=>fn(e,a,async(e,a=[])=>await Le((s,n)=>t.all(e,a,(e,t)=>e?n(e):s(t))),e=>{const a=(t,a,s)=>e(s);return t.on(lo,a),a},e=>t.off(lo,e),s,n,Ie,3,t),uo="delete",go=e=>[e.get(J),e.get(U)],wo=(e,t,a,s)=>{const n=ge(t)?e:e.get(t)??e.set(t,new r);let o;return St(a,(e,t)=>{s(n,t,e)&&(o=1)}),n.forEach((e,t)=>{yt(a,t)||(n.delete(t),o=1)}),ge(t)||n.size||e.delete(t),o},ho=(e,t,a=c,s)=>{const n=t.getMap(a);return fs(e,async()=>n.size?[n.get(J).toJSON(),n.get(U).toJSON()]:void 0,async(e,a)=>t.transact(()=>((e,t,a)=>{e.size||(e.set(J,new r),e.set(U,new r));const[s,n]=go(e),o=()=>{i=1};let i=1;if(be(a,([e,t])=>{i=0,St(e,(e,t)=>i?0:ge(e)?s.delete(t):be(s.get(t),t=>St(e,(e,a)=>i?0:ge(e)?t.delete(a):be(t.get(a),t=>St(e,(e,a)=>ge(e)?t.delete(a):t.set(a,e)),o)),o)),St(t,(e,t)=>i?0:ge(e)?n.delete(t):n.set(t,e))}),i){const[e,a]=t();wo(s,void 0,e,(e,t,a)=>wo(s,t,a,(e,t,a)=>wo(e,t,a,(e,t,a)=>{if(e.get(t)!==a)return e.set(t,a),1}))),wo(n,void 0,a,(e,t,a)=>{n.get(t)!==a&&n.set(t,a)})}})(n,e,a)),e=>{const t=t=>e(void 0,((e,t)=>{if(1==Re(t)&&He(t[0].path))return[e.get(J).toJSON(),e.get(U).toJSON(),1];const[a,s]=go(e),n={},o={};return Ve(t,({path:e,changes:{keys:t}})=>ze(e)==J?be(ze(e),s=>{const o=Tt(n,s,gt),r=a.get(s);be(ze(e),e=>{const a=Tt(o,e,gt),s=r.get(e);Mt(t,(e,{action:t})=>a[e]=t==uo?void 0:s.get(e))},()=>Mt(t,(e,{action:t})=>o[e]=t==uo?void 0:r.get(e)?.toJSON()))},()=>Mt(t,(e,{action:t})=>n[e]=t==uo?void 0:a.get(e)?.toJSON())):Mt(t,(e,{action:t})=>o[e]=t==uo?void 0:s.get(e))),[n,o,1]})(n,t));return n.observeDeep(t),t},e=>{n.unobserveDeep(e)},s,1,{getYDoc:()=>t})},yo="_",fo=qt(e=>{const t=e._[0],a=t(),s=t(),n=Et(),o=Et(),r=Jt(),i=Et(),l=Et(),c={table:0,tableCellIds:0,rowCount:0,rowIds:0,sortedRowIds:0,row:0,cellIds:0,cell:0},u=Et(),g=Et(),{_:[,w,h],delListener:y}=s,[f,b,v,S,C,p,m,L,,E,N,M]=jt(e,()=>[],Te,w,h),$=e=>Pt(o,e,t),x=(e,t,...a)=>Ve(a,a=>Ut(Pt(Pt(u,t,Et),e,Jt),a)),W=e=>{be(Nt(u,e),e=>{Mt(e,(e,t)=>st(t,t=>e.delListener(t))),at(e)}),Ve([$(e),Nt(n,e)],t=>t?.delTable(e))},H=(e,t,a,...s)=>{const n=Pt(Pt(g,t,Et),e,Jt);return Ve(s,t=>{Ut(n,t),a&&e.callListener(t)}),s},F=(e,t,a)=>be(Nt(Nt(g,e),t),s=>{t.delListener(a),nt(s,a),et(s)&&At(Nt(g,e),t)}),J=e=>be(Nt(g,e),e=>{Mt(e,(e,t)=>st(t,t=>e.delListener(t))),at(e)}),U=(e,t,a)=>x(t,e,t.addStartTransactionListener(a.startTransaction),t.addDidFinishTransactionListener(()=>a.finishTransaction())),j=(e,t)=>(mt(t)?a.delRow:a.setRow)(yo,e,{...t}),G=a=>$(a).transaction(()=>be(p(a),([s,,o])=>{const i=C(a),l=o?$(i):e,c=$(a),u=z(a);Ut(r,a),W(a),J(a);const g=[],w=[[void 0,[i,void 0,void 0,[],Et(),l]]],h=[],y=[],f=[];s({select:(e,t,a)=>{const s=he(e)?t:e,n=he(e)?a:t,o=Ce(e)?[Re(g)+d,e]:ge(n)?[e,t=>t(e)]:[n,t=>he(e)?t(!0,s,n):t(s,n)];return je(g,o),{as:e=>o[0]=e}},join:(t,a,s,n)=>{const o=he(t)?a:t,[r,i]=he(t)?ge(n)||Ce(s)?[void 0,s]:[s,n]:ge(s)||Ce(a)?[void 0,a]:[a,s],l=[o,[o,r,Ce(i)?i:e=>e(i),[],Et(),he(t)?$(o):e]];return je(w,l),{as:e=>l[0]=e}},where:(e,t,a,s)=>je(h,Ce(e)?e:he(e)?e=>e(!0,t,a)===s:ge(a)?a=>a(e)===t:s=>s(e,t)===a),group:(e,t,a,s,n)=>{const o=[e,[e,Ce(t)?[t,a,s,n]:Nt(rs,t)??[(e,t)=>t]]];return je(y,o),{as:e=>o[0]=e}},having:(e,t)=>je(f,Ce(e)?e:a=>a(e)===t),param:e=>ht(u,e)});const b=Et(g);if(et(b))return nt(r,a),B;const v=Et(w);Mt(v,(e,[,t])=>be(Nt(v,t),({3:t})=>ge(e)?0:je(t,e)));const S=Et(y),p=!et(S)||!He(f),m=p?(e=>Pt(n,e,t))(a):c;if(p){U(a,m,c);const e=Et();Mt(S,(t,[a,s])=>Ut(Pt(e,a,Jt),[t,s]));const t=Jt();Mt(b,a=>Ze(e,a)?0:Ut(t,a));const s=Et(),n=(t,s,n,o)=>be(t,([r,i,l,d])=>{Mt(s,(t,[a])=>{const s=Pt(r,t,Et),i=Nt(s,n),l=o?void 0:a;if(i!==l){const a=Jt([[i,l]]),o=Qe(s);At(s,n,l),st(Nt(e,t),([e,t])=>{const n=is(d[e],o,s,a,t);d[e]=ge(Oa(n))?void 0:n})}}),et(i)||!Ae(f,e=>e(e=>d[e]))?c.delRow(a,l):ge(l)?t[2]=c.addRow(a,d):c.setRow(a,l,d)});x(m,a,m.addRowListener(a,null,(o,r,i,l)=>{const c=[],d=[],u=Et(),g=m.hasRow(a,i);let w=!g;st(t,e=>{const[t,s,n]=l(a,i,e);je(c,s),je(d,n),w||=t}),Mt(e,e=>{const[t,,s]=l(a,i,e);(w||t)&&At(u,e,[s])}),w&&n(Ft(s,c,void 0,([,e])=>(nt(e,i),et(e))),u,i,1),g&&n(Ft(s,d,()=>{const e={};return st(t,t=>e[t]=m.getCell(a,i,t)),[Et(),Jt(),void 0,e]},([,e])=>{Ut(e,i)}),u,i)}))}U(a,l,m);const R=(e,t,s,n,o)=>{const r=e=>t.getCell(s,n,e);Ve(o,t=>{const[s,,n,o,i,l]=Nt(v,t),c=n?.(r,e),d=Nt(i,e),u=d?.[0];c!=u&&(be(d,([,e,t])=>F(a,e,t)),At(i,e,ge(c)?void 0:[c,l,...H(l,a,1,l.addRowListener(s,c,()=>R(e,l,s,c,o)))]))}),(e=>{const t=(t,a,s)=>{const n=he(t)?a:t,o=he(t)?s:a;if(ge(o))return l.getCell(i,e,t);if(n===i&&!he(t))return l.getCell(i,e,o);const r=Nt(v,n);return ge(r)?void 0:r[5].getCell(r[0],Nt(r[4],e)?.[0],o)};m.transaction(()=>Ae(h,e=>e(t))?Mt(b,(s,n)=>m._[5](a,e,s,n(t,e))):m.delRow(a,e))})(e)},{3:T}=Nt(v,void 0),I=(e,t,s)=>{l.hasRow(i,s)?R(s,l,i,s,T):(m.delRow(a,s),st(v,({4:e})=>be(Nt(e,s),([,t,n])=>{F(a,t,n),At(e,s)})))};return m.transaction(()=>{Ve(l.getRowIds(i),e=>I(0,0,e)),H(l,a,0,l.addRowListener(i,null,I))}),nt(r,a),B})),q=e=>(be(p(e),([,e])=>a.delListener(e)),a.delRow(yo,e),W(e),J(e),E(e),B),z=e=>a.getRow(yo,e),B={setQueryDefinition:(e,t,s,n,o={})=>{const[r,i,l,c]=he(t)?[s,n,1,o]:[t,s,0,n??{}];return be(p(e),([,e])=>a.delListener(e)),L(e,r),m(e,[i,a.addRowListener(yo,e,()=>G(e)),l]),j(e,c),G(e),B},delQueryDefinition:q,getParamValues:z,getParamValue:(e,t)=>a.getCell(yo,e,t),setParamValues:(e,t)=>(S(e)&&j(e,t),B),setParamValue:(e,t,s)=>(S(e)&&a.setCell(yo,e,t,s),B),getStore:f,getQueryIds:b,forEachQuery:v,hasQuery:S,getTableId:C,forEachResultTable:e=>v(t=>$(t).hasTable(t)?e(t,e=>B.forEachResultRow(t,e)):0),addQueryIdsListener:e=>N(()=>e(B)),addParamValuesListener:(e,t)=>"p"+a.addRowListener(yo,e,(e,a,s)=>t(B,s,z(s))),addParamValueListener:(e,t,s)=>"p"+a.addCellListener(yo,e,t,(e,t,a,n,o)=>s(B,a,n,o)),delListener:e=>{const t=Nt(i,e);if("p"==e[0])a.delListener(me(e,1));else if(ge(t))y(e);else{const[a,s,n]=t;Mt(s,(e,[t,a])=>t.delListener(a)),be(n,y),At(i,e),y(e),c[a]--}return B},destroy:()=>{Ve(b(),q),M()},getListenerStats:()=>({...c,paramValues:a.getListenerStats().row-Re(b()),paramValue:a.getListenerStats().cell})};return St({[D]:[2,1],[D+V]:[1,1],[A]:[1,1],[P]:[1,1],[k]:[1,5],[O]:[3,2],[V]:[1,2],[_]:[3,3]},([e,t],a)=>{Ve(me(["get","has","forEach"],0,e),e=>B[e+T+a]=(...t)=>$(t[0])[e+a](...t)),B[I+T+a+R]=(...e)=>((s,n)=>{const o=w(Te,l),r=Et(),d=()=>{const s=null==n?b():[n];Ve(s,s=>{return Ze(r,s)?0:At(r,s,[$(s),(n=$(s),n[I+a+R](...((e,t)=>5==t?[e[0],e[1]??void 0,e[2],e[3],e[4]]:me(e,0,t))(e,t),(a,...s)=>e[t](B,...s),!0))]);var n}),Mt(r,(e,[t,a])=>null==n&&S(e)||e==n?0:(t.delListener(a),void At(r,e)))};return d(),At(i,o,[s,r,null==n?N(d):void 0]),c[s]++,o})((e=>e[0].toLowerCase()+me(e,1))(a),e[0])}),ut(B)}),bo=qt(e=>{const t=Et(),a=Et(),s=Et(),n=Et(),[o,r,i]=Qt(()=>m),[l,c,u,g,w,h,,,y,f,b,v]=jt(e,()=>[Et(),Et(),Et(),Et()],e=>ge(e)?void 0:e+d,o,r),S=(e,t,a)=>be(h(e),([s,,n])=>{if(!Ze(n,t)){const o=Jt();if(w(e)!=p(e))Ut(o,t);else{let e=t;for(;!ge(e)&&!Ze(o,e);)Ut(o,e),e=Nt(s,e)}if(a)return o;At(n,t,o)}return Nt(n,t)}),C=(e,t)=>be(h(e),([,,e])=>At(e,t)),p=e=>Nt(t,e),m={setRelationshipDefinition:(e,o,i,l)=>(At(t,e,i),y(e,o,(t,o)=>{const i=Jt(),l=Jt(),c=Jt(),[d,u]=h(e);st(o,([t,a],s)=>{ge(t)||(Ut(l,t),be(Nt(u,t),e=>{nt(e,s),et(e)&&At(u,t)})),ge(a)||(Ut(l,a),Ze(u,a)||At(u,a,Jt()),Ut(Nt(u,a),s)),Ut(i,s),At(d,s,a),Mt(Nt(n,e),t=>{Ze(S(e,t),s)&&Ut(c,t)})}),t(),st(i,t=>r(a,[e,t])),st(l,t=>r(s,[e,t])),st(c,t=>{C(e,t),r(n,[e,t])})},Gt(l)),m),delRelationshipDefinition:e=>(At(t,e),f(e),m),getStore:l,getRelationshipIds:c,forEachRelationship:t=>u(a=>t(a,t=>e.forEachRow(w(a),t))),hasRelationship:g,getLocalTableId:w,getRemoteTableId:p,getRemoteRowId:(e,t)=>Nt(h(e)?.[0],t),getLocalRowIds:(e,t)=>tt(Nt(h(e)?.[1],t)),getLinkedRowIds:(e,t)=>ge(h(e))?[t]:tt(S(e,t,!0)),addRelationshipIdsListener:b,addRemoteRowIdListener:(e,t,s)=>o(s,a,[e,t]),addLocalRowIdsListener:(e,t,a)=>o(a,s,[e,t]),addLinkedRowIdsListener:(e,t,a)=>(S(e,t),o(a,n,[e,t])),delListener:e=>(C(...i(e)??[]),m),destroy:v,getListenerStats:()=>({remoteRowId:Xe(a),localRowIds:Xe(s),linkedRowIds:Xe(n)})};return ut(m)}),vo={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},So=(e,t,a,s,n,o,r,i,l={})=>{let c,u=0,g=0,w=0;const h=Et(),y=()=>aa(11),f=(e,a,s,n)=>{g++,o?.(e,a,s,n),t(e,a,s,n)},b=async(e,t,a,s)=>Le((o,r)=>{const i=s+"."+aa(4),l=ne(()=>{nt(h,i),r(`No response from ${e??"anyone"} to ${i}, `+t)},n);At(h,i,[e,(e,t)=>{clearTimeout(l),nt(h,i),o([e,t,s])}]),f(e,i,t,a)}),v=(e,[t,a])=>{bt(t,([t,a],s)=>{const n=Tt(e[0],s,ja);bt(t,([e,t],a)=>{const s=Tt(n[0],a,ja);bt(e,([e,t],a)=>s[0][a]=xa(e,t)),s[1]=Ja(s[1],t)}),n[1]=Ja(n[1],a)}),e[1]=Ja(e[1],a)},S=(t=null,a,s=y())=>Me(async()=>{ge(a)&&([a,t,s]=await b(null,1,d,s));const[n,o]=a,[r,i]=e.getMergeableContentHashes();let l=ja();if(r!=n){const[a,n]=(await b(t,4,e.getMergeableTableHashes(),s))[0];if(l=a,!mt(n)){const[a,o]=(await b(t,5,e.getMergeableRowHashes(n),s))[0];if(v(l,a),!mt(o)){const a=(await b(t,6,e.getMergeableCellHashes(o),s))[0];v(l,a)}}}return[l,i==o?ja():(await b(t,7,e.getMergeableValueHashes(),s))[0],1]},i),C=fs(e,async()=>{const e=await S();return!e||mt(e[0][0])&&mt(e[1][0])?void 0:e},async(t,a)=>a?f(null,y(),3,a):f(null,y(),2,e.getMergeableContentHashes()),e=>c=e,()=>c=void 0,i,2,{startSync:async e=>(u=1,await C.startAutoPersisting(e)),stopSync:async()=>(u=0,await C.stopAutoPersisting(),C),destroy:async()=>(await C.stopSync(),s(),C),getSynchronizerStats:()=>({sends:g,receives:w}),...l},1);return a((t,a,s,n)=>{const o=u||C.isAutoLoading();w++,r?.(t,a,s,n),0==s?be(Nt(h,a),([e,a])=>we(e)||e==t?a(n,t):0):2==s&&o?S(t,n,a??void 0).then(e=>{c?.(void 0,e)}).catch(i):3==s&&o?c?.(void 0,n):be(1==s&&(u||C.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{f(t,a,0,e)})}),C},Co=(e,t,a,s,n)=>{const o=aa(),r=new BroadcastChannel(t);return So(e,(e,t,a,s)=>r.postMessage([o,e,t,a,s]),e=>{r.onmessage=({data:[t,a,s,n,r]})=>we(a)||a==o?e(t,s,n,r):0},()=>{r.close()},.01,a,s,n,{getChannelName:()=>t})},po=Et(),mo=(e,t,a,s)=>{const n=aa();return So(e,(e,t,a,s)=>ne(()=>we(e)?Mt(po,(e,o)=>e!=n?o(n,t,a,s):0):Nt(po,e)?.(n,t,a,s)),e=>{At(po,n,e)},()=>{nt(po,n)},.01,t,a,s)},Ro="\n",To=/^(.+)\n(\d+)\n(\d+)\n([\s\S]*)$/,Io=(e,t)=>{const a=e.indexOf(Ro);-1!==a&&t(me(e,0,a),me(e,a+1))},Lo=(e,t,a)=>a(e,...ia(t)),Eo=(e,t=1)=>{const a=Et(),s=e=>ne(()=>nt(a,e),t);return t=>Io(t,(t,n)=>{const[,o,r,i,l]=z(n,To)??[];if(o){const n=parseInt(r),c=parseInt(i);if(c>0&&n>=0&&n<c){const r=t+Ro+o,i=Pt(a,r,()=>[[],c,c,s(r)]),[d]=i;c==i[2]&&ge(d[n])&&(oe(i[3]),i[3]=s(r),d[n]=l,i[1]--),0==i[1]&&(((e,t)=>{oe(t[3]),nt(a,e)})(r,i),Lo(t,$e(d),e))}}else Lo(t,n,e)})},Do=(e,t)=>e+Ro+t,No=(e,t,a,s,n)=>{const o=e??d,r=ra([t,a,s]),i=le(n??0);if(ge(n)||i<1||Re(r)<=i)return[Do(o,r)];const l=z(r,RegExp(`.{1,${i}}`,"g")),c=Re(l??[]),u=aa();return xe(l??[],(e,t)=>Do(o,$e([u,t,c,e],Ro)))},Mo=async(e,t,a=1,s,n,o,r)=>{const i=(e,a)=>(t.addEventListener(e,a),()=>t.removeEventListener(e,a)),l=So(e,(e,...a)=>Ve(No(e,...a,r),e=>t.send(e)),e=>{const t=Eo(e,a);i(H,({data:e})=>t(e.toString(m)))},()=>{t.close()},a,s,n,o,{getWebSocket:()=>t});return Le(e=>{if(t.readyState!=t.OPEN){const t=t=>{t&&o?.(t),a(),s(),e(l)},a=i("open",()=>t()),s=i(F,t)}else e(l)})},Oo=/\/([^?]*)/,Ao="S",Po=e=>z(new URL(e.url).pathname,Oo)?.[1]??d,ko=e=>"websocket"==e.headers.get("upgrade")?.toLowerCase()?e.headers.get("sec-websocket-key"):null,_o=(e,t=null,a=null)=>new Response(a,{status:e,webSocket:t}),Vo=()=>_o(426,null,"Upgrade required");class $o extends i{#e;constructor(e,t){super(e,t),this.ctx.blockConcurrencyWhile(async()=>await be(await this.createPersister(),async e=>{const t=this.getRequestTimeoutSeconds(),a=So(e.getStore(),(e,t,a,s)=>Ve(No(e,t,a,s,this.getFragmentSize()),e=>this.#t(Ao,e)),e=>this.#e=Eo(e,t),Ie,t);await e.load(),await e.startAutoSave(),ne(a.startSync)}))}fetch(e){const t=Po(e);return be(ko(e),e=>{const[a,s]=Ct(new WebSocketPair);return He(this.#a())&&this.onPathId(t,1),this.ctx.acceptWebSocket(s,[e,t]),this.onClientId(t,e,1),s.send(Do(Ao,ra([null,1,d]))),_o(101,a)},Vo)}webSocketMessage(e,t){be(this.ctx.getTags(e)[0],a=>this.#t(a,t.toString(),e))}webSocketClose(e){const[t,a]=this.ctx.getTags(e);this.onClientId(a,t,-1),1==Re(this.#a())&&this.onPathId(a,-1)}#t(e,t,a){Io(t.toString(),(t,s)=>{const n=Do(e,s);this.onMessage(e,t,s),t==d?(e!=Ao&&this.#e?.(n),Ve(this.#a(),e=>{e!=a&&e.send(n)})):t==Ao?this.#e?.(n):t!=e&&this.#a(t)[0]?.send(n)})}#a(e){return this.ctx.getWebSockets(e)}createPersister(){}getPathId(){return this.ctx.getTags(this.#a()[0])?.[1]}getClientIds(){return xe(this.#a(),e=>this.ctx.getTags(e)[0])}getFragmentSize(){}getRequestTimeoutSeconds(){return 1}onPathId(e,t){}onClientId(e,t,a){}onMessage(e,t,a){}}const xo=e=>(t,a)=>ko(t)?a[e].get(a[e].idFromName(Po(t))).fetch(t):Vo(),Wo=/\/([^?]*)/,Ho=e=>{const t=Et();return e.on("connection",(e,a)=>be(z(a.url,Wo),([,s])=>be(a.headers["sec-websocket-key"],async a=>{const n=Pt(t,s,Et);At(n,a,e),e.on(H,e=>Io(e.toString(m),(e,t)=>{const s=Do(a,t);e===d?Mt(n,(e,t)=>e!==a?t.send(s):0):Nt(n,e)?.send(s)})),e.on("close",()=>{nt(n,a),et(n)&&nt(t,s)})}))),ut({getWebSocketServer:()=>e,destroy:async()=>{at(t),e.close()}})},Fo=/\/([^?]*)/,Jo=(e,t,a,s=1,n)=>{const o=Et(),r=Et(),i=Et(),l=Et(),[c,u,g]=Qt(()=>y),w=async e=>{await(e[1]?.destroy()),await(e[2]?.destroy())},h=(e,t,a)=>s=>Io(s,(s,n)=>{const o=Do(e,n);s===d?("S"!==e&&a[3]?.(o),Mt(t,(t,a)=>t!==e?a.send(o):0)):"S"===s?a[3]?.(o):Nt(t,s)?.send(o)});e.on("connection",(e,c)=>be(z(c.url,Fo),([,d])=>be(c.headers["sec-websocket-key"],async c=>{const g=Pt(i,d,Et),y=Pt(l,d,()=>[0]),f=h(c,g,y);et(g)&&(u(o,void 0,d,1),await(async(e,o,r)=>be(await(t?.(o)),t=>{e[0]=1,e[1]=pe(t)?t[0]:t;const o=h("S",r,e);e[2]=So(e[1].getStore(),(e,t,a,s)=>Ve(No(e,t,a,s,n),o),t=>{e[3]=Eo(t,s)},Ie,s,void 0,void 0,a),e[4]=[],e[5]=pe(t)?t[1]:e=>0}))(y,d,g)),At(g,c,e),u(r,[d],c,1),e.on(H,e=>{const t=e.toString(m);0==y[0]?f(t):je(y[4],t)}),1==y[0]&&(await(async e=>{e[0]=2,await e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})(y),Ve(y[4],f),y[4]=[]),e.on("close",async()=>{nt(g,c),u(r,[d],c,-1),et(g)&&(await w(y),nt(l,d),nt(i,d),u(o,void 0,d,-1))}),a&&e.on(F,a)}))),a&&e.on(F,a);const y={getWebSocketServer:()=>e,getPathIds:()=>Dt(i),getClientIds:e=>Dt(Nt(i,e)),addPathIdsListener:e=>c(e,o),addClientIdsListener:(e,t)=>c(t,r,[e]),delListener:e=>(g(e),y),getStats:()=>({paths:Qe(i),clients:Ye(i)}),destroy:async()=>{at(i),await Ee(Ot(l,w)),e.close()}};return ut(y)};export{vo as Message,ws as Persists,gs as Status,Yn as TinyBasePartyKitServer,$o as WsServerDurableObject,ua as addOrRemoveHash,qn as broadcastChanges,Sn as createAutomergePersister,Co as createBroadcastChannelSynchronizer,Yt as createCheckpoints,In as createCrSqliteWasmPersister,fs as createCustomPersister,yn as createCustomPostgreSqlPersister,fn as createCustomSqlitePersister,So as createCustomSynchronizer,En as createDurableObjectStoragePersister,Dn as createElectricSqlPersister,Nn as createExpoSqlitePersister,Mn as createFilePersister,_n as createIndexedDbPersister,Ma as createIndexes,Vn as createLibSqlPersister,mn as createLocalPersister,mo as createLocalSynchronizer,os as createMergeableStore,ls as createMetrics,us as createMiddleware,Tn as createOpfsPersister,Fn as createPartyKitPersister,Xn as createPglitePersister,Kn as createPostgresPersister,Zn as createPowerSyncPersister,fo as createQueries,to as createReactNativeMmkvPersister,ao as createReactNativeSqlitePersister,bo as createRelationships,oo as createRemotePersister,Rn as createSessionPersister,co as createSqlite3Persister,ro as createSqliteBunPersister,io as createSqliteWasmPersister,as as createStore,Jo as createWsServer,Ho as createWsServerSimple,Mo as createWsSynchronizer,ho as createYjsPersister,Na as defaultSorter,ya as getCellHash,fa as getCellInRowHash,da as getHash,Da as getHlcFunctions,ba as getRowHash,va as getRowInTableHash,Sa as getTableHash,Ca as getTableInTablesHash,pa as getTablesHash,aa as getUniqueId,ha as getValueHash,wa as getValueInValuesHash,ga as getValuesHash,xo as getWsServerDurableObjectFetch,jn as hasStoreInStorage,Gn as loadStoreFromStorage,Pn as objectStoreMatch};
Binary file
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=globalThis,w=clearInterval,y=a=>null==a,d=a=>void 0===a,u=a=>null===a,E=c(y),N=c(d),$=t=>a(t)==s,A=a=>Array.isArray(a),O=(a,t,e)=>a.slice(t,e),m=a=>a.length,_=async a=>o.all(a),g=a=>{throw Error(a)},R=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},T=(a,t)=>a.forEach(t),p=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),I=a=>0==m(a),S=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),b=a=>a.shift(),D=(a,t)=>a?.has(t)??!1,C=a=>d(a)||0==(a=>a?.size??0)(a),f=a=>[...a?.values()??[]],h=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),F=Object,M=a=>F.getPrototypeOf(a),U=F.entries,G=a=>!y(a)&&E(M(a),a=>a==F.prototype||y(M(a)),()=>!0),j=F.keys,x=F.freeze,B=(a=[])=>F.fromEntries(a),H=(...a)=>F.assign({},...a),W=(a,t)=>(delete a[t],a),Y=(a,t)=>v(U(a),([a,e])=>t(e,a)),X=(a,t)=>B(Y(a,(a,e)=>[e,t(a,e)])),J=a=>F.values(a),k=a=>m(j(a)),z=a=>G(a)&&0==k(a),K=Map,V=a=>new K(a),q=(a,t)=>a?.get(t),Q=(a,t)=>v([...a?.entries()??[]],([a,e])=>t(e,a)),Z=(a,t,e)=>d(e)?(P(a,t),a):a?.set(t,e),aa=(a,t,e,n)=>(D(a,t)?n?.(q(a,t)):Z(a,t,e()),q(a,t)),ta=(a,t,e,n,s=0)=>N((e?aa:q)(a,t[s],s>m(t)-2?e:V),i=>{if(s>m(t)-2)return n?.(i)&&Z(a,t[s]),i;const r=ta(i,t,e,n,s+1);return C(i)&&Z(a,t[s]),r}),ea=/^\d+$/,na=a=>new Set(A(a)||d(a)?a:[a]),sa=(a,t)=>a?.add(t),ia={Idle:0,Loading:1,Saving:2},ra={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},oa=V(),ca=V(),la=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let y,E,$,O=0,_=0,p=0;aa(oa,w,()=>0),aa(ca,w,()=>[]);const v=V(),[I,S,D,f,F]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!z(a)||!z(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!z(a)||!z(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{ea.test(t)&&m(a)<1e3&&L(a,t)}]})(),s=V();return[(n,i,r,o=[],c=()=>[])=>{a??=la;const l=t(1);return Z(s,l,[n,i,r,o,c]),sa(ta(i,r??[e],na),l),l},(t,n,...i)=>T(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?L(n,a):u(t[e])?h(a,a=>s(a,e+1)):T([t[e],null],t=>s(q(a,t),e+1));return s(a,0),n})(t,n),t=>h(t,t=>q(s,t)[0](a,...n??[],...i))),a=>N(q(s,a),([,t,i])=>(ta(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Z(s,a),n(a),i)),t=>N(q(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=m(r);o==m(e)?t(a,...r,...s(r)):u(e[o])?T(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),j=a=>{a!=O&&(O=a,U(v,void 0,O))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},H=async()=>{Q()&&a.__?.[0]?.()&&await J()},W=async a=>(2!=O&&(j(1),_++,await ra(async()=>{await R(async()=>{const e=await t();A(e)?B(e):a?F(a):g("Content is not an array: "+e)},()=>{a&&F(a)}),j(0),await H()})),la),Y=async a=>(X(),await W(a),await R(async()=>E=await s(async(a,t)=>{t||a?2!=O&&(j(1),_++,B(t??a),j(0),await H()):await W()}),r),la),X=async()=>(E&&(await R(()=>i(E),r),E=void 0),la),J=async a=>(1!=O&&(j(2),p++,await ra(async()=>{await R(()=>n(S,a),r),j(0)})),la),k=async()=>(K(),await J(),$=a.addDidFinishTransactionListener(()=>{const a=D();f(a)&&J(a)}),la),K=async()=>($&&(a.delListener($),$=void 0),la),Q=()=>!d($),ia=async(a=!1)=>{const[t,e]=a?[K,X]:[X,K];return await t(),await e(),la},ra=async(...a)=>(L(q(ca,w),...a),await(async()=>{if(!q(oa,w)){for(Z(oa,w,1);!d(y=b(q(ca,w)));)await R(y,r);Z(oa,w,0)}})(),la),la={load:W,startAutoLoad:Y,stopAutoLoad:X,isAutoLoading:()=>!d(E),save:J,startAutoSave:k,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[k,Y]:[Y,k];return await e(a),await n(a),la},stopAutoPersisting:ia,getStatus:()=>O,addStatusListener:a=>M(a,v),delListener:t=>(G(t),a),schedule:ra,getStore:()=>a,destroy:()=>(q(ca,w).splice(0,void 0),ia()),getStats:()=>({loads:_,saves:p}),...c};return x(la)},wa=JSON.stringify,ya=JSON.parse,da=a=>wa(a,(a,t)=>d(t)?"":t),ua=a=>""===a?void 0:A(a)?v(a,ua):G(a)?X(a,ua):a,Ea=new l.TextEncoder,Na="_",$a="_id",Aa="SELECT",Oa="WHERE",ma="TABLE",_a="INSERT",ga="DELETE",Ra="UPDATE",Ta="ALTER "+ma,pa="FROM",va=ga+" "+pa,Ia=Aa+"*"+pa,Sa="pragma_",La="data_version",ba="schema_version",Da="pragma_table_",Ca="CREATE ",fa=Ca+ma,ha="OR REPLACE ",Pa="FUNCTION",Fa="$tableName",Ma=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,Ua=a=>p(v(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ga=(...a)=>Ua(p(a,"_")),ja=(a,t=[1])=>p(v(a,()=>"$"+t[0]++),n),xa=(a,t=i)=>Oa+`(${r(t,Fa,Ua(a))})`,Ba="ColumnName",Ha="store",Wa="json",Ya=Ha+"TableName",Xa=Ha+"Id"+Ba,Ja=Ha+Ba,ka="autoLoadIntervalSeconds",za="rowId"+Ba,Ka="tableId",Va="tableName",qa="deleteEmptyColumns",Qa="deleteEmptyTable",Za="condition",at={mode:Wa,[ka]:1},tt={load:0,save:0,[Va]:t+"_values"},et=(a,t,e,n,s)=>{const i=V();return X(a,(a,r)=>{const o=O(J(H(t,$(a)?{[e]:a}:a)),0,k(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Z(i,r,o))}),i},nt=a=>{const e=(a=>H(at,$(a)?{[Ya]:a}:a??{}))(a),n=e[ka];if(e.mode==Wa){const a=e[Ya]??t;return[1,n,[a,e[Xa]??$a,e[Ja]??Ha],na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=O(J(H(tt,o)),0,k(tt)),l=c[2],w=na(l),y=na(l),d=et(s,{[Ka]:null,[za]:$a,[Za]:i},Ka,a=>D(y,a),a=>sa(w,a)),u=et(r,{[Va]:null,[za]:$a,[qa]:0,[Qa]:0,[Za]:null},Va,(a,t)=>D(y,t),(a,t)=>sa(w,t));var E;return E=(a,t)=>t[4]??=q(d,t[0])?.[2]??i,h(u,(a,t)=>E(0,a)),[0,n,[d,u,c],w]},st=(a,t,e,s,r,o=it,c,l)=>{const w=V();return[async()=>{w.clear(),v(await e(a,t),({tn:a,cn:t})=>sa(aa(w,a,na),t))},async(t,e,n)=>((a,t)=>D(q(w,a),t))(t,e)?B(S(v(await a(Ia+Ua(t)+xa(t,n)),a=>[a[e],l?X(W(a,e),l):W(a,e)]),a=>!d(a[0])&&!z(a[1]))):{},async(t,e,s,l,y,u=!1,E=i)=>{const N=na();X(s??{},a=>v(j(a??{}),a=>sa(N,a)));const $=f(N);if(!u&&y&&E==i&&I($)&&D(w,t))return await a("DROP "+ma+Ua(t)),void Z(w,t);const A=q(w,t),O=na(f(A));if(I($)||(D(w,t)?await _(v([e,...$],async(n,s)=>{P(O,n)||(await a(Ta+Ua(t)+"ADD"+Ua(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ua(t)+`(${Ua(e)})`),sa(A,n))})):(await a(fa+Ua(t)+`(${Ua(e)}${r} PRIMARY KEY${p(v($,a=>n+Ua(a)+r))});`),Z(w,t,na([e,...$])))),await _([...!u&&l?v(f(O),async n=>{n!=e&&(await a(Ta+Ua(t)+"DROP"+Ua(n)),P(A,n))}):[]]),u)d(s)?await a(va+Ua(t)+xa(t,E)):await _(Y(s,async(n,s)=>{d(n)?await a(va+Ua(t)+xa(t,E)+`AND(${Ua(e)}=$1)`,[s]):I($)||await o(a,t,e,j(n),{[s]:c?v(J(n),c):J(n)},A)}));else if(I($))D(w,t)&&await a(va+Ua(t)+xa(t,E));else{const n=S(f(q(w,t)),a=>a!=e),i={},r=[];X(s??{},(a,t)=>{i[t]=v(n,t=>c?c(a?.[t]):a?.[t]),L(r,t)}),await o(a,t,e,n,i),await a(va+Ua(t)+xa(t,E)+`AND${Ua(e)}NOT IN(${ja(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await R(async()=>e=await t(),s),await a("END"),e}]},it=async(a,t,e,s,i)=>{const r=[1];await a(_a+" INTO"+Ua(t)+"("+((...a)=>p(v(a,Ua),n))(e,...s)+")VALUES"+p(Y(i,a=>"($"+r[0]+++","+ja(a,r)+")"),n)+"ON CONFLICT("+Ua(e)+`)DO ${Ra} SET`+p(v(s,a=>Ua(a)+"=excluded."+Ua(a)),n),Y(i,(a,t)=>[t,...v(a,a=>a??null)]).flat())},rt=(a,t,e,n,s,i,r,[o,c,l],w,y,d,u,E,N)=>{const[$,A,O,m]=st(t,w,y,s,E,N),_=la(a,()=>m(async()=>{return await $(),a=(await A(o,c))[Na]?.[l]??"null",ua(ya(a));var a}),a=>m(async()=>{await $(),await O(o,c,{[Na]:{[l]:da(a()??null)}},!0,!0)}),e,n,s,r,{[u]:()=>d,destroy:async()=>(await _.stopAutoPersisting(),i(),_)},0,d);return _},ot=(a,t,e,n,s,i,r,[o,c,[l,w,y]],u,E,N,$,A,O,m,g)=>{const[R,T,p,v]=st(t,u,E,s,A,O,m,g),I=(a,t)=>_(Q(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await p(e,n,a[o],s,i,t,r)})),L=async(a,t)=>w?await p(y,$a,{[Na]:a},!0,!0,t):null,b=la(a,()=>v(async()=>{await R();const a=await(async()=>B(S(await _(Q(o,async([a,t,e],n)=>[a,await T(n,t,e)])),a=>!z(a[1]))))(),t=await(async()=>l?(await T(y,$a))[Na]:{})();return z(a)&&d(t)?void 0:[a,t]}),(a,t)=>v(async()=>{if(await R(),d(t)){const[t,e]=a();await I(t),await L(e)}else await I(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[$]:()=>N,destroy:async()=>(await b.stopAutoPersisting(),i(),b)},0,N);return b},ct=/^([cd]:)(.+)/,lt=(a,n,s,o,c,l,w,y,d,u,E="getDb")=>{const $=Ma(s,l),[A,,O,m]=nt(n),g=e+(a=>{let t=2166136261;return T(Ea.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(da(O)),R=t+"_"+g,I=async(a,e,n="",s="")=>{const i=Ga(t,a,g);return await $(Ca+ha+Pa+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},S=async(a,t,e,n)=>(await $(Ca+a+"TRIGGER"+t+e+"EXECUTE "+Pa+n+"()"),t),L=a=>`PERFORM pg_notify('${R}',${a});`,b=(a,t)=>A?i:2===t?b(a,0)+" OR "+b(a,1):r(q(O[0],a)?.[2]??i,Fa,0==t?"NEW":"OLD"),C=(a,e)=>_(v([_a,ga,Ra],(n,s)=>S(ha,Ga(t,"d",g,a,n),`AFTER ${n} ON${Ua(a)}FOR EACH ROW WHEN(${b(a,s)})`,e)));return(A?rt:ot)(a,$,async a=>{const e=await I("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Oa} command_tag='${fa}' LOOP ${L("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await S("EVENT ",Ga(t,"c",g),`ON ddl_command_end WHEN TAG IN('${fa}')`,e);const n=await I("d",L("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await _(v(f(m),async a=>(await $(fa+` IF NOT EXISTS${Ua(a)}("_id"text PRIMARY KEY)`),await C(a,n)))),[await o(R,t=>{return N((e=t,s=ct,e?.match(s)),async([,t,e])=>{D(m,e)&&("c:"==t&&await C(e,n),a())});var e,s}),[e,n]]},async([a,t])=>{c(a),await $(`DROP FUNCTION IF EXISTS${p(t,",")}CASCADE`)},w,y,d,O,f(m),async(a,t)=>await a(Aa+` table_name tn,column_name cn FROM information_schema.columns ${Oa} table_schema='public'AND table_name IN(${ja(t)})`,t),u,E,"text",void 0,a=>wa(a),a=>ya(a))},wt=(a,t,n,s,i,r,o,c,l,d,u="getDb",E)=>{let N,$,A;const O=Ma(n,r),[m,_,g,T]=nt(t);return(m?rt:ot)(a,O,a=>{let t;const e=()=>t=setInterval(()=>R(async()=>{const[{d:t,s:e,c:n}]=await O(Aa+` ${La} d,${ba} s,TOTAL_CHANGES() c FROM ${Sa}${La} JOIN ${Sa}${ba}`);t==N&&e==$&&n==A||(y(N)||a(),N=t,$=e,A=n)}),1e3*_),n=()=>{N=$=A=null,w(t)},r=s(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),i(r)}},a=>a(),o,c,l,g,f(T),async(a,t)=>await a(Aa+` t.name tn,c.name cn FROM ${Da}list()t,${Da}info(t.name)c ${Oa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${ja(t)})ORDER BY t.name,c.name`,t),d,u,e,E,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)};export{ra as Persists,ia as Status,la as createCustomPersister,lt as createCustomPostgreSqlPersister,wt as createCustomSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=globalThis,w=clearInterval,d=a=>null==a,y=a=>void 0===a,u=a=>null===a,E=a=>!0===a,N=c(d),$=c(y),v=t=>a(t)==s,A=a=>Array.isArray(a),O=a=>a.length,m=async a=>o.all(a),_=a=>{throw Error(a)},g=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},R=(a,t)=>a.forEach(t),T=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),I=a=>0==O(a),S=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),b=a=>a.shift(),D=(a,t)=>a?.has(t)??!1,f=a=>y(a)||0==(a=>a?.size??0)(a),C=a=>[...a?.values()??[]],h=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),F=Object,M=a=>F.getPrototypeOf(a),U=F.entries,G=a=>!d(a)&&N(M(a),a=>a==F.prototype||d(M(a)),()=>!0),j=F.keys,x=F.freeze,B=(a=[])=>F.fromEntries(a),H=(...a)=>F.assign({},...a),W=(a,t)=>(delete a[t],a),Y=(a,t)=>p(U(a),([a,e])=>t(e,a)),X=(a,t)=>B(Y(a,(a,e)=>[e,t(a,e)])),J=a=>O(j(a)),k=a=>G(a)&&0==J(a),z=Map,K=a=>new z(a),V=(a,t)=>a?.get(t),q=(a,t)=>p([...a?.entries()??[]],([a,e])=>t(e,a)),Q=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Z=(a,t,e,n)=>(D(a,t)?n?.(V(a,t)):Q(a,t,e()),V(a,t)),aa=(a,t,e,n,s=0)=>$((e?Z:V)(a,t[s],s>O(t)-2?e:K),i=>{if(s>O(t)-2)return n?.(i)&&Q(a,t[s]),i;const r=aa(i,t,e,n,s+1);return f(i)&&Q(a,t[s]),r}),ta=/^\d+$/,ea=a=>new Set(A(a)||y(a)?a:[a]),na=(a,t)=>a?.add(t),sa={Idle:0,Loading:1,Saving:2},ia={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},ra=K(),oa=K(),ca=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,E,N,v=0,m=0,T=0;Z(ra,w,()=>0),Z(oa,w,()=>[]);const p=K(),[I,S,D,C,F]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!k(a)||!k(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!k(a)||!k(t),t.setContent]:_("Store type not supported by this Persister"))(o,a,l),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{ta.test(t)&&O(a)<1e3&&L(a,t)}]})(),s=K();return[(n,i,r,o=[],c=()=>[])=>{a??=la;const l=t(1);return Q(s,l,[n,i,r,o,c]),na(aa(i,r??[e],ea),l),l},(t,n,...i)=>R(((a,t=[e])=>{const n=[],s=(a,e)=>e==O(t)?L(n,a):u(t[e])?h(a,a=>s(a,e+1)):R([t[e],null],t=>s(V(a,t),e+1));return s(a,0),n})(t,n),t=>h(t,t=>V(s,t)[0](a,...n??[],...i))),a=>$(V(s,a),([,t,i])=>(aa(t,i??[e],void 0,t=>(P(t,a),f(t)?1:0)),Q(s,a),n(a),i)),t=>$(V(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=O(r);o==O(e)?t(a,...r,...s(r)):u(e[o])?R(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),j=a=>{a!=v&&(v=a,U(p,void 0,v))},B=t=>{(I&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},H=async()=>{sa()&&a.__?.[0]?.()&&await J()},W=async a=>(2!=v&&(j(1),m++,await ca(async()=>{await g(async()=>{const e=await t();A(e)?B(e):a?F(a):_("Content is not an array: "+e)},()=>{a&&F(a)}),j(0),await H()})),la),Y=async a=>(X(),await W(a),await g(async()=>E=await s(async(a,t)=>{t||a?2!=v&&(j(1),m++,B(t??a),j(0),await H()):await W()}),r),la),X=async()=>(E&&(await g(()=>i(E),r),E=void 0),la),J=async a=>(1!=v&&(j(2),T++,await ca(async()=>{await g(()=>n(S,a),r),j(0)})),la),z=async()=>(q(),await J(),N=a.addDidFinishTransactionListener(()=>{const a=D();C(a)&&J(a)}),la),q=async()=>(N&&(a.delListener(N),N=void 0),la),sa=()=>!y(N),ia=async(a=!1)=>{const[t,e]=a?[q,X]:[X,q];return await t(),await e(),la},ca=async(...a)=>(L(V(oa,w),...a),await(async()=>{if(!V(ra,w)){for(Q(ra,w,1);!y(d=b(V(oa,w)));)await g(d,r);Q(ra,w,0)}})(),la),la={load:W,startAutoLoad:Y,stopAutoLoad:X,isAutoLoading:()=>!y(E),save:J,startAutoSave:z,stopAutoSave:q,isAutoSaving:sa,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[z,Y]:[Y,z];return await e(a),await n(a),la},stopAutoPersisting:ia,getStatus:()=>v,addStatusListener:a=>M(a,p),delListener:t=>(G(t),a),schedule:ca,getStore:()=>a,destroy:()=>(V(oa,w).splice(0,void 0),ia()),getStats:()=>({loads:m,saves:T}),...c};return x(la)},la=JSON.stringify,wa=JSON.parse,da=a=>la(a,(a,t)=>y(t)?"":t),ya=a=>""===a?void 0:A(a)?p(a,ya):G(a)?X(a,ya):a,ua=new l.TextEncoder,Ea="_",Na="_id",$a="SELECT",va="WHERE",Aa="TABLE",Oa="INSERT",ma="DELETE",_a="UPDATE",ga="ALTER "+Aa,Ra="FROM",Ta=ma+" "+Ra,pa=$a+"*"+Ra,Ia="pragma_",Sa="data_version",La="schema_version",ba="pragma_table_",Da="CREATE ",fa=Da+Aa,Ca="OR REPLACE ",ha="FUNCTION",Pa="$tableName",Fa=(a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a,Ma=a=>T(p(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Ua=(...a)=>Ma(T(a,"_")),Ga=(a,t=[1])=>T(p(a,()=>"$"+t[0]++),n),ja=(a,t=i)=>va+`(${r(t,Pa,Ma(a))})`,xa="ColumnName",Ba="store",Ha="json",Wa=Ba+"TableName",Ya=Ba+"Id"+xa,Xa=Ba+xa,Ja="autoLoadIntervalSeconds",ka="rowId"+xa,za="tableId",Ka="tableName",Va="deleteEmptyColumns",qa="deleteEmptyTable",Qa="condition",Za={mode:Ha,[Ja]:1},at={load:0,save:0,[Ka]:t+"_values"},tt=a=>A(a)?a:void 0,et=a=>E(a)||A(a),nt=(a,t,e,n,s)=>{const i=K();return X(a,(a,r)=>{const o=(w=H(t,v(a)?{[e]:a}:a),c=F.values(w),l=J(t),c.slice(0,l));var c,l,w;u(o[0])||n(r,o[0])||(s(r,o[0]),Q(i,r,o))}),i},st=a=>{const e=(a=>H(Za,v(a)?{[Wa]:a}:a??{}))(a),n=e[Ja];if(e.mode==Ha){const a=e[Wa]??t;return[1,n,[a,e[Ya]??Na,e[Xa]??Ba],ea(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=H(at,o),{load:l,save:w}=c,d=[et(l),et(w),c[Ka],tt(l),tt(w)],y=d[2],u=ea(y),E=ea(y),N=nt(s,{[za]:null,[ka]:Na,[Qa]:i},za,a=>D(E,a),a=>na(u,a)),$=nt(r,{[Ka]:null,[ka]:Na,[Va]:0,[qa]:0,[Qa]:null},Ka,(a,t)=>D(E,t),(a,t)=>na(u,t));var A;return A=(a,t)=>t[4]??=V(N,t[0])?.[2]??i,h($,(a,t)=>A(0,a)),[0,n,[N,$,d],u]},it=(a,t,e,s,r,o=rt,c,l)=>{const w=K();return[async()=>{w.clear(),p(await e(a,t),({tn:a,cn:t})=>na(Z(w,a,ea),t))},async(t,e,n,s)=>{const i=y(s)?void 0:ea(s);return((a,t)=>D(V(w,a),t))(t,e)?B(S(p(await a(pa+Ma(t)+ja(t,n)),a=>{const t=a[e],n=l?X(W(a,e),l):W(a,e);return[t,y(i)?n:B(S(Y(n,(a,t)=>[t,a]),([a])=>(a=>y(i)||D(i,a))(a)))]}),a=>!y(a[0])&&!k(a[1]))):{}},async(t,e,s,l,d,u=!1,E=i,N)=>{const $=y(N)?void 0:ea(N),v=a=>y($)||D($,a),A=ea();X(s??{},a=>p(S(j(a??{}),v),a=>na(A,a)));const O=C(A);if(y($)&&!u&&d&&E==i&&I(O)&&D(w,t))return await a("DROP "+Aa+Ma(t)),void Q(w,t);const _=V(w,t),g=ea(S(C(_),a=>a==e||v(a)));if(I(O)||(D(w,t)?await m(p([e,...O],async(n,s)=>{P(g,n)||(await a(ga+Ma(t)+"ADD"+Ma(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ma(t)+`(${Ma(e)})`),na(_,n))})):(await a(fa+Ma(t)+`(${Ma(e)}${r} PRIMARY KEY${T(p(O,a=>n+Ma(a)+r))});`),Q(w,t,ea([e,...O])))),await m([...!u&&l?p(C(g),async n=>{n!=e&&(await a(ga+Ma(t)+"DROP"+Ma(n)),P(_,n))}):[]]),u)y(s)?y($)&&await a(Ta+Ma(t)+ja(t,E)):await m(Y(s,async(n,s)=>{if(y(n))await a(Ta+Ma(t)+ja(t,E)+`AND(${Ma(e)}=$1)`,[s]);else if(!I(O)){const i=S(j(n),v);I(i)||await o(a,t,e,i,{[s]:p(i,a=>c?c(n[a]):n[a])},_)}}));else if(I(O))y($)&&D(w,t)&&await a(Ta+Ma(t)+ja(t,E));else{const n=S(C(V(w,t)),a=>a!=e&&v(a)),i={},r=[];X(s??{},(a,t)=>{i[t]=p(n,t=>c?c(a?.[t]):a?.[t]),L(r,t)}),await o(a,t,e,n,i,_),await a(Ta+Ma(t)+ja(t,E)+`AND${Ma(e)}NOT IN(${Ga(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await g(async()=>e=await t(),s),await a("END"),e}]},rt=async(a,t,e,s,i)=>{const r=[1];await a(Oa+" INTO"+Ma(t)+"("+((...a)=>T(p(a,Ma),n))(e,...s)+")VALUES"+T(Y(i,a=>"($"+r[0]+++","+Ga(a,r)+")"),n)+"ON CONFLICT("+Ma(e)+`)DO ${_a} SET`+T(p(s,a=>Ma(a)+"=excluded."+Ma(a)),n),Y(i,(a,t)=>[t,...p(a,a=>a??null)]).flat())},ot=(a,t,e,n,s,i,r,[o,c,l],w,d,y,u,E,N)=>{const[$,v,A,O]=it(t,w,d,s,E,N),m=ca(a,()=>O(async()=>{return await $(),a=(await v(o,c))[Ea]?.[l]??"null",ya(wa(a));var a}),a=>O(async()=>{await $(),await A(o,c,{[Ea]:{[l]:da(a()??null)}},!0,!0)}),e,n,s,r,{[u]:()=>y,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,y);return m},ct=(a,t,e,n,s,i,r,[o,c,[l,w,d,u,E]],N,$,v,A,O,_,g,R)=>{const[T,I,L,b]=it(t,N,$,s,O,_,g,R),D=(a,t)=>m(q(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await L(e,n,a[o],s,i,t,r)})),f=(a,t,e)=>B(1==e?S(Y(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):S(p(t,t=>[t,a[t]]),([,a])=>!y(a))),C=async(a,t)=>w?await L(d,Na,{[Ea]:y(E)?a:f(a,E,t)},!0,!0,t,void 0,E):null,h=ca(a,()=>b(async()=>{await T();const a=await(async()=>B(S(await m(q(o,async([a,t,e],n)=>[a,await I(n,t,e)])),a=>!k(a[1]))))(),t=await(async()=>l?(await I(d,Na,void 0,u))[Ea]:{})();return k(a)&&y(t)?void 0:[a,t]}),(a,t)=>b(async()=>{if(await T(),y(t)){const[t,e]=a();await D(t),await C(e)}else await D(t[0],!0),await C(t[1],!0)}),e,n,s,r,{[A]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},lt=/^([cd]:)(.+)/,wt=(a,n,s,o,c,l,w,d,y,u,E="getDb")=>{const N=Fa(s,l),[v,,A,O]=st(n),_=e+(a=>{let t=2166136261;return R(ua.encode(a),a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0})(da(A)),g=t+"_"+_,I=async(a,e,n="",s="")=>{const i=Ua(t,a,_);return await N(Da+Ca+ha+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},S=async(a,t,e,n)=>(await N(Da+a+"TRIGGER"+t+e+"EXECUTE "+ha+n+"()"),t),L=a=>`PERFORM pg_notify('${g}',${a});`,b=(a,t)=>v?i:2===t?b(a,0)+" OR "+b(a,1):r(V(A[0],a)?.[2]??i,Pa,0==t?"NEW":"OLD"),f=(a,e)=>m(p([Oa,ma,_a],(n,s)=>S(Ca,Ua(t,"d",_,a,n),`AFTER ${n} ON${Ma(a)}FOR EACH ROW WHEN(${b(a,s)})`,e)));return(v?ot:ct)(a,N,async a=>{const e=await I("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${va} command_tag='${fa}' LOOP ${L("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await S("EVENT ",Ua(t,"c",_),`ON ddl_command_end WHEN TAG IN('${fa}')`,e);const n=await I("d",L("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await m(p(C(O),async a=>(await N(fa+` IF NOT EXISTS${Ma(a)}("_id"text PRIMARY KEY)`),await f(a,n)))),[await o(g,t=>{return $((e=t,s=lt,e?.match(s)),async([,t,e])=>{D(O,e)&&("c:"==t&&await f(e,n),a())});var e,s}),[e,n]]},async([a,t])=>{c(a),await N(`DROP FUNCTION IF EXISTS${T(t,",")}CASCADE`)},w,d,y,A,C(O),async(a,t)=>await a($a+` table_name tn,column_name cn FROM information_schema.columns ${va} table_schema='public'AND table_name IN(${Ga(t)})`,t),u,E,"text",void 0,a=>la(a),a=>wa(a))},dt=(a,t,n,s,i,r,o,c,l,y,u="getDb",N)=>{let $,v,A;const O=Fa(n,r),[m,_,R,T]=st(t);return(m?ot:ct)(a,O,a=>{let t;const e=()=>t=setInterval(()=>g(async()=>{const[{d:t,s:e,c:n}]=await O($a+` ${Sa} d,${La} s,TOTAL_CHANGES() c FROM ${Ia}${Sa} JOIN ${Ia}${La}`);t==$&&e==v&&n==A||(d($)||a(),$=t,v=e,A=n)}),1e3*_),n=()=>{$=v=A=null,w(t)},r=s(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),i(r)}},a=>a(),o,c,l,R,C(T),async(a,t)=>await a($a+` t.name tn,c.name cn FROM ${ba}list()t,${ba}info(t.name)c ${va} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ga(t)})ORDER BY t.name,c.name`,t),y,u,e,N,a=>E(a)?1:(a=>!1===a)(a)?0:a,void 0)};export{ia as Persists,sa as Status,ca as createCustomPersister,wt as createCustomPostgreSqlPersister,dt as createCustomSqlitePersister};
Binary file
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),p=c(y),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+x,V=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&d(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>q.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),pa=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),Na=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ma=a=>new Set(E(a)||y(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",fa="store",Oa="json",Da=fa+"TableName",Ia=fa+"Id"+ga,Sa=fa+ga,Ta="autoLoadIntervalSeconds",_a="rowId"+ga,ha="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Ta]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,xa=a=>""===a?void 0:E(a)?I(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=da(),Ya=da(),ka=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,A,m=0,$=0,D=0;Aa(Ja,w,()=>0),Aa(Ya,w,()=>[]);const I=da(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ba.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return Ea(s,l,[n,i,r,o,c]),$a(Na(i,r??[e],ma),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(I,void 0,m))},B=t=>{(S&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{Q()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await W(async()=>{await f(async()=>{const e=await t();E(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),X),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),X),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),X),G=async a=>(1!=m&&(x(2),D++,await W(async()=>{await f(()=>n(T,a),r),x(0)})),X),H=async()=>(K(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(A&&(a.delListener(A),A=void 0),X),Q=()=>!y(A),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(_(pa(Ya,w),...a),await(async()=>{if(!pa(Ja,w)){for(Ea(Ja,w,1);!y(d=h(pa(Ya,w)));)await f(d,r);Ea(Ja,w,0)}})(),X),X={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!y(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(pa(Ya,w).splice(0,void 0),V()),getStats:()=>({loads:$,saves:D}),...c};return na(X)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,ma),t))},async(t,e,n)=>((a,t)=>b(pa(w,a),t))(t,e)?sa(T(I(await a(k+V(t)+X(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),a=>!y(a[0])&&!ya(a[1]))):{},async(t,e,s,l,u,d=!1,p=i)=>{const v=ma();ca(s??{},a=>I(ea(a??{}),a=>$a(v,a)));const E=L(v);if(!d&&u&&p==i&&S(E)&&b(w,t))return await a("DROP "+x+V(t)),void Ea(w,t);const A=pa(w,t),N=ma(L(A));if(S(E)||(b(w,t)?await $(I([e,...E],async(n,s)=>{P(N,n)||(await a(B+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),$a(A,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${D(I(E,a=>n+V(a)+r))});`),Ea(w,t,ma([e,...E])))),await $([...!d&&l?I(L(N),async n=>{n!=e&&(await a(B+V(t)+"DROP"+V(n)),P(A,n))}):[]]),d)y(s)?await a(Y+V(t)+X(t,p)):await $(oa(s,async(n,s)=>{y(n)?await a(Y+V(t)+X(t,p)+`AND(${V(e)}=$1)`,[s]):S(E)||await o(a,t,e,ea(n),{[s]:c?I(la(n),c):la(n)},A)}));else if(S(E))b(w,t)&&await a(Y+V(t)+X(t,p));else{const n=T(L(pa(w,t)),a=>a!=e),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i),await a(Y+V(t)+X(t,p)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>D(I(a,V),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+D(I(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,r,[o,c,l],w,u,d,p,v,E)=>{const[A,N,m,$]=za(t,w,u,s,v,E),g=ka(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",xa(ja(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,Ua(t,(a,t)=>y(t)?"":t))}},!0,!0)}),e,n,s,r,{[p]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,u]],d,p,v,E,A,N,m,g)=>{const[f,O,D,I]=za(t,d,p,s,A,N,m,g),S=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await D(e,n,a[o],s,i,t,r)})),_=async(a,t)=>w?await D(u,F,{[M]:a},!0,!0,t):null,h=ka(a,()=>I(async()=>{await f();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await O(n,t,e)])),a=>!ya(a[1]))))(),t=await(async()=>l?(await O(u,F))[M]:{})();return ya(a)&&y(t)?void 0:[a,t]}),(a,t)=>I(async()=>{if(await f(),y(t)){const[t,e]=a();await S(t),await _(e)}else await S(t[0],!0),await _(t[1],!0)}),e,n,s,r,{[E]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},Qa=(a,n,s,r,o,c,y,u,d,p,E="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Pa,v(a)?{[Da]:a}:a??{}))(a),n=e[Ta];if(e.mode==Oa){const a=e[Da]??t;return[1,n,[a,e[Ia]??F,e[Sa]??fa],ma(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=A(la(ia(Ma,o)),0,wa(Ma)),l=c[2],w=ma(l),y=ma(l),u=Fa(s,{[ha]:null,[_a]:F,[Ra]:i},ha,a=>b(y,a),a=>$a(w,a)),d=Fa(r,{[ba]:null,[_a]:F,[Ca]:0,[La]:0,[Ra]:null},ba,(a,t)=>b(y,t),(a,t)=>$a(w,t));var p;return p=(a,t)=>t[4]??=pa(u,t[0])?.[2]??i,R(d,(a,t)=>p(0,a)),[0,n,[u,d,c],w]})(n);return(D?Ha:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),y,u,d,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,E,e,N,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>await t.execO(a,e),a=>t.onUpdate((t,e,n)=>a(n)),a=>a(),n,s,m,1,t);export{Va as createCrSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+x,V=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,xa=JSON.parse,Ba=a=>""===a?void 0:A(a)?I(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=ya(),ka=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(Ya,w,()=>0),Ea(ka,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(I,void 0,m))},B=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{Q()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await W(async()=>{await f(async()=>{const e=await t();A(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),X),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),X),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),X),G=async a=>(1!=m&&(x(2),D++,await W(async()=>{await f(()=>n(T,a),r),x(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(_(da(ka,w),...a),await(async()=>{if(!da(Ya,w)){for(pa(Ya,w,1);!u(d=h(da(ka,w)));)await f(d,r);pa(Ya,w,0)}})(),X),X={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(ka,w).splice(0,void 0),V()),getStats:()=>({loads:$,saves:D}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(k+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+x+V(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(B+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),ma(g,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${D(I(m,a=>n+V(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(B+V(t)+"DROP"+V(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(Y+V(t)+X(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(Y+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(Y+V(t)+X(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(Y+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>D(I(a,V),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+D(I(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(xa(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>await t.execO(a,e),a=>t.onUpdate((t,e,n)=>a(n)),a=>a(),n,s,m,1,t);export{Wa as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,y=a=>void 0===a,u=a=>null===a,d=c(w),p=c(y),v=t=>a(t)==s,E=a=>Array.isArray(a),A=(a,t,e)=>a.slice(t,e),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>y(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+x,V=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&d(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>q.values(a),wa=a=>N(ea(a)),ya=a=>ta(a)&&0==wa(a),ua=Map,da=a=>new ua(a),pa=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),Ea=(a,t,e)=>y(e)?(P(a,t),a):a?.set(t,e),Aa=(a,t,e,n)=>(b(a,t)?n?.(pa(a,t)):Ea(a,t,e()),pa(a,t)),Na=(a,t,e,n,s=0)=>p((e?Aa:pa)(a,t[s],s>N(t)-2?e:da),i=>{if(s>N(t)-2)return n?.(i)&&Ea(a,t[s]),i;const r=Na(i,t,e,n,s+1);return C(i)&&Ea(a,t[s]),r}),ma=a=>new Set(E(a)||y(a)?a:[a]),$a=(a,t)=>a?.add(t),ga="ColumnName",fa="store",Oa="json",Da=fa+"TableName",Ia=fa+"Id"+ga,Sa=fa+ga,Ta="autoLoadIntervalSeconds",_a="rowId"+ga,ha="tableId",ba="tableName",Ca="deleteEmptyColumns",La="deleteEmptyTable",Ra="condition",Pa={mode:Oa,[Ta]:1},Ma={load:0,save:0,[ba]:t+"_values"},Fa=(a,t,e,n,s)=>{const i=da();return ca(a,(a,r)=>{const o=A(la(ia(t,v(a)?{[e]:a}:a)),0,wa(t));u(o[0])||n(r,o[0])||(s(r,o[0]),Ea(i,r,o))}),i},Ua=JSON.stringify,ja=JSON.parse,xa=a=>""===a?void 0:E(a)?I(a,xa):ta(a)?ca(a,xa):a,Ba=/^\d+$/,Ja=da(),Ya=da(),ka=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,A,m=0,$=0,D=0;Aa(Ja,w,()=>0),Aa(Ya,w,()=>[]);const I=da(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!ya(a)||!ya(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!ya(a)||!ya(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ba.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=da();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return Ea(s,l,[n,i,r,o,c]),$a(Na(i,r??[e],ma),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):u(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(pa(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>pa(s,t)[0](a,...n??[],...i))),a=>p(pa(s,a),([,t,i])=>(Na(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),Ea(s,a),n(a),i)),t=>p(pa(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):u(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(I,void 0,m))},B=t=>{(S&&E(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{Q()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await W(async()=>{await f(async()=>{const e=await t();E(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),X),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),X),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),X),G=async a=>(1!=m&&(x(2),D++,await W(async()=>{await f(()=>n(T,a),r),x(0)})),X),H=async()=>(K(),await G(),A=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(A&&(a.delListener(A),A=void 0),X),Q=()=>!y(A),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(_(pa(Ya,w),...a),await(async()=>{if(!pa(Ja,w)){for(Ea(Ja,w,1);!y(d=h(pa(Ya,w)));)await f(d,r);Ea(Ja,w,0)}})(),X),X={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!y(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(pa(Ya,w).splice(0,void 0),V()),getStats:()=>({loads:$,saves:D}),...c};return na(X)},za=(a,t,e,s,r,o=Ga,c,l)=>{const w=da();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>$a(Aa(w,a,ma),t))},async(t,e,n)=>((a,t)=>b(pa(w,a),t))(t,e)?sa(T(I(await a(k+V(t)+X(t,n)),a=>[a[e],l?ca(ra(a,e),l):ra(a,e)]),a=>!y(a[0])&&!ya(a[1]))):{},async(t,e,s,l,u,d=!1,p=i)=>{const v=ma();ca(s??{},a=>I(ea(a??{}),a=>$a(v,a)));const E=L(v);if(!d&&u&&p==i&&S(E)&&b(w,t))return await a("DROP "+x+V(t)),void Ea(w,t);const A=pa(w,t),N=ma(L(A));if(S(E)||(b(w,t)?await $(I([e,...E],async(n,s)=>{P(N,n)||(await a(B+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),$a(A,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${D(I(E,a=>n+V(a)+r))});`),Ea(w,t,ma([e,...E])))),await $([...!d&&l?I(L(N),async n=>{n!=e&&(await a(B+V(t)+"DROP"+V(n)),P(A,n))}):[]]),d)y(s)?await a(Y+V(t)+X(t,p)):await $(oa(s,async(n,s)=>{y(n)?await a(Y+V(t)+X(t,p)+`AND(${V(e)}=$1)`,[s]):S(E)||await o(a,t,e,ea(n),{[s]:c?I(la(n),c):la(n)},A)}));else if(S(E))b(w,t)&&await a(Y+V(t)+X(t,p));else{const n=T(L(pa(w,t)),a=>a!=e),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i),await a(Y+V(t)+X(t,p)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ga=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>D(I(a,V),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+D(I(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Ha=(a,t,e,n,s,i,r,[o,c,l],w,u,d,p,v,E)=>{const[A,N,m,$]=za(t,w,u,s,v,E),g=ka(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",xa(ja(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,Ua(t,(a,t)=>y(t)?"":t))}},!0,!0)}),e,n,s,r,{[p]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Ka=(a,t,e,n,s,i,r,[o,c,[l,w,u]],d,p,v,E,A,N,m,g)=>{const[f,O,D,I]=za(t,d,p,s,A,N,m,g),S=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await D(e,n,a[o],s,i,t,r)})),_=async(a,t)=>w?await D(u,F,{[M]:a},!0,!0,t):null,h=ka(a,()=>I(async()=>{await f();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await O(n,t,e)])),a=>!ya(a[1]))))(),t=await(async()=>l?(await O(u,F))[M]:{})();return ya(a)&&y(t)?void 0:[a,t]}),(a,t)=>I(async()=>{if(await f(),y(t)){const[t,e]=a();await S(t),await _(e)}else await S(t[0],!0),await _(t[1],!0)}),e,n,s,r,{[E]:()=>v,destroy:async()=>(await h.stopAutoPersisting(),i(),h)},0,v);return h},Qa=(a,n,s,r,o,c,y,u,d,p,E="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Pa,v(a)?{[Da]:a}:a??{}))(a),n=e[Ta];if(e.mode==Oa){const a=e[Da]??t;return[1,n,[a,e[Ia]??F,e[Sa]??fa],ma(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=A(la(ia(Ma,o)),0,wa(Ma)),l=c[2],w=ma(l),y=ma(l),u=Fa(s,{[ha]:null,[_a]:F,[Ra]:i},ha,a=>b(y,a),a=>$a(w,a)),d=Fa(r,{[ba]:null,[_a]:F,[Ca]:0,[La]:0,[Ra]:null},ba,(a,t)=>b(y,t),(a,t)=>$a(w,t));var p;return p=(a,t)=>t[4]??=pa(u,t[0])?.[2]??i,R(d,(a,t)=>p(0,a)),[0,n,[u,d,c],w]})(n);return(D?Ha:Ka)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),y,u,d,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,E,e,N,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},Va=(a,t,e,n,s)=>Qa(a,e,async(a,e=[])=>await t.execO(a,e),a=>t.onUpdate((t,e,n)=>a(n)),a=>a(),n,s,m,1,t);export{Va as createCrSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),l=clearInterval,w=a=>null==a,u=a=>void 0===a,y=a=>null===a,d=a=>!0===a,v=c(w),p=c(u),E=t=>a(t)==s,A=a=>Array.isArray(a),N=a=>a.length,m=()=>{},$=async a=>o.all(a),g=a=>{throw Error(a)},f=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},O=(a,t)=>a.forEach(t),D=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),S=a=>0==N(a),T=(a,t)=>a.filter(t),_=(a,...t)=>a.push(...t),h=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,C=a=>u(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],R=(a,t)=>a?.forEach(t),P=(a,t)=>a?.delete(t),M="_",F="_id",U="SELECT",j="WHERE",x="TABLE",B="ALTER "+x,J="FROM",Y="DELETE "+J,k=U+"*"+J,z="pragma_",G="data_version",H="schema_version",K="pragma_table_",Q="CREATE "+x,V=a=>D(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),W=(a,t=[1])=>D(I(a,()=>"$"+t[0]++),n),X=(a,t=i)=>j+`(${r(t,"$tableName",V(a))})`,q=Object,Z=a=>q.getPrototypeOf(a),aa=q.entries,ta=a=>!w(a)&&v(Z(a),a=>a==q.prototype||w(Z(a)),()=>!0),ea=q.keys,na=q.freeze,sa=(a=[])=>q.fromEntries(a),ia=(...a)=>q.assign({},...a),ra=(a,t)=>(delete a[t],a),oa=(a,t)=>I(aa(a),([a,e])=>t(e,a)),ca=(a,t)=>sa(oa(a,(a,e)=>[e,t(a,e)])),la=a=>N(ea(a)),wa=a=>ta(a)&&0==la(a),ua=Map,ya=a=>new ua(a),da=(a,t)=>a?.get(t),va=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),pa=(a,t,e)=>u(e)?(P(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(da(a,t)):pa(a,t,e()),da(a,t)),Aa=(a,t,e,n,s=0)=>p((e?Ea:da)(a,t[s],s>N(t)-2?e:ya),i=>{if(s>N(t)-2)return n?.(i)&&pa(a,t[s]),i;const r=Aa(i,t,e,n,s+1);return C(i)&&pa(a,t[s]),r}),Na=a=>new Set(A(a)||u(a)?a:[a]),ma=(a,t)=>a?.add(t),$a="ColumnName",ga="store",fa="json",Oa=ga+"TableName",Da=ga+"Id"+$a,Ia=ga+$a,Sa="autoLoadIntervalSeconds",Ta="rowId"+$a,_a="tableId",ha="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",La="condition",Ra={mode:fa,[Sa]:1},Pa={load:0,save:0,[ha]:t+"_values"},Ma=a=>A(a)?a:void 0,Fa=a=>d(a)||A(a),Ua=(a,t,e,n,s)=>{const i=ya();return ca(a,(a,r)=>{const o=(w=ia(t,E(a)?{[e]:a}:a),c=q.values(w),l=la(t),c.slice(0,l));var c,l,w;y(o[0])||n(r,o[0])||(s(r,o[0]),pa(i,r,o))}),i},ja=JSON.stringify,xa=JSON.parse,Ba=a=>""===a?void 0:A(a)?I(a,Ba):ta(a)?ca(a,Ba):a,Ja=/^\d+$/,Ya=ya(),ka=ya(),za=(a,t,n,s,i,r,o,c={},l=0,w=[])=>{let d,v,E,m=0,$=0,D=0;Ea(Ya,w,()=>0),Ea(ka,w,()=>[]);const I=ya(),[S,T,b,L,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!wa(a)||!wa(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!wa(a)||!wa(t),t.setContent]:g("Store type not supported by this Persister"))(o,a,l),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?h(a):null)??e+t++,t=>{Ja.test(t)&&N(a)<1e3&&_(a,t)}]})(),s=ya();return[(n,i,r,o=[],c=()=>[])=>{a??=X;const l=t(1);return pa(s,l,[n,i,r,o,c]),ma(Aa(i,r??[e],Na),l),l},(t,n,...i)=>O(((a,t=[e])=>{const n=[],s=(a,e)=>e==N(t)?_(n,a):y(t[e])?R(a,a=>s(a,e+1)):O([t[e],null],t=>s(da(a,t),e+1));return s(a,0),n})(t,n),t=>R(t,t=>da(s,t)[0](a,...n??[],...i))),a=>p(da(s,a),([,t,i])=>(Aa(t,i??[e],void 0,t=>(P(t,a),C(t)?1:0)),pa(s,a),n(a),i)),t=>p(da(s,t),([t,,e=[],n,s])=>{const i=(...r)=>{const o=N(r);o==N(e)?t(a,...r,...s(r)):y(e[o])?O(n[o]?.(...r)??[],a=>i(...r,a)):i(...r,e[o])};i()})]})(),x=a=>{a!=m&&(m=a,U(I,void 0,m))},B=t=>{(S&&A(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async()=>{Q()&&a.__?.[0]?.()&&await G()},Y=async a=>(2!=m&&(x(1),$++,await W(async()=>{await f(async()=>{const e=await t();A(e)?B(e):a?M(a):g("Content is not an array: "+e)},()=>{a&&M(a)}),x(0),await J()})),X),k=async a=>(z(),await Y(a),await f(async()=>v=await s(async(a,t)=>{t||a?2!=m&&(x(1),$++,B(t??a),x(0),await J()):await Y()}),r),X),z=async()=>(v&&(await f(()=>i(v),r),v=void 0),X),G=async a=>(1!=m&&(x(2),D++,await W(async()=>{await f(()=>n(T,a),r),x(0)})),X),H=async()=>(K(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=b();L(a)&&G(a)}),X),K=async()=>(E&&(a.delListener(E),E=void 0),X),Q=()=>!u(E),V=async(a=!1)=>{const[t,e]=a?[K,z]:[z,K];return await t(),await e(),X},W=async(...a)=>(_(da(ka,w),...a),await(async()=>{if(!da(Ya,w)){for(pa(Ya,w,1);!u(d=h(da(ka,w)));)await f(d,r);pa(Ya,w,0)}})(),X),X={load:Y,startAutoLoad:k,stopAutoLoad:z,isAutoLoading:()=>!u(v),save:G,startAutoSave:H,stopAutoSave:K,isAutoSaving:Q,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[H,k]:[k,H];return await e(a),await n(a),X},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:a=>F(a,I),delListener:t=>(j(t),a),schedule:W,getStore:()=>a,destroy:()=>(da(ka,w).splice(0,void 0),V()),getStats:()=>({loads:$,saves:D}),...c};return na(X)},Ga=(a,t,e,s,r,o=Ha,c,l)=>{const w=ya();return[async()=>{w.clear(),I(await e(a,t),({tn:a,cn:t})=>ma(Ea(w,a,Na),t))},async(t,e,n,s)=>{const i=u(s)?void 0:Na(s);return((a,t)=>b(da(w,a),t))(t,e)?sa(T(I(await a(k+V(t)+X(t,n)),a=>{const t=a[e],n=l?ca(ra(a,e),l):ra(a,e);return[t,u(i)?n:sa(T(oa(n,(a,t)=>[t,a]),([a])=>(a=>u(i)||b(i,a))(a)))]}),a=>!u(a[0])&&!wa(a[1]))):{}},async(t,e,s,l,y,d=!1,v=i,p)=>{const E=u(p)?void 0:Na(p),A=a=>u(E)||b(E,a),N=Na();ca(s??{},a=>I(T(ea(a??{}),A),a=>ma(N,a)));const m=L(N);if(u(E)&&!d&&y&&v==i&&S(m)&&b(w,t))return await a("DROP "+x+V(t)),void pa(w,t);const g=da(w,t),f=Na(T(L(g),a=>a==e||A(a)));if(S(m)||(b(w,t)?await $(I([e,...m],async(n,s)=>{P(f,n)||(await a(B+V(t)+"ADD"+V(n)+r),0==s&&await a("CREATE UNIQUE INDEX pk ON "+V(t)+`(${V(e)})`),ma(g,n))})):(await a(Q+V(t)+`(${V(e)}${r} PRIMARY KEY${D(I(m,a=>n+V(a)+r))});`),pa(w,t,Na([e,...m])))),await $([...!d&&l?I(L(f),async n=>{n!=e&&(await a(B+V(t)+"DROP"+V(n)),P(g,n))}):[]]),d)u(s)?u(E)&&await a(Y+V(t)+X(t,v)):await $(oa(s,async(n,s)=>{if(u(n))await a(Y+V(t)+X(t,v)+`AND(${V(e)}=$1)`,[s]);else if(!S(m)){const i=T(ea(n),A);S(i)||await o(a,t,e,i,{[s]:I(i,a=>c?c(n[a]):n[a])},g)}}));else if(S(m))u(E)&&b(w,t)&&await a(Y+V(t)+X(t,v));else{const n=T(L(da(w,t)),a=>a!=e&&A(a)),i={},r=[];ca(s??{},(a,t)=>{i[t]=I(n,t=>c?c(a?.[t]):a?.[t]),_(r,t)}),await o(a,t,e,n,i,g),await a(Y+V(t)+X(t,v)+`AND${V(e)}NOT IN(${W(r)})`,r)}},async t=>{let e;return await a("BEGIN"),await f(async()=>e=await t(),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const r=[1];await a("INSERT INTO"+V(t)+"("+((...a)=>D(I(a,V),n))(e,...s)+")VALUES"+D(oa(i,a=>"($"+r[0]+++","+W(a,r)+")"),n)+"ON CONFLICT("+V(e)+")DO UPDATE SET"+D(I(s,a=>V(a)+"=excluded."+V(a)),n),oa(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Ka=(a,t,e,n,s,i,r,[o,c,l],w,y,d,v,p,E)=>{const[A,N,m,$]=Ga(t,w,y,s,p,E),g=za(a,()=>$(async()=>{return await A(),a=(await N(o,c))[M]?.[l]??"null",Ba(xa(a));var a}),a=>$(async()=>{var t;await A(),await m(o,c,{[M]:{[l]:(t=a()??null,ja(t,(a,t)=>u(t)?"":t))}},!0,!0)}),e,n,s,r,{[v]:()=>d,destroy:async()=>(await g.stopAutoPersisting(),i(),g)},0,d);return g},Qa=(a,t,e,n,s,i,r,[o,c,[l,w,y,d,v]],p,E,A,N,m,g,f,O)=>{const[D,S,_,h]=Ga(t,p,E,s,m,g,f,O),b=(a,t)=>$(va(c,async([e,n,s,i,r],o)=>{t&&!(o in a)||await _(e,n,a[o],s,i,t,r)})),C=(a,t,e)=>sa(1==e?T(oa(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):T(I(t,t=>[t,a[t]]),([,a])=>!u(a))),L=async(a,t)=>w?await _(y,F,{[M]:u(v)?a:C(a,v,t)},!0,!0,t,void 0,v):null,R=za(a,()=>h(async()=>{await D();const a=await(async()=>sa(T(await $(va(o,async([a,t,e],n)=>[a,await S(n,t,e)])),a=>!wa(a[1]))))(),t=await(async()=>l?(await S(y,F,void 0,d))[M]:{})();return wa(a)&&u(t)?void 0:[a,t]}),(a,t)=>h(async()=>{if(await D(),u(t)){const[t,e]=a();await b(t),await L(e)}else await b(t[0],!0),await L(t[1],!0)}),e,n,s,r,{[N]:()=>A,destroy:async()=>(await R.stopAutoPersisting(),i(),R)},0,A);return R},Va=(a,n,s,r,o,c,u,y,v,p,A="getDb",N)=>{let m,$,g;const O=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,c),[D,I,S,T]=(a=>{const e=(a=>ia(Ra,E(a)?{[Oa]:a}:a??{}))(a),n=e[Sa];if(e.mode==fa){const a=e[Oa]??t;return[1,n,[a,e[Da]??F,e[Ia]??ga],Na(a)]}const{tables:{load:s={},save:r={}}={},values:o={}}=e,c=ia(Pa,o),{load:l,save:w}=c,u=[Fa(l),Fa(w),c[ha],Ma(l),Ma(w)],y=u[2],d=Na(y),v=Na(y),p=Ua(s,{[_a]:null,[Ta]:F,[La]:i},_a,a=>b(v,a),a=>ma(d,a)),A=Ua(r,{[ha]:null,[Ta]:F,[ba]:0,[Ca]:0,[La]:null},ha,(a,t)=>b(v,t),(a,t)=>ma(d,t));var N;return N=(a,t)=>t[4]??=da(p,t[0])?.[2]??i,R(A,(a,t)=>N(0,a)),[0,n,[p,A,u],d]})(n);return(D?Ka:Qa)(a,O,a=>{let t;const e=()=>t=setInterval(()=>f(async()=>{const[{d:t,s:e,c:n}]=await O(U+` ${G} d,${H} s,TOTAL_CHANGES() c FROM ${z}${G} JOIN ${z}${H}`);t==m&&e==$&&n==g||(w(m)||a(),m=t,$=e,g=n)}),1e3*I),n=()=>{m=$=g=null,l(t)},s=r(t=>{T.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),u,y,v,S,L(T),async(a,t)=>await a(U+` t.name tn,c.name cn FROM ${K}list()t,${K}info(t.name)c ${j} t.schema='main'AND t.type IN('table','view')AND t.name IN(${W(t)})ORDER BY t.name,c.name`,t),p,A,e,N,a=>d(a)?1:(a=>!1===a)(a)?0:a,void 0)},Wa=(a,t,e,n,s)=>Va(a,e,async(a,e=[])=>await t.execO(a,e),a=>t.onUpdate((t,e,n)=>a(n)),a=>a(),n,s,m,1,t);export{Wa as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",l="t",r=(a,t,e)=>a.replace(t,e),o=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),d=Number,u=String,y=clearInterval,E=a=>null==a,w=a=>void 0===a,N=a=>null===a,T=c(E),_=c(w),p=t=>a(t)==s,O=a=>Array.isArray(a),S=(a,t,e)=>a.slice(t,e),m=a=>a.length,A=()=>{},v=async a=>o.all(a),L=a=>{throw Error(a)},R=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},g=(a,t)=>a.forEach(t),f=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),h=a=>0==m(a),$=(a,t)=>a.filter(t),b=(a,...t)=>a.push(...t),C=a=>a.shift(),P=Object,D=a=>P.getPrototypeOf(a),U=P.entries,x=a=>!E(a)&&T(D(a),a=>a==P.prototype||E(D(a)),()=>!0),X=P.keys,J=P.freeze,M=(a=[])=>P.fromEntries(a),F=(...a)=>P.assign({},...a),V=(a,t)=>t in a,B=(a,t)=>(delete a[t],a),G=(a,t)=>g(U(a),([a,e])=>t(e,a)),Y=(a,t)=>I(U(a),([a,e])=>t(e,a)),j=(a,t)=>M(Y(a,(a,e)=>[e,t(a,e)])),z=a=>P.values(a),k=a=>m(X(a)),q=a=>x(a)&&0==k(a),H=(a,t,e)=>(V(a,t)||(a[t]=e()),a[t]),K=JSON.stringify,Q=JSON.parse,W=a=>""===a?void 0:O(a)?I(a,W):x(a)?j(a,W):a,Z=(a,t)=>a?.has(t)??!1,aa=a=>w(a)||0==(a=>a?.size??0)(a),ta=a=>[...a?.values()??[]],ea=(a,t)=>a?.forEach(t),na=(a,t)=>a?.delete(t),sa=Map,ia=a=>new sa(a),la=(a,t)=>a?.get(t),ra=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),oa=(a,t,e)=>w(e)?(na(a,t),a):a?.set(t,e),ca=(a,t,e,n)=>(Z(a,t)?n?.(la(a,t)):oa(a,t,e()),la(a,t)),da=(a,t,e,n,s=0)=>_((e?ca:la)(a,t[s],s>m(t)-2?e:ia),i=>{if(s>m(t)-2)return n?.(i)&&oa(a,t[s]),i;const l=da(i,t,e,n,s+1);return aa(i)&&oa(a,t[s]),l}),ua=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},ya=/^\d+$/,Ea=a=>new Set(O(a)||w(a)?a:[a]),wa=(a,t)=>a?.add(t),Na=ia(),Ta=ia(),_a=(a,t,n,s,i,l,r,o={},c=0,d=[])=>{let u,y,E,T=0,p=0,S=0;ca(Na,d,()=>0),ca(Ta,d,()=>[]);const A=ia(),[v,f,I,h,$]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!q(a)||!q(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!q(a)||!q(t),t.setContent]:L("Store type not supported by this Persister"))(r,a,c),[P,D,U]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?C(a):null)??e+t++,t=>{ya.test(t)&&m(a)<1e3&&b(a,t)}]})(),s=ia();return[(n,i,l,r=[],o=()=>[])=>{a??=K;const c=t(1);return oa(s,c,[n,i,l,r,o]),wa(da(i,l??[e],Ea),c),c},(t,n,...i)=>g(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?b(n,a):N(t[e])?ea(a,a=>s(a,e+1)):g([t[e],null],t=>s(la(a,t),e+1));return s(a,0),n})(t,n),t=>ea(t,t=>la(s,t)[0](a,...n??[],...i))),a=>_(la(s,a),([,t,i])=>(da(t,i??[e],void 0,t=>(na(t,a),aa(t)?1:0)),oa(s,a),n(a),i)),t=>_(la(s,t),([t,,e=[],n,s])=>{const i=(...l)=>{const r=m(l);r==m(e)?t(a,...l,...s(l)):N(e[r])?g(n[r]?.(...l)??[],a=>i(...l,a)):i(...l,e[r])};i()})]})(),x=a=>{a!=T&&(T=a,D(A,void 0,T))},X=t=>{(v&&O(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},M=async()=>{z()&&a.__?.[0]?.()&&await G()},F=async a=>(2!=T&&(x(1),p++,await H(async()=>{await R(async()=>{const e=await t();O(e)?X(e):a?$(a):L("Content is not an array: "+e)},()=>{a&&$(a)}),x(0),await M()})),K),V=async a=>(B(),await F(a),await R(async()=>y=await s(async(a,t)=>{t||a?2!=T&&(x(1),p++,X(t??a),x(0),await M()):await F()}),l),K),B=async()=>(y&&(await R(()=>i(y),l),y=void 0),K),G=async a=>(1!=T&&(x(2),S++,await H(async()=>{await R(()=>n(f,a),l),x(0)})),K),Y=async()=>(j(),await G(),E=a.addDidFinishTransactionListener(()=>{const a=I();h(a)&&G(a)}),K),j=async()=>(E&&(a.delListener(E),E=void 0),K),z=()=>!w(E),k=async(a=!1)=>{const[t,e]=a?[j,B]:[B,j];return await t(),await e(),K},H=async(...a)=>(b(la(Ta,d),...a),await(async()=>{if(!la(Na,d)){for(oa(Na,d,1);!w(u=C(la(Ta,d)));)await R(u,l);oa(Na,d,0)}})(),K),K={load:F,startAutoLoad:V,stopAutoLoad:B,isAutoLoading:()=>!w(y),save:G,startAutoSave:Y,stopAutoSave:j,isAutoSaving:z,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[Y,V]:[V,Y];return await e(a),await n(a),K},stopAutoPersisting:k,getStatus:()=>T,addStatusListener:a=>P(a,A),delListener:t=>(U(t),a),schedule:H,getStore:()=>a,destroy:()=>(la(Ta,d).splice(0,void 0),k()),getStats:()=>({loads:p,saves:S}),...o};return J(K)},pa="_",Oa="_id",Sa="SELECT",ma="WHERE",Aa="TABLE",va="ALTER "+Aa,La="FROM",Ra="DELETE "+La,ga=Sa+"*"+La,fa="pragma_",Ia="data_version",ha="schema_version",$a="pragma_table_",ba="CREATE "+Aa,Ca=a=>f(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${r(a,/"/g,'""')}"`),"."),Pa=(a,t=[1])=>f(I(a,()=>"$"+t[0]++),n),Da=(a,t=i)=>ma+`(${r(t,"$tableName",Ca(a))})`,Ua="ColumnName",xa="store",Xa="json",Ja=xa+"TableName",Ma=xa+"Id"+Ua,Fa=xa+Ua,Va="autoLoadIntervalSeconds",Ba="rowId"+Ua,Ga="tableId",Ya="tableName",ja="deleteEmptyColumns",za="deleteEmptyTable",ka="condition",qa={mode:Xa,[Va]:1},Ha={load:0,save:0,[Ya]:t+"_values"},Ka=(a,t,e,n,s)=>{const i=ia();return j(a,(a,l)=>{const r=S(z(F(t,p(a)?{[e]:a}:a)),0,k(t));N(r[0])||n(l,r[0])||(s(l,r[0]),oa(i,l,r))}),i},Qa=(a,t,e,s,l,r=Wa,o,c)=>{const d=ia();return[async()=>{d.clear(),I(await e(a,t),({tn:a,cn:t})=>wa(ca(d,a,Ea),t))},async(t,e,n)=>((a,t)=>Z(la(d,a),t))(t,e)?M($(I(await a(ga+Ca(t)+Da(t,n)),a=>[a[e],c?j(B(a,e),c):B(a,e)]),a=>!w(a[0])&&!q(a[1]))):{},async(t,e,s,c,u,y=!1,E=i)=>{const N=Ea();j(s??{},a=>I(X(a??{}),a=>wa(N,a)));const T=ta(N);if(!y&&u&&E==i&&h(T)&&Z(d,t))return await a("DROP "+Aa+Ca(t)),void oa(d,t);const _=la(d,t),p=Ea(ta(_));if(h(T)||(Z(d,t)?await v(I([e,...T],async(n,s)=>{na(p,n)||(await a(va+Ca(t)+"ADD"+Ca(n)+l),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ca(t)+`(${Ca(e)})`),wa(_,n))})):(await a(ba+Ca(t)+`(${Ca(e)}${l} PRIMARY KEY${f(I(T,a=>n+Ca(a)+l))});`),oa(d,t,Ea([e,...T])))),await v([...!y&&c?I(ta(p),async n=>{n!=e&&(await a(va+Ca(t)+"DROP"+Ca(n)),na(_,n))}):[]]),y)w(s)?await a(Ra+Ca(t)+Da(t,E)):await v(Y(s,async(n,s)=>{w(n)?await a(Ra+Ca(t)+Da(t,E)+`AND(${Ca(e)}=$1)`,[s]):h(T)||await r(a,t,e,X(n),{[s]:o?I(z(n),o):z(n)},_)}));else if(h(T))Z(d,t)&&await a(Ra+Ca(t)+Da(t,E));else{const n=$(ta(la(d,t)),a=>a!=e),i={},l=[];j(s??{},(a,t)=>{i[t]=I(n,t=>o?o(a?.[t]):a?.[t]),b(l,t)}),await r(a,t,e,n,i),await a(Ra+Ca(t)+Da(t,E)+`AND${Ca(e)}NOT IN(${Pa(l)})`,l)}},async t=>{let e;return await a("BEGIN"),await R(async()=>e=await t(),s),await a("END"),e}]},Wa=async(a,t,e,s,i)=>{const l=[1];await a("INSERT INTO"+Ca(t)+"("+((...a)=>f(I(a,Ca),n))(e,...s)+")VALUES"+f(Y(i,a=>"($"+l[0]+++","+Pa(a,l)+")"),n)+"ON CONFLICT("+Ca(e)+")DO UPDATE SET"+f(I(s,a=>Ca(a)+"=excluded."+Ca(a)),n),Y(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},Za=(a,t,e,n,s,i,l,[r,o,c],d,u,y,E,N,T)=>{const[_,p,O,S]=Qa(t,d,u,s,N,T),m=_a(a,()=>S(async()=>{return await _(),a=(await p(r,o))[pa]?.[c]??"null",W(Q(a));var a}),a=>S(async()=>{var t;await _(),await O(r,o,{[pa]:{[c]:(t=a()??null,K(t,(a,t)=>w(t)?"":t))}},!0,!0)}),e,n,s,l,{[E]:()=>y,destroy:async()=>(await m.stopAutoPersisting(),i(),m)},0,y);return m},at=(a,t,e,n,s,i,l,[r,o,[c,d,u]],y,E,N,T,_,p,O,S)=>{const[m,A,L,R]=Qa(t,y,E,s,_,p,O,S),g=(a,t)=>v(ra(o,async([e,n,s,i,l],r)=>{t&&!V(a,r)||await L(e,n,a[r],s,i,t,l)})),f=async(a,t)=>d?await L(u,Oa,{[pa]:a},!0,!0,t):null,I=_a(a,()=>R(async()=>{await m();const a=await(async()=>M($(await v(ra(r,async([a,t,e],n)=>[a,await A(n,t,e)])),a=>!q(a[1]))))(),t=await(async()=>c?(await A(u,Oa))[pa]:{})();return q(a)&&w(t)?void 0:[a,t]}),(a,t)=>R(async()=>{if(await m(),w(t)){const[t,e]=a();await g(t),await f(e)}else await g(t[0],!0),await f(t[1],!0)}),e,n,s,l,{[T]:()=>N,destroy:async()=>(await I.stopAutoPersisting(),i(),I)},0,N);return I},tt=(a,n,s,l,r,o,c,d,u,w,N="getDb",T)=>{let _,O,m;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,o),[v,L,g,f]=(a=>{const e=(a=>F(qa,p(a)?{[Ja]:a}:a??{}))(a),n=e[Va];if(e.mode==Xa){const a=e[Ja]??t;return[1,n,[a,e[Ma]??Oa,e[Fa]??xa],Ea(a)]}const{tables:{load:s={},save:l={}}={},values:r={}}=e,o=S(z(F(Ha,r)),0,k(Ha)),c=o[2],d=Ea(c),u=Ea(c),y=Ka(s,{[Ga]:null,[Ba]:Oa,[ka]:i},Ga,a=>Z(u,a),a=>wa(d,a)),E=Ka(l,{[Ya]:null,[Ba]:Oa,[ja]:0,[za]:0,[ka]:null},Ya,(a,t)=>Z(u,t),(a,t)=>wa(d,t));var w;return w=(a,t)=>t[4]??=la(y,t[0])?.[2]??i,ea(E,(a,t)=>w(0,a)),[0,n,[y,E,o],d]})(n);return(v?Za:at)(a,A,a=>{let t;const e=()=>t=setInterval(()=>R(async()=>{const[{d:t,s:e,c:n}]=await A(Sa+` ${Ia} d,${ha} s,TOTAL_CHANGES() c FROM ${fa}${Ia} JOIN ${fa}${ha}`);t==_&&e==O&&n==m||(E(_)||a(),_=t,O=e,m=n)}),1e3*L),n=()=>{_=O=m=null,y(t)},s=l(t=>{f.has(t)&&(n(),a(),e())});return e(),()=>{n(),r(s)}},a=>a(),c,d,u,g,ta(f),async(a,t)=>await a(Sa+` t.name tn,c.name cn FROM ${$a}list()t,${$a}info(t.name)c ${ma} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Pa(t)})ORDER BY t.name,c.name`,t),w,N,e,T,a=>(a=>!0===a)(a)?1:(a=>!1===a)(a)?0:a,void 0)},et=(a,t,n,s,i)=>"object"==typeof n&&"fragmented"===n.mode?st(a,t,n?.storagePrefix??e,i):tt(a,n,async(a,e=[])=>["BEGIN","END"].includes(a)?[]:(a=a.replace(/\$\d+/g,"?"),t.exec(a,...e).toArray()),()=>A,a=>a(),s,i,A,2,t,"getSqlStorage"),nt=()=>[{},e,0],st=(a,t,e="",n)=>{const s=e.replace(/[^a-zA-Z0-9_]/g,"_"),i=s+"tinybase_tables",r=s+"tinybase_values";return t.exec(`\n CREATE TABLE IF NOT EXISTS ${i} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${r} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `),_a(a,async()=>{const a=nt(),e=nt(),n=t.exec("SELECT * FROM "+i);for(const t of n.toArray()){const e=u(t.type),n=t.table_id?u(t.table_id):null,s=t.row_id?u(t.row_id):null,i=t.cell_id?u(t.cell_id):null,r=u(t.value_data),o=u(t.timestamp),c=d(t.hash),[y]=JSON.parse(r);if(e===l)if(n&&s&&i){const t=H(a[0],n,nt);H(t[0],s,nt)[0][i]=[y,o,c]}else if(n&&s){const t=H(a[0],n,nt),e=H(t[0],s,nt);ua(e,o,c)}else if(n){const t=H(a[0],n,nt);ua(t,o,c)}else ua(a,o,c)}const s=t.exec("SELECT * FROM "+r);for(const a of s.toArray()){const t=a.value_id?u(a.value_id):null,n=u(a.value_data),s=u(a.timestamp),i=d(a.hash),[l]=JSON.parse(n);t?e[0][t]=[l,s,i]:ua(e,s,i)}return[a,e]},async(a,[[e,n,s],[o,c,d]]=a())=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,null,null,null,JSON.stringify([0]),n,s),G(e,([a,e,n],s)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,null,null,JSON.stringify([0]),e,n),G(a,([a,e,n],r)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,r,null,JSON.stringify([0]),e,n),G(a,(a,e)=>{t.exec(`INSERT OR REPLACE INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,l,s,r,e,JSON.stringify([a[0]]),a[1],a[2])})})}),t.exec(`INSERT OR REPLACE INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,null,JSON.stringify([0]),c,d),G(o,(a,e)=>{t.exec(`INSERT OR REPLACE INTO ${r} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,e,JSON.stringify([a[0]]),a[1],a[2])})},A,A,n,2,{getSqlStorage:()=>t})};export{et as createDurableObjectSqlStoragePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",l="t",o=(a,t,e)=>a.replace(t,e),r=Promise,c=a=>(t,e,n)=>a(t)?n?.():e(t),d=Number,u=String,w=clearInterval,E=a=>null==a,y=a=>void 0===a,T=a=>null===a,_=a=>!0===a,N=c(E),v=c(y),p=t=>a(t)==s,L=a=>Array.isArray(a),m=a=>a.length,A=()=>{},O=async a=>r.all(a),S=a=>{throw Error(a)},g=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>a.forEach(t),f=(a,t="")=>a.join(t),I=(a,t)=>a.map(t),h=a=>0==m(a),R=(a,t)=>a.filter(t),b=(a,...t)=>a.push(...t),D=a=>a.shift(),C=(a,t)=>a?.has(t)??!1,U=a=>y(a)||0==(a=>a?.size??0)(a),M=a=>[...a?.values()??[]],P=(a,t)=>a?.forEach(t),F=(a,t)=>a?.delete(t),X=Object,x=a=>X.getPrototypeOf(a),B=X.entries,G=a=>!E(a)&&N(x(a),a=>a==X.prototype||E(x(a)),()=>!0),H=X.keys,Y=X.freeze,j=(a=[])=>X.fromEntries(a),W=(...a)=>X.assign({},...a),z=(a,t)=>t in a,J=(a,t)=>(delete a[t],a),V=(a,t)=>$(B(a),([a,e])=>t(e,a)),k=(a,t)=>I(B(a),([a,e])=>t(e,a)),q=(a,t)=>j(k(a,(a,e)=>[e,t(a,e)])),K=a=>m(H(a)),Q=a=>G(a)&&0==K(a),Z=(a,t,e)=>(z(a,t)||(a[t]=e()),a[t]),aa=JSON.stringify,ta=JSON.parse,ea=a=>aa(a,(a,t)=>y(t)?"":t),na=a=>sa(ta(a)),sa=a=>""===a?void 0:L(a)?I(a,sa):G(a)?q(a,sa):a,ia=a=>new Set(L(a)||y(a)?a:[a]),la=(a,t)=>a?.add(t),oa=Map,ra=a=>new oa(a),ca=(a,t)=>a?.get(t),da=(a,t)=>I([...a?.entries()??[]],([a,e])=>t(e,a)),ua=(a,t,e)=>y(e)?(F(a,t),a):a?.set(t,e),wa=(a,t,e,n)=>(C(a,t)?n?.(ca(a,t)):ua(a,t,e()),ca(a,t)),Ea=(a,t,e,n,s=0)=>v((e?wa:ca)(a,t[s],s>m(t)-2?e:ra),i=>{if(s>m(t)-2)return n?.(i)&&ua(a,t[s]),i;const l=Ea(i,t,e,n,s+1);return U(i)&&ua(a,t[s]),l}),ya=(a,t,e)=>{t>a[1]&&(a[1]=t),a[2]=e>>>0},Ta=/^\d+$/,_a=ra(),Na=ra(),va=(a,t,n,s,i,l,o,r={},c=0,d=[])=>{let u,w,E,_=0,N=0,p=0;wa(_a,d,()=>0),wa(Na,d,()=>[]);const A=ra(),[O,f,I,h,R]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.__[1],()=>t.__[2](!e),([[a],[t]])=>!Q(a)||!Q(t),t.setDefaultContent]:2!=a?[0,t._[7],t._[8],([a,t])=>!Q(a)||!Q(t),t.setContent]:S("Store type not supported by this Persister"))(o,a,c),[C,M,X]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?D(a):null)??e+t++,t=>{Ta.test(t)&&m(a)<1e3&&b(a,t)}]})(),s=ra();return[(n,i,l,o=[],r=()=>[])=>{a??=Z;const c=t(1);return ua(s,c,[n,i,l,o,r]),la(Ea(i,l??[e],ia),c),c},(t,n,...i)=>$(((a,t=[e])=>{const n=[],s=(a,e)=>e==m(t)?b(n,a):T(t[e])?P(a,a=>s(a,e+1)):$([t[e],null],t=>s(ca(a,t),e+1));return s(a,0),n})(t,n),t=>P(t,t=>ca(s,t)[0](a,...n??[],...i))),a=>v(ca(s,a),([,t,i])=>(Ea(t,i??[e],void 0,t=>(F(t,a),U(t)?1:0)),ua(s,a),n(a),i)),t=>v(ca(s,t),([t,,e=[],n,s])=>{const i=(...l)=>{const o=m(l);o==m(e)?t(a,...l,...s(l)):T(e[o])?$(n[o]?.(...l)??[],a=>i(...l,a)):i(...l,e[o])};i()})]})(),x=a=>{a!=_&&(_=a,M(A,void 0,_))},B=t=>{(O&&L(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},G=async()=>{k()&&a.__?.[0]?.()&&await z()},H=async a=>(2!=_&&(x(1),N++,await K(async()=>{await g(async()=>{const e=await t();L(e)?B(e):a?R(a):S("Content is not an array: "+e)},()=>{a&&R(a)}),x(0),await G()})),Z),j=async a=>(W(),await H(a),await g(async()=>w=await s(async(a,t)=>{t||a?2!=_&&(x(1),N++,B(t??a),x(0),await G()):await H()}),l),Z),W=async()=>(w&&(await g(()=>i(w),l),w=void 0),Z),z=async a=>(1!=_&&(x(2),p++,await K(async()=>{await g(()=>n(f,a),l),x(0)})),Z),J=async()=>(V(),await z(),E=a.addDidFinishTransactionListener(()=>{const a=I();h(a)&&z(a)}),Z),V=async()=>(E&&(a.delListener(E),E=void 0),Z),k=()=>!y(E),q=async(a=!1)=>{const[t,e]=a?[V,W]:[W,V];return await t(),await e(),Z},K=async(...a)=>(b(ca(Na,d),...a),await(async()=>{if(!ca(_a,d)){for(ua(_a,d,1);!y(u=D(ca(Na,d)));)await g(u,l);ua(_a,d,0)}})(),Z),Z={load:H,startAutoLoad:j,stopAutoLoad:W,isAutoLoading:()=>!y(w),save:z,startAutoSave:J,stopAutoSave:V,isAutoSaving:k,startAutoPersisting:async(a,t=!1)=>{const[e,n]=t?[J,j]:[j,J];return await e(a),await n(a),Z},stopAutoPersisting:q,getStatus:()=>_,addStatusListener:a=>C(a,A),delListener:t=>(X(t),a),schedule:K,getStore:()=>a,destroy:()=>(ca(Na,d).splice(0,void 0),q()),getStats:()=>({loads:N,saves:p}),...r};return Y(Z)},pa="_",La="_id",ma="SELECT",Aa="WHERE",Oa="TABLE",Sa="ALTER "+Oa,ga="FROM",$a="DELETE "+ga,fa=ma+"*"+ga,Ia="pragma_",ha="data_version",Ra="schema_version",ba="pragma_table_",Da="CREATE "+Oa,Ca=a=>f(I(((a,t="",e)=>a.split(t,e))(a,"."),a=>`"${o(a,/"/g,'""')}"`),"."),Ua=(a,t=[1])=>f(I(a,()=>"$"+t[0]++),n),Ma=(a,t=i)=>Aa+`(${o(t,"$tableName",Ca(a))})`,Pa="ColumnName",Fa="store",Xa="json",xa=Fa+"TableName",Ba=Fa+"Id"+Pa,Ga=Fa+Pa,Ha="autoLoadIntervalSeconds",Ya="rowId"+Pa,ja="tableId",Wa="tableName",za="deleteEmptyColumns",Ja="deleteEmptyTable",Va="condition",ka={mode:Xa,[Ha]:1},qa={load:0,save:0,[Wa]:t+"_values"},Ka=a=>L(a)?a:void 0,Qa=a=>_(a)||L(a),Za=(a,t,e,n,s)=>{const i=ra();return q(a,(a,l)=>{const o=(d=W(t,p(a)?{[e]:a}:a),r=X.values(d),c=K(t),r.slice(0,c));var r,c,d;T(o[0])||n(l,o[0])||(s(l,o[0]),ua(i,l,o))}),i},at=(a,t,e,s,l,o=tt,r,c)=>{const d=ra();return[async()=>{d.clear(),I(await e(a,t),({tn:a,cn:t})=>la(wa(d,a,ia),t))},async(t,e,n,s)=>{const i=y(s)?void 0:ia(s);return((a,t)=>C(ca(d,a),t))(t,e)?j(R(I(await a(fa+Ca(t)+Ma(t,n)),a=>{const t=a[e],n=c?q(J(a,e),c):J(a,e);return[t,y(i)?n:j(R(k(n,(a,t)=>[t,a]),([a])=>(a=>y(i)||C(i,a))(a)))]}),a=>!y(a[0])&&!Q(a[1]))):{}},async(t,e,s,c,u,w=!1,E=i,T)=>{const _=y(T)?void 0:ia(T),N=a=>y(_)||C(_,a),v=ia();q(s??{},a=>I(R(H(a??{}),N),a=>la(v,a)));const p=M(v);if(y(_)&&!w&&u&&E==i&&h(p)&&C(d,t))return await a("DROP "+Oa+Ca(t)),void ua(d,t);const L=ca(d,t),m=ia(R(M(L),a=>a==e||N(a)));if(h(p)||(C(d,t)?await O(I([e,...p],async(n,s)=>{F(m,n)||(await a(Sa+Ca(t)+"ADD"+Ca(n)+l),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Ca(t)+`(${Ca(e)})`),la(L,n))})):(await a(Da+Ca(t)+`(${Ca(e)}${l} PRIMARY KEY${f(I(p,a=>n+Ca(a)+l))});`),ua(d,t,ia([e,...p])))),await O([...!w&&c?I(M(m),async n=>{n!=e&&(await a(Sa+Ca(t)+"DROP"+Ca(n)),F(L,n))}):[]]),w)y(s)?y(_)&&await a($a+Ca(t)+Ma(t,E)):await O(k(s,async(n,s)=>{if(y(n))await a($a+Ca(t)+Ma(t,E)+`AND(${Ca(e)}=$1)`,[s]);else if(!h(p)){const i=R(H(n),N);h(i)||await o(a,t,e,i,{[s]:I(i,a=>r?r(n[a]):n[a])},L)}}));else if(h(p))y(_)&&C(d,t)&&await a($a+Ca(t)+Ma(t,E));else{const n=R(M(ca(d,t)),a=>a!=e&&N(a)),i={},l=[];q(s??{},(a,t)=>{i[t]=I(n,t=>r?r(a?.[t]):a?.[t]),b(l,t)}),await o(a,t,e,n,i,L),await a($a+Ca(t)+Ma(t,E)+`AND${Ca(e)}NOT IN(${Ua(l)})`,l)}},async t=>{let e;return await a("BEGIN"),await g(async()=>e=await t(),s),await a("END"),e}]},tt=async(a,t,e,s,i)=>{const l=[1];await a("INSERT INTO"+Ca(t)+"("+((...a)=>f(I(a,Ca),n))(e,...s)+")VALUES"+f(k(i,a=>"($"+l[0]+++","+Ua(a,l)+")"),n)+"ON CONFLICT("+Ca(e)+")DO UPDATE SET"+f(I(s,a=>Ca(a)+"=excluded."+Ca(a)),n),k(i,(a,t)=>[t,...I(a,a=>a??null)]).flat())},et=(a,t,e,n,s,i,l,[o,r,c],d,u,w,E,y,T)=>{const[_,N,v,p]=at(t,d,u,s,y,T),L=va(a,()=>p(async()=>(await _(),na((await N(o,r))[pa]?.[c]??"null"))),a=>p(async()=>{await _(),await v(o,r,{[pa]:{[c]:ea(a()??null)}},!0,!0)}),e,n,s,l,{[E]:()=>w,destroy:async()=>(await L.stopAutoPersisting(),i(),L)},0,w);return L},nt=(a,t,e,n,s,i,l,[o,r,[c,d,u,w,E]],T,_,N,v,p,L,m,A)=>{const[S,g,$,f]=at(t,T,_,s,p,L,m,A),h=(a,t)=>O(da(r,async([e,n,s,i,l],o)=>{t&&!z(a,o)||await $(e,n,a[o],s,i,t,l)})),b=(a,t,e)=>j(1==e?R(k(a,(a,t)=>[t,a]),([a])=>{return e=a,t.includes(e);var e}):R(I(t,t=>[t,a[t]]),([,a])=>!y(a))),D=async(a,t)=>d?await $(u,La,{[pa]:y(E)?a:b(a,E,t)},!0,!0,t,void 0,E):null,C=va(a,()=>f(async()=>{await S();const a=await(async()=>j(R(await O(da(o,async([a,t,e],n)=>[a,await g(n,t,e)])),a=>!Q(a[1]))))(),t=await(async()=>c?(await g(u,La,void 0,w))[pa]:{})();return Q(a)&&y(t)?void 0:[a,t]}),(a,t)=>f(async()=>{if(await S(),y(t)){const[t,e]=a();await h(t),await D(e)}else await h(t[0],!0),await D(t[1],!0)}),e,n,s,l,{[v]:()=>N,destroy:async()=>(await C.stopAutoPersisting(),i(),C)},0,N);return C},st=(a,n,s,l,o,r,c,d,u,y,T="getDb",N)=>{let v,L,m;const A=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,r),[O,S,$,f]=(a=>{const e=(a=>W(ka,p(a)?{[xa]:a}:a??{}))(a),n=e[Ha];if(e.mode==Xa){const a=e[xa]??t;return[1,n,[a,e[Ba]??La,e[Ga]??Fa],ia(a)]}const{tables:{load:s={},save:l={}}={},values:o={}}=e,r=W(qa,o),{load:c,save:d}=r,u=[Qa(c),Qa(d),r[Wa],Ka(c),Ka(d)],w=u[2],E=ia(w),y=ia(w),T=Za(s,{[ja]:null,[Ya]:La,[Va]:i},ja,a=>C(y,a),a=>la(E,a)),_=Za(l,{[Wa]:null,[Ya]:La,[za]:0,[Ja]:0,[Va]:null},Wa,(a,t)=>C(y,t),(a,t)=>la(E,t));var N;return N=(a,t)=>t[4]??=ca(T,t[0])?.[2]??i,P(_,(a,t)=>N(0,a)),[0,n,[T,_,u],E]})(n);return(O?et:nt)(a,A,a=>{let t;const e=()=>t=setInterval(()=>g(async()=>{const[{d:t,s:e,c:n}]=await A(ma+` ${ha} d,${Ra} s,TOTAL_CHANGES() c FROM ${Ia}${ha} JOIN ${Ia}${Ra}`);t==v&&e==L&&n==m||(E(v)||a(),v=t,L=e,m=n)}),1e3*S),n=()=>{v=L=m=null,w(t)},s=l(t=>{f.has(t)&&(n(),a(),e())});return e(),()=>{n(),o(s)}},a=>a(),c,d,u,$,M(f),async(a,t)=>await a(ma+` t.name tn,c.name cn FROM ${ba}list()t,${ba}info(t.name)c ${Aa} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Ua(t)})ORDER BY t.name,c.name`,t),y,T,e,N,a=>_(a)?1:(a=>!1===a)(a)?0:a,void 0)},it=(a,t,...e)=>a.exec(t,...e).toArray(),lt=(a,t,n,s,i)=>"object"==typeof n&&"fragmented"===n.mode?rt(a,t,n?.storagePrefix??e,i):st(a,n,async(a,e=[])=>["BEGIN","END"].includes(a)?[]:(a=a.replace(/\$\d+/g,"?"),it(t,a,...e)),()=>A,a=>a(),s,i,A,2,t,"getSqlStorage"),ot=()=>[{},e,0],rt=(a,t,e="",n)=>{const s=e.replace(/[^a-zA-Z0-9_]/g,"_"),i=s+"tinybase_tables",o=s+"tinybase_values",r=`INSERT INTO ${i} (type, table_id, row_id, cell_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?, ?, ?, ?)`,c=`INSERT INTO ${o} (value_id, value_data, timestamp, hash) VALUES (?, ?, ?, ?)`,w=(a,t)=>ea([a,t]);t.exec(`\n CREATE TABLE IF NOT EXISTS ${i} (\n type TEXT NOT NULL,\n table_id TEXT,\n row_id TEXT,\n cell_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL,\n PRIMARY KEY (type, table_id, row_id, cell_id)\n );\n \n CREATE TABLE IF NOT EXISTS ${o} (\n value_id TEXT,\n value_data TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n hash INTEGER NOT NULL\n );\n `);const E=(a,t,e)=>T(e)?t+" IS NULL":(b(a,e),t+" = ?"),y=(a,e,n,s,o,c)=>{((a,e,n)=>{const s=[l];t.exec(`DELETE FROM ${i} WHERE type = ? AND `+E(s,"table_id",a)+" AND "+E(s,"row_id",e)+" AND "+E(s,"cell_id",n),...s)})(a,e,n),t.exec(r,l,a,e,n,s,o,c)},_=(a,e,n,s)=>{(a=>{const e=[];t.exec(`DELETE FROM ${o} WHERE `+E(e,"value_id",a),...e)})(a),t.exec(c,a,e,n,s)};return va(a,async()=>{const a=ot(),e=ot(),n=ia(),s=it(t,"SELECT * FROM "+i);return $(s,t=>{const e=t.table_id?u(t.table_id):null,s=t.row_id?u(t.row_id):null,i=t.cell_id?u(t.cell_id):null,l=u(t.value_data),o=u(t.timestamp),r=d(t.hash),[c]=na(l);e&&s&&!i&&G(c)&&(Z(a[0],e,ot)[0][s]=[c,o,r],la(n,w(e,s)))}),$(s,t=>{const e=u(t.type),s=t.table_id?u(t.table_id):null,i=t.row_id?u(t.row_id):null,o=t.cell_id?u(t.cell_id):null,r=u(t.value_data),c=u(t.timestamp),E=d(t.hash),[y]=na(r);if(e===l)if(s&&i&&o){if(!C(n,w(s,i))){const t=Z(a[0],s,ot);Z(t[0],i,ot)[0][o]=[y,c,E]}}else if(s&&i){if(!G(y)){const t=Z(a[0],s,ot),e=Z(t[0],i,ot);ya(e,c,E)}}else if(s){const t=Z(a[0],s,ot);ya(t,c,E)}else ya(a,c,E)}),$(it(t,"SELECT * FROM "+o),a=>{const t=a.value_id?u(a.value_id):null,n=u(a.value_data),s=u(a.timestamp),i=d(a.hash),[l]=na(n);t?e[0][t]=[l,s,i]:ya(e,s,i)}),[a,e]},async(a,[[e,n,s],[o,r,c]]=a())=>{const[d]=a()[0];y(null,null,null,ea([0]),n,s),V(e,([a,e,n],s)=>{y(s,null,null,ea([0]),e,n),V(a,([a,e,n],o)=>{const r=d[s]?.[0]?.[o]?.[0]??a;((a,e)=>{t.exec(`DELETE FROM ${i} WHERE type = ? AND table_id = ? AND row_id = ? AND cell_id IS NOT NULL`,l,a,e)})(s,o),y(s,o,null,ea([r]),e,n)})}),_(null,ea([0]),r,c),V(o,(a,t)=>{_(t,ea([a[0]]),a[1],a[2])})},A,A,n,2,{getSqlStorage:()=>t})};export{lt as createDurableObjectSqlStoragePersister};