orcaq 1.1.7 → 1.1.8

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 (173) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/-7uW7YTy.js +1 -0
  3. package/.output/public/_nuxt/{DzjHXopz.js → 5450EsIE.js} +1 -1
  4. package/.output/public/_nuxt/6mVUr42b.js +1 -0
  5. package/.output/public/_nuxt/7H5y5euK.js +1 -0
  6. package/.output/public/_nuxt/7iCr9_qw.js +26 -0
  7. package/.output/public/_nuxt/{CJnTtXrv.js → B0gkARnK.js} +1 -1
  8. package/.output/public/_nuxt/B21nC2NZ.js +1 -0
  9. package/.output/public/_nuxt/B232GDut.js +2 -0
  10. package/.output/public/_nuxt/{DtgJAz2h.js → B6N_D8QI.js} +1 -1
  11. package/.output/public/_nuxt/B7C8fo37.js +1 -0
  12. package/.output/public/_nuxt/BC82eJHt.js +1 -0
  13. package/.output/public/_nuxt/BHr4_sbs.js +9 -0
  14. package/.output/public/_nuxt/{DSOwr8Hs.js → BJvJ0Hlu.js} +4 -4
  15. package/.output/public/_nuxt/BK-6CJ0A.js +1 -0
  16. package/.output/public/_nuxt/BMVgfiQu.js +1 -0
  17. package/.output/public/_nuxt/BNh4NY7v.js +1 -0
  18. package/.output/public/_nuxt/{DuKway_J.js → BO3FEgXG.js} +1 -1
  19. package/.output/public/_nuxt/BQm1mt0O.js +1 -0
  20. package/.output/public/_nuxt/BRCvv3op.js +1 -0
  21. package/.output/public/_nuxt/{Cym7bWgs.js → BRWis86L.js} +1 -1
  22. package/.output/public/_nuxt/{CG4v011f.js → BRzWRTTF.js} +1 -1
  23. package/.output/public/_nuxt/{BRVpLa1E.js → BWTTrGtY.js} +2 -2
  24. package/.output/public/_nuxt/{CczQKYUP.js → BXMKgn-J.js} +1 -1
  25. package/.output/public/_nuxt/{C7A87LE3.js → BYaoWfSN.js} +1 -1
  26. package/.output/public/_nuxt/{Z5g5B4NJ.js → BalNYDR1.js} +1 -1
  27. package/.output/public/_nuxt/{DQdL5Jcl.js → BmfnP4qD.js} +1 -1
  28. package/.output/public/_nuxt/Bn6_QGSK.js +1 -0
  29. package/.output/public/_nuxt/{RTN5rY4m.js → BsCPQnkm.js} +1 -1
  30. package/.output/public/_nuxt/{39ZZCZCn.js → Bu6ybm3Z.js} +1 -1
  31. package/.output/public/_nuxt/{2TwRWQjG.js → BuTCm7Bo.js} +1 -1
  32. package/.output/public/_nuxt/BuzCyLCh.js +1 -0
  33. package/.output/public/_nuxt/{BCm7jnPt.js → BzNEuLKx.js} +1 -1
  34. package/.output/public/_nuxt/{DyFXtlg0.js → BzNNFvTW.js} +1 -1
  35. package/.output/public/_nuxt/{nrlEwpIH.js → BzqjH2-H.js} +1 -1
  36. package/.output/public/_nuxt/{D0oaRUYx.js → C-e53AuW.js} +1 -1
  37. package/.output/public/_nuxt/C0jXhwNq.js +1 -0
  38. package/.output/public/_nuxt/C6K-C4_d.js +1 -0
  39. package/.output/public/_nuxt/{D7uoAo-G.js → C6teO48Y.js} +5 -5
  40. package/.output/public/_nuxt/{DUvUg_V7.js → C874itvn.js} +1 -1
  41. package/.output/public/_nuxt/C8ZJ2pm_.js +1 -0
  42. package/.output/public/_nuxt/CA3O4M9L.js +1 -0
  43. package/.output/public/_nuxt/{DStg2VwN.js → CAjVwGyz.js} +1 -1
  44. package/.output/public/_nuxt/{B41tp0B8.js → CCC5u9Ni.js} +1 -1
  45. package/.output/public/_nuxt/{3vYvhEat.js → CCCJ2fw7.js} +1 -1
  46. package/.output/public/_nuxt/{vGkKA7iH.js → CFi6G8Aj.js} +2 -2
  47. package/.output/public/_nuxt/CKlMKmo6.js +1 -0
  48. package/.output/public/_nuxt/{BvD9dW-2.js → CMDq7o88.js} +1 -1
  49. package/.output/public/_nuxt/CMI-3q_e.js +1 -0
  50. package/.output/public/_nuxt/{D_fdC3mJ.js → CMnjMfEQ.js} +1 -1
  51. package/.output/public/_nuxt/{DTlu-CJn.js → CQFANjzf.js} +1 -1
  52. package/.output/public/_nuxt/{DEjwIQuc.js → CU5cwnUW.js} +1 -1
  53. package/.output/public/_nuxt/{BO-QgaRL.js → CXQ2zrsE.js} +1 -1
  54. package/.output/public/_nuxt/{BLEKzUmC.js → CXbrqQhC.js} +1 -1
  55. package/.output/public/_nuxt/CZXyfpHW.js +1 -0
  56. package/.output/public/_nuxt/CZgTP5wX.js +1 -0
  57. package/.output/public/_nuxt/{BhT0iBlH.js → Cd_fVKDw.js} +1 -1
  58. package/.output/public/_nuxt/CeXnSKvd.js +1 -0
  59. package/.output/public/_nuxt/Chw5tFzx.js +1 -0
  60. package/.output/public/_nuxt/CkLSGVwV.js +1 -0
  61. package/.output/public/_nuxt/Cqk0ImDE.js +1 -0
  62. package/.output/public/_nuxt/{Ch-A9iSC.js → CuXTA7ZW.js} +1 -1
  63. package/.output/public/_nuxt/Cv9v5fHN.js +1 -0
  64. package/.output/public/_nuxt/{LUfaevBS.js → CvbYm0uB.js} +1 -1
  65. package/.output/public/_nuxt/{BV4g1sVY.js → Cw1HIv3s.js} +1 -1
  66. package/.output/public/_nuxt/{DxF9DsEl.js → CyEOtFwE.js} +1 -1
  67. package/.output/public/_nuxt/{Clm3Z8VL.js → CyKRjZZo.js} +1 -1
  68. package/.output/public/_nuxt/{Cj9tYr3P.js → D4DMGxvZ.js} +1 -1
  69. package/.output/public/_nuxt/{BNnChlxR.js → D5GonnbJ.js} +1 -1
  70. package/.output/public/_nuxt/D5Oboajo.js +1 -0
  71. package/.output/public/_nuxt/D8egDyEO.js +1 -0
  72. package/.output/public/_nuxt/DBSV6YXN.js +1 -0
  73. package/.output/public/_nuxt/{gWmEw6BT.js → DCewvWOu.js} +1 -1
  74. package/.output/public/_nuxt/{BG_B-fo0.js → DG9CsZCx.js} +1 -1
  75. package/.output/public/_nuxt/{BOVFFCPB.js → DH2V7e8U.js} +1 -1
  76. package/.output/public/_nuxt/{DcXAnOS1.js → DHXwq7wT.js} +1 -1
  77. package/.output/public/_nuxt/DJXrgohw.js +2 -0
  78. package/.output/public/_nuxt/{CxZK-Vs6.js → DQRyK9Io.js} +1 -1
  79. package/.output/public/_nuxt/{B-u0WX5Q.js → DXVrM3CN.js} +1 -1
  80. package/.output/public/_nuxt/{XVZ0obUR.js → DZ4xLzJg.js} +1 -1
  81. package/.output/public/_nuxt/DZIoL4RO.js +1 -0
  82. package/.output/public/_nuxt/D_kY6P5P.js +1 -0
  83. package/.output/public/_nuxt/{DzN4YRfa.js → DgxTwFGe.js} +2 -2
  84. package/.output/public/_nuxt/DkX74xDd.js +1 -0
  85. package/.output/public/_nuxt/{DzaPC1WB.js → DmnufEYq.js} +1 -1
  86. package/.output/public/_nuxt/{CCk2r9DD.js → Dopm1f4X.js} +1 -1
  87. package/.output/public/_nuxt/{jJeqAxmP.js → Dpkaavgs.js} +1 -1
  88. package/.output/public/_nuxt/DpsqSAMo.js +20 -0
  89. package/.output/public/_nuxt/{CRDIOG8r.js → DrkGD_bQ.js} +1 -1
  90. package/.output/public/_nuxt/{DLIUYAz9.js → Dtry_3Qa.js} +1 -1
  91. package/.output/public/_nuxt/DwPmcz47.js +1 -0
  92. package/.output/public/_nuxt/DyjsVMbv.js +1 -0
  93. package/.output/public/_nuxt/{CBgbjsPd.js → FmHWbXNk.js} +1 -1
  94. package/.output/public/_nuxt/{CWGzL6OE.js → JxgekUqn.js} +1 -1
  95. package/.output/public/_nuxt/KoGK2wLb.js +1 -0
  96. package/.output/public/_nuxt/LU_a7qLd.js +1 -0
  97. package/.output/public/_nuxt/{1VXrIDkr.js → LxqkguPP.js} +1 -1
  98. package/.output/public/_nuxt/Q8x88Gcd.js +1 -0
  99. package/.output/public/_nuxt/{RFRrMFyH.js → R04uZjs6.js} +1 -1
  100. package/.output/public/_nuxt/So0hX8V0.js +31 -0
  101. package/.output/public/_nuxt/WGDY9i_Q.js +1 -0
  102. package/.output/public/_nuxt/{BZQUF1W4.js → WZQ8mcv9.js} +1 -1
  103. package/.output/public/_nuxt/{CrwM3gOU.js → XjywAggc.js} +1 -1
  104. package/.output/public/_nuxt/{_fileId_.DxhkUVGK.css → _fileId_.CiauI_x3.css} +1 -1
  105. package/.output/public/_nuxt/{z1xPtaLw.js → _uLivI44.js} +1 -1
  106. package/.output/public/_nuxt/builds/latest.json +1 -1
  107. package/.output/public/_nuxt/builds/meta/30582efd-125a-4f88-bd89-20a7b2ba8697.json +1 -0
  108. package/.output/public/_nuxt/{DRuCf0Sx.js → eQskTKIU.js} +1 -1
  109. package/.output/public/_nuxt/ecWNT6PZ.js +1 -0
  110. package/.output/public/_nuxt/entry.BcHy7sxf.css +1 -0
  111. package/.output/public/_nuxt/{BGAd-CMD.js → f6XRRKUb.js} +1 -1
  112. package/.output/public/_nuxt/jtwYTq7X.js +52 -0
  113. package/.output/public/_nuxt/{Bw-4PosZ.js → mcYTISF7.js} +1 -1
  114. package/.output/public/_nuxt/mcfKrWU-.js +1 -0
  115. package/.output/public/_nuxt/{CB56S0b2.js → soHTUlpn.js} +3 -3
  116. package/.output/public/_nuxt/tc7vkD0J.js +3 -0
  117. package/.output/public/_nuxt/vEHvfalB.js +53 -0
  118. package/.output/public/_nuxt/vP25tZUh.js +2 -0
  119. package/.output/public/_nuxt/{CpkrwN3Q.js → zndqWf9s.js} +1 -1
  120. package/.output/server/chunks/_/tables.factory.mjs +1 -1
  121. package/.output/server/chunks/build/client.manifest.mjs +794 -730
  122. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  123. package/.output/server/chunks/nitro/nitro.mjs +676 -648
  124. package/.output/server/package.json +1 -1
  125. package/package.json +1 -1
  126. package/.output/public/_nuxt/1fIGBJPQ.js +0 -1
  127. package/.output/public/_nuxt/1kY3DHv7.js +0 -1
  128. package/.output/public/_nuxt/9bnMBg54.js +0 -1
  129. package/.output/public/_nuxt/BFMjnjgH.js +0 -1
  130. package/.output/public/_nuxt/BN2mQ8OV.js +0 -20
  131. package/.output/public/_nuxt/BNyWhB4W.js +0 -1
  132. package/.output/public/_nuxt/BXziI6Bt.js +0 -3
  133. package/.output/public/_nuxt/BZmEvFAZ.js +0 -28
  134. package/.output/public/_nuxt/Ba_fqsW2.js +0 -1
  135. package/.output/public/_nuxt/BbzZxPNQ.js +0 -1
  136. package/.output/public/_nuxt/Bhm1GL_M.js +0 -1
  137. package/.output/public/_nuxt/BiSZmDoN.js +0 -1
  138. package/.output/public/_nuxt/BjK8Fug8.js +0 -1
  139. package/.output/public/_nuxt/BjpSpz5C.js +0 -1
  140. package/.output/public/_nuxt/BkqB6n0T.js +0 -1
  141. package/.output/public/_nuxt/BoPjUGS6.js +0 -1
  142. package/.output/public/_nuxt/BtwwqY0e.js +0 -1
  143. package/.output/public/_nuxt/C0l_59dE.js +0 -1
  144. package/.output/public/_nuxt/C1TOiVRQ.js +0 -9
  145. package/.output/public/_nuxt/C80Zs8U0.js +0 -1
  146. package/.output/public/_nuxt/CFZerEKx.js +0 -2
  147. package/.output/public/_nuxt/CSPqdI4x.js +0 -1
  148. package/.output/public/_nuxt/CTYqoFvv.js +0 -1
  149. package/.output/public/_nuxt/CYJEOEaU.js +0 -1
  150. package/.output/public/_nuxt/CYu-xp_f.js +0 -1
  151. package/.output/public/_nuxt/CZvnl0uO.js +0 -52
  152. package/.output/public/_nuxt/CadjlDLt.js +0 -1
  153. package/.output/public/_nuxt/CeXr_3vU.js +0 -2
  154. package/.output/public/_nuxt/Culm7V2R.js +0 -53
  155. package/.output/public/_nuxt/CzBFxx8v.js +0 -1
  156. package/.output/public/_nuxt/D8KJQqug.js +0 -1
  157. package/.output/public/_nuxt/D8Z5BXgG.js +0 -26
  158. package/.output/public/_nuxt/DDK9-_jm.js +0 -1
  159. package/.output/public/_nuxt/DDQU7vSH.js +0 -1
  160. package/.output/public/_nuxt/DSEkO8kW.js +0 -1
  161. package/.output/public/_nuxt/Da1F0IxL.js +0 -1
  162. package/.output/public/_nuxt/DdtQIDaq.js +0 -1
  163. package/.output/public/_nuxt/Dfz8k_Rn.js +0 -1
  164. package/.output/public/_nuxt/DitYzGT4.js +0 -1
  165. package/.output/public/_nuxt/Djh3G2Nf.js +0 -1
  166. package/.output/public/_nuxt/DmWFeTaU.js +0 -1
  167. package/.output/public/_nuxt/_ltJfz1p.js +0 -1
  168. package/.output/public/_nuxt/builds/meta/1cbed594-12e2-48e6-bea9-7a9159c3c1d3.json +0 -1
  169. package/.output/public/_nuxt/dkyHOJLf.js +0 -1
  170. package/.output/public/_nuxt/entry.D1DMaixs.css +0 -1
  171. package/.output/public/_nuxt/ixgiI20S.js +0 -1
  172. package/.output/public/_nuxt/lisFd8W1.js +0 -2
  173. package/.output/public/_nuxt/uHyBIwWw.js +0 -1
