@marimo-team/frontend 0.23.16-dev34 → 0.23.16-dev36
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/dist/assets/{CellStatus-CmojVYzm.js → CellStatus-Dua-Q5qp.js} +1 -1
- package/dist/assets/{JsonOutput-BwwRpByA.js → JsonOutput-BjTsPSAI.js} +12 -12
- package/dist/assets/{MarimoErrorOutput-BWte8vjk.js → MarimoErrorOutput-BSyqD6Hg.js} +8 -8
- package/dist/assets/{RenderHTML-DRltV71H.js → RenderHTML-DG0Fm01X.js} +1 -1
- package/dist/assets/{RunButton-DIegd2mN.js → RunButton-DFs1N-c9.js} +1 -1
- package/dist/assets/{add-cell-with-ai-BBFD-M9V.js → add-cell-with-ai-C6Kxfu_D.js} +17 -17
- package/dist/assets/{add-connection-dialog-CECJ8507.js → add-connection-dialog-DAqIrB2O.js} +1 -1
- package/dist/assets/{agent-panel-YaS0WXP1.js → agent-panel-GtkUm7qc.js} +5 -5
- package/dist/assets/ai-model-dropdown-UEHQ_Tx0.js +5 -0
- package/dist/assets/{app-config-button-BW-w01aF.js → app-config-button-BmBlROBo.js} +1 -1
- package/dist/assets/{cell-editor-EV-1IccQ.js → cell-editor-DKzBZjFa.js} +10 -10
- package/dist/assets/{cell-link-C5gpAn3R.js → cell-link-CRHwRCw2.js} +1 -1
- package/dist/assets/cells-C-9Qa_6_.js +235 -0
- package/dist/assets/{chat-display-8BbC5B-D.js → chat-display-CqB9H1kF.js} +1 -1
- package/dist/assets/{chat-panel-CMOZp5xW.js → chat-panel-C3wpuHtk.js} +2 -2
- package/dist/assets/{chat-ui-DWhJ2Ozy.js → chat-ui-DF2nZlBy.js} +1 -1
- package/dist/assets/{column-preview-DeXESYpM.js → column-preview-Bp4QHPE2.js} +1 -1
- package/dist/assets/{command-palette-Dx6AkiPd.js → command-palette-DaJdKaQz.js} +1 -1
- package/dist/assets/{common-XVELED_O.js → common-DeheUlBO.js} +1 -1
- package/dist/assets/{components-BLHpmhXx.js → components-Dk-7Tn_8.js} +1 -1
- package/dist/assets/{datasource-CTqa8bf-.js → datasource-D-oZZRFN.js} +2 -2
- package/dist/assets/{dependency-graph-panel-C4Nzcddp.js → dependency-graph-panel-JK4qjNID.js} +3 -3
- package/dist/assets/{documentation-panel-Bym4G7IS.js → documentation-panel-C_TxLeX8.js} +1 -1
- package/dist/assets/{download-HKgqJX4l.js → download-QhwPYWYu.js} +2 -2
- package/dist/assets/{edit-page-Jtp6Qqjl.js → edit-page-C8yy6X_7.js} +6 -6
- package/dist/assets/{error-entries-CxyvaxEM.js → error-entries-B8hPG61B.js} +2 -2
- package/dist/assets/{error-panel-CfSy7uUr.js → error-panel-BOBOm9wN.js} +1 -1
- package/dist/assets/{file-explorer-panel-Dd5Xn2TK.js → file-explorer-panel-CQOFpuIG.js} +4 -4
- package/dist/assets/{file-icons-CSjJ3JC6.js → file-icons-DoBeqg86.js} +1 -1
- package/dist/assets/{file-name-input-CrKtrXMl.js → file-name-input-B8d-QPzY.js} +1 -1
- package/dist/assets/{floating-outline-ByQ8vvif.js → floating-outline-ylNOBTvA.js} +1 -1
- package/dist/assets/{focus-CVONl-Dy.js → focus-CJzSyxLL.js} +1 -1
- package/dist/assets/{form-Ca3yd_Od.js → form-C2_p_FeE.js} +2 -2
- package/dist/assets/{home-page-FpAawj9s.js → home-page-D_6eKuGc.js} +2 -2
- package/dist/assets/{html-to-image-C-4ysbGe.js → html-to-image-DfyxinVN.js} +2 -2
- package/dist/assets/{index-CiJmYQBT.js → index-D-wPCBTa.js} +7 -7
- package/dist/assets/{index-xs-zSSrX.css → index-D6Dp_PFj.css} +1 -1
- package/dist/assets/{layout-Dtql_o_T.js → layout-BWV4OadK.js} +5 -5
- package/dist/assets/logs-panel-DpMLUEOB.js +1 -0
- package/dist/assets/{markdown-renderer-dABDqZDw.js → markdown-renderer-DtzxgcfB.js} +2 -2
- package/dist/assets/{name-cell-input-Y4knmEIU.js → name-cell-input-SbknxDvi.js} +1 -1
- package/dist/assets/{outline-panel-CQ_KWLip.js → outline-panel-kV7ARoXE.js} +1 -1
- package/dist/assets/{packages-panel-Ijt7d51P.js → packages-panel-B3biBPQ1.js} +1 -1
- package/dist/assets/{panels-DfU1Oikj.js → panels-BsrSW0bC.js} +2 -2
- package/dist/assets/process-output-DCAOrKEU.js +1 -0
- package/dist/assets/{radio-group-22eWJ9fv.js → radio-group-BWAhJtjV.js} +1 -1
- package/dist/assets/readonly-code-display-D_rgEfAm.js +1 -0
- package/dist/assets/{readonly-python-code-n_TrLmsR.js → readonly-python-code-B5ABqdqK.js} +1 -1
- package/dist/assets/{reveal-component-CCLTV1q6.js → reveal-component-CrcdxGl_.js} +2 -2
- package/dist/assets/{run-page-DbezK7Qs.js → run-page-DFHpKr66.js} +1 -1
- package/dist/assets/{scratchpad-panel-C2wAEv5n.js → scratchpad-panel-CfqnZK3C.js} +1 -1
- package/dist/assets/{session-panel-BZGNcZmp.js → session-panel-DWS61Z1x.js} +1 -1
- package/dist/assets/{skeleton-BzlKcq21.js → skeleton-PJnQ2_IA.js} +1 -1
- package/dist/assets/{snippets-panel-DNaNtkR0.js → snippets-panel-D1eovB0O.js} +1 -1
- package/dist/assets/{state-jCdh8Dcx.js → state-BjouLTuw.js} +1 -1
- package/dist/assets/{state-DFPAfLw7.js → state-Bu-aMpIc.js} +3 -3
- package/dist/assets/{textarea-DuEtSOCl.js → textarea-DhPaQ0wx.js} +1 -1
- package/dist/assets/{tracing-ttUd3J7U.js → tracing-B2ux60rQ.js} +1 -1
- package/dist/assets/{tracing-panel-rVAa3En0.js → tracing-panel-CF8H5wRv.js} +2 -2
- package/dist/assets/{tree-actions-UCr1tMHw.js → tree-actions-CPSDN4eE.js} +1 -1
- package/dist/assets/useCellActionButton-k2OXllYI.js +1 -0
- package/dist/assets/{useDeleteCell-PrgejW8A.js → useDeleteCell-C3nmnuxK.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-5jc-_-hy.js → useDependencyPanelTab-D14Lna3z.js} +1 -1
- package/dist/assets/{useNotebookActions-4vw_NiRs.js → useNotebookActions-CHM0Ardg.js} +3 -3
- package/dist/assets/useRunCells-C4qD32Ix.js +1 -0
- package/dist/assets/useSplitCell-BEebdldD.js +1 -0
- package/dist/index.html +23 -23
- package/package.json +2 -3
- package/src/components/editor/chrome/panels/__tests__/logs-panel.test.tsx +25 -0
- package/src/components/editor/chrome/panels/logs-panel.tsx +12 -2
- package/src/core/cells/__tests__/cells.test.ts +12 -2
- package/src/core/cells/__tests__/logs.test.ts +5 -5
- package/src/core/cells/cells.ts +13 -0
- package/src/core/cells/document-changes.ts +1 -0
- package/src/core/cells/logs.ts +14 -4
- package/src/core/codemirror/copilot/__tests__/language-server.test.ts +396 -100
- package/src/core/codemirror/copilot/__tests__/transport.test.ts +128 -540
- package/src/core/codemirror/copilot/language-server.ts +182 -70
- package/src/core/codemirror/copilot/transport.ts +15 -207
- package/src/core/codemirror/copilot/types.ts +9 -2
- package/src/core/codemirror/language/languages/python.ts +23 -11
- package/src/core/codemirror/lsp/__tests__/federated-lsp.test.ts +161 -0
- package/src/core/codemirror/lsp/__tests__/log-messages.test.ts +53 -0
- package/src/core/codemirror/lsp/__tests__/normalize-markdown-math.test.ts +25 -0
- package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +598 -156
- package/src/core/codemirror/lsp/__tests__/transports.test.ts +112 -0
- package/src/core/codemirror/lsp/federated-lsp.ts +76 -23
- package/src/core/codemirror/lsp/log-messages.ts +37 -0
- package/src/core/codemirror/lsp/normalize-markdown-math.ts +8 -4
- package/src/core/codemirror/lsp/notebook-lsp.ts +220 -56
- package/src/core/codemirror/lsp/transports.ts +8 -1
- package/src/core/codemirror/lsp/types.ts +68 -8
- package/src/core/codemirror/lsp/utils.ts +14 -0
- package/src/core/lsp/__tests__/transport.test.ts +509 -337
- package/src/core/lsp/transport.ts +304 -132
- package/src/css/app/codemirror.css +16 -2
- package/src/stories/log-viewer.stories.tsx +12 -6
- package/dist/assets/ai-model-dropdown-BpVBUZnz.js +0 -5
- package/dist/assets/cells-6yd8nOAu.js +0 -231
- package/dist/assets/logs-panel-5u1wUBn1.js +0 -1
- package/dist/assets/process-output-Dd11YI04.js +0 -1
- package/dist/assets/readonly-code-display-BjK-TEri.js +0 -1
- package/dist/assets/useCellActionButton-CJknR0XY.js +0 -1
- package/dist/assets/useRunCells-DHsd7HGL.js +0 -1
- package/dist/assets/useSplitCell-MZpER0Bh.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var yt=Object.defineProperty;var _t=(t,e,s)=>e in t?yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var ue=(t,e,s)=>_t(t,typeof e!="symbol"?e+"":e,s);import{s as Re}from"./chunk-LvLJmgfZ.js";import{u as wt}from"./useEvent-D91BmmQi.js";import{t as xt}from"./react-Bj1aDYRI.js";import{E as St,Qn as y,xt as Te}from"./cells-6yd8nOAu.js";import{D as ne,P as _,R as u,T as P,_ as kt,i as vt,k as w}from"./zod-H_cgTO0M.js";import{t as M}from"./compiler-runtime-B3qBwwSJ.js";import{_ as $t}from"./useEventListener-C0195JsF.js";import{c as jt}from"./utils-BWBBpCkT.js";import{t as ce}from"./cn-DYvqRARy.js";import{t as Ct}from"./jsx-runtime-Blw4afVn.js";import{a as At,c as Le,i as Rt,o as Ne,r as Tt,s as Lt,t as Nt}from"./popover-Bcz1Zikb.js";import{c as It,i as Dt,n as Pt,r as Ft,s as Et,t as qt}from"./select-BP75_5jJ.js";import{t as Ie}from"./button-DDGiD1NW.js";import{r as ie}from"./strings--BknHX9C.js";import{t as Bt}from"./createLucideIcon-w-Qo9n0R.js";import{r as Ot,t as Mt}from"./x-C-Eq0ag8.js";import{t as Ut}from"./circle-plus-BluydVNx.js";import{t as Kt}from"./database-zap-CKO8g4BU.js";import{c,o as Ht,t as zt,u as Wt}from"./form-Ca3yd_Od.js";import{n as Se}from"./DeferredRequestRegistry-C8EV1PoE.js";import{a as Gt,c as Vt,d as Zt,g as Qt,l as Jt,o as Yt,p as Xt,s as es,u as ts}from"./textarea-DuEtSOCl.js";import{r as ss}from"./useTheme-Bxv9B31g.js";import{a as rs,c as ns,l as os,n as as,r as cs,t as is}from"./dialog-BCVepWLJ.js";import{n as ls}from"./ImperativeModal-fY-ZfT0b.js";import{t as be}from"./links-wcQA1Np1.js";import{t as ds}from"./useIframeCapabilities-j6fR_dBA.js";import{r as ps}from"./html-to-image-C-4ysbGe.js";import{o as hs}from"./focus-CVONl-Dy.js";import{n as ms}from"./useAsyncData-Bg5iAViP.js";import{a as us,c as ke,i as fe,o as ge,s as bs,t as fs}from"./command-Dqxie4gq.js";import{n as gs,t as ys}from"./azure-nN8APleF.js";import{t as _s}from"./request-registry-DHocQ_4I.js";import{n as ws,t as xs}from"./write-secret-modal-3-v-dHVj.js";import{t as Ss}from"./github-_JH-0hIO.js";var ve=Bt("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]),$e="env:";function un(t){return t}function U(t){return typeof t=="string"?t.startsWith($e):!1}function De(t){return`${$e}${t}`}function Pe(t){return t.replace($e,"")}var ks=M(),F=Re(xt(),1),o=Re(Ct(),1);function vs(t,e){if(!e)return{recommended:[],other:[...t]};let s;try{s=new RegExp(e,"i")}catch{return{recommended:[],other:[...t]}}let n=[],r=[];for(let l of t)s.test(l)?n.push(l):r.push(l);return{recommended:n,other:r}}const $s=t=>{let e=(0,ks.c)(67),{value:s,onChange:n,placeholder:r,secretsOnly:l,recommendedKeys:i,otherKeys:a,onCreateSecret:d,className:p}=t,h=l===void 0?!1:l,[f,m]=(0,F.useState)(!1),[b,g]=(0,F.useState)(""),x;e[0]===b?x=e[1]:(x=b.trim(),e[0]=b,e[1]=x);let S=x,k=!h&&S.length>0&&S!==s,v;e:{if(!s){v=null;break e}if(U(s)){let $;e[2]===s?$=e[3]:($=s,e[2]=s,e[3]=$),v=$;break e}v=s}let R=v,C;e[4]===n?C=e[5]:(C=$=>{n(De($)),m(!1),g("")},e[4]=n,e[5]=C);let A=C,T;e[6]===n?T=e[7]:(T=$=>{n($),m(!1),g("")},e[6]=n,e[7]=T);let L=T,D;e[8]===n?D=e[9]:(D=()=>{n(""),g(""),m(!1)},e[8]=n,e[9]=D);let ae=D,K;e[10]===p?K=e[11]:(K=ce("flex w-full min-w-48 mb-1 items-center gap-1",p),e[10]=p,e[11]=K);let de;e[12]===Symbol.for("react.memo_cache_sentinel")?(de=$=>{m($),$||g("")},e[12]=de):de=e[12];let H;e[13]===s?H=e[14]:(H=ce("flex h-6 min-w-0 flex-1 shadow-xs-solid items-center justify-between","rounded-sm border border-input bg-background px-1.5 text-sm font-code ring-offset-background placeholder:text-muted-foreground","hover:shadow-sm-solid focus:outline-hidden focus:ring-1 focus:ring-ring focus:border-primary focus:shadow-md-solid",U(s)&&"bg-accent"),e[13]=s,e[14]=H);let z;e[15]!==R||e[16]!==r||e[17]!==s?(z=(0,o.jsx)("span",{className:"truncate flex-1 min-w-0 text-left flex items-center gap-1.5",children:R?(0,o.jsxs)(o.Fragment,{children:[U(s)&&(0,o.jsx)(Se,{className:"h-3 w-3 shrink-0 opacity-70"}),(0,o.jsx)("span",{className:"truncate",children:R})]}):(0,o.jsx)("span",{className:"text-muted-foreground",children:r})}),e[15]=R,e[16]=r,e[17]=s,e[18]=z):z=e[18];let pe;e[19]===Symbol.for("react.memo_cache_sentinel")?(pe=(0,o.jsx)(Ot,{className:"ml-1 h-4 w-4 opacity-50 shrink-0"}),e[19]=pe):pe=e[19];let W;e[20]!==f||e[21]!==z||e[22]!==H?(W=(0,o.jsx)(Rt,{asChild:!0,children:(0,o.jsxs)("button",{type:"button",className:H,"aria-expanded":f,children:[z,pe]})}),e[20]=f,e[21]=z,e[22]=H,e[23]=W):W=e[23];let we=h?"Search secrets...":"Type a value or search secrets...",G;e[24]!==b||e[25]!==we?(G=(0,o.jsx)(us,{placeholder:we,rootClassName:"px-1 h-8",autoFocus:!0,value:b,onValueChange:g}),e[24]=b,e[25]=we,e[26]=G):G=e[26];let V;e[27]!==L||e[28]!==k||e[29]!==S?(V=k&&(0,o.jsx)(fe,{children:(0,o.jsxs)(ge,{value:`use custom value ${S}`,onSelect:()=>L(S),children:['Use "',S,'"']})}),e[27]=L,e[28]=k,e[29]=S,e[30]=V):V=e[30];let Z;e[31]===k?Z=e[32]:(Z=k&&(0,o.jsx)(ke,{}),e[31]=k,e[32]=Z);let xe=`create new secret ${S}`,Q;e[33]!==d||e[34]!==S?(Q=()=>{let $=S||void 0;m(!1),g(""),d($)},e[33]=d,e[34]=S,e[35]=Q):Q=e[35];let he;e[36]===Symbol.for("react.memo_cache_sentinel")?(he=(0,o.jsx)(Ut,{className:"mr-2 h-3.5 w-3.5"}),e[36]=he):he=e[36];let J;e[37]!==xe||e[38]!==Q?(J=(0,o.jsx)(fe,{className:"mt-0",children:(0,o.jsxs)(ge,{value:xe,onSelect:Q,children:[he,"Create a new secret"]})}),e[37]=xe,e[38]=Q,e[39]=J):J=e[39];let Y;e[40]!==i||e[41]!==A?(Y=i.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ke,{className:"mt-0"}),(0,o.jsx)(fe,{heading:"Recommended",children:i.map($=>(0,o.jsxs)(ge,{value:$,onSelect:()=>A($),children:[(0,o.jsx)(Se,{className:"mr-2 h-3 w-3 opacity-70"}),$]},$))})]}),e[40]=i,e[41]=A,e[42]=Y):Y=e[42];let X;e[43]!==a||e[44]!==i.length||e[45]!==A?(X=a.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ke,{className:"mt-0"}),(0,o.jsx)(fe,{heading:i.length>0?"Other":void 0,children:a.map($=>(0,o.jsxs)(ge,{value:$,onSelect:()=>A($),children:[(0,o.jsx)(Se,{className:"mr-2 h-3 w-3 opacity-70"}),$]},$))})]}),e[43]=a,e[44]=i.length,e[45]=A,e[46]=X):X=e[46];let ee;e[47]!==V||e[48]!==Z||e[49]!==J||e[50]!==Y||e[51]!==X?(ee=(0,o.jsxs)(bs,{className:"max-h-60 overscroll-contain",children:[V,Z,J,Y,X]}),e[47]=V,e[48]=Z,e[49]=J,e[50]=Y,e[51]=X,e[52]=ee):ee=e[52];let te;e[53]!==G||e[54]!==ee?(te=(0,o.jsx)(Tt,{className:"w-(--radix-popover-trigger-width) p-0",align:"start",children:(0,o.jsxs)(fs,{children:[G,ee]})}),e[53]=G,e[54]=ee,e[55]=te):te=e[55];let se;e[56]!==f||e[57]!==W||e[58]!==te?(se=(0,o.jsxs)(Nt,{modal:!0,open:f,onOpenChange:de,children:[W,te]}),e[56]=f,e[57]=W,e[58]=te,e[59]=se):se=e[59];let re;e[60]!==ae||e[61]!==s?(re=s&&(0,o.jsx)("button",{type:"button","aria-label":"Clear",className:ce("flex h-6 w-6 shrink-0 items-center justify-center rounded-sm","text-muted-foreground hover:bg-muted hover:text-foreground","focus:outline-hidden focus:ring-1 focus:ring-ring"),onClick:ae,children:(0,o.jsx)(Mt,{className:"h-3.5 w-3.5"})}),e[60]=ae,e[61]=s,e[62]=re):re=e[62];let me;return e[63]!==se||e[64]!==re||e[65]!==K?(me=(0,o.jsxs)("div",{className:K,children:[se,re]}),e[63]=se,e[64]=re,e[65]=K,e[66]=me):me=e[66],me};var js=M(),Fe=(0,F.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:$t.NOOP});const Cs=()=>(0,F.use)(Fe),As=t=>{let e=(0,js.c)(14),{children:s}=t,n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];let{data:r,isPending:l,error:i,refetch:a}=ms(Is,n);r==null||r.secretKeys,r==null||r.providerNames;let d;e[1]===(r==null?void 0:r.secretKeys)?d=e[2]:(d=(r==null?void 0:r.secretKeys)||[],e[1]=r==null?void 0:r.secretKeys,e[2]=d);let p;e[3]===(r==null?void 0:r.providerNames)?p=e[4]:(p=(r==null?void 0:r.providerNames)||[],e[3]=r==null?void 0:r.providerNames,e[4]=p);let h;e[5]!==i||e[6]!==l||e[7]!==a||e[8]!==d||e[9]!==p?(h={secretKeys:d,providerNames:p,loading:l,error:i,refreshSecrets:a},e[5]=i,e[6]=l,e[7]=a,e[8]=d,e[9]=p,e[10]=h):h=e[10];let f=h,m;return e[11]!==s||e[12]!==f?(m=(0,o.jsx)(Fe,{value:f,children:s}),e[11]=s,e[12]=f,e[13]=m):m=e[13],m},Rs={isMatch:t=>{if(t instanceof kt){let{optionRegex:e}=c.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:n,providerNames:r,refreshSecrets:l}=Cs(),{openModal:i,closeModal:a}=ls(),{label:d,description:p,placeholder:h,optionRegex:f="",inputType:m}=c.parse(t.description||""),b=m==="password",{recommended:g,other:x}=vs(n,f);return(0,o.jsx)(Vt,{control:e.control,name:s,render:({field:S})=>(0,o.jsxs)(Jt,{children:[(0,o.jsx)(ts,{children:d}),(0,o.jsx)(Yt,{children:p}),(0,o.jsx)(Gt,{children:(0,o.jsx)($s,{value:S.value?String(S.value):"",onChange:S.onChange,placeholder:h,secretsOnly:b,recommendedKeys:g,otherKeys:x,onCreateSecret:k=>{i((0,o.jsx)(xs,{providerNames:r,initialValue:k,onSuccess:v=>{l(),S.onChange(De(v)),a()},onClose:a}))}})}),(0,o.jsx)(Zt,{})]})})}};function Ts(t){return t.provider!=="env"}function Ls(t){return t.name}function Ns(t){return t.keys}async function Is(){let t=await _s.request({}),e=ws(t.secrets).filter(Ts).map(Ls);return{secretKeys:t.secrets.flatMap(Ns).toSorted(),providerNames:e}}var le=M(),Ds=[Rs];const je=t=>{let e=(0,le.c)(2),{children:s}=t,n;return e[0]===s?n=e[1]:(n=(0,o.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:s}),e[0]=s,e[1]=n),n},Ce=t=>{let e=(0,le.c)(9),{name:s,color:n,icon:r,onSelect:l}=t,i;e[0]===n?i=e[1]:(i={backgroundColor:n},e[0]=n,e[1]=i);let a;e[2]===s?a=e[3]:(a=(0,o.jsx)("span",{className:"text-white font-medium text-lg",children:s}),e[2]=s,e[3]=a);let d;return e[4]!==r||e[5]!==l||e[6]!==i||e[7]!==a?(d=(0,o.jsxs)("button",{type:"button",className:"py-3 flex flex-col items-center justify-center gap-1 transition-all hover:scale-105 hover:brightness-110 rounded shadow-sm-solid hover:shadow-md-solid",style:i,onClick:l,children:[r,a]}),e[4]=r,e[5]=l,e[6]=i,e[7]=a,e[8]=d):d=e[8],d},Ps=t=>{let e=(0,le.c)(25),{onBack:s,isValid:n,libraries:r,preferredLibrary:l,onLibraryChange:i,displayNames:a,libraryLabel:d}=t,p=d===void 0?"Preferred library":d,h;e[0]===s?h=e[1]:(h=(0,o.jsx)(Ie,{type:"button",variant:"outline",onClick:s,children:"Back"}),e[0]=s,e[1]=h);let f=!n,m;e[2]===f?m=e[3]:(m=(0,o.jsx)(Ie,{type:"submit",disabled:f,children:"Add"}),e[2]=f,e[3]=m);let b;e[4]!==h||e[5]!==m?(b=(0,o.jsxs)("div",{className:"flex gap-2",children:[h,m]}),e[4]=h,e[5]=m,e[6]=b):b=e[6];let g;e[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,o.jsx)(Et,{children:(0,o.jsx)(It,{placeholder:"Select a library"})}),e[7]=g):g=e[7];let x;e[8]===p?x=e[9]:(x=(0,o.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[g,(0,o.jsx)("span",{className:"text-xs text-muted-foreground",children:p})]}),e[8]=p,e[9]=x);let S;if(e[10]!==a||e[11]!==r){let C;e[13]===a?C=e[14]:(C=A=>(0,o.jsx)(Dt,{value:A,children:a[A]??A},A),e[13]=a,e[14]=C),S=r.map(C),e[10]=a,e[11]=r,e[12]=S}else S=e[12];let k;e[15]===S?k=e[16]:(k=(0,o.jsx)(Pt,{children:(0,o.jsx)(Ft,{children:S})}),e[15]=S,e[16]=k);let v;e[17]!==i||e[18]!==l||e[19]!==x||e[20]!==k?(v=(0,o.jsx)("div",{children:(0,o.jsxs)(qt,{value:l,onValueChange:i,children:[x,k]})}),e[17]=i,e[18]=l,e[19]=x,e[20]=k,e[21]=v):v=e[21];let R;return e[22]!==v||e[23]!==b?(R=(0,o.jsxs)("div",{className:"flex gap-2 justify-between",children:[b,v]}),e[22]=v,e[23]=b,e[24]=R):R=e[24],R};function Fs(){let t=(0,le.c)(4),{createNewCell:e}=St(),s=hs(),n=wt(jt),r;return t[0]!==n||t[1]!==e||t[2]!==s?(r=l=>{/\bmo\./.test(l)&&ps({autoInstantiate:n,createNewCell:e,fromCellId:s}),e({code:l,before:!1,cellId:s??"__end__",skipIfCodeExists:!0})},t[0]=n,t[1]=e,t[2]=s,t[3]=r):r=t[3],r}const Ee=t=>{let e=(0,le.c)(30),{schema:s,libraries:n,preferredLibrary:r,displayNames:l,libraryLabel:i,generateCode:a,onSubmit:d,onBack:p}=t,h;e[0]===s?h=e[1]:(h=Ht(s),e[0]=s,e[1]=h);let f=h,m;e[2]===s?m=e[3]:(m=Xt(s),e[2]=s,e[3]=m);let b;e[4]!==f||e[5]!==m?(b={defaultValues:f,resolver:m,reValidateMode:"onChange"},e[4]=f,e[5]=m,e[6]=b):b=e[6];let g=Qt(b),[x,S]=F.useState(r),k=Fs(),v;e[7]!==a||e[8]!==k||e[9]!==d||e[10]!==x?(v=ae=>{k(a(ae,x)),d()},e[7]=a,e[8]=k,e[9]=d,e[10]=x,e[11]=v):v=e[11];let R=v,C;e[12]!==g||e[13]!==R?(C=g.handleSubmit(R),e[12]=g,e[13]=R,e[14]=C):C=e[14];let A;e[15]===Symbol.for("react.memo_cache_sentinel")?(A=(0,o.jsx)(es,{}),e[15]=A):A=e[15];let T;e[16]!==g||e[17]!==s?(T=(0,o.jsx)(As,{children:(0,o.jsx)(zt,{schema:s,form:g,renderers:Ds,children:A})}),e[16]=g,e[17]=s,e[18]=T):T=e[18];let L;e[19]!==l||e[20]!==g.formState.isValid||e[21]!==n||e[22]!==i||e[23]!==p||e[24]!==x?(L=(0,o.jsx)(Ps,{onBack:p,isValid:g.formState.isValid,libraries:n,preferredLibrary:x,onLibraryChange:S,displayNames:l,libraryLabel:i}),e[19]=l,e[20]=g.formState.isValid,e[21]=n,e[22]=i,e[23]=p,e[24]=x,e[25]=L):L=e[25];let D;return e[26]!==C||e[27]!==T||e[28]!==L?(D=(0,o.jsxs)("form",{onSubmit:C,className:"space-y-4",children:[T,L]}),e[26]=C,e[27]=T,e[28]=L,e[29]=D):D=e[29],D};function q(){return u().optional().describe(c.of({label:"Password",inputType:"password",optionRegex:"(password|passwd|pgpassword|db.?pass(word)?)"}))}function ye(t,e){let s=u();return s=e?s.nonempty():s.optional(),s=s.describe(c.of({label:t||"Token",inputType:"password",optionRegex:"(token|api.?key|access.?token|auth.?token|(^|_)pat(_|$))"})),s}function _e(){return u().optional().describe(c.of({label:"Warehouse Name",optionRegex:"(warehouse|snowflake.?warehouse)"}))}function Ae(t,e){let s=u();return s=e?s.nonempty():s.optional(),s.describe(c.of({label:t||"URI",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"}))}function E(t){return u().nonempty().describe(c.of({label:t||"Host",optionRegex:"^(?!.*(kubernetes|gpg)).*(host(name)?|pghost|db.?host|database.?host|mysql.?host|postgres.?host|server.?host)"}))}function N(){return u().describe(c.of({label:"Database",optionRegex:"(database|db.?name|pgdatabase|^DB$|^DATABASE$)"}))}function Es(){return u().describe(c.of({label:"Schema",optionRegex:"(^SCHEMA$|db.?schema|postgres.?schema|pg.?schema|_SCHEMA$)"}))}function I(){return u().nonempty().describe(c.of({label:"Username",optionRegex:"(username|pguser|db.?user|^USER$|_USER$)"}))}function B(t){let e=vt().describe(c.of({label:"Port",inputType:"number",placeholder:t==null?void 0:t.toString()})).transform(Number).refine(s=>s>=0&&s<=65535,{message:"Port must be between 0 and 65535"});return t===void 0?e:e.default(t)}function qe(){return P().default(!1).describe(c.of({label:"Read Only"}))}const Be=_({type:w("postgres"),host:E(),port:B(5432).optional(),database:N(),username:I(),password:q(),ssl:P().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),Oe=_({type:w("mysql"),host:E(),port:B(3306),database:N(),username:I(),password:q(),ssl:P().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),Me=_({type:w("sqlite"),database:N().describe(c.of({label:"Database Path"}))}).describe(c.of({direction:"two-columns"})),Ue=_({type:w("duckdb"),database:N().describe(c.of({label:"Database Path"})),read_only:qe()}).describe(c.of({direction:"two-columns"})),Ke=_({type:w("motherduck"),database:N().default("my_db").describe(c.of({label:"Database Name"})),token:ye()}).describe(c.of({direction:"two-columns"})),He=_({type:w("snowflake"),account:u().nonempty().describe(c.of({label:"Account",optionRegex:"(snowflake.?account|^SNOWFLAKE_ACCOUNT$|account.?id)"})),warehouse:u().optional().describe(c.of({label:"Warehouse",optionRegex:"(snowflake.?warehouse|warehouse)"})),database:N(),schema:u().optional().describe(c.of({label:"Schema",optionRegex:"(snowflake.?schema|^SCHEMA$|_SCHEMA$)"})),role:u().optional().describe(c.of({label:"Role"})),authType:ne("type",[_({type:w("Password"),username:I(),password:q(),enable_mfa:P().default(!1).describe(c.of({label:"Enable MFA (Duo Push)"}))}),_({type:w("SSO (Browser)"),username:I()}),_({type:w("Key Pair"),username:I(),private_key_path:u().nonempty().describe(c.of({label:"Private Key Path",placeholder:"/path/to/rsa_key.p8"})),private_key_passphrase:u().optional().describe(c.of({label:"Private Key Passphrase",inputType:"password",optionRegex:"(passphrase|private.?key.?passphrase|key.?passphrase)"}))}),_({type:w("OAuth / PAT"),token:ye("Token",!0)})]).default({type:"Password",username:"username",enable_mfa:!1}).describe(c.of({special:"tabs"}))}).describe(c.of({direction:"two-columns"})),ze=_({type:w("bigquery"),project:u().nonempty().describe(c.of({label:"Project ID",optionRegex:"(bigquery.?project|gcp.?project|google.?cloud.?project|project.?id)"})),dataset:u().nonempty().describe(c.of({label:"Dataset",optionRegex:"(bigquery.?dataset|dataset)"})),credentials_json:u().describe(c.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),We=_({type:w("clickhouse_connect"),host:E(),port:B(8123).optional(),username:I(),password:q(),secure:P().default(!1).describe(c.of({label:"Use HTTPs"})),proxy_path:u().optional().describe(c.of({label:"Proxy Path",placeholder:"/clickhouse"}))}).describe(c.of({direction:"two-columns"})),Ge=_({type:w("timeplus"),host:E().default("localhost"),port:B(8123).optional(),username:I().default("default"),password:q().default("")}).describe(c.of({direction:"two-columns"})),Ve=_({type:w("chdb"),database:N().describe(c.of({label:"Database Path"})),read_only:qe()}).describe(c.of({direction:"two-columns"})),Ze=_({type:w("trino"),host:E(),port:B(8080),database:N(),schema:Es().optional(),username:I(),password:q(),async_support:P().default(!1).describe(c.of({label:"Async Support"}))}).describe(c.of({direction:"two-columns"})),Qe=_({type:w("iceberg"),name:u().describe(c.of({label:"Catalog Name"})),catalog:ne("type",[_({type:w("REST"),warehouse:_e(),uri:u().optional().describe(c.of({label:"URI",placeholder:"https://",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"})),token:ye()}),_({type:w("SQL"),warehouse:_e(),uri:u().optional().describe(c.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"}))}),_({type:w("Hive"),warehouse:_e(),uri:Ae()}),_({type:w("Glue"),warehouse:_e(),uri:Ae()}),_({type:w("DynamoDB"),"dynamodb.profile-name":u().optional().describe(c.of({label:"Profile Name"})),"dynamodb.region":u().optional().describe(c.of({label:"Region"})),"dynamodb.access-key-id":u().optional().describe(c.of({label:"Access Key ID",inputType:"password",optionRegex:"(access.?key.?id|aws.?access.?key)"})),"dynamodb.secret-access-key":u().optional().describe(c.of({label:"Secret Access Key",inputType:"password",optionRegex:"(secret.?access.?key|aws.?secret)"})),"dynamodb.session-token":u().optional().describe(c.of({label:"Session Token",inputType:"password",optionRegex:"(session.?token|aws.?session)"}))})]).default({type:"REST",token:void 0}).describe(c.of({special:"tabs"}))}),Je=_({type:w("datafusion"),sessionContext:P().optional().describe(c.of({label:"Use Session Context"}))}),Ye=_({type:w("pyspark"),host:E().optional(),port:B().optional()}),Xe=_({type:w("redshift"),host:E(),port:B(5439),connectionType:ne("type",[_({type:w("IAM credentials"),region:u().describe(c.of({label:"Region"})),aws_access_key_id:u().nonempty().describe(c.of({label:"AWS Access Key ID",inputType:"password",optionRegex:"(access.?key.?id|aws.?access.?key)"})),aws_secret_access_key:u().nonempty().describe(c.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:"(secret.?access.?key|aws.?secret)"})),aws_session_token:u().optional().describe(c.of({label:"AWS Session Token",inputType:"password",optionRegex:"(session.?token|aws.?session)"}))}),_({type:w("DB credentials"),user:I(),password:q()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:N()}).describe(c.of({direction:"two-columns"})),et=_({type:w("databricks"),access_token:ye("Access Token",!0),server_hostname:E("Server Hostname"),http_path:Ae("HTTP Path",!0),catalog:u().optional().describe(c.of({label:"Catalog"})),schema:u().optional().describe(c.of({label:"Schema"}))}).describe(c.of({direction:"two-columns"})),tt=_({type:w("supabase"),host:E(),port:B(5432).optional(),database:N(),username:I(),password:q(),disable_client_pooling:P().default(!1).describe(c.of({label:"Disable Client-Side Pooling"}))}).describe(c.of({direction:"two-columns"})),qs=ne("type",[Be,Oe,Me,Ue,Ke,He,ze,We,Ge,Ve,Ze,Qe,Je,Ye,Xe,et,tt]),st={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var j=class{constructor(t,e,s){this.connection=t,this.orm=e,this.secrets=s}get imports(){let t=new Set(this.generateImports());switch(this.orm){case"sqlalchemy":t.add("import sqlalchemy");break;case"sqlmodel":t.add("import sqlmodel");break;case"duckdb":t.add("import duckdb");break;case"ibis":t.add("import ibis");break}return t}},Bs=t=>`_${t}`,Os=class{constructor(){ue(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=Bs(t),U(e)){let n=Pe(e),r=s?`os.environ.get("${n}", "${s}")`:`os.environ.get("${n}")`;return this.secrets[t]=r,t}if(s!=null){let n=`os.environ.get("${e}", "${s}")`;return this.secrets[t]=n,t}return typeof e=="number"||typeof e=="number"?`${e}`:typeof e=="boolean"?oe(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return oe(e);let n=this.print(t,e,s);return n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1):`{${n}}`}printPassword(t,e,s,n){let r=s?this.printInFString.bind(this):this.print.bind(this);return U(t)?r(n||"password",t):r(n||"password",e,t)}getSecrets(){return this.secrets}formatSecrets(){return Object.keys(this.secrets).length===0?"":Object.entries(this.secrets).map(([t,e])=>`${t} = ${e}`).join(`
|
|
1
|
+
var yt=Object.defineProperty;var _t=(t,e,s)=>e in t?yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var ue=(t,e,s)=>_t(t,typeof e!="symbol"?e+"":e,s);import{s as Re}from"./chunk-LvLJmgfZ.js";import{u as wt}from"./useEvent-D91BmmQi.js";import{t as xt}from"./react-Bj1aDYRI.js";import{E as St,St as Te,nr as y}from"./cells-C-9Qa_6_.js";import{D as ne,P as _,R as u,T as P,_ as kt,i as vt,k as w}from"./zod-H_cgTO0M.js";import{t as M}from"./compiler-runtime-B3qBwwSJ.js";import{_ as $t}from"./useEventListener-C0195JsF.js";import{c as jt}from"./utils-BWBBpCkT.js";import{t as ce}from"./cn-DYvqRARy.js";import{t as Ct}from"./jsx-runtime-Blw4afVn.js";import{a as At,c as Le,i as Rt,o as Ne,r as Tt,s as Lt,t as Nt}from"./popover-Bcz1Zikb.js";import{c as It,i as Dt,n as Pt,r as Ft,s as Et,t as qt}from"./select-BP75_5jJ.js";import{t as Ie}from"./button-DDGiD1NW.js";import{r as ie}from"./strings--BknHX9C.js";import{t as Bt}from"./createLucideIcon-w-Qo9n0R.js";import{r as Ot,t as Mt}from"./x-C-Eq0ag8.js";import{t as Ut}from"./circle-plus-BluydVNx.js";import{t as Kt}from"./database-zap-CKO8g4BU.js";import{c,o as Ht,t as zt,u as Wt}from"./form-C2_p_FeE.js";import{n as Se}from"./DeferredRequestRegistry-C8EV1PoE.js";import{a as Gt,c as Vt,d as Zt,g as Qt,l as Jt,o as Yt,p as Xt,s as es,u as ts}from"./textarea-DhPaQ0wx.js";import{r as ss}from"./useTheme-Bxv9B31g.js";import{a as rs,c as ns,l as os,n as as,r as cs,t as is}from"./dialog-BCVepWLJ.js";import{n as ls}from"./ImperativeModal-fY-ZfT0b.js";import{t as be}from"./links-wcQA1Np1.js";import{t as ds}from"./useIframeCapabilities-j6fR_dBA.js";import{r as ps}from"./html-to-image-DfyxinVN.js";import{o as hs}from"./focus-CJzSyxLL.js";import{n as ms}from"./useAsyncData-Bg5iAViP.js";import{a as us,c as ke,i as fe,o as ge,s as bs,t as fs}from"./command-Dqxie4gq.js";import{n as gs,t as ys}from"./azure-nN8APleF.js";import{t as _s}from"./request-registry-DHocQ_4I.js";import{n as ws,t as xs}from"./write-secret-modal-3-v-dHVj.js";import{t as Ss}from"./github-_JH-0hIO.js";var ve=Bt("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]),$e="env:";function un(t){return t}function U(t){return typeof t=="string"?t.startsWith($e):!1}function De(t){return`${$e}${t}`}function Pe(t){return t.replace($e,"")}var ks=M(),F=Re(xt(),1),o=Re(Ct(),1);function vs(t,e){if(!e)return{recommended:[],other:[...t]};let s;try{s=new RegExp(e,"i")}catch{return{recommended:[],other:[...t]}}let n=[],r=[];for(let l of t)s.test(l)?n.push(l):r.push(l);return{recommended:n,other:r}}const $s=t=>{let e=(0,ks.c)(67),{value:s,onChange:n,placeholder:r,secretsOnly:l,recommendedKeys:i,otherKeys:a,onCreateSecret:d,className:p}=t,h=l===void 0?!1:l,[f,m]=(0,F.useState)(!1),[b,g]=(0,F.useState)(""),x;e[0]===b?x=e[1]:(x=b.trim(),e[0]=b,e[1]=x);let S=x,k=!h&&S.length>0&&S!==s,v;e:{if(!s){v=null;break e}if(U(s)){let $;e[2]===s?$=e[3]:($=s,e[2]=s,e[3]=$),v=$;break e}v=s}let R=v,C;e[4]===n?C=e[5]:(C=$=>{n(De($)),m(!1),g("")},e[4]=n,e[5]=C);let A=C,T;e[6]===n?T=e[7]:(T=$=>{n($),m(!1),g("")},e[6]=n,e[7]=T);let L=T,D;e[8]===n?D=e[9]:(D=()=>{n(""),g(""),m(!1)},e[8]=n,e[9]=D);let ae=D,K;e[10]===p?K=e[11]:(K=ce("flex w-full min-w-48 mb-1 items-center gap-1",p),e[10]=p,e[11]=K);let de;e[12]===Symbol.for("react.memo_cache_sentinel")?(de=$=>{m($),$||g("")},e[12]=de):de=e[12];let H;e[13]===s?H=e[14]:(H=ce("flex h-6 min-w-0 flex-1 shadow-xs-solid items-center justify-between","rounded-sm border border-input bg-background px-1.5 text-sm font-code ring-offset-background placeholder:text-muted-foreground","hover:shadow-sm-solid focus:outline-hidden focus:ring-1 focus:ring-ring focus:border-primary focus:shadow-md-solid",U(s)&&"bg-accent"),e[13]=s,e[14]=H);let z;e[15]!==R||e[16]!==r||e[17]!==s?(z=(0,o.jsx)("span",{className:"truncate flex-1 min-w-0 text-left flex items-center gap-1.5",children:R?(0,o.jsxs)(o.Fragment,{children:[U(s)&&(0,o.jsx)(Se,{className:"h-3 w-3 shrink-0 opacity-70"}),(0,o.jsx)("span",{className:"truncate",children:R})]}):(0,o.jsx)("span",{className:"text-muted-foreground",children:r})}),e[15]=R,e[16]=r,e[17]=s,e[18]=z):z=e[18];let pe;e[19]===Symbol.for("react.memo_cache_sentinel")?(pe=(0,o.jsx)(Ot,{className:"ml-1 h-4 w-4 opacity-50 shrink-0"}),e[19]=pe):pe=e[19];let W;e[20]!==f||e[21]!==z||e[22]!==H?(W=(0,o.jsx)(Rt,{asChild:!0,children:(0,o.jsxs)("button",{type:"button",className:H,"aria-expanded":f,children:[z,pe]})}),e[20]=f,e[21]=z,e[22]=H,e[23]=W):W=e[23];let we=h?"Search secrets...":"Type a value or search secrets...",G;e[24]!==b||e[25]!==we?(G=(0,o.jsx)(us,{placeholder:we,rootClassName:"px-1 h-8",autoFocus:!0,value:b,onValueChange:g}),e[24]=b,e[25]=we,e[26]=G):G=e[26];let V;e[27]!==L||e[28]!==k||e[29]!==S?(V=k&&(0,o.jsx)(fe,{children:(0,o.jsxs)(ge,{value:`use custom value ${S}`,onSelect:()=>L(S),children:['Use "',S,'"']})}),e[27]=L,e[28]=k,e[29]=S,e[30]=V):V=e[30];let Z;e[31]===k?Z=e[32]:(Z=k&&(0,o.jsx)(ke,{}),e[31]=k,e[32]=Z);let xe=`create new secret ${S}`,Q;e[33]!==d||e[34]!==S?(Q=()=>{let $=S||void 0;m(!1),g(""),d($)},e[33]=d,e[34]=S,e[35]=Q):Q=e[35];let he;e[36]===Symbol.for("react.memo_cache_sentinel")?(he=(0,o.jsx)(Ut,{className:"mr-2 h-3.5 w-3.5"}),e[36]=he):he=e[36];let J;e[37]!==xe||e[38]!==Q?(J=(0,o.jsx)(fe,{className:"mt-0",children:(0,o.jsxs)(ge,{value:xe,onSelect:Q,children:[he,"Create a new secret"]})}),e[37]=xe,e[38]=Q,e[39]=J):J=e[39];let Y;e[40]!==i||e[41]!==A?(Y=i.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ke,{className:"mt-0"}),(0,o.jsx)(fe,{heading:"Recommended",children:i.map($=>(0,o.jsxs)(ge,{value:$,onSelect:()=>A($),children:[(0,o.jsx)(Se,{className:"mr-2 h-3 w-3 opacity-70"}),$]},$))})]}),e[40]=i,e[41]=A,e[42]=Y):Y=e[42];let X;e[43]!==a||e[44]!==i.length||e[45]!==A?(X=a.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ke,{className:"mt-0"}),(0,o.jsx)(fe,{heading:i.length>0?"Other":void 0,children:a.map($=>(0,o.jsxs)(ge,{value:$,onSelect:()=>A($),children:[(0,o.jsx)(Se,{className:"mr-2 h-3 w-3 opacity-70"}),$]},$))})]}),e[43]=a,e[44]=i.length,e[45]=A,e[46]=X):X=e[46];let ee;e[47]!==V||e[48]!==Z||e[49]!==J||e[50]!==Y||e[51]!==X?(ee=(0,o.jsxs)(bs,{className:"max-h-60 overscroll-contain",children:[V,Z,J,Y,X]}),e[47]=V,e[48]=Z,e[49]=J,e[50]=Y,e[51]=X,e[52]=ee):ee=e[52];let te;e[53]!==G||e[54]!==ee?(te=(0,o.jsx)(Tt,{className:"w-(--radix-popover-trigger-width) p-0",align:"start",children:(0,o.jsxs)(fs,{children:[G,ee]})}),e[53]=G,e[54]=ee,e[55]=te):te=e[55];let se;e[56]!==f||e[57]!==W||e[58]!==te?(se=(0,o.jsxs)(Nt,{modal:!0,open:f,onOpenChange:de,children:[W,te]}),e[56]=f,e[57]=W,e[58]=te,e[59]=se):se=e[59];let re;e[60]!==ae||e[61]!==s?(re=s&&(0,o.jsx)("button",{type:"button","aria-label":"Clear",className:ce("flex h-6 w-6 shrink-0 items-center justify-center rounded-sm","text-muted-foreground hover:bg-muted hover:text-foreground","focus:outline-hidden focus:ring-1 focus:ring-ring"),onClick:ae,children:(0,o.jsx)(Mt,{className:"h-3.5 w-3.5"})}),e[60]=ae,e[61]=s,e[62]=re):re=e[62];let me;return e[63]!==se||e[64]!==re||e[65]!==K?(me=(0,o.jsxs)("div",{className:K,children:[se,re]}),e[63]=se,e[64]=re,e[65]=K,e[66]=me):me=e[66],me};var js=M(),Fe=(0,F.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:$t.NOOP});const Cs=()=>(0,F.use)(Fe),As=t=>{let e=(0,js.c)(14),{children:s}=t,n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];let{data:r,isPending:l,error:i,refetch:a}=ms(Is,n);r==null||r.secretKeys,r==null||r.providerNames;let d;e[1]===(r==null?void 0:r.secretKeys)?d=e[2]:(d=(r==null?void 0:r.secretKeys)||[],e[1]=r==null?void 0:r.secretKeys,e[2]=d);let p;e[3]===(r==null?void 0:r.providerNames)?p=e[4]:(p=(r==null?void 0:r.providerNames)||[],e[3]=r==null?void 0:r.providerNames,e[4]=p);let h;e[5]!==i||e[6]!==l||e[7]!==a||e[8]!==d||e[9]!==p?(h={secretKeys:d,providerNames:p,loading:l,error:i,refreshSecrets:a},e[5]=i,e[6]=l,e[7]=a,e[8]=d,e[9]=p,e[10]=h):h=e[10];let f=h,m;return e[11]!==s||e[12]!==f?(m=(0,o.jsx)(Fe,{value:f,children:s}),e[11]=s,e[12]=f,e[13]=m):m=e[13],m},Rs={isMatch:t=>{if(t instanceof kt){let{optionRegex:e}=c.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:n,providerNames:r,refreshSecrets:l}=Cs(),{openModal:i,closeModal:a}=ls(),{label:d,description:p,placeholder:h,optionRegex:f="",inputType:m}=c.parse(t.description||""),b=m==="password",{recommended:g,other:x}=vs(n,f);return(0,o.jsx)(Vt,{control:e.control,name:s,render:({field:S})=>(0,o.jsxs)(Jt,{children:[(0,o.jsx)(ts,{children:d}),(0,o.jsx)(Yt,{children:p}),(0,o.jsx)(Gt,{children:(0,o.jsx)($s,{value:S.value?String(S.value):"",onChange:S.onChange,placeholder:h,secretsOnly:b,recommendedKeys:g,otherKeys:x,onCreateSecret:k=>{i((0,o.jsx)(xs,{providerNames:r,initialValue:k,onSuccess:v=>{l(),S.onChange(De(v)),a()},onClose:a}))}})}),(0,o.jsx)(Zt,{})]})})}};function Ts(t){return t.provider!=="env"}function Ls(t){return t.name}function Ns(t){return t.keys}async function Is(){let t=await _s.request({}),e=ws(t.secrets).filter(Ts).map(Ls);return{secretKeys:t.secrets.flatMap(Ns).toSorted(),providerNames:e}}var le=M(),Ds=[Rs];const je=t=>{let e=(0,le.c)(2),{children:s}=t,n;return e[0]===s?n=e[1]:(n=(0,o.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:s}),e[0]=s,e[1]=n),n},Ce=t=>{let e=(0,le.c)(9),{name:s,color:n,icon:r,onSelect:l}=t,i;e[0]===n?i=e[1]:(i={backgroundColor:n},e[0]=n,e[1]=i);let a;e[2]===s?a=e[3]:(a=(0,o.jsx)("span",{className:"text-white font-medium text-lg",children:s}),e[2]=s,e[3]=a);let d;return e[4]!==r||e[5]!==l||e[6]!==i||e[7]!==a?(d=(0,o.jsxs)("button",{type:"button",className:"py-3 flex flex-col items-center justify-center gap-1 transition-all hover:scale-105 hover:brightness-110 rounded shadow-sm-solid hover:shadow-md-solid",style:i,onClick:l,children:[r,a]}),e[4]=r,e[5]=l,e[6]=i,e[7]=a,e[8]=d):d=e[8],d},Ps=t=>{let e=(0,le.c)(25),{onBack:s,isValid:n,libraries:r,preferredLibrary:l,onLibraryChange:i,displayNames:a,libraryLabel:d}=t,p=d===void 0?"Preferred library":d,h;e[0]===s?h=e[1]:(h=(0,o.jsx)(Ie,{type:"button",variant:"outline",onClick:s,children:"Back"}),e[0]=s,e[1]=h);let f=!n,m;e[2]===f?m=e[3]:(m=(0,o.jsx)(Ie,{type:"submit",disabled:f,children:"Add"}),e[2]=f,e[3]=m);let b;e[4]!==h||e[5]!==m?(b=(0,o.jsxs)("div",{className:"flex gap-2",children:[h,m]}),e[4]=h,e[5]=m,e[6]=b):b=e[6];let g;e[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,o.jsx)(Et,{children:(0,o.jsx)(It,{placeholder:"Select a library"})}),e[7]=g):g=e[7];let x;e[8]===p?x=e[9]:(x=(0,o.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[g,(0,o.jsx)("span",{className:"text-xs text-muted-foreground",children:p})]}),e[8]=p,e[9]=x);let S;if(e[10]!==a||e[11]!==r){let C;e[13]===a?C=e[14]:(C=A=>(0,o.jsx)(Dt,{value:A,children:a[A]??A},A),e[13]=a,e[14]=C),S=r.map(C),e[10]=a,e[11]=r,e[12]=S}else S=e[12];let k;e[15]===S?k=e[16]:(k=(0,o.jsx)(Pt,{children:(0,o.jsx)(Ft,{children:S})}),e[15]=S,e[16]=k);let v;e[17]!==i||e[18]!==l||e[19]!==x||e[20]!==k?(v=(0,o.jsx)("div",{children:(0,o.jsxs)(qt,{value:l,onValueChange:i,children:[x,k]})}),e[17]=i,e[18]=l,e[19]=x,e[20]=k,e[21]=v):v=e[21];let R;return e[22]!==v||e[23]!==b?(R=(0,o.jsxs)("div",{className:"flex gap-2 justify-between",children:[b,v]}),e[22]=v,e[23]=b,e[24]=R):R=e[24],R};function Fs(){let t=(0,le.c)(4),{createNewCell:e}=St(),s=hs(),n=wt(jt),r;return t[0]!==n||t[1]!==e||t[2]!==s?(r=l=>{/\bmo\./.test(l)&&ps({autoInstantiate:n,createNewCell:e,fromCellId:s}),e({code:l,before:!1,cellId:s??"__end__",skipIfCodeExists:!0})},t[0]=n,t[1]=e,t[2]=s,t[3]=r):r=t[3],r}const Ee=t=>{let e=(0,le.c)(30),{schema:s,libraries:n,preferredLibrary:r,displayNames:l,libraryLabel:i,generateCode:a,onSubmit:d,onBack:p}=t,h;e[0]===s?h=e[1]:(h=Ht(s),e[0]=s,e[1]=h);let f=h,m;e[2]===s?m=e[3]:(m=Xt(s),e[2]=s,e[3]=m);let b;e[4]!==f||e[5]!==m?(b={defaultValues:f,resolver:m,reValidateMode:"onChange"},e[4]=f,e[5]=m,e[6]=b):b=e[6];let g=Qt(b),[x,S]=F.useState(r),k=Fs(),v;e[7]!==a||e[8]!==k||e[9]!==d||e[10]!==x?(v=ae=>{k(a(ae,x)),d()},e[7]=a,e[8]=k,e[9]=d,e[10]=x,e[11]=v):v=e[11];let R=v,C;e[12]!==g||e[13]!==R?(C=g.handleSubmit(R),e[12]=g,e[13]=R,e[14]=C):C=e[14];let A;e[15]===Symbol.for("react.memo_cache_sentinel")?(A=(0,o.jsx)(es,{}),e[15]=A):A=e[15];let T;e[16]!==g||e[17]!==s?(T=(0,o.jsx)(As,{children:(0,o.jsx)(zt,{schema:s,form:g,renderers:Ds,children:A})}),e[16]=g,e[17]=s,e[18]=T):T=e[18];let L;e[19]!==l||e[20]!==g.formState.isValid||e[21]!==n||e[22]!==i||e[23]!==p||e[24]!==x?(L=(0,o.jsx)(Ps,{onBack:p,isValid:g.formState.isValid,libraries:n,preferredLibrary:x,onLibraryChange:S,displayNames:l,libraryLabel:i}),e[19]=l,e[20]=g.formState.isValid,e[21]=n,e[22]=i,e[23]=p,e[24]=x,e[25]=L):L=e[25];let D;return e[26]!==C||e[27]!==T||e[28]!==L?(D=(0,o.jsxs)("form",{onSubmit:C,className:"space-y-4",children:[T,L]}),e[26]=C,e[27]=T,e[28]=L,e[29]=D):D=e[29],D};function q(){return u().optional().describe(c.of({label:"Password",inputType:"password",optionRegex:"(password|passwd|pgpassword|db.?pass(word)?)"}))}function ye(t,e){let s=u();return s=e?s.nonempty():s.optional(),s=s.describe(c.of({label:t||"Token",inputType:"password",optionRegex:"(token|api.?key|access.?token|auth.?token|(^|_)pat(_|$))"})),s}function _e(){return u().optional().describe(c.of({label:"Warehouse Name",optionRegex:"(warehouse|snowflake.?warehouse)"}))}function Ae(t,e){let s=u();return s=e?s.nonempty():s.optional(),s.describe(c.of({label:t||"URI",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"}))}function E(t){return u().nonempty().describe(c.of({label:t||"Host",optionRegex:"^(?!.*(kubernetes|gpg)).*(host(name)?|pghost|db.?host|database.?host|mysql.?host|postgres.?host|server.?host)"}))}function N(){return u().describe(c.of({label:"Database",optionRegex:"(database|db.?name|pgdatabase|^DB$|^DATABASE$)"}))}function Es(){return u().describe(c.of({label:"Schema",optionRegex:"(^SCHEMA$|db.?schema|postgres.?schema|pg.?schema|_SCHEMA$)"}))}function I(){return u().nonempty().describe(c.of({label:"Username",optionRegex:"(username|pguser|db.?user|^USER$|_USER$)"}))}function B(t){let e=vt().describe(c.of({label:"Port",inputType:"number",placeholder:t==null?void 0:t.toString()})).transform(Number).refine(s=>s>=0&&s<=65535,{message:"Port must be between 0 and 65535"});return t===void 0?e:e.default(t)}function qe(){return P().default(!1).describe(c.of({label:"Read Only"}))}const Be=_({type:w("postgres"),host:E(),port:B(5432).optional(),database:N(),username:I(),password:q(),ssl:P().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),Oe=_({type:w("mysql"),host:E(),port:B(3306),database:N(),username:I(),password:q(),ssl:P().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),Me=_({type:w("sqlite"),database:N().describe(c.of({label:"Database Path"}))}).describe(c.of({direction:"two-columns"})),Ue=_({type:w("duckdb"),database:N().describe(c.of({label:"Database Path"})),read_only:qe()}).describe(c.of({direction:"two-columns"})),Ke=_({type:w("motherduck"),database:N().default("my_db").describe(c.of({label:"Database Name"})),token:ye()}).describe(c.of({direction:"two-columns"})),He=_({type:w("snowflake"),account:u().nonempty().describe(c.of({label:"Account",optionRegex:"(snowflake.?account|^SNOWFLAKE_ACCOUNT$|account.?id)"})),warehouse:u().optional().describe(c.of({label:"Warehouse",optionRegex:"(snowflake.?warehouse|warehouse)"})),database:N(),schema:u().optional().describe(c.of({label:"Schema",optionRegex:"(snowflake.?schema|^SCHEMA$|_SCHEMA$)"})),role:u().optional().describe(c.of({label:"Role"})),authType:ne("type",[_({type:w("Password"),username:I(),password:q(),enable_mfa:P().default(!1).describe(c.of({label:"Enable MFA (Duo Push)"}))}),_({type:w("SSO (Browser)"),username:I()}),_({type:w("Key Pair"),username:I(),private_key_path:u().nonempty().describe(c.of({label:"Private Key Path",placeholder:"/path/to/rsa_key.p8"})),private_key_passphrase:u().optional().describe(c.of({label:"Private Key Passphrase",inputType:"password",optionRegex:"(passphrase|private.?key.?passphrase|key.?passphrase)"}))}),_({type:w("OAuth / PAT"),token:ye("Token",!0)})]).default({type:"Password",username:"username",enable_mfa:!1}).describe(c.of({special:"tabs"}))}).describe(c.of({direction:"two-columns"})),ze=_({type:w("bigquery"),project:u().nonempty().describe(c.of({label:"Project ID",optionRegex:"(bigquery.?project|gcp.?project|google.?cloud.?project|project.?id)"})),dataset:u().nonempty().describe(c.of({label:"Dataset",optionRegex:"(bigquery.?dataset|dataset)"})),credentials_json:u().describe(c.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),We=_({type:w("clickhouse_connect"),host:E(),port:B(8123).optional(),username:I(),password:q(),secure:P().default(!1).describe(c.of({label:"Use HTTPs"})),proxy_path:u().optional().describe(c.of({label:"Proxy Path",placeholder:"/clickhouse"}))}).describe(c.of({direction:"two-columns"})),Ge=_({type:w("timeplus"),host:E().default("localhost"),port:B(8123).optional(),username:I().default("default"),password:q().default("")}).describe(c.of({direction:"two-columns"})),Ve=_({type:w("chdb"),database:N().describe(c.of({label:"Database Path"})),read_only:qe()}).describe(c.of({direction:"two-columns"})),Ze=_({type:w("trino"),host:E(),port:B(8080),database:N(),schema:Es().optional(),username:I(),password:q(),async_support:P().default(!1).describe(c.of({label:"Async Support"}))}).describe(c.of({direction:"two-columns"})),Qe=_({type:w("iceberg"),name:u().describe(c.of({label:"Catalog Name"})),catalog:ne("type",[_({type:w("REST"),warehouse:_e(),uri:u().optional().describe(c.of({label:"URI",placeholder:"https://",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"})),token:ye()}),_({type:w("SQL"),warehouse:_e(),uri:u().optional().describe(c.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"}))}),_({type:w("Hive"),warehouse:_e(),uri:Ae()}),_({type:w("Glue"),warehouse:_e(),uri:Ae()}),_({type:w("DynamoDB"),"dynamodb.profile-name":u().optional().describe(c.of({label:"Profile Name"})),"dynamodb.region":u().optional().describe(c.of({label:"Region"})),"dynamodb.access-key-id":u().optional().describe(c.of({label:"Access Key ID",inputType:"password",optionRegex:"(access.?key.?id|aws.?access.?key)"})),"dynamodb.secret-access-key":u().optional().describe(c.of({label:"Secret Access Key",inputType:"password",optionRegex:"(secret.?access.?key|aws.?secret)"})),"dynamodb.session-token":u().optional().describe(c.of({label:"Session Token",inputType:"password",optionRegex:"(session.?token|aws.?session)"}))})]).default({type:"REST",token:void 0}).describe(c.of({special:"tabs"}))}),Je=_({type:w("datafusion"),sessionContext:P().optional().describe(c.of({label:"Use Session Context"}))}),Ye=_({type:w("pyspark"),host:E().optional(),port:B().optional()}),Xe=_({type:w("redshift"),host:E(),port:B(5439),connectionType:ne("type",[_({type:w("IAM credentials"),region:u().describe(c.of({label:"Region"})),aws_access_key_id:u().nonempty().describe(c.of({label:"AWS Access Key ID",inputType:"password",optionRegex:"(access.?key.?id|aws.?access.?key)"})),aws_secret_access_key:u().nonempty().describe(c.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:"(secret.?access.?key|aws.?secret)"})),aws_session_token:u().optional().describe(c.of({label:"AWS Session Token",inputType:"password",optionRegex:"(session.?token|aws.?session)"}))}),_({type:w("DB credentials"),user:I(),password:q()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:N()}).describe(c.of({direction:"two-columns"})),et=_({type:w("databricks"),access_token:ye("Access Token",!0),server_hostname:E("Server Hostname"),http_path:Ae("HTTP Path",!0),catalog:u().optional().describe(c.of({label:"Catalog"})),schema:u().optional().describe(c.of({label:"Schema"}))}).describe(c.of({direction:"two-columns"})),tt=_({type:w("supabase"),host:E(),port:B(5432).optional(),database:N(),username:I(),password:q(),disable_client_pooling:P().default(!1).describe(c.of({label:"Disable Client-Side Pooling"}))}).describe(c.of({direction:"two-columns"})),qs=ne("type",[Be,Oe,Me,Ue,Ke,He,ze,We,Ge,Ve,Ze,Qe,Je,Ye,Xe,et,tt]),st={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var j=class{constructor(t,e,s){this.connection=t,this.orm=e,this.secrets=s}get imports(){let t=new Set(this.generateImports());switch(this.orm){case"sqlalchemy":t.add("import sqlalchemy");break;case"sqlmodel":t.add("import sqlmodel");break;case"duckdb":t.add("import duckdb");break;case"ibis":t.add("import ibis");break}return t}},Bs=t=>`_${t}`,Os=class{constructor(){ue(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=Bs(t),U(e)){let n=Pe(e),r=s?`os.environ.get("${n}", "${s}")`:`os.environ.get("${n}")`;return this.secrets[t]=r,t}if(s!=null){let n=`os.environ.get("${e}", "${s}")`;return this.secrets[t]=n,t}return typeof e=="number"||typeof e=="number"?`${e}`:typeof e=="boolean"?oe(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return oe(e);let n=this.print(t,e,s);return n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1):`{${n}}`}printPassword(t,e,s,n){let r=s?this.printInFString.bind(this):this.print.bind(this);return U(t)?r(n||"password",t):r(n||"password",e,t)}getSecrets(){return this.secrets}formatSecrets(){return Object.keys(this.secrets).length===0?"":Object.entries(this.secrets).map(([t,e])=>`${t} = ${e}`).join(`
|
|
2
2
|
`)}},Ms=class extends j{generateImports(){return[]}generateConnectionCode(){let t=this.connection.ssl?", connect_args={'sslmode': 'require'}":"",e=this.secrets.printPassword(this.connection.password,"POSTGRES_PASSWORD",!0);return y(`
|
|
3
3
|
DATABASE_URL = f"postgresql://${this.secrets.printInFString("username",this.connection.username)}:${e}@${this.secrets.printInFString("host",this.connection.host)}:${this.secrets.printInFString("port",this.connection.port)}/${this.secrets.printInFString("database",this.connection.database)}"
|
|
4
4
|
engine = ${this.orm}.create_engine(DATABASE_URL${t})
|