orcaq 1.1.9 → 1.1.10

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 (139) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{ljX6O69y.js → -WSV_TU1.js} +1 -1
  3. package/.output/public/_nuxt/{DDNFAZ6A.js → 0U50G6dt.js} +1 -1
  4. package/.output/public/_nuxt/{Cgc3lXst.js → 0yW2dL-K.js} +1 -1
  5. package/.output/public/_nuxt/{DZJEpoYA.js → 1V1SIDI5.js} +1 -1
  6. package/.output/public/_nuxt/{CiGbpFVs.js → 24W1ftax.js} +1 -1
  7. package/.output/public/_nuxt/{Dcf3u1x9.js → 339BCoyy.js} +1 -1
  8. package/.output/public/_nuxt/{B6aTbrvX.js → 9PqzQzi0.js} +1 -1
  9. package/.output/public/_nuxt/{Cilp0euQ.js → 9Skr9Ccw.js} +1 -1
  10. package/.output/public/_nuxt/{BP23Jaxf.js → 9eKRx5AF.js} +1 -1
  11. package/.output/public/_nuxt/{CX2dGf8T.js → 9vfu7pKH.js} +1 -1
  12. package/.output/public/_nuxt/B79M7zD1.js +1 -0
  13. package/.output/public/_nuxt/{CAnZNTn6.js → BDw-ivE-.js} +1 -1
  14. package/.output/public/_nuxt/{Btu3pVWi.js → BFOjhnLA.js} +1 -1
  15. package/.output/public/_nuxt/{B-E4SrDA.js → BFYNB1ok.js} +1 -1
  16. package/.output/public/_nuxt/{DrfFcngk.js → BIBdWmGh.js} +1 -1
  17. package/.output/public/_nuxt/{CfglFxLQ.js → BIDVPCgr.js} +1 -1
  18. package/.output/public/_nuxt/{CT4V-SdE.js → BJMwGHo7.js} +1 -1
  19. package/.output/public/_nuxt/{B-OC4Wzf.js → BKh6DDUh.js} +1 -1
  20. package/.output/public/_nuxt/{CGlRJg9T.js → BLDVl9Iw.js} +1 -1
  21. package/.output/public/_nuxt/{DMhhDVL0.js → BNgGNFV2.js} +1 -1
  22. package/.output/public/_nuxt/{CjE9xodL.js → BP-G5cXp.js} +1 -1
  23. package/.output/public/_nuxt/{ImQ5Dcjp.js → BS966b0P.js} +1 -1
  24. package/.output/public/_nuxt/{BIYjBgOJ.js → B_Oy26qU.js} +1 -1
  25. package/.output/public/_nuxt/Bdou58NY.js +1 -0
  26. package/.output/public/_nuxt/{CHFYZcjC.js → BjfaOtB-.js} +1 -1
  27. package/.output/public/_nuxt/{Dpdssse1.js → BlngscFe.js} +1 -1
  28. package/.output/public/_nuxt/{DB45HoaN.js → BsXv3P9A.js} +1 -1
  29. package/.output/public/_nuxt/{DNL5Q-iy.js → Buh85F8i.js} +1 -1
  30. package/.output/public/_nuxt/{DYFx7Tau.js → Bvi2huT8.js} +1 -1
  31. package/.output/public/_nuxt/{W2el5otm.js → BxlUlYz1.js} +1 -1
  32. package/.output/public/_nuxt/{BqQfmS94.js → ByJGqBjE.js} +1 -1
  33. package/.output/public/_nuxt/{D8dLCNO1.js → C-M7J4rh.js} +1 -1
  34. package/.output/public/_nuxt/{DDgsZmht.js → C04-ICJx.js} +1 -1
  35. package/.output/public/_nuxt/{Ce00XEKL.js → C2Czrs1u.js} +1 -1
  36. package/.output/public/_nuxt/{C4zVAAUp.js → C5Feel6b.js} +1 -1
  37. package/.output/public/_nuxt/{jgZoykhT.js → CAVSZeVY.js} +1 -1
  38. package/.output/public/_nuxt/{BblWMS7J.js → CAcViJl9.js} +3 -3
  39. package/.output/public/_nuxt/{B2Wngdut.js → CBge6eLY.js} +1 -1
  40. package/.output/public/_nuxt/{lFU3Ma5J.js → CC8wYgAN.js} +1 -1
  41. package/.output/public/_nuxt/{yPPOBtqs.js → CEIpXOz0.js} +1 -1
  42. package/.output/public/_nuxt/CI85gLx4.js +1 -0
  43. package/.output/public/_nuxt/{CH3m0zKs.js → CJeCcjmd.js} +1 -1
  44. package/.output/public/_nuxt/{V_GiMERb.js → CJuYfiL1.js} +1 -1
  45. package/.output/public/_nuxt/{BWpduGRB.js → CNErkSjF.js} +1 -1
  46. package/.output/public/_nuxt/COII6plA.js +31 -0
  47. package/.output/public/_nuxt/{EzQMUIRl.js → CRCn6mdA.js} +1 -1
  48. package/.output/public/_nuxt/{w8sha2t6.js → CUtdecax.js} +1 -1
  49. package/.output/public/_nuxt/{CQi4GvAy.js → CYm7TuhP.js} +1 -1
  50. package/.output/public/_nuxt/{CM7fDldV.js → CbkolJXg.js} +1 -1
  51. package/.output/public/_nuxt/{DngnCd9Q.js → CeA2-eDW.js} +1 -1
  52. package/.output/public/_nuxt/CgY96xS_.js +1 -0
  53. package/.output/public/_nuxt/{BX-NC3FD.js → Ch9kUYU-.js} +1 -1
  54. package/.output/public/_nuxt/{DeGwWuWf.js → Ch_iEFHi.js} +1 -1
  55. package/.output/public/_nuxt/{D_dxq6Av.js → Co6sZiuo.js} +1 -1
  56. package/.output/public/_nuxt/{BlVXGJOG.js → Cu7zvuYQ.js} +1 -1
  57. package/.output/public/_nuxt/CwcaMelw.js +1 -0
  58. package/.output/public/_nuxt/{s10hyhzI.js → CxFAImHj.js} +1 -1
  59. package/.output/public/_nuxt/{DcIKg-oA.js → D-yya4MN.js} +29 -29
  60. package/.output/public/_nuxt/{CCwJzmTT.js → D0NZRXnm.js} +1 -1
  61. package/.output/public/_nuxt/{CB2XoHaK.js → D6XDbGbI.js} +1 -1
  62. package/.output/public/_nuxt/{DEBj_roB.js → D8JEzGOU.js} +1 -1
  63. package/.output/public/_nuxt/{DsHltPpv.js → D8wbEppA.js} +1 -1
  64. package/.output/public/_nuxt/{Dgh1FhxQ.js → D9h-2lVu.js} +1 -1
  65. package/.output/public/_nuxt/{B1ydsdXg.js → DANeHzIE.js} +1 -1
  66. package/.output/public/_nuxt/{C9JT2-RE.js → DBku6oAz.js} +1 -1
  67. package/.output/public/_nuxt/{BeMg7yb6.js → DDXEeq1n.js} +2 -2
  68. package/.output/public/_nuxt/DESxUB7o.js +1 -0
  69. package/.output/public/_nuxt/{CBy17iCN.js → DHG-KJyJ.js} +1 -1
  70. package/.output/public/_nuxt/DHXbNYui.js +1 -0
  71. package/.output/public/_nuxt/{bJGrilFb.js → DI0LPDTd.js} +1 -1
  72. package/.output/public/_nuxt/{RpDfSk0l.js → DKSZP8GP.js} +1 -1
  73. package/.output/public/_nuxt/{C1GKs4YV.js → DL1qmlP8.js} +1 -1
  74. package/.output/public/_nuxt/{mtBjWkj4.js → DN4-koTG.js} +1 -1
  75. package/.output/public/_nuxt/{Bc7Kpanq.js → DO1jmufl.js} +1 -1
  76. package/.output/public/_nuxt/{B9vFZSzU.js → DOuNj3Jn.js} +1 -1
  77. package/.output/public/_nuxt/{UowwUtRH.js → DPUO8R7l.js} +1 -1
  78. package/.output/public/_nuxt/{CSIDbD5d.js → DahDvheq.js} +1 -1
  79. package/.output/public/_nuxt/{D33qa5aT.js → DbHH7dzg.js} +1 -1
  80. package/.output/public/_nuxt/{DD6NieRw.js → DbehhcO7.js} +23 -23
  81. package/.output/public/_nuxt/{B-cBPXHS.js → DeTqfKUd.js} +1 -1
  82. package/.output/public/_nuxt/{C6ajLfO0.js → Df85byjM.js} +1 -1
  83. package/.output/public/_nuxt/{BY0VC_fp.js → DizXDCtS.js} +1 -1
  84. package/.output/public/_nuxt/{lPZuSUw2.js → DjKlFOO8.js} +1 -1
  85. package/.output/public/_nuxt/{CV3uHXW4.js → DjLd7E2v.js} +1 -1
  86. package/.output/public/_nuxt/{D0TQTmc_.js → DnBjpGBx.js} +1 -1
  87. package/.output/public/_nuxt/{BZOLz5Xw.js → DnQ4Mwo_.js} +1 -1
  88. package/.output/public/_nuxt/{RCyqQNC4.js → DqYakCiF.js} +1 -1
  89. package/.output/public/_nuxt/{BkHJ3kuB.js → DqunUhPG.js} +1 -1
  90. package/.output/public/_nuxt/{DdjYB9eX.js → Dr1ZFb1n.js} +1 -1
  91. package/.output/public/_nuxt/Dsis422h.js +1 -0
  92. package/.output/public/_nuxt/{BorA7uj6.js → Du_4PNZI.js} +1 -1
  93. package/.output/public/_nuxt/{BgFbw5aK.js → DvTZ16yM.js} +1 -1
  94. package/.output/public/_nuxt/{QZbgg6bx.js → Dvt9REJL.js} +1 -1
  95. package/.output/public/_nuxt/{DghZRCwT.js → DxMpy-ot.js} +1 -1
  96. package/.output/public/_nuxt/{CqwK0iC2.js → DyLnyCs4.js} +1 -1
  97. package/.output/public/_nuxt/{BcbezgEJ.js → FakvzamF.js} +1 -1
  98. package/.output/public/_nuxt/LcPL138_.js +1 -0
  99. package/.output/public/_nuxt/{C0kVUAwR.js → P7T0pdFZ.js} +1 -1
  100. package/.output/public/_nuxt/{CM4UzWO5.js → Rhi-lAfN.js} +1 -1
  101. package/.output/public/_nuxt/{CwEAH09c.js → S7ftI9sn.js} +1 -1
  102. package/.output/public/_nuxt/{C4fd0pgB.js → T01BrTsW.js} +1 -1
  103. package/.output/public/_nuxt/{CmROOZW3.js → WqpfmT0s.js} +1 -1
  104. package/.output/public/_nuxt/XhSVj1eQ.js +16 -0
  105. package/.output/public/_nuxt/{D6FGhPpz.js → _fXjN5Pd.js} +1 -1
  106. package/.output/public/_nuxt/{CvFBHqKj.js → agpUpIJe.js} +1 -1
  107. package/.output/public/_nuxt/builds/latest.json +1 -1
  108. package/.output/public/_nuxt/builds/meta/39c2c89f-bb28-470e-b95a-b7776149dc9f.json +1 -0
  109. package/.output/public/_nuxt/{CsRqTS8p.js → dDyWVWO8.js} +1 -1
  110. package/.output/public/_nuxt/entry.BeX6Jkel.css +1 -0
  111. package/.output/public/_nuxt/{Ck7gJ0Ru.js → f6qCSD-K.js} +1 -1
  112. package/.output/public/_nuxt/{CRtMS55w.js → goG5gpyv.js} +1 -1
  113. package/.output/public/_nuxt/{B3ZoiMh5.js → hbGkF-4Z.js} +1 -1
  114. package/.output/public/_nuxt/{CkVRbNxk.js → jDSo3fNb.js} +1 -1
  115. package/.output/public/_nuxt/{CvrjITPr.js → k4d17TZz.js} +1 -1
  116. package/.output/public/_nuxt/{FrxNy5Hb.js → m4Dxzyfa.js} +2 -2
  117. package/.output/public/_nuxt/{Dzy2Amcc.js → ndyknmtb.js} +4 -4
  118. package/.output/public/_nuxt/{DuvFgQqu.js → vIV0z0PD.js} +1 -1
  119. package/.output/public/_nuxt/{DI-I25kb.js → wTs8ybMd.js} +1 -1
  120. package/.output/public/_nuxt/{Ds4LpS8e.js → ymlmmOzU.js} +1 -1
  121. package/.output/server/chunks/_/tables.factory.mjs +133 -43
  122. package/.output/server/chunks/_/tables.factory.mjs.map +1 -1
  123. package/.output/server/chunks/build/client.manifest.mjs +817 -806
  124. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  125. package/.output/server/chunks/nitro/nitro.mjs +701 -694
  126. package/.output/server/package.json +1 -1
  127. package/package.json +1 -1
  128. package/.output/public/_nuxt/B3jyHGmo.js +0 -1
  129. package/.output/public/_nuxt/BFxd7ZWZ.js +0 -1
  130. package/.output/public/_nuxt/BI0OYmAG.js +0 -1
  131. package/.output/public/_nuxt/BMwuBt1W.js +0 -1
  132. package/.output/public/_nuxt/Cv8aMucD.js +0 -31
  133. package/.output/public/_nuxt/DA2L1Ivx.js +0 -1
  134. package/.output/public/_nuxt/DBIf1geQ.js +0 -1
  135. package/.output/public/_nuxt/DX42Brjy.js +0 -1
  136. package/.output/public/_nuxt/DYBPW385.js +0 -1
  137. package/.output/public/_nuxt/builds/meta/657bdee4-fa56-4862-bc13-309345429302.json +0 -1
  138. package/.output/public/_nuxt/entry.CQwtqNMg.css +0 -1
  139. package/.output/public/_nuxt/ngeX9iiO.js +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2026-06-23T01:01:35.053Z",
