orcaq 1.1.3 → 1.1.4
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.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{Co7e2XML.js → -sZwfgN3.js} +1 -1
- package/.output/public/_nuxt/1iqadsOZ.js +1 -0
- package/.output/public/_nuxt/2WkPV7Mp.js +22 -0
- package/.output/public/_nuxt/{CmjR7OTc.js → 2XEGje4L.js} +1 -1
- package/.output/public/_nuxt/{BYOPXIhP.js → 5cKDQgbQ.js} +1 -1
- package/.output/public/_nuxt/{Ckry8tuC.js → B8rT4ISg.js} +2 -2
- package/.output/public/_nuxt/{DVkCRFXi.js → B9Yq_mZo.js} +1 -1
- package/.output/public/_nuxt/{BCAMWuzu.js → BCFLQ_rL.js} +1 -1
- package/.output/public/_nuxt/{DChDHsIe.js → BIHJR--x.js} +1 -1
- package/.output/public/_nuxt/{DJBO_9pO.js → BN9sUptU.js} +1 -1
- package/.output/public/_nuxt/{DX8ecA59.js → BNkZeak0.js} +1 -1
- package/.output/public/_nuxt/{qRiDKEr7.js → BNqd1Zca.js} +1 -1
- package/.output/public/_nuxt/BOZgY48g.js +1 -0
- package/.output/public/_nuxt/{DA4Xn6lm.js → BQFJwqXj.js} +1 -1
- package/.output/public/_nuxt/{C-Pa1rIR.js → BSBcOKKj.js} +1 -1
- package/.output/public/_nuxt/{CtCx-4nJ.js → BVl8VKr5.js} +1 -1
- package/.output/public/_nuxt/{vaJvtND9.js → BWphy0Pi.js} +1 -1
- package/.output/public/_nuxt/{B_ERKujF.js → BXp87mMj.js} +4 -4
- package/.output/public/_nuxt/{j23gQsG7.js → BYY9MB0h.js} +1 -1
- package/.output/public/_nuxt/{g9ZMnTLJ.js → BYav_5oM.js} +1 -1
- package/.output/public/_nuxt/{BG-rJefG.js → B_J4rjuT.js} +1 -1
- package/.output/public/_nuxt/{BzzgEvr9.js → B_U4hCvn.js} +2 -2
- package/.output/public/_nuxt/{DgJOougY.js → BdCzQG_z.js} +1 -1
- package/.output/public/_nuxt/{CGq9Twnj.js → BdX6JvdH.js} +1 -1
- package/.output/public/_nuxt/{BigePTMZ.js → BdaSWOzD.js} +1 -1
- package/.output/public/_nuxt/{D0lW43G8.js → BfSmOVMj.js} +119 -119
- package/.output/public/_nuxt/{VNOocds9.js → BiMJOLHR.js} +1 -1
- package/.output/public/_nuxt/{5oARMrld.js → BlRPNODF.js} +1 -1
- package/.output/public/_nuxt/BmREJclf.js +1 -0
- package/.output/public/_nuxt/{DPq8O9CC.js → Bp1mKnR0.js} +1 -1
- package/.output/public/_nuxt/{hIbRoJ89.js → BqZGP9WI.js} +1 -1
- package/.output/public/_nuxt/{Ohrg3hU7.js → BqjMHuu8.js} +1 -1
- package/.output/public/_nuxt/{BzywwPw6.js → Brupmvos.js} +1 -1
- package/.output/public/_nuxt/{BcyZ-eCi.js → BsA8eQHh.js} +1 -1
- package/.output/public/_nuxt/Bwe8I9vL.js +1 -0
- package/.output/public/_nuxt/{DvWEWtFg.js → BxdkXfb_.js} +1 -1
- package/.output/public/_nuxt/{Db3rTgnd.js → C20WaARR.js} +1 -1
- package/.output/public/_nuxt/{Czr647QE.js → C2kyA9ZS.js} +1 -1
- package/.output/public/_nuxt/C4HRDaS8.js +1 -0
- package/.output/public/_nuxt/{eOeO5uM0.js → C5zTeLKh.js} +1 -1
- package/.output/public/_nuxt/{wodl4bLW.js → C6r_nDJz.js} +1 -1
- package/.output/public/_nuxt/{C0vscAQB.js → C6yADG7D.js} +1 -1
- package/.output/public/_nuxt/{bkzIFcLw.js → CBfQCVFf.js} +1 -1
- package/.output/public/_nuxt/{CqkctA6I.js → CDPrFhDR.js} +1 -1
- package/.output/public/_nuxt/{CbHZwHBV.js → CFOJLBf2.js} +1 -1
- package/.output/public/_nuxt/{BdZsZgcB.js → CJhlBUX_.js} +1 -1
- package/.output/public/_nuxt/{syq5mCJi.js → CLXbv9E5.js} +1 -1
- package/.output/public/_nuxt/{BseVuOZ1.js → CMT3TfI0.js} +1 -1
- package/.output/public/_nuxt/{BMLhg7hE.js → CRX1CszZ.js} +1 -1
- package/.output/public/_nuxt/{B-4cXhNx.js → CYaqLaPZ.js} +1 -1
- package/.output/public/_nuxt/{CHMlsxJw.js → Cih6uwf6.js} +1 -1
- package/.output/public/_nuxt/{BZ4ThSRp.js → CmzTcheK.js} +1 -1
- package/.output/public/_nuxt/{D28ykMUi.js → CrNrSEll.js} +1 -1
- package/.output/public/_nuxt/{DKLk0T0H.js → CwgI7YXL.js} +1 -1
- package/.output/public/_nuxt/{CtB2-SFY.js → CxSk31iP.js} +1 -1
- package/.output/public/_nuxt/CyEWn2V2.js +1 -0
- package/.output/public/_nuxt/{CtkhwZY7.js → D-pZQQ02.js} +1 -1
- package/.output/public/_nuxt/{BmAp-sfn.js → D0mrO5vS.js} +1 -1
- package/.output/public/_nuxt/{CfseWBL0.js → D3ujZRkc.js} +1 -1
- package/.output/public/_nuxt/{CvFjsYJZ.js → D4PtOV7Y.js} +1 -1
- package/.output/public/_nuxt/{CL_1HDtg.js → D65Keo_g.js} +1 -1
- package/.output/public/_nuxt/{DOAixkpJ.js → D6c_aTbv.js} +1 -1
- package/.output/public/_nuxt/{Du5Ka6uI.js → D9SUnmGh.js} +1 -1
- package/.output/public/_nuxt/{CkjXKCQH.js → DDIVwUV6.js} +1 -1
- package/.output/public/_nuxt/{C9kgALYc.js → DDS9xPxH.js} +1 -1
- package/.output/public/_nuxt/{CjpXgncp.js → DEsdpKnm.js} +1 -1
- package/.output/public/_nuxt/{C-pX1zRI.js → DHnV-0Qj.js} +1 -1
- package/.output/public/_nuxt/{v41yYOa9.js → DIoeBtoF.js} +3 -3
- package/.output/public/_nuxt/{CS4EJV3B.js → DKJfWiWm.js} +1 -1
- package/.output/public/_nuxt/{DJXB1Li8.js → DKhuBYhy.js} +1 -1
- package/.output/public/_nuxt/DLTvS7Vr.js +2 -0
- package/.output/public/_nuxt/{Cf460dGA.js → DNgNuAci.js} +1 -1
- package/.output/public/_nuxt/{Buh0pI3n.js → DNpk_jbU.js} +1 -1
- package/.output/public/_nuxt/{DLBsdU7G.js → DQCTvlJf.js} +1 -1
- package/.output/public/_nuxt/DQf3b-ld.js +1 -0
- package/.output/public/_nuxt/{BYxQJ0gE.js → DT4w6IwV.js} +1 -1
- package/.output/public/_nuxt/{Dtl3qje7.js → DUqYnCG7.js} +1 -1
- package/.output/public/_nuxt/{KynNdNgX.js → DYqNroD1.js} +1 -1
- package/.output/public/_nuxt/{DQdA5Twt.js → DZ9fd-xA.js} +1 -1
- package/.output/public/_nuxt/{Ch0I4juX.js → DaiufW99.js} +1 -1
- package/.output/public/_nuxt/{DpBeiFQV.js → DdRczQp2.js} +2 -2
- package/.output/public/_nuxt/{Nof0nVJ6.js → DdW7QNKl.js} +1 -1
- package/.output/public/_nuxt/{BtuY54_l.js → Ddtv9Dxp.js} +1 -1
- package/.output/public/_nuxt/Dfzgj0Oq.js +1 -0
- package/.output/public/_nuxt/DgRHzRny.js +1 -0
- package/.output/public/_nuxt/{BzVvHKKC.js → DijSUoYv.js} +1 -1
- package/.output/public/_nuxt/Dm-rJ5VH.js +1 -0
- package/.output/public/_nuxt/{DrdbRRXx.js → DmpCN34M.js} +1 -1
- package/.output/public/_nuxt/{Chx1IK9D.js → DoB1FFC2.js} +1 -1
- package/.output/public/_nuxt/Dp2UQPgO.js +1 -0
- package/.output/public/_nuxt/{BccuQbKA.js → DryPPXlb.js} +1 -1
- package/.output/public/_nuxt/{BqHKqsJ5.js → DyCQWd5B.js} +3 -3
- package/.output/public/_nuxt/{C-I81xfB.js → Ef-1UUMy.js} +1 -1
- package/.output/public/_nuxt/{Cbo6GmdE.js → HP3PGEjt.js} +1 -1
- package/.output/public/_nuxt/{Dunt8-TF.js → KK3goksi.js} +1 -1
- package/.output/public/_nuxt/{9sDqz0uT.js → MC96ynYQ.js} +1 -1
- package/.output/public/_nuxt/{BKFPmrcv.js → N6_KTIJr.js} +1 -1
- package/.output/public/_nuxt/{BZmDBfmV.js → TKeZJpIw.js} +1 -1
- package/.output/public/_nuxt/{CRqiHVA4.js → UHOKyE8O.js} +1 -1
- package/.output/public/_nuxt/{CLQzuV82.js → Z42SRPvO.js} +1 -1
- package/.output/public/_nuxt/{BC6CdfCG.js → _Od8x2z5.js} +1 -1
- package/.output/public/_nuxt/{NYpsF1lW.js → bpGjU0QQ.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/9b89410f-7683-420e-9dea-d15741f0e6ce.json +1 -0
- package/.output/public/_nuxt/{CmOZ0DCP.js → doR1dsEF.js} +1 -1
- package/.output/public/_nuxt/{DRh-06Hb.js → e04t7nee.js} +1 -1
- package/.output/public/_nuxt/entry.DEE2Ngsu.css +1 -0
- package/.output/public/_nuxt/{CCmd8DpQ.js → g4lEPr__.js} +1 -1
- package/.output/public/_nuxt/{C4zYnWdF.js → l12ZvGEh.js} +1 -1
- package/.output/public/_nuxt/{YdOCcCRS.js → u7qmw6wa.js} +1 -1
- package/.output/public/_nuxt/{CY_CG0AU.js → xoY3RXI7.js} +1 -1
- package/.output/public/_nuxt/{CSExCj8O.js → ziSTJBFH.js} +1 -1
- package/.output/server/chunks/build/client.manifest.mjs +650 -649
- package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +642 -642
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/BkN-uAef.js +0 -1
- package/.output/public/_nuxt/C4FrpL8k.js +0 -1
- package/.output/public/_nuxt/Chvs1m1n.js +0 -1
- package/.output/public/_nuxt/Cty7uMrC.js +0 -1
- package/.output/public/_nuxt/DTvJImVU.js +0 -1
- package/.output/public/_nuxt/DakKehZj.js +0 -1
- package/.output/public/_nuxt/DfyynWBR.js +0 -1
- package/.output/public/_nuxt/DkQCknMw.js +0 -1
- package/.output/public/_nuxt/MWrJVKEf.js +0 -2
- package/.output/public/_nuxt/Rrce0BXL.js +0 -22
- package/.output/public/_nuxt/Y-MEKhtd.js +0 -1
- package/.output/public/_nuxt/bYQCSC5-.js +0 -1
- package/.output/public/_nuxt/builds/meta/ad11b978-8fdd-4bb2-9b38-1d6fe93f994e.json +0 -1
- package/.output/public/_nuxt/entry.DxCQuGXb.css +0 -1
- package/.output/public/_nuxt/klVlxnpt.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Q as S,T as z,ax as j,_ as p,g as q,s as Q,a as Z,b as H,t as J,q as K,l as F,c as X,G as Y,L as ee,a4 as te,e as ae,A as re,I as ne}from"./
|
|
1
|
+
import{Q as S,T as z,ax as j,_ as p,g as q,s as Q,a as Z,b as H,t as J,q as K,l as F,c as X,G as Y,L as ee,a4 as te,e as ae,A as re,I as ne}from"./BXp87mMj.js";import{p as ie}from"./CwgI7YXL.js";import{p as se}from"./xoY3RXI7.js";import{d as P}from"./DQCTvlJf.js";import{o as le}from"./CmKTTxBW.js";import"./BfSmOVMj.js";import"./Gi6I4Gst.js";function oe(e,a){return a<e?-1:a>e?1:a>=e?0:NaN}function ce(e){return e}function ue(){var e=ce,a=oe,f=null,x=S(0),s=S(z),o=S(0);function l(t){var n,c=(t=j(t)).length,g,y,m=0,u=new Array(c),i=new Array(c),v=+x.apply(this,arguments),A=Math.min(z,Math.max(-z,s.apply(this,arguments)-v)),h,C=Math.min(Math.abs(A)/c,o.apply(this,arguments)),$=C*(A<0?-1:1),d;for(n=0;n<c;++n)(d=i[u[n]=n]=+e(t[n],n,t))>0&&(m+=d);for(a!=null?u.sort(function(w,D){return a(i[w],i[D])}):f!=null&&u.sort(function(w,D){return f(t[w],t[D])}),n=0,y=m?(A-c*$)/m:0;n<c;++n,v=h)g=u[n],d=i[g],h=v+(d>0?d*y:0)+$,i[g]={data:t[g],index:n,value:d,startAngle:v,endAngle:h,padAngle:C};return i}return l.value=function(t){return arguments.length?(e=typeof t=="function"?t:S(+t),l):e},l.sortValues=function(t){return arguments.length?(a=t,f=null,l):a},l.sort=function(t){return arguments.length?(f=t,a=null,l):f},l.startAngle=function(t){return arguments.length?(x=typeof t=="function"?t:S(+t),l):x},l.endAngle=function(t){return arguments.length?(s=typeof t=="function"?t:S(+t),l):s},l.padAngle=function(t){return arguments.length?(o=typeof t=="function"?t:S(+t),l):o},l}var pe=ne.pie,G={sections:new Map,showData:!1},T=G.sections,N=G.showData,ge=structuredClone(pe),de=p(()=>structuredClone(ge),"getConfig"),fe=p(()=>{T=new Map,N=G.showData,re()},"clear"),he=p(({label:e,value:a})=>{if(a<0)throw new Error(`"${e}" has invalid value: ${a}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);T.has(e)||(T.set(e,a),F.debug(`added new section: ${e}, with value: ${a}`))},"addSection"),me=p(()=>T,"getSections"),ve=p(e=>{N=e},"setShowData"),Se=p(()=>N,"getShowData"),R={getConfig:de,clear:fe,setDiagramTitle:K,getDiagramTitle:J,setAccTitle:H,getAccTitle:Z,setAccDescription:Q,getAccDescription:q,addSection:he,getSections:me,setShowData:ve,getShowData:Se},xe=p((e,a)=>{ie(e,a),a.setShowData(e.showData),e.sections.map(a.addSection)},"populateDb"),ye={parse:p(async e=>{const a=await se("pie",e);F.debug(a),xe(a,R)},"parse")},Ae=p(e=>`
|
|
2
2
|
.pieCircle{
|
|
3
3
|
stroke: ${e.pieStrokeColor};
|
|
4
4
|
stroke-width : ${e.pieStrokeWidth};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as f,k as d,o as $,w as e,f as a,W as g,X as w,Y as D,z as t,t as s,Z as k,$ as v,a0 as y,a1 as B}from"./
|
|
1
|
+
import{d as f,k as d,o as $,w as e,f as a,W as g,X as w,Y as D,z as t,t as s,Z as k,$ as v,a0 as y,a1 as B}from"./BfSmOVMj.js";const Q=f({__name:"QuickQueryErrorPopup",props:{open:{type:Boolean},title:{default:"Query error!"},message:{},actionLabel:{default:"OK"}},emits:["update:open"],setup(C){return(o,n)=>{const i=D,p=w,_=k,c=y,r=v,m=g,u=B;return $(),d(u,{open:!!o.open,"onUpdate:open":n[1]||(n[1]=l=>o.$emit("update:open",l))},{default:e(()=>[a(m,{class:"w-[30vw] min-w-96"},{default:e(()=>[a(p,{class:"pb-0"},{default:e(()=>[a(i,null,{default:e(()=>[t(s(o.title),1)]),_:1})]),_:1}),a(_,{class:"decoration-wavy underline decoration-red-600 overflow-auto max-h-[30vh]"},{default:e(()=>[t(s(o.message),1)]),_:1}),a(r,{class:"pt-0"},{default:e(()=>[a(c,{onClick:n[0]||(n[0]=l=>o.$emit("update:open",!1)),class:"w-full"},{default:e(()=>[t(s(o.actionLabel),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])}}});export{Q as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as i,d as l,n as d,j as o}from"./
|
|
1
|
+
import{_ as i,d as l,n as d,j as o}from"./BXp87mMj.js";var x=i((r,t)=>{const e=r.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const s in t.attrs)e.attr(s,t.attrs[s]);return t.class&&e.attr("class",t.class),e},"drawRect"),p=i((r,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};x(r,e).lower()},"drawBackgroundRect"),y=i((r,t)=>{const e=t.text.replace(d," "),s=r.append("text");s.attr("x",t.x),s.attr("y",t.y),s.attr("class","legend"),s.style("text-anchor",t.anchor),t.class&&s.attr("class",t.class);const a=s.append("tspan");return a.attr("x",t.x+t.textMargin*2),a.text(e),s},"drawText"),m=i((r,t,e,s)=>{const a=r.append("image");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",n)},"drawImage"),g=i((r,t,e,s)=>{const a=r.append("use");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),h=i(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),f=i(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),w=i(()=>{let r=l(".mermaidTooltip");return r.empty()&&(r=l("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),r},"createTooltip");export{p as a,f as b,w as c,x as d,g as e,m as f,h as g,y as h};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{_ as He}from"./
|
|
1
|
+
import{_ as He}from"./DDS9xPxH.js";import{d as q,e as B,m as t,t as m,F as P,s as J,o as g,k as T,w as a,z as _,bl as ae,f as o,A as W,l as j,r as F,c as v,au as le,g as e,bm as H,_ as We,i as Y,a0 as Q,n as re,h as Ke,bR as Ge,x as Ze,B as Xe,bj as Ye,bV as Qe,bp as et,a1 as tt,X as st,Y as ot,Z as nt,bn as at,bK as lt,$ as rt,W as it,aZ as ut,bW as ct,bx as dt,E as we,a3 as mt,ba as pt,I as ve,aM as be,bD as ft,bE as gt,bF as _t}from"./BfSmOVMj.js";import{_ as $e,a as Ce}from"./BVl8VKr5.js";import{_ as Se,g as xe,a as ie,b as Be,c as vt,d as Fe,i as bt,e as xt,f as yt}from"./D0mrO5vS.js";import{_ as ht}from"./BCFLQ_rL.js";import{u as kt}from"./DaiufW99.js";const wt={class:"rounded-lg border bg-muted/20 p-4"},$t={class:"space-y-4"},Ct={class:"text-sm font-medium"},St={class:"mt-1 text-xs text-muted-foreground"},Bt={class:"text-xs text-muted-foreground"},Ft={class:"mt-2 flex flex-wrap gap-2"},Tt={class:"mt-1 text-sm text-muted-foreground"},Dt={class:"mt-1 text-sm font-medium"},ye=q({__name:"BackupProfileCard",props:{title:{},description:{},formats:{},toolHint:{},targetName:{},formatsLabel:{default:"Supported Files"}},setup(p){return(s,n)=>{const f=ae;return g(),B("div",wt,[t("div",$t,[t("div",null,[t("p",Ct,m(s.title),1),t("p",St,m(s.description),1)]),t("div",null,[t("p",Bt,m(s.formatsLabel),1),t("div",Ft,[(g(!0),B(P,null,J(s.formats,c=>(g(),T(f,{key:c.format,variant:"outline",class:"font-normal"},{default:a(()=>[_(m(c.extension),1)]),_:2},1024))),128))])]),t("div",null,[n[0]||(n[0]=t("p",{class:"text-xs text-muted-foreground"},"Runtime Tools",-1)),t("p",Tt,m(s.toolHint),1)]),t("div",null,[n[1]||(n[1]=t("p",{class:"text-xs text-muted-foreground"},"Target",-1)),t("p",Dt,m(s.targetName),1)])])])}}}),Et={class:"text-muted-foreground"},It={class:"space-y-2 text-xs"},Rt=`brew install postgresql # macOS
|
|
2
2
|
apt-get install postgresql-client # Linux
|
|
3
3
|
# Windows: Download from https://www.postgresql.org/download/windows/`,zt=`brew install mysql # macOS
|
|
4
4
|
apt-get install mysql-client # Linux
|
|
5
5
|
# Windows: Download from https://dev.mysql.com/downloads/`,Ot=`brew install sqlite # macOS
|
|
6
6
|
apt-get install sqlite3 # Linux
|
|
7
|
-
# Windows: Download from https://www.sqlite.org/download.html`,Nt=j({__name:"BackupRestoreUnsupportedAlert",props:{supportMessage:{},connectionType:{}},setup(p){return(s,n)=>{const f=W,c=Se,r=ht,d=Ce,b=$e;return g(),T(b,null,{default:a(()=>[o(c,{class:"flex items-center font-medium gap-1"},{default:a(()=>[o(f,{name:"hugeicons:alert-circle",class:"size-4"}),n[0]||(n[0]=_(" Native Tools Required"))]),_:1}),o(d,{class:"space-y-3"},{default:a(()=>[t("p",Et,m(s.supportMessage),1),t("div",It,[n[1]||(n[1]=t("p",{class:"font-medium"},"Installation instructions:",-1)),s.connectionType==="postgres"?(g(),T(r,{key:0,code:Rt,language:"bash"})):s.connectionType==="mysql"||s.connectionType==="mariadb"?(g(),T(r,{key:1,code:zt,language:"bash"})):s.connectionType==="sqlite3"?(g(),T(r,{key:2,code:Ot,language:"bash"})):M("",!0)])]),_:1})]),_:1})}}}),Vt={class:"space-y-4"},qt={class:"space-y-2"},Mt={class:"grid gap-2 sm:grid-cols-2"},jt=["onClick"],Lt={class:"flex items-center justify-between gap-2"},Pt={class:"text-sm font-medium"},At={class:"mt-1 text-xs text-muted-foreground"},Ut={class:"space-y-2"},Jt={key:0,class:"space-y-2"},Ht={class:"flex flex-wrap gap-2 max-h-32 overflow-y-auto p-2 border rounded-md"},Wt={class:"text-xs text-muted-foreground"},Gt=j({__name:"ExportOptionsForm",props:{schemas:{},loading:{type:Boolean},connectionType:{}},emits:["submit"],setup(p,{emit:s}){const n=p,f=s,c=F("full"),r=F(xe(n.connectionType)),d=F([]),b=v(()=>ie(n.connectionType));le(b,h=>{var w;h.some(D=>D.format===r.value)||(r.value=((w=h[0])==null?void 0:w.format)||xe(n.connectionType))},{immediate:!0});const i=[{value:"full",label:"Full (schema + data)"},{value:"schema-only",label:"Schema only (no data)"},{value:"data-only",label:"Data only (no schema)"}],C=()=>{const h={format:r.value,scope:c.value};h.schemas=d.value.length>0?d.value:n.schemas,f("submit",h)};return(h,w)=>{const D=Ke,z=Ge,l=Ze,x=Xe,S=We,E=W,I=Q;return g(),B("div",Vt,[t("div",qt,[o(e(H),null,{default:a(()=>w[1]||(w[1]=[_("Backup Format")])),_:1}),t("div",Mt,[(g(!0),B(P,null,J(e(b),u=>(g(),B("button",{key:u.format,type:"button",class:re(["rounded-lg border p-3 text-left transition-colors",e(r)===u.format?"border-primary bg-primary/5":"hover:border-primary/40 hover:bg-muted/20"]),onClick:k=>r.value=u.format},[t("div",Lt,[t("p",Pt,m(u.label),1),o(e(ae),{variant:"secondary",class:"font-normal"},{default:a(()=>[_(m(u.extension),1)]),_:2},1024)]),t("p",At," Runtime uses "+m(e(Be)(n.connectionType))+". ",1)],10,jt))),128))])]),t("div",Ut,[o(e(H),null,{default:a(()=>w[2]||(w[2]=[_("Export Scope")])),_:1}),o(S,{modelValue:e(c),"onUpdate:modelValue":w[0]||(w[0]=u=>Y(c)?c.value=u:null)},{default:a(()=>[o(z,{size:"sm",class:"h-7!"},{default:a(()=>[o(D,{placeholder:"Select scope"})]),_:1}),o(x,null,{default:a(()=>[(g(),B(P,null,J(i,u=>o(l,{key:u.value,value:u.value},{default:a(()=>[_(m(u.label),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["modelValue"])]),h.schemas.length>0?(g(),B("div",Jt,[o(e(H),null,{default:a(()=>w[3]||(w[3]=[_("Schemas (optional)")])),_:1}),t("div",Ht,[(g(!0),B(P,null,J(h.schemas,u=>(g(),T(e(ae),{key:u,variant:e(d).includes(u)?"default":"outline",class:"cursor-pointer",onClick:()=>e(d).includes(u)?d.value=e(d).filter(k=>k!==u):e(d).push(u)},{default:a(()=>[_(m(u),1)]),_:2},1032,["variant","onClick"]))),128))]),t("p",Wt,m(e(d).length?`${e(d).length} selected`:"All visible schemas"),1)])):M("",!0),o(I,{class:"w-full",disabled:h.loading,onClick:C},{default:a(()=>[h.loading?(g(),T(E,{key:0,name:"hugeicons:loading-03",class:"size-4 mr-2 animate-spin"})):(g(),T(E,{key:1,name:"lucide:download",class:"size-4 mr-2"})),_(" "+m(h.loading?"Creating Backup...":"Create Backup"),1)]),_:1},8,["disabled"])])}}}),Kt={class:"relative mt-2 cursor-pointer rounded-lg border-2 border-dashed p-6 text-center transition-colors hover:border-primary/50"},Xt=["accept"],Zt={key:0,class:"text-muted-foreground pointer-events-none"},Yt={class:"text-xs mt-1"},Qt={key:1,class:"flex items-center justify-center gap-3"},es={class:"text-left"},ts={class:"text-sm font-medium"},ss={class:"text-xs text-muted-foreground"},os=j({__name:"ImportFileDropzone",props:{selectedFile:{},accept:{},extensionSummary:{}},emits:["change","clear"],setup(p){const s=n=>n<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(1)} KB`:`${(n/1048576).toFixed(1)} MB`;return(n,f)=>{const c=H,r=W,d=Q;return g(),B("div",null,[o(c,{class:"text-sm font-medium"},{default:a(()=>f[2]||(f[2]=[_("Backup File")])),_:1}),t("div",Kt,[t("input",{type:"file",accept:n.accept,class:"absolute inset-0 w-full h-full opacity-0 cursor-pointer",onChange:f[0]||(f[0]=b=>n.$emit("change",b))},null,40,Xt),n.selectedFile?(g(),B("div",Qt,[o(r,{name:"hugeicons:file-01",class:"size-8 text-primary"}),t("div",es,[t("p",ts,m(n.selectedFile.name),1),t("p",ss,m(s(n.selectedFile.size)),1)]),o(d,{variant:"ghost",size:"icon",class:"ml-2 relative z-10",type:"button",onClick:f[1]||(f[1]=Ye(b=>n.$emit("clear"),["stop"]))},{default:a(()=>[o(r,{name:"hugeicons:x-close",class:"size-4"})]),_:1})])):(g(),B("div",Zt,[o(r,{name:"hugeicons:upload-cloud-01",class:"size-10 mx-auto mb-2 opacity-50"}),f[3]||(f[3]=t("p",{class:"text-sm font-medium"},"Click to select a file",-1)),t("p",Yt,"Supports "+m(n.extensionSummary)+" backups",1)]))])])}}}),ns={class:"space-y-3"},as={class:"grid grid-cols-2 gap-4"},ls=j({__name:"ImportOptionsForm",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(p){const s=Qe(p,"modelValue"),n=(c,r)=>{s.value[c]=r},f=[{key:"clean",label:"Drop Objects First",id:"import-clean"},{key:"dataOnly",label:"Data Only",id:"import-data-only"},{key:"schemaOnly",label:"Schema Only",id:"import-schema-only"},{key:"exitOnError",label:"Exit on Error",id:"import-exit-on-error"}];return(c,r)=>{const d=H,b=et;return g(),B("div",ns,[o(d,{class:"text-sm font-medium"},{default:a(()=>r[0]||(r[0]=[_("Options")])),_:1}),t("div",as,[(g(),B(P,null,J(f,i=>t("div",{key:i.key,class:"flex items-center space-x-2"},[o(b,{id:i.id,"model-value":s.value[i.key],"onUpdate:modelValue":C=>n(i.key,C)},null,8,["id","model-value","onUpdate:modelValue"]),o(d,{for:i.id,class:"text-sm"},{default:a(()=>[_(m(i.label),1)]),_:2},1032,["for"])])),64))])])}}}),rs={class:"space-y-3 py-1"},ne="restore backup",is=j({__name:"RestoreConfirmDialog",props:{open:{type:Boolean}},emits:["confirm","cancel"],setup(p,{emit:s}){const n=p,f=s,c=F("");le(()=>n.open,b=>{b&&(c.value="")});const r=v(()=>c.value===ne),d=()=>{r.value&&f("confirm")};return(b,i)=>{const C=W,h=ot,w=nt,D=st,z=H,l=at,x=Q,S=rt,E=it,I=tt;return g(),T(I,{open:b.open,"onUpdate:open":i[2]||(i[2]=u=>!u&&b.$emit("cancel"))},{default:a(()=>[o(E,{class:"max-w-sm"},{default:a(()=>[o(D,null,{default:a(()=>[o(h,{class:"flex items-center gap-2 text-destructive"},{default:a(()=>[o(C,{name:"hugeicons:alert-02",class:"size-5"}),i[3]||(i[3]=_(" Confirm Restore "))]),_:1}),o(w,null,{default:a(()=>i[4]||(i[4]=[_(" This will overwrite existing data in the target database. This action cannot be undone. ")])),_:1})]),_:1}),t("div",rs,[o(z,{for:"restore-confirm-input"},{default:a(()=>[i[5]||(i[5]=_(" Type ")),t("code",{class:"rounded bg-muted px-1 py-0.5 text-xs font-mono"},m(ne)),i[6]||(i[6]=_(" to continue: "))]),_:1}),o(l,{id:"restore-confirm-input",modelValue:e(c),"onUpdate:modelValue":i[0]||(i[0]=u=>Y(c)?c.value=u:null),placeholder:ne,autocomplete:"off",onKeydown:lt(d,["enter"])},null,8,["modelValue"])]),o(S,null,{default:a(()=>[o(x,{variant:"outline",onClick:i[1]||(i[1]=u=>b.$emit("cancel"))},{default:a(()=>i[7]||(i[7]=[_("Cancel")])),_:1}),o(x,{variant:"destructive",disabled:!e(r),onClick:d},{default:a(()=>i[8]||(i[8]=[_(" Restore ")])),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),us={class:"rounded-lg border bg-muted/30 p-4"},cs={class:"flex items-center justify-between gap-4"},ds={class:"text-sm font-medium"},ms={class:"text-xs text-muted-foreground"},ps={class:"text-sm font-medium"},fs={class:"mt-3 h-2 overflow-hidden rounded-full bg-border/60"},he=j({__name:"TransferProgressCard",props:{tool:{},stage:{},statusMessage:{},progress:{},isRunning:{type:Boolean},progressClass:{default:"bg-primary"}},setup(p){return(s,n)=>(g(),B("div",us,[t("div",cs,[t("div",null,[t("p",ds,m(s.tool)+" · "+m(s.stage),1),t("p",ms,m(s.statusMessage||"Preparing job..."),1)]),t("span",ps,m(s.progress)+"%",1)]),t("div",fs,[t("div",{class:re(["h-full rounded-full transition-all duration-300",s.progressClass]),style:ut({width:`${Math.max(s.progress,s.isRunning?8:0)}%`})},null,6)])]))}});function ke(p){return!!(p&&(p.status==="completed"||p.status==="error"))}const Te=()=>{const p=F(null),s=F(null),n=F(null),f=F(!1);let c=null,r=null;const d=l=>{c==null||c(l),c=null,r=null},b=l=>{r==null||r(l),c=null,r=null},i=async()=>{if(!n.value)throw new Error("Backup job status URL is missing.");if(f.value){if(p.value)return p.value;throw new Error("Backup job refresh is already in progress.")}f.value=!0;try{const l=await $fetch(n.value);return p.value=l,l.status==="error"&&(s.value=l.error||l.message),ke(l)&&(C(),d(l)),l}catch(l){const x=l instanceof Error?l:new Error("Failed to refresh backup job status.");throw s.value=x.message,C(),b(x),x}finally{f.value=!1}},{pause:C,resume:h,isActive:w}=ct(()=>{i()},1e3,{immediate:!1,immediateCallback:!1}),D=async l=>{n.value=l,s.value=null;const x=await i();return ke(x)?x:(h(),await new Promise((S,E)=>{c=S,r=E}))},z=()=>{C(),n.value=null,p.value=null,s.value=null,f.value=!1,c=null,r=null};return dt(()=>{C()}),{job:p,error:s,isRefreshing:f,isPolling:w,progress:v(()=>{var l;return((l=p.value)==null?void 0:l.progress)??0}),message:v(()=>{var l;return((l=p.value)==null?void 0:l.message)??null}),stage:v(()=>{var l;return((l=p.value)==null?void 0:l.stage)??"queued"}),status:v(()=>{var l;return((l=p.value)==null?void 0:l.status)??"queued"}),isRunning:v(()=>{var l,x;return((l=p.value)==null?void 0:l.status)==="queued"||((x=p.value)==null?void 0:x.status)==="running"}),monitorJob:D,refresh:i,reset:z}},gs=p=>{const s=F(null),n=F(null),f=Te(),{downloadStream:c,isDownloading:r,downloadedBytes:d}=kt(),b=v(()=>f.isRunning.value||r.value),i=v(()=>r.value?100:f.progress.value),C=v(()=>r.value?`Downloading backup artifact (${d.value} bytes)...`:f.message.value),h=v(()=>f.job.value),w=async(l,x)=>{var S,E;if(!p.value)return s.value="No database connection provided",!1;s.value=null,n.value=null;try{const I=await $fetch("/api/database-export/export-database",{method:"POST",body:{...we(p.value),databaseName:l,options:x}}),u=await f.monitorJob(I.statusUrl);if(u.status==="error")return s.value=u.error||u.message,!1;if(!u.downloadUrl||!u.downloadFileName)return s.value="Export finished but no download artifact was returned.",!1;const k=await c({url:u.downloadUrl,method:"GET",filename:u.downloadFileName||`${l}_backup${D((S=p.value)==null?void 0:S.type,x.format)}`});return k.success?(n.value={fileName:u.downloadFileName,duration:u.duration||0},!0):(s.value=((E=k.error)==null?void 0:E.message)||"Download failed.",!1)}catch(I){return s.value=I instanceof Error?I.message:"Export failed. Check the connection and backup configuration.",console.error("Export error:",I),!1}},D=(l,x)=>vt(l,x);return{isExporting:b,progress:i,error:s,lastExport:n,currentJob:h,statusMessage:C,exportDatabase:w,reset:()=>{f.reset(),s.value=null,n.value=null}}},_s=p=>{const s=Te(),n=v(()=>s.isRunning.value),f=v(()=>s.progress.value),c=v(()=>s.message.value),r=v(()=>s.job.value),d=F(null),b=F(null),i=F(null),C=F(null),h=F({clean:!1,dataOnly:!1,schemaOnly:!1,exitOnError:!0}),w=v(()=>{var k;return(k=p.value)==null?void 0:k.type}),D=v(()=>ie(w.value)),z=v(()=>Fe(w.value)),l=v(()=>D.value.map(k=>k.extension).join(" / ")),x=()=>{i.value=null,C.value&&(C.value.value="")};return{isImporting:n,progress:f,statusMessage:c,currentJob:r,error:d,success:b,selectedFile:i,fileInputRef:C,options:h,extensionSummary:l,clearSelectedFile:x,openFilePicker:()=>{var k;(k=C.value)==null||k.click()},onFileSelect:k=>{var A;const N=k.target;if(!((A=N.files)!=null&&A.length))return;const V=N.files[0];if(!D.value.some(q=>V.name.toLowerCase().endsWith(q.extension.toLowerCase()))){x(),d.value=`Unsupported file type. Use ${l.value} for ${z.value}.`,b.value=null;return}i.value=V,d.value=null,b.value=null},importDatabase:async()=>{if(!(!i.value||!p.value)){d.value=null,b.value=null;try{const k=new FormData;k.append("file",i.value);const N=we(p.value);Object.entries(N).forEach(([A,q])=>{q!==void 0&&k.append(A,typeof q=="object"?JSON.stringify(q):String(q))}),k.append("options",JSON.stringify(h.value));const V=await $fetch("/api/database-import/import-database",{method:"POST",body:k}),O=await s.monitorJob(V.statusUrl);if(O.status==="completed"){b.value=O.message||"Database imported successfully",x();return}d.value=O.error||O.message||"Import failed"}catch(k){d.value=k instanceof Error?k.message:"Import failed. Check the backup file and connection compatibility.",console.error("Import error:",k)}}},reset:()=>{s.reset(),d.value=null,b.value=null,x()}}},vs={class:"flex flex-col h-full gap-3 overflow-hidden p-3"},bs={class:"font-medium text-foreground"},xs={class:"text-muted-foreground/60"},ys={class:"flex items-center justify-between gap-2"},hs={class:"text-xs text-muted-foreground"},ks={class:"flex-1 overflow-y-auto rounded-lg border bg-background p-4"},ws={class:"space-y-4"},$s={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},Cs={class:"mt-1 text-sm text-muted-foreground"},Ss={class:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]"},Bs={class:"rounded-lg border p-4"},Fs={class:"space-y-4"},Ts={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},Ds={class:"mt-1 text-sm text-muted-foreground"},Es={class:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]"},Is={class:"rounded-lg border p-4 space-y-4"},Rs={class:"text-muted-foreground text-xs inline-flex items-center gap-0.5"},zs={class:"text-destructive gap-0.5 items-center inline-flex"},Ls=j({__name:"BackupRestoreContainer",props:{connectionId:{},initialTab:{}},setup(p){const s=p,n=mt(),f=pt(),c=v(()=>{if(s.connectionId)return n.connections.find($=>$.id===s.connectionId)}),r=v(()=>{var $;return($=c.value)==null?void 0:$.type}),d=v(()=>{var $,y;return(($=c.value)==null?void 0:$.database)||((y=c.value)==null?void 0:y.name)||"database"}),b=v(()=>Fe(r.value)),i=v(()=>bt(r.value)),C=v(()=>xt(r.value)),h=v(()=>Be(r.value)),w=v(()=>ie(r.value)),D=v(()=>yt(r.value)),z=v(()=>w.value.map($=>$.extension).join(" / ")),l=v(()=>s.connectionId?(f.schemas[s.connectionId]||[]).filter($=>$.connectionId===s.connectionId).map($=>$.name):[]),x=[{id:"export",tabLabel:"Create Backup",subtitle:"Generate native backup artifacts for the current connection.",icon:"hugeicons:download-01"},{id:"import",tabLabel:"Restore Backup",subtitle:"Apply a native backup artifact back into this connection.",icon:"hugeicons:upload-01"}],S=F(s.initialTab),E=v(()=>x.find($=>$.id===S.value));le(()=>s.initialTab,$=>{S.value=$});const I=$=>{S.value=$},{isExporting:u,progress:k,error:N,lastExport:V,currentJob:O,statusMessage:A,exportDatabase:q,reset:De}=gs(c),Ee=async $=>{await q(d.value,$)},{isImporting:U,progress:Ie,statusMessage:Re,currentJob:ee,error:ue,success:ce,selectedFile:de,options:te,extensionSummary:ze,onFileSelect:Oe,clearSelectedFile:Ne,importDatabase:Ve,reset:qe}=_s(c),G=F(!1),Me=()=>{G.value=!0},je=async()=>{G.value=!1,await Ve()},Le=()=>{G.value=!1};return($,y)=>{var me,pe,fe,ge,_e;const Pe=He,L=W,Ae=_t,Ue=gt,Je=ft,K=Se,X=Ce,se=Q,Z=$e;return g(),B("div",vs,[o(is,{open:e(G),onConfirm:je,onCancel:Le},null,8,["open"]),o(Pe,{icon:"hugeicons:database-import",title:"Backup & Restore"},{context:a(()=>[t("span",bs,m(e(d)),1),t("span",xs,"· "+m(e(b)),1)]),_:1}),t("div",ys,[o(Je,{modelValue:e(S),"onUpdate:modelValue":y[0]||(y[0]=R=>Y(S)?S.value=R:null),class:"min-w-0 flex-1 gap-0"},{default:a(()=>[o(Ue,{class:"h-8 max-w-full justify-start! overflow-x-auto"},{default:a(()=>[(g(),B(P,null,J(x,R=>o(Ae,{key:R.id,value:R.id,class:"min-w-fit shrink-0 cursor-pointer rounded-sm px-1.5 text-xs",disabled:!e(i),onClick:oe=>I(R.id)},{default:a(()=>[o(L,{name:R.icon,class:"shrink-0 size-3.5"},null,8,["name"]),_(" "+m(R.tabLabel),1)]),_:2},1032,["value","disabled","onClick"])),64))]),_:1})]),_:1},8,["modelValue"]),t("div",hs,m((me=e(E))==null?void 0:me.subtitle),1)]),t("div",ks,[e(i)?(g(),B(P,{key:1},[ve(t("div",ws,[t("div",$s,[t("div",null,[y[2]||(y[2]=t("h3",{class:"text-base font-medium"},"Create Backup",-1)),t("p",Cs," Export "+m(e(d))+" using "+m(e(h))+". ",1)])]),e(N)?(g(),T(Z,{key:0,variant:"destructive"},{default:a(()=>[o(L,{name:"hugeicons:alert-circle",class:"size-4"}),o(K,null,{default:a(()=>y[3]||(y[3]=[_("Backup Failed")])),_:1}),o(X,null,{default:a(()=>[_(m(e(N)),1)]),_:1}),o(se,{size:"sm",variant:"outline",class:"mt-2",onClick:e(De)},{default:a(()=>y[4]||(y[4]=[_(" Try Again ")])),_:1},8,["onClick"])]),_:1})):M("",!0),e(V)&&!e(u)&&!e(N)?(g(),T(Z,{key:1},{default:a(()=>[o(L,{name:"hugeicons:checkmark-circle-02",class:"size-4 text-green-500"}),o(K,null,{default:a(()=>y[5]||(y[5]=[_("Backup Complete")])),_:1}),o(X,null,{default:a(()=>{var R,oe;return[_(m((R=e(V))==null?void 0:R.fileName)+" downloaded in "+m(((((oe=e(V))==null?void 0:oe.duration)||0)/1e3).toFixed(1))+"s ",1)]}),_:1})]),_:1})):M("",!0),e(u)||e(O)?(g(),T(he,{key:2,tool:((pe=e(O))==null?void 0:pe.tool)||e(h),stage:((fe=e(O))==null?void 0:fe.stage)||"queued","status-message":e(A)||"",progress:e(k),"is-running":e(u)},null,8,["tool","stage","status-message","progress","is-running"])):M("",!0),t("div",Ss,[t("div",Bs,[o(Gt,{schemas:e(l),loading:e(u),"connection-type":e(r),onSubmit:Ee},null,8,["schemas","loading","connection-type"])]),o(ye,{title:"Backup Profile",description:"Exports run on the local runtime host and stream the artifact directly into a downloadable file.",formats:e(w),"tool-hint":e(h),"target-name":e(d),"formats-label":"Supported Files"},null,8,["formats","tool-hint","target-name"])])],512),[[be,e(S)==="export"]]),ve(t("div",Fs,[t("div",Ts,[t("div",null,[y[6]||(y[6]=t("h3",{class:"text-base font-medium"},"Restore Backup",-1)),t("p",Ds," Restore a "+m(e(z))+" backup into "+m(e(d))+". ",1)])]),e(ue)?(g(),T(Z,{key:0,variant:"destructive"},{default:a(()=>[o(L,{name:"hugeicons:alert-circle",class:"size-4"}),o(K,null,{default:a(()=>y[7]||(y[7]=[_("Import Failed")])),_:1}),o(X,null,{default:a(()=>[_(m(e(ue)),1)]),_:1}),o(se,{size:"sm",variant:"outline",class:"mt-2",onClick:e(qe)},{default:a(()=>y[8]||(y[8]=[_(" Try Again ")])),_:1},8,["onClick"])]),_:1})):M("",!0),e(ce)?(g(),T(Z,{key:1},{default:a(()=>[o(L,{name:"hugeicons:checkmark-circle-02",class:"size-4 text-green-500"}),o(K,null,{default:a(()=>y[9]||(y[9]=[_("Import Complete")])),_:1}),o(X,null,{default:a(()=>[_(m(e(ce)),1)]),_:1})]),_:1})):M("",!0),e(U)||e(ee)?(g(),T(he,{key:2,tool:((ge=e(ee))==null?void 0:ge.tool)||e(h),stage:((_e=e(ee))==null?void 0:_e.stage)||"queued","status-message":e(Re)||"",progress:e(Ie),"is-running":e(U),"progress-class":"bg-emerald-500"},null,8,["tool","stage","status-message","progress","is-running"])):M("",!0),t("div",Es,[t("div",Is,[o(os,{"selected-file":e(de),accept:e(D),"extension-summary":e(ze),onChange:e(Oe),onClear:e(Ne)},null,8,["selected-file","accept","extension-summary","onChange","onClear"]),o(ls,{modelValue:e(te),"onUpdate:modelValue":y[1]||(y[1]=R=>Y(te)?te.value=R:null)},null,8,["modelValue"]),o(se,{class:"w-full",size:"lg",disabled:!e(de)||e(U),onClick:Me},{default:a(()=>[o(L,{name:e(U)?"hugeicons:loading-03":"hugeicons:upload-01",class:re(["size-4 mr-2",e(U)&&"animate-spin"])},null,8,["name","class"]),_(" "+m(e(U)?"Restoring...":"Restore Backup"),1)]),_:1},8,["disabled"]),t("p",Rs,[t("polyline",zs,[o(L,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),y[10]||(y[10]=_(" Warning: "))]),y[11]||(y[11]=_(" Importing a database can overwrite existing data. Make sure you have a backup before proceeding. "))])]),o(ye,{title:"Restore Profile",description:"Use a backup file produced for the same database family and runtime toolchain.",formats:e(w),"tool-hint":e(h),"target-name":e(d),"formats-label":"Accepted Files"},null,8,["formats","tool-hint","target-name"])])],512),[[be,e(S)==="import"]])],64)):(g(),T(Nt,{key:0,"support-message":e(C),"connection-type":e(r)},null,8,["support-message","connection-type"]))])])}}});export{Ls as _};
|
|
7
|
+
# Windows: Download from https://www.sqlite.org/download.html`,Vt=q({__name:"BackupRestoreUnsupportedAlert",props:{supportMessage:{},connectionType:{}},setup(p){return(s,n)=>{const f=W,c=Se,r=ht,d=Ce,b=$e;return g(),T(b,null,{default:a(()=>[o(c,{class:"flex items-center font-medium gap-1"},{default:a(()=>[o(f,{name:"hugeicons:alert-circle",class:"size-4"}),n[0]||(n[0]=_(" Native Tools Required"))]),_:1}),o(d,{class:"space-y-3"},{default:a(()=>[t("p",Et,m(s.supportMessage),1),t("div",It,[n[1]||(n[1]=t("p",{class:"font-medium"},"Installation instructions:",-1)),s.connectionType==="postgres"?(g(),T(r,{key:0,code:Rt,language:"bash"})):s.connectionType==="mysql"||s.connectionType==="mariadb"?(g(),T(r,{key:1,code:zt,language:"bash"})):s.connectionType==="sqlite3"?(g(),T(r,{key:2,code:Ot,language:"bash"})):j("",!0)])]),_:1})]),_:1})}}}),Nt={class:"space-y-4"},Mt={class:"space-y-2"},jt={class:"grid gap-2 sm:grid-cols-2"},qt=["onClick"],Lt={class:"flex items-center justify-between gap-2"},Pt={class:"text-sm font-medium"},At={class:"mt-1 text-xs text-muted-foreground"},Ut={class:"space-y-2"},Jt={key:0,class:"space-y-2"},Ht={class:"flex flex-wrap gap-2 max-h-32 overflow-y-auto p-2 border rounded-md"},Wt={class:"text-xs text-muted-foreground"},Kt=q({__name:"ExportOptionsForm",props:{schemas:{},loading:{type:Boolean},connectionType:{}},emits:["submit"],setup(p,{emit:s}){const n=p,f=s,c=F("full"),r=F(xe(n.connectionType)),d=F([]),b=v(()=>ie(n.connectionType));le(b,h=>{var w;h.some(D=>D.format===r.value)||(r.value=((w=h[0])==null?void 0:w.format)||xe(n.connectionType))},{immediate:!0});const i=[{value:"full",label:"Full (schema + data)"},{value:"schema-only",label:"Schema only (no data)"},{value:"data-only",label:"Data only (no schema)"}],C=()=>{const h={format:r.value,scope:c.value};h.schemas=d.value.length>0?d.value:n.schemas,f("submit",h)};return(h,w)=>{const D=Ge,z=Ke,l=Xe,x=Ze,S=We,E=W,I=Q;return g(),B("div",Nt,[t("div",Mt,[o(e(H),null,{default:a(()=>w[1]||(w[1]=[_("Backup Format")])),_:1}),t("div",jt,[(g(!0),B(P,null,J(e(b),u=>(g(),B("button",{key:u.format,type:"button",class:re(["rounded-lg border p-3 text-left transition-colors",e(r)===u.format?"border-primary bg-primary/5":"hover:border-primary/40 hover:bg-muted/20"]),onClick:k=>r.value=u.format},[t("div",Lt,[t("p",Pt,m(u.label),1),o(e(ae),{variant:"secondary",class:"font-normal"},{default:a(()=>[_(m(u.extension),1)]),_:2},1024)]),t("p",At," Runtime uses "+m(e(Be)(n.connectionType))+". ",1)],10,qt))),128))])]),t("div",Ut,[o(e(H),null,{default:a(()=>w[2]||(w[2]=[_("Export Scope")])),_:1}),o(S,{modelValue:e(c),"onUpdate:modelValue":w[0]||(w[0]=u=>Y(c)?c.value=u:null)},{default:a(()=>[o(z,{size:"sm",class:"h-7!"},{default:a(()=>[o(D,{placeholder:"Select scope"})]),_:1}),o(x,null,{default:a(()=>[(g(),B(P,null,J(i,u=>o(l,{key:u.value,value:u.value},{default:a(()=>[_(m(u.label),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["modelValue"])]),h.schemas.length>0?(g(),B("div",Jt,[o(e(H),null,{default:a(()=>w[3]||(w[3]=[_("Schemas (optional)")])),_:1}),t("div",Ht,[(g(!0),B(P,null,J(h.schemas,u=>(g(),T(e(ae),{key:u,variant:e(d).includes(u)?"default":"outline",class:"cursor-pointer",onClick:()=>e(d).includes(u)?d.value=e(d).filter(k=>k!==u):e(d).push(u)},{default:a(()=>[_(m(u),1)]),_:2},1032,["variant","onClick"]))),128))]),t("p",Wt,m(e(d).length?`${e(d).length} selected`:"All visible schemas"),1)])):j("",!0),o(I,{class:"w-full",disabled:h.loading,onClick:C},{default:a(()=>[h.loading?(g(),T(E,{key:0,name:"hugeicons:loading-03",class:"size-4 mr-2 animate-spin"})):(g(),T(E,{key:1,name:"lucide:download",class:"size-4 mr-2"})),_(" "+m(h.loading?"Creating Backup...":"Create Backup"),1)]),_:1},8,["disabled"])])}}}),Gt={class:"relative mt-2 cursor-pointer rounded-lg border-2 border-dashed p-6 text-center transition-colors hover:border-primary/50"},Zt=["accept"],Xt={key:0,class:"text-muted-foreground pointer-events-none"},Yt={class:"text-xs mt-1"},Qt={key:1,class:"flex items-center justify-center gap-3"},es={class:"text-left"},ts={class:"text-sm font-medium"},ss={class:"text-xs text-muted-foreground"},os=q({__name:"ImportFileDropzone",props:{selectedFile:{},accept:{},extensionSummary:{}},emits:["change","clear"],setup(p){const s=n=>n<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(1)} KB`:`${(n/1048576).toFixed(1)} MB`;return(n,f)=>{const c=H,r=W,d=Q;return g(),B("div",null,[o(c,{class:"text-sm font-medium"},{default:a(()=>f[2]||(f[2]=[_("Backup File")])),_:1}),t("div",Gt,[t("input",{type:"file",accept:n.accept,class:"absolute inset-0 w-full h-full opacity-0 cursor-pointer",onChange:f[0]||(f[0]=b=>n.$emit("change",b))},null,40,Zt),n.selectedFile?(g(),B("div",Qt,[o(r,{name:"hugeicons:file-01",class:"size-8 text-primary"}),t("div",es,[t("p",ts,m(n.selectedFile.name),1),t("p",ss,m(s(n.selectedFile.size)),1)]),o(d,{variant:"ghost",size:"icon",class:"ml-2 relative z-10",type:"button",onClick:f[1]||(f[1]=Ye(b=>n.$emit("clear"),["stop"]))},{default:a(()=>[o(r,{name:"hugeicons:x-close",class:"size-4"})]),_:1})])):(g(),B("div",Xt,[o(r,{name:"hugeicons:upload-cloud-01",class:"size-10 mx-auto mb-2 opacity-50"}),f[3]||(f[3]=t("p",{class:"text-sm font-medium"},"Click to select a file",-1)),t("p",Yt,"Supports "+m(n.extensionSummary)+" backups",1)]))])])}}}),ns={class:"space-y-3"},as={class:"grid grid-cols-2 gap-4"},ls=q({__name:"ImportOptionsForm",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(p){const s=Qe(p,"modelValue"),n=(c,r)=>{s.value[c]=r},f=[{key:"clean",label:"Drop Objects First",id:"import-clean"},{key:"dataOnly",label:"Data Only",id:"import-data-only"},{key:"schemaOnly",label:"Schema Only",id:"import-schema-only"},{key:"exitOnError",label:"Exit on Error",id:"import-exit-on-error"}];return(c,r)=>{const d=H,b=et;return g(),B("div",ns,[o(d,{class:"text-sm font-medium"},{default:a(()=>r[0]||(r[0]=[_("Options")])),_:1}),t("div",as,[(g(),B(P,null,J(f,i=>t("div",{key:i.key,class:"flex items-center space-x-2"},[o(b,{id:i.id,"model-value":s.value[i.key],"onUpdate:modelValue":C=>n(i.key,C)},null,8,["id","model-value","onUpdate:modelValue"]),o(d,{for:i.id,class:"text-sm"},{default:a(()=>[_(m(i.label),1)]),_:2},1032,["for"])])),64))])])}}}),rs={class:"space-y-3 py-1"},ne="restore backup",is=q({__name:"RestoreConfirmDialog",props:{open:{type:Boolean}},emits:["confirm","cancel"],setup(p,{emit:s}){const n=p,f=s,c=F("");le(()=>n.open,b=>{b&&(c.value="")});const r=v(()=>c.value===ne),d=()=>{r.value&&f("confirm")};return(b,i)=>{const C=W,h=ot,w=nt,D=st,z=H,l=at,x=Q,S=rt,E=it,I=tt;return g(),T(I,{open:b.open,"onUpdate:open":i[2]||(i[2]=u=>!u&&b.$emit("cancel"))},{default:a(()=>[o(E,{class:"max-w-sm"},{default:a(()=>[o(D,null,{default:a(()=>[o(h,{class:"flex items-center gap-2 text-destructive"},{default:a(()=>[o(C,{name:"hugeicons:alert-02",class:"size-5"}),i[3]||(i[3]=_(" Confirm Restore "))]),_:1}),o(w,null,{default:a(()=>i[4]||(i[4]=[_(" This will overwrite existing data in the target database. This action cannot be undone. ")])),_:1})]),_:1}),t("div",rs,[o(z,{for:"restore-confirm-input"},{default:a(()=>[i[5]||(i[5]=_(" Type ")),t("code",{class:"rounded bg-muted px-1 py-0.5 text-xs font-mono"},m(ne)),i[6]||(i[6]=_(" to continue: "))]),_:1}),o(l,{id:"restore-confirm-input",modelValue:e(c),"onUpdate:modelValue":i[0]||(i[0]=u=>Y(c)?c.value=u:null),placeholder:ne,autocomplete:"off",onKeydown:lt(d,["enter"])},null,8,["modelValue"])]),o(S,null,{default:a(()=>[o(x,{variant:"outline",onClick:i[1]||(i[1]=u=>b.$emit("cancel"))},{default:a(()=>i[7]||(i[7]=[_("Cancel")])),_:1}),o(x,{variant:"destructive",disabled:!e(r),onClick:d},{default:a(()=>i[8]||(i[8]=[_(" Restore ")])),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),us={class:"rounded-lg border bg-muted/30 p-4"},cs={class:"flex items-center justify-between gap-4"},ds={class:"text-sm font-medium"},ms={class:"text-xs text-muted-foreground"},ps={class:"text-sm font-medium"},fs={class:"mt-3 h-2 overflow-hidden rounded-full bg-border/60"},he=q({__name:"TransferProgressCard",props:{tool:{},stage:{},statusMessage:{},progress:{},isRunning:{type:Boolean},progressClass:{default:"bg-primary"}},setup(p){return(s,n)=>(g(),B("div",us,[t("div",cs,[t("div",null,[t("p",ds,m(s.tool)+" · "+m(s.stage),1),t("p",ms,m(s.statusMessage||"Preparing job..."),1)]),t("span",ps,m(s.progress)+"%",1)]),t("div",fs,[t("div",{class:re(["h-full rounded-full transition-all duration-300",s.progressClass]),style:ut({width:`${Math.max(s.progress,s.isRunning?8:0)}%`})},null,6)])]))}});function ke(p){return!!(p&&(p.status==="completed"||p.status==="error"))}const Te=()=>{const p=F(null),s=F(null),n=F(null),f=F(!1);let c=null,r=null;const d=l=>{c==null||c(l),c=null,r=null},b=l=>{r==null||r(l),c=null,r=null},i=async()=>{if(!n.value)throw new Error("Backup job status URL is missing.");if(f.value){if(p.value)return p.value;throw new Error("Backup job refresh is already in progress.")}f.value=!0;try{const l=await $fetch(n.value);return p.value=l,l.status==="error"&&(s.value=l.error||l.message),ke(l)&&(C(),d(l)),l}catch(l){const x=l instanceof Error?l:new Error("Failed to refresh backup job status.");throw s.value=x.message,C(),b(x),x}finally{f.value=!1}},{pause:C,resume:h,isActive:w}=ct(()=>{i()},1e3,{immediate:!1,immediateCallback:!1}),D=async l=>{n.value=l,s.value=null;const x=await i();return ke(x)?x:(h(),await new Promise((S,E)=>{c=S,r=E}))},z=()=>{C(),n.value=null,p.value=null,s.value=null,f.value=!1,c=null,r=null};return dt(()=>{C()}),{job:p,error:s,isRefreshing:f,isPolling:w,progress:v(()=>{var l;return((l=p.value)==null?void 0:l.progress)??0}),message:v(()=>{var l;return((l=p.value)==null?void 0:l.message)??null}),stage:v(()=>{var l;return((l=p.value)==null?void 0:l.stage)??"queued"}),status:v(()=>{var l;return((l=p.value)==null?void 0:l.status)??"queued"}),isRunning:v(()=>{var l,x;return((l=p.value)==null?void 0:l.status)==="queued"||((x=p.value)==null?void 0:x.status)==="running"}),monitorJob:D,refresh:i,reset:z}},gs=p=>{const s=F(null),n=F(null),f=Te(),{downloadStream:c,isDownloading:r,downloadedBytes:d}=kt(),b=v(()=>f.isRunning.value||r.value),i=v(()=>r.value?100:f.progress.value),C=v(()=>r.value?`Downloading backup artifact (${d.value} bytes)...`:f.message.value),h=v(()=>f.job.value),w=async(l,x)=>{var S,E;if(!p.value)return s.value="No database connection provided",!1;s.value=null,n.value=null;try{const I=await $fetch("/api/database-export/export-database",{method:"POST",body:{...we(p.value),databaseName:l,options:x}}),u=await f.monitorJob(I.statusUrl);if(u.status==="error")return s.value=u.error||u.message,!1;if(!u.downloadUrl||!u.downloadFileName)return s.value="Export finished but no download artifact was returned.",!1;const k=await c({url:u.downloadUrl,method:"GET",filename:u.downloadFileName||`${l}_backup${D((S=p.value)==null?void 0:S.type,x.format)}`});return k.success?(n.value={fileName:u.downloadFileName,duration:u.duration||0},!0):(s.value=((E=k.error)==null?void 0:E.message)||"Download failed.",!1)}catch(I){return s.value=I instanceof Error?I.message:"Export failed. Check the connection and backup configuration.",console.error("Export error:",I),!1}},D=(l,x)=>vt(l,x);return{isExporting:b,progress:i,error:s,lastExport:n,currentJob:h,statusMessage:C,exportDatabase:w,reset:()=>{f.reset(),s.value=null,n.value=null}}},_s=p=>{const s=Te(),n=v(()=>s.isRunning.value),f=v(()=>s.progress.value),c=v(()=>s.message.value),r=v(()=>s.job.value),d=F(null),b=F(null),i=F(null),C=F(null),h=F({clean:!1,dataOnly:!1,schemaOnly:!1,exitOnError:!0}),w=v(()=>{var k;return(k=p.value)==null?void 0:k.type}),D=v(()=>ie(w.value)),z=v(()=>Fe(w.value)),l=v(()=>D.value.map(k=>k.extension).join(" / ")),x=()=>{i.value=null,C.value&&(C.value.value="")};return{isImporting:n,progress:f,statusMessage:c,currentJob:r,error:d,success:b,selectedFile:i,fileInputRef:C,options:h,extensionSummary:l,clearSelectedFile:x,openFilePicker:()=>{var k;(k=C.value)==null||k.click()},onFileSelect:k=>{var A;const V=k.target;if(!((A=V.files)!=null&&A.length))return;const N=V.files[0];if(!D.value.some(M=>N.name.toLowerCase().endsWith(M.extension.toLowerCase()))){x(),d.value=`Unsupported file type. Use ${l.value} for ${z.value}.`,b.value=null;return}i.value=N,d.value=null,b.value=null},importDatabase:async()=>{if(!(!i.value||!p.value)){d.value=null,b.value=null;try{const k=new FormData;k.append("file",i.value);const V=we(p.value);Object.entries(V).forEach(([A,M])=>{M!==void 0&&k.append(A,typeof M=="object"?JSON.stringify(M):String(M))}),k.append("options",JSON.stringify(h.value));const N=await $fetch("/api/database-import/import-database",{method:"POST",body:k}),O=await s.monitorJob(N.statusUrl);if(O.status==="completed"){b.value=O.message||"Database imported successfully",x();return}d.value=O.error||O.message||"Import failed"}catch(k){d.value=k instanceof Error?k.message:"Import failed. Check the backup file and connection compatibility.",console.error("Import error:",k)}}},reset:()=>{s.reset(),d.value=null,b.value=null,x()}}},vs={class:"flex flex-col h-full gap-3 overflow-hidden p-3"},bs={class:"font-medium text-foreground"},xs={class:"text-muted-foreground/60"},ys={class:"flex items-center justify-between gap-2"},hs={class:"text-xs text-muted-foreground"},ks={class:"flex-1 overflow-y-auto rounded-lg border bg-background p-4"},ws={class:"space-y-4"},$s={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},Cs={class:"mt-1 text-sm text-muted-foreground"},Ss={class:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]"},Bs={class:"rounded-lg border p-4"},Fs={class:"space-y-4"},Ts={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},Ds={class:"mt-1 text-sm text-muted-foreground"},Es={class:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]"},Is={class:"rounded-lg border p-4 space-y-4"},Rs={class:"text-muted-foreground text-xs inline-flex items-center gap-0.5"},zs={class:"text-destructive gap-0.5 items-center inline-flex"},Ls=q({__name:"BackupRestoreContainer",props:{connectionId:{},initialTab:{}},setup(p){const s=p,n=mt(),f=pt(),c=v(()=>{if(s.connectionId)return n.connections.find($=>$.id===s.connectionId)}),r=v(()=>{var $;return($=c.value)==null?void 0:$.type}),d=v(()=>{var $,y;return(($=c.value)==null?void 0:$.database)||((y=c.value)==null?void 0:y.name)||"database"}),b=v(()=>Fe(r.value)),i=v(()=>bt(r.value)),C=v(()=>xt(r.value)),h=v(()=>Be(r.value)),w=v(()=>ie(r.value)),D=v(()=>yt(r.value)),z=v(()=>w.value.map($=>$.extension).join(" / ")),l=v(()=>s.connectionId?(f.schemas[s.connectionId]||[]).filter($=>$.connectionId===s.connectionId).map($=>$.name):[]),x=[{id:"export",tabLabel:"Create Backup",subtitle:"Generate native backup artifacts for the current connection.",icon:"hugeicons:download-01"},{id:"import",tabLabel:"Restore Backup",subtitle:"Apply a native backup artifact back into this connection.",icon:"hugeicons:upload-01"}],S=F(s.initialTab),E=v(()=>x.find($=>$.id===S.value));le(()=>s.initialTab,$=>{S.value=$});const I=$=>{S.value=$},{isExporting:u,progress:k,error:V,lastExport:N,currentJob:O,statusMessage:A,exportDatabase:M,reset:De}=gs(c),Ee=async $=>{await M(d.value,$)},{isImporting:U,progress:Ie,statusMessage:Re,currentJob:ee,error:ue,success:ce,selectedFile:de,options:te,extensionSummary:ze,onFileSelect:Oe,clearSelectedFile:Ve,importDatabase:Ne,reset:Me}=_s(c),K=F(!1),je=()=>{K.value=!0},qe=async()=>{K.value=!1,await Ne()},Le=()=>{K.value=!1};return($,y)=>{var me,pe,fe,ge,_e;const Pe=He,L=W,Ae=_t,Ue=gt,Je=ft,G=Se,Z=Ce,se=Q,X=$e;return g(),B("div",vs,[o(is,{open:e(K),onConfirm:qe,onCancel:Le},null,8,["open"]),o(Pe,{icon:"hugeicons:database-import",title:"Backup & Restore"},{context:a(()=>[t("span",bs,m(e(d)),1),t("span",xs,"· "+m(e(b)),1)]),_:1}),t("div",ys,[o(Je,{modelValue:e(S),"onUpdate:modelValue":y[0]||(y[0]=R=>Y(S)?S.value=R:null),class:"min-w-0 flex-1 gap-0"},{default:a(()=>[o(Ue,{class:"h-8 max-w-full justify-start! overflow-x-auto"},{default:a(()=>[(g(),B(P,null,J(x,R=>o(Ae,{key:R.id,value:R.id,class:"min-w-fit shrink-0 cursor-pointer rounded-sm px-1.5 text-xs",disabled:!e(i),onClick:oe=>I(R.id)},{default:a(()=>[o(L,{name:R.icon,class:"shrink-0 size-3.5"},null,8,["name"]),_(" "+m(R.tabLabel),1)]),_:2},1032,["value","disabled","onClick"])),64))]),_:1})]),_:1},8,["modelValue"]),t("div",hs,m((me=e(E))==null?void 0:me.subtitle),1)]),t("div",ks,[e(i)?(g(),B(P,{key:1},[ve(t("div",ws,[t("div",$s,[t("div",null,[y[2]||(y[2]=t("h3",{class:"text-base font-medium"},"Create Backup",-1)),t("p",Cs," Export "+m(e(d))+" using "+m(e(h))+". ",1)])]),e(V)?(g(),T(X,{key:0,variant:"destructive"},{default:a(()=>[o(L,{name:"hugeicons:alert-circle",class:"size-4"}),o(G,null,{default:a(()=>y[3]||(y[3]=[_("Backup Failed")])),_:1}),o(Z,null,{default:a(()=>[_(m(e(V)),1)]),_:1}),o(se,{size:"sm",variant:"outline",class:"mt-2",onClick:e(De)},{default:a(()=>y[4]||(y[4]=[_(" Try Again ")])),_:1},8,["onClick"])]),_:1})):j("",!0),e(N)&&!e(u)&&!e(V)?(g(),T(X,{key:1},{default:a(()=>[o(L,{name:"hugeicons:checkmark-circle-02",class:"size-4 text-green-500"}),o(G,null,{default:a(()=>y[5]||(y[5]=[_("Backup Complete")])),_:1}),o(Z,null,{default:a(()=>{var R,oe;return[_(m((R=e(N))==null?void 0:R.fileName)+" downloaded in "+m(((((oe=e(N))==null?void 0:oe.duration)||0)/1e3).toFixed(1))+"s ",1)]}),_:1})]),_:1})):j("",!0),e(u)||e(O)?(g(),T(he,{key:2,tool:((pe=e(O))==null?void 0:pe.tool)||e(h),stage:((fe=e(O))==null?void 0:fe.stage)||"queued","status-message":e(A)||"",progress:e(k),"is-running":e(u)},null,8,["tool","stage","status-message","progress","is-running"])):j("",!0),t("div",Ss,[t("div",Bs,[o(Kt,{schemas:e(l),loading:e(u),"connection-type":e(r),onSubmit:Ee},null,8,["schemas","loading","connection-type"])]),o(ye,{title:"Backup Profile",description:"Exports run on the local runtime host and stream the artifact directly into a downloadable file.",formats:e(w),"tool-hint":e(h),"target-name":e(d),"formats-label":"Supported Files"},null,8,["formats","tool-hint","target-name"])])],512),[[be,e(S)==="export"]]),ve(t("div",Fs,[t("div",Ts,[t("div",null,[y[6]||(y[6]=t("h3",{class:"text-base font-medium"},"Restore Backup",-1)),t("p",Ds," Restore a "+m(e(z))+" backup into "+m(e(d))+". ",1)])]),e(ue)?(g(),T(X,{key:0,variant:"destructive"},{default:a(()=>[o(L,{name:"hugeicons:alert-circle",class:"size-4"}),o(G,null,{default:a(()=>y[7]||(y[7]=[_("Import Failed")])),_:1}),o(Z,null,{default:a(()=>[_(m(e(ue)),1)]),_:1}),o(se,{size:"sm",variant:"outline",class:"mt-2",onClick:e(Me)},{default:a(()=>y[8]||(y[8]=[_(" Try Again ")])),_:1},8,["onClick"])]),_:1})):j("",!0),e(ce)?(g(),T(X,{key:1},{default:a(()=>[o(L,{name:"hugeicons:checkmark-circle-02",class:"size-4 text-green-500"}),o(G,null,{default:a(()=>y[9]||(y[9]=[_("Import Complete")])),_:1}),o(Z,null,{default:a(()=>[_(m(e(ce)),1)]),_:1})]),_:1})):j("",!0),e(U)||e(ee)?(g(),T(he,{key:2,tool:((ge=e(ee))==null?void 0:ge.tool)||e(h),stage:((_e=e(ee))==null?void 0:_e.stage)||"queued","status-message":e(Re)||"",progress:e(Ie),"is-running":e(U),"progress-class":"bg-emerald-500"},null,8,["tool","stage","status-message","progress","is-running"])):j("",!0),t("div",Es,[t("div",Is,[o(os,{"selected-file":e(de),accept:e(D),"extension-summary":e(ze),onChange:e(Oe),onClear:e(Ve)},null,8,["selected-file","accept","extension-summary","onChange","onClear"]),o(ls,{modelValue:e(te),"onUpdate:modelValue":y[1]||(y[1]=R=>Y(te)?te.value=R:null)},null,8,["modelValue"]),o(se,{class:"w-full",size:"lg",disabled:!e(de)||e(U),onClick:je},{default:a(()=>[o(L,{name:e(U)?"hugeicons:loading-03":"hugeicons:upload-01",class:re(["size-4 mr-2",e(U)&&"animate-spin"])},null,8,["name","class"]),_(" "+m(e(U)?"Restoring...":"Restore Backup"),1)]),_:1},8,["disabled"]),t("p",Rs,[t("polyline",zs,[o(L,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),y[10]||(y[10]=_(" Warning: "))]),y[11]||(y[11]=_(" Importing a database can overwrite existing data. Make sure you have a backup before proceeding. "))])]),o(ye,{title:"Restore Profile",description:"Use a backup file produced for the same database family and runtime toolchain.",formats:e(w),"tool-hint":e(h),"target-name":e(d),"formats-label":"Accepted Files"},null,8,["formats","tool-hint","target-name"])])],512),[[be,e(S)==="import"]])],64)):(g(),T(Vt,{key:0,"support-message":e(C),"connection-type":e(r)},null,8,["support-message","connection-type"]))])])}}});export{Ls as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as r,a8 as m,c as a,e as c,k as p,g as o,f as l,m as u,o as e,A as _}from"./
|
|
1
|
+
import{d as r,a8 as m,c as a,e as c,k as p,g as o,f as l,m as u,o as e,A as _}from"./BfSmOVMj.js";import"./D0mrO5vS.js";import{_ as d}from"./Dfzgj0Oq.js";import"./DDS9xPxH.js";import"./BVl8VKr5.js";import"./HP3PGEjt.js";import"./DoB1FFC2.js";import"./D3ujZRkc.js";import"./UHOKyE8O.js";import"./C20WaARR.js";import"./BSBcOKKj.js";import"./CRX1CszZ.js";import"./BCFLQ_rL.js";import"./CS5akSNT.js";import"./C2kyA9ZS.js";const f={class:"h-full"},x={key:0,class:"h-full p-4 flex flex-col items-center justify-center text-muted-foreground"},R=r({__name:"index",setup(k){const s=m(),t=a(()=>String(s.params.connectionId||""));return(g,n)=>{const i=_;return e(),c("div",f,[o(t)?(e(),p(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{R as default};
|