orcaq 1.1.5 → 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 (215) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{CQzADP3y.js → 1VXrIDkr.js} +1 -1
  3. package/.output/public/_nuxt/1fIGBJPQ.js +1 -0
  4. package/.output/public/_nuxt/{BQfpgF4f.js → 1kY3DHv7.js} +1 -1
  5. package/.output/public/_nuxt/{CbANTWsS.js → 2TwRWQjG.js} +1 -1
  6. package/.output/public/_nuxt/{CWrGZxpH.js → 39ZZCZCn.js} +1 -1
  7. package/.output/public/_nuxt/{BmDMzOju.js → 3vYvhEat.js} +1 -1
  8. package/.output/public/_nuxt/9bnMBg54.js +1 -0
  9. package/.output/public/_nuxt/{BcuPgKcZ.js → B-u0WX5Q.js} +1 -1
  10. package/.output/public/_nuxt/{Di0QgSJz.js → B41tp0B8.js} +1 -1
  11. package/.output/public/_nuxt/B5rxJs06.js +1 -0
  12. package/.output/public/_nuxt/{jwI3t-NN.js → BCm7jnPt.js} +1 -1
  13. package/.output/public/_nuxt/BFMjnjgH.js +1 -0
  14. package/.output/public/_nuxt/{2bjDg-PP.js → BGAd-CMD.js} +1 -1
  15. package/.output/public/_nuxt/BG_B-fo0.js +1 -0
  16. package/.output/public/_nuxt/{DoIRSvuP.js → BLEKzUmC.js} +1 -1
  17. package/.output/public/_nuxt/BN2mQ8OV.js +20 -0
  18. package/.output/public/_nuxt/{XAHyd86s.js → BNnChlxR.js} +1 -1
  19. package/.output/public/_nuxt/BNyWhB4W.js +1 -0
  20. package/.output/public/_nuxt/{Dtfetpn0.js → BO-QgaRL.js} +1 -1
  21. package/.output/public/_nuxt/{D4dXVtWp.js → BOVFFCPB.js} +1 -1
  22. package/.output/public/_nuxt/{CFLipT9o.js → BRVpLa1E.js} +3 -3
  23. package/.output/public/_nuxt/{CtcvFTZM.js → BV4g1sVY.js} +1 -1
  24. package/.output/public/_nuxt/BXziI6Bt.js +3 -0
  25. package/.output/public/_nuxt/{BtWocXUF.js → BZQUF1W4.js} +1 -1
  26. package/.output/public/_nuxt/BZmEvFAZ.js +28 -0
  27. package/.output/public/_nuxt/B_G752SV.js +20 -0
  28. package/.output/public/_nuxt/Ba_fqsW2.js +1 -0
  29. package/.output/public/_nuxt/{DynamicTable.B3c2woGb.css → BaseDataGrid.C2ywM2-T.css} +1 -1
  30. package/.output/public/_nuxt/BbzZxPNQ.js +1 -0
  31. package/.output/public/_nuxt/{CGewvTrI.js → BhT0iBlH.js} +1 -1
  32. package/.output/public/_nuxt/Bhm1GL_M.js +1 -0
  33. package/.output/public/_nuxt/BiSZmDoN.js +1 -0
  34. package/.output/public/_nuxt/BjK8Fug8.js +1 -0
  35. package/.output/public/_nuxt/BjpSpz5C.js +1 -0
  36. package/.output/public/_nuxt/BkqB6n0T.js +1 -0
  37. package/.output/public/_nuxt/BoPjUGS6.js +1 -0
  38. package/.output/public/_nuxt/BtwwqY0e.js +1 -0
  39. package/.output/public/_nuxt/{BptGnFIG.js → BvD9dW-2.js} +1 -1
  40. package/.output/public/_nuxt/{CdVERIz5.js → Bw-4PosZ.js} +1 -1
  41. package/.output/public/_nuxt/C0l_59dE.js +1 -0
  42. package/.output/public/_nuxt/C1TOiVRQ.js +9 -0
  43. package/.output/public/_nuxt/{CQUEIz0K.js → C7A87LE3.js} +1 -1
  44. package/.output/public/_nuxt/C80Zs8U0.js +1 -0
  45. package/.output/public/_nuxt/CB56S0b2.js +39 -0
  46. package/.output/public/_nuxt/{i2P9wHne.js → CBgbjsPd.js} +1 -1
  47. package/.output/public/_nuxt/{_q4rKPCs.js → CCk2r9DD.js} +1 -1
  48. package/.output/public/_nuxt/CFZerEKx.js +2 -0
  49. package/.output/public/_nuxt/{CUU4aZu3.js → CG4v011f.js} +1 -1
  50. package/.output/public/_nuxt/{B9FaYCWq.js → CJnTtXrv.js} +1 -1
  51. package/.output/public/_nuxt/{Ba5PGSyB.js → CRDIOG8r.js} +1 -1
  52. package/.output/public/_nuxt/CSPqdI4x.js +1 -0
  53. package/.output/public/_nuxt/CTYqoFvv.js +1 -0
  54. package/.output/public/_nuxt/{hJtoF0XJ.js → CWGzL6OE.js} +1 -1
  55. package/.output/public/_nuxt/CYJEOEaU.js +1 -0
  56. package/.output/public/_nuxt/CYu-xp_f.js +1 -0
  57. package/.output/public/_nuxt/CZvnl0uO.js +52 -0
  58. package/.output/public/_nuxt/CadjlDLt.js +1 -0
  59. package/.output/public/_nuxt/{Ce7ha8Ij.js → CczQKYUP.js} +1 -1
  60. package/.output/public/_nuxt/CeXr_3vU.js +2 -0
  61. package/.output/public/_nuxt/{CY5xaULp.js → Ch-A9iSC.js} +1 -1
  62. package/.output/public/_nuxt/{MPvsaAca.js → Cj9tYr3P.js} +1 -1
  63. package/.output/public/_nuxt/Clm3Z8VL.js +1 -0
  64. package/.output/public/_nuxt/CpkrwN3Q.js +9 -0
  65. package/.output/public/_nuxt/{98JSO6jv.js → CrwM3gOU.js} +1 -1
  66. package/.output/public/_nuxt/{lID_8ynt.js → Culm7V2R.js} +1 -1
  67. package/.output/public/_nuxt/{ZS8y2W5x.js → CxZK-Vs6.js} +1 -1
  68. package/.output/public/_nuxt/{D0o3znGI.js → Cym7bWgs.js} +1 -1
  69. package/.output/public/_nuxt/CzBFxx8v.js +1 -0
  70. package/.output/public/_nuxt/{COm5WeiJ.js → D0oaRUYx.js} +1 -1
  71. package/.output/public/_nuxt/{BNM5p7H5.js → D7uoAo-G.js} +181 -181
  72. package/.output/public/_nuxt/D8KJQqug.js +1 -0
  73. package/.output/public/_nuxt/D8Z5BXgG.js +26 -0
  74. package/.output/public/_nuxt/{-lZvfnzr.js → D9Ycznwo.js} +1 -1
  75. package/.output/public/_nuxt/DDK9-_jm.js +1 -0
  76. package/.output/public/_nuxt/DDQU7vSH.js +1 -0
  77. package/.output/public/_nuxt/{C6Cu0sLe.js → DEjwIQuc.js} +1 -1
  78. package/.output/public/_nuxt/{B6tZoMuV.js → DLIUYAz9.js} +1 -1
  79. package/.output/public/_nuxt/{D2eDr3o2.js → DQdL5Jcl.js} +1 -1
  80. package/.output/public/_nuxt/{CZGnIeYQ.js → DRuCf0Sx.js} +1 -1
  81. package/.output/public/_nuxt/DSEkO8kW.js +1 -0
  82. package/.output/public/_nuxt/{BzOiQq7V.js → DSOwr8Hs.js} +4 -4
  83. package/.output/public/_nuxt/{BiDM-4Ma.js → DStg2VwN.js} +1 -1
  84. package/.output/public/_nuxt/{Di03NGSO.js → DTlu-CJn.js} +1 -1
  85. package/.output/public/_nuxt/{CGW0AH4b.js → DUvUg_V7.js} +1 -1
  86. package/.output/public/_nuxt/{BEhaJXPi.js → D_fdC3mJ.js} +1 -1
  87. package/.output/public/_nuxt/Da1F0IxL.js +1 -0
  88. package/.output/public/_nuxt/{Ds73uRhN.js → DcXAnOS1.js} +1 -1
  89. package/.output/public/_nuxt/DdtQIDaq.js +1 -0
  90. package/.output/public/_nuxt/Dfz8k_Rn.js +1 -0
  91. package/.output/public/_nuxt/DitYzGT4.js +1 -0
  92. package/.output/public/_nuxt/Djh3G2Nf.js +1 -0
  93. package/.output/public/_nuxt/DmWFeTaU.js +1 -0
  94. package/.output/public/_nuxt/{DcCuT_qB.js → DtgJAz2h.js} +1 -1
  95. package/.output/public/_nuxt/{DKGci8Z9.js → DuKway_J.js} +1 -1
  96. package/.output/public/_nuxt/{BqjI13AR.js → DxF9DsEl.js} +1 -1
  97. package/.output/public/_nuxt/{BX-UQU8e.js → DyFXtlg0.js} +1 -1
  98. package/.output/public/_nuxt/DzN4YRfa.js +7 -0
  99. package/.output/public/_nuxt/{B8-wNbMP.js → DzaPC1WB.js} +1 -1
  100. package/.output/public/_nuxt/{O78AcFB2.js → DzjHXopz.js} +1 -1
  101. package/.output/public/_nuxt/{default.B0xlD4Sl.css → FileTree.CtTH3U6l.css} +1 -1
  102. package/.output/public/_nuxt/{CopwM-Pr.js → LUfaevBS.js} +1 -1
  103. package/.output/public/_nuxt/PreviewRelationTable.BA0i90jA.css +1 -0
  104. package/.output/public/_nuxt/{DWkbgNG-.js → RFRrMFyH.js} +1 -1
  105. package/.output/public/_nuxt/{B1LoOOkn.js → RTN5rY4m.js} +1 -1
  106. package/.output/public/_nuxt/W-4KVxy4.js +22 -0
  107. package/.output/public/_nuxt/{DehrK61g.js → XVZ0obUR.js} +1 -1
  108. package/.output/public/_nuxt/Z5g5B4NJ.js +1 -0
  109. package/.output/public/_nuxt/_ltJfz1p.js +1 -0
  110. package/.output/public/_nuxt/builds/latest.json +1 -1
  111. package/.output/public/_nuxt/builds/meta/1cbed594-12e2-48e6-bea9-7a9159c3c1d3.json +1 -0
  112. package/.output/public/_nuxt/default.DixIpIal.css +1 -0
  113. package/.output/public/_nuxt/dkyHOJLf.js +1 -0
  114. package/.output/public/_nuxt/entry.D1DMaixs.css +1 -0
  115. package/.output/public/_nuxt/{D2uh44XM.js → gWmEw6BT.js} +1 -1
  116. package/.output/public/_nuxt/{index.P0q-dO_S.css → index.C4HrDOPM.css} +1 -1
  117. package/.output/public/_nuxt/ixgiI20S.js +1 -0
  118. package/.output/public/_nuxt/{LQx-wtAv.js → jJeqAxmP.js} +1 -1
  119. package/.output/public/_nuxt/lisFd8W1.js +2 -0
  120. package/.output/public/_nuxt/{DCaozlmM.js → nrlEwpIH.js} +2 -2
  121. package/.output/public/_nuxt/uHyBIwWw.js +1 -0
  122. package/.output/public/_nuxt/vGkKA7iH.js +16 -0
  123. package/.output/public/_nuxt/{BYWbdMZt.js → z1xPtaLw.js} +1 -1
  124. package/.output/server/chunks/_/db-connection.mjs +3 -0
  125. package/.output/server/chunks/_/db-connection.mjs.map +1 -1
  126. package/.output/server/chunks/_/registry.mjs +116 -0
  127. package/.output/server/chunks/_/registry.mjs.map +1 -0
  128. package/.output/server/chunks/_/{native-backup.mjs → runtime.mjs} +325 -164
  129. package/.output/server/chunks/_/runtime.mjs.map +1 -0
  130. package/.output/server/chunks/_/{native-backup-jobs.mjs → service.mjs} +185 -248
  131. package/.output/server/chunks/_/service.mjs.map +1 -0
  132. package/.output/server/chunks/_/sql-mutation-statements.mjs +496 -0
  133. package/.output/server/chunks/_/sql-mutation-statements.mjs.map +1 -0
  134. package/.output/server/chunks/_/tables.factory.mjs +57 -29
  135. package/.output/server/chunks/_/tables.factory.mjs.map +1 -1
  136. package/.output/server/chunks/build/client.manifest.mjs +816 -687
  137. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  138. package/.output/server/chunks/nitro/nitro.mjs +692 -655
  139. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs +7 -2
  140. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs.map +1 -1
  141. package/.output/server/chunks/routes/api/database-export/export-database.mjs +4 -3
  142. package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
  143. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs +1 -20
  144. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs.map +1 -1
  145. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs +1 -20
  146. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/database-import/import-database.mjs +14 -3
  148. package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
  149. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs +1 -20
  150. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs.map +1 -1
  151. package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs +18 -10
  152. package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs.map +1 -1
  153. package/.output/server/chunks/routes/api/tables/bulk-insert.post.mjs +90 -0
  154. package/.output/server/chunks/routes/api/tables/bulk-insert.post.mjs.map +1 -0
  155. package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs +50 -9
  156. package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs.map +1 -1
  157. package/.output/server/package.json +1 -2
  158. package/package.json +1 -1
  159. package/.output/public/_nuxt/0olA6U9-.js +0 -1
  160. package/.output/public/_nuxt/3MFLtJaB.js +0 -2
  161. package/.output/public/_nuxt/5eGdUlL5.js +0 -1
  162. package/.output/public/_nuxt/9N_axiMO.js +0 -1
  163. package/.output/public/_nuxt/B7-PqSUV.js +0 -1
  164. package/.output/public/_nuxt/BDMb-Pyv.js +0 -1
  165. package/.output/public/_nuxt/BN6ZmV2J.js +0 -1
  166. package/.output/public/_nuxt/BjdYdiyf.js +0 -1
  167. package/.output/public/_nuxt/By3LMj8D.js +0 -1
  168. package/.output/public/_nuxt/CAw6QK8a.js +0 -1
  169. package/.output/public/_nuxt/CGtwVe-7.js +0 -1
  170. package/.output/public/_nuxt/CJZf1MDD.js +0 -1
  171. package/.output/public/_nuxt/CKTZRDiI.js +0 -1
  172. package/.output/public/_nuxt/CQas_zLl.js +0 -20
  173. package/.output/public/_nuxt/CS5akSNT.js +0 -1
  174. package/.output/public/_nuxt/CTkQN1XK.js +0 -39
  175. package/.output/public/_nuxt/CUiGarir.js +0 -1
  176. package/.output/public/_nuxt/CYMhtSRb.js +0 -1
  177. package/.output/public/_nuxt/CYkdQXWd.js +0 -1
  178. package/.output/public/_nuxt/CZmkQ9aO.js +0 -2
  179. package/.output/public/_nuxt/Cc2igSge.js +0 -67
  180. package/.output/public/_nuxt/Cgf5py_m.js +0 -9
  181. package/.output/public/_nuxt/CpBFRs2a.js +0 -1
  182. package/.output/public/_nuxt/Cr2BKem3.js +0 -1
  183. package/.output/public/_nuxt/CuaktsoE.js +0 -1
  184. package/.output/public/_nuxt/D1veMm0L.js +0 -1
  185. package/.output/public/_nuxt/D3ZJP2ze.js +0 -1
  186. package/.output/public/_nuxt/DGuH4YHZ.js +0 -1
  187. package/.output/public/_nuxt/DJa6BJMa.js +0 -1
  188. package/.output/public/_nuxt/DTEzbo2c.js +0 -1
  189. package/.output/public/_nuxt/DUliC29v.js +0 -1
  190. package/.output/public/_nuxt/DW1m4Hxy.js +0 -1
  191. package/.output/public/_nuxt/DWnJMbXf.js +0 -1
  192. package/.output/public/_nuxt/DXQS6bj6.js +0 -2
  193. package/.output/public/_nuxt/Dah6izTx.js +0 -22
  194. package/.output/public/_nuxt/Dcz-n576.js +0 -1
  195. package/.output/public/_nuxt/DdUuVBMi.js +0 -1
  196. package/.output/public/_nuxt/Di_nUA-u.js +0 -7
  197. package/.output/public/_nuxt/DnPYRTtC.js +0 -1
  198. package/.output/public/_nuxt/DpyRXhd7.js +0 -1
  199. package/.output/public/_nuxt/DuMEW1lw.js +0 -1
  200. package/.output/public/_nuxt/DvATq7eC.js +0 -1
  201. package/.output/public/_nuxt/DwfS-MFd.js +0 -1
  202. package/.output/public/_nuxt/DyIuwJ7R.js +0 -1
  203. package/.output/public/_nuxt/OMgXwGIN.js +0 -26
  204. package/.output/public/_nuxt/QuickQuery.CJ7tNjo4.css +0 -1
  205. package/.output/public/_nuxt/Th_o-5A0.js +0 -1
  206. package/.output/public/_nuxt/ZDrzZQNQ.js +0 -1
  207. package/.output/public/_nuxt/builds/meta/5680cb77-cc14-4e94-a235-c54fb463e1ca.json +0 -1
  208. package/.output/public/_nuxt/entry.CNXXuHFL.css +0 -1
  209. package/.output/public/_nuxt/fkIyRXiG.js +0 -1
  210. package/.output/public/_nuxt/nZnnkbcv.js +0 -3
  211. package/.output/public/_nuxt/s75xJ0Ts.js +0 -10
  212. package/.output/server/chunks/_/native-backup-jobs.mjs.map +0 -1
  213. package/.output/server/chunks/_/native-backup.mjs.map +0 -1
  214. package/.output/server/node_modules/ag-grid-community/dist/package/main.esm.mjs +0 -50065
  215. package/.output/server/node_modules/ag-grid-community/package.json +0 -113
