planche 0.9.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/app/assets/92hmrkfN.css +2 -0
  2. package/app/assets/{G06qjCej.js → B3qo2BmL.js} +1 -1
  3. package/app/assets/{B4S-lOKS.js → B4e4BJ-q.js} +1 -1
  4. package/app/assets/{DF7EZh_S.js → B8kALM_o.js} +1 -1
  5. package/app/assets/BEY3Hwp0.js +1 -0
  6. package/app/assets/{D0Ya12SQ.js → BFUEHSdO.js} +1 -1
  7. package/app/assets/{Do7KpDxk.js → BFddfnRD.js} +1 -1
  8. package/app/assets/{C1kpKIsO.js → BFxd4DZC.js} +1 -1
  9. package/app/assets/{qRIRkBN0.js → BLF41w4B.js} +1 -1
  10. package/app/assets/{CrhJJH3f.js → BNB2k8On.js} +1 -1
  11. package/app/assets/{BjwrN_ch.js → BPLdNS4h.js} +1 -1
  12. package/app/assets/{CFu5QMhX.js → BTpuv2bS.js} +1 -1
  13. package/app/assets/{7jG9Xw-H.js → BXogLn0j.js} +1 -1
  14. package/app/assets/{CExE8dKz.js → B_zu4Zim.js} +184 -183
  15. package/app/assets/{tJkeLYCp.js → BanAYgsJ.js} +1 -1
  16. package/app/assets/{BkXrfAoR.js → BghfQrAj.js} +1 -1
  17. package/app/assets/{DaBfnZOJ.js → Bjupmf7v.js} +1 -1
  18. package/app/assets/{7jD5h8Yx.js → BkujllIu.js} +1 -1
  19. package/app/assets/{BixvbqFe.js → BmnRSOWE.js} +1 -1
  20. package/app/assets/{BhX9zWzC.js → Bsl10NAd.js} +1 -1
  21. package/app/assets/{BNB62Dfu.js → Bx57-46U.js} +1 -1
  22. package/app/assets/{DHZOxCSJ.js → C3skRSMN.js} +1 -1
  23. package/app/assets/{CrlnxAGW.js → C63wLpkg.js} +1 -1
  24. package/app/assets/{BDtsGuIR.js → C9jzAIEJ.js} +2 -2
  25. package/app/assets/{S7HbowYz.js → CAd2f6EE.js} +70 -70
  26. package/app/assets/{Djxg54qH.js → CCBiFHWk.js} +1 -1
  27. package/app/assets/{Bbx7_Uyd.js → CCHDqJU3.js} +1 -1
  28. package/app/assets/{CaU3pCK6.js → CHn2dkeR.js} +1 -1
  29. package/app/assets/{84VwJAQi.js → CMFMZu0I.js} +1 -1
  30. package/app/assets/{DzdX4vRD.js → CSE_C1ca.js} +1 -1
  31. package/app/assets/{B9dhM8vw.js → CSjIZAje.js} +1 -1
  32. package/app/assets/{CHx7zgT8.js → CYqQEBj7.js} +1 -1
  33. package/app/assets/{BRZhVXRC.js → Ci1xBOLy.js} +1 -1
  34. package/app/assets/{BTaXXwBP.js → ClHvsi-E.js} +1 -1
  35. package/app/assets/{CTnwm-29.js → CtvJotUV.js} +1 -1
  36. package/app/assets/{D3lUezEb.js → Cv7B7xE1.js} +1 -1
  37. package/app/assets/{DNHPk-9r.js → Cw4TnfXm.js} +1 -1
  38. package/app/assets/{C6712dxU.js → D2dO-cBr.js} +1 -1
  39. package/app/assets/{BMFLhX-x.js → D4aakMZ1.js} +1 -1
  40. package/app/assets/{C1gqjEN3.js → D6SRSRpo.js} +1 -1
  41. package/app/assets/{BSziALTN.js → DBwwgHNb.js} +1 -1
  42. package/app/assets/{W7D4Svcn.js → DMmbl7oU.js} +1 -1
  43. package/app/assets/{BMBWoD5w.js → DP7G83e7.js} +1 -1
  44. package/app/assets/{aIFwnVFr.js → DPKD37gk.js} +1 -1
  45. package/app/assets/{DTkqO0Em.js → DdGvqbC0.js} +1 -1
  46. package/app/assets/{kXDKfUfE.js → DjsycSVl.js} +1 -1
  47. package/app/assets/{D1kyupCL.js → Dl3kZgxg.js} +1 -1
  48. package/app/assets/{BEH9Jqkv.js → DmDLn1hv.js} +1 -1
  49. package/app/assets/{BnJGrP6V.js → DpPKm22O.js} +2 -2
  50. package/app/assets/{BrVnzO7b.js → DpcElnaI.js} +1 -1
  51. package/app/assets/{B7zF7RU4.js → DtUkSj2L.js} +1 -1
  52. package/app/assets/{ByKF67UY.js → DyPVTkGX.js} +1 -1
  53. package/app/assets/{BbOETtQZ.js → Ec3vNInq.js} +1 -1
  54. package/app/assets/{BQ1Rcyw6.js → TqO-pPrr.js} +1 -1
  55. package/app/assets/{DpEN2jyA.js → Uf0CXpNG.js} +1 -1
  56. package/app/assets/{BPmMKRmE.js → X0frSBI-.js} +1 -1
  57. package/app/assets/{DCHRj2vY.js → Xya13jwA.js} +1 -1
  58. package/app/assets/{CoZCOAph.js → _lYVFvcB.js} +1 -1
  59. package/app/assets/{CFUkTo-F.js → aBt7vbXN.js} +1 -1
  60. package/app/assets/{CRnmOOqq.js → baQnXYR8.js} +1 -1
  61. package/app/assets/{C77ZEZfM.js → cFpo8ItN.js} +1 -1
  62. package/app/assets/{DPyLA6Dl.js → mA16m5gB.js} +1 -1
  63. package/app/assets/{BGvsBpIS.js → mHq6YiMc.js} +1 -1
  64. package/app/assets/{D9QeXBOk.js → rSe5GrVH.js} +1 -1
  65. package/app/assets/{BPPUDpI0.js → uCGINy9d.js} +1 -1
  66. package/app/index.html +12 -12
  67. package/package.json +1 -1
  68. package/app/assets/9gOj-Ty3.js +0 -1
  69. package/app/assets/w46wk7KI.css +0 -2
