orcaq 1.1.6 → 1.1.7

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 (154) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Lh0RfwhV.js → 1VXrIDkr.js} +1 -1
  3. package/.output/public/_nuxt/{ZVYA9HBl.js → 1fIGBJPQ.js} +1 -1
  4. package/.output/public/_nuxt/{BbawOYVr.js → 1kY3DHv7.js} +1 -1
  5. package/.output/public/_nuxt/{DDsaDrGo.js → 2TwRWQjG.js} +1 -1
  6. package/.output/public/_nuxt/{wrneOCBW.js → 39ZZCZCn.js} +1 -1
  7. package/.output/public/_nuxt/{BmEIj9l9.js → 3vYvhEat.js} +1 -1
  8. package/.output/public/_nuxt/{CEoM97rJ.js → 9bnMBg54.js} +1 -1
  9. package/.output/public/_nuxt/{ZNDxw-7x.js → B-u0WX5Q.js} +1 -1
  10. package/.output/public/_nuxt/{uDsvlLN0.js → B41tp0B8.js} +1 -1
  11. package/.output/public/_nuxt/{4LC09zKL.js → BCm7jnPt.js} +1 -1
  12. package/.output/public/_nuxt/{D29mzs5t.js → BFMjnjgH.js} +1 -1
  13. package/.output/public/_nuxt/{BEvswgw7.js → BGAd-CMD.js} +1 -1
  14. package/.output/public/_nuxt/{CP-7VdtS.js → BG_B-fo0.js} +1 -1
  15. package/.output/public/_nuxt/{Dd89Vyx8.js → BLEKzUmC.js} +1 -1
  16. package/.output/public/_nuxt/{DoNLWeqB.js → BN2mQ8OV.js} +1 -1
  17. package/.output/public/_nuxt/{DP6Az3fC.js → BNnChlxR.js} +1 -1
  18. package/.output/public/_nuxt/{BKAEFZqP.js → BNyWhB4W.js} +1 -1
  19. package/.output/public/_nuxt/{Bibtvqd8.js → BO-QgaRL.js} +1 -1
  20. package/.output/public/_nuxt/{DViCRsmA.js → BOVFFCPB.js} +1 -1
  21. package/.output/public/_nuxt/{BWg3wiuc.js → BRVpLa1E.js} +1 -1
  22. package/.output/public/_nuxt/{BJ8qQpib.js → BV4g1sVY.js} +1 -1
  23. package/.output/public/_nuxt/{_TExiQQQ.js → BXziI6Bt.js} +1 -1
  24. package/.output/public/_nuxt/{Df4wU3r0.js → BZQUF1W4.js} +1 -1
  25. package/.output/public/_nuxt/BZmEvFAZ.js +28 -0
  26. package/.output/public/_nuxt/B_G752SV.js +20 -0
  27. package/.output/public/_nuxt/{BusLuQ4Q.js → Ba_fqsW2.js} +1 -1
  28. package/.output/public/_nuxt/{DZFq5yqu.js → BbzZxPNQ.js} +1 -1
  29. package/.output/public/_nuxt/{BxZgIpkD.js → BhT0iBlH.js} +1 -1
  30. package/.output/public/_nuxt/{CoX1_N4R.js → Bhm1GL_M.js} +1 -1
  31. package/.output/public/_nuxt/{27ZsWTm2.js → BiSZmDoN.js} +1 -1
  32. package/.output/public/_nuxt/{DZVfXu09.js → BjK8Fug8.js} +1 -1
  33. package/.output/public/_nuxt/{G40WRC_L.js → BjpSpz5C.js} +1 -1
  34. package/.output/public/_nuxt/{Bok35x_B.js → BkqB6n0T.js} +1 -1
  35. package/.output/public/_nuxt/{6NXhlm49.js → BoPjUGS6.js} +1 -1
  36. package/.output/public/_nuxt/{B10QBDL6.js → BtwwqY0e.js} +1 -1
  37. package/.output/public/_nuxt/{FHx3Ejt6.js → BvD9dW-2.js} +1 -1
  38. package/.output/public/_nuxt/{Cvkyd5iW.js → Bw-4PosZ.js} +1 -1
  39. package/.output/public/_nuxt/C0l_59dE.js +1 -0
  40. package/.output/public/_nuxt/{__PEYcIB.js → C1TOiVRQ.js} +1 -1
  41. package/.output/public/_nuxt/{BoUZO_NV.js → C7A87LE3.js} +1 -1
  42. package/.output/public/_nuxt/{o60RgyTd.js → C80Zs8U0.js} +1 -1
  43. package/.output/public/_nuxt/{BnZ5qYkP.js → CB56S0b2.js} +9 -9
  44. package/.output/public/_nuxt/{CNPNWuzz.js → CBgbjsPd.js} +1 -1
  45. package/.output/public/_nuxt/{BCazdlgN.js → CCk2r9DD.js} +1 -1
  46. package/.output/public/_nuxt/{CCOlJAKS.js → CFZerEKx.js} +2 -2
  47. package/.output/public/_nuxt/{Bgj8Q52i.js → CG4v011f.js} +1 -1
  48. package/.output/public/_nuxt/{C4-wpUAK.js → CJnTtXrv.js} +1 -1
  49. package/.output/public/_nuxt/{DHyymmeR.js → CRDIOG8r.js} +1 -1
  50. package/.output/public/_nuxt/{XETGYn3c.js → CSPqdI4x.js} +1 -1
  51. package/.output/public/_nuxt/{DyDU0wFf.js → CTYqoFvv.js} +1 -1
  52. package/.output/public/_nuxt/{BbLqUOHs.js → CWGzL6OE.js} +1 -1
  53. package/.output/public/_nuxt/{CZLVBTJx.js → CYJEOEaU.js} +1 -1
  54. package/.output/public/_nuxt/{BTvOPFKG.js → CYu-xp_f.js} +1 -1
  55. package/.output/public/_nuxt/CZvnl0uO.js +52 -0
  56. package/.output/public/_nuxt/{DsPClaxV.js → CadjlDLt.js} +1 -1
  57. package/.output/public/_nuxt/{BJoSd_uV.js → CczQKYUP.js} +1 -1
  58. package/.output/public/_nuxt/{CHAVZu6b.js → CeXr_3vU.js} +2 -2
  59. package/.output/public/_nuxt/{BAasx5OS.js → Ch-A9iSC.js} +1 -1
  60. package/.output/public/_nuxt/{Bap1X7GD.js → Cj9tYr3P.js} +1 -1
  61. package/.output/public/_nuxt/Clm3Z8VL.js +1 -0
  62. package/.output/public/_nuxt/{F8eHh68O.js → CpkrwN3Q.js} +8 -8
  63. package/.output/public/_nuxt/{CO0Pa76w.js → CrwM3gOU.js} +1 -1
  64. package/.output/public/_nuxt/{DeVs4gEL.js → Culm7V2R.js} +1 -1
  65. package/.output/public/_nuxt/{Cl3VX8Um.js → CxZK-Vs6.js} +1 -1
  66. package/.output/public/_nuxt/{DLA-ioQ4.js → Cym7bWgs.js} +1 -1
  67. package/.output/public/_nuxt/CzBFxx8v.js +1 -0
  68. package/.output/public/_nuxt/{BCa-NKh0.js → D0oaRUYx.js} +1 -1
  69. package/.output/public/_nuxt/{DgGwe7jd.js → D7uoAo-G.js} +133 -133
  70. package/.output/public/_nuxt/{CvDZBOay.js → D8KJQqug.js} +1 -1
  71. package/.output/public/_nuxt/{DlymFQ5D.js → D8Z5BXgG.js} +3 -3
  72. package/.output/public/_nuxt/{DdbhVPqD.js → DDK9-_jm.js} +1 -1
  73. package/.output/public/_nuxt/{CnQob-tn.js → DDQU7vSH.js} +1 -1
  74. package/.output/public/_nuxt/{BuSZbOQO.js → DEjwIQuc.js} +1 -1
  75. package/.output/public/_nuxt/{yLATXAxG.js → DLIUYAz9.js} +1 -1
  76. package/.output/public/_nuxt/{DYPm3mWQ.js → DQdL5Jcl.js} +1 -1
  77. package/.output/public/_nuxt/{EZ0owjER.js → DRuCf0Sx.js} +1 -1
  78. package/.output/public/_nuxt/DSEkO8kW.js +1 -0
  79. package/.output/public/_nuxt/{DYqShb5v.js → DSOwr8Hs.js} +4 -4
  80. package/.output/public/_nuxt/{Cf6n9dsT.js → DStg2VwN.js} +1 -1
  81. package/.output/public/_nuxt/{Ci7hrFNN.js → DTlu-CJn.js} +1 -1
  82. package/.output/public/_nuxt/{CCK1so3F.js → DUvUg_V7.js} +1 -1
  83. package/.output/public/_nuxt/{CBjcd4cE.js → D_fdC3mJ.js} +1 -1
  84. package/.output/public/_nuxt/{BhzzQZRC.js → Da1F0IxL.js} +1 -1
  85. package/.output/public/_nuxt/{C6bwwZAc.js → DcXAnOS1.js} +1 -1
  86. package/.output/public/_nuxt/DdtQIDaq.js +1 -0
  87. package/.output/public/_nuxt/Dfz8k_Rn.js +1 -0
  88. package/.output/public/_nuxt/{Dpm6rnHk.js → DitYzGT4.js} +1 -1
  89. package/.output/public/_nuxt/{NMm6Vanu.js → Djh3G2Nf.js} +1 -1
  90. package/.output/public/_nuxt/DmWFeTaU.js +1 -0
  91. package/.output/public/_nuxt/{x85BV7y_.js → DtgJAz2h.js} +1 -1
  92. package/.output/public/_nuxt/{3jfBYqJb.js → DuKway_J.js} +1 -1
  93. package/.output/public/_nuxt/{7nPLTDFM.js → DxF9DsEl.js} +1 -1
  94. package/.output/public/_nuxt/{C9ZBCJdc.js → DyFXtlg0.js} +1 -1
  95. package/.output/public/_nuxt/DzN4YRfa.js +7 -0
  96. package/.output/public/_nuxt/{B_hWP06g.js → DzaPC1WB.js} +1 -1
  97. package/.output/public/_nuxt/{wH-P-_6A.js → DzjHXopz.js} +1 -1
  98. package/.output/public/_nuxt/{CE0zlNDo.js → LUfaevBS.js} +1 -1
  99. package/.output/public/_nuxt/{DRX1aIGD.js → RFRrMFyH.js} +1 -1
  100. package/.output/public/_nuxt/{CROH8wgk.js → RTN5rY4m.js} +1 -1
  101. package/.output/public/_nuxt/{Un5zjlKE.js → XVZ0obUR.js} +1 -1
  102. package/.output/public/_nuxt/{B5HZeat4.js → Z5g5B4NJ.js} +1 -1
  103. package/.output/public/_nuxt/_ltJfz1p.js +1 -0
  104. package/.output/public/_nuxt/builds/latest.json +1 -1
  105. package/.output/public/_nuxt/builds/meta/1cbed594-12e2-48e6-bea9-7a9159c3c1d3.json +1 -0
  106. package/.output/public/_nuxt/{DtOg0Asw.js → dkyHOJLf.js} +1 -1
  107. package/.output/public/_nuxt/entry.D1DMaixs.css +1 -0
  108. package/.output/public/_nuxt/{habs8oz6.js → gWmEw6BT.js} +1 -1
  109. package/.output/public/_nuxt/ixgiI20S.js +1 -0
  110. package/.output/public/_nuxt/{C6CFIGob.js → jJeqAxmP.js} +1 -1
  111. package/.output/public/_nuxt/{P_2SRa71.js → lisFd8W1.js} +2 -2
  112. package/.output/public/_nuxt/{CoQ_oOia.js → nrlEwpIH.js} +1 -1
  113. package/.output/public/_nuxt/{6wO6CbCo.js → uHyBIwWw.js} +1 -1
  114. package/.output/public/_nuxt/{dDqgUqt5.js → vGkKA7iH.js} +1 -1
  115. package/.output/public/_nuxt/{C445d10Z.js → z1xPtaLw.js} +1 -1
  116. package/.output/server/chunks/_/registry.mjs +116 -0
  117. package/.output/server/chunks/_/registry.mjs.map +1 -0
  118. package/.output/server/chunks/_/{native-backup.mjs → runtime.mjs} +325 -164
  119. package/.output/server/chunks/_/runtime.mjs.map +1 -0
  120. package/.output/server/chunks/_/{native-backup-jobs.mjs → service.mjs} +185 -248
  121. package/.output/server/chunks/_/service.mjs.map +1 -0
  122. package/.output/server/chunks/build/client.manifest.mjs +734 -723
  123. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  124. package/.output/server/chunks/nitro/nitro.mjs +659 -652
  125. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs +7 -2
  126. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs.map +1 -1
  127. package/.output/server/chunks/routes/api/database-export/export-database.mjs +4 -3
  128. package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
  129. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs +1 -20
  130. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs.map +1 -1
  131. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs +1 -20
  132. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/database-import/import-database.mjs +14 -3
  134. package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs +1 -20
  136. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs.map +1 -1
  137. package/.output/server/package.json +1 -1
  138. package/package.json +1 -1
  139. package/.output/public/_nuxt/4OV_5qQE.js +0 -1
  140. package/.output/public/_nuxt/B3iNzG14.js +0 -1
  141. package/.output/public/_nuxt/Bf2bW_MY.js +0 -7
  142. package/.output/public/_nuxt/C7C1kq_N.js +0 -1
  143. package/.output/public/_nuxt/CN8b9qPP.js +0 -1
  144. package/.output/public/_nuxt/CUws2Uv7.js +0 -1
  145. package/.output/public/_nuxt/Cl5p4EQY.js +0 -1
  146. package/.output/public/_nuxt/D9MMtvTu.js +0 -52
  147. package/.output/public/_nuxt/DM8LJTsg.js +0 -1
  148. package/.output/public/_nuxt/ORit_vRp.js +0 -1
  149. package/.output/public/_nuxt/ZhP2FY6Y.js +0 -1
  150. package/.output/public/_nuxt/builds/meta/47c294b1-d6b3-4974-bd50-5046ae0a393e.json +0 -1
  151. package/.output/public/_nuxt/dSX5D8ur.js +0 -28
  152. package/.output/public/_nuxt/entry.CGwcggc4.css +0 -1
  153. package/.output/server/chunks/_/native-backup-jobs.mjs.map +0 -1
  154. package/.output/server/chunks/_/native-backup.mjs.map +0 -1
