planche 0.9.4 → 0.9.5
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/app/assets/{CZRhmV_L.js → 15ORcG2N.js} +2 -2
- package/app/assets/{u9a-WHjb.js → Ahsdniz8.js} +1 -1
- package/app/assets/B5qa5yLu.js +1 -0
- package/app/assets/{C82F2LSh.js → B7sbjdEF.js} +1 -1
- package/app/assets/BCNsD3zL.js +1 -0
- package/app/assets/{7hKKrols.js → BLX_0Iuc.js} +1 -1
- package/app/assets/{zdvaVsTo.js → BQ0kaqOO.js} +1 -1
- package/app/assets/{kTwcxyaO.js → BTOj30GE.js} +1 -1
- package/app/assets/{Buf-_p3w.js → BXxY3z0A.js} +1 -1
- package/app/assets/{C-8Bh-gu.js → BdU74M5l.js} +1 -1
- package/app/assets/{CyX8oVsa.js → BeP_ukJr.js} +1 -1
- package/app/assets/Bfg3uD4T.css +2 -0
- package/app/assets/{MeOkctzz.js → BfuyTuMK.js} +1 -1
- package/app/assets/{DjsycSVl.js → Bh2UJoox.js} +1 -1
- package/app/assets/{BTpuv2bS.js → BhLxz3YC.js} +1 -1
- package/app/assets/{2HDxyxt3.js → BiLp3cou.js} +1 -1
- package/app/assets/{BdhjYiGI.js → BoyxPMVw.js} +1 -1
- package/app/assets/{BRKvj3qd.js → Bu90AfVd.js} +1 -1
- package/app/assets/{34iJa-68.js → Bv67Bucf.js} +1 -1
- package/app/assets/{BvkNY7SP.js → BvbKV2Ph.js} +1 -1
- package/app/assets/{CDfygETm.js → By6P807S.js} +1 -1
- package/app/assets/{Cme0nCT7.js → Byi789lS.js} +2 -2
- package/app/assets/{62772Vyq.js → C9opSbIc.js} +1 -1
- package/app/assets/{yfRSh-O-.js → C9slUGvf.js} +1 -1
- package/app/assets/{C1JbR1mO.js → CC3-IIwu.js} +1 -1
- package/app/assets/{D3VPMNTU.js → CGqyAL2g.js} +1 -1
- package/app/assets/{2WcjYcT6.js → CKXJnmcw.js} +1 -1
- package/app/assets/{CN1CF2CU.js → CMCx7NXl.js} +1 -1
- package/app/assets/{gvCOWBS0.js → CMfcs7CX.js} +1 -1
- package/app/assets/{DPKD37gk.js → COVjACfp.js} +1 -1
- package/app/assets/{C3AWL5gC.js → CSN2XEIP.js} +1 -1
- package/app/assets/{D-DAzfgs.js → CZXoH3lk.js} +1 -1
- package/app/assets/{Bjx1jzlk.js → Ce8qkYMi.js} +1 -1
- package/app/assets/{CtsakJNi.js → CelfLV5M.js} +1 -1
- package/app/assets/{BtBUwOf0.js → CgvdcEWD.js} +1 -1
- package/app/assets/{BkujllIu.js → ClNpo19j.js} +1 -1
- package/app/assets/{BWPrOT1U.js → CuJxaCIZ.js} +1 -1
- package/app/assets/{BB2_KYgp.js → CxVt8Vsf.js} +1 -1
- package/app/assets/{D4c1cZWk.js → Cxx1wla0.js} +1 -1
- package/app/assets/{DKObYbZY.js → CyrKbLfo.js} +1 -1
- package/app/assets/{CH4cEkW4.js → D41s9TGC.js} +1 -1
- package/app/assets/{DXExbVos.js → D7Waxc8J.js} +1 -1
- package/app/assets/{C_qmv4pB.js → DB8Yfa-s.js} +1 -1
- package/app/assets/{C3aiaYZP.js → DW_MDklv.js} +1 -1
- package/app/assets/{Dya0zxo6.js → DXIGhA87.js} +1 -1
- package/app/assets/{C76CctEl.js → DZh9ctSS.js} +1 -1
- package/app/assets/{D4DxtYTA.js → Dg41U79W.js} +104 -104
- package/app/assets/{BihjBM79.js → DhVLQTui.js} +1 -1
- package/app/assets/{BI5Ig187.js → Di2WcKpj.js} +1 -1
- package/app/assets/{Yn5aIyLX.js → Dlrlafts.js} +1 -1
- package/app/assets/{BHsv1P4D.js → DmQd5C4r.js} +1 -1
- package/app/assets/{pDR31rvF.js → DmcF58Zy.js} +1 -1
- package/app/assets/{CRYDH2ct.js → DtfcGn7m.js} +1 -1
- package/app/assets/{AR0v7sKO.js → DxPm34X2.js} +1 -1
- package/app/assets/{oXAkF219.js → ExkVtCby.js} +1 -1
- package/app/assets/{IqMoIce-.js → ILIkaKLK.js} +1 -1
- package/app/assets/{DXQPcWS6.js → L7C8avu_.js} +1 -1
- package/app/assets/{iz6RnRcO.js → LVFEf5KC.js} +1 -1
- package/app/assets/{BVZGLNq_.js → MpwA8CBH.js} +1 -1
- package/app/assets/{CcaDuuFY.js → PDN9zqKI.js} +1 -1
- package/app/assets/{Ngd1VEiY.js → PtmN2Kre.js} +1 -1
- package/app/assets/{CKUISE0C.js → W9OfWY-V.js} +1 -1
- package/app/assets/{NL8WOYEo.js → Y4o42QOf.js} +1 -1
- package/app/assets/{DG0u2CPf.js → _b2c4unB.js} +1 -1
- package/app/assets/{DT8Xdk78.js → c3wgXM5y.js} +1 -1
- package/app/assets/{CGpFMM6B.js → clStr2A7.js} +1 -1
- package/app/assets/{_N3A-NTc.js → fJSgP8kO.js} +1 -1
- package/app/assets/{DOy06rIE.js → j8iiZuT2.js} +1 -1
- package/app/assets/{Cm-pfCIP.js → k417yOYE.js} +1 -1
- package/app/assets/{CxaujQob.js → kOcXvaMR.js} +1 -1
- package/app/assets/{yLCKuLgs.js → lULYdyyn.js} +1 -1
- package/app/assets/{W81Xd8P5.js → rwxgujx6.js} +1 -1
- package/app/assets/{UJzcIbfW.js → sPLCZ3dr.js} +1 -1
- package/app/assets/{CoUCmmSB.js → sbeapBbo.js} +1 -1
- package/app/assets/{BaTnCkNR.js → uHjP6NCK.js} +1 -1
- package/app/assets/{Cw4TnfXm.js → vYaMeuUS.js} +1 -1
- package/app/assets/{CCJEQIo6.js → z8yMMV5K.js} +1 -1
- package/app/index.html +20 -20
- package/package.json +1 -1
- package/app/assets/92hmrkfN.css +0 -2
- package/app/assets/B5FoXN4H.js +0 -1
- package/app/assets/UEkRIZwQ.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./
|
|
1
|
+
import{o as e,t}from"./BeP_ukJr.js";var n=t()((t,n)=>({activeDialog:null,destructiveConfirm:null,dryRun:null,message:null,confirm:null,prompt:null,dialogProps:void 0,footerMessage:``,pendingGridEdits:{},transportVersion:0,isLoading:!1,welcomeVisible:!1,setWelcomeVisible:e=>t({welcomeVisible:e}),progress:0,contextMenu:{visible:!1,x:0,y:0,nodeType:null,nodeId:null},openDialog:(n,...r)=>{e(`dialog_open`,{dialog:n}),t({activeDialog:n,dialogProps:r[0]})},closeDialog:()=>t({activeDialog:null,dialogProps:void 0}),requestDestructiveConfirm:e=>{let r=n().destructiveConfirm;return r?.resolve(!1),new Promise(n=>{t({destructiveConfirm:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveDestructiveConfirm:e=>{let r=n().destructiveConfirm;r&&(t({destructiveConfirm:null}),r.resolve(e))},requestDryRun:e=>{let r=n().dryRun;return r?.resolve(!1),new Promise(n=>{t({dryRun:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveDryRun:e=>{let r=n().dryRun;r&&(t({dryRun:null}),r.resolve(e))},showMessage:e=>{let r=n().message;return r?.resolve(),new Promise(n=>{t({message:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveMessage:()=>{let e=n().message;e&&(t({message:null}),e.resolve())},requestConfirm:e=>{let r=n().confirm;return r?.resolve(!1),new Promise(n=>{t({confirm:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveConfirm:e=>{let r=n().confirm;r&&(t({confirm:null}),r.resolve(e))},requestPrompt:e=>{let r=n().prompt;return r?.resolve(null),new Promise(n=>{t({prompt:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolvePrompt:e=>{let r=n().prompt;r&&(t({prompt:null}),r.resolve(e))},setFooterMessage:e=>t({footerMessage:e}),setPendingGridEdits:(e,n)=>t(t=>{if(!!t.pendingGridEdits[e]===n)return{};let r={...t.pendingGridEdits};return n?r[e]=!0:delete r[e],{pendingGridEdits:r}}),bumpTransportVersion:()=>t(e=>({transportVersion:e.transportVersion+1})),setLoading:e=>t({isLoading:e}),setProgress:e=>t({progress:e}),showContextMenu:(e,n,r,i)=>t({contextMenu:{visible:!0,x:e,y:n,nodeType:r,nodeId:i}}),hideContextMenu:()=>t(e=>({contextMenu:{...e.contextMenu,visible:!1}}))}));function r(...e){return n(t=>t.activeDialog&&e.includes(t.activeDialog)?t.dialogProps:void 0)}export{n,r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{i as r,r as i}from"./DZh9ctSS.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./BTOj30GE.js";import{T as d,h as f}from"./BQ0kaqOO.js";import{n as p}from"./DhVLQTui.js";import{Wt as m,Yt as h}from"./Dg41U79W.js";var g=e(t(),1),_=i();function v({text:e,label:t}){let[r,i]=(0,g.useState)(!1),a=(0,g.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{i(!0),setTimeout(()=>i(!1),1600)})},[e]);return(0,_.jsxs)(`div`,{className:`grid gap-1`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsx)(`span`,{className:`text-xs font-medium`,children:t}),(0,_.jsx)(n,{variant:`ghost`,size:`sm`,className:`h-6 gap-1 px-2 text-xs`,onClick:a,children:r?(0,_.jsx)(h,{className:`size-3`}):(0,_.jsx)(m,{className:`size-3`})})]}),(0,_.jsx)(`pre`,{"data-selectable":!0,className:`max-h-32 overflow-auto whitespace-pre-wrap break-all rounded-md border bg-muted/40 p-2 text-[11px] leading-snug`,children:e})]})}function y(){let e=p(e=>e.activeDialog),t=p(e=>e.closeDialog),{t:i}=r(),[m,h]=(0,g.useState)(null),[y,b]=(0,g.useState)(null),[x,S]=(0,g.useState)(!1),C=e===`mcp-setup`;(0,g.useEffect)(()=>{C&&f().then(e=>{h(e),S(!1)}).catch(e=>b(e instanceof Error?e.message:String(e)))},[C]);let w=(0,g.useCallback)(()=>{d().then(()=>{h(null),S(!0)})},[]),T=m?`claude mcp add --transport http planche ${m.url} \\\n -H "Authorization: Bearer ${m.token}"`:``,E=m?JSON.stringify({mcpServers:{planche:{type:`http`,url:m.url,headers:{Authorization:`Bearer ${m.token}`}}}},null,2):``;return(0,_.jsx)(u,{open:C,onOpenChange:e=>{e||t()},children:(0,_.jsxs)(s,{className:`sm:max-w-[620px]`,children:[(0,_.jsxs)(a,{children:[(0,_.jsx)(c,{children:i(`mcp.title`)}),(0,_.jsx)(l,{children:i(`mcp.description`)})]}),(0,_.jsxs)(`div`,{className:`grid gap-3`,children:[(0,_.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs`,children:[[`readsLabel`,`reads`],[`writesLabel`,`writes`],[`needsLabel`,`needs`],[`tokenLabel`,`token`]].map(([e,t])=>(0,_.jsxs)(g.Fragment,{children:[(0,_.jsx)(`dt`,{className:`font-medium`,children:i(`mcp.${e}`)}),(0,_.jsx)(`dd`,{className:`text-muted-foreground`,children:i(`mcp.${t}`)})]},e))}),y&&(0,_.jsx)(`p`,{className:`rounded-md border border-destructive/40 p-2 text-xs text-destructive`,children:y}),x&&(0,_.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:i(`mcp.revoked`)}),m&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(v,{text:T,label:i(`mcp.command`)}),(0,_.jsx)(v,{text:E,label:i(`mcp.json`)}),(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(`mcp.stored`,{path:m.path})})]})]}),(0,_.jsxs)(o,{children:[m&&(0,_.jsx)(n,{variant:`ghost`,size:`sm`,onClick:w,children:i(`mcp.revoke`)}),(0,_.jsx)(n,{size:`sm`,onClick:t,children:i(`settings.done`)})]})]})})}export{y as McpSetupDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{i as r,r as i}from"./DZh9ctSS.js";import{a,i as o,n as s,o as c,t as l}from"./BTOj30GE.js";import{t as u}from"./LVFEf5KC.js";import{n as d,t as f}from"./DhVLQTui.js";import{r as p}from"./D41s9TGC.js";import{a as m,h}from"./15ORcG2N.js";import{c as g,l as _,ut as v}from"./Dg41U79W.js";var y=e(t(),1),b=i();function x(){let{t:e}=r(),{activeDialog:t,closeDialog:i}=d(),x=f(`create-schema`),S=t===`create-schema`,[C,w]=(0,y.useState)(``),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(null);function k(e){e||(i(),w(``),O(null))}async function A(){let e=x?.connectionId??u.getState().activeConnectionId,t=C.trim();if(!(!e||!t)){O(null),E(!0);try{await m(e,p(e).getQuery(`CREATE_SCHEMA`,t)),await h(e),k(!1)}catch(e){O(e instanceof Error?e.message:String(e))}finally{E(!1)}}}return(0,b.jsx)(l,{open:S,onOpenChange:k,children:(0,b.jsxs)(s,{className:`sm:max-w-[420px]`,children:[(0,b.jsx)(a,{children:(0,b.jsx)(c,{children:e(`database.schema.createTitle`)})}),(0,b.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,b.jsx)(g,{htmlFor:`schema-name`,children:e(`database.schema.name`)}),(0,b.jsx)(_,{id:`schema-name`,value:C,autoFocus:!0,placeholder:e(`database.schema.namePlaceholder`),onChange:e=>w(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!v(e)&&A()}})]}),D&&(0,b.jsx)(`p`,{className:`text-xs text-destructive leading-relaxed`,children:D}),(0,b.jsxs)(o,{children:[(0,b.jsx)(n,{variant:`outline`,onClick:()=>k(!1),children:e(`database.schema.cancel`)}),(0,b.jsx)(n,{onClick:()=>void A(),disabled:!C.trim()||T,children:e(`database.schema.create`)})]})]})})}export{x as CreateSchemaDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{a as r}from"./Byi789lS.js";import{i,r as a}from"./DZh9ctSS.js";import{a as o,i as s,n as c,o as l,t as u}from"./BTOj30GE.js";import{t as d}from"./LVFEf5KC.js";import{n as f}from"./DhVLQTui.js";import{l as p}from"./MpwA8CBH.js";import{t as m}from"./D41s9TGC.js";import{C as h,S as g,T as _,b as v,l as y,vt as b,w as x,x as S}from"./Dg41U79W.js";var C=e(t(),1),w=a();function T(){let e=d.getState();return e.activeConnections.find(t=>t.id===e.activeConnectionId)?.serverConnectionId??null}async function E(e){let t=T();if(!t)throw Error(r.t(`command.noActiveConnection`));let n=m().getQuery(e===`global`?`SHOW_GLOBAL_STATUS`:`SHOW_SESSION_STATUS`);return(await p(t,n)).records.map(e=>({Variable_name:e[0],Value:e[1]}))}function D(){let{t:e}=i(),{activeDialog:t,closeDialog:r,setFooterMessage:a}=f(),[d,p]=(0,C.useState)([]),[m,T]=(0,C.useState)(``),[D,O]=(0,C.useState)(`session`),k=t===`status`,A=(0,C.useCallback)(t=>E(t).then(p).catch(t=>a(e(`command.status.loadError`,{message:t instanceof Error?t.message:String(t)}))),[a,e]);(0,C.useEffect)(()=>{k&&A(D)},[k,D,A]);let j=(0,C.useMemo)(()=>{if(!m.trim())return d;let e=m.toLowerCase();return d.filter(t=>t.Variable_name.toLowerCase().includes(e)||t.Value.toLowerCase().includes(e))},[d,m]);function M(e){e||(T(``),r())}function N(e){O(e)}return(0,w.jsx)(u,{open:k,onOpenChange:M,children:(0,w.jsxs)(c,{className:`sm:max-w-[900px] max-h-[80vh] flex flex-col`,children:[(0,w.jsx)(o,{children:(0,w.jsx)(l,{children:e(`command.status.title`)})}),(0,w.jsxs)(`div`,{className:`flex items-center gap-3 pb-2`,children:[(0,w.jsxs)(`div`,{className:`flex gap-1`,children:[(0,w.jsx)(n,{variant:D===`session`?`default`:`outline`,size:`sm`,onClick:()=>N(`session`),children:e(`command.scope.session`)}),(0,w.jsx)(n,{variant:D===`global`?`default`:`outline`,size:`sm`,onClick:()=>N(`global`),children:e(`command.scope.global`)})]}),(0,w.jsx)(y,{placeholder:e(`command.status.filterPlaceholder`),value:m,onChange:e=>T(e.target.value),className:`max-w-xs`})]}),(0,w.jsx)(`div`,{className:`flex-1 border rounded-md overflow-hidden min-h-0`,children:(0,w.jsx)(b,{className:`h-[400px]`,children:(0,w.jsxs)(v,{children:[(0,w.jsx)(x,{children:(0,w.jsxs)(_,{children:[(0,w.jsx)(h,{className:`w-[300px]`,children:e(`command.variableName`)}),(0,w.jsx)(h,{children:e(`command.value`)})]})}),(0,w.jsx)(S,{children:j.length===0?(0,w.jsx)(_,{children:(0,w.jsx)(g,{colSpan:2,className:`text-center text-muted-foreground`,children:e(`command.status.empty`)})}):j.map(e=>(0,w.jsxs)(_,{children:[(0,w.jsx)(g,{className:`font-mono text-xs`,children:e.Variable_name}),(0,w.jsx)(g,{className:`font-mono text-xs`,children:e.Value})]},e.Variable_name))})]})})}),(0,w.jsx)(s,{children:(0,w.jsx)(n,{variant:`outline`,onClick:()=>M(!1),children:e(`command.close`)})})]})})}export{D as StatusDialog};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{i as r,r as i}from"./DZh9ctSS.js";import{a,i as o,n as s,o as c,t as l}from"./BTOj30GE.js";import{a as u,i as d,n as f,r as p,t as m}from"./Bv67Bucf.js";import{t as h}from"./LVFEf5KC.js";import{n as g}from"./DhVLQTui.js";import{n as _}from"./DB8Yfa-s.js";import{C as v,a as y}from"./MpwA8CBH.js";import{r as b}from"./D41s9TGC.js";import{o as x,r as S}from"./BXxY3z0A.js";import{c as C,vt as w}from"./Dg41U79W.js";import{t as T}from"./CnYBZPf9.js";var E=e(t(),1),D=i();function O(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function k(){let{t:e}=r(),{activeDialog:t,closeDialog:i}=g(),{activeConnectionId:k,activeConnections:A}=h(),{trees:j}=v(),M=_(),N=t===`export-html`,P=(0,E.useMemo)(()=>k?S(j[k]??[]):[],[k,j]),F=(0,E.useMemo)(()=>{if(!k)return``;let e=M.activeTabId[k];return(M.tabs[k]??[]).find(t=>t.id===e)?.database||``},[k,M.activeTabId,M.tabs]),[I,L]=(0,E.useState)(``),R=(0,E.useMemo)(()=>!k||!I?[]:x(j[k]??[],I),[k,I,j]),[z,B]=(0,E.useState)([]),[V,H]=(0,E.useState)(!0),[U,W]=(0,E.useState)(!0),[G,K]=(0,E.useState)(!0),[q,J]=(0,E.useState)(!1);(0,E.useEffect)(()=>{N&&F&&L(F)},[N,F]);function Y(e){e||(i(),L(``),B([]),H(!0),W(!0),K(!0))}function X(e){B(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}function Z(){B(R.length===z.length?[]:[...R])}async function Q(){if(z.length===0||!k)return;let t=A.find(e=>e.id===k);if(!t?.serverConnectionId)return;J(!0);let{introspect:n}=b(k),r=y(t.serverConnectionId),a=(e,t,n)=>{let r=`<h3>${O(e)}</h3>\n<table border="1" cellpadding="4" cellspacing="0">\n`;r+=`<tr>${t.map(e=>`<th>${O(e)}</th>`).join(``)}</tr>\n`;for(let e of n)r+=`<tr>${e.map(e=>`<td>${O(e==null?`NULL`:String(e))}</td>`).join(``)}</tr>\n`;return r+`</table>
|
|
2
2
|
`};try{let t=[];for(let i of z){let o=`<h2>${O(i)}</h2>\n`;if(V){let t=await n.listColumns(r,I,i);t.length>0&&(o+=a(e(`database.html.sectionColumns`),[`Field`,`Type`,`Null`,`Key`,`Default`,`Extra`,`Comment`],t.map(e=>[e.name,e.type,e.nullable?`YES`:`NO`,e.key,e.defaultValue,e.extra,e.comment])))}if(U){let t=await n.listIndexes(r,I,i);t.length>0&&(o+=a(e(`database.html.sectionIndexes`),[`Key_name`,`Type`,`Columns`],t.map(e=>[e.name,e.type,e.columns.join(`, `)])))}if(G){let t=await n.getTableInfo(r,I,i);t&&(o+=a(e(`database.html.sectionProperties`),[`Name`,`Engine`,`Collation`,`Rows`,`Data_length`,`Create_time`,`Update_time`,`Comment`],[[t.name,t.engine,t.collation,t.rows,t.dataLength,t.createTime,t.updateTime,t.comment]]))}t.push(o)}let i=`<!DOCTYPE html>
|
|
3
3
|
<html lang="en">
|
|
4
4
|
<head>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{i as r,r as i}from"./DZh9ctSS.js";import{a,i as o,n as s,o as c,t as l}from"./BTOj30GE.js";import{t as u}from"./LVFEf5KC.js";import{n as d,t as f}from"./DhVLQTui.js";import{a as p}from"./MpwA8CBH.js";import{r as m}from"./D41s9TGC.js";import{a as h,h as g}from"./15ORcG2N.js";import{K as _,c as v,l as y,q as b}from"./Dg41U79W.js";var x=e(t(),1),S=i();function C(){let{t:e}=r(),{activeDialog:t,closeDialog:i}=d(),C=f(`copy-database`),w=t===`copy-database`,T=C?.database??``,[E,D]=(0,x.useState)(``),[O,k]=(0,x.useState)(`structure_data`),[A,j]=(0,x.useState)(null),[M,N]=(0,x.useState)(null);function P(e){e||(i(),N(null),j(null),D(``),k(`structure_data`))}async function F(){let t=u.getState().activeConnectionId,n=E.trim();if(!t||!n||!T)return;N(null);let r=m(t),i=u.getState().activeConnections.find(e=>e.id===t);if(i?.serverConnectionId)try{j(e(`database.copy.creating`,{database:n})),await h(t,r.getQuery(`CREATE_DATABASE`,n,`utf8mb4`,`utf8mb4_general_ci`));let a=p(i.serverConnectionId),o=await r.introspect.listTables(a,T);for(let[r,i]of o.entries()){j(e(`database.copy.copying`,{table:i.name,index:r+1,total:o.length}));let a={connectionId:t,database:T,table:i.name},s={connectionId:t,database:n,table:i.name},c=await _(a,s);await b({source:a,target:s,mode:O,onConflict:`abort`,createSql:m(t).ddl.createTable(c)})}await g(t),P(!1)}catch(e){N(e instanceof Error?e.message:String(e))}finally{j(null)}}return(0,S.jsx)(l,{open:w,onOpenChange:P,children:(0,S.jsxs)(s,{className:`sm:max-w-[450px]`,children:[(0,S.jsx)(a,{children:(0,S.jsx)(c,{children:e(`database.copy.title`)})}),(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,S.jsx)(v,{children:e(`database.copy.source`)}),(0,S.jsx)(y,{value:T,disabled:!0})]}),(0,S.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,S.jsx)(v,{htmlFor:`target-db-name`,children:e(`database.copy.target`)}),(0,S.jsx)(y,{id:`target-db-name`,value:E,onChange:e=>D(e.target.value),placeholder:e(`database.copy.targetPlaceholder`)})]}),(0,S.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,S.jsx)(v,{children:e(`database.copy.options`)}),(0,S.jsxs)(`div`,{className:`space-y-2`,children:[(0,S.jsxs)(`label`,{className:`flex items-center gap-2 text-sm cursor-pointer`,children:[(0,S.jsx)(`input`,{type:`radio`,name:`copy-option`,value:`structure_data`,checked:O===`structure_data`,onChange:()=>k(`structure_data`)}),e(`database.copy.structureAndData`)]}),(0,S.jsxs)(`label`,{className:`flex items-center gap-2 text-sm cursor-pointer`,children:[(0,S.jsx)(`input`,{type:`radio`,name:`copy-option`,value:`structure_only`,checked:O===`structure_only`,onChange:()=>k(`structure_only`)}),e(`database.copy.structureOnly`)]})]})]})]}),A&&(0,S.jsx)(`p`,{className:`px-1 text-xs text-muted-foreground`,children:A}),M&&(0,S.jsx)(`p`,{className:`px-1 text-xs text-destructive leading-relaxed`,children:M}),(0,S.jsxs)(o,{children:[(0,S.jsx)(n,{variant:`outline`,onClick:()=>P(!1),children:e(`database.copy.cancel`)}),(0,S.jsx)(n,{onClick:()=>void F(),disabled:!E.trim()||A!==null,children:e(`database.copy.copy`)})]})]})})}export{C as CopyDatabaseDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,r as t}from"./
|
|
1
|
+
import{i as e,r as t}from"./DZh9ctSS.js";import{t as n}from"./neLPq0_M.js";import{Yt as r}from"./Dg41U79W.js";var i={currency:`USD`,annualPerMonth:8,annualTotal:96,monthly:10},a=e=>`$${e}`,o=t(),s=`https://planche.dev/pricing/`;function c({highlight:t,innerRef:c}){let{t:l}=e(),u=t?[t,...n.filter(e=>e!==t)]:[...n];return(0,o.jsxs)(`div`,{className:`grid gap-3 rounded-xl border border-primary/50 bg-muted/20 p-4 shadow-[inset_0_0_0_1px_hsl(var(--primary)/0.15)]`,children:[(0,o.jsx)(`p`,{className:`text-[0.7rem] font-semibold uppercase tracking-[0.09em] text-muted-foreground`,children:`Pro`}),(0,o.jsxs)(`div`,{className:`grid gap-1`,children:[(0,o.jsxs)(`p`,{className:`flex items-baseline gap-1.5`,children:[(0,o.jsx)(`span`,{className:`text-3xl font-semibold leading-none text-foreground`,children:a(i.annualPerMonth)}),(0,o.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:l(`pro.perMonth`)})]}),(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`pro.priceNote`,{annual:a(i.annualTotal),monthly:a(i.monthly)})})]}),(0,o.jsx)(`ul`,{className:`grid gap-2 text-xs`,children:u.map(e=>(0,o.jsxs)(`li`,{className:`flex gap-2`,children:[(0,o.jsx)(r,{className:`mt-0.5 size-3 shrink-0 ${e===t?`text-primary`:`text-emerald-500/80`}`}),(0,o.jsxs)(`span`,{className:`grid gap-0.5`,children:[(0,o.jsx)(`span`,{className:e===t?`font-medium text-foreground`:`text-foreground/90`,children:l(`pro.features.${e}`)}),(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:l(`pro.featureDetails.${e}`)})]})]},e))}),(0,o.jsx)(`a`,{ref:c,href:s,target:`_blank`,rel:`noreferrer`,className:`rounded-md bg-primary px-4 py-2 text-center text-sm font-medium text-primary-foreground hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:l(`pro.pricing`)})]})}export{c as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{i as n,r,t as i}from"./DZh9ctSS.js";import{t as a}from"./PDN9zqKI.js";import{N as o,t as s}from"./LVFEf5KC.js";import{n as c}from"./DhVLQTui.js";import{n as l}from"./DB8Yfa-s.js";import{a as u}from"./MpwA8CBH.js";import{a as d}from"./15ORcG2N.js";import{E as f,Mt as p,pt as m,wt as h}from"./Dg41U79W.js";var g=e(t(),1),_=r(),v=e=>e instanceof Error?e.message:String(e);function y({connectionId:e,tabId:t,item:r}){let{t:y}=n(),x=s(t=>t.activeConnections.find(t=>t.id===e)?.serverConnectionId??null),S=s(t=>t.activeConnections.find(t=>t.id===e)?.readOnly??!1),[C,w]=(0,g.useState)(null),[T,E]=(0,g.useState)(!1),[D,O]=(0,g.useState)(null),[k,A]=(0,g.useState)(`tree`),[j,M]=(0,g.useState)(``),[N,P]=(0,g.useState)(!1),F=o(r.database,r.name),I=(0,g.useCallback)(async()=>{if(x)try{let e=(await u(x)(`GET ${F}`,``)).reply;if(!e?.found){E(!0),w(null);return}E(!1),w({source:e._source,version:e._version??null,seqNo:e._seq_no??null,primaryTerm:e._primary_term??null}),M(JSON.stringify(e._source,null,2))}catch(e){/not_found|404/.test(v(e))?E(!0):O(v(e))}},[x,F]);(0,g.useEffect)(()=>{Promise.resolve().then(()=>I())},[I]);let L=(n,r=!1)=>d(e,n,{database:``,tabId:t,skipDestructiveConfirm:r}),R=async()=>{if(!C)return;let e;try{e=JSON.parse(j)}catch(e){O(y(`docViewer.invalidJson`,{message:v(e)}));return}P(!0),O(null);try{let t=C.seqNo!==null&&C.primaryTerm!==null?`?if_seq_no=${C.seqNo}&if_primary_term=${C.primaryTerm}`:``;await L(`PUT ${F}${t}\n${JSON.stringify(e,null,2)}`),await I(),A(`tree`)}catch(e){if(e instanceof Error&&e.name===`ExecutionCancelled`)return;let t=v(e);O(/version_conflict/.test(t)?y(`docViewer.conflict`):t)}finally{P(!1)}},z=async()=>{let n=`DELETE ${F}`;if(await c.getState().requestDestructiveConfirm({title:y(`docViewer.deleteTitle`,{id:r.name}),description:y(`docViewer.deleteDescription`,{index:r.database}),statements:[n],confirmLabel:y(`docViewer.delete`)}))try{await L(n,!0),l.getState().removeQueryTab(e,t)}catch(e){e instanceof Error&&e.name===`ExecutionCancelled`||O(v(e))}};if(!x)return(0,_.jsx)(`p`,{className:`p-6 text-sm text-muted-foreground`,children:y(`keyViewer.notConnected`)});let B=`flex h-7 items-center gap-1 rounded border bg-background px-2 text-xs text-muted-foreground hover:text-foreground disabled:opacity-40`,V=e=>`rounded px-2 py-0.5 ${e?`bg-primary/15 text-primary`:`text-muted-foreground hover:text-foreground`}`,H=C!==null&&j!==JSON.stringify(C.source,null,2);return(0,_.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,_.jsxs)(`div`,{className:`flex flex-shrink-0 flex-wrap items-center gap-x-3 gap-y-1.5 border-b bg-muted/30 px-3 py-1.5 text-xs`,children:[(0,_.jsx)(`span`,{className:`rounded bg-primary/15 px-1.5 py-0.5 font-mono text-[10px] font-semibold uppercase text-primary`,children:`doc`}),(0,_.jsxs)(`span`,{className:`font-mono text-sm font-medium`,children:[r.database,(0,_.jsx)(`span`,{className:`text-muted-foreground`,children:` / `}),r.name]}),C&&(0,_.jsx)(`span`,{className:`text-muted-foreground`,children:y(`docViewer.meta`,{version:C.version??`—`,seqNo:C.seqNo??`—`,primaryTerm:C.primaryTerm??`—`})}),(0,_.jsx)(`div`,{className:`flex-1`}),(0,_.jsxs)(`button`,{type:`button`,className:B,onClick:()=>{O(null),I()},children:[(0,_.jsx)(p,{className:`size-3`}),y(`keyViewer.refresh`)]}),(0,_.jsxs)(`button`,{type:`button`,className:B,onClick:()=>m(e,`GET ${F}`,``,r.name),children:[(0,_.jsx)(a,{className:`size-3`}),y(`keyViewer.openInConsole`)]}),!S&&!T&&(0,_.jsxs)(`button`,{type:`button`,className:`${B} hover:border-destructive/40 hover:text-destructive`,onClick:()=>void z(),children:[(0,_.jsx)(h,{className:`size-3`}),y(`docViewer.delete`)]})]}),D&&(0,_.jsxs)(`div`,{className:`flex flex-shrink-0 items-start gap-2 border-b border-destructive/30 bg-destructive/10 px-3 py-1.5 text-xs text-destructive`,children:[(0,_.jsx)(`span`,{className:`flex-1 whitespace-pre-wrap`,children:D}),(0,_.jsx)(`button`,{type:`button`,onClick:()=>O(null),children:(0,_.jsx)(i,{className:`size-3.5`})})]}),T?(0,_.jsx)(`p`,{className:`p-6 text-sm text-muted-foreground`,children:y(`docViewer.gone`)}):C?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(`div`,{className:`flex flex-shrink-0 items-center gap-2 border-b px-3 py-1.5 text-xs`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-0.5 rounded border p-0.5`,children:[(0,_.jsx)(`button`,{type:`button`,className:V(k===`tree`),onClick:()=>A(`tree`),children:y(`keyViewer.viewTree`)}),(0,_.jsx)(`button`,{type:`button`,className:V(k===`text`),onClick:()=>A(`text`),children:y(`keyViewer.viewText`)})]}),(0,_.jsx)(`div`,{className:`flex-1`}),!S&&(0,_.jsxs)(_.Fragment,{children:[H&&(0,_.jsx)(`button`,{type:`button`,onClick:()=>M(JSON.stringify(C.source,null,2)),className:`rounded border bg-background px-2 py-0.5 text-muted-foreground hover:text-foreground`,children:y(`keyViewer.revert`)}),(0,_.jsx)(`button`,{type:`button`,disabled:!H||N,onClick:()=>void R(),className:`rounded border border-primary/30 bg-primary/10 px-2 py-0.5 text-primary hover:bg-primary/20 disabled:opacity-40`,children:y(`keyViewer.save`)})]})]}),k===`tree`?(0,_.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto py-3 pl-7 pr-3 font-mono text-xs`,children:(0,_.jsx)(f,{value:H?b(j)??C.source:C.source,defaultExpanded:!0})}):(0,_.jsx)(`textarea`,{className:`min-h-0 flex-1 resize-none bg-background p-3 font-mono text-xs outline-none`,spellCheck:!1,readOnly:S,value:j,onChange:e=>M(e.target.value)})]}):(0,_.jsx)(`p`,{className:`p-6 text-sm text-muted-foreground`,children:y(`keyViewer.loading`)})]})}function b(e){try{return JSON.parse(e)}catch{return}}export{y as DocumentViewer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{i as r,r as i}from"./DZh9ctSS.js";import{a,i as o,n as s,o as c,t as l}from"./BTOj30GE.js";import{a as u,i as d,n as f,r as p,t as m}from"./Bv67Bucf.js";import{t as h}from"./LVFEf5KC.js";import{n as g}from"./DhVLQTui.js";import{c as _,l as v}from"./Dg41U79W.js";import{n as y}from"./BLX_0Iuc.js";var b=e(t(),1),x=i();function S(){let{t:e}=r(),{activeDialog:t,closeDialog:i,setFooterMessage:S}=g(),C=h(e=>e.activeConnectionId)??``,w=y(e=>e.addUser),[T,E]=(0,b.useState)(``),[D,O]=(0,b.useState)(`%`),[k,A]=(0,b.useState)(``),[j,M]=(0,b.useState)(``),[N,P]=(0,b.useState)(`caching_sha2_password`),F=t===`user-add`;function I(e){e||(L(),i())}function L(){E(``),O(`%`),A(``),M(``),P(`caching_sha2_password`)}function R(){if(!T.trim()){S(e(`user.add.usernameRequired`));return}if(k!==j){S(e(`user.add.passwordMismatch`));return}w(C,{user:T.trim(),host:D.trim()||`%`,privileges:[],maxQuestions:0,maxUpdates:0,maxConnections:0,maxUserConnections:0,plugin:N,authenticationString:``,passwordExpired:!1,accountLocked:!1}),S(e(`user.add.added`,{user:T,host:D})),L(),i()}return(0,x.jsx)(l,{open:F,onOpenChange:I,children:(0,x.jsxs)(s,{className:`sm:max-w-[450px]`,children:[(0,x.jsx)(a,{children:(0,x.jsx)(c,{children:e(`user.add.title`)})}),(0,x.jsxs)(`div`,{className:`space-y-4 py-2`,children:[(0,x.jsxs)(`div`,{className:`space-y-2`,children:[(0,x.jsx)(_,{htmlFor:`user-add-username`,children:e(`user.add.username`)}),(0,x.jsx)(v,{id:`user-add-username`,value:T,onChange:e=>E(e.target.value),placeholder:e(`user.add.usernamePlaceholder`)})]}),(0,x.jsxs)(`div`,{className:`space-y-2`,children:[(0,x.jsx)(_,{htmlFor:`user-add-host`,children:e(`user.add.host`)}),(0,x.jsx)(v,{id:`user-add-host`,value:D,onChange:e=>O(e.target.value),placeholder:`%`})]}),(0,x.jsxs)(`div`,{className:`space-y-2`,children:[(0,x.jsx)(_,{htmlFor:`user-add-password`,children:e(`user.add.password`)}),(0,x.jsx)(v,{id:`user-add-password`,type:`password`,value:k,onChange:e=>A(e.target.value),placeholder:e(`user.add.passwordPlaceholder`)})]}),(0,x.jsxs)(`div`,{className:`space-y-2`,children:[(0,x.jsx)(_,{htmlFor:`user-add-confirm-password`,children:e(`user.add.confirmPassword`)}),(0,x.jsx)(v,{id:`user-add-confirm-password`,type:`password`,value:j,onChange:e=>M(e.target.value),placeholder:e(`user.add.confirmPasswordPlaceholder`)})]}),(0,x.jsxs)(`div`,{className:`space-y-2`,children:[(0,x.jsx)(_,{children:e(`user.add.plugin`)}),(0,x.jsxs)(m,{value:N,onValueChange:P,children:[(0,x.jsx)(d,{className:`w-full`,children:(0,x.jsx)(u,{})}),(0,x.jsxs)(f,{children:[(0,x.jsx)(p,{value:`mysql_native_password`,children:`mysql_native_password`}),(0,x.jsx)(p,{value:`caching_sha2_password`,children:`caching_sha2_password`})]})]})]})]}),(0,x.jsxs)(o,{children:[(0,x.jsx)(n,{variant:`outline`,onClick:()=>I(!1),children:e(`user.add.cancel`)}),(0,x.jsx)(n,{onClick:R,children:e(`user.add.add`)})]})]})})}export{S as UserAddDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{i as r,r as i}from"./DZh9ctSS.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./BTOj30GE.js";import{a as d,i as f,n as p,o as m}from"./j8iiZuT2.js";import{o as h}from"./BQ0kaqOO.js";import{n as g,t as _}from"./DhVLQTui.js";import{Ot as v,X as y}from"./Dg41U79W.js";var b=e(t(),1);function x(e,t){let n=e=>e.split(/[.+-]/).slice(0,3).map(e=>Number.parseInt(e,10)||0),r=n(e),i=n(t);for(let e=0;e<3;e++)if(r[e]!==i[e])return r[e]<i[e];return!1}var S=i();function C(){let e=g(e=>e.activeDialog),t=g(e=>e.closeDialog),i=_(`whats-new`),{t:C,i18n:w}=r(),T=d.includes(w.resolvedLanguage??``)?w.resolvedLanguage:`en`,E=e===`whats-new`,[D]=(0,b.useState)(()=>p.getState().changelogSeen),O=(0,b.useMemo)(()=>i?.all?f:m(D),[i?.all,D]),k=O.find(e=>e.agent)?.agent,[A,j]=(0,b.useState)(null);(0,b.useEffect)(()=>{if(!E||!k)return;let e=!0;return h().then(t=>{e&&t.state!==`offline`&&j(t.version)}),()=>{e=!1}},[E,k]);let M=k&&A&&x(A,k),N=()=>{p.getState().markChangelogSeen(),t()};return(0,S.jsx)(u,{open:E,onOpenChange:e=>{e||N()},children:(0,S.jsxs)(s,{className:`flex max-h-[85vh] flex-col sm:max-w-[560px]`,children:[(0,S.jsxs)(a,{children:[(0,S.jsxs)(c,{className:`flex items-center gap-2`,children:[(0,S.jsx)(v,{className:`size-4 text-primary`}),C(`whatsNew.title`)]}),(0,S.jsx)(l,{children:C(`whatsNew.description`)})]}),(0,S.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto pr-1 text-sm`,children:[O.map(e=>(0,S.jsxs)(`section`,{children:[(0,S.jsx)(`h3`,{className:`font-semibold`,children:e.title[T]}),(0,S.jsx)(`p`,{className:`mb-2 text-xs text-muted-foreground`,children:e.id}),(0,S.jsx)(`ul`,{className:`list-disc space-y-1.5 pl-5 [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:font-mono [&_code]:text-xs`,children:e.items[T].map((e,t)=>(0,S.jsx)(`li`,{dangerouslySetInnerHTML:{__html:e}},t))})]},e.id)),M&&(0,S.jsxs)(`p`,{className:`rounded-md border border-amber-500/40 bg-amber-500/5 p-3 text-xs text-muted-foreground`,children:[C(`whatsNew.agentOutdated`,{current:A,required:k}),` `,(0,S.jsx)(`code`,{className:`rounded bg-muted px-1 font-mono`,children:`npx planche@latest`}),` · `,(0,S.jsx)(`code`,{className:`rounded bg-muted px-1 font-mono`,children:`planche upgrade`})]})]}),(0,S.jsxs)(o,{className:`sm:justify-between`,children:[(0,S.jsx)(`a`,{href:y(),target:`_blank`,rel:`noreferrer`,className:`self-center text-xs text-muted-foreground underline underline-offset-2 hover:text-foreground`,children:C(`whatsNew.allChanges`)}),(0,S.jsx)(n,{onClick:N,children:C(`whatsNew.close`)})]})]})})}export{C as WhatsNewDialog};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{a as t,n,o as r,p as i,s as a,t as o}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{a as t,n,o as r,p as i,s as a,t as o}from"./BeP_ukJr.js";import{i as s,r as c,t as l}from"./eFSiW0Lh.js";import{r as u}from"./Nro86Y63.js";import{n as d}from"./j8iiZuT2.js";var ee=/^(?:-?\d+(?:\.\d+)?|null|true|false|current_(?:timestamp|date|time)(?:\(\d*\))?|now\(\)|b'[01]+'|x'[0-9a-f]*')$/i;function te(e,t){let n=e.trim();return n===``?t(``):ee.test(n)||/^'.*'$/s.test(n)||/^".*"$/s.test(n)||n.includes(`(`)||n.includes(`::`)?n:t(n)}function ne(e,t,n){let r=t.upperCaseTypes?e.type.toUpperCase():e.type;return e.nullable?t.modify===`mssql`&&(r+=` NULL`):r+=` NOT NULL`,e.defaultValue!==null&&!/auto_increment|identity/i.test(e.extra)&&(r+=` DEFAULT ${te(e.defaultValue,n)}`),t.mysqlAttributes&&(/auto_increment/i.test(e.extra)&&(r+=` AUTO_INCREMENT`),e.comment&&(r+=` COMMENT ${n(e.comment)}`)),r}function f({quoteIdentifier:e,quoteLiteral:t,qualify:n},r){let i=e=>ne(e,r,t),a=(t,i)=>r.qualifiedIndexNames?n(t,i):e(i);return{addColumn(t,a,o){let s=`${e(o.name)} ${i(o)}`;return r.addColumn===`ADD (`?`ALTER TABLE ${n(t,a)} ADD (${s});`:`ALTER TABLE ${n(t,a)} ${r.addColumn} ${s};`},alterColumn(a,o,s){let c=n(a,o),l=e(s.name);switch(r.modify){case`mysql`:return`ALTER TABLE ${c} MODIFY COLUMN ${l} ${i(s)};`;case`oracle`:return`ALTER TABLE ${c} MODIFY (${l} ${i(s)});`;case`mssql`:return`ALTER TABLE ${c} ALTER COLUMN ${l} ${s.type}${s.nullable?` NULL`:` NOT NULL`};`;case`postgres`:return`ALTER TABLE ${c}\n ${[`ALTER COLUMN ${l} TYPE ${s.type}`,s.nullable?`ALTER COLUMN ${l} DROP NOT NULL`:`ALTER COLUMN ${l} SET NOT NULL`,s.defaultValue===null||/auto_increment|identity/i.test(s.extra)?`ALTER COLUMN ${l} DROP DEFAULT`:`ALTER COLUMN ${l} SET DEFAULT ${te(s.defaultValue,t)}`].join(`,
|
|
2
2
|
`)};`;case`none`:return null}},dropColumn(t,r,i){return`ALTER TABLE ${n(t,r)} DROP COLUMN ${e(i)};`},renameColumn(i,a,o,s){return r.renameColumn===`sp_rename`?`EXEC sp_rename ${t(`${i}.${a}.${o}`)}, ${t(s)}, 'COLUMN';`:`ALTER TABLE ${n(i,a)} RENAME COLUMN ${e(o)} TO ${e(s)};`},createIndex(t,i,o){let s=o.columns.map(e).join(`, `);if(o.type===`PRIMARY`)return`ALTER TABLE ${n(t,i)} ADD PRIMARY KEY (${s});`;let c=o.type===`UNIQUE`?`UNIQUE `:o.type===`FULLTEXT`&&r.fulltext?`FULLTEXT `:``,l=r.unqualifiedIndexTarget?e(i):n(t,i);return`CREATE ${c}INDEX ${a(t,o.name)} ON ${l} (${s});`},dropIndex(t,i,o){return r.dropIndexOnTable?`DROP INDEX ${e(o)} ON ${n(t,i)};`:`DROP INDEX ${a(t,o)};`},insertRows(i,a,o,s){let c=n(i,a),l=o.map(e).join(`, `),u=s.map(e=>`(${e.map(t).join(`, `)})`);return r.multiRowInsert?`INSERT INTO ${c} (${l}) VALUES\n${u.join(`,
|
|
3
3
|
`)};`:`INSERT ALL\n${u.map(e=>` INTO ${c} (${l}) VALUES ${e}`).join(`
|
|
4
4
|
`)}\nSELECT 1 FROM DUAL;`}}}var p={DATABASE:`database`,SCHEMA:`schema`,TABLE:`table`,VIEW:`view`,COLUMN:`column`,INDEX:`index`,PROCEDURE:`procedure`,FUNCTION:`function`,TRIGGER:`trigger`,EVENT:`event`,FOLDER:`folder`,USER:`user`,KEY_PREFIX:`key-prefix`,KEY:`key`,COLLECTION:`collection`,FIELD:`field`};function m(e,t,n){let r=`${t}:${n.replaceAll(`/`,`⁄`)}`;return e?`${e}/${r}`:r}function h(e,t,n,r,i){return{id:m(e,t,n),type:t,text:n,isLeaf:r,isExpanded:!1,isLoading:!1,children:[],metadata:i}}var re=[{text:`Tables`,type:`TABLE`},{text:`Views`,type:`VIEW`},{text:`Procedures`,type:`PROCEDURE`,capability:`procedures`},{text:`Functions`,type:`FUNCTION`,capability:`functions`},{text:`Triggers`,type:`TRIGGER`,capability:`triggers`},{text:`Events`,type:`EVENT`,capability:`events`}],ie=[`Columns`,`Indexes`],ae={TABLE:p.TABLE,VIEW:p.VIEW,PROCEDURE:p.PROCEDURE,FUNCTION:p.FUNCTION,TRIGGER:p.TRIGGER,EVENT:p.EVENT};function oe(e){return re.find(t=>t.type===e).text}function se(e){return re.filter(t=>!t.capability||e.capabilities[t.capability]).map(e=>e.text)}function ce(e,t,n){return se(e).map(e=>h(t,p.FOLDER,e,!1,{...n,countable:!0}))}async function le({engine:e,run:t},n){let{introspect:r}=e,i=n.metadata?.database??``,a={database:i,catalog:n.metadata?.catalog},o=(e,t,r)=>h(n.id,ae[e],t,!0,{...a,...r});switch(n.text){case`Tables`:return(await r.listTables(t,i)).map(e=>h(n.id,p.TABLE,e.name,!1,{...a,table:e.name}));case`Views`:return(await r.listViews(t,i)).map(e=>o(`VIEW`,e));case`Procedures`:return(await r.listProcedures(t,i)).map(e=>o(`PROCEDURE`,e));case`Functions`:return(await r.listFunctions(t,i)).map(e=>o(`FUNCTION`,e));case`Triggers`:return r.listTriggerDetails?(await r.listTriggerDetails(t,i)).map(e=>o(`TRIGGER`,e.name,{table:e.table})):(await r.listTriggers(t,i)).map(e=>o(`TRIGGER`,e));case`Events`:return(await r.listEvents(t,i)).map(e=>o(`EVENT`,e));default:return[]}}function ue(e){let t={database:e.metadata?.database,catalog:e.metadata?.catalog,table:e.text};return ie.map(n=>h(e.id,p.FOLDER,n,!1,t))}async function de({engine:e,run:t},n){let r=n.metadata?.database??``,i=n.metadata?.table;if(!i)return null;let a={database:r,catalog:n.metadata?.catalog,table:i};switch(n.text){case`Columns`:return(await e.introspect.listColumns(t,r,i)).map(e=>{let t=e.extra?` [${e.extra}]`:``;return h(n.id,p.COLUMN,`${e.name} ${e.type}${t}`,!0,{...a,column:e.name,key:e.key})});case`Indexes`:return(await e.introspect.listIndexes(t,r,i)).map(e=>h(n.id,p.INDEX,`${e.name} (${e.columns.join(`, `)})`,!0,{...a,index:e.name}));default:return null}}async function fe(e,t){switch(t.type){case p.FOLDER:return await de(e,t)??le(e,t);case p.TABLE:return ue(t);default:return null}}function pe(e,t,n){let r=m(e,p.FOLDER,oe(t));return[e,r,m(r,ae[t],n)]}var me={async loadRoot({engine:e,run:t}){return(await e.introspect.listDatabases(t)).map(e=>h(null,p.DATABASE,e,!1,{database:e}))},async loadChildren(e,t){return t.type===p.DATABASE?ce(e.engine,t.id,{database:t.text}):await fe(e,t)??[]},objectPath(e,t,n){return pe(m(null,p.DATABASE,e),t,n)},namespacePath(e){return[m(null,p.DATABASE,e)]}},he=class extends Error{constructor(e,t){super(`${e} does not support ${t}`),this.name=`UnsupportedQueryError`}};function ge(e,t,...n){let r=t.identifierQuote,i=t.identifierQuoteClose??r;return e.replace(/(.?)\{(\d+)\}(.?)/gs,(e,a,o,s)=>{let c=parseInt(o,10);if(c>=n.length)return e;let l=n[c];return a===r&&s===i?`${a}${l.replaceAll(i,i+i)}${s}`:a&&a===s&&t.stringQuotes.includes(a)?`${a}${_e(l,a,t.backslashEscapes)}${s}`:`${a}${l}${s}`})}function _e(e,t,n){let r=n?e.replaceAll(`\\`,`\\\\`):e;return r=r.replaceAll(t,t+t),r}function g(e){return String(e).padStart(2,`0`)}function ve(e){return`${e.getFullYear()}-${g(e.getMonth()+1)}-${g(e.getDate())} ${g(e.getHours())}:${g(e.getMinutes())}:${g(e.getSeconds())}`}var ye=/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})/,be=e=>Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),xe=e=>`X'${e}'`;function Se(e,t,n=!1,r=xe){if(e==null)return`NULL`;if(e instanceof Uint8Array)return r(be(e));if(typeof e==`number`)return Number.isFinite(e)?String(e):`NULL`;if(typeof e==`bigint`)return e.toString();if(typeof e==`boolean`)return n?e?`TRUE`:`FALSE`:e?`1`:`0`;if(e instanceof Date)return`'${ve(e)}'`;let i;if(typeof e==`object`)try{i=JSON.stringify(e)}catch{i=String(e)}else{i=String(e);let t=i.match(ye);t&&(i=`${t[1]} ${t[2]}`)}return`'${_e(i,`'`,t)}'`}function _(e){let t=e.fields.map(e=>e.name);return e.records.map(e=>{let n={};return t.forEach((t,r)=>{n[t]=e[r]}),n})}function v(e,t=``){return e==null?t:String(e)}function y(e){return e==null?null:String(e)}function b(e){if(e==null||e===``)return null;let t=Number(e);return Number.isFinite(t)?t:null}function x(e,t){return e.trim()||t}function S(e){let t=e.identifierQuote,n=e.identifierQuoteClose??t,r=e=>`${t}${e.replaceAll(n,n+n)}${n}`,i=t=>Se(t,e.syntax.backslashEscapes,e.booleanKeywords??!1,e.binaryLiteral),a=(e,t)=>e?`${r(e)}.${r(t)}`:r(t),o={identifierQuote:t,identifierQuoteClose:n,stringQuotes:e.syntax.doubleQuoteIsIdentifier?[`'`]:[`'`,`"`],backslashEscapes:e.syntax.backslashEscapes};return{kind:`sql`,id:e.id,label:e.label,capabilities:e.capabilities,introspect:e.introspect,explain:e.explain,tree:e.tree??me,defaultPort:e.defaultPort,syntax:e.syntax,limitClause:(t,n=0)=>e.syntax.limitStyle===`top`?`OFFSET ${n} ROWS FETCH NEXT ${t} ROWS ONLY`:e.syntax.limitStyle===`fetch`?n>0?`OFFSET ${n} ROWS FETCH NEXT ${t} ROWS ONLY`:`FETCH FIRST ${t} ROWS ONLY`:n>0?`LIMIT ${t} OFFSET ${n}`:`LIMIT ${t}`,quoteIdentifier:r,quoteLiteral:i,qualify:a,ddl:e.ddl({quoteIdentifier:r,quoteLiteral:i,qualify:a}),rowIdExpression:e.rowIdExpression,hasQuery(t){return e.queries[t]!==void 0},getQuery(t,...n){let r=e.queries[t];if(r===void 0)throw new he(e.label,t);return ge(r,o,...n)},getDataTypes:()=>e.dataTypes,getDataTypesToJSON:()=>e.dataTypes.map(e=>[e,e]),getFunctions:()=>e.functions,getReservedWords:()=>e.reservedWords}}var Ce=0,we=()=>`p${++Ce}`;function C(e,t={}){return{id:we(),label:e,rows:null,actualRows:null,cost:null,timeMs:null,details:[],warnings:[],children:[],...t}}function w(e){if(e==null||e===``)return null;let t=typeof e==`number`?e:Number(String(e).replace(/,/g,``));return Number.isFinite(t)?t:null}function T(e){return e==null?``:typeof e==`object`?JSON.stringify(e):String(e)}function Te(e){let t=e.replace(/[_-]+/g,` `).trim();return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}var Ee=10;function E(e,t){return e===null||t===null||Math.max(e,t)<100?[]:(e===0||t===0?Math.max(e,t):Math.max(e/t,t/e))>Ee?[`estimate-off`]:[]}function De(e,t){let n=new Map,r=new Map,i=[],a=[];for(let o of e){let e=t(o);if(e){if(e.id===null){a.push(e.node);continue}n.set(e.id,e.node),r.set(e.id,e.parent),i.push(e.id)}}for(let e of i){let t=n.get(e),i=r.get(e),o=i==null?void 0:n.get(i);o&&o!==t?o.children.push(t):a.push(t)}return a}var Oe=new Set([`Node Type`,`Plans`,`Plan Rows`,`Total Cost`,`Actual Rows`,`Actual Total Time`,`Relation Name`,`Index Name`,`Actual Loops`,`Startup Cost`,`Actual Startup Time`]);function ke(e){let t=T(e[`Node Type`])||`Node`,n=T(e.Strategy??e[`Join Type`]??e[`Partial Mode`]),r=T(e[`Relation Name`]??e[`Index Name`])||void 0,i=w(e[`Actual Loops`])??1,a=w(e[`Actual Rows`]),o=w(e[`Actual Total Time`]),s=w(e[`Plan Rows`]),c=[];t===`Seq Scan`&&c.push(`full-scan`),T(e[`Sort Method`]).toLowerCase().includes(`external`)&&c.push(`filesort`),c.push(...E(s,a));let l=Object.entries(e).filter(([e,t])=>!Oe.has(e)&&t!=null&&t!==``).map(([e,t])=>({label:e,value:T(t)})),u=Array.isArray(e.Plans)?e.Plans.map(ke):[];return C(n?`${t} (${n})`:t,{object:r,rows:s,actualRows:a===null?null:a*i,cost:w(e[`Total Cost`]),timeMs:o===null?null:o*i,details:l,warnings:c,children:u})}function Ae(e){return e.records[0]?.[0]}function je(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return null}}var Me={supportsAnalyze:!0,statements:(e,t)=>({statement:`EXPLAIN (${t?`ANALYZE, BUFFERS, `:``}FORMAT JSON) ${e}`}),parse:e=>{let t=Ae(e),n=typeof t==`string`?t:JSON.stringify(t,null,2),r=je(t),i=Array.isArray(r)?r:r?[r]:[],a=[];for(let e of i){let t=e?.Plan;if(!t||typeof t!=`object`)continue;let n=ke(t),r=w(e[`Planning Time`]),i=w(e[`Execution Time`]);r!==null&&n.details.push({label:`Planning Time`,value:`${r} ms`}),i!==null&&n.details.push({label:`Execution Time`,value:`${i} ms`}),a.push(n)}return{roots:a,raw:n}}},Ne=new Set([`table_name`,`access_type`,`key`,`rows_examined_per_scan`,`rows`,`r_rows`,`r_total_time_ms`,`query_cost`,`select_id`,`cost_info`]),Pe=new Set([`query_block`,`nested_loop`,`ordering_operation`,`grouping_operation`,`duplicates_removal`,`materialized_from_subquery`,`union_result`,`query_specifications`,`attached_subqueries`,`subqueries`,`optimized_away_subqueries`,`select_list_subqueries`,`having_subqueries`,`update_value_subqueries`,`block-nl-join`,`buffer_result`,`filesort`,`temporary_table`,`read_sorted_file`,`range-checked-for-each-record`,`insert_from`,`having_subquery`,`table`]);function D(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Fe(e){let t=T(e.table_name)||`table`,n=T(e.access_type),r=T(e.key),i=w(e.rows_examined_per_scan??e.rows),a=w(e.r_rows),o=[];n===`ALL`&&o.push(`full-scan`),!r&&e.possible_keys==null&&n!==`system`&&n!==`const`&&o.push(`no-index`),e.using_filesort===!0&&o.push(`filesort`),e.using_temporary_table===!0&&o.push(`temporary`),o.push(...E(i,a));let s=[],c=[];for(let[t,n]of Object.entries(e))Pe.has(t)?c.push(...Ie(t,n)):!Ne.has(t)&&n!=null&&n!==``&&s.push({label:Te(t),value:T(n)});let l=D(e.cost_info)?w(e.cost_info.prefix_cost??e.cost_info.read_cost):null;return C(n?`${n.toUpperCase()} ${t}`:t,{object:t,rows:i,actualRows:a,cost:l,timeMs:w(e.r_total_time_ms),details:s,warnings:o,children:c})}function Ie(e,t){if(Array.isArray(t))return t.flatMap(t=>Ie(e,t));if(!D(t))return[];if(e===`table`||`table_name`in t)return[Fe(t)];let n=[],r=[];for(let[e,i]of Object.entries(t))Ne.has(e)||(Pe.has(e)||Array.isArray(i)||D(i)?r.push(...Ie(e,i)):i!=null&&i!==``&&n.push({label:Te(e),value:T(i)}));let i=[];(e===`filesort`||t.using_filesort===!0)&&i.push(`filesort`),(e===`temporary_table`||t.using_temporary_table===!0)&&i.push(`temporary`);let a=w(t.select_id),o=e===`query_block`&&a!==null?`Query block #${a}`:Te(e),s=D(t.cost_info)?w(t.cost_info.query_cost):null;return e===`nested_loop`?r:[C(o,{rows:w(t.rows),cost:s,details:n,warnings:i,children:r})]}var Le=/^(\s*)->\s*(.*)$/,Re=/\s*\(cost=([\d.e+-]+)(?:\.\.[\d.e+-]+)? rows=([\d.e+-]+)\)/,ze=/\s*\(actual time=([\d.e+-]+)\.\.([\d.e+-]+) rows=([\d.e+-]+) loops=(\d+)\)/,Be=/\s*\(never executed\)/;function Ve(e){let t=/\bon\s+`?([A-Za-z0-9_$]+)`?/.exec(e),n=/\busing\s+`?([A-Za-z0-9_$]+)`?/.exec(e);return{object:t?.[1],index:n?.[1]}}function He(e,t,n){let r=[];return/^Table scan on /.test(e)&&r.push(`full-scan`),/^Sort[: ]/.test(e)&&r.push(`filesort`),/^(Materialize|Temporary table)/.test(e)&&r.push(`temporary`),r.push(...E(t,n)),r}function Ue(e){let t=[],n=[];for(let r of e.split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./CyX8oVsa.js";import{a as n,i as r}from"./Cme0nCT7.js";import{i,n as a,r as o,t as s}from"./eFSiW0Lh.js";import{f as c,t as l}from"./iz6RnRcO.js";import{t as u}from"./Bit0Kfog.js";import{D as d,O as f,a as p,c as ee,d as te,f as m,r as ne,t as re,u as ie}from"./zdvaVsTo.js";import{n as ae}from"./BihjBM79.js";import{n as oe}from"./C_qmv4pB.js";function h(e,t,n){return e.map(e=>e.id===t?n(e):e.children.length>0?{...e,children:h(e.children,t,n)}:e)}function se(e,t){for(let n of e){if(n.id===t)return n;let e=se(n.children,t);if(e)return e}return null}function g(e,t,n){let r=new Set(e??[]);if(n)r.add(t);else for(let e of r)(e===t||e.startsWith(`${t}/`))&&r.delete(e);return[...r]}var _=t()(i(e=>({trees:{},selectedNodeId:{},expandedIds:{},setTree:(t,n)=>e(e=>({trees:{...e.trees,[t]:n}})),setChildren:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,!0)},trees:{...e.trees,[t]:h(i,n,e=>({...e,children:r,isLoading:!1,isExpanded:!0,metadata:{...e.metadata,count:r.length}}))}}:e}),setNodeMetadata:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{trees:{...e.trees,[t]:h(i,n,e=>({...e,metadata:{...e.metadata,...r}}))}}:e}),toggleExpanded:(t,n)=>e(e=>{let r=e.trees[t];if(!r)return e;let i=!se(r,n)?.isExpanded;return{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,i)},trees:{...e.trees,[t]:h(r,n,e=>({...e,isExpanded:i}))}}}),setExpanded:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,r)},trees:{...e.trees,[t]:h(i,n,e=>({...e,isExpanded:r}))}}:e}),setSelected:(t,n)=>e(e=>({selectedNodeId:{...e.selectedNodeId,[t]:n}})),setLoading:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{trees:{...e.trees,[t]:h(i,n,e=>({...e,isLoading:r}))}}:e}),removeTree:t=>e(e=>{let n={...e.trees},r={...e.selectedNodeId};return delete n[t],delete r[t],{trees:n,selectedNodeId:r}})}),{name:`planche-schema`,storage:s(),partialize:e=>({selectedNodeId:e.selectedNodeId,expandedIds:e.expandedIds})})),v=32,y=24,ce=931071618,b=931071619,x=(e,t)=>(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0,le=(e,t)=>(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0;function S(e,t,n,r,i=0,a=0){let o=r?x:le;for(let r=t;r<t+n;r+=8)i=i+o(e,r)+a>>>0,a=a+o(e,r+4)+i>>>0;return[i,a]}function ue(e){if(e.byteLength<v)return null;let t=x(e,0);if(t!==ce&&t!==b)return null;let n=t===b,r=x(e,8);if(r<512||r>65536||r&r-1)return null;let i=x(e,16),a=x(e,20),[o,s]=S(e,0,24,n);if(o!==x(e,24)||s!==x(e,28))return null;let c=y+r,l=new Map,u=new Map,d=0,f=0,p=0;for(let t=v;t+c<=e.byteLength&&!(x(e,t+8)!==i||x(e,t+12)!==a||([o,s]=S(e,t,8,n,o,s),[o,s]=S(e,t+y,r,n,o,s),o!==x(e,t+16)||s!==x(e,t+20)));t+=c){let n=x(e,t),r=x(e,t+4);if(n===0)break;if(u.set(n,e.subarray(t+y,t+c)),p++,r>0){for(let[e,t]of u)l.set(e,t);u.clear(),d=r,f+=p,p=0}}return{pageSize:r,dbSizePages:d,pages:l,committedFrames:f}}function C(e,t){let n=ue(t);if(!n||n.committedFrames===0)return{bytes:e,appliedFrames:0};let{pageSize:r,dbSizePages:i,pages:a}=n,o=Math.max(i*r,e.byteLength-e.byteLength%r),s=new Uint8Array(o);s.set(e.subarray(0,Math.min(e.byteLength,o)));for(let[e,t]of a){let n=(e-1)*r;n+r<=o&&s.set(t,n)}return{bytes:i>0?s.subarray(0,i*r):s,appliedFrames:n.committedFrames}}var de=`planche-file-handles`,w=`handles`;function fe(){return new Promise((e,t)=>{if(typeof indexedDB>`u`){t(Error(`IndexedDB unavailable`));return}let n=indexedDB.open(de,1);n.onupgradeneeded=()=>n.result.createObjectStore(w),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function T(e,t){return fe().then(n=>new Promise((r,i)=>{let a=t(n.transaction(w,e).objectStore(w));a.onsuccess=()=>r(a.result),a.onerror=()=>i(a.error)}))}var E=e=>`${e}:wal`;async function D(e,t){try{await T(`readwrite`,n=>n.put(t,e))}catch{}}async function O(e){try{return await T(`readonly`,t=>t.get(e))??null}catch{return null}}async function k(e){try{await T(`readwrite`,t=>t.delete(e))}catch{}}async function A(e,t){let n=e,r={mode:`readwrite`};try{if(n.queryPermission&&await n.queryPermission(r)===`granted`)return!0;if(t&&n.requestPermission)return await n.requestPermission(r)===`granted`}catch{}return!1}var j=e=>`dbcache-meta:${e}`,M=e=>`${e}.sqlite3`;async function pe(e){try{let t=await o.getItem(j(e));if(!t)return null;let n=JSON.parse(t),r=await a.get(M(e));return r?{bytes:new Uint8Array(r),meta:n}:null}catch{return null}}async function me(e,t,n){try{let r=t.slice().buffer;return await a.set(M(e),r)?(await o.setItem(j(e),JSON.stringify(n)),!0):!1}catch(e){return console.warn(`[db-cache] write failed:`,e),!1}}async function he(e,t){try{let n=await o.getItem(j(e));if(!n)return;await o.setItem(j(e),JSON.stringify({...JSON.parse(n),...t}))}catch{}}async function N(e){try{await a.remove(M(e)),await o.removeItem(j(e))}catch{}}var ge=`browser:`;function P(e){return typeof e==`string`&&e.startsWith(`browser:`)}var _e=750;function ve(e){let t=z.get(e);t?.profileId&&(t.flushTimer&&clearTimeout(t.flushTimer),t.flushTimer=setTimeout(()=>{t.flushTimer=null,F(e)},_e))}async function F(e){let t=z.get(e);if(t?.profileId)try{let n=await J(e);await me(t.profileId,n,I(t))}catch(e){console.warn(`[browser-sqlite] cache flush failed:`,e)}}function I(e){return{name:e.source.name,lastModified:e.fileMeta.lastModified,size:e.fileMeta.size,dirty:e.dirty,cachedAt:Date.now()}}var L=u(`browserSqliteVisibilityListener`,()=>({installed:!1}));typeof document<`u`&&!L.installed&&(L.installed=!0,document.addEventListener(`visibilitychange`,()=>{if(document.visibilityState===`hidden`)for(let[e,t]of z)t.flushTimer&&(clearTimeout(t.flushTimer),t.flushTimer=null,F(e))}));function R(e){return e.toLowerCase().endsWith(`-wal`)}var z=u(`browserSqliteDatabases`,()=>new Map),B=u(`browserSqliteModule`,()=>({promise:null}));async function V(){return B.promise||=r(()=>import(`./DD58tsa9.js`).then(e=>e.default()),[]),B.promise}function H(e){let t=z.get(e);if(!t)throw Error(`Browser connection not found: ${e}`);return t}function ye(e){if(!(e.byteLength>=100&&e[0]===83&&e[15]===0)||e[18]!==2&&e[19]!==2)return{bytes:e,wal:!1};let t=new Uint8Array(e);return t[18]=1,t[19]=1,{bytes:t,wal:!0}}var be=`SQLite format 3\0`;function xe(e){if(e.byteLength===0)return null;if(e.byteLength<100)return n.t(`services.sqliteFile.tooSmall`);if(String.fromCharCode(...e.subarray(0,16))!==be)return n.t(`services.sqliteFile.notSqlite`);let t=e[16]<<8|e[17],r=t===1?65536:t;return r<512||r&r-1?n.t(`services.sqliteFile.badPageSize`,{size:r}):null}async function Se(e){let t=xe(e);if(t)throw Error(t);let r=await V(),i=new r.oo1.DB;if(e.byteLength===0)return i;let a=r.wasm.allocFromTypedArray(e),o=r.capi,s=o.SQLITE_DESERIALIZE_FREEONCLOSE??1,c=o.SQLITE_DESERIALIZE_RESIZEABLE??2,l=r.capi.sqlite3_deserialize(i.pointer,`main`,a,e.byteLength,e.byteLength,s|c);i.checkRc(l);try{i.exec(`SELECT count(*) FROM sqlite_master`)}catch(e){throw i.close(),Error(n.t(`services.sqliteFile.unreadable`,{message:e instanceof Error?e.message:String(e)}))}return i}async function U(e){let t=window.showOpenFilePicker;if(t)try{let r=await t({multiple:e.multiple,types:e.sqliteOnly?[{description:n.t(`services.sqliteFile.pickerDescription`),accept:{"application/vnd.sqlite3":[`.sqlite`,`.sqlite3`,`.db`,`.db3`]}}]:void 0,excludeAcceptAllOption:!1});return Promise.all(r.map(async e=>({file:await e.getFile(),handle:e})))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return[];throw e}return new Promise(t=>{let n=document.createElement(`input`);n.type=`file`,n.multiple=e.multiple,e.sqliteOnly&&(n.accept=`.sqlite,.sqlite3,.db,.db3,application/vnd.sqlite3`),n.onchange=()=>t(Array.from(n.files??[]).map(e=>({file:e}))),n.oncancel=()=>t([]),n.click()})}async function Ce(){let e=await U({multiple:!0,sqliteOnly:!1}),t=e.find(e=>!R(e.file.name));return t?{main:t,wal:e.find(e=>R(e.file.name)&&e.file.name.toLowerCase()===`${t.file.name.toLowerCase()}-wal`)??e.find(e=>R(e.file.name))}:null}async function we(){let[e]=await U({multiple:!1,sqliteOnly:!1});return e??null}async function W(e,t,n={}){let{bytes:r,wal:i}=ye(e),a=await Se(r),o=`${ge}${crypto.randomUUID()}`,s={...t,wal:i};return z.set(o,{db:a,source:s,rawBytes:e,profileId:n.profileId,fileMeta:n.fileMeta??{lastModified:0,size:e.byteLength},dirty:n.dirty??!1,flushTimer:null}),{connectionId:o,source:s}}async function G(e,t,n,r={}){let i=e?new Uint8Array(await e.arrayBuffer()):new Uint8Array,a=i,o=!1;n&&(a=C(i,new Uint8Array(await n.file.arrayBuffer())).bytes,o=!0);let s=await W(a,{name:e?.name??`:memory:`,handle:t,walApplied:o,walHandle:n?.handle},{profileId:r.profileId,fileMeta:{lastModified:Math.max(e?.lastModified??0,n?.file.lastModified??0),size:i.byteLength}});return z.get(s.connectionId).rawBytes=i,r.profileId&&F(s.connectionId),s}async function K(e,t,n,r){return await W(t,{name:n.name,handle:r,walApplied:!0},{profileId:e,fileMeta:{lastModified:n.lastModified,size:n.size},dirty:n.dirty})}function Te(e,t){let n=H(e);n.source={...n.source,handle:t}}function Ee(e){return z.get(e)?.dirty??!1}async function De(e,t){let n=H(e),r=C(n.rawBytes,new Uint8Array(await t.file.arrayBuffer())),i=await W(r.bytes,{...n.source,walApplied:!0,walHandle:t.handle},{profileId:n.profileId,fileMeta:n.fileMeta});return z.get(i.connectionId).rawBytes=n.rawBytes,Y(e),n.profileId&&F(i.connectionId),{...i,appliedFrames:r.appliedFrames}}function q(e){return z.get(e)?.source??null}function Oe(e){return e&&e.trim().toLowerCase().replace(/\(.*$/,``).trim()||null}function ke(e){return e==null?`null`:typeof e==`number`?Number.isInteger(e)?`integer`:`real`:typeof e==`bigint`?`bigint`:e instanceof Uint8Array?`blob`:`text`}function Ae(e){return typeof e==`bigint`?Number(e):e instanceof Uint8Array?{type:`Buffer`,data:Array.from(e)}:e}async function je(e,t){let{db:n}=H(e),r=await V(),i=performance.now(),a=H(e),o=Number(r.capi.sqlite3_total_changes(n.pointer)),s=n.prepare(t);try{if(s.columnCount===0){s.step();let c=Number(n.changes()),l=Number(r.capi.sqlite3_last_insert_rowid(n.pointer)),u=/^\s*(BEGIN|COMMIT|END|ROLLBACK|SAVEPOINT|RELEASE)\b/i.test(t);return(c>0||Number(r.capi.sqlite3_total_changes(n.pointer))!==o||!u)&&(a.dirty=!0,ve(e)),{success:!0,fields:[],records:[],affectedRows:c,insertId:l,isResultQuery:!1,execTime:Math.round(performance.now()-i)}}let c=[];for(;s.step();)c.push(s.get([]).map(Ae));let l=s.getColumnNames(),u=r.capi,d=s.pointer;return{success:!0,fields:l.map((e,t)=>{let n=Oe(u.sqlite3_column_decltype(d,t)),r=u.sqlite3_column_table_name(d,t)??``;return{name:e,orgName:u.sqlite3_column_origin_name(d,t)??e,type:n??ke(Me(c,t)),table:r,orgTable:r,db:u.sqlite3_column_database_name(d,t)??``,maxLength:0}}),records:c,affectedRows:0,insertId:0,isResultQuery:!0,execTime:Math.round(performance.now()-i)}}finally{s.finalize()}}function Me(e,t){for(let n of e){let e=n[t];if(e!=null)return e}return null}async function J(e){let{db:t}=H(e);return(await V()).capi.sqlite3_js_db_export(t.pointer)}function Ne(e){let t=z.get(e);if(!t?.source.handle)return null;let{source:r}=t;return r.wal&&!r.walApplied&&!r.walAcknowledged?n.t(`services.sqliteFile.walNotLoaded`):null}function Pe(e){let t=H(e);t.source={...t.source,walAcknowledged:!0}}async function Fe(e){let{source:t,fileMeta:r}=e;if(!t.handle)return;let i=await t.handle.getFile();if(r.lastModified&&(i.lastModified!==r.lastModified||i.size!==r.size))throw Error(n.t(`services.sqliteFile.changedOnDisk`,{name:t.name}));if(t.walHandle)try{let e=await t.walHandle.getFile();if(e.size>0&&!t.walApplied)throw Error(n.t(`services.sqliteFile.walHasChanges`,{name:t.name}));if(e.size>0&&t.walApplied&&e.lastModified>r.lastModified)throw Error(n.t(`services.sqliteFile.walChangedOnDisk`,{name:t.name}))}catch(e){if(e instanceof Error&&!(e instanceof DOMException))throw e}}async function Ie(e){let t=H(e),{source:r}=t,i=Ne(e);if(i)throw Error(i);r.handle&&await Fe(t);let a=await J(e);if(r.handle){if(!await A(r.handle,!0))throw Error(n.t(`services.sqliteFile.writeDenied`,{name:r.name}));let t=await r.handle.createWritable();await t.write(a),await t.close(),r.walHandle&&await(await r.walHandle.createWritable()).close();let i=H(e);i.dirty=!1;try{let e=await r.handle.getFile();i.fileMeta={lastModified:e.lastModified,size:e.size}}catch{i.fileMeta={lastModified:Date.now(),size:a.byteLength}}return i.profileId&&he(i.profileId,{...I(i)}),`in-place`}let o=new Blob([a],{type:`application/vnd.sqlite3`}),s=URL.createObjectURL(o),c=document.createElement(`a`);return c.href=s,c.download=r.name===`:memory:`?`database.sqlite`:r.name,c.click(),URL.revokeObjectURL(s),`download`}function Y(e){let t=z.get(e);t&&(t.flushTimer&&clearTimeout(t.flushTimer),t.db.close(),z.delete(e))}function X(e){return z.get(e)?.profileId}async function Le(e){await k(e),await k(E(e)),await N(e)}async function Re(e,t){let n=await O(e);if(!n)return null;if(!await A(n,t))return`denied`;try{return{handle:n,file:await n.getFile()}}catch(t){if(t instanceof DOMException&&(t.name===`NotFoundError`||t.name===`NotAllowedError`))return await k(e),null;throw t}}async function ze(e,t){let n=await O(E(e));if(!(!n||!await A(n,t)))try{return{file:await n.getFile(),handle:n}}catch{await k(E(e));return}}async function Be(e,t){let n={remembered:!0,fromCache:!1,restoredUnsaved:!1,fileDetached:!1,diskChanged:!1},r=await pe(e),i=await Re(e,t.interactive),a=i&&i!==`denied`?i.handle:void 0,o=i&&i!==`denied`?i.file:null;if(r?.meta.dirty){let{connectionId:t,source:i}=await K(e,r.bytes,r.meta,a),s=o?o.lastModified!==r.meta.lastModified||o.size!==r.meta.size:!1;return{...n,connectionId:t,fileName:i.name,wal:i.wal,walApplied:i.walApplied,fromCache:!0,restoredUnsaved:!0,fileDetached:!a,diskChanged:s}}if(o&&a){let{connectionId:r,source:i}=await G(o,a,await ze(e,t.interactive),{profileId:e});return{...n,connectionId:r,fileName:i.name,wal:i.wal,walApplied:i.walApplied}}if(r){let{connectionId:t,source:i}=await K(e,r.bytes,r.meta);return{...n,connectionId:t,fileName:i.name,wal:i.wal,walApplied:i.walApplied,fromCache:!0,fileDetached:!0}}if(!t.interactive)return null;let s=await Ce();if(!s)return null;let{connectionId:c,source:l}=await G(s.main.file,s.main.handle,s.wal,{profileId:e});return s.main.handle?await D(e,s.main.handle):await k(e),s.wal?.handle?await D(E(e),s.wal.handle):await k(E(e)),{...n,connectionId:c,fileName:l.name,wal:l.wal,walApplied:l.walApplied,remembered:!1}}var Ve=`SQLite format 3\0`;async function He(e){if(e.size===0)return!0;if(e.size<100)return!1;let t=new Uint8Array(await e.slice(0,16).arrayBuffer());return String.fromCharCode(...t)===Ve}async function Ue(e,t){try{let n=await O(e);return n?await n.isSameEntry(t):!1}catch{return!1}}async function We(t){let r=t.find(e=>!R(e.file.name));if(!r)return;if(!await He(r.file))throw Error(n.t(`app.dropNotSqlite`,{name:r.file.name}));let i=t.find(e=>R(e.file.name)&&e.file.name.toLowerCase()===`${r.file.name.toLowerCase()}-wal`),a=l.getState(),o;for(let e of a.savedConnections)if(!(e.dbms!==`sqlite`||(e.transport??`browser`)!==`browser`||e.sample||e.file!==r.file.name)&&r.handle&&await Ue(e.id,r.handle)){o=e;break}let s=o??{id:crypto.randomUUID(),hostName:r.file.name.replace(/\.(db|sqlite|sqlite3|db3)$/i,``),host:``,user:``,pass:``,charset:`utf8`,port:0,dbms:`sqlite`,transport:`browser`,file:r.file.name,autoConnection:!1,savePassword:!0,authToken:``};e(`sqlite_file_drop`,{reused:!!o,wal:!!i,handle:!!r.handle});let u=a.activeConnections.some(e=>e.id===s.id),d=a.activeConnections.find(e=>e.id===s.id)?.serverConnectionId,{connectionId:f}=await G(r.file,r.handle,i,{profileId:s.id});d&&d!==f&&P(d)&&Y(d),r.handle?await D(s.id,r.handle):await k(s.id),i?.handle?await D(E(s.id),i.handle):await k(E(s.id)),o||a.addSavedConnection(s),a.openConnection({...s,serverConnectionId:f}),a.setPendingReopen(s.id,!1),a.setFileDetached(s.id,!1),_.getState().removeTree(s.id),c(s.id),u||oe.getState().addQueryTab(s.id,{id:`tab-${Date.now()}`,title:n.t(`connection.dialog.firstQueryTab`),query:``,database:``,isExecuting:!1,results:[],error:null,executionTime:null}),ae.getState().setWelcomeVisible(!1)}async function Ge(e,t){let n=await Re(e,!0);return!n||n===`denied`?!1:(Te(t,n.handle),!0)}async function Ke(e){let t=X(e),n=q(e);return n&&!n.handle&&t&&await Ge(t,e),Ie(e)}function qe(e){let t=q(e);return t?t.name===`:memory:`?n.t(`services.save.inMemory`):typeof window<`u`&&!(`showOpenFilePicker`in window)?n.t(`services.save.noFileSystemAccess`):!t.handle&&!X(e)?n.t(`services.save.noWritableHandle`):null:n.t(`services.save.notBrowserSqlite`)}async function Je(e,t){let n=await we();if(!n)return null;let r=await De(t,n);return n.handle&&await D(E(e),n.handle),{connectionId:r.connectionId,appliedFrames:r.appliedFrames}}function Ye(e){if(!P(e))return null;let t=q(e);return t?{wal:t.wal,walApplied:t.walApplied,walAcknowledged:t.walAcknowledged??!1}:null}function Xe(e){return e.dbms===`sqlite`&&e.transport===`browser`?`browser`:`tunnel`}async function Ze(e,t){return ee(e,t)}async function Qe(e,t){return d(e,t)}async function Z(e,t,n){let r=e=>({success:!1,fields:[],records:[],affectedRows:0,insertId:0,isResultQuery:!1,execTime:0,message:e instanceof Error?e.message:String(e)});if(P(e))try{return await je(e,t)}catch(e){return r(e)}let i=Q.get(e)??e;try{return await m(i,t,n)}catch(e){if(!(e instanceof re)||e.status!==404)return r(e);let a=await $e(i);if(!a)return r(e);try{return await m(a,t,n)}catch(e){return r(e)}}}var Q=new Map,$=new Map;function $e(e){let t=$.get(e);if(t)return t;let r=(async()=>{let t=l.getState(),r=t.activeConnections.find(t=>t.serverConnectionId===e||Q.get(t.serverConnectionId??``)===e);if(!r||Xe(r)===`browser`||ne())return null;if(r.serverConnectionId&&r.serverConnectionId!==e&&!Q.has(r.serverConnectionId))return Q.set(e,r.serverConnectionId),r.serverConnectionId;let i=t.resolveCredentials(r),a=i.ssh?.enabled&&i.ssh.auth===`password`&&!i.ssh.password;if(!i.pass&&r.pass===``&&r.dbms!==`sqlite`||a)return null;try{let t=await ee(f(i),i.authToken||void 0);if(!t.success||!t.connectionId)return null;for(let[n,r]of Q)r===e&&Q.set(n,t.connectionId);return Q.set(e,t.connectionId),l.getState().updateServerConnectionId(r.id,t.connectionId),l.getState().setTransactionOpen(r.id,!1),ae.getState().setFooterMessage(n.t(`services.agent.reconnected`,{name:r.hostName||r.host||r.databaseId||r.file||r.id})),t.connectionId}catch{return null}})();return $.set(e,r),r.finally(()=>$.delete(e)),r}async function et(e){if(P(e)){let t=X(e);Y(e),t&&await N(t);return}return ie(e)}function tt(e){return e===`cancelled`?null:e===`abandoned`?n.t(`result.running.abandoned`):e===`agent-outdated`?n.t(`result.running.agentOutdated`):e===`unsupported`?n.t(`result.running.cannotCancel`):n.t(`result.running.cancelFailed`)}async function nt(e){if(P(e))return`unsupported`;let t=l.getState().activeConnections.find(t=>t.id===e)?.serverConnectionId;return t?p(t):`failed`}async function rt(e,t,n){if(P(e)){let r=[];for(let i of t){let t=await Z(e,i,n);r.push(t.success?{...t,success:!0}:{success:!1,message:t.message??`Query failed`})}return r}return te(e,t,n)}function it(e){return async(t,r)=>{let i=await Z(e,t,r);if(!i.success)throw Error(i.message??n.t(`services.query.failed`));return i}}export{_ as C,G as S,Qe as _,it as a,P as b,rt as c,Ye as d,Xe as f,Ke as g,Ge as h,Ze as i,Z as l,We as m,tt as n,qe as o,Je as p,Be as r,et as s,nt as t,Le as u,Pe as v,Ee as x,Ne as y};
|
|
1
|
+
import{o as e,t}from"./BeP_ukJr.js";import{a as n,i as r}from"./Byi789lS.js";import{i,n as a,r as o,t as s}from"./eFSiW0Lh.js";import{f as c,t as l}from"./LVFEf5KC.js";import{t as u}from"./Bit0Kfog.js";import{D as d,O as f,a as p,c as ee,d as te,f as m,r as ne,t as re,u as ie}from"./BQ0kaqOO.js";import{n as ae}from"./DhVLQTui.js";import{n as oe}from"./DB8Yfa-s.js";function h(e,t,n){return e.map(e=>e.id===t?n(e):e.children.length>0?{...e,children:h(e.children,t,n)}:e)}function se(e,t){for(let n of e){if(n.id===t)return n;let e=se(n.children,t);if(e)return e}return null}function g(e,t,n){let r=new Set(e??[]);if(n)r.add(t);else for(let e of r)(e===t||e.startsWith(`${t}/`))&&r.delete(e);return[...r]}var _=t()(i(e=>({trees:{},selectedNodeId:{},expandedIds:{},setTree:(t,n)=>e(e=>({trees:{...e.trees,[t]:n}})),setChildren:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,!0)},trees:{...e.trees,[t]:h(i,n,e=>({...e,children:r,isLoading:!1,isExpanded:!0,metadata:{...e.metadata,count:r.length}}))}}:e}),setNodeMetadata:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{trees:{...e.trees,[t]:h(i,n,e=>({...e,metadata:{...e.metadata,...r}}))}}:e}),toggleExpanded:(t,n)=>e(e=>{let r=e.trees[t];if(!r)return e;let i=!se(r,n)?.isExpanded;return{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,i)},trees:{...e.trees,[t]:h(r,n,e=>({...e,isExpanded:i}))}}}),setExpanded:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,r)},trees:{...e.trees,[t]:h(i,n,e=>({...e,isExpanded:r}))}}:e}),setSelected:(t,n)=>e(e=>({selectedNodeId:{...e.selectedNodeId,[t]:n}})),setLoading:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{trees:{...e.trees,[t]:h(i,n,e=>({...e,isLoading:r}))}}:e}),removeTree:t=>e(e=>{let n={...e.trees},r={...e.selectedNodeId};return delete n[t],delete r[t],{trees:n,selectedNodeId:r}})}),{name:`planche-schema`,storage:s(),partialize:e=>({selectedNodeId:e.selectedNodeId,expandedIds:e.expandedIds})})),v=32,y=24,ce=931071618,b=931071619,x=(e,t)=>(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0,le=(e,t)=>(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0;function S(e,t,n,r,i=0,a=0){let o=r?x:le;for(let r=t;r<t+n;r+=8)i=i+o(e,r)+a>>>0,a=a+o(e,r+4)+i>>>0;return[i,a]}function ue(e){if(e.byteLength<v)return null;let t=x(e,0);if(t!==ce&&t!==b)return null;let n=t===b,r=x(e,8);if(r<512||r>65536||r&r-1)return null;let i=x(e,16),a=x(e,20),[o,s]=S(e,0,24,n);if(o!==x(e,24)||s!==x(e,28))return null;let c=y+r,l=new Map,u=new Map,d=0,f=0,p=0;for(let t=v;t+c<=e.byteLength&&!(x(e,t+8)!==i||x(e,t+12)!==a||([o,s]=S(e,t,8,n,o,s),[o,s]=S(e,t+y,r,n,o,s),o!==x(e,t+16)||s!==x(e,t+20)));t+=c){let n=x(e,t),r=x(e,t+4);if(n===0)break;if(u.set(n,e.subarray(t+y,t+c)),p++,r>0){for(let[e,t]of u)l.set(e,t);u.clear(),d=r,f+=p,p=0}}return{pageSize:r,dbSizePages:d,pages:l,committedFrames:f}}function C(e,t){let n=ue(t);if(!n||n.committedFrames===0)return{bytes:e,appliedFrames:0};let{pageSize:r,dbSizePages:i,pages:a}=n,o=Math.max(i*r,e.byteLength-e.byteLength%r),s=new Uint8Array(o);s.set(e.subarray(0,Math.min(e.byteLength,o)));for(let[e,t]of a){let n=(e-1)*r;n+r<=o&&s.set(t,n)}return{bytes:i>0?s.subarray(0,i*r):s,appliedFrames:n.committedFrames}}var de=`planche-file-handles`,w=`handles`;function fe(){return new Promise((e,t)=>{if(typeof indexedDB>`u`){t(Error(`IndexedDB unavailable`));return}let n=indexedDB.open(de,1);n.onupgradeneeded=()=>n.result.createObjectStore(w),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function T(e,t){return fe().then(n=>new Promise((r,i)=>{let a=t(n.transaction(w,e).objectStore(w));a.onsuccess=()=>r(a.result),a.onerror=()=>i(a.error)}))}var E=e=>`${e}:wal`;async function D(e,t){try{await T(`readwrite`,n=>n.put(t,e))}catch{}}async function O(e){try{return await T(`readonly`,t=>t.get(e))??null}catch{return null}}async function k(e){try{await T(`readwrite`,t=>t.delete(e))}catch{}}async function A(e,t){let n=e,r={mode:`readwrite`};try{if(n.queryPermission&&await n.queryPermission(r)===`granted`)return!0;if(t&&n.requestPermission)return await n.requestPermission(r)===`granted`}catch{}return!1}var j=e=>`dbcache-meta:${e}`,M=e=>`${e}.sqlite3`;async function pe(e){try{let t=await o.getItem(j(e));if(!t)return null;let n=JSON.parse(t),r=await a.get(M(e));return r?{bytes:new Uint8Array(r),meta:n}:null}catch{return null}}async function me(e,t,n){try{let r=t.slice().buffer;return await a.set(M(e),r)?(await o.setItem(j(e),JSON.stringify(n)),!0):!1}catch(e){return console.warn(`[db-cache] write failed:`,e),!1}}async function he(e,t){try{let n=await o.getItem(j(e));if(!n)return;await o.setItem(j(e),JSON.stringify({...JSON.parse(n),...t}))}catch{}}async function N(e){try{await a.remove(M(e)),await o.removeItem(j(e))}catch{}}var ge=`browser:`;function P(e){return typeof e==`string`&&e.startsWith(`browser:`)}var _e=750;function ve(e){let t=z.get(e);t?.profileId&&(t.flushTimer&&clearTimeout(t.flushTimer),t.flushTimer=setTimeout(()=>{t.flushTimer=null,F(e)},_e))}async function F(e){let t=z.get(e);if(t?.profileId)try{let n=await J(e);await me(t.profileId,n,I(t))}catch(e){console.warn(`[browser-sqlite] cache flush failed:`,e)}}function I(e){return{name:e.source.name,lastModified:e.fileMeta.lastModified,size:e.fileMeta.size,dirty:e.dirty,cachedAt:Date.now()}}var L=u(`browserSqliteVisibilityListener`,()=>({installed:!1}));typeof document<`u`&&!L.installed&&(L.installed=!0,document.addEventListener(`visibilitychange`,()=>{if(document.visibilityState===`hidden`)for(let[e,t]of z)t.flushTimer&&(clearTimeout(t.flushTimer),t.flushTimer=null,F(e))}));function R(e){return e.toLowerCase().endsWith(`-wal`)}var z=u(`browserSqliteDatabases`,()=>new Map),B=u(`browserSqliteModule`,()=>({promise:null}));async function V(){return B.promise||=r(()=>import(`./DD58tsa9.js`).then(e=>e.default()),[]),B.promise}function H(e){let t=z.get(e);if(!t)throw Error(`Browser connection not found: ${e}`);return t}function ye(e){if(!(e.byteLength>=100&&e[0]===83&&e[15]===0)||e[18]!==2&&e[19]!==2)return{bytes:e,wal:!1};let t=new Uint8Array(e);return t[18]=1,t[19]=1,{bytes:t,wal:!0}}var be=`SQLite format 3\0`;function xe(e){if(e.byteLength===0)return null;if(e.byteLength<100)return n.t(`services.sqliteFile.tooSmall`);if(String.fromCharCode(...e.subarray(0,16))!==be)return n.t(`services.sqliteFile.notSqlite`);let t=e[16]<<8|e[17],r=t===1?65536:t;return r<512||r&r-1?n.t(`services.sqliteFile.badPageSize`,{size:r}):null}async function Se(e){let t=xe(e);if(t)throw Error(t);let r=await V(),i=new r.oo1.DB;if(e.byteLength===0)return i;let a=r.wasm.allocFromTypedArray(e),o=r.capi,s=o.SQLITE_DESERIALIZE_FREEONCLOSE??1,c=o.SQLITE_DESERIALIZE_RESIZEABLE??2,l=r.capi.sqlite3_deserialize(i.pointer,`main`,a,e.byteLength,e.byteLength,s|c);i.checkRc(l);try{i.exec(`SELECT count(*) FROM sqlite_master`)}catch(e){throw i.close(),Error(n.t(`services.sqliteFile.unreadable`,{message:e instanceof Error?e.message:String(e)}))}return i}async function U(e){let t=window.showOpenFilePicker;if(t)try{let r=await t({multiple:e.multiple,types:e.sqliteOnly?[{description:n.t(`services.sqliteFile.pickerDescription`),accept:{"application/vnd.sqlite3":[`.sqlite`,`.sqlite3`,`.db`,`.db3`]}}]:void 0,excludeAcceptAllOption:!1});return Promise.all(r.map(async e=>({file:await e.getFile(),handle:e})))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return[];throw e}return new Promise(t=>{let n=document.createElement(`input`);n.type=`file`,n.multiple=e.multiple,e.sqliteOnly&&(n.accept=`.sqlite,.sqlite3,.db,.db3,application/vnd.sqlite3`),n.onchange=()=>t(Array.from(n.files??[]).map(e=>({file:e}))),n.oncancel=()=>t([]),n.click()})}async function Ce(){let e=await U({multiple:!0,sqliteOnly:!1}),t=e.find(e=>!R(e.file.name));return t?{main:t,wal:e.find(e=>R(e.file.name)&&e.file.name.toLowerCase()===`${t.file.name.toLowerCase()}-wal`)??e.find(e=>R(e.file.name))}:null}async function we(){let[e]=await U({multiple:!1,sqliteOnly:!1});return e??null}async function W(e,t,n={}){let{bytes:r,wal:i}=ye(e),a=await Se(r),o=`${ge}${crypto.randomUUID()}`,s={...t,wal:i};return z.set(o,{db:a,source:s,rawBytes:e,profileId:n.profileId,fileMeta:n.fileMeta??{lastModified:0,size:e.byteLength},dirty:n.dirty??!1,flushTimer:null}),{connectionId:o,source:s}}async function G(e,t,n,r={}){let i=e?new Uint8Array(await e.arrayBuffer()):new Uint8Array,a=i,o=!1;n&&(a=C(i,new Uint8Array(await n.file.arrayBuffer())).bytes,o=!0);let s=await W(a,{name:e?.name??`:memory:`,handle:t,walApplied:o,walHandle:n?.handle},{profileId:r.profileId,fileMeta:{lastModified:Math.max(e?.lastModified??0,n?.file.lastModified??0),size:i.byteLength}});return z.get(s.connectionId).rawBytes=i,r.profileId&&F(s.connectionId),s}async function K(e,t,n,r){return await W(t,{name:n.name,handle:r,walApplied:!0},{profileId:e,fileMeta:{lastModified:n.lastModified,size:n.size},dirty:n.dirty})}function Te(e,t){let n=H(e);n.source={...n.source,handle:t}}function Ee(e){return z.get(e)?.dirty??!1}async function De(e,t){let n=H(e),r=C(n.rawBytes,new Uint8Array(await t.file.arrayBuffer())),i=await W(r.bytes,{...n.source,walApplied:!0,walHandle:t.handle},{profileId:n.profileId,fileMeta:n.fileMeta});return z.get(i.connectionId).rawBytes=n.rawBytes,Y(e),n.profileId&&F(i.connectionId),{...i,appliedFrames:r.appliedFrames}}function q(e){return z.get(e)?.source??null}function Oe(e){return e&&e.trim().toLowerCase().replace(/\(.*$/,``).trim()||null}function ke(e){return e==null?`null`:typeof e==`number`?Number.isInteger(e)?`integer`:`real`:typeof e==`bigint`?`bigint`:e instanceof Uint8Array?`blob`:`text`}function Ae(e){return typeof e==`bigint`?Number(e):e instanceof Uint8Array?{type:`Buffer`,data:Array.from(e)}:e}async function je(e,t){let{db:n}=H(e),r=await V(),i=performance.now(),a=H(e),o=Number(r.capi.sqlite3_total_changes(n.pointer)),s=n.prepare(t);try{if(s.columnCount===0){s.step();let c=Number(n.changes()),l=Number(r.capi.sqlite3_last_insert_rowid(n.pointer)),u=/^\s*(BEGIN|COMMIT|END|ROLLBACK|SAVEPOINT|RELEASE)\b/i.test(t);return(c>0||Number(r.capi.sqlite3_total_changes(n.pointer))!==o||!u)&&(a.dirty=!0,ve(e)),{success:!0,fields:[],records:[],affectedRows:c,insertId:l,isResultQuery:!1,execTime:Math.round(performance.now()-i)}}let c=[];for(;s.step();)c.push(s.get([]).map(Ae));let l=s.getColumnNames(),u=r.capi,d=s.pointer;return{success:!0,fields:l.map((e,t)=>{let n=Oe(u.sqlite3_column_decltype(d,t)),r=u.sqlite3_column_table_name(d,t)??``;return{name:e,orgName:u.sqlite3_column_origin_name(d,t)??e,type:n??ke(Me(c,t)),table:r,orgTable:r,db:u.sqlite3_column_database_name(d,t)??``,maxLength:0}}),records:c,affectedRows:0,insertId:0,isResultQuery:!0,execTime:Math.round(performance.now()-i)}}finally{s.finalize()}}function Me(e,t){for(let n of e){let e=n[t];if(e!=null)return e}return null}async function J(e){let{db:t}=H(e);return(await V()).capi.sqlite3_js_db_export(t.pointer)}function Ne(e){let t=z.get(e);if(!t?.source.handle)return null;let{source:r}=t;return r.wal&&!r.walApplied&&!r.walAcknowledged?n.t(`services.sqliteFile.walNotLoaded`):null}function Pe(e){let t=H(e);t.source={...t.source,walAcknowledged:!0}}async function Fe(e){let{source:t,fileMeta:r}=e;if(!t.handle)return;let i=await t.handle.getFile();if(r.lastModified&&(i.lastModified!==r.lastModified||i.size!==r.size))throw Error(n.t(`services.sqliteFile.changedOnDisk`,{name:t.name}));if(t.walHandle)try{let e=await t.walHandle.getFile();if(e.size>0&&!t.walApplied)throw Error(n.t(`services.sqliteFile.walHasChanges`,{name:t.name}));if(e.size>0&&t.walApplied&&e.lastModified>r.lastModified)throw Error(n.t(`services.sqliteFile.walChangedOnDisk`,{name:t.name}))}catch(e){if(e instanceof Error&&!(e instanceof DOMException))throw e}}async function Ie(e){let t=H(e),{source:r}=t,i=Ne(e);if(i)throw Error(i);r.handle&&await Fe(t);let a=await J(e);if(r.handle){if(!await A(r.handle,!0))throw Error(n.t(`services.sqliteFile.writeDenied`,{name:r.name}));let t=await r.handle.createWritable();await t.write(a),await t.close(),r.walHandle&&await(await r.walHandle.createWritable()).close();let i=H(e);i.dirty=!1;try{let e=await r.handle.getFile();i.fileMeta={lastModified:e.lastModified,size:e.size}}catch{i.fileMeta={lastModified:Date.now(),size:a.byteLength}}return i.profileId&&he(i.profileId,{...I(i)}),`in-place`}let o=new Blob([a],{type:`application/vnd.sqlite3`}),s=URL.createObjectURL(o),c=document.createElement(`a`);return c.href=s,c.download=r.name===`:memory:`?`database.sqlite`:r.name,c.click(),URL.revokeObjectURL(s),`download`}function Y(e){let t=z.get(e);t&&(t.flushTimer&&clearTimeout(t.flushTimer),t.db.close(),z.delete(e))}function X(e){return z.get(e)?.profileId}async function Le(e){await k(e),await k(E(e)),await N(e)}async function Re(e,t){let n=await O(e);if(!n)return null;if(!await A(n,t))return`denied`;try{return{handle:n,file:await n.getFile()}}catch(t){if(t instanceof DOMException&&(t.name===`NotFoundError`||t.name===`NotAllowedError`))return await k(e),null;throw t}}async function ze(e,t){let n=await O(E(e));if(!(!n||!await A(n,t)))try{return{file:await n.getFile(),handle:n}}catch{await k(E(e));return}}async function Be(e,t){let n={remembered:!0,fromCache:!1,restoredUnsaved:!1,fileDetached:!1,diskChanged:!1},r=await pe(e),i=await Re(e,t.interactive),a=i&&i!==`denied`?i.handle:void 0,o=i&&i!==`denied`?i.file:null;if(r?.meta.dirty){let{connectionId:t,source:i}=await K(e,r.bytes,r.meta,a),s=o?o.lastModified!==r.meta.lastModified||o.size!==r.meta.size:!1;return{...n,connectionId:t,fileName:i.name,wal:i.wal,walApplied:i.walApplied,fromCache:!0,restoredUnsaved:!0,fileDetached:!a,diskChanged:s}}if(o&&a){let{connectionId:r,source:i}=await G(o,a,await ze(e,t.interactive),{profileId:e});return{...n,connectionId:r,fileName:i.name,wal:i.wal,walApplied:i.walApplied}}if(r){let{connectionId:t,source:i}=await K(e,r.bytes,r.meta);return{...n,connectionId:t,fileName:i.name,wal:i.wal,walApplied:i.walApplied,fromCache:!0,fileDetached:!0}}if(!t.interactive)return null;let s=await Ce();if(!s)return null;let{connectionId:c,source:l}=await G(s.main.file,s.main.handle,s.wal,{profileId:e});return s.main.handle?await D(e,s.main.handle):await k(e),s.wal?.handle?await D(E(e),s.wal.handle):await k(E(e)),{...n,connectionId:c,fileName:l.name,wal:l.wal,walApplied:l.walApplied,remembered:!1}}var Ve=`SQLite format 3\0`;async function He(e){if(e.size===0)return!0;if(e.size<100)return!1;let t=new Uint8Array(await e.slice(0,16).arrayBuffer());return String.fromCharCode(...t)===Ve}async function Ue(e,t){try{let n=await O(e);return n?await n.isSameEntry(t):!1}catch{return!1}}async function We(t){let r=t.find(e=>!R(e.file.name));if(!r)return;if(!await He(r.file))throw Error(n.t(`app.dropNotSqlite`,{name:r.file.name}));let i=t.find(e=>R(e.file.name)&&e.file.name.toLowerCase()===`${r.file.name.toLowerCase()}-wal`),a=l.getState(),o;for(let e of a.savedConnections)if(!(e.dbms!==`sqlite`||(e.transport??`browser`)!==`browser`||e.sample||e.file!==r.file.name)&&r.handle&&await Ue(e.id,r.handle)){o=e;break}let s=o??{id:crypto.randomUUID(),hostName:r.file.name.replace(/\.(db|sqlite|sqlite3|db3)$/i,``),host:``,user:``,pass:``,charset:`utf8`,port:0,dbms:`sqlite`,transport:`browser`,file:r.file.name,autoConnection:!1,savePassword:!0,authToken:``};e(`sqlite_file_drop`,{reused:!!o,wal:!!i,handle:!!r.handle});let u=a.activeConnections.some(e=>e.id===s.id),d=a.activeConnections.find(e=>e.id===s.id)?.serverConnectionId,{connectionId:f}=await G(r.file,r.handle,i,{profileId:s.id});d&&d!==f&&P(d)&&Y(d),r.handle?await D(s.id,r.handle):await k(s.id),i?.handle?await D(E(s.id),i.handle):await k(E(s.id)),o||a.addSavedConnection(s),a.openConnection({...s,serverConnectionId:f}),a.setPendingReopen(s.id,!1),a.setFileDetached(s.id,!1),_.getState().removeTree(s.id),c(s.id),u||oe.getState().addQueryTab(s.id,{id:`tab-${Date.now()}`,title:n.t(`connection.dialog.firstQueryTab`),query:``,database:``,isExecuting:!1,results:[],error:null,executionTime:null}),ae.getState().setWelcomeVisible(!1)}async function Ge(e,t){let n=await Re(e,!0);return!n||n===`denied`?!1:(Te(t,n.handle),!0)}async function Ke(e){let t=X(e),n=q(e);return n&&!n.handle&&t&&await Ge(t,e),Ie(e)}function qe(e){let t=q(e);return t?t.name===`:memory:`?n.t(`services.save.inMemory`):typeof window<`u`&&!(`showOpenFilePicker`in window)?n.t(`services.save.noFileSystemAccess`):!t.handle&&!X(e)?n.t(`services.save.noWritableHandle`):null:n.t(`services.save.notBrowserSqlite`)}async function Je(e,t){let n=await we();if(!n)return null;let r=await De(t,n);return n.handle&&await D(E(e),n.handle),{connectionId:r.connectionId,appliedFrames:r.appliedFrames}}function Ye(e){if(!P(e))return null;let t=q(e);return t?{wal:t.wal,walApplied:t.walApplied,walAcknowledged:t.walAcknowledged??!1}:null}function Xe(e){return e.dbms===`sqlite`&&e.transport===`browser`?`browser`:`tunnel`}async function Ze(e,t){return ee(e,t)}async function Qe(e,t){return d(e,t)}async function Z(e,t,n){let r=e=>({success:!1,fields:[],records:[],affectedRows:0,insertId:0,isResultQuery:!1,execTime:0,message:e instanceof Error?e.message:String(e)});if(P(e))try{return await je(e,t)}catch(e){return r(e)}let i=Q.get(e)??e;try{return await m(i,t,n)}catch(e){if(!(e instanceof re)||e.status!==404)return r(e);let a=await $e(i);if(!a)return r(e);try{return await m(a,t,n)}catch(e){return r(e)}}}var Q=new Map,$=new Map;function $e(e){let t=$.get(e);if(t)return t;let r=(async()=>{let t=l.getState(),r=t.activeConnections.find(t=>t.serverConnectionId===e||Q.get(t.serverConnectionId??``)===e);if(!r||Xe(r)===`browser`||ne())return null;if(r.serverConnectionId&&r.serverConnectionId!==e&&!Q.has(r.serverConnectionId))return Q.set(e,r.serverConnectionId),r.serverConnectionId;let i=t.resolveCredentials(r),a=i.ssh?.enabled&&i.ssh.auth===`password`&&!i.ssh.password;if(!i.pass&&r.pass===``&&r.dbms!==`sqlite`||a)return null;try{let t=await ee(f(i),i.authToken||void 0);if(!t.success||!t.connectionId)return null;for(let[n,r]of Q)r===e&&Q.set(n,t.connectionId);return Q.set(e,t.connectionId),l.getState().updateServerConnectionId(r.id,t.connectionId),l.getState().setTransactionOpen(r.id,!1),ae.getState().setFooterMessage(n.t(`services.agent.reconnected`,{name:r.hostName||r.host||r.databaseId||r.file||r.id})),t.connectionId}catch{return null}})();return $.set(e,r),r.finally(()=>$.delete(e)),r}async function et(e){if(P(e)){let t=X(e);Y(e),t&&await N(t);return}return ie(e)}function tt(e){return e===`cancelled`?null:e===`abandoned`?n.t(`result.running.abandoned`):e===`agent-outdated`?n.t(`result.running.agentOutdated`):e===`unsupported`?n.t(`result.running.cannotCancel`):n.t(`result.running.cancelFailed`)}async function nt(e){if(P(e))return`unsupported`;let t=l.getState().activeConnections.find(t=>t.id===e)?.serverConnectionId;return t?p(t):`failed`}async function rt(e,t,n){if(P(e)){let r=[];for(let i of t){let t=await Z(e,i,n);r.push(t.success?{...t,success:!0}:{success:!1,message:t.message??`Query failed`})}return r}return te(e,t,n)}function it(e){return async(t,r)=>{let i=await Z(e,t,r);if(!i.success)throw Error(i.message??n.t(`services.query.failed`));return i}}export{_ as C,G as S,Qe as _,it as a,P as b,rt as c,Ye as d,Xe as f,Ke as g,Ge as h,Ze as i,Z as l,We as m,tt as n,qe as o,Je as p,Be as r,et as s,nt as t,Le as u,Pe as v,Ee as x,Ne as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./
|
|
1
|
+
import{n as e}from"./DZh9ctSS.js";var t=e(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]);export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{r as n}from"./DZh9ctSS.js";var r=e(t(),1);n();var i=Object.defineProperty,a=(e,t)=>i(e,`name`,{value:t,configurable:!0}),o=r.createContext(void 0);function s(e){let t=r.useContext(o);return e||t||`ltr`}a(s,`useDirection`);var c=Object.defineProperty,l=(e,t)=>c(e,`name`,{value:t,configurable:!0});function u(e,[t,n]){return Math.min(n,Math.max(t,e))}l(u,`clamp`);export{s as n,u as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{a as r}from"./Byi789lS.js";import{i,r as a}from"./DZh9ctSS.js";import{a as o,i as s,n as c,o as l,t as u}from"./BTOj30GE.js";import{t as d}from"./LVFEf5KC.js";import{n as f}from"./DhVLQTui.js";import{l as p}from"./MpwA8CBH.js";import{t as m}from"./D41s9TGC.js";import{C as h,S as g,T as _,b as v,l as y,vt as b,w as x,x as S}from"./Dg41U79W.js";var C=e(t(),1),w=a();function T(){let e=d.getState();return e.activeConnections.find(t=>t.id===e.activeConnectionId)?.serverConnectionId??null}async function E(e){let t=T();if(!t)throw Error(r.t(`command.noActiveConnection`));let n=m().getQuery(e===`global`?`SHOW_GLOBAL_VARIABLES`:`SHOW_SESSION_VARIABLES`);return(await p(t,n)).records.map(e=>({Variable_name:e[0],Value:e[1]}))}function D(){let{t:e}=i(),{activeDialog:t,closeDialog:r,setFooterMessage:a}=f(),[d,p]=(0,C.useState)([]),[m,T]=(0,C.useState)(``),[D,O]=(0,C.useState)(`session`),k=t===`variables`,A=(0,C.useCallback)(t=>E(t).then(p).catch(t=>a(e(`command.variables.loadError`,{message:t instanceof Error?t.message:String(t)}))),[a,e]);(0,C.useEffect)(()=>{k&&A(D)},[k,D,A]);let j=(0,C.useMemo)(()=>{if(!m.trim())return d;let e=m.toLowerCase();return d.filter(t=>t.Variable_name.toLowerCase().includes(e)||t.Value.toLowerCase().includes(e))},[d,m]);function M(e){e||(T(``),r())}function N(e){O(e)}return(0,w.jsx)(u,{open:k,onOpenChange:M,children:(0,w.jsxs)(c,{className:`sm:max-w-[900px] max-h-[80vh] flex flex-col`,children:[(0,w.jsx)(o,{children:(0,w.jsx)(l,{children:e(`command.variables.title`)})}),(0,w.jsxs)(`div`,{className:`flex items-center gap-3 pb-2`,children:[(0,w.jsxs)(`div`,{className:`flex gap-1`,children:[(0,w.jsx)(n,{variant:D===`session`?`default`:`outline`,size:`sm`,onClick:()=>N(`session`),children:e(`command.scope.session`)}),(0,w.jsx)(n,{variant:D===`global`?`default`:`outline`,size:`sm`,onClick:()=>N(`global`),children:e(`command.scope.global`)})]}),(0,w.jsx)(y,{placeholder:e(`command.variables.filterPlaceholder`),value:m,onChange:e=>T(e.target.value),className:`max-w-xs`})]}),(0,w.jsx)(`div`,{className:`flex-1 border rounded-md overflow-hidden min-h-0`,children:(0,w.jsx)(b,{className:`h-[400px]`,children:(0,w.jsxs)(v,{children:[(0,w.jsx)(x,{children:(0,w.jsxs)(_,{children:[(0,w.jsx)(h,{className:`w-[300px]`,children:e(`command.variableName`)}),(0,w.jsx)(h,{children:e(`command.value`)})]})}),(0,w.jsx)(S,{children:j.length===0?(0,w.jsx)(_,{children:(0,w.jsx)(g,{colSpan:2,className:`text-center text-muted-foreground`,children:e(`command.variables.empty`)})}):j.map(e=>(0,w.jsxs)(_,{children:[(0,w.jsx)(g,{className:`font-mono text-xs`,children:e.Variable_name}),(0,w.jsx)(g,{className:`font-mono text-xs`,children:e.Value})]},e.Variable_name))})]})})}),(0,w.jsx)(s,{children:(0,w.jsx)(n,{variant:`outline`,onClick:()=>M(!1),children:e(`command.close`)})})]})})}export{D as VariablesDialog};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{t as n}from"./DXIGhA87.js";import{i as r,n as i,r as a}from"./DZh9ctSS.js";import{a as o,i as s,n as c,o as l,r as ee,t as u}from"./BTOj30GE.js";import{t as d}from"./LVFEf5KC.js";import{n as f}from"./j8iiZuT2.js";import{n as p,t as m}from"./DhVLQTui.js";import{a as h}from"./MpwA8CBH.js";import{a as g,f as _}from"./15ORcG2N.js";import{Bt as v,Gt as y,Kt as b,Rt as x,Xt as S,_t as C,f as w,h as T,m as E,p as D}from"./Dg41U79W.js";var O=i(`wand-sparkles`,[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]]),k=e(t(),1);function A(e){let t=e.slice(e.indexOf(`(`)+1,e.lastIndexOf(`)`)),n=[],r=/'((?:[^']|'')*)'/g,i;for(;i=r.exec(t);)n.push(i[1].replaceAll(`''`,`'`));return n}function j(e,t={}){let{oracleDate:n=!1}=t,r=e.type.trim(),i=r.toLowerCase(),a=/\bunsigned\b/.test(i);if(/^enum\(/.test(i))return{kind:`enum`,options:A(r)};if(/^set\(/.test(i))return{kind:`set`,options:A(r)};if(/^(tinyint\(1\)|bool|boolean|bit\(1\)|bit)(?![\w(])/.test(i))return{kind:`boolean`};let o=/^number(?:\((\d+|\*)(?:,\s*(-?\d+))?\))?$/.exec(i);if(o)return o[2]&&Number(o[2])>0?{kind:`decimal`}:o[1]?{kind:`integer`}:{kind:`decimal`};if(/^(tinyint|smallint|mediumint|int|integer|bigint|int2|int4|int8|serial|bigserial|smallserial)\b/.test(i))return{kind:`integer`,unsigned:a};if(/^(decimal|numeric|float|double|real|money|float4|float8|double precision)\b/.test(i))return{kind:`decimal`,unsigned:a};if(/^(datetime2|datetime|timestamp|smalldatetime|datetimeoffset)\b/.test(i))return{kind:`datetime`};if(/^date\b/.test(i))return{kind:n?`datetime`:`date`};if(/^(time|timetz)\b/.test(i))return{kind:`time`};if(/^(json|jsonb)\b/.test(i))return{kind:`json`};if(/^(uuid|uniqueidentifier)\b/.test(i))return{kind:`uuid`};if(/^(blob|tinyblob|mediumblob|longblob|binary|varbinary|bytea|raw|image|bfile)\b/.test(i))return{kind:`binary`};if(/^(text|ntext|tinytext|mediumtext|longtext|clob|nclob|long)\b/.test(i)||/^n?(?:var)?char2?\(max\)/.test(i))return{kind:`text`};let s=/^n?(?:var)?char2?(?:acter)?(?:\s+varying)?\((\d+)(?:\s+(?:char|byte))?\)/.exec(i);return s?{kind:`string`,maxLength:Number(s[1])}:{kind:`string`}}var M=/auto_increment|identity|generated/i;function N(e){return M.test(e.extra)||/^(serial|bigserial|smallserial)\b/i.test(e.type)?{mode:`auto`,text:``}:e.defaultValue===null?e.nullable?{mode:`null`,text:``}:{mode:`value`,text:``}:{mode:`default`,text:``}}function P(e){return e==null?{mode:`keep`,text:``}:{mode:`keep`,text:F(e)}}function F(e){if(e==null)return``;if(typeof e==`object`){if(ArrayBuffer.isView(e))return``;if(e instanceof Date)return e.toISOString();try{return JSON.stringify(e,null,2)}catch{return String(e)}}return String(e)}function I(e,t){let n=t.trim();switch(e.kind){case`integer`:{if(!/^[+-]?\d+$/.test(n))return{error:`integer`};if(e.unsigned&&n.startsWith(`-`))return{error:`unsigned`};let t=Number(n);return{value:Number.isSafeInteger(t)?t:BigInt(n)}}case`decimal`:return n===``||Number.isNaN(Number(n))?{error:`number`}:{value:Number(n)};case`boolean`:return{value:n===`true`||n===`1`};case`json`:try{return{value:JSON.parse(n===``?`null`:n)}}catch{return{error:`json`}}case`set`:return{value:n};case`date`:return n&&!/^\d{4}-\d{2}-\d{2}$/.test(n)?{error:`date`}:{value:n};case`datetime`:return n&&!/^\d{4}-\d{2}-\d{2}([ T]\d{2}:\d{2}(:\d{2}(\.\d+)?)?)?([+-]\d{2}:?\d{2}|Z)?$/.test(n)?{error:`datetime`}:{value:n};case`time`:return n&&!/^-?\d{1,3}:\d{2}(:\d{2}(\.\d+)?)?$/.test(n)?{error:`time`}:{value:n};default:return{value:t}}}var L=a(),R={integer:`result.rowForm.invalid.integer`,unsigned:`result.rowForm.invalid.unsigned`,number:`result.rowForm.invalid.number`,json:`result.rowForm.invalid.json`,date:`result.rowForm.invalid.date`,datetime:`result.rowForm.invalid.datetime`,time:`result.rowForm.invalid.time`};function z(e){return String(e).padStart(2,`0`)}function B(e){let t=new Date,n=`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`,r=`${z(t.getHours())}:${z(t.getMinutes())}:${z(t.getSeconds())}`;return e===`date`?n:e===`time`?r:`${n} ${r}`}function V(e){let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e.trim());if(!t)return;let n=new Date(Number(t[1]),Number(t[2])-1,Number(t[3]));return Number.isNaN(n.getTime())?void 0:n}function H({spec:e,state:t,disabled:n,onText:i}){let{t:a}=r(),o=`w-full rounded border bg-background px-2 py-1 text-sm font-mono outline-none focus:ring-1 focus:ring-primary disabled:opacity-50`;switch(e.kind){case`boolean`:return(0,L.jsxs)(`select`,{className:o,value:t.text===`true`||t.text===`1`?`true`:`false`,onChange:e=>i(e.target.value),disabled:n,children:[(0,L.jsx)(`option`,{value:`true`,children:`TRUE`}),(0,L.jsx)(`option`,{value:`false`,children:`FALSE`})]});case`enum`:return(0,L.jsxs)(`select`,{className:o,value:t.text,onChange:e=>i(e.target.value),disabled:n,children:[!e.options?.includes(t.text)&&(0,L.jsx)(`option`,{value:t.text,children:t.text||`—`}),e.options?.map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))]});case`set`:{let r=new Set(t.text.split(`,`).map(e=>e.trim()).filter(Boolean));return(0,L.jsx)(`div`,{className:`flex flex-wrap gap-x-3 gap-y-1 rounded border bg-background px-2 py-1.5`,children:e.options?.map(t=>(0,L.jsxs)(`label`,{className:`flex items-center gap-1 text-xs font-mono`,children:[(0,L.jsx)(`input`,{type:`checkbox`,className:`accent-primary`,checked:r.has(t),disabled:n,onChange:n=>{let a=new Set(r);n.target.checked?a.add(t):a.delete(t),i(e.options.filter(e=>a.has(e)).join(`,`))}}),t]},t))})}case`integer`:case`decimal`:return(0,L.jsx)(`input`,{className:`${o} tabular-nums`,inputMode:`decimal`,value:t.text,onChange:e=>i(e.target.value),disabled:n,placeholder:e.kind===`integer`?`0`:`0.00`});case`date`:case`datetime`:{let[r,s]=t.text.trim().split(/[ T]/);return(0,L.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,L.jsx)(`input`,{className:`${o} flex-1`,value:t.text,onChange:e=>i(e.target.value),disabled:n,placeholder:e.kind===`date`?`YYYY-MM-DD`:`YYYY-MM-DD HH:MM:SS`}),(0,L.jsxs)(D,{children:[(0,L.jsx)(T,{asChild:!0,children:(0,L.jsx)(`button`,{type:`button`,className:`rounded border bg-background p-1.5 text-muted-foreground hover:text-foreground disabled:opacity-50`,disabled:n,title:a(`result.rowForm.pickDate`),children:(0,L.jsx)(S,{className:`size-3.5`})})}),(0,L.jsx)(E,{className:`w-auto p-0`,align:`end`,children:(0,L.jsx)(w,{mode:`single`,selected:V(r??``),defaultMonth:V(r??``),onSelect:t=>{if(!t)return;let n=`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`;i(e.kind===`date`?n:`${n} ${s||`00:00:00`}`)}})})]}),(0,L.jsx)(`button`,{type:`button`,className:`rounded border bg-background px-1.5 py-1 text-[10px] text-muted-foreground hover:text-foreground disabled:opacity-50`,disabled:n,onClick:()=>i(B(e.kind)),title:a(`result.rowForm.now`),children:(0,L.jsx)(y,{className:`size-3.5`})})]})}case`time`:return(0,L.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,L.jsx)(`input`,{className:`${o} flex-1`,value:t.text,onChange:e=>i(e.target.value),disabled:n,placeholder:`HH:MM:SS`}),(0,L.jsx)(`button`,{type:`button`,className:`rounded border bg-background px-1.5 py-1 text-muted-foreground hover:text-foreground disabled:opacity-50`,disabled:n,onClick:()=>i(B(`time`)),title:a(`result.rowForm.now`),children:(0,L.jsx)(y,{className:`size-3.5`})})]});case`json`:{let e=!0;try{t.text.trim()&&JSON.parse(t.text)}catch{e=!1}return(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsx)(`textarea`,{className:`${o} min-h-[96px] resize-y text-xs ${e?``:`border-destructive`}`,value:t.text,onChange:e=>i(e.target.value),disabled:n,spellCheck:!1,placeholder:`{}`}),(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 rounded border bg-background px-1.5 py-0.5 text-[10px] text-muted-foreground hover:text-foreground disabled:opacity-50`,disabled:n||!e||!t.text.trim(),onClick:()=>{try{i(JSON.stringify(JSON.parse(t.text),null,2))}catch{}},children:[(0,L.jsx)(O,{className:`size-3`}),a(`result.rowForm.formatJson`)]}),!e&&(0,L.jsx)(`span`,{className:`text-[10px] text-destructive`,children:a(`result.rowForm.invalid.json`)})]})]})}case`text`:return(0,L.jsx)(`textarea`,{className:`${o} min-h-[72px] resize-y`,value:t.text,onChange:e=>i(e.target.value),disabled:n,spellCheck:!1});case`binary`:return(0,L.jsx)(`div`,{className:`rounded border bg-muted/40 px-2 py-1 text-xs italic text-muted-foreground`,children:a(`result.rowForm.binaryUnsupported`)});case`uuid`:return(0,L.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,L.jsx)(`input`,{className:`${o} flex-1`,value:t.text,onChange:e=>i(e.target.value),disabled:n,placeholder:`00000000-0000-0000-0000-000000000000`}),(0,L.jsx)(`button`,{type:`button`,className:`rounded border bg-background px-1.5 py-1 text-muted-foreground hover:text-foreground disabled:opacity-50`,disabled:n,onClick:()=>i(crypto.randomUUID()),title:a(`result.rowForm.generateUuid`),children:(0,L.jsx)(O,{className:`size-3.5`})})]});default:{let r=t.text.length>80||t.text.includes(`
|
|
2
2
|
`);return(0,L.jsxs)(`div`,{className:`space-y-0.5`,children:[r?(0,L.jsx)(`textarea`,{className:`${o} min-h-[56px] resize-y`,value:t.text,onChange:e=>i(e.target.value),disabled:n,spellCheck:!1}):(0,L.jsx)(`input`,{className:o,value:t.text,onChange:e=>i(e.target.value),disabled:n,maxLength:e.maxLength}),e.maxLength&&(0,L.jsxs)(`div`,{className:`text-right text-[10px] tabular-nums ${t.text.length>e.maxLength?`text-destructive`:`text-muted-foreground`}`,children:[t.text.length,`/`,e.maxLength]})]})}}}function U(){let{t:e}=r(),t=m(`row-form`),i=p(e=>e.closeDialog),a=p(e=>e.setFooterMessage),y=C(t?.connectionId??``),S=d(e=>t?e.transactionOpen[t.connectionId]:!1),[w,T]=(0,k.useState)(null),[E,D]=(0,k.useState)(null),[O,A]=(0,k.useState)({}),[M,F]=(0,k.useState)({}),[z,B]=(0,k.useState)(null),[V,U]=(0,k.useState)(!1),W=t?.mode===`edit`;(0,k.useEffect)(()=>{if(!t)return;let e=!1,n=h(t.serverConnectionId);return y.introspect.listColumns(n,t.database,t.table).then(n=>{if(e)return;T(n);let r={};for(let e of n)if(t.mode===`edit`){let n=t.fields.find(t=>t.orgName===e.name);r[e.name]=P(n?t.row?.[n.name]:void 0)}else r[e.name]=N(e);A(r)}).catch(t=>{e||D(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[t?.serverConnectionId,t?.database,t?.table,t?.mode]);let G=(0,k.useMemo)(()=>new Map((w??[]).map(e=>[e.name,j(e,{oracleDate:y.id===`oracle`})])),[w,y.id]),K=(0,k.useCallback)((e,t)=>{A(n=>({...n,[e]:{...n[e],mode:t}})),F(t=>{let n={...t};return delete n[e],n})},[]),q=(0,k.useCallback)((e,t)=>{A(n=>({...n,[e]:{mode:`value`,text:t}})),F(t=>{let n={...t};return delete n[e],n})},[]),J=(0,k.useMemo)(()=>({__default:!0}),[]),Y=(0,k.useCallback)(()=>{if(!w)return null;let t=new Map,n={};for(let r of w){let i=O[r.name],a=G.get(r.name);if(!i||i.mode===`auto`||i.mode===`keep`)continue;if(i.mode===`null`){t.set(r.name,null);continue}if(i.mode==="default"){t.set(r.name,J);continue}let o=I(a,i.text);if(`error`in o){n[r.name]=e(R[o.error]??`result.rowForm.invalid.number`);continue}if(a.maxLength&&typeof o.value==`string`&&o.value.length>a.maxLength){n[r.name]=e(`result.rowForm.invalid.length`,{max:a.maxLength});continue}t.set(r.name,o.value)}return F(n),Object.keys(n).length>0?null:{values:t}},[w,O,G,e,J]),X=(0,k.useCallback)(e=>{if(!t)return null;let n=e=>e===J?`DEFAULT`:y.quoteLiteral(e);if(t.mode===`insert`){let r=[...e];return r.length===0?y.getQuery(`INSERT_DEFAULT_VALUES`,t.database,t.table):y.getQuery(`INSERT_TABLE`,t.database,t.table,r.map(([e])=>y.quoteIdentifier(e)).join(`, `),r.map(([,e])=>n(e)).join(`, `))}return!t.where||e.size===0?null:y.getQuery(`UPDATE_TABLE`,t.database,t.table,[...e].map(([e,t])=>`${y.quoteIdentifier(e)} = ${n(t)}`).join(`, `),t.where)},[t,y,J]),Z=(0,k.useMemo)(()=>{if(!w)return``;let e=new Map;for(let t of w){let n=O[t.name];if(!(!n||n.mode===`auto`||n.mode===`keep`)){if(n.mode===`null`)e.set(t.name,null);else if(n.mode==="default")e.set(t.name,J);else{let r=I(G.get(t.name),n.text);e.set(t.name,`error`in r?n.text:r.value)}}}return X(e)??``},[w,O,G,X,J]),Q=e=>{let n={};for(let[r,i]of e){if(i===J)continue;let e=t?.fields.find(e=>e.orgName===r);n[e?.name??r]=typeof i==`bigint`?i.toString():i}return n},te=()=>{let e=Y();!e||!t||(t.onStage?.(t.mode,Q(e.values)),i())},ne=async()=>{let n=Y();if(!n||!t)return;let r=X(n.values);if(!r){B(e(`result.rowForm.nothingToWrite`));return}U(!0),B(null);try{if(f.getState().previewGridCommit&&!await p.getState().requestDestructiveConfirm({title:e(W?`result.rowForm.confirmUpdateTitle`:`result.rowForm.confirmInsertTitle`,{table:`${t.database}.${t.table}`}),statements:[r],confirmLabel:e(W?`result.rowForm.update`:`result.rowForm.insert`)}))return;await g(t.connectionId,r,{database:t.database,skipDestructiveConfirm:!0}),a(e(W?`result.rowForm.updated`:`result.rowForm.inserted`,{table:`${t.database}.${t.table}`})),t.onCommitted?.(t.mode,Q(n.values)),i()}catch(e){if(e instanceof _)return;B(e instanceof Error?e.message:String(e))}finally{U(!1)}};if(!t)return null;let $=(e,t,n,r)=>(0,L.jsx)(`button`,{type:`button`,className:`rounded px-1.5 py-0.5 text-[10px] font-medium ${r===t?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted hover:text-foreground`}`,onClick:()=>K(e,t),children:n});return(0,L.jsx)(u,{open:!0,onOpenChange:e=>{e||i()},children:(0,L.jsxs)(c,{className:`flex max-h-[90vh] flex-col sm:max-w-[860px]`,children:[(0,L.jsxs)(o,{children:[(0,L.jsx)(l,{children:e(W?`result.rowForm.editTitle`:`result.rowForm.insertTitle`)}),(0,L.jsxs)(ee,{className:`font-mono text-xs`,children:[t.database,`.`,t.table]})]}),(0,L.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto rounded-md border`,children:[E&&(0,L.jsx)(`div`,{className:`rounded border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive`,children:E}),!w&&!E&&(0,L.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-10 text-sm text-muted-foreground`,children:[(0,L.jsx)(x,{className:`size-4 animate-spin`}),e(`result.rowForm.loading`)]}),w&&(0,L.jsxs)(`table`,{className:`w-full border-separate border-spacing-0 text-sm`,children:[(0,L.jsx)(`thead`,{className:`sticky top-0 z-10 bg-background`,children:(0,L.jsxs)(`tr`,{className:`text-left text-[10px] uppercase tracking-wide text-muted-foreground`,children:[(0,L.jsx)(`th`,{className:`w-[38%] border-b px-2 py-1.5 font-medium`,children:e(`result.rowForm.colColumn`)}),(0,L.jsx)(`th`,{className:`border-b px-2 py-1.5 font-medium`,children:e(`result.rowForm.colValue`)})]})}),(0,L.jsx)(`tbody`,{children:w.map(n=>{let r=O[n.name]??{mode:`value`,text:``},i=G.get(n.name),a=r.mode===`auto`,o=M[n.name],s=n.key===`PRI`,c=t.fields.find(e=>e.orgName===n.name),l=!!c&&!!t.row&&t.row[c.name]===null;return(0,L.jsxs)(`tr`,{className:`align-top ${o?`bg-destructive/5`:`hover:bg-muted/30`}`,children:[(0,L.jsxs)(`td`,{className:`border-b border-border/60 px-2 py-2`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,L.jsx)(`span`,{className:`truncate font-mono text-sm font-medium`,title:n.name,children:n.name}),s&&(0,L.jsxs)(`span`,{className:`flex shrink-0 items-center gap-0.5 rounded border border-catppuccin-yellow/50 px-1 text-[9px] font-semibold text-catppuccin-yellow`,children:[(0,L.jsx)(v,{className:`size-2.5`}),`PK`]})]}),(0,L.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-1.5 gap-y-0.5 text-[10px] text-muted-foreground`,children:[(0,L.jsx)(`span`,{className:`rounded bg-muted px-1 py-px font-mono`,children:n.type}),!n.nullable&&(0,L.jsx)(`span`,{children:`NOT NULL`}),n.defaultValue!==null&&(0,L.jsxs)(`span`,{className:`font-mono`,title:e(`result.rowForm.defaultValue`),children:[`= `,n.defaultValue]}),n.extra&&(0,L.jsx)(`span`,{children:n.extra})]}),n.comment&&(0,L.jsx)(`div`,{className:`mt-0.5 text-[10px] text-muted-foreground/80`,children:n.comment})]}),(0,L.jsx)(`td`,{className:`border-b border-border/60 px-2 py-2`,children:(0,L.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[r.mode===`keep`?(0,L.jsx)(`div`,{className:`cursor-text truncate rounded border border-dashed bg-muted/30 px-2 py-1 font-mono text-xs text-muted-foreground`,onClick:()=>K(n.name,`value`),title:e(`result.rowForm.clickToChange`),children:l?(0,L.jsx)(`span`,{className:`italic`,children:`NULL`}):r.text||(0,L.jsx)(`span`,{className:`italic`,children:e(`result.rowForm.empty`)})}):r.mode===`value`?(0,L.jsx)(H,{spec:i,state:r,disabled:!1,onText:e=>q(n.name,e)}):(0,L.jsx)(`div`,{className:`rounded border border-dashed bg-muted/30 px-2 py-1 font-mono text-xs italic text-muted-foreground`,children:r.mode===`null`?`NULL`:r.mode==="default"?`DEFAULT (${n.defaultValue??``})`:e(`result.rowForm.autoHint`)}),o&&(0,L.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 text-[11px] text-destructive`,children:[(0,L.jsx)(b,{className:`size-3`}),o]})]}),(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 rounded border bg-background p-0.5`,children:[W&&$(n.name,`keep`,e(`result.rowForm.mode.keep`),r.mode),(a||!W&&/auto_increment|identity/i.test(n.extra))&&$(n.name,`auto`,e(`result.rowForm.mode.auto`),r.mode),$(n.name,`value`,e(`result.rowForm.mode.value`),r.mode),n.nullable&&$(n.name,`null`,`NULL`,r.mode),n.defaultValue!==null&&$(n.name,`default`,`DEFAULT`,r.mode)]})]})})]},n.name)})})]})]}),w&&(0,L.jsxs)(`div`,{className:`shrink-0 rounded-md border bg-muted/30`,children:[(0,L.jsx)(`div`,{className:`border-b px-3 py-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:e(`result.rowForm.preview`)}),(0,L.jsx)(`pre`,{className:`max-h-24 overflow-auto whitespace-pre-wrap break-words px-3 py-2 font-mono text-xs`,children:Z||(0,L.jsx)(`span`,{className:`italic text-muted-foreground`,children:e(`result.rowForm.nothingToWrite`)})})]}),z&&(0,L.jsx)(`div`,{className:`shrink-0 rounded border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive`,children:z}),(0,L.jsxs)(s,{className:`items-center`,children:[S&&(0,L.jsx)(`span`,{className:`mr-auto text-[11px] text-catppuccin-yellow`,children:e(`result.rowForm.inTransaction`)}),(0,L.jsx)(n,{variant:`outline`,onClick:()=>i(),disabled:V,children:e(`command.close`)}),t.onStage&&(0,L.jsx)(n,{variant:`outline`,onClick:te,disabled:V||!w,title:e(`result.rowForm.stageHint`),children:e(W?`result.rowForm.stageEdit`:`result.rowForm.stageInsert`)}),(0,L.jsxs)(n,{onClick:()=>void ne(),disabled:V||!w,children:[V&&(0,L.jsx)(x,{className:`mr-1 size-3.5 animate-spin`}),e(W?`result.rowForm.update`:`result.rowForm.insert`)]})]})]})})}export{U as RowFormDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./hePW80VL.js";import{p as t}from"./
|
|
1
|
+
import{r as e}from"./hePW80VL.js";import{p as t}from"./BeP_ukJr.js";import{i as n,r}from"./DZh9ctSS.js";import{F as i}from"./LVFEf5KC.js";import{ft as a,mt as o}from"./Dg41U79W.js";import{r as s}from"./CelfLV5M.js";import{t as c}from"./uHjP6NCK.js";import{t as l}from"./kOcXvaMR.js";import{t as u}from"./DW_MDklv.js";import{t as d}from"./_zaonxnw.js";var f=e(t(),1);function p(e){let t=e.indexOf(`:`);return t===-1?`(no prefix)`:e.slice(0,t+1)}function m(e){return e<0?`none`:e<36e5?`lt1h`:e<864e5?`lt1d`:e<6048e5?`lt1w`:`ge1w`}function h(){let e=()=>({count:0,bytes:0});return{analyzed:0,totalBytes:0,byType:{},byPrefix:{},ttl:{none:e(),lt1h:e(),lt1d:e(),lt1w:e(),ge1w:e()},top:[],missingSizes:0}}function g(e,t,n){let r=e[t]??={count:0,bytes:0};r.count+=1,r.bytes+=n}function _(e,t){let n={...e,byType:{...e.byType},byPrefix:{...e.byPrefix},ttl:{...e.ttl},top:[...e.top]};for(let e of Object.keys(n.byType))n.byType[e]={...n.byType[e]};for(let e of Object.keys(n.byPrefix))n.byPrefix[e]={...n.byPrefix[e]};for(let e of Object.keys(n.ttl))n.ttl[e]={...n.ttl[e]};for(let e of t){if(e.ttlMs===-2||e.type===`none`)continue;let t=e.bytes??0;e.bytes===null&&(n.missingSizes+=1),n.analyzed+=1,n.totalBytes+=t,g(n.byType,e.type,t),g(n.byPrefix,p(e.key),t);let r=n.ttl[m(e.ttlMs)];r.count+=1,r.bytes+=t,e.bytes!==null&&(n.top.length<50||t>n.top[n.top.length-1].bytes)&&(n.top.push({key:e.key,type:e.type,bytes:t}),n.top.sort((e,t)=>t.bytes-e.bytes),n.top.length>50&&(n.top.length=50))}return n}function v(e){return Object.entries(e).sort((e,t)=>t[1].bytes-e[1].bytes||t[1].count-e[1].count)}var y=r(),b=300,x=[1e4,1e5,1e6];function S({title:e,rows:t,onRow:n}){return(0,y.jsxs)(`section`,{className:`min-w-0`,children:[(0,y.jsx)(`h3`,{className:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e}),(0,y.jsx)(`table`,{className:`w-full border-collapse text-xs`,children:(0,y.jsx)(`tbody`,{children:t.map(([e,t,r,i])=>(0,y.jsxs)(`tr`,{className:`border-b border-border/50 ${n?`cursor-pointer hover:bg-muted/50`:``}`,onClick:n?()=>n(e):void 0,children:[(0,y.jsx)(`td`,{className:`max-w-0 truncate py-1 pr-2 font-mono`,title:e,children:e}),(0,y.jsx)(`td`,{className:`w-20 py-1 text-right tabular-nums text-muted-foreground`,children:t}),(0,y.jsx)(`td`,{className:`w-24 py-1 text-right tabular-nums`,children:r}),(0,y.jsx)(`td`,{className:`w-14 py-1 text-right tabular-nums text-muted-foreground`,children:i??``})]},e))})})]})}function C({connectionId:e,tabId:t,input:r}){let{t:p}=n(),m=c(e,t,``),[g,C]=(0,f.useState)(r.trim().split(/\s+/)[0]||`db0`),[w,T]=(0,f.useState)(x[1]),[E,D]=(0,f.useState)(null),[O,k]=(0,f.useState)(null),[A,j]=(0,f.useState)(!1),[M,N]=(0,f.useState)(null),P=(0,f.useRef)(!1),[F,I]=(0,f.useState)(0),L=async()=>{P.current=!1,j(!0),N(null);let e=h();D(e);try{let t=Number(await m.read(`DBSIZE`,g));k({scanned:0,total:Number.isFinite(t)?t:null});let n=`0`,r=0;do{let a=await m.read(`SCAN ${n} COUNT ${b}`,g);n=String(a[0]);let o=a[1].slice(0,Math.max(0,w-r));if(o.length>0){let t=await m.readBatch(o.flatMap(e=>{let t=i(e);return[`MEMORY USAGE ${t}`,`TYPE ${t}`,`PTTL ${t}`]}),g),n=o.map((e,n)=>{let[r,i,a]=t.slice(n*3,n*3+3);return{key:e,type:typeof i==`string`?i:`unknown`,bytes:r instanceof Error||r==null?null:Number(r),ttlMs:a instanceof Error?-1:Number(a)}});e=_(e,n),D(e)}r+=o.length,k({scanned:r,total:Number.isFinite(t)?t:null})}while(n!==`0`&&r<w&&!P.current)}catch(e){N(d(e))}finally{j(!1),I(e=>e+1)}},R=e=>E&&E.totalBytes>0?`${(e/E.totalBytes*100).toFixed(1)}%`:``,z={none:p(`tools.redis.ttlNone`),lt1h:`< 1h`,lt1d:`< 1d`,lt1w:`< 1w`,ge1w:`≥ 1w`},B=O?.total?Math.min(100,Math.round(O.scanned/O.total*100)):null;return(0,y.jsx)(u,{title:p(`tools.redis.memory`),onRefresh:async()=>{A||await L()},error:M,onDismissError:()=>N(null),actions:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(l,{access:m,value:g,onChange:C,disabled:A,version:F}),(0,y.jsx)(`select`,{value:w,disabled:A,onChange:e=>T(Number(e.target.value)),className:`h-7 rounded border bg-background px-1 text-xs`,children:x.map(e=>(0,y.jsx)(`option`,{value:e,children:p(`tools.redis.upTo`,{count:e.toLocaleString()})},e))}),A?(0,y.jsx)(`button`,{type:`button`,onClick:()=>{P.current=!0},className:`flex h-7 items-center rounded border bg-background px-2 text-muted-foreground hover:text-foreground`,children:p(`tools.stop`)}):(0,y.jsx)(`button`,{type:`button`,onClick:()=>void L(),className:`flex h-7 items-center rounded border border-primary/30 bg-primary/10 px-2 text-primary hover:bg-primary/20`,children:p(`tools.redis.analyze`)})]}),children:(0,y.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`tools.redis.memoryNote`)}),O&&(0,y.jsxs)(`div`,{className:`space-y-1`,children:[(0,y.jsx)(`div`,{className:`h-1.5 w-full max-w-xl overflow-hidden rounded bg-muted`,children:(0,y.jsx)(`div`,{className:`h-full bg-primary transition-all`,style:{width:`${B??(A?30:100)}%`}})}),(0,y.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[p(`tools.redis.scanned`,{scanned:O.scanned.toLocaleString(),total:O.total?.toLocaleString()??`?`}),!A&&O.total!==null&&O.scanned<O.total&&` · ${p(`tools.redis.partial`)}`]})]}),E&&E.analyzed===0&&!A&&(0,y.jsx)(`p`,{className:`rounded border border-dashed p-6 text-center text-sm text-muted-foreground`,children:p(`tools.redis.noKeys`,{database:g})}),E&&E.analyzed>0&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`flex flex-wrap gap-6 text-sm`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:p(`tools.redis.keysAnalyzed`)}),(0,y.jsx)(`div`,{className:`font-semibold tabular-nums`,children:E.analyzed.toLocaleString()})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:p(`tools.redis.totalMemory`)}),(0,y.jsx)(`div`,{className:`font-semibold`,children:s(E.totalBytes)})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:p(`tools.redis.average`)}),(0,y.jsx)(`div`,{className:`font-semibold`,children:s(Math.round(E.totalBytes/E.analyzed))})]})]}),E.missingSizes>0&&(0,y.jsx)(`p`,{className:`text-xs text-catppuccin-yellow`,children:p(`tools.redis.missingSizes`,{count:E.missingSizes})}),(0,y.jsxs)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(320px,1fr))] gap-6`,children:[(0,y.jsx)(S,{title:p(`tools.redis.byType`),rows:v(E.byType).map(([e,t])=>[e,t.count.toLocaleString(),s(t.bytes),R(t.bytes)])}),(0,y.jsx)(S,{title:p(`tools.redis.byTtl`),rows:Object.keys(z).map(e=>[z[e],E.ttl[e].count.toLocaleString(),s(E.ttl[e].bytes),R(E.ttl[e].bytes)])}),(0,y.jsx)(S,{title:p(`tools.redis.byPrefix`),rows:v(E.byPrefix).slice(0,100).map(([e,t])=>[e,t.count.toLocaleString(),s(t.bytes),R(t.bytes)]),onRow:m.readOnly?void 0:t=>{t.endsWith(`:`)&&o(e,`redis-delete`,p(`tools.redis.delete`),`${g} ${t}*`)}}),(0,y.jsx)(S,{title:p(`tools.redis.largest`),rows:E.top.map(e=>[e.key,e.type,s(e.bytes)]),onRow:t=>a(e,{database:g,name:t})})]}),!m.readOnly&&(0,y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`tools.redis.prefixHint`)})]})]})})}export{C as MemoryAnalysis};
|