2
+ "date": "2026-06-30T15:23:56.036Z",
3
3
  "preset": "node-server",
4
4
  "framework": {
5
5
  "name": "nuxt",
@@ -1 +1 @@
1
- import{d as _,a0 as y,q as c,o as f,w as n,E as b,a1 as C,a2 as D,u as e,a3 as N,a4 as q,a5 as M,i as p,s as $,p as z,bg as k,a as r,b8 as I,ae as R,b9 as H,ba as O,n as S,b as T,f as v,_ as F,t as g,bb as U,bc as W,bd as j,be as J}from"./DD6NieRw.js";import{M as K,a as V}from"./DuvFgQqu.js";import{D as B,b as Y,a as Z,c as G}from"./mtBjWkj4.js";import{_ as X}from"./C1GKs4YV.js";var A=_({__name:"DropdownMenuLabel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(a){const o=a;return y(),(s,t)=>(f(),c(e(K),C(D(o)),{default:n(()=>[b(s.$slots,"default")]),_:3},16))}}),Q=A,ee=_({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(a){const o=a;return y(),(s,t)=>(f(),c(e(V),C(D(o)),{default:n(()=>[b(s.$slots,"default")]),_:3},16))}}),ae=ee;const le=_({__name:"DropdownMenuLabel",props:{asChild:{type:Boolean},as:{},class:{},inset:{type:Boolean}},setup(a){const o=a,s=N(o,"class","inset"),t=q(s),d=M(B,p(()=>"default"));return(l,h)=>(f(),c(e(Q),$({"data-slot":"dropdown-menu-label","data-size":e(d),"data-inset":l.inset?"":void 0},e(t),{class:e(z)("font-medium",e(Y)[e(d)],l.inset&&e(Z)[e(d)],o.class)}),{default:n(()=>[b(l.$slots,"default")]),_:3},16,["data-size","data-inset","class"]))}}),de=_({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const o=a,s=p(()=>{const{class:d,...l}=o;return l}),t=M(B,p(()=>"default"));return(d,l)=>(f(),c(e(ae),$({"data-slot":"dropdown-menu-separator","data-size":e(t)},s.value,{class:e(z)("bg-border h-px",e(G)[e(t)],o.class)}),null,16,["data-size","class"]))}});var se=(a=>(a.Data="Data",a.Structure="Structure",a.Erd="Erd",a))(se||{}),u=(a=>(a.Save="save",a.Delete="delete",a))(u||{});const ie=_({__name:"SafeModeConfirmDialog",props:{open:{type:Boolean},sql:{},type:{},loading:{type:Boolean},dangerous:{type:Boolean}},emits:["update:open","confirm","cancel"],setup(a,{emit:o}){const s=a,t=o,d=p(()=>s.dangerous?s.type===u.Save?"High-Risk: Confirm Save":"High-Risk: Confirm Delete":s.type===u.Save?"Confirm Save":"Confirm Delete"),l=p(()=>s.dangerous?"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:":s.type===u.Save?"The following SQL will be executed to save your changes:":"The following SQL will be executed to delete the selected rows:"),h=p(()=>s.type===u.Save?"Save":"Delete"),E=()=>{t("confirm"),t("update:open",!1)},L=()=>{t("cancel"),t("update:open",!1)};return(i,m)=>{const w=F,P=X;return f(),c(e(k),{open:i.open,"onUpdate:open":m[0]||(m[0]=x=>t("update:open",x))},{default:n(()=>[r(e(I),{size:"preview"},{default:n(()=>[r(e(R),{visible:!!i.loading},null,8,["visible"]),r(e(H),null,{default:n(()=>[r(e(O),{class:S(["flex items-center gap-2 text-base font-medium",{"text-destructive":i.dangerous}])},{default:n(()=>[i.dangerous?(f(),c(w,{key:0,name:"lucide:alert-triangle",class:"size-5 text-destructive"})):T("",!0),v(" "+g(e(d)),1)]),_:1},8,["class"]),r(e(U),{class:S({"text-destructive font-normal":i.dangerous})},{default:n(()=>[v(g(e(l)),1)]),_:1},8,["class"])]),_:1}),r(P,{code:i.sql,"show-copy-button":"","max-height":"24rem"},null,8,["code"]),r(e(W),null,{default:n(()=>[r(e(j),{class:"border font-normal",onClick:L},{default:n(()=>m[1]||(m[1]=[v(" Cancel ")])),_:1}),r(e(J),{class:"border font-normal flex gap-1",onClick:E},{default:n(()=>[r(w,{name:i.type===e(u).Save?"lucide:save":"lucide:trash-2",class:"size-4"},null,8,["name"]),v(" "+g(e(h)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])}}});export{se as Q,ie as _,u as a,le as b,de as c};
1
+ import{d as _,a0 as y,q as c,o as f,w as n,E as b,a1 as C,a2 as D,u as e,a3 as N,a4 as q,a5 as M,i as p,s as $,p as z,bg as k,a as r,b8 as I,ae as R,b9 as H,ba as O,n as S,b as T,f as v,_ as F,t as g,bb as U,bc as W,bd as j,be as J}from"./DbehhcO7.js";import{M as K,a as V}from"./vIV0z0PD.js";import{D as B,b as Y,a as Z,c as G}from"./DN4-koTG.js";import{_ as X}from"./DL1qmlP8.js";var A=_({__name:"DropdownMenuLabel",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(a){const o=a;return y(),(s,t)=>(f(),c(e(K),C(D(o)),{default:n(()=>[b(s.$slots,"default")]),_:3},16))}}),Q=A,ee=_({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(a){const o=a;return y(),(s,t)=>(f(),c(e(V),C(D(o)),{default:n(()=>[b(s.$slots,"default")]),_:3},16))}}),ae=ee;const le=_({__name:"DropdownMenuLabel",props:{asChild:{type:Boolean},as:{},class:{},inset:{type:Boolean}},setup(a){const o=a,s=N(o,"class","inset"),t=q(s),d=M(B,p(()=>"default"));return(l,h)=>(f(),c(e(Q),$({"data-slot":"dropdown-menu-label","data-size":e(d),"data-inset":l.inset?"":void 0},e(t),{class:e(z)("font-medium",e(Y)[e(d)],l.inset&&e(Z)[e(d)],o.class)}),{default:n(()=>[b(l.$slots,"default")]),_:3},16,["data-size","data-inset","class"]))}}),de=_({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const o=a,s=p(()=>{const{class:d,...l}=o;return l}),t=M(B,p(()=>"default"));return(d,l)=>(f(),c(e(ae),$({"data-slot":"dropdown-menu-separator","data-size":e(t)},s.value,{class:e(z)("bg-border h-px",e(G)[e(t)],o.class)}),null,16,["data-size","class"]))}});var se=(a=>(a.Data="Data",a.Structure="Structure",a.Erd="Erd",a))(se||{}),u=(a=>(a.Save="save",a.Delete="delete",a))(u||{});const ie=_({__name:"SafeModeConfirmDialog",props:{open:{type:Boolean},sql:{},type:{},loading:{type:Boolean},dangerous:{type:Boolean}},emits:["update:open","confirm","cancel"],setup(a,{emit:o}){const s=a,t=o,d=p(()=>s.dangerous?s.type===u.Save?"High-Risk: Confirm Save":"High-Risk: Confirm Delete":s.type===u.Save?"Confirm Save":"Confirm Delete"),l=p(()=>s.dangerous?"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:":s.type===u.Save?"The following SQL will be executed to save your changes:":"The following SQL will be executed to delete the selected rows:"),h=p(()=>s.type===u.Save?"Save":"Delete"),E=()=>{t("confirm"),t("update:open",!1)},L=()=>{t("cancel"),t("update:open",!1)};return(i,m)=>{const w=F,P=X;return f(),c(e(k),{open:i.open,"onUpdate:open":m[0]||(m[0]=x=>t("update:open",x))},{default:n(()=>[r(e(I),{size:"preview"},{default:n(()=>[r(e(R),{visible:!!i.loading},null,8,["visible"]),r(e(H),null,{default:n(()=>[r(e(O),{class:S(["flex items-center gap-2 text-base font-medium",{"text-destructive":i.dangerous}])},{default:n(()=>[i.dangerous?(f(),c(w,{key:0,name:"lucide:alert-triangle",class:"size-5 text-destructive"})):T("",!0),v(" "+g(e(d)),1)]),_:1},8,["class"]),r(e(U),{class:S({"text-destructive font-normal":i.dangerous})},{default:n(()=>[v(g(e(l)),1)]),_:1},8,["class"])]),_:1}),r(P,{code:i.sql,"show-copy-button":"","max-height":"24rem"},null,8,["code"]),r(e(W),null,{default:n(()=>[r(e(j),{class:"border font-normal",onClick:L},{default:n(()=>m[1]||(m[1]=[v(" Cancel ")])),_:1}),r(e(J),{class:"border font-normal flex gap-1",onClick:E},{default:n(()=>[r(w,{name:i.type===e(u).Save?"lucide:save":"lucide:trash-2",class:"size-4"},null,8,["name"]),v(" "+g(e(h)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])}}});export{se as Q,ie as _,u as a,le as b,de as c};
@@ -1 +1 @@
1
- import{aS as $,r as m,aH as O,i as p,K as E,at as V,am as K,ah as _,d as F,c as B,o as R,n as P,q as N,b as U,a as C,w as D,f as j,t as w,u as x,bj as q,k as A,m as W,e as g,z,F as L,x as H,B as M}from"./DD6NieRw.js";var G=(a=>(a.Tree="tree",a.List="list",a))(G||{});const Y=(a,s=0)=>({connectionId:a,selectedDatabaseIndex:s,viewMode:"tree",keyPattern:"*",keyTypeFilter:[],selectedKey:null,activeTool:"browser"}),J=$("redis-workspace",()=>{const a=m({}),s=(d,n=0)=>(a.value[d]||(a.value[d]=Y(d,n)),a.value[d]);return{sessions:a,ensureSession:s,patchSession:(d,n)=>{Object.assign(s(d),n)}}}),Q=a=>{const s=Number.parseInt(a||"0",10);return Number.isFinite(s)?s:0},X=a=>{var s,t,d;if(typeof a=="string")return a;if(a&&typeof a=="object"){const n=a;return((s=n.data)==null?void 0:s.message)||((d=(t=n.response)==null?void 0:t._data)==null?void 0:d.message)||n.message||"Request failed."}return"Request failed."},Z=(a,s)=>{const t=X(a);return/READONLY/i.test(t)?"This Redis endpoint is read-only. Value updates are unavailable.":/NOPERM|NOAUTH|WRONGPASS|ACL/i.test(t)?"The connected Redis account does not have permission to edit values.":""},T=a=>({method:a.method,stringConnection:a.connectionString,host:a.host,port:a.port,username:a.username,password:a.password,database:a.database,ssl:a.ssl,ssh:a.ssh});function ee({connection:a,session:s,store:t}){const d=m([]),n=m([]),r=O(null),v=m(!1),f=m(!1),l=m(!1),o=m("");let e=0;const c=p(()=>!!r.value&&!o.value),y=async()=>{if(!a.value||!s.value){d.value=[],n.value=[],r.value=null;return}v.value=!0;try{const i=await $fetch("/api/redis/browser",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,keyPattern:s.value.keyPattern}});d.value=i.keys,n.value=i.databases,o.value=""}finally{v.value=!1}},b=async()=>{if(!a.value||!s.value){n.value=[];return}n.value=await $fetch("/api/redis/browser/databases",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex}})},u=async(i=(k=>(k=s.value)==null?void 0:k.selectedKey)())=>{if(!a.value||!s.value||!i){r.value=null,o.value="",f.value=!1;return}const S=++e;r.value=null,f.value=!0;try{const I=await $fetch("/api/redis/browser/value",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,key:i}});if(S!==e)return;r.value=I,o.value=""}finally{S===e&&(f.value=!1)}},h=async i=>{s.value&&t.patchSession(s.value.connectionId,{selectedKey:i,activeTool:"browser"})};return{keys:d,databases:n,selectedKeyDetail:r,loadingKeys:v,loadingSelectedKeyDetail:f,savingValue:l,editUnavailableReason:o,canEditSelectedValue:c,refreshKeys:y,refreshDatabases:b,refreshSelectedKeyDetail:u,openKey:h,focusKey:async i=>{s.value&&(await h(i),await u(i))},saveSelectedValue:async i=>{var k;if(!(!a.value||!((k=s.value)!=null&&k.selectedKey))){l.value=!0;try{r.value=await $fetch("/api/redis/browser/value",{method:"PATCH",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,key:s.value.selectedKey,previewKind:i.previewKind,stringFormat:i.stringFormat,tableKind:i.tableKind,ttlSeconds:i.ttlSeconds,value:i.value}}),o.value="",E.success("Redis key saved successfully",{description:`Updated ${s.value.selectedKey}`})}catch(S){const I=Z(S);if(I){o.value=I;return}console.error("[useRedisWorkspace] Failed to save Redis value",S)}finally{l.value=!1}}}}}function ue(a){const s=V(a.connection),t=a.tabInfo?V(a.tabInfo):void 0,d=a.mode??"browser",n=J(),r=p(()=>{var e;return(e=s.value)!=null&&e.id?n.ensureSession(s.value.id,Q(s.value.database)):null}),v=p({get:()=>{var e;return((e=r.value)==null?void 0:e.selectedDatabaseIndex)??0},set:e=>{r.value&&n.patchSession(r.value.connectionId,{selectedDatabaseIndex:e})}}),f=p({get:()=>{var e;return((e=r.value)==null?void 0:e.keyPattern)??"*"},set:e=>{r.value&&n.patchSession(r.value.connectionId,{keyPattern:e||"*"})}}),l=ee({connection:s,session:r,store:n}),o=m(!1);return K(()=>t==null?void 0:t.value,async e=>{var c,y,b,u;if(!(!r.value||!e)){if(e.type===_.RedisPubSub){n.patchSession(r.value.connectionId,{activeTool:"pubsub",selectedDatabaseIndex:typeof((c=e.metadata)==null?void 0:c.databaseIndex)=="number"?e.metadata.databaseIndex:r.value.selectedDatabaseIndex}),l.refreshDatabases();return}o.value=!0;try{n.patchSession(r.value.connectionId,{activeTool:"browser",selectedDatabaseIndex:typeof((y=e.metadata)==null?void 0:y.databaseIndex)=="number"?e.metadata.databaseIndex:r.value.selectedDatabaseIndex,keyPattern:typeof((b=e.metadata)==null?void 0:b.keyPattern)=="string"?e.metadata.keyPattern:r.value.keyPattern,selectedKey:typeof((u=e.metadata)==null?void 0:u.selectedKey)=="string"?e.metadata.selectedKey:r.value.selectedKey}),await l.refreshKeys(),l.refreshSelectedKeyDetail()}finally{o.value=!1}}},{immediate:!0}),K(()=>{var e,c;return[(e=r.value)==null?void 0:e.selectedDatabaseIndex,(c=r.value)==null?void 0:c.keyPattern]},([e,c],y)=>{if(!(t!=null&&t.value)||t.value.type!==_.RedisBrowser||o.value)return;const[b,u]=y??[];e===b&&c===u||l.refreshKeys()}),K(()=>{var e;return(e=r.value)==null?void 0:e.selectedKey},(e,c)=>{!(t!=null&&t.value)||t.value.type!==_.RedisBrowser||o.value||e===c||l.refreshSelectedKeyDetail(e)}),K(()=>{var e;return(e=r.value)==null?void 0:e.selectedDatabaseIndex},(e,c)=>{if(e!==c){if(t!=null&&t.value){t.value.type===_.RedisPubSub&&l.refreshDatabases();return}d==="meta"&&l.refreshDatabases()}}),K(()=>{var e;return(e=s.value)==null?void 0:e.id},e=>{if(!(!e||t!=null&&t.value)){if(d==="meta"){l.refreshDatabases();return}l.refreshKeys()}},{immediate:!0}),{session:r,keys:l.keys,databases:l.databases,selectedKeyDetail:l.selectedKeyDetail,loadingKeys:l.loadingKeys,loadingSelectedKeyDetail:l.loadingSelectedKeyDetail,savingValue:l.savingValue,selectedDatabaseIndex:v,keyPattern:f,canEditSelectedValue:l.canEditSelectedValue,editUnavailableReason:l.editUnavailableReason,refreshKeys:l.refreshKeys,openKey:l.openKey,focusKey:l.focusKey,saveSelectedValue:l.saveSelectedValue}}const ae={class:"flex min-w-0 items-center gap-1.5 pr-5 text-left"},te={class:"flex min-w-0 items-center gap-2"},se={class:"truncate"},le={class:"text-xxs text-muted-foreground"},ie=F({__name:"RedisDBSelector",props:{databases:{},databaseIndex:{},compact:{type:Boolean},label:{},triggerId:{},triggerClass:{}},emits:["update:databaseIndex"],setup(a,{emit:s}){const t=a,d=s,n=p(()=>t.databases.length>0?t.databases:[{index:t.databaseIndex,label:`DB ${t.databaseIndex}`,keyCount:0,expires:0,avgTtl:null}]),r=p(()=>t.triggerId||"redis-db-index"),v=p(()=>n.value.find(l=>l.index===t.databaseIndex)??n.value[0]),f=p(()=>t.compact?["h-6! w-fit gap-1 px-2 text-xs",t.triggerClass].filter(Boolean).join(" "):["w-full",t.triggerClass].filter(Boolean).join(" "));return(l,o)=>{const e=W,c=M,y=z,b=A;return R(),B("div",{class:P(l.compact?"w-[132px]":"space-y-1")},[l.compact?U("",!0):(R(),N(x(q),{key:0,for:x(r)},{default:D(()=>[j(w(l.label||"Databases"),1)]),_:1},8,["for"])),C(b,{"model-value":String(l.databaseIndex),"onUpdate:modelValue":o[0]||(o[0]=u=>d("update:databaseIndex",Number(u)||0)),size:"sm"},{default:D(()=>[C(e,{id:x(r),class:P(x(f))},{default:D(()=>{var u,h;return[g("div",ae,[g("span",{class:P(l.compact?"truncate text-xs":"truncate text-sm")},w(((u=x(v))==null?void 0:u.label)||"Select DB"),3),g("span",{class:P(["shrink-0 text-muted-foreground",(l.compact,"text-xxs")])},w(((h=x(v))==null?void 0:h.keyCount)??0)+" keys ",3)])]}),_:1},8,["id","class"]),C(y,null,{default:D(()=>[(R(!0),B(L,null,H(x(n),u=>(R(),N(c,{key:u.index,value:String(u.index)},{default:D(()=>[g("div",te,[g("span",se,w(u.label),1),g("span",le,w(u.keyCount)+" keys ",1)])]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value"])],2)}}});export{G as R,ie as _,ue as u};
1
+ import{aS as $,r as m,aH as O,i as p,K as E,at as V,am as K,ah as _,d as F,c as B,o as R,n as P,q as N,b as U,a as C,w as D,f as j,t as w,u as x,bj as q,k as A,m as W,e as g,z,F as L,x as H,B as M}from"./DbehhcO7.js";var G=(a=>(a.Tree="tree",a.List="list",a))(G||{});const Y=(a,s=0)=>({connectionId:a,selectedDatabaseIndex:s,viewMode:"tree",keyPattern:"*",keyTypeFilter:[],selectedKey:null,activeTool:"browser"}),J=$("redis-workspace",()=>{const a=m({}),s=(d,n=0)=>(a.value[d]||(a.value[d]=Y(d,n)),a.value[d]);return{sessions:a,ensureSession:s,patchSession:(d,n)=>{Object.assign(s(d),n)}}}),Q=a=>{const s=Number.parseInt(a||"0",10);return Number.isFinite(s)?s:0},X=a=>{var s,t,d;if(typeof a=="string")return a;if(a&&typeof a=="object"){const n=a;return((s=n.data)==null?void 0:s.message)||((d=(t=n.response)==null?void 0:t._data)==null?void 0:d.message)||n.message||"Request failed."}return"Request failed."},Z=(a,s)=>{const t=X(a);return/READONLY/i.test(t)?"This Redis endpoint is read-only. Value updates are unavailable.":/NOPERM|NOAUTH|WRONGPASS|ACL/i.test(t)?"The connected Redis account does not have permission to edit values.":""},T=a=>({method:a.method,stringConnection:a.connectionString,host:a.host,port:a.port,username:a.username,password:a.password,database:a.database,ssl:a.ssl,ssh:a.ssh});function ee({connection:a,session:s,store:t}){const d=m([]),n=m([]),r=O(null),v=m(!1),f=m(!1),l=m(!1),o=m("");let e=0;const c=p(()=>!!r.value&&!o.value),y=async()=>{if(!a.value||!s.value){d.value=[],n.value=[],r.value=null;return}v.value=!0;try{const i=await $fetch("/api/redis/browser",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,keyPattern:s.value.keyPattern}});d.value=i.keys,n.value=i.databases,o.value=""}finally{v.value=!1}},b=async()=>{if(!a.value||!s.value){n.value=[];return}n.value=await $fetch("/api/redis/browser/databases",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex}})},u=async(i=(k=>(k=s.value)==null?void 0:k.selectedKey)())=>{if(!a.value||!s.value||!i){r.value=null,o.value="",f.value=!1;return}const S=++e;r.value=null,f.value=!0;try{const I=await $fetch("/api/redis/browser/value",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,key:i}});if(S!==e)return;r.value=I,o.value=""}finally{S===e&&(f.value=!1)}},h=async i=>{s.value&&t.patchSession(s.value.connectionId,{selectedKey:i,activeTool:"browser"})};return{keys:d,databases:n,selectedKeyDetail:r,loadingKeys:v,loadingSelectedKeyDetail:f,savingValue:l,editUnavailableReason:o,canEditSelectedValue:c,refreshKeys:y,refreshDatabases:b,refreshSelectedKeyDetail:u,openKey:h,focusKey:async i=>{s.value&&(await h(i),await u(i))},saveSelectedValue:async i=>{var k;if(!(!a.value||!((k=s.value)!=null&&k.selectedKey))){l.value=!0;try{r.value=await $fetch("/api/redis/browser/value",{method:"PATCH",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,key:s.value.selectedKey,previewKind:i.previewKind,stringFormat:i.stringFormat,tableKind:i.tableKind,ttlSeconds:i.ttlSeconds,value:i.value}}),o.value="",E.success("Redis key saved successfully",{description:`Updated ${s.value.selectedKey}`})}catch(S){const I=Z(S);if(I){o.value=I;return}console.error("[useRedisWorkspace] Failed to save Redis value",S)}finally{l.value=!1}}}}}function ue(a){const s=V(a.connection),t=a.tabInfo?V(a.tabInfo):void 0,d=a.mode??"browser",n=J(),r=p(()=>{var e;return(e=s.value)!=null&&e.id?n.ensureSession(s.value.id,Q(s.value.database)):null}),v=p({get:()=>{var e;return((e=r.value)==null?void 0:e.selectedDatabaseIndex)??0},set:e=>{r.value&&n.patchSession(r.value.connectionId,{selectedDatabaseIndex:e})}}),f=p({get:()=>{var e;return((e=r.value)==null?void 0:e.keyPattern)??"*"},set:e=>{r.value&&n.patchSession(r.value.connectionId,{keyPattern:e||"*"})}}),l=ee({connection:s,session:r,store:n}),o=m(!1);return K(()=>t==null?void 0:t.value,async e=>{var c,y,b,u;if(!(!r.value||!e)){if(e.type===_.RedisPubSub){n.patchSession(r.value.connectionId,{activeTool:"pubsub",selectedDatabaseIndex:typeof((c=e.metadata)==null?void 0:c.databaseIndex)=="number"?e.metadata.databaseIndex:r.value.selectedDatabaseIndex}),l.refreshDatabases();return}o.value=!0;try{n.patchSession(r.value.connectionId,{activeTool:"browser",selectedDatabaseIndex:typeof((y=e.metadata)==null?void 0:y.databaseIndex)=="number"?e.metadata.databaseIndex:r.value.selectedDatabaseIndex,keyPattern:typeof((b=e.metadata)==null?void 0:b.keyPattern)=="string"?e.metadata.keyPattern:r.value.keyPattern,selectedKey:typeof((u=e.metadata)==null?void 0:u.selectedKey)=="string"?e.metadata.selectedKey:r.value.selectedKey}),await l.refreshKeys(),l.refreshSelectedKeyDetail()}finally{o.value=!1}}},{immediate:!0}),K(()=>{var e,c;return[(e=r.value)==null?void 0:e.selectedDatabaseIndex,(c=r.value)==null?void 0:c.keyPattern]},([e,c],y)=>{if(!(t!=null&&t.value)||t.value.type!==_.RedisBrowser||o.value)return;const[b,u]=y??[];e===b&&c===u||l.refreshKeys()}),K(()=>{var e;return(e=r.value)==null?void 0:e.selectedKey},(e,c)=>{!(t!=null&&t.value)||t.value.type!==_.RedisBrowser||o.value||e===c||l.refreshSelectedKeyDetail(e)}),K(()=>{var e;return(e=r.value)==null?void 0:e.selectedDatabaseIndex},(e,c)=>{if(e!==c){if(t!=null&&t.value){t.value.type===_.RedisPubSub&&l.refreshDatabases();return}d==="meta"&&l.refreshDatabases()}}),K(()=>{var e;return(e=s.value)==null?void 0:e.id},e=>{if(!(!e||t!=null&&t.value)){if(d==="meta"){l.refreshDatabases();return}l.refreshKeys()}},{immediate:!0}),{session:r,keys:l.keys,databases:l.databases,selectedKeyDetail:l.selectedKeyDetail,loadingKeys:l.loadingKeys,loadingSelectedKeyDetail:l.loadingSelectedKeyDetail,savingValue:l.savingValue,selectedDatabaseIndex:v,keyPattern:f,canEditSelectedValue:l.canEditSelectedValue,editUnavailableReason:l.editUnavailableReason,refreshKeys:l.refreshKeys,openKey:l.openKey,focusKey:l.focusKey,saveSelectedValue:l.saveSelectedValue}}const ae={class:"flex min-w-0 items-center gap-1.5 pr-5 text-left"},te={class:"flex min-w-0 items-center gap-2"},se={class:"truncate"},le={class:"text-xxs text-muted-foreground"},ie=F({__name:"RedisDBSelector",props:{databases:{},databaseIndex:{},compact:{type:Boolean},label:{},triggerId:{},triggerClass:{}},emits:["update:databaseIndex"],setup(a,{emit:s}){const t=a,d=s,n=p(()=>t.databases.length>0?t.databases:[{index:t.databaseIndex,label:`DB ${t.databaseIndex}`,keyCount:0,expires:0,avgTtl:null}]),r=p(()=>t.triggerId||"redis-db-index"),v=p(()=>n.value.find(l=>l.index===t.databaseIndex)??n.value[0]),f=p(()=>t.compact?["h-6! w-fit gap-1 px-2 text-xs",t.triggerClass].filter(Boolean).join(" "):["w-full",t.triggerClass].filter(Boolean).join(" "));return(l,o)=>{const e=W,c=M,y=z,b=A;return R(),B("div",{class:P(l.compact?"w-[132px]":"space-y-1")},[l.compact?U("",!0):(R(),N(x(q),{key:0,for:x(r)},{default:D(()=>[j(w(l.label||"Databases"),1)]),_:1},8,["for"])),C(b,{"model-value":String(l.databaseIndex),"onUpdate:modelValue":o[0]||(o[0]=u=>d("update:databaseIndex",Number(u)||0)),size:"sm"},{default:D(()=>[C(e,{id:x(r),class:P(x(f))},{default:D(()=>{var u,h;return[g("div",ae,[g("span",{class:P(l.compact?"truncate text-xs":"truncate text-sm")},w(((u=x(v))==null?void 0:u.label)||"Select DB"),3),g("span",{class:P(["shrink-0 text-muted-foreground",(l.compact,"text-xxs")])},w(((h=x(v))==null?void 0:h.keyCount)??0)+" keys ",3)])]}),_:1},8,["id","class"]),C(y,null,{default:D(()=>[(R(!0),B(L,null,H(x(n),u=>(R(),N(c,{key:u.index,value:String(u.index)},{default:D(()=>[g("div",te,[g("span",se,w(u.label),1),g("span",le,w(u.keyCount)+" keys ",1)])]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value"])],2)}}});export{G as R,ie as _,ue as u};
@@ -1,4 +1,4 @@
1
- import{_ as X,an as j,ao as F,ap as Y,aq as H,l as i,c as V,ar as q,as as U,ai as $,at as z,aj as P,ah as K,au as Q,av as W,aw as Z}from"./Dzy2Amcc.js";import{i as x,G as B}from"./qsFoMdT2.js";import{b as L,m as A,l as I}from"./CQb_mUBo.js";import"./DD6NieRw.js";var ee=4;function ne(e){return L(e,ee)}function p(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:te(e),edges:se(e)};return x(e.graph())||(t.value=ne(e.graph())),t}function te(e){return A(e.nodes(),function(t){var n=e.node(t),o=e.parent(t),c={v:t};return x(n)||(c.value=n),x(o)||(c.parent=o),c})}function se(e){return A(e.edges(),function(t){var n=e.edge(t),o={v:t.v,w:t.w};return x(t.name)||(o.name=t.name),x(n)||(o.value=n),o})}var f=new Map,b=new Map,G=new Map,ie=X(()=>{b.clear(),G.clear(),f.clear()},"clear"),O=X((e,t)=>{const n=b.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),re=X((e,t)=>{const n=b.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||O(e.v,t)||O(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),J=X((e,t,n,o)=>{i.warn("Copying children of ",e,"root",o,"data",t.node(e),o);const c=t.children(e)||[];e!==o&&c.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",c),c.forEach(a=>{if(t.children(a).length>0)J(a,t,n,o);else{const r=t.node(a);i.info("cp ",a," to ",o," with parent ",e),n.setNode(a,r),o!==t.parent(a)&&(i.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==o&&a!==e?(i.debug("Setting parent",a,e),n.setParent(a,e)):(i.info("In copy ",e,"root",o,"data",t.node(e),o),i.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==o,"node!==clusterId",a!==e));const u=t.edges(a);i.debug("Copying Edges",u),u.forEach(l=>{i.info("Edge",l);const h=t.edge(l.v,l.w,l.name);i.info("Edge data",h,o);try{re(l,o)?(i.info("Copying as ",l.v,l.w,h,l.name),n.setEdge(l.v,l.w,h,l.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",o," clusterId:",e)}catch(C){i.error(C)}})}i.debug("Removing node",a),t.removeNode(a)})},"copy"),R=X((e,t)=>{const n=t.children(e);let o=[...n];for(const c of n)G.set(c,e),o=[...o,...R(c,t)];return o},"extractDescendants"),oe=X((e,t,n)=>{const o=e.edges().filter(l=>l.v===t||l.w===t),c=e.edges().filter(l=>l.v===n||l.w===n),a=o.map(l=>({v:l.v===t?n:l.v,w:l.w===t?t:l.w})),r=c.map(l=>({v:l.v,w:l.w}));return a.filter(l=>r.some(h=>l.v===h.v&&l.w===h.w))},"findCommonEdges"),D=X((e,t,n)=>{const o=t.children(e);if(i.trace("Searching children of id ",e,o),o.length<1)return e;let c;for(const a of o){const r=D(a,t,n),u=oe(t,n,r);if(r)if(u.length>0)c=r;else return r}return c},"findNonClusterChild"),k=X(e=>!f.has(e)||!f.get(e).externalConnections?e:f.has(e)?f.get(e).id:e,"getAnchorId"),ae=X((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",D(n,e,n)),b.set(n,R(n,e)),f.set(n,{id:D(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const o=e.children(n),c=e.edges();o.length>0?(i.debug("Cluster identified",n,b),c.forEach(a=>{const r=O(a.v,n),u=O(a.w,n);r^u&&(i.warn("Edge: ",a," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",b.get(n)),f.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,b)});for(let n of f.keys()){const o=f.get(n).id,c=e.parent(o);c!==n&&f.has(c)&&!f.get(c).externalConnections&&(f.get(n).id=c)}e.edges().forEach(function(n){const o=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let c=n.v,a=n.w;if(i.warn("Fix XXX",f,"ids:",n.v,n.w,"Translating: ",f.get(n.v)," --- ",f.get(n.w)),f.get(n.v)||f.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),c=k(n.v),a=k(n.w),e.removeEdge(n.v,n.w,n.name),c!==n.v){const r=e.parent(c);f.get(r).externalConnections=!0,o.fromCluster=n.v}if(a!==n.w){const r=e.parent(a);f.get(r).externalConnections=!0,o.toCluster=n.w}i.warn("Fix Replacing with XXX",c,a,n.name),e.setEdge(c,a,o,n.name)}}),i.warn("Adjusted Graph",p(e)),T(e,0),i.trace(f)},"adjustClustersAndEdges"),T=X((e,t)=>{var c,a;if(i.warn("extractor - ",t,p(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),o=!1;for(const r of n){const u=e.children(r);o=o||u.length>0}if(!o){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,f,f.has(r)&&!f.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!f.has(r))i.debug("Not a cluster",r,t);else if(!f.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";(a=(c=f.get(r))==null?void 0:c.clusterData)!=null&&a.dir&&(l=f.get(r).clusterData.dir,i.warn("Fixing dir",f.get(r).clusterData.dir,l));const h=new B({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",p(e)),J(r,e,h,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:f.get(r).clusterData,label:f.get(r).label,graph:h}),i.warn("New graph after copy node: (",r,")",p(h)),i.debug("Old graph after copy",p(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!f.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(f);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const u=e.node(r);i.warn(" Now next level",r,u),u!=null&&u.clusterNode&&T(u.graph,t+1)}},"extractor"),M=X((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(o=>{const c=e.children(o),a=M(e,c);n=[...n,...a]}),n},"sorter"),ce=X(e=>M(e,e.children()),"sortNodesByHierarchy"),_=X(async(e,t,n,o,c,a)=>{i.warn("Graph in recursive render:XAX",p(t),c);const r=t.graph().rankdir;i.trace("Dir in recursive render - dir:",r);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const l=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),C=u.insert("g").attr("class","edgeLabels"),g=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(d){const s=t.node(d);if(c!==void 0){const w=JSON.parse(JSON.stringify(c.clusterData));i.trace(`Setting data for parent cluster XXX
1
+ import{_ as X,an as j,ao as F,ap as Y,aq as H,l as i,c as V,ar as q,as as U,ai as $,at as z,aj as P,ah as K,au as Q,av as W,aw as Z}from"./ndyknmtb.js";import{i as x,G as B}from"./qsFoMdT2.js";import{b as L,m as A,l as I}from"./CQb_mUBo.js";import"./DbehhcO7.js";var ee=4;function ne(e){return L(e,ee)}function p(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:te(e),edges:se(e)};return x(e.graph())||(t.value=ne(e.graph())),t}function te(e){return A(e.nodes(),function(t){var n=e.node(t),o=e.parent(t),c={v:t};return x(n)||(c.value=n),x(o)||(c.parent=o),c})}function se(e){return A(e.edges(),function(t){var n=e.edge(t),o={v:t.v,w:t.w};return x(t.name)||(o.name=t.name),x(n)||(o.value=n),o})}var f=new Map,b=new Map,G=new Map,ie=X(()=>{b.clear(),G.clear(),f.clear()},"clear"),O=X((e,t)=>{const n=b.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),re=X((e,t)=>{const n=b.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||O(e.v,t)||O(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),J=X((e,t,n,o)=>{i.warn("Copying children of ",e,"root",o,"data",t.node(e),o);const c=t.children(e)||[];e!==o&&c.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",c),c.forEach(a=>{if(t.children(a).length>0)J(a,t,n,o);else{const r=t.node(a);i.info("cp ",a," to ",o," with parent ",e),n.setNode(a,r),o!==t.parent(a)&&(i.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==o&&a!==e?(i.debug("Setting parent",a,e),n.setParent(a,e)):(i.info("In copy ",e,"root",o,"data",t.node(e),o),i.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==o,"node!==clusterId",a!==e));const u=t.edges(a);i.debug("Copying Edges",u),u.forEach(l=>{i.info("Edge",l);const h=t.edge(l.v,l.w,l.name);i.info("Edge data",h,o);try{re(l,o)?(i.info("Copying as ",l.v,l.w,h,l.name),n.setEdge(l.v,l.w,h,l.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",o," clusterId:",e)}catch(C){i.error(C)}})}i.debug("Removing node",a),t.removeNode(a)})},"copy"),R=X((e,t)=>{const n=t.children(e);let o=[...n];for(const c of n)G.set(c,e),o=[...o,...R(c,t)];return o},"extractDescendants"),oe=X((e,t,n)=>{const o=e.edges().filter(l=>l.v===t||l.w===t),c=e.edges().filter(l=>l.v===n||l.w===n),a=o.map(l=>({v:l.v===t?n:l.v,w:l.w===t?t:l.w})),r=c.map(l=>({v:l.v,w:l.w}));return a.filter(l=>r.some(h=>l.v===h.v&&l.w===h.w))},"findCommonEdges"),D=X((e,t,n)=>{const o=t.children(e);if(i.trace("Searching children of id ",e,o),o.length<1)return e;let c;for(const a of o){const r=D(a,t,n),u=oe(t,n,r);if(r)if(u.length>0)c=r;else return r}return c},"findNonClusterChild"),k=X(e=>!f.has(e)||!f.get(e).externalConnections?e:f.has(e)?f.get(e).id:e,"getAnchorId"),ae=X((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",D(n,e,n)),b.set(n,R(n,e)),f.set(n,{id:D(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const o=e.children(n),c=e.edges();o.length>0?(i.debug("Cluster identified",n,b),c.forEach(a=>{const r=O(a.v,n),u=O(a.w,n);r^u&&(i.warn("Edge: ",a," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",b.get(n)),f.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,b)});for(let n of f.keys()){const o=f.get(n).id,c=e.parent(o);c!==n&&f.has(c)&&!f.get(c).externalConnections&&(f.get(n).id=c)}e.edges().forEach(function(n){const o=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let c=n.v,a=n.w;if(i.warn("Fix XXX",f,"ids:",n.v,n.w,"Translating: ",f.get(n.v)," --- ",f.get(n.w)),f.get(n.v)||f.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),c=k(n.v),a=k(n.w),e.removeEdge(n.v,n.w,n.name),c!==n.v){const r=e.parent(c);f.get(r).externalConnections=!0,o.fromCluster=n.v}if(a!==n.w){const r=e.parent(a);f.get(r).externalConnections=!0,o.toCluster=n.w}i.warn("Fix Replacing with XXX",c,a,n.name),e.setEdge(c,a,o,n.name)}}),i.warn("Adjusted Graph",p(e)),T(e,0),i.trace(f)},"adjustClustersAndEdges"),T=X((e,t)=>{var c,a;if(i.warn("extractor - ",t,p(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),o=!1;for(const r of n){const u=e.children(r);o=o||u.length>0}if(!o){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,f,f.has(r)&&!f.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!f.has(r))i.debug("Not a cluster",r,t);else if(!f.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";(a=(c=f.get(r))==null?void 0:c.clusterData)!=null&&a.dir&&(l=f.get(r).clusterData.dir,i.warn("Fixing dir",f.get(r).clusterData.dir,l));const h=new B({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",p(e)),J(r,e,h,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:f.get(r).clusterData,label:f.get(r).label,graph:h}),i.warn("New graph after copy node: (",r,")",p(h)),i.debug("Old graph after copy",p(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!f.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(f);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const u=e.node(r);i.warn(" Now next level",r,u),u!=null&&u.clusterNode&&T(u.graph,t+1)}},"extractor"),M=X((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(o=>{const c=e.children(o),a=M(e,c);n=[...n,...a]}),n},"sorter"),ce=X(e=>M(e,e.children()),"sortNodesByHierarchy"),_=X(async(e,t,n,o,c,a)=>{i.warn("Graph in recursive render:XAX",p(t),c);const r=t.graph().rankdir;i.trace("Dir in recursive render - dir:",r);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const l=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),C=u.insert("g").attr("class","edgeLabels"),g=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(d){const s=t.node(d);if(c!==void 0){const w=JSON.parse(JSON.stringify(c.clusterData));i.trace(`Setting data for parent cluster XXX
2
2
  Node.id = `,d,`
3
3
  data=`,w.height,`
4
4
  Parent cluster`,c.height),t.setNode(c.id,w),t.parent(d)||(i.trace("Setting parent",d,c.id),t.setParent(d,c.id,w))}if(i.info("(Insert) Node XXX"+d+": "+JSON.stringify(t.node(d))),s!=null&&s.clusterNode){i.info("Cluster identified XBX",d,s.width,t.node(d));const{ranksep:w,nodesep:m}=t.graph();s.graph.setGraph({...s.graph.graph(),ranksep:w+25,nodesep:m});const N=await _(g,s.graph,n,o,t.node(d),a),S=N.elem;q(s,S),s.diff=N.diff||0,i.info("New compound node after recursive render XAX",d,"width",s.width,"height",s.height),U(S,s)}else t.children(d).length>0?(i.trace("Cluster - the non recursive path XBX",d,s.id,s,s.width,"Graph:",t),i.trace(D(s.id,t)),f.set(s.id,{id:D(s.id,t),node:s})):(i.trace("Node - the non recursive path XAX",d,g,t.node(d),r),await $(g,t.node(d),{config:a,dir:r}))})),await X(async()=>{const d=t.edges().map(async function(s){const w=t.edge(s.v,s.w,s.name);i.info("Edge "+s.v+" -> "+s.w+": "+JSON.stringify(s)),i.info("Edge "+s.v+" -> "+s.w+": ",s," ",JSON.stringify(t.edge(s))),i.info("Fix",f,"ids:",s.v,s.w,"Translating: ",f.get(s.v),f.get(s.w)),await Z(C,w)});await Promise.all(d)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(p(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),I(t),i.info("Graph after layout:",JSON.stringify(p(t)));let E=0,{subGraphTitleTotalMargin:y}=z(a);return await Promise.all(ce(t).map(async function(d){var w;const s=t.node(d);if(i.info("Position XBX => "+d+": ("+s.x,","+s.y,") width: ",s.width," height: ",s.height),s!=null&&s.clusterNode)s.y+=y,i.info("A tainted cluster node XBX1",d,s.id,s.width,s.height,s.x,s.y,t.parent(d)),f.get(s.id).node=s,P(s);else if(t.children(d).length>0){i.info("A pure cluster node XBX1",d,s.id,s.x,s.y,s.width,s.height,t.parent(d)),s.height+=y,t.node(s.parentId);const m=(s==null?void 0:s.padding)/2||0,N=((w=s==null?void 0:s.labelBBox)==null?void 0:w.height)||0,S=N-m||0;i.debug("OffsetY",S,"labelHeight",N,"halfPadding",m),await K(l,s),f.get(s.id).node=s}else{const m=t.node(s.parentId);s.y+=y/2,i.info("A regular node XBX1 - using the padding",s.id,"parent",s.parentId,s.width,s.height,s.x,s.y,"offsetY",s.offsetY,"parent",m,m==null?void 0:m.offsetY,s),P(s)}})),t.edges().forEach(function(d){const s=t.edge(d);i.info("Edge "+d.v+" -> "+d.w+": "+JSON.stringify(s),s),s.points.forEach(S=>S.y+=y/2);const w=t.node(d.v);var m=t.node(d.w);const N=Q(h,s,f,n,w,m,o);W(s,N)}),t.nodes().forEach(function(d){const s=t.node(d);i.info(d,s.type,s.diff),s.isGroup&&(E=s.diff)}),i.warn("Returning from recursive render XAX",u,E),{elem:u,diff:E}},"recursiveRender"),ge=X(async(e,t)=>{var a,r,u,l,h,C;const n=new B({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:((a=e.config)==null?void 0:a.nodeSpacing)||((u=(r=e.config)==null?void 0:r.flowchart)==null?void 0:u.nodeSpacing)||e.nodeSpacing,ranksep:((l=e.config)==null?void 0:l.rankSpacing)||((C=(h=e.config)==null?void 0:h.flowchart)==null?void 0:C.rankSpacing)||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),o=t.select("g");j(o,e.markers,e.type,e.diagramId),F(),Y(),H(),ie(),e.nodes.forEach(g=>{n.setNode(g.id,{...g}),g.parentId&&n.setParent(g.id,g.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(g=>{if(g.start===g.end){const v=g.start,E=v+"---"+v+"---1",y=v+"---"+v+"---2",d=n.node(v);n.setNode(E,{domId:E,id:E,parentId:d.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(E,d.parentId),n.setNode(y,{domId:y,id:y,parentId:d.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(y,d.parentId);const s=structuredClone(g),w=structuredClone(g),m=structuredClone(g);s.label="",s.arrowTypeEnd="none",s.id=v+"-cyclic-special-1",w.arrowTypeStart="none",w.arrowTypeEnd="none",w.id=v+"-cyclic-special-mid",m.label="",d.isGroup&&(s.fromCluster=v,m.toCluster=v),m.id=v+"-cyclic-special-2",m.arrowTypeStart="none",n.setEdge(v,E,s,v+"-cyclic-special-0"),n.setEdge(E,y,w,v+"-cyclic-special-1"),n.setEdge(y,v,m,v+"-cyc<lic-special-2")}else n.setEdge(g.start,g.end,{...g},g.id)}),i.warn("Graph at first:",JSON.stringify(p(n))),ae(n),i.warn("Graph after XAX:",JSON.stringify(p(n)));const c=V();await _(o,n,e.type,e.diagramId,void 0,c)},"render");export{ge as render};
@@ -1 +1 @@
1
- import{_ as l}from"./Dzy2Amcc.js";function m(e,c){var i,t,o;e.accDescr&&((i=c.setAccDescription)==null||i.call(c,e.accDescr)),e.accTitle&&((t=c.setAccTitle)==null||t.call(c,e.accTitle)),e.title&&((o=c.setDiagramTitle)==null||o.call(c,e.title))}l(m,"populateCommonDb");export{m as p};
1
+ import{_ as l}from"./ndyknmtb.js";function m(e,c){var i,t,o;e.accDescr&&((i=c.setAccDescription)==null||i.call(c,e.accDescr)),e.accTitle&&((t=c.setAccTitle)==null||t.call(c,e.accTitle)),e.title&&((o=c.setDiagramTitle)==null||o.call(c,e.title))}l(m,"populateCommonDb");export{m as p};
@@ -1 +1 @@
1
- import{r as o,G as f,i as b}from"./DD6NieRw.js";const y=t=>{const a=o(!1),e=o(null),r=o([]),i=async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const n=await $fetch("/api/database-roles/get-roles",{method:"POST",body:{...f(t.value)}});r.value=n}catch(n){e.value=n instanceof Error?n.message:"Failed to fetch roles",console.error("Error fetching database roles:",n)}finally{a.value=!1}},s=()=>i(),d=b(()=>{const n=[],l=[],c=[];for(const u of r.value)u.isSuperuser?n.push(u):u.canLogin?l.push(u):c.push(u);return{superusers:n,users:l,roles:c}});return{isLoading:a,error:e,roles:r,categorizedRoles:d,fetchRoles:i,refresh:s}},P=t=>{const a=o(!1),e=o(!1),r=o(null),i=n=>{const l="control plane:",c=n.indexOf(l);if(c===-1)return null;const u=n.slice(c+l.length).trim(),m=u.indexOf("{"),v=u.lastIndexOf("}");if(m===-1||v===-1)return null;const p=u.slice(m,v+1);try{const h=JSON.parse(p);if(h!=null&&h.error&&typeof h.error=="string")return h.error}catch{return null}return null};return{isCreating:a,isDeleting:e,error:r,createRole:async n=>{var l;if(!t.value)return r.value="No database connection provided",null;a.value=!0,r.value=null;try{return await $fetch("/api/database-roles/create-role",{method:"POST",body:{...n,...f(t.value)}})}catch(c){const u=((l=c==null?void 0:c.data)==null?void 0:l.message)||(c instanceof Error?c.message:"Failed to create role"),v=i(u)||u.replace(/^Failed to create role:\s*/i,"").trim();return r.value=v,console.error("Error creating role:",c),{success:!1,message:v,sql:""}}finally{a.value=!1}},deleteRole:async n=>{if(!t.value)return r.value="No database connection provided",null;e.value=!0,r.value=null;try{return await $fetch("/api/database-roles/delete-role",{method:"POST",body:{...f(t.value),roleName:n}})}catch(l){return r.value=l instanceof Error?l.message:"Failed to delete role",console.error("Error deleting role:",l),null}finally{e.value=!1}}}},E=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,databasePermissions:r,fetchDatabasePermissions:async s=>{if(!t.value||!s){e.value="Missing connection or role name";return}a.value=!0,e.value=null;try{const d=await $fetch("/api/database-roles/get-databases-with-permissions",{method:"POST",body:{...f(t.value),roleName:s}});r.value=d}catch(d){e.value=d instanceof Error?d.message:"Failed to fetch database permissions",console.error("Error fetching database permissions:",d)}finally{a.value=!1}}}},O=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,databases:r,fetchDatabases:async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const s=await $fetch("/api/database-roles/get-databases",{method:"POST",body:{...f(t.value)}});r.value=s}catch(s){e.value=s instanceof Error?s.message:"Failed to fetch databases",console.error("Error fetching databases:",s)}finally{a.value=!1}}}},S=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,schemas:r,fetchSchemas:async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const s=await $fetch("/api/database-roles/get-schemas",{method:"POST",body:{...f(t.value)}});r.value=s}catch(s){e.value=s instanceof Error?s.message:"Failed to fetch schemas",console.error("Error fetching schemas:",s)}finally{a.value=!1}}}},w=t=>{const a=o(!1),e=o(null);return{isGranting:a,error:e,grantBulkPermissions:async i=>{if(!t.value)return e.value="No database connection provided",null;a.value=!0,e.value=null;try{return await $fetch("/api/database-roles/grant-bulk-permissions",{method:"POST",body:{...i,...f(t.value)}})}catch(s){return e.value=s instanceof Error?s.message:"Failed to grant permissions",console.error("Error granting bulk permissions:",s),null}finally{a.value=!1}}}};export{y as a,P as b,O as c,S as d,w as e,E as u};
1
+ import{r as o,G as f,i as b}from"./DbehhcO7.js";const y=t=>{const a=o(!1),e=o(null),r=o([]),i=async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const n=await $fetch("/api/database-roles/get-roles",{method:"POST",body:{...f(t.value)}});r.value=n}catch(n){e.value=n instanceof Error?n.message:"Failed to fetch roles",console.error("Error fetching database roles:",n)}finally{a.value=!1}},s=()=>i(),d=b(()=>{const n=[],l=[],c=[];for(const u of r.value)u.isSuperuser?n.push(u):u.canLogin?l.push(u):c.push(u);return{superusers:n,users:l,roles:c}});return{isLoading:a,error:e,roles:r,categorizedRoles:d,fetchRoles:i,refresh:s}},P=t=>{const a=o(!1),e=o(!1),r=o(null),i=n=>{const l="control plane:",c=n.indexOf(l);if(c===-1)return null;const u=n.slice(c+l.length).trim(),m=u.indexOf("{"),v=u.lastIndexOf("}");if(m===-1||v===-1)return null;const p=u.slice(m,v+1);try{const h=JSON.parse(p);if(h!=null&&h.error&&typeof h.error=="string")return h.error}catch{return null}return null};return{isCreating:a,isDeleting:e,error:r,createRole:async n=>{var l;if(!t.value)return r.value="No database connection provided",null;a.value=!0,r.value=null;try{return await $fetch("/api/database-roles/create-role",{method:"POST",body:{...n,...f(t.value)}})}catch(c){const u=((l=c==null?void 0:c.data)==null?void 0:l.message)||(c instanceof Error?c.message:"Failed to create role"),v=i(u)||u.replace(/^Failed to create role:\s*/i,"").trim();return r.value=v,console.error("Error creating role:",c),{success:!1,message:v,sql:""}}finally{a.value=!1}},deleteRole:async n=>{if(!t.value)return r.value="No database connection provided",null;e.value=!0,r.value=null;try{return await $fetch("/api/database-roles/delete-role",{method:"POST",body:{...f(t.value),roleName:n}})}catch(l){return r.value=l instanceof Error?l.message:"Failed to delete role",console.error("Error deleting role:",l),null}finally{e.value=!1}}}},E=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,databasePermissions:r,fetchDatabasePermissions:async s=>{if(!t.value||!s){e.value="Missing connection or role name";return}a.value=!0,e.value=null;try{const d=await $fetch("/api/database-roles/get-databases-with-permissions",{method:"POST",body:{...f(t.value),roleName:s}});r.value=d}catch(d){e.value=d instanceof Error?d.message:"Failed to fetch database permissions",console.error("Error fetching database permissions:",d)}finally{a.value=!1}}}},O=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,databases:r,fetchDatabases:async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const s=await $fetch("/api/database-roles/get-databases",{method:"POST",body:{...f(t.value)}});r.value=s}catch(s){e.value=s instanceof Error?s.message:"Failed to fetch databases",console.error("Error fetching databases:",s)}finally{a.value=!1}}}},S=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,schemas:r,fetchSchemas:async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const s=await $fetch("/api/database-roles/get-schemas",{method:"POST",body:{...f(t.value)}});r.value=s}catch(s){e.value=s instanceof Error?s.message:"Failed to fetch schemas",console.error("Error fetching schemas:",s)}finally{a.value=!1}}}},w=t=>{const a=o(!1),e=o(null);return{isGranting:a,error:e,grantBulkPermissions:async i=>{if(!t.value)return e.value="No database connection provided",null;a.value=!0,e.value=null;try{return await $fetch("/api/database-roles/grant-bulk-permissions",{method:"POST",body:{...i,...f(t.value)}})}catch(s){return e.value=s instanceof Error?s.message:"Failed to grant permissions",console.error("Error granting bulk permissions:",s),null}finally{a.value=!1}}}};export{y as a,P as b,O as c,S as d,w as e,E as u};
@@ -1 +1 @@
1
- import{d as o,c as a,n,u as r,p as c,E as l,o as u}from"./DD6NieRw.js";const d=o({__name:"ContextMenuShortcut",props:{class:{}},setup(t){const s=t;return(e,p)=>(u(),a("span",{"data-slot":"context-menu-shortcut",class:n(r(c)("text-muted-foreground ml-auto text-xs tracking-widest",s.class))},[l(e.$slots,"default")],2))}});export{d as _};
1
+ import{d as o,c as a,n,u as r,p as c,E as l,o as u}from"./DbehhcO7.js";const d=o({__name:"ContextMenuShortcut",props:{class:{}},setup(t){const s=t;return(e,p)=>(u(),a("span",{"data-slot":"context-menu-shortcut",class:n(r(c)("text-muted-foreground ml-auto text-xs tracking-widest",s.class))},[l(e.$slots,"default")],2))}});export{d as _};