@@ -1,28 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CO0Pa76w.js","./DgGwe7jd.js","./entry.CGwcggc4.css"])))=>i.map(i=>d[i]);
2
- var Gn=Object.defineProperty;var Yn=(t,e,n)=>e in t?Gn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var ue=(t,e,n)=>Yn(t,typeof e!="symbol"?e+"":e,n);import{R as Z,d as X,cq as Jn,Z as Zn,ak as Xn,k as A,o as g,w as v,D as _e,g as i,p as vn,dJ as Yt,dI as es,U as ts,V as ns,W as ss,X as as,e6 as os,L as gn,e7 as ct,e8 as rs,c as N,bG as ls,$ as qe,j as Ze,m as h,n as re,f,bH as is,cg as $t,e as F,z as P,l as U,bL as zt,bR as Mt,bM as Lt,bN as It,A as ve,bO as us,t as V,bQ as yn,a4 as Oe,bc as At,F as ne,s as he,a9 as ye,aa as be,a7 as xe,r as j,i as dt,e9 as cs,ea as ds,eb as bn,ec as xn,ed as ms,be as Cn,ee as ps,ef as fs,e1 as hs,e2 as vs,e3 as gs,eg as Ye,d9 as ys,an as de,ao as Pt,aJ as Ot,aL as Be,q as bs,aK as xs,a8 as Ue,as as Cs,ar as We,cC as wn,ae as ft,G as ws,aj as ht,aI as Xe,av as Ss,aA as _s,eh as Jt,ah as Sn,ei as Es,ej as Ft,ek as Ts,el as Rs,em as ks,en as Ns,eo as $s,M as zs,ep as _n,aY as Dt,aZ as xt,eq as Ms,a$ as Ls,a_ as Is,er as As,b0 as Ps,b1 as Os,es as Fs,b2 as Ds,et as Zt,eu as Bs,ev as Vs,b4 as qs,ew as Ks,bw as Hs,T as En,ex as Us,O as Ws,K as Pe,E as js,bd as Qs,b5 as Gs,af as Bt,b6 as Ys,b7 as Js,b8 as Zs,b9 as Xs,ba as ea,bb as ta,aX as Tn,cK as Xt,co as na,bf as sa,bx as aa,by as oa,bz as ra,ey as la,aE as ia,a as ua,aD as ca,ck as da}from"./DgGwe7jd.js";import{_ as ma,u as pa}from"./G40WRC_L.js";import{_ as fa}from"./NMm6Vanu.js";import{_ as ha}from"./o60RgyTd.js";import{_ as Ke}from"./DP6Az3fC.js";import{b as Rn,c as kn,d as Nn,C as oe,e as va,f as ot,g as ga,h as ya,i as ba,j as xa}from"./6wO6CbCo.js";import{b as Ca,d as wa,e as Sa}from"./BhzzQZRC.js";import{a as Et,f as et,b as tt}from"./D9Ycznwo.js";import{D as _a,g as Ea,h as Ta,j as Ra,_ as en,e as tn,f as nn}from"./DZFq5yqu.js";import{M as ka}from"./DyDU0wFf.js";import{p as Na,D as $a,o as za,q as Ct,r as Ma,a as La,s as $n,t as Ia,v as Aa,w as Pa,x as Oa,_ as Fa}from"./F8eHh68O.js";import{_ as sn}from"./CoX1_N4R.js";import{b as wt,c as St}from"./Dpm6rnHk.js";import{_ as Da}from"./Un5zjlKE.js";import{s as Ba}from"./yLATXAxG.js";import{_ as vt}from"./CnQob-tn.js";import{i as Va}from"./uDsvlLN0.js";import{n as qa,i as Ka,j as Ha,k as Ua,l as Wa,s as ja,m as Qa,a as Ga,_ as zn}from"./Bok35x_B.js";import{H as Ya}from"./__PEYcIB.js";import{r as Ja}from"./DoNLWeqB.js";import{c as Za,a as Xa,m as eo}from"./BoUZO_NV.js";import"./B5rxJs06.js";import"./CE0zlNDo.js";import"./C6CFIGob.js";import"./BnZ5qYkP.js";import"./dDqgUqt5.js";import"./CoQ_oOia.js";import"./DDsaDrGo.js";import"./6NXhlm49.js";import"./BVmBXPoG.js";import"./Cl3VX8Um.js";import"./CP-7VdtS.js";import"./BTvOPFKG.js";import"./XETGYn3c.js";import"./EZ0owjER.js";class to{constructor(e){this.rawError=e}get nomaltliztionErrror(){var n;const e=((n=this.rawError)==null?void 0:n.message)||"Error parsing SQL execution.";if(!this.rawError)return{message:e};switch(this.rawError.dbType){case Z.POSTGRES:return this.normalizePostgresError(e);case Z.MYSQL:return this.normalizeMysqlError(e);case Z.SQLITE3:return this.normalizeSqliteError(e);case Z.MARIADB:return this.normalizeMysqlError(e);case Z.ORACLE:return this.normalizeOracleError(e);default:return{message:e}}}normalizePostgresError(e){let n;return this.rawError.position&&(n=typeof this.rawError.position=="string"?Number(this.rawError.position):this.rawError.position,Number.isNaN(n)&&(n=void 0)),{message:this.rawError.message||e,position:n,hint:this.rawError.hint}}normalizeMysqlError(e){return{message:this.rawError.sqlMessage||this.rawError.message||e,hint:this.rawError.code?`Error Code: ${this.rawError.code}`:void 0}}normalizeSqliteError(e){return{message:this.rawError.message||e,hint:this.rawError.code?`Error Code: ${this.rawError.code}`:void 0}}normalizeOracleError(e){return{message:this.rawError.message||e,hint:this.rawError.errorNum?`ORA-${String(this.rawError.errorNum).padStart(5,"0")}`:void 0}}}var no=X({__name:"MenuCheckboxItem",props:{modelValue:{type:[Boolean,String],required:!1,default:!1},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select","update:modelValue"],setup(t,{emit:e}){const n=t,s=e,a=Jn(n,["modelValue"]),o=Zn(a),r=Xn(n,"modelValue",s);return Na({modelValue:r}),(l,u)=>(g(),A(ka,vn({role:"menuitemcheckbox"},i(o),{"aria-checked":i(Yt)(i(r))?"mixed":i(r),"data-state":i(es)(i(r)),onSelect:u[0]||(u[0]=async d=>{s("select",d),i(Yt)(i(r))?r.value=!0:r.value=!i(r)})}),{default:v(()=>[_e(l.$slots,"default",{modelValue:i(r)})]),_:3},16,["aria-checked","data-state"]))}}),so=no,ao=X({__name:"DropdownMenuCheckboxItem",props:{modelValue:{type:[Boolean,String],required:!1},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select","update:modelValue"],setup(t,{emit:e}){const n=t,a=ts(e);return ns(),(o,r)=>(g(),A(i(so),ss(as({...n,...i(a)})),{default:v(()=>[_e(o.$slots,"default")]),_:3},16))}}),oo=ao;function Vt(t,e){t.dispatch(os(t.state,e))}function ro(t){return t===Z.POSTGRES?"postgres-positional":t===Z.ORACLE?"oracle-positional":"question-mark"}function lo(t,e,n,s={}){if(!Object.keys(e).length)return t;const a=s.style??ro(n);let o=s.startIndex??1,r="",l=0;for(;l<t.length;){const u=t[l];if(u==="'"){const d=l++;for(;l<t.length;)if(t[l]==="'"&&t[l+1]==="'")l+=2;else if(t[l]==="'"){l++;break}else l++;r+=t.slice(d,l);continue}if(u==='"'){const d=l++;for(;l<t.length&&t[l]!=='"';)l++;l++,r+=t.slice(d,l);continue}if(u==="$"&&n===Z.POSTGRES){const d=l;let p="$",c=l+1;for(;c<t.length&&t[c]!=="$"&&/[a-zA-Z0-9_]/.test(t[c]);)p+=t[c++];if(c<t.length&&t[c]==="$"){p+="$",c++;const m=t.indexOf(p,c);if(m!==-1){l=m+p.length,r+=t.slice(d,l);continue}}}if(u===":"&&l+1<t.length&&/[a-zA-Z_]/.test(t[l+1])){const d=l++;let p="";for(;l<t.length&&/[a-zA-Z0-9_]/.test(t[l]);)p+=t[l++];p in e?a==="postgres-positional"?r+=`$${o++}`:a==="oracle-positional"?r+=`:${o++}`:r+="?":r+=t.slice(d,l);continue}r+=u,l++}return r}function io(t,e,n){if(t===e)return n;let s=0,a=0;for(;a<n&&s<t.length;){const o=t[s],r=e[a],l=/\s/.test(o),u=/\s/.test(r);if(l&&u){s++,a++;continue}if(o===":"&&(r==="$"||r==="?"||r===":")){for(;s<t.length&&/[:a-zA-Z0-9_]/.test(t[s]);)s++;if(r==="$")for(;a<e.length&&/[$0-9]/.test(e[a]);)a++;else if(r===":")for(;a<e.length&&/[:0-9]/.test(e[a]);)a++;else a++;if(a>=n)return s;continue}o===r?(s++,a++):s++}return s}function an({editorView:t,originalSql:e,statementFrom:n,fileParameters:s={},errorDetail:a,clientType:o,queryPrefix:r}){if(!t||!a)return;const{message:l,position:u}=a.normalizeError||new to(a).nomaltliztionErrror;if(!u){co(t,n,e,l);return}const d=`${r}${e}`,p=lo(d,s,o),c=io(d,p,u),m=Math.max(c-1,0)-((r==null?void 0:r.length)||0),{from:y,to:w}=uo(e,n,m);Vt(t,[{from:y,to:w,severity:"error",message:l}])}function uo(t,e,n){let s=n;for(;s<t.length&&!/[\s\n\r\t]/.test(t[s]);)s++;return{from:e+n,to:e+s}}function co(t,e,n,s){const a=[{from:e,to:e+n.length,severity:"error",message:s}];Vt(t,a)}function mo(t){Vt(t,[])}const po=t=>gn.of([{key:"Mod-Enter",mac:"Cmd-Enter",run:e=>{const{currentStatements:n}=ct(e),s=rs(e);return n.length&&t({currentStatements:n,treeNodes:s||[]}),!0},preventDefault:!0}]),fo=X({__name:"DropdownMenuCheckboxItem",props:{modelValue:{type:[Boolean,String]},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},emits:["select","update:modelValue"],setup(t,{emit:e}){const n=t,s=e,a=N(()=>{const{class:l,...u}=n;return u}),o=ls(a,s),r=qe(_a,N(()=>"default"));return(l,u)=>(g(),A(i(oo),vn({"data-slot":"dropdown-menu-checkbox-item","data-size":i(r)},i(o),{class:i(Ze)("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",i(Ea)[i(r)],n.class)}),{default:v(()=>[h("span",{class:re(i(Ze)("pointer-events-none absolute flex items-center justify-center",i(Ta)[i(r)]))},[f(i($a),null,{default:v(()=>[f(i(is),{class:re(i(Ra)[i(r)])},null,8,["class"])]),_:1})],2),_e(l.$slots,"default")]),_:3},16,["data-size","class"]))}}),ho={},vo={class:"p-4 flex flex-col items-center justify-center h-full text-center space-y-4"},go={class:"text-muted-foreground space-y-3"},yo={class:"list-disc text-sm list-inside text-left space-y-2"};function bo(t,e){const n=ha,s=fa,a=Ke;return g(),F("div",vo,[f(s,{class:"rounded-2xl size-20 shadow-md"},{default:v(()=>[f(n,{src:"/logo.png",alt:"@unovue"})]),_:1}),h("div",go,[e[7]||(e[7]=h("h2",{class:"text-md font-normal text-foreground"},"Getting Started",-1)),h("ol",yo,[e[5]||(e[5]=h("li",null,[h("span",{class:"font-normal text-foreground"},"Write your query"),P(" in the editor. ")],-1)),e[6]||(e[6]=h("li",null,[h("span",{class:"font-normal text-foreground"},"Click inside your query"),P(" to select it. ")],-1)),h("li",null,[e[1]||(e[1]=P(" Click ")),e[2]||(e[2]=h("span",{class:"text-foreground font-normal"},"'Execute current'",-1)),e[3]||(e[3]=P(" or use shortcut ")),f(a,{class:"font-normal border rounded-md p-1 px-1.5 text-foreground"},{default:v(()=>e[0]||(e[0]=[P("⌘↵")])),_:1}),e[4]||(e[4]=P(" to run the query. "))])])])])}const xo=$t(ho,[["render",bo]]),Co={class:"font-medium text-foreground"},wo={class:"font-medium text-foreground"},So=X({__name:"RawQueryConnectionConfirmDialog",props:{open:{type:Boolean},targetConnectionName:{},currentConnectionName:{}},emits:["confirm","cancel"],setup(t,{emit:e}){const n=e,s=()=>{n("confirm")},a=()=>{n("cancel")};return(o,r)=>{const l=ve;return o.open?(g(),A(i(zt),{key:0,open:o.open,"onUpdate:open":r[0]||(r[0]=u=>!u&&a())},{default:v(()=>[f(i(Mt),{class:"max-w-md"},{default:v(()=>[f(i(Lt),null,{default:v(()=>[f(i(It),{class:"flex items-center gap-2"},{default:v(()=>[f(l,{name:"hugeicons:alert-02",class:"size-5 text-amber-500"}),r[1]||(r[1]=P(" Confirm query execution "))]),_:1}),f(i(us),null,{default:v(()=>[r[2]||(r[2]=P(" This query will execute on ")),h("span",Co,V(o.targetConnectionName),1),r[3]||(r[3]=P(" . The current connection is ")),h("span",wo,V(o.currentConnectionName),1),r[4]||(r[4]=P(" . Make sure before executing. "))]),_:1})]),_:1}),f(i(yn),null,{default:v(()=>[f(i(Oe),{variant:"outline",onClick:a},{default:v(()=>r[5]||(r[5]=[P("Cancel")])),_:1}),f(i(Oe),{class:"gap-1",onClick:s},{default:v(()=>[f(l,{name:"lucide:play",class:"size-4"}),r[6]||(r[6]=P(" Execute "))]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])):U("",!0)}}}),_o={key:1,class:"text-xs text-muted-foreground ml-2"},Eo=X({__name:"RawQueryEditorContextMenu",props:{contextMenuItems:{}},emits:["update:open"],setup(t,{emit:e}){const n=e,s=o=>typeof o>"u"?!0:!!o,a=o=>{n("update:open",o)};return(o,r)=>{const l=kn,u=va,d=ve,p=Ke,c=ot,m=ga,y=ba,w=xa,x=ya,$=Nn,S=Rn;return g(),A(S,{"onUpdate:open":a},{default:v(()=>[f(l,{"as-child":""},{default:v(()=>[_e(o.$slots,"default")]),_:3}),f($,{class:"min-w-56",onCloseAutoFocus:r[0]||(r[0]=At(()=>{},["prevent"]))},{default:v(()=>[(g(!0),F(ne,null,he(o.contextMenuItems,(b,B)=>(g(),F(ne,{key:B},[b.type===i(oe).LABEL&&s(b.condition)?(g(),A(u,{key:0,class:"font-medium text-xs text-muted-foreground"},{default:v(()=>[P(V(b.title),1)]),_:2},1024)):b.type===i(oe).ACTION&&s(b.condition)?(g(),A(c,{key:1,onSelect:b.select,disabled:b.disabled},{default:v(()=>[b.icon?(g(),A(d,{key:0,name:b.icon,class:"size-4! min-w-4 text-muted-foreground"},null,8,["name"])):U("",!0),P(" "+V(b.title)+" ",1),b.shortcut?(g(),A(p,{key:1},{default:v(()=>[P(V(b.shortcut),1)]),_:2},1024)):U("",!0)]),_:2},1032,["onSelect","disabled"])):b.type===i(oe).SEPARATOR&&s(b.condition)?(g(),A(m,{key:2})):b.type===i(oe).SUBMENU&&s(b.condition)?(g(),A(x,{key:3,disabled:!b.items||b.items.length===0},{default:v(()=>[f(y,null,{default:v(()=>[b.icon?(g(),A(d,{key:0,name:b.icon,class:"size-4! min-w-4 text-muted-foreground mr-2"},null,8,["name"])):U("",!0),P(" "+V(b.title)+" ",1),b.desc?(g(),F("span",_o,V(b.desc),1)):U("",!0)]),_:2},1024),f(w,{class:re("min-w-52")},{default:v(()=>[(g(!0),F(ne,null,he(b.items,(R,_)=>(g(),F(ne,{key:_},[R.type===i(oe).ACTION&&s(R.condition)?(g(),A(c,{key:0,onSelect:R.select},{default:v(()=>[R.icon?(g(),A(d,{key:0,name:R.icon,class:"size-4! min-w-4 text-muted-foreground"},null,8,["name"])):U("",!0),P(" "+V(R.title)+" ",1),R.shortcut?(g(),A(p,{key:1},{default:v(()=>[P(V(R.shortcut),1)]),_:2},1024)):U("",!0)]),_:2},1032,["onSelect"])):R.type===i(oe).LABEL&&s(R.condition)?(g(),A(u,{key:1,class:"font-medium text-xs text-muted-foreground"},{default:v(()=>[P(V(R.title),1)]),_:2},1024)):R.type===i(oe).SEPARATOR&&s(R.condition)?(g(),A(m,{key:2})):U("",!0)],64))),128))]),_:2},1024)]),_:2},1032,["disabled"])):U("",!0)],64))),128))]),_:1})]),_:3})}}}),To={},Ro={class:"mb-2 flex items-center gap-1.5 text-sm font-semibold"};function ko(t,e){const n=ve,s=Oe,a=wa,o=ye,r=be,l=Sa,u=Ca,d=xe;return g(),A(d,null,{default:v(()=>[f(u,null,{default:v(()=>[f(o,{"as-child":""},{default:v(()=>[f(a,{"as-child":""},{default:v(()=>[f(s,{size:"iconSm",variant:"ghost",class:"h-4 w-4 p-0 text-muted-foreground hover:text-foreground",title:"How to use query variables","aria-label":"How to use query variables"},{default:v(()=>[f(n,{name:"hugeicons:help-circle",class:"size-3.5!"})]),_:1})]),_:1})]),_:1}),f(r,null,{default:v(()=>e[0]||(e[0]=[h("p",null,"How to use query variables",-1)])),_:1}),f(l,{side:"top",align:"start",class:"w-[440px] p-4 text-xs"},{default:v(()=>[h("p",Ro,[f(n,{name:"hugeicons:help-circle",class:"size-4!"}),e[1]||(e[1]=P(" Passing variables in queries "))]),e[2]||(e[2]=h("p",{class:"mb-3 text-muted-foreground"},[P(" Use "),h("code",{class:"rounded bg-muted px-1"},":variable_name"),P(" syntax to bind parameters. For array operators, cast to the correct type: ")],-1)),e[3]||(e[3]=h("div",{class:"space-y-3"},[h("div",null,[h("p",{class:"mb-1 font-medium text-foreground"},[h("code",{class:"rounded bg-muted px-1"},"= ANY()")]),h("pre",{class:"overflow-x-auto whitespace-pre-wrap break-all rounded bg-muted p-2 text-xs"},`WHERE id = ANY (ARRAY[:your_variable]::integer[])
3
- WHERE status = ANY (ARRAY[:statuses]::text[])`)]),h("div",null,[h("p",{class:"mb-1 font-medium text-foreground"},[h("code",{class:"rounded bg-muted px-1"},"IN()")]),h("pre",{class:"overflow-x-auto whitespace-pre-wrap break-all rounded bg-muted p-2 text-xs"},`WHERE id IN (:your_variable)
4
- WHERE name IN (:names)`)]),h("div",null,[h("p",{class:"mb-1 font-medium text-foreground"},"Scalar variable"),h("pre",{class:"overflow-x-auto whitespace-pre-wrap break-all rounded bg-muted p-2 text-xs"},`WHERE created_at > :start_date
5
- WHERE user_id = :user_id`)])],-1)),e[4]||(e[4]=h("p",{class:"mt-3 border-t pt-2 text-muted-foreground"},[P(" Replace "),h("code",{class:"rounded bg-muted px-1"},"alias_type"),P(" with the actual PostgreSQL type, e.g. "),h("code",{class:"rounded bg-muted px-1"},"integer"),P(", "),h("code",{class:"rounded bg-muted px-1"},"uuid"),P(", "),h("code",{class:"rounded bg-muted px-1"},"text"),P(". ")],-1))]),_:1})]),_:1})]),_:1})}const No=$t(To,[["render",ko]]),$o={class:"h-fit py-1 flex items-center justify-between px-2"},zo={class:"flex items-center gap-2"},Mo={class:"font-normal text-xs text-muted-foreground"},Lo={key:0,class:"font-normal text-xs text-muted-foreground"},Io={key:0,class:"flex items-center gap-1"},Ao={key:1,class:"flex items-center gap-1"},Po={key:2},Oo={key:0},Fo={key:1},Do={class:"flex gap-1"},Bo={class:"flex items-center"},Vo={class:"flex items-center"},qo={key:0},Ko={key:1},Ho=X({__name:"RawQueryEditorFooter",props:{cursorInfo:{},isHaveOneExecute:{type:Boolean},executeLoading:{type:Boolean},executeErrors:{type:Boolean},isStreaming:{type:Boolean},streamingRowCount:{},queryTime:{},rawQueryResultsLength:{},isRawViewMode:{type:Boolean},explainAnalyzeOptionItems:{},serializeMode:{},isSupportFormat:{type:Boolean},isSupportVariable:{type:Boolean},isExplainSupported:{type:Boolean}},emits:["onFormatCurrentStatement","onFormatAll","onExplainAnalyzeCurrent","toggleExplainOption","update:serializeMode","onExecuteCurrent","update:isRawViewMode","onCancelQuery"],setup(t){const e=j(!1);return(n,s)=>{const a=No,o=ve,r=Ke,l=Oe;return g(),F("div",$o,[h("div",zo,[h("div",Mo," Ln "+V(n.cursorInfo.line)+", Col "+V(n.cursorInfo.column),1),n.isSupportVariable?(g(),A(a,{key:0})):U("",!0)]),n.isHaveOneExecute?(g(),F("div",Lo,[n.isStreaming?(g(),F("span",Io,[f(o,{name:"hugeicons:loading-03",class:"size-4! animate-spin"}),P(" Streaming... "+V(i(Et)(n.streamingRowCount))+" rows ",1)])):n.executeLoading?(g(),F("span",Ao,[s[9]||(s[9]=P("Processing ")),f(o,{name:"hugeicons:loading-03",class:"size-4! animate-spin"})])):(g(),F("span",Po,[n.executeErrors?(g(),F("span",Oo," Query: 1 error in "+V(i(et)(n.queryTime)),1)):(g(),F("span",Fo," Query success: "+V(i(Et)(n.rawQueryResultsLength))+" rows in "+V(i(et)(n.queryTime)),1))]))])):U("",!0),h("div",Do,[n.isSupportFormat?(g(),A(i(xe),{key:0},{default:v(()=>[f(i(ye),null,{default:v(()=>[h("div",Bo,[f(l,{onClick:s[0]||(s[0]=u=>n.$emit("onFormatCurrentStatement")),variant:"outline",size:"xxs",class:"rounded-r-none"},{default:v(()=>[f(o,{name:"hugeicons:magic-wand-01"}),s[11]||(s[11]=P(" Format ")),f(r,null,{default:v(()=>s[10]||(s[10]=[P("⌘S")])),_:1})]),_:1}),f(i(en),null,{default:v(()=>[f(i(tn),{"as-child":""},{default:v(()=>[f(l,{variant:"outline",size:"iconSm",class:"rounded-l-none border-l-0 px-2"},{default:v(()=>[f(o,{name:"hugeicons:arrow-down-01",class:"size-4! min-w-4"})]),_:1})]),_:1}),f(i(nn),{align:"end",class:"min-w-44"},{default:v(()=>[f(i(wt),{class:"py-0"},{default:v(()=>s[12]||(s[12]=[P("Format Options ")])),_:1}),f(i(St)),f(i(sn),{onClick:s[1]||(s[1]=u=>n.$emit("onFormatCurrentStatement")),class:"h-6 cursor-pointer"},{default:v(()=>[s[14]||(s[14]=P(" Current Statement ")),f(r,null,{default:v(()=>s[13]||(s[13]=[P("⌘S")])),_:1})]),_:1}),f(i(sn),{onClick:s[2]||(s[2]=u=>n.$emit("onFormatAll")),class:"h-6 cursor-pointer"},{default:v(()=>[s[16]||(s[16]=P(" All Statement ")),f(r,null,{default:v(()=>s[15]||(s[15]=[P("⇧⌥F")])),_:1})]),_:1})]),_:1})]),_:1})])]),_:1}),f(i(be),null,{default:v(()=>s[17]||(s[17]=[h("p",null,"Format current statement (⌘S)",-1)])),_:1})]),_:1})):U("",!0),n.isExplainSupported?(g(),A(i(xe),{key:1},{default:v(()=>[f(i(ye),null,{default:v(()=>[h("div",Vo,[f(l,{onClick:s[3]||(s[3]=u=>n.$emit("onExplainAnalyzeCurrent")),variant:"outline",size:"xxs",class:"rounded-r-none"},{default:v(()=>[f(o,{name:"hugeicons:analytics-up"}),s[19]||(s[19]=P(" Explain ")),f(r,null,{default:v(()=>s[18]||(s[18]=[P("⌘E")])),_:1})]),_:1}),f(i(en),{open:i(e),"onUpdate:open":s[6]||(s[6]=u=>dt(e)?e.value=u:null)},{default:v(()=>[f(i(tn),{"as-child":""},{default:v(()=>[f(l,{variant:"outline",size:"iconSm",class:"rounded-l-none border-l-0 px-2"},{default:v(()=>[f(o,{name:"hugeicons:arrow-down-01",class:"size-4! min-w-4"})]),_:1})]),_:1}),f(i(nn),{align:"end",class:"min-w-52"},{default:v(()=>[f(i(wt),{class:"py-0"},{default:v(()=>s[20]||(s[20]=[P("Explain Analyze Options")])),_:1}),f(i(St)),(g(!0),F(ne,null,he(n.explainAnalyzeOptionItems,u=>(g(),A(i(fo),{key:u.key,"model-value":u.checked,onSelect:s[4]||(s[4]=At(()=>{},["prevent"])),"onUpdate:modelValue":d=>n.$emit("toggleExplainOption",u.key),class:"h-6 cursor-pointer"},{default:v(()=>[P(V(u.label),1)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128)),f(i(St)),f(i(wt),{class:"py-0"},{default:v(()=>s[21]||(s[21]=[P("Serialize")])),_:1}),f(i(za),{"model-value":n.serializeMode,"onUpdate:modelValue":s[5]||(s[5]=u=>n.$emit("update:serializeMode",u))},{default:v(()=>[f(i(Ct),{value:"NONE",class:"h-6 cursor-pointer"},{default:v(()=>s[22]||(s[22]=[P("None")])),_:1}),f(i(Ct),{value:"TEXT",class:"h-6 cursor-pointer"},{default:v(()=>s[23]||(s[23]=[P("Text")])),_:1}),f(i(Ct),{value:"BINARY",class:"h-6 cursor-pointer"},{default:v(()=>s[24]||(s[24]=[P("Binary")])),_:1})]),_:1},8,["model-value"])]),_:1})]),_:1},8,["open"])])]),_:1}),f(i(be),null,{default:v(()=>s[25]||(s[25]=[h("p",null,"Run Explain Analyze (⌘E) or open options",-1)])),_:1})]),_:1})):U("",!0),f(i(xe),null,{default:v(()=>[f(i(ye),{"as-child":""},{default:v(()=>[n.isStreaming||n.executeLoading?(g(),A(l,{key:0,onClick:s[7]||(s[7]=u=>n.$emit("onCancelQuery")),variant:"outline",size:"xxs"},{default:v(()=>[f(o,{name:"hugeicons:stop",class:"size-4! text-red-500"}),s[26]||(s[26]=P(" Cancel query "))]),_:1})):(g(),A(l,{key:1,onClick:s[8]||(s[8]=u=>n.$emit("onExecuteCurrent")),variant:"outline",size:"xxs"},{default:v(()=>[f(o,{name:"hugeicons:play"}),s[28]||(s[28]=P(" Execute current ")),f(r,null,{default:v(()=>s[27]||(s[27]=[P("⌘↵")])),_:1})]),_:1}))]),_:1}),f(i(be),null,{default:v(()=>[n.isStreaming||n.executeLoading?(g(),F("p",qo,"Cancel query")):(g(),F("p",Ko,"Execute Query (⌘↵)"))]),_:1})]),_:1})])])}}}),Mn=X({__name:"VariableEditor",props:{fileVariables:{}},emits:["updateVariables"],setup(t,{emit:e}){const n=e,s=j({line:1,column:1}),a=[cs(`Please input your json variable
6
- {
7
- "key": "value"
8
- }`),Ba(r=>{try{return ms(r,{type:"space",size:2})}catch{return r}}),ds(),bn(),xn(ps())],o=r=>{n("updateVariables",r)};return(r,l)=>(g(),A(Cn,{"onUpdate:modelValue":o,"onUpdate:cursorInfo":l[0]||(l[0]=u=>s.value=u),modelValue:r.fileVariables,extensions:a,disabled:!1,ref:"codeEditorRef"},null,8,["modelValue"]))}}),Uo={class:"h-full flex flex-col overflow-y-auto"},Wo=X({__name:"AddVariableModal",props:{open:{},fileVariables:{}},emits:["update:open","updateVariables"],setup(t,{emit:e}){const n=e,s=async a=>{n("updateVariables",a)};return(a,o)=>(g(),A(i(zt),{class:"",open:!!a.open,"onUpdate:open":o[1]||(o[1]=r=>n("update:open",r))},{default:v(()=>[f(i(Mt),{class:"w-[60vw] h-[50vh] flex flex-col justify-between min-w-[60vw]"},{default:v(()=>[f(i(Lt),null,{default:v(()=>[f(i(It),null,{default:v(()=>o[2]||(o[2]=[P(" Add Variable "),h("a",{class:"underline",href:"https://www.w3schools.com/js/js_json_syntax.asp",target:"_blank"}," (JSON format)",-1)])),_:1})]),_:1}),h("div",Uo,[f(Mn,{onUpdateVariables:s,fileVariables:a.fileVariables},null,8,["fileVariables"])]),f(i(yn),{class:"mt-2"},{default:v(()=>[f(i(Oe),{onClick:o[0]||(o[0]=r=>n("update:open",!1))},{default:v(()=>o[3]||(o[3]=[P(" Save ")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"]))}}),jo=X({__name:"RawQueryConfigModal",props:{open:{}},emits:["update:open"],setup(t,{emit:e}){const n=e;return(s,a)=>(g(),A(i(zt),{class:"",open:!!s.open,"onUpdate:open":a[0]||(a[0]=o=>n("update:open",o))},{default:v(()=>[f(i(Mt),{class:"w-[50vw] h-[70vh] flex flex-col justify-between min-w-[50vw]"},{default:v(()=>[f(i(Lt),null,{default:v(()=>[f(i(It),null,{default:v(()=>a[1]||(a[1]=[P(" Editor configs ")])),_:1})]),_:1}),f(fs)]),_:1})]),_:1},8,["open"]))}}),Qo={class:"flex items-center justify-between p-1 rounded-md bg-muted"},Go={class:"flex gap-2 items-center"},Yo={key:0},Jo={key:1},Zo=X({__name:"RawQueryEditorHeader",props:{currentFileInfo:{},fileVariables:{},workspaceId:{},selectedConnectionId:{},disableConnectionSwitch:{type:Boolean},connections:{},connection:{},isRedisConnection:{type:Boolean},isSupportVariable:{type:Boolean},redisDatabases:{},redisDatabaseIndex:{},codeEditorLayout:{}},emits:["update:connectionId","update:redisDatabaseIndex","update:updateFileVariables"],setup(t){const e=j(!1),n=j(!1),s=j(!1),a=()=>{e.value=!0},o=()=>{n.value=!0};return(r,l)=>{const u=ve,d=Ma,p=gs,c=vs,m=hs,y=Oe;return g(),F(ne,null,[f(Wo,{onUpdateVariables:l[0]||(l[0]=w=>r.$emit("update:updateFileVariables",w)),"file-variables":r.fileVariables,open:i(e),"onUpdate:open":l[1]||(l[1]=w=>dt(e)?e.value=w:null)},null,8,["file-variables","open"]),f(jo,{open:i(n),"onUpdate:open":l[2]||(l[2]=w=>dt(n)?n.value=w:null)},null,8,["open"]),h("div",Qo,[h("div",null,[f(m,null,{default:v(()=>[f(c,{class:"gap-0!"},{default:v(()=>[f(p,null,{default:v(()=>[f(d,{class:"flex items-center gap-0.5"},{default:v(()=>{var w,x;return[f(u,{name:(w=r.currentFileInfo)==null?void 0:w.icon},null,8,["name"]),P(" "+V((x=r.currentFileInfo)==null?void 0:x.title),1)]}),_:1})]),_:1})]),_:1})]),_:1})]),h("div",Go,[r.isSupportVariable&&r.codeEditorLayout===i(Ye).horizontal?(g(),A(i(xe),{key:0},{default:v(()=>[f(i(ye),{"as-child":""},{default:v(()=>[f(y,{onClick:a,variant:"outline",size:"xxs",class:"relative"},{default:v(()=>[i(s)?(g(),A(u,{key:0,name:"lucide:triangle-alert",class:"absolute -top-1 -right-1 text-red-400"})):U("",!0),f(u,{name:"hugeicons:absolute"}),l[5]||(l[5]=P(" Add variables "))]),_:1})]),_:1}),f(i(be),null,{default:v(()=>l[6]||(l[6]=[h("p",null,"Add variables",-1)])),_:1})]),_:1})):U("",!0),f(i(xe),null,{default:v(()=>[f(i(ye),{"as-child":""},{default:v(()=>[f(Da,{connectionId:r.selectedConnectionId,"onUpdate:connectionId":l[3]||(l[3]=w=>r.$emit("update:connectionId",w)),connections:r.connections,connection:r.connection,disabled:r.disableConnectionSwitch,class:"w-fit h-6! px-1.5",workspaceId:r.workspaceId},null,8,["connectionId","connections","connection","disabled","workspaceId"])]),_:1}),f(i(be),null,{default:v(()=>[r.disableConnectionSwitch?(g(),F("p",Yo," Connection switch is locked because the current connection has a strict mode tag ")):(g(),F("p",Jo,"Select connection"))]),_:1})]),_:1}),r.isRedisConnection?(g(),A(ma,{key:1,compact:"","trigger-id":"raw-query-redis-db-index","trigger-class":"bg-background",databases:r.redisDatabases||[],"database-index":r.redisDatabaseIndex??0,"onUpdate:databaseIndex":l[4]||(l[4]=w=>r.$emit("update:redisDatabaseIndex",w))},null,8,["databases","database-index"])):U("",!0),f(i(xe),null,{default:v(()=>[f(i(ye),{"as-child":""},{default:v(()=>[f(y,{onClick:o,variant:"outline",size:"iconSm"},{default:v(()=>[f(u,{name:"hugeicons:dashboard-square-02"})]),_:1})]),_:1}),f(i(be),null,{default:v(()=>l[7]||(l[7]=[h("p",null,"Query Settings",-1)])),_:1})]),_:1})])])],64)}}}),nt={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(t,{emit:e}){const n=e,s=t,a=ys(),o=j([]),r=N(()=>o.value.reduce((C,T)=>(C[~~T.id]=T)&&C,{})),l=N(()=>o.value.length),u=j(null),d=j(!1),p=j({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),c=j({splitter:null,timeoutId:null}),m=N(()=>({[`splitpanes splitpanes--${s.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":p.value.dragging})),y=()=>{document.addEventListener("mousemove",$,{passive:!1}),document.addEventListener("mouseup",S),"ontouchstart"in window&&(document.addEventListener("touchmove",$,{passive:!1}),document.addEventListener("touchend",S))},w=()=>{document.removeEventListener("mousemove",$,{passive:!1}),document.removeEventListener("mouseup",S),"ontouchstart"in window&&(document.removeEventListener("touchmove",$,{passive:!1}),document.removeEventListener("touchend",S))},x=(C,T)=>{const L=C.target.closest(".splitpanes__splitter");if(L){const{left:z,top:I}=L.getBoundingClientRect(),{clientX:E,clientY:q}="ontouchstart"in window&&C.touches?C.touches[0]:C;p.value.cursorOffset=s.horizontal?q-I:E-z}y(),p.value.mouseDown=!0,p.value.activeSplitter=T},$=C=>{p.value.mouseDown&&(C.preventDefault(),p.value.dragging=!0,requestAnimationFrame(()=>{k(_(C)),ae("resize",{event:C},!0)}))},S=C=>{p.value.dragging&&(window.getSelection().removeAllRanges(),ae("resized",{event:C},!0)),p.value.mouseDown=!1,p.value.activeSplitter=null,setTimeout(()=>{p.value.dragging=!1,w()},100)},b=(C,T)=>{"ontouchstart"in window&&(C.preventDefault(),c.value.splitter===T?(clearTimeout(c.value.timeoutId),c.value.timeoutId=null,B(C,T),c.value.splitter=null):(c.value.splitter=T,c.value.timeoutId=setTimeout(()=>c.value.splitter=null,500))),p.value.dragging||ae("splitter-click",{event:C,index:T},!0)},B=(C,T)=>{if(ae("splitter-dblclick",{event:C,index:T},!0),s.maximizePanes){let L=0;o.value=o.value.map((z,I)=>(z.size=I===T?z.max:z.min,I!==T&&(L+=z.min),z)),o.value[T].size-=L,ae("pane-maximize",{event:C,index:T,pane:o.value[T]}),ae("resized",{event:C,index:T},!0)}},R=(C,T)=>{ae("pane-click",{event:C,index:r.value[T].index,pane:r.value[T]})},_=C=>{const T=u.value.getBoundingClientRect(),{clientX:L,clientY:z}="ontouchstart"in window&&C.touches?C.touches[0]:C;return{x:L-(s.horizontal?0:p.value.cursorOffset)-T.left,y:z-(s.horizontal?p.value.cursorOffset:0)-T.top}},D=C=>{C=C[s.horizontal?"y":"x"];const T=u.value[s.horizontal?"clientHeight":"clientWidth"];return s.rtl&&!s.horizontal&&(C=T-C),C*100/T},k=C=>{const T=p.value.activeSplitter;let L={prevPanesSize:K(T),nextPanesSize:O(T),prevReachedMinPanes:0,nextReachedMinPanes:0};const z=0+(s.pushOtherPanes?0:L.prevPanesSize),I=100-(s.pushOtherPanes?0:L.nextPanesSize),E=Math.max(Math.min(D(C),I),z);let q=[T,T+1],Y=o.value[q[0]]||null,te=o.value[q[1]]||null;const Ce=Y.max<100&&E>=Y.max+L.prevPanesSize,Ae=te.max<100&&E<=100-(te.max+O(T+1));if(Ce||Ae){Ce?(Y.size=Y.max,te.size=Math.max(100-Y.max-L.prevPanesSize-L.nextPanesSize,0)):(Y.size=Math.max(100-te.max-L.prevPanesSize-O(T+1),0),te.size=te.max);return}if(s.pushOtherPanes){const Fe=M(L,E);if(!Fe)return;({sums:L,panesToResize:q}=Fe),Y=o.value[q[0]]||null,te=o.value[q[1]]||null}Y!==null&&(Y.size=Math.min(Math.max(E-L.prevPanesSize-L.prevReachedMinPanes,Y.min),Y.max)),te!==null&&(te.size=Math.min(Math.max(100-E-L.nextPanesSize-L.nextReachedMinPanes,te.min),te.max))},M=(C,T)=>{const L=p.value.activeSplitter,z=[L,L+1];return T<C.prevPanesSize+o.value[z[0]].min&&(z[0]=H(L).index,C.prevReachedMinPanes=0,z[0]<L&&o.value.forEach((I,E)=>{E>z[0]&&E<=L&&(I.size=I.min,C.prevReachedMinPanes+=I.min)}),C.prevPanesSize=K(z[0]),z[0]===void 0)?(C.prevReachedMinPanes=0,o.value[0].size=o.value[0].min,o.value.forEach((I,E)=>{E>0&&E<=L&&(I.size=I.min,C.prevReachedMinPanes+=I.min)}),o.value[z[1]].size=100-C.prevReachedMinPanes-o.value[0].min-C.prevPanesSize-C.nextPanesSize,null):T>100-C.nextPanesSize-o.value[z[1]].min&&(z[1]=G(L).index,C.nextReachedMinPanes=0,z[1]>L+1&&o.value.forEach((I,E)=>{E>L&&E<z[1]&&(I.size=I.min,C.nextReachedMinPanes+=I.min)}),C.nextPanesSize=O(z[1]-1),z[1]===void 0)?(C.nextReachedMinPanes=0,o.value.forEach((I,E)=>{E<l.value-1&&E>=L+1&&(I.size=I.min,C.nextReachedMinPanes+=I.min)}),o.value[z[0]].size=100-C.prevPanesSize-O(z[0]-1),null):{sums:C,panesToResize:z}},K=C=>o.value.reduce((T,L,z)=>T+(z<C?L.size:0),0),O=C=>o.value.reduce((T,L,z)=>T+(z>C+1?L.size:0),0),H=C=>[...o.value].reverse().find(T=>T.index<C&&T.size>T.min)||{},G=C=>o.value.find(T=>T.index>C+1&&T.size>T.min)||{},W=()=>{var C;const T=Array.from(((C=u.value)==null?void 0:C.children)||[]);for(const L of T){const z=L.classList.contains("splitpanes__pane"),I=L.classList.contains("splitpanes__splitter");!z&&!I&&(L.remove(),console.warn("Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed."))}},ee=(C,T,L=!1)=>{const z=C-1,I=document.createElement("div");I.classList.add("splitpanes__splitter"),L||(I.onmousedown=E=>x(E,z),typeof window<"u"&&"ontouchstart"in window&&(I.ontouchstart=E=>x(E,z)),I.onclick=E=>b(E,z+1)),I.ondblclick=E=>B(E,z+1),T.parentNode.insertBefore(I,T)},ge=C=>{C.onmousedown=void 0,C.onclick=void 0,C.ondblclick=void 0,C.remove()},me=()=>{var C;const T=Array.from(((C=u.value)==null?void 0:C.children)||[]);for(const z of T)z.className.includes("splitpanes__splitter")&&ge(z);let L=0;for(const z of T)z.className.includes("splitpanes__pane")&&(!L&&s.firstSplitter?ee(L,z,!0):L&&ee(L,z),L++)},ke=({uid:C,...T})=>{const L=r.value[C];for(const[z,I]of Object.entries(T))L[z]=I},Le=C=>{var T;let L=-1;Array.from(((T=u.value)==null?void 0:T.children)||[]).some(z=>(z.className.includes("splitpanes__pane")&&L++,z.isSameNode(C.el))),o.value.splice(L,0,{...C,index:L}),o.value.forEach((z,I)=>z.index=I),d.value&&We(()=>{me(),Ee({addedPane:o.value[L]}),ae("pane-add",{pane:o.value[L]})})},Ie=C=>{const T=o.value.findIndex(z=>z.id===C);o.value[T].el=null;const L=o.value.splice(T,1)[0];o.value.forEach((z,I)=>z.index=I),We(()=>{me(),ae("pane-remove",{pane:L}),Ee({removedPane:{...L}})})},Ee=(C={})=>{!C.addedPane&&!C.removedPane?ie():o.value.some(T=>T.givenSize!==null||T.min||T.max<100)?Ne(C):we(),d.value&&ae("resized")},we=()=>{const C=100/l.value;let T=0;const L=[],z=[];for(const I of o.value)I.size=Math.max(Math.min(C,I.max),I.min),T-=I.size,I.size>=I.max&&L.push(I.id),I.size<=I.min&&z.push(I.id);T>.1&&Te(T,L,z)},ie=()=>{let C=100;const T=[],L=[];let z=0;for(const E of o.value)C-=E.size,E.givenSize!==null&&z++,E.size>=E.max&&T.push(E.id),E.size<=E.min&&L.push(E.id);let I=100;if(C>.1){for(const E of o.value)E.givenSize===null&&(E.size=Math.max(Math.min(C/(l.value-z),E.max),E.min)),I-=E.size;I>.1&&Te(I,T,L)}},Ne=({addedPane:C,removedPane:T}={})=>{let L=100/l.value,z=0;const I=[],E=[];((C==null?void 0:C.givenSize)??null)!==null&&(L=(100-C.givenSize)/(l.value-1));for(const q of o.value)z-=q.size,q.size>=q.max&&I.push(q.id),q.size<=q.min&&E.push(q.id);if(!(Math.abs(z)<.1)){for(const q of o.value)(C==null?void 0:C.givenSize)!==null&&(C==null?void 0:C.id)===q.id||(q.size=Math.max(Math.min(L,q.max),q.min)),z-=q.size,q.size>=q.max&&I.push(q.id),q.size<=q.min&&E.push(q.id);z>.1&&Te(z,I,E)}},Te=(C,T,L)=>{let z;C>0?z=C/(l.value-T.length):z=C/(l.value-L.length),o.value.forEach((I,E)=>{if(C>0&&!T.includes(I.id)){const q=Math.max(Math.min(I.size+z,I.max),I.min),Y=q-I.size;C-=Y,I.size=q}else if(!L.includes(I.id)){const q=Math.max(Math.min(I.size+z,I.max),I.min),Y=q-I.size;C-=Y,I.size=q}}),Math.abs(C)>.1&&We(()=>{d.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},ae=(C,T=void 0,L=!1)=>{const z=(T==null?void 0:T.index)??p.value.activeSplitter??null;n(C,{...T,...z!==null&&{index:z},...L&&z!==null&&{prevPane:o.value[z-(s.firstSplitter?1:0)],nextPane:o.value[z+(s.firstSplitter?0:1)]},panes:o.value.map(I=>({min:I.min,max:I.max,size:I.size}))})};de(()=>s.firstSplitter,()=>me()),Pt(()=>{W(),me(),Ee(),ae("ready"),d.value=!0}),Ot(()=>d.value=!1);const $e=()=>{var C;return Cs("div",{ref:u,class:m.value},(C=a.default)==null?void 0:C.call(a))};return Be("panes",o),Be("indexedPanes",r),Be("horizontal",N(()=>s.horizontal)),Be("requestUpdate",ke),Be("onPaneAdd",Le),Be("onPaneRemove",Ie),Be("onPaneClick",R),(C,T)=>(g(),A(bs($e)))}},Ve={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(t){var e;const n=t,s=qe("requestUpdate"),a=qe("onPaneAdd"),o=qe("horizontal"),r=qe("onPaneRemove"),l=qe("onPaneClick"),u=(e=xs())==null?void 0:e.uid,d=qe("indexedPanes"),p=N(()=>d.value[u]),c=j(null),m=N(()=>{const $=isNaN(n.size)||n.size===void 0?0:parseFloat(n.size);return Math.max(Math.min($,w.value),y.value)}),y=N(()=>{const $=parseFloat(n.minSize);return isNaN($)?0:$}),w=N(()=>{const $=parseFloat(n.maxSize);return isNaN($)?100:$}),x=N(()=>{var $;return`${o.value?"height":"width"}: ${($=p.value)==null?void 0:$.size}%`});return de(()=>m.value,$=>s({uid:u,size:$})),de(()=>y.value,$=>s({uid:u,min:$})),de(()=>w.value,$=>s({uid:u,max:$})),Pt(()=>{a({id:u,el:c.value,min:y.value,max:w.value,givenSize:n.size===void 0?null:m.value,size:m.value})}),Ot(()=>r(u)),($,S)=>(g(),F("div",{ref_key:"paneEl",ref:c,class:"splitpanes__pane",onClick:S[0]||(S[0]=b=>i(l)(b,$._.uid)),style:Ue(x.value)},[_e($.$slots,"default")],4))}},Xo={class:"w-full h-full"},er={class:"flex flex-col w-full h-full overflow-y-auto"},tr={class:"flex flex-col flex-1 h-full p-1"},nr={class:"flex flex-col flex-1 h-full p-1 pl-0 relative"},sr=X({__name:"RawQueryLayout",props:{layout:{},customLayout:{},showResultPanel:{type:Boolean}},setup(t){const e=t,n=wn(),{editorLayoutSizes:s,editorLayoutInnerVariableSizes:a}=ft(n),o=_=>{s.value=[_[0].size,_[1].size]},r=_=>{a.value=[_[0].size,_[1].size]},l=N(()=>s.value[0]),u=N(()=>a.value[0]),d=N(()=>a.value[1]),p=N(()=>s.value[1]),c=N(()=>e.layout===Ye.horizontalWithVariables||e.layout===Ye.vertical),m=N(()=>e.layout===Ye.horizontalWithVariables),y=N(()=>!!e.customLayout),w=N(()=>{var _;return((_=e.customLayout)==null?void 0:_.direction)==="vertical"}),x=N(()=>{var _,D;return((D=(_=e.customLayout)==null?void 0:_.innerSplit)==null?void 0:D.direction)==="vertical"}),$=_=>{var M,K,O,H,G;const D=(M=e.customLayout)==null?void 0:M.id;if(!D)return((O=(K=e.customLayout)==null?void 0:K.panels[_])==null?void 0:O.defaultSize)??50;const k=n.customLayoutSizes[D];return(k==null?void 0:k.panels[_])??((G=(H=e.customLayout)==null?void 0:H.panels[_])==null?void 0:G.defaultSize)??50},S=_=>{var M,K,O,H,G,W,ee;const D=(M=e.customLayout)==null?void 0:M.id;if(!D)return((H=(O=(K=e.customLayout)==null?void 0:K.innerSplit)==null?void 0:O.panels[_])==null?void 0:H.defaultSize)??50;const k=n.customLayoutSizes[D];return(k==null?void 0:k.innerPanels[_])??((ee=(W=(G=e.customLayout)==null?void 0:G.innerSplit)==null?void 0:W.panels[_])==null?void 0:ee.defaultSize)??50},b=_=>{var k;const D=(k=e.customLayout)==null?void 0:k.id;D&&n.updateCustomLayoutSizes(D,_.map(M=>M.size))},B=_=>{var M,K,O;const D=(M=e.customLayout)==null?void 0:M.id;if(!D)return;const k=((K=n.customLayoutSizes[D])==null?void 0:K.panels)??((O=e.customLayout)==null?void 0:O.panels.map(H=>H.defaultSize))??[];n.updateCustomLayoutSizes(D,k,_.map(H=>H.size))},R={content:"flex flex-col w-full h-full overflow-y-auto",variables:"flex flex-col flex-1 h-full p-1",result:"flex flex-col flex-1 h-full p-1 pl-0 relative"};return(_,D)=>(g(),F("div",Xo,[i(y)&&_.customLayout?(g(),A(i(nt),{key:0,class:"default-theme",horizontal:i(w),onResize:D[1]||(D[1]=k=>b(k.panes))},{default:v(()=>[(g(!0),F(ne,null,he(_.customLayout.panels,(k,M)=>(g(),F(ne,{key:M},[_.customLayout.innerSplit&&_.customLayout.innerSplit.panelIndex===M?(g(),A(i(Ve),{key:0,size:$(M),"min-size":k.minSize,"max-size":k.maxSize},{default:v(()=>[f(i(nt),{horizontal:i(x),class:"default-theme",onResize:D[0]||(D[0]=K=>B(K.panes))},{default:v(()=>[(g(!0),F(ne,null,he(_.customLayout.innerSplit.panels,(K,O)=>(g(),A(i(Ve),{key:`inner-${O}`,size:S(O),"min-size":K.minSize,"max-size":K.maxSize},{default:v(()=>[h("div",{class:re(R[K.slot])},[_e(_.$slots,K.slot)],2)]),_:2},1032,["size","min-size","max-size"]))),128))]),_:3},8,["horizontal"])]),_:2},1032,["size","min-size","max-size"])):(g(),A(i(Ve),{key:1,size:$(M),"min-size":k.minSize,"max-size":k.maxSize},{default:v(()=>[h("div",{class:re(R[k.slot])},[_e(_.$slots,k.slot)],2)]),_:2},1032,["size","min-size","max-size"]))],64))),128))]),_:3},8,["horizontal"])):(g(),A(i(nt),{key:1,onResize:D[3]||(D[3]=k=>o(k.panes)),class:"default-theme",horizontal:_.layout===i(Ye).vertical},{default:v(()=>[f(i(Ve),{size:i(l)},{default:v(()=>[f(i(nt),{horizontal:i(m),onResize:D[2]||(D[2]=k=>i(c)?r(k.panes):null)},{default:v(()=>[f(i(Ve),{size:i(c)?i(u):100,"min-size":"30"},{default:v(()=>[h("div",er,[_e(_.$slots,"content")])]),_:3},8,["size"]),i(c)?(g(),A(i(Ve),{key:0,size:i(d),"min-size":"0","max-size":"70"},{default:v(()=>[h("div",tr,[_e(_.$slots,"variables")])]),_:3},8,["size"])):U("",!0)]),_:3},8,["horizontal"])]),_:3},8,["size"]),e.showResultPanel!==!1?(g(),A(i(Ve),{key:0,size:i(p),"min-size":"0","max-size":"80"},{default:v(()=>[h("div",nr,[_e(_.$slots,"result")])]),_:3},8,["size"])):U("",!0)]),_:3},8,["horizontal"]))]))}}),Re='(?:`[^`]+`|"(?:[^"]|"")+"|[A-Za-z_][A-Za-z0-9_$]*)',ar=`\\b(?:FROM|JOIN)\\s+(${Re}(?:\\s*\\.\\s*${Re})*)(?:\\s+(?:AS\\s+)?(${Re}))?`,Ln=new Set(["all","cross","except","fetch","for","from","full","group","having","inner","intersect","join","left","limit","offset","on","order","outer","right","select","union","where"]);function or(t){return Ln.has(le(t))}function mt(t){const e=t.trim();return e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1).replace(/""/g,'"'):e.startsWith("`")&&e.endsWith("`")?e.slice(1,-1).replace(/``/g,"`"):e}function le(t){if(!t)return"";const e=t.trim(),n=mt(e);return e.startsWith('"')&&e.endsWith('"')||e.startsWith("`")&&e.endsWith("`")?n:n.toLowerCase()}function gt(t){if(!t)return[];const e=[];let n="",s=null;for(let a=0;a<t.length;a++){const o=t[a];if(s){if(n+=o,o===s&&t[a+1]===s){n+=t[a+1],a++;continue}o===s&&(s=null);continue}if(o==='"'||o==="`"){s=o,n+=o;continue}if(o==="."){n.trim()&&e.push(n.trim()),n="";continue}n+=o}return n.trim()&&e.push(n.trim()),e}function rt({schemas:t,tableName:e,schemaName:n}){if(!(t!=null&&t.length)||!e)return;const s=le(e),a=n?le(n):void 0;for(const o of t)if(!(a&&le(o.name)!==a)){for(const[r,l]of Object.entries(o.tableDetails||{}))if(le(r)===s)return{schemaName:o.name,tableName:r,tableInfo:l}}}function yt({tableReference:t,schemas:e,defaultSchemaName:n}){if(!(e!=null&&e.length))return;const s=gt(t).map(r=>le(r));if(!s.length)return;const a=s[s.length-1],o=s.length>1?s[s.length-2]:void 0;if(o){const r=rt({schemas:e,tableName:a,schemaName:o});if(r)return r}if(n){const r=rt({schemas:e,tableName:a,schemaName:n});if(r)return r}return rt({schemas:e,tableName:a})}function In(t,e){var a;const n=new RegExp(ar,"gi");let s=n.exec(t);for(;s!==null;)e({tableReference:(a=s[1])==null?void 0:a.trim(),rawAlias:s[2]}),s=n.exec(t)}function An(t){const e=new Map;return In(t,({tableReference:n,rawAlias:s})=>{if(!n)return;const o=gt(n).at(-1);if(o&&e.set(le(o),n),!s)return;const r=le(s);Ln.has(r)||e.set(r,n)}),e}function rr(t){const e=[],n=new Set;return In(t,({tableReference:s})=>{!s||n.has(s)||(n.add(s),e.push(s))}),e}const Pn=new RegExp(`^${Re}(?:\\s*\\.\\s*${Re}){0,2}$`,"i"),lr=new RegExp(`^([\\s\\S]*?)(?:\\s+AS\\s+)(${Re})$`,"i"),ir=new RegExp(`^([\\s\\S]*\\S)\\s+(${Re})$`,"i"),qt=new RegExp(`^(${Re}(?:\\s*\\.\\s*${Re}){0,2})\\s*\\.\\s*\\*$`,"i");function on(t){return!t||!/[A-Za-z0-9_$]/.test(t)}function ur(t,e,n){const s=n.toUpperCase();return t.slice(e,e+s.length).toUpperCase()!==s?!1:on(t[e-1])&&on(t[e+n.length])}function On(t,e){const n=t[e],s=t[e+1];if(n==="-"&&s==="-"){let a=e+2;for(;a<t.length&&t[a]!==`
9
- `;)a++;return a}if(n==="/"&&s==="*"){const a=t.indexOf("*/",e+2);return a===-1?t.length:a+2}if(n==="'"||n==='"'||n==="`"){let a=e+1;for(;a<t.length;){if(t[a]===n){if(t[a+1]===n){a+=2;continue}return a+1}a++}return t.length}return e+1}function rn(t,e,n=0){let s=0;for(let a=n;a<t.length;){const o=t[a],r=t[a+1];if(o==="'"||o==='"'||o==="`"||o==="-"&&r==="-"||o==="/"&&r==="*"){a=On(t,a);continue}if(o==="("){s++,a++;continue}if(o===")"){s=Math.max(0,s-1),a++;continue}if(s===0&&ur(t,a,e))return a;a++}return-1}function cr(t){const e=[];let n=0,s=0;for(let o=0;o<t.length;){const r=t[o],l=t[o+1];if(r==="'"||r==='"'||r==="`"||r==="-"&&l==="-"||r==="/"&&l==="*"){o=On(t,o);continue}if(r==="("){n++,o++;continue}if(r===")"){n=Math.max(0,n-1),o++;continue}if(n===0&&r===","){const u=t.slice(s,o).trim();u&&e.push(u),s=o+1}o++}const a=t.slice(s).trim();return a&&e.push(a),e}function dr(t){const e=rn(t,"SELECT");if(e===-1)return[];const n=rn(t,"FROM",e+6);if(n===-1)return[];const s=t.slice(e+6,n);return cr(s)}function Fn(t){return[...t.columns||[]].sort((e,n)=>(e.ordinal_position||0)-(n.ordinal_position||0))}function mr(t,e){const n=le(e);return t.find(s=>le(s.name)===n)}function pr(t){const e=t.trim(),n=lr.exec(e);if(n)return{expression:n[1].trim(),outputName:mt(n[2])};if(e==="*"||qt.test(e)||Pn.test(e))return{expression:e,outputName:void 0};const s=ir.exec(e);if(s){const a=le(s[2]);if(!or(a))return{expression:s[1].trim(),outputName:mt(s[2])}}return{expression:e,outputName:void 0}}function Dn({resolvedTableDetails:t,columnName:e,outputName:n}){const s=mr(t.tableInfo.columns||[],e);if(s)return{outputName:n,schemaName:t.schemaName,tableName:t.tableName,sourceColumnName:s.name}}function fr({sourceColumnName:t,resolvedTables:e,outputName:n}){const s=e.map(a=>Dn({resolvedTableDetails:a,columnName:t,outputName:n})).filter(Boolean);if(s.length===1)return s[0]}function hr({expression:t,outputName:e,aliasMappings:n,resolvedTables:s,schemas:a}){if(!Pn.test(t))return;const o=gt(t);if(!o.length)return;const r=mt(o[o.length-1]);if(o.length===1)return fr({sourceColumnName:r,resolvedTables:s,outputName:e});const l=o.slice(0,-1).join("."),u=le(o[o.length-2]||o[0]),d=n.get(u)||l,p=yt({tableReference:d,schemas:a});if(p)return Dn({resolvedTableDetails:p,columnName:r,outputName:e})}function vr({expression:t,aliasMappings:e,schemas:n}){const s=qt.exec(t);if(!s)return[];const a=s[1].trim(),o=gt(a),r=le(o[o.length-1]||a),l=e.get(r)||a,u=yt({tableReference:l,schemas:n});return u?Fn(u.tableInfo).map(d=>({outputName:d.name,schemaName:u.schemaName,tableName:u.tableName,sourceColumnName:d.name})):[]}function gr({statementQuery:t,schemas:e}){const n=An(t),s=rr(t).map(a=>yt({tableReference:a,schemas:e})).filter(Boolean);return dr(t).flatMap(a=>{const{expression:o,outputName:r}=pr(a);if(o==="*")return s.flatMap(u=>Fn(u.tableInfo).map(d=>({outputName:d.name,schemaName:u.schemaName,tableName:u.tableName,sourceColumnName:d.name})));if(qt.test(o))return vr({expression:o,aliasMappings:n,schemas:e});const l=hr({expression:o,outputName:r,aliasMappings:n,resolvedTables:s,schemas:e});return l?[{...l,outputName:r||l.sourceColumnName}]:r?[{outputName:r}]:[]})}function ln(t,e){return e?{...t,schemaName:t.schemaName??e.schemaName,tableName:t.tableName??e.tableName,sourceColumnName:t.sourceColumnName??e.sourceColumnName}:t}function yr({fieldDefs:t,statementQuery:e,schemas:n}){if(!t.length||!e||!n.length)return t;const s=gr({statementQuery:e,schemas:n});if(!s.length)return t;if(s.length===t.length)return t.map((o,r)=>ln(o,s[r]));const a=new Map;return s.forEach(o=>{const r=o.outputName;if(!r)return;const l=le(r),u=a.get(l)||[];u.push(o),a.set(l,u)}),t.map(o=>{const r=le(o.name),l=a.get(r),u=l==null?void 0:l.shift();return ln(o,u)})}const br=({fieldDefs:t,statementQuery:e,schemas:n,getTableInfoById:s})=>{const a=yr({fieldDefs:t,statementQuery:e,schemas:n}),o=new Map,r=new Set;return a.map(l=>{var R,_;const u=`${l.tableID}`,d=l.tableID&&l.tableID>0?`id:${u}`:`name:${l.schemaName||""}.${l.tableName||""}`,p=l.name,c=l.sourceColumnName||l.name;let m=o.get(d);const y=r.has(p);if(r.add(p),!m){if(l.tableName&&(m=rt({schemas:n,tableName:l.tableName,schemaName:l.schemaName})),!m&&l.tableID)for(const D of n){const k=s(u,D);if(k){m={schemaName:D.name,tableName:k.tableName,tableInfo:k.tableInfo};break}}m&&o.set(d,m)}const w=((m==null?void 0:m.tableInfo.columns)||[]).find(D=>D.name===c),x=!!((R=m==null?void 0:m.tableInfo.primary_keys)!=null&&R.find(D=>D.column===c)),$=(_=m==null?void 0:m.tableInfo.foreign_keys)==null?void 0:_.find(D=>D.column===c),S=!!$,b=y?`${(m==null?void 0:m.tableName)||l.tableName||"table"}.${l.name}`:l.name;return{tableName:(m==null?void 0:m.tableName)||l.tableName||"",schemaName:(m==null?void 0:m.schemaName)||l.schemaName,...w,aliasFieldName:b,queryFieldName:l.name,originalName:l.name,sourceColumnName:c,canMutate:!!w,isPrimaryKey:x,isForeignKey:S,foreignKey:$}})};function un(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function xr(t,e){if(Array.isArray(t))return Object.fromEntries(e.map((o,r)=>[o.name,t[r]]));const n=t;if(!e.length)return{...n};const s={};let a=!1;return e.forEach((o,r)=>{if(un(n,o.name)){s[o.name]=n[o.name],a=!0;return}const l=String(r);un(n,l)&&(s[o.name]=n[l],a=!0)}),a?s:{...n}}function Cr(t,e){return(t||[]).map(n=>xr(n,e))}const wr={class:"h-full p-2 overflow-y-auto"},Sr={key:0,class:"space-y-2"},_r={class:"flex items-center justify-between gap-2"},Er={class:"flex items-center gap-1"},Tr={class:"text-sm pl-5 text-muted-foreground decoration-wavy underline decoration-red-600"},Rr={key:0,class:"pl-5 mt-1 text-sm text-amber-600/90 font-medium"},kr={class:"pt-2 border-t"},Nr={class:"error-query-container"},$r={key:0,class:"pt-2 border-t"},zr=X({__name:"ResultTabErrorView",props:{activeTab:{}},emits:["onChangeView"],setup(t,{emit:e}){const n=t,s=c=>!!c.metadata.executeErrors,a=N(()=>{var m,y;const c=(m=n.activeTab.metadata.executeErrors)==null?void 0:m.data;return((y=c==null?void 0:c.normalizeError)==null?void 0:y.position)||null}),o=N(()=>{var y;const c=n.activeTab.metadata.executeErrors,m=c==null?void 0:c.data;return((y=m==null?void 0:m.normalizeError)==null?void 0:y.message)||(c==null?void 0:c.message)||""}),r=N(()=>{var m,y;const c=(m=n.activeTab.metadata.executeErrors)==null?void 0:m.data;return((y=c==null?void 0:c.normalizeError)==null?void 0:y.hint)||null}),l=N(()=>{const c=n.activeTab.metadata.statementQuery;if(!c)return[];const m=a.value,y=[];if(m&&m>0){const w=m-1;let x=w;for(;x<c.length&&c[x]!==`
10
- `&&c[x]!=="\r"&&c[x]!==" "&&c[x]!==" ";)x++;x<=w&&(x=Math.min(w+1,c.length)),y.push({start:w,end:x,properties:{class:"error-highlight"}})}return y}),u=async()=>{if(typeof window>"u")return;await We();const c=document.querySelector(".error-query-container .error-highlight");c&&c.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})};de(()=>l.value,()=>{u()},{flush:"post"});const d=N(()=>{var m;const c={...((m=n.activeTab.metadata.executeErrors)==null?void 0:m.data)||{}};return c==null||delete c.normalizeError,c?typeof c=="string"?c:JSON.stringify(c,null,2):""}),p=N(()=>n.activeTab.metadata.statementQuery||"");return(c,m)=>{var x;const y=ve,w=vt;return g(),F("div",wr,[s(c.activeTab)?(g(),F("div",Sr,[h("div",_r,[h("div",null,[h("div",Er,[f(y,{name:"hugeicons:alert-02",class:"size-4 text-red-500 mt-0.5"}),m[0]||(m[0]=h("div",{class:"font-medium text-red-600"},"Error Message",-1))]),h("span",Tr,V(o.value),1),r.value?(g(),F("div",Rr," Hint: "+V(r.value),1)):U("",!0)])]),h("div",kr,[m[1]||(m[1]=h("div",{class:"mb-2"},[h("span",{class:"font-normal text-sm text-muted-foreground flex items-center gap-1"}," View executed query : ")],-1)),h("div",Nr,[f(w,{code:p.value,decorations:l.value,"show-copy-button":""},null,8,["code","decorations"])])]),(x=c.activeTab.metadata.executeErrors)!=null&&x.data?(g(),F("div",$r,[m[2]||(m[2]=h("div",{class:"flex items-center justify-between mb-2"},[h("div",{class:"text-sm text-muted-foreground"},"Error Details:")],-1)),f(w,{code:d.value,language:"json"},null,8,["code"])])):U("",!0)])):U("",!0)])}}}),Mr=$t(zr,[["__scopeId","data-v-3dcef677"]]),Lr={class:"h-full p-4 space-y-3 overflow-y-auto"},Ir={class:"space-y-2"},Ar={class:"flex items-center gap-2 text-sm"},Pr={class:"font-medium"},Or={class:"flex items-center gap-2 text-sm"},Fr={class:"font-medium"},Dr={class:"flex items-center gap-2 text-sm"},Br={class:"font-medium"},Vr={class:"flex items-center gap-2 text-sm"},qr={class:"font-medium"},Kr={class:"flex items-center gap-2 text-sm"},Hr={class:"font-medium"},Ur={key:0,class:"flex items-center gap-2 text-sm"},Wr={class:"font-medium"},jr={class:"pt-3 border-t"},Qr={key:0,class:"pt-3 border-t"},Gr={class:"flex flex-wrap gap-1"},Yr=X({__name:"ResultTabInfoView",props:{activeTab:{}},setup(t){const e=t,n=typeof TextEncoder<"u"?new TextEncoder:null,s=N(()=>{var o;const a=((o=e.activeTab)==null?void 0:o.result)??[];if(!n)return{bytes:0,formatted:"N/A"};try{const r=JSON.stringify(a),l=r?n.encode(r).length:0;return{bytes:l,formatted:ws(l)}}catch{return{bytes:0,formatted:"N/A"}}});return(a,o)=>{var u,d,p,c;const r=ve,l=vt;return g(),F("div",Lr,[h("div",Ir,[h("div",Ar,[f(r,{name:"hugeicons:clock-01",class:"size-4 text-muted-foreground"}),o[0]||(o[0]=h("span",{class:"text-muted-foreground"},"Query Time:",-1)),h("span",Pr,V(i(et)(a.activeTab.metadata.queryTime)),1)]),h("div",Or,[f(r,{name:"hugeicons:summation-01",class:"size-4 text-muted-foreground"}),o[1]||(o[1]=h("span",{class:"text-muted-foreground"},"Rows:",-1)),h("span",Fr,V(i(Et)(((u=a.activeTab.result)==null?void 0:u.length)||0)),1)]),h("div",Dr,[f(r,{name:"hugeicons:file-02",class:"size-4 text-muted-foreground"}),o[2]||(o[2]=h("span",{class:"text-muted-foreground"},"Result Size:",-1)),h("span",Br,V(s.value.formatted),1)]),h("div",Vr,[f(r,{name:"hugeicons:chart-column",class:"size-4 text-muted-foreground"}),o[3]||(o[3]=h("span",{class:"text-muted-foreground"},"Columns:",-1)),h("span",qr,V(((d=a.activeTab.metadata.fieldDefs)==null?void 0:d.length)||0),1)]),h("div",Kr,[f(r,{name:"hugeicons:calendar-03",class:"size-4 text-muted-foreground"}),o[4]||(o[4]=h("span",{class:"text-muted-foreground"},"Executed At:",-1)),h("span",Hr,V(((p=a.activeTab.metadata.executedAt)==null?void 0:p.toLocaleString())||"N/A"),1)]),a.activeTab.metadata.connection?(g(),F("div",Ur,[f(r,{name:"hugeicons:plug-socket",class:"size-4 text-muted-foreground"}),o[5]||(o[5]=h("span",{class:"text-muted-foreground"},"Connection:",-1)),h("span",Wr,V(a.activeTab.metadata.connection.name||"Unknown"),1)])):U("",!0)]),h("div",jr,[o[6]||(o[6]=h("div",{class:"text-sm text-muted-foreground mb-2"},"Query:",-1)),f(l,{code:a.activeTab.metadata.statementQuery||""},null,8,["code"])]),(c=a.activeTab.metadata.fieldDefs)!=null&&c.length?(g(),F("div",Qr,[o[7]||(o[7]=h("div",{class:"text-sm text-muted-foreground mb-2"},"Fields:",-1)),h("div",Gr,[(g(!0),F(ne,null,he(a.activeTab.metadata.fieldDefs,m=>(g(),F("span",{key:m.name,class:"text-xs bg-muted px-2 py-1 rounded"},V(m.name),1))),128))])])):U("",!0)])}}}),Jr={class:"h-full flex flex-col flex-1 overflow-hidden"},Zr=X({__name:"ResultTabRawView",props:{formattedData:{},executeLoading:{type:Boolean},isStreaming:{type:Boolean}},setup(t){const e=t;return(n,s)=>{const a=ht;return g(),F("div",Jr,[e.formattedData.length===0&&!n.executeLoading&&!n.isStreaming?(g(),A(a,{key:0,title:"No Raw Data",desc:"The query returned no records to display as JSON."})):(g(),A(i(Va),{key:1,modelValue:e.formattedData,mode:"text",readOnly:!0,navigationBar:!1,class:"h-full"},null,8,["modelValue"]))])}}});function Xr({query:t,dbConnectionString:e,type:n,providerKind:s,managedSqlite:a,params:o,onMeta:r,onRows:l,onDone:u,onError:d}){const p=new AbortController;let c=0;return(async()=>{var y;try{const w=await fetch("/api/query/raw-execute-stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:t,dbConnectionString:e,type:n,providerKind:s,managedSqlite:a,params:o||{}}),signal:p.signal});if(!w.ok){const b=await w.text();d==null||d(b||`HTTP ${w.status}`);return}const x=(y=w.body)==null?void 0:y.getReader();if(!x){d==null||d("No readable stream available");return}const $=new TextDecoder;let S="";for(;;){const{done:b,value:B}=await x.read();if(b)break;S+=$.decode(B,{stream:!0});const R=S.split(`
11
- `);S=R.pop()||"";for(const _ of R){const D=_.trim();if(D)try{const k=JSON.parse(D);switch(k.type){case"meta":r==null||r(k.fields,k.command);break;case"rows":c+=k.data.length,l==null||l(k.data,c);break;case"done":u==null||u(k.rowCount,k.queryTime);break;case"error":d==null||d(k.message,k.error);break}}catch{console.warn("[StreamingQuery] Malformed NDJSON line:",D)}}}if(S.trim())try{const b=JSON.parse(S.trim());b.type==="done"?u==null||u(b.rowCount,b.queryTime):b.type==="error"&&(d==null||d(b.message))}catch{}}catch(w){if(w.name==="AbortError")return;d==null||d(w.message||"Stream connection failed")}})(),{abort:()=>p.abort()}}const cn=t=>{if(t===null||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||e===null},st=t=>t.map(e=>({name:e})),el=t=>{if(Array.isArray(t)){if(t.every(e=>cn(e))){const e=t,n=Array.from(new Set(e.flatMap(s=>Object.keys(s))));return{rows:e,fields:st(n)}}return{rows:t.map((e,n)=>({index:n,value:e})),fields:st(["index","value"])}}return cn(t)?{rows:[t],fields:st(Object.keys(t))}:{rows:[{value:t}],fields:st(["value"])}};function tl({getEditorView:t,connection:e,redisDatabaseIndex:n,fileVariables:s,fieldDefs:a,resultTabs:o,buildExplainAnalyzePrefix:r,beforeExecute:l}){const u=Xe([]),d=Xe({}),p=Xe(0),c=Ss({isHaveOneExecute:!1,executeLoading:!1,isStreaming:!1,streamingRowCount:0,queryTime:0,executeErrors:void 0,currentStatementQuery:""});let m=null;const y=async({currentStatements:S,queryPrefix:b})=>{var H,G,W,ee,ge,me,ke,Le,Ie,Ee,we,ie,Ne,Te,ae,$e,C,T,L,z,I;if(!S.length)return;const B=S[0];if(l&&!await l())return;c.isHaveOneExecute=!0,c.currentStatementQuery=B.text;let R=B.text,_={};try{_=JSON.parse(s.value||"{}")}catch(E){console.log("fileParameters error::",E)}let D="result";const k=((H=e.value)==null?void 0:H.type)===Z.REDIS;b&&!k&&(R=`${b} ${R}`,b.startsWith("EXPLAIN")&&(D="explain")),a.value=[],u.value=[],d.value={},c.executeLoading=!0,c.isStreaming=!1,c.streamingRowCount=0,m&&(m(),m=null),p.value++;const M={id:_s(),metadata:{queryTime:0,statementQuery:R,executedAt:new Date,executeErrors:void 0,fieldDefs:void 0,connection:void 0},result:[],view:D,seqIndex:p.value};o.addResultTab(M),mo(t());const K=[];if(k){try{const E=Date.now(),q=await $fetch("/api/redis/workbench/execute",{method:"POST",body:{method:(G=e.value)==null?void 0:G.method,stringConnection:(W=e.value)==null?void 0:W.connectionString,host:(ee=e.value)==null?void 0:ee.host,port:(ge=e.value)==null?void 0:ge.port,username:(me=e.value)==null?void 0:me.username,password:(ke=e.value)==null?void 0:ke.password,database:(Le=e.value)==null?void 0:Le.database,databaseIndex:n==null?void 0:n.value,ssl:(Ie=e.value)==null?void 0:Ie.ssl,ssh:(Ee=e.value)==null?void 0:Ee.ssh,command:R}}),Y=el(q.result),te=Date.now()-E;a.value=Y.fields,M.metadata.fieldDefs=Y.fields,M.metadata.connection=e.value,M.metadata.command=((we=q.command)==null?void 0:we[0])||((ie=R.trim().split(/\s+/)[0])==null?void 0:ie.toUpperCase())||"REDIS",M.metadata.queryTime=te,M.metadata.rowCount=Y.rows.length,M.result=Y.rows,d.value={rows:Y.rows,fields:Y.fields,queryTime:te},u.value=Y.rows,c.executeLoading=!1,c.isStreaming=!1,c.streamingRowCount=Y.rows.length,c.queryTime=te,c.executeErrors=void 0,o.refreshResultTab(M.id,M)}catch(E){const q=((Ne=E==null?void 0:E.data)==null?void 0:Ne.message)||(E==null?void 0:E.message)||"Failed to execute Redis command.";c.executeLoading=!1,c.isStreaming=!1,c.executeErrors={message:q,data:(E==null?void 0:E.data)||{message:q}},M.metadata.executeErrors=c.executeErrors,M.view="error",o.refreshResultTab(M.id,M)}return}if(b&&D==="explain"){try{const E=await $fetch("/api/query/raw-execute",{method:"POST",body:{dbConnectionString:(Te=e.value)==null?void 0:Te.connectionString,type:(ae=e.value)==null?void 0:ae.type,providerKind:($e=e.value)==null?void 0:$e.providerKind,managedSqlite:(C=e.value)==null?void 0:C.managedSqlite,query:R,params:_},onResponseError:({response:q})=>{var Ce,Ae;const Y=(Ce=q._data)==null?void 0:Ce.data,te=t();te&&Y&&an({editorView:te,originalSql:B.text,statementFrom:Number(B.from),fileParameters:_,errorDetail:Y,clientType:((Ae=e.value)==null?void 0:Ae.type)||Z.POSTGRES,queryPrefix:b})}});a.value=E.fields,M.metadata.fieldDefs=E.fields,M.result=E.rows,M.metadata.queryTime=E.queryTime||0,M.metadata.connection=e.value,d.value=E,u.value=E.rows,c.executeErrors=void 0,c.queryTime=E.queryTime||0}catch(E){c.executeErrors=E.data,M.metadata.executeErrors=E.data,M.view="error"}c.executeLoading=!1,o.refreshResultTab(M.id,M);return}c.isStreaming=!0,c.executeLoading=!1;const{abort:O}=Xr({query:R,dbConnectionString:((T=e.value)==null?void 0:T.connectionString)||"",type:(L=e.value)==null?void 0:L.type,providerKind:(z=e.value)==null?void 0:z.providerKind,managedSqlite:(I=e.value)==null?void 0:I.managedSqlite,params:_,onMeta:(E,q)=>{a.value=E,M.metadata.fieldDefs=E,M.metadata.connection=e.value,M.metadata.command=q,o.refreshResultTab(M.id,M)},onRows:(E,q)=>{K.push(...E),c.streamingRowCount=q,M.result=K,M.metadata.rowCount=q,u.value=K,o.refreshResultTab(M.id,M)},onDone:(E,q)=>{c.executeLoading=!1,c.isStreaming=!1,c.queryTime=q,c.executeErrors=void 0,c.streamingRowCount=E,M.metadata.queryTime=q,M.metadata.rowCount=E,d.value={rows:M.result,fields:a.value,queryTime:q},o.refreshResultTab(M.id,M),m=null},onError:(E,q)=>{var Ce;const Y={message:E,data:q||{message:E}};c.executeLoading=!1,c.isStreaming=!1,c.executeErrors=Y,M.metadata.executeErrors=Y,M.view="error";const te=t();te&&q&&an({editorView:te,originalSql:B.text,statementFrom:Number(B.from),fileParameters:_,errorDetail:q,clientType:((Ce=e.value)==null?void 0:Ce.type)||Z.POSTGRES}),o.refreshResultTab(M.id,M),m=null}});m=O};return{currentRawQueryResult:u,rawResponse:d,queryProcessState:c,executeCurrentStatement:y,onExecuteCurrent:()=>{const S=t();if(!S)return;const{currentStatements:b}=ct(S);y({currentStatements:b})},onExplainAnalyzeCurrent:()=>{const S=t();if(!S)return;const{currentStatements:b}=ct(S);y({currentStatements:b,queryPrefix:r()})},cancelStreamingQuery:()=>{m&&(m(),m=null,c.executeLoading=!1,c.isStreaming=!1)}}}function nl(){const t=j({BUFFERS:!0,COSTS:!0,GENERIC_PLAN:!1,MEMORY:!1,SETTINGS:!0,SUMMARY:!0,TIMING:!0,VERBOSE:!0,WAL:!0}),e=j("NONE"),n=r=>{t.value[r]=!t.value[r]},s=r=>{e.value=r};return{explainAnalyzeOptionItems:N(()=>Jt.filter(r=>r.key!=="SERIALIZE").map(r=>({key:r.key,label:r.label,checked:t.value[r.key]}))),serializeMode:e,toggleExplainOption:n,setSerializeMode:s,buildExplainAnalyzePrefix:()=>{const r=Jt.filter(d=>d.key!=="SERIALIZE"&&t.value[d.key]).map(d=>d.key).flatMap(d=>d==="GENERIC_PLAN"?[]:[d]),l=e.value==="NONE"?[]:[`SERIALIZE ${e.value}`];return`EXPLAIN (${["ANALYZE","FORMAT JSON",...r,...l].join(", ")})`}}}function sl(){const t=Xe(new Map),e=j(null),n=p=>{const c=new Map;c.set(p.id,p),t.value.forEach((m,y)=>{c.set(y,m)}),t.value=c,e.value=p.id},s=(p,c)=>{const m=new Map(t.value);m.set(p,{...c}),t.value=m};return{executedResults:t,activeResultTabId:e,addResultTab:n,refreshResultTab:s,setActiveResultTab:p=>{t.value.has(p)&&(e.value=p)},closeResultTab:p=>{const c=new Map(t.value);if(c.delete(p),t.value=c,e.value===p){const m=Array.from(c.keys());e.value=m.length>0?m[m.length-1]:null}},updateResultTabView:(p,c)=>{const m=t.value.get(p);m&&s(p,{...m,view:c})},closeOtherResultTabs:p=>{const c=t.value.get(p);if(!c)return;const m=new Map;m.set(p,c),t.value=m,e.value=p},closeResultTabsToRight:p=>{const c=Array.from(t.value.keys()),m=c.indexOf(p);if(m<0)return;const y=new Map;for(let w=0;w<=m;w++){const x=c[w],$=t.value.get(x);$&&y.set(x,$)}t.value=y,y.has(e.value||"")||(e.value=p)},updateResultTabResult:(p,c)=>{const y=new Map(t.value).get(p);y&&(y.result=c)}}}function Je(t,...e){}const al=t=>{let e;return async()=>(e||(e=t()),await e)};class Kt{constructor(e={}){ue(this,"opts");ue(this,"parser",null);ue(this,"offsetRecord",{});ue(this,"getParser",al(async()=>{if(this.parser)return this.parser;const e=await Sn(()=>import("./CO0Pa76w.js").then(s=>s.i),__vite__mapDeps([0,1,2]),import.meta.url),{Parser:n}=e.default||e;return this.parser=new n,this.parser}));this.opts=e}async parse(e,n){var o,r;this.offsetRecord={};const s=(r=(o=this.opts).getParserOptions)==null?void 0:r.call(o,n.state),a=await this.sanitizeSql(e,s);try{const l=await this.getParser();if((s==null?void 0:s.database)==="DuckDB")return this.parseWithDuckDBSupport(a,s);const u=l.astify(a,s);return{success:!0,errors:[],ast:u}}catch(l){return{success:!1,errors:[this.extractErrorInfo(l,a)]}}}async sanitizeSql(e,n){if(n!=null&&n.ignoreBrackets){const{sql:s,offsetRecord:a}=ll(e);return this.offsetRecord=a,s}return e}async parseWithDuckDBSupport(e,n){const s=await this.getParser(),a=ol(e).trimStart().toLowerCase();if(a.startsWith("from")||a.includes("macro"))return Je(),{success:!0,errors:[]};let o=e;a.includes("create or replace table")&&(this.offsetRecord[e.indexOf("create or replace table")]=-11,o=e.replace(/create or replace table/i,"create table"));try{const r={...n,database:"PostgreSQL"},l=s.astify(o,r);return{success:!0,errors:[],ast:l}}catch(r){return{success:!1,errors:[this.extractErrorInfo(r,e)]}}}extractErrorInfo(e,n){var l,u,d;let s=1,a=1;const o=(e==null?void 0:e.message)||"SQL parsing error",r=e;if(r!=null&&r.location)s=((l=r.location.start)==null?void 0:l.line)||1,a=((u=r.location.start)==null?void 0:u.column)||1;else if(r!=null&&r.hash)s=r.hash.line||1,a=((d=r.hash.loc)==null?void 0:d.first_column)||1;else{const p=o.match(/line (\d+)/i),c=o.match(/column (\d+)/i);p!=null&&p[1]&&(s=parseInt(p[1],10)),c!=null&&c[1]&&(a=parseInt(c[1],10))}for(const[p,c]of Object.entries(this.offsetRecord))a>parseInt(p,10)&&(a-=c);return a>n.length&&(a=n.length),{message:this.cleanErrorMessage(o),line:Math.max(1,s),column:a,severity:"error"}}cleanErrorMessage(e){return e.replace(/^Error: /,"").replace(/Expected .* but .* found\./i,n=>n.replace(/but .* found/,"found unexpected token")).trim()}async validateSql(e,n){return(await this.parse(e,n)).errors}async extractTableReferences(e,n){var a,o;const s=n?(o=(a=this.opts).getParserOptions)==null?void 0:o.call(a,n.state):void 0;try{return(await this.getParser()).tableList(e,s).map(u=>{const d=u.split("::");return d[d.length-1]||u})}catch{return[]}}async extractColumnReferences(e,n){var a,o;const s=n!=null&&n.state?(o=(a=this.opts).getParserOptions)==null?void 0:o.call(a,n.state):void 0;try{return(await this.getParser()).columnList(e,s).map(d=>{const p=d.split("::");return p[p.length-1]||d})}catch{return[]}}}function ol(t,e=["/*","--"]){const n=[];if(e.includes("/*")&&n.push("/\\*[\\s\\S]*?\\*/"),e.includes("--")&&n.push("--[^\\n]*"),n.length===0)return t;const s=new RegExp(`^\\s*(${n.join("|")})\\s*`,"");let a=t,o="";for(;a!==o;)o=a,a=a.replace(s,"");return a}const rl=2;function ll(t){const e={};return{sql:t.replace(/("(?:[^"\\]|\\.)*")|('(?:[^'\\]|\\.)*')|(\{[^}]*\})/g,(s,a,o,r,l)=>a||o?s:r?(e[l]=rl,`'${r}'`):s),offsetRecord:e}}const il=750;function ul(t,e){const s=e.line(t.line).from+Math.max(0,t.column-1),a=s+1;return{from:s,to:a,severity:t.severity,message:t.message,source:"sql-parser"}}function cl(t={}){const e=t.parser||new Kt;return xn(async n=>{const s=n.state.doc,a=s.toString();return a.trim()?(await e.validateSql(a,{state:n.state})).map(r=>ul(r,s)):[]},{delay:t.delay||il})}function He(t){return typeof t=="object"&&!Array.isArray(t)&&!("self"in t)}function Me(t){return typeof t=="object"&&!Array.isArray(t)&&"self"in t&&"children"in t}function Se(t){return Array.isArray(t)}function ce(t,e,n,s){const a=t.length;if(e==="string"||e==="completion"&&s&&Se(s))return"column";if(e==="namespace"&&n){if(Se(n))return"table";if(He(n))return Object.values(n).some(r=>Se(r)||Me(r)&&Se(r.children))?a<=1?"database":"schema":a===0?"database":"namespace"}if(e==="completion"&&n)return Se(n)?"table":(He(n)&&Object.values(n).some(r=>Se(r)||Me(r)&&Se(r.children)),a<=1?"database":"schema");switch(a){case 0:return"database";case 1:return"schema";default:return"namespace"}}function Bn(t,e,n={}){const{maxDepth:s=10}=n;if(e===""&&Me(t)){const o=ce([],"completion",t.children);return{completion:t.self,path:[],type:"completion",semanticType:o,namespace:t.children}}const a=e.split(".").filter(o=>o.length>0);return a.length===0||a.length>s?null:Tt(t,a,[],n)}function Tt(t,e,n,s,a){if(e.length===0){if(Me(t)){const d=ce(n,"completion",t.children,a);return{completion:t.self,path:n,type:"completion",semanticType:d,namespace:t.children}}const u=ce(n,"namespace",t,a);return{path:n,type:"namespace",semanticType:u,namespace:t}}const[o,...r]=e,{caseSensitive:l=!1}=s;if(!o)return null;if(He(t)){const u=l?Object.keys(t).find(d=>d===o):Object.keys(t).find(d=>d.toLowerCase()===o.toLowerCase());if(u){const d=t[u];if(d)return Tt(d,r,[...n,u],s,t)}}else{if(Me(t))return Tt(t.children,e,n,s,t);if(Se(t)){for(const u of t)if(typeof u=="string"){if((l?u===o:u.toLowerCase()===o.toLowerCase())&&r.length===0){const p=ce([...n,u],"string",void 0,t);return{value:u,path:[...n,u],type:"string",semanticType:p}}}else if((l?u.label===o:u.label.toLowerCase()===o.toLowerCase())&&r.length===0){const p=ce([...n,u.label],"completion",void 0,t);return{completion:u,path:[...n,u.label],type:"completion",semanticType:p}}}}return null}function dl(t,e,n={}){const s=[];if(e.includes(".")){const a=e.lastIndexOf("."),o=e.substring(0,a),r=e.substring(a+1),l=Bn(t,o,n);if(l!=null&&l.namespace)return Rt(l.namespace,r,l.path,n)}else return Rt(t,e,[],n);return s}function Rt(t,e,n,s){const a=[],{caseSensitive:o=!1,allowPartialMatch:r=!0}=s;if(He(t)){for(const[l,u]of Object.entries(t))if(r?o?l.startsWith(e):l.toLowerCase().startsWith(e.toLowerCase()):o?l===e:l.toLowerCase()===e.toLowerCase())if(Me(u)){const p=ce([...n,l],"completion",u.children,t);a.push({completion:u.self,path:[...n,l],type:"completion",semanticType:p,namespace:u.children})}else{const p=ce([...n,l],"namespace",u,t);a.push({path:[...n,l],type:"namespace",semanticType:p,namespace:u})}}else if(Me(t)){if(r?o?t.self.label.startsWith(e):t.self.label.toLowerCase().startsWith(e.toLowerCase()):o?t.self.label===e:t.self.label.toLowerCase()===e.toLowerCase()){const u=ce([...n,t.self.label],"completion",t.children);a.push({completion:t.self,path:[...n,t.self.label],type:"completion",semanticType:u,namespace:t.children})}a.push(...Rt(t.children,e,n,s))}else if(Se(t)){for(const l of t)if(typeof l=="string"){if(r?o?l.startsWith(e):l.toLowerCase().startsWith(e.toLowerCase()):o?l===e:l.toLowerCase()===e.toLowerCase()){const d=ce([...n,l],"string",void 0,t);a.push({value:l,path:[...n,l],type:"string",semanticType:d})}}else if(r?o?l.label.startsWith(e):l.label.toLowerCase().startsWith(e.toLowerCase()):o?l.label===e:l.label.toLowerCase()===e.toLowerCase()){const d=ce([...n,l.label],"completion",void 0,t);a.push({completion:l,path:[...n,l.label],type:"completion",semanticType:d})}}return a}function ml(t,e,n={}){const s=[],{maxDepth:a=10}=n;lt(t,[],s,a);const{caseSensitive:o=!1}=n;return s.filter(l=>l.path.some(u=>o?u===e:u.toLowerCase()===e.toLowerCase())).sort((l,u)=>{var c,m;const d=o?l.path[l.path.length-1]===e:((c=l.path[l.path.length-1])==null?void 0:c.toLowerCase())===e.toLowerCase(),p=o?u.path[u.path.length-1]===e:((m=u.path[u.path.length-1])==null?void 0:m.toLowerCase())===e.toLowerCase();return d&&!p?-1:!d&&p?1:l.path.length-u.path.length})}function lt(t,e,n,s){if(!(e.length>=s)){if(He(t))for(const[a,o]of Object.entries(t)){const r=[...e,a];if(Me(o)){const l=ce(r,"completion",o.children,t);n.push({completion:o.self,path:r,type:"completion",semanticType:l,namespace:o.children}),lt(o.children,r,n,s)}else{const l=ce(r,"namespace",o,t);n.push({path:r,type:"namespace",semanticType:l,namespace:o}),lt(o,r,n,s)}}else if(Me(t)){const a=ce(e,"completion",t.children);n.push({completion:t.self,path:e,type:"completion",semanticType:a,namespace:t.children}),lt(t.children,e,n,s)}else if(Se(t))for(const a of t)if(typeof a=="string"){const o=ce([...e,a],"string",void 0,t);n.push({value:a,path:[...e,a],type:"string",semanticType:o})}else{const o=ce([...e,a.label],"completion",void 0,t);n.push({completion:a,path:[...e,a.label],type:"completion",semanticType:o})}}}function dn(t,e,n={}){const{enableFuzzySearch:s=!1}=n,a=Bn(t,e,n);if(a)return a;const o=dl(t,e,n);if(o.length>0)return o[0]||null;if(s){const r=ml(t,e,n);if(r.length>0)return r[0]||null}return null}function Vn(t,e){if(e.size===0)return{};if(He(t)){const n={};for(const[s,a]of Object.entries(t))if(Array.from(e).some(r=>r.toLowerCase()===s.toLowerCase()))n[s]=a;else if(He(a)){const r=Vn(a,e);Object.keys(r).length>0&&(n[s]=r)}return n}return t}function pl(t={}){const{schema:e={},keywords:n={},hoverTime:s=300,enableKeywords:a=!0,enableTables:o=!0,enableColumns:r=!0,enableFuzzySearch:l=!0,parser:u=new Kt,tooltipRender:d,tooltipRenderers:p={}}=t;let c=null;return Es(async(m,y,w)=>{const{from:x,to:$,text:S}=m.state.doc.lineAt(y);let b=y,B=y;c===null&&(c=typeof n=="function"?n(m):Promise.resolve(n));const R=await c;for(;b>x&&/[\w.]/.test(S[b-x-1]??"");)b--;for(;B<$&&/[\w.]/.test(S[B-x]??"");)B++;if(b===y&&w<0||B===y&&w>0)return null;const _=S.slice(b-x,B-x).toLowerCase();if(!_||_.length===0)return null;const D=typeof e=="function"?e(m):e;let k=null;if(Je(),!k&&a&&R[_]){Je("keywordResult",_,R[_]);const M={keyword:_,info:R[_]};k={word:_,view:m,pos:y,tooltipType:"keyword",keywordData:M}}if(!k&&(o||r)&&D){const M=m.state.doc.toString(),K=await u.extractTableReferences(M),O=new Set(K.map(W=>W.toLowerCase())),H=Vn(D,O);let G=dn(H,_,{enableFuzzySearch:l});if(!G&&O.size===0&&(G=dn(D,_,{enableFuzzySearch:l})),G){Je("namespaceResult (query-aware)",_,G,"tableRefs:",Array.from(O));const W={item:G,word:_,resolvedSchema:O.size>0?H:D};k={word:_,view:m,pos:y,tooltipType:"namespace",namespaceData:W}}else Je("No namespace item found for:",_)}return k?{pos:b,end:B,above:!0,create(M){if(d){const H=d(_,M,y);if(H)return{dom:H}}let K=null;if(k.tooltipType==="keyword"&&k.keywordData)K=p.keyword?p.keyword(k.keywordData):hl(k.keywordData);else if(k.tooltipType==="namespace"&&k.namespaceData){const H=k.namespaceData,{semanticType:G}=H.item;G==="table"&&p.table?K=p.table(H):G==="column"&&p.column?K=p.column(H):(G==="database"||G==="schema"||G==="namespace")&&p.namespace?K=p.namespace(H):K=fl(H.item)}if(!K)return{dom:document.createElement("div")};const O=document.createElement("div");return O.className="cm-sql-hover-tooltip",O.innerHTML=K,{dom:O}}}:null},{hoverTime:s})}function fl(t){var a,o,r,l,u,d,p;const e=t.path.join("."),n=((a=t.completion)==null?void 0:a.label)||t.value||t.path[t.path.length-1]||"unknown";let s=`<div class="sql-hover-${t.semanticType}">`;switch(s+=`<div class="sql-hover-header"><strong>${n}</strong> <span class="sql-hover-type">${t.semanticType}</span></div>`,t.semanticType){case"database":if(s+=`<div class="sql-hover-description">Database${(o=t.completion)!=null&&o.detail?`: ${t.completion.detail}`:""}</div>`,t.namespace){const c=it(t.namespace);c>0&&(s+=`<div class="sql-hover-children">Contains ${c} schema${c!==1?"s":""}</div>`)}break;case"schema":if(s+=`<div class="sql-hover-description">Schema${(r=t.completion)!=null&&r.detail?`: ${t.completion.detail}`:""}</div>`,e&&(s+=`<div class="sql-hover-path"><strong>Path:</strong> <code>${e}</code></div>`),t.namespace){const c=it(t.namespace);c>0&&(s+=`<div class="sql-hover-children">Contains ${c} table${c!==1?"s":""}</div>`)}break;case"table":if(s+=`<div class="sql-hover-description">Table${(l=t.completion)!=null&&l.detail?`: ${t.completion.detail}`:""}</div>`,e){const c=t.path;c.length>1&&(s+=`<div class="sql-hover-path"><strong>Schema:</strong> <code>${c.slice(0,-1).join(".")}</code></div>`)}if(t.namespace&&Se(t.namespace)){const c=t.namespace;if(c.length>0){s+=`<div class="sql-hover-columns"><strong>Columns (${c.length}):</strong><br>`;const y=c.slice(0,8).map(w=>typeof w=="string"?w:w.label);s+=y.map(w=>`<code>${w}</code>`).join(", "),c.length>8&&(s+=`, <em>and ${c.length-8} more...</em>`),s+="</div>"}}break;case"column":if(s+=`<div class="sql-hover-description">Column${(u=t.completion)!=null&&u.detail?`: ${t.completion.detail}`:""}</div>`,e){const c=t.path;c.length>1&&(s+=`<div class="sql-hover-path"><strong>Table:</strong> <code>${c.slice(0,-1).join(".")}</code></div>`)}break;default:if(s+=`<div class="sql-hover-description">Namespace${(d=t.completion)!=null&&d.detail?`: ${t.completion.detail}`:""}</div>`,e&&(s+=`<div class="sql-hover-path"><strong>Path:</strong> <code>${e}</code></div>`),t.namespace){const c=it(t.namespace);c>0&&(s+=`<div class="sql-hover-children">Contains ${c} item${c!==1?"s":""}</div>`)}break}return(p=t.completion)!=null&&p.info&&typeof t.completion.info=="string"&&(s+=`<div class="sql-hover-info">${t.completion.info}</div>`),s+="</div>",s}function it(t){return Array.isArray(t)?t.length:typeof t=="object"&&t!==null?"self"in t&&"children"in t?1+it(t.children):Object.keys(t).length:0}function hl(t){const{keyword:e,info:n}=t;let s='<div class="sql-hover-keyword">';if(s+=`<div class="sql-hover-header"><strong>${e.toUpperCase()}</strong> <span class="sql-hover-type">keyword</span></div>`,s+=`<div class="sql-hover-description">${n.description}</div>`,n.syntax&&(s+=`<div class="sql-hover-syntax"><strong>Syntax:</strong> <code>${n.syntax}</code></div>`),n.example&&(s+=`<div class="sql-hover-example"><strong>Example:</strong><br><code>${n.example}</code></div>`),n.metadata&&typeof n.metadata=="object"&&Object.keys(n.metadata).length>0){s+='<div class="sql-hover-metadata">';for(const[a,o]of Object.entries(n.metadata))s+=`<span class="sql-hover-tag" title="${a}">${o}</span> `;s+="</div>"}return s+="</div>",s}const vl=(t="light")=>{const s=t==="dark"?{tooltipBg:"#1f2937",tooltipBorder:"#374151",tooltipText:"#f9fafb",tooltipTypeBg:"#374151",tooltipTypeText:"#9ca3af",tooltipChildren:"#9ca3af",codeBg:"#374151",codeText:"#f3f4f6",strong:"#ffffff",em:"#9ca3af",header:"#ffffff",info:"#d1d5db",related:"#d1d5db",path:"#d1d5db",example:"#d1d5db",columns:"#d1d5db",syntax:"#d1d5db"}:{tooltipBg:"#ffffff",tooltipBorder:"#e5e7eb",tooltipText:"#374151",tooltipTypeBg:"#f3f4f6",tooltipTypeText:"#6b7280",tooltipChildren:"#6b7280",codeBg:"#f9fafb",codeText:"#1f2937",strong:"#111827",em:"#6b7280",header:"#111827",info:"#374151",related:"#374151",path:"#374151",example:"#374151",columns:"#374151",syntax:"#374151"};return Ft.theme({".cm-sql-hover-tooltip":{padding:"8px 12px",backgroundColor:s.tooltipBg,border:`1px solid ${s.tooltipBorder}`,borderRadius:"6px",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",fontSize:"13px",lineHeight:"1.4",maxWidth:"320px",fontFamily:"system-ui, -apple-system, sans-serif",color:s.tooltipText},".cm-sql-hover-tooltip .sql-hover-header":{marginBottom:"6px",display:"flex",alignItems:"center",gap:"6px",color:s.header},".cm-sql-hover-tooltip .sql-hover-type":{fontSize:"11px",padding:"2px 6px",backgroundColor:s.tooltipTypeBg,color:s.tooltipTypeText,borderRadius:"4px",fontWeight:"500"},".cm-sql-hover-tooltip .sql-hover-description":{color:s.info,marginBottom:"8px"},".cm-sql-hover-tooltip .sql-hover-syntax":{marginBottom:"8px",color:s.syntax},".cm-sql-hover-tooltip .sql-hover-example":{marginBottom:"4px",color:s.example},".cm-sql-hover-tooltip .sql-hover-columns":{marginBottom:"4px",color:s.columns},".cm-sql-hover-tooltip .sql-hover-related":{marginBottom:"4px",color:s.related},".cm-sql-hover-tooltip .sql-hover-path":{marginBottom:"4px",color:s.path},".cm-sql-hover-tooltip .sql-hover-info":{marginBottom:"4px",color:s.info},".cm-sql-hover-tooltip .sql-hover-children":{marginBottom:"4px",color:s.tooltipChildren,fontSize:"12px"},".cm-sql-hover-tooltip code":{backgroundColor:s.codeBg,padding:"1px 4px",borderRadius:"3px",fontSize:"12px",fontFamily:"ui-monospace, 'SF Mono', 'Monaco', 'Cascadia Code', 'Roboto Mono', monospace",color:s.codeText},".cm-sql-hover-tooltip strong":{fontWeight:"600",color:s.strong},".cm-sql-hover-tooltip em":{fontStyle:"italic",color:s.em}})};class gl{constructor(e){ue(this,"parser");ue(this,"cache",new Map);ue(this,"MAX_CACHE_SIZE",10);this.parser=e}async analyzeDocument(e){const n=e.doc.toString(),s=this.generateCacheKey(n),a=this.cache.get(s);if(a)return a;const o=await this.extractStatements(n,e);if(this.cache.set(s,o),this.cache.size>this.MAX_CACHE_SIZE){const r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}return o}async getStatementAtPosition(e,n){return(await this.analyzeDocument(e)).find(a=>n>=a.from&&n<=a.to)||null}async getStatementsInRange(e,n,s){return(await this.analyzeDocument(e)).filter(o=>o.from<=s&&o.to>=n)}async extractStatements(e,n){const s=[],a=this.splitByStatementSeparators(e);let o=0;for(const r of a){const l=r.trim();if(l.length===0){o+=r.length;continue}const u=o+r.indexOf(l),d=u+l.length,p=n.doc.lineAt(u),c=n.doc.lineAt(d),m=this.stripComments(l);if(m.trim().length===0||m.trim()===";"){o+=r.length;continue}const y=await this.parser.parse(m,{state:n}),w=this.determineStatementType(m),x=m.endsWith(";")?m.slice(0,-1).trim():m.trim();s.push({from:u,to:d,lineFrom:p.number,lineTo:c.number,content:x,type:w,isValid:y.success}),o+=r.length}return s}splitByStatementSeparators(e){const n=[];let s="",a=!1,o="",r=!1,l=!1,u=0;for(;u<e.length;){const d=e[u],p=e[u+1];if(!a&&!l&&d==="-"&&p==="-"){r=!0,s+=d+p,u+=2;continue}if(!a&&!r&&d==="/"&&p==="*"){l=!0,s+=d+p,u+=2;continue}if(l&&d==="*"&&p==="/"){l=!1,s+=d+p,u+=2;continue}if(r&&(d===`
12
- `||d==="\r")){r=!1,s+=d,u++;continue}if(r||l){s+=d,u++;continue}if(!a&&(d==="'"||d==='"'||d==="`"))a=!0,o=d,s+=d;else if(a&&d===o){if(p===o){s+=d+p,u+=2;continue}a=!1,o="",s+=d}else!a&&d===";"?(s+=d,n.push(s),s=""):s+=d;u++}return s.trim()&&n.push(s),n}determineStatementType(e){const n=e.trim().toLowerCase();return n.startsWith("select")?"select":n.startsWith("insert")?"insert":n.startsWith("update")?"update":n.startsWith("delete")?"delete":n.startsWith("create")?"create":n.startsWith("drop")?"drop":n.startsWith("alter")?"alter":n.startsWith("use")?"use":"other"}stripComments(e){let n="",s=!1,a="",o=!1,r=!1,l=0;for(;l<e.length;){const u=e[l],d=e[l+1];if(!s&&!r&&u==="-"&&d==="-"){o=!0,l+=2;continue}if(!s&&!o&&u==="/"&&d==="*"){r=!0,l+=2;continue}if(r&&u==="*"&&d==="/"){r=!1,l+=2;continue}if(o&&(u===`
13
- `||u==="\r")){o=!1,n+=u,l++;continue}if(o||r){l++;continue}if(!s&&(u==="'"||u==='"'||u==="`"))s=!0,a=u,n+=u;else if(s&&u===a){if(d===a){n+=u+d,l+=2;continue}s=!1,a="",n+=u}else n+=u;l++}return n}generateCacheKey(e){let n=0;for(let s=0;s<e.length;s++){const a=e.charCodeAt(s);n=(n<<5)-n+a,n=n&n}return n.toString()}clearCache(){this.cache.clear()}}const qn=Rs.define(),Kn=Ts.define({create(){return{currentStatement:null,allStatements:[],cursorPosition:0,isFocused:!0}},update(t,e){for(const n of e.effects)if(n.is(qn))return n.value;return t}});class yl extends $s{constructor(n,s,a=!0,o=!0){super();ue(this,"config");ue(this,"isCurrent");ue(this,"isValid");ue(this,"isFocused");this.config=n,this.isCurrent=s,this.isValid=a,this.isFocused=o}toDOM(){const n=document.createElement("div");n.className="cm-sql-gutter-marker";let s=this.config.backgroundColor||"#3b82f6";!this.isValid&&this.config.showInvalid!==!1&&(s=this.config.errorBackgroundColor||"#ef4444");let a;return this.isFocused?a=this.isCurrent?"1":(this.config.inactiveOpacity||"0.3").toString():this.config.unfocusedOpacity!==void 0?a=this.config.unfocusedOpacity.toString():this.config.hideWhenNotFocused?a="0":a=this.isCurrent?"1":(this.config.inactiveOpacity||"0.3").toString(),n.style.cssText=`
14
- background: ${s};
15
- height: 100%;
16
- width: 100%;
17
- opacity: ${a};
18
- transition: opacity 150ms ease-in-out;
19
- border-radius: 1px;
20
- `,n}eq(n){return this.isCurrent===n.isCurrent&&this.isValid===n.isValid&&this.isFocused===n.isFocused&&this.config===n.config}}function bl(t,e){var l;let n=Ns.empty;if((l=e.whenHide)!=null&&l.call(e,t))return n;const s=t.state.field(Kn,!1);if(!s)return n;const{currentStatement:a,allStatements:o,isFocused:r}=s;try{for(const u of o){const d=(a==null?void 0:a.from)===u.from&&(a==null?void 0:a.to)===u.to;if(!u.isValid&&e.showInvalid===!1)continue;const p=new yl(e,d,u.isValid,r);for(let c=u.lineFrom;c<=u.lineTo;c++)try{if(c<1||c>t.state.doc.lines)continue;const m=t.state.doc.line(c);n=n.update({add:[p.range(m.from)]})}catch(m){console.warn("SqlGutter: Invalid line number",c,m)}}}catch(u){console.warn("SqlGutter: Error creating markers",u)}return n}function xl(t){return Ft.updateListener.of(async e=>{if(!e.docChanged&&!e.selectionSet&&!e.focusChanged)return;const{state:n}=e.view,{main:s}=n.selection,a=s.head,o=await t.analyzeDocument(n),l={currentStatement:await t.getStatementAtPosition(n,a),allStatements:o,cursorPosition:a,isFocused:e.view.hasFocus};e.view.dispatch({effects:qn.of(l)})})}function Cl(t){const e=t.width||3;return Ft.baseTheme({".cm-sql-gutter":{width:`${e}px`,minWidth:`${e}px`},".cm-sql-gutter .cm-gutterElement":{width:`${e}px`,padding:"0",margin:"0"},".cm-sql-gutter-marker":{width:"100%",height:"100%",display:"block"},".cm-lineNumbers .cm-gutterElement":{paddingLeft:"8px",paddingRight:"8px"}})}function wl(t){return ks({class:`cm-sql-gutter ${t.className||""}`,markers:e=>bl(e,t)})}function Sl(t={}){const e=t.parser||new Kt,n=new gl(e);return[Kn,xl(n),Cl(t),wl(t)]}function _l(t={}){const e=[],{enableLinting:n=!0,enableGutterMarkers:s=!0,enableHover:a=!0,linterConfig:o,gutterConfig:r,hoverConfig:l}=t;return n&&e.push(cl(o)),s&&e.push(Sl(r)),a&&(e.push(pl(l)),l!=null&&l.theme?e.push(l.theme):e.push(vl())),e}const El=new RegExp(`(${Re})\\s*\\.\\s*([A-Za-z_][A-Za-z0-9_$]*)?$`);function Tl(t,e){let s=_n(t).resolveInner(e,-1);for(;s;){if(s.type.name==="Statement")return s;s=s.parent}return null}function Rl(t){return/Comment|String/.test(t.type.name)}function kl({tableReference:t,tableName:e,schemaName:n,tableInfo:s}){var a,o;return{tableName:e,schemaName:n,tableReference:t,columns:s.columns||[],primaryKeyColumns:new Set(((a=s.primary_keys)==null?void 0:a.map(r=>r.column))||[]),foreignKeysByColumn:new Map(((o=s.foreign_keys)==null?void 0:o.map(r=>[r.column,r]))||[])}}function Nl({tableReference:t,schemas:e,defaultSchemaName:n}){const s=yt({tableReference:t,schemas:e,defaultSchemaName:n});return s?kl({tableReference:t,tableName:s.tableName,schemaName:s.schemaName,tableInfo:s.tableInfo}):null}function $l(t){return[...t.columns].sort((n,s)=>(n.ordinal_position||0)-(s.ordinal_position||0)).map(n=>Xa({column:n,tableName:t.tableName,schemaName:t.schemaName,isPrimaryKey:t.primaryKeyColumns.has(n.name),foreignKey:t.foreignKeysByColumn.get(n.name)}))}function zl(t,e){const n=_n(t.state).resolveInner(t.pos,-1);if(Rl(n))return null;const s=Tl(t.state,t.pos);if(!s)return null;const a=t.state.doc.sliceString(s.from,t.pos),o=El.exec(a);if(!o)return null;const r=o[1],l=o[2]||"",u=le(r),d=t.state.doc.sliceString(s.from,s.to),c=An(d).get(u)||r,m=Nl({tableReference:c,schemas:e.schemas,defaultSchemaName:e.defaultSchemaName});return m?{from:t.pos-l.length,options:$l(m),validFor:/^[A-Za-z0-9_$]*$/}:null}function Ml(t,e){if(!e.fileVariables)return null;const n=t.matchBefore(/:\w*$/);if(!n)return null;try{const s=JSON.parse(e.fileVariables),a=[];for(const o in s)a.push({label:`:${o}`,type:zs.Variable,boost:120,detail:"variable",info:()=>Za(o,s[o]),apply(r,l,u,d){const c=r.state.doc.sliceString(u-1,u)===":"?u-1:u;r.dispatch({changes:{from:c,to:d,insert:l.label}})}});return{from:n.from,options:a,validFor:/^:\w*$/}}catch{return null}}function Ll(t){return e=>{const n=Ml(e,t);return n||zl(e,t)}}const Il=async()=>(await Sn(()=>import("./BiOIaWuc.js"),[],import.meta.url)).default.keywords;function Al({codeEditorRef:t,fileVariables:e,connection:n,onExecuteStatement:s,onExplainAnalyzeCurrent:a}){const o=Dt(),{schemasByContext:r,activeSchema:l}=ft(o),u=j({line:1,column:1}),d=()=>{var W;return(W=t.value)==null?void 0:W.editorView},p=N(()=>{var W,ee,ge;return((W=l.value)==null?void 0:W.name)||((ge=(ee=r.value)==null?void 0:ee[0])==null?void 0:ge.name)}),c=N(()=>{var W;return((W=n==null?void 0:n.value)==null?void 0:W.type)===Z.REDIS}),m=N(()=>!c.value),y=N(()=>{var W;return((W=n==null?void 0:n.value)==null?void 0:W.type)===Z.POSTGRES}),w=N(()=>eo({schemas:r.value,defaultSchemaName:p.value,fileVariables:e.value})),x=new xt,$=new xt,S=new xt,b=()=>{var W,ee;return Ds({dialect:Zt((W=n==null?void 0:n.value)==null?void 0:W.type),upperCaseKeywords:!0,keywordCompletion:!((ee=n==null?void 0:n.value)!=null&&ee.type)||n.value.type===Z.POSTGRES?qs:void 0,schema:w.value.schema,defaultSchema:w.value.defaultSchema})},B=()=>c.value?Fs():b(),R=()=>{var W;return c.value?[]:Zt((W=n==null?void 0:n.value)==null?void 0:W.type).language.data.of({autocomplete:D()})},_=()=>c.value?[]:_l({enableLinting:!1,enableGutterMarkers:!1,enableHover:!0,hoverConfig:{hoverTime:250,enableKeywords:!0,keywords:async()=>await Il(),enableTables:!1,enableColumns:!1,enableFuzzySearch:!1}}),D=()=>Ll({schemas:r.value,defaultSchemaName:p.value,fileVariables:e.value}),{onHandleFormatCurrentStatement:k,onHandleFormatCode:M}=Ja({getEditorView:()=>d()}),K=()=>{m.value&&k()},O=()=>{m.value&&M()},H=[po(s),gn.of([{key:"Mod-s",run:()=>(K(),!0),preventDefault:!0},{key:"Shift-Alt-f",run:()=>(O(),!0),preventDefault:!0},{key:"Mod-e",run:()=>(y.value&&a(),!0),preventDefault:!0},{key:"Mod-i",run:Ps},{key:"Tab",run:Os}]),x.of(B()),$.of(R()),Ms,Ls,...Is(),bn(),S.of(_()),As],G=()=>{var me;const W=d();if(!W)return;const ee=Bs((me=n==null?void 0:n.value)==null?void 0:me.type),ge=c.value?"line":"sql";W.dispatch({effects:[Vs.of({dialect:ee,isEnable:!c.value,statementMode:ge}),x.reconfigure(B()),$.reconfigure(R()),S.reconfigure(_())]})};return de(()=>{var W;return[(W=l.value)==null?void 0:W.name,r.value]},()=>{var W;(W=l.value)!=null&&W.name&&G()},{deep:!0,immediate:!0}),n&&de(()=>{var W;return(W=n.value)==null?void 0:W.type},()=>{G()}),de(()=>{var W;return(W=t.value)==null?void 0:W.editorView},W=>{W&&G()},{immediate:!0}),{extensions:H,sqlCompartment:x,cursorInfo:u,onHandleFormatCode:O,onHandleFormatCurrentStatement:K,reloadSqlCompartment:G}}function Pl({fileVariables:t,connection:e,redisDatabaseIndex:n,fieldDefs:s,beforeExecute:a}){const o=j(null),{explainAnalyzeOptionItems:r,serializeMode:l,toggleExplainOption:u,setSerializeMode:d,buildExplainAnalyzePrefix:p}=nl(),c=sl(),y=tl({getEditorView:()=>{var x;return((x=o.value)==null?void 0:x.editorView)??null},connection:e,redisDatabaseIndex:n,fileVariables:t,fieldDefs:s,resultTabs:c,buildExplainAnalyzePrefix:p,beforeExecute:a}),w=Al({codeEditorRef:o,fileVariables:t,connection:e,onExecuteStatement:y.executeCurrentStatement,onExplainAnalyzeCurrent:y.onExplainAnalyzeCurrent});return{codeEditorRef:o,currentRawQueryResult:y.currentRawQueryResult,rawResponse:y.rawResponse,queryProcessState:y.queryProcessState,onExecuteCurrent:y.onExecuteCurrent,extensions:w.extensions,sqlCompartment:w.sqlCompartment,cursorInfo:w.cursorInfo,onHandleFormatCode:w.onHandleFormatCode,onHandleFormatCurrentStatement:w.onHandleFormatCurrentStatement,onExplainAnalyzeCurrent:y.onExplainAnalyzeCurrent,explainAnalyzeOptionItems:r,serializeMode:l,toggleExplainOption:u,setSerializeMode:d,reloadSqlCompartment:w.reloadSqlCompartment,cancelStreamingQuery:y.cancelStreamingQuery,executedResults:c.executedResults,activeResultTabId:c.activeResultTabId,setActiveResultTab:c.setActiveResultTab,closeResultTab:c.closeResultTab,closeOtherResultTabs:c.closeOtherResultTabs,closeResultTabsToRight:c.closeResultTabsToRight,updateResultTabView:c.updateResultTabView}}const _t=t=>{const{currentStatements:e}=ct(t);if(!e.length)return null;const n=Math.min(...e.map(o=>o.from)),s=Math.max(...e.map(o=>o.to));return{text:e.map(o=>o.text).join(`
21
- `),from:n,to:s}};function Ol(t){const e=j(!1),n=j(!1),s=()=>{const u=t.getEditorView();if(!u)return;const d=_t(u);d&&navigator.clipboard.writeText(d.text)},a=()=>{const u=t.getEditorView();if(!u)return;const d=u.state.doc.toString();d&&navigator.clipboard.writeText(d)},o=()=>{const u=t.getEditorView();if(!u)return;const d=_t(u);if(!d)return;let p=d.to;const c=u.state.doc.length;for(;p<c;){const m=u.state.sliceDoc(p,p+1);if(m===`
22
- `||m==="\r"){p++;break}if(m===" "||m===" ")p++;else break}u.dispatch({changes:{from:d.from,to:p,insert:""},annotations:[Ks.addToHistory.of(!0)]}),u.focus()};return{contextMenuItems:N(()=>{var p,c;const u=!e.value,d=!n.value;return[{type:oe.ACTION,title:"Execute",icon:"hugeicons:play",shortcut:"⌘↵",select:t.onExecuteCurrent,disabled:u},...(p=t.isExplainSupported)!=null&&p.value?[{type:oe.ACTION,title:"Analyze Query",icon:"hugeicons:analytics-01",shortcut:"⌘E",select:t.onExplainAnalyzeCurrent,disabled:u}]:[],{type:oe.SEPARATOR},...(c=t.isSupportFormat)!=null&&c.value?[{type:oe.ACTION,title:"Format Current",icon:"hugeicons:magic-wand-01",shortcut:"⌘S",select:t.onHandleFormatCurrentStatement,disabled:u},{type:oe.ACTION,title:"Format All",icon:"hugeicons:text-align-left",shortcut:"⇧⌥F",select:t.onHandleFormatCode,disabled:d}]:[],{type:oe.SEPARATOR},{type:oe.ACTION,title:"Copy Statement",icon:"hugeicons:copy-02",select:s,disabled:u},{type:oe.ACTION,title:"Copy All",icon:"hugeicons:copy-01",select:a,disabled:d},{type:oe.SEPARATOR},{type:oe.ACTION,title:"Delete Statement",icon:"hugeicons:delete-02",select:o,disabled:u}]}),onContextMenuOpen:u=>{if(!u)return;const d=t.getEditorView();if(!d){e.value=!1,n.value=!1;return}n.value=d.state.doc.length>0,e.value=!!_t(d)}}}function Fl(){const{workspaceId:t,connectionId:e}=Hs(),n=En(),s=Us(),a=Ws(),o=s.getFileContentByIdSync(n.params.fileId),r=j((o==null?void 0:o.contents)??""),l=j(""),u=j(""),d=j([]),p=N(()=>{var R;return(R=s==null?void 0:s.flatNodes)==null?void 0:R.find(_=>_.id===n.params.fileId)});de(()=>{var R;return(R=p.value)==null?void 0:R.variables},R=>{l.value=R||""},{immediate:!0});const c=N(()=>a.getConnectionsByWorkspaceId(t.value)),m=N(()=>c.value.find(R=>R.id===e.value));de([()=>n.params.fileId,e],()=>{u.value=e.value},{immediate:!0});const y=N(()=>c.value.find(R=>R.id===u.value));return{fieldDefs:d,fileContents:r,fileVariables:l,currentFile:p,selectedConnectionId:u,updateSelectedConnection:R=>{u.value=R},updateFileContent:async R=>{var _;(_=p.value)!=null&&_.id&&(r.value=R,s.updateFileContent({contents:R,id:p.value.id}))},updateFileVariables:async R=>{var _;(_=p.value)!=null&&_.id&&(l.value=R,s.updateFile({id:p.value.id,variables:R}))},connection:y,currentOpenedConnection:m,connectionsByWsId:c,updateFileCursorPos:R=>{var _;(_=p.value)!=null&&_.id&&s.updateFile({id:p.value.id,cursorPos:R})},loadFileContent:async()=>{var _;const{contents:R}=await s.getFileContentById(n.params.fileId);r.value=R,l.value=((_=p.value)==null?void 0:_.variables)||""},isFromCache:o!==null}}const Dl=()=>{const t=j(null),{previewRelationBreadcrumbs:e,onOpenBackReferencedTableModal:n,onOpenForwardReferencedTableModal:s,onUpdateSelectedTabInBreadcrumb:a,onClearBreadcrumbs:o,onBackPreviousBreadcrumb:r,onBackPreviousBreadcrumbByIndex:l}=La();return{relationRoot:t,previewRelationBreadcrumbs:e,openRelationPreview:(p,c)=>{if(c==null||c==="")return;const{schemaName:m,tableName:y}=p;if(!m||!y)return;t.value={schemaName:m,tableName:y};const w=String(c);if(p.isForeignKey&&p.foreignKey){s({id:w,tableName:p.foreignKey.referenced_table,columnName:p.foreignKey.referenced_column,schemaName:p.foreignKey.referenced_table_schema});return}n({id:w,tableName:y,schemaName:m,columnName:p.sourceColumnName||p.originalName})},clearRelationPreview:()=>{o(),t.value=null},onOpenBackReferencedTableModal:n,onOpenForwardReferencedTableModal:s,onUpdateSelectedTabInBreadcrumb:a,onBackPreviousBreadcrumb:r,onBackPreviousBreadcrumbByIndex:l}},Bl=({columns:t,originalRows:e})=>{const n=j([]),s=N(()=>new Map(t.value.map(u=>[u.originalName,u]))),a=u=>{var d,p;return((d=s.value.get(u))==null?void 0:d.short_type_name)||((p=s.value.get(u))==null?void 0:p.type)||""},o=u=>{var _;const{colDef:d,newValue:p,node:c}=u,m=d.field,y=c.rowIndex;if(!m||y===null||y===void 0||!s.value.get(m))return;const x=a(m),$=$n(x),S=(_=e.value[y])==null?void 0:_[m],{hasChanged:b,normalizedValue:B}=qa({fieldType:x,isObjectColumn:$,oldValue:S,newValue:p}),R=n.value.findIndex(D=>D.rowId===y&&D.fieldId===m);if(!b){R>=0&&(n.value=n.value.filter((D,k)=>k!==R));return}if(R>=0){const D=n.value.slice();D[R]={rowId:y,fieldId:m,newValue:B},n.value=D;return}n.value=[...n.value,{rowId:y,fieldId:m,newValue:B}]},r=()=>{n.value=[]},l=N(()=>n.value.length>0);return{editedCells:n,hasEditedCells:l,onCellValueChanged:o,clearEditedCells:r}},bt=t=>{const e=new Map;for(const n of t){if(!n.tableName||!n.schemaName)continue;const s=`${n.schemaName}.${n.tableName}`;let a=e.get(s);a||(a={schemaName:n.schemaName,tableName:n.tableName,primaryKeyColumns:[],primaryKeyFields:[]},e.set(s,a)),n.isPrimaryKey&&(a.primaryKeyColumns.push(n),a.primaryKeyFields.push(n.originalName))}return e},Hn=({column:t,row:e,tableGroups:n})=>{if(!e||!t.tableName||!t.schemaName||t.isPrimaryKey)return!1;const s=n.get(`${t.schemaName}.${t.tableName}`);return!s||s.primaryKeyFields.length===0?!1:s.primaryKeyFields.every(a=>{const o=e[a];return o!=null})},Vl=({column:t,tableGroups:e})=>{if(!t.tableName||!t.schemaName||t.isPrimaryKey)return!1;const n=e.get(`${t.schemaName}.${t.tableName}`);return!!n&&n.primaryKeyFields.length>0},ql=({editedCells:t,columns:e,rows:n,dbType:s})=>{const a=new Map(e.map(d=>[d.originalName,d])),o=bt(e),r=[],l=new Map;for(const d of t){const p=a.get(d.fieldId),c=n[d.rowId];if(!p||!c){r.push(d);continue}if(!Hn({column:p,row:c,tableGroups:o})){r.push(d);continue}const m=`${p.schemaName}.${p.tableName}`,y=o.get(m);if(!y){r.push(d);continue}let w=l.get(m);w||(w={table:y,rows:new Map},l.set(m,w));let x=w.rows.get(d.rowId);x||(x={},w.rows.set(d.rowId,x)),x[p.originalName]=d.newValue}const u=[];for(const[,d]of l){const p={schemaName:d.table.schemaName,tableName:d.table.tableName,pKeys:d.table.primaryKeyFields,updates:[],sqlStatements:[],hasNoPkWarning:!1};for(const[c,m]of d.rows){const y=n[c];if(!y)continue;const w={};for(const S of d.table.primaryKeyFields)w[S]=y[S];const{sql:x,noPkWarning:$}=Ia({schemaName:d.table.schemaName,tableName:d.table.tableName,pKeys:d.table.primaryKeyFields,pKeyValue:w,update:m,dbType:s});p.updates.push({pKeyValue:w,update:m}),p.sqlStatements.push(x),$&&(p.hasNoPkWarning=!0)}p.updates.length&&u.push(p)}return{groups:u,skipped:r}},Kl=({selectedRows:t,columns:e,dbType:n})=>{const s=bt(e),a=[];for(const[,o]of s){if(!o.primaryKeyFields.length)continue;const r={schemaName:o.schemaName,tableName:o.tableName,pKeys:o.primaryKeyFields,pKeyValues:[],sqlStatements:[],hasNoPkWarning:!1};for(const l of t){if(!o.primaryKeyFields.every(m=>l[m]!==null&&l[m]!==void 0))continue;const d={};for(const m of o.primaryKeyFields)d[m]=l[m];const{sql:p,noPkWarning:c}=Aa({schemaName:o.schemaName,tableName:o.tableName,pKeys:o.primaryKeyFields,pKeyValue:d,dbType:n});r.pKeyValues.push(d),r.sqlStatements.push(p),c&&(r.hasNoPkWarning=!0)}r.pKeyValues.length&&a.push(r)}return{groups:a}},Hl=({connection:t,columns:e,rows:n,editedCells:s,selectedRows:a,onSaved:o,onDeleted:r})=>{const l=j(!1),u=j(!1),d=j("update"),p=N(()=>{var k;return ql({editedCells:s.value,columns:e.value,rows:n.value,dbType:(k=t.value)==null?void 0:k.type})}),c=N(()=>p.value.groups),m=N(()=>c.value.flatMap(k=>k.sqlStatements).join(`
23
- `)),y=N(()=>c.value.some(k=>k.hasNoPkWarning)),w=N(()=>c.value.reduce((k,M)=>k+M.updates.length,0)),x=()=>{if(!s.value.length){Pe.info("No changes to save.");return}if(!c.value.length){Pe.warning("No safely updatable rows detected. Edits target columns that lack primary keys in the result.");return}d.value="update",l.value=!0},$=N(()=>{var k;return Kl({selectedRows:a.value,columns:e.value,dbType:(k=t.value)==null?void 0:k.type})}),S=N(()=>$.value.groups),b=N(()=>S.value.some(k=>k.hasNoPkWarning)),B=N(()=>S.value.reduce((k,M)=>k+M.pKeyValues.length,0)),R=()=>{if(!a.value.length){Pe.info("No rows selected for deletion.");return}if(!S.value.length){Pe.warning("Selected rows cannot be safely deleted — columns lack primary-key metadata.");return}d.value="delete",l.value=!0},_=()=>{l.value=!1},D=async()=>{var M;if(!t.value){Pe.error("No active connection.");return}u.value=!0;const k=js(t.value);try{if(d.value==="update"){const K=c.value.map(O=>$fetch("/api/tables/bulk-update",{method:"POST",body:{tableName:O.tableName,schemaName:O.schemaName,pKeys:O.pKeys,updates:O.updates,...k}}));await Promise.all(K),Pe.success(`Saved ${w.value} row${w.value===1?"":"s"} successfully.`),l.value=!1,o()}else{const K=S.value.map(O=>$fetch("/api/tables/bulk-delete",{method:"POST",body:{tableName:O.tableName,schemaName:O.schemaName,pKeys:O.pKeys,pKeyValues:O.pKeyValues,...k}}));await Promise.all(K),Pe.success(`Deleted ${B.value} row${B.value===1?"":"s"} successfully.`),l.value=!1,r()}}catch(K){const O=((M=K==null?void 0:K.data)==null?void 0:M.message)||(K==null?void 0:K.message)||"Unknown error while executing.";console.error("Raw query mutation failed:",K),Pe.error(O)}finally{u.value=!1}};return{isPreviewOpen:l,isMutating:u,pendingAction:d,previewGroups:c,previewSql:m,hasNoPkWarning:y,totalUpdateCount:w,skippedEdits:N(()=>p.value.skipped),requestSave:x,deleteGroups:S,deleteHasNoPkWarning:b,totalDeleteCount:B,requestDelete:R,cancelPreview:_,confirmAndExecute:D}},Ul=(t,e)=>{if(!t.tableName||!t.schemaName)return!1;const n=t.sourceColumnName||t.originalName;return e.some(s=>{var a;return s.schema===t.schemaName&&s.table===t.tableName&&((a=s.used_by)==null?void 0:a.some(o=>o.referenced_column===n))})},Wl=(t,e)=>!t.tableName||!t.schemaName?!1:t.isForeignKey&&t.foreignKey?!0:Ul(t,e),jl=10,Ql=({columns:t,rows:e,reservedTables:n,isEditingEnabled:s,dirtyTracker:a,onOpenRelationPreview:o})=>{if(!t.length)return[];const r=bt(t),l=e.slice(0,jl),u=[Ka()];for(const d of t){const p=Wl(d,n),c=s&&Vl({column:d,tableGroups:r}),m=Ha({headerName:d.aliasFieldName,rows:l,field:d.originalName,isKey:p||d.isPrimaryKey}),y=c?x=>Hn({column:d,row:x.data,tableGroups:r}):!1,w=x=>{const $=x.colDef.field??"";if(!$)return;const S=Number(x.node.id??x.node.rowIndex),b=c&&a.cells.some(R=>R.rowId===S&&R.fieldId===$),B={backgroundColor:"unset"};return b?(B.backgroundColor="var(--color-orange-200)",B):(x.value===null&&(B.color="var(--muted-foreground)"),B)};u.push({headerName:d.aliasFieldName,field:d.originalName,colId:d.originalName,filter:!0,resizable:!0,sortable:!0,type:"editableColumn",editable:y,cellStyle:w,cellEditorSelector:x=>{var b;const $=(b=x.data)==null?void 0:b[d.originalName],S=d.short_type_name||d.type||"";if(Oa(S)||typeof $=="object"&&$!==null)return{component:"AgJsonCellEditor",popup:!0,popupPosition:"under"}},valueSetter:x=>{const $=d.short_type_name||d.type||"";return ja({params:x,fieldId:d.originalName,isObjectColumn:$n($),emptyAsNull:!0})},headerComponentParams:{innerHeaderComponent:Wa,isPrimaryKey:d.isPrimaryKey,isForeignKey:d.isForeignKey},cellRenderer:p?Pa:void 0,cellRendererParams:p?{isPrimaryKey:!0,onOpenPreviewReverseTableModal:x=>o(d,x)}:void 0,valueFormatter:Ua,width:m})}return u},Ht={SELECT:"DML",INSERT:"DML",UPDATE:"DML",DELETE:"DML",MERGE:"DML",VALUES:"DML",TRUNCATE:"DML",COPY:"DML",CREATE:"DDL",ALTER:"DDL",DROP:"DDL",COMMENT:"DDL",ANALYZE:"DDL",VACUUM:"DDL",REINDEX:"DDL",CLUSTER:"DDL","REFRESH MATERIALIZED VIEW":"DDL","IMPORT FOREIGN SCHEMA":"DDL","SECURITY LABEL":"DDL",GRANT:"DCL",REVOKE:"DCL",BEGIN:"TCL",COMMIT:"TCL",ROLLBACK:"TCL",SAVEPOINT:"TCL","RELEASE SAVEPOINT":"TCL","ROLLBACK TO SAVEPOINT":"TCL","PREPARE TRANSACTION":"TCL","COMMIT PREPARED":"TCL","ROLLBACK PREPARED":"TCL","SET TRANSACTION":"TCL",SET:"SYSTEM",SHOW:"SYSTEM",RESET:"SYSTEM",DISCARD:"SYSTEM",EXPLAIN:"SYSTEM",LOAD:"SYSTEM",LOCK:"SYSTEM",MOVE:"SYSTEM",FETCH:"SYSTEM",CLOSE:"SYSTEM",DECLARE:"SYSTEM",DEALLOCATE:"SYSTEM",PREPARE:"SYSTEM",EXECUTE:"SYSTEM",LISTEN:"SYSTEM",UNLISTEN:"SYSTEM",NOTIFY:"SYSTEM",DO:"SYSTEM",ABORT:"SYSTEM",CHECKPOINT:"SYSTEM"},Gl=Object.keys(Ht).sort((t,e)=>e.length-t.length),Un=t=>{if(!t)return"";const e=t.toUpperCase().trim().replace(/;$/,"");for(const n of Gl)if(e===n||e.startsWith(`${n} `))return n;return e.split(/\s+/)[0]||e},Yl=t=>{if(!t)return!1;const e=t.toUpperCase().trim(),n=Un(e);if(["SELECT","VALUES","SHOW","EXPLAIN","TABLE"].includes(n))return!1;const a=Ht[n];return!!(["INSERT","UPDATE","DELETE","TRUNCATE","COPY","MERGE","CALL","DO"].includes(n)||a==="DDL"||a==="DCL"||["SET","RESET","GRANT","REVOKE","COMMENT","ANALYZE","VACUUM","REINDEX","CLUSTER"].includes(n)||["CREATE","DROP","ALTER"].includes(n))},Jl=(t,e)=>{const n=t||"Query",s=e??0;return["INSERT","UPDATE","DELETE"].includes(n.toUpperCase())?`${n} successful. ${s} rows affected.`:`${n} successful.`};class je{constructor(e,n){ue(this,"cmd");ue(this,"commandKey");ue(this,"rowCount");this.cmd=(e||"").toUpperCase().trim(),this.commandKey=Un(this.cmd),this.rowCount=n}isMutation(){return Yl(this.cmd)}getMessage(e){return e?Jl(this.cmd,this.rowCount):""}getCategory(){return Ht[this.commandKey]??"UNKNOWN"}build(){const e=this.isMutation();return{isMutation:e,message:this.getMessage(e),category:this.getCategory()}}}class Zl extends je{isMutation(){return["VACUUM","ANALYZE","REINDEX","CLUSTER"].includes(this.commandKey)?!0:super.isMutation()}}class kt extends je{isMutation(){return this.commandKey==="OPTIMIZE"?!0:super.isMutation()}getMessage(e){return this.commandKey==="TRUNCATE"?"TRUNCATE successful.":super.getMessage(e)}}class Xl extends kt{}class Wn extends je{isMutation(){return this.commandKey==="TRUNCATE"?!0:super.isMutation()}getMessage(e){return this.commandKey==="INSERT"?`INSERT successful. ${this.rowCount} row(s) affected.`:super.getMessage(e)}}class ei extends Wn{}class mn extends je{}class ti extends je{getMessage(e){return this.commandKey==="MERGE"?`MERGE successful. ${this.rowCount} rows affected.`:super.getMessage(e)}}class ni extends je{getMessage(e){return this.commandKey==="TRUNCATE"?"TRUNCATE successful.":this.commandKey==="MERGE"?`MERGE successful. ${this.rowCount} rows affected.`:super.getMessage(e)}}const si={[Z.POSTGRES]:Zl,[Z.MARIADB]:kt,[Z.MYSQL]:kt,[Z.MYSQL2]:Xl,[Z.REDIS]:mn,[Z.SQLITE3]:Wn,[Z.SNOWFLAKE]:mn,[Z.BETTER_SQLITE3]:ei,[Z.MSSQL]:ti,[Z.ORACLE]:ni},ai=(t,e=0,n=Z.POSTGRES)=>{const s=si[n];if(!s)throw new Error(`Unsupported database client type: "${n}"`);return new s(t,e).build()},oi=X({__name:"RawQueryContextMenu",props:{cellContextMenu:{},cellHeaderContextMenu:{},data:{},selectedRows:{},tableName:{},schemaName:{}},emits:["onClearContextMenu"],setup(t,{emit:e}){const n=e;return(s,a)=>(g(),A(Qa,{"cell-context-menu":s.cellContextMenu,"cell-header-context-menu":s.cellHeaderContextMenu,data:s.data,"selected-rows":s.selectedRows,"table-name":s.tableName,"schema-name":s.schemaName,"enable-copy-as-sql":"",onOnClearContextMenu:a[0]||(a[0]=o=>n("onClearContextMenu"))},{default:v(()=>[_e(s.$slots,"default")]),_:3},8,["cell-context-menu","cell-header-context-menu","data","selected-rows","table-name","schema-name"]))}}),ri={class:"w-full select-none h-9 flex items-center justify-between px-1"},li={class:"flex items-center gap-1"},ii={class:"absolute -right-1.5 -top-1.5 min-w-4 rounded-full bg-green-700 px-1 text-xxs font-medium leading-4 text-white"},ui={class:"flex items-center gap-2"},ci={class:"flex items-center gap-2"},di={key:3,class:"font-normal text-xs text-primary/60"},mi={key:4,class:"font-normal text-sm text-primary"},pi={class:"flex items-center gap-1"},fi=X({__name:"RawQueryResultControlBar",props:{pendingCount:{},isMutating:{type:Boolean},isEditingEnabled:{type:Boolean},totalSelectedRows:{}},emits:["save","discard","delete"],setup(t,{emit:e}){const n=e;return(s,a)=>{const o=ve,r=Oe;return g(),F("div",ri,[h("div",li,[s.isEditingEnabled?(g(),F(ne,{key:0},[s.pendingCount>0?(g(),A(i(xe),{key:0},{default:v(()=>[f(i(ye),{"as-child":""},{default:v(()=>[f(r,{variant:"outline",size:"xxs",class:"relative overflow-visible font-normal",disabled:s.isMutating,onClick:a[0]||(a[0]=l=>n("save"))},{default:v(()=>[s.isMutating?(g(),A(o,{key:0,name:"lucide:loader-circle",class:"animate-spin"})):(g(),A(o,{key:1,name:"lucide:save"})),h("span",ii,V(s.pendingCount),1),f(i(Ke),null,{default:v(()=>a[3]||(a[3]=[P("⌘S")])),_:1})]),_:1},8,["disabled"])]),_:1}),f(i(be),null,{default:v(()=>[h("p",ui,[a[5]||(a[5]=P(" Preview & execute UPDATE statements ")),f(i(Ke),null,{default:v(()=>a[4]||(a[4]=[P("⌘S")])),_:1})])]),_:1})]),_:1})):U("",!0),s.pendingCount>0?(g(),A(i(xe),{key:1},{default:v(()=>[f(i(ye),{"as-child":""},{default:v(()=>[f(r,{variant:"outline",size:"xxs",class:"font-normal",disabled:s.isMutating,onClick:a[1]||(a[1]=l=>n("discard"))},{default:v(()=>[f(o,{name:"hugeicons:undo-02"}),a[6]||(a[6]=P(" Discard "))]),_:1},8,["disabled"])]),_:1}),f(i(be),null,{default:v(()=>a[7]||(a[7]=[h("p",null,"Discard pending edits",-1)])),_:1})]),_:1})):U("",!0),s.totalSelectedRows>0?(g(),A(i(xe),{key:2},{default:v(()=>[f(i(ye),{"as-child":""},{default:v(()=>[f(r,{variant:"outline",size:"xxs",disabled:s.isMutating,onClick:a[2]||(a[2]=l=>n("delete"))},{default:v(()=>[f(o,{name:"lucide:trash"}),f(i(Ke),null,{default:v(()=>a[8]||(a[8]=[P("⌥⌘⌫")])),_:1})]),_:1},8,["disabled"])]),_:1}),f(i(be),null,{default:v(()=>[h("p",ci,[P(" Delete "+V(s.totalSelectedRows)+" selected row"+V(s.totalSelectedRows===1?"":"s")+" ",1),f(i(Ke),null,{default:v(()=>a[9]||(a[9]=[P("⌥⌘⌫")])),_:1})])]),_:1})]),_:1})):U("",!0),s.totalSelectedRows>0?(g(),F("p",di," Selected ")):U("",!0),s.totalSelectedRows>0?(g(),F("p",mi,V(s.totalSelectedRows),1)):U("",!0)],64)):U("",!0)]),h("div",pi,[s.isEditingEnabled?(g(),F(ne,{key:0},[f(o,{name:"hugeicons:pencil-edit-02",class:"size-3.5 text-muted-foreground"}),a[10]||(a[10]=h("span",{class:"font-normal text-xs text-primary/60"},"Editable",-1))],64)):(g(),F(ne,{key:1},[f(o,{name:"hugeicons:lock-01",class:"size-3.5 text-muted-foreground"}),a[11]||(a[11]=h("span",{class:"font-normal text-xs text-primary/60"},"Read-only",-1))],64))])])}}}),hi=X({__name:"RawQueryUpdatePreviewDialog",props:{open:{type:Boolean},action:{},updateGroups:{},totalUpdates:{},updateHasNoPkWarning:{type:Boolean},deleteGroups:{},totalDeletes:{},deleteHasNoPkWarning:{type:Boolean},isMutating:{type:Boolean}},emits:["confirm","cancel"],setup(t,{emit:e}){const n=t,s=e,a=N(()=>n.action==="delete"),o=N(()=>a.value?n.deleteHasNoPkWarning??!1:n.updateHasNoPkWarning??!1),r=N(()=>o.value?a.value?"High-Risk: Confirm Delete":"High-Risk: Confirm Save":a.value?"Confirm Delete":"Confirm Save"),l=N(()=>o.value?"Caution: No primary key detected. To identify the record, this operation will match all columns in the WHERE clause. This carries a risk of affecting multiple rows if they share identical data. Please verify the SQL below carefully before proceeding:":a.value?"The following SQL will be executed to delete the selected rows:":"The following SQL will be executed to save your changes:"),u=N(()=>a.value?"Delete":"Save"),d=N(()=>{const m=a.value?n.deleteGroups??[]:n.updateGroups??[];return m.length===0?"":m.map(y=>`${`-- ${y.schemaName}.${y.tableName}`}
24
- ${y.sqlStatements.join(`
25
- `)}`).join(`
26
-
27
- `)}),p=()=>{s("confirm")},c=()=>{s("cancel")};return(m,y)=>{const w=ve;return g(),A(i(Qs),{open:m.open,"onUpdate:open":y[0]||(y[0]=x=>!x&&!m.isMutating&&s("cancel"))},{default:v(()=>[f(i(Gs),{size:"preview"},{default:v(()=>[f(i(Bt),{visible:!!m.isMutating},null,8,["visible"]),f(i(Ys),null,{default:v(()=>[f(i(Js),{class:re(["flex items-center gap-2 text-base font-medium",{"text-destructive":i(o)||i(a)}])},{default:v(()=>[i(o)||i(a)?(g(),A(w,{key:0,name:i(o)?"lucide:alert-triangle":"lucide:trash-2",class:re(["size-5",(i(o),"text-destructive")])},null,8,["name","class"])):U("",!0),P(" "+V(i(r)),1)]),_:1},8,["class"]),f(i(Zs),{class:re({"text-destructive font-normal":i(o)})},{default:v(()=>[P(V(i(l)),1)]),_:1},8,["class"])]),_:1}),f(i(vt),{code:i(d),language:"sql","show-copy-button":"","max-height":"24rem"},null,8,["code"]),f(i(Xs),null,{default:v(()=>[f(i(ea),{class:"border font-normal",onClick:c},{default:v(()=>y[1]||(y[1]=[P(" Cancel ")])),_:1}),f(i(ta),{class:re(["border font-normal flex gap-1",{"bg-destructive text-destructive-foreground hover:bg-destructive/90":i(a)}]),onClick:p},{default:v(()=>[f(w,{name:i(a)?"lucide:trash-2":"lucide:save",class:"size-4"},null,8,["name"]),P(" "+V(i(u)),1)]),_:1},8,["class"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),vi=X({__name:"ResultTabResultView",props:{activeTab:{},activeTabColumns:{},formattedData:{},executeLoading:{type:Boolean},isStreaming:{type:Boolean}},setup(t){const e=t,n=j(),s=j(),a=Dt(),{reservedSchemas:o}=ft(a),r=j([]),l=Q=>{r.value=Q},u=N(()=>{var Q;return ai(e.activeTab.metadata.command||"",e.activeTab.metadata.rowCount||0,(Q=e.activeTab.metadata.connection)==null?void 0:Q.type)}),d=N(()=>u.value.isMutation),p=N(()=>u.value.message),c=N(()=>e.activeTabColumns.length>0),m=N(()=>e.activeTab.result.length===0&&!c.value&&!e.executeLoading&&!e.isStreaming),y=N(()=>{var se;const Q=(se=e.activeTab.metadata.connection)==null?void 0:se.id;return Q?o.value[Q]||[]:[]}),w=N(()=>bt(e.activeTabColumns)),x=N(()=>{if(e.isStreaming)return!1;for(const[,Q]of w.value)if(Q.primaryKeyFields.length>0)return!0;return!1}),$=Q=>Q.map(se=>({...se})),S=Q=>Ga(Q),b=Q=>Q.map(se=>{const{[Ya]:Ge,...De}=se;return{...De}}),B=(...Q)=>{const se=new Map;for(const Ge of Q)for(const De of Ge)se.set(`${De.rowId}:${De.fieldId}`,De);return[...se.values()]},R=N(()=>e.activeTabColumns),_=N(()=>e.formattedData||[]),D=j($(_.value)),k=j(S(D.value)),M=j([]),{editedCells:K,onCellValueChanged:O,clearEditedCells:H}=Bl({columns:R,originalRows:D});function G(){var Q,se;(se=(Q=n.value)==null?void 0:Q.gridApi)==null||se.refreshCells({force:!0})}const W=N(()=>B(M.value,K.value)),ee=()=>{k.value=S(D.value)},ge=()=>{K.value.slice().length&&(D.value=b(k.value),M.value=[],H())},me=()=>{H(),ee(),G()};de([_,()=>e.activeTab.id],([Q])=>{D.value=$(Q),M.value=[],H(),ee()});const ke={cells:[]};de(W,Q=>{ke.cells=Q,G()},{immediate:!0});const Le=N(()=>e.activeTab.metadata.connection),Ie=N(()=>r.value),{isPreviewOpen:Ee,isMutating:we,pendingAction:ie,previewGroups:Ne,hasNoPkWarning:Te,totalUpdateCount:ae,requestSave:$e,deleteGroups:C,deleteHasNoPkWarning:T,totalDeleteCount:L,requestDelete:z,cancelPreview:I,confirmAndExecute:E}=Hl({connection:Le,columns:R,rows:D,editedCells:K,selectedRows:Ie,onSaved:ge,onDeleted:()=>{r.value=[]}}),{relationRoot:q,previewRelationBreadcrumbs:Y,openRelationPreview:te,clearRelationPreview:Ce,onOpenBackReferencedTableModal:Ae,onOpenForwardReferencedTableModal:Fe,onUpdateSelectedTabInBreadcrumb:Qe,onBackPreviousBreadcrumb:J,onBackPreviousBreadcrumbByIndex:pe}=Dl(),ze=N(()=>Ql({columns:e.activeTabColumns,rows:D.value,reservedTables:y.value,isEditingEnabled:x.value,dirtyTracker:ke,onOpenRelationPreview:te}));return Tn([{key:"meta+s",callback:()=>{!x.value||we.value||$e()},isPreventDefault:!0},{key:"meta+alt+backspace",callback:()=>{!x.value||we.value||z()},isPreventDefault:!0}],{target:s}),(Q,se)=>{var Ut,Wt,jt,Qt;const Ge=ht,De=zn;return g(),F("div",{ref_key:"containerRef",ref:s,class:"h-full w-full flex flex-col"},[i(q)&&i(Y).length?(g(),A(Fa,{key:0,open:i(Y).length>0,breadcrumbs:i(Y),currentTableName:i(q).tableName,connectionId:((Ut=Q.activeTab.metadata.connection)==null?void 0:Ut.id)||"",workspaceId:((Wt=Q.activeTab.metadata.connection)==null?void 0:Wt.workspaceId)||"",rootSchemaName:i(q).schemaName,onClearBreadcrumb:i(Ce),onOnOpenBackReferencedTableModal:i(Ae),onOnOpenForwardReferencedTableModal:i(Fe),onOnUpdateSelectedTabInBreadcrumb:i(Qe),onOnBackPreviousBreadcrumb:i(J),onOnBackPreviousBreadcrumbByIndex:i(pe)},null,8,["open","breadcrumbs","currentTableName","connectionId","workspaceId","rootSchemaName","onClearBreadcrumb","onOnOpenBackReferencedTableModal","onOnOpenForwardReferencedTableModal","onOnUpdateSelectedTabInBreadcrumb","onOnBackPreviousBreadcrumb","onOnBackPreviousBreadcrumbByIndex"])):U("",!0),f(hi,{open:i(Ee),action:i(ie),"update-groups":i(Ne),"total-updates":i(ae),"update-has-no-pk-warning":i(Te),"delete-groups":i(C),"total-deletes":i(L),"delete-has-no-pk-warning":i(T),"is-mutating":i(we),onConfirm:i(E),onCancel:i(I)},null,8,["open","action","update-groups","total-updates","update-has-no-pk-warning","delete-groups","total-deletes","delete-has-no-pk-warning","is-mutating","onConfirm","onCancel"]),Q.activeTab.result.length===0&&i(d)&&!Q.executeLoading&&!Q.isStreaming?(g(),A(Ge,{key:1,desc:i(p),hiddenIcon:"",class:"h-full"},null,8,["desc"])):i(m)?(g(),A(Ge,{key:2,title:"No Results",desc:"The query returned no records.",class:"h-full"})):(g(),F(ne,{key:3},[i(k).length?(g(),A(fi,{key:0,"pending-count":i(K).length,"is-mutating":i(we),"is-editing-enabled":i(x),"total-selected-rows":i(r).length,onSave:i($e),onDiscard:me,onDelete:i(z)},null,8,["pending-count","is-mutating","is-editing-enabled","total-selected-rows","onSave","onDelete"])):U("",!0),f(oi,{data:Q.formattedData||[],selectedRows:i(r),cellContextMenu:(jt=i(n))==null?void 0:jt.cellContextMenu,cellHeaderContextMenu:(Qt=i(n))==null?void 0:Qt.cellHeaderContextMenu,onOnClearContextMenu:se[0]||(se[0]=Ju=>{var Gt;return(Gt=i(n))==null?void 0:Gt.clearCellContextMenu()}),class:"flex-1 min-h-0"},{default:v(()=>[f(De,{ref_key:"rawQueryTableRef",ref:n,"column-defs":i(ze),"row-data":i(k),"selected-rows":i(r),"enable-simple-copy-context-menu":!1,"empty-title":"No Results","empty-description":"The query returned no records.",class:"h-full","allow-editing":i(x),"suppress-scroll-on-new-data":!0,onSelectionChanged:l,onCellValueChanged:i(O)},null,8,["column-defs","row-data","selected-rows","allow-editing","onCellValueChanged"])]),_:1},8,["data","selectedRows","cellContextMenu","cellHeaderContextMenu"])],64))],512)}}});var ut=(t=>(t.GRID="grid",t.TIMELINE="time-line",t.RAW="raw",t))(ut||{});const gi=[{value:"time-line",label:"Timeline",icon:"hugeicons:chart-line-data-01"},{value:"grid",label:"Grid",icon:"hugeicons:grid-table"},{value:"raw",label:"Raw",icon:"hugeicons:3rd-bracket"}],yi={class:"flex items-center justify-between px-3 py-2 border-b shrink-0"},bi={class:"flex items-center gap-3 min-w-0"},xi={class:"flex items-center gap-2 flex-wrap"},Ci={class:"flex flex-col gap-1 max-w-[250px] sm:max-w-xs"},wi={class:"text-[11px] text-muted-foreground list-disc pl-3 break-words whitespace-normal"},Si={class:"flex flex-col gap-1 max-w-[250px] sm:max-w-xs"},_i={class:"text-[11px] text-muted-foreground list-disc pl-3 break-words whitespace-normal"},Ei={class:"flex flex-col gap-1 max-w-[250px] sm:max-w-xs"},Ti={class:"text-[11px] text-muted-foreground list-disc pl-3 break-words whitespace-normal"},Ri={class:"flex items-center gap-2 shrink-0"},ki=X({__name:"ExplainPlanHeader",props:Xt({summaryStats:{},isExpanded:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:Xt(["toggle-expand"],["update:modelValue"]),setup(t,{emit:e}){const n=e,s=na(t,"modelValue");return(a,o)=>{const r=ve,l=sa,u=ye,d=be,p=xe,c=ra,m=oa,y=aa,w=Oe;return g(),F("div",yi,[h("div",bi,[f(r,{name:"hugeicons:analytics-up",class:"size-4 text-muted-foreground"}),o[6]||(o[6]=h("span",{class:"text-sm font-medium"},"Execution Plan",-1)),h("div",xi,[a.summaryStats.executionTime!==void 0?(g(),A(l,{key:0,variant:"outline",class:"text-[11px] h-5 gap-1"},{default:v(()=>[f(r,{name:"hugeicons:clock-01",class:"size-3"}),P(" "+V(i(et)(a.summaryStats.executionTime)),1)]),_:1})):U("",!0),a.summaryStats.planningTime!==void 0?(g(),A(l,{key:1,variant:"outline",class:"text-[11px] h-5 gap-1"},{default:v(()=>[P(" Planning: "+V(i(et)(a.summaryStats.planningTime)),1)]),_:1})):U("",!0),a.summaryStats.nodeCount>0?(g(),A(p,{key:2},{default:v(()=>{var x;return[f(u,{"as-child":""},{default:v(()=>[f(l,{variant:"outline",class:"text-[11px] h-5 gap-1 cursor-help"},{default:v(()=>[P(V(a.summaryStats.nodeCount)+" nodes ",1)]),_:1})]),_:1}),(x=a.summaryStats.allNodes)!=null&&x.length?(g(),A(d,{key:0},{default:v(()=>[h("div",Ci,[o[2]||(o[2]=h("span",{class:"font-medium text-xs"},"Nodes:",-1)),h("ul",wi,[(g(!0),F(ne,null,he(a.summaryStats.allNodes,$=>(g(),F("li",{key:$.id},V($.label),1))),128))])])]),_:1})):U("",!0)]}),_:1})):(g(),A(l,{key:3,variant:"outline",class:"text-[11px] h-5 gap-1"},{default:v(()=>o[3]||(o[3]=[P(" 0 nodes ")])),_:1})),a.summaryStats.expensiveCount>0?(g(),A(p,{key:4},{default:v(()=>{var x;return[f(u,{"as-child":""},{default:v(()=>[f(l,{variant:"outline",class:"text-[11px] h-5 gap-1 border-amber-300 text-amber-700 dark:text-amber-400 cursor-help"},{default:v(()=>[P(V(a.summaryStats.expensiveCount)+" expensive ",1)]),_:1})]),_:1}),(x=a.summaryStats.expensiveNodes)!=null&&x.length?(g(),A(d,{key:0},{default:v(()=>[h("div",Si,[o[4]||(o[4]=h("span",{class:"font-medium text-xs"},"Expensive Nodes:",-1)),h("ul",_i,[(g(!0),F(ne,null,he(a.summaryStats.expensiveNodes,$=>(g(),F("li",{key:$.id},V($.label),1))),128))])])]),_:1})):U("",!0)]}),_:1})):U("",!0),a.summaryStats.slowCount>0?(g(),A(p,{key:5},{default:v(()=>{var x;return[f(u,{"as-child":""},{default:v(()=>[f(l,{variant:"outline",class:"text-[11px] h-5 gap-1 border-red-300 text-red-700 dark:text-red-400 cursor-help"},{default:v(()=>[P(V(a.summaryStats.slowCount)+" slowest ",1)]),_:1})]),_:1}),(x=a.summaryStats.slowNodes)!=null&&x.length?(g(),A(d,{key:0},{default:v(()=>[h("div",Ei,[o[5]||(o[5]=h("span",{class:"font-medium text-xs"},"Slowest Node(s):",-1)),h("ul",Ti,[(g(!0),F(ne,null,he(a.summaryStats.slowNodes,$=>(g(),F("li",{key:$.id},V($.label),1))),128))])])]),_:1})):U("",!0)]}),_:1})):U("",!0)])]),h("div",Ri,[f(y,{modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=x=>s.value=x),class:"gap-0"},{default:v(()=>[f(m,{size:"xxs"},{default:v(()=>[(g(!0),F(ne,null,he(i(gi),x=>(g(),A(c,{size:"xxs",key:x.value,value:x.value,class:"rounded-sm cursor-pointer"},{default:v(()=>[f(r,{name:x.icon,class:"size-3.5!"},null,8,["name"]),P(" "+V(x.label),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["modelValue"]),f(w,{variant:"outline",size:"iconSm",onClick:o[1]||(o[1]=x=>n("toggle-expand"))},{default:v(()=>[f(r,{name:a.isExpanded?"hugeicons:arrow-shrink":"hugeicons:arrow-expand",class:"size-3.5"},null,8,["name"])]),_:1})])])}}}),Ni={class:"flex items-center text-xs h-full w-full overflow-hidden whitespace-nowrap"},$i={key:0,class:"text-muted-foreground shrink-0 whitespace-pre",style:{"font-family":"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important"}},zi={key:1,class:"font-normal shrink-0"},Mi={key:2,class:"text-xxs pl-0.5 text-muted-foreground truncate shrink min-w-0"},Li=X({__name:"ExplainOperationCell",props:{params:{}},setup(t){const e=t,n=N(()=>{var s;return((s=e.params)==null?void 0:s.data)??{}});return(s,a)=>(g(),F("div",Ni,[i(n).treePrefix?(g(),F("span",$i,V(i(n).treePrefix),1)):U("",!0),i(n).nodeType?(g(),F("span",zi,V(i(n).nodeType),1)):U("",!0),i(n).contextLabel?(g(),F("span",Mi,V(i(n).contextLabel),1)):U("",!0)]))}}),pn={"Seq Scan":"scan","Index Scan":"scan","Index Only Scan":"scan","Bitmap Index Scan":"scan","Bitmap Heap Scan":"scan","CTE Scan":"scan","Function Scan":"scan","Values Scan":"scan","Subquery Scan":"scan",Aggregate:"agg",HashAggregate:"agg",GroupAggregate:"agg",Sort:"sort","Incremental Sort":"sort",Hash:"hash","Hash Join":"join","Merge Join":"join","Nested Loop":"join"},fe=t=>t?String(t).replace(/^[\[]|[\]]$/g,"").replace(/"/g,"").trim():"",Ii=t=>t==="Seq Scan"?"bad":pn[t]?pn[t]:t.includes("Join")?"join":t.includes("Scan")?"scan":t.includes("Aggregate")?"agg":t.includes("Sort")?"sort":"other",fn=(t,e,n)=>{for(let s=e+1;s<t.length;s++){const a=t[s].depth??0;if(a<n)return!1;if(a===n)return!0}return!1},Ai=(t,e)=>{const s=t[e].depth??0;if(s===0)return"";const a=[];for(let r=1;r<s;r++)a.push(fn(t,e,r)?"│ ":" ");const o=!fn(t,e,s);return a.push(o?"└─ ":"├─ "),a.join("")},Pi=t=>{const e=fe(t.hashCond),n=fe(t.mergeCond),s=fe(t.joinFilter),a=fe(t.joinType).toLowerCase();if(a||e||n||s){const x=e||n||s,$=a?`${a} `:"";return{label:x?`${$}on ${x}`.trim():`${$}join`.trim(),kind:"join"}}const o=fe(t.indexCond),r=fe(t.recheckCond),l=fe(t.tidCond);if(o)return{label:`on ${o}`,kind:"relation"};if(r)return{label:`recheck: ${r}`,kind:"relation"};if(l)return{label:`tid: ${l}`,kind:"relation"};const u=fe(t.sortKey);if(u)return{label:`by ${u}`,kind:"sort"};const d=fe(t.groupKey),p=fe(t.hashKey);if(d||p)return{label:`by ${d||p}`,kind:"group"};const c=fe(t.oneTimeFilter);if(c)return{label:`one-time: ${c}`,kind:"relation"};const m=fe(t.filter);if(m)return{label:`filter: ${m}`,kind:"relation"};const y=fe(t.cteName);if(y)return{label:`cte: ${y}`,kind:"relation"};const w=fe(t.subplanName);if(w)return{label:`subplan: ${w}`,kind:"relation"};if(t.relation){const x=t.alias&&t.alias!==t.relation?` (${t.alias})`:"";return{label:`on ${t.relation}${x}`,kind:"relation"}}return{label:"",kind:""}},Oi=t=>[...t].map(e=>{var d,p;const n=e["Plan Rows"]||0,s=e["Actual Rows"]||0,a=e.estimateRatio,o=e["Actual Startup Time"]||0,r=e["Plan Width"]||0,l=e.rowEstimateAccuracy||"accurate",u=[`Node: ${e["Node Type"]}`,e["Relation Name"]?`Relation: ${e["Relation Name"]}`:"",`Depth: ${e.depth}`,`Startup time: ${o.toFixed(3)} ms`,`Total time: ${(e["Actual Total Time"]||0).toFixed(3)} ms`,`Actual rows: ${s.toLocaleString()}`,`Plan rows: ${n.toLocaleString()}`,a!==void 0?`Estimate ratio: ${a}x (${l})`:"Estimate ratio: -",`Total cost: ${(e["Total Cost"]||0).toFixed(2)}`,`Plan width: ${r}`,`Loops: ${(e["Actual Loops"]||0).toLocaleString()}`,`Slowest: ${e.isSlowest?"yes":"no"}`,`Expensive: ${e.isExpensive?"yes":"no"}`].filter(Boolean).join(`
28
- `);return{id:e.id,order:e.index,nodeType:e["Node Type"],relation:e["Relation Name"],alias:e.Alias,sortKey:((d=e["Sort Key"])==null?void 0:d.join(", "))??"",joinType:e["Join Type"]??"",groupKey:((p=e["Group Key"])==null?void 0:p.join(", "))??"",hashKey:"",filter:e.Filter??"",joinFilter:"",oneTimeFilter:"",indexCond:"",hashCond:e["Hash Cond"]??"",mergeCond:e["Merge Cond"]??"",recheckCond:"",tidCond:"",cteName:"",subplanName:"",timeMs:e["Actual Total Time"]||0,rows:s,planRows:n,estimateRatio:a,cost:e["Total Cost"]||0,width:r,loops:e["Actual Loops"]||0,depth:e.depth,indentPx:e.depth*16,hitReadRatio:e.hitReadRatio,isSlowest:e.isSlowest,isExpensive:e.isExpensive,tooltipLines:u}}),Fi=t=>{const e=t.reduce((n,s)=>n+(s.timeMs||0),0)||1;return t.map((n,s)=>{const a=Ai(t,s),{label:o,kind:r}=Pi(n),l=n.isSlowest?"slowest":n.isExpensive?"expensive":"normal";return{order:n.order,timeMs:n.timeMs,rows:n.rows,planRows:n.planRows,estimateRatioValue:n.estimateRatio,cost:n.cost,width:n.width,loops:n.loops,hitReadRatio:n.hitReadRatio,isSlowest:n.isSlowest,isExpensive:n.isExpensive,orderLabel:`${n.order}`,queryPercentLabel:`${(n.timeMs/e*100).toFixed(2)}%`,timeSpentLabel:`${n.timeMs.toFixed(3)} ms`,rowsLabel:n.rows.toLocaleString(),planRowsLabel:n.planRows.toLocaleString(),estimateLabel:n.estimateRatio!==void 0?`${n.estimateRatio}×`:"-",costLabel:n.cost.toFixed(2),widthLabel:n.width,loopsLabel:n.loops.toLocaleString(),hitReadRatioLabel:n.hitReadRatio!==void 0?`${(n.hitReadRatio*100).toFixed(2)}%`:"-",statusLabel:l,treePrefix:a,nodeType:n.nodeType,nodeTypeCategory:Ii(n.nodeType),contextLabel:o,contextKind:r}})},Di={class:"h-full p-2"},Bi=X({__name:"ExplainGridPane",props:{nodes:{}},setup(t){const e=t,n=N(()=>Oi(e.nodes)),s=N(()=>Fi(n.value)),a=N(()=>[{headerName:"#",field:"orderLabel",width:30,sortable:!0,resizable:!0,filter:!1,cellClass:"cellCenter"},{headerName:"Operation",field:"operationLabel",width:350,sortable:!1,resizable:!0,filter:!0,cellRenderer:"ExplainOperationCell",cellClass:"operation-cell",valueGetter:r=>`${r.data.treePrefix}${r.data.nodeType} ${r.data.contextLabel}`},{headerName:"Status",field:"statusLabel",width:96,sortable:!0,resizable:!0,filter:!0,cellClass:r=>{const l=r.value;return l==="slowest"?"cellCenter bg-red-300! dark:bg-red-900":l==="expensive"?"cellCenter bg-orange-100! dark:bg-orange-900":"cellCenter"}},{headerName:"Time Spent",field:"timeSpentLabel",width:110,sortable:!0,resizable:!0,filter:!0,cellClass:"cellCenter "},{headerName:"% of Query",field:"queryPercentLabel",width:96,sortable:!0,resizable:!0,filter:!0,cellClass:"cellCenter "},{headerName:"Actual Rows",field:"rowsLabel",width:96,sortable:!0,resizable:!0,filter:!0,cellClass:"cellCenter "},{headerName:"Plan Rows",field:"planRowsLabel",width:88,sortable:!0,resizable:!0,filter:!0,cellClass:"cellCenter "},{headerName:"Estim",field:"estimateLabel",width:76,sortable:!0,resizable:!0,filter:!0,cellClass:r=>{var u;const l=Number((u=r.data)==null?void 0:u.estimateRatioValue);return Number.isFinite(l)?l<.1||l>10?"cellCenter bg-red-200 dark:bg-red-900":l>=.1&&l<.5||l>2&&l<=10?"cellCenter bg-orange-100 dark:bg-orange-900":"cellCenter ":"cellCenter "}},{headerName:"Cost",field:"costLabel",width:88,sortable:!0,resizable:!0,filter:!0,cellClass:"cellCenter "},{headerName:"Hit Read Ratio",field:"hitReadRatioLabel",width:110,sortable:!0,resizable:!0,filter:!0,cellClass:"cellCenter "},{headerName:"Width",field:"widthLabel",width:72,sortable:!0,resizable:!0,filter:!0,cellClass:"cellCenter "},{headerName:"Loops",field:"loopsLabel",width:72,sortable:!0,resizable:!0,filter:!0,cellClass:"cellCenter "}]),o={ExplainOperationCell:Li};return(r,l)=>{const u=zn;return g(),F("div",Di,[f(u,{class:"h-full","column-defs":i(a),"row-data":i(s),components:o,"enable-copy-hotkey":!1},null,8,["column-defs","row-data"])])}}}),Vi={class:"h-full p-2"},qi={class:"rounded-lg border p-2 flex flex-col h-full min-h-0"},Ki={class:"flex justify-between items-center mb-4"},Hi={class:"text-sm font-bold text-muted-foreground uppercase flex items-center gap-2"},Ui={key:0,class:"h-full grid place-items-center text-sm text-muted-foreground"},Wi={key:1,class:"flex-1 overflow-auto relative"},ji={class:"min-w-[680px] text-xs"},Qi={class:"flex border-b pb-2 mb-2 sticky top-0 bg-background z-10 font-medium text-muted-foreground"},Gi={class:"flex-1 relative h-4"},Yi={class:"absolute right-0"},Ji={class:"pb-2"},Zi=["onMouseenter"],Xi={class:"w-[28%] min-w-[190px] max-w-[260px] px-2 flex items-center overflow-hidden"},eu={class:"truncate flex items-center gap-1"},tu={class:"font-mono text-xxs text-right shrink-0 text-muted-foreground"},nu={class:"flex flex-col truncate"},su=["title"],au={key:0,class:"text-muted-foreground text-xxs truncate"},ou={key:0},ru={class:"flex-1 relative h-6 mx-2"},lu={class:"space-y-2 text-xs"},iu={class:"font-semibold flex items-center gap-1"},uu={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},cu={class:"font-mono"},du={class:"font-mono"},mu={class:"font-mono"},pu={class:"font-mono"},fu={class:"font-mono"},hu={class:"font-mono"},vu={class:"font-mono"},gu={class:"font-mono"},yu={key:0,class:"text-[11px] text-muted-foreground"},bu={key:0},at=14,xu=X({__name:"ExplainTimelineChartPane",props:{nodes:{},totalTime:{}},setup(t){const e=t,n=j(null),s=N(()=>{const c=[...e.nodes].filter(y=>typeof y["Actual Startup Time"]=="number"&&typeof y["Actual Total Time"]=="number").map(y=>{const w=y["Actual Startup Time"]||0,x=y["Actual Total Time"]||0,$=Math.max(0,x-w);return{id:y.id,nodeType:y["Node Type"],relation:y["Relation Name"],alias:y.Alias,depth:y.depth,actualRows:y["Actual Rows"],actualLoops:y["Actual Loops"],planRows:y["Plan Rows"],totalCost:y["Total Cost"],start:w,end:x,duration:$}}),m=(y,w)=>{for(let x=y+1;x<c.length;x+=1){const $=c[x].depth;if($<w)return!1;if($===w)return!0}return!1};return c.map((y,w)=>{const x=[];for(let $=1;$<y.depth;$+=1)m(w,$)&&x.push($);return{...y,continuationLevels:x,hasNextSibling:y.depth>0?m(w,y.depth):!1}})}),a=N(()=>{const c=s.value.length?Math.max(...s.value.map(m=>m.end)):0;return Math.max(e.totalTime||0,c,1)}),o=(c,m)=>{const y=a.value>0?a.value:1,w=c/y*100,x=Math.max(m/y*100,.5);return{left:`${w}%`,width:`${x}%`}},r=c=>{const m=a.value>0?a.value:1;return(c/m*100).toFixed(2)},l=c=>`${Math.max(c,0)*at}px`,u=c=>`${(c-1)*at+at/2}px`,d=`${at/2}px`,p=c=>c==="Seq Scan"?"bg-gray-400 dark:bg-gray-600":c.includes("Scan")?"bg-gray-300 dark:bg-gray-700":c.includes("Join")?"bg-gray-500 dark:bg-gray-500":c==="Sort"?"bg-gray-300 dark:bg-gray-600":(c.includes("Aggregate"),"bg-gray-400 dark:bg-gray-600");return(c,m)=>{const y=ve,w=ye,x=be,$=xe;return g(),F("div",Vi,[h("div",qi,[h("div",Ki,[h("h3",Hi,[f(y,{name:"hugeicons:clock-01",class:"size-4"}),m[1]||(m[1]=P(" Execution Plan Timeline "))]),m[2]||(m[2]=h("span",{class:"text-xs text-muted-foreground"},"Hover for details",-1))]),i(s).length===0?(g(),F("div",Ui," No timeline data available ")):(g(),F("div",Wi,[h("div",ji,[h("div",Qi,[m[7]||(m[7]=h("div",{class:"w-[28%] min-w-[190px] max-w-[260px] pl-2"}," Node Hierarchy ",-1)),h("div",Gi,[m[3]||(m[3]=h("div",{class:"absolute left-0"},"0ms",-1)),h("div",Yi,V(i(tt)(i(a))),1),m[4]||(m[4]=h("div",{class:"absolute left-1/4 border-l h-full"},null,-1)),m[5]||(m[5]=h("div",{class:"absolute left-1/2 border-l h-full"},null,-1)),m[6]||(m[6]=h("div",{class:"absolute left-3/4 border-l h-full"},null,-1))])]),h("div",Ji,[(g(!0),F(ne,null,he(i(s),S=>(g(),F("div",{key:S.id,class:re(["flex items-center group rounded transition-colors hover:bg-muted",i(n)===S.id?"bg-muted/40":""]),onMouseenter:b=>n.value=S.id,onMouseleave:m[0]||(m[0]=b=>n.value=null)},[h("div",Xi,[h("div",{class:"relative shrink-0 h-7",style:Ue({width:l(S.depth)})},[(g(!0),F(ne,null,he(S.continuationLevels,b=>(g(),F("div",{key:`${S.id}-v-${b}`,class:"absolute top-0 bottom-0 border-l border-dashed border-muted-foreground/35",style:Ue({left:u(b)})},null,4))),128)),S.depth>0?(g(),F(ne,{key:0},[h("div",{class:"absolute top-0 border-l border-dashed border-muted-foreground/45",style:Ue({left:u(S.depth),height:S.hasNextSibling?"100%":"50%"})},null,4),h("div",{class:"absolute top-1/2 -translate-y-1/2 border-t border-dashed border-muted-foreground/45",style:Ue({left:u(S.depth),width:d})},null,4)],64)):U("",!0)],4),h("div",eu,[h("span",tu," #"+V(S.id.replace("ep-","")),1),h("div",nu,[h("span",{class:"truncate font-medium text-sm",title:S.nodeType},V(S.nodeType),9,su),S.relation?(g(),F("span",au,[P(V(S.relation)+" ",1),S.alias&&S.alias!==S.relation?(g(),F("span",ou,"("+V(S.alias)+")",1)):U("",!0)])):U("",!0)])])]),h("div",ru,[m[16]||(m[16]=la('<div class="absolute top-0 bottom-0 left-0 w-px bg-muted"></div><div class="absolute top-0 bottom-0 right-0 w-px bg-muted"></div><div class="absolute top-0 bottom-0 left-1/4 w-px bg-muted"></div><div class="absolute top-0 bottom-0 left-1/2 w-px bg-muted"></div><div class="absolute top-0 bottom-0 left-3/4 w-px bg-muted"></div>',5)),f($,null,{default:v(()=>[f(w,{"as-child":""},{default:v(()=>[h("div",{class:re(["absolute top-1 bottom-1 rounded-sm transition-all shadow-sm opacity-90 cursor-default",[p(S.nodeType),i(n)===S.id?"brightness-105 ring-2 ring-border z-10":""]]),style:Ue(o(S.start,S.duration))},null,6)]),_:2},1024),f(x,{side:"top","side-offset":8,class:"max-w-[360px]"},{default:v(()=>{var b,B,R,_;return[h("div",lu,[h("div",iu,[f(y,{name:"hugeicons:flow-square",class:"size-3.5"}),P(" "+V(S.nodeType),1)]),h("div",uu,[m[8]||(m[8]=h("span",{class:"text-muted-foreground"},"Start",-1)),h("span",cu,V(i(tt)(S.start)),1),m[9]||(m[9]=h("span",{class:"text-muted-foreground"},"End",-1)),h("span",du,V(i(tt)(S.end)),1),m[10]||(m[10]=h("span",{class:"text-muted-foreground"},"Duration",-1)),h("span",mu,V(i(tt)(S.duration)),1),m[11]||(m[11]=h("span",{class:"text-muted-foreground"},"Share",-1)),h("span",pu,V(r(S.duration))+"%",1),m[12]||(m[12]=h("span",{class:"text-muted-foreground"},"Rows",-1)),h("span",fu,V(((b=S.actualRows)==null?void 0:b.toLocaleString())??"-"),1),m[13]||(m[13]=h("span",{class:"text-muted-foreground"},"Plan Rows",-1)),h("span",hu,V(((B=S.planRows)==null?void 0:B.toLocaleString())??"-"),1),m[14]||(m[14]=h("span",{class:"text-muted-foreground"},"Loops",-1)),h("span",vu,V(((R=S.actualLoops)==null?void 0:R.toLocaleString())??"-"),1),m[15]||(m[15]=h("span",{class:"text-muted-foreground"},"Total Cost",-1)),h("span",gu,V(((_=S.totalCost)==null?void 0:_.toFixed(2))??"-"),1)]),S.relation?(g(),F("div",yu,[P(" Relation: "+V(S.relation)+" ",1),S.alias&&S.alias!==S.relation?(g(),F("span",bu,"("+V(S.alias)+")",1)):U("",!0)])):U("",!0)])]}),_:2},1024)]),_:2},1024)])],42,Zi))),128))])])]))])])}}}),Cu={class:"h-full overflow-auto p-2"},wu=X({__name:"ExplainRawPane",props:{rawText:{}},setup(t){const e=t,n=N(()=>{const s=e.rawText.trim();return s.startsWith("{")||s.startsWith("[")?"json":"sql"});return(s,a)=>{const o=vt;return g(),F("div",Cu,[f(o,{code:s.rawText,language:n.value,"max-height":"100%"},null,8,["code","language"])])}}});let pt=0;const Su=()=>(pt+=1,`ep-${pt}`),hn=t=>t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):JSON.stringify(t),_u=t=>{const e=(t["Shared Hit Blocks"]??0)+(t["Local Hit Blocks"]??0),n=(t["Shared Read Blocks"]??0)+(t["Local Read Blocks"]??0),s=e+n;if(!(s<=0))return Number((e/s).toFixed(4))},Eu=(t,e)=>{const n=e["Plan Rows"],s=e["Actual Rows"];if(n!==void 0&&s!==void 0&&n>0&&s>=0){t.estimateRatio=Number((s/n).toFixed(2));const a=s/n;a>10?t.rowEstimateAccuracy="underestimate":a<.1?t.rowEstimateAccuracy="overestimate":t.rowEstimateAccuracy="accurate"}t.hitReadRatio=_u(e),(e["Total Cost"]!==void 0&&e["Total Cost"]>1e3||e["Actual Total Time"]!==void 0&&e["Actual Total Time"]>100)&&(t.isExpensive=!0)},Tu=t=>{let e=0,n="";for(const a of t){const o=a.children.reduce((l,u)=>l+(u["Actual Total Time"]??0)*(u["Actual Loops"]??1),0)/(a["Actual Loops"]??1),r=Math.max(0,(a["Actual Total Time"]??0)-o);r>e&&(e=r,n=a.id)}const s=t.find(a=>a.id===n);s&&(s.isSlowest=!0)},jn=(t,e,n)=>{const{Plans:s,...a}=t,o=t["Node Type"]||"Unknown Node",r=t["Relation Name"],l={...a,id:Su(),index:pt,label:r?`${o} on ${r}`:o,estimateRatio:void 0,hitReadRatio:void 0,isExpensive:!1,isSlowest:!1,rowEstimateAccuracy:void 0,depth:e,children:(s??[]).map(u=>jn(u,e+1,n))};return n.push(l),Eu(l,t),l},Ru=(t,e)=>{pt=0;const n=[],s=jn(t.Plan,0,n),a={"Planning Time":t["Planning Time"],"Execution Time":t["Execution Time"],totalCost:s["Total Cost"],triggersInfo:(t.Triggers??[]).map(hn),jitInfo:[],settingsInfo:t.Settings?Object.entries(t.Settings).map(([r,l])=>`${r}: ${hn(l)}`):[],rawText:e};Tu(n);const o=[...n].sort((r,l)=>r.index-l.index);return{root:s,summary:a,allNodes:o}},ku=t=>{const e={triggersInfo:[],jitInfo:[],settingsInfo:[],rawText:t},n=t.match(/Planning Time:\s*(\d+\.?\d*)\s*ms/i),s=t.match(/Execution Time:\s*(\d+\.?\d*)\s*ms/i);return n&&(e["Planning Time"]=Number.parseFloat(n[1])),s&&(e["Execution Time"]=Number.parseFloat(s[1])),{root:null,summary:e,allNodes:[]}},Nt=t=>{if(!t)return null;if(typeof t=="string")try{return Nt(JSON.parse(t))}catch{return null}return Array.isArray(t)?t.length?Nt(t[0]):null:typeof t=="object"&&t!==null&&"Plan"in t&&typeof t.Plan=="object"?t:null},Qn=(t,e)=>{var n;if(!(t!=null&&t.length))return null;if(Array.isArray(t[0]))return t[0][0]??null;if(typeof t[0]=="object"&&t[0]!==null){const s=t[0],a=Object.keys(s).find(o=>o.toUpperCase()==="QUERY PLAN")||((n=e==null?void 0:e[0])==null?void 0:n.name)||Object.keys(s)[0];return a?s[a]??null:null}return t[0]??null},Nu=(t,e)=>{const n=Qn(t,e);return n==null?"":typeof n=="string"?n:JSON.stringify(n,null,2)},$u=t=>{const e=typeof t=="string"?t:JSON.stringify(t,null,2),n=Nt(t);return n?Ru(n,e):ku(e)},zu={class:"h-full min-h-0"},Mu={key:0,class:"h-full flex flex-col items-center justify-center gap-2 text-muted-foreground"},Lu=X({__name:"ResultTabExplainView",props:{activeTab:{}},setup(t){const e=t,n=j(ut.GRID),s=j(!1),a=N(()=>Qn(e.activeTab.result,e.activeTab.metadata.fieldDefs)),o=N(()=>Nu(e.activeTab.result,e.activeTab.metadata.fieldDefs)),r=N(()=>$u(a.value)),l=N(()=>{const u=r.value.allNodes,d=u.filter(c=>c.isExpensive),p=u.filter(c=>c.isSlowest);return{planningTime:r.value.summary["Planning Time"],executionTime:r.value.summary["Execution Time"],nodeCount:u.length,expensiveCount:d.length,slowCount:p.length,allNodes:u,expensiveNodes:d,slowNodes:p}});return(u,d)=>{const p=ki,c=ve,m=Bi,y=xu,w=wu;return g(),F("div",zu,[i(s)?(g(),F("div",{key:0,class:"fixed inset-0 z-40 bg-background/70 backdrop-blur-[1px]",onClick:d[0]||(d[0]=x=>s.value=!1)})):U("",!0),h("div",{class:re(["flex flex-col",i(s)?"fixed z-50 left-1/2 top-1/2 h-[90vh] w-[95vw] -translate-x-1/2 -translate-y-1/2 rounded-xl border bg-background shadow-2xl":"h-full min-h-0 overflow-hidden"])},[f(p,{modelValue:i(n),"onUpdate:modelValue":d[1]||(d[1]=x=>dt(n)?n.value=x:null),"summary-stats":i(l),"is-expanded":i(s),onToggleExpand:d[2]||(d[2]=x=>s.value=!i(s))},null,8,["modelValue","summary-stats","is-expanded"]),h("div",{class:re(["flex-1 min-h-0",i(s)?"overflow-hidden":"overflow-y-auto"])},[i(r).root?i(n)===i(ut).GRID?(g(),A(m,{key:1,nodes:i(r).allNodes},null,8,["nodes"])):i(n)===i(ut).TIMELINE?(g(),A(y,{key:2,nodes:i(r).allNodes,"total-time":i(l).executionTime},null,8,["nodes","total-time"])):(g(),A(w,{key:3,"raw-text":i(o)},null,8,["raw-text"])):(g(),F("div",Mu,[f(c,{name:"hugeicons:alert-02",class:"size-8 opacity-50"}),d[3]||(d[3]=h("p",{class:"text-sm"},"Could not parse execution plan",-1))]))],2)],2)])}}}),Iu={class:"h-full flex w-full"},Au={key:0,class:"flex mt-7 [writing-mode:vertical-rl]"},Pu=["onClick"],Ou={class:"h-full w-full flex flex-col"},Fu={class:"flex items-end overflow-x-auto pt-0.5"},Du=["onClick","onContextmenu"],Bu={class:"truncate text-xs font-medium"},Vu=["onClick"],qu={class:"h-full w-full border rounded-md rounded-tl-none overflow-hidden"},Ku=X({__name:"RawQueryResultTabs",props:{executedResults:{},activeTabId:{},executeLoading:{type:Boolean},isStreaming:{type:Boolean}},emits:["update:activeTab","close-tab","close-other-tabs","close-tabs-to-right","update:view"],setup(t,{emit:e}){const n=t,s=Dt(),{schemas:a}=ft(s),o=e,r=j(null),l=N(()=>{if(!r.value)return!1;const b=Array.from(n.executedResults.keys()),B=b.indexOf(r.value);return B>=0&&B<b.length-1}),u=[{value:"result",label:"Result"},{value:"explain",label:"Explain"},{value:"raw",label:"Raw"},{value:"info",label:"Info"},{value:"error",label:"Errors"}],d=new Map,p=Xe([]);let c=null;const m=N(()=>n.activeTabId&&n.executedResults.get(n.activeTabId)||null);de(()=>{var b;return(b=m.value)==null?void 0:b.metadata.connection},async b=>{var B;if(b)try{(B=a.value[b.id])!=null&&B.length||await s.fetchSchemas({connectionId:b.id,workspaceId:b.workspaceId,connection:b}),await s.fetchReservedSchemas({connectionId:b.id,connection:b})}catch(R){console.error("[RawQueryResultTabs] Failed to load schema metadata",R)}},{immediate:!0});const y=N(()=>{var b;return((b=m.value)==null?void 0:b.view)||"result"}),w=N(()=>{var B,R;if(!((B=m.value)!=null&&B.metadata.fieldDefs))return[];const b=(R=m.value.metadata.connection)==null?void 0:R.id;return br({fieldDefs:m.value.metadata.fieldDefs,statementQuery:m.value.metadata.statementQuery,schemas:b?a.value[b]||[]:[],getTableInfoById:s.getTableInfoById})}),x=b=>{var k;const B=((k=b.result)==null?void 0:k.length)||0,R=`${b.id}_${B}`;if(d.has(R))return d.get(R);const _=b.metadata.fieldDefs||[],D=Cr(b.result||[],_);d.set(R,D);for(const M of d.keys())M.startsWith(`${b.id}_`)&&M!==R&&d.delete(M);return D};de(m,b=>{c&&cancelAnimationFrame(c),c=requestAnimationFrame(()=>{p.value=b?x(b):[],c=null})},{immediate:!0}),ia(()=>{c&&cancelAnimationFrame(c)});const $=b=>{n.activeTabId&&o("update:view",n.activeTabId,b)},S=b=>!!b.metadata.executeErrors;return(b,B)=>{const R=ve,_=ye,D=be,k=xe,M=Bt,K=ht;return g(),F("div",Iu,[i(m)?(g(),F("div",Au,[(g(),F(ne,null,he(u,O=>h("div",{key:O.value,onClick:H=>S(i(m))&&(O.value==="result"||O.value==="raw")||O.value==="error"&&!S(i(m))?null:$(O.value),class:re(i(Ze)("border px-1 text-xs font-normal transition-colors",i(y)===O.value?"bg-muted border-transparent border-r-border":"border-transparent",O.value==="error"&&S(i(m))?"hover:bg-muted cursor-pointer":O.value==="explain"&&!i(m).metadata.statementQuery.startsWith("EXPLAIN")?null:"",O.value==="error"&&!S(i(m))?"opacity-40 cursor-not-allowed":"",(O.value==="result"||O.value==="raw")&&S(i(m))?"opacity-40 cursor-not-allowed":"",O.value==="explain"&&!i(m).metadata.statementQuery.startsWith("EXPLAIN")?"opacity-40 cursor-not-allowed":"",O.value==="error"&&!S(i(m))||(O.value==="result"||O.value==="raw")&&S(i(m))||O.value==="explain"&&!i(m).metadata.statementQuery.startsWith("EXPLAIN")?"":"hover:bg-muted cursor-pointer"))},V(O.label),11,Pu)),64))])):U("",!0),h("div",Ou,[h("div",Fu,[f(i(Rn),null,{default:v(()=>[f(i(kn),{class:"flex items-end"},{default:v(()=>[(g(!0),F(ne,null,he(b.executedResults,([O,H])=>(g(),A(k,{key:O},{default:v(()=>[f(_,{"as-child":""},{default:v(()=>[h("div",{onClick:G=>b.$emit("update:activeTab",O),onContextmenu:G=>r.value=O,class:re(i(Ze)("h-6! flex gap-0.5 rounded-t-md max-w-44 justify-start! items-center font-normal p-1! hover:[&>div]:opacity-100 transition-all duration-200 border rounded-b-none cursor-pointer relative",O===b.activeTabId?"border-b-transparent bg-background dark:bg-accent":"border-transparent bg-muted/30"))},[f(R,{name:S(H)?"hugeicons:alert-02":"hugeicons:sql",class:re(i(Ze)("min-w-4",S(H)?"text-red-500":""))},null,8,["name","class"]),h("div",Bu," Query "+V(H.seqIndex)+" - "+V(H.metadata.statementQuery),1),h("div",{onClick:At(G=>b.$emit("close-tab",O),["stop"]),class:"hover:bg-accent h-5 w-5 flex items-center justify-center rounded-full opacity-0"},[f(R,{name:"lucide:x",class:"stroke-[2.5]! size-3!"})],8,Vu)],42,Du)]),_:2},1024),f(D,{class:"max-w-xl"},{default:v(()=>[h("p",null,V(H.metadata.statementQuery),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),i(r)?(g(),A(i(Nn),{key:0,hideWhenDetached:"",class:"w-56"},{default:v(()=>[f(i(ot),{onSelect:B[0]||(B[0]=O=>b.$emit("close-tab",i(r)))},{default:v(()=>B[4]||(B[4]=[P(" Close ")])),_:1}),f(i(ot),{onSelect:B[1]||(B[1]=O=>b.$emit("close-other-tabs",i(r)))},{default:v(()=>B[5]||(B[5]=[P(" Close Others ")])),_:1}),f(i(ot),{disabled:!i(l),onSelect:B[2]||(B[2]=O=>b.$emit("close-tabs-to-right",i(r)))},{default:v(()=>B[6]||(B[6]=[P(" Close to the Right ")])),_:1},8,["disabled"])]),_:1})):U("",!0)]),_:1})]),h("div",qu,[b.executeLoading&&b.activeTabId?(g(),A(M,{key:0,visible:""})):U("",!0),i(m)?i(m)&&i(y)==="result"?(g(),A(vi,{"active-tab":i(m),"active-tab-columns":i(w),"formatted-data":i(p),"execute-loading":b.executeLoading,"is-streaming":b.isStreaming,key:i(m).id},null,8,["active-tab","active-tab-columns","formatted-data","execute-loading","is-streaming"])):i(m)&&i(y)==="explain"?(g(),A(Lu,{key:3,"active-tab":i(m)},null,8,["active-tab"])):i(m)&&i(y)==="raw"?(g(),A(Zr,{key:4,"formatted-data":i(p),"execute-loading":b.executeLoading,"is-streaming":b.isStreaming},null,8,["formatted-data","execute-loading","is-streaming"])):i(m)&&i(y)==="info"?(g(),A(Yr,{key:5,"active-tab":i(m)},null,8,["active-tab"])):i(m)&&i(y)==="error"?(g(),A(Mr,{key:6,"active-tab":i(m),onOnChangeView:B[3]||(B[3]=O=>$(O))},null,8,["active-tab"])):U("",!0):(g(),A(K,{key:1,title:"No results",desc:"Execute a query to see results"}))])])])}}}),Hu={class:"flex flex-col h-full p-1"},Uu={class:"flex flex-col h-full border rounded-md"},Wu={class:"h-full flex flex-col overflow-y-auto"},ju={class:"flex flex-col h-full border rounded-md bg-muted"},Qu={class:"flex items-center gap-1 font-normal text-sm px-2 py-1"},Gu={class:"h-full flex flex-col overflow-y-auto"},Yu=X({__name:"RawQuery",props:{isSupportVariable:{type:Boolean,default:!0}},setup(t){const e=t,n=En(),s=N(()=>{const J=n.params.workspaceId;return Array.isArray(J)?J[0]??"":J??""}),a=wn(),o=ua(),r=Fl(),{connection:l,currentFile:u,currentOpenedConnection:d,fileContents:p,fileVariables:c,selectedConnectionId:m,updateSelectedConnection:y,updateFileContent:w,updateFileVariables:x,connectionsByWsId:$,fieldDefs:S}=r,b=N(()=>{var J;return((J=l.value)==null?void 0:J.type)===Z.REDIS}),B=N(()=>!b.value),R=N(()=>{var J;return[Z.SQLITE3,Z.BETTER_SQLITE3].includes((J=l.value)==null?void 0:J.type)}),_=N(()=>e.isSupportVariable&&!b.value&&!R.value),D=N(()=>{var J;return((J=l.value)==null?void 0:J.type)===Z.POSTGRES}),k=j("");ca(()=>{k.value=_.value?c.value:""});const M=N(()=>b.value?l.value:void 0),K=pa({connection:M,mode:"meta"}),O=J=>{K.selectedDatabaseIndex.value=J},H=Pl({connection:l,redisDatabaseIndex:K.selectedDatabaseIndex,fieldDefs:S,fileVariables:k,beforeExecute:()=>Y()}),{cursorInfo:G,extensions:W,codeEditorRef:ee,onExecuteCurrent:ge,onHandleFormatCode:me,onHandleFormatCurrentStatement:ke,onExplainAnalyzeCurrent:Le,explainAnalyzeOptionItems:Ie,serializeMode:Ee,currentRawQueryResult:we,queryProcessState:ie,executedResults:Ne,activeResultTabId:Te}=H,{contextMenuItems:ae,onContextMenuOpen:$e}=Ol({onExecuteCurrent:H.onExecuteCurrent,onExplainAnalyzeCurrent:H.onExplainAnalyzeCurrent,onHandleFormatCurrentStatement:H.onHandleFormatCurrentStatement,onHandleFormatCode:H.onHandleFormatCode,isSupportFormat:B,isExplainSupported:D,getEditorView:()=>{var J;return(J=ee.value)==null?void 0:J.editorView}}),C=j(0),T=j(!0),L=j(!1),z=j(""),I=j("");let E=null;const q=N(()=>d.value?o.getTagsByIds(d.value.tagIds??[]).some(J=>J.strictMode):!1),Y=()=>{const J=l.value,pe=d.value;return!J||!pe||J.id===pe.id?Promise.resolve(!0):L.value?Promise.resolve(!1):(z.value=J.name,I.value=pe.name,L.value=!0,new Promise(ze=>{E=ze}))},te=()=>{L.value=!1,E==null||E(!0),E=null},Ce=()=>{L.value=!1,E==null||E(!1),E=null};Tn([{key:"mod+j",callback:()=>{T.value=!T.value}},{key:"ctrl+j",callback:()=>{T.value=!T.value}}]),de(k,()=>{H.reloadSqlCompartment()});const Ae=({column:J,from:pe,line:ze,to:Q})=>{G.value={column:J,line:ze},r.updateFileCursorPos({from:pe,to:Q})},Fe=(J=!0)=>{var Q,se;if(!((Q=u.value)!=null&&Q.cursorPos)||!((se=ee.value)!=null&&se.editorView))return;const pe=u.value.cursorPos.from??0,ze=u.value.cursorPos.to||0;ee.value.setCursorPosition({from:pe,to:ze,allowScroll:J})},Qe=j(!r.isFromCache);return Pt(async()=>{Qe.value&&(await r.loadFileContent(),Qe.value=!1,await We()),Fe()}),da(async()=>{var J;await We(),Fe(!1),(J=ee.value)!=null&&J.editorView&&(ee.value.editorView.scrollDOM.scrollTop=C.value)}),Ot(()=>{E&&(E(!1),E=null)}),(J,pe)=>{const ze=ve,Q=ht;return g(),F(ne,null,[f(So,{open:i(L),"target-connection-name":i(z),"current-connection-name":i(I),onConfirm:te,onCancel:Ce},null,8,["open","target-connection-name","current-connection-name"]),f(sr,{layout:i(a).codeEditorLayout,customLayout:i(a).activeCustomLayout,"show-result-panel":i(T)},{content:v(()=>[h("div",Hu,[h("div",Uu,[f(Zo,{"onUpdate:connectionId":i(y),connections:i($),connection:i(l),"selected-connection-id":i(m),"disable-connection-switch":i(q),"is-redis-connection":i(b),"redis-databases":i(K).databases.value,"redis-database-index":i(K).selectedDatabaseIndex.value,workspaceId:i(s),"file-variables":i(c),"code-editor-layout":i(a).codeEditorLayout,currentFileInfo:i(u),"is-support-variable":i(_),"onUpdate:redisDatabaseIndex":O,"onUpdate:updateFileVariables":i(x)},null,8,["onUpdate:connectionId","connections","connection","selected-connection-id","disable-connection-switch","is-redis-connection","redis-databases","redis-database-index","workspaceId","file-variables","code-editor-layout","currentFileInfo","is-support-variable","onUpdate:updateFileVariables"]),h("div",Wu,[f(Eo,{"context-menu-items":i(ae),"onUpdate:open":i($e)},{default:v(()=>[i(Qe)?(g(),A(i(Bt),{key:0,visible:""})):(g(),A(Cn,{key:1,"onUpdate:modelValue":i(w),"onUpdate:cursorInfo":Ae,"onUpdate:onScrollTop":pe[0]||(pe[0]=se=>C.value=se),modelValue:i(p),extensions:i(W),ref_key:"codeEditorRef",ref:ee},null,8,["onUpdate:modelValue","modelValue","extensions"]))]),_:1},8,["context-menu-items","onUpdate:open"])]),f(Ho,{"cursor-info":i(G),"execute-loading":i(ie).executeLoading,"execute-errors":!!i(ie).executeErrors,"is-have-one-execute":i(ie).isHaveOneExecute,"is-streaming":i(ie).isStreaming,"streaming-row-count":i(ie).streamingRowCount,queryTime:i(ie).queryTime,"raw-query-results-length":i(we).length,"explain-analyze-option-items":i(Ie),"serialize-mode":i(Ee),"is-support-format":i(B),"is-support-variable":i(_),"is-explain-supported":i(D),onOnFormatCurrentStatement:i(ke),onOnFormatAll:i(me),onOnExplainAnalyzeCurrent:i(Le),onToggleExplainOption:i(H).toggleExplainOption,"onUpdate:serializeMode":i(H).setSerializeMode,onOnExecuteCurrent:i(ge),onOnCancelQuery:i(H).cancelStreamingQuery},null,8,["cursor-info","execute-loading","execute-errors","is-have-one-execute","is-streaming","streaming-row-count","queryTime","raw-query-results-length","explain-analyze-option-items","serialize-mode","is-support-format","is-support-variable","is-explain-supported","onOnFormatCurrentStatement","onOnFormatAll","onOnExplainAnalyzeCurrent","onToggleExplainOption","onUpdate:serializeMode","onOnExecuteCurrent","onOnCancelQuery"])])])]),variables:v(()=>[h("div",ju,[h("div",Qu,[f(ze,{name:"hugeicons:absolute"}),pe[1]||(pe[1]=P(" Variables "))]),h("div",Gu,[i(_)?(g(),A(Mn,{key:1,variables:i(c),"onUpdate:variables":i(x),onUpdateVariables:i(x),"file-variables":i(c)},null,8,["variables","onUpdate:variables","onUpdateVariables","file-variables"])):(g(),A(Q,{key:0,title:"Variables not supported",desc:"Variables are not available for Redis and SQLite connections.",icon:"icons:ghost"}))])])]),result:v(()=>[i(Ne).size===0?(g(),A(xo,{key:0})):(g(),A(Ku,{key:1,"executed-results":i(Ne),"active-tab-id":i(Te),"execute-loading":i(ie).executeLoading,"is-streaming":i(ie).isStreaming,"onUpdate:activeTab":i(H).setActiveResultTab,onCloseTab:i(H).closeResultTab,onCloseOtherTabs:i(H).closeOtherResultTabs,onCloseTabsToRight:i(H).closeResultTabsToRight,"onUpdate:view":i(H).updateResultTabView},null,8,["executed-results","active-tab-id","execute-loading","is-streaming","onUpdate:activeTab","onCloseTab","onCloseOtherTabs","onCloseTabsToRight","onUpdate:view"]))]),_:1},8,["layout","customLayout","show-result-panel"])],64)}}}),Ic=X({__name:"[fileId]",setup(t){return(e,n)=>(g(),A(Yu))}});export{Ic as default};