@@ -0,0 +1,3 @@
1
+ import{d as M,bJ as pe,k as C,w as l,p as re,g as t,o as s,E as ce,c as N,bi as te,n as I,f as e,z as p,j as fe,A as Z,t as b,r as $,e as u,m as n,l as V,F as L,s as A,O as ve,J as ge,N as ue,bf as _e,L as be,bN as he,am as ie,bO as ye,bP as xe,bQ as Ce,bR as $e,bj as K,_ as ke,h as Ne,bS as Te,x as we,B as Pe,bk as Ee,bT as Se,bU as je,Z as De,V as Re,an as de,ae as Be,i as ze,G as X,M as Le,ai as Oe}from"./C6teO48Y.js";import{C as Ie,a as Ue,b as Ve}from"./D_kY6P5P.js";import{_ as Ae}from"./BRCvv3op.js";import{u as Me,_ as Ge}from"./Cv9v5fHN.js";import{u as Fe}from"./Bu6ybm3Z.js";import"./BHr4_sbs.js";import"./BuTCm7Bo.js";const qe=M({__name:"Collapsible",props:{defaultOpen:{type:Boolean},open:{type:Boolean},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},emits:["update:open"],setup(w,{emit:h}){const a=pe(w,h);return(k,g)=>(s(),C(t(Ie),re({"data-slot":"collapsible"},t(a)),{default:l(({open:T})=>[ce(k.$slots,"default",{open:T})]),_:3},16))}}),He=M({__name:"CollapsibleContent",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(w){const h=w;return(f,d)=>(s(),C(t(Ue),re({"data-slot":"collapsible-content"},h),{default:l(()=>[ce(f.$slots,"default")]),_:3},16))}}),Je=M({__name:"CollapsibleTrigger",props:{asChild:{type:Boolean},as:{}},setup(w){const h=w;return(f,d)=>(s(),C(t(Ve),re({"data-slot":"collapsible-trigger"},h),{default:l(()=>[ce(f.$slots,"default")]),_:3},16))}}),me=M({__name:"PermissionBadge",props:{label:{},value:{type:[Boolean,String]},type:{default:"boolean"}},setup(w){const h=w,f=N(()=>h.type==="boolean"),d=N(()=>h.value===!0);return(a,k)=>{const g=Z,T=te;return t(f)?(s(),C(T,{key:0,variant:"outline",class:I(["text-xs items-center flex gap-1 ",!t(d)&&"opacity-50"])},{default:l(()=>[e(g,{name:t(d)?"lucide:check":"lucide:x",class:I(t(fe)("size-3",t(d)&&"text-green-500"))},null,8,["name","class"]),p(" "+b(a.label),1)]),_:1},8,["class"])):(s(),C(T,{key:1,variant:"secondary",class:"text-xs"},{default:l(()=>[p(b(a.label)+": "+b(a.value),1)]),_:1}))}}}),Qe={class:"rounded-md border"},Ke={key:1,class:"ml-auto flex gap-1"},Xe={key:0,class:"border-t bg-muted/20 p-3"},Ze={class:"px-3 py-2 border-b border-border/50"},We={class:"flex flex-wrap gap-2"},Ye={class:"flex border-b border-border/50"},es=["onClick"],ss={class:"max-h-[350px] overflow-y-auto"},ts={key:0,class:"flex flex-col items-center justify-center py-6 text-muted-foreground"},ns={class:"text-xs"},as={key:1,class:"divide-y divide-border/50"},os={class:"flex-1 min-w-0"},ls={class:"text-xs font-medium truncate"},is={class:"text-muted-foreground"},rs={class:"flex items-center gap-0.5"},cs={key:1,class:"flex items-center gap-2 p-3 text-xs text-muted-foreground bg-muted/30 rounded"},us=M({__name:"DatabasePermissionCard",props:{database:{},isExpanded:{type:Boolean},isCurrentDatabase:{type:Boolean},permissions:{}},emits:["toggle","updatePermission"],setup(w,{emit:h}){const f=w,d=h,a=$("tables"),k=[{id:"schemas",label:"Schemas",icon:"hugeicons:folder-02"},{id:"tables",label:"Tables",icon:"hugeicons:grid-table"},{id:"views",label:"Views",icon:"hugeicons:property-view"},{id:"functions",label:"Functions",icon:"gravity-ui:function"}],g=N(()=>{if(!f.permissions)return[];switch(a.value){case"schemas":return f.permissions.schemaPermissions;case"tables":return f.permissions.tablePermissions;case"views":return f.permissions.viewPermissions;case"functions":return f.permissions.functionPermissions;default:return[]}}),T=N(()=>{var c,m,_,P;return{tables:((c=f.permissions)==null?void 0:c.tablePermissions.length)??0,schemas:((m=f.permissions)==null?void 0:m.schemaPermissions.length)??0,views:((_=f.permissions)==null?void 0:_.viewPermissions.length)??0,functions:((P=f.permissions)==null?void 0:P.functionPermissions.length)??0}}),y=c=>{switch(c){case"table":return"hugeicons:grid-table";case"schema":return"hugeicons:folder-02";case"view":return"hugeicons:property-view";case"function":return"gravity-ui:function";default:return"hugeicons:knight-shield"}},j=N(()=>[{id:"connect",label:"CONNECT",value:f.database.canConnect,type:"boolean"},{id:"create",label:"CREATE",value:f.database.canCreate,type:"boolean"},{id:"temp",label:"TEMP",value:f.database.canTemp,type:"boolean"}]);return(c,m)=>{const _=Z,P=te,R=ue,D=ge,B=be,Q=ve,G=he;return s(),u("div",Qe,[n("div",{class:I(["flex items-center gap-1 px-3 py-2 cursor-pointer hover:bg-accent/50",!c.database.canConnect&&"opacity-50 cursor-not-allowed"]),onClick:m[0]||(m[0]=v=>c.database.canConnect&&d("toggle"))},[e(_,{name:c.isExpanded?"hugeicons:arrow-down-01":"hugeicons:arrow-right-01",class:I(["size-4 transition-transform",!c.database.canConnect&&"invisible"])},null,8,["name","class"]),e(_,{name:c.database.canConnect?"hugeicons:database":"hugeicons:database-locked",class:I(["size-4",c.database.canConnect?"text-yellow-400":"text-muted-foreground"])},null,8,["name","class"]),n("span",{class:I(["text-sm font-medium",!c.database.canConnect&&"text-muted-foreground"])},b(c.database.databaseName),3),c.database.canConnect?(s(),u("div",Ke,[c.database.canConnect?(s(),C(P,{key:0,variant:"outline",class:"text-xs"},{default:l(()=>m[1]||(m[1]=[p("CONNECT")])),_:1})):V("",!0),c.database.canCreate?(s(),C(P,{key:1,variant:"outline",class:"text-xs"},{default:l(()=>m[2]||(m[2]=[p("CREATE")])),_:1})):V("",!0),c.database.canTemp?(s(),C(P,{key:2,variant:"outline",class:"text-xs"},{default:l(()=>m[3]||(m[3]=[p("TEMP")])),_:1})):V("",!0)])):(s(),C(_,{key:0,name:"hugeicons:circle-lock-01",class:"size-3 text-muted-foreground ml-auto"}))],2),c.isExpanded&&c.database.canConnect?(s(),u("div",Xe,[n("div",Ze,[m[4]||(m[4]=n("p",{class:"text-xs text-muted-foreground mb-2"}," Database-level privileges: ",-1)),n("div",We,[(s(!0),u(L,null,A(t(j),v=>(s(),C(me,{key:v.id,label:v.label,value:v.value,type:v.type},null,8,["label","value","type"]))),128))])]),c.isCurrentDatabase?(s(),u(L,{key:0},[n("div",Ye,[(s(),u(L,null,A(k,v=>n("button",{key:v.id,class:I(["flex items-center gap-1 px-3 py-1.5 text-xs transition-colors cursor-pointer",t(a)===v.id?"border-b-2 border-primary text-foreground":"text-muted-foreground border-b-2 border-transparent hover:text-foreground"]),onClick:O=>a.value=v.id},[e(_,{name:v.icon,class:"size-3"},null,8,["name"]),p(" "+b(v.label)+" ",1),e(P,{variant:"secondary",class:"ml-1 text-xs px-1 py-0"},{default:l(()=>[p(b(t(T)[v.id]),1)]),_:2},1024)],10,es)),64))]),n("div",ss,[t(g).length?(s(),u("div",as,[(s(!0),u(L,null,A(t(g),(v,O)=>(s(),u("div",{key:`${v.schemaName}-${v.objectName}-${O}`,class:"group flex items-center gap-2 px-3 py-2 hover:bg-accent/30"},[e(_,{name:y(v.objectType),class:"size-4 text-muted-foreground shrink-0"},null,8,["name"]),n("div",os,[n("p",ls,[n("span",is,b(v.schemaName)+".",1),p(b(v.objectName),1)])]),n("div",rs,[(s(!0),u(L,null,A(v.privileges,H=>(s(),C(P,{variant:"outline",class:"text-xs normal-case"},{default:l(()=>[p(b(H),1)]),_:2},1024))),256))]),e(G,null,{default:l(()=>[e(Q,null,{default:l(()=>[e(D,{"as-child":""},{default:l(()=>[e(R,{variant:"ghost",size:"iconSm",onClick:_e(H=>d("updatePermission",v),["stop"])},{default:l(()=>[e(_,{name:"hugeicons:pencil-edit-02",class:"size-3"})]),_:2},1032,["onClick"])]),_:2},1024),e(B,null,{default:l(()=>m[5]||(m[5]=[p("Update Permission")])),_:1})]),_:2},1024)]),_:2},1024)]))),128))])):(s(),u("div",ts,[e(_,{name:"hugeicons:knight-shield",class:"size-8 mb-1 opacity-50"}),n("p",ns,"No "+b(t(a))+" permissions",1)]))])],64)):(s(),u("div",cs,[e(_,{name:"hugeicons:information-circle",class:"size-4"}),m[6]||(m[6]=n("span",null,"Connect to this database to view tables, schemas, and functions permissions.",-1))]))])):V("",!0)])}}}),ds={class:"grid gap-4 py-2"},ms={class:"grid gap-2"},ps={class:"grid gap-2"},fs={class:"grid gap-2"},vs={class:"grid gap-2"},gs={class:"grid grid-cols-2 md:grid-cols-3 gap-2"},_s={class:"text-xs"},bs={class:"grid gap-2"},hs=M({__name:"GrantRevokeDialog",props:{open:{type:Boolean},mode:{},roleName:{},permission:{},loading:{type:Boolean}},emits:["update:open","confirm"],setup(w,{emit:h}){const f=["SELECT","INSERT","UPDATE","DELETE","TRUNCATE","REFERENCES","TRIGGER"],d=["USAGE","CREATE"],a=["EXECUTE"],k=["USAGE","SELECT","UPDATE"],g=w,T=h,y=$("table"),j=$("public"),c=$(""),m=$([]),_=$([]);Me();const P=N(()=>{switch(y.value){case"table":return f;case"schema":return d;case"function":return a;case"sequence":return k;default:return[]}});ie(()=>g.open,x=>{x&&(g.permission?(y.value=g.permission.objectType,j.value=g.permission.schemaName,c.value=g.permission.objectName,_.value=[...g.permission.privileges],m.value=[...g.permission.privileges]):(y.value="table",j.value="public",c.value="",_.value=[],m.value=[]))});const R=N(()=>m.value),D=N(()=>f.filter(x=>!m.value.includes(x))),B=N(()=>R.value.length>0||D.value.length>0),Q=N(()=>{const x=j.value||"<schema>",i=c.value||"<object>",F=g.roleName||"<role>",q=`${y.value.toUpperCase()} "${x}"."${i}"`,U=[];return R.value.length&&U.push(`GRANT ${R.value.join(", ")} ON ${q} TO "${F}";`),D.value.length&&U.push(`REVOKE ${D.value.join(", ")} ON ${q} FROM "${F}";`),U.length?U.join(`
2
+
3
+ `):"-- No permission changes"}),G=x=>{const i=m.value.indexOf(x);i>-1?m.value.splice(i,1):m.value.push(x)},v=()=>{B.value&&T("confirm",{objectType:y.value,schemaName:j.value,objectName:c.value,grant:R.value,revoke:D.value})},O=()=>T("update:open",!1),H=N(()=>g.mode==="grant"?`Grant Permission to ${g.roleName}`:`Update Permission for ${g.roleName}`);return(x,i)=>{const F=Ce,q=$e,U=xe,ne=Te,o=Ne,r=Pe,z=we,W=ke,Y=Ee,ae=Ae,oe=Ge,ee=ue,se=Z,E=Se,J=je,le=ye;return s(),C(le,{open:x.open,"onUpdate:open":i[3]||(i[3]=S=>T("update:open",S))},{default:l(()=>[e(J,{class:"max-w-[45vw]! w-[45vw]!"},{default:l(()=>[e(U,null,{default:l(()=>[e(F,null,{default:l(()=>[p(b(H.value),1)]),_:1}),e(q,null,{default:l(()=>i[4]||(i[4]=[p(" Tick to grant, untick to revoke privileges. ")])),_:1})]),_:1}),n("div",ds,[n("div",ms,[e(t(K),null,{default:l(()=>i[5]||(i[5]=[p("Object Type")])),_:1}),e(W,{modelValue:y.value,"onUpdate:modelValue":i[0]||(i[0]=S=>y.value=S),disabled:x.mode==="update"},{default:l(()=>[e(o,null,{default:l(()=>[e(ne)]),_:1}),e(z,null,{default:l(()=>[e(r,{value:"table"},{default:l(()=>i[6]||(i[6]=[p("Table")])),_:1}),e(r,{value:"schema"},{default:l(()=>i[7]||(i[7]=[p("Schema")])),_:1}),e(r,{value:"function"},{default:l(()=>i[8]||(i[8]=[p("Function")])),_:1}),e(r,{value:"sequence"},{default:l(()=>i[9]||(i[9]=[p("Sequence")])),_:1})]),_:1})]),_:1},8,["modelValue","disabled"])]),n("div",ps,[e(t(K),null,{default:l(()=>i[10]||(i[10]=[p("Schema")])),_:1}),e(Y,{modelValue:j.value,"onUpdate:modelValue":i[1]||(i[1]=S=>j.value=S),disabled:x.mode==="update"},null,8,["modelValue","disabled"])]),n("div",fs,[e(t(K),null,{default:l(()=>i[11]||(i[11]=[p("Object Name")])),_:1}),e(Y,{modelValue:c.value,"onUpdate:modelValue":i[2]||(i[2]=S=>c.value=S),disabled:x.mode==="update"},null,8,["modelValue","disabled"])]),n("div",vs,[e(t(K),null,{default:l(()=>i[12]||(i[12]=[p("Privileges")])),_:1}),n("div",gs,[(s(!0),u(L,null,A(P.value,S=>(s(),u("div",{key:S,class:"flex items-center gap-2 cursor-pointer"},[e(ae,{"model-value":m.value.includes(S),"onUpdate:modelValue":Hs=>G(S)},null,8,["model-value","onUpdate:modelValue"]),n("span",_s,b(S),1)]))),128))])]),n("div",bs,[e(t(K),null,{default:l(()=>i[13]||(i[13]=[p("SQL Preview")])),_:1}),e(oe,{code:Q.value,"show-copy-button":"","max-height":"24rem"},null,8,["code"])])]),e(E,null,{default:l(()=>[e(ee,{variant:"outline",onClick:O},{default:l(()=>i[14]||(i[14]=[p(" Cancel ")])),_:1}),e(ee,{disabled:!B.value||x.loading,onClick:v},{default:l(()=>[x.loading?(s(),C(se,{key:0,name:"hugeicons:loading-03",class:"size-4 mr-2 animate-spin"})):V("",!0),p(" "+b(x.mode==="grant"?"Grant":"Update"),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),ys={class:"px-4 py-3 shrink-0"},xs={class:"flex items-center gap-2 mb-2"},Cs={key:0,class:"flex flex-wrap gap-2"},$s={key:1,class:"mt-2 text-xs text-muted-foreground"},ks={class:"text-foreground"},Ns=M({__name:"RoleAttributesCard",props:{roleInfo:{}},setup(w){const h=w,f=N(()=>{if(!h.roleInfo)return[];const a=h.roleInfo;return[{id:"superuser",label:"Superuser",value:a.isSuperuser,type:"boolean"},{id:"login",label:"Can Login",value:a.canLogin,type:"boolean"},{id:"createdb",label:"Create DB",value:a.canCreateDb,type:"boolean"},{id:"createrole",label:"Create Role",value:a.canCreateRole,type:"boolean"},{id:"replication",label:"Replication",value:a.isReplication,type:"boolean"},{id:"connlimit",label:"Connections",value:a.connectionLimit===-1?"Unlimited":`${a.connectionLimit}`,type:"text"}]}),d=N(()=>{var a,k;return(k=(a=h.roleInfo)==null?void 0:a.memberOf)!=null&&k.length?h.roleInfo.memberOf:[]});return(a,k)=>{const g=Z,T=te;return s(),u("div",ys,[n("div",xs,[e(g,{name:"hugeicons:shield-01",class:"size-4"}),k[0]||(k[0]=n("p",{class:"text-sm font-medium"},"Role Attributes",-1))]),a.roleInfo?(s(),u("div",Cs,[(s(!0),u(L,null,A(t(f),y=>(s(),C(me,{key:y.id,label:y.label,value:y.value,type:y.type},null,8,["label","value","type"]))),128)),a.roleInfo.validUntil?(s(),C(T,{key:0,variant:"secondary",class:"text-xs"},{default:l(()=>[e(g,{name:"lucide:calendar",class:"size-3 mr-1"}),p(" Expires: "+b(new Date(a.roleInfo.validUntil).toLocaleDateString()),1)]),_:1})):V("",!0)])):V("",!0),t(d).length?(s(),u("div",$s,[k[1]||(k[1]=p(" Member of: ")),n("span",ks,b(t(d).join(", ")),1)])):V("",!0)])}}}),Ts={class:"flex flex-col h-full p-1 relative"},ws={class:"flex flex-col h-full border rounded-md overflow-hidden"},Ps={class:"flex items-center gap-3 px-4 py-1 bg-sidebar"},Es={class:"font-normal text-sm"},Ss={class:"ml-auto flex items-center gap-2"},js={key:0,class:"flex-1 flex items-center justify-center"},Ds={key:1,class:"flex-1 flex flex-col items-center justify-center p-4"},Rs={class:"text-sm text-destructive"},Bs={class:"px-4 pt-0 pb-3"},zs={class:"flex items-center gap-2 mb-2"},Ls={class:"flex items-center gap-2"},Os={variant:"secondary",class:"text-xs cursor-pointer text-muted-foreground flex items-center gap-1"},Is={class:"text-xs ml-1"},Us={key:0,class:"flex items-center gap-2 text-muted-foreground"},Vs={key:1,class:"text-sm text-muted-foreground"},As={key:2,class:"space-y-1"},Ms={class:"flex flex-col flex-1 min-h-0 p-4 pt-0"},Gs={class:"flex items-center gap-2 mb-3 shrink-0"},Fs={key:0,class:"flex items-center gap-2 text-muted-foreground"},qs={key:2,class:"space-y-1 flex-1 overflow-y-auto"},et=M({__name:"[roleName]",setup(w){const h=De(),f=Re(),d=N(()=>h.params.roleName),a=N(()=>f.selectedConnection),k=N(()=>{if(!a.value)return"";if(a.value.database)return a.value.database;const o=a.value.connectionString;if(!o)return"";try{return new URL(o).pathname.slice(1)||""}catch{const r=o.match(/\/([^/?]+)(\?|$)/);return(r==null?void 0:r[1])||""}}),g=o=>k.value.toLowerCase()===o.toLowerCase(),T=$(null),y=$([]),j=async()=>{if(!(!a.value||!d.value))try{const r=await $fetch("/api/database-roles/get-role",{method:"POST",body:{...X(a.value),roleName:d.value}});r&&(T.value={isSuperuser:r.isSuperuser,canLogin:r.canLogin,canCreateDb:r.canCreateDb,canCreateRole:r.canCreateRole,isReplication:r.isReplication,connectionLimit:r.connectionLimit,validUntil:r.validUntil,memberOf:r.memberOf})}catch(o){console.error("Error fetching role info:",o)}},c=$(!1),m=async()=>{if(!(!a.value||!d.value)){c.value=!0;try{const o=await $fetch("/api/database-roles/get-role-inheritance",{method:"POST",body:{...X(a.value),roleName:d.value}});y.value=o}catch(o){console.error("Error fetching role inheritance:",o),y.value=[]}finally{c.value=!1}}},_=$(!1),P=$(!1),R=$(null),D=$(null),B=async()=>{if(!(!a.value||!d.value)){_.value=!0,D.value=null;try{const o=await $fetch("/api/database-roles/get-permissions",{method:"POST",body:{...X(a.value),roleName:d.value}});R.value=o}catch(o){D.value=o instanceof Error?o.message:"Failed to fetch permissions",console.error("Error fetching permissions:",o)}finally{_.value=!1}}};de(()=>{B(),j(),m()}),ie(d,()=>{B(),j(),m()});const{isLoading:Q,databasePermissions:G,fetchDatabasePermissions:v}=Fe(a),O=$(new Set),H=o=>{O.value.has(o)?O.value.delete(o):O.value.add(o)},x=o=>O.value.has(o);de(()=>v(d.value)),ie(d,o=>v(o));const i=$(!1),F=$("grant"),q=$(),U=o=>{F.value="update",q.value=o,i.value=!0},ne=async o=>{if(!(!a.value||!d.value)){P.value=!0;try{const r=[];o.grant.length>0&&r.push($fetch("/api/database-roles/grant-permission",{method:"POST",body:{...X(a.value),roleName:d.value,objectType:o.objectType,schemaName:o.schemaName,objectName:o.objectName,privileges:o.grant}})),o.revoke.length>0&&r.push($fetch("/api/database-roles/revoke-permission",{method:"POST",body:{...X(a.value),roleName:d.value,objectType:o.objectType,schemaName:o.schemaName,objectName:o.objectName,privileges:o.revoke}})),await Promise.all(r),i.value=!1,await B()}catch(r){console.error("Error updating permissions:",r)}finally{P.value=!1}}};return(o,r)=>{const z=Z,W=ue,Y=Je,ae=He,oe=qe,ee=te,se=Oe;return s(),u("div",Ts,[n("div",ws,[n("div",Ps,[n("div",null,[n("p",Es,b(t(d)),1)]),n("div",Ss,[e(W,{variant:"outline",size:"iconSm",disabled:t(_),onClick:B},{default:l(()=>[e(z,{name:t(_)?"hugeicons:loading-03":"lucide:refresh-cw",class:I(["size-4",t(_)&&"animate-spin"])},null,8,["name","class"])]),_:1},8,["disabled"])])]),t(_)?(s(),u("div",js,[e(t(Be),{visible:t(_)},null,8,["visible"])])):t(D)?(s(),u("div",Ds,[e(z,{name:"hugeicons:information-circle",class:"size-12 text-destructive"}),n("p",Rs,b(t(D)),1),e(W,{variant:"outline",size:"sm",class:"mt-4 font-normal",onClick:B},{default:l(()=>r[1]||(r[1]=[p(" Retry ")])),_:1})])):t(R)?(s(),u(L,{key:2},[e(Ns,{"role-info":t(T)},null,8,["role-info"]),n("div",Bs,[e(oe,{"default-open":!0},{default:l(({open:E})=>[n("div",zs,[n("div",Ls,[e(z,{name:"lucide:git-branch",class:"size-4 text-muted-foreground"}),r[2]||(r[2]=n("p",{class:"text-sm font-medium"},"Inherited from",-1))]),e(Y,{"as-child":""},{default:l(()=>[n("div",Os,[n("span",Is,b(E?"Collapse":"Expand"),1),e(z,{name:"lucide:chevron-down",class:I(["size-4 transition-transform",E&&"rotate-180"])},null,8,["class"])])]),_:2},1024)]),e(ae,null,{default:l(()=>[t(c)?(s(),u("div",Us,[e(z,{name:"hugeicons:loading-03",class:"size-4 animate-spin"}),r[3]||(r[3]=n("span",{class:"text-sm"},"Loading inheritance...",-1))])):t(y).length===0?(s(),u("div",Vs," No inherited roles ")):(s(),u("div",As,[(s(!0),u(L,null,A(t(y),(J,le)=>(s(),u("div",{key:`${J.roleName}-${le}`,class:"flex items-center text-sm gap-1 hover:bg-accent rounded-sm",style:Le({paddingLeft:`${J.depth*16}px`})},[e(z,{name:"lucide:corner-down-right",class:"size-3 text-muted-foreground"}),n("span",null,b(J.roleName),1)],4))),128))]))]),_:1})]),_:1})]),n("div",Ms,[n("div",Gs,[e(z,{name:"hugeicons:database",class:"size-5 text-yellow-400"}),r[4]||(r[4]=n("p",{class:"text-sm font-medium"},"Database Access",-1)),e(ee,{variant:"secondary",class:"text-xs"},{default:l(()=>[p(b(t(G).filter(E=>E.canConnect).length),1)]),_:1})]),t(Q)?(s(),u("div",Fs,[e(z,{name:"hugeicons:loading-03",class:"size-4 animate-spin"}),r[5]||(r[5]=n("span",{class:"text-sm"},"Loading databases...",-1))])):t(G).length===0?(s(),C(se,{key:1,title:"No permissions found",desc:"No database permissions were found for this role."})):(s(),u("div",qs,[(s(!0),u(L,null,A(t(G),E=>(s(),C(us,{key:E.databaseName,database:E,"is-expanded":x(E.databaseName),"is-current-database":g(E.databaseName),permissions:t(R),onToggle:J=>H(E.databaseName),onUpdatePermission:U},null,8,["database","is-expanded","is-current-database","permissions","onToggle"]))),128))]))])],64)):(s(),C(se,{key:3,icon:"hugeicons:shield-01",title:"No data available",desc:"No permissions data is available for the current selection."}))]),e(hs,{open:t(i),"onUpdate:open":r[0]||(r[0]=E=>ze(i)?i.value=E:null),mode:t(F),roleName:t(d),permission:t(q),loading:t(P),onConfirm:ne},null,8,["open","mode","roleName","permission","loading"])])}}});export{et as default};