@@ -1 +1 @@
1
- import{r as e}from"./CYz610vE.js";import{t}from"./CiL8zoYm.js";import{r as n,t as r}from"./BDtsGuIR.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./DzRyVlxz.js";import{a as f,i as p,n as m,r as h,t as g}from"./G06qjCej.js";import{n as _}from"./DU-Eln5x.js";import{n as v}from"./D8_hwGjG.js";import{t as y}from"./CrhJJH3f.js";var b=a();function x(){let a=v(e=>e.activeDialog),x=v(e=>e.closeDialog),S=_(),{t:C}=i();return(0,b.jsx)(d,{open:a===`general-settings`,onOpenChange:e=>{e||x()},children:(0,b.jsxs)(c,{className:`sm:max-w-[560px]`,children:[(0,b.jsxs)(o,{children:[(0,b.jsx)(l,{children:C(`settings.general.title`)}),(0,b.jsx)(u,{children:C(`settings.general.description`)})]}),(0,b.jsxs)(`div`,{className:`grid gap-2`,children:[(0,b.jsx)(y,{id:`s-history`,checked:S.persistQueryHistory,onChange:e=>S.setPersistQueryHistory(e),label:C(`settings.persistHistory`),hint:C(`settings.persistHistoryHint`)}),(0,b.jsxs)(`div`,{className:`grid grid-cols-[1fr_200px] items-center gap-3 rounded-md border p-3`,children:[(0,b.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,b.jsx)(`span`,{className:`text-sm font-medium`,children:C(`settings.language`)}),(0,b.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:C(`settings.languageHint`)})]}),(0,b.jsxs)(g,{value:S.locale,onValueChange:e=>S.setLocale(e),children:[(0,b.jsx)(p,{children:(0,b.jsx)(f,{})}),(0,b.jsxs)(m,{children:[(0,b.jsx)(h,{value:`auto`,children:C(`language.auto`,{name:C(`language.${n()}`)})}),r.map(e=>(0,b.jsx)(h,{value:e,children:C(`language.${e}`)},e))]})]})]}),(0,b.jsx)(y,{id:`s-analytics`,checked:S.analyticsEnabled,onChange:S.setAnalyticsEnabled,label:C(`settings.analytics`),hint:e()?C(`settings.analyticsHint`):C(`settings.analyticsUnavailableHint`)})]}),(0,b.jsx)(s,{children:(0,b.jsx)(t,{onClick:x,children:C(`settings.done`)})})]})})}export{x as GeneralSettingsDialog};
1
+ import{r as e}from"./CYz610vE.js";import{t}from"./CiL8zoYm.js";import{r as n,t as r}from"./C9jzAIEJ.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./DzRyVlxz.js";import{a as f,i as p,n as m,r as h,t as g}from"./B3qo2BmL.js";import{n as _}from"./DU-Eln5x.js";import{n as v}from"./D8_hwGjG.js";import{t as y}from"./BNB2k8On.js";var b=a();function x(){let a=v(e=>e.activeDialog),x=v(e=>e.closeDialog),S=_(),{t:C}=i();return(0,b.jsx)(d,{open:a===`general-settings`,onOpenChange:e=>{e||x()},children:(0,b.jsxs)(c,{className:`sm:max-w-[560px]`,children:[(0,b.jsxs)(o,{children:[(0,b.jsx)(l,{children:C(`settings.general.title`)}),(0,b.jsx)(u,{children:C(`settings.general.description`)})]}),(0,b.jsxs)(`div`,{className:`grid gap-2`,children:[(0,b.jsx)(y,{id:`s-history`,checked:S.persistQueryHistory,onChange:e=>S.setPersistQueryHistory(e),label:C(`settings.persistHistory`),hint:C(`settings.persistHistoryHint`)}),(0,b.jsxs)(`div`,{className:`grid grid-cols-[1fr_200px] items-center gap-3 rounded-md border p-3`,children:[(0,b.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,b.jsx)(`span`,{className:`text-sm font-medium`,children:C(`settings.language`)}),(0,b.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:C(`settings.languageHint`)})]}),(0,b.jsxs)(g,{value:S.locale,onValueChange:e=>S.setLocale(e),children:[(0,b.jsx)(p,{children:(0,b.jsx)(f,{})}),(0,b.jsxs)(m,{children:[(0,b.jsx)(h,{value:`auto`,children:C(`language.auto`,{name:C(`language.${n()}`)})}),r.map(e=>(0,b.jsx)(h,{value:e,children:C(`language.${e}`)},e))]})]})]}),(0,b.jsx)(y,{id:`s-analytics`,checked:S.analyticsEnabled,onChange:S.setAnalyticsEnabled,label:C(`settings.analytics`),hint:e()?C(`settings.analyticsHint`):C(`settings.analyticsUnavailableHint`)})]}),(0,b.jsx)(s,{children:(0,b.jsx)(t,{onClick:x,children:C(`settings.done`)})})]})})}export{x as GeneralSettingsDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{a as r}from"./BDtsGuIR.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,t as u}from"./DzRyVlxz.js";import{t as d}from"./S7HbowYz.js";import{n as f}from"./D8_hwGjG.js";import{l as p}from"./BkXrfAoR.js";import{t as m}from"./BRZhVXRC.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"./CExE8dKz.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
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{a as r}from"./C9jzAIEJ.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,t as u}from"./DzRyVlxz.js";import{t as d}from"./CAd2f6EE.js";import{n as f}from"./D8_hwGjG.js";import{l as p}from"./BghfQrAj.js";import{t as m}from"./Ci1xBOLy.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"./B_zu4Zim.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 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{o as t,p as n}from"./CYz610vE.js";import{t as r}from"./CiL8zoYm.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,t as u}from"./DzRyVlxz.js";import{a as d,i as f,n as p,r as m,t as h}from"./G06qjCej.js";import{t as g}from"./S7HbowYz.js";import{n as _,t as ee}from"./D8_hwGjG.js";import{a as v}from"./BkXrfAoR.js";import{r as y}from"./BRZhVXRC.js";import{t as te}from"./9gOj-Ty3.js";import{G as b,_ as x,c as S,g as C,pt as ne,v as re}from"./CExE8dKz.js";var w=e(n(),1),T=a(),E=e=>e instanceof Error?e.message:String(e),D=e=>e.hostName||e.host||e.file||e.id,O=5e4;function k({id:e,label:t,side:n,onChange:r,connections:a,disabled:o}){let{t:s}=i(),[c,l]=(0,w.useState)([]),[u,g]=(0,w.useState)([]),_=a.find(e=>e.id===n.connectionId);return(0,w.useEffect)(()=>{if(!_?.serverConnectionId)return;let e=!1;return(async()=>{try{let t=await y(_.id).introspect.listDatabases(v(_.serverConnectionId));if(e)return;l(t),t.includes(n.database)||r({connectionId:_.id,database:t[0]??``,table:``})}catch{e||l([])}})(),()=>{e=!0}},[_?.id,_?.serverConnectionId]),(0,w.useEffect)(()=>{if(!_?.serverConnectionId||!n.database)return;let e=!1;return(async()=>{try{let t=await y(_.id).introspect.listTables(v(_.serverConnectionId),n.database);if(e)return;let i=t.map(e=>e.name);g(i),n.table&&!i.includes(n.table)&&r({...n,table:``})}catch{e||g([])}})(),()=>{e=!0}},[_?.id,_?.serverConnectionId,n.database]),(0,T.jsxs)(`div`,{className:`space-y-2 rounded-md border p-3`,children:[(0,T.jsx)(S,{className:`font-medium`,children:t}),(0,T.jsxs)(h,{value:n.connectionId,onValueChange:e=>r({connectionId:e,database:``,table:``}),disabled:o,children:[(0,T.jsx)(f,{id:`${e}-conn`,className:`w-full`,children:(0,T.jsx)(d,{placeholder:s(`database.diff.pickConnection`)})}),(0,T.jsx)(p,{children:a.map(e=>(0,T.jsx)(m,{value:e.id,children:D(e)},e.id))})]}),(0,T.jsxs)(h,{value:n.database,onValueChange:e=>r({...n,database:e,table:``}),disabled:o||c.length===0,children:[(0,T.jsx)(f,{id:`${e}-db`,className:`w-full`,children:(0,T.jsx)(d,{placeholder:s(`database.diff.pickDatabase`)})}),(0,T.jsx)(p,{children:c.map(e=>(0,T.jsx)(m,{value:e,children:e},e))})]}),(0,T.jsxs)(h,{value:n.table,onValueChange:e=>r({...n,table:e}),disabled:o||u.length===0,children:[(0,T.jsx)(f,{id:`${e}-table`,className:`w-full`,children:(0,T.jsx)(d,{placeholder:s(`database.dataDiff.pickTable`)})}),(0,T.jsx)(p,{children:u.map(e=>(0,T.jsx)(m,{value:e,children:e},e))})]})]})}async function A(e,t){let n=await b({connectionId:e.connectionId,database:e.database,table:e.table,limit:O,onProgress:t}),r=[];for await(let e of n.pages)r.push(...e);return{rows:r,columns:n.fields.map(e=>e.name),capped:r.length>=O}}function j({diff:e,row:t,other:n,changed:r}){let{t:a}=i(),o=[...e.keyColumns,...e.compareColumns];return(0,T.jsxs)(`table`,{className:`w-full text-xs font-mono`,children:[(0,T.jsx)(`thead`,{className:`text-muted-foreground`,children:(0,T.jsxs)(`tr`,{children:[(0,T.jsx)(`th`,{className:`text-left font-normal pr-2`,children:a(`database.diff.column`)}),(0,T.jsx)(`th`,{className:`text-left font-normal pr-2`,children:a(`database.diff.source`)}),(0,T.jsx)(`th`,{className:`text-left font-normal`,children:a(`database.diff.target`)})]})}),(0,T.jsx)(`tbody`,{children:o.map(e=>(0,T.jsxs)(`tr`,{className:r?.includes(e)?`text-amber-600 dark:text-amber-400`:``,children:[(0,T.jsx)(`td`,{className:`pr-2 align-top whitespace-nowrap`,children:e}),(0,T.jsx)(`td`,{className:`pr-2 align-top break-all`,children:x(t[e])}),(0,T.jsx)(`td`,{className:`align-top break-all`,children:n?x(n[e]):`—`})]},e))})]})}function M(){let{t:e}=i(),n=_(e=>e.activeDialog),a=_(e=>e.closeDialog),d=ee(`data-diff`),f=g(e=>e.activeConnections),p=(0,w.useMemo)(()=>f.filter(e=>e.serverConnectionId),[f]),m=g(e=>e.activeConnectionId),h=n===`data-diff`,[b,S]=(0,w.useState)(()=>d&&p.some(e=>e.id===d.connectionId)?{connectionId:d.connectionId,database:d.database,table:d.table}:{connectionId:m&&p.some(e=>e.id===m)?m:p[0]?.id??``,database:``,table:``}),[D,M]=(0,w.useState)(()=>({connectionId:p.find(e=>e.id!==b.connectionId)?.id??b.connectionId,database:``,table:``})),[N,ie]=(0,w.useState)([]),[P,F]=(0,w.useState)(null),[I,L]=(0,w.useState)(!1),[R,z]=(0,w.useState)(`changed`),[B,V]=(0,w.useState)(0),[H,ae]=(0,w.useState)(!1),[U,W]=(0,w.useState)(!1),[G,K]=(0,w.useState)({source:null,target:null}),[q,J]=(0,w.useState)(null),oe=e=>M(e.database&&!e.table&&b.table?{...e,table:b.table}:e),Y=b.connectionId===D.connectionId&&b.database===D.database&&b.table===D.table,se=!!b.table&&!!D.table&&!Y,X=D.connectionId?y(D.connectionId):null;async function ce(){W(!0),J(null),F(null);try{let n=g.getState().activeConnections.find(e=>e.id===b.connectionId);if(!n?.serverConnectionId)throw Error(e(`services.query.notConnected`));let r=await y(b.connectionId).introspect.getPrimaryKeys(v(n.serverConnectionId),b.database,b.table);if(r.length===0)throw Error(e(`database.dataDiff.noPrimaryKey`,{table:b.table}));K({source:{loaded:0,total:null},target:{loaded:0,total:null}});let[i,a]=await Promise.all([A(b,e=>K(t=>({...t,source:e}))),A(D,e=>K(t=>({...t,target:e})))]);if(r.some(e=>!a.columns.includes(e)))throw Error(e(`database.dataDiff.keyMissingInTarget`,{columns:r.join(`, `)}));let o=re(i.rows,a.rows,r,i.columns,a.columns);ie(r),L(i.capped||a.capped),F(o),z(o.changed.length>0?`changed`:o.added.length>0?`added`:`removed`),V(0),te(`compare_data`),t(`data_diff`,{source_dbms:y(b.connectionId).id,target_dbms:X?.id??`unknown`,added:o.added.length,changed:o.changed.length,removed:o.removed.length})}catch(e){J(E(e))}finally{W(!1),K({source:null,target:null})}}let Z=e=>e?e.total===null?e.loaded.toLocaleString():`${e.loaded.toLocaleString()} / ${e.total.toLocaleString()}`:``,Q=(0,w.useMemo)(()=>P&&X?C(P,X,{database:D.database,table:D.table},{includeDeletes:H}):``,[P,X,D.database,D.table,H]);function le(){Q&&(ne(D.connectionId,Q,D.database,e(`database.dataDiff.tabTitle`,{table:D.table})),a())}let $=P?R===`added`?P.added:R===`removed`?P.removed:P.changed.map(e=>e.source):[],ue=!!P&&P.added.length+P.changed.length+P.removed.length>0,de=e=>N.map(t=>x(e[t])).join(`, `);return(0,T.jsx)(u,{open:h,onOpenChange:e=>{e||a()},children:(0,T.jsxs)(c,{className:`sm:max-w-[900px]`,children:[(0,T.jsx)(o,{children:(0,T.jsx)(l,{children:e(`database.dataDiff.title`)})}),(0,T.jsxs)(`div`,{className:`space-y-3`,children:[(0,T.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,T.jsx)(k,{id:`ddiff-source`,label:e(`database.diff.source`),side:b,onChange:S,connections:p,disabled:U}),(0,T.jsx)(k,{id:`ddiff-target`,label:e(`database.diff.target`),side:D,onChange:oe,connections:p,disabled:U})]}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.dataDiff.hint`,{cap:O.toLocaleString()})}),Y&&b.table&&(0,T.jsx)(`p`,{className:`text-xs text-destructive`,children:e(`database.dataDiff.sameSide`)}),q&&(0,T.jsx)(`p`,{className:`text-sm text-destructive whitespace-pre-wrap`,children:q}),U&&(G.source||G.target)&&(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.dataDiff.loading`,{source:Z(G.source),target:Z(G.target)})}),P&&(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-xs`,children:[(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:e(`database.dataDiff.summary`,{key:N.join(`, `),added:P.added.length,changed:P.changed.length,removed:P.removed.length,identical:P.identical})}),I&&(0,T.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400`,children:e(`database.dataDiff.capped`,{cap:O.toLocaleString()})}),(P.sourceOnlyColumns.length>0||P.targetOnlyColumns.length>0)&&(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:e(`database.dataDiff.ignoredColumns`,{columns:[...P.sourceOnlyColumns,...P.targetOnlyColumns].join(`, `)})})]}),(0,T.jsx)(`div`,{className:`flex gap-1 text-xs`,children:[`added`,`changed`,`removed`].map(t=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>{z(t),V(0)},className:`rounded border px-2 py-0.5 ${R===t?`bg-accent`:``}`,children:e(`database.dataDiff.${t}`,{count:t===`added`?P.added.length:t===`removed`?P.removed.length:P.changed.length})},t))}),(0,T.jsxs)(`div`,{className:`grid grid-cols-[240px_1fr] gap-3 h-[280px]`,children:[(0,T.jsxs)(`ul`,{className:`overflow-auto rounded-md border text-sm font-mono`,children:[$.slice(0,2e3).map((e,t)=>(0,T.jsx)(`li`,{className:`px-2 py-1 cursor-pointer ${B===t?`bg-accent`:``}`,onClick:()=>V(t),children:de(e)},t)),$.length===0&&(0,T.jsx)(`li`,{className:`px-2 py-1 text-muted-foreground`,children:e(`database.dataDiff.none`)}),$.length>2e3&&(0,T.jsx)(`li`,{className:`px-2 py-1 text-muted-foreground`,children:e(`database.dataDiff.more`,{count:$.length-2e3})})]}),(0,T.jsx)(`div`,{className:`overflow-auto rounded-md border p-2`,children:$[B]?R===`changed`?(0,T.jsx)(j,{diff:P,row:P.changed[B].source,other:P.changed[B].target,changed:P.changed[B].columns}):R===`removed`?(0,T.jsx)(j,{diff:P,row:{},other:$[B]}):(0,T.jsx)(j,{diff:P,row:$[B]}):(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.diff.selectTable`)})})]}),(0,T.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs cursor-pointer`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:H,onChange:e=>ae(e.target.checked)}),(0,T.jsx)(`span`,{className:H?`text-destructive`:``,children:e(`database.dataDiff.includeDeletes`)})]})]})]}),(0,T.jsxs)(s,{children:[(0,T.jsx)(r,{variant:`outline`,onClick:a,children:e(`database.diff.close`)}),(0,T.jsx)(r,{variant:`secondary`,onClick:()=>{ce()},disabled:!se||U,children:e(U?`database.diff.comparing`:`database.diff.compare`)}),(0,T.jsx)(r,{onClick:le,disabled:!ue,children:e(`database.diff.openScript`)})]})]})})}export{M as DataDiffDialog};
1
+ import{r as e}from"./hePW80VL.js";import{o as t,p as n}from"./CYz610vE.js";import{t as r}from"./CiL8zoYm.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,t as u}from"./DzRyVlxz.js";import{a as d,i as f,n as p,r as m,t as h}from"./B3qo2BmL.js";import{t as g}from"./CAd2f6EE.js";import{n as _,t as ee}from"./D8_hwGjG.js";import{a as v}from"./BghfQrAj.js";import{r as y}from"./Ci1xBOLy.js";import{t as te}from"./BEY3Hwp0.js";import{G as b,_ as x,c as S,g as C,pt as ne,v as re}from"./B_zu4Zim.js";var w=e(n(),1),T=a(),E=e=>e instanceof Error?e.message:String(e),D=e=>e.hostName||e.host||e.file||e.id,O=5e4;function k({id:e,label:t,side:n,onChange:r,connections:a,disabled:o}){let{t:s}=i(),[c,l]=(0,w.useState)([]),[u,g]=(0,w.useState)([]),_=a.find(e=>e.id===n.connectionId);return(0,w.useEffect)(()=>{if(!_?.serverConnectionId)return;let e=!1;return(async()=>{try{let t=await y(_.id).introspect.listDatabases(v(_.serverConnectionId));if(e)return;l(t),t.includes(n.database)||r({connectionId:_.id,database:t[0]??``,table:``})}catch{e||l([])}})(),()=>{e=!0}},[_?.id,_?.serverConnectionId]),(0,w.useEffect)(()=>{if(!_?.serverConnectionId||!n.database)return;let e=!1;return(async()=>{try{let t=await y(_.id).introspect.listTables(v(_.serverConnectionId),n.database);if(e)return;let i=t.map(e=>e.name);g(i),n.table&&!i.includes(n.table)&&r({...n,table:``})}catch{e||g([])}})(),()=>{e=!0}},[_?.id,_?.serverConnectionId,n.database]),(0,T.jsxs)(`div`,{className:`space-y-2 rounded-md border p-3`,children:[(0,T.jsx)(S,{className:`font-medium`,children:t}),(0,T.jsxs)(h,{value:n.connectionId,onValueChange:e=>r({connectionId:e,database:``,table:``}),disabled:o,children:[(0,T.jsx)(f,{id:`${e}-conn`,className:`w-full`,children:(0,T.jsx)(d,{placeholder:s(`database.diff.pickConnection`)})}),(0,T.jsx)(p,{children:a.map(e=>(0,T.jsx)(m,{value:e.id,children:D(e)},e.id))})]}),(0,T.jsxs)(h,{value:n.database,onValueChange:e=>r({...n,database:e,table:``}),disabled:o||c.length===0,children:[(0,T.jsx)(f,{id:`${e}-db`,className:`w-full`,children:(0,T.jsx)(d,{placeholder:s(`database.diff.pickDatabase`)})}),(0,T.jsx)(p,{children:c.map(e=>(0,T.jsx)(m,{value:e,children:e},e))})]}),(0,T.jsxs)(h,{value:n.table,onValueChange:e=>r({...n,table:e}),disabled:o||u.length===0,children:[(0,T.jsx)(f,{id:`${e}-table`,className:`w-full`,children:(0,T.jsx)(d,{placeholder:s(`database.dataDiff.pickTable`)})}),(0,T.jsx)(p,{children:u.map(e=>(0,T.jsx)(m,{value:e,children:e},e))})]})]})}async function A(e,t){let n=await b({connectionId:e.connectionId,database:e.database,table:e.table,limit:O,onProgress:t}),r=[];for await(let e of n.pages)r.push(...e);return{rows:r,columns:n.fields.map(e=>e.name),capped:r.length>=O}}function j({diff:e,row:t,other:n,changed:r}){let{t:a}=i(),o=[...e.keyColumns,...e.compareColumns];return(0,T.jsxs)(`table`,{className:`w-full text-xs font-mono`,children:[(0,T.jsx)(`thead`,{className:`text-muted-foreground`,children:(0,T.jsxs)(`tr`,{children:[(0,T.jsx)(`th`,{className:`text-left font-normal pr-2`,children:a(`database.diff.column`)}),(0,T.jsx)(`th`,{className:`text-left font-normal pr-2`,children:a(`database.diff.source`)}),(0,T.jsx)(`th`,{className:`text-left font-normal`,children:a(`database.diff.target`)})]})}),(0,T.jsx)(`tbody`,{children:o.map(e=>(0,T.jsxs)(`tr`,{className:r?.includes(e)?`text-amber-600 dark:text-amber-400`:``,children:[(0,T.jsx)(`td`,{className:`pr-2 align-top whitespace-nowrap`,children:e}),(0,T.jsx)(`td`,{className:`pr-2 align-top break-all`,children:x(t[e])}),(0,T.jsx)(`td`,{className:`align-top break-all`,children:n?x(n[e]):`—`})]},e))})]})}function M(){let{t:e}=i(),n=_(e=>e.activeDialog),a=_(e=>e.closeDialog),d=ee(`data-diff`),f=g(e=>e.activeConnections),p=(0,w.useMemo)(()=>f.filter(e=>e.serverConnectionId),[f]),m=g(e=>e.activeConnectionId),h=n===`data-diff`,[b,S]=(0,w.useState)(()=>d&&p.some(e=>e.id===d.connectionId)?{connectionId:d.connectionId,database:d.database,table:d.table}:{connectionId:m&&p.some(e=>e.id===m)?m:p[0]?.id??``,database:``,table:``}),[D,M]=(0,w.useState)(()=>({connectionId:p.find(e=>e.id!==b.connectionId)?.id??b.connectionId,database:``,table:``})),[N,ie]=(0,w.useState)([]),[P,F]=(0,w.useState)(null),[I,L]=(0,w.useState)(!1),[R,z]=(0,w.useState)(`changed`),[B,V]=(0,w.useState)(0),[H,ae]=(0,w.useState)(!1),[U,W]=(0,w.useState)(!1),[G,K]=(0,w.useState)({source:null,target:null}),[q,J]=(0,w.useState)(null),oe=e=>M(e.database&&!e.table&&b.table?{...e,table:b.table}:e),Y=b.connectionId===D.connectionId&&b.database===D.database&&b.table===D.table,se=!!b.table&&!!D.table&&!Y,X=D.connectionId?y(D.connectionId):null;async function ce(){W(!0),J(null),F(null);try{let n=g.getState().activeConnections.find(e=>e.id===b.connectionId);if(!n?.serverConnectionId)throw Error(e(`services.query.notConnected`));let r=await y(b.connectionId).introspect.getPrimaryKeys(v(n.serverConnectionId),b.database,b.table);if(r.length===0)throw Error(e(`database.dataDiff.noPrimaryKey`,{table:b.table}));K({source:{loaded:0,total:null},target:{loaded:0,total:null}});let[i,a]=await Promise.all([A(b,e=>K(t=>({...t,source:e}))),A(D,e=>K(t=>({...t,target:e})))]);if(r.some(e=>!a.columns.includes(e)))throw Error(e(`database.dataDiff.keyMissingInTarget`,{columns:r.join(`, `)}));let o=re(i.rows,a.rows,r,i.columns,a.columns);ie(r),L(i.capped||a.capped),F(o),z(o.changed.length>0?`changed`:o.added.length>0?`added`:`removed`),V(0),te(`compare_data`),t(`data_diff`,{source_dbms:y(b.connectionId).id,target_dbms:X?.id??`unknown`,added:o.added.length,changed:o.changed.length,removed:o.removed.length})}catch(e){J(E(e))}finally{W(!1),K({source:null,target:null})}}let Z=e=>e?e.total===null?e.loaded.toLocaleString():`${e.loaded.toLocaleString()} / ${e.total.toLocaleString()}`:``,Q=(0,w.useMemo)(()=>P&&X?C(P,X,{database:D.database,table:D.table},{includeDeletes:H}):``,[P,X,D.database,D.table,H]);function le(){Q&&(ne(D.connectionId,Q,D.database,e(`database.dataDiff.tabTitle`,{table:D.table})),a())}let $=P?R===`added`?P.added:R===`removed`?P.removed:P.changed.map(e=>e.source):[],ue=!!P&&P.added.length+P.changed.length+P.removed.length>0,de=e=>N.map(t=>x(e[t])).join(`, `);return(0,T.jsx)(u,{open:h,onOpenChange:e=>{e||a()},children:(0,T.jsxs)(c,{className:`sm:max-w-[900px]`,children:[(0,T.jsx)(o,{children:(0,T.jsx)(l,{children:e(`database.dataDiff.title`)})}),(0,T.jsxs)(`div`,{className:`space-y-3`,children:[(0,T.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,T.jsx)(k,{id:`ddiff-source`,label:e(`database.diff.source`),side:b,onChange:S,connections:p,disabled:U}),(0,T.jsx)(k,{id:`ddiff-target`,label:e(`database.diff.target`),side:D,onChange:oe,connections:p,disabled:U})]}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.dataDiff.hint`,{cap:O.toLocaleString()})}),Y&&b.table&&(0,T.jsx)(`p`,{className:`text-xs text-destructive`,children:e(`database.dataDiff.sameSide`)}),q&&(0,T.jsx)(`p`,{className:`text-sm text-destructive whitespace-pre-wrap`,children:q}),U&&(G.source||G.target)&&(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.dataDiff.loading`,{source:Z(G.source),target:Z(G.target)})}),P&&(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-xs`,children:[(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:e(`database.dataDiff.summary`,{key:N.join(`, `),added:P.added.length,changed:P.changed.length,removed:P.removed.length,identical:P.identical})}),I&&(0,T.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400`,children:e(`database.dataDiff.capped`,{cap:O.toLocaleString()})}),(P.sourceOnlyColumns.length>0||P.targetOnlyColumns.length>0)&&(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:e(`database.dataDiff.ignoredColumns`,{columns:[...P.sourceOnlyColumns,...P.targetOnlyColumns].join(`, `)})})]}),(0,T.jsx)(`div`,{className:`flex gap-1 text-xs`,children:[`added`,`changed`,`removed`].map(t=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>{z(t),V(0)},className:`rounded border px-2 py-0.5 ${R===t?`bg-accent`:``}`,children:e(`database.dataDiff.${t}`,{count:t===`added`?P.added.length:t===`removed`?P.removed.length:P.changed.length})},t))}),(0,T.jsxs)(`div`,{className:`grid grid-cols-[240px_1fr] gap-3 h-[280px]`,children:[(0,T.jsxs)(`ul`,{className:`overflow-auto rounded-md border text-sm font-mono`,children:[$.slice(0,2e3).map((e,t)=>(0,T.jsx)(`li`,{className:`px-2 py-1 cursor-pointer ${B===t?`bg-accent`:``}`,onClick:()=>V(t),children:de(e)},t)),$.length===0&&(0,T.jsx)(`li`,{className:`px-2 py-1 text-muted-foreground`,children:e(`database.dataDiff.none`)}),$.length>2e3&&(0,T.jsx)(`li`,{className:`px-2 py-1 text-muted-foreground`,children:e(`database.dataDiff.more`,{count:$.length-2e3})})]}),(0,T.jsx)(`div`,{className:`overflow-auto rounded-md border p-2`,children:$[B]?R===`changed`?(0,T.jsx)(j,{diff:P,row:P.changed[B].source,other:P.changed[B].target,changed:P.changed[B].columns}):R===`removed`?(0,T.jsx)(j,{diff:P,row:{},other:$[B]}):(0,T.jsx)(j,{diff:P,row:$[B]}):(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.diff.selectTable`)})})]}),(0,T.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs cursor-pointer`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:H,onChange:e=>ae(e.target.checked)}),(0,T.jsx)(`span`,{className:H?`text-destructive`:``,children:e(`database.dataDiff.includeDeletes`)})]})]})]}),(0,T.jsxs)(s,{children:[(0,T.jsx)(r,{variant:`outline`,onClick:a,children:e(`database.diff.close`)}),(0,T.jsx)(r,{variant:`secondary`,onClick:()=>{ce()},disabled:!se||U,children:e(U?`database.diff.comparing`:`database.diff.compare`)}),(0,T.jsx)(r,{onClick:le,disabled:!ue,children:e(`database.diff.openScript`)})]})]})})}export{M as DataDiffDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./S7HbowYz.js";import{a as r,c as i}from"./BkXrfAoR.js";import{a}from"./BnJGrP6V.js";var o=e(t(),1);function s(e,t,n){return c(e,t,n.database)}function c(e,t,s){let c=n(t=>t.activeConnections.find(t=>t.id===e)?.serverConnectionId??null),l=n(t=>t.activeConnections.find(t=>t.id===e)?.readOnly??!1),u=(0,o.useCallback)(async(e,t)=>{if(!c)throw Error(`Not connected`);return(await r(c)(e,(t??s)||void 0)).reply},[c,s]),d=(0,o.useCallback)(async(e,t)=>{if(!c)throw Error(`Not connected`);return(await i(c,e,(t??s)||void 0)).map(e=>e.success?e.reply:Error(e.message))},[c,s]),f=(0,o.useCallback)(async e=>{try{return await u(e)}catch{return null}},[u]),p=(0,o.useCallback)(async(n,r={})=>{let i=await a(e,n,{database:r.database??s,tabId:t,skipDestructiveConfirm:r.confirmed,skipHistory:r.skipHistory});return i.rows[0]?Object.values(i.rows[0])[0]:null},[e,t,s]);return(0,o.useMemo)(()=>({connected:c!==null,readOnly:l,read:u,tryRead:f,readBatch:d,write:p}),[c,l,u,f,d,p])}export{s as n,c as t};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CAd2f6EE.js";import{a as r,c as i}from"./BghfQrAj.js";import{a}from"./DpPKm22O.js";var o=e(t(),1);function s(e,t,n){return c(e,t,n.database)}function c(e,t,s){let c=n(t=>t.activeConnections.find(t=>t.id===e)?.serverConnectionId??null),l=n(t=>t.activeConnections.find(t=>t.id===e)?.readOnly??!1),u=(0,o.useCallback)(async(e,t)=>{if(!c)throw Error(`Not connected`);return(await r(c)(e,(t??s)||void 0)).reply},[c,s]),d=(0,o.useCallback)(async(e,t)=>{if(!c)throw Error(`Not connected`);return(await i(c,e,(t??s)||void 0)).map(e=>e.success?e.reply:Error(e.message))},[c,s]),f=(0,o.useCallback)(async e=>{try{return await u(e)}catch{return null}},[u]),p=(0,o.useCallback)(async(n,r={})=>{let i=await a(e,n,{database:r.database??s,tabId:t,skipDestructiveConfirm:r.confirmed,skipHistory:r.skipHistory});return i.rows[0]?Object.values(i.rows[0])[0]:null},[e,t,s]);return(0,o.useMemo)(()=>({connected:c!==null,readOnly:l,read:u,tryRead:f,readBatch:d,write:p}),[c,l,u,f,d,p])}export{s as n,c as t};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{o as t,p as n}from"./CYz610vE.js";import{t as r}from"./CiL8zoYm.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,t as u}from"./DzRyVlxz.js";import{a as d,i as f,n as p,r as m,t as h}from"./G06qjCej.js";import{t as ee}from"./S7HbowYz.js";import{n as g,t as _}from"./D8_hwGjG.js";import{a as v}from"./BkXrfAoR.js";import{r as y}from"./BRZhVXRC.js";import{t as b}from"./9gOj-Ty3.js";import{$ as x,c as S,et as C,l as w}from"./CExE8dKz.js";var T=e(n(),1),E=a(),D=e=>e instanceof Error?e.message:String(e);function O(){let{t:e}=i(),n=g(e=>e.activeDialog),a=g(e=>e.closeDialog),O=_(`link-column`),k=n===`link-column`&&!!O,A=O?.connectionId??``,j=ee(e=>e.activeConnections),M=j.filter(e=>e.serverConnectionId),N=C(e=>e.links),P=C(e=>e.setLink),F=C(e=>e.removeLink),I=O?x(N,A,O.database,O.table).find(e=>e.column===O.column)??null:null,[L,R]=(0,T.useState)(I?.targetConnectionId??A),z=j.find(e=>e.id===L)?.serverConnectionId,[B,V]=(0,T.useState)([]),[H,U]=(0,T.useState)([]),[W,G]=(0,T.useState)([]),[K,q]=(0,T.useState)(I?.targetDatabase??O?.database??``),[J,Y]=(0,T.useState)(I?.targetTable??``),[X,Z]=(0,T.useState)(I?.targetColumn??``),[Q,$]=(0,T.useState)(null);if((0,T.useEffect)(()=>{if(!k||!z)return;let e=!1;return(async()=>{try{let t=await y(L).introspect.listDatabases(v(z));if(e)return;V(t),q(e=>t.includes(e)?e:t[0]??``)}catch(t){e||$(D(t))}})(),()=>{e=!0}},[k,z,L]),(0,T.useEffect)(()=>{if(!k||!z||!K)return;let e=!1;return(async()=>{try{let t=await y(L).introspect.listTables(v(z),K);if(e)return;U(t.map(e=>e.name))}catch(t){e||$(D(t))}})(),()=>{e=!0}},[k,z,L,K]),(0,T.useEffect)(()=>{if(!k||!z||!K||!J)return;let e=!1;return(async()=>{try{let t=await y(L).introspect.listColumns(v(z),K,J);if(e)return;G(t.map(e=>e.name)),Z(e=>t.some(t=>t.name===e)?e:t.find(e=>e.key===`PRI`)?.name??t[0]?.name??``)}catch(t){e||$(D(t))}})(),()=>{e=!0}},[k,z,L,K,J]),!O)return null;function te(){if(!O||!K||!J||!X)return;let e=L!==A;P(A,{database:O.database,table:O.table,column:O.column,...e?{targetConnectionId:L}:{},targetDatabase:K,targetTable:J,targetColumn:X}),b(`column_link`),t(`column_link_set`,{dbms:y(A).id,target_dbms:y(L).id,cross_database:K!==O.database,cross_connection:e}),a()}function ne(){O&&(F(A,O),a())}return(0,E.jsx)(u,{open:k,onOpenChange:e=>{e||a()},children:(0,E.jsxs)(c,{className:`sm:max-w-[460px]`,children:[(0,E.jsx)(o,{children:(0,E.jsx)(l,{children:e(`result.link.title`)})}),(0,E.jsxs)(`div`,{className:`space-y-4`,children:[(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{children:e(`result.link.source`)}),(0,E.jsx)(w,{value:`${O.database}.${O.table}.${O.column}`,disabled:!0})]}),(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`result.link.hint`)}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{htmlFor:`link-conn`,children:e(`result.link.targetConnection`)}),(0,E.jsxs)(h,{value:L,onValueChange:e=>{R(e),Y(``),U([]),G([])},children:[(0,E.jsx)(f,{id:`link-conn`,className:`w-full`,children:(0,E.jsx)(d,{})}),(0,E.jsx)(p,{children:M.map(e=>(0,E.jsx)(m,{value:e.id,children:e.hostName||e.host||e.file||e.id},e.id))})]})]}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{htmlFor:`link-db`,children:e(`result.link.targetDatabase`)}),(0,E.jsxs)(h,{value:K,onValueChange:e=>{q(e),Y(``),G([])},children:[(0,E.jsx)(f,{id:`link-db`,className:`w-full`,children:(0,E.jsx)(d,{})}),(0,E.jsx)(p,{children:B.map(e=>(0,E.jsx)(m,{value:e,children:e},e))})]})]}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{htmlFor:`link-table`,children:e(`result.link.targetTable`)}),(0,E.jsxs)(h,{value:J,onValueChange:Y,disabled:H.length===0,children:[(0,E.jsx)(f,{id:`link-table`,className:`w-full`,children:(0,E.jsx)(d,{placeholder:e(`result.link.pickTable`)})}),(0,E.jsx)(p,{children:H.map(e=>(0,E.jsx)(m,{value:e,children:e},e))})]})]}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{htmlFor:`link-column`,children:e(`result.link.targetColumn`)}),(0,E.jsxs)(h,{value:X,onValueChange:Z,disabled:W.length===0,children:[(0,E.jsx)(f,{id:`link-column`,className:`w-full`,children:(0,E.jsx)(d,{placeholder:e(`result.link.pickColumn`)})}),(0,E.jsx)(p,{children:W.map(e=>(0,E.jsx)(m,{value:e,children:e},e))})]})]}),Q&&(0,E.jsx)(`p`,{className:`text-xs text-destructive`,children:Q})]}),(0,E.jsxs)(s,{children:[I&&(0,E.jsx)(r,{variant:`destructive`,onClick:ne,className:`mr-auto`,children:e(`result.link.remove`)}),(0,E.jsx)(r,{variant:`outline`,onClick:a,children:e(`result.link.cancel`)}),(0,E.jsx)(r,{onClick:te,disabled:!K||!J||!X,children:e(`result.link.save`)})]})]})})}export{O as LinkColumnDialog};
1
+ import{r as e}from"./hePW80VL.js";import{o as t,p as n}from"./CYz610vE.js";import{t as r}from"./CiL8zoYm.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,t as u}from"./DzRyVlxz.js";import{a as d,i as f,n as p,r as m,t as h}from"./B3qo2BmL.js";import{t as ee}from"./CAd2f6EE.js";import{n as g,t as _}from"./D8_hwGjG.js";import{a as v}from"./BghfQrAj.js";import{r as y}from"./Ci1xBOLy.js";import{t as b}from"./BEY3Hwp0.js";import{$ as x,c as S,et as C,l as w}from"./B_zu4Zim.js";var T=e(n(),1),E=a(),D=e=>e instanceof Error?e.message:String(e);function O(){let{t:e}=i(),n=g(e=>e.activeDialog),a=g(e=>e.closeDialog),O=_(`link-column`),k=n===`link-column`&&!!O,A=O?.connectionId??``,j=ee(e=>e.activeConnections),M=j.filter(e=>e.serverConnectionId),N=C(e=>e.links),P=C(e=>e.setLink),F=C(e=>e.removeLink),I=O?x(N,A,O.database,O.table).find(e=>e.column===O.column)??null:null,[L,R]=(0,T.useState)(I?.targetConnectionId??A),z=j.find(e=>e.id===L)?.serverConnectionId,[B,V]=(0,T.useState)([]),[H,U]=(0,T.useState)([]),[W,G]=(0,T.useState)([]),[K,q]=(0,T.useState)(I?.targetDatabase??O?.database??``),[J,Y]=(0,T.useState)(I?.targetTable??``),[X,Z]=(0,T.useState)(I?.targetColumn??``),[Q,$]=(0,T.useState)(null);if((0,T.useEffect)(()=>{if(!k||!z)return;let e=!1;return(async()=>{try{let t=await y(L).introspect.listDatabases(v(z));if(e)return;V(t),q(e=>t.includes(e)?e:t[0]??``)}catch(t){e||$(D(t))}})(),()=>{e=!0}},[k,z,L]),(0,T.useEffect)(()=>{if(!k||!z||!K)return;let e=!1;return(async()=>{try{let t=await y(L).introspect.listTables(v(z),K);if(e)return;U(t.map(e=>e.name))}catch(t){e||$(D(t))}})(),()=>{e=!0}},[k,z,L,K]),(0,T.useEffect)(()=>{if(!k||!z||!K||!J)return;let e=!1;return(async()=>{try{let t=await y(L).introspect.listColumns(v(z),K,J);if(e)return;G(t.map(e=>e.name)),Z(e=>t.some(t=>t.name===e)?e:t.find(e=>e.key===`PRI`)?.name??t[0]?.name??``)}catch(t){e||$(D(t))}})(),()=>{e=!0}},[k,z,L,K,J]),!O)return null;function te(){if(!O||!K||!J||!X)return;let e=L!==A;P(A,{database:O.database,table:O.table,column:O.column,...e?{targetConnectionId:L}:{},targetDatabase:K,targetTable:J,targetColumn:X}),b(`column_link`),t(`column_link_set`,{dbms:y(A).id,target_dbms:y(L).id,cross_database:K!==O.database,cross_connection:e}),a()}function ne(){O&&(F(A,O),a())}return(0,E.jsx)(u,{open:k,onOpenChange:e=>{e||a()},children:(0,E.jsxs)(c,{className:`sm:max-w-[460px]`,children:[(0,E.jsx)(o,{children:(0,E.jsx)(l,{children:e(`result.link.title`)})}),(0,E.jsxs)(`div`,{className:`space-y-4`,children:[(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{children:e(`result.link.source`)}),(0,E.jsx)(w,{value:`${O.database}.${O.table}.${O.column}`,disabled:!0})]}),(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`result.link.hint`)}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{htmlFor:`link-conn`,children:e(`result.link.targetConnection`)}),(0,E.jsxs)(h,{value:L,onValueChange:e=>{R(e),Y(``),U([]),G([])},children:[(0,E.jsx)(f,{id:`link-conn`,className:`w-full`,children:(0,E.jsx)(d,{})}),(0,E.jsx)(p,{children:M.map(e=>(0,E.jsx)(m,{value:e.id,children:e.hostName||e.host||e.file||e.id},e.id))})]})]}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{htmlFor:`link-db`,children:e(`result.link.targetDatabase`)}),(0,E.jsxs)(h,{value:K,onValueChange:e=>{q(e),Y(``),G([])},children:[(0,E.jsx)(f,{id:`link-db`,className:`w-full`,children:(0,E.jsx)(d,{})}),(0,E.jsx)(p,{children:B.map(e=>(0,E.jsx)(m,{value:e,children:e},e))})]})]}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{htmlFor:`link-table`,children:e(`result.link.targetTable`)}),(0,E.jsxs)(h,{value:J,onValueChange:Y,disabled:H.length===0,children:[(0,E.jsx)(f,{id:`link-table`,className:`w-full`,children:(0,E.jsx)(d,{placeholder:e(`result.link.pickTable`)})}),(0,E.jsx)(p,{children:H.map(e=>(0,E.jsx)(m,{value:e,children:e},e))})]})]}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(S,{htmlFor:`link-column`,children:e(`result.link.targetColumn`)}),(0,E.jsxs)(h,{value:X,onValueChange:Z,disabled:W.length===0,children:[(0,E.jsx)(f,{id:`link-column`,className:`w-full`,children:(0,E.jsx)(d,{placeholder:e(`result.link.pickColumn`)})}),(0,E.jsx)(p,{children:W.map(e=>(0,E.jsx)(m,{value:e,children:e},e))})]})]}),Q&&(0,E.jsx)(`p`,{className:`text-xs text-destructive`,children:Q})]}),(0,E.jsxs)(s,{children:[I&&(0,E.jsx)(r,{variant:`destructive`,onClick:ne,className:`mr-auto`,children:e(`result.link.remove`)}),(0,E.jsx)(r,{variant:`outline`,onClick:a,children:e(`result.link.cancel`)}),(0,E.jsx)(r,{onClick:te,disabled:!K||!J||!X,children:e(`result.link.save`)})]})]})})}export{O as LinkColumnDialog};
@@ -1 +1 @@
1
- import{R as e}from"./S7HbowYz.js";function t(e,n){for(let r of e)n(r),r.children.length>0&&t(r.children,n)}function n(e,t){for(let r of e){if(r.id===t)return r;let e=n(r.children,t);if(e)return e}return null}function r(t){return(t.type===e.DATABASE||t.type===e.SCHEMA)&&!!t.metadata?.database}function i(e){let n=[];return t(e,e=>{r(e)&&n.push(e.metadata.database)}),n}function a(n,r){let i=[];return t(n,t=>{t.type===e.TABLE&&t.metadata?.database===r&&i.push(t.text)}),i}function o(e,t){return t?n(e,t)?.metadata?.database??null:null}function s(t,r){if(!r)return null;let i=n(t,r);return!i||i.type!==e.TABLE?null:{database:i.metadata?.database??``,table:i.text}}function c(e){return e.find(e=>e.metadata?.catalog&&!e.metadata.unreachable)?.metadata?.catalog}export{s as a,o as i,n,a as o,i as r,t as s,c as t};
1
+ import{R as e}from"./CAd2f6EE.js";function t(e,n){for(let r of e)n(r),r.children.length>0&&t(r.children,n)}function n(e,t){for(let r of e){if(r.id===t)return r;let e=n(r.children,t);if(e)return e}return null}function r(t){return(t.type===e.DATABASE||t.type===e.SCHEMA)&&!!t.metadata?.database}function i(e){let n=[];return t(e,e=>{r(e)&&n.push(e.metadata.database)}),n}function a(n,r){let i=[];return t(n,t=>{t.type===e.TABLE&&t.metadata?.database===r&&i.push(t.text)}),i}function o(e,t){return t?n(e,t)?.metadata?.database??null:null}function s(t,r){if(!r)return null;let i=n(t,r);return!i||i.type!==e.TABLE?null:{database:i.metadata?.database??``,table:i.text}}function c(e){return e.find(e=>e.metadata?.catalog&&!e.metadata.unreachable)?.metadata?.catalog}export{s as a,o as i,n,a as o,i as r,t as s,c as t};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{i as n,r}from"./Cu_sGzNJ.js";import{n as i}from"./D8_hwGjG.js";import{t as a}from"./84VwJAQi.js";import{i as o,t as s}from"./Udlj1Cgf.js";import{t as c}from"./BQ1Rcyw6.js";import{t as l}from"./_zaonxnw.js";var u=e(t(),1),d=r(),f=[`id`,`addr`,`name`,`user`,`db`,`age`,`idle`,`cmd`,`flags`];function p({connectionId:e,tabId:t}){let{t:r}=n(),p=a(e,t,``),[m,h]=(0,u.useState)(null),[g,_]=(0,u.useState)(null),[v,y]=(0,u.useState)(null),b=(0,u.useCallback)(async()=>{try{h(o(String(await p.read(`CLIENT LIST`))));let e=await p.tryRead(`CLIENT ID`);_(e===null?null:String(e)),y(null)}catch(e){y(l(e))}},[p]);(0,u.useEffect)(()=>{Promise.resolve().then(()=>b())},[b]);let x=async e=>{let t=`CLIENT KILL ID ${e.id}`;if(await i.getState().requestDestructiveConfirm({title:r(`tools.redis.killTitle`,{addr:e.addr}),description:r(`tools.redis.killDescription`),statements:[t],confirmLabel:r(`tools.redis.kill`)}))try{await p.write(t,{confirmed:!0}),await b()}catch(e){e instanceof Error&&e.name===`ExecutionCancelled`||y(l(e))}};return(0,d.jsx)(c,{title:r(`tools.redis.clients`),onRefresh:b,autoRefresh:!0,error:v,onDismissError:()=>y(null),children:m&&(0,d.jsxs)(`table`,{className:`w-full border-collapse text-xs`,children:[(0,d.jsx)(`thead`,{className:`sticky top-0 bg-muted text-left text-muted-foreground`,children:(0,d.jsxs)(`tr`,{children:[f.map(e=>(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:e},e)),(0,d.jsx)(`th`,{className:`w-20`})]})}),(0,d.jsx)(`tbody`,{children:m.map(e=>{let t=e.id===g;return(0,d.jsxs)(`tr`,{className:`border-b border-border/50 hover:bg-muted/40 ${t?`bg-primary/5`:``}`,children:[f.map(n=>(0,d.jsxs)(`td`,{className:`px-3 py-1 font-mono`,children:[n===`age`||n===`idle`?s(Number(e[n])):e[n]??``,n===`id`&&t&&(0,d.jsx)(`span`,{className:`ml-2 rounded bg-primary/15 px-1 text-[10px] text-primary`,children:r(`tools.redis.thisApp`)})]},n)),(0,d.jsx)(`td`,{className:`px-2 py-1 text-right`,children:!t&&!p.readOnly&&(0,d.jsx)(`button`,{type:`button`,onClick:()=>void x(e),className:`rounded border px-2 py-0.5 text-muted-foreground hover:border-destructive/40 hover:text-destructive`,children:r(`tools.redis.kill`)})})]},e.id)})})]})})}export{p as Clients};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{i as n,r}from"./Cu_sGzNJ.js";import{n as i}from"./D8_hwGjG.js";import{t as a}from"./CMFMZu0I.js";import{i as o,t as s}from"./Udlj1Cgf.js";import{t as c}from"./TqO-pPrr.js";import{t as l}from"./_zaonxnw.js";var u=e(t(),1),d=r(),f=[`id`,`addr`,`name`,`user`,`db`,`age`,`idle`,`cmd`,`flags`];function p({connectionId:e,tabId:t}){let{t:r}=n(),p=a(e,t,``),[m,h]=(0,u.useState)(null),[g,_]=(0,u.useState)(null),[v,y]=(0,u.useState)(null),b=(0,u.useCallback)(async()=>{try{h(o(String(await p.read(`CLIENT LIST`))));let e=await p.tryRead(`CLIENT ID`);_(e===null?null:String(e)),y(null)}catch(e){y(l(e))}},[p]);(0,u.useEffect)(()=>{Promise.resolve().then(()=>b())},[b]);let x=async e=>{let t=`CLIENT KILL ID ${e.id}`;if(await i.getState().requestDestructiveConfirm({title:r(`tools.redis.killTitle`,{addr:e.addr}),description:r(`tools.redis.killDescription`),statements:[t],confirmLabel:r(`tools.redis.kill`)}))try{await p.write(t,{confirmed:!0}),await b()}catch(e){e instanceof Error&&e.name===`ExecutionCancelled`||y(l(e))}};return(0,d.jsx)(c,{title:r(`tools.redis.clients`),onRefresh:b,autoRefresh:!0,error:v,onDismissError:()=>y(null),children:m&&(0,d.jsxs)(`table`,{className:`w-full border-collapse text-xs`,children:[(0,d.jsx)(`thead`,{className:`sticky top-0 bg-muted text-left text-muted-foreground`,children:(0,d.jsxs)(`tr`,{children:[f.map(e=>(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:e},e)),(0,d.jsx)(`th`,{className:`w-20`})]})}),(0,d.jsx)(`tbody`,{children:m.map(e=>{let t=e.id===g;return(0,d.jsxs)(`tr`,{className:`border-b border-border/50 hover:bg-muted/40 ${t?`bg-primary/5`:``}`,children:[f.map(n=>(0,d.jsxs)(`td`,{className:`px-3 py-1 font-mono`,children:[n===`age`||n===`idle`?s(Number(e[n])):e[n]??``,n===`id`&&t&&(0,d.jsx)(`span`,{className:`ml-2 rounded bg-primary/15 px-1 text-[10px] text-primary`,children:r(`tools.redis.thisApp`)})]},n)),(0,d.jsx)(`td`,{className:`px-2 py-1 text-right`,children:!t&&!p.readOnly&&(0,d.jsx)(`button`,{type:`button`,onClick:()=>void x(e),className:`rounded border px-2 py-0.5 text-muted-foreground hover:border-destructive/40 hover:text-destructive`,children:r(`tools.redis.kill`)})})]},e.id)})})]})})}export{p as Clients};
@@ -1 +1 @@
1
- import{r as e}from"./Nro86Y63.js";import{M as t,t as n}from"./S7HbowYz.js";function r(e){let r=n.getState().activeConnections.find(t=>t.id===e);return t(r)}function i(e){let r=n.getState().activeConnections.find(t=>t.serverConnectionId===e);return t(r)}function a(){return r(n.getState().activeConnectionId)}var o=class extends Error{constructor(e){super(`${e} does not support SQL`),this.name=`NotSqlEngineError`}};function s(t){if(!e(t))throw new o(t.label);return t}function c(e){return s(r(e))}function l(e){return s(i(e))}function u(){return s(a())}export{s as a,l as i,r as n,c as r,u as t};
1
+ import{r as e}from"./Nro86Y63.js";import{M as t,t as n}from"./CAd2f6EE.js";function r(e){let r=n.getState().activeConnections.find(t=>t.id===e);return t(r)}function i(e){let r=n.getState().activeConnections.find(t=>t.serverConnectionId===e);return t(r)}function a(){return r(n.getState().activeConnectionId)}var o=class extends Error{constructor(e){super(`${e} does not support SQL`),this.name=`NotSqlEngineError`}};function s(t){if(!e(t))throw new o(t.label);return t}function c(e){return s(r(e))}function l(e){return s(i(e))}function u(){return s(a())}export{s as a,l as i,r as n,c as r,u as t};
@@ -1,4 +1,4 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{i as r,r as i}from"./Cu_sGzNJ.js";import{a,i as o,n as s,o as c,t as l}from"./DzRyVlxz.js";import{a as u,i as d,n as f,r as p,t as m}from"./G06qjCej.js";import{t as h}from"./S7HbowYz.js";import{n as g}from"./D8_hwGjG.js";import{n as _}from"./C1gqjEN3.js";import{C as v,a as y}from"./BkXrfAoR.js";import{r as b}from"./BRZhVXRC.js";import{o as x,r as S}from"./B9dhM8vw.js";import{c as C,vt as w}from"./CExE8dKz.js";import{t as T}from"./CnYBZPf9.js";var E=e(t(),1),D=i();function O(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}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>
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{i as r,r as i}from"./Cu_sGzNJ.js";import{a,i as o,n as s,o as c,t as l}from"./DzRyVlxz.js";import{a as u,i as d,n as f,r as p,t as m}from"./B3qo2BmL.js";import{t as h}from"./CAd2f6EE.js";import{n as g}from"./D8_hwGjG.js";import{n as _}from"./D6SRSRpo.js";import{C as v,a as y}from"./BghfQrAj.js";import{r as b}from"./Ci1xBOLy.js";import{o as x,r as S}from"./CSjIZAje.js";import{c as C,vt as w}from"./B_zu4Zim.js";import{t as T}from"./CnYBZPf9.js";var E=e(t(),1),D=i();function O(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}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{i as e,r as t}from"./Cu_sGzNJ.js";import{t as n}from"./neLPq0_M.js";import{Yt as r}from"./CExE8dKz.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
+ import{i as e,r as t}from"./Cu_sGzNJ.js";import{t as n}from"./neLPq0_M.js";import{Yt as r}from"./B_zu4Zim.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"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{i as r,r as i}from"./Cu_sGzNJ.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./DzRyVlxz.js";import{T as d,h as f}from"./BjwrN_ch.js";import{n as p}from"./D8_hwGjG.js";import{Wt as m,Yt as h}from"./CExE8dKz.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
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{i as r,r as i}from"./Cu_sGzNJ.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./DzRyVlxz.js";import{T as d,h as f}from"./BPLdNS4h.js";import{n as p}from"./D8_hwGjG.js";import{Wt as m,Yt as h}from"./B_zu4Zim.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};