@omniviewdev/runtime 0.9.2 → 0.10.0
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/api.cjs +1 -1
- package/dist/api.d.ts +1 -0
- package/dist/api.js +173 -113
- package/dist/bindings/events/index.d.ts +28 -0
- package/dist/bindings/github.com/omniviewdev/omniview/backend/window/index.d.ts +3 -0
- package/dist/bindings/github.com/omniviewdev/omniview/backend/window/models.d.ts +190 -0
- package/dist/bindings/github.com/omniviewdev/omniview/backend/window/service.d.ts +83 -0
- package/dist/context/index.d.ts +1 -0
- package/dist/context/windows/WindowActionsContext.d.ts +31 -0
- package/dist/context/windows/activePageNavigator.d.ts +13 -0
- package/dist/context/windows/index.d.ts +2 -0
- package/dist/index.cjs +4 -4
- package/dist/index.js +1441 -1394
- package/dist/models-BxypsesT.cjs +1 -0
- package/dist/models-C6jzDokQ.js +347 -0
- package/dist/models.cjs +1 -1
- package/dist/models.d.ts +1 -0
- package/dist/models.js +29 -28
- package/dist/router/Link.d.ts +3 -0
- package/package.json +3 -3
- package/dist/models-DU8pTcoZ.js +0 -142
- package/dist/models-KV9f8Ceh.cjs +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
2
|
-
`);return{message:e||(t.title!=="Error"?t.title:"Operation failed"),status:"error",details:r,actions:t.actions?.map(xt)}}function Ce(t,e,r){if(je(e))return;const n=ye(e);t(Dt(n,r))}function ue(t,e){return r=>{if(je(r))return;const n=ye(r);t(Dt(n,n.title!=="Error"?n.title:e))}}function hn(t){const e=j.c(2);let r;return e[0]!==t?(r=T.jsx(gn,{...t},t.pluginId),e[0]=t,e[1]=r):r=e[1],r}function gn(t){const e=j.c(40),{children:r,pluginId:n,headless:s}=t,i=s===void 0?!1:s;let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o={},e[0]=o):o=e[0];const[u,l]=x.useState(o);let a;e[1]===Symbol.for("react.memo_cache_sentinel")?(a=new ae.PluginMeta,e[1]=a):a=e[1];const[c,p]=x.useState(a),[f,g]=x.useState(!1),[h,v]=x.useState(null),d=x.useRef(0),m=x.useRef(0);console.debug("[PluginContextProvider] render",{pluginId:n,metaLoaded:f,metaError:!!h});let y;e[2]!==n?(y=()=>{if(n===void 0||n==="")return;const N=d.current=d.current+1;console.debug(`[PluginContextProvider] fetching settings for "${n}"`),F.PluginValues(n).then(P=>{N===d.current&&(console.debug(`[PluginContextProvider] settings loaded for "${n}"`,Object.keys(P)),l(P))}).catch(P=>{if(N!==d.current)return;const M=ye(P);console.error(`[PluginContextProvider] error fetching settings for "${n}":`,M.detail)})},e[2]=n,e[3]=y):y=e[3];const S=y;let E;e[4]!==n?(E=()=>{if(n===void 0||n===""){console.debug("[PluginContextProvider] skipping meta fetch — empty pluginId");return}const N=m.current=m.current+1;console.debug(`[PluginContextProvider] fetching meta for "${n}"`),F.GetPluginMeta(n).then(P=>{N===m.current&&(console.debug(`[PluginContextProvider] meta loaded for "${n}"`,{name:P?.name,version:P?.version}),p(P),g(!0))}).catch(P=>{if(N!==m.current)return;const M=ye(P);console.error(`[PluginContextProvider] error fetching meta for "${n}":`,M.detail),v(M.detail),g(!1)})},e[4]=n,e[5]=E):E=e[5];const w=E;let b,I;e[6]!==w||e[7]!==S||e[8]!==f||e[9]!==n?(b=()=>{if(f)return;const N=()=>{v(null),S(),w()},P=[Z.On("plugin/init_complete",N),Z.On("plugin/dev_install_complete",M=>{M.data?.id===n&&N()}),Z.On("plugin/inventory_changed",N)];return()=>{for(const M of P)M()}},I=[n,f,S,w],e[6]=w,e[7]=S,e[8]=f,e[9]=n,e[10]=b,e[11]=I):(b=e[10],I=e[11]),x.useEffect(b,I);let C,D;if(e[12]!==w||e[13]!==S||e[14]!==n?(C=()=>(console.debug(`[PluginContextProvider] useEffect — pluginId changed to "${n}"`),S(),w(),()=>{d.current=d.current+1,m.current=m.current+1}),D=[n,S,w],e[12]=w,e[13]=S,e[14]=n,e[15]=C,e[16]=D):(C=e[15],D=e[16]),x.useEffect(C,D),h){if(i)throw new Error(h);let N,P,M;e[17]===Symbol.for("react.memo_cache_sentinel")?(M={display:"flex",flex:1,alignItems:"center",justifyContent:"center",padding:24},N={maxWidth:480,width:"100%",border:"1px solid #7F1D1D",borderRadius:8,backgroundColor:"#1C1917",padding:20,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},P={display:"flex",alignItems:"center",gap:8,marginBottom:12},e[17]=N,e[18]=P,e[19]=M):(N=e[17],P=e[18],M=e[19]);let U,W;e[20]===Symbol.for("react.memo_cache_sentinel")?(U=T.jsxs("div",{style:P,children:[T.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"#EF4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[T.jsx("circle",{cx:"12",cy:"12",r:"10"}),T.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),T.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),T.jsx("span",{style:{fontSize:14,fontWeight:600,color:"#FECACA"},children:"Plugin failed to load"})]}),W={fontSize:13,color:"#A1A1AA",margin:"0 0 16px"},e[20]=U,e[21]=W):(U=e[20],W=e[21]);let z;e[22]!==h?(z=T.jsx("p",{style:W,children:h}),e[22]=h,e[23]=z):z=e[23];let X;e[24]!==w?(X=()=>{v(null),w()},e[24]=w,e[25]=X):X=e[25];let ee;e[26]===Symbol.for("react.memo_cache_sentinel")?(ee={background:"transparent",color:"#F87171",border:"1px solid #7F1D1D",borderRadius:6,padding:"6px 14px",fontSize:13,fontWeight:500,cursor:"pointer"},e[26]=ee):ee=e[26];let B;e[27]!==X?(B=T.jsx("button",{onClick:X,style:ee,children:"Retry"}),e[27]=X,e[28]=B):B=e[28];let Y;return e[29]!==z||e[30]!==B?(Y=T.jsx("div",{style:M,children:T.jsxs("div",{style:N,children:[U,z,B]})}),e[29]=z,e[30]=B,e[31]=Y):Y=e[31],Y}if(!f){if(i)return null;let N;return e[32]===Symbol.for("react.memo_cache_sentinel")?(N=T.jsxs("div",{style:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[T.jsx("div",{style:{width:24,height:24,border:"2px solid #3F3F46",borderTopColor:"#A1A1AA",borderRadius:"50%",animation:"plugin-spin 0.8s linear infinite"}}),T.jsx("style",{children:"@keyframes plugin-spin { to { transform: rotate(360deg); } }"})]}),e[32]=N):N=e[32],N}let O;e[33]!==c||e[34]!==n||e[35]!==u?(O={pluginId:n,settings:u,meta:c},e[33]=c,e[34]=n,e[35]=u,e[36]=O):O=e[36];let k;return e[37]!==r||e[38]!==O?(k=T.jsx(ze.Provider,{value:O,children:r}),e[37]=r,e[38]=O,e[39]=k):k=e[39],k}function He(){const t=x.useContext(ze);if(!t)throw new Error("usePluginContext must be used within a PluginContextProvider");return t}function yn(){return He().settings}const dt=x.createContext(void 0),mn=t=>{const e=j.c(10),{children:r}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n={},e[0]=n):n=e[0];const[s,i]=x.useState(n),o=x.useRef(0);let u;e[1]===Symbol.for("react.memo_cache_sentinel")?(u=()=>{const v=o.current+1;o.current=v,F.Values().then(d=>{v===o.current&&i(d)}).catch(d=>{v===o.current&&console.error("Error fetching settings:",d)})},e[1]=u):u=e[1];const l=u;let a,c;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=()=>{const v=Z.On("settings/changed",()=>l());return l(),()=>{o.current=o.current+1,v()}},c=[l],e[2]=a,e[3]=c):(a=e[2],c=e[3]),x.useEffect(a,c);let p;e[4]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{l()},e[4]=p):p=e[4];const f=p;let g;e[5]!==s?(g={settings:s,reload:f},e[5]=s,e[6]=g):g=e[6];let h;return e[7]!==r||e[8]!==g?(h=T.jsx(dt.Provider,{value:g,children:r}),e[7]=r,e[8]=g,e[9]=h):h=e[9],h},Rt={height:32,focused:0,tabs:[],createTab:()=>{},createTabs:()=>{},updateTab:()=>{},focusTab:()=>{},reorderTab:()=>{},closeTab:()=>{},closeTabs:()=>{},resizeDrawer:()=>{},closeDrawer:()=>{},fullscreenDrawer:()=>{}},Ot=x.createContext(Rt),Tt=x.createContext(void 0),Pt=x.createContext(void 0),ft=x.createContext(void 0),vn=3e4,Sn=t=>{const e=j.c(12),{children:r}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[s,i]=x.useState(n);let o;e[1]===Symbol.for("react.memo_cache_sentinel")?(o=m=>{i(y=>[m,...y])},e[1]=o):o=e[1];const u=o;let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=(m,y)=>{i(S=>S.map(E=>E.id===m?{...E,...y}:E))},e[2]=l):l=e[2];const a=l;let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=m=>{i(y=>y.filter(S=>S.id!==m))},e[3]=c):c=e[3];const p=c;let f,g;e[4]!==s?(f=()=>{const m=[];for(const y of s)if(y.status!=="running"){const S=Date.now()-(y.completedAt??y.startedAt),E=Math.max(0,vn-S);m.push(setTimeout(()=>p(y.id),E))}return()=>m.forEach(clearTimeout)},g=[s,p],e[4]=s,e[5]=f,e[6]=g):(f=e[5],g=e[6]),x.useEffect(f,g);let h;e[7]!==s?(h={operations:s,addOperation:u,updateOperation:a,removeOperation:p},e[7]=s,e[8]=h):h=e[8];const v=h;let d;return e[9]!==r||e[10]!==v?(d=T.jsx(ft.Provider,{value:v,children:r}),e[9]=r,e[10]=v,e[11]=d):d=e[11],d};var at=function(t,e){return at=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(r[s]=n[s])},at(t,e)};function En(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");at(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var tt="Invariant Violation",bt=Object.setPrototypeOf,_n=bt===void 0?function(t,e){return t.__proto__=e,t}:bt,bn=(function(t){En(e,t);function e(r){r===void 0&&(r=tt);var n=t.call(this,typeof r=="number"?tt+": "+r+" (see https://github.com/apollographql/invariant-packages)":r)||this;return n.framesToPop=1,n.name=tt,_n(n,e.prototype),n}return e})(Error);function lt(t,e){if(!t)throw new bn(e)}var At=["debug","log","warn","error","silent"],Cn=At.indexOf("log");function Qe(t){return function(){if(At.indexOf(t)>=Cn){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=Qe("debug"),t.log=Qe("log"),t.warn=Qe("warn"),t.error=Qe("error")})(lt||(lt={}));const Nt=x.createContext(void 0),Ft=()=>x.useContext(Nt);function pt(t){const e=j.c(6),r=Ft(),n=x.useRef(null);let s;e[0]!==t||e[1]!==r?(s=l=>{let a=r?.getExtensionPoint(t),c=a?.subscribe(l);const p=r?.subscribe(()=>{const f=r.getExtensionPoint(t);f!==a&&(c?.(),a=f,c=a?.subscribe(l)),l()});return()=>{c?.(),p?.()}},e[0]=t,e[1]=r,e[2]=s):s=e[2];const i=s;let o;e[3]!==t||e[4]!==r?(o=()=>{const l=r?.getExtensionPoint(t),a=l?.version??-1,c=n.current;if(c&&c.store===l&&c.version===a)return c;const p={store:l,version:a,contributions:l?.listAll()??[]};return n.current=p,p},e[3]=t,e[4]=r,e[5]=o):o=e[5];const u=o;return x.useSyncExternalStore(i,u,u)}function wn(t){return pt(t).store}const In=t=>{const e=j.c(5),{registry:r,children:n}=t;let s;e[0]!==r?(s=()=>r,e[0]=r,e[1]=s):s=e[1];const[i]=x.useState(s);lt(i===r,"You can't change the extension registry after it has been rendered");let o;return e[2]!==n||e[3]!==i?(o=T.jsx(Nt.Provider,{value:i,children:n}),e[2]=n,e[3]=i,e[4]=o):o=e[4],o},nt=t=>{if(!t||typeof t!="string")throw new TypeError(`extensionName is required to be a string and can't be: "${t}" (${typeof t})`);return t.trim()};class kt{id;mode;_pluginId;_version=0;_contributions=new Map;_lookupCache=new Map;_matcher;_select;_listeners=new Set;constructor(e){this.id=e.id,this.mode=e.mode??"multiple",this._pluginId=e.pluginId,this._matcher=e.matcher,this._select=e.select}get pluginId(){return this._pluginId}get version(){return this._version}register(e){if(this._contributions.has(e.id))throw new Error(`Contribution with id "${e.id}" already exists in extension point "${this.id}"`);this._contributions.set(e.id,e),this._invalidateCache(),this._notify()}unregister(e){this._contributions.delete(e)&&(this._invalidateCache(),this._notify())}provide(e){return this._getMatched(e).map(n=>n.value)}list(e){return this._getMatched(e)}listAll(){return Array.from(this._contributions.values())}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}removeContributionsByPlugin(e){let r=!1;for(const[n,s]of this._contributions)s.plugin===e&&(this._contributions.delete(n),r=!0);r&&(this._invalidateCache(),this._notify())}_getMatched(e){const r=this._getCacheKey(e);if(r!=null){const s=this._lookupCache.get(r);if(s){const i=s.map(o=>this._contributions.get(o)).filter(o=>o!=null);return this._applyMode(i,e)}}let n=this._sortDeterministic(Array.from(this._contributions.values()));return this._matcher&&e!==void 0&&(n=n.filter(s=>this._matcher(s,e))),r!=null&&this._lookupCache.set(r,n.map(s=>s.id)),this._applyMode(n,e)}_applyMode(e,r){if(this.mode==="single"){if(this._select){const n=this._select(e,r);return n?[n]:[]}return e.length>0?[e[0]]:[]}return e}_sortDeterministic(e){return[...e].sort((r,n)=>{const s=r.plugin.localeCompare(n.plugin);return s!==0?s:r.id.localeCompare(n.id)})}_getCacheKey(e){if(e!=null&&typeof e=="object"&&"getCacheKey"in e){const r=e.getCacheKey;if(typeof r=="function")return r()}}_invalidateCache(){this._lookupCache.clear()}_notify(){this._version++;for(const e of this._listeners)e()}}class xn{_stores=new Map;_storeUnsubs=new Map;_listeners=new Set;constructor(e){if(e?.initialStores)for(const r of e.initialStores)this.addExtensionPoint(r)}addExtensionPoint(e){const r=nt(e.id);if(this._stores.has(r)){const s=this._stores.get(r);throw new Error(`Extension point "${r}" already exists (owned by "${s.pluginId??"unknown"}")`)}const n=new kt({...e,id:r});this._stores.set(r,n),this._storeUnsubs.set(r,n.subscribe(()=>this._notify())),this._notify()}getExtensionPoint(e){const r=nt(e);return this._stores.get(r)}hasExtensionPoint(e){const r=nt(e);return this._stores.has(r)}listExtensionPoints(){return Array.from(this._stores.keys())}removeExtensionPoints(e){let r=!1;for(const[n,s]of this._stores)s.pluginId===e&&(this._storeUnsubs.get(n)?.(),this._storeUnsubs.delete(n),this._stores.delete(n),r=!0);r&&this._notify()}removeContributions(e){for(const r of this._stores.values())r.removeContributionsByPlugin(e);this._notify()}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}_notify(){for(const e of this._listeners)e()}}const pe={Panel:{position:"fixed",right:"var(--ov-space-3)",bottom:36,zIndex:"calc(var(--ov-z-toast, 9999) + 1)",width:"min(480px, calc(100vw - 24px))",minWidth:0,maxHeight:"min(560px, calc(100dvh - 64px))",display:"flex",flexDirection:"column",overflow:"hidden",padding:0},Header:{flex:"none",gap:"var(--ov-space-2)",paddingInline:"var(--ov-space-3)",background:"var(--ov-color-bg-surface-raised)",borderBottom:"1px solid var(--ov-color-border-muted)"},HeaderActions:{marginLeft:"auto"},List:{minHeight:0,overflowY:"auto",overscrollBehavior:"contain"},Notice:{borderTop:"1px solid var(--ov-color-border-muted)"},Row:{display:"flex",alignItems:"center",gap:"var(--ov-space-1)",padding:"var(--ov-space-2) var(--ov-space-2) var(--ov-space-2) var(--ov-space-3)"},ErrorIcon:{flex:"none",color:"var(--ov-color-danger)"},Message:{flex:1,minWidth:0,justifyContent:"flex-start",textAlign:"left"},MessageText:{minWidth:0,overflowWrap:"anywhere"},Details:{padding:"0 var(--ov-space-3) var(--ov-space-3) 36px"},Code:{display:"block",margin:"var(--ov-space-2) 0",padding:"var(--ov-space-3)",maxHeight:240,overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.5,userSelect:"text"},Actions:{display:"flex",flexWrap:"wrap",gap:"var(--ov-space-2)"},CopyError:{margin:0,padding:"var(--ov-space-3)",borderTop:"1px solid var(--ov-color-border-muted)"}},Lt=x.createContext(void 0),Dn={default:"info",info:"info",success:"success",warning:"warning",error:"danger"},Rn=({children:t})=>{const{toast:e}=te.useToast(),[r,n]=x.useState([]),[s,i]=x.useState([]),[o,u]=x.useState(!1),[l,a]=x.useState(),[c,p]=x.useState(""),f=x.useRef(0),g=x.useRef(null);x.useEffect(()=>{if(!o)return;const d=document.activeElement;g.current?.focus();const m=y=>{y.key==="Escape"&&(y.stopPropagation(),u(!1))};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m),d instanceof HTMLElement&&d.isConnected&&d.focus()}},[o]);const h=d=>{n(m=>[...m,d])},v=(d,m,y)=>{const S=typeof d=="object";let E="",w="info",b,I=5e3,C;if(S){if(E=d.message,d.showOnce){if(r.includes(E))return;h(E)}w=d.status,b=d.details,I=d.autoHideDuration??5e3,C=d.actions}else E=d,w=m,b=y;let D;if(w==="error"){const O={id:++f.current,message:E,details:b,created:new Date().toISOString(),actions:C};i(k=>[...k,O].slice(-20)),D={label:"Details",onClick:()=>{a(O.id),u(!0)}}}e(w==="error"?E:b??E,{severity:Dn[w]??"info",title:w!=="error"&&b?E:void 0,duration:I,action:D??C?.[0]})};return T.jsxs(Lt.Provider,{value:{showSnackbar:v,openNotifications:()=>{u(!0)},notificationCount:s.length},children:[t,o&&T.jsxs(te.Card,{ref:g,style:pe.Panel,size:"sm",variant:"outline",surface:"overlay",elevation:3,"aria-label":"Notifications",tabIndex:-1,children:[T.jsxs(te.Toolbar,{size:"sm",style:pe.Header,children:[T.jsx(te.Text,{size:"sm",weight:"semibold",children:"Notifications"}),T.jsx(te.Text,{size:"xs",tone:"muted",children:s.length}),T.jsxs(te.Toolbar.Group,{style:pe.HeaderActions,children:[T.jsx(te.IconButton,{size:"sm",variant:"ghost","aria-label":"Clear history",title:"Clear history",disabled:s.length===0,onClick:()=>{i([]),a(void 0),p("")},children:T.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:T.jsx("path",{d:"m3 3 6 6m0-6L3 9M13 6h8M3 14h18M3 20h18"})})}),T.jsx(te.IconButton,{size:"sm",variant:"ghost","aria-label":"Close notifications",title:"Close notifications",onClick:()=>{u(!1)},children:T.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:T.jsx("path",{d:"m6 9 6 6 6-6"})})})]})]}),T.jsxs("div",{style:pe.List,children:[s.length===0&&T.jsx(te.EmptyState,{size:"sm",title:"No recent errors",description:"Error details will appear here."}),s.slice().reverse().map(d=>{const m=l===d.id;return T.jsxs("div",{style:pe.Notice,children:[T.jsxs("div",{style:pe.Row,children:[T.jsxs("svg",{style:pe.ErrorIcon,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-label":"Error",role:"img",children:[T.jsx("circle",{cx:"12",cy:"12",r:"9"}),T.jsx("path",{d:"m9 9 6 6m0-6-6 6"})]}),T.jsx(te.Button,{size:"sm",variant:"ghost",style:pe.Message,"aria-expanded":m,"aria-controls":`notification-${d.id}`,title:d.message,onClick:()=>{a(m?void 0:d.id),p("")},children:T.jsx(te.Text,{size:"sm",style:pe.MessageText,truncate:!m,children:d.message})}),T.jsx(te.IconButton,{size:"sm",variant:"ghost","aria-label":m?"Collapse details":"Expand details",title:m?"Collapse details":"Expand details","aria-expanded":m,"aria-controls":`notification-${d.id}`,onClick:()=>{a(m?void 0:d.id),p("")},children:T.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:T.jsx("path",{d:m?"m6 15 6-6 6 6":"m6 9 6 6 6-6"})})}),T.jsx(te.IconButton,{size:"sm",variant:"ghost","aria-label":`Dismiss ${d.message}`,title:"Dismiss notification",onClick:()=>{i(y=>y.filter(S=>S.id!==d.id)),m&&(a(void 0),p(""))},children:T.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:T.jsx("path",{d:"m6 6 12 12m0-12L6 18"})})})]}),T.jsx("div",{id:`notification-${d.id}`,hidden:!m,style:pe.Details,children:m&&T.jsxs(T.Fragment,{children:[T.jsx(te.Text,{size:"xs",tone:"muted",children:T.jsx("time",{dateTime:d.created,children:new Date(d.created).toLocaleString()})}),T.jsx(te.Code,{size:"sm",style:pe.Code,children:d.details?.length?d.details:d.message}),T.jsxs("div",{style:pe.Actions,children:[T.jsx(te.Button,{size:"sm",variant:"ghost",onClick:async()=>{p("");try{await navigator.clipboard.writeText(`${d.message}
|
|
3
|
-
${
|
|
4
|
-
${d.details??""}`)}catch{p("Copy failed. Select the diagnostic text and copy it manually.")}},children:"Copy details"}),d.actions?.map((y,S)=>T.jsx(te.Button,{size:"sm",variant:"outline",onClick:y.onClick,children:y.label},`${y.label}-${S}`))]})]})})]},d.id)})]}),c&&T.jsx(te.Text,{as:"p",size:"sm",role:"status",style:pe.CopyError,children:c})]})]})},me=()=>{const t=x.useContext(Lt);if(t===void 0)throw new Error("useCustomSnackbar must be used within a CustomSnackbarProvider");return t};function ne(t){const r=x.useContext(ze)?.pluginId??t;if(!r)throw new Error("pluginID must be provided either via PluginContext or as an explicit parameter");return r}const ge=new Map,Fe=new Map;let st=0,Ne=[],ht=0;const $t={phase:"checking"};function De(t,e){const r=JSON.stringify([t,e]);let n=ge.get(r);return n||(n={pluginID:t,connectionID:e,key:r,snapshot:$t,listeners:new Set,users:0,version:0,generation:++ht,starts:new Set},ge.set(r,n)),n}function qe(t,e){t.snapshot.phase==="connected"&&e.phase!=="connected"&&(t.generation=++ht),t.snapshot=e;for(const r of t.listeners)r()}function Re(t,e,r=!1){t.generation=++ht,t.version++,r||(t.operation=void 0),qe(t,e)}function On(t){switch(t){case"CONNECTED":return"connected";case"DISCONNECTED":return"disconnected";case"PENDING":return"connecting";case"UNAUTHORIZED":return"unauthorized";case"FORBIDDEN":return"forbidden";case"NOT_FOUND":return"not-found";default:return"error"}}function gt(t){const e=t?.trim();if(e)return e.startsWith("{")||e.startsWith("[")||e.length>512||/[\r\n]|\bgoroutine\b|\bat\s+\S+\s+\(.*:\d+:\d+\)/.test(e)?"The connection operation could not be completed.":e}function Mt(t,e){const r=On(t.status);return{phase:r,connection:e,message:gt(t.error||t.details)||(r==="error"?"The connection is not ready.":void 0)}}function qt(t,e){const r=ye(t);return{phase:r.status===401?"unauthorized":r.status===403?"forbidden":r.status===404?"not-found":"error",connection:e,message:gt(r.detail||r.title)}}function rt(t,e){e=gt(e)||"The plugin is unavailable.",Fe.set(t,e);for(const r of ge.values())r.pluginID===t&&Re(r,{phase:"error",message:e,connection:r.snapshot.connection})}function Ct(t){const e=Fe.delete(t);for(const r of ge.values())r.pluginID===t&&(!e&&r.snapshot.phase==="checking"&&r.operation?.kind==="check"||(Re(r,{phase:"checking",connection:r.snapshot.connection}),r.users&&Ie(r,"check").catch(()=>{})))}function Ae(){if(!(typeof document<"u"&&document.visibilityState==="hidden"))for(const t of ge.values())t.users&&!Fe.has(t.pluginID)&&Ie(t,"check",!0).catch(()=>{})}function Tn(){Ne.length||(Ne=[Z.On("connection/status",({data:t})=>{const e=ge.get(JSON.stringify([t.pluginID,t.connectionID]));!e||Fe.has(t.pluginID)||e.stop&&t.status!=="DISCONNECTED"||t.status!=="DISCONNECTED"&&e.starts.size&&e.operation?.kind!=="start"||Re(e,Mt({status:t.status,error:"",details:""},e.snapshot.connection),t.status==="CONNECTED")}),Z.On("plugin/crash",({data:t})=>rt(t.pluginID,t.error||"The plugin stopped unexpectedly.")),Z.On("plugin/crash_recovery_failed",({data:t})=>rt(t.pluginID,t.error||"Plugin recovery failed.")),Z.On("plugin/recovered",({data:t})=>Ct(t.pluginID)),Z.On("plugin/state_change",({data:t})=>{t.to==="Running"?Ct(t.pluginID):rt(t.pluginID,t.reason||`The plugin is ${t.to}.`)})],typeof window<"u"&&(window.addEventListener("focus",Ae),window.addEventListener("pageshow",Ae),Ne.push(()=>{window.removeEventListener("focus",Ae),window.removeEventListener("pageshow",Ae)})),typeof document<"u"&&(document.addEventListener("visibilitychange",Ae),Ne.push(()=>document.removeEventListener("visibilitychange",Ae))))}function Te(t){return ge.set(t.key,t),t.users++,st++,Tn(),()=>{if(t.users--,st--,t.users||(Re(t,$t),ge.get(t.key)===t&&ge.delete(t.key)),!st){for(const e of Ne)e();Ne=[],Fe.clear()}}}function Ie(t,e,r=!1){if(t.stop)return Promise.reject(new Error("Connection is disconnecting. Wait for it to stop before connecting."));const n=Fe.get(t.pluginID);if(n)return qe(t,{phase:"error",message:n,connection:t.snapshot.connection}),Promise.reject(new Error(n));if(t.operation&&(e==="check"||t.operation.kind==="start"))return t.operation.promise;const s=++t.version;(!r||t.snapshot.phase!=="connected")&&qe(t,{phase:e==="start"?"connecting":"checking",connection:t.snapshot.connection}),e==="start"&&t.starts.add(s);const i=Promise.resolve().then(()=>{if(t.version!==s)throw new Error("Connection readiness changed before the operation began.");return e==="start"?F.StartConnection(t.pluginID,t.connectionID):F.CheckConnection(t.pluginID,t.connectionID)}).then(o=>(t.version===s&&qe(t,Mt(o,o.connection??t.snapshot.connection)),o),o=>{throw t.version===s&&qe(t,qt(o,t.snapshot.connection)),o}).finally(()=>{e==="start"&&t.starts.delete(s),t.operation?.version===s&&(t.operation=void 0)});return t.operation={kind:e,promise:i,version:s},i}function jt(t,e){return{getSnapshot:()=>De(t,e).snapshot,subscribe:r=>{const n=De(t,e),s=n.users===0,i=Te(n);return n.listeners.add(r),s&&Ie(n,"check").catch(()=>{}),()=>{n.listeners.delete(r),i()}},connect:async()=>{const r=De(t,e),n=Te(r);try{await Ie(r,"start")}catch{}finally{n()}},retry:async()=>{const r=De(t,e),n=Te(r);try{await Ie(r,"check")}catch{}finally{n()}}}}async function xe(t,e){const r=De(t,e),n=Te(r);try{try{await Ie(r,"check",!0)}catch{}if(r.snapshot.phase!=="connected")throw new Error(r.snapshot.message||`Connection ${e} is ${r.snapshot.phase}. Connect before continuing.`)}finally{n()}}async function Pn(t,e,r){const n=De(t,e),s=Te(n);try{try{await Ie(n,"check",!0)}catch{}if(n.snapshot.phase!=="connected")throw new Error(n.snapshot.message||`Connection ${e} is ${n.snapshot.phase}. Connect before continuing.`);const i=n.generation,o=await r();if(n.generation!==i||n.snapshot.phase!=="connected")throw new Error(`Connection ${e} changed while the operation was in progress. Retry after connecting.`);return o}finally{s()}}function An(t,e){return ge.get(JSON.stringify([t,e]))?.generation}function Nn(t,e,r){const n=ge.get(JSON.stringify([t,e]));return r!==void 0&&n?.generation===r&&n.snapshot.phase==="connected"}async function Fn(t,e){const r=De(t,e),n=Te(r);try{return await Ie(r,"start")}finally{n()}}function Ut(t,e){const r=De(t,e);if(r.stop)return r.stop;const n=Te(r),s=Promise.resolve().then(()=>F.StopConnection(t,e)).then(i=>(Re(r,{phase:"disconnected",connection:i}),i),i=>{throw Re(r,qt(i,r.snapshot.connection)),i}).finally(()=>{r.stop=void 0,n()});return r.stop=s,Re(r,{phase:"disconnected",message:"Disconnecting. Wait for the connection to stop before reconnecting.",connection:r.snapshot.connection}),s}function wt(t,e,r=!1){const n=ge.get(JSON.stringify([t,e]));n&&(Re(n,{phase:r?"not-found":"checking",connection:r?void 0:n.snapshot.connection}),!r&&n.users&&Ie(n,"check").catch(()=>{}))}const kn=t=>{const e=j.c(60),{pluginID:r,connectionID:n}=t,s=ne(r),i=A.useQueryClient(),{showSnackbar:o}=me();let u;e[0]!==n||e[1]!==s?(u=[s,"connection","detail",n],e[0]=n,e[1]=s,e[2]=u):u=e[2];const l=u;let a;e[3]!==n||e[4]!==s?(a=async()=>Fn(s,n),e[3]=n,e[4]=s,e[5]=a):a=e[5];let c;if(e[6]!==n||e[7]!==s||e[8]!==i||e[9]!==l||e[10]!==o||e[11]!==a){let D;e[13]!==o?(D=ue(o,"Failed to start connection"),e[13]=o,e[14]=D):D=e[14],c={mutationFn:a,onSuccess(O){O.connection&&i.setQueryData(l,O.connection),i.invalidateQueries({queryKey:["EDITOR_SCHEMAS",s,n]})},onError:D},e[6]=n,e[7]=s,e[8]=i,e[9]=l,e[10]=o,e[11]=a,e[12]=c}else c=e[12];const{mutateAsync:p}=A.useMutation(c);let f;e[15]!==n||e[16]!==s?(f=async()=>Ut(s,n),e[15]=n,e[16]=s,e[17]=f):f=e[17];let g;if(e[18]!==i||e[19]!==l||e[20]!==o||e[21]!==f){let D;e[23]!==o?(D=ue(o,"Failed to stop connection"),e[23]=o,e[24]=D):D=e[24],g={mutationFn:f,onSuccess(O){i.setQueryData(l,O)},onError:D},e[18]=i,e[19]=l,e[20]=o,e[21]=f,e[22]=g}else g=e[22];const{mutateAsync:h}=A.useMutation(g);let v;e[25]!==s?(v=async D=>F.UpdateConnection(s,D),e[25]=s,e[26]=v):v=e[26];let d;if(e[27]!==n||e[28]!==s||e[29]!==i||e[30]!==l||e[31]!==o||e[32]!==v){let D;e[34]!==o?(D=ue(o,"Failed to update connection"),e[34]=o,e[35]=D):D=e[35],d={mutationFn:v,onSuccess(O,k){const{name:N}=k;o({message:`Connection ${N} successfully updated`,status:"success"}),wt(s,n),i.setQueryData(l,O),i.setQueriesData({queryKey:[s,"connection","list"]},P=>P?.map(M=>M.id===n?O:M))},onError:D},e[27]=n,e[28]=s,e[29]=i,e[30]=l,e[31]=o,e[32]=v,e[33]=d}else d=e[33];const{mutateAsync:m}=A.useMutation(d);let y;e[36]!==n||e[37]!==s?(y=async()=>F.RemoveConnection(s,n),e[36]=n,e[37]=s,e[38]=y):y=e[38];let S;if(e[39]!==n||e[40]!==s||e[41]!==i||e[42]!==l||e[43]!==o||e[44]!==y){let D;e[46]!==o?(D=ue(o,"Failed to remove connection"),e[46]=o,e[47]=D):D=e[47],S={mutationFn:y,onSuccess(){o({message:"Connection successfully removed",status:"success"}),wt(s,n,!0),i.setQueryData(l,void 0),i.setQueriesData({queryKey:[s,"connection","list"]},O=>O?.filter(k=>k.id!==n))},onError:D},e[39]=n,e[40]=s,e[41]=i,e[42]=l,e[43]=o,e[44]=y,e[45]=S}else S=e[45];const{mutateAsync:E}=A.useMutation(S);let w;e[48]!==n||e[49]!==s?(w=async()=>F.GetConnection(s,n),e[48]=n,e[49]=s,e[50]=w):w=e[50];let b;e[51]!==l||e[52]!==w?(b={queryKey:l,queryFn:w},e[51]=l,e[52]=w,e[53]=b):b=e[53];const I=A.useQuery(b);let C;return e[54]!==I||e[55]!==E||e[56]!==p||e[57]!==h||e[58]!==m?(C={connection:I,startConnection:p,stopConnection:h,updateConnection:m,deleteConnection:E},e[54]=I,e[55]=E,e[56]=p,e[57]=h,e[58]=m,e[59]=C):C=e[59],C},Qt=t=>[t,"connection","list"],Ln=t=>{const e=j.c(33),{plugin:r}=t,n=ne(r),s=A.useQueryClient(),{showSnackbar:i}=me();let o;e[0]!==n?(o=Qt(n),e[0]=n,e[1]=o):o=e[1];const u=o;let l;e[2]!==n?(l=async C=>F.StartConnectionWatch(n,C.id),e[2]=n,e[3]=l):l=e[3];let a;e[4]!==i?(a=ue(i,"Failed to start connection watch"),e[4]=i,e[5]=a):a=e[5];let c;e[6]!==l||e[7]!==a?(c={mutationFn:l,onError:a},e[6]=l,e[7]=a,e[8]=c):c=e[8];const{mutateAsync:p}=A.useMutation(c);let f;e[9]!==n?(f=async C=>F.StopConnectionWatch(n,C.id),e[9]=n,e[10]=f):f=e[10];let g;e[11]!==i?(g=ue(i,"Failed to stop connection watch"),e[11]=i,e[12]=g):g=e[12];let h;e[13]!==f||e[14]!==g?(h={mutationFn:f,onError:g},e[13]=f,e[14]=g,e[15]=h):h=e[15];const{mutateAsync:v}=A.useMutation(h);let d;e[16]!==s||e[17]!==u?(d=C=>{const D=C.data;console.log("got update to connections",D),s.setQueryData(u,D)},e[16]=s,e[17]=u,e[18]=d):d=e[18];const m=d;let y,S;e[19]!==m||e[20]!==n?(S=()=>{const C=Z.On(`${n}/connection/sync`,m);return()=>{C()}},y=[n,m],e[19]=m,e[20]=n,e[21]=y,e[22]=S):(y=e[21],S=e[22]),x.useEffect(S,y);let E;e[23]!==n||e[24]!==i?(E=async()=>{try{return await F.ListConnections(n)}catch(C){const D=C;console.log(D),ue(i,"Failed to load connections")(D)}return[]},e[23]=n,e[24]=i,e[25]=E):E=e[25];let w;e[26]!==u||e[27]!==E?(w={queryKey:u,queryFn:E,staleTime:3e4,placeholderData:A.keepPreviousData},e[26]=u,e[27]=E,e[28]=w):w=e[28];const b=A.useQuery(w);let I;return e[29]!==b||e[30]!==p||e[31]!==v?(I={connections:b,startWatch:p,stopWatch:v},e[29]=b,e[30]=p,e[31]=v,e[32]=I):I=e[32],I},$n={phase:"checking"},Mn={getSnapshot:()=>$n,subscribe:()=>()=>{},connect:async()=>{},retry:async()=>{}};function he(t){const e=j.c(8),{pluginID:r,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,o=ne(r);let u;e[0]!==n||e[1]!==i||e[2]!==o?(u=i?jt(o,n):Mn,e[0]=n,e[1]=i,e[2]=o,e[3]=u):u=e[3];const l=u,a=x.useSyncExternalStore(l.subscribe,l.getSnapshot,l.getSnapshot);let c;return e[4]!==a||e[5]!==l.connect||e[6]!==l.retry?(c={...a,connect:l.connect,retry:l.retry},e[4]=a,e[5]=l.connect,e[6]=l.retry,e[7]=c):c=e[7],c}function be(t,e){const r=A.useQueryClient();return x.useCallback(async(n,s,i)=>{const o=An(t,e),u=()=>o!==void 0&&Nn(t,e,o);if(s.aborted||!u())throw new A.CancelledError({revert:!0});let l,a=!1,c=!1;const p=()=>{l&&"cancel"in l&&typeof l.cancel=="function"&&Promise.resolve(l.cancel()).catch(h=>{console.error("Failed to cancel resource query",h)}),g()},f=jt(t,e).subscribe(()=>{u()||(a=!0,r.cancelQueries({queryKey:n,exact:!0}).catch(h=>{console.error("Failed to cancel invalidated resource query",h)}))}),g=()=>{c||(c=!0,f())};s.addEventListener("abort",p,{once:!0});try{if(s.aborted||a||!u())throw new A.CancelledError({revert:!0});l=i();const h=await l;if(s.aborted||a||!u())throw new A.CancelledError({revert:!0});return h}finally{s.removeEventListener("abort",p),g()}},[t,e,r])}const qn=t=>{const e=j.c(19),{pluginID:r,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,o=ne(r);let u;e[0]!==n||e[1]!==i||e[2]!==o?(u={pluginID:o,connectionID:n,enabled:i},e[0]=n,e[1]=i,e[2]=o,e[3]=u):u=e[3];const l=he(u),a=be(o,n);let c;e[4]!==n||e[5]!==o?(c=[o,"connection","namespaces",n],e[4]=n,e[5]=o,e[6]=c):c=e[6];const p=c;let f;e[7]!==n||e[8]!==i||e[9]!==a||e[10]!==o||e[11]!==l?(f=i&&l.phase==="connected"?m=>{const{signal:y,queryKey:S}=m;return a(S,y,()=>F.GetConnectionNamespaces(o,n))}:A.skipToken,e[7]=n,e[8]=i,e[9]=a,e[10]=o,e[11]=l,e[12]=f):f=e[12];const g=i&&l.phase==="connected";let h;e[13]!==p||e[14]!==f||e[15]!==g?(h={queryKey:p,queryFn:f,enabled:g},e[13]=p,e[14]=f,e[15]=g,e[16]=h):h=e[16];const v=A.useQuery(h);let d;return e[17]!==v?(d={namespaces:v},e[17]=v,e[18]=d):d=e[18],d},G=pn.withLegacyNames(ae.WatchState,"WatchState");function ut(t){const e=Object.values(t.states),r=e.length;let n=0,s=0,i=0,o=0;for(const c of e)c===G.WatchStateSynced&&n++,(c===G.WatchStateError||c===G.WatchStateFailed)&&s++,c===G.WatchStateForbidden&&i++,c===G.WatchStateSkipped&&o++;const u=r-o,l=e.filter(c=>c===G.WatchStateSynced||c===G.WatchStateError||c===G.WatchStateStopped||c===G.WatchStateFailed||c===G.WatchStateForbidden).length,a=u>0?l/u:0;return{pluginID:t.pluginID,connectionID:t.connectionID,totalResources:r,watchedTotal:u,syncedCount:n,errorCount:s,forbiddenCount:i,skippedCount:o,doneCount:l,progress:a}}function Je(t){return t.watchedTotal>0&&t.doneCount>=t.watchedTotal}function Wt(t){return t.some(e=>!Je(e))}function Kt(t){const e=t.reduce((n,s)=>n+s.watchedTotal,0);return e===0?0:t.reduce((n,s)=>n+s.doneCount,0)/e}function yt(t){return`${t.pluginId}/${t.connection}`}function Gt(t,e){const r=yt(e);t.has(r)||t.set(r,{states:{},pluginID:e.pluginId,connectionID:e.connection});const n=t.get(r);return n.states[e.resourceKey]=e.state,n}function jn(){const t=j.c(49);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=new Set,t[0]=e):e=t[0];const[r,n]=x.useState(e);let s;t[1]===Symbol.for("react.memo_cache_sentinel")?(s={},t[1]=s):s=t[1];const[i,o]=x.useState(s);let u;t[2]===Symbol.for("react.memo_cache_sentinel")?(u=new Map,t[2]=u):u=t[2];const[l,a]=x.useState(u);let c;t[3]===Symbol.for("react.memo_cache_sentinel")?(c=new Map,t[3]=c):c=t[3];const p=x.useRef(c);let f;t[4]===Symbol.for("react.memo_cache_sentinel")?(f=new Map,t[4]=f):f=t[4];const[g,h]=x.useState(f);let v,d;t[5]===Symbol.for("react.memo_cache_sentinel")?(v=()=>{const Q=Z.On("plugin/crash_recovery_failed",K=>{const H=K.data,q=H?.pluginID;q&&h($=>{const V=new Map($);return V.set(q,H.error??"Crash recovery failed"),V})}),J=Z.On("plugin/recovered",K=>{const q=K.data?.pluginID;q&&h($=>{if(!$.has(q))return $;const V=new Map($);return V.delete(q),V})});return()=>{Q(),J()}},d=[],t[5]=v,t[6]=d):(v=t[5],d=t[6]),x.useEffect(v,d);let m,y;t[7]===Symbol.for("react.memo_cache_sentinel")?(m=()=>{F.GetAllConnectionStates().then(Q=>{if(!Q)return;const J={},K=new Set,H=new Map;for(const[q,$]of Object.entries(Q))if($){J[q]=$.map(Hn);for(const V of $){if(!V.started)continue;const de=`${q}/${V.connection.id}`;K.add(de);const fe={pluginID:q,connectionID:V.connection.id,states:{}};if(V.resources)for(const[we,Se]of Object.entries(V.resources))fe.states[we]=Se;p.current.set(de,fe),H.set(de,ut(fe))}}o(J),n(K),a(H)}).catch(zn)},y=[],t[7]=m,t[8]=y):(m=t[7],y=t[8]),x.useEffect(m,y);let S,E;t[9]===Symbol.for("react.memo_cache_sentinel")?(E=()=>Z.On("connection/status",J=>{const K=J.data,H=`${K.pluginID}/${K.connectionID}`;K.status==="DISCONNECTED"?(n(q=>{const $=new Set(q);return $.delete(H),$}),a(q=>{const $=new Map(q);return $.delete(H),$}),p.current.delete(H)):n(q=>{const $=new Set(q);return $.add(H),$}),F.ListAllConnections().then(q=>{if(!q)return;const $={};for(const[V,de]of Object.entries(q))de!=null&&($[V]=de);o($)}).catch(Bn)}),S=[],t[9]=S,t[10]=E):(S=t[9],E=t[10]),x.useEffect(E,S);let w;t[11]===Symbol.for("react.memo_cache_sentinel")?(w=Q=>{const J=Q.data,K=yt(J);n($=>{if($.has(K))return $;const V=new Set($);return V.add(K),V});const H=Gt(p.current,J),q=ut(H);a($=>{const V=new Map($);return V.set(K,q),V})},t[11]=w):w=t[11];const b=w;let I,C;t[12]===Symbol.for("react.memo_cache_sentinel")?(I=()=>Z.On("watch/STATE",b),C=[b],t[12]=I,t[13]=C):(I=t[12],C=t[13]),x.useEffect(I,C);const D=Gn,O=Kn;let k;t[14]!==g?(k=async Q=>{const J=g.get(Q);h(K=>{if(!K.has(Q))return K;const H=new Map(K);return H.delete(Q),H});try{await F.RetryFailedPlugin(Q)}catch(K){const H=K;throw h(q=>{const $=new Map(q);return $.set(Q,J??"Reload failed"),$}),H}},t[14]=g,t[15]=k):k=t[15];const N=k;let P,M;if(t[16]!==i||t[17]!==g||t[18]!==r||t[19]!==l){P=[];for(const Q of r){const[J,K]=Q.split("/",2),q=(i[J]??[]).find(we=>we.id===K),$=l.get(Q),V=$!=null&&!Je($),de=$!=null&&$.errorCount>0,fe=g.get(J);P.push({pluginID:J,connectionID:K,name:q?.name??K,avatar:q?.avatar??"",isStarted:!0,sync:$,isSyncing:V,hasErrors:de||fe!=null,pluginFailed:fe!=null,pluginError:fe})}M=new Map;for(const Q of P){const J=M.get(Q.pluginID)??[];J.push(Q),M.set(Q.pluginID,J)}t[16]=i,t[17]=g,t[18]=r,t[19]=l,t[20]=P,t[21]=M}else P=t[20],M=t[21];let U,W,z,X,ee,B,Y,oe;if(t[22]!==P||t[23]!==M||t[24]!==l){const Q=Array.from(l.values());let J;t[33]!==P?(J=P.filter(Wn),t[33]=P,t[34]=J):J=t[34];const K=J;let H;t[35]!==P?(H=P.filter(Qn),t[35]=P,t[36]=H):H=t[36];const q=H;let $;t[37]!==P?($=P.filter(Un),t[37]=P,t[38]=$):$=t[38];const V=$;U=P,W=M,z=P.length,X=K.length,ee=q.length,B=V.length,Y=Wt(Q),oe=Kt(Q),t[22]=P,t[23]=M,t[24]=l,t[25]=U,t[26]=W,t[27]=z,t[28]=X,t[29]=ee,t[30]=B,t[31]=Y,t[32]=oe}else U=t[25],W=t[26],z=t[27],X=t[28],ee=t[29],B=t[30],Y=t[31],oe=t[32];let ve;return t[39]!==N||t[40]!==U||t[41]!==W||t[42]!==z||t[43]!==X||t[44]!==ee||t[45]!==B||t[46]!==Y||t[47]!==oe?(ve={entries:U,grouped:W,connectedCount:z,syncingCount:X,errorCount:ee,failedCount:B,hasSyncing:Y,aggregateProgress:oe,disconnect:D,retryWatch:O,retryPlugin:N},t[39]=N,t[40]=U,t[41]=W,t[42]=z,t[43]=X,t[44]=ee,t[45]=B,t[46]=Y,t[47]=oe,t[48]=ve):ve=t[48],ve}function Un(t){return t.pluginFailed}function Qn(t){return t.hasErrors}function Wn(t){return t.isSyncing}async function Kn(t,e){await F.StartConnectionWatch(t,e)}async function Gn(t,e){await Ut(t,e)}function Bn(){}function zn(){}function Hn(t){return t.connection}const Jn={display:"flex",alignItems:"center",justifyContent:"center",minHeight:240,height:"100%",padding:24,boxSizing:"border-box",color:"var(--ov-color-fg-default)"},Vn={width:"100%",maxWidth:560,minWidth:0,display:"flex",flexDirection:"column",gap:16},Yn={display:"flex",alignItems:"center",gap:12},Xn={margin:0,fontSize:"1.125rem",fontWeight:600},Zn={display:"flex",flexWrap:"wrap",gap:8},ot={margin:0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},es={width:20,height:20,flexShrink:0},ts={checking:{title:"Checking connection",description:"Checking whether this connection is ready before loading resources."},disconnected:{title:"Connection is disconnected",description:"Connect to load resources and continue at this location."},connecting:{title:"Connecting",description:"Establishing the connection. Resources will load here when it is ready."},unauthorized:{title:"Authentication required",description:"The connection could not authenticate. Check its credentials, then connect again."},forbidden:{title:"Connection access denied",description:"The connection is not permitted to access this target. Check its credentials and permissions."},"not-found":{title:"Connection not found",description:"This saved connection is no longer available. Return to connections or check its configuration."},error:{title:"Connection could not be verified",description:"Check the connection settings and network, then connect again or retry the check."}};function Bt(t){const e=j.c(44),{state:r,connectionName:n,connectionDetails:s,onEditConnection:i,onBack:o,backLabel:u}=t,l=u===void 0?"Back to connections":u,a=x.useId();if(r.phase==="connected")return null;const c=r.phase==="checking"||r.phase==="connecting",p=ts[r.phase],f=n??r.connection?.name;let g;e[0]!==s||e[1]!==f?(g=s??(f&&T.jsx(te.Text,{size:"sm",tone:"muted",style:ot,children:f})),e[0]=s,e[1]=f,e[2]=g):g=e[2];let h;e[3]!==c?(h=c&&T.jsx(te.Spinner,{style:es,"aria-hidden":"true"}),e[3]=c,e[4]=h):h=e[4];let v;e[5]!==a||e[6]!==p.title?(v=T.jsx("h2",{id:a,style:Xn,children:p.title}),e[5]=a,e[6]=p.title,e[7]=v):v=e[7];let d;e[8]!==h||e[9]!==v?(d=T.jsxs("div",{style:Yn,role:"status","aria-live":"polite",children:[h,v]}),e[8]=h,e[9]=v,e[10]=d):d=e[10];let m;e[11]!==p.description?(m=T.jsx(te.Text,{as:"p",size:"sm",tone:"muted",style:ot,children:p.description}),e[11]=p.description,e[12]=m):m=e[12];let y;e[13]!==c||e[14]!==r.message?(y=r.message&&T.jsx(te.Text,{as:"p",size:"sm",style:ot,role:c?"status":"alert",children:r.message}),e[13]=c,e[14]=r.message,e[15]=y):y=e[15];let S;e[16]!==c||e[17]!==r?(S=r.phase!=="not-found"&&T.jsx(te.Button,{size:"sm",variant:"solid",color:"brand",disabled:c,onClick:()=>{r.connect()},children:"Connect and continue"}),e[16]=c,e[17]=r,e[18]=S):S=e[18];const E=r.phase==="checking";let w;e[19]!==r?(w=()=>{r.retry()},e[19]=r,e[20]=w):w=e[20];let b;e[21]!==w||e[22]!==E?(b=T.jsx(te.Button,{size:"sm",variant:"outline",color:"neutral",disabled:E,onClick:w,children:"Retry check"}),e[21]=w,e[22]=E,e[23]=b):b=e[23];let I;e[24]!==i?(I=i&&T.jsx(te.Button,{size:"sm",variant:"outline",color:"neutral",onClick:i,children:"Edit connection"}),e[24]=i,e[25]=I):I=e[25];let C;e[26]!==l||e[27]!==o?(C=o&&T.jsx(te.Button,{size:"sm",variant:"outline",color:"neutral",onClick:o,children:l}),e[26]=l,e[27]=o,e[28]=C):C=e[28];let D;e[29]!==b||e[30]!==I||e[31]!==C||e[32]!==S?(D=T.jsxs("div",{style:Zn,children:[S,b,I,C]}),e[29]=b,e[30]=I,e[31]=C,e[32]=S,e[33]=D):D=e[33];let O;e[34]!==D||e[35]!==g||e[36]!==d||e[37]!==m||e[38]!==y?(O=T.jsxs("div",{style:Vn,children:[g,d,m,y,D]}),e[34]=D,e[35]=g,e[36]=d,e[37]=m,e[38]=y,e[39]=O):O=e[39];let k;return e[40]!==c||e[41]!==a||e[42]!==O?(k=T.jsx("section",{style:Jn,"aria-labelledby":a,"aria-busy":c,children:O}),e[40]=c,e[41]=a,e[42]=O,e[43]=k):k=e[43],k}function ns(t){const e=j.c(9),{pluginID:r,connectionID:n,children:s,fallback:i}=t;let o;e[0]!==n||e[1]!==r?(o={pluginID:r,connectionID:n},e[0]=n,e[1]=r,e[2]=o):o=e[2];const u=he(o);if(u.phase!=="connected"){let a;return e[3]!==n||e[4]!==i||e[5]!==u?(a=i?i(u):T.jsx(Bt,{state:u,connectionName:u.connection?.name||n}),e[3]=n,e[4]=i,e[5]=u,e[6]=a):a=e[6],a}let l;return e[7]!==s?(l=T.jsx(T.Fragment,{children:s}),e[7]=s,e[8]=l):l=e[8],l}function ss(t){const e=j.c(7),r=ne(t.pluginID);let n;e[0]!==r||e[1]!==t.connectionID?(n=JSON.stringify([r,t.connectionID]),e[0]=r,e[1]=t.connectionID,e[2]=n):n=e[2];let s;return e[3]!==r||e[4]!==t||e[5]!==n?(s=x.createElement(ns,{...t,pluginID:r,key:n}),e[3]=r,e[4]=t,e[5]=n,e[6]=s):s=e[6],s}function rs(t,e){return e===null?t===null:Array.isArray(e)?Array.isArray(t):typeof e=="object"?typeof t=="object"&&t!==null&&!Array.isArray(t):typeof t==typeof e}function os(t,e,r){const n=j.c(29),s=ne(t),i=A.useQueryClient();let o;n[0]!==e||n[1]!==s?(o=[s,"data",e],n[0]=e,n[1]=s,n[2]=o):o=n[2];const u=o;let l;n[3]!==r||n[4]!==e||n[5]!==s?(l=async()=>{const E=await F.Get(s,e);return E==null?r:rs(E,r)?E:(console.warn(`[usePluginData] stored value for "${e}" has unexpected type (expected ${Array.isArray(r)?"array":typeof r}, got ${Array.isArray(E)?"array":typeof E}). Using default.`),r)},n[3]=r,n[4]=e,n[5]=s,n[6]=l):l=n[6];let a;n[7]!==u||n[8]!==l?(a={queryKey:u,queryFn:l},n[7]=u,n[8]=l,n[9]=a):a=n[9];const c=A.useQuery(a);let p;n[10]!==e||n[11]!==s?(p=async E=>{await F.Set(s,e,E)},n[10]=e,n[11]=s,n[12]=p):p=n[12];let f,g,h;n[13]!==i||n[14]!==u?(f=async E=>{await i.cancelQueries({queryKey:u});const w=i.getQueryData(u);return i.setQueryData(u,E),{previous:w}},g=(E,w,b)=>{b?.previous!==void 0&&i.setQueryData(u,b.previous)},h=()=>{i.invalidateQueries({queryKey:u})},n[13]=i,n[14]=u,n[15]=f,n[16]=g,n[17]=h):(f=n[15],g=n[16],h=n[17]);let v;n[18]!==p||n[19]!==f||n[20]!==g||n[21]!==h?(v={mutationFn:p,onMutate:f,onError:g,onSettled:h},n[18]=p,n[19]=f,n[20]=g,n[21]=h,n[22]=v):v=n[22];const d=A.useMutation(v),m=c.data??r;let y;n[23]!==d?(y=async E=>{await d.mutateAsync(E)},n[23]=d,n[24]=y):y=n[24];let S;return n[25]!==c.isLoading||n[26]!==m||n[27]!==y?(S={data:m,update:y,isLoading:c.isLoading},n[25]=c.isLoading,n[26]=m,n[27]=y,n[28]=S):S=n[28],S}const is=()=>{const t=x.useContext(Tt);if(!t)throw new Error("useRightDrawer must be used within a RightDrawerProvider");return t},mt=()=>{const t=x.useContext(Ot);if(t===void 0)throw new Error("useBottomDrawer must be used within a BottomDrawerProvider");return t},cs=({pluginID:t})=>{const e=ne(t),{showSnackbar:r}=me(),{createTab:n,updateTab:s}=mt();return{createSession:A.useMutation({mutationFn:async({connectionID:o,icon:u,label:l,opts:a,recovery:c})=>{const p=`pending-${crypto.randomUUID()}`;n({id:p,title:l??"Connecting...",variant:"terminal",icon:u??"LuSquareTerminal",properties:{status:"connecting",pluginID:e,connectionID:o,opts:{...a},recovery:c}});const f=ae.SessionOptions.createFrom({command:["/bin/bash"],tty:!0,...a});try{const g=await F.CreateSession(e,o,f);if(!g)throw new Error("Failed to create session: null response");return s({id:p},{id:g.id,title:l??`Session ${g.id.substring(0,8)}`,properties:{status:"connected",pluginID:e,connectionID:o,opts:{...a},recovery:c}}),g}catch(g){const h=ye(g);return s({id:p},{properties:{status:"error",error:h.detail,pluginID:e,connectionID:o,opts:{...a},recovery:c,errorInfo:{title:h.title||"Session error",suggestion:h.detail,raw:h.detail}}}),Ce(r,g,"Failed to start session"),null}}}).mutateAsync}},as=t=>{const e=j.c(15),{pluginID:r}=t,n=ne(r),{showSnackbar:s}=me(),{createTab:i}=mt();let o;e[0]!==i||e[1]!==n?(o=async h=>{const{connectionID:v,resourceKey:d,resourceID:m,resourceData:y,icon:S,label:E,target:w,follow:b,tailLines:I,params:C}=h,D=b===void 0?!0:b,O=I===void 0?1e3:I,k=ae.CreateSessionOptions.createFrom({resource_key:d,resource_id:m,resource_data:y,options:ae.LogSessionOptions.createFrom({target:w??"",follow:D,include_previous:!1,include_timestamps:!0,tail_lines:O,since_seconds:0,limit_bytes:0,include_source_events:!0,params:C??{}})}),N=await F.CreateSession$1(n,v,k);if(!N)throw new Error("Failed to create log session: null response");return i({id:N.id,title:E??`Logs ${N.id.substring(0,8)}`,variant:"logs",icon:S??"LuLogs"}),N},e[0]=i,e[1]=n,e[2]=o):o=e[2];let u;e[3]!==s?(u=ue(s,"Failed to start log session"),e[3]=s,e[4]=u):u=e[4];let l;e[5]!==o||e[6]!==u?(l={mutationFn:o,onError:u},e[5]=o,e[6]=u,e[7]=l):l=e[7];const a=A.useMutation(l);let c;e[8]!==s?(c=ue(s,"Failed to close log session"),e[8]=s,e[9]=c):c=e[9];let p;e[10]!==c?(p={mutationFn:ls,onError:c},e[10]=c,e[11]=p):p=e[11];const f=A.useMutation(p);let g;return e[12]!==f.mutateAsync||e[13]!==a.mutateAsync?(g={createLogSession:a.mutateAsync,closeLogSession:f.mutateAsync},e[12]=f.mutateAsync,e[13]=a.mutateAsync,e[14]=g):g=e[14],g};async function ls(t){await F.CloseSession(t)}const us=()=>{const t=j.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e={queryKey:["metric","providers"],queryFn:F.GetProviders,staleTime:3e4},t[0]=e):e=t[0],A.useQuery(e)},zt=t=>{const e=j.c(7);let r,n;e[0]!==t?(r=["metric","providers",t],n=()=>F.GetProvidersForResource(t),e[0]=t,e[1]=r,e[2]=n):(r=e[1],n=e[2]);const s=!!t;let i;return e[3]!==r||e[4]!==n||e[5]!==s?(i={queryKey:r,queryFn:n,enabled:s,staleTime:3e4},e[3]=r,e[4]=n,e[5]=s,e[6]=i):i=e[6],A.useQuery(i)},ds=t=>{const e=j.c(47),{connectionID:r,resourceKey:n,resourceID:s,resourceNamespace:i,resourceData:o,metricIDs:u,shape:l,timeRange:a,refreshInterval:c,enabled:p}=t,f=i===void 0?"":i;let g;e[0]!==o?(g=o===void 0?{}:o,e[0]=o,e[1]=g):g=e[1];const h=g;let v;e[2]!==u?(v=u===void 0?[]:u,e[2]=u,e[3]=v):v=e[3];const d=v,m=l===void 0?0:l,y=c===void 0?0:c,S=p===void 0?!0:p,{data:E,isLoading:w}=zt(n);let b;e[4]!==E?(b=E??[],e[4]=E,e[5]=b):b=e[5];const I=b,C=a?Math.max(Math.floor((a.end.getTime()-a.start.getTime())/250),15e3)*1e6:0;let D;e[6]!==a?.start?(D=a?.start?.getTime(),e[6]=a?.start,e[7]=D):D=e[7];let O;e[8]!==a?.end?(O=a?.end?.getTime(),e[8]=a?.end,e[9]=O):O=e[9];let k;e[10]!==r||e[11]!==d||e[12]!==s||e[13]!==n||e[14]!==f||e[15]!==m||e[16]!==O||e[17]!==D?(k=["metric","query",r,n,s,f,d,m,D,O],e[10]=r,e[11]=d,e[12]=s,e[13]=n,e[14]=f,e[15]=m,e[16]=O,e[17]=D,e[18]=k):k=e[18];let N;e[19]!==r||e[20]!==d||e[21]!==h||e[22]!==s||e[23]!==n||e[24]!==f||e[25]!==m||e[26]!==C||e[27]!==a?.end||e[28]!==a?.start?(N=async()=>{const Y=await F.QueryAll(r,n,s,f,h,d,m,(a?.start??new Date(0)).toISOString(),(a?.end??new Date(0)).toISOString(),C),oe={};for(const[ve,Q]of Object.entries(Y))Q!=null&&(oe[ve]=Q);return oe},e[19]=r,e[20]=d,e[21]=h,e[22]=s,e[23]=n,e[24]=f,e[25]=m,e[26]=C,e[27]=a?.end,e[28]=a?.start,e[29]=N):N=e[29];let P;e[30]!==r||e[31]!==S||e[32]!==I||e[33]!==s||e[34]!==n?(P=S&&!!r&&!!n&&(n.startsWith("cluster::")||!!s)&&I.length>0,e[30]=r,e[31]=S,e[32]=I,e[33]=s,e[34]=n,e[35]=P):P=e[35];const M=y>0?y:void 0;let U;e[36]!==k||e[37]!==N||e[38]!==P||e[39]!==M?(U={queryKey:k,queryFn:N,enabled:P,refetchInterval:M,staleTime:5e3,placeholderData:A.keepPreviousData},e[36]=k,e[37]=N,e[38]=P,e[39]=M,e[40]=U):U=e[40];const W=A.useQuery(U),z=W.data??void 0,X=w||W.isLoading,ee=W.error;let B;return e[41]!==W.refetch||e[42]!==I||e[43]!==z||e[44]!==X||e[45]!==ee?(B={data:z,providers:I,isLoading:X,error:ee,refetch:W.refetch},e[41]=W.refetch,e[42]=I,e[43]=z,e[44]=X,e[45]=ee,e[46]=B):B=e[46],B},fs={},ps=t=>{const{pluginID:e,connectionID:r,resourceKey:n,resourceID:s,resourceNamespace:i="",resourceData:o=fs,metricIDs:u=[],interval:l=1e4,enabled:a=!0}=t,c=ne(e),[p,f]=x.useState(null),[g,h]=x.useState(null),[v,d]=x.useState(!1),[m,y]=x.useState(null),S=x.useRef(null),E=x.useCallback(async()=>{if(!(!a||!c||!r||!n||!s))try{const b=await F.Subscribe(c,r,{resource_key:n,resource_id:s,resource_namespace:i,resource_data:o,metric_ids:u,interval:l*1e6});h(b),d(!0),y(null);const I=Z.On(`core/metrics/data/${b}`,D=>{const O=D.data;try{const k=JSON.parse(O);k.results&&f(k.results)}catch(k){console.error("Failed to parse metric stream data:",k)}}),C=Z.On(`core/metrics/error/${b}`,D=>{const O=D.data;try{const k=JSON.parse(O);y(k.error||"Unknown error")}catch{y("Failed to parse metric stream error")}});S.current=()=>{I(),C()}}catch(b){y(b instanceof Error?b.message:String(b))}},[c,r,n,s,i,o,u,l,a]),w=x.useCallback(async()=>{if(g)try{await F.Unsubscribe(g)}catch(b){console.error("Failed to unsubscribe:",b)}S.current&&(S.current(),S.current=null),h(null),d(!1)},[g]);return x.useEffect(()=>()=>{g&&F.Unsubscribe(g).catch(console.error),S.current&&S.current()},[g]),{data:p,subscriptionID:g,isStreaming:v,error:m,start:E,stop:w}},Oe=["networker","portforward","all-sessions"];function hs(){const t=j.c(17),{showSnackbar:e}=me(),r=A.useQueryClient();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:[...Oe],queryFn:ms,retry:!1},t[0]=n):n=t[0];const s=A.useQuery(n);let i,o;t[1]!==r?(i=()=>{const h=Z.On("core/networker/portforward/created",()=>{r.invalidateQueries({queryKey:[...Oe]})}),v=Z.On("core/networker/portforward/closed",()=>{r.invalidateQueries({queryKey:[...Oe]})});return()=>{h(),v()}},o=[r],t[1]=r,t[2]=i,t[3]=o):(i=t[2],o=t[3]),x.useEffect(i,o);let u;t[4]!==s.data?(u=s.data??[],t[4]=s.data,t[5]=u):u=t[5];const l=u;let a;t[6]!==e?(a=ue(e,"Failed to close port forwarding session"),t[6]=e,t[7]=a):a=t[7];let c;t[8]!==r?(c=async()=>{await r.invalidateQueries({queryKey:[...Oe]})},t[8]=r,t[9]=c):c=t[9];let p;t[10]!==a||t[11]!==c?(p={mutationFn:ys,onError:a,onSuccess:c},t[10]=a,t[11]=c,t[12]=p):p=t[12];const f=A.useMutation(p);let g;return t[13]!==l||t[14]!==f.mutateAsync||t[15]!==s?(g={sessions:s,activeSessions:l,closeSession:f.mutateAsync,openInBrowser:gs},t[13]=l,t[14]=f.mutateAsync,t[15]=s,t[16]=g):g=t[16],g}function gs(t){return Z.OpenURL(`http://localhost:${t}`)}async function ys(t){return F.ClosePortForwardSession(t)}async function ms(){return F.ListAllPortForwardSessions().catch(vs)}function vs(t){if(ye(t).detail.includes("not found"))return[];throw t}function Ss(t){const e=j.c(36),{pluginID:r,connectionID:n,resourceID:s}=t,i=ne(r);let o;e[0]!==n||e[1]!==i||e[2]!==s?(o=["networker","portforward","sessions",i,n,s],e[0]=n,e[1]=i,e[2]=s,e[3]=o):o=e[3];const u=o,{showSnackbar:l}=me(),a=A.useQueryClient();let c;e[4]!==n||e[5]!==i||e[6]!==s||e[7]!==l?(c=async()=>F.FindPortForwardSessions(i,n,ae.FindPortForwardSessionRequest.createFrom({resource_id:s,connection_id:n})).catch(I=>{const C=ye(I);return C.detail.includes("not found")?[]:(l({message:"Failed to fetch port forward sessions",status:"error",details:C.detail}),[])}),e[4]=n,e[5]=i,e[6]=s,e[7]=l,e[8]=c):c=e[8];let p;e[9]!==u||e[10]!==c?(p={queryKey:u,queryFn:c,retry:!1},e[9]=u,e[10]=c,e[11]=p):p=e[11];const f=A.useQuery(p);let g;e[12]!==n||e[13]!==i?(g=async I=>{const{opts:C}=I,D=ae.PortForwardSessionOptions.createFrom({local_port:C.localPort||0,remote_port:C.remotePort,protocol:C.protocol||"TCP",connection_type:"RESOURCE",connection:{resource_data:C.resource,connection_id:n,plugin_id:i,resource_id:C.resourceId,resource_key:C.resourceKey},labels:C.labels??{},params:C.parameters??{}}),O=await F.StartResourcePortForwardingSession(i,n,D);if(!O)throw new Error("Failed to start port forwarding: null response");return C.openInBrowser&&Z.OpenURL(`http://localhost:${O.local_port}`),O},e[12]=n,e[13]=i,e[14]=g):g=e[14];let h;e[15]!==l?(h=ue(l,"Failed to start port forwarding session"),e[15]=l,e[16]=h):h=e[16];let v;e[17]!==a||e[18]!==u?(v=async()=>{await Promise.all([a.invalidateQueries({queryKey:u}),a.invalidateQueries({queryKey:[...Oe]})])},e[17]=a,e[18]=u,e[19]=v):v=e[19];let d;e[20]!==g||e[21]!==h||e[22]!==v?(d={mutationFn:g,onError:h,onSuccess:v},e[20]=g,e[21]=h,e[22]=v,e[23]=d):d=e[23];const m=A.useMutation(d);let y;e[24]!==l?(y=ue(l,"Failed to close port forwarding session"),e[24]=l,e[25]=y):y=e[25];let S;e[26]!==a||e[27]!==u?(S=async()=>{await Promise.all([a.invalidateQueries({queryKey:u}),a.invalidateQueries({queryKey:[...Oe]})])},e[26]=a,e[27]=u,e[28]=S):S=e[28];let E;e[29]!==y||e[30]!==S?(E={mutationFn:Es,onError:y,onSuccess:S},e[29]=y,e[30]=S,e[31]=E):E=e[31];const w=A.useMutation(E);let b;return e[32]!==w.mutateAsync||e[33]!==m.mutateAsync||e[34]!==f?(b={sessions:f,forward:m.mutateAsync,close:w.mutateAsync},e[32]=w.mutateAsync,e[33]=m.mutateAsync,e[34]=f,e[35]=b):b=e[35],b}async function Es(t){const{opts:e}=t;return F.ClosePortForwardSession(e.sessionID)}const _s=()=>{const t=x.useContext(Pt);if(!t)throw new Error("useConfirmationModal must be used within a ConfirmationModalProvider");return t},Be={scope:(t,e,r)=>[t,e,r],list:(t,e,r,n=[])=>[t,e,r,n,"list"],resource:(t,e,r,n,s="")=>[t,e,r,s,n]},bs=t=>{const e=j.c(63),{pluginID:r,connectionID:n,resourceKey:s,resourceID:i,namespace:o,enabled:u}=t,l=o===void 0?"":o,a=u===void 0?!0:u,c=ne(r),p=a&&!!s&&!!i;let f;e[0]!==n||e[1]!==c||e[2]!==p?(f={pluginID:c,connectionID:n,enabled:p},e[0]=n,e[1]=c,e[2]=p,e[3]=f):f=e[3];const g=he(f),h=be(c,n),v=A.useQueryClient(),{showSnackbar:d}=me();let m;e[4]!==n||e[5]!==l||e[6]!==c||e[7]!==i||e[8]!==s?(m=Be.resource(c,n,s,i,l),e[4]=n,e[5]=l,e[6]=c,e[7]=i,e[8]=s,e[9]=m):m=e[9];const y=m;let S;e[10]!==n||e[11]!==l||e[12]!==c||e[13]!==i||e[14]!==s?(S=async B=>(await xe(c,n),F.Update(c,n,s,ae.UpdateInput.createFrom({input:B.input,id:i,namespace:l}))),e[10]=n,e[11]=l,e[12]=c,e[13]=i,e[14]=s,e[15]=S):S=e[15];let E;e[16]!==v||e[17]!==y||e[18]!==i||e[19]!==d?(E=async()=>{d(`Resource ${i} updated`,"success"),await v.invalidateQueries({queryKey:y})},e[16]=v,e[17]=y,e[18]=i,e[19]=d,e[20]=E):E=e[20];const w=`Failed to update resource ${i}`;let b;e[21]!==d||e[22]!==w?(b=ue(d,w),e[21]=d,e[22]=w,e[23]=b):b=e[23];let I;e[24]!==S||e[25]!==E||e[26]!==b?(I={mutationFn:S,onSuccess:E,onError:b},e[24]=S,e[25]=E,e[26]=b,e[27]=I):I=e[27];const{mutateAsync:C}=A.useMutation(I);let D;e[28]!==n||e[29]!==l||e[30]!==c||e[31]!==i||e[32]!==s?(D=async B=>{const Y=B===void 0?{}:B;return await xe(c,n),F.Delete(c,n,s,ae.DeleteInput.createFrom({id:i,namespace:l,gracePeriodSeconds:Y.gracePeriodSeconds}))},e[28]=n,e[29]=l,e[30]=c,e[31]=i,e[32]=s,e[33]=D):D=e[33];let O;e[34]!==v||e[35]!==y||e[36]!==i||e[37]!==d?(O=async()=>{d(`Resource ${i} deleted`,"success"),await v.invalidateQueries({queryKey:y})},e[34]=v,e[35]=y,e[36]=i,e[37]=d,e[38]=O):O=e[38];const k=`Failed to delete resource ${i}`;let N;e[39]!==d||e[40]!==k?(N=ue(d,k),e[39]=d,e[40]=k,e[41]=N):N=e[41];let P;e[42]!==D||e[43]!==O||e[44]!==N?(P={mutationFn:D,onSuccess:O,onError:N},e[42]=D,e[43]=O,e[44]=N,e[45]=P):P=e[45];const{mutateAsync:M}=A.useMutation(P);let U;e[46]!==n||e[47]!==a||e[48]!==h||e[49]!==l||e[50]!==c||e[51]!==g||e[52]!==i||e[53]!==s?(U=a&&s&&i&&g.phase==="connected"?B=>{const{signal:Y,queryKey:oe}=B;return h(oe,Y,()=>F.Get$1(c,n,s,ae.GetInput.createFrom({id:i,namespace:l})))}:A.skipToken,e[46]=n,e[47]=a,e[48]=h,e[49]=l,e[50]=c,e[51]=g,e[52]=i,e[53]=s,e[54]=U):U=e[54];const W=a&&!!s&&!!i&&g.phase==="connected";let z;e[55]!==y||e[56]!==U||e[57]!==W?(z={queryKey:y,queryFn:U,retry:!1,enabled:W},e[55]=y,e[56]=U,e[57]=W,e[58]=z):z=e[58];const X=A.useQuery(z);let ee;return e[59]!==M||e[60]!==X||e[61]!==C?(ee={resource:X,update:C,remove:M},e[59]=M,e[60]=X,e[61]=C,e[62]=ee):ee=e[62],ee},Cs=t=>{const e=j.c(11);let r;e[0]!==t.area||e[1]!==t.plugin||e[2]!==t.resource?(r=["component",t.plugin,t.resource,t.area],e[0]=t.area,e[1]=t.plugin,e[2]=t.resource,e[3]=r):r=e[3];const n=r;let s;e[4]!==t?(s=async()=>F.GetResourceAreaComponent(t),e[4]=t,e[5]=s):s=e[5];let i;e[6]!==n||e[7]!==s?(i={queryKey:n,queryFn:s},e[6]=n,e[7]=s,e[8]=i):i=e[8];const o=A.useQuery(i);let u;return e[9]!==o?(u={component:o},e[9]=o,e[10]=u):u=e[10],u},ws=t=>{const e=j.c(19),{pluginID:r,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,o=ne(r);let u;e[0]!==n||e[1]!==i||e[2]!==o?(u={pluginID:o,connectionID:n,enabled:i},e[0]=n,e[1]=i,e[2]=o,e[3]=u):u=e[3];const l=he(u),a=be(o,n);let c;e[4]!==n||e[5]!==o?(c=[o,"resource_groups","list",n],e[4]=n,e[5]=o,e[6]=c):c=e[6];const p=c;let f;e[7]!==n||e[8]!==i||e[9]!==a||e[10]!==o||e[11]!==l?(f=i&&l.phase==="connected"?m=>{const{signal:y,queryKey:S}=m;return a(S,y,()=>F.GetResourceGroups(o,n))}:A.skipToken,e[7]=n,e[8]=i,e[9]=a,e[10]=o,e[11]=l,e[12]=f):f=e[12];const g=i&&l.phase==="connected";let h;e[13]!==p||e[14]!==f||e[15]!==g?(h={queryKey:p,queryFn:f,enabled:g,retry:!1},e[13]=p,e[14]=f,e[15]=g,e[16]=h):h=e[16];const v=A.useQuery(h);let d;return e[17]!==v?(d={groups:v},e[17]=v,e[18]=d):d=e[18],d},Is=t=>{const e=j.c(24),{pluginID:r,connectionID:n,searches:s,enabled:i}=t,o=i===void 0?!0:i,u=ne(r),l=o&&s.length>0;let a;e[0]!==n||e[1]!==u||e[2]!==l?(a={pluginID:u,connectionID:n,enabled:l},e[0]=n,e[1]=u,e[2]=l,e[3]=a):a=e[3];const c=he(a),p=be(u,n);let f;e[4]!==n||e[5]!==u?(f=m=>[u,n,m.key,m.namespaces,"list"],e[4]=n,e[5]=u,e[6]=f):f=e[6];const g=f;let h;if(e[7]!==n||e[8]!==o||e[9]!==g||e[10]!==p||e[11]!==u||e[12]!==c||e[13]!==s){let m;e[15]!==n||e[16]!==o||e[17]!==g||e[18]!==p||e[19]!==u||e[20]!==c?(m=y=>({queryKey:g(y),queryFn:o&&y.key&&c.phase==="connected"?S=>{const{signal:E,queryKey:w}=S;return p(w,E,()=>F.List(u,n,y.key,ae.ListInput.createFrom({order:[{field:"name",descending:!1}],pagination:{page:1,pageSize:200},namespaces:y.namespaces}))).then(b=>b?(console.log(b.result),b.result&&y.postFilter?Object.values(b.result).filter(y.postFilter):Object.values(b.result||{})):[])}:A.skipToken,retry:!1,enabled:o&&!!y.key&&c.phase==="connected"}),e[15]=n,e[16]=o,e[17]=g,e[18]=p,e[19]=u,e[20]=c,e[21]=m):m=e[21],h=s.map(m),e[7]=n,e[8]=o,e[9]=g,e[10]=p,e[11]=u,e[12]=c,e[13]=s,e[14]=h}else h=e[14];let v;return e[22]!==h?(v={queries:h},e[22]=h,e[23]=v):v=e[23],A.useQueries(v)},xs=t=>{const e=j.c(11),{pluginID:r,resourceKey:n}=t,s=ne(r);let i;e[0]!==s||e[1]!==n?(i=[s,"resources",n],e[0]=s,e[1]=n,e[2]=i):i=e[2];const o=i;let u;e[3]!==s||e[4]!==n?(u=async()=>F.GetResourceType(s,n),e[3]=s,e[4]=n,e[5]=u):u=e[5];let l;e[6]!==o||e[7]!==u?(l={queryKey:o,queryFn:u,retry:!1},e[6]=o,e[7]=u,e[8]=l):l=e[8];const a=A.useQuery(l);let c;return e[9]!==a?(c={resourceType:a},e[9]=a,e[10]=c):c=e[10],c},Ds=t=>{const e=j.c(19),{pluginID:r,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,o=ne(r);let u;e[0]!==n||e[1]!==i||e[2]!==o?(u={pluginID:o,connectionID:n,enabled:i},e[0]=n,e[1]=i,e[2]=o,e[3]=u):u=e[3];const l=he(u),a=be(o,n);let c;e[4]!==n||e[5]!==o?(c=[o,"resources","list",n],e[4]=n,e[5]=o,e[6]=c):c=e[6];const p=c;let f;e[7]!==n||e[8]!==i||e[9]!==a||e[10]!==o||e[11]!==l?(f=i&&l.phase==="connected"?m=>{const{signal:y,queryKey:S}=m;return a(S,y,()=>F.GetResourceTypes(o,n))}:A.skipToken,e[7]=n,e[8]=i,e[9]=a,e[10]=o,e[11]=l,e[12]=f):f=e[12];const g=i&&l.phase==="connected";let h;e[13]!==p||e[14]!==f||e[15]!==g?(h={queryKey:p,queryFn:f,enabled:g,retry:!1},e[13]=p,e[14]=f,e[15]=g,e[16]=h):h=e[16];const v=A.useQuery(h);let d;return e[17]!==v?(d={types:v},e[17]=v,e[18]=d):d=e[18],d};var We=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rs(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var it,It;function Os(){if(It)return it;It=1;var t="Expected a function",e="__lodash_hash_undefined__",r="[object Function]",n="[object GeneratorFunction]",s="[object Symbol]",i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/,u=/^\./,l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/[\\^$.*+?()[\]{}|]/g,c=/\\(\\)?/g,p=/^\[object .+?Constructor\]$/,f=typeof We=="object"&&We&&We.Object===Object&&We,g=typeof self=="object"&&self&&self.Object===Object&&self,h=f||g||Function("return this")();function v(_,R){return _?.[R]}function d(_){var R=!1;if(_!=null&&typeof _.toString!="function")try{R=!!(_+"")}catch{}return R}var m=Array.prototype,y=Function.prototype,S=Object.prototype,E=h["__core-js_shared__"],w=(function(){var _=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||"");return _?"Symbol(src)_1."+_:""})(),b=y.toString,I=S.hasOwnProperty,C=S.toString,D=RegExp("^"+b.call(I).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),O=h.Symbol,k=m.splice,N=Le(h,"Map"),P=Le(Object,"create"),M=O?O.prototype:void 0,U=M?M.toString:void 0;function W(_){var R=-1,L=_?_.length:0;for(this.clear();++R<L;){var se=_[R];this.set(se[0],se[1])}}function z(){this.__data__=P?P(null):{}}function X(_){return this.has(_)&&delete this.__data__[_]}function ee(_){var R=this.__data__;if(P){var L=R[_];return L===e?void 0:L}return I.call(R,_)?R[_]:void 0}function B(_){var R=this.__data__;return P?R[_]!==void 0:I.call(R,_)}function Y(_,R){var L=this.__data__;return L[_]=P&&R===void 0?e:R,this}W.prototype.clear=z,W.prototype.delete=X,W.prototype.get=ee,W.prototype.has=B,W.prototype.set=Y;function oe(_){var R=-1,L=_?_.length:0;for(this.clear();++R<L;){var se=_[R];this.set(se[0],se[1])}}function ve(){this.__data__=[]}function Q(_){var R=this.__data__,L=Se(R,_);if(L<0)return!1;var se=R.length-1;return L==se?R.pop():k.call(R,L,1),!0}function J(_){var R=this.__data__,L=Se(R,_);return L<0?void 0:R[L][1]}function K(_){return Se(this.__data__,_)>-1}function H(_,R){var L=this.__data__,se=Se(L,_);return se<0?L.push([_,R]):L[se][1]=R,this}oe.prototype.clear=ve,oe.prototype.delete=Q,oe.prototype.get=J,oe.prototype.has=K,oe.prototype.set=H;function q(_){var R=-1,L=_?_.length:0;for(this.clear();++R<L;){var se=_[R];this.set(se[0],se[1])}}function $(){this.__data__={hash:new W,map:new(N||oe),string:new W}}function V(_){return Pe(this,_).delete(_)}function de(_){return Pe(this,_).get(_)}function fe(_){return Pe(this,_).has(_)}function we(_,R){return Pe(this,_).set(_,R),this}q.prototype.clear=$,q.prototype.delete=V,q.prototype.get=de,q.prototype.has=fe,q.prototype.set=we;function Se(_,R){for(var L=_.length;L--;)if(cn(_[L][0],R))return L;return-1}function ce(_,R){R=Ue(R,_)?[R]:ke(R);for(var L=0,se=R.length;_!=null&&L<se;)_=_[rn(R[L++])];return L&&L==se?_:void 0}function ie(_){if(!St(_)||nn(_))return!1;var R=an(_)||d(_)?D:p;return R.test(on(_))}function le(_){if(typeof _=="string")return _;if(Xe(_))return U?U.call(_):"";var R=_+"";return R=="0"&&1/_==-1/0?"-0":R}function ke(_){return vt(_)?_:sn(_)}function Pe(_,R){var L=_.__data__;return Ee(R)?L[typeof R=="string"?"string":"hash"]:L.map}function Le(_,R){var L=v(_,R);return ie(L)?L:void 0}function Ue(_,R){if(vt(_))return!1;var L=typeof _;return L=="number"||L=="symbol"||L=="boolean"||_==null||Xe(_)?!0:o.test(_)||!i.test(_)||R!=null&&_ in Object(R)}function Ee(_){var R=typeof _;return R=="string"||R=="number"||R=="symbol"||R=="boolean"?_!=="__proto__":_===null}function nn(_){return!!w&&w in _}var sn=Ye(function(_){_=un(_);var R=[];return u.test(_)&&R.push(""),_.replace(l,function(L,se,$e,Me){R.push($e?Me.replace(c,"$1"):se||L)}),R});function rn(_){if(typeof _=="string"||Xe(_))return _;var R=_+"";return R=="0"&&1/_==-1/0?"-0":R}function on(_){if(_!=null){try{return b.call(_)}catch{}try{return _+""}catch{}}return""}function Ye(_,R){if(typeof _!="function"||R&&typeof R!="function")throw new TypeError(t);var L=function(){var se=arguments,$e=R?R.apply(this,se):se[0],Me=L.cache;if(Me.has($e))return Me.get($e);var Et=_.apply(this,se);return L.cache=Me.set($e,Et),Et};return L.cache=new(Ye.Cache||q),L}Ye.Cache=q;function cn(_,R){return _===R||_!==_&&R!==R}var vt=Array.isArray;function an(_){var R=St(_)?C.call(_):"";return R==r||R==n}function St(_){var R=typeof _;return!!_&&(R=="object"||R=="function")}function ln(_){return!!_&&typeof _=="object"}function Xe(_){return typeof _=="symbol"||ln(_)&&C.call(_)==s}function un(_){return _==null?"":le(_)}function dn(_,R,L){var se=_==null?void 0:ce(_,R);return se===void 0?L:se}return it=dn,it}var Ts=Os();const ct=Rs(Ts);function Ht(t,e,r){const n=t??{result:[],success:!0,totalCount:0},s=n.result??[];let i;const o=e.length>1?new Map:void 0,u=new Map;if(o)for(let a=s.length-1;a>=0;a--){const c=ct(s[a],r);if(c!==c)continue;const p=o.get(c);p!==void 0&&u.set(a,p),o.set(c,a)}const l=new Set;for(const a of e){const c=ct(a.payload.data,r),p=i??s,f=o?c===c?o.get(c)??-1:-1:p.findIndex(g=>ct(g,r)===c);switch(a.type){case"ADD":f===-1&&(i??=s.slice(),c===c&&o?.set(c,i.length),i.push(a.payload.data));break;case"UPDATE":f!==-1&&p[f]!==a.payload.data&&(i??=s.slice(),i[f]=a.payload.data);break;case"DELETE":if(f!==-1){i??=s.slice(),l.add(f);const g=u.get(f);g===void 0?o?.delete(c):o?.set(c,g)}break}}return i?(l.size&&(i=i.filter((a,c)=>!l.has(c))),{...n,result:i}):n}function Jt(t,e,r,n,s,i){const o=j.c(17),u=i?.syncWindowMs??500,l=i?.enabled??!0;let a;o[0]===Symbol.for("react.memo_cache_sentinel")?(a=[],o[0]=a):a=o[0];const c=x.useRef(a),p=x.useRef(null),f=x.useRef(null),g=x.useRef(s);let h,v;o[1]!==s?(h=()=>{g.current=s},v=[s],o[1]=s,o[2]=h,o[3]=v):(h=o[2],v=o[3]),x.useLayoutEffect(h,v);let d;o[4]!==r||o[5]!==n||o[6]!==t||o[7]!==e?(d=()=>{const b=c.current;if(c.current=[],p.current!==null&&(clearTimeout(p.current),p.current=null),f.current!==null&&(cancelAnimationFrame(f.current),f.current=null),!(b.length===0||!n)){t.setQueryData(e,I=>Ht(I,b,n));for(const I of b)(I.type==="ADD"||I.type==="UPDATE")&&t.setQueryData(r(I.payload.id,I.payload.namespace),{success:!0,result:I.payload.data})}},o[4]=r,o[5]=n,o[6]=t,o[7]=e,o[8]=d):d=o[8];const m=d;let y;o[9]!==l||o[10]!==m||o[11]!==u?(y=b=>{l&&(c.current.push(b),!(p.current!==null||f.current!==null)&&(p.current=setTimeout(m,u),g.current!==1&&(f.current=requestAnimationFrame(m))))},o[9]=l,o[10]=m,o[11]=u,o[12]=y):y=o[12];const S=y;let E;o[13]===Symbol.for("react.memo_cache_sentinel")?(E=()=>()=>{c.current=[],p.current!==null&&(clearTimeout(p.current),p.current=null),f.current!==null&&(cancelAnimationFrame(f.current),f.current=null)},o[13]=E):E=o[13];let w;return o[14]!==l||o[15]!==m?(w=[l,m],o[14]=l,o[15]=m,o[16]=w):w=o[16],x.useLayoutEffect(E,w),S}const Ps=t=>{const e=j.c(75),{pluginID:r,connectionID:n,resourceKey:s,idAccessor:i,namespaces:o,enabled:u}=t,l=u===void 0?!0:u,a=ne(r),c=A.useQueryClient(),{showSnackbar:p}=me(),f=l&&!!s;let g;e[0]!==n||e[1]!==a||e[2]!==f?(g={pluginID:a,connectionID:n,enabled:f},e[0]=n,e[1]=a,e[2]=f,e[3]=g):g=e[3];const h=he(g),v=be(a,n),d=l&&!!s&&h.phase==="connected";let m;e[4]===Symbol.for("react.memo_cache_sentinel")?(m=Promise.resolve(),e[4]=m):m=e[4];const y=x.useRef(m),S=x.useRef(p);let E,w;e[5]!==p?(E=()=>{S.current=p},w=[p],e[5]=p,e[6]=E,e[7]=w):(E=e[6],w=e[7]),x.useLayoutEffect(E,w);let b;e[8]!==o?(b=o??[],e[8]=o,e[9]=b):b=e[9];const I=b;let C;e[10]!==n||e[11]!==a||e[12]!==s||e[13]!==I?(C=Be.list(a,n,s,I),e[10]=n,e[11]=a,e[12]=s,e[13]=I,e[14]=C):C=e[14];const D=C;let O;e[15]!==n||e[16]!==a||e[17]!==s?(O=(ce,ie)=>Be.resource(a,n,s,ce,ie),e[15]=n,e[16]=a,e[17]=s,e[18]=O):O=e[18];const k=O;let N;e[19]!==n||e[20]!==a||e[21]!==s||e[22]!==I?(N=async ce=>(await xe(a,n),F.Create(a,n,s,ae.CreateInput.createFrom({input:ce.input,namespace:ce.namespace??(I.length===1?I[0]:"")}))),e[19]=n,e[20]=a,e[21]=s,e[22]=I,e[23]=N):N=e[23];let P;e[24]!==c||e[25]!==D||e[26]!==p?(P=async ce=>{const ie=ce?.result;let le="";ie?.metadata?.name?le=ie.metadata.name:ie?.id?le=ie.id:ie?.name?le=ie.name:ie?.ID?le=ie.ID:ie?.Name&&(le=ie.Name);const ke=le?`Resource ${le} created`:"Resource created";p(ke,"success"),await c.invalidateQueries({queryKey:D})},e[24]=c,e[25]=D,e[26]=p,e[27]=P):P=e[27];let M;e[28]!==p?(M=ue(p,"Failed to create resource"),e[28]=p,e[29]=M):M=e[29];let U;e[30]!==N||e[31]!==P||e[32]!==M?(U={mutationFn:N,onSuccess:P,onError:M},e[30]=N,e[31]=P,e[32]=M,e[33]=U):U=e[33];const{mutateAsync:W}=A.useMutation(U);let z;e[34]!==n||e[35]!==v||e[36]!==a||e[37]!==d||e[38]!==s||e[39]!==I?(z=d?ce=>{const{signal:ie,queryKey:le}=ce;return v(le,ie,()=>F.List(a,n,s,ae.ListInput.createFrom({order:[{field:"name",descending:!1}],pagination:{page:1,pageSize:200},namespaces:I})))}:A.skipToken,e[34]=n,e[35]=v,e[36]=a,e[37]=d,e[38]=s,e[39]=I,e[40]=z):z=e[40];let X;e[41]!==d||e[42]!==D||e[43]!==z?(X={queryKey:D,queryFn:z,placeholderData:As,retry:!1,enabled:d},e[41]=d,e[42]=D,e[43]=z,e[44]=X):X=e[44];const ee=A.useQuery(X);let B;e[45]!==n||e[46]!==a||e[47]!==d||e[48]!==s?(B={pluginID:a,connectionID:n,resourceKey:s,enabled:d},e[45]=n,e[46]=a,e[47]=d,e[48]=s,e[49]=B):B=e[49];const Y=B,[oe,ve]=x.useState(),Q=d&&oe?.scope===Y?oe.state:G.WatchStateIdle;let J,K;e[50]!==n||e[51]!==a||e[52]!==d||e[53]!==s||e[54]!==Y?(J=()=>d?Z.On(`${a}/${n}/watch/STATE`,ie=>{const le=ie.data;le.resourceKey===s&&ve({scope:Y,state:le.state})}):void 0,K=[a,n,s,d,Y],e[50]=n,e[51]=a,e[52]=d,e[53]=s,e[54]=Y,e[55]=J,e[56]=K):(J=e[55],K=e[56]),x.useEffect(J,K);let H;e[57]!==d?(H={enabled:d},e[57]=d,e[58]=H):H=e[58];const q=Jt(c,D,k,i,Q,H);let $,V;e[59]!==n||e[60]!==q||e[61]!==i||e[62]!==a||e[63]!==d||e[64]!==s||e[65]!==Y?($=()=>{if(!d||!i)return;let ce=!0,ie=!1;const le=Z.On(`${a}/${n}/${s}/ADD`,Ee=>{ce&&q({type:"ADD",payload:Ee.data})}),ke=Z.On(`${a}/${n}/${s}/UPDATE`,Ee=>{ce&&q({type:"UPDATE",payload:Ee.data})}),Pe=Z.On(`${a}/${n}/${s}/DELETE`,Ee=>{ce&&q({type:"DELETE",payload:Ee.data})}),Le=()=>{le(),ke(),Pe()},Ue=y.current.then(async()=>{ce&&(await F.SubscribeResource(a,n,s),ie=!0)}).catch(Ee=>{Le(),ce&&ve({scope:Y,state:G.WatchStateError}),Ce(S.current,Ee,"Failed to subscribe to resource updates")});return y.current=Ue,()=>{ce=!1,Le(),y.current=Ue.then(async()=>{ie&&await F.UnsubscribeResource(a,n,s)}).catch(Ee=>{Ce(S.current,Ee,"Failed to unsubscribe from resource updates")})}},V=[a,n,s,q,i,d,Y],e[59]=n,e[60]=q,e[61]=i,e[62]=a,e[63]=d,e[64]=s,e[65]=Y,e[66]=$,e[67]=V):($=e[66],V=e[67]),x.useEffect($,V);const de=Q===G.WatchStateSyncing,fe=Q===G.WatchStateSynced,we=Q===G.WatchStateError;let Se;return e[68]!==W||e[69]!==ee||e[70]!==de||e[71]!==fe||e[72]!==we||e[73]!==Q?(Se={resources:ee,create:W,watchState:Q,isSyncing:de,isSynced:fe,watchError:we},e[68]=W,e[69]=ee,e[70]=de,e[71]=fe,e[72]=we,e[73]=Q,e[74]=Se):Se=e[74],Se};function As(t,e){return t}const Ns=t=>{const e=j.c(28),{pluginID:r}=t,n=ne(r),{showSnackbar:s}=me();let i;e[0]!==n?(i=async y=>{const{opts:S,input:E}=y;return await xe(n,S.connectionID),F.Create(n,S.connectionID,S.resourceKey,ae.CreateInput.createFrom({input:E.input,namespace:E.namespace??S.namespace??""}))},e[0]=n,e[1]=i):i=e[1];let o;e[2]!==s?(o=(y,S)=>{const{opts:E}=S;s(`Resource ${E.resourceID} created`,"success")},e[2]=s,e[3]=o):o=e[3];let u;e[4]!==s||e[5]!==i||e[6]!==o?(u={mutationFn:i,onSuccess:o,onError(y,S){const{opts:E}=S;Ce(s,y,`Failed to create resource ${E.resourceID}`)}},e[4]=s,e[5]=i,e[6]=o,e[7]=u):u=e[7];const l=A.useMutation(u);let a;e[8]!==n?(a=async y=>{const{opts:S,input:E}=y;return await xe(n,S.connectionID),F.Update(n,S.connectionID,S.resourceKey,ae.UpdateInput.createFrom({input:E.input,id:S.resourceID,namespace:S.namespace??""}))},e[8]=n,e[9]=a):a=e[9];let c;e[10]!==s?(c=(y,S)=>{const{opts:E}=S;s(`Resource ${E.resourceID} updated`,"success")},e[10]=s,e[11]=c):c=e[11];let p;e[12]!==s||e[13]!==a||e[14]!==c?(p={mutationFn:a,onSuccess:c,onError(y,S){const{opts:E}=S;Ce(s,y,`Failed to update resource ${E.resourceID}`)}},e[12]=s,e[13]=a,e[14]=c,e[15]=p):p=e[15];const f=A.useMutation(p);let g;e[16]!==n?(g=async y=>{const{opts:S,input:E}=y;return await xe(n,S.connectionID),F.Delete(n,S.connectionID,S.resourceKey,ae.DeleteInput.createFrom({id:S.resourceID,namespace:S.namespace??"",gracePeriodSeconds:E.gracePeriodSeconds}))},e[16]=n,e[17]=g):g=e[17];let h;e[18]!==s?(h=(y,S)=>{const{opts:E}=S;s(`Resource ${E.resourceID} deleted`,"success")},e[18]=s,e[19]=h):h=e[19];let v;e[20]!==s||e[21]!==g||e[22]!==h?(v={mutationFn:g,onSuccess:h,onError(y,S){const{opts:E}=S;Ce(s,y,`Failed to delete resource ${E.resourceID}`)}},e[20]=s,e[21]=g,e[22]=h,e[23]=v):v=e[23];const d=A.useMutation(v);let m;return e[24]!==l.mutateAsync||e[25]!==d.mutateAsync||e[26]!==f.mutateAsync?(m={create:l.mutateAsync,update:f.mutateAsync,remove:d.mutateAsync},e[24]=l.mutateAsync,e[25]=d.mutateAsync,e[26]=f.mutateAsync,e[27]=m):m=e[27],m},Fs=t=>{const e=j.c(25),{pluginID:r,connectionID:n,resourceKey:s,enabled:i}=t,o=i===void 0?!0:i,u=ne(r),l=o&&!!s;let a;e[0]!==n||e[1]!==u||e[2]!==l?(a={pluginID:u,connectionID:n,enabled:l},e[0]=n,e[1]=u,e[2]=l,e[3]=a):a=e[3];const c=he(a),p=be(u,n);let f;e[4]!==n||e[5]!==u||e[6]!==s?(f=["RESOURCE_ACTIONS",u,n,s],e[4]=n,e[5]=u,e[6]=s,e[7]=f):f=e[7];let g;e[8]!==n||e[9]!==o||e[10]!==p||e[11]!==u||e[12]!==c||e[13]!==s?(g=o&&s&&c.phase==="connected"?S=>{const{signal:E,queryKey:w}=S;return p(w,E,()=>F.GetActions(u,n,s))}:A.skipToken,e[8]=n,e[9]=o,e[10]=p,e[11]=u,e[12]=c,e[13]=s,e[14]=g):g=e[14];const h=o&&!!u&&!!n&&!!s&&c.phase==="connected";let v;e[15]!==f||e[16]!==g||e[17]!==h?(v={queryKey:f,queryFn:g,enabled:h,staleTime:3e5},e[15]=f,e[16]=g,e[17]=h,e[18]=v):v=e[18];const d=A.useQuery(v);let m;e[19]!==d.data?(m=d.data??[],e[19]=d.data,e[20]=m):m=e[20];let y;return e[21]!==d.error||e[22]!==d.isLoading||e[23]!==m?(y={actions:m,isLoading:d.isLoading,error:d.error},e[21]=d.error,e[22]=d.isLoading,e[23]=m,e[24]=y):y=e[24],y},ks=t=>{const e=j.c(20),{pluginID:r,connectionID:n,resourceKey:s}=t,i=ne(r),o=A.useQueryClient(),{showSnackbar:u}=me();let l;e[0]!==n||e[1]!==i||e[2]!==s?(l=async h=>{const{actionID:v,id:d,namespace:m,params:y}=h,S=d===void 0?"":d,E=m===void 0?"":m,w=y===void 0?{}:y;return await xe(i,n),F.ExecuteAction(i,n,s,v,ae.ActionInput.createFrom({id:S,namespace:E,params:w}))},e[0]=n,e[1]=i,e[2]=s,e[3]=l):l=e[3];let a;e[4]!==n||e[5]!==i||e[6]!==o||e[7]!==s||e[8]!==u?(a=h=>{h?.message&&u(h.message,"success"),o.invalidateQueries({queryKey:["RESOURCES",i,n,s]})},e[4]=n,e[5]=i,e[6]=o,e[7]=s,e[8]=u,e[9]=a):a=e[9];let c;e[10]!==u?(c=(h,v)=>{Ce(u,h,`Failed to execute action "${v.actionID}"`)},e[10]=u,e[11]=c):c=e[11];let p;e[12]!==l||e[13]!==a||e[14]!==c?(p={mutationFn:l,onSuccess:a,onError:c},e[12]=l,e[13]=a,e[14]=c,e[15]=p):p=e[15];const f=A.useMutation(p);let g;return e[16]!==f.error||e[17]!==f.isPending||e[18]!==f.mutateAsync?(g={executeAction:f.mutateAsync,isExecuting:f.isPending,error:f.error},e[16]=f.error,e[17]=f.isPending,e[18]=f.mutateAsync,e[19]=g):g=e[19],g},Ls=t=>{const e=j.c(24),{pluginID:r,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,o=ne(r);let u;e[0]!==n||e[1]!==i||e[2]!==o?(u={pluginID:o,connectionID:n,enabled:i},e[0]=n,e[1]=i,e[2]=o,e[3]=u):u=e[3];const l=he(u),a=be(o,n);let c;e[4]!==n||e[5]!==o?(c=["EDITOR_SCHEMAS",o,n],e[4]=n,e[5]=o,e[6]=c):c=e[6];let p;e[7]!==n||e[8]!==i||e[9]!==a||e[10]!==o||e[11]!==l?(p=i&&l.phase==="connected"?m=>{const{signal:y,queryKey:S}=m;return a(S,y,()=>F.GetEditorSchemas(o,n))}:A.skipToken,e[7]=n,e[8]=i,e[9]=a,e[10]=o,e[11]=l,e[12]=p):p=e[12];const f=i&&!!o&&!!n&&l.phase==="connected";let g;e[13]!==c||e[14]!==p||e[15]!==f?(g={queryKey:c,queryFn:p,enabled:f,staleTime:6e5,retry:1},e[13]=c,e[14]=p,e[15]=f,e[16]=g):g=e[16];const h=A.useQuery(g);let v;e[17]!==h.data?(v=h.data??[],e[17]=h.data,e[18]=v):v=e[18];let d;return e[19]!==h.error||e[20]!==h.isLoading||e[21]!==h.refetch||e[22]!==v?(d={schemas:v,isLoading:h.isLoading,error:h.error,refetch:h.refetch},e[19]=h.error,e[20]=h.isLoading,e[21]=h.refetch,e[22]=v,e[23]=d):d=e[23],d},$s=({pluginID:t,connectionID:e,enabled:r=!0})=>{const n=ne(t),s=A.useQueryClient(),i=[n,e,"watch-state"],o=x.useRef([]),u=x.useRef(!1),l=x.useCallback(f=>{s.setQueryData(i,g=>{if(!g)return g;const h={...g.resources,[f.resourceKey]:f.state},v={...g.resourceCounts,[f.resourceKey]:f.resourceCount};let d=0,m=0;for(const y of Object.values(h))y===G.WatchStateSynced&&d++,(y===G.WatchStateError||y===G.WatchStateFailed)&&m++;return{...g,resources:h,resourceCounts:v,totalResources:Object.keys(h).length,syncedCount:d,errorCount:m}})},[s,n,e]),a=A.useQuery({queryKey:i,queryFn:async()=>{const f=await F.GetWatchState(n,e);if(!f)throw new Error("Failed to get watch state: null response");const g={};let h=0,v=0;for(const[m,y]of Object.entries(f.resources??{}))y!=null&&(g[m]=y,y===G.WatchStateSynced&&h++,y===G.WatchStateError&&v++);const d={};for(const[m,y]of Object.entries(f.resourceCounts??{}))y!=null&&(d[m]=y);return{connection:f.connectionId,resources:g,resourceCounts:d,totalResources:Object.keys(g).length,syncedCount:h,errorCount:v}},enabled:r&&!!n&&!!e,refetchInterval:f=>{const g=f.state.data;if(!g||g.totalResources===0)return 3e3;let h=0;for(const v of Object.values(g.resources))(v===G.WatchStateSynced||v===G.WatchStateError||v===G.WatchStateStopped||v===G.WatchStateFailed||v===G.WatchStateForbidden||v===G.WatchStateSkipped)&&h++;return h>=g.totalResources?!1:3e3}});x.useEffect(()=>{if(!a.data||u.current)return;u.current=!0;const f=o.current;o.current=[];for(const g of f)l(g)},[a.data,l]),x.useEffect(()=>{if(!r||!n||!e)return;u.current=!1,o.current=[];const f=Z.On(`${n}/${e}/watch/STATE`,g=>{const h=g.data;u.current?l(h):o.current.push(h)});return()=>{f(),u.current=!1,o.current=[]}},[n,e,r,l]);const c=a.data;let p=0;if(c?.resources)for(const f of Object.values(c.resources))(f===G.WatchStateSynced||f===G.WatchStateError||f===G.WatchStateStopped||f===G.WatchStateFailed||f===G.WatchStateForbidden||f===G.WatchStateSkipped)&&p++;return{summary:a,getResourceState:f=>c?.resources[f],isFullySynced:c?c.totalResources>0&&p===c.totalResources:!1,syncProgress:c&&c.totalResources>0?p/c.totalResources:0,errorCount:c?.errorCount??0}},Ms=()=>{const t=j.c(16);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=new Map,t[0]=e):e=t[0];const[r,n]=x.useState(e);let s;t[1]===Symbol.for("react.memo_cache_sentinel")?(s=new Map,t[1]=s):s=t[1];const i=x.useRef(s);let o;t[2]===Symbol.for("react.memo_cache_sentinel")?(o=new Map,t[2]=o):o=t[2];const u=x.useRef(o);let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=y=>{const S=y.data,E=yt(S),w=Gt(i.current,S),b=ut(w);if(n(I=>{const C=new Map(I);return C.set(E,b),C}),u.current.has(E)&&(clearTimeout(u.current.get(E)),u.current.delete(E)),Je(b)){const I=setTimeout(()=>{n(C=>{const D=new Map(C);return D.delete(E),D}),i.current.delete(E),u.current.delete(E)},5e3);u.current.set(E,I)}},t[3]=l):l=t[3];const a=l;let c,p;t[4]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{const y=Z.On("watch/STATE",a);return()=>{y();for(const S of u.current.values())clearTimeout(S)}},p=[a],t[4]=c,t[5]=p):(c=t[4],p=t[5]),x.useEffect(c,p);let f,g,h,v;t[6]!==r?(h=Array.from(r.values()),f=Wt(h),g=h.find(qs)??h[0]??null,v=Kt(h),t[6]=r,t[7]=f,t[8]=g,t[9]=h,t[10]=v):(f=t[7],g=t[8],h=t[9],v=t[10]);const d=v;let m;return t[11]!==d||t[12]!==f||t[13]!==g||t[14]!==h?(m={syncs:h,hasSyncing:f,primarySync:g,aggregateProgress:d},t[11]=d,t[12]=f,t[13]=g,t[14]=h,t[15]=m):m=t[15],m};function qs(t){return!Je(t)}const Vt=()=>{const t=x.useContext(ft);if(!t)throw new Error("useOperations must be used within an OperationsProvider");return t},js=({pluginID:t,connectionID:e,resourceKey:r})=>{const n=ne(t),{showSnackbar:s}=me(),{addOperation:i,updateOperation:o}=Vt(),u=x.useRef(new Set),l=x.useCallback((p,f=!1)=>{p.disposed||(p.disposed=!0,p.unsubscribe?.(),p.open?.cancel(),p.attach?.cancel(),p.handle&&(F.CancelStreamAction(p.handle).catch(()=>{}),f&&o(p.handle,{status:"cancelled",message:"Cancelled",completedAt:Date.now()})),u.current.delete(p))},[o]);x.useEffect(()=>()=>{for(const p of u.current)l(p,!0)},[n,e,r,l]);const a=x.useCallback(async({actionID:p,id:f,namespace:g,label:h,params:v={}})=>{const d={disposed:!1,terminal:!1,sequence:0};u.current.add(d);try{if(await xe(n,e),d.disposed)throw new Error("Stream action was cancelled before the connection became ready");d.open=F.StreamAction(n,e,r,p,ae.ActionInput.createFrom({id:f,namespace:g,params:v}));const m=await d.open;if(d.open=void 0,d.disposed)return F.CancelStreamAction(m).catch(()=>{}),m;d.handle=m,i({id:m,label:h,resourceKey:r,resourceName:f,namespace:g,connectionID:e,status:"running",startedAt:Date.now()});const y=E=>{if(d.disposed||!Number.isSafeInteger(E.sequence)||E.sequence<=d.sequence)return;d.sequence=E.sequence;const w=E.event,b=w.data??{};if(w.type==="error"){d.terminal=!0;const I=ye(w.error);o(m,{status:je(I)?"cancelled":"error",message:I.title,completedAt:Date.now()}),Ce(s,I,h),l(d)}else if(w.type==="complete"){d.terminal=!0;const I=typeof b.message=="string"?b.message:`${h} completed`;o(m,{status:"completed",message:I,completedAt:Date.now()}),s(I,"success"),l(d)}else o(m,{message:typeof b.message=="string"?b.message:void 0,progress:typeof b.ready=="number"&&typeof b.desired=="number"?{ready:b.ready,desired:b.desired}:void 0})};d.unsubscribe=Z.On(`action/stream/${m}`,E=>y(E.data)),d.attach=F.AttachStreamAction(m);const S=await d.attach;return d.attach=void 0,y(S),m}catch(m){if(d.terminal&&d.handle)return d.handle;throw d.disposed||(d.handle&&o(d.handle,{status:je(m)?"cancelled":"error",message:ye(m).title,completedAt:Date.now()}),Ce(s,m,`Failed to start "${p}"`)),l(d),m}},[n,e,r,i,o,s,l]),c=x.useCallback(p=>{for(const f of u.current)if(f.handle===p){l(f,!0);return}},[l]);return{startStreamAction:a,cancelStreamAction:c}};function Yt(t,e){return`${t}/${e}/graph/CHANGED`}function Ve(t,e,r,n){const s=j.c(16),i=A.useQueryClient(),o=x.useRef(r);let u,l;s[0]!==r?(u=()=>{o.current=r},l=[r],s[0]=r,s[1]=u,s[2]=l):(u=s[1],l=s[2]),x.useLayoutEffect(u,l);let a;s[3]!==r?(a=JSON.stringify(r),s[3]=r,s[4]=a):a=s[4];const c=a;let p;s[5]!==e||s[6]!==n||s[7]!==t||s[8]!==i?(p=()=>{if(!n||!t||!e)return;const g=Z.On(Yt(t,e),()=>{i.invalidateQueries({queryKey:o.current,exact:!0})});return()=>{g()}},s[5]=e,s[6]=n,s[7]=t,s[8]=i,s[9]=p):p=s[9];let f;s[10]!==e||s[11]!==n||s[12]!==c||s[13]!==t||s[14]!==i?(f=[i,t,e,c,n],s[10]=e,s[11]=n,s[12]=c,s[13]=t,s[14]=i,s[15]=f):f=s[15],x.useEffect(p,f)}const Us={owns:{outgoing:"Owns",incoming:"Owned by"},runs_on:{outgoing:"Runs on",incoming:"Running here"},uses:{outgoing:"Uses",incoming:"Used by"},exposes:{outgoing:"Exposes",incoming:"Exposed by"},manages:{outgoing:"Manages",incoming:"Managed by"},member_of:{outgoing:"Member of",incoming:"Members"},selects:{outgoing:"Selects",incoming:"Selected by"}};function Qs(t,e){const r=Us[t];if(r)return r[e];const n=t.replace(/_/g," ");return e==="outgoing"?n:`${n} (incoming)`}function Ws(t,e){return t.pluginId===e.pluginId&&t.connectionId===e.connectionId&&t.resourceKey===e.resourceKey&&t.id===e.id&&(t.namespace??"")===(e.namespace??"")}function Xt(t,e){return e.map(r=>{const n=Ws(r.source,t);return{resource:n?r.target:r.source,type:r.type,direction:n?"outgoing":"incoming",label:r.label}})}const Ks=t=>{const e=j.c(44),{pluginID:r,connectionID:n,resourceKey:s,resourceID:i,namespace:o,direction:u,relationshipType:l,enabled:a,refetchInterval:c}=t,p=o===void 0?"":o,f=u===void 0?"both":u,g=a===void 0?!0:a,h=c===void 0?!1:c,v=ne(r),d=l??null;let m;e[0]!==n||e[1]!==f||e[2]!==p||e[3]!==v||e[4]!==i||e[5]!==s||e[6]!==d?(m=["RESOURCE_RELATED",v,n,s,p,i,f,d],e[0]=n,e[1]=f,e[2]=p,e[3]=v,e[4]=i,e[5]=s,e[6]=d,e[7]=m):m=e[7];const y=m,S=g&&!!s&&!!i;let E;e[8]!==n||e[9]!==v||e[10]!==S?(E={pluginID:v,connectionID:n,enabled:S},e[8]=n,e[9]=v,e[10]=S,e[11]=E):E=e[11];const w=he(E),b=be(v,n),I=g&&!!v&&!!n&&!!s&&!!i&&w.phase==="connected";Ve(v,n,y,I);let C;e[12]!==n||e[13]!==f||e[14]!==b||e[15]!==p||e[16]!==v||e[17]!==I||e[18]!==l||e[19]!==i||e[20]!==s?(C=I?M=>{const{signal:U,queryKey:W}=M;return b(W,U,()=>F.GetRelated(v,n,s,p,i,f,l??null))}:A.skipToken,e[12]=n,e[13]=f,e[14]=b,e[15]=p,e[16]=v,e[17]=I,e[18]=l,e[19]=i,e[20]=s,e[21]=C):C=e[21];let D;e[22]!==I||e[23]!==y||e[24]!==h||e[25]!==C?(D={queryKey:y,queryFn:C,enabled:I,refetchInterval:h},e[22]=I,e[23]=y,e[24]=h,e[25]=C,e[26]=D):D=e[26];const O=A.useQuery(D);let k,N;if(e[27]!==n||e[28]!==p||e[29]!==v||e[30]!==O.data||e[31]!==i||e[32]!==s){const M={pluginId:v,connectionId:n,resourceKey:s,id:i,namespace:p};let U;e[35]!==O.data?(U=O.data??[],e[35]=O.data,e[36]=U):U=e[36],k=U,N=Xt(M,k),e[27]=n,e[28]=p,e[29]=v,e[30]=O.data,e[31]=i,e[32]=s,e[33]=k,e[34]=N}else k=e[33],N=e[34];let P;return e[37]!==k||e[38]!==O.error||e[39]!==O.isFetching||e[40]!==O.isLoading||e[41]!==O.refetch||e[42]!==N?(P={related:N,edges:k,isLoading:O.isLoading,isFetching:O.isFetching,error:O.error,refetch:O.refetch},e[37]=k,e[38]=O.error,e[39]=O.isFetching,e[40]=O.isLoading,e[41]=O.refetch,e[42]=N,e[43]=P):P=e[43],P},Gs=t=>{const e=j.c(31),{pluginID:r,connectionID:n,resourceKey:s,resourceID:i,namespace:o,maxDepth:u,enabled:l,refetchInterval:a}=t,c=o===void 0?"":o,p=u===void 0?3:u,f=l===void 0?!0:l,g=a===void 0?!1:a,h=ne(r);let v;e[0]!==n||e[1]!==p||e[2]!==c||e[3]!==h||e[4]!==i||e[5]!==s?(v=["RESOURCE_DEPENDENCY_TREE",h,n,s,c,i,p],e[0]=n,e[1]=p,e[2]=c,e[3]=h,e[4]=i,e[5]=s,e[6]=v):v=e[6];const d=v,m=f&&!!s&&!!i;let y;e[7]!==n||e[8]!==h||e[9]!==m?(y={pluginID:h,connectionID:n,enabled:m},e[7]=n,e[8]=h,e[9]=m,e[10]=y):y=e[10];const S=he(y),E=be(h,n),w=f&&!!h&&!!n&&!!s&&!!i&&S.phase==="connected";Ve(h,n,d,w);let b;e[11]!==n||e[12]!==E||e[13]!==p||e[14]!==c||e[15]!==h||e[16]!==w||e[17]!==i||e[18]!==s?(b=w?k=>{const{signal:N,queryKey:P}=k;return E(P,N,()=>F.GetDependencyTree(h,n,s,c,i,p))}:A.skipToken,e[11]=n,e[12]=E,e[13]=p,e[14]=c,e[15]=h,e[16]=w,e[17]=i,e[18]=s,e[19]=b):b=e[19];let I;e[20]!==w||e[21]!==d||e[22]!==g||e[23]!==b?(I={queryKey:d,queryFn:b,enabled:w,refetchInterval:g},e[20]=w,e[21]=d,e[22]=g,e[23]=b,e[24]=I):I=e[24];const C=A.useQuery(I),D=C.data??null;let O;return e[25]!==C.error||e[26]!==C.isFetching||e[27]!==C.isLoading||e[28]!==C.refetch||e[29]!==D?(O={tree:D,isLoading:C.isLoading,isFetching:C.isFetching,error:C.error,refetch:C.refetch},e[25]=C.error,e[26]=C.isFetching,e[27]=C.isLoading,e[28]=C.refetch,e[29]=D,e[30]=O):O=e[30],O},Bs=t=>{const e=j.c(32),{pluginID:r,connectionID:n,resourceKey:s,resourceID:i,namespace:o,upDepth:u,downDepth:l,enabled:a}=t,c=o===void 0?"":o,p=u===void 0?2:u,f=l===void 0?3:l,g=a===void 0?!0:a,h=ne(r);let v;e[0]!==n||e[1]!==f||e[2]!==c||e[3]!==h||e[4]!==i||e[5]!==s||e[6]!==p?(v=["RESOURCE_GRAPH",h,n,s,c,i,p,f],e[0]=n,e[1]=f,e[2]=c,e[3]=h,e[4]=i,e[5]=s,e[6]=p,e[7]=v):v=e[7];const d=v,m=g&&!!s&&!!i;let y;e[8]!==n||e[9]!==h||e[10]!==m?(y={pluginID:h,connectionID:n,enabled:m},e[8]=n,e[9]=h,e[10]=m,e[11]=y):y=e[11];const S=he(y),E=be(h,n),w=g&&!!h&&!!n&&!!s&&!!i&&S.phase==="connected";Ve(h,n,d,w);let b;e[12]!==n||e[13]!==f||e[14]!==E||e[15]!==c||e[16]!==h||e[17]!==w||e[18]!==i||e[19]!==s||e[20]!==p?(b=w?k=>{const{signal:N,queryKey:P}=k;return E(P,N,()=>F.GetSubgraph(h,n,s,c,i,p,f))}:A.skipToken,e[12]=n,e[13]=f,e[14]=E,e[15]=c,e[16]=h,e[17]=w,e[18]=i,e[19]=s,e[20]=p,e[21]=b):b=e[21];let I;e[22]!==w||e[23]!==d||e[24]!==b?(I={queryKey:d,queryFn:b,enabled:w},e[22]=w,e[23]=d,e[24]=b,e[25]=I):I=e[25];const C=A.useQuery(I),D=C.data??null;let O;return e[26]!==C.error||e[27]!==C.isFetching||e[28]!==C.isLoading||e[29]!==C.refetch||e[30]!==D?(O={graph:D,isLoading:C.isLoading,isFetching:C.isFetching,error:C.error,refetch:C.refetch},e[26]=C.error,e[27]=C.isFetching,e[28]=C.isLoading,e[29]=C.refetch,e[30]=D,e[31]=O):O=e[31],O},zs=()=>{const t=x.useContext(dt);if(!t)throw new Error("useSettings must be used within a SettingsProvider");return t},Hs=t=>{const e=j.c(7);let r,n;if(e[0]!==t){const{to:l,withinContext:a,...c}=t;n=l,r=c,e[0]=t,e[1]=r,e[2]=n}else r=e[1],n=e[2];const{pluginId:s}=He();s||console.error("Link used outside of a plugin context");const i=`/_plugin/${s}${n.startsWith("/")?"":"/"}${n}`;let o;e[3]===Symbol.for("react.memo_cache_sentinel")?(o={textDecoration:"none",color:"inherit"},e[3]=o):o=e[3];let u;return e[4]!==r||e[5]!==i?(u=T.jsx(Ge.Link,{style:o,...r,to:i}),e[4]=r,e[5]=i,e[6]=u):u=e[6],u};function Js(){const t=j.c(10),e=Ge.useNavigate(),r=Ge.useLocation(),{pluginId:n}=He();n||console.error("usePluginRouter used outside of a plugin context");const s=`/_plugin/${n}`;let i;t[0]!==r.pathname||t[1]!==s?(i=r.pathname.startsWith(s)?r.pathname.slice(s.length)||"/":r.pathname,t[0]=r.pathname,t[1]=s,t[2]=i):i=t[2];const o=i;let u;t[3]!==e||t[4]!==s?(u=(c,p)=>{const{...f}=p??{};c.startsWith("/")?e(`${s}${c}`,f):e(c,f)},t[3]=e,t[4]=s,t[5]=u):u=t[5];const l=u;let a;return t[6]!==r||t[7]!==l||t[8]!==o?(a={location:r,navigate:l,pluginPath:o},t[6]=r,t[7]=l,t[8]=o,t[9]=a):a=t[9],a}class Vs{}class Ys{_extensions;root;pages;_routes;get extensions(){return this._extensions||[]}get Routes(){if(!this._routes&&this.root)return[{path:"",index:!0,Component:this.root}];if(!this._routes?.length)throw new Error("cannot use plugin without a root page or router");return this._routes}get Window(){if(!this._routes&&this.root)return T.jsx(this.root,{});const e=Ge.createMemoryRouter(this._routes||[]);return T.jsx(fn.RouterProvider,{router:e})}registerExtensionPoints(e){return this._extensions=e||[],this}setRootPage(e){return this.root=e,this}withPage(e,r){return this.pages||(this.pages={}),this.pages[e]?(console.warn("Cannot register page with the same name. Please use a different name."),this):(this.pages[e]=r,this)}withRoutes(e){return this._routes=e,this}}var Zt=(t=>(t.MISSING_MANIFEST="MISSING_MANIFEST",t.MISSING_PLUGIN="MISSING_PLUGIN",t.MISSING_ENTRYPOINT="MISSING_ENTRYPOINT",t))(Zt||{});const Xs=t=>{const e=t.split("::");return e.length===1?{group:"core",version:"",kind:e[0]}:{group:e[0]||"core",version:e[1]||"",kind:e[2]||e[0]}},Zs=t=>!t||t==="core"?"Core":t.charAt(0).toUpperCase()+t.slice(1),en="omniview/global-search/open";function er(t={}){window.dispatchEvent(new CustomEvent(en,{detail:t}))}const tn="omniview/resource/icons";class tr extends x.Component{state={failed:!1,resetToken:this.props.resetToken};static getDerivedStateFromProps(e,r){return e.resetToken!==r.resetToken?{failed:!1,resetToken:e.resetToken}:null}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function nr(t,e){try{return t?.schemaVersion!==1||typeof t.resolve!="function"?void 0:t.resolve(e)}catch{return}}function sr(t){const e=j.c(7);let r,n;e[0]!==t?({icon:r,...n}=t,e[0]=t,e[1]=r,e[2]=n):(r=e[1],n=e[2]);const s=n["aria-hidden"]??!0;let i;return e[3]!==r||e[4]!==n||e[5]!==s?(i=T.jsx(r,{...n,"aria-hidden":s}),e[3]=r,e[4]=n,e[5]=s,e[6]=i):i=e[6],i}function rr(t){const e=j.c(17);let r,n,s,i;e[0]!==t?({pluginId:n,resourceKey:i,fallback:r,...s}=t,e[0]=t,e[1]=r,e[2]=n,e[3]=s,e[4]=i):(r=e[1],n=e[2],s=e[3],i=e[4]);const{version:o,contributions:u}=pt(tn);let l;e[5]!==r||e[6]!==s?(l=r===void 0?T.jsx("svg",{width:s.size??16,height:s.size??16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:s.className,"aria-hidden":s["aria-hidden"]??!0,children:T.jsx("path",{d:"m12 3 9 5v8l-9 5-9-5V8l9-5Zm0 9 9-4M12 12 3 8m9 4v9"})}):r,e[5]=r,e[6]=s,e[7]=l):l=e[7];const a=l;let c;if(e[8]!==u||e[9]!==a||e[10]!==n||e[11]!==s||e[12]!==i||e[13]!==o){c=Symbol.for("react.early_return_sentinel");e:for(const f of u){if(f.plugin!==n)continue;const g=nr(f.value,i);if(g){c=T.jsx(tr,{resetToken:f,fallback:a,children:T.jsx(x.Suspense,{fallback:a,children:T.jsx(sr,{icon:g,...s})})},JSON.stringify([n,i,o,f.id]));break e}}e[8]=u,e[9]=a,e[10]=n,e[11]=s,e[12]=i,e[13]=o,e[14]=c}else c=e[14];if(c!==Symbol.for("react.early_return_sentinel"))return c;let p;return e[15]!==a?(p=T.jsx(T.Fragment,{children:a}),e[15]=a,e[16]=p):p=e[16],p}exports.ALL_SESSIONS_KEY=Oe;exports.BottomDrawerContext=Ot;exports.ConfirmationModalContext=Pt;exports.ConnectionBoundary=ss;exports.ConnectionBoundaryFallback=Bt;exports.ErrorTypes=re;exports.ExtensionPointRegistry=xn;exports.ExtensionPointStore=kt;exports.ExtensionProvider=In;exports.GLOBAL_SEARCH_OPEN_EVENT=en;exports.Link=Hs;exports.OperationsContext=ft;exports.OperationsProvider=Sn;exports.PluginContext=ze;exports.PluginContextProvider=hn;exports.PluginErrorCode=Zt;exports.PluginWindow=Ys;exports.PluginWindowRootProps=Vs;exports.RESOURCE_ICON_EXTENSION_POINT_ID=tn;exports.ResourceIcon=rr;exports.RightDrawerContext=Tt;exports.SettingsContext=dt;exports.SettingsProvider=mn;exports.SnackbarProvider=Rn;exports.WatchState=G;exports.actionToSnackbar=xt;exports.applyBatch=Ht;exports.connectionListQueryKey=Qt;exports.createErrorHandler=ue;exports.defaultState=Rt;exports.formatGroup=Zs;exports.graphChangedEvent=Yt;exports.isCancelledError=je;exports.openGlobalSearch=er;exports.parseAppError=ye;exports.parseResourceKey=Xs;exports.relationshipLabel=Qs;exports.requireConnectionReady=xe;exports.resourceQueryKeys=Be;exports.showAppError=Ce;exports.toRelatedResources=Xt;exports.useActiveSyncs=Ms;exports.useBottomDrawer=mt;exports.useConfirmationModal=_s;exports.useConnection=kn;exports.useConnectionNamespaces=qn;exports.useConnectionReadiness=he;exports.useConnectionStatus=jn;exports.useConnections=Ln;exports.useDependencyTree=Gs;exports.useEditorSchemas=Ls;exports.useEventBatcher=Jt;exports.useExec=cs;exports.useExecuteAction=ks;exports.useExtensionPoint=wn;exports.useExtensionPointSnapshot=pt;exports.useExtensionRegistry=Ft;exports.useLogs=as;exports.useMetricProviders=us;exports.useMetricProvidersForResource=zt;exports.useMetricStream=ps;exports.useOperations=Vt;exports.usePluginContext=He;exports.usePluginData=os;exports.usePluginRouter=Js;exports.usePluginSettings=yn;exports.usePortForwardSessions=hs;exports.useRefetchOnGraphChange=Ve;exports.useRelatedResources=Ks;exports.useResolvedPluginId=ne;exports.useResource=bs;exports.useResourceActions=Fs;exports.useResourceAreaComponent=Cs;exports.useResourceGraph=Bs;exports.useResourceGroups=ws;exports.useResourceMetrics=ds;exports.useResourceMutations=Ns;exports.useResourcePortForwarder=Ss;exports.useResourceSearch=Is;exports.useResourceType=xs;exports.useResourceTypes=Ds;exports.useResources=Ps;exports.useRightDrawer=is;exports.useSettings=zs;exports.useSnackbar=me;exports.useStreamAction=js;exports.useWatchState=$s;exports.withConnectionReady=Pn;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react/jsx-runtime"),q=require("react/compiler-runtime"),x=require("react"),Be=require("react-router"),A=require("@tanstack/react-query"),k=require("./servicewrapper-COMjQHnY.cjs");require("./index-BVi9X4oU.cjs");const te=require("@omniviewdev/base-ui"),Z=require("./events-DnLqUWri.cjs"),ae=require("./models-DQl7tqts.cjs"),gn=require("react-router/dom"),yn=require("./legacyEnum-DkV5yRdA.cjs"),He=x.createContext(void 0),oe={PLUGIN_NOT_FOUND:"omniview:plugin/not-found",PLUGIN_NOT_LOADED:"omniview:plugin/not-loaded",PLUGIN_ALREADY_LOADED:"omniview:plugin/already-loaded",PLUGIN_INSTALL_FAILED:"omniview:plugin/install-failed",PLUGIN_LOAD_FAILED:"omniview:plugin/load-failed",PLUGIN_BUILD_FAILED:"omniview:plugin/build-failed",PLUGIN_COMMITTED_CLEANUP_PENDING:"omniview:plugin/committed-cleanup-pending",PLUGIN_COMMIT_UNCERTAIN:"omniview:plugin/commit-uncertain",SETTINGS_MISSING_CONFIG:"omniview:settings/missing-config",SETTINGS_INVALID_CONFIG:"omniview:settings/invalid-config",RESOURCE_NOT_FOUND:"omniview:resource/not-found",RESOURCE_FORBIDDEN:"omniview:resource/forbidden",RESOURCE_UNAUTHORIZED:"omniview:resource/unauthorized",RESOURCE_CONFLICT:"omniview:resource/conflict",RESOURCE_TIMEOUT:"omniview:resource/timeout",RESOURCE_LIMIT:"omniview:resource/limit",RESOURCE_CONTINUATION_EXPIRED:"omniview:resource/continuation-expired",RESOURCE_RESET_REQUIRED:"omniview:resource/reset-required",RESOURCE_PARTIAL:"omniview:resource/partial",RESOURCE_PROVIDER_ERROR:"omniview:resource/provider-error",CONNECTION_NOT_FOUND:"omniview:connection/not-found",CONNECTION_FAILED:"omniview:connection/failed",SESSION_NOT_FOUND:"omniview:session/not-found",SESSION_FAILED:"omniview:session/failed",CANCELLED:"omniview:cancelled",INTERNAL:"omniview:internal",VALIDATION:"omniview:validation",NOT_IMPLEMENTED:"omniview:not-implemented"};let qe=null;function mn(t){return qe=t,()=>{qe===t&&(qe=null)}}function Rt(t){if(!qe)throw new Error(`cannot navigate to "${t}": this window has no page navigator`);qe(t)}const Ct={INVALID_REQUEST:[oe.VALIDATION,400,"correctRequest"],UNSUPPORTED:[oe.NOT_IMPLEMENTED,501,"refreshContract"],FORBIDDEN:[oe.RESOURCE_FORBIDDEN,403,"none"],UNAUTHORIZED:[oe.RESOURCE_UNAUTHORIZED,401,"none"],NOT_FOUND:[oe.RESOURCE_NOT_FOUND,404,"none"],CONFLICT:[oe.RESOURCE_CONFLICT,409,"refreshContract"],ALREADY_EXISTS:[oe.RESOURCE_CONFLICT,409,"refreshContract"],CANCELLED:[oe.CANCELLED,499,"none"],TIMEOUT:[oe.RESOURCE_TIMEOUT,408,"none"],UNAVAILABLE:[oe.CONNECTION_FAILED,503,"reconnect"],CONNECTION_ERROR:[oe.CONNECTION_FAILED,503,"reconnect"],CERTIFICATE_ERROR:[oe.CONNECTION_FAILED,502,"reconnect"],RESOURCE_LIMIT:[oe.RESOURCE_LIMIT,429,"correctRequest"],CONTINUATION_EXPIRED:[oe.RESOURCE_CONTINUATION_EXPIRED,410,"restartQuery"],RESET_REQUIRED:[oe.RESOURCE_RESET_REQUIRED,409,"restartQuery"],PARTIAL_RESULT:[oe.RESOURCE_PARTIAL,422,"none"],PROVIDER_ERROR:[oe.RESOURCE_PROVIDER_ERROR,502,"none"],INTERNAL:[oe.INTERNAL,500,"none"]};function tt(t){return typeof t=="object"&&t!==null?t:void 0}function _e(t,e){return typeof t=="string"&&t.length>0&&t.length<=e}function nt(){return{type:oe.CANCELLED,code:"CANCELLED",title:"Cancelled",status:499,detail:"The operation was cancelled.",recovery:"none"}}function Ge(t,e){if(e>4)return;if(t==="cancelled")return nt();if(typeof t=="string"){const n=t.trim();if(!n.startsWith("{"))return;try{return Ge(JSON.parse(n),e+1)}catch{return}}const o=tt(t);if(o){if(o.name==="AbortError"||o.name==="CancelError")return nt();if(_e(o.type,256)&&_e(o.title,256)&&typeof o.status=="number"&&Number.isInteger(o.status)&&o.status>=100&&o.status<=599&&typeof o.detail=="string"&&o.detail.length<=4096){const n={type:o.type,title:o.title,status:o.status,detail:o.detail};_e(o.code,64)&&(n.code=o.code),_e(o.requestId,256)&&(n.requestId=o.requestId),_e(o.instance,512)&&(n.instance=o.instance),Array.isArray(o.suggestions)&&(n.suggestions=o.suggestions.filter(i=>_e(i,512)).slice(0,8)),Array.isArray(o.actions)&&(n.actions=o.actions.filter(i=>{const r=tt(i);return!!r&&["navigate","retry","open-url","copy"].includes(String(r.type))&&_e(r.label,256)&&(r.target===void 0||_e(r.target,4096))}).slice(0,8)),["correctRequest","refreshContract","restartQuery","reconnect","none"].includes(String(o.recovery))&&(n.recovery=o.recovery);const s=tt(o.location);return s?.unit==="utf8-byte"&&typeof s.start=="number"&&typeof s.end=="number"&&Number.isSafeInteger(s.start)&&Number.isSafeInteger(s.end)&&s.start>=0&&s.end>=s.start&&(n.location={start:s.start,end:s.end,unit:"utf8-byte"}),n}if(typeof o.code=="string"&&typeof o.title=="string"&&typeof o.message=="string"){let n=o.code;if(n==="PERMISSION_DENIED"&&(n="FORBIDDEN"),["INVALID_INPUT","FILTER_UNKNOWN_FIELD","FILTER_INVALID_OPERATOR"].includes(n)&&(n="INVALID_REQUEST"),Object.prototype.hasOwnProperty.call(Ct,n)||(n="INTERNAL"),n==="CANCELLED")return nt();const[s,i,r]=Ct[n],u=n==="FORBIDDEN"||n==="UNAUTHORIZED"||n==="INTERNAL"||n==="PROVIDER_ERROR";return{type:s,status:i,code:n,recovery:r,title:u?n==="FORBIDDEN"?"Access denied":n==="UNAUTHORIZED"?"Authentication required":"Operation failed":_e(o.title,256)?o.title:"Operation failed",detail:u?"The operation could not be completed.":_e(o.message,4096)?o.message:"The operation could not be completed.",...!u&&Array.isArray(o.suggestions)?{suggestions:o.suggestions.filter(l=>_e(l,512)).slice(0,8)}:{}}}return Ge(o.message,e+1)??Ge(o.cause,e+1)}}function ye(t){return Ge(t,0)??{type:oe.INTERNAL,title:t==null?"Unknown error":"Error",status:500,detail:t==null?"An unknown error occurred.":"The operation could not be completed."}}function Ue(t){return ye(t).type===oe.CANCELLED}function Tt(t){switch(t.type){case"navigate":return{label:t.label,onClick:()=>{Rt((t.target??"/").replace(/^#/,""))}};case"open-url":return{label:t.label,onClick:()=>{window.open(t.target,"_blank")}};case"copy":return{label:t.label,onClick:()=>{navigator.clipboard.writeText(t.target??"")}};case"retry":return{label:t.label,onClick:()=>{}};default:return{label:t.label,onClick:()=>{}}}}function Ot(t,e){const o=[t.detail,...t.suggestions?.map(s=>`• ${s}`)??[]].join(`
|
|
2
|
+
`);return{message:e||(t.title!=="Error"?t.title:"Operation failed"),status:"error",details:o,actions:t.actions?.map(Tt)}}function Ce(t,e,o){if(Ue(e))return;const n=ye(e);t(Ot(n,o))}function ue(t,e){return o=>{if(Ue(o))return;const n=ye(o);t(Ot(n,n.title!=="Error"?n.title:e))}}function vn(t){const e=q.c(2);let o;return e[0]!==t?(o=O.jsx(Sn,{...t},t.pluginId),e[0]=t,e[1]=o):o=e[1],o}function Sn(t){const e=q.c(40),{children:o,pluginId:n,headless:s}=t,i=s===void 0?!1:s;let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r={},e[0]=r):r=e[0];const[u,l]=x.useState(r);let a;e[1]===Symbol.for("react.memo_cache_sentinel")?(a=new ae.PluginMeta,e[1]=a):a=e[1];const[c,p]=x.useState(a),[d,g]=x.useState(!1),[h,y]=x.useState(null),f=x.useRef(0),v=x.useRef(0);console.debug("[PluginContextProvider] render",{pluginId:n,metaLoaded:d,metaError:!!h});let m;e[2]!==n?(m=()=>{if(n===void 0||n==="")return;const N=f.current=f.current+1;console.debug(`[PluginContextProvider] fetching settings for "${n}"`),k.PluginValues(n).then(P=>{N===f.current&&(console.debug(`[PluginContextProvider] settings loaded for "${n}"`,Object.keys(P)),l(P))}).catch(P=>{if(N!==f.current)return;const M=ye(P);console.error(`[PluginContextProvider] error fetching settings for "${n}":`,M.detail)})},e[2]=n,e[3]=m):m=e[3];const S=m;let E;e[4]!==n?(E=()=>{if(n===void 0||n===""){console.debug("[PluginContextProvider] skipping meta fetch — empty pluginId");return}const N=v.current=v.current+1;console.debug(`[PluginContextProvider] fetching meta for "${n}"`),k.GetPluginMeta(n).then(P=>{N===v.current&&(console.debug(`[PluginContextProvider] meta loaded for "${n}"`,{name:P?.name,version:P?.version}),p(P),g(!0))}).catch(P=>{if(N!==v.current)return;const M=ye(P);console.error(`[PluginContextProvider] error fetching meta for "${n}":`,M.detail),y(M.detail),g(!1)})},e[4]=n,e[5]=E):E=e[5];const w=E;let b,I;e[6]!==w||e[7]!==S||e[8]!==d||e[9]!==n?(b=()=>{if(d)return;const N=()=>{y(null),S(),w()},P=[Z.On("plugin/init_complete",N),Z.On("plugin/dev_install_complete",M=>{M.data?.id===n&&N()}),Z.On("plugin/inventory_changed",N)];return()=>{for(const M of P)M()}},I=[n,d,S,w],e[6]=w,e[7]=S,e[8]=d,e[9]=n,e[10]=b,e[11]=I):(b=e[10],I=e[11]),x.useEffect(b,I);let C,D;if(e[12]!==w||e[13]!==S||e[14]!==n?(C=()=>(console.debug(`[PluginContextProvider] useEffect — pluginId changed to "${n}"`),S(),w(),()=>{f.current=f.current+1,v.current=v.current+1}),D=[n,S,w],e[12]=w,e[13]=S,e[14]=n,e[15]=C,e[16]=D):(C=e[15],D=e[16]),x.useEffect(C,D),h){if(i)throw new Error(h);let N,P,M;e[17]===Symbol.for("react.memo_cache_sentinel")?(M={display:"flex",flex:1,alignItems:"center",justifyContent:"center",padding:24},N={maxWidth:480,width:"100%",border:"1px solid #7F1D1D",borderRadius:8,backgroundColor:"#1C1917",padding:20,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},P={display:"flex",alignItems:"center",gap:8,marginBottom:12},e[17]=N,e[18]=P,e[19]=M):(N=e[17],P=e[18],M=e[19]);let U,Q;e[20]===Symbol.for("react.memo_cache_sentinel")?(U=O.jsxs("div",{style:P,children:[O.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"#EF4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[O.jsx("circle",{cx:"12",cy:"12",r:"10"}),O.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),O.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),O.jsx("span",{style:{fontSize:14,fontWeight:600,color:"#FECACA"},children:"Plugin failed to load"})]}),Q={fontSize:13,color:"#A1A1AA",margin:"0 0 16px"},e[20]=U,e[21]=Q):(U=e[20],Q=e[21]);let z;e[22]!==h?(z=O.jsx("p",{style:Q,children:h}),e[22]=h,e[23]=z):z=e[23];let X;e[24]!==w?(X=()=>{y(null),w()},e[24]=w,e[25]=X):X=e[25];let ee;e[26]===Symbol.for("react.memo_cache_sentinel")?(ee={background:"transparent",color:"#F87171",border:"1px solid #7F1D1D",borderRadius:6,padding:"6px 14px",fontSize:13,fontWeight:500,cursor:"pointer"},e[26]=ee):ee=e[26];let B;e[27]!==X?(B=O.jsx("button",{onClick:X,style:ee,children:"Retry"}),e[27]=X,e[28]=B):B=e[28];let Y;return e[29]!==z||e[30]!==B?(Y=O.jsx("div",{style:M,children:O.jsxs("div",{style:N,children:[U,z,B]})}),e[29]=z,e[30]=B,e[31]=Y):Y=e[31],Y}if(!d){if(i)return null;let N;return e[32]===Symbol.for("react.memo_cache_sentinel")?(N=O.jsxs("div",{style:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[O.jsx("div",{style:{width:24,height:24,border:"2px solid #3F3F46",borderTopColor:"#A1A1AA",borderRadius:"50%",animation:"plugin-spin 0.8s linear infinite"}}),O.jsx("style",{children:"@keyframes plugin-spin { to { transform: rotate(360deg); } }"})]}),e[32]=N):N=e[32],N}let T;e[33]!==c||e[34]!==n||e[35]!==u?(T={pluginId:n,settings:u,meta:c},e[33]=c,e[34]=n,e[35]=u,e[36]=T):T=e[36];let F;return e[37]!==o||e[38]!==T?(F=O.jsx(He.Provider,{value:T,children:o}),e[37]=o,e[38]=T,e[39]=F):F=e[39],F}function Je(){const t=x.useContext(He);if(!t)throw new Error("usePluginContext must be used within a PluginContextProvider");return t}function En(){return Je().settings}const pt=x.createContext(void 0),_n=t=>{const e=q.c(10),{children:o}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n={},e[0]=n):n=e[0];const[s,i]=x.useState(n),r=x.useRef(0);let u;e[1]===Symbol.for("react.memo_cache_sentinel")?(u=()=>{const y=r.current+1;r.current=y,k.Values().then(f=>{y===r.current&&i(f)}).catch(f=>{y===r.current&&console.error("Error fetching settings:",f)})},e[1]=u):u=e[1];const l=u;let a,c;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=()=>{const y=Z.On("settings/changed",()=>l());return l(),()=>{r.current=r.current+1,y()}},c=[l],e[2]=a,e[3]=c):(a=e[2],c=e[3]),x.useEffect(a,c);let p;e[4]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{l()},e[4]=p):p=e[4];const d=p;let g;e[5]!==s?(g={settings:s,reload:d},e[5]=s,e[6]=g):g=e[6];let h;return e[7]!==o||e[8]!==g?(h=O.jsx(pt.Provider,{value:g,children:o}),e[7]=o,e[8]=g,e[9]=h):h=e[9],h},Pt={height:32,focused:0,tabs:[],createTab:()=>{},createTabs:()=>{},updateTab:()=>{},focusTab:()=>{},reorderTab:()=>{},closeTab:()=>{},closeTabs:()=>{},resizeDrawer:()=>{},closeDrawer:()=>{},fullscreenDrawer:()=>{}},At=x.createContext(Pt),Nt=x.createContext(void 0),kt=x.createContext(void 0),ht=x.createContext(void 0),bn=3e4,Cn=t=>{const e=q.c(12),{children:o}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[s,i]=x.useState(n);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=v=>{i(m=>[v,...m])},e[1]=r):r=e[1];const u=r;let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=(v,m)=>{i(S=>S.map(E=>E.id===v?{...E,...m}:E))},e[2]=l):l=e[2];const a=l;let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=v=>{i(m=>m.filter(S=>S.id!==v))},e[3]=c):c=e[3];const p=c;let d,g;e[4]!==s?(d=()=>{const v=[];for(const m of s)if(m.status!=="running"){const S=Date.now()-(m.completedAt??m.startedAt),E=Math.max(0,bn-S);v.push(setTimeout(()=>p(m.id),E))}return()=>v.forEach(clearTimeout)},g=[s,p],e[4]=s,e[5]=d,e[6]=g):(d=e[5],g=e[6]),x.useEffect(d,g);let h;e[7]!==s?(h={operations:s,addOperation:u,updateOperation:a,removeOperation:p},e[7]=s,e[8]=h):h=e[8];const y=h;let f;return e[9]!==o||e[10]!==y?(f=O.jsx(ht.Provider,{value:y,children:o}),e[9]=o,e[10]=y,e[11]=f):f=e[11],f},Ve=x.createContext(null),wn=t=>{const e=q.c(3),{actions:o,children:n}=t;let s;return e[0]!==o||e[1]!==n?(s=O.jsx(Ve.Provider,{value:o,children:n}),e[0]=o,e[1]=n,e[2]=s):s=e[2],s};function In(){const t=x.useContext(Ve);if(!t)throw new Error("useWindowActions must be used inside a workspace window (WindowActionsProvider)");return t}var ut=function(t,e){return ut=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,n){o.__proto__=n}||function(o,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(o[s]=n[s])},ut(t,e)};function xn(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");ut(t,e);function o(){this.constructor=t}t.prototype=e===null?Object.create(e):(o.prototype=e.prototype,new o)}var st="Invariant Violation",wt=Object.setPrototypeOf,Dn=wt===void 0?function(t,e){return t.__proto__=e,t}:wt,Rn=(function(t){xn(e,t);function e(o){o===void 0&&(o=st);var n=t.call(this,typeof o=="number"?st+": "+o+" (see https://github.com/apollographql/invariant-packages)":o)||this;return n.framesToPop=1,n.name=st,Dn(n,e.prototype),n}return e})(Error);function dt(t,e){if(!t)throw new Rn(e)}var Ft=["debug","log","warn","error","silent"],Tn=Ft.indexOf("log");function Qe(t){return function(){if(Ft.indexOf(t)>=Tn){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=Qe("debug"),t.log=Qe("log"),t.warn=Qe("warn"),t.error=Qe("error")})(dt||(dt={}));const Lt=x.createContext(void 0),$t=()=>x.useContext(Lt);function gt(t){const e=q.c(6),o=$t(),n=x.useRef(null);let s;e[0]!==t||e[1]!==o?(s=l=>{let a=o?.getExtensionPoint(t),c=a?.subscribe(l);const p=o?.subscribe(()=>{const d=o.getExtensionPoint(t);d!==a&&(c?.(),a=d,c=a?.subscribe(l)),l()});return()=>{c?.(),p?.()}},e[0]=t,e[1]=o,e[2]=s):s=e[2];const i=s;let r;e[3]!==t||e[4]!==o?(r=()=>{const l=o?.getExtensionPoint(t),a=l?.version??-1,c=n.current;if(c&&c.store===l&&c.version===a)return c;const p={store:l,version:a,contributions:l?.listAll()??[]};return n.current=p,p},e[3]=t,e[4]=o,e[5]=r):r=e[5];const u=r;return x.useSyncExternalStore(i,u,u)}function On(t){return gt(t).store}const Pn=t=>{const e=q.c(5),{registry:o,children:n}=t;let s;e[0]!==o?(s=()=>o,e[0]=o,e[1]=s):s=e[1];const[i]=x.useState(s);dt(i===o,"You can't change the extension registry after it has been rendered");let r;return e[2]!==n||e[3]!==i?(r=O.jsx(Lt.Provider,{value:i,children:n}),e[2]=n,e[3]=i,e[4]=r):r=e[4],r},ot=t=>{if(!t||typeof t!="string")throw new TypeError(`extensionName is required to be a string and can't be: "${t}" (${typeof t})`);return t.trim()};class Mt{id;mode;_pluginId;_version=0;_contributions=new Map;_lookupCache=new Map;_matcher;_select;_listeners=new Set;constructor(e){this.id=e.id,this.mode=e.mode??"multiple",this._pluginId=e.pluginId,this._matcher=e.matcher,this._select=e.select}get pluginId(){return this._pluginId}get version(){return this._version}register(e){if(this._contributions.has(e.id))throw new Error(`Contribution with id "${e.id}" already exists in extension point "${this.id}"`);this._contributions.set(e.id,e),this._invalidateCache(),this._notify()}unregister(e){this._contributions.delete(e)&&(this._invalidateCache(),this._notify())}provide(e){return this._getMatched(e).map(n=>n.value)}list(e){return this._getMatched(e)}listAll(){return Array.from(this._contributions.values())}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}removeContributionsByPlugin(e){let o=!1;for(const[n,s]of this._contributions)s.plugin===e&&(this._contributions.delete(n),o=!0);o&&(this._invalidateCache(),this._notify())}_getMatched(e){const o=this._getCacheKey(e);if(o!=null){const s=this._lookupCache.get(o);if(s){const i=s.map(r=>this._contributions.get(r)).filter(r=>r!=null);return this._applyMode(i,e)}}let n=this._sortDeterministic(Array.from(this._contributions.values()));return this._matcher&&e!==void 0&&(n=n.filter(s=>this._matcher(s,e))),o!=null&&this._lookupCache.set(o,n.map(s=>s.id)),this._applyMode(n,e)}_applyMode(e,o){if(this.mode==="single"){if(this._select){const n=this._select(e,o);return n?[n]:[]}return e.length>0?[e[0]]:[]}return e}_sortDeterministic(e){return[...e].sort((o,n)=>{const s=o.plugin.localeCompare(n.plugin);return s!==0?s:o.id.localeCompare(n.id)})}_getCacheKey(e){if(e!=null&&typeof e=="object"&&"getCacheKey"in e){const o=e.getCacheKey;if(typeof o=="function")return o()}}_invalidateCache(){this._lookupCache.clear()}_notify(){this._version++;for(const e of this._listeners)e()}}class An{_stores=new Map;_storeUnsubs=new Map;_listeners=new Set;constructor(e){if(e?.initialStores)for(const o of e.initialStores)this.addExtensionPoint(o)}addExtensionPoint(e){const o=ot(e.id);if(this._stores.has(o)){const s=this._stores.get(o);throw new Error(`Extension point "${o}" already exists (owned by "${s.pluginId??"unknown"}")`)}const n=new Mt({...e,id:o});this._stores.set(o,n),this._storeUnsubs.set(o,n.subscribe(()=>this._notify())),this._notify()}getExtensionPoint(e){const o=ot(e);return this._stores.get(o)}hasExtensionPoint(e){const o=ot(e);return this._stores.has(o)}listExtensionPoints(){return Array.from(this._stores.keys())}removeExtensionPoints(e){let o=!1;for(const[n,s]of this._stores)s.pluginId===e&&(this._storeUnsubs.get(n)?.(),this._storeUnsubs.delete(n),this._stores.delete(n),o=!0);o&&this._notify()}removeContributions(e){for(const o of this._stores.values())o.removeContributionsByPlugin(e);this._notify()}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}_notify(){for(const e of this._listeners)e()}}const pe={Panel:{position:"fixed",right:"var(--ov-space-3)",bottom:36,zIndex:"calc(var(--ov-z-toast, 9999) + 1)",width:"min(480px, calc(100vw - 24px))",minWidth:0,maxHeight:"min(560px, calc(100dvh - 64px))",display:"flex",flexDirection:"column",overflow:"hidden",padding:0},Header:{flex:"none",gap:"var(--ov-space-2)",paddingInline:"var(--ov-space-3)",background:"var(--ov-color-bg-surface-raised)",borderBottom:"1px solid var(--ov-color-border-muted)"},HeaderActions:{marginLeft:"auto"},List:{minHeight:0,overflowY:"auto",overscrollBehavior:"contain"},Notice:{borderTop:"1px solid var(--ov-color-border-muted)"},Row:{display:"flex",alignItems:"center",gap:"var(--ov-space-1)",padding:"var(--ov-space-2) var(--ov-space-2) var(--ov-space-2) var(--ov-space-3)"},ErrorIcon:{flex:"none",color:"var(--ov-color-danger)"},Message:{flex:1,minWidth:0,justifyContent:"flex-start",textAlign:"left"},MessageText:{minWidth:0,overflowWrap:"anywhere"},Details:{padding:"0 var(--ov-space-3) var(--ov-space-3) 36px"},Code:{display:"block",margin:"var(--ov-space-2) 0",padding:"var(--ov-space-3)",maxHeight:240,overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.5,userSelect:"text"},Actions:{display:"flex",flexWrap:"wrap",gap:"var(--ov-space-2)"},CopyError:{margin:0,padding:"var(--ov-space-3)",borderTop:"1px solid var(--ov-color-border-muted)"}},jt=x.createContext(void 0),Nn={default:"info",info:"info",success:"success",warning:"warning",error:"danger"},kn=({children:t})=>{const{toast:e}=te.useToast(),[o,n]=x.useState([]),[s,i]=x.useState([]),[r,u]=x.useState(!1),[l,a]=x.useState(),[c,p]=x.useState(""),d=x.useRef(0),g=x.useRef(null);x.useEffect(()=>{if(!r)return;const f=document.activeElement;g.current?.focus();const v=m=>{m.key==="Escape"&&(m.stopPropagation(),u(!1))};return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v),f instanceof HTMLElement&&f.isConnected&&f.focus()}},[r]);const h=f=>{n(v=>[...v,f])},y=(f,v,m)=>{const S=typeof f=="object";let E="",w="info",b,I=5e3,C;if(S){if(E=f.message,f.showOnce){if(o.includes(E))return;h(E)}w=f.status,b=f.details,I=f.autoHideDuration??5e3,C=f.actions}else E=f,w=v,b=m;let D;if(w==="error"){const T={id:++d.current,message:E,details:b,created:new Date().toISOString(),actions:C};i(F=>[...F,T].slice(-20)),D={label:"Details",onClick:()=>{a(T.id),u(!0)}}}e(w==="error"?E:b??E,{severity:Nn[w]??"info",title:w!=="error"&&b?E:void 0,duration:I,action:D??C?.[0]})};return O.jsxs(jt.Provider,{value:{showSnackbar:y,openNotifications:()=>{u(!0)},notificationCount:s.length},children:[t,r&&O.jsxs(te.Card,{ref:g,style:pe.Panel,size:"sm",variant:"outline",surface:"overlay",elevation:3,"aria-label":"Notifications",tabIndex:-1,children:[O.jsxs(te.Toolbar,{size:"sm",style:pe.Header,children:[O.jsx(te.Text,{size:"sm",weight:"semibold",children:"Notifications"}),O.jsx(te.Text,{size:"xs",tone:"muted",children:s.length}),O.jsxs(te.Toolbar.Group,{style:pe.HeaderActions,children:[O.jsx(te.IconButton,{size:"sm",variant:"ghost","aria-label":"Clear history",title:"Clear history",disabled:s.length===0,onClick:()=>{i([]),a(void 0),p("")},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m3 3 6 6m0-6L3 9M13 6h8M3 14h18M3 20h18"})})}),O.jsx(te.IconButton,{size:"sm",variant:"ghost","aria-label":"Close notifications",title:"Close notifications",onClick:()=>{u(!1)},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m6 9 6 6 6-6"})})})]})]}),O.jsxs("div",{style:pe.List,children:[s.length===0&&O.jsx(te.EmptyState,{size:"sm",title:"No recent errors",description:"Error details will appear here."}),s.slice().reverse().map(f=>{const v=l===f.id;return O.jsxs("div",{style:pe.Notice,children:[O.jsxs("div",{style:pe.Row,children:[O.jsxs("svg",{style:pe.ErrorIcon,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-label":"Error",role:"img",children:[O.jsx("circle",{cx:"12",cy:"12",r:"9"}),O.jsx("path",{d:"m9 9 6 6m0-6-6 6"})]}),O.jsx(te.Button,{size:"sm",variant:"ghost",style:pe.Message,"aria-expanded":v,"aria-controls":`notification-${f.id}`,title:f.message,onClick:()=>{a(v?void 0:f.id),p("")},children:O.jsx(te.Text,{size:"sm",style:pe.MessageText,truncate:!v,children:f.message})}),O.jsx(te.IconButton,{size:"sm",variant:"ghost","aria-label":v?"Collapse details":"Expand details",title:v?"Collapse details":"Expand details","aria-expanded":v,"aria-controls":`notification-${f.id}`,onClick:()=>{a(v?void 0:f.id),p("")},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:v?"m6 15 6-6 6 6":"m6 9 6 6 6-6"})})}),O.jsx(te.IconButton,{size:"sm",variant:"ghost","aria-label":`Dismiss ${f.message}`,title:"Dismiss notification",onClick:()=>{i(m=>m.filter(S=>S.id!==f.id)),v&&(a(void 0),p(""))},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m6 6 12 12m0-12L6 18"})})})]}),O.jsx("div",{id:`notification-${f.id}`,hidden:!v,style:pe.Details,children:v&&O.jsxs(O.Fragment,{children:[O.jsx(te.Text,{size:"xs",tone:"muted",children:O.jsx("time",{dateTime:f.created,children:new Date(f.created).toLocaleString()})}),O.jsx(te.Code,{size:"sm",style:pe.Code,children:f.details?.length?f.details:f.message}),O.jsxs("div",{style:pe.Actions,children:[O.jsx(te.Button,{size:"sm",variant:"ghost",onClick:async()=>{p("");try{await navigator.clipboard.writeText(`${f.message}
|
|
3
|
+
${f.created}
|
|
4
|
+
${f.details??""}`)}catch{p("Copy failed. Select the diagnostic text and copy it manually.")}},children:"Copy details"}),f.actions?.map((m,S)=>O.jsx(te.Button,{size:"sm",variant:"outline",onClick:m.onClick,children:m.label},`${m.label}-${S}`))]})]})})]},f.id)})]}),c&&O.jsx(te.Text,{as:"p",size:"sm",role:"status",style:pe.CopyError,children:c})]})]})},me=()=>{const t=x.useContext(jt);if(t===void 0)throw new Error("useCustomSnackbar must be used within a CustomSnackbarProvider");return t};function ne(t){const o=x.useContext(He)?.pluginId??t;if(!o)throw new Error("pluginID must be provided either via PluginContext or as an explicit parameter");return o}const ge=new Map,ke=new Map;let rt=0,Ne=[],yt=0;const qt={phase:"checking"};function De(t,e){const o=JSON.stringify([t,e]);let n=ge.get(o);return n||(n={pluginID:t,connectionID:e,key:o,snapshot:qt,listeners:new Set,users:0,version:0,generation:++yt,starts:new Set},ge.set(o,n)),n}function je(t,e){t.snapshot.phase==="connected"&&e.phase!=="connected"&&(t.generation=++yt),t.snapshot=e;for(const o of t.listeners)o()}function Re(t,e,o=!1){t.generation=++yt,t.version++,o||(t.operation=void 0),je(t,e)}function Fn(t){switch(t){case"CONNECTED":return"connected";case"DISCONNECTED":return"disconnected";case"PENDING":return"connecting";case"UNAUTHORIZED":return"unauthorized";case"FORBIDDEN":return"forbidden";case"NOT_FOUND":return"not-found";default:return"error"}}function mt(t){const e=t?.trim();if(e)return e.startsWith("{")||e.startsWith("[")||e.length>512||/[\r\n]|\bgoroutine\b|\bat\s+\S+\s+\(.*:\d+:\d+\)/.test(e)?"The connection operation could not be completed.":e}function Ut(t,e){const o=Fn(t.status);return{phase:o,connection:e,message:mt(t.error||t.details)||(o==="error"?"The connection is not ready.":void 0)}}function Wt(t,e){const o=ye(t);return{phase:o.status===401?"unauthorized":o.status===403?"forbidden":o.status===404?"not-found":"error",connection:e,message:mt(o.detail||o.title)}}function it(t,e){e=mt(e)||"The plugin is unavailable.",ke.set(t,e);for(const o of ge.values())o.pluginID===t&&Re(o,{phase:"error",message:e,connection:o.snapshot.connection})}function It(t){const e=ke.delete(t);for(const o of ge.values())o.pluginID===t&&(!e&&o.snapshot.phase==="checking"&&o.operation?.kind==="check"||(Re(o,{phase:"checking",connection:o.snapshot.connection}),o.users&&Ie(o,"check").catch(()=>{})))}function Ae(){if(!(typeof document<"u"&&document.visibilityState==="hidden"))for(const t of ge.values())t.users&&!ke.has(t.pluginID)&&Ie(t,"check",!0).catch(()=>{})}function Ln(){Ne.length||(Ne=[Z.On("connection/status",({data:t})=>{const e=ge.get(JSON.stringify([t.pluginID,t.connectionID]));!e||ke.has(t.pluginID)||e.stop&&t.status!=="DISCONNECTED"||t.status!=="DISCONNECTED"&&e.starts.size&&e.operation?.kind!=="start"||Re(e,Ut({status:t.status,error:"",details:""},e.snapshot.connection),t.status==="CONNECTED")}),Z.On("plugin/crash",({data:t})=>it(t.pluginID,t.error||"The plugin stopped unexpectedly.")),Z.On("plugin/crash_recovery_failed",({data:t})=>it(t.pluginID,t.error||"Plugin recovery failed.")),Z.On("plugin/recovered",({data:t})=>It(t.pluginID)),Z.On("plugin/state_change",({data:t})=>{t.to==="Running"?It(t.pluginID):it(t.pluginID,t.reason||`The plugin is ${t.to}.`)})],typeof window<"u"&&(window.addEventListener("focus",Ae),window.addEventListener("pageshow",Ae),Ne.push(()=>{window.removeEventListener("focus",Ae),window.removeEventListener("pageshow",Ae)})),typeof document<"u"&&(document.addEventListener("visibilitychange",Ae),Ne.push(()=>document.removeEventListener("visibilitychange",Ae))))}function Oe(t){return ge.set(t.key,t),t.users++,rt++,Ln(),()=>{if(t.users--,rt--,t.users||(Re(t,qt),ge.get(t.key)===t&&ge.delete(t.key)),!rt){for(const e of Ne)e();Ne=[],ke.clear()}}}function Ie(t,e,o=!1){if(t.stop)return Promise.reject(new Error("Connection is disconnecting. Wait for it to stop before connecting."));const n=ke.get(t.pluginID);if(n)return je(t,{phase:"error",message:n,connection:t.snapshot.connection}),Promise.reject(new Error(n));if(t.operation&&(e==="check"||t.operation.kind==="start"))return t.operation.promise;const s=++t.version;(!o||t.snapshot.phase!=="connected")&&je(t,{phase:e==="start"?"connecting":"checking",connection:t.snapshot.connection}),e==="start"&&t.starts.add(s);const i=Promise.resolve().then(()=>{if(t.version!==s)throw new Error("Connection readiness changed before the operation began.");return e==="start"?k.StartConnection(t.pluginID,t.connectionID):k.CheckConnection(t.pluginID,t.connectionID)}).then(r=>(t.version===s&&je(t,Ut(r,r.connection??t.snapshot.connection)),r),r=>{throw t.version===s&&je(t,Wt(r,t.snapshot.connection)),r}).finally(()=>{e==="start"&&t.starts.delete(s),t.operation?.version===s&&(t.operation=void 0)});return t.operation={kind:e,promise:i,version:s},i}function Qt(t,e){return{getSnapshot:()=>De(t,e).snapshot,subscribe:o=>{const n=De(t,e),s=n.users===0,i=Oe(n);return n.listeners.add(o),s&&Ie(n,"check").catch(()=>{}),()=>{n.listeners.delete(o),i()}},connect:async()=>{const o=De(t,e),n=Oe(o);try{await Ie(o,"start")}catch{}finally{n()}},retry:async()=>{const o=De(t,e),n=Oe(o);try{await Ie(o,"check")}catch{}finally{n()}}}}async function xe(t,e){const o=De(t,e),n=Oe(o);try{try{await Ie(o,"check",!0)}catch{}if(o.snapshot.phase!=="connected")throw new Error(o.snapshot.message||`Connection ${e} is ${o.snapshot.phase}. Connect before continuing.`)}finally{n()}}async function $n(t,e,o){const n=De(t,e),s=Oe(n);try{try{await Ie(n,"check",!0)}catch{}if(n.snapshot.phase!=="connected")throw new Error(n.snapshot.message||`Connection ${e} is ${n.snapshot.phase}. Connect before continuing.`);const i=n.generation,r=await o();if(n.generation!==i||n.snapshot.phase!=="connected")throw new Error(`Connection ${e} changed while the operation was in progress. Retry after connecting.`);return r}finally{s()}}function Mn(t,e){return ge.get(JSON.stringify([t,e]))?.generation}function jn(t,e,o){const n=ge.get(JSON.stringify([t,e]));return o!==void 0&&n?.generation===o&&n.snapshot.phase==="connected"}async function qn(t,e){const o=De(t,e),n=Oe(o);try{return await Ie(o,"start")}finally{n()}}function Kt(t,e){const o=De(t,e);if(o.stop)return o.stop;const n=Oe(o),s=Promise.resolve().then(()=>k.StopConnection(t,e)).then(i=>(Re(o,{phase:"disconnected",connection:i}),i),i=>{throw Re(o,Wt(i,o.snapshot.connection)),i}).finally(()=>{o.stop=void 0,n()});return o.stop=s,Re(o,{phase:"disconnected",message:"Disconnecting. Wait for the connection to stop before reconnecting.",connection:o.snapshot.connection}),s}function xt(t,e,o=!1){const n=ge.get(JSON.stringify([t,e]));n&&(Re(n,{phase:o?"not-found":"checking",connection:o?void 0:n.snapshot.connection}),!o&&n.users&&Ie(n,"check").catch(()=>{}))}const Un=t=>{const e=q.c(60),{pluginID:o,connectionID:n}=t,s=ne(o),i=A.useQueryClient(),{showSnackbar:r}=me();let u;e[0]!==n||e[1]!==s?(u=[s,"connection","detail",n],e[0]=n,e[1]=s,e[2]=u):u=e[2];const l=u;let a;e[3]!==n||e[4]!==s?(a=async()=>qn(s,n),e[3]=n,e[4]=s,e[5]=a):a=e[5];let c;if(e[6]!==n||e[7]!==s||e[8]!==i||e[9]!==l||e[10]!==r||e[11]!==a){let D;e[13]!==r?(D=ue(r,"Failed to start connection"),e[13]=r,e[14]=D):D=e[14],c={mutationFn:a,onSuccess(T){T.connection&&i.setQueryData(l,T.connection),i.invalidateQueries({queryKey:["EDITOR_SCHEMAS",s,n]})},onError:D},e[6]=n,e[7]=s,e[8]=i,e[9]=l,e[10]=r,e[11]=a,e[12]=c}else c=e[12];const{mutateAsync:p}=A.useMutation(c);let d;e[15]!==n||e[16]!==s?(d=async()=>Kt(s,n),e[15]=n,e[16]=s,e[17]=d):d=e[17];let g;if(e[18]!==i||e[19]!==l||e[20]!==r||e[21]!==d){let D;e[23]!==r?(D=ue(r,"Failed to stop connection"),e[23]=r,e[24]=D):D=e[24],g={mutationFn:d,onSuccess(T){i.setQueryData(l,T)},onError:D},e[18]=i,e[19]=l,e[20]=r,e[21]=d,e[22]=g}else g=e[22];const{mutateAsync:h}=A.useMutation(g);let y;e[25]!==s?(y=async D=>k.UpdateConnection(s,D),e[25]=s,e[26]=y):y=e[26];let f;if(e[27]!==n||e[28]!==s||e[29]!==i||e[30]!==l||e[31]!==r||e[32]!==y){let D;e[34]!==r?(D=ue(r,"Failed to update connection"),e[34]=r,e[35]=D):D=e[35],f={mutationFn:y,onSuccess(T,F){const{name:N}=F;r({message:`Connection ${N} successfully updated`,status:"success"}),xt(s,n),i.setQueryData(l,T),i.setQueriesData({queryKey:[s,"connection","list"]},P=>P?.map(M=>M.id===n?T:M))},onError:D},e[27]=n,e[28]=s,e[29]=i,e[30]=l,e[31]=r,e[32]=y,e[33]=f}else f=e[33];const{mutateAsync:v}=A.useMutation(f);let m;e[36]!==n||e[37]!==s?(m=async()=>k.RemoveConnection(s,n),e[36]=n,e[37]=s,e[38]=m):m=e[38];let S;if(e[39]!==n||e[40]!==s||e[41]!==i||e[42]!==l||e[43]!==r||e[44]!==m){let D;e[46]!==r?(D=ue(r,"Failed to remove connection"),e[46]=r,e[47]=D):D=e[47],S={mutationFn:m,onSuccess(){r({message:"Connection successfully removed",status:"success"}),xt(s,n,!0),i.setQueryData(l,void 0),i.setQueriesData({queryKey:[s,"connection","list"]},T=>T?.filter(F=>F.id!==n))},onError:D},e[39]=n,e[40]=s,e[41]=i,e[42]=l,e[43]=r,e[44]=m,e[45]=S}else S=e[45];const{mutateAsync:E}=A.useMutation(S);let w;e[48]!==n||e[49]!==s?(w=async()=>k.GetConnection(s,n),e[48]=n,e[49]=s,e[50]=w):w=e[50];let b;e[51]!==l||e[52]!==w?(b={queryKey:l,queryFn:w},e[51]=l,e[52]=w,e[53]=b):b=e[53];const I=A.useQuery(b);let C;return e[54]!==I||e[55]!==E||e[56]!==p||e[57]!==h||e[58]!==v?(C={connection:I,startConnection:p,stopConnection:h,updateConnection:v,deleteConnection:E},e[54]=I,e[55]=E,e[56]=p,e[57]=h,e[58]=v,e[59]=C):C=e[59],C},Gt=t=>[t,"connection","list"],Wn=t=>{const e=q.c(33),{plugin:o}=t,n=ne(o),s=A.useQueryClient(),{showSnackbar:i}=me();let r;e[0]!==n?(r=Gt(n),e[0]=n,e[1]=r):r=e[1];const u=r;let l;e[2]!==n?(l=async C=>k.StartConnectionWatch(n,C.id),e[2]=n,e[3]=l):l=e[3];let a;e[4]!==i?(a=ue(i,"Failed to start connection watch"),e[4]=i,e[5]=a):a=e[5];let c;e[6]!==l||e[7]!==a?(c={mutationFn:l,onError:a},e[6]=l,e[7]=a,e[8]=c):c=e[8];const{mutateAsync:p}=A.useMutation(c);let d;e[9]!==n?(d=async C=>k.StopConnectionWatch(n,C.id),e[9]=n,e[10]=d):d=e[10];let g;e[11]!==i?(g=ue(i,"Failed to stop connection watch"),e[11]=i,e[12]=g):g=e[12];let h;e[13]!==d||e[14]!==g?(h={mutationFn:d,onError:g},e[13]=d,e[14]=g,e[15]=h):h=e[15];const{mutateAsync:y}=A.useMutation(h);let f;e[16]!==s||e[17]!==u?(f=C=>{const D=C.data;console.log("got update to connections",D),s.setQueryData(u,D)},e[16]=s,e[17]=u,e[18]=f):f=e[18];const v=f;let m,S;e[19]!==v||e[20]!==n?(S=()=>{const C=Z.On(`${n}/connection/sync`,v);return()=>{C()}},m=[n,v],e[19]=v,e[20]=n,e[21]=m,e[22]=S):(m=e[21],S=e[22]),x.useEffect(S,m);let E;e[23]!==n||e[24]!==i?(E=async()=>{try{return await k.ListConnections(n)}catch(C){const D=C;console.log(D),ue(i,"Failed to load connections")(D)}return[]},e[23]=n,e[24]=i,e[25]=E):E=e[25];let w;e[26]!==u||e[27]!==E?(w={queryKey:u,queryFn:E,staleTime:3e4,placeholderData:A.keepPreviousData},e[26]=u,e[27]=E,e[28]=w):w=e[28];const b=A.useQuery(w);let I;return e[29]!==b||e[30]!==p||e[31]!==y?(I={connections:b,startWatch:p,stopWatch:y},e[29]=b,e[30]=p,e[31]=y,e[32]=I):I=e[32],I},Qn={phase:"checking"},Kn={getSnapshot:()=>Qn,subscribe:()=>()=>{},connect:async()=>{},retry:async()=>{}};function he(t){const e=q.c(8),{pluginID:o,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,r=ne(o);let u;e[0]!==n||e[1]!==i||e[2]!==r?(u=i?Qt(r,n):Kn,e[0]=n,e[1]=i,e[2]=r,e[3]=u):u=e[3];const l=u,a=x.useSyncExternalStore(l.subscribe,l.getSnapshot,l.getSnapshot);let c;return e[4]!==a||e[5]!==l.connect||e[6]!==l.retry?(c={...a,connect:l.connect,retry:l.retry},e[4]=a,e[5]=l.connect,e[6]=l.retry,e[7]=c):c=e[7],c}function be(t,e){const o=A.useQueryClient();return x.useCallback(async(n,s,i)=>{const r=Mn(t,e),u=()=>r!==void 0&&jn(t,e,r);if(s.aborted||!u())throw new A.CancelledError({revert:!0});let l,a=!1,c=!1;const p=()=>{l&&"cancel"in l&&typeof l.cancel=="function"&&Promise.resolve(l.cancel()).catch(h=>{console.error("Failed to cancel resource query",h)}),g()},d=Qt(t,e).subscribe(()=>{u()||(a=!0,o.cancelQueries({queryKey:n,exact:!0}).catch(h=>{console.error("Failed to cancel invalidated resource query",h)}))}),g=()=>{c||(c=!0,d())};s.addEventListener("abort",p,{once:!0});try{if(s.aborted||a||!u())throw new A.CancelledError({revert:!0});l=i();const h=await l;if(s.aborted||a||!u())throw new A.CancelledError({revert:!0});return h}finally{s.removeEventListener("abort",p),g()}},[t,e,o])}const Gn=t=>{const e=q.c(19),{pluginID:o,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,r=ne(o);let u;e[0]!==n||e[1]!==i||e[2]!==r?(u={pluginID:r,connectionID:n,enabled:i},e[0]=n,e[1]=i,e[2]=r,e[3]=u):u=e[3];const l=he(u),a=be(r,n);let c;e[4]!==n||e[5]!==r?(c=[r,"connection","namespaces",n],e[4]=n,e[5]=r,e[6]=c):c=e[6];const p=c;let d;e[7]!==n||e[8]!==i||e[9]!==a||e[10]!==r||e[11]!==l?(d=i&&l.phase==="connected"?v=>{const{signal:m,queryKey:S}=v;return a(S,m,()=>k.GetConnectionNamespaces(r,n))}:A.skipToken,e[7]=n,e[8]=i,e[9]=a,e[10]=r,e[11]=l,e[12]=d):d=e[12];const g=i&&l.phase==="connected";let h;e[13]!==p||e[14]!==d||e[15]!==g?(h={queryKey:p,queryFn:d,enabled:g},e[13]=p,e[14]=d,e[15]=g,e[16]=h):h=e[16];const y=A.useQuery(h);let f;return e[17]!==y?(f={namespaces:y},e[17]=y,e[18]=f):f=e[18],f},G=yn.withLegacyNames(ae.WatchState,"WatchState");function ft(t){const e=Object.values(t.states),o=e.length;let n=0,s=0,i=0,r=0;for(const c of e)c===G.WatchStateSynced&&n++,(c===G.WatchStateError||c===G.WatchStateFailed)&&s++,c===G.WatchStateForbidden&&i++,c===G.WatchStateSkipped&&r++;const u=o-r,l=e.filter(c=>c===G.WatchStateSynced||c===G.WatchStateError||c===G.WatchStateStopped||c===G.WatchStateFailed||c===G.WatchStateForbidden).length,a=u>0?l/u:0;return{pluginID:t.pluginID,connectionID:t.connectionID,totalResources:o,watchedTotal:u,syncedCount:n,errorCount:s,forbiddenCount:i,skippedCount:r,doneCount:l,progress:a}}function Ye(t){return t.watchedTotal>0&&t.doneCount>=t.watchedTotal}function Bt(t){return t.some(e=>!Ye(e))}function zt(t){const e=t.reduce((n,s)=>n+s.watchedTotal,0);return e===0?0:t.reduce((n,s)=>n+s.doneCount,0)/e}function vt(t){return`${t.pluginId}/${t.connection}`}function Ht(t,e){const o=vt(e);t.has(o)||t.set(o,{states:{},pluginID:e.pluginId,connectionID:e.connection});const n=t.get(o);return n.states[e.resourceKey]=e.state,n}function Bn(){const t=q.c(49);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=new Set,t[0]=e):e=t[0];const[o,n]=x.useState(e);let s;t[1]===Symbol.for("react.memo_cache_sentinel")?(s={},t[1]=s):s=t[1];const[i,r]=x.useState(s);let u;t[2]===Symbol.for("react.memo_cache_sentinel")?(u=new Map,t[2]=u):u=t[2];const[l,a]=x.useState(u);let c;t[3]===Symbol.for("react.memo_cache_sentinel")?(c=new Map,t[3]=c):c=t[3];const p=x.useRef(c);let d;t[4]===Symbol.for("react.memo_cache_sentinel")?(d=new Map,t[4]=d):d=t[4];const[g,h]=x.useState(d);let y,f;t[5]===Symbol.for("react.memo_cache_sentinel")?(y=()=>{const W=Z.On("plugin/crash_recovery_failed",K=>{const H=K.data,j=H?.pluginID;j&&h($=>{const V=new Map($);return V.set(j,H.error??"Crash recovery failed"),V})}),J=Z.On("plugin/recovered",K=>{const j=K.data?.pluginID;j&&h($=>{if(!$.has(j))return $;const V=new Map($);return V.delete(j),V})});return()=>{W(),J()}},f=[],t[5]=y,t[6]=f):(y=t[5],f=t[6]),x.useEffect(y,f);let v,m;t[7]===Symbol.for("react.memo_cache_sentinel")?(v=()=>{k.GetAllConnectionStates().then(W=>{if(!W)return;const J={},K=new Set,H=new Map;for(const[j,$]of Object.entries(W))if($){J[j]=$.map(es);for(const V of $){if(!V.started)continue;const de=`${j}/${V.connection.id}`;K.add(de);const fe={pluginID:j,connectionID:V.connection.id,states:{}};if(V.resources)for(const[we,Se]of Object.entries(V.resources))fe.states[we]=Se;p.current.set(de,fe),H.set(de,ft(fe))}}r(J),n(K),a(H)}).catch(Zn)},m=[],t[7]=v,t[8]=m):(v=t[7],m=t[8]),x.useEffect(v,m);let S,E;t[9]===Symbol.for("react.memo_cache_sentinel")?(E=()=>Z.On("connection/status",J=>{const K=J.data,H=`${K.pluginID}/${K.connectionID}`;K.status==="DISCONNECTED"?(n(j=>{const $=new Set(j);return $.delete(H),$}),a(j=>{const $=new Map(j);return $.delete(H),$}),p.current.delete(H)):n(j=>{const $=new Set(j);return $.add(H),$}),k.ListAllConnections().then(j=>{if(!j)return;const $={};for(const[V,de]of Object.entries(j))de!=null&&($[V]=de);r($)}).catch(Xn)}),S=[],t[9]=S,t[10]=E):(S=t[9],E=t[10]),x.useEffect(E,S);let w;t[11]===Symbol.for("react.memo_cache_sentinel")?(w=W=>{const J=W.data,K=vt(J);n($=>{if($.has(K))return $;const V=new Set($);return V.add(K),V});const H=Ht(p.current,J),j=ft(H);a($=>{const V=new Map($);return V.set(K,j),V})},t[11]=w):w=t[11];const b=w;let I,C;t[12]===Symbol.for("react.memo_cache_sentinel")?(I=()=>Z.On("watch/STATE",b),C=[b],t[12]=I,t[13]=C):(I=t[12],C=t[13]),x.useEffect(I,C);const D=Yn,T=Vn;let F;t[14]!==g?(F=async W=>{const J=g.get(W);h(K=>{if(!K.has(W))return K;const H=new Map(K);return H.delete(W),H});try{await k.RetryFailedPlugin(W)}catch(K){const H=K;throw h(j=>{const $=new Map(j);return $.set(W,J??"Reload failed"),$}),H}},t[14]=g,t[15]=F):F=t[15];const N=F;let P,M;if(t[16]!==i||t[17]!==g||t[18]!==o||t[19]!==l){P=[];for(const W of o){const[J,K]=W.split("/",2),j=(i[J]??[]).find(we=>we.id===K),$=l.get(W),V=$!=null&&!Ye($),de=$!=null&&$.errorCount>0,fe=g.get(J);P.push({pluginID:J,connectionID:K,name:j?.name??K,avatar:j?.avatar??"",isStarted:!0,sync:$,isSyncing:V,hasErrors:de||fe!=null,pluginFailed:fe!=null,pluginError:fe})}M=new Map;for(const W of P){const J=M.get(W.pluginID)??[];J.push(W),M.set(W.pluginID,J)}t[16]=i,t[17]=g,t[18]=o,t[19]=l,t[20]=P,t[21]=M}else P=t[20],M=t[21];let U,Q,z,X,ee,B,Y,re;if(t[22]!==P||t[23]!==M||t[24]!==l){const W=Array.from(l.values());let J;t[33]!==P?(J=P.filter(Jn),t[33]=P,t[34]=J):J=t[34];const K=J;let H;t[35]!==P?(H=P.filter(Hn),t[35]=P,t[36]=H):H=t[36];const j=H;let $;t[37]!==P?($=P.filter(zn),t[37]=P,t[38]=$):$=t[38];const V=$;U=P,Q=M,z=P.length,X=K.length,ee=j.length,B=V.length,Y=Bt(W),re=zt(W),t[22]=P,t[23]=M,t[24]=l,t[25]=U,t[26]=Q,t[27]=z,t[28]=X,t[29]=ee,t[30]=B,t[31]=Y,t[32]=re}else U=t[25],Q=t[26],z=t[27],X=t[28],ee=t[29],B=t[30],Y=t[31],re=t[32];let ve;return t[39]!==N||t[40]!==U||t[41]!==Q||t[42]!==z||t[43]!==X||t[44]!==ee||t[45]!==B||t[46]!==Y||t[47]!==re?(ve={entries:U,grouped:Q,connectedCount:z,syncingCount:X,errorCount:ee,failedCount:B,hasSyncing:Y,aggregateProgress:re,disconnect:D,retryWatch:T,retryPlugin:N},t[39]=N,t[40]=U,t[41]=Q,t[42]=z,t[43]=X,t[44]=ee,t[45]=B,t[46]=Y,t[47]=re,t[48]=ve):ve=t[48],ve}function zn(t){return t.pluginFailed}function Hn(t){return t.hasErrors}function Jn(t){return t.isSyncing}async function Vn(t,e){await k.StartConnectionWatch(t,e)}async function Yn(t,e){await Kt(t,e)}function Xn(){}function Zn(){}function es(t){return t.connection}const ts={display:"flex",alignItems:"center",justifyContent:"center",minHeight:240,height:"100%",padding:24,boxSizing:"border-box",color:"var(--ov-color-fg-default)"},ns={width:"100%",maxWidth:560,minWidth:0,display:"flex",flexDirection:"column",gap:16},ss={display:"flex",alignItems:"center",gap:12},os={margin:0,fontSize:"1.125rem",fontWeight:600},rs={display:"flex",flexWrap:"wrap",gap:8},ct={margin:0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},is={width:20,height:20,flexShrink:0},cs={checking:{title:"Checking connection",description:"Checking whether this connection is ready before loading resources."},disconnected:{title:"Connection is disconnected",description:"Connect to load resources and continue at this location."},connecting:{title:"Connecting",description:"Establishing the connection. Resources will load here when it is ready."},unauthorized:{title:"Authentication required",description:"The connection could not authenticate. Check its credentials, then connect again."},forbidden:{title:"Connection access denied",description:"The connection is not permitted to access this target. Check its credentials and permissions."},"not-found":{title:"Connection not found",description:"This saved connection is no longer available. Return to connections or check its configuration."},error:{title:"Connection could not be verified",description:"Check the connection settings and network, then connect again or retry the check."}};function Jt(t){const e=q.c(44),{state:o,connectionName:n,connectionDetails:s,onEditConnection:i,onBack:r,backLabel:u}=t,l=u===void 0?"Back to connections":u,a=x.useId();if(o.phase==="connected")return null;const c=o.phase==="checking"||o.phase==="connecting",p=cs[o.phase],d=n??o.connection?.name;let g;e[0]!==s||e[1]!==d?(g=s??(d&&O.jsx(te.Text,{size:"sm",tone:"muted",style:ct,children:d})),e[0]=s,e[1]=d,e[2]=g):g=e[2];let h;e[3]!==c?(h=c&&O.jsx(te.Spinner,{style:is,"aria-hidden":"true"}),e[3]=c,e[4]=h):h=e[4];let y;e[5]!==a||e[6]!==p.title?(y=O.jsx("h2",{id:a,style:os,children:p.title}),e[5]=a,e[6]=p.title,e[7]=y):y=e[7];let f;e[8]!==h||e[9]!==y?(f=O.jsxs("div",{style:ss,role:"status","aria-live":"polite",children:[h,y]}),e[8]=h,e[9]=y,e[10]=f):f=e[10];let v;e[11]!==p.description?(v=O.jsx(te.Text,{as:"p",size:"sm",tone:"muted",style:ct,children:p.description}),e[11]=p.description,e[12]=v):v=e[12];let m;e[13]!==c||e[14]!==o.message?(m=o.message&&O.jsx(te.Text,{as:"p",size:"sm",style:ct,role:c?"status":"alert",children:o.message}),e[13]=c,e[14]=o.message,e[15]=m):m=e[15];let S;e[16]!==c||e[17]!==o?(S=o.phase!=="not-found"&&O.jsx(te.Button,{size:"sm",variant:"solid",color:"brand",disabled:c,onClick:()=>{o.connect()},children:"Connect and continue"}),e[16]=c,e[17]=o,e[18]=S):S=e[18];const E=o.phase==="checking";let w;e[19]!==o?(w=()=>{o.retry()},e[19]=o,e[20]=w):w=e[20];let b;e[21]!==w||e[22]!==E?(b=O.jsx(te.Button,{size:"sm",variant:"outline",color:"neutral",disabled:E,onClick:w,children:"Retry check"}),e[21]=w,e[22]=E,e[23]=b):b=e[23];let I;e[24]!==i?(I=i&&O.jsx(te.Button,{size:"sm",variant:"outline",color:"neutral",onClick:i,children:"Edit connection"}),e[24]=i,e[25]=I):I=e[25];let C;e[26]!==l||e[27]!==r?(C=r&&O.jsx(te.Button,{size:"sm",variant:"outline",color:"neutral",onClick:r,children:l}),e[26]=l,e[27]=r,e[28]=C):C=e[28];let D;e[29]!==b||e[30]!==I||e[31]!==C||e[32]!==S?(D=O.jsxs("div",{style:rs,children:[S,b,I,C]}),e[29]=b,e[30]=I,e[31]=C,e[32]=S,e[33]=D):D=e[33];let T;e[34]!==D||e[35]!==g||e[36]!==f||e[37]!==v||e[38]!==m?(T=O.jsxs("div",{style:ns,children:[g,f,v,m,D]}),e[34]=D,e[35]=g,e[36]=f,e[37]=v,e[38]=m,e[39]=T):T=e[39];let F;return e[40]!==c||e[41]!==a||e[42]!==T?(F=O.jsx("section",{style:ts,"aria-labelledby":a,"aria-busy":c,children:T}),e[40]=c,e[41]=a,e[42]=T,e[43]=F):F=e[43],F}function as(t){const e=q.c(9),{pluginID:o,connectionID:n,children:s,fallback:i}=t;let r;e[0]!==n||e[1]!==o?(r={pluginID:o,connectionID:n},e[0]=n,e[1]=o,e[2]=r):r=e[2];const u=he(r);if(u.phase!=="connected"){let a;return e[3]!==n||e[4]!==i||e[5]!==u?(a=i?i(u):O.jsx(Jt,{state:u,connectionName:u.connection?.name||n}),e[3]=n,e[4]=i,e[5]=u,e[6]=a):a=e[6],a}let l;return e[7]!==s?(l=O.jsx(O.Fragment,{children:s}),e[7]=s,e[8]=l):l=e[8],l}function ls(t){const e=q.c(7),o=ne(t.pluginID);let n;e[0]!==o||e[1]!==t.connectionID?(n=JSON.stringify([o,t.connectionID]),e[0]=o,e[1]=t.connectionID,e[2]=n):n=e[2];let s;return e[3]!==o||e[4]!==t||e[5]!==n?(s=x.createElement(as,{...t,pluginID:o,key:n}),e[3]=o,e[4]=t,e[5]=n,e[6]=s):s=e[6],s}function us(t,e){return e===null?t===null:Array.isArray(e)?Array.isArray(t):typeof e=="object"?typeof t=="object"&&t!==null&&!Array.isArray(t):typeof t==typeof e}function ds(t,e,o){const n=q.c(29),s=ne(t),i=A.useQueryClient();let r;n[0]!==e||n[1]!==s?(r=[s,"data",e],n[0]=e,n[1]=s,n[2]=r):r=n[2];const u=r;let l;n[3]!==o||n[4]!==e||n[5]!==s?(l=async()=>{const E=await k.Get(s,e);return E==null?o:us(E,o)?E:(console.warn(`[usePluginData] stored value for "${e}" has unexpected type (expected ${Array.isArray(o)?"array":typeof o}, got ${Array.isArray(E)?"array":typeof E}). Using default.`),o)},n[3]=o,n[4]=e,n[5]=s,n[6]=l):l=n[6];let a;n[7]!==u||n[8]!==l?(a={queryKey:u,queryFn:l},n[7]=u,n[8]=l,n[9]=a):a=n[9];const c=A.useQuery(a);let p;n[10]!==e||n[11]!==s?(p=async E=>{await k.Set(s,e,E)},n[10]=e,n[11]=s,n[12]=p):p=n[12];let d,g,h;n[13]!==i||n[14]!==u?(d=async E=>{await i.cancelQueries({queryKey:u});const w=i.getQueryData(u);return i.setQueryData(u,E),{previous:w}},g=(E,w,b)=>{b?.previous!==void 0&&i.setQueryData(u,b.previous)},h=()=>{i.invalidateQueries({queryKey:u})},n[13]=i,n[14]=u,n[15]=d,n[16]=g,n[17]=h):(d=n[15],g=n[16],h=n[17]);let y;n[18]!==p||n[19]!==d||n[20]!==g||n[21]!==h?(y={mutationFn:p,onMutate:d,onError:g,onSettled:h},n[18]=p,n[19]=d,n[20]=g,n[21]=h,n[22]=y):y=n[22];const f=A.useMutation(y),v=c.data??o;let m;n[23]!==f?(m=async E=>{await f.mutateAsync(E)},n[23]=f,n[24]=m):m=n[24];let S;return n[25]!==c.isLoading||n[26]!==v||n[27]!==m?(S={data:v,update:m,isLoading:c.isLoading},n[25]=c.isLoading,n[26]=v,n[27]=m,n[28]=S):S=n[28],S}const fs=()=>{const t=x.useContext(Nt);if(!t)throw new Error("useRightDrawer must be used within a RightDrawerProvider");return t},St=()=>{const t=x.useContext(At);if(t===void 0)throw new Error("useBottomDrawer must be used within a BottomDrawerProvider");return t},ps=({pluginID:t})=>{const e=ne(t),{showSnackbar:o}=me(),{createTab:n,updateTab:s}=St();return{createSession:A.useMutation({mutationFn:async({connectionID:r,icon:u,label:l,opts:a,recovery:c})=>{const p=`pending-${crypto.randomUUID()}`;n({id:p,title:l??"Connecting...",variant:"terminal",icon:u??"LuSquareTerminal",properties:{status:"connecting",pluginID:e,connectionID:r,opts:{...a},recovery:c}});const d=ae.SessionOptions.createFrom({command:["/bin/bash"],tty:!0,...a});try{const g=await k.CreateSession(e,r,d);if(!g)throw new Error("Failed to create session: null response");return s({id:p},{id:g.id,title:l??`Session ${g.id.substring(0,8)}`,properties:{status:"connected",pluginID:e,connectionID:r,opts:{...a},recovery:c}}),g}catch(g){const h=ye(g);return s({id:p},{properties:{status:"error",error:h.detail,pluginID:e,connectionID:r,opts:{...a},recovery:c,errorInfo:{title:h.title||"Session error",suggestion:h.detail,raw:h.detail}}}),Ce(o,g,"Failed to start session"),null}}}).mutateAsync}},hs=t=>{const e=q.c(15),{pluginID:o}=t,n=ne(o),{showSnackbar:s}=me(),{createTab:i}=St();let r;e[0]!==i||e[1]!==n?(r=async h=>{const{connectionID:y,resourceKey:f,resourceID:v,resourceData:m,icon:S,label:E,target:w,follow:b,tailLines:I,params:C}=h,D=b===void 0?!0:b,T=I===void 0?1e3:I,F=ae.CreateSessionOptions.createFrom({resource_key:f,resource_id:v,resource_data:m,options:ae.LogSessionOptions.createFrom({target:w??"",follow:D,include_previous:!1,include_timestamps:!0,tail_lines:T,since_seconds:0,limit_bytes:0,include_source_events:!0,params:C??{}})}),N=await k.CreateSession$1(n,y,F);if(!N)throw new Error("Failed to create log session: null response");return i({id:N.id,title:E??`Logs ${N.id.substring(0,8)}`,variant:"logs",icon:S??"LuLogs"}),N},e[0]=i,e[1]=n,e[2]=r):r=e[2];let u;e[3]!==s?(u=ue(s,"Failed to start log session"),e[3]=s,e[4]=u):u=e[4];let l;e[5]!==r||e[6]!==u?(l={mutationFn:r,onError:u},e[5]=r,e[6]=u,e[7]=l):l=e[7];const a=A.useMutation(l);let c;e[8]!==s?(c=ue(s,"Failed to close log session"),e[8]=s,e[9]=c):c=e[9];let p;e[10]!==c?(p={mutationFn:gs,onError:c},e[10]=c,e[11]=p):p=e[11];const d=A.useMutation(p);let g;return e[12]!==d.mutateAsync||e[13]!==a.mutateAsync?(g={createLogSession:a.mutateAsync,closeLogSession:d.mutateAsync},e[12]=d.mutateAsync,e[13]=a.mutateAsync,e[14]=g):g=e[14],g};async function gs(t){await k.CloseSession(t)}const ys=()=>{const t=q.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e={queryKey:["metric","providers"],queryFn:k.GetProviders,staleTime:3e4},t[0]=e):e=t[0],A.useQuery(e)},Vt=t=>{const e=q.c(7);let o,n;e[0]!==t?(o=["metric","providers",t],n=()=>k.GetProvidersForResource(t),e[0]=t,e[1]=o,e[2]=n):(o=e[1],n=e[2]);const s=!!t;let i;return e[3]!==o||e[4]!==n||e[5]!==s?(i={queryKey:o,queryFn:n,enabled:s,staleTime:3e4},e[3]=o,e[4]=n,e[5]=s,e[6]=i):i=e[6],A.useQuery(i)},ms=t=>{const e=q.c(47),{connectionID:o,resourceKey:n,resourceID:s,resourceNamespace:i,resourceData:r,metricIDs:u,shape:l,timeRange:a,refreshInterval:c,enabled:p}=t,d=i===void 0?"":i;let g;e[0]!==r?(g=r===void 0?{}:r,e[0]=r,e[1]=g):g=e[1];const h=g;let y;e[2]!==u?(y=u===void 0?[]:u,e[2]=u,e[3]=y):y=e[3];const f=y,v=l===void 0?0:l,m=c===void 0?0:c,S=p===void 0?!0:p,{data:E,isLoading:w}=Vt(n);let b;e[4]!==E?(b=E??[],e[4]=E,e[5]=b):b=e[5];const I=b,C=a?Math.max(Math.floor((a.end.getTime()-a.start.getTime())/250),15e3)*1e6:0;let D;e[6]!==a?.start?(D=a?.start?.getTime(),e[6]=a?.start,e[7]=D):D=e[7];let T;e[8]!==a?.end?(T=a?.end?.getTime(),e[8]=a?.end,e[9]=T):T=e[9];let F;e[10]!==o||e[11]!==f||e[12]!==s||e[13]!==n||e[14]!==d||e[15]!==v||e[16]!==T||e[17]!==D?(F=["metric","query",o,n,s,d,f,v,D,T],e[10]=o,e[11]=f,e[12]=s,e[13]=n,e[14]=d,e[15]=v,e[16]=T,e[17]=D,e[18]=F):F=e[18];let N;e[19]!==o||e[20]!==f||e[21]!==h||e[22]!==s||e[23]!==n||e[24]!==d||e[25]!==v||e[26]!==C||e[27]!==a?.end||e[28]!==a?.start?(N=async()=>{const Y=await k.QueryAll(o,n,s,d,h,f,v,(a?.start??new Date(0)).toISOString(),(a?.end??new Date(0)).toISOString(),C),re={};for(const[ve,W]of Object.entries(Y))W!=null&&(re[ve]=W);return re},e[19]=o,e[20]=f,e[21]=h,e[22]=s,e[23]=n,e[24]=d,e[25]=v,e[26]=C,e[27]=a?.end,e[28]=a?.start,e[29]=N):N=e[29];let P;e[30]!==o||e[31]!==S||e[32]!==I||e[33]!==s||e[34]!==n?(P=S&&!!o&&!!n&&(n.startsWith("cluster::")||!!s)&&I.length>0,e[30]=o,e[31]=S,e[32]=I,e[33]=s,e[34]=n,e[35]=P):P=e[35];const M=m>0?m:void 0;let U;e[36]!==F||e[37]!==N||e[38]!==P||e[39]!==M?(U={queryKey:F,queryFn:N,enabled:P,refetchInterval:M,staleTime:5e3,placeholderData:A.keepPreviousData},e[36]=F,e[37]=N,e[38]=P,e[39]=M,e[40]=U):U=e[40];const Q=A.useQuery(U),z=Q.data??void 0,X=w||Q.isLoading,ee=Q.error;let B;return e[41]!==Q.refetch||e[42]!==I||e[43]!==z||e[44]!==X||e[45]!==ee?(B={data:z,providers:I,isLoading:X,error:ee,refetch:Q.refetch},e[41]=Q.refetch,e[42]=I,e[43]=z,e[44]=X,e[45]=ee,e[46]=B):B=e[46],B},vs={},Ss=t=>{const{pluginID:e,connectionID:o,resourceKey:n,resourceID:s,resourceNamespace:i="",resourceData:r=vs,metricIDs:u=[],interval:l=1e4,enabled:a=!0}=t,c=ne(e),[p,d]=x.useState(null),[g,h]=x.useState(null),[y,f]=x.useState(!1),[v,m]=x.useState(null),S=x.useRef(null),E=x.useCallback(async()=>{if(!(!a||!c||!o||!n||!s))try{const b=await k.Subscribe(c,o,{resource_key:n,resource_id:s,resource_namespace:i,resource_data:r,metric_ids:u,interval:l*1e6});h(b),f(!0),m(null);const I=Z.On(`core/metrics/data/${b}`,D=>{const T=D.data;try{const F=JSON.parse(T);F.results&&d(F.results)}catch(F){console.error("Failed to parse metric stream data:",F)}}),C=Z.On(`core/metrics/error/${b}`,D=>{const T=D.data;try{const F=JSON.parse(T);m(F.error||"Unknown error")}catch{m("Failed to parse metric stream error")}});S.current=()=>{I(),C()}}catch(b){m(b instanceof Error?b.message:String(b))}},[c,o,n,s,i,r,u,l,a]),w=x.useCallback(async()=>{if(g)try{await k.Unsubscribe(g)}catch(b){console.error("Failed to unsubscribe:",b)}S.current&&(S.current(),S.current=null),h(null),f(!1)},[g]);return x.useEffect(()=>()=>{g&&k.Unsubscribe(g).catch(console.error),S.current&&S.current()},[g]),{data:p,subscriptionID:g,isStreaming:y,error:v,start:E,stop:w}},Te=["networker","portforward","all-sessions"];function Es(){const t=q.c(17),{showSnackbar:e}=me(),o=A.useQueryClient();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:[...Te],queryFn:Cs,retry:!1},t[0]=n):n=t[0];const s=A.useQuery(n);let i,r;t[1]!==o?(i=()=>{const h=Z.On("core/networker/portforward/created",()=>{o.invalidateQueries({queryKey:[...Te]})}),y=Z.On("core/networker/portforward/closed",()=>{o.invalidateQueries({queryKey:[...Te]})});return()=>{h(),y()}},r=[o],t[1]=o,t[2]=i,t[3]=r):(i=t[2],r=t[3]),x.useEffect(i,r);let u;t[4]!==s.data?(u=s.data??[],t[4]=s.data,t[5]=u):u=t[5];const l=u;let a;t[6]!==e?(a=ue(e,"Failed to close port forwarding session"),t[6]=e,t[7]=a):a=t[7];let c;t[8]!==o?(c=async()=>{await o.invalidateQueries({queryKey:[...Te]})},t[8]=o,t[9]=c):c=t[9];let p;t[10]!==a||t[11]!==c?(p={mutationFn:bs,onError:a,onSuccess:c},t[10]=a,t[11]=c,t[12]=p):p=t[12];const d=A.useMutation(p);let g;return t[13]!==l||t[14]!==d.mutateAsync||t[15]!==s?(g={sessions:s,activeSessions:l,closeSession:d.mutateAsync,openInBrowser:_s},t[13]=l,t[14]=d.mutateAsync,t[15]=s,t[16]=g):g=t[16],g}function _s(t){return Z.OpenURL(`http://localhost:${t}`)}async function bs(t){return k.ClosePortForwardSession(t)}async function Cs(){return k.ListAllPortForwardSessions().catch(ws)}function ws(t){if(ye(t).detail.includes("not found"))return[];throw t}function Is(t){const e=q.c(36),{pluginID:o,connectionID:n,resourceID:s}=t,i=ne(o);let r;e[0]!==n||e[1]!==i||e[2]!==s?(r=["networker","portforward","sessions",i,n,s],e[0]=n,e[1]=i,e[2]=s,e[3]=r):r=e[3];const u=r,{showSnackbar:l}=me(),a=A.useQueryClient();let c;e[4]!==n||e[5]!==i||e[6]!==s||e[7]!==l?(c=async()=>k.FindPortForwardSessions(i,n,ae.FindPortForwardSessionRequest.createFrom({resource_id:s,connection_id:n})).catch(I=>{const C=ye(I);return C.detail.includes("not found")?[]:(l({message:"Failed to fetch port forward sessions",status:"error",details:C.detail}),[])}),e[4]=n,e[5]=i,e[6]=s,e[7]=l,e[8]=c):c=e[8];let p;e[9]!==u||e[10]!==c?(p={queryKey:u,queryFn:c,retry:!1},e[9]=u,e[10]=c,e[11]=p):p=e[11];const d=A.useQuery(p);let g;e[12]!==n||e[13]!==i?(g=async I=>{const{opts:C}=I,D=ae.PortForwardSessionOptions.createFrom({local_port:C.localPort||0,remote_port:C.remotePort,protocol:C.protocol||"TCP",connection_type:"RESOURCE",connection:{resource_data:C.resource,connection_id:n,plugin_id:i,resource_id:C.resourceId,resource_key:C.resourceKey},labels:C.labels??{},params:C.parameters??{}}),T=await k.StartResourcePortForwardingSession(i,n,D);if(!T)throw new Error("Failed to start port forwarding: null response");return C.openInBrowser&&Z.OpenURL(`http://localhost:${T.local_port}`),T},e[12]=n,e[13]=i,e[14]=g):g=e[14];let h;e[15]!==l?(h=ue(l,"Failed to start port forwarding session"),e[15]=l,e[16]=h):h=e[16];let y;e[17]!==a||e[18]!==u?(y=async()=>{await Promise.all([a.invalidateQueries({queryKey:u}),a.invalidateQueries({queryKey:[...Te]})])},e[17]=a,e[18]=u,e[19]=y):y=e[19];let f;e[20]!==g||e[21]!==h||e[22]!==y?(f={mutationFn:g,onError:h,onSuccess:y},e[20]=g,e[21]=h,e[22]=y,e[23]=f):f=e[23];const v=A.useMutation(f);let m;e[24]!==l?(m=ue(l,"Failed to close port forwarding session"),e[24]=l,e[25]=m):m=e[25];let S;e[26]!==a||e[27]!==u?(S=async()=>{await Promise.all([a.invalidateQueries({queryKey:u}),a.invalidateQueries({queryKey:[...Te]})])},e[26]=a,e[27]=u,e[28]=S):S=e[28];let E;e[29]!==m||e[30]!==S?(E={mutationFn:xs,onError:m,onSuccess:S},e[29]=m,e[30]=S,e[31]=E):E=e[31];const w=A.useMutation(E);let b;return e[32]!==w.mutateAsync||e[33]!==v.mutateAsync||e[34]!==d?(b={sessions:d,forward:v.mutateAsync,close:w.mutateAsync},e[32]=w.mutateAsync,e[33]=v.mutateAsync,e[34]=d,e[35]=b):b=e[35],b}async function xs(t){const{opts:e}=t;return k.ClosePortForwardSession(e.sessionID)}const Ds=()=>{const t=x.useContext(kt);if(!t)throw new Error("useConfirmationModal must be used within a ConfirmationModalProvider");return t},ze={scope:(t,e,o)=>[t,e,o],list:(t,e,o,n=[])=>[t,e,o,n,"list"],resource:(t,e,o,n,s="")=>[t,e,o,s,n]},Rs=t=>{const e=q.c(63),{pluginID:o,connectionID:n,resourceKey:s,resourceID:i,namespace:r,enabled:u}=t,l=r===void 0?"":r,a=u===void 0?!0:u,c=ne(o),p=a&&!!s&&!!i;let d;e[0]!==n||e[1]!==c||e[2]!==p?(d={pluginID:c,connectionID:n,enabled:p},e[0]=n,e[1]=c,e[2]=p,e[3]=d):d=e[3];const g=he(d),h=be(c,n),y=A.useQueryClient(),{showSnackbar:f}=me();let v;e[4]!==n||e[5]!==l||e[6]!==c||e[7]!==i||e[8]!==s?(v=ze.resource(c,n,s,i,l),e[4]=n,e[5]=l,e[6]=c,e[7]=i,e[8]=s,e[9]=v):v=e[9];const m=v;let S;e[10]!==n||e[11]!==l||e[12]!==c||e[13]!==i||e[14]!==s?(S=async B=>(await xe(c,n),k.Update(c,n,s,ae.UpdateInput.createFrom({input:B.input,id:i,namespace:l}))),e[10]=n,e[11]=l,e[12]=c,e[13]=i,e[14]=s,e[15]=S):S=e[15];let E;e[16]!==y||e[17]!==m||e[18]!==i||e[19]!==f?(E=async()=>{f(`Resource ${i} updated`,"success"),await y.invalidateQueries({queryKey:m})},e[16]=y,e[17]=m,e[18]=i,e[19]=f,e[20]=E):E=e[20];const w=`Failed to update resource ${i}`;let b;e[21]!==f||e[22]!==w?(b=ue(f,w),e[21]=f,e[22]=w,e[23]=b):b=e[23];let I;e[24]!==S||e[25]!==E||e[26]!==b?(I={mutationFn:S,onSuccess:E,onError:b},e[24]=S,e[25]=E,e[26]=b,e[27]=I):I=e[27];const{mutateAsync:C}=A.useMutation(I);let D;e[28]!==n||e[29]!==l||e[30]!==c||e[31]!==i||e[32]!==s?(D=async B=>{const Y=B===void 0?{}:B;return await xe(c,n),k.Delete(c,n,s,ae.DeleteInput.createFrom({id:i,namespace:l,gracePeriodSeconds:Y.gracePeriodSeconds}))},e[28]=n,e[29]=l,e[30]=c,e[31]=i,e[32]=s,e[33]=D):D=e[33];let T;e[34]!==y||e[35]!==m||e[36]!==i||e[37]!==f?(T=async()=>{f(`Resource ${i} deleted`,"success"),await y.invalidateQueries({queryKey:m})},e[34]=y,e[35]=m,e[36]=i,e[37]=f,e[38]=T):T=e[38];const F=`Failed to delete resource ${i}`;let N;e[39]!==f||e[40]!==F?(N=ue(f,F),e[39]=f,e[40]=F,e[41]=N):N=e[41];let P;e[42]!==D||e[43]!==T||e[44]!==N?(P={mutationFn:D,onSuccess:T,onError:N},e[42]=D,e[43]=T,e[44]=N,e[45]=P):P=e[45];const{mutateAsync:M}=A.useMutation(P);let U;e[46]!==n||e[47]!==a||e[48]!==h||e[49]!==l||e[50]!==c||e[51]!==g||e[52]!==i||e[53]!==s?(U=a&&s&&i&&g.phase==="connected"?B=>{const{signal:Y,queryKey:re}=B;return h(re,Y,()=>k.Get$1(c,n,s,ae.GetInput.createFrom({id:i,namespace:l})))}:A.skipToken,e[46]=n,e[47]=a,e[48]=h,e[49]=l,e[50]=c,e[51]=g,e[52]=i,e[53]=s,e[54]=U):U=e[54];const Q=a&&!!s&&!!i&&g.phase==="connected";let z;e[55]!==m||e[56]!==U||e[57]!==Q?(z={queryKey:m,queryFn:U,retry:!1,enabled:Q},e[55]=m,e[56]=U,e[57]=Q,e[58]=z):z=e[58];const X=A.useQuery(z);let ee;return e[59]!==M||e[60]!==X||e[61]!==C?(ee={resource:X,update:C,remove:M},e[59]=M,e[60]=X,e[61]=C,e[62]=ee):ee=e[62],ee},Ts=t=>{const e=q.c(11);let o;e[0]!==t.area||e[1]!==t.plugin||e[2]!==t.resource?(o=["component",t.plugin,t.resource,t.area],e[0]=t.area,e[1]=t.plugin,e[2]=t.resource,e[3]=o):o=e[3];const n=o;let s;e[4]!==t?(s=async()=>k.GetResourceAreaComponent(t),e[4]=t,e[5]=s):s=e[5];let i;e[6]!==n||e[7]!==s?(i={queryKey:n,queryFn:s},e[6]=n,e[7]=s,e[8]=i):i=e[8];const r=A.useQuery(i);let u;return e[9]!==r?(u={component:r},e[9]=r,e[10]=u):u=e[10],u},Os=t=>{const e=q.c(19),{pluginID:o,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,r=ne(o);let u;e[0]!==n||e[1]!==i||e[2]!==r?(u={pluginID:r,connectionID:n,enabled:i},e[0]=n,e[1]=i,e[2]=r,e[3]=u):u=e[3];const l=he(u),a=be(r,n);let c;e[4]!==n||e[5]!==r?(c=[r,"resource_groups","list",n],e[4]=n,e[5]=r,e[6]=c):c=e[6];const p=c;let d;e[7]!==n||e[8]!==i||e[9]!==a||e[10]!==r||e[11]!==l?(d=i&&l.phase==="connected"?v=>{const{signal:m,queryKey:S}=v;return a(S,m,()=>k.GetResourceGroups(r,n))}:A.skipToken,e[7]=n,e[8]=i,e[9]=a,e[10]=r,e[11]=l,e[12]=d):d=e[12];const g=i&&l.phase==="connected";let h;e[13]!==p||e[14]!==d||e[15]!==g?(h={queryKey:p,queryFn:d,enabled:g,retry:!1},e[13]=p,e[14]=d,e[15]=g,e[16]=h):h=e[16];const y=A.useQuery(h);let f;return e[17]!==y?(f={groups:y},e[17]=y,e[18]=f):f=e[18],f},Ps=t=>{const e=q.c(24),{pluginID:o,connectionID:n,searches:s,enabled:i}=t,r=i===void 0?!0:i,u=ne(o),l=r&&s.length>0;let a;e[0]!==n||e[1]!==u||e[2]!==l?(a={pluginID:u,connectionID:n,enabled:l},e[0]=n,e[1]=u,e[2]=l,e[3]=a):a=e[3];const c=he(a),p=be(u,n);let d;e[4]!==n||e[5]!==u?(d=v=>[u,n,v.key,v.namespaces,"list"],e[4]=n,e[5]=u,e[6]=d):d=e[6];const g=d;let h;if(e[7]!==n||e[8]!==r||e[9]!==g||e[10]!==p||e[11]!==u||e[12]!==c||e[13]!==s){let v;e[15]!==n||e[16]!==r||e[17]!==g||e[18]!==p||e[19]!==u||e[20]!==c?(v=m=>({queryKey:g(m),queryFn:r&&m.key&&c.phase==="connected"?S=>{const{signal:E,queryKey:w}=S;return p(w,E,()=>k.List(u,n,m.key,ae.ListInput.createFrom({order:[{field:"name",descending:!1}],pagination:{page:1,pageSize:200},namespaces:m.namespaces}))).then(b=>b?(console.log(b.result),b.result&&m.postFilter?Object.values(b.result).filter(m.postFilter):Object.values(b.result||{})):[])}:A.skipToken,retry:!1,enabled:r&&!!m.key&&c.phase==="connected"}),e[15]=n,e[16]=r,e[17]=g,e[18]=p,e[19]=u,e[20]=c,e[21]=v):v=e[21],h=s.map(v),e[7]=n,e[8]=r,e[9]=g,e[10]=p,e[11]=u,e[12]=c,e[13]=s,e[14]=h}else h=e[14];let y;return e[22]!==h?(y={queries:h},e[22]=h,e[23]=y):y=e[23],A.useQueries(y)},As=t=>{const e=q.c(11),{pluginID:o,resourceKey:n}=t,s=ne(o);let i;e[0]!==s||e[1]!==n?(i=[s,"resources",n],e[0]=s,e[1]=n,e[2]=i):i=e[2];const r=i;let u;e[3]!==s||e[4]!==n?(u=async()=>k.GetResourceType(s,n),e[3]=s,e[4]=n,e[5]=u):u=e[5];let l;e[6]!==r||e[7]!==u?(l={queryKey:r,queryFn:u,retry:!1},e[6]=r,e[7]=u,e[8]=l):l=e[8];const a=A.useQuery(l);let c;return e[9]!==a?(c={resourceType:a},e[9]=a,e[10]=c):c=e[10],c},Ns=t=>{const e=q.c(19),{pluginID:o,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,r=ne(o);let u;e[0]!==n||e[1]!==i||e[2]!==r?(u={pluginID:r,connectionID:n,enabled:i},e[0]=n,e[1]=i,e[2]=r,e[3]=u):u=e[3];const l=he(u),a=be(r,n);let c;e[4]!==n||e[5]!==r?(c=[r,"resources","list",n],e[4]=n,e[5]=r,e[6]=c):c=e[6];const p=c;let d;e[7]!==n||e[8]!==i||e[9]!==a||e[10]!==r||e[11]!==l?(d=i&&l.phase==="connected"?v=>{const{signal:m,queryKey:S}=v;return a(S,m,()=>k.GetResourceTypes(r,n))}:A.skipToken,e[7]=n,e[8]=i,e[9]=a,e[10]=r,e[11]=l,e[12]=d):d=e[12];const g=i&&l.phase==="connected";let h;e[13]!==p||e[14]!==d||e[15]!==g?(h={queryKey:p,queryFn:d,enabled:g,retry:!1},e[13]=p,e[14]=d,e[15]=g,e[16]=h):h=e[16];const y=A.useQuery(h);let f;return e[17]!==y?(f={types:y},e[17]=y,e[18]=f):f=e[18],f};var Ke=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ks(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var at,Dt;function Fs(){if(Dt)return at;Dt=1;var t="Expected a function",e="__lodash_hash_undefined__",o="[object Function]",n="[object GeneratorFunction]",s="[object Symbol]",i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/,u=/^\./,l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/[\\^$.*+?()[\]{}|]/g,c=/\\(\\)?/g,p=/^\[object .+?Constructor\]$/,d=typeof Ke=="object"&&Ke&&Ke.Object===Object&&Ke,g=typeof self=="object"&&self&&self.Object===Object&&self,h=d||g||Function("return this")();function y(_,R){return _?.[R]}function f(_){var R=!1;if(_!=null&&typeof _.toString!="function")try{R=!!(_+"")}catch{}return R}var v=Array.prototype,m=Function.prototype,S=Object.prototype,E=h["__core-js_shared__"],w=(function(){var _=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||"");return _?"Symbol(src)_1."+_:""})(),b=m.toString,I=S.hasOwnProperty,C=S.toString,D=RegExp("^"+b.call(I).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),T=h.Symbol,F=v.splice,N=Le(h,"Map"),P=Le(Object,"create"),M=T?T.prototype:void 0,U=M?M.toString:void 0;function Q(_){var R=-1,L=_?_.length:0;for(this.clear();++R<L;){var se=_[R];this.set(se[0],se[1])}}function z(){this.__data__=P?P(null):{}}function X(_){return this.has(_)&&delete this.__data__[_]}function ee(_){var R=this.__data__;if(P){var L=R[_];return L===e?void 0:L}return I.call(R,_)?R[_]:void 0}function B(_){var R=this.__data__;return P?R[_]!==void 0:I.call(R,_)}function Y(_,R){var L=this.__data__;return L[_]=P&&R===void 0?e:R,this}Q.prototype.clear=z,Q.prototype.delete=X,Q.prototype.get=ee,Q.prototype.has=B,Q.prototype.set=Y;function re(_){var R=-1,L=_?_.length:0;for(this.clear();++R<L;){var se=_[R];this.set(se[0],se[1])}}function ve(){this.__data__=[]}function W(_){var R=this.__data__,L=Se(R,_);if(L<0)return!1;var se=R.length-1;return L==se?R.pop():F.call(R,L,1),!0}function J(_){var R=this.__data__,L=Se(R,_);return L<0?void 0:R[L][1]}function K(_){return Se(this.__data__,_)>-1}function H(_,R){var L=this.__data__,se=Se(L,_);return se<0?L.push([_,R]):L[se][1]=R,this}re.prototype.clear=ve,re.prototype.delete=W,re.prototype.get=J,re.prototype.has=K,re.prototype.set=H;function j(_){var R=-1,L=_?_.length:0;for(this.clear();++R<L;){var se=_[R];this.set(se[0],se[1])}}function $(){this.__data__={hash:new Q,map:new(N||re),string:new Q}}function V(_){return Pe(this,_).delete(_)}function de(_){return Pe(this,_).get(_)}function fe(_){return Pe(this,_).has(_)}function we(_,R){return Pe(this,_).set(_,R),this}j.prototype.clear=$,j.prototype.delete=V,j.prototype.get=de,j.prototype.has=fe,j.prototype.set=we;function Se(_,R){for(var L=_.length;L--;)if(un(_[L][0],R))return L;return-1}function ce(_,R){R=We(R,_)?[R]:Fe(R);for(var L=0,se=R.length;_!=null&&L<se;)_=_[an(R[L++])];return L&&L==se?_:void 0}function ie(_){if(!_t(_)||rn(_))return!1;var R=dn(_)||f(_)?D:p;return R.test(ln(_))}function le(_){if(typeof _=="string")return _;if(et(_))return U?U.call(_):"";var R=_+"";return R=="0"&&1/_==-1/0?"-0":R}function Fe(_){return Et(_)?_:cn(_)}function Pe(_,R){var L=_.__data__;return Ee(R)?L[typeof R=="string"?"string":"hash"]:L.map}function Le(_,R){var L=y(_,R);return ie(L)?L:void 0}function We(_,R){if(Et(_))return!1;var L=typeof _;return L=="number"||L=="symbol"||L=="boolean"||_==null||et(_)?!0:r.test(_)||!i.test(_)||R!=null&&_ in Object(R)}function Ee(_){var R=typeof _;return R=="string"||R=="number"||R=="symbol"||R=="boolean"?_!=="__proto__":_===null}function rn(_){return!!w&&w in _}var cn=Ze(function(_){_=pn(_);var R=[];return u.test(_)&&R.push(""),_.replace(l,function(L,se,$e,Me){R.push($e?Me.replace(c,"$1"):se||L)}),R});function an(_){if(typeof _=="string"||et(_))return _;var R=_+"";return R=="0"&&1/_==-1/0?"-0":R}function ln(_){if(_!=null){try{return b.call(_)}catch{}try{return _+""}catch{}}return""}function Ze(_,R){if(typeof _!="function"||R&&typeof R!="function")throw new TypeError(t);var L=function(){var se=arguments,$e=R?R.apply(this,se):se[0],Me=L.cache;if(Me.has($e))return Me.get($e);var bt=_.apply(this,se);return L.cache=Me.set($e,bt),bt};return L.cache=new(Ze.Cache||j),L}Ze.Cache=j;function un(_,R){return _===R||_!==_&&R!==R}var Et=Array.isArray;function dn(_){var R=_t(_)?C.call(_):"";return R==o||R==n}function _t(_){var R=typeof _;return!!_&&(R=="object"||R=="function")}function fn(_){return!!_&&typeof _=="object"}function et(_){return typeof _=="symbol"||fn(_)&&C.call(_)==s}function pn(_){return _==null?"":le(_)}function hn(_,R,L){var se=_==null?void 0:ce(_,R);return se===void 0?L:se}return at=hn,at}var Ls=Fs();const lt=ks(Ls);function Yt(t,e,o){const n=t??{result:[],success:!0,totalCount:0},s=n.result??[];let i;const r=e.length>1?new Map:void 0,u=new Map;if(r)for(let a=s.length-1;a>=0;a--){const c=lt(s[a],o);if(c!==c)continue;const p=r.get(c);p!==void 0&&u.set(a,p),r.set(c,a)}const l=new Set;for(const a of e){const c=lt(a.payload.data,o),p=i??s,d=r?c===c?r.get(c)??-1:-1:p.findIndex(g=>lt(g,o)===c);switch(a.type){case"ADD":d===-1&&(i??=s.slice(),c===c&&r?.set(c,i.length),i.push(a.payload.data));break;case"UPDATE":d!==-1&&p[d]!==a.payload.data&&(i??=s.slice(),i[d]=a.payload.data);break;case"DELETE":if(d!==-1){i??=s.slice(),l.add(d);const g=u.get(d);g===void 0?r?.delete(c):r?.set(c,g)}break}}return i?(l.size&&(i=i.filter((a,c)=>!l.has(c))),{...n,result:i}):n}function Xt(t,e,o,n,s,i){const r=q.c(17),u=i?.syncWindowMs??500,l=i?.enabled??!0;let a;r[0]===Symbol.for("react.memo_cache_sentinel")?(a=[],r[0]=a):a=r[0];const c=x.useRef(a),p=x.useRef(null),d=x.useRef(null),g=x.useRef(s);let h,y;r[1]!==s?(h=()=>{g.current=s},y=[s],r[1]=s,r[2]=h,r[3]=y):(h=r[2],y=r[3]),x.useLayoutEffect(h,y);let f;r[4]!==o||r[5]!==n||r[6]!==t||r[7]!==e?(f=()=>{const b=c.current;if(c.current=[],p.current!==null&&(clearTimeout(p.current),p.current=null),d.current!==null&&(cancelAnimationFrame(d.current),d.current=null),!(b.length===0||!n)){t.setQueryData(e,I=>Yt(I,b,n));for(const I of b)(I.type==="ADD"||I.type==="UPDATE")&&t.setQueryData(o(I.payload.id,I.payload.namespace),{success:!0,result:I.payload.data})}},r[4]=o,r[5]=n,r[6]=t,r[7]=e,r[8]=f):f=r[8];const v=f;let m;r[9]!==l||r[10]!==v||r[11]!==u?(m=b=>{l&&(c.current.push(b),!(p.current!==null||d.current!==null)&&(p.current=setTimeout(v,u),g.current!==1&&(d.current=requestAnimationFrame(v))))},r[9]=l,r[10]=v,r[11]=u,r[12]=m):m=r[12];const S=m;let E;r[13]===Symbol.for("react.memo_cache_sentinel")?(E=()=>()=>{c.current=[],p.current!==null&&(clearTimeout(p.current),p.current=null),d.current!==null&&(cancelAnimationFrame(d.current),d.current=null)},r[13]=E):E=r[13];let w;return r[14]!==l||r[15]!==v?(w=[l,v],r[14]=l,r[15]=v,r[16]=w):w=r[16],x.useLayoutEffect(E,w),S}const $s=t=>{const e=q.c(75),{pluginID:o,connectionID:n,resourceKey:s,idAccessor:i,namespaces:r,enabled:u}=t,l=u===void 0?!0:u,a=ne(o),c=A.useQueryClient(),{showSnackbar:p}=me(),d=l&&!!s;let g;e[0]!==n||e[1]!==a||e[2]!==d?(g={pluginID:a,connectionID:n,enabled:d},e[0]=n,e[1]=a,e[2]=d,e[3]=g):g=e[3];const h=he(g),y=be(a,n),f=l&&!!s&&h.phase==="connected";let v;e[4]===Symbol.for("react.memo_cache_sentinel")?(v=Promise.resolve(),e[4]=v):v=e[4];const m=x.useRef(v),S=x.useRef(p);let E,w;e[5]!==p?(E=()=>{S.current=p},w=[p],e[5]=p,e[6]=E,e[7]=w):(E=e[6],w=e[7]),x.useLayoutEffect(E,w);let b;e[8]!==r?(b=r??[],e[8]=r,e[9]=b):b=e[9];const I=b;let C;e[10]!==n||e[11]!==a||e[12]!==s||e[13]!==I?(C=ze.list(a,n,s,I),e[10]=n,e[11]=a,e[12]=s,e[13]=I,e[14]=C):C=e[14];const D=C;let T;e[15]!==n||e[16]!==a||e[17]!==s?(T=(ce,ie)=>ze.resource(a,n,s,ce,ie),e[15]=n,e[16]=a,e[17]=s,e[18]=T):T=e[18];const F=T;let N;e[19]!==n||e[20]!==a||e[21]!==s||e[22]!==I?(N=async ce=>(await xe(a,n),k.Create(a,n,s,ae.CreateInput.createFrom({input:ce.input,namespace:ce.namespace??(I.length===1?I[0]:"")}))),e[19]=n,e[20]=a,e[21]=s,e[22]=I,e[23]=N):N=e[23];let P;e[24]!==c||e[25]!==D||e[26]!==p?(P=async ce=>{const ie=ce?.result;let le="";ie?.metadata?.name?le=ie.metadata.name:ie?.id?le=ie.id:ie?.name?le=ie.name:ie?.ID?le=ie.ID:ie?.Name&&(le=ie.Name);const Fe=le?`Resource ${le} created`:"Resource created";p(Fe,"success"),await c.invalidateQueries({queryKey:D})},e[24]=c,e[25]=D,e[26]=p,e[27]=P):P=e[27];let M;e[28]!==p?(M=ue(p,"Failed to create resource"),e[28]=p,e[29]=M):M=e[29];let U;e[30]!==N||e[31]!==P||e[32]!==M?(U={mutationFn:N,onSuccess:P,onError:M},e[30]=N,e[31]=P,e[32]=M,e[33]=U):U=e[33];const{mutateAsync:Q}=A.useMutation(U);let z;e[34]!==n||e[35]!==y||e[36]!==a||e[37]!==f||e[38]!==s||e[39]!==I?(z=f?ce=>{const{signal:ie,queryKey:le}=ce;return y(le,ie,()=>k.List(a,n,s,ae.ListInput.createFrom({order:[{field:"name",descending:!1}],pagination:{page:1,pageSize:200},namespaces:I})))}:A.skipToken,e[34]=n,e[35]=y,e[36]=a,e[37]=f,e[38]=s,e[39]=I,e[40]=z):z=e[40];let X;e[41]!==f||e[42]!==D||e[43]!==z?(X={queryKey:D,queryFn:z,placeholderData:Ms,retry:!1,enabled:f},e[41]=f,e[42]=D,e[43]=z,e[44]=X):X=e[44];const ee=A.useQuery(X);let B;e[45]!==n||e[46]!==a||e[47]!==f||e[48]!==s?(B={pluginID:a,connectionID:n,resourceKey:s,enabled:f},e[45]=n,e[46]=a,e[47]=f,e[48]=s,e[49]=B):B=e[49];const Y=B,[re,ve]=x.useState(),W=f&&re?.scope===Y?re.state:G.WatchStateIdle;let J,K;e[50]!==n||e[51]!==a||e[52]!==f||e[53]!==s||e[54]!==Y?(J=()=>f?Z.On(`${a}/${n}/watch/STATE`,ie=>{const le=ie.data;le.resourceKey===s&&ve({scope:Y,state:le.state})}):void 0,K=[a,n,s,f,Y],e[50]=n,e[51]=a,e[52]=f,e[53]=s,e[54]=Y,e[55]=J,e[56]=K):(J=e[55],K=e[56]),x.useEffect(J,K);let H;e[57]!==f?(H={enabled:f},e[57]=f,e[58]=H):H=e[58];const j=Xt(c,D,F,i,W,H);let $,V;e[59]!==n||e[60]!==j||e[61]!==i||e[62]!==a||e[63]!==f||e[64]!==s||e[65]!==Y?($=()=>{if(!f||!i)return;let ce=!0,ie=!1;const le=Z.On(`${a}/${n}/${s}/ADD`,Ee=>{ce&&j({type:"ADD",payload:Ee.data})}),Fe=Z.On(`${a}/${n}/${s}/UPDATE`,Ee=>{ce&&j({type:"UPDATE",payload:Ee.data})}),Pe=Z.On(`${a}/${n}/${s}/DELETE`,Ee=>{ce&&j({type:"DELETE",payload:Ee.data})}),Le=()=>{le(),Fe(),Pe()},We=m.current.then(async()=>{ce&&(await k.SubscribeResource(a,n,s),ie=!0)}).catch(Ee=>{Le(),ce&&ve({scope:Y,state:G.WatchStateError}),Ce(S.current,Ee,"Failed to subscribe to resource updates")});return m.current=We,()=>{ce=!1,Le(),m.current=We.then(async()=>{ie&&await k.UnsubscribeResource(a,n,s)}).catch(Ee=>{Ce(S.current,Ee,"Failed to unsubscribe from resource updates")})}},V=[a,n,s,j,i,f,Y],e[59]=n,e[60]=j,e[61]=i,e[62]=a,e[63]=f,e[64]=s,e[65]=Y,e[66]=$,e[67]=V):($=e[66],V=e[67]),x.useEffect($,V);const de=W===G.WatchStateSyncing,fe=W===G.WatchStateSynced,we=W===G.WatchStateError;let Se;return e[68]!==Q||e[69]!==ee||e[70]!==de||e[71]!==fe||e[72]!==we||e[73]!==W?(Se={resources:ee,create:Q,watchState:W,isSyncing:de,isSynced:fe,watchError:we},e[68]=Q,e[69]=ee,e[70]=de,e[71]=fe,e[72]=we,e[73]=W,e[74]=Se):Se=e[74],Se};function Ms(t,e){return t}const js=t=>{const e=q.c(28),{pluginID:o}=t,n=ne(o),{showSnackbar:s}=me();let i;e[0]!==n?(i=async m=>{const{opts:S,input:E}=m;return await xe(n,S.connectionID),k.Create(n,S.connectionID,S.resourceKey,ae.CreateInput.createFrom({input:E.input,namespace:E.namespace??S.namespace??""}))},e[0]=n,e[1]=i):i=e[1];let r;e[2]!==s?(r=(m,S)=>{const{opts:E}=S;s(`Resource ${E.resourceID} created`,"success")},e[2]=s,e[3]=r):r=e[3];let u;e[4]!==s||e[5]!==i||e[6]!==r?(u={mutationFn:i,onSuccess:r,onError(m,S){const{opts:E}=S;Ce(s,m,`Failed to create resource ${E.resourceID}`)}},e[4]=s,e[5]=i,e[6]=r,e[7]=u):u=e[7];const l=A.useMutation(u);let a;e[8]!==n?(a=async m=>{const{opts:S,input:E}=m;return await xe(n,S.connectionID),k.Update(n,S.connectionID,S.resourceKey,ae.UpdateInput.createFrom({input:E.input,id:S.resourceID,namespace:S.namespace??""}))},e[8]=n,e[9]=a):a=e[9];let c;e[10]!==s?(c=(m,S)=>{const{opts:E}=S;s(`Resource ${E.resourceID} updated`,"success")},e[10]=s,e[11]=c):c=e[11];let p;e[12]!==s||e[13]!==a||e[14]!==c?(p={mutationFn:a,onSuccess:c,onError(m,S){const{opts:E}=S;Ce(s,m,`Failed to update resource ${E.resourceID}`)}},e[12]=s,e[13]=a,e[14]=c,e[15]=p):p=e[15];const d=A.useMutation(p);let g;e[16]!==n?(g=async m=>{const{opts:S,input:E}=m;return await xe(n,S.connectionID),k.Delete(n,S.connectionID,S.resourceKey,ae.DeleteInput.createFrom({id:S.resourceID,namespace:S.namespace??"",gracePeriodSeconds:E.gracePeriodSeconds}))},e[16]=n,e[17]=g):g=e[17];let h;e[18]!==s?(h=(m,S)=>{const{opts:E}=S;s(`Resource ${E.resourceID} deleted`,"success")},e[18]=s,e[19]=h):h=e[19];let y;e[20]!==s||e[21]!==g||e[22]!==h?(y={mutationFn:g,onSuccess:h,onError(m,S){const{opts:E}=S;Ce(s,m,`Failed to delete resource ${E.resourceID}`)}},e[20]=s,e[21]=g,e[22]=h,e[23]=y):y=e[23];const f=A.useMutation(y);let v;return e[24]!==l.mutateAsync||e[25]!==f.mutateAsync||e[26]!==d.mutateAsync?(v={create:l.mutateAsync,update:d.mutateAsync,remove:f.mutateAsync},e[24]=l.mutateAsync,e[25]=f.mutateAsync,e[26]=d.mutateAsync,e[27]=v):v=e[27],v},qs=t=>{const e=q.c(25),{pluginID:o,connectionID:n,resourceKey:s,enabled:i}=t,r=i===void 0?!0:i,u=ne(o),l=r&&!!s;let a;e[0]!==n||e[1]!==u||e[2]!==l?(a={pluginID:u,connectionID:n,enabled:l},e[0]=n,e[1]=u,e[2]=l,e[3]=a):a=e[3];const c=he(a),p=be(u,n);let d;e[4]!==n||e[5]!==u||e[6]!==s?(d=["RESOURCE_ACTIONS",u,n,s],e[4]=n,e[5]=u,e[6]=s,e[7]=d):d=e[7];let g;e[8]!==n||e[9]!==r||e[10]!==p||e[11]!==u||e[12]!==c||e[13]!==s?(g=r&&s&&c.phase==="connected"?S=>{const{signal:E,queryKey:w}=S;return p(w,E,()=>k.GetActions(u,n,s))}:A.skipToken,e[8]=n,e[9]=r,e[10]=p,e[11]=u,e[12]=c,e[13]=s,e[14]=g):g=e[14];const h=r&&!!u&&!!n&&!!s&&c.phase==="connected";let y;e[15]!==d||e[16]!==g||e[17]!==h?(y={queryKey:d,queryFn:g,enabled:h,staleTime:3e5},e[15]=d,e[16]=g,e[17]=h,e[18]=y):y=e[18];const f=A.useQuery(y);let v;e[19]!==f.data?(v=f.data??[],e[19]=f.data,e[20]=v):v=e[20];let m;return e[21]!==f.error||e[22]!==f.isLoading||e[23]!==v?(m={actions:v,isLoading:f.isLoading,error:f.error},e[21]=f.error,e[22]=f.isLoading,e[23]=v,e[24]=m):m=e[24],m},Us=t=>{const e=q.c(20),{pluginID:o,connectionID:n,resourceKey:s}=t,i=ne(o),r=A.useQueryClient(),{showSnackbar:u}=me();let l;e[0]!==n||e[1]!==i||e[2]!==s?(l=async h=>{const{actionID:y,id:f,namespace:v,params:m}=h,S=f===void 0?"":f,E=v===void 0?"":v,w=m===void 0?{}:m;return await xe(i,n),k.ExecuteAction(i,n,s,y,ae.ActionInput.createFrom({id:S,namespace:E,params:w}))},e[0]=n,e[1]=i,e[2]=s,e[3]=l):l=e[3];let a;e[4]!==n||e[5]!==i||e[6]!==r||e[7]!==s||e[8]!==u?(a=h=>{h?.message&&u(h.message,"success"),r.invalidateQueries({queryKey:["RESOURCES",i,n,s]})},e[4]=n,e[5]=i,e[6]=r,e[7]=s,e[8]=u,e[9]=a):a=e[9];let c;e[10]!==u?(c=(h,y)=>{Ce(u,h,`Failed to execute action "${y.actionID}"`)},e[10]=u,e[11]=c):c=e[11];let p;e[12]!==l||e[13]!==a||e[14]!==c?(p={mutationFn:l,onSuccess:a,onError:c},e[12]=l,e[13]=a,e[14]=c,e[15]=p):p=e[15];const d=A.useMutation(p);let g;return e[16]!==d.error||e[17]!==d.isPending||e[18]!==d.mutateAsync?(g={executeAction:d.mutateAsync,isExecuting:d.isPending,error:d.error},e[16]=d.error,e[17]=d.isPending,e[18]=d.mutateAsync,e[19]=g):g=e[19],g},Ws=t=>{const e=q.c(24),{pluginID:o,connectionID:n,enabled:s}=t,i=s===void 0?!0:s,r=ne(o);let u;e[0]!==n||e[1]!==i||e[2]!==r?(u={pluginID:r,connectionID:n,enabled:i},e[0]=n,e[1]=i,e[2]=r,e[3]=u):u=e[3];const l=he(u),a=be(r,n);let c;e[4]!==n||e[5]!==r?(c=["EDITOR_SCHEMAS",r,n],e[4]=n,e[5]=r,e[6]=c):c=e[6];let p;e[7]!==n||e[8]!==i||e[9]!==a||e[10]!==r||e[11]!==l?(p=i&&l.phase==="connected"?v=>{const{signal:m,queryKey:S}=v;return a(S,m,()=>k.GetEditorSchemas(r,n))}:A.skipToken,e[7]=n,e[8]=i,e[9]=a,e[10]=r,e[11]=l,e[12]=p):p=e[12];const d=i&&!!r&&!!n&&l.phase==="connected";let g;e[13]!==c||e[14]!==p||e[15]!==d?(g={queryKey:c,queryFn:p,enabled:d,staleTime:6e5,retry:1},e[13]=c,e[14]=p,e[15]=d,e[16]=g):g=e[16];const h=A.useQuery(g);let y;e[17]!==h.data?(y=h.data??[],e[17]=h.data,e[18]=y):y=e[18];let f;return e[19]!==h.error||e[20]!==h.isLoading||e[21]!==h.refetch||e[22]!==y?(f={schemas:y,isLoading:h.isLoading,error:h.error,refetch:h.refetch},e[19]=h.error,e[20]=h.isLoading,e[21]=h.refetch,e[22]=y,e[23]=f):f=e[23],f},Qs=({pluginID:t,connectionID:e,enabled:o=!0})=>{const n=ne(t),s=A.useQueryClient(),i=[n,e,"watch-state"],r=x.useRef([]),u=x.useRef(!1),l=x.useCallback(d=>{s.setQueryData(i,g=>{if(!g)return g;const h={...g.resources,[d.resourceKey]:d.state},y={...g.resourceCounts,[d.resourceKey]:d.resourceCount};let f=0,v=0;for(const m of Object.values(h))m===G.WatchStateSynced&&f++,(m===G.WatchStateError||m===G.WatchStateFailed)&&v++;return{...g,resources:h,resourceCounts:y,totalResources:Object.keys(h).length,syncedCount:f,errorCount:v}})},[s,n,e]),a=A.useQuery({queryKey:i,queryFn:async()=>{const d=await k.GetWatchState(n,e);if(!d)throw new Error("Failed to get watch state: null response");const g={};let h=0,y=0;for(const[v,m]of Object.entries(d.resources??{}))m!=null&&(g[v]=m,m===G.WatchStateSynced&&h++,m===G.WatchStateError&&y++);const f={};for(const[v,m]of Object.entries(d.resourceCounts??{}))m!=null&&(f[v]=m);return{connection:d.connectionId,resources:g,resourceCounts:f,totalResources:Object.keys(g).length,syncedCount:h,errorCount:y}},enabled:o&&!!n&&!!e,refetchInterval:d=>{const g=d.state.data;if(!g||g.totalResources===0)return 3e3;let h=0;for(const y of Object.values(g.resources))(y===G.WatchStateSynced||y===G.WatchStateError||y===G.WatchStateStopped||y===G.WatchStateFailed||y===G.WatchStateForbidden||y===G.WatchStateSkipped)&&h++;return h>=g.totalResources?!1:3e3}});x.useEffect(()=>{if(!a.data||u.current)return;u.current=!0;const d=r.current;r.current=[];for(const g of d)l(g)},[a.data,l]),x.useEffect(()=>{if(!o||!n||!e)return;u.current=!1,r.current=[];const d=Z.On(`${n}/${e}/watch/STATE`,g=>{const h=g.data;u.current?l(h):r.current.push(h)});return()=>{d(),u.current=!1,r.current=[]}},[n,e,o,l]);const c=a.data;let p=0;if(c?.resources)for(const d of Object.values(c.resources))(d===G.WatchStateSynced||d===G.WatchStateError||d===G.WatchStateStopped||d===G.WatchStateFailed||d===G.WatchStateForbidden||d===G.WatchStateSkipped)&&p++;return{summary:a,getResourceState:d=>c?.resources[d],isFullySynced:c?c.totalResources>0&&p===c.totalResources:!1,syncProgress:c&&c.totalResources>0?p/c.totalResources:0,errorCount:c?.errorCount??0}},Ks=()=>{const t=q.c(16);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=new Map,t[0]=e):e=t[0];const[o,n]=x.useState(e);let s;t[1]===Symbol.for("react.memo_cache_sentinel")?(s=new Map,t[1]=s):s=t[1];const i=x.useRef(s);let r;t[2]===Symbol.for("react.memo_cache_sentinel")?(r=new Map,t[2]=r):r=t[2];const u=x.useRef(r);let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=m=>{const S=m.data,E=vt(S),w=Ht(i.current,S),b=ft(w);if(n(I=>{const C=new Map(I);return C.set(E,b),C}),u.current.has(E)&&(clearTimeout(u.current.get(E)),u.current.delete(E)),Ye(b)){const I=setTimeout(()=>{n(C=>{const D=new Map(C);return D.delete(E),D}),i.current.delete(E),u.current.delete(E)},5e3);u.current.set(E,I)}},t[3]=l):l=t[3];const a=l;let c,p;t[4]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{const m=Z.On("watch/STATE",a);return()=>{m();for(const S of u.current.values())clearTimeout(S)}},p=[a],t[4]=c,t[5]=p):(c=t[4],p=t[5]),x.useEffect(c,p);let d,g,h,y;t[6]!==o?(h=Array.from(o.values()),d=Bt(h),g=h.find(Gs)??h[0]??null,y=zt(h),t[6]=o,t[7]=d,t[8]=g,t[9]=h,t[10]=y):(d=t[7],g=t[8],h=t[9],y=t[10]);const f=y;let v;return t[11]!==f||t[12]!==d||t[13]!==g||t[14]!==h?(v={syncs:h,hasSyncing:d,primarySync:g,aggregateProgress:f},t[11]=f,t[12]=d,t[13]=g,t[14]=h,t[15]=v):v=t[15],v};function Gs(t){return!Ye(t)}const Zt=()=>{const t=x.useContext(ht);if(!t)throw new Error("useOperations must be used within an OperationsProvider");return t},Bs=({pluginID:t,connectionID:e,resourceKey:o})=>{const n=ne(t),{showSnackbar:s}=me(),{addOperation:i,updateOperation:r}=Zt(),u=x.useRef(new Set),l=x.useCallback((p,d=!1)=>{p.disposed||(p.disposed=!0,p.unsubscribe?.(),p.open?.cancel(),p.attach?.cancel(),p.handle&&(k.CancelStreamAction(p.handle).catch(()=>{}),d&&r(p.handle,{status:"cancelled",message:"Cancelled",completedAt:Date.now()})),u.current.delete(p))},[r]);x.useEffect(()=>()=>{for(const p of u.current)l(p,!0)},[n,e,o,l]);const a=x.useCallback(async({actionID:p,id:d,namespace:g,label:h,params:y={}})=>{const f={disposed:!1,terminal:!1,sequence:0};u.current.add(f);try{if(await xe(n,e),f.disposed)throw new Error("Stream action was cancelled before the connection became ready");f.open=k.StreamAction(n,e,o,p,ae.ActionInput.createFrom({id:d,namespace:g,params:y}));const v=await f.open;if(f.open=void 0,f.disposed)return k.CancelStreamAction(v).catch(()=>{}),v;f.handle=v,i({id:v,label:h,resourceKey:o,resourceName:d,namespace:g,connectionID:e,status:"running",startedAt:Date.now()});const m=E=>{if(f.disposed||!Number.isSafeInteger(E.sequence)||E.sequence<=f.sequence)return;f.sequence=E.sequence;const w=E.event,b=w.data??{};if(w.type==="error"){f.terminal=!0;const I=ye(w.error);r(v,{status:Ue(I)?"cancelled":"error",message:I.title,completedAt:Date.now()}),Ce(s,I,h),l(f)}else if(w.type==="complete"){f.terminal=!0;const I=typeof b.message=="string"?b.message:`${h} completed`;r(v,{status:"completed",message:I,completedAt:Date.now()}),s(I,"success"),l(f)}else r(v,{message:typeof b.message=="string"?b.message:void 0,progress:typeof b.ready=="number"&&typeof b.desired=="number"?{ready:b.ready,desired:b.desired}:void 0})};f.unsubscribe=Z.On(`action/stream/${v}`,E=>m(E.data)),f.attach=k.AttachStreamAction(v);const S=await f.attach;return f.attach=void 0,m(S),v}catch(v){if(f.terminal&&f.handle)return f.handle;throw f.disposed||(f.handle&&r(f.handle,{status:Ue(v)?"cancelled":"error",message:ye(v).title,completedAt:Date.now()}),Ce(s,v,`Failed to start "${p}"`)),l(f),v}},[n,e,o,i,r,s,l]),c=x.useCallback(p=>{for(const d of u.current)if(d.handle===p){l(d,!0);return}},[l]);return{startStreamAction:a,cancelStreamAction:c}};function en(t,e){return`${t}/${e}/graph/CHANGED`}function Xe(t,e,o,n){const s=q.c(16),i=A.useQueryClient(),r=x.useRef(o);let u,l;s[0]!==o?(u=()=>{r.current=o},l=[o],s[0]=o,s[1]=u,s[2]=l):(u=s[1],l=s[2]),x.useLayoutEffect(u,l);let a;s[3]!==o?(a=JSON.stringify(o),s[3]=o,s[4]=a):a=s[4];const c=a;let p;s[5]!==e||s[6]!==n||s[7]!==t||s[8]!==i?(p=()=>{if(!n||!t||!e)return;const g=Z.On(en(t,e),()=>{i.invalidateQueries({queryKey:r.current,exact:!0})});return()=>{g()}},s[5]=e,s[6]=n,s[7]=t,s[8]=i,s[9]=p):p=s[9];let d;s[10]!==e||s[11]!==n||s[12]!==c||s[13]!==t||s[14]!==i?(d=[i,t,e,c,n],s[10]=e,s[11]=n,s[12]=c,s[13]=t,s[14]=i,s[15]=d):d=s[15],x.useEffect(p,d)}const zs={owns:{outgoing:"Owns",incoming:"Owned by"},runs_on:{outgoing:"Runs on",incoming:"Running here"},uses:{outgoing:"Uses",incoming:"Used by"},exposes:{outgoing:"Exposes",incoming:"Exposed by"},manages:{outgoing:"Manages",incoming:"Managed by"},member_of:{outgoing:"Member of",incoming:"Members"},selects:{outgoing:"Selects",incoming:"Selected by"}};function Hs(t,e){const o=zs[t];if(o)return o[e];const n=t.replace(/_/g," ");return e==="outgoing"?n:`${n} (incoming)`}function Js(t,e){return t.pluginId===e.pluginId&&t.connectionId===e.connectionId&&t.resourceKey===e.resourceKey&&t.id===e.id&&(t.namespace??"")===(e.namespace??"")}function tn(t,e){return e.map(o=>{const n=Js(o.source,t);return{resource:n?o.target:o.source,type:o.type,direction:n?"outgoing":"incoming",label:o.label}})}const Vs=t=>{const e=q.c(44),{pluginID:o,connectionID:n,resourceKey:s,resourceID:i,namespace:r,direction:u,relationshipType:l,enabled:a,refetchInterval:c}=t,p=r===void 0?"":r,d=u===void 0?"both":u,g=a===void 0?!0:a,h=c===void 0?!1:c,y=ne(o),f=l??null;let v;e[0]!==n||e[1]!==d||e[2]!==p||e[3]!==y||e[4]!==i||e[5]!==s||e[6]!==f?(v=["RESOURCE_RELATED",y,n,s,p,i,d,f],e[0]=n,e[1]=d,e[2]=p,e[3]=y,e[4]=i,e[5]=s,e[6]=f,e[7]=v):v=e[7];const m=v,S=g&&!!s&&!!i;let E;e[8]!==n||e[9]!==y||e[10]!==S?(E={pluginID:y,connectionID:n,enabled:S},e[8]=n,e[9]=y,e[10]=S,e[11]=E):E=e[11];const w=he(E),b=be(y,n),I=g&&!!y&&!!n&&!!s&&!!i&&w.phase==="connected";Xe(y,n,m,I);let C;e[12]!==n||e[13]!==d||e[14]!==b||e[15]!==p||e[16]!==y||e[17]!==I||e[18]!==l||e[19]!==i||e[20]!==s?(C=I?M=>{const{signal:U,queryKey:Q}=M;return b(Q,U,()=>k.GetRelated(y,n,s,p,i,d,l??null))}:A.skipToken,e[12]=n,e[13]=d,e[14]=b,e[15]=p,e[16]=y,e[17]=I,e[18]=l,e[19]=i,e[20]=s,e[21]=C):C=e[21];let D;e[22]!==I||e[23]!==m||e[24]!==h||e[25]!==C?(D={queryKey:m,queryFn:C,enabled:I,refetchInterval:h},e[22]=I,e[23]=m,e[24]=h,e[25]=C,e[26]=D):D=e[26];const T=A.useQuery(D);let F,N;if(e[27]!==n||e[28]!==p||e[29]!==y||e[30]!==T.data||e[31]!==i||e[32]!==s){const M={pluginId:y,connectionId:n,resourceKey:s,id:i,namespace:p};let U;e[35]!==T.data?(U=T.data??[],e[35]=T.data,e[36]=U):U=e[36],F=U,N=tn(M,F),e[27]=n,e[28]=p,e[29]=y,e[30]=T.data,e[31]=i,e[32]=s,e[33]=F,e[34]=N}else F=e[33],N=e[34];let P;return e[37]!==F||e[38]!==T.error||e[39]!==T.isFetching||e[40]!==T.isLoading||e[41]!==T.refetch||e[42]!==N?(P={related:N,edges:F,isLoading:T.isLoading,isFetching:T.isFetching,error:T.error,refetch:T.refetch},e[37]=F,e[38]=T.error,e[39]=T.isFetching,e[40]=T.isLoading,e[41]=T.refetch,e[42]=N,e[43]=P):P=e[43],P},Ys=t=>{const e=q.c(31),{pluginID:o,connectionID:n,resourceKey:s,resourceID:i,namespace:r,maxDepth:u,enabled:l,refetchInterval:a}=t,c=r===void 0?"":r,p=u===void 0?3:u,d=l===void 0?!0:l,g=a===void 0?!1:a,h=ne(o);let y;e[0]!==n||e[1]!==p||e[2]!==c||e[3]!==h||e[4]!==i||e[5]!==s?(y=["RESOURCE_DEPENDENCY_TREE",h,n,s,c,i,p],e[0]=n,e[1]=p,e[2]=c,e[3]=h,e[4]=i,e[5]=s,e[6]=y):y=e[6];const f=y,v=d&&!!s&&!!i;let m;e[7]!==n||e[8]!==h||e[9]!==v?(m={pluginID:h,connectionID:n,enabled:v},e[7]=n,e[8]=h,e[9]=v,e[10]=m):m=e[10];const S=he(m),E=be(h,n),w=d&&!!h&&!!n&&!!s&&!!i&&S.phase==="connected";Xe(h,n,f,w);let b;e[11]!==n||e[12]!==E||e[13]!==p||e[14]!==c||e[15]!==h||e[16]!==w||e[17]!==i||e[18]!==s?(b=w?F=>{const{signal:N,queryKey:P}=F;return E(P,N,()=>k.GetDependencyTree(h,n,s,c,i,p))}:A.skipToken,e[11]=n,e[12]=E,e[13]=p,e[14]=c,e[15]=h,e[16]=w,e[17]=i,e[18]=s,e[19]=b):b=e[19];let I;e[20]!==w||e[21]!==f||e[22]!==g||e[23]!==b?(I={queryKey:f,queryFn:b,enabled:w,refetchInterval:g},e[20]=w,e[21]=f,e[22]=g,e[23]=b,e[24]=I):I=e[24];const C=A.useQuery(I),D=C.data??null;let T;return e[25]!==C.error||e[26]!==C.isFetching||e[27]!==C.isLoading||e[28]!==C.refetch||e[29]!==D?(T={tree:D,isLoading:C.isLoading,isFetching:C.isFetching,error:C.error,refetch:C.refetch},e[25]=C.error,e[26]=C.isFetching,e[27]=C.isLoading,e[28]=C.refetch,e[29]=D,e[30]=T):T=e[30],T},Xs=t=>{const e=q.c(32),{pluginID:o,connectionID:n,resourceKey:s,resourceID:i,namespace:r,upDepth:u,downDepth:l,enabled:a}=t,c=r===void 0?"":r,p=u===void 0?2:u,d=l===void 0?3:l,g=a===void 0?!0:a,h=ne(o);let y;e[0]!==n||e[1]!==d||e[2]!==c||e[3]!==h||e[4]!==i||e[5]!==s||e[6]!==p?(y=["RESOURCE_GRAPH",h,n,s,c,i,p,d],e[0]=n,e[1]=d,e[2]=c,e[3]=h,e[4]=i,e[5]=s,e[6]=p,e[7]=y):y=e[7];const f=y,v=g&&!!s&&!!i;let m;e[8]!==n||e[9]!==h||e[10]!==v?(m={pluginID:h,connectionID:n,enabled:v},e[8]=n,e[9]=h,e[10]=v,e[11]=m):m=e[11];const S=he(m),E=be(h,n),w=g&&!!h&&!!n&&!!s&&!!i&&S.phase==="connected";Xe(h,n,f,w);let b;e[12]!==n||e[13]!==d||e[14]!==E||e[15]!==c||e[16]!==h||e[17]!==w||e[18]!==i||e[19]!==s||e[20]!==p?(b=w?F=>{const{signal:N,queryKey:P}=F;return E(P,N,()=>k.GetSubgraph(h,n,s,c,i,p,d))}:A.skipToken,e[12]=n,e[13]=d,e[14]=E,e[15]=c,e[16]=h,e[17]=w,e[18]=i,e[19]=s,e[20]=p,e[21]=b):b=e[21];let I;e[22]!==w||e[23]!==f||e[24]!==b?(I={queryKey:f,queryFn:b,enabled:w},e[22]=w,e[23]=f,e[24]=b,e[25]=I):I=e[25];const C=A.useQuery(I),D=C.data??null;let T;return e[26]!==C.error||e[27]!==C.isFetching||e[28]!==C.isLoading||e[29]!==C.refetch||e[30]!==D?(T={graph:D,isLoading:C.isLoading,isFetching:C.isFetching,error:C.error,refetch:C.refetch},e[26]=C.error,e[27]=C.isFetching,e[28]=C.isLoading,e[29]=C.refetch,e[30]=D,e[31]=T):T=e[31],T},Zs=()=>{const t=x.useContext(pt);if(!t)throw new Error("useSettings must be used within a SettingsProvider");return t},eo=1,to=t=>{const e=q.c(19);let o,n,s,i;if(e[0]!==t){const{to:y,withinContext:f,onClick:v,onAuxClick:m,...S}=t;i=y,n=v,o=m,s=S,e[0]=t,e[1]=o,e[2]=n,e[3]=s,e[4]=i}else o=e[1],n=e[2],s=e[3],i=e[4];const{pluginId:r}=Je(),u=x.useContext(Ve);r||console.error("Link used outside of a plugin context");const l=`/_plugin/${r}${i.startsWith("/")?"":"/"}${i}`;let a;e[5]!==n||e[6]!==l||e[7]!==u?(a=y=>{n?.(y),!(y.defaultPrevented||!u||!(y.ctrlKey||y.metaKey))&&(y.preventDefault(),u.openInNewTab(l,{background:!0}))},e[5]=n,e[6]=l,e[7]=u,e[8]=a):a=e[8];const c=a;let p;e[9]!==o||e[10]!==l||e[11]!==u?(p=y=>{o?.(y),!(y.defaultPrevented||!u||y.button!==eo)&&(y.preventDefault(),u.openInNewTab(l,{background:!0}))},e[9]=o,e[10]=l,e[11]=u,e[12]=p):p=e[12];const d=p;let g;e[13]===Symbol.for("react.memo_cache_sentinel")?(g={textDecoration:"none",color:"inherit"},e[13]=g):g=e[13];let h;return e[14]!==d||e[15]!==c||e[16]!==s||e[17]!==l?(h=O.jsx(Be.Link,{style:g,...s,to:l,onClick:c,onAuxClick:d}),e[14]=d,e[15]=c,e[16]=s,e[17]=l,e[18]=h):h=e[18],h};function no(){const t=q.c(10),e=Be.useNavigate(),o=Be.useLocation(),{pluginId:n}=Je();n||console.error("usePluginRouter used outside of a plugin context");const s=`/_plugin/${n}`;let i;t[0]!==o.pathname||t[1]!==s?(i=o.pathname.startsWith(s)?o.pathname.slice(s.length)||"/":o.pathname,t[0]=o.pathname,t[1]=s,t[2]=i):i=t[2];const r=i;let u;t[3]!==e||t[4]!==s?(u=(c,p)=>{const{...d}=p??{};c.startsWith("/")?e(`${s}${c}`,d):e(c,d)},t[3]=e,t[4]=s,t[5]=u):u=t[5];const l=u;let a;return t[6]!==o||t[7]!==l||t[8]!==r?(a={location:o,navigate:l,pluginPath:r},t[6]=o,t[7]=l,t[8]=r,t[9]=a):a=t[9],a}class so{}class oo{_extensions;root;pages;_routes;get extensions(){return this._extensions||[]}get Routes(){if(!this._routes&&this.root)return[{path:"",index:!0,Component:this.root}];if(!this._routes?.length)throw new Error("cannot use plugin without a root page or router");return this._routes}get Window(){if(!this._routes&&this.root)return O.jsx(this.root,{});const e=Be.createMemoryRouter(this._routes||[]);return O.jsx(gn.RouterProvider,{router:e})}registerExtensionPoints(e){return this._extensions=e||[],this}setRootPage(e){return this.root=e,this}withPage(e,o){return this.pages||(this.pages={}),this.pages[e]?(console.warn("Cannot register page with the same name. Please use a different name."),this):(this.pages[e]=o,this)}withRoutes(e){return this._routes=e,this}}var nn=(t=>(t.MISSING_MANIFEST="MISSING_MANIFEST",t.MISSING_PLUGIN="MISSING_PLUGIN",t.MISSING_ENTRYPOINT="MISSING_ENTRYPOINT",t))(nn||{});const ro=t=>{const e=t.split("::");return e.length===1?{group:"core",version:"",kind:e[0]}:{group:e[0]||"core",version:e[1]||"",kind:e[2]||e[0]}},io=t=>!t||t==="core"?"Core":t.charAt(0).toUpperCase()+t.slice(1),sn="omniview/global-search/open";function co(t={}){window.dispatchEvent(new CustomEvent(sn,{detail:t}))}const on="omniview/resource/icons";class ao extends x.Component{state={failed:!1,resetToken:this.props.resetToken};static getDerivedStateFromProps(e,o){return e.resetToken!==o.resetToken?{failed:!1,resetToken:e.resetToken}:null}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function lo(t,e){try{return t?.schemaVersion!==1||typeof t.resolve!="function"?void 0:t.resolve(e)}catch{return}}function uo(t){const e=q.c(7);let o,n;e[0]!==t?({icon:o,...n}=t,e[0]=t,e[1]=o,e[2]=n):(o=e[1],n=e[2]);const s=n["aria-hidden"]??!0;let i;return e[3]!==o||e[4]!==n||e[5]!==s?(i=O.jsx(o,{...n,"aria-hidden":s}),e[3]=o,e[4]=n,e[5]=s,e[6]=i):i=e[6],i}function fo(t){const e=q.c(17);let o,n,s,i;e[0]!==t?({pluginId:n,resourceKey:i,fallback:o,...s}=t,e[0]=t,e[1]=o,e[2]=n,e[3]=s,e[4]=i):(o=e[1],n=e[2],s=e[3],i=e[4]);const{version:r,contributions:u}=gt(on);let l;e[5]!==o||e[6]!==s?(l=o===void 0?O.jsx("svg",{width:s.size??16,height:s.size??16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:s.className,"aria-hidden":s["aria-hidden"]??!0,children:O.jsx("path",{d:"m12 3 9 5v8l-9 5-9-5V8l9-5Zm0 9 9-4M12 12 3 8m9 4v9"})}):o,e[5]=o,e[6]=s,e[7]=l):l=e[7];const a=l;let c;if(e[8]!==u||e[9]!==a||e[10]!==n||e[11]!==s||e[12]!==i||e[13]!==r){c=Symbol.for("react.early_return_sentinel");e:for(const d of u){if(d.plugin!==n)continue;const g=lo(d.value,i);if(g){c=O.jsx(ao,{resetToken:d,fallback:a,children:O.jsx(x.Suspense,{fallback:a,children:O.jsx(uo,{icon:g,...s})})},JSON.stringify([n,i,r,d.id]));break e}}e[8]=u,e[9]=a,e[10]=n,e[11]=s,e[12]=i,e[13]=r,e[14]=c}else c=e[14];if(c!==Symbol.for("react.early_return_sentinel"))return c;let p;return e[15]!==a?(p=O.jsx(O.Fragment,{children:a}),e[15]=a,e[16]=p):p=e[16],p}exports.ALL_SESSIONS_KEY=Te;exports.BottomDrawerContext=At;exports.ConfirmationModalContext=kt;exports.ConnectionBoundary=ls;exports.ConnectionBoundaryFallback=Jt;exports.ErrorTypes=oe;exports.ExtensionPointRegistry=An;exports.ExtensionPointStore=Mt;exports.ExtensionProvider=Pn;exports.GLOBAL_SEARCH_OPEN_EVENT=sn;exports.Link=to;exports.OperationsContext=ht;exports.OperationsProvider=Cn;exports.PluginContext=He;exports.PluginContextProvider=vn;exports.PluginErrorCode=nn;exports.PluginWindow=oo;exports.PluginWindowRootProps=so;exports.RESOURCE_ICON_EXTENSION_POINT_ID=on;exports.ResourceIcon=fo;exports.RightDrawerContext=Nt;exports.SettingsContext=pt;exports.SettingsProvider=_n;exports.SnackbarProvider=kn;exports.WatchState=G;exports.WindowActionsContext=Ve;exports.WindowActionsProvider=wn;exports.actionToSnackbar=Tt;exports.applyBatch=Yt;exports.connectionListQueryKey=Gt;exports.createErrorHandler=ue;exports.defaultState=Pt;exports.formatGroup=io;exports.graphChangedEvent=en;exports.isCancelledError=Ue;exports.navigateActivePage=Rt;exports.openGlobalSearch=co;exports.parseAppError=ye;exports.parseResourceKey=ro;exports.registerActivePageNavigator=mn;exports.relationshipLabel=Hs;exports.requireConnectionReady=xe;exports.resourceQueryKeys=ze;exports.showAppError=Ce;exports.toRelatedResources=tn;exports.useActiveSyncs=Ks;exports.useBottomDrawer=St;exports.useConfirmationModal=Ds;exports.useConnection=Un;exports.useConnectionNamespaces=Gn;exports.useConnectionReadiness=he;exports.useConnectionStatus=Bn;exports.useConnections=Wn;exports.useDependencyTree=Ys;exports.useEditorSchemas=Ws;exports.useEventBatcher=Xt;exports.useExec=ps;exports.useExecuteAction=Us;exports.useExtensionPoint=On;exports.useExtensionPointSnapshot=gt;exports.useExtensionRegistry=$t;exports.useLogs=hs;exports.useMetricProviders=ys;exports.useMetricProvidersForResource=Vt;exports.useMetricStream=Ss;exports.useOperations=Zt;exports.usePluginContext=Je;exports.usePluginData=ds;exports.usePluginRouter=no;exports.usePluginSettings=En;exports.usePortForwardSessions=Es;exports.useRefetchOnGraphChange=Xe;exports.useRelatedResources=Vs;exports.useResolvedPluginId=ne;exports.useResource=Rs;exports.useResourceActions=qs;exports.useResourceAreaComponent=Ts;exports.useResourceGraph=Xs;exports.useResourceGroups=Os;exports.useResourceMetrics=ms;exports.useResourceMutations=js;exports.useResourcePortForwarder=Is;exports.useResourceSearch=Ps;exports.useResourceType=As;exports.useResourceTypes=Ns;exports.useResources=$s;exports.useRightDrawer=fs;exports.useSettings=Zs;exports.useSnackbar=me;exports.useStreamAction=Bs;exports.useWatchState=Qs;exports.useWindowActions=In;exports.withConnectionReady=$n;
|