@@ -0,0 +1,28 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CrwM3gOU.js","./D7uoAo-G.js","./entry.D1DMaixs.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 X,d as ee,co as Jn,Z as Zn,ak as Xn,k as P,o as g,w as h,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 k,bG as ls,$ as qe,j as je,m as v,n as re,f,bH as is,cg as zt,e as F,z as O,l as j,bL as Mt,bR as Lt,bM as It,bN as At,A as ve,bO as us,t as D,bQ as yn,a4 as Me,bc as Pt,F as ne,s as he,a9 as ye,aa as be,a7 as xe,r as Q,i as dt,e9 as cs,ea as ds,eb as bn,ec as xn,ed as ms,be as wn,ee as ps,ef as fs,e1 as hs,e2 as vs,e3 as gs,eg as Je,d9 as ys,an as de,ao as ft,aJ as Ot,aL as Be,q as bs,aK as xs,a8 as Ue,as as ws,ar as We,cA as Cn,ae as ht,G as Cs,aj as vt,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 wt,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 js,K as Oe,E as Ws,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,cE as Xt,cD 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"./D7uoAo-G.js";import{_ as ma,u as pa}from"./BjpSpz5C.js";import{_ as fa}from"./Djh3G2Nf.js";import{_ as ha}from"./C80Zs8U0.js";import{_ as Ke}from"./BNnChlxR.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"./uHyBIwWw.js";import{b as wa,d as Ca,e as Sa}from"./Da1F0IxL.js";import{a as Tt,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"./BbzZxPNQ.js";import{M as ka}from"./CTYqoFvv.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"./CpkrwN3Q.js";import{_ as sn}from"./Bhm1GL_M.js";import{b as St,c as _t}from"./DitYzGT4.js";import{_ as Da}from"./XVZ0obUR.js";import{s as Ba}from"./DLIUYAz9.js";import{_ as gt}from"./DDQU7vSH.js";import{i as Va}from"./B41tp0B8.js";import{n as qa,i as Ka,j as Ha,k as Ua,l as ja,s as Wa,m as Qa,a as Ga,_ as zn}from"./BkqB6n0T.js";import{H as Ya}from"./C1TOiVRQ.js";import{r as Ja}from"./BN2mQ8OV.js";import{c as Za,a as Xa,m as eo}from"./C7A87LE3.js";import"./B5rxJs06.js";import"./LUfaevBS.js";import"./jJeqAxmP.js";import"./CB56S0b2.js";import"./vGkKA7iH.js";import"./nrlEwpIH.js";import"./2TwRWQjG.js";import"./BoPjUGS6.js";import"./BVmBXPoG.js";import"./CxZK-Vs6.js";import"./BG_B-fo0.js";import"./CYu-xp_f.js";import"./CSPqdI4x.js";import"./DRuCf0Sx.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 X.POSTGRES:return this.normalizePostgresError(e);case X.MYSQL:return this.normalizeMysqlError(e);case X.SQLITE3:return this.normalizeSqliteError(e);case X.MARIADB:return this.normalizeMysqlError(e);case X.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=ee({__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(),P(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:h(()=>[_e(l.$slots,"default",{modelValue:i(r)})]),_:3},16,["aria-checked","data-state"]))}}),so=no,ao=ee({__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(),P(i(so),ss(as({...n,...i(a)})),{default:h(()=>[_e(o.$slots,"default")]),_:3},16))}}),oo=ao;function Vt(t,e){t.dispatch(os(t.state,e))}function ro(t){return t===X.POSTGRES?"postgres-positional":t===X.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===X.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:b}=uo(e,n,m);Vt(t,[{from:y,to:b,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=ee({__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=k(()=>{const{class:l,...u}=n;return u}),o=ls(a,s),r=qe(_a,k(()=>"default"));return(l,u)=>(g(),P(i(oo),vn({"data-slot":"dropdown-menu-checkbox-item","data-size":i(r)},i(o),{class:i(je)("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:h(()=>[v("span",{class:re(i(je)("pointer-events-none absolute flex items-center justify-center",i(Ta)[i(r)]))},[f(i($a),null,{default:h(()=>[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:h(()=>[f(n,{src:"/logo.png",alt:"@unovue"})]),_:1}),v("div",go,[e[7]||(e[7]=v("h2",{class:"text-md font-normal text-foreground"},"Getting Started",-1)),v("ol",yo,[e[5]||(e[5]=v("li",null,[v("span",{class:"font-normal text-foreground"},"Write your query"),O(" in the editor. ")],-1)),e[6]||(e[6]=v("li",null,[v("span",{class:"font-normal text-foreground"},"Click inside your query"),O(" to select it. ")],-1)),v("li",null,[e[1]||(e[1]=O(" Click ")),e[2]||(e[2]=v("span",{class:"text-foreground font-normal"},"'Execute current'",-1)),e[3]||(e[3]=O(" or use shortcut ")),f(a,{class:"font-normal border rounded-md p-1 px-1.5 text-foreground"},{default:h(()=>e[0]||(e[0]=[O("⌘↵")])),_:1}),e[4]||(e[4]=O(" to run the query. "))])])])])}const xo=zt(ho,[["render",bo]]),wo={class:"font-medium text-foreground"},Co={class:"font-medium text-foreground"},So=ee({__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(),P(i(Mt),{key:0,open:o.open,"onUpdate:open":r[0]||(r[0]=u=>!u&&a())},{default:h(()=>[f(i(Lt),{class:"max-w-md"},{default:h(()=>[f(i(It),null,{default:h(()=>[f(i(At),{class:"flex items-center gap-2"},{default:h(()=>[f(l,{name:"hugeicons:alert-02",class:"size-5 text-amber-500"}),r[1]||(r[1]=O(" Confirm query execution "))]),_:1}),f(i(us),null,{default:h(()=>[r[2]||(r[2]=O(" This query will execute on ")),v("span",wo,D(o.targetConnectionName),1),r[3]||(r[3]=O(" . The current connection is ")),v("span",Co,D(o.currentConnectionName),1),r[4]||(r[4]=O(" . Make sure before executing. "))]),_:1})]),_:1}),f(i(yn),null,{default:h(()=>[f(i(Me),{variant:"outline",onClick:a},{default:h(()=>r[5]||(r[5]=[O("Cancel")])),_:1}),f(i(Me),{class:"gap-1",onClick:s},{default:h(()=>[f(l,{name:"lucide:play",class:"size-4"}),r[6]||(r[6]=O(" Execute "))]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])):j("",!0)}}}),_o={key:1,class:"text-xs text-muted-foreground ml-2"},Eo=ee({__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,b=xa,x=ya,N=Nn,E=Rn;return g(),P(E,{"onUpdate:open":a},{default:h(()=>[f(l,{"as-child":""},{default:h(()=>[_e(o.$slots,"default")]),_:3}),f(N,{class:"min-w-56",onCloseAutoFocus:r[0]||(r[0]=Pt(()=>{},["prevent"]))},{default:h(()=>[(g(!0),F(ne,null,he(o.contextMenuItems,($,H)=>(g(),F(ne,{key:H},[$.type===i(oe).LABEL&&s($.condition)?(g(),P(u,{key:0,class:"font-medium text-xs text-muted-foreground"},{default:h(()=>[O(D($.title),1)]),_:2},1024)):$.type===i(oe).ACTION&&s($.condition)?(g(),P(c,{key:1,onSelect:$.select,disabled:$.disabled},{default:h(()=>[$.icon?(g(),P(d,{key:0,name:$.icon,class:"size-4! min-w-4 text-muted-foreground"},null,8,["name"])):j("",!0),O(" "+D($.title)+" ",1),$.shortcut?(g(),P(p,{key:1},{default:h(()=>[O(D($.shortcut),1)]),_:2},1024)):j("",!0)]),_:2},1032,["onSelect","disabled"])):$.type===i(oe).SEPARATOR&&s($.condition)?(g(),P(m,{key:2})):$.type===i(oe).SUBMENU&&s($.condition)?(g(),P(x,{key:3,disabled:!$.items||$.items.length===0},{default:h(()=>[f(y,null,{default:h(()=>[$.icon?(g(),P(d,{key:0,name:$.icon,class:"size-4! min-w-4 text-muted-foreground mr-2"},null,8,["name"])):j("",!0),O(" "+D($.title)+" ",1),$.desc?(g(),F("span",_o,D($.desc),1)):j("",!0)]),_:2},1024),f(b,{class:re("min-w-52")},{default:h(()=>[(g(!0),F(ne,null,he($.items,(w,C)=>(g(),F(ne,{key:C},[w.type===i(oe).ACTION&&s(w.condition)?(g(),P(c,{key:0,onSelect:w.select},{default:h(()=>[w.icon?(g(),P(d,{key:0,name:w.icon,class:"size-4! min-w-4 text-muted-foreground"},null,8,["name"])):j("",!0),O(" "+D(w.title)+" ",1),w.shortcut?(g(),P(p,{key:1},{default:h(()=>[O(D(w.shortcut),1)]),_:2},1024)):j("",!0)]),_:2},1032,["onSelect"])):w.type===i(oe).LABEL&&s(w.condition)?(g(),P(u,{key:1,class:"font-medium text-xs text-muted-foreground"},{default:h(()=>[O(D(w.title),1)]),_:2},1024)):w.type===i(oe).SEPARATOR&&s(w.condition)?(g(),P(m,{key:2})):j("",!0)],64))),128))]),_:2},1024)]),_:2},1032,["disabled"])):j("",!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=Me,a=Ca,o=ye,r=be,l=Sa,u=wa,d=xe;return g(),P(d,null,{default:h(()=>[f(u,null,{default:h(()=>[f(o,{"as-child":""},{default:h(()=>[f(a,{"as-child":""},{default:h(()=>[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:h(()=>[f(n,{name:"hugeicons:help-circle",class:"size-3.5!"})]),_:1})]),_:1})]),_:1}),f(r,null,{default:h(()=>e[0]||(e[0]=[v("p",null,"How to use query variables",-1)])),_:1}),f(l,{side:"top",align:"start",class:"w-[440px] p-4 text-xs"},{default:h(()=>[v("p",Ro,[f(n,{name:"hugeicons:help-circle",class:"size-4!"}),e[1]||(e[1]=O(" Passing variables in queries "))]),e[2]||(e[2]=v("p",{class:"mb-3 text-muted-foreground"},[O(" Use "),v("code",{class:"rounded bg-muted px-1"},":variable_name"),O(" syntax to bind parameters. For array operators, cast to the correct type: ")],-1)),e[3]||(e[3]=v("div",{class:"space-y-3"},[v("div",null,[v("p",{class:"mb-1 font-medium text-foreground"},[v("code",{class:"rounded bg-muted px-1"},"= ANY()")]),v("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[])`)]),v("div",null,[v("p",{class:"mb-1 font-medium text-foreground"},[v("code",{class:"rounded bg-muted px-1"},"IN()")]),v("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)`)]),v("div",null,[v("p",{class:"mb-1 font-medium text-foreground"},"Scalar variable"),v("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]=v("p",{class:"mt-3 border-t pt-2 text-muted-foreground"},[O(" Replace "),v("code",{class:"rounded bg-muted px-1"},"alias_type"),O(" with the actual PostgreSQL type, e.g. "),v("code",{class:"rounded bg-muted px-1"},"integer"),O(", "),v("code",{class:"rounded bg-muted px-1"},"uuid"),O(", "),v("code",{class:"rounded bg-muted px-1"},"text"),O(". ")],-1))]),_:1})]),_:1})]),_:1})}const No=zt(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=ee({__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=Q(!1);return(n,s)=>{const a=No,o=ve,r=Ke,l=Me;return g(),F("div",$o,[v("div",zo,[v("div",Mo," Ln "+D(n.cursorInfo.line)+", Col "+D(n.cursorInfo.column),1),n.isSupportVariable?(g(),P(a,{key:0})):j("",!0)]),n.isHaveOneExecute?(g(),F("div",Lo,[n.isStreaming?(g(),F("span",Io,[f(o,{name:"hugeicons:loading-03",class:"size-4! animate-spin"}),O(" Streaming... "+D(i(Tt)(n.streamingRowCount))+" rows ",1)])):n.executeLoading?(g(),F("span",Ao,[s[9]||(s[9]=O("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 "+D(i(et)(n.queryTime)),1)):(g(),F("span",Fo," Query success: "+D(i(Tt)(n.rawQueryResultsLength))+" rows in "+D(i(et)(n.queryTime)),1))]))])):j("",!0),v("div",Do,[n.isSupportFormat?(g(),P(i(xe),{key:0},{default:h(()=>[f(i(ye),null,{default:h(()=>[v("div",Bo,[f(l,{onClick:s[0]||(s[0]=u=>n.$emit("onFormatCurrentStatement")),variant:"outline",size:"xxs",class:"rounded-r-none"},{default:h(()=>[f(o,{name:"hugeicons:magic-wand-01"}),s[11]||(s[11]=O(" Format ")),f(r,null,{default:h(()=>s[10]||(s[10]=[O("⌘S")])),_:1})]),_:1}),f(i(en),null,{default:h(()=>[f(i(tn),{"as-child":""},{default:h(()=>[f(l,{variant:"outline",size:"iconSm",class:"rounded-l-none border-l-0 px-2"},{default:h(()=>[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:h(()=>[f(i(St),{class:"py-0"},{default:h(()=>s[12]||(s[12]=[O("Format Options ")])),_:1}),f(i(_t)),f(i(sn),{onClick:s[1]||(s[1]=u=>n.$emit("onFormatCurrentStatement")),class:"h-6 cursor-pointer"},{default:h(()=>[s[14]||(s[14]=O(" Current Statement ")),f(r,null,{default:h(()=>s[13]||(s[13]=[O("⌘S")])),_:1})]),_:1}),f(i(sn),{onClick:s[2]||(s[2]=u=>n.$emit("onFormatAll")),class:"h-6 cursor-pointer"},{default:h(()=>[s[16]||(s[16]=O(" All Statement ")),f(r,null,{default:h(()=>s[15]||(s[15]=[O("⇧⌥F")])),_:1})]),_:1})]),_:1})]),_:1})])]),_:1}),f(i(be),null,{default:h(()=>s[17]||(s[17]=[v("p",null,"Format current statement (⌘S)",-1)])),_:1})]),_:1})):j("",!0),n.isExplainSupported?(g(),P(i(xe),{key:1},{default:h(()=>[f(i(ye),null,{default:h(()=>[v("div",Vo,[f(l,{onClick:s[3]||(s[3]=u=>n.$emit("onExplainAnalyzeCurrent")),variant:"outline",size:"xxs",class:"rounded-r-none"},{default:h(()=>[f(o,{name:"hugeicons:analytics-up"}),s[19]||(s[19]=O(" Explain ")),f(r,null,{default:h(()=>s[18]||(s[18]=[O("⌘E")])),_:1})]),_:1}),f(i(en),{open:i(e),"onUpdate:open":s[6]||(s[6]=u=>dt(e)?e.value=u:null)},{default:h(()=>[f(i(tn),{"as-child":""},{default:h(()=>[f(l,{variant:"outline",size:"iconSm",class:"rounded-l-none border-l-0 px-2"},{default:h(()=>[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:h(()=>[f(i(St),{class:"py-0"},{default:h(()=>s[20]||(s[20]=[O("Explain Analyze Options")])),_:1}),f(i(_t)),(g(!0),F(ne,null,he(n.explainAnalyzeOptionItems,u=>(g(),P(i(fo),{key:u.key,"model-value":u.checked,onSelect:s[4]||(s[4]=Pt(()=>{},["prevent"])),"onUpdate:modelValue":d=>n.$emit("toggleExplainOption",u.key),class:"h-6 cursor-pointer"},{default:h(()=>[O(D(u.label),1)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128)),f(i(_t)),f(i(St),{class:"py-0"},{default:h(()=>s[21]||(s[21]=[O("Serialize")])),_:1}),f(i(za),{"model-value":n.serializeMode,"onUpdate:modelValue":s[5]||(s[5]=u=>n.$emit("update:serializeMode",u))},{default:h(()=>[f(i(Ct),{value:"NONE",class:"h-6 cursor-pointer"},{default:h(()=>s[22]||(s[22]=[O("None")])),_:1}),f(i(Ct),{value:"TEXT",class:"h-6 cursor-pointer"},{default:h(()=>s[23]||(s[23]=[O("Text")])),_:1}),f(i(Ct),{value:"BINARY",class:"h-6 cursor-pointer"},{default:h(()=>s[24]||(s[24]=[O("Binary")])),_:1})]),_:1},8,["model-value"])]),_:1})]),_:1},8,["open"])])]),_:1}),f(i(be),null,{default:h(()=>s[25]||(s[25]=[v("p",null,"Run Explain Analyze (⌘E) or open options",-1)])),_:1})]),_:1})):j("",!0),f(i(xe),null,{default:h(()=>[f(i(ye),{"as-child":""},{default:h(()=>[n.isStreaming||n.executeLoading?(g(),P(l,{key:0,onClick:s[7]||(s[7]=u=>n.$emit("onCancelQuery")),variant:"outline",size:"xxs"},{default:h(()=>[f(o,{name:"hugeicons:stop",class:"size-4! text-red-500"}),s[26]||(s[26]=O(" Cancel query "))]),_:1})):(g(),P(l,{key:1,onClick:s[8]||(s[8]=u=>n.$emit("onExecuteCurrent")),variant:"outline",size:"xxs"},{default:h(()=>[f(o,{name:"hugeicons:play"}),s[28]||(s[28]=O(" Execute current ")),f(r,null,{default:h(()=>s[27]||(s[27]=[O("⌘↵")])),_:1})]),_:1}))]),_:1}),f(i(be),null,{default:h(()=>[n.isStreaming||n.executeLoading?(g(),F("p",qo,"Cancel query")):(g(),F("p",Ko,"Execute Query (⌘↵)"))]),_:1})]),_:1})])])}}}),Mn=ee({__name:"VariableEditor",props:{fileVariables:{}},emits:["updateVariables"],setup(t,{emit:e}){const n=e,s=Q({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(),P(wn,{"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"},jo=ee({__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(),P(i(Mt),{class:"",open:!!a.open,"onUpdate:open":o[1]||(o[1]=r=>n("update:open",r))},{default:h(()=>[f(i(Lt),{class:"w-[60vw] h-[50vh] flex flex-col justify-between min-w-[60vw]"},{default:h(()=>[f(i(It),null,{default:h(()=>[f(i(At),null,{default:h(()=>o[2]||(o[2]=[O(" Add Variable "),v("a",{class:"underline",href:"https://www.w3schools.com/js/js_json_syntax.asp",target:"_blank"}," (JSON format)",-1)])),_:1})]),_:1}),v("div",Uo,[f(Mn,{onUpdateVariables:s,fileVariables:a.fileVariables},null,8,["fileVariables"])]),f(i(yn),{class:"mt-2"},{default:h(()=>[f(i(Me),{onClick:o[0]||(o[0]=r=>n("update:open",!1))},{default:h(()=>o[3]||(o[3]=[O(" Save ")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"]))}}),Wo=ee({__name:"RawQueryConfigModal",props:{open:{}},emits:["update:open"],setup(t,{emit:e}){const n=e;return(s,a)=>(g(),P(i(Mt),{class:"",open:!!s.open,"onUpdate:open":a[0]||(a[0]=o=>n("update:open",o))},{default:h(()=>[f(i(Lt),{class:"w-[50vw] h-[70vh] flex flex-col justify-between min-w-[50vw]"},{default:h(()=>[f(i(It),null,{default:h(()=>[f(i(At),null,{default:h(()=>a[1]||(a[1]=[O(" 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=ee({__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=Q(!1),n=Q(!1),s=Q(!1),a=()=>{e.value=!0},o=()=>{n.value=!0};return(r,l)=>{const u=ve,d=Ma,p=gs,c=vs,m=hs,y=Me;return g(),F(ne,null,[f(jo,{onUpdateVariables:l[0]||(l[0]=b=>r.$emit("update:updateFileVariables",b)),"file-variables":r.fileVariables,open:i(e),"onUpdate:open":l[1]||(l[1]=b=>dt(e)?e.value=b:null)},null,8,["file-variables","open"]),f(Wo,{open:i(n),"onUpdate:open":l[2]||(l[2]=b=>dt(n)?n.value=b:null)},null,8,["open"]),v("div",Qo,[v("div",null,[f(m,null,{default:h(()=>[f(c,{class:"gap-0!"},{default:h(()=>[f(p,null,{default:h(()=>[f(d,{class:"flex items-center gap-0.5"},{default:h(()=>{var b,x;return[f(u,{name:(b=r.currentFileInfo)==null?void 0:b.icon},null,8,["name"]),O(" "+D((x=r.currentFileInfo)==null?void 0:x.title),1)]}),_:1})]),_:1})]),_:1})]),_:1})]),v("div",Go,[r.isSupportVariable&&r.codeEditorLayout===i(Je).horizontal?(g(),P(i(xe),{key:0},{default:h(()=>[f(i(ye),{"as-child":""},{default:h(()=>[f(y,{onClick:a,variant:"outline",size:"xxs",class:"relative"},{default:h(()=>[i(s)?(g(),P(u,{key:0,name:"lucide:triangle-alert",class:"absolute -top-1 -right-1 text-red-400"})):j("",!0),f(u,{name:"hugeicons:absolute"}),l[5]||(l[5]=O(" Add variables "))]),_:1})]),_:1}),f(i(be),null,{default:h(()=>l[6]||(l[6]=[v("p",null,"Add variables",-1)])),_:1})]),_:1})):j("",!0),f(i(xe),null,{default:h(()=>[f(i(ye),{"as-child":""},{default:h(()=>[f(Da,{connectionId:r.selectedConnectionId,"onUpdate:connectionId":l[3]||(l[3]=b=>r.$emit("update:connectionId",b)),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:h(()=>[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(),P(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]=b=>r.$emit("update:redisDatabaseIndex",b))},null,8,["databases","database-index"])):j("",!0),f(i(xe),null,{default:h(()=>[f(i(ye),{"as-child":""},{default:h(()=>[f(y,{onClick:o,variant:"outline",size:"iconSm"},{default:h(()=>[f(u,{name:"hugeicons:dashboard-square-02"})]),_:1})]),_:1}),f(i(be),null,{default:h(()=>l[7]||(l[7]=[v("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=Q([]),r=k(()=>o.value.reduce((S,T)=>(S[~~T.id]=T)&&S,{})),l=k(()=>o.value.length),u=Q(null),d=Q(!1),p=Q({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),c=Q({splitter:null,timeoutId:null}),m=k(()=>({[`splitpanes splitpanes--${s.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":p.value.dragging})),y=()=>{document.addEventListener("mousemove",N,{passive:!1}),document.addEventListener("mouseup",E),"ontouchstart"in window&&(document.addEventListener("touchmove",N,{passive:!1}),document.addEventListener("touchend",E))},b=()=>{document.removeEventListener("mousemove",N,{passive:!1}),document.removeEventListener("mouseup",E),"ontouchstart"in window&&(document.removeEventListener("touchmove",N,{passive:!1}),document.removeEventListener("touchend",E))},x=(S,T)=>{const I=S.target.closest(".splitpanes__splitter");if(I){const{left:z,top:A}=I.getBoundingClientRect(),{clientX:_,clientY:q}="ontouchstart"in window&&S.touches?S.touches[0]:S;p.value.cursorOffset=s.horizontal?q-A:_-z}y(),p.value.mouseDown=!0,p.value.activeSplitter=T},N=S=>{p.value.mouseDown&&(S.preventDefault(),p.value.dragging=!0,requestAnimationFrame(()=>{R(C(S)),ae("resize",{event:S},!0)}))},E=S=>{p.value.dragging&&(window.getSelection().removeAllRanges(),ae("resized",{event:S},!0)),p.value.mouseDown=!1,p.value.activeSplitter=null,setTimeout(()=>{p.value.dragging=!1,b()},100)},$=(S,T)=>{"ontouchstart"in window&&(S.preventDefault(),c.value.splitter===T?(clearTimeout(c.value.timeoutId),c.value.timeoutId=null,H(S,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:S,index:T},!0)},H=(S,T)=>{if(ae("splitter-dblclick",{event:S,index:T},!0),s.maximizePanes){let I=0;o.value=o.value.map((z,A)=>(z.size=A===T?z.max:z.min,A!==T&&(I+=z.min),z)),o.value[T].size-=I,ae("pane-maximize",{event:S,index:T,pane:o.value[T]}),ae("resized",{event:S,index:T},!0)}},w=(S,T)=>{ae("pane-click",{event:S,index:r.value[T].index,pane:r.value[T]})},C=S=>{const T=u.value.getBoundingClientRect(),{clientX:I,clientY:z}="ontouchstart"in window&&S.touches?S.touches[0]:S;return{x:I-(s.horizontal?0:p.value.cursorOffset)-T.left,y:z-(s.horizontal?p.value.cursorOffset:0)-T.top}},M=S=>{S=S[s.horizontal?"y":"x"];const T=u.value[s.horizontal?"clientHeight":"clientWidth"];return s.rtl&&!s.horizontal&&(S=T-S),S*100/T},R=S=>{const T=p.value.activeSplitter;let I={prevPanesSize:B(T),nextPanesSize:U(T),prevReachedMinPanes:0,nextReachedMinPanes:0};const z=0+(s.pushOtherPanes?0:I.prevPanesSize),A=100-(s.pushOtherPanes?0:I.nextPanesSize),_=Math.max(Math.min(M(S),A),z);let q=[T,T+1],Y=o.value[q[0]]||null,te=o.value[q[1]]||null;const we=Y.max<100&&_>=Y.max+I.prevPanesSize,Pe=te.max<100&&_<=100-(te.max+U(T+1));if(we||Pe){we?(Y.size=Y.max,te.size=Math.max(100-Y.max-I.prevPanesSize-I.nextPanesSize,0)):(Y.size=Math.max(100-te.max-I.prevPanesSize-U(T+1),0),te.size=te.max);return}if(s.pushOtherPanes){const Fe=L(I,_);if(!Fe)return;({sums:I,panesToResize:q}=Fe),Y=o.value[q[0]]||null,te=o.value[q[1]]||null}Y!==null&&(Y.size=Math.min(Math.max(_-I.prevPanesSize-I.prevReachedMinPanes,Y.min),Y.max)),te!==null&&(te.size=Math.min(Math.max(100-_-I.nextPanesSize-I.nextReachedMinPanes,te.min),te.max))},L=(S,T)=>{const I=p.value.activeSplitter,z=[I,I+1];return T<S.prevPanesSize+o.value[z[0]].min&&(z[0]=W(I).index,S.prevReachedMinPanes=0,z[0]<I&&o.value.forEach((A,_)=>{_>z[0]&&_<=I&&(A.size=A.min,S.prevReachedMinPanes+=A.min)}),S.prevPanesSize=B(z[0]),z[0]===void 0)?(S.prevReachedMinPanes=0,o.value[0].size=o.value[0].min,o.value.forEach((A,_)=>{_>0&&_<=I&&(A.size=A.min,S.prevReachedMinPanes+=A.min)}),o.value[z[1]].size=100-S.prevReachedMinPanes-o.value[0].min-S.prevPanesSize-S.nextPanesSize,null):T>100-S.nextPanesSize-o.value[z[1]].min&&(z[1]=V(I).index,S.nextReachedMinPanes=0,z[1]>I+1&&o.value.forEach((A,_)=>{_>I&&_<z[1]&&(A.size=A.min,S.nextReachedMinPanes+=A.min)}),S.nextPanesSize=U(z[1]-1),z[1]===void 0)?(S.nextReachedMinPanes=0,o.value.forEach((A,_)=>{_<l.value-1&&_>=I+1&&(A.size=A.min,S.nextReachedMinPanes+=A.min)}),o.value[z[0]].size=100-S.prevPanesSize-U(z[0]-1),null):{sums:S,panesToResize:z}},B=S=>o.value.reduce((T,I,z)=>T+(z<S?I.size:0),0),U=S=>o.value.reduce((T,I,z)=>T+(z>S+1?I.size:0),0),W=S=>[...o.value].reverse().find(T=>T.index<S&&T.size>T.min)||{},V=S=>o.value.find(T=>T.index>S+1&&T.size>T.min)||{},K=()=>{var S;const T=Array.from(((S=u.value)==null?void 0:S.children)||[]);for(const I of T){const z=I.classList.contains("splitpanes__pane"),A=I.classList.contains("splitpanes__splitter");!z&&!A&&(I.remove(),console.warn("Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed."))}},Z=(S,T,I=!1)=>{const z=S-1,A=document.createElement("div");A.classList.add("splitpanes__splitter"),I||(A.onmousedown=_=>x(_,z),typeof window<"u"&&"ontouchstart"in window&&(A.ontouchstart=_=>x(_,z)),A.onclick=_=>$(_,z+1)),A.ondblclick=_=>H(_,z+1),T.parentNode.insertBefore(A,T)},ge=S=>{S.onmousedown=void 0,S.onclick=void 0,S.ondblclick=void 0,S.remove()},me=()=>{var S;const T=Array.from(((S=u.value)==null?void 0:S.children)||[]);for(const z of T)z.className.includes("splitpanes__splitter")&&ge(z);let I=0;for(const z of T)z.className.includes("splitpanes__pane")&&(!I&&s.firstSplitter?Z(I,z,!0):I&&Z(I,z),I++)},ke=({uid:S,...T})=>{const I=r.value[S];for(const[z,A]of Object.entries(T))I[z]=A},Ie=S=>{var T;let I=-1;Array.from(((T=u.value)==null?void 0:T.children)||[]).some(z=>(z.className.includes("splitpanes__pane")&&I++,z.isSameNode(S.el))),o.value.splice(I,0,{...S,index:I}),o.value.forEach((z,A)=>z.index=A),d.value&&We(()=>{me(),Ee({addedPane:o.value[I]}),ae("pane-add",{pane:o.value[I]})})},Ae=S=>{const T=o.value.findIndex(z=>z.id===S);o.value[T].el=null;const I=o.value.splice(T,1)[0];o.value.forEach((z,A)=>z.index=A),We(()=>{me(),ae("pane-remove",{pane:I}),Ee({removedPane:{...I}})})},Ee=(S={})=>{!S.addedPane&&!S.removedPane?ie():o.value.some(T=>T.givenSize!==null||T.min||T.max<100)?Ne(S):Ce(),d.value&&ae("resized")},Ce=()=>{const S=100/l.value;let T=0;const I=[],z=[];for(const A of o.value)A.size=Math.max(Math.min(S,A.max),A.min),T-=A.size,A.size>=A.max&&I.push(A.id),A.size<=A.min&&z.push(A.id);T>.1&&Te(T,I,z)},ie=()=>{let S=100;const T=[],I=[];let z=0;for(const _ of o.value)S-=_.size,_.givenSize!==null&&z++,_.size>=_.max&&T.push(_.id),_.size<=_.min&&I.push(_.id);let A=100;if(S>.1){for(const _ of o.value)_.givenSize===null&&(_.size=Math.max(Math.min(S/(l.value-z),_.max),_.min)),A-=_.size;A>.1&&Te(A,T,I)}},Ne=({addedPane:S,removedPane:T}={})=>{let I=100/l.value,z=0;const A=[],_=[];((S==null?void 0:S.givenSize)??null)!==null&&(I=(100-S.givenSize)/(l.value-1));for(const q of o.value)z-=q.size,q.size>=q.max&&A.push(q.id),q.size<=q.min&&_.push(q.id);if(!(Math.abs(z)<.1)){for(const q of o.value)(S==null?void 0:S.givenSize)!==null&&(S==null?void 0:S.id)===q.id||(q.size=Math.max(Math.min(I,q.max),q.min)),z-=q.size,q.size>=q.max&&A.push(q.id),q.size<=q.min&&_.push(q.id);z>.1&&Te(z,A,_)}},Te=(S,T,I)=>{let z;S>0?z=S/(l.value-T.length):z=S/(l.value-I.length),o.value.forEach((A,_)=>{if(S>0&&!T.includes(A.id)){const q=Math.max(Math.min(A.size+z,A.max),A.min),Y=q-A.size;S-=Y,A.size=q}else if(!I.includes(A.id)){const q=Math.max(Math.min(A.size+z,A.max),A.min),Y=q-A.size;S-=Y,A.size=q}}),Math.abs(S)>.1&&We(()=>{d.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},ae=(S,T=void 0,I=!1)=>{const z=(T==null?void 0:T.index)??p.value.activeSplitter??null;n(S,{...T,...z!==null&&{index:z},...I&&z!==null&&{prevPane:o.value[z-(s.firstSplitter?1:0)],nextPane:o.value[z+(s.firstSplitter?0:1)]},panes:o.value.map(A=>({min:A.min,max:A.max,size:A.size}))})};de(()=>s.firstSplitter,()=>me()),ft(()=>{K(),me(),Ee(),ae("ready"),d.value=!0}),Ot(()=>d.value=!1);const $e=()=>{var S;return ws("div",{ref:u,class:m.value},(S=a.default)==null?void 0:S.call(a))};return Be("panes",o),Be("indexedPanes",r),Be("horizontal",k(()=>s.horizontal)),Be("requestUpdate",ke),Be("onPaneAdd",Ie),Be("onPaneRemove",Ae),Be("onPaneClick",w),(S,T)=>(g(),P(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=k(()=>d.value[u]),c=Q(null),m=k(()=>{const N=isNaN(n.size)||n.size===void 0?0:parseFloat(n.size);return Math.max(Math.min(N,b.value),y.value)}),y=k(()=>{const N=parseFloat(n.minSize);return isNaN(N)?0:N}),b=k(()=>{const N=parseFloat(n.maxSize);return isNaN(N)?100:N}),x=k(()=>{var N;return`${o.value?"height":"width"}: ${(N=p.value)==null?void 0:N.size}%`});return de(()=>m.value,N=>s({uid:u,size:N})),de(()=>y.value,N=>s({uid:u,min:N})),de(()=>b.value,N=>s({uid:u,max:N})),ft(()=>{a({id:u,el:c.value,min:y.value,max:b.value,givenSize:n.size===void 0?null:m.value,size:m.value})}),Ot(()=>r(u)),(N,E)=>(g(),F("div",{ref_key:"paneEl",ref:c,class:"splitpanes__pane",onClick:E[0]||(E[0]=$=>i(l)($,N._.uid)),style:Ue(x.value)},[_e(N.$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=ee({__name:"RawQueryLayout",props:{layout:{},customLayout:{},showResultPanel:{type:Boolean}},setup(t){const e=t,n=Cn(),{editorLayoutSizes:s,editorLayoutInnerVariableSizes:a}=ht(n),o=C=>{s.value=[C[0].size,C[1].size]},r=C=>{a.value=[C[0].size,C[1].size]},l=k(()=>s.value[0]),u=k(()=>a.value[0]),d=k(()=>a.value[1]),p=k(()=>s.value[1]),c=k(()=>e.layout===Je.horizontalWithVariables||e.layout===Je.vertical),m=k(()=>e.layout===Je.horizontalWithVariables),y=k(()=>!!e.customLayout),b=k(()=>{var C;return((C=e.customLayout)==null?void 0:C.direction)==="vertical"}),x=k(()=>{var C,M;return((M=(C=e.customLayout)==null?void 0:C.innerSplit)==null?void 0:M.direction)==="vertical"}),N=C=>{var L,B,U,W,V;const M=(L=e.customLayout)==null?void 0:L.id;if(!M)return((U=(B=e.customLayout)==null?void 0:B.panels[C])==null?void 0:U.defaultSize)??50;const R=n.customLayoutSizes[M];return(R==null?void 0:R.panels[C])??((V=(W=e.customLayout)==null?void 0:W.panels[C])==null?void 0:V.defaultSize)??50},E=C=>{var L,B,U,W,V,K,Z;const M=(L=e.customLayout)==null?void 0:L.id;if(!M)return((W=(U=(B=e.customLayout)==null?void 0:B.innerSplit)==null?void 0:U.panels[C])==null?void 0:W.defaultSize)??50;const R=n.customLayoutSizes[M];return(R==null?void 0:R.innerPanels[C])??((Z=(K=(V=e.customLayout)==null?void 0:V.innerSplit)==null?void 0:K.panels[C])==null?void 0:Z.defaultSize)??50},$=C=>{var R;const M=(R=e.customLayout)==null?void 0:R.id;M&&n.updateCustomLayoutSizes(M,C.map(L=>L.size))},H=C=>{var L,B,U;const M=(L=e.customLayout)==null?void 0:L.id;if(!M)return;const R=((B=n.customLayoutSizes[M])==null?void 0:B.panels)??((U=e.customLayout)==null?void 0:U.panels.map(W=>W.defaultSize))??[];n.updateCustomLayoutSizes(M,R,C.map(W=>W.size))},w={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(C,M)=>(g(),F("div",Xo,[i(y)&&C.customLayout?(g(),P(i(nt),{key:0,class:"default-theme",horizontal:i(b),onResize:M[1]||(M[1]=R=>$(R.panes))},{default:h(()=>[(g(!0),F(ne,null,he(C.customLayout.panels,(R,L)=>(g(),F(ne,{key:L},[C.customLayout.innerSplit&&C.customLayout.innerSplit.panelIndex===L?(g(),P(i(Ve),{key:0,size:N(L),"min-size":R.minSize,"max-size":R.maxSize},{default:h(()=>[f(i(nt),{horizontal:i(x),class:"default-theme",onResize:M[0]||(M[0]=B=>H(B.panes))},{default:h(()=>[(g(!0),F(ne,null,he(C.customLayout.innerSplit.panels,(B,U)=>(g(),P(i(Ve),{key:`inner-${U}`,size:E(U),"min-size":B.minSize,"max-size":B.maxSize},{default:h(()=>[v("div",{class:re(w[B.slot])},[_e(C.$slots,B.slot)],2)]),_:2},1032,["size","min-size","max-size"]))),128))]),_:3},8,["horizontal"])]),_:2},1032,["size","min-size","max-size"])):(g(),P(i(Ve),{key:1,size:N(L),"min-size":R.minSize,"max-size":R.maxSize},{default:h(()=>[v("div",{class:re(w[R.slot])},[_e(C.$slots,R.slot)],2)]),_:2},1032,["size","min-size","max-size"]))],64))),128))]),_:3},8,["horizontal"])):(g(),P(i(nt),{key:1,onResize:M[3]||(M[3]=R=>o(R.panes)),class:"default-theme",horizontal:C.layout===i(Je).vertical},{default:h(()=>[f(i(Ve),{size:i(l)},{default:h(()=>[f(i(nt),{horizontal:i(m),onResize:M[2]||(M[2]=R=>i(c)?r(R.panes):null)},{default:h(()=>[f(i(Ve),{size:i(c)?i(u):100,"min-size":"30"},{default:h(()=>[v("div",er,[_e(C.$slots,"content")])]),_:3},8,["size"]),i(c)?(g(),P(i(Ve),{key:0,size:i(d),"min-size":"0","max-size":"70"},{default:h(()=>[v("div",tr,[_e(C.$slots,"variables")])]),_:3},8,["size"])):j("",!0)]),_:3},8,["horizontal"])]),_:3},8,["size"]),e.showResultPanel!==!1?(g(),P(i(Ve),{key:0,size:i(p),"min-size":"0","max-size":"80"},{default:h(()=>[v("div",nr,[_e(C.$slots,"result")])]),_:3},8,["size"])):j("",!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 yt(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 bt({tableReference:t,schemas:e,defaultSchemaName:n}){if(!(e!=null&&e.length))return;const s=yt(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=yt(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=yt(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=bt({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=yt(a),r=le(o[o.length-1]||a),l=e.get(r)||a,u=bt({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=>bt({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 w,C;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 M of n){const R=s(u,M);if(R){m={schemaName:M.name,tableName:R.tableName,tableInfo:R.tableInfo};break}}m&&o.set(d,m)}const b=((m==null?void 0:m.tableInfo.columns)||[]).find(M=>M.name===c),x=!!((w=m==null?void 0:m.tableInfo.primary_keys)!=null&&w.find(M=>M.column===c)),N=(C=m==null?void 0:m.tableInfo.foreign_keys)==null?void 0:C.find(M=>M.column===c),E=!!N,$=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,...b,aliasFieldName:$,queryFieldName:l.name,originalName:l.name,sourceColumnName:c,canMutate:!!b,isPrimaryKey:x,isForeignKey:E,foreignKey:N}})};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 wr(t,e){return(t||[]).map(n=>xr(n,e))}const Cr={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=ee({__name:"ResultTabErrorView",props:{activeTab:{}},emits:["onChangeView"],setup(t,{emit:e}){const n=t,s=c=>!!c.metadata.executeErrors,a=k(()=>{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=k(()=>{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=k(()=>{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=k(()=>{const c=n.activeTab.metadata.statementQuery;if(!c)return[];const m=a.value,y=[];if(m&&m>0){const b=m-1;let x=b;for(;x<c.length&&c[x]!==`
10
+ `&&c[x]!=="\r"&&c[x]!==" "&&c[x]!==" ";)x++;x<=b&&(x=Math.min(b+1,c.length)),y.push({start:b,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=k(()=>{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=k(()=>n.activeTab.metadata.statementQuery||"");return(c,m)=>{var x;const y=ve,b=gt;return g(),F("div",Cr,[s(c.activeTab)?(g(),F("div",Sr,[v("div",_r,[v("div",null,[v("div",Er,[f(y,{name:"hugeicons:alert-02",class:"size-4 text-red-500 mt-0.5"}),m[0]||(m[0]=v("div",{class:"font-medium text-red-600"},"Error Message",-1))]),v("span",Tr,D(o.value),1),r.value?(g(),F("div",Rr," Hint: "+D(r.value),1)):j("",!0)])]),v("div",kr,[m[1]||(m[1]=v("div",{class:"mb-2"},[v("span",{class:"font-normal text-sm text-muted-foreground flex items-center gap-1"}," View executed query : ")],-1)),v("div",Nr,[f(b,{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]=v("div",{class:"flex items-center justify-between mb-2"},[v("div",{class:"text-sm text-muted-foreground"},"Error Details:")],-1)),f(b,{code:d.value,language:"json"},null,8,["code"])])):j("",!0)])):j("",!0)])}}}),Mr=zt(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"},jr={class:"font-medium"},Wr={class:"pt-3 border-t"},Qr={key:0,class:"pt-3 border-t"},Gr={class:"flex flex-wrap gap-1"},Yr=ee({__name:"ResultTabInfoView",props:{activeTab:{}},setup(t){const e=t,n=typeof TextEncoder<"u"?new TextEncoder:null,s=k(()=>{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:Cs(l)}}catch{return{bytes:0,formatted:"N/A"}}});return(a,o)=>{var u,d,p,c;const r=ve,l=gt;return g(),F("div",Lr,[v("div",Ir,[v("div",Ar,[f(r,{name:"hugeicons:clock-01",class:"size-4 text-muted-foreground"}),o[0]||(o[0]=v("span",{class:"text-muted-foreground"},"Query Time:",-1)),v("span",Pr,D(i(et)(a.activeTab.metadata.queryTime)),1)]),v("div",Or,[f(r,{name:"hugeicons:summation-01",class:"size-4 text-muted-foreground"}),o[1]||(o[1]=v("span",{class:"text-muted-foreground"},"Rows:",-1)),v("span",Fr,D(i(Tt)(((u=a.activeTab.result)==null?void 0:u.length)||0)),1)]),v("div",Dr,[f(r,{name:"hugeicons:file-02",class:"size-4 text-muted-foreground"}),o[2]||(o[2]=v("span",{class:"text-muted-foreground"},"Result Size:",-1)),v("span",Br,D(s.value.formatted),1)]),v("div",Vr,[f(r,{name:"hugeicons:chart-column",class:"size-4 text-muted-foreground"}),o[3]||(o[3]=v("span",{class:"text-muted-foreground"},"Columns:",-1)),v("span",qr,D(((d=a.activeTab.metadata.fieldDefs)==null?void 0:d.length)||0),1)]),v("div",Kr,[f(r,{name:"hugeicons:calendar-03",class:"size-4 text-muted-foreground"}),o[4]||(o[4]=v("span",{class:"text-muted-foreground"},"Executed At:",-1)),v("span",Hr,D(((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]=v("span",{class:"text-muted-foreground"},"Connection:",-1)),v("span",jr,D(a.activeTab.metadata.connection.name||"Unknown"),1)])):j("",!0)]),v("div",Wr,[o[6]||(o[6]=v("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]=v("div",{class:"text-sm text-muted-foreground mb-2"},"Fields:",-1)),v("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"},D(m.name),1))),128))])])):j("",!0)])}}}),Jr={class:"h-full flex flex-col flex-1 overflow-hidden"},Zr=ee({__name:"ResultTabRawView",props:{formattedData:{},executeLoading:{type:Boolean},isStreaming:{type:Boolean}},setup(t){const e=t;return(n,s)=>{const a=vt;return g(),F("div",Jr,[e.formattedData.length===0&&!n.executeLoading&&!n.isStreaming?(g(),P(a,{key:0,title:"No Raw Data",desc:"The query returned no records to display as JSON."})):(g(),P(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 b=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(!b.ok){const $=await b.text();d==null||d($||`HTTP ${b.status}`);return}const x=(y=b.body)==null?void 0:y.getReader();if(!x){d==null||d("No readable stream available");return}const N=new TextDecoder;let E="";for(;;){const{done:$,value:H}=await x.read();if($)break;E+=N.decode(H,{stream:!0});const w=E.split(`
11
+ `);E=w.pop()||"";for(const C of w){const M=C.trim();if(M)try{const R=JSON.parse(M);switch(R.type){case"meta":r==null||r(R.fields,R.command);break;case"rows":c+=R.data.length,l==null||l(R.data,c);break;case"done":u==null||u(R.rowCount,R.queryTime);break;case"error":d==null||d(R.message,R.error);break}}catch{console.warn("[StreamingQuery] Malformed NDJSON line:",M)}}}if(E.trim())try{const $=JSON.parse(E.trim());$.type==="done"?u==null||u($.rowCount,$.queryTime):$.type==="error"&&(d==null||d($.message))}catch{}}catch(b){if(b.name==="AbortError")return;d==null||d(b.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:E,queryPrefix:$})=>{var W,V,K,Z,ge,me,ke,Ie,Ae,Ee,Ce,ie,Ne,Te,ae,$e,S,T,I,z,A;if(!E.length)return;const H=E[0];if(l&&!await l())return;c.isHaveOneExecute=!0,c.currentStatementQuery=H.text;let w=H.text,C={};try{C=JSON.parse(s.value||"{}")}catch(_){console.log("fileParameters error::",_)}let M="result";const R=((W=e.value)==null?void 0:W.type)===X.REDIS;$&&!R&&(w=`${$} ${w}`,$.startsWith("EXPLAIN")&&(M="explain")),a.value=[],u.value=[],d.value={},c.executeLoading=!0,c.isStreaming=!1,c.streamingRowCount=0,m&&(m(),m=null),p.value++;const L={id:_s(),metadata:{queryTime:0,statementQuery:w,executedAt:new Date,executeErrors:void 0,fieldDefs:void 0,connection:void 0},result:[],view:M,seqIndex:p.value};o.addResultTab(L),mo(t());const B=[];if(R){try{const _=Date.now(),q=await $fetch("/api/redis/workbench/execute",{method:"POST",body:{method:(V=e.value)==null?void 0:V.method,stringConnection:(K=e.value)==null?void 0:K.connectionString,host:(Z=e.value)==null?void 0:Z.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:(Ie=e.value)==null?void 0:Ie.database,databaseIndex:n==null?void 0:n.value,ssl:(Ae=e.value)==null?void 0:Ae.ssl,ssh:(Ee=e.value)==null?void 0:Ee.ssh,command:w}}),Y=el(q.result),te=Date.now()-_;a.value=Y.fields,L.metadata.fieldDefs=Y.fields,L.metadata.connection=e.value,L.metadata.command=((Ce=q.command)==null?void 0:Ce[0])||((ie=w.trim().split(/\s+/)[0])==null?void 0:ie.toUpperCase())||"REDIS",L.metadata.queryTime=te,L.metadata.rowCount=Y.rows.length,L.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(L.id,L)}catch(_){const q=((Ne=_==null?void 0:_.data)==null?void 0:Ne.message)||(_==null?void 0:_.message)||"Failed to execute Redis command.";c.executeLoading=!1,c.isStreaming=!1,c.executeErrors={message:q,data:(_==null?void 0:_.data)||{message:q}},L.metadata.executeErrors=c.executeErrors,L.view="error",o.refreshResultTab(L.id,L)}return}if($&&M==="explain"){try{const _=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:(S=e.value)==null?void 0:S.managedSqlite,query:w,params:C},onResponseError:({response:q})=>{var we,Pe;const Y=(we=q._data)==null?void 0:we.data,te=t();te&&Y&&an({editorView:te,originalSql:H.text,statementFrom:Number(H.from),fileParameters:C,errorDetail:Y,clientType:((Pe=e.value)==null?void 0:Pe.type)||X.POSTGRES,queryPrefix:$})}});a.value=_.fields,L.metadata.fieldDefs=_.fields,L.result=_.rows,L.metadata.queryTime=_.queryTime||0,L.metadata.connection=e.value,d.value=_,u.value=_.rows,c.executeErrors=void 0,c.queryTime=_.queryTime||0}catch(_){c.executeErrors=_.data,L.metadata.executeErrors=_.data,L.view="error"}c.executeLoading=!1,o.refreshResultTab(L.id,L);return}c.isStreaming=!0,c.executeLoading=!1;const{abort:U}=Xr({query:w,dbConnectionString:((T=e.value)==null?void 0:T.connectionString)||"",type:(I=e.value)==null?void 0:I.type,providerKind:(z=e.value)==null?void 0:z.providerKind,managedSqlite:(A=e.value)==null?void 0:A.managedSqlite,params:C,onMeta:(_,q)=>{a.value=_,L.metadata.fieldDefs=_,L.metadata.connection=e.value,L.metadata.command=q,o.refreshResultTab(L.id,L)},onRows:(_,q)=>{B.push(..._),c.streamingRowCount=q,L.result=B,L.metadata.rowCount=q,u.value=B,o.refreshResultTab(L.id,L)},onDone:(_,q)=>{c.executeLoading=!1,c.isStreaming=!1,c.queryTime=q,c.executeErrors=void 0,c.streamingRowCount=_,L.metadata.queryTime=q,L.metadata.rowCount=_,d.value={rows:L.result,fields:a.value,queryTime:q},o.refreshResultTab(L.id,L),m=null},onError:(_,q)=>{var we;const Y={message:_,data:q||{message:_}};c.executeLoading=!1,c.isStreaming=!1,c.executeErrors=Y,L.metadata.executeErrors=Y,L.view="error";const te=t();te&&q&&an({editorView:te,originalSql:H.text,statementFrom:Number(H.from),fileParameters:C,errorDetail:q,clientType:((we=e.value)==null?void 0:we.type)||X.POSTGRES}),o.refreshResultTab(L.id,L),m=null}});m=U};return{currentRawQueryResult:u,rawResponse:d,queryProcessState:c,executeCurrentStatement:y,onExecuteCurrent:()=>{const E=t();if(!E)return;const{currentStatements:$}=ct(E);y({currentStatements:$})},onExplainAnalyzeCurrent:()=>{const E=t();if(!E)return;const{currentStatements:$}=ct(E);y({currentStatements:$,queryPrefix:r()})},cancelStreamingQuery:()=>{m&&(m(),m=null,c.executeLoading=!1,c.isStreaming=!1)}}}function nl(){const t=Q({BUFFERS:!0,COSTS:!0,GENERIC_PLAN:!1,MEMORY:!1,SETTINGS:!0,SUMMARY:!0,TIMING:!0,VERBOSE:!0,WAL:!0}),e=Q("NONE"),n=r=>{t.value[r]=!t.value[r]},s=r=>{e.value=r};return{explainAnalyzeOptionItems:k(()=>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=Q(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 b=0;b<=m;b++){const x=c[b],N=t.value.get(x);N&&y.set(x,N)}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 Ze(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("./CrwM3gOU.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 Ze(),{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 Le(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)||Le(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)||Le(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===""&&Le(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:Rt(t,a,[],n)}function Rt(t,e,n,s,a){if(e.length===0){if(Le(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 Rt(d,r,[...n,u],s,t)}}else{if(Le(t))return Rt(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 kt(l.namespace,r,l.path,n)}else return kt(t,e,[],n);return s}function kt(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(Le(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(Le(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(...kt(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(Le(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(Le(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,b)=>{const{from:x,to:N,text:E}=m.state.doc.lineAt(y);let $=y,H=y;c===null&&(c=typeof n=="function"?n(m):Promise.resolve(n));const w=await c;for(;$>x&&/[\w.]/.test(E[$-x-1]??"");)$--;for(;H<N&&/[\w.]/.test(E[H-x]??"");)H++;if($===y&&b<0||H===y&&b>0)return null;const C=E.slice($-x,H-x).toLowerCase();if(!C||C.length===0)return null;const M=typeof e=="function"?e(m):e;let R=null;if(Ze(),!R&&a&&w[C]){Ze("keywordResult",C,w[C]);const L={keyword:C,info:w[C]};R={word:C,view:m,pos:y,tooltipType:"keyword",keywordData:L}}if(!R&&(o||r)&&M){const L=m.state.doc.toString(),B=await u.extractTableReferences(L),U=new Set(B.map(K=>K.toLowerCase())),W=Vn(M,U);let V=dn(W,C,{enableFuzzySearch:l});if(!V&&U.size===0&&(V=dn(M,C,{enableFuzzySearch:l})),V){Ze("namespaceResult (query-aware)",C,V,"tableRefs:",Array.from(U));const K={item:V,word:C,resolvedSchema:U.size>0?W:M};R={word:C,view:m,pos:y,tooltipType:"namespace",namespaceData:K}}else Ze("No namespace item found for:",C)}return R?{pos:$,end:H,above:!0,create(L){if(d){const W=d(C,L,y);if(W)return{dom:W}}let B=null;if(R.tooltipType==="keyword"&&R.keywordData)B=p.keyword?p.keyword(R.keywordData):hl(R.keywordData);else if(R.tooltipType==="namespace"&&R.namespaceData){const W=R.namespaceData,{semanticType:V}=W.item;V==="table"&&p.table?B=p.table(W):V==="column"&&p.column?B=p.column(W):(V==="database"||V==="schema"||V==="namespace")&&p.namespace?B=p.namespace(W):B=fl(W.item)}if(!B)return{dom:document.createElement("div")};const U=document.createElement("div");return U.className="cm-sql-hover-tooltip",U.innerHTML=B,{dom:U}}}: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(b=>typeof b=="string"?b:b.label);s+=y.map(b=>`<code>${b}</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}),b=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:b,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 wl(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 Cl(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),wl(t),Cl(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=bt({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}=ht(o),u=Q({line:1,column:1}),d=()=>{var K;return(K=t.value)==null?void 0:K.editorView},p=k(()=>{var K,Z,ge;return((K=l.value)==null?void 0:K.name)||((ge=(Z=r.value)==null?void 0:Z[0])==null?void 0:ge.name)}),c=k(()=>{var K;return((K=n==null?void 0:n.value)==null?void 0:K.type)===X.REDIS}),m=k(()=>!c.value),y=k(()=>{var K;return((K=n==null?void 0:n.value)==null?void 0:K.type)===X.POSTGRES}),b=k(()=>eo({schemas:r.value,defaultSchemaName:p.value,fileVariables:e.value})),x=new wt,N=new wt,E=new wt,$=()=>{var K,Z;return Ds({dialect:Zt((K=n==null?void 0:n.value)==null?void 0:K.type),upperCaseKeywords:!0,keywordCompletion:!((Z=n==null?void 0:n.value)!=null&&Z.type)||n.value.type===X.POSTGRES?qs:void 0,schema:b.value.schema,defaultSchema:b.value.defaultSchema})},H=()=>c.value?Fs():$(),w=()=>{var K;return c.value?[]:Zt((K=n==null?void 0:n.value)==null?void 0:K.type).language.data.of({autocomplete:M()})},C=()=>c.value?[]:_l({enableLinting:!1,enableGutterMarkers:!1,enableHover:!0,hoverConfig:{hoverTime:250,enableKeywords:!0,keywords:async()=>await Il(),enableTables:!1,enableColumns:!1,enableFuzzySearch:!1}}),M=()=>Ll({schemas:r.value,defaultSchemaName:p.value,fileVariables:e.value}),{onHandleFormatCurrentStatement:R,onHandleFormatCode:L}=Ja({getEditorView:()=>d()}),B=()=>{m.value&&R()},U=()=>{m.value&&L()},W=[po(s),gn.of([{key:"Mod-s",run:()=>(B(),!0),preventDefault:!0},{key:"Shift-Alt-f",run:()=>(U(),!0),preventDefault:!0},{key:"Mod-e",run:()=>(y.value&&a(),!0),preventDefault:!0},{key:"Mod-i",run:Ps},{key:"Tab",run:Os}]),x.of(H()),N.of(w()),Ms,Ls,...Is(),bn(),E.of(C()),As],V=()=>{var me;const K=d();if(!K)return;const Z=Bs((me=n==null?void 0:n.value)==null?void 0:me.type),ge=c.value?"line":"sql";K.dispatch({effects:[Vs.of({dialect:Z,isEnable:!c.value,statementMode:ge}),x.reconfigure(H()),N.reconfigure(w()),E.reconfigure(C())]})};return de(()=>{var K;return[(K=l.value)==null?void 0:K.name,r.value]},()=>{var K;(K=l.value)!=null&&K.name&&V()},{deep:!0,immediate:!0}),n&&de(()=>{var K;return(K=n.value)==null?void 0:K.type},()=>{V()}),de(()=>{var K;return(K=t.value)==null?void 0:K.editorView},K=>{K&&V()},{immediate:!0}),{extensions:W,sqlCompartment:x,cursorInfo:u,onHandleFormatCode:U,onHandleFormatCurrentStatement:B,reloadSqlCompartment:V}}function Pl({fileVariables:t,connection:e,redisDatabaseIndex:n,fieldDefs:s,beforeExecute:a}){const o=Q(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}),b=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:b.extensions,sqlCompartment:b.sqlCompartment,cursorInfo:b.cursorInfo,onHandleFormatCode:b.onHandleFormatCode,onHandleFormatCurrentStatement:b.onHandleFormatCurrentStatement,onExplainAnalyzeCurrent:y.onExplainAnalyzeCurrent,explainAnalyzeOptionItems:r,serializeMode:l,toggleExplainOption:u,setSerializeMode:d,reloadSqlCompartment:b.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 Et=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=Q(!1),n=Q(!1),s=()=>{const u=t.getEditorView();if(!u)return;const d=Et(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=Et(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:k(()=>{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=!!Et(d)}}}function Fl(){const{workspaceId:t,connectionId:e}=Hs(),n=En(),s=Us(),a=js(),o=s.getFileContentByIdSync(n.params.fileId),r=Q((o==null?void 0:o.contents)??""),l=Q(""),u=Q(""),d=Q([]),p=k(()=>{var w;return(w=s==null?void 0:s.flatNodes)==null?void 0:w.find(C=>C.id===n.params.fileId)});de(()=>{var w;return(w=p.value)==null?void 0:w.variables},w=>{l.value=w||""},{immediate:!0});const c=k(()=>a.getConnectionsByWorkspaceId(t.value)),m=k(()=>c.value.find(w=>w.id===e.value));de([()=>n.params.fileId,e],()=>{u.value=e.value},{immediate:!0});const y=k(()=>c.value.find(w=>w.id===u.value));return{fieldDefs:d,fileContents:r,fileVariables:l,currentFile:p,selectedConnectionId:u,updateSelectedConnection:w=>{u.value=w},updateFileContent:async w=>{var C;(C=p.value)!=null&&C.id&&(r.value=w,s.updateFileContent({contents:w,id:p.value.id}))},updateFileVariables:async w=>{var C;(C=p.value)!=null&&C.id&&(l.value=w,s.updateFile({id:p.value.id,variables:w}))},connection:y,currentOpenedConnection:m,connectionsByWsId:c,updateFileCursorPos:w=>{var C;(C=p.value)!=null&&C.id&&s.updateFile({id:p.value.id,cursorPos:w})},loadFileContent:async()=>{var C;const{contents:w}=await s.getFileContentById(n.params.fileId);r.value=w,l.value=((C=p.value)==null?void 0:C.variables)||""},isFromCache:o!==null}}const Dl=()=>{const t=Q(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 b=String(c);if(p.isForeignKey&&p.foreignKey){s({id:b,tableName:p.foreignKey.referenced_table,columnName:p.foreignKey.referenced_column,schemaName:p.foreignKey.referenced_table_schema});return}n({id:b,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=Q([]),s=k(()=>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 C;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=$n(x),E=(C=e.value[y])==null?void 0:C[m],{hasChanged:$,normalizedValue:H}=qa({fieldType:x,isObjectColumn:N,oldValue:E,newValue:p}),w=n.value.findIndex(M=>M.rowId===y&&M.fieldId===m);if(!$){w>=0&&(n.value=n.value.filter((M,R)=>R!==w));return}if(w>=0){const M=n.value.slice();M[w]={rowId:y,fieldId:m,newValue:H},n.value=M;return}n.value=[...n.value,{rowId:y,fieldId:m,newValue:H}]},r=()=>{n.value=[]},l=k(()=>n.value.length>0);return{editedCells:n,hasEditedCells:l,onCellValueChanged:o,clearEditedCells:r}},xt=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=xt(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 b=l.get(m);b||(b={table:y,rows:new Map},l.set(m,b));let x=b.rows.get(d.rowId);x||(x={},b.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 b={};for(const E of d.table.primaryKeyFields)b[E]=y[E];const{sql:x,noPkWarning:N}=Ia({schemaName:d.table.schemaName,tableName:d.table.tableName,pKeys:d.table.primaryKeyFields,pKeyValue:b,update:m,dbType:s});p.updates.push({pKeyValue:b,update:m}),p.sqlStatements.push(x),N&&(p.hasNoPkWarning=!0)}p.updates.length&&u.push(p)}return{groups:u,skipped:r}},Kl=({selectedRows:t,columns:e,dbType:n})=>{const s=xt(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=Q(!1),u=Q(!1),d=Q("update"),p=k(()=>{var R;return ql({editedCells:s.value,columns:e.value,rows:n.value,dbType:(R=t.value)==null?void 0:R.type})}),c=k(()=>p.value.groups),m=k(()=>c.value.flatMap(R=>R.sqlStatements).join(`
23
+ `)),y=k(()=>c.value.some(R=>R.hasNoPkWarning)),b=k(()=>c.value.reduce((R,L)=>R+L.updates.length,0)),x=()=>{if(!s.value.length){Oe.info("No changes to save.");return}if(!c.value.length){Oe.warning("No safely updatable rows detected. Edits target columns that lack primary keys in the result.");return}d.value="update",l.value=!0},N=k(()=>{var R;return Kl({selectedRows:a.value,columns:e.value,dbType:(R=t.value)==null?void 0:R.type})}),E=k(()=>N.value.groups),$=k(()=>E.value.some(R=>R.hasNoPkWarning)),H=k(()=>E.value.reduce((R,L)=>R+L.pKeyValues.length,0)),w=()=>{if(!a.value.length){Oe.info("No rows selected for deletion.");return}if(!E.value.length){Oe.warning("Selected rows cannot be safely deleted — columns lack primary-key metadata.");return}d.value="delete",l.value=!0},C=()=>{l.value=!1},M=async()=>{var L;if(!t.value){Oe.error("No active connection.");return}u.value=!0;const R=Ws(t.value);try{if(d.value==="update"){const B=c.value.map(U=>$fetch("/api/tables/bulk-update",{method:"POST",body:{tableName:U.tableName,schemaName:U.schemaName,pKeys:U.pKeys,updates:U.updates,...R}}));await Promise.all(B),Oe.success(`Saved ${b.value} row${b.value===1?"":"s"} successfully.`),l.value=!1,o()}else{const B=E.value.map(U=>$fetch("/api/tables/bulk-delete",{method:"POST",body:{tableName:U.tableName,schemaName:U.schemaName,pKeys:U.pKeys,pKeyValues:U.pKeyValues,...R}}));await Promise.all(B),Oe.success(`Deleted ${H.value} row${H.value===1?"":"s"} successfully.`),l.value=!1,r()}}catch(B){const U=((L=B==null?void 0:B.data)==null?void 0:L.message)||(B==null?void 0:B.message)||"Unknown error while executing.";console.error("Raw query mutation failed:",B),Oe.error(U)}finally{u.value=!1}};return{isPreviewOpen:l,isMutating:u,pendingAction:d,previewGroups:c,previewSql:m,hasNoPkWarning:y,totalUpdateCount:b,skippedEdits:k(()=>p.value.skipped),requestSave:x,deleteGroups:E,deleteHasNoPkWarning:$,totalDeleteCount:H,requestDelete:w,cancelPreview:C,confirmAndExecute:M}},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))})},jl=(t,e)=>!t.tableName||!t.schemaName?!1:t.isForeignKey&&t.foreignKey?!0:Ul(t,e),Wl=10,Ql=({columns:t,rows:e,reservedTables:n,isEditingEnabled:s,dirtyTracker:a,onOpenRelationPreview:o})=>{if(!t.length)return[];const r=xt(t),l=e.slice(0,Wl),u=[Ka()];for(const d of t){const p=jl(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,b=x=>{const N=x.colDef.field??"";if(!N)return;const E=Number(x.node.id??x.node.rowIndex),$=c&&a.cells.some(w=>w.rowId===E&&w.fieldId===N),H={backgroundColor:"unset"};return $?(H.backgroundColor="var(--color-orange-200)",H):(x.value===null&&(H.color="var(--muted-foreground)"),H)};u.push({headerName:d.aliasFieldName,field:d.originalName,colId:d.originalName,filter:!0,resizable:!0,sortable:!0,type:"editableColumn",editable:y,cellStyle:b,cellEditorSelector:x=>{var $;const N=($=x.data)==null?void 0:$[d.originalName],E=d.short_type_name||d.type||"";if(Oa(E)||typeof N=="object"&&N!==null)return{component:"AgJsonCellEditor",popup:!0,popupPosition:"under"}},valueSetter:x=>{const N=d.short_type_name||d.type||"";return Wa({params:x,fieldId:d.originalName,isObjectColumn:$n(N),emptyAsNull:!0})},headerComponentParams:{innerHeaderComponent:ja,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 Qe{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 Qe{isMutation(){return["VACUUM","ANALYZE","REINDEX","CLUSTER"].includes(this.commandKey)?!0:super.isMutation()}}class Nt extends Qe{isMutation(){return this.commandKey==="OPTIMIZE"?!0:super.isMutation()}getMessage(e){return this.commandKey==="TRUNCATE"?"TRUNCATE successful.":super.getMessage(e)}}class Xl extends Nt{}class jn extends Qe{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 jn{}class mn extends Qe{}class ti extends Qe{getMessage(e){return this.commandKey==="MERGE"?`MERGE successful. ${this.rowCount} rows affected.`:super.getMessage(e)}}class ni extends Qe{getMessage(e){return this.commandKey==="TRUNCATE"?"TRUNCATE successful.":this.commandKey==="MERGE"?`MERGE successful. ${this.rowCount} rows affected.`:super.getMessage(e)}}const si={[X.POSTGRES]:Zl,[X.MARIADB]:Nt,[X.MYSQL]:Nt,[X.MYSQL2]:Xl,[X.REDIS]:mn,[X.SQLITE3]:jn,[X.SNOWFLAKE]:mn,[X.BETTER_SQLITE3]:ei,[X.MSSQL]:ti,[X.ORACLE]:ni},ai=(t,e=0,n=X.POSTGRES)=>{const s=si[n];if(!s)throw new Error(`Unsupported database client type: "${n}"`);return new s(t,e).build()},oi=ee({__name:"RawQueryContextMenu",props:{cellContextMenu:{},cellHeaderContextMenu:{},data:{},selectedRows:{},tableName:{},schemaName:{}},emits:["onClearContextMenu"],setup(t,{emit:e}){const n=e;return(s,a)=>(g(),P(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:h(()=>[_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=ee({__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=Me;return g(),F("div",ri,[v("div",li,[s.isEditingEnabled?(g(),F(ne,{key:0},[s.pendingCount>0?(g(),P(i(xe),{key:0},{default:h(()=>[f(i(ye),{"as-child":""},{default:h(()=>[f(r,{variant:"outline",size:"xxs",class:"relative overflow-visible font-normal",disabled:s.isMutating,onClick:a[0]||(a[0]=l=>n("save"))},{default:h(()=>[s.isMutating?(g(),P(o,{key:0,name:"lucide:loader-circle",class:"animate-spin"})):(g(),P(o,{key:1,name:"lucide:save"})),v("span",ii,D(s.pendingCount),1),f(i(Ke),null,{default:h(()=>a[3]||(a[3]=[O("⌘S")])),_:1})]),_:1},8,["disabled"])]),_:1}),f(i(be),null,{default:h(()=>[v("p",ui,[a[5]||(a[5]=O(" Preview & execute UPDATE statements ")),f(i(Ke),null,{default:h(()=>a[4]||(a[4]=[O("⌘S")])),_:1})])]),_:1})]),_:1})):j("",!0),s.pendingCount>0?(g(),P(i(xe),{key:1},{default:h(()=>[f(i(ye),{"as-child":""},{default:h(()=>[f(r,{variant:"outline",size:"xxs",class:"font-normal",disabled:s.isMutating,onClick:a[1]||(a[1]=l=>n("discard"))},{default:h(()=>[f(o,{name:"hugeicons:undo-02"}),a[6]||(a[6]=O(" Discard "))]),_:1},8,["disabled"])]),_:1}),f(i(be),null,{default:h(()=>a[7]||(a[7]=[v("p",null,"Discard pending edits",-1)])),_:1})]),_:1})):j("",!0),s.totalSelectedRows>0?(g(),P(i(xe),{key:2},{default:h(()=>[f(i(ye),{"as-child":""},{default:h(()=>[f(r,{variant:"outline",size:"xxs",disabled:s.isMutating,onClick:a[2]||(a[2]=l=>n("delete"))},{default:h(()=>[f(o,{name:"lucide:trash"}),f(i(Ke),null,{default:h(()=>a[8]||(a[8]=[O("⌥⌘⌫")])),_:1})]),_:1},8,["disabled"])]),_:1}),f(i(be),null,{default:h(()=>[v("p",ci,[O(" Delete "+D(s.totalSelectedRows)+" selected row"+D(s.totalSelectedRows===1?"":"s")+" ",1),f(i(Ke),null,{default:h(()=>a[9]||(a[9]=[O("⌥⌘⌫")])),_:1})])]),_:1})]),_:1})):j("",!0),s.totalSelectedRows>0?(g(),F("p",di," Selected ")):j("",!0),s.totalSelectedRows>0?(g(),F("p",mi,D(s.totalSelectedRows),1)):j("",!0)],64)):j("",!0)]),v("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]=v("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]=v("span",{class:"font-normal text-xs text-primary/60"},"Read-only",-1))],64))])])}}}),hi=ee({__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=k(()=>n.action==="delete"),o=k(()=>a.value?n.deleteHasNoPkWarning??!1:n.updateHasNoPkWarning??!1),r=k(()=>o.value?a.value?"High-Risk: Confirm Delete":"High-Risk: Confirm Save":a.value?"Confirm Delete":"Confirm Save"),l=k(()=>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=k(()=>a.value?"Delete":"Save"),d=k(()=>{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 b=ve;return g(),P(i(Qs),{open:m.open,"onUpdate:open":y[0]||(y[0]=x=>!x&&!m.isMutating&&s("cancel"))},{default:h(()=>[f(i(Gs),{size:"preview"},{default:h(()=>[f(i(Bt),{visible:!!m.isMutating},null,8,["visible"]),f(i(Ys),null,{default:h(()=>[f(i(Js),{class:re(["flex items-center gap-2 text-base font-medium",{"text-destructive":i(o)||i(a)}])},{default:h(()=>[i(o)||i(a)?(g(),P(b,{key:0,name:i(o)?"lucide:alert-triangle":"lucide:trash-2",class:re(["size-5",(i(o),"text-destructive")])},null,8,["name","class"])):j("",!0),O(" "+D(i(r)),1)]),_:1},8,["class"]),f(i(Zs),{class:re({"text-destructive font-normal":i(o)})},{default:h(()=>[O(D(i(l)),1)]),_:1},8,["class"])]),_:1}),f(i(gt),{code:i(d),language:"sql","show-copy-button":"","max-height":"24rem"},null,8,["code"]),f(i(Xs),null,{default:h(()=>[f(i(ea),{class:"border font-normal",onClick:c},{default:h(()=>y[1]||(y[1]=[O(" 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:h(()=>[f(b,{name:i(a)?"lucide:trash-2":"lucide:save",class:"size-4"},null,8,["name"]),O(" "+D(i(u)),1)]),_:1},8,["class"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),vi=ee({__name:"ResultTabResultView",props:{activeTab:{},activeTabColumns:{},formattedData:{},executeLoading:{type:Boolean},isStreaming:{type:Boolean}},setup(t){const e=t,n=Q(),s=Q(),a=Dt(),{reservedSchemas:o}=ht(a),r=Q([]),l=G=>{r.value=G},u=k(()=>{var G;return ai(e.activeTab.metadata.command||"",e.activeTab.metadata.rowCount||0,(G=e.activeTab.metadata.connection)==null?void 0:G.type)}),d=k(()=>u.value.isMutation),p=k(()=>u.value.message),c=k(()=>e.activeTabColumns.length>0),m=k(()=>e.activeTab.result.length===0&&!c.value&&!e.executeLoading&&!e.isStreaming),y=k(()=>{var se;const G=(se=e.activeTab.metadata.connection)==null?void 0:se.id;return G?o.value[G]||[]:[]}),b=k(()=>xt(e.activeTabColumns)),x=k(()=>{if(e.isStreaming)return!1;for(const[,G]of b.value)if(G.primaryKeyFields.length>0)return!0;return!1}),N=G=>G.map(se=>({...se})),E=G=>Ga(G),$=G=>G.map(se=>{const{[Ya]:Ye,...De}=se;return{...De}}),H=(...G)=>{const se=new Map;for(const Ye of G)for(const De of Ye)se.set(`${De.rowId}:${De.fieldId}`,De);return[...se.values()]},w=k(()=>e.activeTabColumns),C=k(()=>e.formattedData||[]),M=Q(N(C.value)),R=Q(E(M.value)),L=Q([]),{editedCells:B,onCellValueChanged:U,clearEditedCells:W}=Bl({columns:w,originalRows:M});function V(){var G,se;(se=(G=n.value)==null?void 0:G.gridApi)==null||se.refreshCells({force:!0})}const K=k(()=>H(L.value,B.value)),Z=()=>{R.value=E(M.value)},ge=()=>{B.value.slice().length&&(M.value=$(R.value),L.value=[],W())},me=()=>{W(),Z(),V()};de([C,()=>e.activeTab.id],([G])=>{M.value=N(G),L.value=[],W(),Z()});const ke={cells:[]};de(K,G=>{ke.cells=G,V()},{immediate:!0});const Ie=k(()=>e.activeTab.metadata.connection),Ae=k(()=>r.value),{isPreviewOpen:Ee,isMutating:Ce,pendingAction:ie,previewGroups:Ne,hasNoPkWarning:Te,totalUpdateCount:ae,requestSave:$e,deleteGroups:S,deleteHasNoPkWarning:T,totalDeleteCount:I,requestDelete:z,cancelPreview:A,confirmAndExecute:_}=Hl({connection:Ie,columns:w,rows:M,editedCells:B,selectedRows:Ae,onSaved:ge,onDeleted:()=>{r.value=[]}}),{relationRoot:q,previewRelationBreadcrumbs:Y,openRelationPreview:te,clearRelationPreview:we,onOpenBackReferencedTableModal:Pe,onOpenForwardReferencedTableModal:Fe,onUpdateSelectedTabInBreadcrumb:Ge,onBackPreviousBreadcrumb:J,onBackPreviousBreadcrumbByIndex:pe}=Dl(),ze=k(()=>Ql({columns:e.activeTabColumns,rows:M.value,reservedTables:y.value,isEditingEnabled:x.value,dirtyTracker:ke,onOpenRelationPreview:te}));return Tn([{key:"meta+s",callback:()=>{!x.value||Ce.value||$e()},isPreventDefault:!0},{key:"meta+alt+backspace",callback:()=>{!x.value||Ce.value||z()},isPreventDefault:!0}],{target:s}),(G,se)=>{var Ut,jt,Wt,Qt;const Ye=vt,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(),P(Fa,{key:0,open:i(Y).length>0,breadcrumbs:i(Y),currentTableName:i(q).tableName,connectionId:((Ut=G.activeTab.metadata.connection)==null?void 0:Ut.id)||"",workspaceId:((jt=G.activeTab.metadata.connection)==null?void 0:jt.workspaceId)||"",rootSchemaName:i(q).schemaName,onClearBreadcrumb:i(we),onOnOpenBackReferencedTableModal:i(Pe),onOnOpenForwardReferencedTableModal:i(Fe),onOnUpdateSelectedTabInBreadcrumb:i(Ge),onOnBackPreviousBreadcrumb:i(J),onOnBackPreviousBreadcrumbByIndex:i(pe)},null,8,["open","breadcrumbs","currentTableName","connectionId","workspaceId","rootSchemaName","onClearBreadcrumb","onOnOpenBackReferencedTableModal","onOnOpenForwardReferencedTableModal","onOnUpdateSelectedTabInBreadcrumb","onOnBackPreviousBreadcrumb","onOnBackPreviousBreadcrumbByIndex"])):j("",!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(S),"total-deletes":i(I),"delete-has-no-pk-warning":i(T),"is-mutating":i(Ce),onConfirm:i(_),onCancel:i(A)},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"]),G.activeTab.result.length===0&&i(d)&&!G.executeLoading&&!G.isStreaming?(g(),P(Ye,{key:1,desc:i(p),hiddenIcon:"",class:"h-full"},null,8,["desc"])):i(m)?(g(),P(Ye,{key:2,title:"No Results",desc:"The query returned no records.",class:"h-full"})):(g(),F(ne,{key:3},[i(R).length?(g(),P(fi,{key:0,"pending-count":i(B).length,"is-mutating":i(Ce),"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"])):j("",!0),f(oi,{data:G.formattedData||[],selectedRows:i(r),cellContextMenu:(Wt=i(n))==null?void 0:Wt.cellContextMenu,cellHeaderContextMenu:(Qt=i(n))==null?void 0:Qt.cellHeaderContextMenu,onOnClearContextMenu:se[0]||(se[0]=Zu=>{var Gt;return(Gt=i(n))==null?void 0:Gt.clearCellContextMenu()}),class:"flex-1 min-h-0"},{default:h(()=>[f(De,{ref_key:"rawQueryTableRef",ref:n,"column-defs":i(ze),"row-data":i(R),"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(U)},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"},wi={class:"flex flex-col gap-1 max-w-[250px] sm:max-w-xs"},Ci={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=ee({__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,b=Me;return g(),F("div",yi,[v("div",bi,[f(r,{name:"hugeicons:analytics-up",class:"size-4 text-muted-foreground"}),o[6]||(o[6]=v("span",{class:"text-sm font-medium"},"Execution Plan",-1)),v("div",xi,[a.summaryStats.executionTime!==void 0?(g(),P(l,{key:0,variant:"outline",class:"text-[11px] h-5 gap-1"},{default:h(()=>[f(r,{name:"hugeicons:clock-01",class:"size-3"}),O(" "+D(i(et)(a.summaryStats.executionTime)),1)]),_:1})):j("",!0),a.summaryStats.planningTime!==void 0?(g(),P(l,{key:1,variant:"outline",class:"text-[11px] h-5 gap-1"},{default:h(()=>[O(" Planning: "+D(i(et)(a.summaryStats.planningTime)),1)]),_:1})):j("",!0),a.summaryStats.nodeCount>0?(g(),P(p,{key:2},{default:h(()=>{var x;return[f(u,{"as-child":""},{default:h(()=>[f(l,{variant:"outline",class:"text-[11px] h-5 gap-1 cursor-help"},{default:h(()=>[O(D(a.summaryStats.nodeCount)+" nodes ",1)]),_:1})]),_:1}),(x=a.summaryStats.allNodes)!=null&&x.length?(g(),P(d,{key:0},{default:h(()=>[v("div",wi,[o[2]||(o[2]=v("span",{class:"font-medium text-xs"},"Nodes:",-1)),v("ul",Ci,[(g(!0),F(ne,null,he(a.summaryStats.allNodes,N=>(g(),F("li",{key:N.id},D(N.label),1))),128))])])]),_:1})):j("",!0)]}),_:1})):(g(),P(l,{key:3,variant:"outline",class:"text-[11px] h-5 gap-1"},{default:h(()=>o[3]||(o[3]=[O(" 0 nodes ")])),_:1})),a.summaryStats.expensiveCount>0?(g(),P(p,{key:4},{default:h(()=>{var x;return[f(u,{"as-child":""},{default:h(()=>[f(l,{variant:"outline",class:"text-[11px] h-5 gap-1 border-amber-300 text-amber-700 dark:text-amber-400 cursor-help"},{default:h(()=>[O(D(a.summaryStats.expensiveCount)+" expensive ",1)]),_:1})]),_:1}),(x=a.summaryStats.expensiveNodes)!=null&&x.length?(g(),P(d,{key:0},{default:h(()=>[v("div",Si,[o[4]||(o[4]=v("span",{class:"font-medium text-xs"},"Expensive Nodes:",-1)),v("ul",_i,[(g(!0),F(ne,null,he(a.summaryStats.expensiveNodes,N=>(g(),F("li",{key:N.id},D(N.label),1))),128))])])]),_:1})):j("",!0)]}),_:1})):j("",!0),a.summaryStats.slowCount>0?(g(),P(p,{key:5},{default:h(()=>{var x;return[f(u,{"as-child":""},{default:h(()=>[f(l,{variant:"outline",class:"text-[11px] h-5 gap-1 border-red-300 text-red-700 dark:text-red-400 cursor-help"},{default:h(()=>[O(D(a.summaryStats.slowCount)+" slowest ",1)]),_:1})]),_:1}),(x=a.summaryStats.slowNodes)!=null&&x.length?(g(),P(d,{key:0},{default:h(()=>[v("div",Ei,[o[5]||(o[5]=v("span",{class:"font-medium text-xs"},"Slowest Node(s):",-1)),v("ul",Ti,[(g(!0),F(ne,null,he(a.summaryStats.slowNodes,N=>(g(),F("li",{key:N.id},D(N.label),1))),128))])])]),_:1})):j("",!0)]}),_:1})):j("",!0)])]),v("div",Ri,[f(y,{modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=x=>s.value=x),class:"gap-0"},{default:h(()=>[f(m,{size:"xxs"},{default:h(()=>[(g(!0),F(ne,null,he(i(gi),x=>(g(),P(c,{size:"xxs",key:x.value,value:x.value,class:"rounded-sm cursor-pointer"},{default:h(()=>[f(r,{name:x.icon,class:"size-3.5!"},null,8,["name"]),O(" "+D(x.label),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["modelValue"]),f(b,{variant:"outline",size:"iconSm",onClick:o[1]||(o[1]=x=>n("toggle-expand"))},{default:h(()=>[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=ee({__name:"ExplainOperationCell",props:{params:{}},setup(t){const e=t,n=k(()=>{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,D(i(n).treePrefix),1)):j("",!0),i(n).nodeType?(g(),F("span",zi,D(i(n).nodeType),1)):j("",!0),i(n).contextLabel?(g(),F("span",Mi,D(i(n).contextLabel),1)):j("",!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,N=a?`${a} `:"";return{label:x?`${N}on ${x}`.trim():`${N}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 b=fe(t.subplanName);if(b)return{label:`subplan: ${b}`,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=ee({__name:"ExplainGridPane",props:{nodes:{}},setup(t){const e=t,n=k(()=>Oi(e.nodes)),s=k(()=>Fi(n.value)),a=k(()=>[{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"},ji={key:1,class:"flex-1 overflow-auto relative"},Wi={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=ee({__name:"ExplainTimelineChartPane",props:{nodes:{},totalTime:{}},setup(t){const e=t,n=Q(null),s=k(()=>{const c=[...e.nodes].filter(y=>typeof y["Actual Startup Time"]=="number"&&typeof y["Actual Total Time"]=="number").map(y=>{const b=y["Actual Startup Time"]||0,x=y["Actual Total Time"]||0,N=Math.max(0,x-b);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:b,end:x,duration:N}}),m=(y,b)=>{for(let x=y+1;x<c.length;x+=1){const N=c[x].depth;if(N<b)return!1;if(N===b)return!0}return!1};return c.map((y,b)=>{const x=[];for(let N=1;N<y.depth;N+=1)m(b,N)&&x.push(N);return{...y,continuationLevels:x,hasNextSibling:y.depth>0?m(b,y.depth):!1}})}),a=k(()=>{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,b=c/y*100,x=Math.max(m/y*100,.5);return{left:`${b}%`,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,b=ye,x=be,N=xe;return g(),F("div",Vi,[v("div",qi,[v("div",Ki,[v("h3",Hi,[f(y,{name:"hugeicons:clock-01",class:"size-4"}),m[1]||(m[1]=O(" Execution Plan Timeline "))]),m[2]||(m[2]=v("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",ji,[v("div",Wi,[v("div",Qi,[m[7]||(m[7]=v("div",{class:"w-[28%] min-w-[190px] max-w-[260px] pl-2"}," Node Hierarchy ",-1)),v("div",Gi,[m[3]||(m[3]=v("div",{class:"absolute left-0"},"0ms",-1)),v("div",Yi,D(i(tt)(i(a))),1),m[4]||(m[4]=v("div",{class:"absolute left-1/4 border-l h-full"},null,-1)),m[5]||(m[5]=v("div",{class:"absolute left-1/2 border-l h-full"},null,-1)),m[6]||(m[6]=v("div",{class:"absolute left-3/4 border-l h-full"},null,-1))])]),v("div",Ji,[(g(!0),F(ne,null,he(i(s),E=>(g(),F("div",{key:E.id,class:re(["flex items-center group rounded transition-colors hover:bg-muted",i(n)===E.id?"bg-muted/40":""]),onMouseenter:$=>n.value=E.id,onMouseleave:m[0]||(m[0]=$=>n.value=null)},[v("div",Xi,[v("div",{class:"relative shrink-0 h-7",style:Ue({width:l(E.depth)})},[(g(!0),F(ne,null,he(E.continuationLevels,$=>(g(),F("div",{key:`${E.id}-v-${$}`,class:"absolute top-0 bottom-0 border-l border-dashed border-muted-foreground/35",style:Ue({left:u($)})},null,4))),128)),E.depth>0?(g(),F(ne,{key:0},[v("div",{class:"absolute top-0 border-l border-dashed border-muted-foreground/45",style:Ue({left:u(E.depth),height:E.hasNextSibling?"100%":"50%"})},null,4),v("div",{class:"absolute top-1/2 -translate-y-1/2 border-t border-dashed border-muted-foreground/45",style:Ue({left:u(E.depth),width:d})},null,4)],64)):j("",!0)],4),v("div",eu,[v("span",tu," #"+D(E.id.replace("ep-","")),1),v("div",nu,[v("span",{class:"truncate font-medium text-sm",title:E.nodeType},D(E.nodeType),9,su),E.relation?(g(),F("span",au,[O(D(E.relation)+" ",1),E.alias&&E.alias!==E.relation?(g(),F("span",ou,"("+D(E.alias)+")",1)):j("",!0)])):j("",!0)])])]),v("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(N,null,{default:h(()=>[f(b,{"as-child":""},{default:h(()=>[v("div",{class:re(["absolute top-1 bottom-1 rounded-sm transition-all shadow-sm opacity-90 cursor-default",[p(E.nodeType),i(n)===E.id?"brightness-105 ring-2 ring-border z-10":""]]),style:Ue(o(E.start,E.duration))},null,6)]),_:2},1024),f(x,{side:"top","side-offset":8,class:"max-w-[360px]"},{default:h(()=>{var $,H,w,C;return[v("div",lu,[v("div",iu,[f(y,{name:"hugeicons:flow-square",class:"size-3.5"}),O(" "+D(E.nodeType),1)]),v("div",uu,[m[8]||(m[8]=v("span",{class:"text-muted-foreground"},"Start",-1)),v("span",cu,D(i(tt)(E.start)),1),m[9]||(m[9]=v("span",{class:"text-muted-foreground"},"End",-1)),v("span",du,D(i(tt)(E.end)),1),m[10]||(m[10]=v("span",{class:"text-muted-foreground"},"Duration",-1)),v("span",mu,D(i(tt)(E.duration)),1),m[11]||(m[11]=v("span",{class:"text-muted-foreground"},"Share",-1)),v("span",pu,D(r(E.duration))+"%",1),m[12]||(m[12]=v("span",{class:"text-muted-foreground"},"Rows",-1)),v("span",fu,D((($=E.actualRows)==null?void 0:$.toLocaleString())??"-"),1),m[13]||(m[13]=v("span",{class:"text-muted-foreground"},"Plan Rows",-1)),v("span",hu,D(((H=E.planRows)==null?void 0:H.toLocaleString())??"-"),1),m[14]||(m[14]=v("span",{class:"text-muted-foreground"},"Loops",-1)),v("span",vu,D(((w=E.actualLoops)==null?void 0:w.toLocaleString())??"-"),1),m[15]||(m[15]=v("span",{class:"text-muted-foreground"},"Total Cost",-1)),v("span",gu,D(((C=E.totalCost)==null?void 0:C.toFixed(2))??"-"),1)]),E.relation?(g(),F("div",yu,[O(" Relation: "+D(E.relation)+" ",1),E.alias&&E.alias!==E.relation?(g(),F("span",bu,"("+D(E.alias)+")",1)):j("",!0)])):j("",!0)])]}),_:2},1024)]),_:2},1024)])],42,Zi))),128))])])]))])])}}}),wu={class:"h-full overflow-auto p-2"},Cu=ee({__name:"ExplainRawPane",props:{rawText:{}},setup(t){const e=t,n=k(()=>{const s=e.rawText.trim();return s.startsWith("{")||s.startsWith("[")?"json":"sql"});return(s,a)=>{const o=gt;return g(),F("div",wu,[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)},Wn=(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=>Wn(u,e+1,n))};return n.push(l),Eu(l,t),l},Ru=(t,e)=>{pt=0;const n=[],s=Wn(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:[]}},$t=t=>{if(!t)return null;if(typeof t=="string")try{return $t(JSON.parse(t))}catch{return null}return Array.isArray(t)?t.length?$t(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=$t(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=ee({__name:"ResultTabExplainView",props:{activeTab:{}},setup(t){const e=t,n=Q(ut.GRID),s=Q(!1),a=k(()=>Qn(e.activeTab.result,e.activeTab.metadata.fieldDefs)),o=k(()=>Nu(e.activeTab.result,e.activeTab.metadata.fieldDefs)),r=k(()=>$u(a.value)),l=k(()=>{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,b=Cu;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)})):j("",!0),v("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"]),v("div",{class:re(["flex-1 min-h-0",i(s)?"overflow-hidden":"overflow-y-auto"])},[i(r).root?i(n)===i(ut).GRID?(g(),P(m,{key:1,nodes:i(r).allNodes},null,8,["nodes"])):i(n)===i(ut).TIMELINE?(g(),P(y,{key:2,nodes:i(r).allNodes,"total-time":i(l).executionTime},null,8,["nodes","total-time"])):(g(),P(b,{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]=v("p",{class:"text-sm"},"Could not parse execution plan",-1))]))],2)],2)])}}}),Iu={key:0,class:"flex mt-7 [writing-mode:vertical-rl]"},Au=["onClick"],Pu={class:"h-full w-full flex flex-col min-w-0"},Ou={class:"flex items-end justify-between flex-shrink-0 w-full"},Fu={class:"flex items-end overflow-x-auto pt-0.5 flex-1 min-w-0 pr-4"},Du=["onClick","onContextmenu"],Bu={class:"truncate text-xs font-medium"},Vu=["onClick"],qu={class:"flex items-center gap-1.5 px-2 pb-1.5 flex-shrink-0"},Ku={class:"h-full w-full border rounded-md rounded-tl-none overflow-hidden"},Hu=ee({__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}=ht(s),o=e,r=Q(null),l=Q(!1),u=w=>{w.key==="Escape"&&l.value&&(l.value=!1)},d=k(()=>{if(!r.value)return!1;const w=Array.from(n.executedResults.keys()),C=w.indexOf(r.value);return C>=0&&C<w.length-1}),p=[{value:"result",label:"Result"},{value:"explain",label:"Explain"},{value:"raw",label:"Raw"},{value:"info",label:"Info"},{value:"error",label:"Errors"}],c=new Map,m=Xe([]);let y=null;const b=k(()=>n.activeTabId&&n.executedResults.get(n.activeTabId)||null);de(()=>{var w;return(w=b.value)==null?void 0:w.metadata.connection},async w=>{var C;if(w)try{(C=a.value[w.id])!=null&&C.length||await s.fetchSchemas({connectionId:w.id,workspaceId:w.workspaceId,connection:w}),await s.fetchReservedSchemas({connectionId:w.id,connection:w})}catch(M){console.error("[RawQueryResultTabs] Failed to load schema metadata",M)}},{immediate:!0});const x=k(()=>{var w;return((w=b.value)==null?void 0:w.view)||"result"}),N=k(()=>{var C,M;if(!((C=b.value)!=null&&C.metadata.fieldDefs))return[];const w=(M=b.value.metadata.connection)==null?void 0:M.id;return br({fieldDefs:b.value.metadata.fieldDefs,statementQuery:b.value.metadata.statementQuery,schemas:w?a.value[w]||[]:[],getTableInfoById:s.getTableInfoById})}),E=w=>{var B;const C=((B=w.result)==null?void 0:B.length)||0,M=`${w.id}_${C}`;if(c.has(M))return c.get(M);const R=w.metadata.fieldDefs||[],L=wr(w.result||[],R);c.set(M,L);for(const U of c.keys())U.startsWith(`${w.id}_`)&&U!==M&&c.delete(U);return L};de(b,w=>{y&&cancelAnimationFrame(y),y=requestAnimationFrame(()=>{m.value=w?E(w):[],y=null})},{immediate:!0}),ft(()=>{window.addEventListener("keydown",u)}),ia(()=>{window.removeEventListener("keydown",u),y&&cancelAnimationFrame(y)});const $=w=>{n.activeTabId&&o("update:view",n.activeTabId,w)},H=w=>!!w.metadata.executeErrors;return(w,C)=>{const M=ve,R=ye,L=be,B=xe,U=Bt,W=vt;return g(),F("div",{class:re(i(je)("h-full flex w-full bg-background transition-all duration-200",i(l)?"fixed inset-0 z-[999] pt-10 px-0 pb-0":""))},[i(b)?(g(),F("div",Iu,[(g(),F(ne,null,he(p,V=>v("div",{key:V.value,onClick:K=>H(i(b))&&(V.value==="result"||V.value==="raw")||V.value==="error"&&!H(i(b))?null:$(V.value),class:re(i(je)("border px-1 text-xs font-normal transition-colors",i(x)===V.value?"bg-muted border-transparent border-r-border":"border-transparent",V.value==="error"&&H(i(b))?"hover:bg-muted cursor-pointer":V.value==="explain"&&!i(b).metadata.statementQuery.startsWith("EXPLAIN")?null:"",V.value==="error"&&!H(i(b))?"opacity-40 cursor-not-allowed":"",(V.value==="result"||V.value==="raw")&&H(i(b))?"opacity-40 cursor-not-allowed":"",V.value==="explain"&&!i(b).metadata.statementQuery.startsWith("EXPLAIN")?"opacity-40 cursor-not-allowed":"",V.value==="error"&&!H(i(b))||(V.value==="result"||V.value==="raw")&&H(i(b))||V.value==="explain"&&!i(b).metadata.statementQuery.startsWith("EXPLAIN")?"":"hover:bg-muted cursor-pointer"))},D(V.label),11,Au)),64))])):j("",!0),v("div",Pu,[v("div",Ou,[v("div",Fu,[f(i(Rn),null,{default:h(()=>[f(i(kn),{class:"flex items-end"},{default:h(()=>[(g(!0),F(ne,null,he(w.executedResults,([V,K])=>(g(),P(B,{key:V},{default:h(()=>[f(R,{"as-child":""},{default:h(()=>[v("div",{onClick:Z=>w.$emit("update:activeTab",V),onContextmenu:Z=>r.value=V,class:re(i(je)("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",V===w.activeTabId?"border-b-transparent bg-background dark:bg-accent":"border-transparent bg-muted/30"))},[f(M,{name:H(K)?"hugeicons:alert-02":"hugeicons:sql",class:re(i(je)("min-w-4",H(K)?"text-red-500":""))},null,8,["name","class"]),v("div",Bu," Query "+D(K.seqIndex)+" - "+D(K.metadata.statementQuery),1),v("div",{onClick:Pt(Z=>w.$emit("close-tab",V),["stop"]),class:"hover:bg-accent h-5 w-5 flex items-center justify-center rounded-full opacity-0"},[f(M,{name:"lucide:x",class:"stroke-[2.5]! size-3!"})],8,Vu)],42,Du)]),_:2},1024),f(L,{class:"max-w-xl"},{default:h(()=>[v("p",null,D(K.metadata.statementQuery),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),i(r)?(g(),P(i(Nn),{key:0,hideWhenDetached:"",class:"w-56"},{default:h(()=>[f(i(ot),{onSelect:C[0]||(C[0]=V=>w.$emit("close-tab",i(r)))},{default:h(()=>C[5]||(C[5]=[O(" Close ")])),_:1}),f(i(ot),{onSelect:C[1]||(C[1]=V=>w.$emit("close-other-tabs",i(r)))},{default:h(()=>C[6]||(C[6]=[O(" Close Others ")])),_:1}),f(i(ot),{disabled:!i(d),onSelect:C[2]||(C[2]=V=>w.$emit("close-tabs-to-right",i(r)))},{default:h(()=>C[7]||(C[7]=[O(" Close to the Right ")])),_:1},8,["disabled"])]),_:1})):j("",!0)]),_:1})]),v("div",qu,[f(B,null,{default:h(()=>[f(R,{"as-child":""},{default:h(()=>[f(i(Me),{onClick:C[3]||(C[3]=V=>l.value=!i(l)),variant:i(l)?"secondary":"ghost",size:"icon",class:"size-5 rounded border border-border"},{default:h(()=>[f(M,{name:"hugeicons:full-screen",class:"size-3.5!"})]),_:1},8,["variant"])]),_:1}),f(L,{align:"end",side:"top"},{default:h(()=>[O(D(i(l)?"Zoom In (Restore Normal)":"Zoom Out (Full Screen)"),1)]),_:1})]),_:1})])]),v("div",Ku,[w.executeLoading&&w.activeTabId?(g(),P(U,{key:0,visible:""})):j("",!0),i(b)?i(b)&&i(x)==="result"?(g(),P(vi,{"active-tab":i(b),"active-tab-columns":i(N),"formatted-data":i(m),"execute-loading":w.executeLoading,"is-streaming":w.isStreaming,key:i(b).id},null,8,["active-tab","active-tab-columns","formatted-data","execute-loading","is-streaming"])):i(b)&&i(x)==="explain"?(g(),P(Lu,{key:3,"active-tab":i(b)},null,8,["active-tab"])):i(b)&&i(x)==="raw"?(g(),P(Zr,{key:4,"formatted-data":i(m),"execute-loading":w.executeLoading,"is-streaming":w.isStreaming},null,8,["formatted-data","execute-loading","is-streaming"])):i(b)&&i(x)==="info"?(g(),P(Yr,{key:5,"active-tab":i(b)},null,8,["active-tab"])):i(b)&&i(x)==="error"?(g(),P(Mr,{key:6,"active-tab":i(b),onOnChangeView:C[4]||(C[4]=V=>$(V))},null,8,["active-tab"])):j("",!0):(g(),P(W,{key:1,title:"No results",desc:"Execute a query to see results"}))])])],2)}}}),Uu={class:"flex flex-col h-full p-1"},ju={class:"flex flex-col h-full border rounded-md"},Wu={class:"h-full flex flex-col overflow-y-auto"},Qu={class:"flex flex-col h-full border rounded-md bg-muted"},Gu={class:"flex items-center gap-1 font-normal text-sm px-2 py-1"},Yu={class:"h-full flex flex-col overflow-y-auto"},Ju=ee({__name:"RawQuery",props:{isSupportVariable:{type:Boolean,default:!0}},setup(t){const e=t,n=En(),s=k(()=>{const J=n.params.workspaceId;return Array.isArray(J)?J[0]??"":J??""}),a=Cn(),o=ua(),r=Fl(),{connection:l,currentFile:u,currentOpenedConnection:d,fileContents:p,fileVariables:c,selectedConnectionId:m,updateSelectedConnection:y,updateFileContent:b,updateFileVariables:x,connectionsByWsId:N,fieldDefs:E}=r,$=k(()=>{var J;return((J=l.value)==null?void 0:J.type)===X.REDIS}),H=k(()=>!$.value),w=k(()=>{var J;return[X.SQLITE3,X.BETTER_SQLITE3].includes((J=l.value)==null?void 0:J.type)}),C=k(()=>e.isSupportVariable&&!$.value&&!w.value),M=k(()=>{var J;return((J=l.value)==null?void 0:J.type)===X.POSTGRES}),R=Q("");ca(()=>{R.value=C.value?c.value:""});const L=k(()=>$.value?l.value:void 0),B=pa({connection:L,mode:"meta"}),U=J=>{B.selectedDatabaseIndex.value=J},W=Pl({connection:l,redisDatabaseIndex:B.selectedDatabaseIndex,fieldDefs:E,fileVariables:R,beforeExecute:()=>Y()}),{cursorInfo:V,extensions:K,codeEditorRef:Z,onExecuteCurrent:ge,onHandleFormatCode:me,onHandleFormatCurrentStatement:ke,onExplainAnalyzeCurrent:Ie,explainAnalyzeOptionItems:Ae,serializeMode:Ee,currentRawQueryResult:Ce,queryProcessState:ie,executedResults:Ne,activeResultTabId:Te}=W,{contextMenuItems:ae,onContextMenuOpen:$e}=Ol({onExecuteCurrent:W.onExecuteCurrent,onExplainAnalyzeCurrent:W.onExplainAnalyzeCurrent,onHandleFormatCurrentStatement:W.onHandleFormatCurrentStatement,onHandleFormatCode:W.onHandleFormatCode,isSupportFormat:H,isExplainSupported:M,getEditorView:()=>{var J;return(J=Z.value)==null?void 0:J.editorView}}),S=Q(0),T=Q(!0),I=Q(!1),z=Q(""),A=Q("");let _=null;const q=k(()=>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):I.value?Promise.resolve(!1):(z.value=J.name,A.value=pe.name,I.value=!0,new Promise(ze=>{_=ze}))},te=()=>{I.value=!1,_==null||_(!0),_=null},we=()=>{I.value=!1,_==null||_(!1),_=null};Tn([{key:"mod+j",callback:()=>{T.value=!T.value}},{key:"ctrl+j",callback:()=>{T.value=!T.value}}]),de(R,()=>{W.reloadSqlCompartment()});const Pe=({column:J,from:pe,line:ze,to:G})=>{V.value={column:J,line:ze},r.updateFileCursorPos({from:pe,to:G})},Fe=(J=!0)=>{var G,se;if(!((G=u.value)!=null&&G.cursorPos)||!((se=Z.value)!=null&&se.editorView))return;const pe=u.value.cursorPos.from??0,ze=u.value.cursorPos.to||0;Z.value.setCursorPosition({from:pe,to:ze,allowScroll:J})},Ge=Q(!r.isFromCache);return ft(async()=>{Ge.value&&(await r.loadFileContent(),Ge.value=!1,await We()),Fe()}),da(async()=>{var J;await We(),Fe(!1),(J=Z.value)!=null&&J.editorView&&(Z.value.editorView.scrollDOM.scrollTop=S.value)}),Ot(()=>{_&&(_(!1),_=null)}),(J,pe)=>{const ze=ve,G=vt;return g(),F(ne,null,[f(So,{open:i(I),"target-connection-name":i(z),"current-connection-name":i(A),onConfirm:te,onCancel:we},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:h(()=>[v("div",Uu,[v("div",ju,[f(Zo,{"onUpdate:connectionId":i(y),connections:i(N),connection:i(l),"selected-connection-id":i(m),"disable-connection-switch":i(q),"is-redis-connection":i($),"redis-databases":i(B).databases.value,"redis-database-index":i(B).selectedDatabaseIndex.value,workspaceId:i(s),"file-variables":i(c),"code-editor-layout":i(a).codeEditorLayout,currentFileInfo:i(u),"is-support-variable":i(C),"onUpdate:redisDatabaseIndex":U,"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"]),v("div",Wu,[f(Eo,{"context-menu-items":i(ae),"onUpdate:open":i($e)},{default:h(()=>[i(Ge)?(g(),P(i(Bt),{key:0,visible:""})):(g(),P(wn,{key:1,"onUpdate:modelValue":i(b),"onUpdate:cursorInfo":Pe,"onUpdate:onScrollTop":pe[0]||(pe[0]=se=>S.value=se),modelValue:i(p),extensions:i(K),ref_key:"codeEditorRef",ref:Z},null,8,["onUpdate:modelValue","modelValue","extensions"]))]),_:1},8,["context-menu-items","onUpdate:open"])]),f(Ho,{"cursor-info":i(V),"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(Ce).length,"explain-analyze-option-items":i(Ae),"serialize-mode":i(Ee),"is-support-format":i(H),"is-support-variable":i(C),"is-explain-supported":i(M),onOnFormatCurrentStatement:i(ke),onOnFormatAll:i(me),onOnExplainAnalyzeCurrent:i(Ie),onToggleExplainOption:i(W).toggleExplainOption,"onUpdate:serializeMode":i(W).setSerializeMode,onOnExecuteCurrent:i(ge),onOnCancelQuery:i(W).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:h(()=>[v("div",Qu,[v("div",Gu,[f(ze,{name:"hugeicons:absolute"}),pe[1]||(pe[1]=O(" Variables "))]),v("div",Yu,[i(C)?(g(),P(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(),P(G,{key:0,title:"Variables not supported",desc:"Variables are not available for Redis and SQLite connections.",icon:"icons:ghost"}))])])]),result:h(()=>[i(Ne).size===0?(g(),P(xo,{key:0})):(g(),P(Hu,{key:1,"executed-results":i(Ne),"active-tab-id":i(Te),"execute-loading":i(ie).executeLoading,"is-streaming":i(ie).isStreaming,"onUpdate:activeTab":i(W).setActiveResultTab,onCloseTab:i(W).closeResultTab,onCloseOtherTabs:i(W).closeOtherResultTabs,onCloseTabsToRight:i(W).closeResultTabsToRight,"onUpdate:view":i(W).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)}}}),Ac=ee({__name:"[fileId]",setup(t){return(e,n)=>(g(),P(Ju))}});export{Ac as default};
@@ -0,0 +1,20 @@
1
+ const e=`---
2
+ version: '1.1.7'
3
+ date: '2026-05-26'
4
+ ---
5
+
6
+ # 🎉 v1.1.7 Changelog
7
+
8
+ ## 🚀 Key Features & Improvements
9
+
10
+ - **Fullscreen Result Views**: Added a zoom/fullscreen button to the raw query result tabs. Users can now expand query result grids to full-screen mode to analyze large datasets, and exit easily by pressing \`Escape\`.
11
+ - **Auto-Download Updates**: Added support to download application updates automatically in the background (configurable via a new toggle in Desktop Settings).
12
+ - **Native Tool Path Injection (macOS)**: Automatically injects typical terminal \`$PATH\` directories (Homebrew, \`/usr/local/bin\`, and \`Postgres.app\`) for packaged macOS apps to guarantee native backup tools (\`pg_dump\`, \`mysqldump\`, \`sqlite3\`) execute reliably.
13
+ - **Improved Backup & Restore UX**:
14
+ - Dynamically prompts for a save folder when backing up instead of requiring pre-selection.
15
+ - Aligned custom path input heights with select dropdowns and removed uppercase styling from labels.
16
+ - Added a **Check Again** scan button to immediately verify newly installed CLI backup tools.
17
+ - **Database Connection Enhancements**:
18
+ - Added arrow key and \`Enter\` keyboard navigation when choosing a database type.
19
+ - Wrapped connection credentials in standard HTML forms to allow submission by pressing \`Enter\`.
20
+ `;export{e as default};
@@ -0,0 +1 @@
1
+ import{d as r,T as m,c as p,e as c,k as a,g as o,f as l,m as u,o as e,A as _}from"./D7uoAo-G.js";import"./BNyWhB4W.js";import{_ as d}from"./BiSZmDoN.js";import"./BOVFFCPB.js";import"./CxZK-Vs6.js";import"./XVZ0obUR.js";import"./BG_B-fo0.js";import"./CYu-xp_f.js";import"./Da1F0IxL.js";import"./BoPjUGS6.js";import"./CSPqdI4x.js";import"./B5rxJs06.js";import"./DRuCf0Sx.js";import"./DDQU7vSH.js";import"./C1TOiVRQ.js";import"./2TwRWQjG.js";const f={class:"h-full"},x={key:0,class:"h-full p-4 flex flex-col items-center justify-center text-muted-foreground"},T=r({__name:"index",setup(k){const s=m(),t=p(()=>String(s.params.connectionId||""));return(g,n)=>{const i=_;return e(),c("div",f,[o(t)?(e(),a(o(d),{key:1,"source-connection-id":o(t)},null,8,["source-connection-id"])):(e(),c("div",x,[l(i,{name:"hugeicons:plug-socket",class:"size-12 mb-2 opacity-50"}),n[0]||(n[0]=u("p",{class:"text-sm"},"Select a connection to open Schema Diff",-1))]))])}}});export{T as default};
@@ -1 +1 @@
1
- /*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.ag-popup-editor{border-radius:calc(var(--radius) - 2px);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}.cellCenter .ag-cell-wrapper{justify-content:center}
1
+ /*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.ag-popup-editor{border-radius:calc(var(--radius) - 2px);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}.ag-cell-value{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ag-root-wrapper{border:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.cellCenter .ag-cell-wrapper{justify-content:center}.col-highlight-cell{background:var(--ag-selected-row-background-color)}
@@ -0,0 +1 @@
1
+ import{d as f,V as x,ak as P,r as D,al as S,bS as I,a5 as E,k as c,o as m,w as u,D as g,g as e,i as F,bG as b,am as M,p as _,W as R,X as A,ao as T,f as C,a6 as $,bE as N,ar as K,Y as j,c as h,aL as L,$ as W,j as U,Z as V}from"./D7uoAo-G.js";import{a as Y,b as Z,c as G,d as J}from"./CTYqoFvv.js";const[q,X]=E("DropdownMenuRoot");var H=f({__name:"DropdownMenuRoot",props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(d,{emit:i}){const t=d,p=i;x();const a=P(t,"open",p,{defaultValue:t.defaultOpen,passive:t.open===void 0}),o=D(),{modal:r,dir:s}=S(t),n=I(s);return X({open:a,onOpenChange:l=>{a.value=l},onOpenToggle:()=>{a.value=!a.value},triggerId:"",triggerElement:o,contentId:"",modal:r,dir:n}),(l,w)=>(m(),c(e(Y),{open:e(a),"onUpdate:open":w[0]||(w[0]=y=>F(a)?a.value=y:null),dir:e(n),modal:e(r)},{default:u(()=>[g(l.$slots,"default",{open:e(a)})]),_:3},8,["open","dir","modal"]))}}),Q=H,ee=f({__name:"DropdownMenuContent",props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","closeAutoFocus"],setup(d,{emit:i}){const a=b(d,i);x();const o=q(),r=D(!1);function s(n){n.defaultPrevented||(r.value||setTimeout(()=>{var l;(l=o.triggerElement.value)==null||l.focus()},0),r.value=!1,n.preventDefault())}return o.contentId||(o.contentId=M(void 0,"reka-dropdown-menu-content")),(n,l)=>{var w;return m(),c(e(Z),_(e(a),{id:e(o).contentId,"aria-labelledby":(w=e(o))==null?void 0:w.triggerId,style:{"--reka-dropdown-menu-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-dropdown-menu-content-available-width":"var(--reka-popper-available-width)","--reka-dropdown-menu-content-available-height":"var(--reka-popper-available-height)","--reka-dropdown-menu-trigger-width":"var(--reka-popper-anchor-width)","--reka-dropdown-menu-trigger-height":"var(--reka-popper-anchor-height)"},onCloseAutoFocus:s,onInteractOutside:l[0]||(l[0]=y=>{var B;if(y.defaultPrevented)return;const v=y.detail.originalEvent,k=v.button===0&&v.ctrlKey===!0,O=v.button===2||k;(!e(o).modal.value||O)&&(r.value=!0),(B=e(o).triggerElement.value)!=null&&B.contains(y.target)&&y.preventDefault()})}),{default:u(()=>[g(n.$slots,"default")]),_:3},16,["id","aria-labelledby"])}}}),te=ee,oe=f({__name:"DropdownMenuPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(d){const i=d;return(t,p)=>(m(),c(e(G),R(A(i)),{default:u(()=>[g(t.$slots,"default")]),_:3},16))}}),ae=oe,se=f({__name:"DropdownMenuTrigger",props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(d){const i=d,t=q(),{forwardRef:p,currentElement:a}=x();return T(()=>{t.triggerElement=a}),t.triggerId||(t.triggerId=M(void 0,"reka-dropdown-menu-trigger")),(o,r)=>(m(),c(e(J),{"as-child":""},{default:u(()=>[C(e($),{id:e(t).triggerId,ref:e(p),type:o.as==="button"?"button":void 0,"as-child":i.asChild,as:o.as,"aria-haspopup":"menu","aria-expanded":e(t).open.value,"aria-controls":e(t).open.value?e(t).contentId:void 0,"data-disabled":o.disabled?"":void 0,disabled:o.disabled,"data-state":e(t).open.value?"open":"closed",onClick:r[0]||(r[0]=async s=>{var n;!o.disabled&&s.button===0&&s.ctrlKey===!1&&((n=e(t))==null||n.onOpenToggle(),await K(),e(t).open.value&&s.preventDefault())}),onKeydown:r[1]||(r[1]=N(s=>{o.disabled||(["Enter"," "].includes(s.key)&&e(t).onOpenToggle(),s.key==="ArrowDown"&&e(t).onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())},["enter","space","arrow-down"]))},{default:u(()=>[g(o.$slots,"default")]),_:3},8,["id","type","as-child","as","aria-expanded","aria-controls","data-disabled","disabled","data-state"])]),_:3}))}}),re=se;const z=Symbol("dropdown-menu-size"),ie=f({__name:"DropdownMenu",props:{defaultOpen:{type:Boolean},open:{type:Boolean},dir:{},modal:{type:Boolean},size:{default:"default"}},emits:["update:open"],setup(d,{emit:i}){const t=d,p=i,a=j(t,"size"),o=b(a,p),r=h(()=>t.size);return L(z,r),(s,n)=>(m(),c(e(Q),_({"data-slot":"dropdown-menu"},e(o)),{default:u(()=>[g(s.$slots,"default")]),_:3},16))}}),ne={lg:"p-1.5",default:"p-1",sm:"p-1",xxs:"p-0.5"},pe={lg:"px-3 py-2 text-sm",default:"px-2 py-1.5 text-sm",sm:"px-2 py-1 text-sm",xxs:"px-1.5 py-1 text-xs"},ue={lg:"pl-9",default:"pl-8",sm:"pl-7",xxs:"pl-6"},fe={lg:"py-2 pr-3 pl-9 text-sm",default:"py-1.5 pr-2 pl-8 text-sm",sm:"py-1 pr-2 pl-7 text-sm",xxs:"py-1 pr-1.5 pl-6 text-xs"},ce={lg:"left-3 size-4",default:"left-2 size-3.5",sm:"left-2 size-3.5",xxs:"left-1.5 size-3"},me={lg:"size-4",default:"size-4",sm:"size-3.5",xxs:"size-3"},ge={lg:"size-2.5",default:"size-2",sm:"size-2",xxs:"size-1.5"},ye={lg:"px-3 py-2 text-sm",default:"px-2 py-1.5 text-sm",sm:"px-2 py-1 text-sm",xxs:"px-1.5 py-1 text-xs"},we={lg:"-mx-1.5 my-1.5",default:"-mx-1 my-1",sm:"-mx-1 my-1",xxs:"-mx-0.5 my-0.5"},_e=f({__name:"DropdownMenuContent",props:{forceMount:{type:Boolean},loop:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{},restoreFocus:{type:Boolean,default:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","closeAutoFocus"],setup(d,{emit:i}){const t=d,p=i,a=h(()=>{const{class:s,restoreFocus:n,...l}=t;return l}),o=b(a,p),r=W(z,h(()=>"default"));return(s,n)=>(m(),c(e(ae),null,{default:u(()=>[C(e(te),_({"data-slot":"dropdown-menu-content","data-size":e(r)},e(o),{onCloseAutoFocus:n[0]||(n[0]=l=>!t.restoreFocus&&l.preventDefault()),class:e(U)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--reka-dropdown-menu-content-available-height) min-w-[8rem] origin-(--reka-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",e(ne)[e(r)],t.class)}),{default:u(()=>[g(s.$slots,"default")]),_:3},16,["data-size","class"])]),_:3}))}}),ve=f({__name:"DropdownMenuTrigger",props:{disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(d){const t=V(d);return(p,a)=>(m(),c(e(re),_({"data-slot":"dropdown-menu-trigger"},e(t)),{default:u(()=>[g(p.$slots,"default")]),_:3},16))}});export{z as D,ie as _,ue as a,ye as b,we as c,pe as d,ve as e,_e as f,fe as g,ce as h,ge as i,me as j};