@omniviewdev/runtime 0.22.0 → 0.23.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 +188 -156
- package/dist/bindings/events/index.d.ts +2 -2
- package/dist/bindings/github.com/omniviewdev/omniview/backend/extensiondiagnostics/host/index.d.ts +2 -0
- package/dist/bindings/github.com/omniviewdev/omniview/backend/extensiondiagnostics/host/service.d.ts +12 -0
- package/dist/bindings/github.com/omniviewdev/omniview/backend/extensiondiagnostics/index.d.ts +1 -0
- package/dist/bindings/github.com/omniviewdev/omniview/backend/extensiondiagnostics/models.d.ts +11 -0
- package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/plugin/resource/index.d.ts +1 -1
- package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/plugin/resource/models.d.ts +54 -26
- package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/plugin/resource/servicewrapper.d.ts +6 -9
- package/dist/bindings/github.com/omniviewdev/plugin-sdk/pkg/config/index.d.ts +1 -1
- package/dist/bindings/github.com/omniviewdev/plugin-sdk/pkg/config/models.d.ts +53 -0
- package/dist/bindings/github.com/omniviewdev/plugin-sdk/pkg/resource/v2/index.d.ts +1 -1
- package/dist/bindings/github.com/omniviewdev/plugin-sdk/pkg/resource/v2/models.d.ts +15 -72
- package/dist/compat/legacyEnum.d.ts +2 -2
- package/dist/context/settings/index.d.ts +1 -1
- package/dist/context/settings/settingsWindow.d.ts +3 -1
- package/dist/graph-D4xtzkXX.cjs +1 -0
- package/dist/graph-iJFYWdRz.js +7 -0
- package/dist/hooks/connection/useConnectionStatus.d.ts +3 -3
- package/dist/hooks/connection/useConnections.d.ts +0 -3
- package/dist/hooks/resource/index.d.ts +1 -2
- package/dist/hooks/resource/useActiveSyncs.d.ts +2 -2
- package/dist/hooks/resource/useResources.d.ts +10 -16
- package/dist/hooks/resource/useSourceStates.d.ts +17 -0
- package/dist/index.cjs +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2949 -2925
- package/dist/models-B3B5AdrM.cjs +1 -0
- package/dist/{models-BlRe-e25.js → models-B_Ef0-Dw.js} +1 -1
- package/dist/{models-C-3HYV9E.cjs → models-CX8HlqvF.cjs} +1 -1
- package/dist/{models-DNQykdGx.js → models-eKPHQdEl.js} +394 -321
- package/dist/models.cjs +1 -1
- package/dist/models.d.ts +1 -1
- package/dist/models.js +86 -84
- package/dist/resource/v2/ancillary.d.ts +1 -1
- package/dist/resource/v2/client.d.ts +8 -12
- package/dist/resource/v2/domain.d.ts +2 -1
- package/dist/resource/v2/host.d.ts +55 -31
- package/dist/resource/v2/sourceView.d.ts +20 -0
- package/dist/search.d.ts +1 -1
- package/dist/service-CbJRfldb.js +748 -0
- package/dist/service-DyXmAdcM.cjs +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/source.d.ts +8 -0
- package/dist/utils/activeSyncAggregator.d.ts +6 -17
- package/package.json +3 -3
- package/dist/graph-JDqyJC_i.js +0 -10
- package/dist/graph-wHun0Bkz.cjs +0 -1
- package/dist/hooks/resource/useEventBatcher.d.ts +0 -25
- package/dist/hooks/resource/useWatchState.d.ts +0 -21
- package/dist/models-D5pkScnE.cjs +0 -1
- package/dist/service-D25QhNF2.js +0 -750
- package/dist/service-MaHvflXn.cjs +0 -1
- package/dist/types/watch.d.ts +0 -55
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:s,actions:t.actions?.map(Wt)}}function Ce(t,e,s){if(Le(e))return;const n=fe(e);t(Qt(n,s))}function se(t,e){return s=>{if(Le(s))return;const n=fe(s);t(Qt(n,n.title!=="Error"?n.title:e))}}function En(t){const e=M.c(2);let s;return e[0]!==t?(s=T.jsx(wn,{...t},t.pluginId),e[0]=t,e[1]=s):s=e[1],s}function wn(t){const e=M.c(40),{children:s,pluginId:n,headless:r}=t,i=r===void 0?!1:r;let o;e[0]!==n?(o={kind:"plugin",pluginId:n},e[0]=n,e[1]=o):o=e[1];const{categories:c}=yt(o);let l;e[2]!==c.plugin?.settings||e[3]!==n?(l=Object.fromEntries(Object.entries(c.plugin?.settings??{}).filter(Cn).map(D=>{const[L,N]=D;return[`${n}.${L}`,N.value]})),e[2]=c.plugin?.settings,e[3]=n,e[4]=l):l=e[4];const a=l;let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d=new Ke.PluginMeta,e[5]=d):d=e[5];const[u,f]=E.useState(d),[p,v]=E.useState(!1),[h,g]=E.useState(null),m=E.useRef(0);console.debug("[PluginContextProvider] render",{pluginId:n,metaLoaded:p,metaError:!!h});let y;e[6]!==n?(y=()=>{if(n===void 0||n===""){console.debug("[PluginContextProvider] skipping meta fetch — empty pluginId");return}const D=m.current=m.current+1;console.debug(`[PluginContextProvider] fetching meta for "${n}"`),A.GetPluginMeta(n).then(L=>{D===m.current&&(console.debug(`[PluginContextProvider] meta loaded for "${n}"`,{name:L?.name,version:L?.version}),f(L),v(!0))}).catch(L=>{if(D!==m.current)return;const N=fe(L);console.error(`[PluginContextProvider] error fetching meta for "${n}":`,N.detail),g(N.detail),v(!1)})},e[6]=n,e[7]=y):y=e[7];const S=y;let b,w;e[8]!==S||e[9]!==p||e[10]!==n?(b=()=>{if(p)return;const D=()=>{g(null),S()},L=[Q.On("plugin/init_complete",D),Q.On("plugin/dev_install_complete",N=>{N.data?.id===n&&D()}),Q.On("plugin/inventory_changed",D)];return()=>{for(const N of L)N()}},w=[n,p,S],e[8]=S,e[9]=p,e[10]=n,e[11]=b,e[12]=w):(b=e[11],w=e[12]),E.useEffect(b,w);let x,C;if(e[13]!==S||e[14]!==n?(x=()=>(console.debug(`[PluginContextProvider] useEffect — pluginId changed to "${n}"`),S(),()=>{m.current=m.current+1}),C=[n,S],e[13]=S,e[14]=n,e[15]=x,e[16]=C):(x=e[15],C=e[16]),E.useEffect(x,C),h){if(i)throw new Error(h);let D,L,N;e[17]===Symbol.for("react.memo_cache_sentinel")?(N={display:"flex",flex:1,alignItems:"center",justifyContent:"center",padding:24},D={maxWidth:480,width:"100%",border:"1px solid #7F1D1D",borderRadius:8,backgroundColor:"#1C1917",padding:20,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},L={display:"flex",alignItems:"center",gap:8,marginBottom:12},e[17]=D,e[18]=L,e[19]=N):(D=e[17],L=e[18],N=e[19]);let W,_;e[20]===Symbol.for("react.memo_cache_sentinel")?(W=T.jsxs("div",{style:L,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"})]}),_={fontSize:13,color:"#A1A1AA",margin:"0 0 16px"},e[20]=W,e[21]=_):(W=e[20],_=e[21]);let k;e[22]!==h?(k=T.jsx("p",{style:_,children:h}),e[22]=h,e[23]=k):k=e[23];let P;e[24]!==S?(P=()=>{g(null),S()},e[24]=S,e[25]=P):P=e[25];let $;e[26]===Symbol.for("react.memo_cache_sentinel")?($={background:"transparent",color:"#F87171",border:"1px solid #7F1D1D",borderRadius:6,padding:"6px 14px",fontSize:13,fontWeight:500,cursor:"pointer"},e[26]=$):$=e[26];let F;e[27]!==P?(F=T.jsx("button",{onClick:P,style:$,children:"Retry"}),e[27]=P,e[28]=F):F=e[28];let q;return e[29]!==k||e[30]!==F?(q=T.jsx("div",{style:N,children:T.jsxs("div",{style:D,children:[W,k,F]})}),e[29]=k,e[30]=F,e[31]=q):q=e[31],q}if(!p){if(i)return null;let D;return e[32]===Symbol.for("react.memo_cache_sentinel")?(D=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]=D):D=e[32],D}let I;e[33]!==u||e[34]!==n||e[35]!==a?(I={pluginId:n,settings:a,meta:u},e[33]=u,e[34]=n,e[35]=a,e[36]=I):I=e[36];let R;return e[37]!==s||e[38]!==I?(R=T.jsx(Ge.Provider,{value:I,children:s}),e[37]=s,e[38]=I,e[39]=R):R=e[39],R}function Cn(t){const[,e]=t;return e!==void 0}function vt(){const t=E.useContext(Ge);if(!t)throw new Error("usePluginContext must be used within a PluginContextProvider");return t}const St=E.createContext(void 0),In=t=>{const e=M.c(7),{children:s}=t,{categories:n}=yt(We);let r;if(e[0]!==n){r={};for(const[l,a]of Object.entries(n))for(const[d,u]of Object.entries(a?.settings??{}))u&&(r[Mt(We,l,d)]=u.value);e[0]=n,e[1]=r}else r=e[1];const i=r;let o;e[2]!==i?(o={settings:i},e[2]=i,e[3]=o):o=e[3];let c;return e[4]!==s||e[5]!==o?(c=T.jsx(St.Provider,{value:o,children:s}),e[4]=s,e[5]=o,e[6]=c):c=e[6],c},Ut={height:32,focused:0,tabs:[],createTab:()=>{},createTabs:()=>{},updateTab:()=>{},focusTab:()=>{},reorderTab:()=>{},closeTab:()=>{},closeTabs:()=>{},resizeDrawer:()=>{},closeDrawer:()=>{},fullscreenDrawer:()=>{}},Kt=E.createContext(Ut),Gt=E.createContext(void 0),Bt=E.createContext(void 0),bt=E.createContext(void 0),_n=3e4,xn=t=>{const e=M.c(12),{children:s}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[r,i]=E.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 c=o;let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=(m,y)=>{i(S=>S.map(b=>b.id===m?{...b,...y}:b))},e[2]=l):l=e[2];const a=l;let d;e[3]===Symbol.for("react.memo_cache_sentinel")?(d=m=>{i(y=>y.filter(S=>S.id!==m))},e[3]=d):d=e[3];const u=d;let f,p;e[4]!==r?(f=()=>{const m=[];for(const y of r)if(y.status!=="running"){const S=Date.now()-(y.completedAt??y.startedAt),b=Math.max(0,_n-S);m.push(setTimeout(()=>u(y.id),b))}return()=>m.forEach(clearTimeout)},p=[r,u],e[4]=r,e[5]=f,e[6]=p):(f=e[5],p=e[6]),E.useEffect(f,p);let v;e[7]!==r?(v={operations:r,addOperation:c,updateOperation:a,removeOperation:u},e[7]=r,e[8]=v):v=e[8];const h=v;let g;return e[9]!==s||e[10]!==h?(g=T.jsx(bt.Provider,{value:h,children:s}),e[9]=s,e[10]=h,e[11]=g):g=e[11],g},Be=E.createContext(null),Rn=t=>{const e=M.c(3),{actions:s,children:n}=t;let r;return e[0]!==s||e[1]!==n?(r=T.jsx(Be.Provider,{value:s,children:n}),e[0]=s,e[1]=n,e[2]=r):r=e[2],r};function Dn(){const t=E.useContext(Be);if(!t)throw new Error("useWindowActions must be used inside a workspace window (WindowActionsProvider)");return t}var it=function(t,e){return it=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,n){s.__proto__=n}||function(s,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(s[r]=n[r])},it(t,e)};function On(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");it(t,e);function s(){this.constructor=t}t.prototype=e===null?Object.create(e):(s.prototype=e.prototype,new s)}var Ze="Invariant Violation",Nt=Object.setPrototypeOf,Tn=Nt===void 0?function(t,e){return t.__proto__=e,t}:Nt,Nn=(function(t){On(e,t);function e(s){s===void 0&&(s=Ze);var n=t.call(this,typeof s=="number"?Ze+": "+s+" (see https://github.com/apollographql/invariant-packages)":s)||this;return n.framesToPop=1,n.name=Ze,Tn(n,e.prototype),n}return e})(Error);function ct(t,e){if(!t)throw new Nn(e)}var zt=["debug","log","warn","error","silent"],kn=zt.indexOf("log");function Me(t){return function(){if(zt.indexOf(t)>=kn){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=Me("debug"),t.log=Me("log"),t.warn=Me("warn"),t.error=Me("error")})(ct||(ct={}));const Jt=E.createContext(void 0),Ht=()=>E.useContext(Jt);function Et(t){const e=M.c(6),s=Ht(),n=E.useRef(null);let r;e[0]!==t||e[1]!==s?(r=l=>{let a=s?.getExtensionPoint(t),d=a?.subscribe(l);const u=s?.subscribe(()=>{const f=s.getExtensionPoint(t);f!==a&&(d?.(),a=f,d=a?.subscribe(l)),l()});return()=>{d?.(),u?.()}},e[0]=t,e[1]=s,e[2]=r):r=e[2];const i=r;let o;e[3]!==t||e[4]!==s?(o=()=>{const l=s?.getExtensionPoint(t),a=l?.version??-1,d=n.current;if(d&&d.store===l&&d.version===a)return d;const u={store:l,version:a,contributions:l?.listAll()??[]};return n.current=u,u},e[3]=t,e[4]=s,e[5]=o):o=e[5];const c=o;return E.useSyncExternalStore(i,c,c)}function Pn(t){return Et(t).store}const An=t=>{const e=M.c(5),{registry:s,children:n}=t;let r;e[0]!==s?(r=()=>s,e[0]=s,e[1]=r):r=e[1];const[i]=E.useState(r);ct(i===s,"You can't change the extension registry after it has been rendered");let o;return e[2]!==n||e[3]!==i?(o=T.jsx(Jt.Provider,{value:i,children:n}),e[2]=n,e[3]=i,e[4]=o):o=e[4],o},et=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 Vt{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 s=!1;for(const[n,r]of this._contributions)r.plugin===e&&(this._contributions.delete(n),s=!0);s&&(this._invalidateCache(),this._notify())}_getMatched(e){const s=this._getCacheKey(e);if(s!=null){const r=this._lookupCache.get(s);if(r){const i=r.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(r=>this._matcher(r,e))),s!=null&&this._lookupCache.set(s,n.map(r=>r.id)),this._applyMode(n,e)}_applyMode(e,s){if(this.mode==="single"){if(this._select){const n=this._select(e,s);return n?[n]:[]}return e.length>0?[e[0]]:[]}return e}_sortDeterministic(e){return[...e].sort((s,n)=>{const r=s.plugin.localeCompare(n.plugin);return r!==0?r:s.id.localeCompare(n.id)})}_getCacheKey(e){if(e!=null&&typeof e=="object"&&"getCacheKey"in e){const s=e.getCacheKey;if(typeof s=="function")return s()}}_invalidateCache(){this._lookupCache.clear()}_notify(){this._version++;for(const e of this._listeners)e()}}class Ln{_stores=new Map;_storeUnsubs=new Map;_listeners=new Set;constructor(e){if(e?.initialStores)for(const s of e.initialStores)this.addExtensionPoint(s)}addExtensionPoint(e){const s=et(e.id);if(this._stores.has(s)){const r=this._stores.get(s);throw new Error(`Extension point "${s}" already exists (owned by "${r.pluginId??"unknown"}")`)}const n=new Vt({...e,id:s});this._stores.set(s,n),this._storeUnsubs.set(s,n.subscribe(()=>this._notify())),this._notify()}getExtensionPoint(e){const s=et(e);return this._stores.get(s)}hasExtensionPoint(e){const s=et(e);return this._stores.has(s)}listExtensionPoints(){return Array.from(this._stores.keys())}removeExtensionPoints(e){let s=!1;for(const[n,r]of this._stores)r.pluginId===e&&(this._storeUnsubs.get(n)?.(),this._storeUnsubs.delete(n),this._stores.delete(n),s=!0);s&&this._notify()}removeContributions(e){for(const s of this._stores.values())s.removeContributionsByPlugin(e);this._notify()}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}_notify(){for(const e of this._listeners)e()}}const ie={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)"}},Yt=E.createContext(void 0),Fn={default:"info",info:"info",success:"success",warning:"warning",error:"danger"},qn=({children:t})=>{const{toast:e}=B.useToast(),[s,n]=E.useState([]),[r,i]=E.useState([]),[o,c]=E.useState(!1),[l,a]=E.useState(),[d,u]=E.useState(""),f=E.useRef(0),p=E.useRef(null);E.useEffect(()=>{if(!o)return;const g=document.activeElement;p.current?.focus();const m=y=>{y.key==="Escape"&&(y.stopPropagation(),c(!1))};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m),g instanceof HTMLElement&&g.isConnected&&g.focus()}},[o]);const v=g=>{n(m=>[...m,g])},h=(g,m,y)=>{const S=typeof g=="object";let b="",w="info",x,C=5e3,I;if(S){if(b=g.message,g.showOnce){if(s.includes(b))return;v(b)}w=g.status,x=g.details,C=g.autoHideDuration??5e3,I=g.actions}else b=g,w=m,x=y;let R;if(w==="error"){const D={id:++f.current,message:b,details:x,created:new Date().toISOString(),actions:I};i(L=>[...L,D].slice(-20)),R={label:"Details",onClick:()=>{a(D.id),c(!0)}}}e(w==="error"?b:x??b,{severity:Fn[w]??"info",title:w!=="error"&&x?b:void 0,duration:C,action:R??I?.[0]})};return T.jsxs(Yt.Provider,{value:{showSnackbar:h,openNotifications:()=>{c(!0)},notificationCount:r.length},children:[t,o&&T.jsxs(B.Card,{ref:p,style:ie.Panel,size:"sm",variant:"outline",surface:"overlay",elevation:3,"aria-label":"Notifications",tabIndex:-1,children:[T.jsxs(B.Toolbar,{size:"sm",style:ie.Header,children:[T.jsx(B.Text,{size:"sm",weight:"semibold",children:"Notifications"}),T.jsx(B.Text,{size:"xs",tone:"muted",children:r.length}),T.jsxs(B.Toolbar.Group,{style:ie.HeaderActions,children:[T.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":"Clear history",title:"Clear history",disabled:r.length===0,onClick:()=>{i([]),a(void 0),u("")},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(B.IconButton,{size:"sm",variant:"ghost","aria-label":"Close notifications",title:"Close notifications",onClick:()=>{c(!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:ie.List,children:[r.length===0&&T.jsx(B.EmptyState,{size:"sm",title:"No recent errors",description:"Error details will appear here."}),r.slice().reverse().map(g=>{const m=l===g.id;return T.jsxs("div",{style:ie.Notice,children:[T.jsxs("div",{style:ie.Row,children:[T.jsxs("svg",{style:ie.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(B.Button,{size:"sm",variant:"ghost",style:ie.Message,"aria-expanded":m,"aria-controls":`notification-${g.id}`,title:g.message,onClick:()=>{a(m?void 0:g.id),u("")},children:T.jsx(B.Text,{size:"sm",style:ie.MessageText,truncate:!m,children:g.message})}),T.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":m?"Collapse details":"Expand details",title:m?"Collapse details":"Expand details","aria-expanded":m,"aria-controls":`notification-${g.id}`,onClick:()=>{a(m?void 0:g.id),u("")},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(B.IconButton,{size:"sm",variant:"ghost","aria-label":`Dismiss ${g.message}`,title:"Dismiss notification",onClick:()=>{i(y=>y.filter(S=>S.id!==g.id)),m&&(a(void 0),u(""))},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-${g.id}`,hidden:!m,style:ie.Details,children:m&&T.jsxs(T.Fragment,{children:[T.jsx(B.Text,{size:"xs",tone:"muted",children:T.jsx("time",{dateTime:g.created,children:new Date(g.created).toLocaleString()})}),T.jsx(B.Code,{size:"sm",style:ie.Code,children:g.details?.length?g.details:g.message}),T.jsxs("div",{style:ie.Actions,children:[T.jsx(B.Button,{size:"sm",variant:"ghost",onClick:async()=>{u("");try{await navigator.clipboard.writeText(`${g.message}
|
|
3
|
-
${
|
|
4
|
-
${g.details??""}`)}catch{u("Copy failed. Select the diagnostic text and copy it manually.")}},children:"Copy details"}),g.actions?.map((y,S)=>T.jsx(B.Button,{size:"sm",variant:"outline",onClick:y.onClick,children:y.label},`${y.label}-${S}`))]})]})})]},g.id)})]}),d&&T.jsx(B.Text,{as:"p",size:"sm",role:"status",style:ie.CopyError,children:d})]})]})},ce=()=>{const t=E.useContext(Yt);if(t===void 0)throw new Error("useCustomSnackbar must be used within a CustomSnackbarProvider");return t},be={all:t=>[t,"resource-v2"],scope:(t,e)=>[t,"resource-v2","target",e],list:(t,e)=>[t,"resource-v2","enumerate",e],nativeQuery:(t,e)=>[t,"resource-v2","native-query",e],resource:(t,e)=>[t,"resource-v2","get",e]};function U(t){const s=E.useContext(Ge)?.pluginId??t;if(!s)throw new Error("pluginID must be provided either via PluginContext or as an explicit parameter");return s}const de=new Map,Ne=new Map;let tt=0,De=[],wt=0;const Xt={phase:"checking"};function Ee(t,e){const s=JSON.stringify([t,e]);let n=de.get(s);return n||(n={pluginID:t,connectionID:e,key:s,snapshot:Xt,listeners:new Set,users:0,version:0,generation:++wt,starts:new Set},de.set(s,n)),n}function ke(t,e){t.snapshot.phase==="connected"&&e.phase!=="connected"&&(t.generation=++wt),t.snapshot=e;for(const s of t.listeners)s()}function we(t,e,s=!1){t.generation=++wt,t.version++,s||(t.operation=void 0),ke(t,e)}function Mn(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 Ct(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 Zt(t,e){const s=Mn(t.status);return{phase:s,connection:e,message:Ct(t.error||t.details)||(s==="error"?"The connection is not ready.":void 0)}}function en(t,e){const s=fe(t);return{phase:s.status===401?"unauthorized":s.status===403?"forbidden":s.status===404?"not-found":"error",connection:e,message:Ct(s.detail||s.title)}}function nt(t,e){e=Ct(e)||"The plugin is unavailable.",Ne.set(t,e);for(const s of de.values())s.pluginID===t&&we(s,{phase:"error",message:e,connection:s.snapshot.connection})}function kt(t){const e=Ne.delete(t);for(const s of de.values())s.pluginID===t&&(!e&&s.snapshot.phase==="checking"&&s.operation?.kind==="check"||(we(s,{phase:"checking",connection:s.snapshot.connection}),s.users&&Se(s,"check").catch(()=>{})))}function Re(){if(!(typeof document<"u"&&document.visibilityState==="hidden"))for(const t of de.values())t.users&&!Ne.has(t.pluginID)&&Se(t,"check",!0).catch(()=>{})}function jn(){De.length||(De=[Q.On("connection/status",({data:t})=>{const e=de.get(JSON.stringify([t.pluginID,t.connectionID]));!e||Ne.has(t.pluginID)||e.stop&&t.status!=="DISCONNECTED"||t.status!=="DISCONNECTED"&&e.starts.size&&e.operation?.kind!=="start"||we(e,Zt({status:t.status,error:"",details:""},e.snapshot.connection),t.status==="CONNECTED")}),Q.On("plugin/crash",({data:t})=>nt(t.pluginID,t.error||"The plugin stopped unexpectedly.")),Q.On("plugin/crash_recovery_failed",({data:t})=>nt(t.pluginID,t.error||"Plugin recovery failed.")),Q.On("plugin/recovered",({data:t})=>kt(t.pluginID)),Q.On("plugin/state_change",({data:t})=>{t.to==="Running"?kt(t.pluginID):nt(t.pluginID,t.reason||`The plugin is ${t.to}.`)})],typeof window<"u"&&(window.addEventListener("focus",Re),window.addEventListener("pageshow",Re),De.push(()=>{window.removeEventListener("focus",Re),window.removeEventListener("pageshow",Re)})),typeof document<"u"&&(document.addEventListener("visibilitychange",Re),De.push(()=>document.removeEventListener("visibilitychange",Re))))}function xe(t){return de.set(t.key,t),t.users++,tt++,jn(),()=>{if(t.users--,tt--,t.users||(we(t,Xt),de.get(t.key)===t&&de.delete(t.key)),!tt){for(const e of De)e();De=[],Ne.clear()}}}function Se(t,e,s=!1){if(t.stop)return Promise.reject(new Error("Connection is disconnecting. Wait for it to stop before connecting."));const n=Ne.get(t.pluginID);if(n)return ke(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 r=++t.version;(!s||t.snapshot.phase!=="connected")&&ke(t,{phase:e==="start"?"connecting":"checking",connection:t.snapshot.connection}),e==="start"&&t.starts.add(r);const i=Promise.resolve().then(()=>{if(t.version!==r)throw new Error("Connection readiness changed before the operation began.");return e==="start"?A.StartConnection(t.pluginID,t.connectionID):A.CheckConnection(t.pluginID,t.connectionID)}).then(o=>(t.version===r&&ke(t,Zt(o,o.connection??t.snapshot.connection)),o),o=>{throw t.version===r&&ke(t,en(o,t.snapshot.connection)),o}).finally(()=>{e==="start"&&t.starts.delete(r),t.operation?.version===r&&(t.operation=void 0)});return t.operation={kind:e,promise:i,version:r},i}function ze(t,e){return{getSnapshot:()=>Ee(t,e).snapshot,subscribe:s=>{const n=Ee(t,e),r=n.users===0,i=xe(n);return n.listeners.add(s),r&&Se(n,"check").catch(()=>{}),()=>{n.listeners.delete(s),i()}},connect:async()=>{const s=Ee(t,e),n=xe(s);try{await Se(s,"start")}catch{}finally{n()}},retry:async()=>{const s=Ee(t,e),n=xe(s);try{await Se(s,"check")}catch{}finally{n()}}}}async function Fe(t,e){const s=Ee(t,e),n=xe(s);try{try{await Se(s,"check",!0)}catch{}if(s.snapshot.phase!=="connected")throw new Error(s.snapshot.message||`Connection ${e} is ${s.snapshot.phase}. Connect before continuing.`)}finally{n()}}async function $n(t,e,s){const n=Ee(t,e),r=xe(n);try{try{await Se(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 s();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{r()}}function at(t,e){return de.get(JSON.stringify([t,e]))?.generation}function Pe(t,e,s){const n=de.get(JSON.stringify([t,e]));return s!==void 0&&n?.generation===s&&n.snapshot.phase==="connected"}async function Wn(t,e){const s=Ee(t,e),n=xe(s);try{return await Se(s,"start")}finally{n()}}function tn(t,e){const s=Ee(t,e);if(s.stop)return s.stop;const n=xe(s),r=Promise.resolve().then(()=>A.StopConnection(t,e)).then(i=>(we(s,{phase:"disconnected",connection:i}),i),i=>{throw we(s,en(i,s.snapshot.connection)),i}).finally(()=>{s.stop=void 0,n()});return s.stop=r,we(s,{phase:"disconnected",message:"Disconnecting. Wait for the connection to stop before reconnecting.",connection:s.snapshot.connection}),r}function Pt(t,e,s=!1){const n=de.get(JSON.stringify([t,e]));n&&(we(n,{phase:s?"not-found":"checking",connection:s?void 0:n.snapshot.connection}),!s&&n.users&&Se(n,"check").catch(()=>{}))}function st(t){if(!t.applied)throw new Error("Connection profile was not applied");return t}const Qn=t=>{const e=M.c(91),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=U(s),c=O.useQueryClient(),{showSnackbar:l}=ce();let a;e[0]!==n||e[1]!==o?(a=[o,"connection","detail",n],e[0]=n,e[1]=o,e[2]=a):a=e[2];const d=a;let u;e[3]!==o||e[4]!==c?(u=async()=>{await Promise.all([c.invalidateQueries({queryKey:[o,"connection"]}),c.invalidateQueries({queryKey:be.all(o)}),c.invalidateQueries({queryKey:[o,"resource-v2","editor-schemas"]})])},e[3]=o,e[4]=c,e[5]=u):u=e[5];const f=u;let p;e[6]!==n||e[7]!==f||e[8]!==o?(p=async()=>{Pt(o,n),await f()},e[6]=n,e[7]=f,e[8]=o,e[9]=p):p=e[9];const v=p;let h;e[10]!==n||e[11]!==o?(h=()=>Wn(o,n),e[10]=n,e[11]=o,e[12]=h):h=e[12];let g;e[13]!==l?(g=se(l,"Failed to start connection"),e[13]=l,e[14]=g):g=e[14];let m;e[15]!==f||e[16]!==h||e[17]!==g?(m={mutationFn:h,onSuccess:f,onError:g},e[15]=f,e[16]=h,e[17]=g,e[18]=m):m=e[18];const{mutateAsync:y}=O.useMutation(m);let S;e[19]!==n||e[20]!==o?(S=()=>tn(o,n),e[19]=n,e[20]=o,e[21]=S):S=e[21];let b;e[22]!==l?(b=se(l,"Failed to stop connection"),e[22]=l,e[23]=b):b=e[23];let w;e[24]!==f||e[25]!==S||e[26]!==b?(w={mutationFn:S,onSuccess:f,onError:b},e[24]=f,e[25]=S,e[26]=b,e[27]=w):w=e[27];const{mutateAsync:x}=O.useMutation(w);let C;e[28]!==o?(C=ue=>{const{connection:pe,credentials:Ie}=ue;return A.SaveConnectionProfile(o,pe,Ie).then(st)},e[28]=o,e[29]=C):C=e[29];let I,R;e[30]!==l?(I=()=>{l("Connection profile saved","success")},R=se(l,"Failed to save connection profile"),e[30]=l,e[31]=I,e[32]=R):(I=e[31],R=e[32]);let D;e[33]!==v||e[34]!==C||e[35]!==I||e[36]!==R?(D={mutationFn:C,onSuccess:I,onError:R,onSettled:v},e[33]=v,e[34]=C,e[35]=I,e[36]=R,e[37]=D):D=e[37];const{mutateAsync:L}=O.useMutation(D);let N;e[38]!==L?(N=(ue,pe)=>L({connection:ue,credentials:pe}),e[38]=L,e[39]=N):N=e[39];const W=N;let _;e[40]!==n||e[41]!==o?(_=()=>A.ImportConnectionProfile(o,n).then(st),e[40]=n,e[41]=o,e[42]=_):_=e[42];let k,P;e[43]!==l?(k=()=>{l("Connection profile imported","success")},P=se(l,"Failed to import connection profile"),e[43]=l,e[44]=k,e[45]=P):(k=e[44],P=e[45]);let $;e[46]!==v||e[47]!==_||e[48]!==k||e[49]!==P?($={mutationFn:_,onSuccess:k,onError:P,onSettled:v},e[46]=v,e[47]=_,e[48]=k,e[49]=P,e[50]=$):$=e[50];const{mutateAsync:F}=O.useMutation($);let q;e[51]!==n||e[52]!==o?(q=()=>A.ResetConnectionProfile(o,n).then(st),e[51]=n,e[52]=o,e[53]=q):q=e[53];let j,J;e[54]!==l?(j=()=>{l("Connection profile reset","success")},J=se(l,"Failed to reset connection profile"),e[54]=l,e[55]=j,e[56]=J):(j=e[55],J=e[56]);let H;e[57]!==v||e[58]!==q||e[59]!==j||e[60]!==J?(H={mutationFn:q,onSuccess:j,onError:J,onSettled:v},e[57]=v,e[58]=q,e[59]=j,e[60]=J,e[61]=H):H=e[61];const{mutateAsync:X}=O.useMutation(H);let Z;e[62]!==n||e[63]!==o?(Z=()=>A.RemoveConnection(o,n),e[62]=n,e[63]=o,e[64]=Z):Z=e[64];let z;e[65]!==n||e[66]!==o||e[67]!==l?(z=()=>{Pt(o,n,!0),l("Connection disabled","success")},e[65]=n,e[66]=o,e[67]=l,e[68]=z):z=e[68];let V;e[69]!==l?(V=se(l,"Failed to disable connection"),e[69]=l,e[70]=V):V=e[70];let K;e[71]!==f||e[72]!==Z||e[73]!==z||e[74]!==V?(K={mutationFn:Z,onSuccess:z,onError:V,onSettled:f},e[71]=f,e[72]=Z,e[73]=z,e[74]=V,e[75]=K):K=e[75];const{mutateAsync:ee}=O.useMutation(K);let le;e[76]!==n||e[77]!==o?(le=()=>A.GetConnection(o,n),e[76]=n,e[77]=o,e[78]=le):le=e[78];const he=i&&!!n;let ye;e[79]!==d||e[80]!==le||e[81]!==he?(ye={queryKey:d,queryFn:le,enabled:he},e[79]=d,e[80]=le,e[81]=he,e[82]=ye):ye=e[82];const me=O.useQuery(ye);let ne;return e[83]!==me||e[84]!==F||e[85]!==ee||e[86]!==X||e[87]!==W||e[88]!==y||e[89]!==x?(ne={connection:me,startConnection:y,stopConnection:x,saveConnectionProfile:W,importConnectionProfile:F,resetConnectionProfile:X,removeConnection:ee},e[83]=me,e[84]=F,e[85]=ee,e[86]=X,e[87]=W,e[88]=y,e[89]=x,e[90]=ne):ne=e[90],ne},nn=t=>[t,"connection","list"],Un=t=>{const e=M.c(33),{plugin:s}=t,n=U(s),r=O.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=nn(n),e[0]=n,e[1]=o):o=e[1];const c=o;let l;e[2]!==n?(l=I=>A.StartConnectionWatch(n,I),e[2]=n,e[3]=l):l=e[3];let a;e[4]!==i?(a=se(i,"Failed to start connection watch"),e[4]=i,e[5]=a):a=e[5];let d;e[6]!==l||e[7]!==a?(d={mutationFn:l,onError:a},e[6]=l,e[7]=a,e[8]=d):d=e[8];const{mutateAsync:u}=O.useMutation(d);let f;e[9]!==n?(f=I=>A.StopConnectionWatch(n,I),e[9]=n,e[10]=f):f=e[10];let p;e[11]!==i?(p=se(i,"Failed to stop connection watch"),e[11]=i,e[12]=p):p=e[12];let v;e[13]!==f||e[14]!==p?(v={mutationFn:f,onError:p},e[13]=f,e[14]=p,e[15]=v):v=e[15];const{mutateAsync:h}=O.useMutation(v);let g;e[16]!==r||e[17]!==c?(g=I=>{const R=I.data;console.log("got update to connections",R),r.setQueryData(c,R)},e[16]=r,e[17]=c,e[18]=g):g=e[18];const m=g;let y,S;e[19]!==m||e[20]!==n?(S=()=>{const I=Q.On(`${n}/connection/sync`,m);return()=>{I()}},y=[n,m],e[19]=m,e[20]=n,e[21]=y,e[22]=S):(y=e[21],S=e[22]),E.useEffect(S,y);let b;e[23]!==n||e[24]!==i?(b=async()=>{try{return await A.ListConnections(n)}catch(I){const R=I;console.log(R),se(i,"Failed to load connections")(R)}return[]},e[23]=n,e[24]=i,e[25]=b):b=e[25];let w;e[26]!==c||e[27]!==b?(w={queryKey:c,queryFn:b,staleTime:3e4,placeholderData:O.keepPreviousData},e[26]=c,e[27]=b,e[28]=w):w=e[28];const x=O.useQuery(w);let C;return e[29]!==x||e[30]!==u||e[31]!==h?(C={connections:x,startWatch:u,stopWatch:h},e[29]=x,e[30]=u,e[31]=h,e[32]=C):C=e[32],C},Kn={phase:"checking"},Gn={getSnapshot:()=>Kn,subscribe:()=>()=>{},connect:async()=>{},retry:async()=>{}};function oe(t){const e=M.c(8),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=U(s);let c;e[0]!==n||e[1]!==i||e[2]!==o?(c=i?ze(o,n):Gn,e[0]=n,e[1]=i,e[2]=o,e[3]=c):c=e[3];const l=c,a=E.useSyncExternalStore(l.subscribe,l.getSnapshot,l.getSnapshot);let d;return e[4]!==a||e[5]!==l.connect||e[6]!==l.retry?(d={...a,connect:l.connect,retry:l.retry},e[4]=a,e[5]=l.connect,e[6]=l.retry,e[7]=d):d=e[7],d}function ae(t,e){const s=O.useQueryClient();return E.useCallback(async(n,r,i,o=e)=>{const c=o,l=at(t,c),a=()=>l!==void 0&&Pe(t,c,l);if(r.aborted||!a())throw new O.CancelledError({revert:!0});let d,u=!1,f=!1;const p=()=>{d&&"cancel"in d&&typeof d.cancel=="function"&&Promise.resolve(d.cancel()).catch(g=>{console.error("Failed to cancel resource query",g)}),h()},v=ze(t,c).subscribe(()=>{a()||(u=!0,s.cancelQueries({queryKey:n,exact:!0}).catch(g=>{console.error("Failed to cancel invalidated resource query",g)}))}),h=()=>{f||(f=!0,v())};r.addEventListener("abort",p,{once:!0});try{if(r.aborted||u||!a())throw new O.CancelledError({revert:!0});d=i();const g=await d;if(r.aborted||u||!a())throw new O.CancelledError({revert:!0});return g}finally{r.removeEventListener("abort",p),h()}},[t,e,s])}const Bn=t=>{const e=M.c(20),{pluginID:s,route:n,dimension:r,enabled:i}=t,o=i===void 0?!0:i,c=U(s),l=o&&!!r;let a;e[0]!==c||e[1]!==n.connection||e[2]!==l?(a={pluginID:c,connectionID:n.connection,enabled:l},e[0]=c,e[1]=n.connection,e[2]=l,e[3]=a):a=e[3];const d=oe(a),u=ae(c,n.connection),f=o&&!!c&&!!n.connection&&!!r&&d.phase==="connected";let p;e[4]!==r||e[5]!==c||e[6]!==n?(p=[c,"resource-v2","scope-values",n,r],e[4]=r,e[5]=c,e[6]=n,e[7]=p):p=e[7];let v;e[8]!==r||e[9]!==u||e[10]!==c||e[11]!==f||e[12]!==n?(v=f?y=>{const{signal:S,queryKey:b}=y;return u(b,S,()=>A.ScopeValues(c,n,r))}:O.skipToken,e[8]=r,e[9]=u,e[10]=c,e[11]=f,e[12]=n,e[13]=v):v=e[13];let h;e[14]!==f||e[15]!==p||e[16]!==v?(h={queryKey:p,queryFn:v,enabled:f},e[14]=f,e[15]=p,e[16]=v,e[17]=h):h=e[17];const g=O.useQuery(h);let m;return e[18]!==g?(m={values:g},e[18]=g,e[19]=m):m=e[19],m};function lt(t){const e=Object.values(t.states),s=e.length;let n=0,r=0,i=0,o=0;for(const d of e)d===G.WatchState.WatchStateSynced&&n++,(d===G.WatchState.WatchStateError||d===G.WatchState.WatchStateFailed)&&r++,d===G.WatchState.WatchStateForbidden&&i++,d===G.WatchState.WatchStateSkipped&&o++;const c=s-o,l=e.filter(d=>d===G.WatchState.WatchStateSynced||d===G.WatchState.WatchStateError||d===G.WatchState.WatchStateStopped||d===G.WatchState.WatchStateFailed||d===G.WatchState.WatchStateForbidden).length,a=c>0?l/c:0;return{pluginID:t.pluginID,connectionID:t.connectionID,totalResources:s,watchedTotal:c,syncedCount:n,errorCount:r,forbiddenCount:i,skippedCount:o,doneCount:l,progress:a}}function Je(t){return t.watchedTotal>0&&t.doneCount>=t.watchedTotal}function sn(t){return t.some(e=>!Je(e))}function rn(t){const e=t.reduce((n,r)=>n+r.watchedTotal,0);return e===0?0:t.reduce((n,r)=>n+r.doneCount,0)/e}function It(t,e){return JSON.stringify([t,e.route.connection])}function ut(t,e,s){const n=It(e,s);t.has(n)||t.set(n,{states:{},pluginID:e,connectionID:s.route.connection});const r=t.get(n);return r.states[s.type]=s.state,r}function zn(){const[t,e]=E.useState(new Map),s=E.useRef(t),n=E.useRef(new Map),r=E.useRef(new Map),[i,o]=E.useState(!0),[c,l]=E.useState(),a=E.useRef({generation:0}),[d,u]=E.useState({}),[f,p]=E.useState(new Map),v=E.useRef(new Map),[h,g]=E.useState(new Map);E.useEffect(()=>{const _=Q.On("plugin/crash_recovery_failed",P=>{const $=P.data,F=$?.pluginID;F&&g(q=>{const j=new Map(q);return j.set(F,$.error??"Crash recovery failed"),j})}),k=Q.On("plugin/recovered",P=>{const F=P.data?.pluginID;F&&g(q=>{if(!q.has(F))return q;const j=new Map(q);return j.delete(F),j})});return()=>{_(),k()}},[]);const m=E.useCallback(async()=>{const _=++a.current.generation;n.current.clear(),r.current.clear();let k;try{k=A.GetAllConnectionStates()}catch(P){k=Promise.reject(P)}await k.then(P=>{if(_!==a.current.generation||!P)return;const $={},F=new Map,q=new Map;for(const[j,J]of Object.entries(P))if(J){$[j]=J.map(H=>H.connection);for(const H of J){const X=JSON.stringify([j,H.connection.id]),Z=n.current.get(X)??{readiness:H.readiness,readinessError:H.readinessError};if(F.set(X,Z),Z.readiness!=="CONNECTED")continue;const z={pluginID:j,connectionID:H.connection.id,states:{}};if(H.resources)for(const[V,K]of Object.entries(H.resources))z.states[V]=K;Object.assign(z.states,r.current.get(X)?.states),v.current.set(X,z),q.set(X,lt(z))}}u($);for(const[j,J]of n.current)F.set(j,J);s.current=F,e(F),p(q)}).catch(P=>{_===a.current.generation&&l(fe(P))}).finally(()=>{_===a.current.generation&&o(!1)})},[]),y=E.useCallback(async()=>{o(!0),l(void 0),await m()},[m]);E.useEffect(()=>{const _=a.current;return m().catch(k=>{console.error("Connection status refresh failed:",k)}),()=>{++_.generation}},[m]),E.useEffect(()=>{let _=!0,k=0;const P=Q.On("connection/status",$=>{const F=$.data,q=JSON.stringify([F.pluginID,F.connectionID]),j=F.status==="DISCONNECTED"||F.status==="PENDING"||F.status==="CONNECTED"||F.status==="FAILED"?F.status:"UNKNOWN",J={readiness:j};n.current.set(q,J);const H=new Map(s.current);H.set(q,J),s.current=H,e(H),j!=="CONNECTED"&&(p(z=>{const V=new Map(z);return V.delete(q),V}),v.current.delete(q),r.current.delete(q));const X=++k,Z=a.current.generation;A.ListAllConnections().then(z=>{if(!_||X!==k||Z!==a.current.generation||!z)return;const V={};for(const[K,ee]of Object.entries(z))ee!=null&&(V[K]=ee);u(V)}).catch(z=>{_&&X===k&&Z===a.current.generation&&console.error("Connection metadata refresh failed:",z)})});return()=>{_=!1,P()}},[]);const S=E.useCallback(_=>{const k=_.data,P=It(k.pluginID,k);if(s.current.get(P)?.readiness!=="CONNECTED")return;const $=ut(v.current,k.pluginID,k);ut(r.current,k.pluginID,k);const F=lt($);p(q=>{const j=new Map(q);return j.set(P,F),j})},[]);E.useEffect(()=>Q.On("watch/STATE",S),[S]);const b=E.useCallback(async(_,k)=>{await tn(_,k)},[]),w=E.useCallback(async(_,k)=>{if(s.current.get(JSON.stringify([_,k]))?.readiness!=="CONNECTED")return;const P={connection:k},$=await A.Catalog(_,{route:P}),F=await Promise.all($.types.filter(q=>q.capabilities.some(j=>j.operation==="update")).map(q=>A.ResolveTarget(_,{route:P,type:q.type})));await A.StartConnectionWatch(_,F.map(q=>q.target))},[]),x=E.useCallback(async _=>{const k=h.get(_);g(P=>{if(!P.has(_))return P;const $=new Map(P);return $.delete(_),$});try{await A.RetryFailedPlugin(_)}catch(P){throw g($=>{const F=new Map($);return F.set(_,k??"Reload failed"),F}),P}},[h]),C=[],I=new Set(t.keys());for(const[_,k]of Object.entries(d))for(const P of k)I.add(JSON.stringify([_,P.id]));for(const _ of I){const[k,P]=JSON.parse(_),F=(d[k]??[]).find(Z=>Z.id===P),q=t.get(_)??{readiness:"UNKNOWN"},j=q.readiness==="CONNECTED"?f.get(_):void 0,J=j!=null&&!Je(j),H=j!=null&&j.errorCount>0,X=h.get(k);C.push({pluginID:k,connectionID:P,name:F?.name??P,avatar:F?.avatar??"",readiness:q.readiness,readinessError:q.readinessError,sync:j,isSyncing:J,hasErrors:H||X!=null||q.readiness==="FAILED"||q.readinessError!=null,pluginFailed:X!=null,pluginError:X})}const R=new Map;for(const _ of C){const k=R.get(_.pluginID)??[];k.push(_),R.set(_.pluginID,k)}const D=C.flatMap(_=>_.sync?[_.sync]:[]),L=C.filter(_=>_.isSyncing),N=C.filter(_=>_.hasErrors),W=C.filter(_=>_.pluginFailed);return{isLoading:i,error:c,refresh:y,entries:C,grouped:R,connectedCount:C.filter(_=>_.readiness==="CONNECTED").length,syncingCount:L.length,errorCount:N.length,failedCount:W.length,hasSyncing:sn(D),aggregateProgress:rn(D),disconnect:b,retryWatch:w,retryPlugin:x}}function Jn(t){const e=M.c(9),{pluginID:s}=t,n=U(s);let r,i;e[0]!==n?(r=[n,"connection","profiles"],i=d=>{const{signal:u}=d;u.throwIfAborted();const f=A.ListConnectionProfiles(n),p=()=>{f.cancel()};return u.addEventListener("abort",p,{once:!0}),f.finally(()=>u.removeEventListener("abort",p))},e[0]=n,e[1]=r,e[2]=i):(r=e[1],i=e[2]);const o=!!n;let c;e[3]!==r||e[4]!==i||e[5]!==o?(c={queryKey:r,queryFn:i,enabled:o,retry:!1},e[3]=r,e[4]=i,e[5]=o,e[6]=c):c=e[6];const l=O.useQuery(c);let a;return e[7]!==l?(a={profiles:l},e[7]=l,e[8]=a):a=e[8],a}const Hn={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},rt={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 on(t){const e=M.c(44),{state:s,connectionName:n,connectionDetails:r,onEditConnection:i,onBack:o,backLabel:c}=t,l=c===void 0?"Back to connections":c,a=E.useId();if(s.phase==="connected")return null;const d=s.phase==="checking"||s.phase==="connecting",u=ts[s.phase],f=n??s.connection?.name;let p;e[0]!==r||e[1]!==f?(p=r??(f&&T.jsx(B.Text,{size:"sm",tone:"muted",style:rt,children:f})),e[0]=r,e[1]=f,e[2]=p):p=e[2];let v;e[3]!==d?(v=d&&T.jsx(B.Spinner,{style:es,"aria-hidden":"true"}),e[3]=d,e[4]=v):v=e[4];let h;e[5]!==a||e[6]!==u.title?(h=T.jsx("h2",{id:a,style:Xn,children:u.title}),e[5]=a,e[6]=u.title,e[7]=h):h=e[7];let g;e[8]!==v||e[9]!==h?(g=T.jsxs("div",{style:Yn,role:"status","aria-live":"polite",children:[v,h]}),e[8]=v,e[9]=h,e[10]=g):g=e[10];let m;e[11]!==u.description?(m=T.jsx(B.Text,{as:"p",size:"sm",tone:"muted",style:rt,children:u.description}),e[11]=u.description,e[12]=m):m=e[12];let y;e[13]!==d||e[14]!==s.message?(y=s.message&&T.jsx(B.Text,{as:"p",size:"sm",style:rt,role:d?"status":"alert",children:s.message}),e[13]=d,e[14]=s.message,e[15]=y):y=e[15];let S;e[16]!==d||e[17]!==s?(S=s.phase!=="not-found"&&T.jsx(B.Button,{size:"sm",variant:"solid",color:"brand",disabled:d,onClick:()=>{s.connect()},children:"Connect and continue"}),e[16]=d,e[17]=s,e[18]=S):S=e[18];const b=s.phase==="checking";let w;e[19]!==s?(w=()=>{s.retry()},e[19]=s,e[20]=w):w=e[20];let x;e[21]!==w||e[22]!==b?(x=T.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",disabled:b,onClick:w,children:"Retry check"}),e[21]=w,e[22]=b,e[23]=x):x=e[23];let C;e[24]!==i?(C=i&&T.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",onClick:i,children:"Edit connection"}),e[24]=i,e[25]=C):C=e[25];let I;e[26]!==l||e[27]!==o?(I=o&&T.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",onClick:o,children:l}),e[26]=l,e[27]=o,e[28]=I):I=e[28];let R;e[29]!==x||e[30]!==C||e[31]!==I||e[32]!==S?(R=T.jsxs("div",{style:Zn,children:[S,x,C,I]}),e[29]=x,e[30]=C,e[31]=I,e[32]=S,e[33]=R):R=e[33];let D;e[34]!==R||e[35]!==p||e[36]!==g||e[37]!==m||e[38]!==y?(D=T.jsxs("div",{style:Vn,children:[p,g,m,y,R]}),e[34]=R,e[35]=p,e[36]=g,e[37]=m,e[38]=y,e[39]=D):D=e[39];let L;return e[40]!==d||e[41]!==a||e[42]!==D?(L=T.jsx("section",{style:Hn,"aria-labelledby":a,"aria-busy":d,children:D}),e[40]=d,e[41]=a,e[42]=D,e[43]=L):L=e[43],L}function ns(t){const e=M.c(9),{pluginID:s,connectionID:n,children:r,fallback:i}=t;let o;e[0]!==n||e[1]!==s?(o={pluginID:s,connectionID:n},e[0]=n,e[1]=s,e[2]=o):o=e[2];const c=oe(o);if(c.phase!=="connected"){let a;return e[3]!==n||e[4]!==i||e[5]!==c?(a=i?i(c):T.jsx(on,{state:c,connectionName:c.connection?.name||n}),e[3]=n,e[4]=i,e[5]=c,e[6]=a):a=e[6],a}let l;return e[7]!==r?(l=T.jsx(T.Fragment,{children:r}),e[7]=r,e[8]=l):l=e[8],l}function ss(t){const e=M.c(7),s=U(t.pluginID);let n;e[0]!==s||e[1]!==t.connectionID?(n=JSON.stringify([s,t.connectionID]),e[0]=s,e[1]=t.connectionID,e[2]=n):n=e[2];let r;return e[3]!==s||e[4]!==t||e[5]!==n?(r=E.createElement(ns,{...t,pluginID:s,key:n}),e[3]=s,e[4]=t,e[5]=n,e[6]=r):r=e[6],r}const qe={supported:void 0,transportAvailable:!1,isLoading:!1},Oe=new Map;let ot,At=0;function ve(t,e){const s={...t.state,...e};Object.keys(s).every(n=>Object.is(s[n],t.state[n]))||(t.state=s,t.listeners.forEach(n=>n()))}function Te(t,e){let s=Oe.get(t);s||(s={retired:new Set,connections:new Map},Oe.set(t,s));let n=s.connections.get(e);return n||(n={pluginID:t,connectionID:e,state:qe,listeners:new Set,epoch:0,eventVersion:0},s.connections.set(e,n)),n}function rs(t){return t&&/^[0-9]+$/.test(t)?BigInt(t):void 0}function cn(t,e){if(Object.is(t,e))return!0;if(t===null||e===null||typeof t!="object"||typeof e!="object"||Array.isArray(t)!==Array.isArray(e))return!1;const s=t,n=e,r=Object.keys(s);return r.length!==Object.keys(n).length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&cn(s[i],n[i]))}function os(t,e){if(!t)return e;const s={...e.entries};let n=Object.keys(t.entries).length===Object.keys(s).length;for(const r of Object.keys(s))cn(t.entries[r],s[r])?s[r]=t.entries[r]:n=!1;return{...e,entries:n?t.entries:s}}function an(t,e){const s=Oe.get(t.pluginID);if(!s||s.retired.has(t.registrationID))return;if(s.registrationID!==t.registrationID){if(s.registrationID&&!e)return;if(s.registrationID){s.retired.add(s.registrationID);for(const i of s.connections.values())i.epoch++,i.pending=void 0,i.revision=void 0,ve(i,{...qe,snapshot:void 0,error:void 0})}s.registrationID=t.registrationID}const n=t.snapshot?.connectionID??t.connectionID,r=n===void 0?[...s.connections.values()]:[s.connections.get(n)].filter(i=>!!i);for(const i of r){e&&i.eventVersion++;const o=i.state.transportAvailable,c=rs(t.snapshot?.revision??t.revision);if(c!==void 0&&(i.revision===void 0||c>i.revision)&&(i.revision=c,ve(i,{snapshot:t.removed?void 0:t.snapshot?os(i.state.snapshot,t.snapshot):i.state.snapshot})),!t.transportAvailable){i.epoch++,i.pending=void 0,ve(i,{supported:t.supported,transportAvailable:!1,isLoading:!1});continue}if(n===void 0){ve(i,{supported:t.supported,transportAvailable:!t.supported}),t.supported&&i.listeners.size?Qe(i,!1):ve(i,{isLoading:!1,error:void 0});continue}ve(i,{supported:t.supported,transportAvailable:!e||o,isLoading:!1,error:void 0}),e&&!o&&i.listeners.size&&Qe(i,!1)}}function Qe(t,e){if(!t.listeners.size||t.state.supported===!1)return Promise.resolve();if(!e&&t.pending)return t.pending;const s=t.epoch,n=t.eventVersion;ve(t,{isLoading:!0,error:void 0});const r=e?A.RefreshConnectionMetadata:A.GetConnectionMetadata,i=Promise.resolve().then(()=>{if(!(t.epoch!==s||!t.listeners.size||t.state.supported===!1))return r(t.pluginID,t.connectionID)}).then(o=>{if(!o||t.epoch!==s||!t.listeners.size||o.pluginID!==t.pluginID)return;const c=o.snapshot?.connectionID??o.connectionID;c!==void 0&&c!==t.connectionID||an({...o,connectionID:t.connectionID},!1)}).catch(o=>{t.epoch===s&&t.eventVersion===n&&t.listeners.size&&ve(t,{error:o,isLoading:!1})}).finally(()=>{t.pending===i&&(t.pending=void 0),t.epoch===s&&t.listeners.size&&ve(t,{isLoading:!1})});return e||(t.pending=i),i}function _t(t,e){return t.listeners.add(e),At++===0&&(ot=Q.On("resource/connection/metadata",s=>an(s.data,!0))),t.listeners.size===1&&Qe(t,!1),()=>{t.listeners.delete(e),t.listeners.size||(t.epoch++,t.pending=void 0,Oe.get(t.pluginID)?.connections.delete(t.connectionID)),--At===0&&(ot?.(),ot=void 0,Oe.clear())}}function is(t,e){const s=M.c(15),n=U(t),r=n!==void 0&&e!==void 0;let i;s[0]!==e||s[1]!==r||s[2]!==n?(i=p=>r?_t(Te(n,e),p):as,s[0]=e,s[1]=r,s[2]=n,s[3]=i):i=s[3];const o=i;let c;s[4]!==e||s[5]!==r||s[6]!==n?(c=()=>r?Te(n,e).state:qe,s[4]=e,s[5]=r,s[6]=n,s[7]=c):c=s[7];const l=c,a=E.useSyncExternalStore(o,l,cs);let d;s[8]!==e||s[9]!==r||s[10]!==n?(d=()=>{const p=r?Oe.get(n)?.connections.get(e):void 0;return p?Qe(p,!0):Promise.resolve()},s[8]=e,s[9]=r,s[10]=n,s[11]=d):d=s[11];const u=d;let f;return s[12]!==u||s[13]!==a?(f={...a,refresh:u},s[12]=u,s[13]=a,s[14]=f):f=s[14],f}function cs(){return qe}function as(){}function ls(t,e){const s=JSON.parse(e);let n=new Map;return{subscribe(r){const i=s.map(o=>_t(Te(t,o),r));return()=>i.forEach(o=>o())},read(){const r=s.map(i=>Te(t,i).state);return(n.size!==s.length||s.some((i,o)=>n.get(i)!==r[o]))&&(n=new Map(s.map((i,o)=>[i,r[o]]))),n}}}function us(t,e){const s=M.c(5),n=U(t);let r;s[0]!==e?(r=JSON.stringify([...new Set(e)]),s[0]=e,s[1]=r):r=s[1];const i=r;let o;s[2]!==i||s[3]!==n?(o=ls(n,i),s[2]=i,s[3]=n,s[4]=o):o=s[4];const c=o;return E.useSyncExternalStore(c.subscribe,c.read,c.read)}function ds(t,e,s){let n,r;return{read(){const i=e===void 0?qe:Te(t,e).state;return n!==i&&(r=s(i),n=i),r}}}function fs(t,e,s){const n=M.c(7),r=U(t);let i;n[0]!==e||n[1]!==r?(i=a=>e===void 0?ps:_t(Te(r,e),a),n[0]=e,n[1]=r,n[2]=i):i=n[2];const o=i;let c;n[3]!==e||n[4]!==r||n[5]!==s?(c=ds(r,e,s),n[3]=e,n[4]=r,n[5]=s,n[6]=c):c=n[6];const l=c;return E.useSyncExternalStore(o,l.read,l.read)}function ps(){}function gs(t,e,s){if(!e||!t?.active)return;const n=t.entries[s];return n?.state==="current"&&typeof n.value=="string"?n.value:void 0}function hs(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 ys(t,e,s){const n=M.c(29),r=U(t),i=O.useQueryClient();let o;n[0]!==e||n[1]!==r?(o=[r,"data",e],n[0]=e,n[1]=r,n[2]=o):o=n[2];const c=o;let l;n[3]!==s||n[4]!==e||n[5]!==r?(l=async()=>{const b=await A.Get(r,e);return b==null?s:hs(b,s)?b:(console.warn(`[usePluginData] stored value for "${e}" has unexpected type (expected ${Array.isArray(s)?"array":typeof s}, got ${Array.isArray(b)?"array":typeof b}). Using default.`),s)},n[3]=s,n[4]=e,n[5]=r,n[6]=l):l=n[6];let a;n[7]!==c||n[8]!==l?(a={queryKey:c,queryFn:l},n[7]=c,n[8]=l,n[9]=a):a=n[9];const d=O.useQuery(a);let u;n[10]!==e||n[11]!==r?(u=async b=>{await A.Set(r,e,b)},n[10]=e,n[11]=r,n[12]=u):u=n[12];let f,p,v;n[13]!==i||n[14]!==c?(f=async b=>{await i.cancelQueries({queryKey:c});const w=i.getQueryData(c);return i.setQueryData(c,b),{previous:w}},p=(b,w,x)=>{x?.previous!==void 0&&i.setQueryData(c,x.previous)},v=()=>{i.invalidateQueries({queryKey:c})},n[13]=i,n[14]=c,n[15]=f,n[16]=p,n[17]=v):(f=n[15],p=n[16],v=n[17]);let h;n[18]!==u||n[19]!==f||n[20]!==p||n[21]!==v?(h={mutationFn:u,onMutate:f,onError:p,onSettled:v},n[18]=u,n[19]=f,n[20]=p,n[21]=v,n[22]=h):h=n[22];const g=O.useMutation(h),m=d.data??s;let y;n[23]!==g?(y=async b=>{await g.mutateAsync(b)},n[23]=g,n[24]=y):y=n[24];let S;return n[25]!==d.isLoading||n[26]!==m||n[27]!==y?(S={data:m,update:y,isLoading:d.isLoading},n[25]=d.isLoading,n[26]=m,n[27]=y,n[28]=S):S=n[28],S}const ms=()=>{const t=E.useContext(Gt);if(!t)throw new Error("useRightDrawer must be used within a RightDrawerProvider");return t},xt=()=>{const t=E.useContext(Kt);if(t===void 0)throw new Error("useBottomDrawer must be used within a BottomDrawerProvider");return t},vs=({pluginID:t})=>{const e=U(t),{showSnackbar:s}=ce(),{createTab:n,updateTab:r}=xt();return{createSession:O.useMutation({mutationFn:async({connectionID:o,icon:c,label:l,opts:a,recovery:d})=>{const u=`pending-${crypto.randomUUID()}`;n({id:u,title:l??"Connecting...",variant:"terminal",icon:c??"LuSquareTerminal",properties:{status:"connecting",pluginID:e,connectionID:o,opts:{...a},recovery:d}});const f=Ke.SessionOptions.createFrom({command:["/bin/bash"],tty:!0,...a});try{const p=await A.CreateSession(e,o,f);if(!p)throw new Error("Failed to create session: null response");return r({id:u},{id:p.id,title:l??`Session ${p.id.substring(0,8)}`,properties:{status:"connected",pluginID:e,connectionID:o,opts:{...a},recovery:d}}),p}catch(p){const v=fe(p);return r({id:u},{properties:{status:"error",error:v.detail,pluginID:e,connectionID:o,opts:{...a},recovery:d,errorInfo:{title:v.title||"Session error",suggestion:v.detail,raw:v.detail}}}),Ce(s,p,"Failed to start session"),null}}}).mutateAsync}};function Ss(t){const e=M.c(29),{pluginID:s,resourceKey:n}=t,r=U(s),{showSnackbar:i}=ce(),o=O.useQueryClient();let c;e[0]!==r||e[1]!==n?(c=["exec","native-launch",r,n],e[0]=r,e[1]=n,e[2]=c):c=e[2];const l=c;let a;e[3]!==l?(a={mutationKey:l,exact:!0},e[3]=l,e[4]=a):a=e[4];const d=O.useIsMutating(a)>0;let u;e[5]===Symbol.for("react.memo_cache_sentinel")?(u={queryKey:["exec","native-terminal-support"],queryFn:A.GetNativeTerminalSupport,staleTime:1/0,retry:!1},e[5]=u):u=e[5];const f=O.useQuery(u);let p,v;e[6]!==r||e[7]!==n?(p=["executions",r,n,"actions"],v=async()=>({exec:await A.GetHandler(r,n)}),e[6]=r,e[7]=n,e[8]=p,e[9]=v):(p=e[8],v=e[9]);const h=!!n&&f.data===!0;let g;e[10]!==p||e[11]!==v||e[12]!==h?(g={queryKey:p,queryFn:v,enabled:h,retry:!1},e[10]=p,e[11]=v,e[12]=h,e[13]=g):g=e[13];const m=O.useQuery(g),y=f.isSuccess&&f.data===!0&&m.isSuccess&&m.data.exec?.supports_native_command===!0;let S;e[14]!==r||e[15]!==i?(S=async R=>{const{connectionID:D,opts:L}=R;try{return await A.OpenNativeSession(r,D,Ke.SessionOptions.createFrom({tty:!0,...L})),!0}catch(N){return Ce(i,N,"Failed to open native terminal"),!1}},e[14]=r,e[15]=i,e[16]=S):S=e[16];let b;e[17]!==l||e[18]!==S?(b={mutationKey:l,mutationFn:S,retry:!1},e[17]=l,e[18]=S,e[19]=b):b=e[19];const{mutateAsync:w}=O.useMutation(b);let x;e[20]!==y||e[21]!==w||e[22]!==l||e[23]!==o?(x=async R=>!y||o.isMutating({mutationKey:l,exact:!0})>0?!1:w(R),e[20]=y,e[21]=w,e[22]=l,e[23]=o,e[24]=x):x=e[24];const C=x;let I;return e[25]!==d||e[26]!==y||e[27]!==C?(I={openNativeSession:C,isSupported:y,isPending:d},e[25]=d,e[26]=y,e[27]=C,e[28]=I):I=e[28],I}const bs=t=>{const e=M.c(15),{pluginID:s}=t,n=U(s),{showSnackbar:r}=ce(),{createTab:i}=xt();let o;e[0]!==i||e[1]!==n?(o=async v=>{const{connectionID:h,resourceKey:g,resourceID:m,resourceData:y,reference:S,route:b,icon:w,label:x,target:C,follow:I,tailLines:R,params:D}=v,W={resource_key:g,resource_id:m,resource_data:y,reference:S,route:b,options:{target:C??"",follow:I===void 0?!0:I,include_previous:!1,include_timestamps:!0,tail_lines:R===void 0?1e3:R,since_seconds:0,limit_bytes:0,include_source_events:!0,params:D??{}}},_=await A.CreateSession$1(n,h,W);if(!_)throw new Error("Failed to create log session: null response");return i({id:_.id,title:x??`Logs ${_.id.substring(0,8)}`,variant:"logs",icon:w??"LuLogs"}),_},e[0]=i,e[1]=n,e[2]=o):o=e[2];let c;e[3]!==r?(c=se(r,"Failed to start log session"),e[3]=r,e[4]=c):c=e[4];let l;e[5]!==o||e[6]!==c?(l={mutationFn:o,onError:c},e[5]=o,e[6]=c,e[7]=l):l=e[7];const a=O.useMutation(l);let d;e[8]!==r?(d=se(r,"Failed to close log session"),e[8]=r,e[9]=d):d=e[9];let u;e[10]!==d?(u={mutationFn:Es,onError:d},e[10]=d,e[11]=u):u=e[11];const f=O.useMutation(u);let p;return e[12]!==f.mutateAsync||e[13]!==a.mutateAsync?(p={createLogSession:a.mutateAsync,closeLogSession:f.mutateAsync},e[12]=f.mutateAsync,e[13]=a.mutateAsync,e[14]=p):p=e[14],p};async function Es(t){await A.CloseSession(t)}const ws=()=>{const t=M.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e={queryKey:["metric","providers"],queryFn:A.GetProviders,staleTime:3e4},t[0]=e):e=t[0],O.useQuery(e)},ln=t=>{const e=M.c(7);let s,n;e[0]!==t?(s=["metric","providers",t],n=()=>A.GetProvidersForResource(t),e[0]=t,e[1]=s,e[2]=n):(s=e[1],n=e[2]);const r=!!t;let i;return e[3]!==s||e[4]!==n||e[5]!==r?(i={queryKey:s,queryFn:n,enabled:r,staleTime:3e4},e[3]=s,e[4]=n,e[5]=r,e[6]=i):i=e[6],O.useQuery(i)},Cs=t=>{const e=M.c(45),{connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i,resourceData:o,reference:c,route:l,params:a,metricIDs:d,shape:u,timeRange:f,refreshInterval:p,enabled:v}=t,h=i===void 0?"":i;let g;e[0]!==d?(g=d===void 0?[]:d,e[0]=d,e[1]=g):g=e[1];const m=g,y=u===void 0?0:u,S=p===void 0?0:p,b=v===void 0?!0:v,{data:w,isLoading:x}=ln(n);let C;e[2]!==w?(C=w??[],e[2]=w,e[3]=C):C=e[3];const I=C,R=f?Math.max(Math.floor((f.end.getTime()-f.start.getTime())/250),15e3)*1e6:0;let D;e[4]!==f?.start?(D=f?.start?.getTime(),e[4]=f?.start,e[5]=D):D=e[5];let L;e[6]!==f?.end?(L=f?.end?.getTime(),e[6]=f?.end,e[7]=L):L=e[7];let N;e[8]!==s||e[9]!==m||e[10]!==a||e[11]!==c||e[12]!==r||e[13]!==n||e[14]!==h||e[15]!==l||e[16]!==y||e[17]!==D||e[18]!==L?(N=["metric","query",s,n,r,h,c,l,a,m,y,D,L],e[8]=s,e[9]=m,e[10]=a,e[11]=c,e[12]=r,e[13]=n,e[14]=h,e[15]=l,e[16]=y,e[17]=D,e[18]=L,e[19]=N):N=e[19];let W;e[20]!==s||e[21]!==m||e[22]!==a||e[23]!==c||e[24]!==o||e[25]!==r||e[26]!==n||e[27]!==h||e[28]!==l||e[29]!==y||e[30]!==R||e[31]!==f?.end||e[32]!==f?.start?(W=async()=>{const H=await A.QueryAll(s,{resource_key:n,resource_id:r,resource_namespace:h,resource_data:o,reference:c,route:l,params:a,metric_ids:m,shape:y,start_time:(f?.start??new Date(0)).toISOString(),end_time:(f?.end??new Date(0)).toISOString(),step:R}),X={};for(const[Z,z]of Object.entries(H))z!=null&&(X[Z]=z);return X},e[20]=s,e[21]=m,e[22]=a,e[23]=c,e[24]=o,e[25]=r,e[26]=n,e[27]=h,e[28]=l,e[29]=y,e[30]=R,e[31]=f?.end,e[32]=f?.start,e[33]=W):W=e[33];const _=b&&!!s&&!!n&&I.length>0,k=S>0?S:void 0;let P;e[34]!==W||e[35]!==_||e[36]!==k||e[37]!==N?(P={queryKey:N,queryFn:W,enabled:_,refetchInterval:k,staleTime:5e3,placeholderData:O.keepPreviousData},e[34]=W,e[35]=_,e[36]=k,e[37]=N,e[38]=P):P=e[38];const $=O.useQuery(P),F=$.data??void 0,q=x||$.isLoading,j=$.error;let J;return e[39]!==$.refetch||e[40]!==I||e[41]!==F||e[42]!==q||e[43]!==j?(J={data:F,providers:I,isLoading:q,error:j,refetch:$.refetch},e[39]=$.refetch,e[40]=I,e[41]=F,e[42]=q,e[43]=j,e[44]=J):J=e[44],J},Is=t=>{const{pluginID:e,connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i="",resourceData:o,reference:c,route:l,params:a,metricIDs:d=[],interval:u=1e4,enabled:f=!0}=t,p=U(e),[v,h]=E.useState(null),[g,m]=E.useState(null),[y,S]=E.useState(!1),[b,w]=E.useState(null),x=E.useRef(null),C=E.useCallback(async()=>{if(!(!f||!p||!s||!n))try{const R=await A.Subscribe(p,s,{resource_key:n,resource_id:r,resource_namespace:i,resource_data:o,reference:c,route:l,params:a,metric_ids:d,interval:u*1e6});m(R),S(!0),w(null);const D=Q.On(`core/metrics/data/${R}`,N=>{const W=N.data;try{const _=JSON.parse(W);_.results&&(h(_.results),S(!0),w(null))}catch(_){console.error("Failed to parse metric stream data:",_)}}),L=Q.On(`core/metrics/error/${R}`,N=>{const W=N.data;try{const _=JSON.parse(W);let k="Unknown error";if(_&&typeof _=="object"&&("error"in _&&typeof _.error=="string"&&_.error&&(k=_.error),"operation_error"in _)){const P=_.operation_error;P&&typeof P=="object"&&"message"in P&&typeof P.message=="string"&&(k=P.message)}w(k),S(!1)}catch{w("Failed to parse metric stream error")}});x.current=()=>{D(),L()}}catch(R){w(R instanceof Error?R.message:String(R))}},[p,s,n,r,i,o,c,l,a,d,u,f]),I=E.useCallback(async()=>{if(g)try{await A.Unsubscribe(g)}catch(R){console.error("Failed to unsubscribe:",R)}x.current&&(x.current(),x.current=null),m(null),S(!1)},[g]);return E.useEffect(()=>()=>{g&&A.Unsubscribe(g).catch(console.error),x.current&&x.current()},[g]),{data:v,subscriptionID:g,isStreaming:y,error:b,start:C,stop:I}},_e=["networker","portforward","all-sessions"];function _s(){const t=M.c(17),{showSnackbar:e}=ce(),s=O.useQueryClient();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:[..._e],queryFn:Ds,retry:!1},t[0]=n):n=t[0];const r=O.useQuery(n);let i,o;t[1]!==s?(i=()=>{const v=Q.On("core/networker/portforward/created",()=>{s.invalidateQueries({queryKey:[..._e]})}),h=Q.On("core/networker/portforward/closed",()=>{s.invalidateQueries({queryKey:[..._e]})});return()=>{v(),h()}},o=[s],t[1]=s,t[2]=i,t[3]=o):(i=t[2],o=t[3]),E.useEffect(i,o);let c;t[4]!==r.data?(c=r.data??[],t[4]=r.data,t[5]=c):c=t[5];const l=c;let a;t[6]!==e?(a=se(e,"Failed to close port forwarding session"),t[6]=e,t[7]=a):a=t[7];let d;t[8]!==s?(d=async()=>{await s.invalidateQueries({queryKey:[..._e]})},t[8]=s,t[9]=d):d=t[9];let u;t[10]!==a||t[11]!==d?(u={mutationFn:Rs,onError:a,onSuccess:d},t[10]=a,t[11]=d,t[12]=u):u=t[12];const f=O.useMutation(u);let p;return t[13]!==l||t[14]!==f.mutateAsync||t[15]!==r?(p={sessions:r,activeSessions:l,closeSession:f.mutateAsync,openInBrowser:xs},t[13]=l,t[14]=f.mutateAsync,t[15]=r,t[16]=p):p=t[16],p}function xs(t){return Q.OpenURL(`http://localhost:${t}`)}async function Rs(t){return A.ClosePortForwardSession(t)}async function Ds(){return A.ListAllPortForwardSessions().catch(Os)}function Os(t){if(fe(t).detail.includes("not found"))return[];throw t}function Ts(t){const e=M.c(36),{pluginID:s,connectionID:n,resourceID:r}=t,i=U(s);let o;e[0]!==n||e[1]!==i||e[2]!==r?(o=["networker","portforward","sessions",i,n,r],e[0]=n,e[1]=i,e[2]=r,e[3]=o):o=e[3];const c=o,{showSnackbar:l}=ce(),a=O.useQueryClient();let d;e[4]!==n||e[5]!==i||e[6]!==r||e[7]!==l?(d=async()=>A.FindPortForwardSessions(i,n,Ke.FindPortForwardSessionRequest.createFrom({resource_id:r,connection_id:n})).catch(C=>{const I=fe(C);return I.detail.includes("not found")?[]:(l({message:"Failed to fetch port forward sessions",status:"error",details:I.detail}),[])}),e[4]=n,e[5]=i,e[6]=r,e[7]=l,e[8]=d):d=e[8];let u;e[9]!==c||e[10]!==d?(u={queryKey:c,queryFn:d,retry:!1},e[9]=c,e[10]=d,e[11]=u):u=e[11];const f=O.useQuery(u);let p;e[12]!==n||e[13]!==i?(p=async C=>{const{opts:I}=C,R={local_port:I.localPort||0,remote_port:I.remotePort,protocol:I.protocol||"TCP",connection_type:"RESOURCE",connection:{resource_data:I.resource,reference:I.reference,route:I.route,connection_id:n,plugin_id:i,resource_id:I.resourceId,resource_key:I.resourceKey},labels:I.labels??{},params:I.parameters??{}},D=await A.StartResourcePortForwardingSession(i,n,R);if(!D)throw new Error("Failed to start port forwarding: null response");return I.openInBrowser&&Q.OpenURL(`http://localhost:${D.local_port}`),D},e[12]=n,e[13]=i,e[14]=p):p=e[14];let v;e[15]!==l?(v=se(l,"Failed to start port forwarding session"),e[15]=l,e[16]=v):v=e[16];let h;e[17]!==a||e[18]!==c?(h=async()=>{await Promise.all([a.invalidateQueries({queryKey:c}),a.invalidateQueries({queryKey:[..._e]})])},e[17]=a,e[18]=c,e[19]=h):h=e[19];let g;e[20]!==p||e[21]!==v||e[22]!==h?(g={mutationFn:p,onError:v,onSuccess:h},e[20]=p,e[21]=v,e[22]=h,e[23]=g):g=e[23];const m=O.useMutation(g);let y;e[24]!==l?(y=se(l,"Failed to close port forwarding session"),e[24]=l,e[25]=y):y=e[25];let S;e[26]!==a||e[27]!==c?(S=async()=>{await Promise.all([a.invalidateQueries({queryKey:c}),a.invalidateQueries({queryKey:[..._e]})])},e[26]=a,e[27]=c,e[28]=S):S=e[28];let b;e[29]!==y||e[30]!==S?(b={mutationFn:Ns,onError:y,onSuccess:S},e[29]=y,e[30]=S,e[31]=b):b=e[31];const w=O.useMutation(b);let x;return e[32]!==w.mutateAsync||e[33]!==m.mutateAsync||e[34]!==f?(x={sessions:f,forward:m.mutateAsync,close:w.mutateAsync},e[32]=w.mutateAsync,e[33]=m.mutateAsync,e[34]=f,e[35]=x):x=e[35],x}async function Ns(t){const{opts:e}=t;return A.ClosePortForwardSession(e.sessionID)}const ks=()=>{const t=E.useContext(Bt);if(!t)throw new Error("useConfirmationModal must be used within a ConfirmationModalProvider");return t},Ps=t=>{const e=M.c(31),{pluginID:s,request:n,enabled:r}=t,i=r===void 0?!0:r,o=U(s),c=n?.request.route.connection??"",l=i&&!!n;let a;e[0]!==c||e[1]!==o||e[2]!==l?(a={pluginID:o,connectionID:c,enabled:l},e[0]=c,e[1]=o,e[2]=l,e[3]=a):a=e[3];const d=oe(a),u=ae(o,c),f=O.useQueryClient(),{showSnackbar:p}=ce();let v;e[4]!==o||e[5]!==n?(v=be.resource(o,n),e[4]=o,e[5]=n,e[6]=v):v=e[6];const h=v,g=i&&!!n&&d.phase==="connected";let m;e[7]!==o||e[8]!==n?(m=async D=>{if(!n)throw new Error("Resource target is not resolved");return await Fe(o,n.request.route.connection),A.Mutate(o,{...D,route:n.request.route,reference:n.request.reference})},e[7]=o,e[8]=n,e[9]=m):m=e[9];let y;e[10]!==o||e[11]!==f?(y=async()=>{await f.invalidateQueries({queryKey:be.all(o)})},e[10]=o,e[11]=f,e[12]=y):y=e[12];let S;e[13]!==p?(S=se(p,"Failed to mutate resource"),e[13]=p,e[14]=S):S=e[14];let b;e[15]!==m||e[16]!==y||e[17]!==S?(b={mutationFn:m,onSuccess:y,onError:S},e[15]=m,e[16]=y,e[17]=S,e[18]=b):b=e[18];const{mutateAsync:w}=O.useMutation(b);let x;e[19]!==u||e[20]!==o||e[21]!==g||e[22]!==n?(x=g?D=>{const{signal:L,queryKey:N}=D;return u(N,L,()=>A.Get$1(o,n))}:O.skipToken,e[19]=u,e[20]=o,e[21]=g,e[22]=n,e[23]=x):x=e[23];let C;e[24]!==g||e[25]!==h||e[26]!==x?(C={queryKey:h,queryFn:x,retry:!1,enabled:g},e[24]=g,e[25]=h,e[26]=x,e[27]=C):C=e[27];const I=O.useQuery(C);let R;return e[28]!==w||e[29]!==I?(R={resource:I,mutate:w},e[28]=w,e[29]=I,e[30]=R):R=e[30],R},As=t=>{const e=M.c(11);let s;e[0]!==t.area||e[1]!==t.plugin||e[2]!==t.resource?(s=["component",t.plugin,t.resource,t.area],e[0]=t.area,e[1]=t.plugin,e[2]=t.resource,e[3]=s):s=e[3];const n=s;let r;e[4]!==t?(r=async()=>A.GetResourceAreaComponent(t),e[4]=t,e[5]=r):r=e[5];let i;e[6]!==n||e[7]!==r?(i={queryKey:n,queryFn:r},e[6]=n,e[7]=r,e[8]=i):i=e[8];const o=O.useQuery(i);let c;return e[9]!==o?(c={component:o},e[9]=o,e[10]=c):c=e[10],c},Ls=t=>{const e=M.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=U(s);let c;e[0]!==i||e[1]!==o||e[2]!==n.connection?(c={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=c):c=e[3];const l=oe(c),a=ae(o,n.connection),d=i&&!!o&&!!n.connection&&l.phase==="connected";let u;e[4]!==o||e[5]!==n?(u=[o,"resource-v2","groups",n],e[4]=o,e[5]=n,e[6]=u):u=e[6];let f;e[7]!==a||e[8]!==o||e[9]!==d||e[10]!==n?(f=d?g=>{const{signal:m,queryKey:y}=g;return a(y,m,()=>A.GetResourceGroups(o,n))}:O.skipToken,e[7]=a,e[8]=o,e[9]=d,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==d||e[13]!==u||e[14]!==f?(p={queryKey:u,queryFn:f,enabled:d,retry:!1},e[12]=d,e[13]=u,e[14]=f,e[15]=p):p=e[15];const v=O.useQuery(p);let h;return e[16]!==v?(h={groups:v},e[16]=v,e[17]=h):h=e[17],h},Fs=t=>{const e=M.c(28),{pluginID:s,searches:n,enabled:r}=t,i=r===void 0?!0:r,o=U(s);let c;e[0]!==i||e[1]!==n?(c=JSON.stringify(i?[...new Set(n.map(qs))].sort():[]),e[0]=i,e[1]=n,e[2]=c):c=e[2];const l=c;let a;if(e[3]!==l||e[4]!==o){const y=JSON.parse(l);let S;e[6]!==o?(S=b=>[b,ze(o,b)],e[6]=o,e[7]=S):S=e[7],a=new Map(y.map(S)),e[3]=l,e[4]=o,e[5]=a}else a=e[5];const d=a;let u,f;e[8]!==d?(u=()=>JSON.stringify([...d.values()].map(Ms)),f=y=>{const S=[...d.values()].map(b=>b.subscribe(y));return()=>{for(const b of S)b()}},e[8]=d,e[9]=u,e[10]=f):(u=e[9],f=e[10]);let p;e[11]!==d||e[12]!==u||e[13]!==f?(p={stores:d,getSnapshot:u,subscribe:f},e[11]=d,e[12]=u,e[13]=f,e[14]=p):p=e[14];const v=p;E.useSyncExternalStore(v.subscribe,v.getSnapshot,v.getSnapshot);const h=ae(o,"");let g;if(e[15]!==i||e[16]!==h||e[17]!==o||e[18]!==v.stores||e[19]!==n){let y;e[21]!==i||e[22]!==h||e[23]!==o||e[24]!==v.stores?(y=S=>{const b=S.request.target.route.connection,w=i&&v.stores.get(b)?.getSnapshot().phase==="connected";return{queryKey:be.nativeQuery(o,S),queryFn:w?x=>{const{signal:C,queryKey:I}=x;return h(I,C,()=>A.NativeQuery(o,S),b)}:O.skipToken,retry:!1,enabled:w}},e[21]=i,e[22]=h,e[23]=o,e[24]=v.stores,e[25]=y):y=e[25],g=n.map(y),e[15]=i,e[16]=h,e[17]=o,e[18]=v.stores,e[19]=n,e[20]=g}else g=e[20];let m;return e[26]!==g?(m={queries:g},e[26]=g,e[27]=m):m=e[27],O.useQueries(m)};function qs(t){return t.request.target.route.connection}function Ms(t){return t.getSnapshot().phase}const js=t=>{const e=M.c(21),{pluginID:s,route:n,type:r}=t,i=U(s),o=!!r;let c;e[0]!==i||e[1]!==n.connection||e[2]!==o?(c={pluginID:i,connectionID:n.connection,enabled:o},e[0]=i,e[1]=n.connection,e[2]=o,e[3]=c):c=e[3];const l=oe(c),a=ae(i,n.connection),d=!!i&&!!n.connection&&!!r&&l.phase==="connected";let u;e[4]!==i||e[5]!==n?(u=[i,"resource-v2","catalog",n],e[4]=i,e[5]=n,e[6]=u):u=e[6];let f;e[7]!==a||e[8]!==i||e[9]!==d||e[10]!==n?(f=d?m=>{const{signal:y,queryKey:S}=m;return a(S,y,()=>A.Catalog(i,{route:n}))}:O.skipToken,e[7]=a,e[8]=i,e[9]=d,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==r?(p=m=>m.types.find(y=>y.type===r),e[12]=r,e[13]=p):p=e[13];let v;e[14]!==d||e[15]!==u||e[16]!==f||e[17]!==p?(v={queryKey:u,queryFn:f,select:p,enabled:d,retry:!1},e[14]=d,e[15]=u,e[16]=f,e[17]=p,e[18]=v):v=e[18];const h=O.useQuery(v);let g;return e[19]!==h?(g={resourceType:h},e[19]=h,e[20]=g):g=e[20],g},$s=t=>{const e=M.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=U(s);let c;e[0]!==i||e[1]!==o||e[2]!==n.connection?(c={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=c):c=e[3];const l=oe(c),a=ae(o,n.connection),d=i&&!!o&&!!n.connection&&l.phase==="connected";let u;e[4]!==o||e[5]!==n?(u=[o,"resource-v2","catalog",n],e[4]=o,e[5]=n,e[6]=u):u=e[6];let f;e[7]!==a||e[8]!==o||e[9]!==d||e[10]!==n?(f=d?g=>{const{signal:m,queryKey:y}=g;return a(y,m,()=>A.Catalog(o,{route:n}))}:O.skipToken,e[7]=a,e[8]=o,e[9]=d,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==d||e[13]!==u||e[14]!==f?(p={queryKey:u,queryFn:f,select:Ws,enabled:d,retry:!1},e[12]=d,e[13]=u,e[14]=f,e[15]=p):p=e[15];const v=O.useQuery(p);let h;return e[16]!==v?(h={resourceTypes:v},e[16]=v,e[17]=h):h=e[17],h};function Ws(t){return t.types}function dt(t,e,s=!1,n=!1){if(!t||!e.length&&!s)return t;if(n){const a=new Map(t.records.map(d=>[d.key,d]));for(const d of e)d.type==="DELETE"?a.delete(d.payload.key):a.set(d.payload.record.key,d.payload.record);return{records:[...a.values()],sourcePage:t.sourcePage,view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:!1}}}let r;const i=e.length>1?new Map(t.records.map((a,d)=>[a.key,d])):void 0,o=new Set;let c=t.view?.membershipStale===!0||s;for(const a of e){const d=a.type==="DELETE"?a.payload.key:a.payload.record.key,u=i?i.get(d)??-1:t.records.findIndex(f=>f.key===d);a.type==="DELETE"?(u!==-1&&o.add(u),c=!0):u===-1||o.has(u)?c=!0:(r??t.records)[u]!==a.payload.record&&(r??=[...t.records],r[u]=a.payload.record)}if(!r&&!o.size&&t.view?.membershipStale===c&&t.view.guarantee==="bestEffort"&&t.view.count.kind==="unknown"&&t.view.sourceRevision===void 0)return t;const l=r??t.records;return{records:o.size?l.filter((a,d)=>!o.has(d)):l,sourcePage:t.sourcePage,view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:c}}}function un(t,e,s,n){const r=M.c(36);let i;r[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Map,r[0]=i):i=r[0];const o=E.useRef(i),c=E.useRef(!1),l=E.useRef(void 0),a=E.useRef(void 0),d=E.useRef(s),u=n?.enabled??!0,f=n?.isCurrent,p=n?.collection??!1;let v;r[1]!==p||r[2]!==u||r[3]!==f||r[4]!==t||r[5]!==e?(v={queryClient:t,queryKey:e,enabled:u,isCurrent:f,collection:p},r[1]=p,r[2]=u,r[3]=f,r[4]=t,r[5]=e,r[6]=v):v=r[6];const h=v,g=E.useRef(void 0);let m;r[7]!==u||r[8]!==f||r[9]!==h?(m=()=>g.current===h&&u&&(!f||f()),r[7]=u,r[8]=f,r[9]=h,r[10]=m):m=r[10];const y=m;let S,b;r[11]!==s?(S=()=>{d.current=s},b=[s],r[11]=s,r[12]=S,r[13]=b):(S=r[12],b=r[13]),E.useLayoutEffect(S,b);const w=n?.syncWindowMs??500;let x;r[14]!==p||r[15]!==y||r[16]!==t||r[17]!==e||r[18]!==h?(x=()=>{if(g.current!==h)return;if(window.clearTimeout(l.current),a.current!==void 0&&cancelAnimationFrame(a.current),l.current=void 0,a.current=void 0,!y()){o.current.clear(),c.current=!1;return}if(!o.current.size&&!c.current||!t.getQueryData(e)||p&&t.getQueryState(e)?.fetchStatus==="fetching")return;const N=[...o.current.values()],W=c.current;o.current.clear(),c.current=!1;const _=t.getQueryCache().find({queryKey:e,exact:!0});p&&_?.state.status==="error"?_.setState({data:y()?dt(_.state.data,N,W,p):_.state.data}):t.setQueryData(e,k=>y()?dt(k,N,W,p):k);for(const k of N){if(!y())return;k.type==="DELETE"?t.invalidateQueries({queryKey:[e[0],"resource-v2","get"],predicate:P=>y()&&P.state.data?.key===k.payload.key}):t.setQueriesData({queryKey:[e[0],"resource-v2","get"]},P=>y()&&P?.key===k.payload.record.key?k.payload.record:P)}},r[14]=p,r[15]=y,r[16]=t,r[17]=e,r[18]=h,r[19]=x):x=r[19];const C=x;let I;r[20]!==p||r[21]!==y||r[22]!==C||r[23]!==t||r[24]!==e||r[25]!==w?(I=N=>{if(!y())return;const W=N.type==="DELETE"?N.payload.key:N.payload.record.key,_=t.getQueryData(e);p||_?.records.some(k=>k.key===W)?o.current.set(W,N):c.current=!0,!p&&N.type==="DELETE"&&(c.current=!0),!(l.current!==void 0||a.current!==void 0)&&(l.current=window.setTimeout(C,w),d.current!==G.WatchState.WatchStateSyncing&&(a.current=requestAnimationFrame(C)))},r[20]=p,r[21]=y,r[22]=C,r[23]=t,r[24]=e,r[25]=w,r[26]=I):I=r[26];const R=I;let D,L;return r[27]!==p||r[28]!==y||r[29]!==u||r[30]!==C||r[31]!==t||r[32]!==e||r[33]!==h?(D=()=>{if(!u)return;g.current=h;const N=o.current,W=t.getQueryCache().subscribe(_=>{!y()||_.type!=="updated"||_.query.queryHash!==O.hashKey(e)||(_.action.type==="fetch"?(N.clear(),c.current=!1):(_.action.type==="success"||p&&_.action.type==="error")&&C())});return()=>{g.current=void 0,W(),window.clearTimeout(l.current),a.current!==void 0&&cancelAnimationFrame(a.current),N.clear(),c.current=!1,l.current=void 0,a.current=void 0}},L=[t,e,C,u,h,y,p],r[27]=p,r[28]=y,r[29]=u,r[30]=C,r[31]=t,r[32]=e,r[33]=h,r[34]=D,r[35]=L):(D=r[34],L=r[35]),E.useLayoutEffect(D,L),R}const Qs={getSnapshot:()=>{},subscribe:()=>()=>{}},Us=({pluginID:t,request:e,enabled:s=!0,live:n=!0,collection:r=!1})=>{const i=U(t),o=O.useQueryClient(),{showSnackbar:c}=ce(),l=E.useRef(c);E.useLayoutEffect(()=>{l.current=c},[c]);const a=O.hashKey([e]),[d,u]=E.useState({hash:a,request:e});d.hash!==a&&u({hash:a,request:e});const f=d.hash===a?d.request:e,p=f?.request.target.route.connection??"",v=s&&!!f,h=oe({pluginID:i,connectionID:p,enabled:v}),g=E.useMemo(()=>v?{subscribe:ze(i,p).subscribe,getSnapshot:()=>at(i,p)}:Qs,[i,p,v]),m=E.useSyncExternalStore(g.subscribe,g.getSnapshot,g.getSnapshot),y=ae(i,p),S=v&&h.phase==="connected",b=f?O.hashKey([i,f.targetId,f.request.target,r]):void 0,w=E.useCallback(K=>r?[...be.list(i,K),"collection"]:be.list(i,K),[i,r]),x=E.useCallback(async(K,ee,le)=>{if(!r)return y(le,ee,()=>A.Enumerate(i,K));const he=at(i,p),ye=new Map,me=new Set;let ne,ue;do{if(ee.aborted||he===void 0||!Pe(i,p,he))throw new O.CancelledError({revert:!0});const pe=await y(le,ee,()=>A.Enumerate(i,{...K,request:{...K.request,cursor:ne}}));if(ee.aborted||!Pe(i,p,he))throw new O.CancelledError({revert:!0});ue??=pe;for(const Ie of pe.records){if(Ie.targetId!==K.targetId)throw new Error("Collection page returned a different resource target");ye.set(Ie.key,Ie)}if(ne=pe.sourcePage.nextCursor,ne){if(me.has(ne))throw new Error("Collection enumeration repeated a source cursor");me.add(ne)}}while(ne);return{records:[...ye.values()],sourcePage:{...ue.sourcePage,nextCursor:void 0,count:{kind:"unknown"},sourceRevision:void 0},view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:!1}}},[r,y,i,p]),C=E.useMemo(()=>w(f),[w,f]),I=O.useQuery({queryKey:C,queryFn:S?({signal:K,queryKey:ee})=>x(f,K,ee):O.skipToken,enabled:S,retry:!1,gcTime:0,placeholderData:void 0}),[R,D]=E.useState();let L=R;b&&f&&I.isSuccess&&I.data?(R?.identity!==b||R.requestHash!==a)&&(L={identity:b,requestHash:a,request:f},D(L)):R&&R.identity!==b&&(L=void 0,D(void 0));const N=b&&L?.identity===b?L.request:void 0,W=E.useMemo(()=>w(N),[w,N]),_=O.useQuery({queryKey:W,queryFn:S&&N?({signal:K,queryKey:ee})=>x(N,K,ee):O.skipToken,enabled:!1,retry:!1,gcTime:0,placeholderData:void 0}),k=E.useMemo(()=>N&&_.data?{request:N,page:_.data}:void 0,[N,_.data]),P=S&&n&&!!N,$=E.useMemo(()=>({pluginID:i,acquiredRequest:N,generation:m,enabled:P}),[i,N,m,P]),[F,q]=E.useState(),j=P&&F?.scope===$?F.state:G.WatchState.WatchStateIdle,J=P&&F?.scope===$?F.error:void 0,H=P&&F?.scope===$&&F.live,X=E.useCallback(()=>m!==void 0&&Pe(i,p,m),[i,p,m]),Z=un(o,W,j,{enabled:P,isCurrent:X,collection:r}),z=E.useRef(Promise.resolve());E.useEffect(()=>{if(!P||!N)return;const K=N.request.target,ee={targetId:N.targetId,target:K};let le=!0,he=!1,ye=!1,me;const ne=()=>le&&m!==void 0&&Pe(i,p,m),ue=te=>{ne()&&q(re=>({state:G.WatchState.WatchStateIdle,live:!1,...re?.scope===$?re:{},...te,scope:$}))},pe=`${i}/${K.route.connection}/${K.type}`,Ie=[Q.On(`${pe}/ADD`,te=>{const re=te.data;ne()&&re.record.targetId===ee.targetId&&Z({type:"ADD",payload:re})}),Q.On(`${pe}/UPDATE`,te=>{const re=te.data;ne()&&re.record.targetId===ee.targetId&&Z({type:"UPDATE",payload:re})}),Q.On(`${pe}/DELETE`,te=>{const re=te.data;ne()&&re.targetId===ee.targetId&&Z({type:"DELETE",payload:re})}),Q.On(`${i}/${K.route.connection}/watch/STATE`,te=>{const re=te.data;!ne()||re.type!==K.type||re.route.connection!==K.route.connection||(ye=!0,ue({state:re.state,error:re.error}))})],Rt=()=>{for(const te of Ie)te()},Dt=A.GetWatchState(i,K.route);Dt.then(te=>{!ye&&te?.resources[K.type]!==void 0&&ue({state:te.resources[K.type]})}).catch(te=>ue({error:te}));const Ot=z.current.then(async()=>{ne()&&(await A.SubscribeResource(i,ee),he=!0,ne()&&(me=A.EnsureResourceWatch(i,K),await me,ue({live:!0})))}).catch(te=>{Rt(),ue({error:te,state:G.WatchState.WatchStateError,live:!1}),ne()&&Ce(l.current,te,"Failed to subscribe to resource updates")});return z.current=Ot,()=>{le=!1,Rt(),Dt.cancel(),me?.cancel(),z.current=Ot.then(async()=>{he&&await A.UnsubscribeResource(i,ee)}).catch(te=>{Ce(l.current,te,"Failed to unsubscribe from resource updates")})}},[i,p,N,P,m,$,Z]);const V=k!==void 0;return{resources:I,acquired:k,isAcquiredRequestCurrent:V&&L?.requestHash===a,refreshAcquiredPage:_.refetch,view:k?.page.view,membershipStale:k?.page.view?.membershipStale??!1,watchState:V?j:G.WatchState.WatchStateIdle,isLive:V&&H,isSyncing:V&&j===G.WatchState.WatchStateSyncing,isSynced:V&&j===G.WatchState.WatchStateSynced,watchError:V?J??(j===G.WatchState.WatchStateError||j===G.WatchState.WatchStateFailed||j===G.WatchState.WatchStateForbidden?!0:void 0):void 0,guarantee:V&&H?"bestEffort":void 0}},Ks=t=>{const e=M.c(13),{pluginID:s}=t,n=U(s),r=O.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=async f=>(await Fe(n,f.route.connection),A.Mutate(n,f)),e[0]=n,e[1]=o):o=e[1];let c;e[2]!==n||e[3]!==r?(c=async()=>{await r.invalidateQueries({queryKey:be.all(n)})},e[2]=n,e[3]=r,e[4]=c):c=e[4];let l;e[5]!==i?(l=se(i,"Failed to mutate resource"),e[5]=i,e[6]=l):l=e[6];let a;e[7]!==o||e[8]!==c||e[9]!==l?(a={mutationFn:o,onSuccess:c,onError:l},e[7]=o,e[8]=c,e[9]=l,e[10]=a):a=e[10];const d=O.useMutation(a);let u;return e[11]!==d?(u={mutate:d.mutateAsync,mutation:d},e[11]=d,e[12]=u):u=e[12],u},Gs=t=>{const e=M.c(25),{pluginID:s,route:n,type:r,enabled:i}=t,o=i===void 0?!0:i,c=U(s),l=n.connection,a=o&&!!r;let d;e[0]!==l||e[1]!==c||e[2]!==a?(d={pluginID:c,connectionID:l,enabled:a},e[0]=l,e[1]=c,e[2]=a,e[3]=d):d=e[3];const u=oe(d),f=ae(c,l);let p;e[4]!==c||e[5]!==n||e[6]!==r?(p=[c,"resource-v2","actions",n,r],e[4]=c,e[5]=n,e[6]=r,e[7]=p):p=e[7];let v;e[8]!==o||e[9]!==f||e[10]!==c||e[11]!==u||e[12]!==n||e[13]!==r?(v=o&&r&&u.phase==="connected"?b=>{const{signal:w,queryKey:x}=b;return f(x,w,()=>A.GetActions(c,n,r))}:O.skipToken,e[8]=o,e[9]=f,e[10]=c,e[11]=u,e[12]=n,e[13]=r,e[14]=v):v=e[14];const h=o&&!!c&&!!n.connection&&!!r&&u.phase==="connected";let g;e[15]!==p||e[16]!==v||e[17]!==h?(g={queryKey:p,queryFn:v,enabled:h,staleTime:3e5},e[15]=p,e[16]=v,e[17]=h,e[18]=g):g=e[18];const m=O.useQuery(g);let y;e[19]!==m.data?(y=m.data??[],e[19]=m.data,e[20]=y):y=e[20];let S;return e[21]!==m.error||e[22]!==m.isLoading||e[23]!==y?(S={actions:y,isLoading:m.isLoading,error:m.error},e[21]=m.error,e[22]=m.isLoading,e[23]=y,e[24]=S):S=e[24],S},Bs=t=>{const e=M.c(15),{pluginID:s}=t,n=U(s),r=O.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=async f=>(await Fe(n,f.route.connection),A.Action(n,f)),e[0]=n,e[1]=o):o=e[1];let c;e[2]!==n||e[3]!==r?(c=async()=>{await r.invalidateQueries({queryKey:be.all(n)})},e[2]=n,e[3]=r,e[4]=c):c=e[4];let l;e[5]!==i?(l=(f,p)=>{Ce(i,f,`Failed to execute action "${p.action}"`)},e[5]=i,e[6]=l):l=e[6];let a;e[7]!==o||e[8]!==c||e[9]!==l?(a={mutationFn:o,onSuccess:c,onError:l},e[7]=o,e[8]=c,e[9]=l,e[10]=a):a=e[10];const d=O.useMutation(a);let u;return e[11]!==d.error||e[12]!==d.isPending||e[13]!==d.mutateAsync?(u={executeAction:d.mutateAsync,isExecuting:d.isPending,error:d.error},e[11]=d.error,e[12]=d.isPending,e[13]=d.mutateAsync,e[14]=u):u=e[14],u},zs=t=>{const e=M.c(27),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=U(s),c=O.useQueryClient();let l;e[0]!==i||e[1]!==o||e[2]!==n.connection?(l={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=l):l=e[3];const a=oe(l),d=ae(o,n.connection),u=i&&!!o&&!!n.connection&&a.phase==="connected";let f;e[4]!==o||e[5]!==n?(f=[o,"resource-v2","editor-schemas",n],e[4]=o,e[5]=n,e[6]=f):f=e[6];let p;e[7]!==d||e[8]!==o||e[9]!==c||e[10]!==u||e[11]!==n?(p=u?S=>{const{signal:b,queryKey:w}=S;return d(w,b,async()=>{const x=await d(w,b,()=>A.GetEditorSchemas(o,n)),C=[],I=new Set;for(const R of x){const D=R.binding.documentRef;if(!D)continue;const L=JSON.stringify([D.id,D.revision]);I.has(L)||(C.push(await c.fetchQuery({queryKey:[o,"resource-v2","schema-document",n,D],queryFn:N=>{const{signal:W,queryKey:_}=N;return d(_,AbortSignal.any([b,W]),()=>A.GetSchemaDocument(o,n,D))},staleTime:1/0})),I.add(L))}return{schemas:x,documents:C}})}:O.skipToken,e[7]=d,e[8]=o,e[9]=c,e[10]=u,e[11]=n,e[12]=p):p=e[12];let v;e[13]!==u||e[14]!==f||e[15]!==p?(v={queryKey:f,queryFn:p,enabled:u,staleTime:6e5,retry:1},e[13]=u,e[14]=f,e[15]=p,e[16]=v):v=e[16];const h=O.useQuery(v);let g;e[17]!==h.data?.schemas?(g=h.data?.schemas??[],e[17]=h.data?.schemas,e[18]=g):g=e[18];let m;e[19]!==h.data?.documents?(m=h.data?.documents??[],e[19]=h.data?.documents,e[20]=m):m=e[20];let y;return e[21]!==h.error||e[22]!==h.isLoading||e[23]!==h.refetch||e[24]!==g||e[25]!==m?(y={schemas:g,documents:m,isLoading:h.isLoading,error:h.error,refetch:h.refetch},e[21]=h.error,e[22]=h.isLoading,e[23]=h.refetch,e[24]=g,e[25]=m,e[26]=y):y=e[26],y};function Lt(t){const e=Object.values(t.resources);return{...t,totalResources:e.length,syncedCount:e.filter(s=>s===G.WatchState.WatchStateSynced).length,errorCount:e.filter(s=>s===G.WatchState.WatchStateError||s===G.WatchState.WatchStateFailed).length}}const Js=t=>{const e=M.c(38),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=U(s),c=O.useQueryClient(),l=n.connection;let a;e[0]!==l?(a={connection:l},e[0]=l,e[1]=a):a=e[1];let d;e[2]!==o||e[3]!==a?(d=[o,"resource-v2","watch-state",a],e[2]=o,e[3]=a,e[4]=d):d=e[4];const u=d;let f;e[5]===Symbol.for("react.memo_cache_sentinel")?(f=[],e[5]=f):f=e[5];const p=E.useRef(f),v=E.useRef(!1);let h;e[6]!==c||e[7]!==u?(h=F=>{c.setQueryData(u,q=>q&&Lt({...q,resources:{...q.resources,[F.type]:F.state},resourceCounts:{...q.resourceCounts,[F.type]:F.count}}))},e[6]=c,e[7]=u,e[8]=h):h=e[8];const g=h;let m;e[9]!==l||e[10]!==o?(m=async()=>{const F=await A.GetWatchState(o,{connection:l});if(!F)throw new Error("Failed to get watch state: null response");return Lt(F)},e[9]=l,e[10]=o,e[11]=m):m=e[11];const y=i&&!!o&&!!l;let S;e[12]!==u||e[13]!==m||e[14]!==y?(S={queryKey:u,queryFn:m,enabled:y,refetchInterval:Vs},e[12]=u,e[13]=m,e[14]=y,e[15]=S):S=e[15];const b=O.useQuery(S);let w,x;e[16]!==g||e[17]!==l||e[18]!==i||e[19]!==o?(x=()=>{if(v.current=!1,p.current=[],!i||!l)return;const F=Q.On(`${o}/${l}/watch/STATE`,q=>{const j=q.data;j.route.connection===l&&(v.current?g(j):p.current.push(j))});return()=>{F(),v.current=!1,p.current=[]}},w=[o,l,i,g],e[16]=g,e[17]=l,e[18]=i,e[19]=o,e[20]=w,e[21]=x):(w=e[20],x=e[21]),E.useEffect(x,w);let C,I;e[22]!==g||e[23]!==b.data?(C=()=>{if(!b.data||v.current)return;v.current=!0;const F=p.current;p.current=[];for(const q of F)g(q)},I=[b.data,g],e[22]=g,e[23]=b.data,e[24]=C,e[25]=I):(C=e[24],I=e[25]),E.useEffect(C,I);let R;e[26]!==b.data?.resources?(R=Object.values(b.data?.resources??{}),e[26]=b.data?.resources,e[27]=R):R=e[27];const D=R;let L;e[28]!==D?(L=D.filter(Ys),e[28]=D,e[29]=L):L=e[29];const N=L.length;let W;e[30]!==b.data?.resources?(W=F=>b.data?.resources[F],e[30]=b.data?.resources,e[31]=W):W=e[31];const _=D.length>0&&N===D.length,k=D.length?N/D.length:0,P=b.data?.errorCount??0;let $;return e[32]!==b||e[33]!==W||e[34]!==_||e[35]!==k||e[36]!==P?($={summary:b,getResourceState:W,isFullySynced:_,syncProgress:k,errorCount:P,guarantee:"bestEffort"},e[32]=b,e[33]=W,e[34]=_,e[35]=k,e[36]=P,e[37]=$):$=e[37],$};function Hs(t){return t!==G.WatchState.WatchStateIdle&&t!==G.WatchState.WatchStateSyncing}function Vs(t){const e=Object.values(t.state.data?.resources??{});return e.length&&e.every(Hs)?!1:3e3}function Ys(t){return t!==G.WatchState.WatchStateIdle&&t!==G.WatchState.WatchStateSyncing}const Xs=()=>{const t=M.c(16);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=new Map,t[0]=e):e=t[0];const[s,n]=E.useState(e);let r;t[1]===Symbol.for("react.memo_cache_sentinel")?(r=new Map,t[1]=r):r=t[1];const i=E.useRef(r);let o;t[2]===Symbol.for("react.memo_cache_sentinel")?(o=new Map,t[2]=o):o=t[2];const c=E.useRef(o);let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=y=>{const S=y.data,b=It(S.pluginID,S),w=ut(i.current,S.pluginID,S),x=lt(w);if(n(C=>{const I=new Map(C);return I.set(b,x),I}),c.current.has(b)&&(clearTimeout(c.current.get(b)),c.current.delete(b)),Je(x)){const C=setTimeout(()=>{n(I=>{const R=new Map(I);return R.delete(b),R}),i.current.delete(b),c.current.delete(b)},5e3);c.current.set(b,C)}},t[3]=l):l=t[3];const a=l;let d,u;t[4]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{const y=c.current,S=Q.On("watch/STATE",a);return()=>{S();for(const b of y.values())clearTimeout(b);y.clear()}},u=[a],t[4]=d,t[5]=u):(d=t[4],u=t[5]),E.useEffect(d,u);let f,p,v,h;t[6]!==s?(v=Array.from(s.values()),f=sn(v),p=v.find(Zs)??v[0]??null,h=rn(v),t[6]=s,t[7]=f,t[8]=p,t[9]=v,t[10]=h):(f=t[7],p=t[8],v=t[9],h=t[10]);const g=h;let m;return t[11]!==g||t[12]!==f||t[13]!==p||t[14]!==v?(m={syncs:v,hasSyncing:f,primarySync:p,aggregateProgress:g},t[11]=g,t[12]=f,t[13]=p,t[14]=v,t[15]=m):m=t[15],m};function Zs(t){return!Je(t)}const dn=()=>{const t=E.useContext(bt);if(!t)throw new Error("useOperations must be used within an OperationsProvider");return t};function Ue(t){switch(t.kind){case"null":return null;case"bool":case"string":case"double":case"timestamp":return t.value;case"int64":case"uint64":{const e=BigInt(t.value);return e>=-9007199254740991n&&e<=9007199254740991n?Number(e):e}case"list":return t.value.map(Ue);case"map":return Object.fromEntries(Object.entries(t.value).map(([e,s])=>[e,Ue(s)]))}}function ft(t){for(let e=0;e<t.length;e++){const s=t.charCodeAt(e);if(s>=55296&&s<=56319){const n=t.charCodeAt(++e);if(!(n>=56320&&n<=57343))throw new TypeError("Resource strings require valid Unicode")}else if(s>=56320&&s<=57343)throw new TypeError("Resource strings require valid Unicode")}return t}function pt(t){const e=BigInt(t);if(e>=-(1n<<63n)&&e<=(1n<<63n)-1n)return{kind:"int64",value:e.toString()};if(e>=0n&&e<=(1n<<64n)-1n)return{kind:"uint64",value:e.toString()};throw new RangeError("Integer exceeds the resource Value range")}function gt(t){if(t===null)return{kind:"null"};if(typeof t=="boolean")return{kind:"bool",value:t};if(typeof t=="string")return{kind:"string",value:ft(t)};if(typeof t=="bigint")return pt(t.toString());if(typeof t=="number"){if(!Number.isFinite(t))throw new TypeError("Resource values require finite numbers");if(Number.isInteger(t)&&!Object.is(t,-0)){if(!Number.isSafeInteger(t))throw new RangeError("Use bigint for exact resource integers");return pt(t.toString())}return{kind:"double",value:t}}if(Array.isArray(t))return{kind:"list",value:t.map(gt)};if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype)return{kind:"map",value:Object.fromEntries(Object.entries(t).map(([e,s])=>[ft(e),gt(s)]))};throw new TypeError("Unsupported resource value")}function ht(t){switch(t.kind){case"null":return"null";case"bool":case"string":case"timestamp":return JSON.stringify(t.value);case"int64":case"uint64":return t.value;case"double":{if(!Number.isFinite(t.value))throw new TypeError("Resource values require finite numbers");if(Object.is(t.value,-0))return"-0.0";const e=JSON.stringify(t.value);return/[.eE]/.test(e)?e:`${e}.0`}case"list":return`[${t.value.map(ht).join(",")}]`;case"map":return`{${Object.entries(t.value).map(([e,s])=>`${JSON.stringify(e)}:${ht(s)}`).join(",")}}`}}function er(t){let e=0;const s=()=>{throw new SyntaxError(`Invalid resource JSON at offset ${e}`)},n=()=>{for(;e<t.length&&/[\t\n\r ]/.test(t[e]);)e++},r=()=>{const c=e++;for(;e<t.length;){const l=t[e++];if(l==="\\"){e++;continue}if(l==='"')return ft(JSON.parse(t.slice(c,e)))}return s()},i=c=>{if(c>64)throw new RangeError("Resource JSON exceeds maximum depth");n();const l=t[e];if(l==='"')return{kind:"string",value:r()};if(l==="["){e++,n();const u=[];if(t[e]==="]")return e++,{kind:"list",value:u};for(;e<t.length;){if(u.push(i(c+1)),n(),t[e]==="]")return e++,{kind:"list",value:u};if(t[e++]!==",")return s()}return s()}if(l==="{"){e++,n();const u=[],f=new Set;if(t[e]==="}")return e++,{kind:"map",value:{}};for(;e<t.length;){if(n(),t[e]!=='"')return s();const p=r();if(f.has(p))throw new SyntaxError(`Duplicate resource JSON key: ${p}`);if(f.add(p),n(),t[e++]!==":")return s();if(u.push([p,i(c+1)]),n(),t[e]==="}")return e++,{kind:"map",value:Object.fromEntries(u)};if(t[e++]!==",")return s()}return s()}for(const[u,f]of[["null",{kind:"null"}],["true",{kind:"bool",value:!0}],["false",{kind:"bool",value:!1}]])if(t.startsWith(u,e))return e+=u.length,f;const a=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(t.slice(e));if(!a)return s();if(e+=a[0].length,!/[.eE]/.test(a[0])&&a[0]!=="-0")return pt(a[0]);const d=Number(a[0]);if(!Number.isFinite(d))throw new RangeError("Resource JSON number must be finite");return{kind:"double",value:d}},o=i(0);return n(),e!==t.length?s():o}const tr=({pluginID:t})=>{const e=U(t),{showSnackbar:s}=ce(),{addOperation:n,updateOperation:r}=dn(),i=E.useRef(new Set),o=E.useCallback((a,d=!1)=>{a.disposed||(a.disposed=!0,a.unsubscribe?.(),a.open?.cancel(),a.attach?.cancel(),a.handle&&(A.CancelStreamAction(a.handle).catch(()=>{}),d&&r(a.handle,{status:"cancelled",message:"Cancelled",completedAt:Date.now()})),i.current.delete(a))},[r]);E.useEffect(()=>()=>{for(const a of i.current)o(a,!0)},[e,o]);const c=E.useCallback(async({request:a,label:d})=>{const u={disposed:!1,terminal:!1,sequence:0};i.current.add(u);try{if(await Fe(e,a.route.connection),u.disposed)throw new Error("Stream action was cancelled before the connection became ready");u.open=A.StreamAction(e,a);const f=await u.open;if(u.open=void 0,u.disposed)return A.CancelStreamAction(f).catch(()=>{}),f;u.handle=f,n({id:f,label:d,resourceKey:a.typeTarget?.type??a.reference?.address.type??"",resourceName:a.reference?.address.id??"",connectionID:a.route.connection,status:"running",startedAt:Date.now()});const p=h=>{if(u.disposed||!Number.isSafeInteger(h.sequence)||h.sequence<=u.sequence)return;u.sequence=h.sequence;const g=h.event,m=g.data?Ue(g.data):void 0,y=m&&typeof m=="object"&&!Array.isArray(m)?m:{};if(g.type==="error"){u.terminal=!0;const S=fe(g.error);r(f,{status:Le(S)?"cancelled":"error",message:S.title,completedAt:Date.now()}),Ce(s,S,d),o(u)}else if(g.type==="complete"){u.terminal=!0;const S=typeof y.message=="string"?y.message:`${d} completed`;r(f,{status:"completed",message:S,completedAt:Date.now()}),s(S,"success"),o(u)}else r(f,{message:typeof y.message=="string"?y.message:void 0,progress:(typeof y.ready=="number"||typeof y.ready=="bigint")&&(typeof y.desired=="number"||typeof y.desired=="bigint")?{ready:Number(y.ready),desired:Number(y.desired)}:void 0})};u.unsubscribe=Q.On(`action/stream/${f}`,h=>p(h.data)),u.attach=A.AttachStreamAction(f);const v=await u.attach;return u.attach=void 0,p(v),f}catch(f){if(u.terminal&&u.handle)return u.handle;throw u.disposed||(u.handle&&r(u.handle,{status:Le(f)?"cancelled":"error",message:fe(f).title,completedAt:Date.now()}),Ce(s,f,`Failed to start "${a.action}"`)),o(u),f}},[e,n,r,s,o]),l=E.useCallback(a=>{for(const d of i.current)if(d.handle===a){o(d,!0);return}},[o]);return{startStreamAction:c,cancelStreamAction:l}};function fn(t,e){return`${t}/${e}/graph/CHANGED`}function He(t,e,s,n){const r=M.c(16),i=O.useQueryClient(),o=E.useRef(s);let c,l;r[0]!==s?(c=()=>{o.current=s},l=[s],r[0]=s,r[1]=c,r[2]=l):(c=r[1],l=r[2]),E.useLayoutEffect(c,l);let a;r[3]!==s?(a=JSON.stringify(s),r[3]=s,r[4]=a):a=r[4];const d=a;let u;r[5]!==e||r[6]!==n||r[7]!==t||r[8]!==i?(u=()=>{if(!n||!t||!e)return;const p=Q.On(fn(t,e),()=>{i.invalidateQueries({queryKey:o.current,exact:!0})});return()=>{p()}},r[5]=e,r[6]=n,r[7]=t,r[8]=i,r[9]=u):u=r[9];let f;r[10]!==e||r[11]!==n||r[12]!==d||r[13]!==t||r[14]!==i?(f=[i,t,e,d,n],r[10]=e,r[11]=n,r[12]=d,r[13]=t,r[14]=i,r[15]=f):f=r[15],E.useEffect(u,f)}const nr={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 sr(t,e){const s=nr[t];if(s)return s[e];const n=t.replace(/_/g," ");return e==="outgoing"?n:`${n} (incoming)`}function pn(t,e){return e.map(s=>{const n=G.sameGraphNode(s.source,t);return{resource:n?s.target:s.source,type:s.type,direction:n?"outgoing":"incoming",label:s.label}})}const rr=t=>{const e=M.c(38),{pluginID:s,reference:n,route:r,direction:i,relationshipType:o,enabled:c,refetchInterval:l}=t,a=i===void 0?"both":i,d=c===void 0?!0:c,u=l===void 0?!1:l,f=U(s),p=o??null;let v;e[0]!==a||e[1]!==f||e[2]!==n||e[3]!==r||e[4]!==p?(v=["RESOURCE_RELATED",f,n,r,a,p],e[0]=a,e[1]=f,e[2]=n,e[3]=r,e[4]=p,e[5]=v):v=e[5];const h=v,g=d&&!!n.address.id;let m;e[6]!==f||e[7]!==r.connection||e[8]!==g?(m={pluginID:f,connectionID:r.connection,enabled:g},e[6]=f,e[7]=r.connection,e[8]=g,e[9]=m):m=e[9];const y=oe(m),S=ae(f,r.connection),b=d&&!!f&&!!r.connection&&!!n.address.id&&y.phase==="connected";He(f,r.connection,h,b);let w;e[10]!==a||e[11]!==S||e[12]!==f||e[13]!==b||e[14]!==n||e[15]!==o||e[16]!==r?(w=b?L=>{const{signal:N,queryKey:W}=L;return S(W,N,()=>A.GetRelated(f,n,r,a,o??null))}:O.skipToken,e[10]=a,e[11]=S,e[12]=f,e[13]=b,e[14]=n,e[15]=o,e[16]=r,e[17]=w):w=e[17];let x;e[18]!==b||e[19]!==h||e[20]!==u||e[21]!==w?(x={queryKey:h,queryFn:w,enabled:b,refetchInterval:u},e[18]=b,e[19]=h,e[20]=u,e[21]=w,e[22]=x):x=e[22];const C=O.useQuery(x);let I,R;if(e[23]!==f||e[24]!==C.data||e[25]!==n||e[26]!==r){const L={pluginId:f,reference:n};let N;e[29]!==C.data?(N=C.data??[],e[29]=C.data,e[30]=N):N=e[30],I=N,R=pn(L,I),e[23]=f,e[24]=C.data,e[25]=n,e[26]=r,e[27]=I,e[28]=R}else I=e[27],R=e[28];let D;return e[31]!==I||e[32]!==C.error||e[33]!==C.isFetching||e[34]!==C.isLoading||e[35]!==C.refetch||e[36]!==R?(D={related:R,edges:I,isLoading:C.isLoading,isFetching:C.isFetching,error:C.error,refetch:C.refetch},e[31]=I,e[32]=C.error,e[33]=C.isFetching,e[34]=C.isLoading,e[35]=C.refetch,e[36]=R,e[37]=D):D=e[37],D},or=t=>{const e=M.c(27),{pluginID:s,reference:n,route:r,maxDepth:i,enabled:o,refetchInterval:c}=t,l=i===void 0?3:i,a=o===void 0?!0:o,d=c===void 0?!1:c,u=U(s);let f;e[0]!==l||e[1]!==u||e[2]!==n||e[3]!==r?(f=["RESOURCE_DEPENDENCY_TREE",u,n,r,l],e[0]=l,e[1]=u,e[2]=n,e[3]=r,e[4]=f):f=e[4];const p=f,v=a&&!!n.address.id;let h;e[5]!==u||e[6]!==r.connection||e[7]!==v?(h={pluginID:u,connectionID:r.connection,enabled:v},e[5]=u,e[6]=r.connection,e[7]=v,e[8]=h):h=e[8];const g=oe(h),m=ae(u,r.connection),y=a&&!!u&&!!r.connection&&!!n.address.id&&g.phase==="connected";He(u,r.connection,p,y);let S;e[9]!==m||e[10]!==l||e[11]!==u||e[12]!==y||e[13]!==n||e[14]!==r?(S=y?I=>{const{signal:R,queryKey:D}=I;return m(D,R,()=>A.GetDependencyTree(u,n,r,l))}:O.skipToken,e[9]=m,e[10]=l,e[11]=u,e[12]=y,e[13]=n,e[14]=r,e[15]=S):S=e[15];let b;e[16]!==y||e[17]!==p||e[18]!==d||e[19]!==S?(b={queryKey:p,queryFn:S,enabled:y,refetchInterval:d},e[16]=y,e[17]=p,e[18]=d,e[19]=S,e[20]=b):b=e[20];const w=O.useQuery(b),x=w.data??null;let C;return e[21]!==w.error||e[22]!==w.isFetching||e[23]!==w.isLoading||e[24]!==w.refetch||e[25]!==x?(C={tree:x,isLoading:w.isLoading,isFetching:w.isFetching,error:w.error,refetch:w.refetch},e[21]=w.error,e[22]=w.isFetching,e[23]=w.isLoading,e[24]=w.refetch,e[25]=x,e[26]=C):C=e[26],C},ir=t=>{const e=M.c(28),{pluginID:s,reference:n,route:r,upDepth:i,downDepth:o,enabled:c}=t,l=i===void 0?2:i,a=o===void 0?3:o,d=c===void 0?!0:c,u=U(s);let f;e[0]!==a||e[1]!==u||e[2]!==n||e[3]!==r||e[4]!==l?(f=["RESOURCE_GRAPH",u,n,r,l,a],e[0]=a,e[1]=u,e[2]=n,e[3]=r,e[4]=l,e[5]=f):f=e[5];const p=f,v=d&&!!n.address.id;let h;e[6]!==u||e[7]!==r.connection||e[8]!==v?(h={pluginID:u,connectionID:r.connection,enabled:v},e[6]=u,e[7]=r.connection,e[8]=v,e[9]=h):h=e[9];const g=oe(h),m=ae(u,r.connection),y=d&&!!u&&!!r.connection&&!!n.address.id&&g.phase==="connected";He(u,r.connection,p,y);let S;e[10]!==a||e[11]!==m||e[12]!==u||e[13]!==y||e[14]!==n||e[15]!==r||e[16]!==l?(S=y?I=>{const{signal:R,queryKey:D}=I;return m(D,R,()=>A.GetSubgraph(u,n,r,l,a))}:O.skipToken,e[10]=a,e[11]=m,e[12]=u,e[13]=y,e[14]=n,e[15]=r,e[16]=l,e[17]=S):S=e[17];let b;e[18]!==y||e[19]!==p||e[20]!==S?(b={queryKey:p,queryFn:S,enabled:y,retry:!1},e[18]=y,e[19]=p,e[20]=S,e[21]=b):b=e[21];const w=O.useQuery(b),x=w.data??null;let C;return e[22]!==w.error||e[23]!==w.isFetching||e[24]!==w.isLoading||e[25]!==w.refetch||e[26]!==x?(C={graph:x,isLoading:w.isLoading,isFetching:w.isFetching,error:w.error,refetch:w.refetch},e[22]=w.error,e[23]=w.isFetching,e[24]=w.isLoading,e[25]=w.refetch,e[26]=x,e[27]=C):C=e[27],C},cr=()=>{const t=E.useContext(St);if(!t)throw new Error("useSettings must be used within a SettingsProvider");return t},ar=1,lr=t=>{const e=M.c(19);let s,n,r,i;if(e[0]!==t){const{to:h,withinContext:g,onClick:m,onAuxClick:y,...S}=t;i=h,n=m,s=y,r=S,e[0]=t,e[1]=s,e[2]=n,e[3]=r,e[4]=i}else s=e[1],n=e[2],r=e[3],i=e[4];const{pluginId:o}=vt(),c=E.useContext(Be);o||console.error("Link used outside of a plugin context");const l=`/_plugin/${o}${i.startsWith("/")?"":"/"}${i}`;let a;e[5]!==n||e[6]!==l||e[7]!==c?(a=h=>{n?.(h),!(h.defaultPrevented||!c||!(h.ctrlKey||h.metaKey))&&(h.preventDefault(),c.openInNewTab(l,{background:!0}))},e[5]=n,e[6]=l,e[7]=c,e[8]=a):a=e[8];const d=a;let u;e[9]!==s||e[10]!==l||e[11]!==c?(u=h=>{s?.(h),!(h.defaultPrevented||!c||h.button!==ar)&&(h.preventDefault(),c.openInNewTab(l,{background:!0}))},e[9]=s,e[10]=l,e[11]=c,e[12]=u):u=e[12];const f=u;let p;e[13]===Symbol.for("react.memo_cache_sentinel")?(p={textDecoration:"none",color:"inherit"},e[13]=p):p=e[13];let v;return e[14]!==f||e[15]!==d||e[16]!==r||e[17]!==l?(v=T.jsx($e.Link,{style:p,...r,to:l,onClick:d,onAuxClick:f}),e[14]=f,e[15]=d,e[16]=r,e[17]=l,e[18]=v):v=e[18],v};function ur(){const t=M.c(10),e=$e.useNavigate(),s=$e.useLocation(),{pluginId:n}=vt();n||console.error("usePluginRouter used outside of a plugin context");const r=`/_plugin/${n}`;let i;t[0]!==s.pathname||t[1]!==r?(i=s.pathname.startsWith(r)?s.pathname.slice(r.length)||"/":s.pathname,t[0]=s.pathname,t[1]=r,t[2]=i):i=t[2];const o=i;let c;t[3]!==e||t[4]!==r?(c=(d,u)=>{const{...f}=u??{};d.startsWith("/")?e(`${r}${d}`,f):e(d,f)},t[3]=e,t[4]=r,t[5]=c):c=t[5];const l=c;let a;return t[6]!==s||t[7]!==l||t[8]!==o?(a={location:s,navigate:l,pluginPath:o},t[6]=s,t[7]=l,t[8]=o,t[9]=a):a=t[9],a}class dr{}class fr{_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=$e.createMemoryRouter(this._routes||[]);return T.jsx(mn.RouterProvider,{router:e})}registerExtensionPoints(e){return this._extensions=e||[],this}setRootPage(e){return this.root=e,this}withPage(e,s){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]=s,this)}withRoutes(e){return this._routes=e,this}}var gn=(t=>(t.MISSING_MANIFEST="MISSING_MANIFEST",t.MISSING_PLUGIN="MISSING_PLUGIN",t.MISSING_ENTRYPOINT="MISSING_ENTRYPOINT",t))(gn||{});const hn="omniview/global-search/open";function pr(t={}){window.dispatchEvent(new CustomEvent(hn,{detail:t}))}const yn="omniview/resource/icons";class gr extends E.Component{state={failed:!1,resetToken:this.props.resetToken};static getDerivedStateFromProps(e,s){return e.resetToken!==s.resetToken?{failed:!1,resetToken:e.resetToken}:null}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function hr(t,e){try{return t?.schemaVersion!==1||typeof t.resolve!="function"?void 0:t.resolve(e)}catch{return}}function yr(t){const e=M.c(7);let s,n;e[0]!==t?({icon:s,...n}=t,e[0]=t,e[1]=s,e[2]=n):(s=e[1],n=e[2]);const r=n["aria-hidden"]??!0;let i;return e[3]!==s||e[4]!==n||e[5]!==r?(i=T.jsx(s,{...n,"aria-hidden":r}),e[3]=s,e[4]=n,e[5]=r,e[6]=i):i=e[6],i}function mr(t){const e=M.c(17);let s,n,r,i;e[0]!==t?({pluginId:n,resourceKey:i,fallback:s,...r}=t,e[0]=t,e[1]=s,e[2]=n,e[3]=r,e[4]=i):(s=e[1],n=e[2],r=e[3],i=e[4]);const{version:o,contributions:c}=Et(yn);let l;e[5]!==s||e[6]!==r?(l=s===void 0?T.jsx("svg",{width:r.size??16,height:r.size??16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:r.className,"aria-hidden":r["aria-hidden"]??!0,children:T.jsx("path",{d:"m12 3 9 5v8l-9 5-9-5V8l9-5Zm0 9 9-4M12 12 3 8m9 4v9"})}):s,e[5]=s,e[6]=r,e[7]=l):l=e[7];const a=l;let d;if(e[8]!==c||e[9]!==a||e[10]!==n||e[11]!==r||e[12]!==i||e[13]!==o){d=Symbol.for("react.early_return_sentinel");e:for(const f of c){if(f.plugin!==n)continue;const p=hr(f.value,i);if(p){d=T.jsx(gr,{resetToken:f,fallback:a,children:T.jsx(E.Suspense,{fallback:a,children:T.jsx(yr,{icon:p,...r})})},JSON.stringify([n,i,o,f.id]));break e}}e[8]=c,e[9]=a,e[10]=n,e[11]=r,e[12]=i,e[13]=o,e[14]=d}else d=e[14];if(d!==Symbol.for("react.early_return_sentinel"))return d;let u;return e[15]!==a?(u=T.jsx(T.Fragment,{children:a}),e[15]=a,e[16]=u):u=e[16],u}const vr="omniview/settings/editor";function Sr(t){const e=M.c(23);let s,n,r;e[0]!==t?({pluginID:s,enabled:r,...n}=t,e[0]=t,e[1]=s,e[2]=n,e[3]=r):(s=e[1],n=e[2],r=e[3]);const i=r===void 0?!0:r,o=U(s),c=i&&!!n.type;let l;e[4]!==o||e[5]!==n.route.connection||e[6]!==c?(l={pluginID:o,connectionID:n.route.connection,enabled:c},e[4]=o,e[5]=n.route.connection,e[6]=c,e[7]=l):l=e[7];const a=oe(l),d=ae(o,n.route.connection),u=i&&!!o&&!!n.route.connection&&!!n.type&&a.phase==="connected";let f;e[8]!==o||e[9]!==n?(f=[o,"resource-v2","resolve-target",n],e[8]=o,e[9]=n,e[10]=f):f=e[10];let p;e[11]!==d||e[12]!==o||e[13]!==u||e[14]!==n?(p=u?y=>{const{signal:S,queryKey:b}=y;return d(b,S,()=>A.ResolveTarget(o,n))}:O.skipToken,e[11]=d,e[12]=o,e[13]=u,e[14]=n,e[15]=p):p=e[15];let v;e[16]!==u||e[17]!==f||e[18]!==p?(v={queryKey:f,queryFn:p,enabled:u,retry:!1,placeholderData:void 0},e[16]=u,e[17]=f,e[18]=p,e[19]=v):v=e[19];const h=O.useQuery(v),g=u&&h.isSuccess&&!h.isFetching?h.data:void 0;let m;return e[20]!==h||e[21]!==g?(m={...h,data:g},e[20]=h,e[21]=g,e[22]=m):m=e[22],m}exports.SyncPolicy=G.SyncPolicy;exports.WatchState=G.WatchState;exports.sameGraphNode=G.sameGraphNode;exports.ALL_SESSIONS_KEY=_e;exports.BottomDrawerContext=Kt;exports.ConfirmationModalContext=Bt;exports.ConnectionBoundary=ss;exports.ConnectionBoundaryFallback=on;exports.ErrorTypes=Y;exports.ExtensionPointRegistry=Ln;exports.ExtensionPointStore=Vt;exports.ExtensionProvider=An;exports.GLOBAL_SEARCH_OPEN_EVENT=hn;exports.HOST_SETTINGS_SCOPE=We;exports.Link=lr;exports.OperationsContext=bt;exports.OperationsProvider=xn;exports.PluginContext=Ge;exports.PluginContextProvider=En;exports.PluginErrorCode=gn;exports.PluginWindow=fr;exports.PluginWindowRootProps=dr;exports.RESOURCE_ICON_EXTENSION_POINT_ID=yn;exports.ResourceIcon=mr;exports.RightDrawerContext=Gt;exports.SETTINGS_EDITOR_EXTENSION_POINT_ID=vr;exports.SettingsContext=St;exports.SettingsProvider=In;exports.SnackbarProvider=qn;exports.WindowActionsContext=Be;exports.WindowActionsProvider=Rn;exports.actionToSnackbar=Wt;exports.applyBatch=dt;exports.connectionListQueryKey=nn;exports.createErrorHandler=se;exports.defaultState=Ut;exports.graphChangedEvent=fn;exports.isCancelledError=Le;exports.jsonTextToValue=er;exports.jsonToValue=gt;exports.navigateActivePage=$t;exports.openGlobalSearch=pr;exports.openSettings=jt;exports.parseAppError=fe;exports.readCurrentConnectionMetadataString=gs;exports.registerActivePageNavigator=bn;exports.relationshipLabel=sr;exports.requireConnectionReady=Fe;exports.resourceQueryKeys=be;exports.scopedSettingID=Mt;exports.settingsQueryKey=Ft;exports.settingsWindowTarget=mt;exports.showAppError=Ce;exports.toRelatedResources=pn;exports.useActiveSyncs=Xs;exports.useBottomDrawer=xt;exports.useConfirmationModal=ks;exports.useConnection=Qn;exports.useConnectionMetadata=is;exports.useConnectionMetadataConnections=us;exports.useConnectionMetadataSelector=fs;exports.useConnectionProfiles=Jn;exports.useConnectionReadiness=oe;exports.useConnectionStatus=zn;exports.useConnections=Un;exports.useDependencyTree=or;exports.useEditorSchemas=zs;exports.useEventBatcher=un;exports.useExec=vs;exports.useExecuteAction=Bs;exports.useExtensionPoint=Pn;exports.useExtensionPointSnapshot=Et;exports.useExtensionRegistry=Ht;exports.useLogs=bs;exports.useMetricProviders=ws;exports.useMetricProvidersForResource=ln;exports.useMetricStream=Is;exports.useNativeExec=Ss;exports.useOperations=dn;exports.usePluginContext=vt;exports.usePluginData=ys;exports.usePluginRouter=ur;exports.usePortForwardSessions=_s;exports.useRefetchOnGraphChange=He;exports.useRelatedResources=rr;exports.useResolvedPluginId=U;exports.useResolvedResourceTarget=Sr;exports.useResource=Ps;exports.useResourceActions=Gs;exports.useResourceAreaComponent=As;exports.useResourceGraph=ir;exports.useResourceGroups=Ls;exports.useResourceMetrics=Cs;exports.useResourceMutations=Ks;exports.useResourcePortForwarder=Ts;exports.useResourceSearch=Fs;exports.useResourceType=js;exports.useResourceTypes=$s;exports.useResources=Us;exports.useRightDrawer=ms;exports.useScopeValues=Bn;exports.useScopedSettings=yt;exports.useSettings=cr;exports.useSnackbar=ce;exports.useStreamAction=tr;exports.useWatchState=Js;exports.useWindowActions=Dn;exports.valueToJSON=Ue;exports.valueToJSONText=ht;exports.withConnectionReady=$n;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),F=require("react/compiler-runtime"),C=require("react");require("./index-BVi9X4oU.cjs");const k=require("./service-DyXmAdcM.cjs"),K=require("./events-DnLqUWri.cjs"),an=require("./graph-D4xtzkXX.cjs"),D=require("@tanstack/react-query"),et=require("react-router"),B=require("@omniviewdev/base-ui"),rt=require("./models-B3B5AdrM.cjs"),Bn=require("react-router/dom"),it=C.createContext(void 0),tt={kind:"host"},ln=t=>["settings",t.kind,t.kind==="plugin"?t.pluginId:""],Wn={};async function un(t,e){await t.cancelQueries(e),await t.invalidateQueries(e)}const bt=new WeakMap;function zn(t){let e=bt.get(t);if(!e){const s=o=>{const i=o?["settings",o.kind,o.kind==="plugin"?o.pluginId:""]:["settings","plugin"];un(t,{queryKey:i})},n=[K.On("settings/changed",o=>{s(o.data)}),K.On("plugin/init_complete",()=>s()),K.On("plugin/inventory_changed",()=>s()),K.On("plugin/dev_reload_complete",()=>s()),K.On("plugin/recovered",()=>s()),K.On("plugin/dev_install_complete",o=>{const i=o.data?.id;typeof i=="string"&&s({kind:"plugin",pluginId:i})})];e={users:0,stop:()=>{for(const o of n)o()}},bt.set(t,e)}return e.users++,()=>{--e.users===0&&(e.stop(),bt.delete(t))}}function dn(t,e,s){return t.kind==="host"?`${e}.${s}`:s}function $t(t){const e=F.c(25),s=D.useQueryClient(),n=t.kind,o=t.pluginId;let i,r;e[0]!==s?(i=()=>zn(s),r=[s],e[0]=s,e[1]=i,e[2]=r):(i=e[1],r=e[2]),C.useEffect(i,r);let a;e[3]!==t?(a=ln(t),e[3]=t,e[4]=a):a=e[4];let l;e[5]!==t?(l=async v=>{const{signal:w}=v,S=await k.GetSnapshot(t);return w.throwIfAborted(),S},e[5]=t,e[6]=l):l=e[6];let c;e[7]!==a||e[8]!==l?(c={queryKey:a,queryFn:l,staleTime:1/0,retry:!1},e[7]=a,e[8]=l,e[9]=c):c=e[9];const u=D.useQuery(c);let d;e[10]!==s||e[11]!==n||e[12]!==o||e[13]!==t?(d={mutationFn:async v=>{const w=await k.Commit(t,v);return await un(s,{queryKey:["settings",n,o??""]}),w}},e[10]=s,e[11]=n,e[12]=o,e[13]=t,e[14]=d):d=e[14];const{mutateAsync:f}=D.useMutation(d);let p;e[15]!==n||e[16]!==o?(p=(v,w)=>k.Validate(n==="host"?tt:{kind:n,pluginId:o},v,w),e[15]=n,e[16]=o,e[17]=p):p=e[17];const y=p,g=u.data?.categories??Wn,m=u.error??void 0;let h;return e[18]!==f||e[19]!==u.data||e[20]!==u.isPending||e[21]!==g||e[22]!==m||e[23]!==y?(h={snapshot:u.data,categories:g,isLoading:u.isPending,error:m,commit:f,validate:y},e[18]=f,e[19]=u.data,e[20]=u.isPending,e[21]=g,e[22]=m,e[23]=y,e[24]=h):h=e[24],h}const J={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"};function ct(t){const e=t.startsWith("#")?t.slice(1):t;if(!/^\/settings\/?(?:[?#]|$)/.test(e))return null;const s=e.split("#",1)[0].split("?")[1]??"",n=new URLSearchParams(s),o=n.get("section");if(o!=="extensions"&&!((o===null||o==="core")&&n.get("category")==="extensions"))return null;const i=new URLSearchParams;for(const a of["plugin","point","contribution"]){const l=n.get(a);l&&i.set(a,l)}const r=i.toString();return`/developer-tools/extensions${r?`?${r}`:""}`}function Qt(t){const e=t.startsWith("#")?t.slice(1):t;return/^\/settings\/?(?:[?#]|$)/.test(e)&&ct(e)===null?e:null}function Nt(t=""){const e=ct(t);if(e!==null)return K.Emit("extensions/inspector/open",{targetWindow:"main",path:e}).then(()=>k.Focus("main")).then(()=>"main");const s=t===""?"":Qt(t);return s===null?Promise.reject(new Error("Settings requires a local settings route.")):k.OpenSettings(s==="/settings"||s==="/settings/"?"":s)}let _e=null;function Vn(t){return _e=t,()=>{_e===t&&(_e=null)}}function fn(t){const e=ct(t);if(e!==null){_e?_e(e):Nt(t).catch(n=>{console.error("[extensions] opening the inspector failed",n)});return}const s=Qt(t);if(s!==null){Nt(s).catch(n=>{console.error("[settings] opening the settings window failed",n)});return}if(!_e)throw new Error(`cannot navigate to "${t}": this window has no page navigator`);_e(t)}const tn={INVALID_REQUEST:[J.VALIDATION,400,"correctRequest"],UNSUPPORTED:[J.NOT_IMPLEMENTED,501,"refreshContract"],FORBIDDEN:[J.RESOURCE_FORBIDDEN,403,"none"],UNAUTHORIZED:[J.RESOURCE_UNAUTHORIZED,401,"none"],NOT_FOUND:[J.RESOURCE_NOT_FOUND,404,"none"],CONFLICT:[J.RESOURCE_CONFLICT,409,"refreshContract"],ALREADY_EXISTS:[J.RESOURCE_CONFLICT,409,"refreshContract"],CANCELLED:[J.CANCELLED,499,"none"],TIMEOUT:[J.RESOURCE_TIMEOUT,408,"none"],UNAVAILABLE:[J.CONNECTION_FAILED,503,"reconnect"],CONNECTION_ERROR:[J.CONNECTION_FAILED,503,"reconnect"],CERTIFICATE_ERROR:[J.CONNECTION_FAILED,502,"reconnect"],RESOURCE_LIMIT:[J.RESOURCE_LIMIT,429,"correctRequest"],CONTINUATION_EXPIRED:[J.RESOURCE_CONTINUATION_EXPIRED,410,"restartQuery"],RESET_REQUIRED:[J.RESOURCE_RESET_REQUIRED,409,"restartQuery"],PARTIAL_RESULT:[J.RESOURCE_PARTIAL,422,"none"],PROVIDER_ERROR:[J.RESOURCE_PROVIDER_ERROR,502,"none"],INTERNAL:[J.INTERNAL,500,"none"]};function St(t){return typeof t=="object"&&t!==null?t:void 0}function de(t,e){return typeof t=="string"&&t.length>0&&t.length<=e}function Et(){return{type:J.CANCELLED,code:"CANCELLED",title:"Cancelled",status:499,detail:"The operation was cancelled.",recovery:"none"}}function Ze(t,e){if(e>4)return;if(t==="cancelled")return Et();if(typeof t=="string"){const n=t.trim();if(!n.startsWith("{"))return;try{return Ze(JSON.parse(n),e+1)}catch{return}}const s=St(t);if(s){if(s.name==="AbortError"||s.name==="CancelError")return Et();if(de(s.type,256)&&de(s.title,256)&&typeof s.status=="number"&&Number.isInteger(s.status)&&s.status>=100&&s.status<=599&&typeof s.detail=="string"&&s.detail.length<=4096){const n={type:s.type,title:s.title,status:s.status,detail:s.detail};de(s.code,64)&&(n.code=s.code),de(s.requestId,256)&&(n.requestId=s.requestId),de(s.instance,512)&&(n.instance=s.instance),Array.isArray(s.suggestions)&&(n.suggestions=s.suggestions.filter(i=>de(i,512)).slice(0,8)),Array.isArray(s.actions)&&(n.actions=s.actions.filter(i=>{const r=St(i);return!!r&&["navigate","retry","open-url","copy"].includes(String(r.type))&&de(r.label,256)&&(r.target===void 0||de(r.target,4096))}).slice(0,8)),["correctRequest","refreshContract","restartQuery","reconnect","none"].includes(String(s.recovery))&&(n.recovery=s.recovery);const o=St(s.location);return o?.unit==="utf8-byte"&&typeof o.start=="number"&&typeof o.end=="number"&&Number.isSafeInteger(o.start)&&Number.isSafeInteger(o.end)&&o.start>=0&&o.end>=o.start&&(n.location={start:o.start,end:o.end,unit:"utf8-byte"}),n}if(typeof s.code=="string"&&typeof s.title=="string"&&typeof s.message=="string"){let n=s.code;if(n==="PERMISSION_DENIED"&&(n="FORBIDDEN"),["INVALID_INPUT","FILTER_UNKNOWN_FIELD","FILTER_INVALID_OPERATOR"].includes(n)&&(n="INVALID_REQUEST"),Object.prototype.hasOwnProperty.call(tn,n)||(n="INTERNAL"),n==="CANCELLED")return Et();const[o,i,r]=tn[n],a=n==="FORBIDDEN"||n==="UNAUTHORIZED"||n==="INTERNAL"||n==="PROVIDER_ERROR";return{type:o,status:i,code:n,recovery:r,title:a?n==="FORBIDDEN"?"Access denied":n==="UNAUTHORIZED"?"Authentication required":"Operation failed":de(s.title,256)?s.title:"Operation failed",detail:a?"The operation could not be completed.":de(s.message,4096)?s.message:"The operation could not be completed.",...!a&&Array.isArray(s.suggestions)?{suggestions:s.suggestions.filter(l=>de(l,512)).slice(0,8)}:{}}}return Ze(s.message,e+1)??Ze(s.cause,e+1)}}function ie(t){return Ze(t,0)??{type:J.INTERNAL,title:t==null?"Unknown error":"Error",status:500,detail:t==null?"An unknown error occurred.":"The operation could not be completed."}}function Ke(t){return ie(t).type===J.CANCELLED}function pn(t){switch(t.type){case"navigate":return{label:t.label,onClick:()=>{fn((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 gn(t,e){const s=[t.detail,...t.suggestions?.map(o=>`• ${o}`)??[]].join(`
|
|
2
|
+
`);return{message:e||(t.title!=="Error"?t.title:"Operation failed"),status:"error",details:s,actions:t.actions?.map(pn)}}function Pe(t,e,s){if(Ke(e))return;const n=ie(e);t(gn(n,s))}function te(t,e){return s=>{if(Ke(s))return;const n=ie(s);t(gn(n,n.title!=="Error"?n.title:e))}}function Jn(t){const e=F.c(2);let s;return e[0]!==t?(s=N.jsx(Hn,{...t},t.pluginId),e[0]=t,e[1]=s):s=e[1],s}function Hn(t){const e=F.c(40),{children:s,pluginId:n,headless:o}=t,i=o===void 0?!1:o;let r;e[0]!==n?(r={kind:"plugin",pluginId:n},e[0]=n,e[1]=r):r=e[1];const{categories:a}=$t(r);let l;e[2]!==a.plugin?.settings||e[3]!==n?(l=Object.fromEntries(Object.entries(a.plugin?.settings??{}).filter(Yn).map(x=>{const[q,A]=x;return[`${n}.${q}`,A.value]})),e[2]=a.plugin?.settings,e[3]=n,e[4]=l):l=e[4];const c=l;let u;e[5]===Symbol.for("react.memo_cache_sentinel")?(u=new rt.PluginMeta,e[5]=u):u=e[5];const[d,f]=C.useState(u),[p,y]=C.useState(!1),[g,m]=C.useState(null),h=C.useRef(0);console.debug("[PluginContextProvider] render",{pluginId:n,metaLoaded:p,metaError:!!g});let v;e[6]!==n?(v=()=>{if(n===void 0||n===""){console.debug("[PluginContextProvider] skipping meta fetch — empty pluginId");return}const x=h.current=h.current+1;console.debug(`[PluginContextProvider] fetching meta for "${n}"`),k.GetPluginMeta(n).then(q=>{x===h.current&&(console.debug(`[PluginContextProvider] meta loaded for "${n}"`,{name:q?.name,version:q?.version}),f(q),y(!0))}).catch(q=>{if(x!==h.current)return;const A=ie(q);console.error(`[PluginContextProvider] error fetching meta for "${n}":`,A.detail),m(A.detail),y(!1)})},e[6]=n,e[7]=v):v=e[7];const w=v;let S,I;e[8]!==w||e[9]!==p||e[10]!==n?(S=()=>{if(p)return;const x=()=>{m(null),w()},q=[K.On("plugin/init_complete",x),K.On("plugin/dev_install_complete",A=>{A.data?.id===n&&x()}),K.On("plugin/inventory_changed",x)];return()=>{for(const A of q)A()}},I=[n,p,w],e[8]=w,e[9]=p,e[10]=n,e[11]=S,e[12]=I):(S=e[11],I=e[12]),C.useEffect(S,I);let R,b;if(e[13]!==w||e[14]!==n?(R=()=>(console.debug(`[PluginContextProvider] useEffect — pluginId changed to "${n}"`),w(),()=>{h.current=h.current+1}),b=[n,w],e[13]=w,e[14]=n,e[15]=R,e[16]=b):(R=e[15],b=e[16]),C.useEffect(R,b),g){if(i)throw new Error(g);let x,q,A;e[17]===Symbol.for("react.memo_cache_sentinel")?(A={display:"flex",flex:1,alignItems:"center",justifyContent:"center",padding:24},x={maxWidth:480,width:"100%",border:"1px solid #7F1D1D",borderRadius:8,backgroundColor:"#1C1917",padding:20,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},q={display:"flex",alignItems:"center",gap:8,marginBottom:12},e[17]=x,e[18]=q,e[19]=A):(x=e[17],q=e[18],A=e[19]);let Q,_;e[20]===Symbol.for("react.memo_cache_sentinel")?(Q=N.jsxs("div",{style:q,children:[N.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"#EF4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[N.jsx("circle",{cx:"12",cy:"12",r:"10"}),N.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),N.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),N.jsx("span",{style:{fontSize:14,fontWeight:600,color:"#FECACA"},children:"Plugin failed to load"})]}),_={fontSize:13,color:"#A1A1AA",margin:"0 0 16px"},e[20]=Q,e[21]=_):(Q=e[20],_=e[21]);let P;e[22]!==g?(P=N.jsx("p",{style:_,children:g}),e[22]=g,e[23]=P):P=e[23];let T;e[24]!==w?(T=()=>{m(null),w()},e[24]=w,e[25]=T):T=e[25];let j;e[26]===Symbol.for("react.memo_cache_sentinel")?(j={background:"transparent",color:"#F87171",border:"1px solid #7F1D1D",borderRadius:6,padding:"6px 14px",fontSize:13,fontWeight:500,cursor:"pointer"},e[26]=j):j=e[26];let L;e[27]!==T?(L=N.jsx("button",{onClick:T,style:j,children:"Retry"}),e[27]=T,e[28]=L):L=e[28];let M;return e[29]!==P||e[30]!==L?(M=N.jsx("div",{style:A,children:N.jsxs("div",{style:x,children:[Q,P,L]})}),e[29]=P,e[30]=L,e[31]=M):M=e[31],M}if(!p){if(i)return null;let x;return e[32]===Symbol.for("react.memo_cache_sentinel")?(x=N.jsxs("div",{style:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[N.jsx("div",{style:{width:24,height:24,border:"2px solid #3F3F46",borderTopColor:"#A1A1AA",borderRadius:"50%",animation:"plugin-spin 0.8s linear infinite"}}),N.jsx("style",{children:"@keyframes plugin-spin { to { transform: rotate(360deg); } }"})]}),e[32]=x):x=e[32],x}let E;e[33]!==d||e[34]!==n||e[35]!==c?(E={pluginId:n,settings:c,meta:d},e[33]=d,e[34]=n,e[35]=c,e[36]=E):E=e[36];let O;return e[37]!==s||e[38]!==E?(O=N.jsx(it.Provider,{value:E,children:s}),e[37]=s,e[38]=E,e[39]=O):O=e[39],O}function Yn(t){const[,e]=t;return e!==void 0}function Ut(){const t=C.useContext(it);if(!t)throw new Error("usePluginContext must be used within a PluginContextProvider");return t}const Kt=C.createContext(void 0),Xn=t=>{const e=F.c(7),{children:s}=t,{categories:n}=$t(tt);let o;if(e[0]!==n){o={};for(const[l,c]of Object.entries(n))for(const[u,d]of Object.entries(c?.settings??{}))d&&(o[dn(tt,l,u)]=d.value);e[0]=n,e[1]=o}else o=e[1];const i=o;let r;e[2]!==i?(r={settings:i},e[2]=i,e[3]=r):r=e[3];let a;return e[4]!==s||e[5]!==r?(a=N.jsx(Kt.Provider,{value:r,children:s}),e[4]=s,e[5]=r,e[6]=a):a=e[6],a},hn={height:32,focused:0,tabs:[],createTab:()=>{},createTabs:()=>{},updateTab:()=>{},focusTab:()=>{},reorderTab:()=>{},closeTab:()=>{},closeTabs:()=>{},resizeDrawer:()=>{},closeDrawer:()=>{},fullscreenDrawer:()=>{}},yn=C.createContext(hn),mn=C.createContext(void 0),vn=C.createContext(void 0),Gt=C.createContext(void 0),Zn=3e4,es=t=>{const e=F.c(12),{children:s}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[o,i]=C.useState(n);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=h=>{i(v=>[h,...v])},e[1]=r):r=e[1];const a=r;let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=(h,v)=>{i(w=>w.map(S=>S.id===h?{...S,...v}:S))},e[2]=l):l=e[2];const c=l;let u;e[3]===Symbol.for("react.memo_cache_sentinel")?(u=h=>{i(v=>v.filter(w=>w.id!==h))},e[3]=u):u=e[3];const d=u;let f,p;e[4]!==o?(f=()=>{const h=[];for(const v of o)if(v.status!=="running"){const w=Date.now()-(v.completedAt??v.startedAt),S=Math.max(0,Zn-w);h.push(setTimeout(()=>d(v.id),S))}return()=>h.forEach(clearTimeout)},p=[o,d],e[4]=o,e[5]=f,e[6]=p):(f=e[5],p=e[6]),C.useEffect(f,p);let y;e[7]!==o?(y={operations:o,addOperation:a,updateOperation:c,removeOperation:d},e[7]=o,e[8]=y):y=e[8];const g=y;let m;return e[9]!==s||e[10]!==g?(m=N.jsx(Gt.Provider,{value:g,children:s}),e[9]=s,e[10]=g,e[11]=m):m=e[11],m},at=C.createContext(null),ts=t=>{const e=F.c(3),{actions:s,children:n}=t;let o;return e[0]!==s||e[1]!==n?(o=N.jsx(at.Provider,{value:s,children:n}),e[0]=s,e[1]=n,e[2]=o):o=e[2],o};function ns(){const t=C.useContext(at);if(!t)throw new Error("useWindowActions must be used inside a workspace window (WindowActionsProvider)");return t}var kt=function(t,e){return kt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,n){s.__proto__=n}||function(s,n){for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(s[o]=n[o])},kt(t,e)};function ss(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");kt(t,e);function s(){this.constructor=t}t.prototype=e===null?Object.create(e):(s.prototype=e.prototype,new s)}var Ct="Invariant Violation",nn=Object.setPrototypeOf,os=nn===void 0?function(t,e){return t.__proto__=e,t}:nn,rs=(function(t){ss(e,t);function e(s){s===void 0&&(s=Ct);var n=t.call(this,typeof s=="number"?Ct+": "+s+" (see https://github.com/apollographql/invariant-packages)":s)||this;return n.framesToPop=1,n.name=Ct,os(n,e.prototype),n}return e})(Error);function Tt(t,e){if(!t)throw new rs(e)}var wn=["debug","log","warn","error","silent"],is=wn.indexOf("log");function Xe(t){return function(){if(wn.indexOf(t)>=is){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=Xe("debug"),t.log=Xe("log"),t.warn=Xe("warn"),t.error=Xe("error")})(Tt||(Tt={}));const bn=C.createContext(void 0),Sn=()=>C.useContext(bn);function Bt(t){const e=F.c(6),s=Sn(),n=C.useRef(null);let o;e[0]!==t||e[1]!==s?(o=l=>{let c=s?.getExtensionPoint(t),u=c?.subscribe(l);const d=s?.subscribe(()=>{const f=s.getExtensionPoint(t);f!==c&&(u?.(),c=f,u=c?.subscribe(l)),l()});return()=>{u?.(),d?.()}},e[0]=t,e[1]=s,e[2]=o):o=e[2];const i=o;let r;e[3]!==t||e[4]!==s?(r=()=>{const l=s?.getExtensionPoint(t),c=l?.version??-1,u=n.current;if(u&&u.store===l&&u.version===c)return u;const d={store:l,version:c,contributions:l?.listAll()??[]};return n.current=d,d},e[3]=t,e[4]=s,e[5]=r):r=e[5];const a=r;return C.useSyncExternalStore(i,a,a)}function cs(t){return Bt(t).store}const as=t=>{const e=F.c(5),{registry:s,children:n}=t;let o;e[0]!==s?(o=()=>s,e[0]=s,e[1]=o):o=e[1];const[i]=C.useState(o);Tt(i===s,"You can't change the extension registry after it has been rendered");let r;return e[2]!==n||e[3]!==i?(r=N.jsx(bn.Provider,{value:i,children:n}),e[2]=n,e[3]=i,e[4]=r):r=e[4],r},It=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 En{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 s=!1;for(const[n,o]of this._contributions)o.plugin===e&&(this._contributions.delete(n),s=!0);s&&(this._invalidateCache(),this._notify())}_getMatched(e){const s=this._getCacheKey(e);if(s!=null){const o=this._lookupCache.get(s);if(o){const i=o.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(o=>this._matcher(o,e))),s!=null&&this._lookupCache.set(s,n.map(o=>o.id)),this._applyMode(n,e)}_applyMode(e,s){if(this.mode==="single"){if(this._select){const n=this._select(e,s);return n?[n]:[]}return e.length>0?[e[0]]:[]}return e}_sortDeterministic(e){return[...e].sort((s,n)=>{const o=s.plugin.localeCompare(n.plugin);return o!==0?o:s.id.localeCompare(n.id)})}_getCacheKey(e){if(e!=null&&typeof e=="object"&&"getCacheKey"in e){const s=e.getCacheKey;if(typeof s=="function")return s()}}_invalidateCache(){this._lookupCache.clear()}_notify(){this._version++;for(const e of this._listeners)e()}}class ls{_stores=new Map;_storeUnsubs=new Map;_listeners=new Set;constructor(e){if(e?.initialStores)for(const s of e.initialStores)this.addExtensionPoint(s)}addExtensionPoint(e){const s=It(e.id);if(this._stores.has(s)){const o=this._stores.get(s);throw new Error(`Extension point "${s}" already exists (owned by "${o.pluginId??"unknown"}")`)}const n=new En({...e,id:s});this._stores.set(s,n),this._storeUnsubs.set(s,n.subscribe(()=>this._notify())),this._notify()}getExtensionPoint(e){const s=It(e);return this._stores.get(s)}hasExtensionPoint(e){const s=It(e);return this._stores.has(s)}listExtensionPoints(){return Array.from(this._stores.keys())}removeExtensionPoints(e){let s=!1;for(const[n,o]of this._stores)o.pluginId===e&&(this._storeUnsubs.get(n)?.(),this._storeUnsubs.delete(n),this._stores.delete(n),s=!0);s&&this._notify()}removeContributions(e){for(const s of this._stores.values())s.removeContributionsByPlugin(e);this._notify()}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}_notify(){for(const e of this._listeners)e()}}const se={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)"}},Cn=C.createContext(void 0),us={default:"info",info:"info",success:"success",warning:"warning",error:"danger"},ds=({children:t})=>{const{toast:e}=B.useToast(),[s,n]=C.useState([]),[o,i]=C.useState([]),[r,a]=C.useState(!1),[l,c]=C.useState(),[u,d]=C.useState(""),f=C.useRef(0),p=C.useRef(null);C.useEffect(()=>{if(!r)return;const m=document.activeElement;p.current?.focus();const h=v=>{v.key==="Escape"&&(v.stopPropagation(),a(!1))};return document.addEventListener("keydown",h),()=>{document.removeEventListener("keydown",h),m instanceof HTMLElement&&m.isConnected&&m.focus()}},[r]);const y=m=>{n(h=>[...h,m])},g=(m,h,v)=>{const w=typeof m=="object";let S="",I="info",R,b=5e3,E;if(w){if(S=m.message,m.showOnce){if(s.includes(S))return;y(S)}I=m.status,R=m.details,b=m.autoHideDuration??5e3,E=m.actions}else S=m,I=h,R=v;let O;if(I==="error"){const x={id:++f.current,message:S,details:R,created:new Date().toISOString(),actions:E};i(q=>[...q,x].slice(-20)),O={label:"Details",onClick:()=>{c(x.id),a(!0)}}}e(I==="error"?S:R??S,{severity:us[I]??"info",title:I!=="error"&&R?S:void 0,duration:b,action:O??E?.[0]})};return N.jsxs(Cn.Provider,{value:{showSnackbar:g,openNotifications:()=>{a(!0)},notificationCount:o.length},children:[t,r&&N.jsxs(B.Card,{ref:p,style:se.Panel,size:"sm",variant:"outline",surface:"overlay",elevation:3,"aria-label":"Notifications",tabIndex:-1,children:[N.jsxs(B.Toolbar,{size:"sm",style:se.Header,children:[N.jsx(B.Text,{size:"sm",weight:"semibold",children:"Notifications"}),N.jsx(B.Text,{size:"xs",tone:"muted",children:o.length}),N.jsxs(B.Toolbar.Group,{style:se.HeaderActions,children:[N.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":"Clear history",title:"Clear history",disabled:o.length===0,onClick:()=>{i([]),c(void 0),d("")},children:N.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:N.jsx("path",{d:"m3 3 6 6m0-6L3 9M13 6h8M3 14h18M3 20h18"})})}),N.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":"Close notifications",title:"Close notifications",onClick:()=>{a(!1)},children:N.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:N.jsx("path",{d:"m6 9 6 6 6-6"})})})]})]}),N.jsxs("div",{style:se.List,children:[o.length===0&&N.jsx(B.EmptyState,{size:"sm",title:"No recent errors",description:"Error details will appear here."}),o.slice().reverse().map(m=>{const h=l===m.id;return N.jsxs("div",{style:se.Notice,children:[N.jsxs("div",{style:se.Row,children:[N.jsxs("svg",{style:se.ErrorIcon,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-label":"Error",role:"img",children:[N.jsx("circle",{cx:"12",cy:"12",r:"9"}),N.jsx("path",{d:"m9 9 6 6m0-6-6 6"})]}),N.jsx(B.Button,{size:"sm",variant:"ghost",style:se.Message,"aria-expanded":h,"aria-controls":`notification-${m.id}`,title:m.message,onClick:()=>{c(h?void 0:m.id),d("")},children:N.jsx(B.Text,{size:"sm",style:se.MessageText,truncate:!h,children:m.message})}),N.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":h?"Collapse details":"Expand details",title:h?"Collapse details":"Expand details","aria-expanded":h,"aria-controls":`notification-${m.id}`,onClick:()=>{c(h?void 0:m.id),d("")},children:N.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:N.jsx("path",{d:h?"m6 15 6-6 6 6":"m6 9 6 6 6-6"})})}),N.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":`Dismiss ${m.message}`,title:"Dismiss notification",onClick:()=>{i(v=>v.filter(w=>w.id!==m.id)),h&&(c(void 0),d(""))},children:N.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:N.jsx("path",{d:"m6 6 12 12m0-12L6 18"})})})]}),N.jsx("div",{id:`notification-${m.id}`,hidden:!h,style:se.Details,children:h&&N.jsxs(N.Fragment,{children:[N.jsx(B.Text,{size:"xs",tone:"muted",children:N.jsx("time",{dateTime:m.created,children:new Date(m.created).toLocaleString()})}),N.jsx(B.Code,{size:"sm",style:se.Code,children:m.details?.length?m.details:m.message}),N.jsxs("div",{style:se.Actions,children:[N.jsx(B.Button,{size:"sm",variant:"ghost",onClick:async()=>{d("");try{await navigator.clipboard.writeText(`${m.message}
|
|
3
|
+
${m.created}
|
|
4
|
+
${m.details??""}`)}catch{d("Copy failed. Select the diagnostic text and copy it manually.")}},children:"Copy details"}),m.actions?.map((v,w)=>N.jsx(B.Button,{size:"sm",variant:"outline",onClick:v.onClick,children:v.label},`${v.label}-${w}`))]})]})})]},m.id)})]}),u&&N.jsx(B.Text,{as:"p",size:"sm",role:"status",style:se.CopyError,children:u})]})]})},ce=()=>{const t=C.useContext(Cn);if(t===void 0)throw new Error("useCustomSnackbar must be used within a CustomSnackbarProvider");return t},ve={all:t=>[t,"resource-v2"],scope:(t,e)=>[t,"resource-v2","target",e],list:(t,e)=>[t,"resource-v2","enumerate",e],nativeQuery:(t,e)=>[t,"resource-v2","native-query",e],resource:(t,e)=>[t,"resource-v2","get",e]};function G(t){const s=C.useContext(it)?.pluginId??t;if(!s)throw new Error("pluginID must be provided either via PluginContext or as an explicit parameter");return s}const re=new Map,Le=new Map;let _t=0,Te=[],Wt=0;const In={phase:"checking"};function Se(t,e){const s=JSON.stringify([t,e]);let n=re.get(s);return n||(n={pluginID:t,connectionID:e,key:s,snapshot:In,listeners:new Set,users:0,version:0,generation:++Wt,starts:new Set},re.set(s,n)),n}function Ue(t,e){t.snapshot.phase==="connected"&&e.phase!=="connected"&&(t.generation=++Wt),t.snapshot=e;for(const s of t.listeners)s()}function Ee(t,e,s=!1){t.generation=++Wt,t.version++,s||(t.operation=void 0),Ue(t,e)}function fs(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 zt(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 _n(t,e){const s=fs(t.status);return{phase:s,connection:e,message:zt(t.error||t.details)||(s==="error"?"The connection is not ready.":void 0)}}function xn(t,e){const s=ie(t);return{phase:s.status===401?"unauthorized":s.status===403?"forbidden":s.status===404?"not-found":"error",connection:e,message:zt(s.detail||s.title)}}function xt(t,e){e=zt(e)||"The plugin is unavailable.",Le.set(t,e);for(const s of re.values())s.pluginID===t&&Ee(s,{phase:"error",message:e,connection:s.snapshot.connection})}function sn(t){const e=Le.delete(t);for(const s of re.values())s.pluginID===t&&(!e&&s.snapshot.phase==="checking"&&s.operation?.kind==="check"||(Ee(s,{phase:"checking",connection:s.snapshot.connection}),s.users&&me(s,"check").catch(()=>{})))}function ke(){if(!(typeof document<"u"&&document.visibilityState==="hidden"))for(const t of re.values())t.users&&!Le.has(t.pluginID)&&me(t,"check",!0).catch(()=>{})}function ps(){Te.length||(Te=[K.On("connection/status",({data:t})=>{const e=re.get(JSON.stringify([t.pluginID,t.connectionID]));!e||Le.has(t.pluginID)||e.stop&&t.status!=="DISCONNECTED"||t.status!=="DISCONNECTED"&&e.starts.size&&e.operation?.kind!=="start"||Ee(e,_n({status:t.status,error:"",details:""},e.snapshot.connection),t.status==="CONNECTED")}),K.On("plugin/crash",({data:t})=>xt(t.pluginID,t.error||"The plugin stopped unexpectedly.")),K.On("plugin/crash_recovery_failed",({data:t})=>xt(t.pluginID,t.error||"Plugin recovery failed.")),K.On("plugin/recovered",({data:t})=>sn(t.pluginID)),K.On("plugin/state_change",({data:t})=>{t.to==="Running"?sn(t.pluginID):xt(t.pluginID,t.reason||`The plugin is ${t.to}.`)})],typeof window<"u"&&(window.addEventListener("focus",ke),window.addEventListener("pageshow",ke),Te.push(()=>{window.removeEventListener("focus",ke),window.removeEventListener("pageshow",ke)})),typeof document<"u"&&(document.addEventListener("visibilitychange",ke),Te.push(()=>document.removeEventListener("visibilitychange",ke))))}function Re(t){return re.set(t.key,t),t.users++,_t++,ps(),()=>{if(t.users--,_t--,t.users||(Ee(t,In),re.get(t.key)===t&&re.delete(t.key)),!_t){for(const e of Te)e();Te=[],Le.clear()}}}function me(t,e,s=!1){if(t.stop)return Promise.reject(new Error("Connection is disconnecting. Wait for it to stop before connecting."));const n=Le.get(t.pluginID);if(n)return Ue(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 o=++t.version;(!s||t.snapshot.phase!=="connected")&&Ue(t,{phase:e==="start"?"connecting":"checking",connection:t.snapshot.connection}),e==="start"&&t.starts.add(o);const i=Promise.resolve().then(()=>{if(t.version!==o)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===o&&Ue(t,_n(r,r.connection??t.snapshot.connection)),r),r=>{throw t.version===o&&Ue(t,xn(r,t.snapshot.connection)),r}).finally(()=>{e==="start"&&t.starts.delete(o),t.operation?.version===o&&(t.operation=void 0)});return t.operation={kind:e,promise:i,version:o},i}function lt(t,e){return{getSnapshot:()=>Se(t,e).snapshot,subscribe:s=>{const n=Se(t,e),o=n.users===0,i=Re(n);return n.listeners.add(s),o&&me(n,"check").catch(()=>{}),()=>{n.listeners.delete(s),i()}},connect:async()=>{const s=Se(t,e),n=Re(s);try{await me(s,"start")}catch{}finally{n()}},retry:async()=>{const s=Se(t,e),n=Re(s);try{await me(s,"check")}catch{}finally{n()}}}}async function Ge(t,e){const s=Se(t,e),n=Re(s);try{try{await me(s,"check",!0)}catch{}if(s.snapshot.phase!=="connected")throw new Error(s.snapshot.message||`Connection ${e} is ${s.snapshot.phase}. Connect before continuing.`)}finally{n()}}async function gs(t,e,s){const n=Se(t,e),o=Re(n);try{try{await me(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 s();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{o()}}function Rn(t,e){return re.get(JSON.stringify([t,e]))?.generation}function Dn(t,e,s){const n=re.get(JSON.stringify([t,e]));return s!==void 0&&n?.generation===s&&n.snapshot.phase==="connected"}async function hs(t,e){const s=Se(t,e),n=Re(s);try{return await me(s,"start")}finally{n()}}function On(t,e){const s=Se(t,e);if(s.stop)return s.stop;const n=Re(s),o=Promise.resolve().then(()=>k.StopConnection(t,e)).then(i=>(Ee(s,{phase:"disconnected",connection:i}),i),i=>{throw Ee(s,xn(i,s.snapshot.connection)),i}).finally(()=>{s.stop=void 0,n()});return s.stop=o,Ee(s,{phase:"disconnected",message:"Disconnecting. Wait for the connection to stop before reconnecting.",connection:s.snapshot.connection}),o}function on(t,e,s=!1){const n=re.get(JSON.stringify([t,e]));n&&(Ee(n,{phase:s?"not-found":"checking",connection:s?void 0:n.snapshot.connection}),!s&&n.users&&me(n,"check").catch(()=>{}))}function Rt(t){if(!t.applied)throw new Error("Connection profile was not applied");return t}const ys=t=>{const e=F.c(91),{pluginID:s,connectionID:n,enabled:o}=t,i=o===void 0?!0:o,r=G(s),a=D.useQueryClient(),{showSnackbar:l}=ce();let c;e[0]!==n||e[1]!==r?(c=[r,"connection","detail",n],e[0]=n,e[1]=r,e[2]=c):c=e[2];const u=c;let d;e[3]!==r||e[4]!==a?(d=async()=>{await Promise.all([a.invalidateQueries({queryKey:[r,"connection"]}),a.invalidateQueries({queryKey:ve.all(r)}),a.invalidateQueries({queryKey:[r,"resource-v2","editor-schemas"]})])},e[3]=r,e[4]=a,e[5]=d):d=e[5];const f=d;let p;e[6]!==n||e[7]!==f||e[8]!==r?(p=async()=>{on(r,n),await f()},e[6]=n,e[7]=f,e[8]=r,e[9]=p):p=e[9];const y=p;let g;e[10]!==n||e[11]!==r?(g=()=>hs(r,n),e[10]=n,e[11]=r,e[12]=g):g=e[12];let m;e[13]!==l?(m=te(l,"Failed to start connection"),e[13]=l,e[14]=m):m=e[14];let h;e[15]!==f||e[16]!==g||e[17]!==m?(h={mutationFn:g,onSuccess:f,onError:m},e[15]=f,e[16]=g,e[17]=m,e[18]=h):h=e[18];const{mutateAsync:v}=D.useMutation(h);let w;e[19]!==n||e[20]!==r?(w=()=>On(r,n),e[19]=n,e[20]=r,e[21]=w):w=e[21];let S;e[22]!==l?(S=te(l,"Failed to stop connection"),e[22]=l,e[23]=S):S=e[23];let I;e[24]!==f||e[25]!==w||e[26]!==S?(I={mutationFn:w,onSuccess:f,onError:S},e[24]=f,e[25]=w,e[26]=S,e[27]=I):I=e[27];const{mutateAsync:R}=D.useMutation(I);let b;e[28]!==r?(b=he=>{const{connection:Ie,credentials:De}=he;return k.SaveConnectionProfile(r,Ie,De).then(Rt)},e[28]=r,e[29]=b):b=e[29];let E,O;e[30]!==l?(E=()=>{l("Connection profile saved","success")},O=te(l,"Failed to save connection profile"),e[30]=l,e[31]=E,e[32]=O):(E=e[31],O=e[32]);let x;e[33]!==y||e[34]!==b||e[35]!==E||e[36]!==O?(x={mutationFn:b,onSuccess:E,onError:O,onSettled:y},e[33]=y,e[34]=b,e[35]=E,e[36]=O,e[37]=x):x=e[37];const{mutateAsync:q}=D.useMutation(x);let A;e[38]!==q?(A=(he,Ie)=>q({connection:he,credentials:Ie}),e[38]=q,e[39]=A):A=e[39];const Q=A;let _;e[40]!==n||e[41]!==r?(_=()=>k.ImportConnectionProfile(r,n).then(Rt),e[40]=n,e[41]=r,e[42]=_):_=e[42];let P,T;e[43]!==l?(P=()=>{l("Connection profile imported","success")},T=te(l,"Failed to import connection profile"),e[43]=l,e[44]=P,e[45]=T):(P=e[44],T=e[45]);let j;e[46]!==y||e[47]!==_||e[48]!==P||e[49]!==T?(j={mutationFn:_,onSuccess:P,onError:T,onSettled:y},e[46]=y,e[47]=_,e[48]=P,e[49]=T,e[50]=j):j=e[50];const{mutateAsync:L}=D.useMutation(j);let M;e[51]!==n||e[52]!==r?(M=()=>k.ResetConnectionProfile(r,n).then(Rt),e[51]=n,e[52]=r,e[53]=M):M=e[53];let $,W;e[54]!==l?($=()=>{l("Connection profile reset","success")},W=te(l,"Failed to reset connection profile"),e[54]=l,e[55]=$,e[56]=W):($=e[55],W=e[56]);let V;e[57]!==y||e[58]!==M||e[59]!==$||e[60]!==W?(V={mutationFn:M,onSuccess:$,onError:W,onSettled:y},e[57]=y,e[58]=M,e[59]=$,e[60]=W,e[61]=V):V=e[61];const{mutateAsync:z}=D.useMutation(V);let H;e[62]!==n||e[63]!==r?(H=()=>k.RemoveConnection(r,n),e[62]=n,e[63]=r,e[64]=H):H=e[64];let U;e[65]!==n||e[66]!==r||e[67]!==l?(U=()=>{on(r,n,!0),l("Connection disabled","success")},e[65]=n,e[66]=r,e[67]=l,e[68]=U):U=e[68];let X;e[69]!==l?(X=te(l,"Failed to disable connection"),e[69]=l,e[70]=X):X=e[70];let ee;e[71]!==f||e[72]!==H||e[73]!==U||e[74]!==X?(ee={mutationFn:H,onSuccess:U,onError:X,onSettled:f},e[71]=f,e[72]=H,e[73]=U,e[74]=X,e[75]=ee):ee=e[75];const{mutateAsync:ae}=D.useMutation(ee);let fe;e[76]!==n||e[77]!==r?(fe=()=>k.GetConnection(r,n),e[76]=n,e[77]=r,e[78]=fe):fe=e[78];const we=i&&!!n;let be;e[79]!==u||e[80]!==fe||e[81]!==we?(be={queryKey:u,queryFn:fe,enabled:we},e[79]=u,e[80]=fe,e[81]=we,e[82]=be):be=e[82];const Ce=D.useQuery(be);let ge;return e[83]!==Ce||e[84]!==L||e[85]!==ae||e[86]!==z||e[87]!==Q||e[88]!==v||e[89]!==R?(ge={connection:Ce,startConnection:v,stopConnection:R,saveConnectionProfile:Q,importConnectionProfile:L,resetConnectionProfile:z,removeConnection:ae},e[83]=Ce,e[84]=L,e[85]=ae,e[86]=z,e[87]=Q,e[88]=v,e[89]=R,e[90]=ge):ge=e[90],ge},Nn=t=>[t,"connection","list"],ms=t=>{const e=F.c(17),{plugin:s}=t,n=G(s),o=D.useQueryClient(),{showSnackbar:i}=ce();let r;e[0]!==n?(r=Nn(n),e[0]=n,e[1]=r):r=e[1];const a=r;let l;e[2]!==o||e[3]!==a?(l=m=>{const h=m.data;console.log("got update to connections",h),o.setQueryData(a,h)},e[2]=o,e[3]=a,e[4]=l):l=e[4];const c=l;let u,d;e[5]!==c||e[6]!==n?(u=()=>{const m=K.On(`${n}/connection/sync`,c);return()=>{m()}},d=[n,c],e[5]=c,e[6]=n,e[7]=u,e[8]=d):(u=e[7],d=e[8]),C.useEffect(u,d);let f;e[9]!==n||e[10]!==i?(f=async()=>{try{return await k.ListConnections(n)}catch(m){const h=m;console.log(h),te(i,"Failed to load connections")(h)}return[]},e[9]=n,e[10]=i,e[11]=f):f=e[11];let p;e[12]!==a||e[13]!==f?(p={queryKey:a,queryFn:f,staleTime:3e4,placeholderData:D.keepPreviousData},e[12]=a,e[13]=f,e[14]=p):p=e[14];const y=D.useQuery(p);let g;return e[15]!==y?(g={connections:y},e[15]=y,e[16]=g):g=e[16],g},vs={phase:"checking"},ws={getSnapshot:()=>vs,subscribe:()=>()=>{},connect:async()=>{},retry:async()=>{}};function ne(t){const e=F.c(8),{pluginID:s,connectionID:n,enabled:o}=t,i=o===void 0?!0:o,r=G(s);let a;e[0]!==n||e[1]!==i||e[2]!==r?(a=i?lt(r,n):ws,e[0]=n,e[1]=i,e[2]=r,e[3]=a):a=e[3];const l=a,c=C.useSyncExternalStore(l.subscribe,l.getSnapshot,l.getSnapshot);let u;return e[4]!==c||e[5]!==l.connect||e[6]!==l.retry?(u={...c,connect:l.connect,retry:l.retry},e[4]=c,e[5]=l.connect,e[6]=l.retry,e[7]=u):u=e[7],u}function oe(t,e){const s=D.useQueryClient();return C.useCallback(async(n,o,i,r=e)=>{const a=r,l=Rn(t,a),c=()=>l!==void 0&&Dn(t,a,l);if(o.aborted||!c())throw new D.CancelledError({revert:!0});let u,d=!1,f=!1;const p=()=>{u&&"cancel"in u&&typeof u.cancel=="function"&&Promise.resolve(u.cancel()).catch(m=>{console.error("Failed to cancel resource query",m)}),g()},y=lt(t,a).subscribe(()=>{c()||(d=!0,s.cancelQueries({queryKey:n,exact:!0}).catch(m=>{console.error("Failed to cancel invalidated resource query",m)}))}),g=()=>{f||(f=!0,y())};o.addEventListener("abort",p,{once:!0});try{if(o.aborted||d||!c())throw new D.CancelledError({revert:!0});u=i();const m=await u;if(o.aborted||d||!c())throw new D.CancelledError({revert:!0});return m}finally{o.removeEventListener("abort",p),g()}},[t,e,s])}const bs=t=>{const e=F.c(20),{pluginID:s,route:n,dimension:o,enabled:i}=t,r=i===void 0?!0:i,a=G(s),l=r&&!!o;let c;e[0]!==a||e[1]!==n.connection||e[2]!==l?(c={pluginID:a,connectionID:n.connection,enabled:l},e[0]=a,e[1]=n.connection,e[2]=l,e[3]=c):c=e[3];const u=ne(c),d=oe(a,n.connection),f=r&&!!a&&!!n.connection&&!!o&&u.phase==="connected";let p;e[4]!==o||e[5]!==a||e[6]!==n?(p=[a,"resource-v2","scope-values",n,o],e[4]=o,e[5]=a,e[6]=n,e[7]=p):p=e[7];let y;e[8]!==o||e[9]!==d||e[10]!==a||e[11]!==f||e[12]!==n?(y=f?v=>{const{signal:w,queryKey:S}=v;return d(S,w,()=>k.ScopeValues(a,n,o))}:D.skipToken,e[8]=o,e[9]=d,e[10]=a,e[11]=f,e[12]=n,e[13]=y):y=e[13];let g;e[14]!==f||e[15]!==p||e[16]!==y?(g={queryKey:p,queryFn:y,enabled:f},e[14]=f,e[15]=p,e[16]=y,e[17]=g):g=e[17];const m=D.useQuery(g);let h;return e[18]!==m?(h={values:m},e[18]=m,e[19]=h):h=e[19],h};function Pt(t){const e=Object.values(t.states),s=e.length,n=e.filter(r=>r==="following"||r==="finished").length,o=e.filter(r=>r==="failed").length,i=e.filter(r=>r==="following"||r==="finished"||r==="failed"||r==="closed").length;return{pluginID:t.pluginID,connectionID:t.connectionID,totalResources:s,trackedTotal:s,syncedCount:n,errorCount:o,doneCount:i,progress:s?i/s:0}}function ut(t){return t.trackedTotal>0&&t.doneCount>=t.trackedTotal}function kn(t){return t.some(e=>!ut(e))}function Tn(t){const e=t.reduce((s,n)=>s+n.trackedTotal,0);return e?t.reduce((s,n)=>s+n.doneCount,0)/e:0}function Vt(t,e){return JSON.stringify([t,e.route.connection])}function At(t,e,s){const n=Vt(e,s);let o=t.get(n);return o||(o={states:{},pluginID:e,connectionID:s.route.connection},t.set(n,o)),o.states[s.type]=s.status.state,o}function Ss(){const[t,e]=C.useState(new Map),s=C.useRef(t),n=C.useRef(new Map),o=C.useRef(new Map),[i,r]=C.useState(!0),[a,l]=C.useState(),c=C.useRef({generation:0}),[u,d]=C.useState({}),[f,p]=C.useState(new Map),y=C.useRef(new Map),[g,m]=C.useState(new Map);C.useEffect(()=>{const _=K.On("plugin/crash_recovery_failed",T=>{const j=T.data,L=j?.pluginID;L&&m(M=>{const $=new Map(M);return $.set(L,j.error??"Crash recovery failed"),$})}),P=K.On("plugin/recovered",T=>{const L=T.data?.pluginID;L&&m(M=>{if(!M.has(L))return M;const $=new Map(M);return $.delete(L),$})});return()=>{_(),P()}},[]);const h=C.useCallback(async()=>{const _=++c.current.generation;n.current.clear(),o.current.clear();let P;try{P=k.GetAllConnectionStates()}catch(T){P=Promise.reject(T)}await P.then(T=>{if(_!==c.current.generation||!T)return;const j={},L=new Map,M=new Map;for(const[$,W]of Object.entries(T))if(W){j[$]=W.map(V=>V.connection);for(const V of W){const z=JSON.stringify([$,V.connection.id]),H=n.current.get(z)??{readiness:V.readiness,readinessError:V.readinessError};if(L.set(z,H),H.readiness!=="CONNECTED")continue;const U={pluginID:$,connectionID:V.connection.id,states:{}};if(V.resources)for(const[X,ee]of Object.entries(V.resources))U.states[X]=ee;Object.assign(U.states,o.current.get(z)?.states),y.current.set(z,U),M.set(z,Pt(U))}}d(j);for(const[$,W]of n.current)L.set($,W);s.current=L,e(L),p(M)}).catch(T=>{_===c.current.generation&&l(ie(T))}).finally(()=>{_===c.current.generation&&r(!1)})},[]),v=C.useCallback(async()=>{r(!0),l(void 0),await h()},[h]);C.useEffect(()=>{const _=c.current;return h().catch(P=>{console.error("Connection status refresh failed:",P)}),()=>{++_.generation}},[h]),C.useEffect(()=>{let _=!0,P=0;const T=K.On("connection/status",j=>{const L=j.data,M=JSON.stringify([L.pluginID,L.connectionID]),$=L.status==="DISCONNECTED"||L.status==="PENDING"||L.status==="CONNECTED"||L.status==="FAILED"?L.status:"UNKNOWN",W={readiness:$};n.current.set(M,W);const V=new Map(s.current);V.set(M,W),s.current=V,e(V),$!=="CONNECTED"&&(p(U=>{const X=new Map(U);return X.delete(M),X}),y.current.delete(M),o.current.delete(M));const z=++P,H=c.current.generation;k.ListAllConnections().then(U=>{if(!_||z!==P||H!==c.current.generation||!U)return;const X={};for(const[ee,ae]of Object.entries(U))ae!=null&&(X[ee]=ae);d(X)}).catch(U=>{_&&z===P&&H===c.current.generation&&console.error("Connection metadata refresh failed:",U)})});return()=>{_=!1,T()}},[]);const w=C.useCallback(_=>{const P=_.data,T=Vt(P.pluginID,P);if(s.current.get(T)?.readiness!=="CONNECTED")return;const j=At(y.current,P.pluginID,P);At(o.current,P.pluginID,P);const L=Pt(j);p(M=>{const $=new Map(M);return $.set(T,L),$})},[]);C.useEffect(()=>K.On("source/STATE",w),[w]);const S=C.useCallback(async(_,P)=>{await On(_,P)},[]),I=C.useCallback(async(_,P)=>{s.current.get(JSON.stringify([_,P]))?.readiness==="CONNECTED"&&await k.RetryConnectionSources(_,{connection:P})},[]),R=C.useCallback(async _=>{const P=g.get(_);m(T=>{if(!T.has(_))return T;const j=new Map(T);return j.delete(_),j});try{await k.RetryFailedPlugin(_)}catch(T){throw m(j=>{const L=new Map(j);return L.set(_,P??"Reload failed"),L}),T}},[g]),b=[],E=new Set(t.keys());for(const[_,P]of Object.entries(u))for(const T of P)E.add(JSON.stringify([_,T.id]));for(const _ of E){const[P,T]=JSON.parse(_),L=(u[P]??[]).find(H=>H.id===T),M=t.get(_)??{readiness:"UNKNOWN"},$=M.readiness==="CONNECTED"?f.get(_):void 0,W=$!=null&&!ut($),V=$!=null&&$.errorCount>0,z=g.get(P);b.push({pluginID:P,connectionID:T,name:L?.name??T,avatar:L?.avatar??"",readiness:M.readiness,readinessError:M.readinessError,sync:$,isSyncing:W,hasErrors:V||z!=null||M.readiness==="FAILED"||M.readinessError!=null,pluginFailed:z!=null,pluginError:z})}const O=new Map;for(const _ of b){const P=O.get(_.pluginID)??[];P.push(_),O.set(_.pluginID,P)}const x=b.flatMap(_=>_.sync?[_.sync]:[]),q=b.filter(_=>_.isSyncing),A=b.filter(_=>_.hasErrors),Q=b.filter(_=>_.pluginFailed);return{isLoading:i,error:a,refresh:v,entries:b,grouped:O,connectedCount:b.filter(_=>_.readiness==="CONNECTED").length,syncingCount:q.length,errorCount:A.length,failedCount:Q.length,hasSyncing:kn(x),aggregateProgress:Tn(x),disconnect:S,retrySources:I,retryPlugin:R}}function Es(t){const e=F.c(9),{pluginID:s}=t,n=G(s);let o,i;e[0]!==n?(o=[n,"connection","profiles"],i=u=>{const{signal:d}=u;d.throwIfAborted();const f=k.ListConnectionProfiles(n),p=()=>{f.cancel()};return d.addEventListener("abort",p,{once:!0}),f.finally(()=>d.removeEventListener("abort",p))},e[0]=n,e[1]=o,e[2]=i):(o=e[1],i=e[2]);const r=!!n;let a;e[3]!==o||e[4]!==i||e[5]!==r?(a={queryKey:o,queryFn:i,enabled:r,retry:!1},e[3]=o,e[4]=i,e[5]=r,e[6]=a):a=e[6];const l=D.useQuery(a);let c;return e[7]!==l?(c={profiles:l},e[7]=l,e[8]=c):c=e[8],c}const Cs={display:"flex",alignItems:"center",justifyContent:"center",minHeight:240,height:"100%",padding:24,boxSizing:"border-box",color:"var(--ov-color-fg-default)"},Is={width:"100%",maxWidth:560,minWidth:0,display:"flex",flexDirection:"column",gap:16},_s={display:"flex",alignItems:"center",gap:12},xs={margin:0,fontSize:"1.125rem",fontWeight:600},Rs={display:"flex",flexWrap:"wrap",gap:8},Dt={margin:0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},Ds={width:20,height:20,flexShrink:0},Os={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 Pn(t){const e=F.c(44),{state:s,connectionName:n,connectionDetails:o,onEditConnection:i,onBack:r,backLabel:a}=t,l=a===void 0?"Back to connections":a,c=C.useId();if(s.phase==="connected")return null;const u=s.phase==="checking"||s.phase==="connecting",d=Os[s.phase],f=n??s.connection?.name;let p;e[0]!==o||e[1]!==f?(p=o??(f&&N.jsx(B.Text,{size:"sm",tone:"muted",style:Dt,children:f})),e[0]=o,e[1]=f,e[2]=p):p=e[2];let y;e[3]!==u?(y=u&&N.jsx(B.Spinner,{style:Ds,"aria-hidden":"true"}),e[3]=u,e[4]=y):y=e[4];let g;e[5]!==c||e[6]!==d.title?(g=N.jsx("h2",{id:c,style:xs,children:d.title}),e[5]=c,e[6]=d.title,e[7]=g):g=e[7];let m;e[8]!==y||e[9]!==g?(m=N.jsxs("div",{style:_s,role:"status","aria-live":"polite",children:[y,g]}),e[8]=y,e[9]=g,e[10]=m):m=e[10];let h;e[11]!==d.description?(h=N.jsx(B.Text,{as:"p",size:"sm",tone:"muted",style:Dt,children:d.description}),e[11]=d.description,e[12]=h):h=e[12];let v;e[13]!==u||e[14]!==s.message?(v=s.message&&N.jsx(B.Text,{as:"p",size:"sm",style:Dt,role:u?"status":"alert",children:s.message}),e[13]=u,e[14]=s.message,e[15]=v):v=e[15];let w;e[16]!==u||e[17]!==s?(w=s.phase!=="not-found"&&N.jsx(B.Button,{size:"sm",variant:"solid",color:"brand",disabled:u,onClick:()=>{s.connect()},children:"Connect and continue"}),e[16]=u,e[17]=s,e[18]=w):w=e[18];const S=s.phase==="checking";let I;e[19]!==s?(I=()=>{s.retry()},e[19]=s,e[20]=I):I=e[20];let R;e[21]!==I||e[22]!==S?(R=N.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",disabled:S,onClick:I,children:"Retry check"}),e[21]=I,e[22]=S,e[23]=R):R=e[23];let b;e[24]!==i?(b=i&&N.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",onClick:i,children:"Edit connection"}),e[24]=i,e[25]=b):b=e[25];let E;e[26]!==l||e[27]!==r?(E=r&&N.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",onClick:r,children:l}),e[26]=l,e[27]=r,e[28]=E):E=e[28];let O;e[29]!==R||e[30]!==b||e[31]!==E||e[32]!==w?(O=N.jsxs("div",{style:Rs,children:[w,R,b,E]}),e[29]=R,e[30]=b,e[31]=E,e[32]=w,e[33]=O):O=e[33];let x;e[34]!==O||e[35]!==p||e[36]!==m||e[37]!==h||e[38]!==v?(x=N.jsxs("div",{style:Is,children:[p,m,h,v,O]}),e[34]=O,e[35]=p,e[36]=m,e[37]=h,e[38]=v,e[39]=x):x=e[39];let q;return e[40]!==u||e[41]!==c||e[42]!==x?(q=N.jsx("section",{style:Cs,"aria-labelledby":c,"aria-busy":u,children:x}),e[40]=u,e[41]=c,e[42]=x,e[43]=q):q=e[43],q}function Ns(t){const e=F.c(9),{pluginID:s,connectionID:n,children:o,fallback:i}=t;let r;e[0]!==n||e[1]!==s?(r={pluginID:s,connectionID:n},e[0]=n,e[1]=s,e[2]=r):r=e[2];const a=ne(r);if(a.phase!=="connected"){let c;return e[3]!==n||e[4]!==i||e[5]!==a?(c=i?i(a):N.jsx(Pn,{state:a,connectionName:a.connection?.name||n}),e[3]=n,e[4]=i,e[5]=a,e[6]=c):c=e[6],c}let l;return e[7]!==o?(l=N.jsx(N.Fragment,{children:o}),e[7]=o,e[8]=l):l=e[8],l}function ks(t){const e=F.c(7),s=G(t.pluginID);let n;e[0]!==s||e[1]!==t.connectionID?(n=JSON.stringify([s,t.connectionID]),e[0]=s,e[1]=t.connectionID,e[2]=n):n=e[2];let o;return e[3]!==s||e[4]!==t||e[5]!==n?(o=C.createElement(Ns,{...t,pluginID:s,key:n}),e[3]=s,e[4]=t,e[5]=n,e[6]=o):o=e[6],o}const Be={supported:void 0,transportAvailable:!1,isLoading:!1},Ae=new Map;let Ot,rn=0;function ye(t,e){const s={...t.state,...e};Object.keys(s).every(n=>Object.is(s[n],t.state[n]))||(t.state=s,t.listeners.forEach(n=>n()))}function qe(t,e){let s=Ae.get(t);s||(s={retired:new Set,connections:new Map},Ae.set(t,s));let n=s.connections.get(e);return n||(n={pluginID:t,connectionID:e,state:Be,listeners:new Set,epoch:0,eventVersion:0},s.connections.set(e,n)),n}function Ts(t){return t&&/^[0-9]+$/.test(t)?BigInt(t):void 0}function An(t,e){if(Object.is(t,e))return!0;if(t===null||e===null||typeof t!="object"||typeof e!="object"||Array.isArray(t)!==Array.isArray(e))return!1;const s=t,n=e,o=Object.keys(s);return o.length!==Object.keys(n).length?!1:o.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&An(s[i],n[i]))}function Ps(t,e){if(!t)return e;const s={...e.entries};let n=Object.keys(t.entries).length===Object.keys(s).length;for(const o of Object.keys(s))An(t.entries[o],s[o])?s[o]=t.entries[o]:n=!1;return{...e,entries:n?t.entries:s}}function qn(t,e){const s=Ae.get(t.pluginID);if(!s||s.retired.has(t.registrationID))return;if(s.registrationID!==t.registrationID){if(s.registrationID&&!e)return;if(s.registrationID){s.retired.add(s.registrationID);for(const i of s.connections.values())i.epoch++,i.pending=void 0,i.revision=void 0,ye(i,{...Be,snapshot:void 0,error:void 0})}s.registrationID=t.registrationID}const n=t.snapshot?.connectionID??t.connectionID,o=n===void 0?[...s.connections.values()]:[s.connections.get(n)].filter(i=>!!i);for(const i of o){e&&i.eventVersion++;const r=i.state.transportAvailable,a=Ts(t.snapshot?.revision??t.revision);if(a!==void 0&&(i.revision===void 0||a>i.revision)&&(i.revision=a,ye(i,{snapshot:t.removed?void 0:t.snapshot?Ps(i.state.snapshot,t.snapshot):i.state.snapshot})),!t.transportAvailable){i.epoch++,i.pending=void 0,ye(i,{supported:t.supported,transportAvailable:!1,isLoading:!1});continue}if(n===void 0){ye(i,{supported:t.supported,transportAvailable:!t.supported}),t.supported&&i.listeners.size?nt(i,!1):ye(i,{isLoading:!1,error:void 0});continue}ye(i,{supported:t.supported,transportAvailable:!e||r,isLoading:!1,error:void 0}),e&&!r&&i.listeners.size&&nt(i,!1)}}function nt(t,e){if(!t.listeners.size||t.state.supported===!1)return Promise.resolve();if(!e&&t.pending)return t.pending;const s=t.epoch,n=t.eventVersion;ye(t,{isLoading:!0,error:void 0});const o=e?k.RefreshConnectionMetadata:k.GetConnectionMetadata,i=Promise.resolve().then(()=>{if(!(t.epoch!==s||!t.listeners.size||t.state.supported===!1))return o(t.pluginID,t.connectionID)}).then(r=>{if(!r||t.epoch!==s||!t.listeners.size||r.pluginID!==t.pluginID)return;const a=r.snapshot?.connectionID??r.connectionID;a!==void 0&&a!==t.connectionID||qn({...r,connectionID:t.connectionID},!1)}).catch(r=>{t.epoch===s&&t.eventVersion===n&&t.listeners.size&&ye(t,{error:r,isLoading:!1})}).finally(()=>{t.pending===i&&(t.pending=void 0),t.epoch===s&&t.listeners.size&&ye(t,{isLoading:!1})});return e||(t.pending=i),i}function Jt(t,e){return t.listeners.add(e),rn++===0&&(Ot=K.On("resource/connection/metadata",s=>qn(s.data,!0))),t.listeners.size===1&&nt(t,!1),()=>{t.listeners.delete(e),t.listeners.size||(t.epoch++,t.pending=void 0,Ae.get(t.pluginID)?.connections.delete(t.connectionID)),--rn===0&&(Ot?.(),Ot=void 0,Ae.clear())}}function As(t,e){const s=F.c(15),n=G(t),o=n!==void 0&&e!==void 0;let i;s[0]!==e||s[1]!==o||s[2]!==n?(i=p=>o?Jt(qe(n,e),p):Ls,s[0]=e,s[1]=o,s[2]=n,s[3]=i):i=s[3];const r=i;let a;s[4]!==e||s[5]!==o||s[6]!==n?(a=()=>o?qe(n,e).state:Be,s[4]=e,s[5]=o,s[6]=n,s[7]=a):a=s[7];const l=a,c=C.useSyncExternalStore(r,l,qs);let u;s[8]!==e||s[9]!==o||s[10]!==n?(u=()=>{const p=o?Ae.get(n)?.connections.get(e):void 0;return p?nt(p,!0):Promise.resolve()},s[8]=e,s[9]=o,s[10]=n,s[11]=u):u=s[11];const d=u;let f;return s[12]!==d||s[13]!==c?(f={...c,refresh:d},s[12]=d,s[13]=c,s[14]=f):f=s[14],f}function qs(){return Be}function Ls(){}function Fs(t,e){const s=JSON.parse(e);let n=new Map;return{subscribe(o){const i=s.map(r=>Jt(qe(t,r),o));return()=>i.forEach(r=>r())},read(){const o=s.map(i=>qe(t,i).state);return(n.size!==s.length||s.some((i,r)=>n.get(i)!==o[r]))&&(n=new Map(s.map((i,r)=>[i,o[r]]))),n}}}function Ms(t,e){const s=F.c(5),n=G(t);let o;s[0]!==e?(o=JSON.stringify([...new Set(e)]),s[0]=e,s[1]=o):o=s[1];const i=o;let r;s[2]!==i||s[3]!==n?(r=Fs(n,i),s[2]=i,s[3]=n,s[4]=r):r=s[4];const a=r;return C.useSyncExternalStore(a.subscribe,a.read,a.read)}function js(t,e,s){let n,o;return{read(){const i=e===void 0?Be:qe(t,e).state;return n!==i&&(o=s(i),n=i),o}}}function $s(t,e,s){const n=F.c(7),o=G(t);let i;n[0]!==e||n[1]!==o?(i=c=>e===void 0?Qs:Jt(qe(o,e),c),n[0]=e,n[1]=o,n[2]=i):i=n[2];const r=i;let a;n[3]!==e||n[4]!==o||n[5]!==s?(a=js(o,e,s),n[3]=e,n[4]=o,n[5]=s,n[6]=a):a=n[6];const l=a;return C.useSyncExternalStore(r,l.read,l.read)}function Qs(){}function Us(t,e,s){if(!e||!t?.active)return;const n=t.entries[s];return n?.state==="current"&&typeof n.value=="string"?n.value:void 0}function Ks(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 Gs(t,e,s){const n=F.c(29),o=G(t),i=D.useQueryClient();let r;n[0]!==e||n[1]!==o?(r=[o,"data",e],n[0]=e,n[1]=o,n[2]=r):r=n[2];const a=r;let l;n[3]!==s||n[4]!==e||n[5]!==o?(l=async()=>{const S=await k.Get(o,e);return S==null?s:Ks(S,s)?S:(console.warn(`[usePluginData] stored value for "${e}" has unexpected type (expected ${Array.isArray(s)?"array":typeof s}, got ${Array.isArray(S)?"array":typeof S}). Using default.`),s)},n[3]=s,n[4]=e,n[5]=o,n[6]=l):l=n[6];let c;n[7]!==a||n[8]!==l?(c={queryKey:a,queryFn:l},n[7]=a,n[8]=l,n[9]=c):c=n[9];const u=D.useQuery(c);let d;n[10]!==e||n[11]!==o?(d=async S=>{await k.Set(o,e,S)},n[10]=e,n[11]=o,n[12]=d):d=n[12];let f,p,y;n[13]!==i||n[14]!==a?(f=async S=>{await i.cancelQueries({queryKey:a});const I=i.getQueryData(a);return i.setQueryData(a,S),{previous:I}},p=(S,I,R)=>{R?.previous!==void 0&&i.setQueryData(a,R.previous)},y=()=>{i.invalidateQueries({queryKey:a})},n[13]=i,n[14]=a,n[15]=f,n[16]=p,n[17]=y):(f=n[15],p=n[16],y=n[17]);let g;n[18]!==d||n[19]!==f||n[20]!==p||n[21]!==y?(g={mutationFn:d,onMutate:f,onError:p,onSettled:y},n[18]=d,n[19]=f,n[20]=p,n[21]=y,n[22]=g):g=n[22];const m=D.useMutation(g),h=u.data??s;let v;n[23]!==m?(v=async S=>{await m.mutateAsync(S)},n[23]=m,n[24]=v):v=n[24];let w;return n[25]!==u.isLoading||n[26]!==h||n[27]!==v?(w={data:h,update:v,isLoading:u.isLoading},n[25]=u.isLoading,n[26]=h,n[27]=v,n[28]=w):w=n[28],w}const Bs=()=>{const t=C.useContext(mn);if(!t)throw new Error("useRightDrawer must be used within a RightDrawerProvider");return t},Ht=()=>{const t=C.useContext(yn);if(t===void 0)throw new Error("useBottomDrawer must be used within a BottomDrawerProvider");return t},Ws=({pluginID:t})=>{const e=G(t),{showSnackbar:s}=ce(),{createTab:n,updateTab:o}=Ht();return{createSession:D.useMutation({mutationFn:async({connectionID:r,icon:a,label:l,opts:c,recovery:u})=>{const d=`pending-${crypto.randomUUID()}`;n({id:d,title:l??"Connecting...",variant:"terminal",icon:a??"LuSquareTerminal",properties:{status:"connecting",pluginID:e,connectionID:r,opts:{...c},recovery:u}});const f=rt.SessionOptions.createFrom({command:["/bin/bash"],tty:!0,...c});try{const p=await k.CreateSession(e,r,f);if(!p)throw new Error("Failed to create session: null response");return o({id:d},{id:p.id,title:l??`Session ${p.id.substring(0,8)}`,properties:{status:"connected",pluginID:e,connectionID:r,opts:{...c},recovery:u}}),p}catch(p){const y=ie(p);return o({id:d},{properties:{status:"error",error:y.detail,pluginID:e,connectionID:r,opts:{...c},recovery:u,errorInfo:{title:y.title||"Session error",suggestion:y.detail,raw:y.detail}}}),Pe(s,p,"Failed to start session"),null}}}).mutateAsync}};function zs(t){const e=F.c(29),{pluginID:s,resourceKey:n}=t,o=G(s),{showSnackbar:i}=ce(),r=D.useQueryClient();let a;e[0]!==o||e[1]!==n?(a=["exec","native-launch",o,n],e[0]=o,e[1]=n,e[2]=a):a=e[2];const l=a;let c;e[3]!==l?(c={mutationKey:l,exact:!0},e[3]=l,e[4]=c):c=e[4];const u=D.useIsMutating(c)>0;let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d={queryKey:["exec","native-terminal-support"],queryFn:k.GetNativeTerminalSupport,staleTime:1/0,retry:!1},e[5]=d):d=e[5];const f=D.useQuery(d);let p,y;e[6]!==o||e[7]!==n?(p=["executions",o,n,"actions"],y=async()=>({exec:await k.GetHandler(o,n)}),e[6]=o,e[7]=n,e[8]=p,e[9]=y):(p=e[8],y=e[9]);const g=!!n&&f.data===!0;let m;e[10]!==p||e[11]!==y||e[12]!==g?(m={queryKey:p,queryFn:y,enabled:g,retry:!1},e[10]=p,e[11]=y,e[12]=g,e[13]=m):m=e[13];const h=D.useQuery(m),v=f.isSuccess&&f.data===!0&&h.isSuccess&&h.data.exec?.supports_native_command===!0;let w;e[14]!==o||e[15]!==i?(w=async O=>{const{connectionID:x,opts:q}=O;try{return await k.OpenNativeSession(o,x,rt.SessionOptions.createFrom({tty:!0,...q})),!0}catch(A){return Pe(i,A,"Failed to open native terminal"),!1}},e[14]=o,e[15]=i,e[16]=w):w=e[16];let S;e[17]!==l||e[18]!==w?(S={mutationKey:l,mutationFn:w,retry:!1},e[17]=l,e[18]=w,e[19]=S):S=e[19];const{mutateAsync:I}=D.useMutation(S);let R;e[20]!==v||e[21]!==I||e[22]!==l||e[23]!==r?(R=async O=>!v||r.isMutating({mutationKey:l,exact:!0})>0?!1:I(O),e[20]=v,e[21]=I,e[22]=l,e[23]=r,e[24]=R):R=e[24];const b=R;let E;return e[25]!==u||e[26]!==v||e[27]!==b?(E={openNativeSession:b,isSupported:v,isPending:u},e[25]=u,e[26]=v,e[27]=b,e[28]=E):E=e[28],E}const Vs=t=>{const e=F.c(15),{pluginID:s}=t,n=G(s),{showSnackbar:o}=ce(),{createTab:i}=Ht();let r;e[0]!==i||e[1]!==n?(r=async y=>{const{connectionID:g,resourceKey:m,resourceID:h,resourceData:v,reference:w,route:S,icon:I,label:R,target:b,follow:E,tailLines:O,params:x}=y,Q={resource_key:m,resource_id:h,resource_data:v,reference:w,route:S,options:{target:b??"",follow:E===void 0?!0:E,include_previous:!1,include_timestamps:!0,tail_lines:O===void 0?1e3:O,since_seconds:0,limit_bytes:0,include_source_events:!0,params:x??{}}},_=await k.CreateSession$1(n,g,Q);if(!_)throw new Error("Failed to create log session: null response");return i({id:_.id,title:R??`Logs ${_.id.substring(0,8)}`,variant:"logs",icon:I??"LuLogs"}),_},e[0]=i,e[1]=n,e[2]=r):r=e[2];let a;e[3]!==o?(a=te(o,"Failed to start log session"),e[3]=o,e[4]=a):a=e[4];let l;e[5]!==r||e[6]!==a?(l={mutationFn:r,onError:a},e[5]=r,e[6]=a,e[7]=l):l=e[7];const c=D.useMutation(l);let u;e[8]!==o?(u=te(o,"Failed to close log session"),e[8]=o,e[9]=u):u=e[9];let d;e[10]!==u?(d={mutationFn:Js,onError:u},e[10]=u,e[11]=d):d=e[11];const f=D.useMutation(d);let p;return e[12]!==f.mutateAsync||e[13]!==c.mutateAsync?(p={createLogSession:c.mutateAsync,closeLogSession:f.mutateAsync},e[12]=f.mutateAsync,e[13]=c.mutateAsync,e[14]=p):p=e[14],p};async function Js(t){await k.CloseSession(t)}const Hs=()=>{const t=F.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],D.useQuery(e)},Ln=t=>{const e=F.c(7);let s,n;e[0]!==t?(s=["metric","providers",t],n=()=>k.GetProvidersForResource(t),e[0]=t,e[1]=s,e[2]=n):(s=e[1],n=e[2]);const o=!!t;let i;return e[3]!==s||e[4]!==n||e[5]!==o?(i={queryKey:s,queryFn:n,enabled:o,staleTime:3e4},e[3]=s,e[4]=n,e[5]=o,e[6]=i):i=e[6],D.useQuery(i)},Ys=t=>{const e=F.c(45),{connectionID:s,resourceKey:n,resourceID:o,resourceNamespace:i,resourceData:r,reference:a,route:l,params:c,metricIDs:u,shape:d,timeRange:f,refreshInterval:p,enabled:y}=t,g=i===void 0?"":i;let m;e[0]!==u?(m=u===void 0?[]:u,e[0]=u,e[1]=m):m=e[1];const h=m,v=d===void 0?0:d,w=p===void 0?0:p,S=y===void 0?!0:y,{data:I,isLoading:R}=Ln(n);let b;e[2]!==I?(b=I??[],e[2]=I,e[3]=b):b=e[3];const E=b,O=f?Math.max(Math.floor((f.end.getTime()-f.start.getTime())/250),15e3)*1e6:0;let x;e[4]!==f?.start?(x=f?.start?.getTime(),e[4]=f?.start,e[5]=x):x=e[5];let q;e[6]!==f?.end?(q=f?.end?.getTime(),e[6]=f?.end,e[7]=q):q=e[7];let A;e[8]!==s||e[9]!==h||e[10]!==c||e[11]!==a||e[12]!==o||e[13]!==n||e[14]!==g||e[15]!==l||e[16]!==v||e[17]!==x||e[18]!==q?(A=["metric","query",s,n,o,g,a,l,c,h,v,x,q],e[8]=s,e[9]=h,e[10]=c,e[11]=a,e[12]=o,e[13]=n,e[14]=g,e[15]=l,e[16]=v,e[17]=x,e[18]=q,e[19]=A):A=e[19];let Q;e[20]!==s||e[21]!==h||e[22]!==c||e[23]!==a||e[24]!==r||e[25]!==o||e[26]!==n||e[27]!==g||e[28]!==l||e[29]!==v||e[30]!==O||e[31]!==f?.end||e[32]!==f?.start?(Q=async()=>{const V=await k.QueryAll(s,{resource_key:n,resource_id:o,resource_namespace:g,resource_data:r,reference:a,route:l,params:c,metric_ids:h,shape:v,start_time:(f?.start??new Date(0)).toISOString(),end_time:(f?.end??new Date(0)).toISOString(),step:O}),z={};for(const[H,U]of Object.entries(V))U!=null&&(z[H]=U);return z},e[20]=s,e[21]=h,e[22]=c,e[23]=a,e[24]=r,e[25]=o,e[26]=n,e[27]=g,e[28]=l,e[29]=v,e[30]=O,e[31]=f?.end,e[32]=f?.start,e[33]=Q):Q=e[33];const _=S&&!!s&&!!n&&E.length>0,P=w>0?w:void 0;let T;e[34]!==Q||e[35]!==_||e[36]!==P||e[37]!==A?(T={queryKey:A,queryFn:Q,enabled:_,refetchInterval:P,staleTime:5e3,placeholderData:D.keepPreviousData},e[34]=Q,e[35]=_,e[36]=P,e[37]=A,e[38]=T):T=e[38];const j=D.useQuery(T),L=j.data??void 0,M=R||j.isLoading,$=j.error;let W;return e[39]!==j.refetch||e[40]!==E||e[41]!==L||e[42]!==M||e[43]!==$?(W={data:L,providers:E,isLoading:M,error:$,refetch:j.refetch},e[39]=j.refetch,e[40]=E,e[41]=L,e[42]=M,e[43]=$,e[44]=W):W=e[44],W},Xs=t=>{const{pluginID:e,connectionID:s,resourceKey:n,resourceID:o,resourceNamespace:i="",resourceData:r,reference:a,route:l,params:c,metricIDs:u=[],interval:d=1e4,enabled:f=!0}=t,p=G(e),[y,g]=C.useState(null),[m,h]=C.useState(null),[v,w]=C.useState(!1),[S,I]=C.useState(null),R=C.useRef(null),b=C.useCallback(async()=>{if(!(!f||!p||!s||!n))try{const O=await k.Subscribe(p,s,{resource_key:n,resource_id:o,resource_namespace:i,resource_data:r,reference:a,route:l,params:c,metric_ids:u,interval:d*1e6});h(O),w(!0),I(null);const x=K.On(`core/metrics/data/${O}`,A=>{const Q=A.data;try{const _=JSON.parse(Q);_.results&&(g(_.results),w(!0),I(null))}catch(_){console.error("Failed to parse metric stream data:",_)}}),q=K.On(`core/metrics/error/${O}`,A=>{const Q=A.data;try{const _=JSON.parse(Q);let P="Unknown error";if(_&&typeof _=="object"&&("error"in _&&typeof _.error=="string"&&_.error&&(P=_.error),"operation_error"in _)){const T=_.operation_error;T&&typeof T=="object"&&"message"in T&&typeof T.message=="string"&&(P=T.message)}I(P),w(!1)}catch{I("Failed to parse metric stream error")}});R.current=()=>{x(),q()}}catch(O){I(O instanceof Error?O.message:String(O))}},[p,s,n,o,i,r,a,l,c,u,d,f]),E=C.useCallback(async()=>{if(m)try{await k.Unsubscribe(m)}catch(O){console.error("Failed to unsubscribe:",O)}R.current&&(R.current(),R.current=null),h(null),w(!1)},[m]);return C.useEffect(()=>()=>{m&&k.Unsubscribe(m).catch(console.error),R.current&&R.current()},[m]),{data:y,subscriptionID:m,isStreaming:v,error:S,start:b,stop:E}},xe=["networker","portforward","all-sessions"];function Zs(){const t=F.c(17),{showSnackbar:e}=ce(),s=D.useQueryClient();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:[...xe],queryFn:no,retry:!1},t[0]=n):n=t[0];const o=D.useQuery(n);let i,r;t[1]!==s?(i=()=>{const y=K.On("core/networker/portforward/created",()=>{s.invalidateQueries({queryKey:[...xe]})}),g=K.On("core/networker/portforward/closed",()=>{s.invalidateQueries({queryKey:[...xe]})});return()=>{y(),g()}},r=[s],t[1]=s,t[2]=i,t[3]=r):(i=t[2],r=t[3]),C.useEffect(i,r);let a;t[4]!==o.data?(a=o.data??[],t[4]=o.data,t[5]=a):a=t[5];const l=a;let c;t[6]!==e?(c=te(e,"Failed to close port forwarding session"),t[6]=e,t[7]=c):c=t[7];let u;t[8]!==s?(u=async()=>{await s.invalidateQueries({queryKey:[...xe]})},t[8]=s,t[9]=u):u=t[9];let d;t[10]!==c||t[11]!==u?(d={mutationFn:to,onError:c,onSuccess:u},t[10]=c,t[11]=u,t[12]=d):d=t[12];const f=D.useMutation(d);let p;return t[13]!==l||t[14]!==f.mutateAsync||t[15]!==o?(p={sessions:o,activeSessions:l,closeSession:f.mutateAsync,openInBrowser:eo},t[13]=l,t[14]=f.mutateAsync,t[15]=o,t[16]=p):p=t[16],p}function eo(t){return K.OpenURL(`http://localhost:${t}`)}async function to(t){return k.ClosePortForwardSession(t)}async function no(){return k.ListAllPortForwardSessions().catch(so)}function so(t){if(ie(t).detail.includes("not found"))return[];throw t}function oo(t){const e=F.c(36),{pluginID:s,connectionID:n,resourceID:o}=t,i=G(s);let r;e[0]!==n||e[1]!==i||e[2]!==o?(r=["networker","portforward","sessions",i,n,o],e[0]=n,e[1]=i,e[2]=o,e[3]=r):r=e[3];const a=r,{showSnackbar:l}=ce(),c=D.useQueryClient();let u;e[4]!==n||e[5]!==i||e[6]!==o||e[7]!==l?(u=async()=>k.FindPortForwardSessions(i,n,rt.FindPortForwardSessionRequest.createFrom({resource_id:o,connection_id:n})).catch(b=>{const E=ie(b);return E.detail.includes("not found")?[]:(l({message:"Failed to fetch port forward sessions",status:"error",details:E.detail}),[])}),e[4]=n,e[5]=i,e[6]=o,e[7]=l,e[8]=u):u=e[8];let d;e[9]!==a||e[10]!==u?(d={queryKey:a,queryFn:u,retry:!1},e[9]=a,e[10]=u,e[11]=d):d=e[11];const f=D.useQuery(d);let p;e[12]!==n||e[13]!==i?(p=async b=>{const{opts:E}=b,O={local_port:E.localPort||0,remote_port:E.remotePort,protocol:E.protocol||"TCP",connection_type:"RESOURCE",connection:{resource_data:E.resource,reference:E.reference,route:E.route,connection_id:n,plugin_id:i,resource_id:E.resourceId,resource_key:E.resourceKey},labels:E.labels??{},params:E.parameters??{}},x=await k.StartResourcePortForwardingSession(i,n,O);if(!x)throw new Error("Failed to start port forwarding: null response");return E.openInBrowser&&K.OpenURL(`http://localhost:${x.local_port}`),x},e[12]=n,e[13]=i,e[14]=p):p=e[14];let y;e[15]!==l?(y=te(l,"Failed to start port forwarding session"),e[15]=l,e[16]=y):y=e[16];let g;e[17]!==c||e[18]!==a?(g=async()=>{await Promise.all([c.invalidateQueries({queryKey:a}),c.invalidateQueries({queryKey:[...xe]})])},e[17]=c,e[18]=a,e[19]=g):g=e[19];let m;e[20]!==p||e[21]!==y||e[22]!==g?(m={mutationFn:p,onError:y,onSuccess:g},e[20]=p,e[21]=y,e[22]=g,e[23]=m):m=e[23];const h=D.useMutation(m);let v;e[24]!==l?(v=te(l,"Failed to close port forwarding session"),e[24]=l,e[25]=v):v=e[25];let w;e[26]!==c||e[27]!==a?(w=async()=>{await Promise.all([c.invalidateQueries({queryKey:a}),c.invalidateQueries({queryKey:[...xe]})])},e[26]=c,e[27]=a,e[28]=w):w=e[28];let S;e[29]!==v||e[30]!==w?(S={mutationFn:ro,onError:v,onSuccess:w},e[29]=v,e[30]=w,e[31]=S):S=e[31];const I=D.useMutation(S);let R;return e[32]!==I.mutateAsync||e[33]!==h.mutateAsync||e[34]!==f?(R={sessions:f,forward:h.mutateAsync,close:I.mutateAsync},e[32]=I.mutateAsync,e[33]=h.mutateAsync,e[34]=f,e[35]=R):R=e[35],R}async function ro(t){const{opts:e}=t;return k.ClosePortForwardSession(e.sessionID)}const io=()=>{const t=C.useContext(vn);if(!t)throw new Error("useConfirmationModal must be used within a ConfirmationModalProvider");return t},co=t=>{const e=F.c(31),{pluginID:s,request:n,enabled:o}=t,i=o===void 0?!0:o,r=G(s),a=n?.request.route.connection??"",l=i&&!!n;let c;e[0]!==a||e[1]!==r||e[2]!==l?(c={pluginID:r,connectionID:a,enabled:l},e[0]=a,e[1]=r,e[2]=l,e[3]=c):c=e[3];const u=ne(c),d=oe(r,a),f=D.useQueryClient(),{showSnackbar:p}=ce();let y;e[4]!==r||e[5]!==n?(y=ve.resource(r,n),e[4]=r,e[5]=n,e[6]=y):y=e[6];const g=y,m=i&&!!n&&u.phase==="connected";let h;e[7]!==r||e[8]!==n?(h=async x=>{if(!n)throw new Error("Resource target is not resolved");return await Ge(r,n.request.route.connection),k.Mutate(r,{...x,route:n.request.route,reference:n.request.reference})},e[7]=r,e[8]=n,e[9]=h):h=e[9];let v;e[10]!==r||e[11]!==f?(v=async()=>{await f.invalidateQueries({queryKey:ve.all(r)})},e[10]=r,e[11]=f,e[12]=v):v=e[12];let w;e[13]!==p?(w=te(p,"Failed to mutate resource"),e[13]=p,e[14]=w):w=e[14];let S;e[15]!==h||e[16]!==v||e[17]!==w?(S={mutationFn:h,onSuccess:v,onError:w},e[15]=h,e[16]=v,e[17]=w,e[18]=S):S=e[18];const{mutateAsync:I}=D.useMutation(S);let R;e[19]!==d||e[20]!==r||e[21]!==m||e[22]!==n?(R=m?x=>{const{signal:q,queryKey:A}=x;return d(A,q,()=>k.Get$1(r,n))}:D.skipToken,e[19]=d,e[20]=r,e[21]=m,e[22]=n,e[23]=R):R=e[23];let b;e[24]!==m||e[25]!==g||e[26]!==R?(b={queryKey:g,queryFn:R,retry:!1,enabled:m},e[24]=m,e[25]=g,e[26]=R,e[27]=b):b=e[27];const E=D.useQuery(b);let O;return e[28]!==I||e[29]!==E?(O={resource:E,mutate:I},e[28]=I,e[29]=E,e[30]=O):O=e[30],O},ao=t=>{const e=F.c(11);let s;e[0]!==t.area||e[1]!==t.plugin||e[2]!==t.resource?(s=["component",t.plugin,t.resource,t.area],e[0]=t.area,e[1]=t.plugin,e[2]=t.resource,e[3]=s):s=e[3];const n=s;let o;e[4]!==t?(o=async()=>k.GetResourceAreaComponent(t),e[4]=t,e[5]=o):o=e[5];let i;e[6]!==n||e[7]!==o?(i={queryKey:n,queryFn:o},e[6]=n,e[7]=o,e[8]=i):i=e[8];const r=D.useQuery(i);let a;return e[9]!==r?(a={component:r},e[9]=r,e[10]=a):a=e[10],a},lo=t=>{const e=F.c(18),{pluginID:s,route:n,enabled:o}=t,i=o===void 0?!0:o,r=G(s);let a;e[0]!==i||e[1]!==r||e[2]!==n.connection?(a={pluginID:r,connectionID:n.connection,enabled:i},e[0]=i,e[1]=r,e[2]=n.connection,e[3]=a):a=e[3];const l=ne(a),c=oe(r,n.connection),u=i&&!!r&&!!n.connection&&l.phase==="connected";let d;e[4]!==r||e[5]!==n?(d=[r,"resource-v2","groups",n],e[4]=r,e[5]=n,e[6]=d):d=e[6];let f;e[7]!==c||e[8]!==r||e[9]!==u||e[10]!==n?(f=u?m=>{const{signal:h,queryKey:v}=m;return c(v,h,()=>k.GetResourceGroups(r,n))}:D.skipToken,e[7]=c,e[8]=r,e[9]=u,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==u||e[13]!==d||e[14]!==f?(p={queryKey:d,queryFn:f,enabled:u,retry:!1},e[12]=u,e[13]=d,e[14]=f,e[15]=p):p=e[15];const y=D.useQuery(p);let g;return e[16]!==y?(g={groups:y},e[16]=y,e[17]=g):g=e[17],g},uo=t=>{const e=F.c(28),{pluginID:s,searches:n,enabled:o}=t,i=o===void 0?!0:o,r=G(s);let a;e[0]!==i||e[1]!==n?(a=JSON.stringify(i?[...new Set(n.map(fo))].sort():[]),e[0]=i,e[1]=n,e[2]=a):a=e[2];const l=a;let c;if(e[3]!==l||e[4]!==r){const v=JSON.parse(l);let w;e[6]!==r?(w=S=>[S,lt(r,S)],e[6]=r,e[7]=w):w=e[7],c=new Map(v.map(w)),e[3]=l,e[4]=r,e[5]=c}else c=e[5];const u=c;let d,f;e[8]!==u?(d=()=>JSON.stringify([...u.values()].map(po)),f=v=>{const w=[...u.values()].map(S=>S.subscribe(v));return()=>{for(const S of w)S()}},e[8]=u,e[9]=d,e[10]=f):(d=e[9],f=e[10]);let p;e[11]!==u||e[12]!==d||e[13]!==f?(p={stores:u,getSnapshot:d,subscribe:f},e[11]=u,e[12]=d,e[13]=f,e[14]=p):p=e[14];const y=p;C.useSyncExternalStore(y.subscribe,y.getSnapshot,y.getSnapshot);const g=oe(r,"");let m;if(e[15]!==i||e[16]!==g||e[17]!==r||e[18]!==y.stores||e[19]!==n){let v;e[21]!==i||e[22]!==g||e[23]!==r||e[24]!==y.stores?(v=w=>{const S=w.request.target.route.connection,I=i&&y.stores.get(S)?.getSnapshot().phase==="connected";return{queryKey:ve.nativeQuery(r,w),queryFn:I?R=>{const{signal:b,queryKey:E}=R;return g(E,b,()=>k.NativeQuery(r,w),S)}:D.skipToken,retry:!1,enabled:I}},e[21]=i,e[22]=g,e[23]=r,e[24]=y.stores,e[25]=v):v=e[25],m=n.map(v),e[15]=i,e[16]=g,e[17]=r,e[18]=y.stores,e[19]=n,e[20]=m}else m=e[20];let h;return e[26]!==m?(h={queries:m},e[26]=m,e[27]=h):h=e[27],D.useQueries(h)};function fo(t){return t.request.target.route.connection}function po(t){return t.getSnapshot().phase}const go=t=>{const e=F.c(21),{pluginID:s,route:n,type:o}=t,i=G(s),r=!!o;let a;e[0]!==i||e[1]!==n.connection||e[2]!==r?(a={pluginID:i,connectionID:n.connection,enabled:r},e[0]=i,e[1]=n.connection,e[2]=r,e[3]=a):a=e[3];const l=ne(a),c=oe(i,n.connection),u=!!i&&!!n.connection&&!!o&&l.phase==="connected";let d;e[4]!==i||e[5]!==n?(d=[i,"resource-v2","catalog",n],e[4]=i,e[5]=n,e[6]=d):d=e[6];let f;e[7]!==c||e[8]!==i||e[9]!==u||e[10]!==n?(f=u?h=>{const{signal:v,queryKey:w}=h;return c(w,v,()=>k.Catalog(i,{route:n}))}:D.skipToken,e[7]=c,e[8]=i,e[9]=u,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==o?(p=h=>h.types.find(v=>v.type===o),e[12]=o,e[13]=p):p=e[13];let y;e[14]!==u||e[15]!==d||e[16]!==f||e[17]!==p?(y={queryKey:d,queryFn:f,select:p,enabled:u,retry:!1},e[14]=u,e[15]=d,e[16]=f,e[17]=p,e[18]=y):y=e[18];const g=D.useQuery(y);let m;return e[19]!==g?(m={resourceType:g},e[19]=g,e[20]=m):m=e[20],m},ho=t=>{const e=F.c(18),{pluginID:s,route:n,enabled:o}=t,i=o===void 0?!0:o,r=G(s);let a;e[0]!==i||e[1]!==r||e[2]!==n.connection?(a={pluginID:r,connectionID:n.connection,enabled:i},e[0]=i,e[1]=r,e[2]=n.connection,e[3]=a):a=e[3];const l=ne(a),c=oe(r,n.connection),u=i&&!!r&&!!n.connection&&l.phase==="connected";let d;e[4]!==r||e[5]!==n?(d=[r,"resource-v2","catalog",n],e[4]=r,e[5]=n,e[6]=d):d=e[6];let f;e[7]!==c||e[8]!==r||e[9]!==u||e[10]!==n?(f=u?m=>{const{signal:h,queryKey:v}=m;return c(v,h,()=>k.Catalog(r,{route:n}))}:D.skipToken,e[7]=c,e[8]=r,e[9]=u,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==u||e[13]!==d||e[14]!==f?(p={queryKey:d,queryFn:f,select:yo,enabled:u,retry:!1},e[12]=u,e[13]=d,e[14]=f,e[15]=p):p=e[15];const y=D.useQuery(p);let g;return e[16]!==y?(g={resourceTypes:y},e[16]=y,e[17]=g):g=e[17],g};function yo(t){return t.types}const qt=new Set;typeof window<"u"&&window.addEventListener("beforeunload",()=>{for(const t of qt)t.close()});async function Fn(t,e){const s=await k.OpenSourceView(t,e);let n={records:new Map,complete:!1},o,i,r,a=BigInt(0),l=!0,c=!1,u=!1,d=0,f,p,y=[];const g=new Set;function m(){if(f!==void 0||p!==void 0||c)return;const b=()=>{if(f=void 0,p=void 0,!c)for(const E of g)E()};typeof requestAnimationFrame=="function"?f=requestAnimationFrame(b):p=setTimeout(b,0)}function h(b,E){n={...n,...b,...E?{event:{kind:E,revision:++d}}:{}},m()}function v(b){c||u||(u=!0,h({status:{...n.status,state:"failed",mode:n.status?.mode??s.mode,count:n.status?.count??{kind:"exact",value:String(n.records.size)},error:{code:"sourceViewSyncFailed",title:"Source view synchronization failed",message:b}}}))}function w(){if(c||u)return;o=void 0,l=!0;const b=Date.now();if(y=y.filter(E=>b-E<1e4),y.length>=3){v("Source view could not maintain a contiguous event sequence.");return}y.push(b),k.SyncSourceView(t,s.viewId).catch(E=>v(String(E)))}function S(b){if(c||u||b.viewId!==s.viewId)return;if(b.kind==="reset"){o=void 0,l=!0,h({},"reset"),b.reset?.reason==="closed"&&h({status:{...n.status,state:"closed",mode:n.status?.mode??s.mode,count:n.status?.count??{kind:"exact",value:String(n.records.size)}}});return}if(l){if(b.kind!=="snapshot"&&b.kind!=="snapshotEnd"||b.sequence!=="1"||!b.viewGeneration||b.viewGeneration===i||b.viewGeneration===r)return;i=b.viewGeneration,r=void 0,a=BigInt(0),o=new Map,l=!1}if(!/^[1-9][0-9]*$/.test(b.sequence)){r=b.viewGeneration,w();return}const E=BigInt(b.sequence);if(b.viewGeneration!==i||E!==a+BigInt(1)){r=b.viewGeneration,w();return}switch(a=E,b.kind){case"snapshot":if(!o){w();return}for(const O of b.records??[])o.set(O.key,O);break;case"snapshotEnd":if(!o||!b.status){w();return}h({records:o,viewGeneration:i,status:b.status,complete:!0},"snapshotEnd"),o=void 0;break;case"changes":{if(o){w();return}const O=new Map(n.records);for(const x of b.removes??[])O.delete(x.key);for(const x of b.upserts??[])O.set(x.key,x);h({records:O},"changes");break}case"status":if(o||!b.status){w();return}h({status:b.status});break;default:w()}}const I=K.On(s.topic,b=>S(b.data)),R={mode:s.mode,subscribe(b){return g.add(b),()=>{g.delete(b)}},getSnapshot(){return n},async refresh(){const b=u;u=!1,y=[];try{await k.RefreshSourceView(t,s.viewId)}catch(E){throw u=b,E}},close(){c||(c=!0,qt.delete(R),I(),f!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(f),clearTimeout(p),g.clear(),k.CloseSourceView(t,s.viewId).catch(()=>{}))}};qt.add(R);try{await k.SyncSourceView(t,s.viewId)}catch(b){throw R.close(),b}return R}const mo={getSnapshot:()=>{},subscribe:()=>()=>{}},st=new Map;function vo(t,e,s,n){let o=st.get(t);return o||(o={refs:0,client:Fn(e,{targetId:s.targetId,target:s.request.target,updates:n?"ifSupported":"none"})},st.set(t,o)),o.refs++,o}function wo(t,e){--e.refs===0&&(st.get(t)===e&&st.delete(t),e.client.then(s=>s.close(),()=>{}))}function Mn(t){const e=t.status;return{records:[...t.records.values()],sourcePage:{count:e?.count??{kind:"unknown"},coverage:{kind:"unknown",paths:[]},consistency:"unknown"},view:t.viewGeneration?{viewGeneration:t.viewGeneration,continuity:e?.continuity??"notApplicable",coverage:e?.coverage,count:e?.count??{kind:"unknown"}}:void 0}}function bo(t,e){let s,n;const o=new Promise((c,u)=>{s=c,n=u});let i=()=>{};const r=(c,u)=>{i(),e.removeEventListener("abort",a),c?n(c):s(u)},a=()=>r(new D.CancelledError({revert:!0})),l=()=>{const c=t.getSnapshot();c.status?.state==="failed"||c.status?.state==="closed"?r(c.status.error??new Error("Source view closed before its snapshot completed")):c.complete&&r(void 0,Mn(c))};return i=t.subscribe(l),e.addEventListener("abort",a,{once:!0}),e.aborted?a():l(),o}const So=t=>{const e=F.c(92),{pluginID:s,request:n,enabled:o,live:i,collection:r}=t,a=o===void 0?!0:o,l=i===void 0?!0:i,c=r===void 0?!1:r,u=G(s),d=D.useQueryClient();let f;e[0]!==n?(f=D.hashKey([n]),e[0]=n,e[1]=f):f=e[1];const p=f;let y;e[2]!==n||e[3]!==p?(y={hash:p,request:n},e[2]=n,e[3]=p,e[4]=y):y=e[4];const[g,m]=C.useState(y);g.hash!==p&&m({hash:p,request:n});const h=g.hash===p?g.request:n,v=h?.request.target.route.connection??"",w=a&&!!h;let S;e[5]!==v||e[6]!==u||e[7]!==w?(S={pluginID:u,connectionID:v,enabled:w},e[5]=v,e[6]=u,e[7]=w,e[8]=S):S=e[8];const I=ne(S);let R;e[9]!==v||e[10]!==u||e[11]!==w?(R=w?{subscribe:lt(u,v).subscribe,getSnapshot:()=>Rn(u,v)}:mo,e[9]=v,e[10]=u,e[11]=w,e[12]=R):R=e[12];const b=R,E=C.useSyncExternalStore(b.subscribe,b.getSnapshot,b.getSnapshot),O=oe(u,v),x=w&&I.phase==="connected";let q;e[13]!==c||e[14]!==u||e[15]!==h?(q=h?D.hashKey([u,h.targetId,h.request.target,c]):void 0,e[13]=c,e[14]=u,e[15]=h,e[16]=q):q=e[16];const A=q;let Q;e[17]!==c||e[18]!==l||e[19]!==u?(Q=Y=>c?[...ve.list(u,Y),"collection",l?"ifSupported":"none"]:ve.list(u,Y),e[17]=c,e[18]=l,e[19]=u,e[20]=Q):Q=e[20];const _=Q;let P;e[21]!==_||e[22]!==h?(P=_(h),e[21]=_,e[22]=h,e[23]=P):P=e[23];const T=P;let j;e[24]!==E||e[25]!==T?(j=D.hashKey([T,E]),e[24]=E,e[25]=T,e[26]=j):j=e[26];const L=j,[M,$]=C.useState(),[W,V]=C.useState();let z,H;e[27]!==c||e[28]!==v||e[29]!==E||e[30]!==l||e[31]!==u||e[32]!==d||e[33]!==x||e[34]!==T||e[35]!==h||e[36]!==L?(z=()=>{if(!c||!x||!h||E===void 0)return;const Y=vo(L,u,h,l);let Z=!0,ue=Eo;const Xt=()=>{Z&&$({key:L,entry:Y})};return Y.client.then(Zt=>{if(!Z)return;Xt();const en=()=>{if(!Z||!Dn(u,v,E))return;const Qe=Zt.getSnapshot();V({key:L,status:Qe.status}),Qe.complete&&Qe.status?.state!=="failed"&&Qe.status?.state!=="closed"&&d.setQueryData(T,Mn(Qe))};ue=Zt.subscribe(en),en()},Xt),()=>{Z=!1,ue(),wo(L,Y)}},H=[c,x,h,E,L,u,v,l,d,T],e[27]=c,e[28]=v,e[29]=E,e[30]=l,e[31]=u,e[32]=d,e[33]=x,e[34]=T,e[35]=h,e[36]=L,e[37]=z,e[38]=H):(z=e[37],H=e[38]),C.useEffect(z,H);const U=M?.key===L&&x&&c?M.entry:void 0;let X;e[39]!==O||e[40]!==u?(X=(Y,Z,ue)=>O(ue,Z,()=>k.Enumerate(u,Y)),e[39]=O,e[40]=u,e[41]=X):X=e[41];const ee=X;let ae;e[42]!==O?(ae=(Y,Z,ue)=>O(ue,Z,async()=>bo(await Y.client,Z)),e[42]=O,e[43]=ae):ae=e[43];const fe=ae;let we;e[44]!==c||e[45]!==fe||e[46]!==U||e[47]!==ee||e[48]!==x||e[49]!==h?(we=x&&h&&(!c||U)?Y=>{const{signal:Z,queryKey:ue}=Y;return c?fe(U,Z,ue):ee(h,Z,ue)}:D.skipToken,e[44]=c,e[45]=fe,e[46]=U,e[47]=ee,e[48]=x,e[49]=h,e[50]=we):we=e[50];const be=we,Ce=x&&(!c||!!U);let ge;e[51]!==be||e[52]!==T||e[53]!==Ce?(ge={queryKey:T,queryFn:be,enabled:Ce,retry:!1,gcTime:0,placeholderData:void 0},e[51]=be,e[52]=T,e[53]=Ce,e[54]=ge):ge=e[54];const he=D.useQuery(ge),Ie=he.refetch;let De;e[55]!==c||e[56]!==U||e[57]!==Ie?(De=async(...Y)=>{const Z=Y;return c&&U&&await(await U.client).refresh(),Ie(...Z)},e[55]=c,e[56]=U,e[57]=Ie,e[58]=De):De=e[58];const We=De;let ze;e[59]!==c||e[60]!==We||e[61]!==he?(ze=c?{...he,refetch:We}:he,e[59]=c,e[60]=We,e[61]=he,e[62]=ze):ze=e[62];const Fe=ze,[Me,Yt]=C.useState();let Oe=Me;if(A&&h&&Fe.isSuccess&&Fe.data){if(Me?.identity!==A||Me.requestHash!==p){let Y;e[63]!==p||e[64]!==h||e[65]!==A?(Y={identity:A,requestHash:p,request:h},e[63]=p,e[64]=h,e[65]=A,e[66]=Y):Y=e[66],Oe=Y,Yt(Oe)}}else Me&&Me.identity!==A&&(Oe=void 0,Yt(void 0));const le=A&&Oe?.identity===A?Oe.request:void 0;let Ve;e[67]!==le||e[68]!==_?(Ve=_(le),e[67]=le,e[68]=_,e[69]=Ve):Ve=e[69];const ft=Ve;let Ne;e[70]!==le||e[71]!==c||e[72]!==ee||e[73]!==x?(Ne=x&&le&&!c?Y=>{const{signal:Z,queryKey:ue}=Y;return ee(le,Z,ue)}:D.skipToken,e[70]=le,e[71]=c,e[72]=ee,e[73]=x,e[74]=Ne):Ne=e[74];let Je;e[75]!==ft||e[76]!==Ne?(Je={queryKey:ft,queryFn:Ne,enabled:!1,retry:!1,gcTime:0,placeholderData:void 0},e[75]=ft,e[76]=Ne,e[77]=Je):Je=e[77];const je=D.useQuery(Je);let He;e[78]!==le||e[79]!==je.data?(He=le&&je.data?{request:le,page:je.data}:void 0,e[78]=le,e[79]=je.data,e[80]=He):He=e[80];const $e=He,pe=U&&W?.key===L?W.status:void 0,pt=!!$e&&Oe?.requestHash===p,gt=c?We:je.refetch,ht=$e?.page.view,yt=pe?.state==="following",mt=pe?.state==="opening"||pe?.state==="snapshotting"||pe?.state==="resetRequired",vt=pe?.state==="following"||pe?.state==="finished",wt=pe?.state==="failed";let Ye;return e[81]!==$e||e[82]!==Fe||e[83]!==pe||e[84]!==pt||e[85]!==gt||e[86]!==ht||e[87]!==yt||e[88]!==mt||e[89]!==vt||e[90]!==wt?(Ye={resources:Fe,acquired:$e,isAcquiredRequestCurrent:pt,refreshAcquiredPage:gt,view:ht,source:pe,isLive:yt,isSyncing:mt,isSynced:vt,sourceError:wt},e[81]=$e,e[82]=Fe,e[83]=pe,e[84]=pt,e[85]=gt,e[86]=ht,e[87]=yt,e[88]=mt,e[89]=vt,e[90]=wt,e[91]=Ye):Ye=e[91],Ye};function Eo(){}const Co=t=>{const e=F.c(13),{pluginID:s}=t,n=G(s),o=D.useQueryClient(),{showSnackbar:i}=ce();let r;e[0]!==n?(r=async f=>(await Ge(n,f.route.connection),k.Mutate(n,f)),e[0]=n,e[1]=r):r=e[1];let a;e[2]!==n||e[3]!==o?(a=async()=>{await o.invalidateQueries({queryKey:ve.all(n)})},e[2]=n,e[3]=o,e[4]=a):a=e[4];let l;e[5]!==i?(l=te(i,"Failed to mutate resource"),e[5]=i,e[6]=l):l=e[6];let c;e[7]!==r||e[8]!==a||e[9]!==l?(c={mutationFn:r,onSuccess:a,onError:l},e[7]=r,e[8]=a,e[9]=l,e[10]=c):c=e[10];const u=D.useMutation(c);let d;return e[11]!==u?(d={mutate:u.mutateAsync,mutation:u},e[11]=u,e[12]=d):d=e[12],d},Io=t=>{const e=F.c(25),{pluginID:s,route:n,type:o,enabled:i}=t,r=i===void 0?!0:i,a=G(s),l=n.connection,c=r&&!!o;let u;e[0]!==l||e[1]!==a||e[2]!==c?(u={pluginID:a,connectionID:l,enabled:c},e[0]=l,e[1]=a,e[2]=c,e[3]=u):u=e[3];const d=ne(u),f=oe(a,l);let p;e[4]!==a||e[5]!==n||e[6]!==o?(p=[a,"resource-v2","actions",n,o],e[4]=a,e[5]=n,e[6]=o,e[7]=p):p=e[7];let y;e[8]!==r||e[9]!==f||e[10]!==a||e[11]!==d||e[12]!==n||e[13]!==o?(y=r&&o&&d.phase==="connected"?S=>{const{signal:I,queryKey:R}=S;return f(R,I,()=>k.GetActions(a,n,o))}:D.skipToken,e[8]=r,e[9]=f,e[10]=a,e[11]=d,e[12]=n,e[13]=o,e[14]=y):y=e[14];const g=r&&!!a&&!!n.connection&&!!o&&d.phase==="connected";let m;e[15]!==p||e[16]!==y||e[17]!==g?(m={queryKey:p,queryFn:y,enabled:g,staleTime:3e5},e[15]=p,e[16]=y,e[17]=g,e[18]=m):m=e[18];const h=D.useQuery(m);let v;e[19]!==h.data?(v=h.data??[],e[19]=h.data,e[20]=v):v=e[20];let w;return e[21]!==h.error||e[22]!==h.isLoading||e[23]!==v?(w={actions:v,isLoading:h.isLoading,error:h.error},e[21]=h.error,e[22]=h.isLoading,e[23]=v,e[24]=w):w=e[24],w},_o=t=>{const e=F.c(15),{pluginID:s}=t,n=G(s),o=D.useQueryClient(),{showSnackbar:i}=ce();let r;e[0]!==n?(r=async f=>(await Ge(n,f.route.connection),k.Action(n,f)),e[0]=n,e[1]=r):r=e[1];let a;e[2]!==n||e[3]!==o?(a=async()=>{await o.invalidateQueries({queryKey:ve.all(n)})},e[2]=n,e[3]=o,e[4]=a):a=e[4];let l;e[5]!==i?(l=(f,p)=>{Pe(i,f,`Failed to execute action "${p.action}"`)},e[5]=i,e[6]=l):l=e[6];let c;e[7]!==r||e[8]!==a||e[9]!==l?(c={mutationFn:r,onSuccess:a,onError:l},e[7]=r,e[8]=a,e[9]=l,e[10]=c):c=e[10];const u=D.useMutation(c);let d;return e[11]!==u.error||e[12]!==u.isPending||e[13]!==u.mutateAsync?(d={executeAction:u.mutateAsync,isExecuting:u.isPending,error:u.error},e[11]=u.error,e[12]=u.isPending,e[13]=u.mutateAsync,e[14]=d):d=e[14],d},xo=t=>{const e=F.c(27),{pluginID:s,route:n,enabled:o}=t,i=o===void 0?!0:o,r=G(s),a=D.useQueryClient();let l;e[0]!==i||e[1]!==r||e[2]!==n.connection?(l={pluginID:r,connectionID:n.connection,enabled:i},e[0]=i,e[1]=r,e[2]=n.connection,e[3]=l):l=e[3];const c=ne(l),u=oe(r,n.connection),d=i&&!!r&&!!n.connection&&c.phase==="connected";let f;e[4]!==r||e[5]!==n?(f=[r,"resource-v2","editor-schemas",n],e[4]=r,e[5]=n,e[6]=f):f=e[6];let p;e[7]!==u||e[8]!==r||e[9]!==a||e[10]!==d||e[11]!==n?(p=d?w=>{const{signal:S,queryKey:I}=w;return u(I,S,async()=>{const R=await u(I,S,()=>k.GetEditorSchemas(r,n)),b=[],E=new Set;for(const O of R){const x=O.binding.documentRef;if(!x)continue;const q=JSON.stringify([x.id,x.revision]);E.has(q)||(b.push(await a.fetchQuery({queryKey:[r,"resource-v2","schema-document",n,x],queryFn:A=>{const{signal:Q,queryKey:_}=A;return u(_,AbortSignal.any([S,Q]),()=>k.GetSchemaDocument(r,n,x))},staleTime:1/0})),E.add(q))}return{schemas:R,documents:b}})}:D.skipToken,e[7]=u,e[8]=r,e[9]=a,e[10]=d,e[11]=n,e[12]=p):p=e[12];let y;e[13]!==d||e[14]!==f||e[15]!==p?(y={queryKey:f,queryFn:p,enabled:d,staleTime:6e5,retry:1},e[13]=d,e[14]=f,e[15]=p,e[16]=y):y=e[16];const g=D.useQuery(y);let m;e[17]!==g.data?.schemas?(m=g.data?.schemas??[],e[17]=g.data?.schemas,e[18]=m):m=e[18];let h;e[19]!==g.data?.documents?(h=g.data?.documents??[],e[19]=g.data?.documents,e[20]=h):h=e[20];let v;return e[21]!==g.error||e[22]!==g.isLoading||e[23]!==g.refetch||e[24]!==m||e[25]!==h?(v={schemas:m,documents:h,isLoading:g.isLoading,error:g.error,refetch:g.refetch},e[21]=g.error,e[22]=g.isLoading,e[23]=g.refetch,e[24]=m,e[25]=h,e[26]=v):v=e[26],v},cn=t=>["following","finished","failed","closed"].includes(t),Ro=({pluginID:t,route:e,enabled:s=!0})=>{const n=G(t),o=D.useQueryClient(),i=e.connection,r=C.useMemo(()=>[n,"resource-v2","source-states",{connection:i}],[n,i]),a=C.useRef([]),l=C.useRef(!1),c=C.useRef(void 0),u=C.useCallback(y=>{o.setQueryData(r,g=>g&&{...g,types:{...g.types,[y.type]:y.status}})},[o,r]),d=D.useQuery({queryKey:r,queryFn:async()=>{const y=[];c.current=y;try{const g=await k.GetSourceStates(n,{connection:i});if(!g)throw new Error("Failed to get source states: null response");const m={...g.types};for(const h of y)m[h.type]=h.status;return{...g,types:m}}finally{c.current===y&&(c.current=void 0)}},enabled:s&&!!n&&!!i,refetchInterval:y=>{const g=Object.values(y.state.data?.types??{});return g.length>0&&g.every(m=>cn(m.state))?!1:3e3}});C.useEffect(()=>{if(l.current=!1,a.current=[],!s||!n||!i)return;const y=K.On(`${n}/${i}/source/STATE`,g=>{const m=g.data;m.pluginID!==n||m.route.connection!==i||(l.current?u(m):a.current.push(m),c.current?.push(m))});return()=>{y(),l.current=!1,a.current=[]}},[n,i,s,u]),C.useEffect(()=>{if(!d.data||l.current)return;l.current=!0;const y=a.current;a.current=[];for(const g of y)u(g)},[d.data,u]);const f=Object.values(d.data?.types??{}),p=f.filter(y=>cn(y.state)).length;return{summary:d.data,getTypeStatus:y=>d.data?.types[y],isFullySynced:f.length>0&&p===f.length,syncProgress:f.length?p/f.length:0,errorCount:f.filter(y=>y.state==="failed").length}},Do=()=>{const t=F.c(16);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=new Map,t[0]=e):e=t[0];const[s,n]=C.useState(e);let o;t[1]===Symbol.for("react.memo_cache_sentinel")?(o=new Map,t[1]=o):o=t[1];const i=C.useRef(o);let r;t[2]===Symbol.for("react.memo_cache_sentinel")?(r=new Map,t[2]=r):r=t[2];const a=C.useRef(r);let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=v=>{const w=v.data,S=Vt(w.pluginID,w),I=At(i.current,w.pluginID,w),R=Pt(I);if(n(b=>{const E=new Map(b);return E.set(S,R),E}),a.current.has(S)&&(clearTimeout(a.current.get(S)),a.current.delete(S)),ut(R)){const b=setTimeout(()=>{n(E=>{const O=new Map(E);return O.delete(S),O}),i.current.delete(S),a.current.delete(S)},5e3);a.current.set(S,b)}},t[3]=l):l=t[3];const c=l;let u,d;t[4]===Symbol.for("react.memo_cache_sentinel")?(u=()=>{const v=a.current,w=K.On("source/STATE",c);return()=>{w();for(const S of v.values())clearTimeout(S);v.clear()}},d=[c],t[4]=u,t[5]=d):(u=t[4],d=t[5]),C.useEffect(u,d);let f,p,y,g;t[6]!==s?(y=Array.from(s.values()),f=kn(y),p=y.find(Oo)??y[0]??null,g=Tn(y),t[6]=s,t[7]=f,t[8]=p,t[9]=y,t[10]=g):(f=t[7],p=t[8],y=t[9],g=t[10]);const m=g;let h;return t[11]!==m||t[12]!==f||t[13]!==p||t[14]!==y?(h={syncs:y,hasSyncing:f,primarySync:p,aggregateProgress:m},t[11]=m,t[12]=f,t[13]=p,t[14]=y,t[15]=h):h=t[15],h};function Oo(t){return!ut(t)}const jn=()=>{const t=C.useContext(Gt);if(!t)throw new Error("useOperations must be used within an OperationsProvider");return t};function ot(t){switch(t.kind){case"null":return null;case"bool":case"string":case"double":case"timestamp":return t.value;case"int64":case"uint64":{const e=BigInt(t.value);return e>=-9007199254740991n&&e<=9007199254740991n?Number(e):e}case"list":return t.value.map(ot);case"map":return Object.fromEntries(Object.entries(t.value).map(([e,s])=>[e,ot(s)]))}}function Lt(t){for(let e=0;e<t.length;e++){const s=t.charCodeAt(e);if(s>=55296&&s<=56319){const n=t.charCodeAt(++e);if(!(n>=56320&&n<=57343))throw new TypeError("Resource strings require valid Unicode")}else if(s>=56320&&s<=57343)throw new TypeError("Resource strings require valid Unicode")}return t}function Ft(t){const e=BigInt(t);if(e>=-(1n<<63n)&&e<=(1n<<63n)-1n)return{kind:"int64",value:e.toString()};if(e>=0n&&e<=(1n<<64n)-1n)return{kind:"uint64",value:e.toString()};throw new RangeError("Integer exceeds the resource Value range")}function Mt(t){if(t===null)return{kind:"null"};if(typeof t=="boolean")return{kind:"bool",value:t};if(typeof t=="string")return{kind:"string",value:Lt(t)};if(typeof t=="bigint")return Ft(t.toString());if(typeof t=="number"){if(!Number.isFinite(t))throw new TypeError("Resource values require finite numbers");if(Number.isInteger(t)&&!Object.is(t,-0)){if(!Number.isSafeInteger(t))throw new RangeError("Use bigint for exact resource integers");return Ft(t.toString())}return{kind:"double",value:t}}if(Array.isArray(t))return{kind:"list",value:t.map(Mt)};if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype)return{kind:"map",value:Object.fromEntries(Object.entries(t).map(([e,s])=>[Lt(e),Mt(s)]))};throw new TypeError("Unsupported resource value")}function jt(t){switch(t.kind){case"null":return"null";case"bool":case"string":case"timestamp":return JSON.stringify(t.value);case"int64":case"uint64":return t.value;case"double":{if(!Number.isFinite(t.value))throw new TypeError("Resource values require finite numbers");if(Object.is(t.value,-0))return"-0.0";const e=JSON.stringify(t.value);return/[.eE]/.test(e)?e:`${e}.0`}case"list":return`[${t.value.map(jt).join(",")}]`;case"map":return`{${Object.entries(t.value).map(([e,s])=>`${JSON.stringify(e)}:${jt(s)}`).join(",")}}`}}function No(t){let e=0;const s=()=>{throw new SyntaxError(`Invalid resource JSON at offset ${e}`)},n=()=>{for(;e<t.length&&/[\t\n\r ]/.test(t[e]);)e++},o=()=>{const a=e++;for(;e<t.length;){const l=t[e++];if(l==="\\"){e++;continue}if(l==='"')return Lt(JSON.parse(t.slice(a,e)))}return s()},i=a=>{if(a>64)throw new RangeError("Resource JSON exceeds maximum depth");n();const l=t[e];if(l==='"')return{kind:"string",value:o()};if(l==="["){e++,n();const d=[];if(t[e]==="]")return e++,{kind:"list",value:d};for(;e<t.length;){if(d.push(i(a+1)),n(),t[e]==="]")return e++,{kind:"list",value:d};if(t[e++]!==",")return s()}return s()}if(l==="{"){e++,n();const d=[],f=new Set;if(t[e]==="}")return e++,{kind:"map",value:{}};for(;e<t.length;){if(n(),t[e]!=='"')return s();const p=o();if(f.has(p))throw new SyntaxError(`Duplicate resource JSON key: ${p}`);if(f.add(p),n(),t[e++]!==":")return s();if(d.push([p,i(a+1)]),n(),t[e]==="}")return e++,{kind:"map",value:Object.fromEntries(d)};if(t[e++]!==",")return s()}return s()}for(const[d,f]of[["null",{kind:"null"}],["true",{kind:"bool",value:!0}],["false",{kind:"bool",value:!1}]])if(t.startsWith(d,e))return e+=d.length,f;const c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(t.slice(e));if(!c)return s();if(e+=c[0].length,!/[.eE]/.test(c[0])&&c[0]!=="-0")return Ft(c[0]);const u=Number(c[0]);if(!Number.isFinite(u))throw new RangeError("Resource JSON number must be finite");return{kind:"double",value:u}},r=i(0);return n(),e!==t.length?s():r}const ko=({pluginID:t})=>{const e=G(t),{showSnackbar:s}=ce(),{addOperation:n,updateOperation:o}=jn(),i=C.useRef(new Set),r=C.useCallback((c,u=!1)=>{c.disposed||(c.disposed=!0,c.unsubscribe?.(),c.open?.cancel(),c.attach?.cancel(),c.handle&&(k.CancelStreamAction(c.handle).catch(()=>{}),u&&o(c.handle,{status:"cancelled",message:"Cancelled",completedAt:Date.now()})),i.current.delete(c))},[o]);C.useEffect(()=>()=>{for(const c of i.current)r(c,!0)},[e,r]);const a=C.useCallback(async({request:c,label:u})=>{const d={disposed:!1,terminal:!1,sequence:0};i.current.add(d);try{if(await Ge(e,c.route.connection),d.disposed)throw new Error("Stream action was cancelled before the connection became ready");d.open=k.StreamAction(e,c);const f=await d.open;if(d.open=void 0,d.disposed)return k.CancelStreamAction(f).catch(()=>{}),f;d.handle=f,n({id:f,label:u,resourceKey:c.typeTarget?.type??c.reference?.address.type??"",resourceName:c.reference?.address.id??"",connectionID:c.route.connection,status:"running",startedAt:Date.now()});const p=g=>{if(d.disposed||!Number.isSafeInteger(g.sequence)||g.sequence<=d.sequence)return;d.sequence=g.sequence;const m=g.event,h=m.data?ot(m.data):void 0,v=h&&typeof h=="object"&&!Array.isArray(h)?h:{};if(m.type==="error"){d.terminal=!0;const w=ie(m.error);o(f,{status:Ke(w)?"cancelled":"error",message:w.title,completedAt:Date.now()}),Pe(s,w,u),r(d)}else if(m.type==="complete"){d.terminal=!0;const w=typeof v.message=="string"?v.message:`${u} completed`;o(f,{status:"completed",message:w,completedAt:Date.now()}),s(w,"success"),r(d)}else o(f,{message:typeof v.message=="string"?v.message:void 0,progress:(typeof v.ready=="number"||typeof v.ready=="bigint")&&(typeof v.desired=="number"||typeof v.desired=="bigint")?{ready:Number(v.ready),desired:Number(v.desired)}:void 0})};d.unsubscribe=K.On(`action/stream/${f}`,g=>p(g.data)),d.attach=k.AttachStreamAction(f);const y=await d.attach;return d.attach=void 0,p(y),f}catch(f){if(d.terminal&&d.handle)return d.handle;throw d.disposed||(d.handle&&o(d.handle,{status:Ke(f)?"cancelled":"error",message:ie(f).title,completedAt:Date.now()}),Pe(s,f,`Failed to start "${c.action}"`)),r(d),f}},[e,n,o,s,r]),l=C.useCallback(c=>{for(const u of i.current)if(u.handle===c){r(u,!0);return}},[r]);return{startStreamAction:a,cancelStreamAction:l}};function $n(t,e){return`${t}/${e}/graph/CHANGED`}function dt(t,e,s,n){const o=F.c(16),i=D.useQueryClient(),r=C.useRef(s);let a,l;o[0]!==s?(a=()=>{r.current=s},l=[s],o[0]=s,o[1]=a,o[2]=l):(a=o[1],l=o[2]),C.useLayoutEffect(a,l);let c;o[3]!==s?(c=JSON.stringify(s),o[3]=s,o[4]=c):c=o[4];const u=c;let d;o[5]!==e||o[6]!==n||o[7]!==t||o[8]!==i?(d=()=>{if(!n||!t||!e)return;const p=K.On($n(t,e),()=>{i.invalidateQueries({queryKey:r.current,exact:!0})});return()=>{p()}},o[5]=e,o[6]=n,o[7]=t,o[8]=i,o[9]=d):d=o[9];let f;o[10]!==e||o[11]!==n||o[12]!==u||o[13]!==t||o[14]!==i?(f=[i,t,e,u,n],o[10]=e,o[11]=n,o[12]=u,o[13]=t,o[14]=i,o[15]=f):f=o[15],C.useEffect(d,f)}const To={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 Po(t,e){const s=To[t];if(s)return s[e];const n=t.replace(/_/g," ");return e==="outgoing"?n:`${n} (incoming)`}function Qn(t,e){return e.map(s=>{const n=an.sameGraphNode(s.source,t);return{resource:n?s.target:s.source,type:s.type,direction:n?"outgoing":"incoming",label:s.label}})}const Ao=t=>{const e=F.c(38),{pluginID:s,reference:n,route:o,direction:i,relationshipType:r,enabled:a,refetchInterval:l}=t,c=i===void 0?"both":i,u=a===void 0?!0:a,d=l===void 0?!1:l,f=G(s),p=r??null;let y;e[0]!==c||e[1]!==f||e[2]!==n||e[3]!==o||e[4]!==p?(y=["RESOURCE_RELATED",f,n,o,c,p],e[0]=c,e[1]=f,e[2]=n,e[3]=o,e[4]=p,e[5]=y):y=e[5];const g=y,m=u&&!!n.address.id;let h;e[6]!==f||e[7]!==o.connection||e[8]!==m?(h={pluginID:f,connectionID:o.connection,enabled:m},e[6]=f,e[7]=o.connection,e[8]=m,e[9]=h):h=e[9];const v=ne(h),w=oe(f,o.connection),S=u&&!!f&&!!o.connection&&!!n.address.id&&v.phase==="connected";dt(f,o.connection,g,S);let I;e[10]!==c||e[11]!==w||e[12]!==f||e[13]!==S||e[14]!==n||e[15]!==r||e[16]!==o?(I=S?q=>{const{signal:A,queryKey:Q}=q;return w(Q,A,()=>k.GetRelated(f,n,o,c,r??null))}:D.skipToken,e[10]=c,e[11]=w,e[12]=f,e[13]=S,e[14]=n,e[15]=r,e[16]=o,e[17]=I):I=e[17];let R;e[18]!==S||e[19]!==g||e[20]!==d||e[21]!==I?(R={queryKey:g,queryFn:I,enabled:S,refetchInterval:d},e[18]=S,e[19]=g,e[20]=d,e[21]=I,e[22]=R):R=e[22];const b=D.useQuery(R);let E,O;if(e[23]!==f||e[24]!==b.data||e[25]!==n||e[26]!==o){const q={pluginId:f,reference:n};let A;e[29]!==b.data?(A=b.data??[],e[29]=b.data,e[30]=A):A=e[30],E=A,O=Qn(q,E),e[23]=f,e[24]=b.data,e[25]=n,e[26]=o,e[27]=E,e[28]=O}else E=e[27],O=e[28];let x;return e[31]!==E||e[32]!==b.error||e[33]!==b.isFetching||e[34]!==b.isLoading||e[35]!==b.refetch||e[36]!==O?(x={related:O,edges:E,isLoading:b.isLoading,isFetching:b.isFetching,error:b.error,refetch:b.refetch},e[31]=E,e[32]=b.error,e[33]=b.isFetching,e[34]=b.isLoading,e[35]=b.refetch,e[36]=O,e[37]=x):x=e[37],x},qo=t=>{const e=F.c(27),{pluginID:s,reference:n,route:o,maxDepth:i,enabled:r,refetchInterval:a}=t,l=i===void 0?3:i,c=r===void 0?!0:r,u=a===void 0?!1:a,d=G(s);let f;e[0]!==l||e[1]!==d||e[2]!==n||e[3]!==o?(f=["RESOURCE_DEPENDENCY_TREE",d,n,o,l],e[0]=l,e[1]=d,e[2]=n,e[3]=o,e[4]=f):f=e[4];const p=f,y=c&&!!n.address.id;let g;e[5]!==d||e[6]!==o.connection||e[7]!==y?(g={pluginID:d,connectionID:o.connection,enabled:y},e[5]=d,e[6]=o.connection,e[7]=y,e[8]=g):g=e[8];const m=ne(g),h=oe(d,o.connection),v=c&&!!d&&!!o.connection&&!!n.address.id&&m.phase==="connected";dt(d,o.connection,p,v);let w;e[9]!==h||e[10]!==l||e[11]!==d||e[12]!==v||e[13]!==n||e[14]!==o?(w=v?E=>{const{signal:O,queryKey:x}=E;return h(x,O,()=>k.GetDependencyTree(d,n,o,l))}:D.skipToken,e[9]=h,e[10]=l,e[11]=d,e[12]=v,e[13]=n,e[14]=o,e[15]=w):w=e[15];let S;e[16]!==v||e[17]!==p||e[18]!==u||e[19]!==w?(S={queryKey:p,queryFn:w,enabled:v,refetchInterval:u},e[16]=v,e[17]=p,e[18]=u,e[19]=w,e[20]=S):S=e[20];const I=D.useQuery(S),R=I.data??null;let b;return e[21]!==I.error||e[22]!==I.isFetching||e[23]!==I.isLoading||e[24]!==I.refetch||e[25]!==R?(b={tree:R,isLoading:I.isLoading,isFetching:I.isFetching,error:I.error,refetch:I.refetch},e[21]=I.error,e[22]=I.isFetching,e[23]=I.isLoading,e[24]=I.refetch,e[25]=R,e[26]=b):b=e[26],b},Lo=t=>{const e=F.c(28),{pluginID:s,reference:n,route:o,upDepth:i,downDepth:r,enabled:a}=t,l=i===void 0?2:i,c=r===void 0?3:r,u=a===void 0?!0:a,d=G(s);let f;e[0]!==c||e[1]!==d||e[2]!==n||e[3]!==o||e[4]!==l?(f=["RESOURCE_GRAPH",d,n,o,l,c],e[0]=c,e[1]=d,e[2]=n,e[3]=o,e[4]=l,e[5]=f):f=e[5];const p=f,y=u&&!!n.address.id;let g;e[6]!==d||e[7]!==o.connection||e[8]!==y?(g={pluginID:d,connectionID:o.connection,enabled:y},e[6]=d,e[7]=o.connection,e[8]=y,e[9]=g):g=e[9];const m=ne(g),h=oe(d,o.connection),v=u&&!!d&&!!o.connection&&!!n.address.id&&m.phase==="connected";dt(d,o.connection,p,v);let w;e[10]!==c||e[11]!==h||e[12]!==d||e[13]!==v||e[14]!==n||e[15]!==o||e[16]!==l?(w=v?E=>{const{signal:O,queryKey:x}=E;return h(x,O,()=>k.GetSubgraph(d,n,o,l,c))}:D.skipToken,e[10]=c,e[11]=h,e[12]=d,e[13]=v,e[14]=n,e[15]=o,e[16]=l,e[17]=w):w=e[17];let S;e[18]!==v||e[19]!==p||e[20]!==w?(S={queryKey:p,queryFn:w,enabled:v,retry:!1},e[18]=v,e[19]=p,e[20]=w,e[21]=S):S=e[21];const I=D.useQuery(S),R=I.data??null;let b;return e[22]!==I.error||e[23]!==I.isFetching||e[24]!==I.isLoading||e[25]!==I.refetch||e[26]!==R?(b={graph:R,isLoading:I.isLoading,isFetching:I.isFetching,error:I.error,refetch:I.refetch},e[22]=I.error,e[23]=I.isFetching,e[24]=I.isLoading,e[25]=I.refetch,e[26]=R,e[27]=b):b=e[27],b},Fo=()=>{const t=C.useContext(Kt);if(!t)throw new Error("useSettings must be used within a SettingsProvider");return t},Mo=1,jo=t=>{const e=F.c(19);let s,n,o,i;if(e[0]!==t){const{to:g,withinContext:m,onClick:h,onAuxClick:v,...w}=t;i=g,n=h,s=v,o=w,e[0]=t,e[1]=s,e[2]=n,e[3]=o,e[4]=i}else s=e[1],n=e[2],o=e[3],i=e[4];const{pluginId:r}=Ut(),a=C.useContext(at);r||console.error("Link used outside of a plugin context");const l=`/_plugin/${r}${i.startsWith("/")?"":"/"}${i}`;let c;e[5]!==n||e[6]!==l||e[7]!==a?(c=g=>{n?.(g),!(g.defaultPrevented||!a||!(g.ctrlKey||g.metaKey))&&(g.preventDefault(),a.openInNewTab(l,{background:!0}))},e[5]=n,e[6]=l,e[7]=a,e[8]=c):c=e[8];const u=c;let d;e[9]!==s||e[10]!==l||e[11]!==a?(d=g=>{s?.(g),!(g.defaultPrevented||!a||g.button!==Mo)&&(g.preventDefault(),a.openInNewTab(l,{background:!0}))},e[9]=s,e[10]=l,e[11]=a,e[12]=d):d=e[12];const f=d;let p;e[13]===Symbol.for("react.memo_cache_sentinel")?(p={textDecoration:"none",color:"inherit"},e[13]=p):p=e[13];let y;return e[14]!==f||e[15]!==u||e[16]!==o||e[17]!==l?(y=N.jsx(et.Link,{style:p,...o,to:l,onClick:u,onAuxClick:f}),e[14]=f,e[15]=u,e[16]=o,e[17]=l,e[18]=y):y=e[18],y};function $o(){const t=F.c(10),e=et.useNavigate(),s=et.useLocation(),{pluginId:n}=Ut();n||console.error("usePluginRouter used outside of a plugin context");const o=`/_plugin/${n}`;let i;t[0]!==s.pathname||t[1]!==o?(i=s.pathname.startsWith(o)?s.pathname.slice(o.length)||"/":s.pathname,t[0]=s.pathname,t[1]=o,t[2]=i):i=t[2];const r=i;let a;t[3]!==e||t[4]!==o?(a=(u,d)=>{const{...f}=d??{};u.startsWith("/")?e(`${o}${u}`,f):e(u,f)},t[3]=e,t[4]=o,t[5]=a):a=t[5];const l=a;let c;return t[6]!==s||t[7]!==l||t[8]!==r?(c={location:s,navigate:l,pluginPath:r},t[6]=s,t[7]=l,t[8]=r,t[9]=c):c=t[9],c}class Qo{}class Uo{_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 N.jsx(this.root,{});const e=et.createMemoryRouter(this._routes||[]);return N.jsx(Bn.RouterProvider,{router:e})}registerExtensionPoints(e){return this._extensions=e||[],this}setRootPage(e){return this.root=e,this}withPage(e,s){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]=s,this)}withRoutes(e){return this._routes=e,this}}var Un=(t=>(t.MISSING_MANIFEST="MISSING_MANIFEST",t.MISSING_PLUGIN="MISSING_PLUGIN",t.MISSING_ENTRYPOINT="MISSING_ENTRYPOINT",t))(Un||{});const Kn="omniview/global-search/open";function Ko(t={}){window.dispatchEvent(new CustomEvent(Kn,{detail:t}))}const Gn="omniview/resource/icons";class Go extends C.Component{state={failed:!1,resetToken:this.props.resetToken};static getDerivedStateFromProps(e,s){return e.resetToken!==s.resetToken?{failed:!1,resetToken:e.resetToken}:null}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function Bo(t,e){try{return t?.schemaVersion!==1||typeof t.resolve!="function"?void 0:t.resolve(e)}catch{return}}function Wo(t){const e=F.c(7);let s,n;e[0]!==t?({icon:s,...n}=t,e[0]=t,e[1]=s,e[2]=n):(s=e[1],n=e[2]);const o=n["aria-hidden"]??!0;let i;return e[3]!==s||e[4]!==n||e[5]!==o?(i=N.jsx(s,{...n,"aria-hidden":o}),e[3]=s,e[4]=n,e[5]=o,e[6]=i):i=e[6],i}function zo(t){const e=F.c(17);let s,n,o,i;e[0]!==t?({pluginId:n,resourceKey:i,fallback:s,...o}=t,e[0]=t,e[1]=s,e[2]=n,e[3]=o,e[4]=i):(s=e[1],n=e[2],o=e[3],i=e[4]);const{version:r,contributions:a}=Bt(Gn);let l;e[5]!==s||e[6]!==o?(l=s===void 0?N.jsx("svg",{width:o.size??16,height:o.size??16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:o.className,"aria-hidden":o["aria-hidden"]??!0,children:N.jsx("path",{d:"m12 3 9 5v8l-9 5-9-5V8l9-5Zm0 9 9-4M12 12 3 8m9 4v9"})}):s,e[5]=s,e[6]=o,e[7]=l):l=e[7];const c=l;let u;if(e[8]!==a||e[9]!==c||e[10]!==n||e[11]!==o||e[12]!==i||e[13]!==r){u=Symbol.for("react.early_return_sentinel");e:for(const f of a){if(f.plugin!==n)continue;const p=Bo(f.value,i);if(p){u=N.jsx(Go,{resetToken:f,fallback:c,children:N.jsx(C.Suspense,{fallback:c,children:N.jsx(Wo,{icon:p,...o})})},JSON.stringify([n,i,r,f.id]));break e}}e[8]=a,e[9]=c,e[10]=n,e[11]=o,e[12]=i,e[13]=r,e[14]=u}else u=e[14];if(u!==Symbol.for("react.early_return_sentinel"))return u;let d;return e[15]!==c?(d=N.jsx(N.Fragment,{children:c}),e[15]=c,e[16]=d):d=e[16],d}const Vo="omniview/settings/editor";function Jo(t){const e=F.c(23);let s,n,o;e[0]!==t?({pluginID:s,enabled:o,...n}=t,e[0]=t,e[1]=s,e[2]=n,e[3]=o):(s=e[1],n=e[2],o=e[3]);const i=o===void 0?!0:o,r=G(s),a=i&&!!n.type;let l;e[4]!==r||e[5]!==n.route.connection||e[6]!==a?(l={pluginID:r,connectionID:n.route.connection,enabled:a},e[4]=r,e[5]=n.route.connection,e[6]=a,e[7]=l):l=e[7];const c=ne(l),u=oe(r,n.route.connection),d=i&&!!r&&!!n.route.connection&&!!n.type&&c.phase==="connected";let f;e[8]!==r||e[9]!==n?(f=[r,"resource-v2","resolve-target",n],e[8]=r,e[9]=n,e[10]=f):f=e[10];let p;e[11]!==u||e[12]!==r||e[13]!==d||e[14]!==n?(p=d?v=>{const{signal:w,queryKey:S}=v;return u(S,w,()=>k.ResolveTarget(r,n))}:D.skipToken,e[11]=u,e[12]=r,e[13]=d,e[14]=n,e[15]=p):p=e[15];let y;e[16]!==d||e[17]!==f||e[18]!==p?(y={queryKey:f,queryFn:p,enabled:d,retry:!1,placeholderData:void 0},e[16]=d,e[17]=f,e[18]=p,e[19]=y):y=e[19];const g=D.useQuery(y),m=d&&g.isSuccess&&!g.isFetching?g.data:void 0;let h;return e[20]!==g||e[21]!==m?(h={...g,data:m},e[20]=g,e[21]=m,e[22]=h):h=e[22],h}exports.sameGraphNode=an.sameGraphNode;exports.ALL_SESSIONS_KEY=xe;exports.BottomDrawerContext=yn;exports.ConfirmationModalContext=vn;exports.ConnectionBoundary=ks;exports.ConnectionBoundaryFallback=Pn;exports.ErrorTypes=J;exports.ExtensionPointRegistry=ls;exports.ExtensionPointStore=En;exports.ExtensionProvider=as;exports.GLOBAL_SEARCH_OPEN_EVENT=Kn;exports.HOST_SETTINGS_SCOPE=tt;exports.Link=jo;exports.OperationsContext=Gt;exports.OperationsProvider=es;exports.PluginContext=it;exports.PluginContextProvider=Jn;exports.PluginErrorCode=Un;exports.PluginWindow=Uo;exports.PluginWindowRootProps=Qo;exports.RESOURCE_ICON_EXTENSION_POINT_ID=Gn;exports.ResourceIcon=zo;exports.RightDrawerContext=mn;exports.SETTINGS_EDITOR_EXTENSION_POINT_ID=Vo;exports.SettingsContext=Kt;exports.SettingsProvider=Xn;exports.SnackbarProvider=ds;exports.WindowActionsContext=at;exports.WindowActionsProvider=ts;exports.actionToSnackbar=pn;exports.connectionListQueryKey=Nn;exports.createErrorHandler=te;exports.defaultState=hn;exports.extensionInspectorTarget=ct;exports.graphChangedEvent=$n;exports.isCancelledError=Ke;exports.jsonTextToValue=No;exports.jsonToValue=Mt;exports.navigateActivePage=fn;exports.openGlobalSearch=Ko;exports.openSettings=Nt;exports.openSourceView=Fn;exports.parseAppError=ie;exports.readCurrentConnectionMetadataString=Us;exports.registerActivePageNavigator=Vn;exports.relationshipLabel=Po;exports.requireConnectionReady=Ge;exports.resourceQueryKeys=ve;exports.scopedSettingID=dn;exports.settingsQueryKey=ln;exports.settingsWindowTarget=Qt;exports.showAppError=Pe;exports.toRelatedResources=Qn;exports.useActiveSyncs=Do;exports.useBottomDrawer=Ht;exports.useConfirmationModal=io;exports.useConnection=ys;exports.useConnectionMetadata=As;exports.useConnectionMetadataConnections=Ms;exports.useConnectionMetadataSelector=$s;exports.useConnectionProfiles=Es;exports.useConnectionReadiness=ne;exports.useConnectionStatus=Ss;exports.useConnections=ms;exports.useDependencyTree=qo;exports.useEditorSchemas=xo;exports.useExec=Ws;exports.useExecuteAction=_o;exports.useExtensionPoint=cs;exports.useExtensionPointSnapshot=Bt;exports.useExtensionRegistry=Sn;exports.useLogs=Vs;exports.useMetricProviders=Hs;exports.useMetricProvidersForResource=Ln;exports.useMetricStream=Xs;exports.useNativeExec=zs;exports.useOperations=jn;exports.usePluginContext=Ut;exports.usePluginData=Gs;exports.usePluginRouter=$o;exports.usePortForwardSessions=Zs;exports.useRefetchOnGraphChange=dt;exports.useRelatedResources=Ao;exports.useResolvedPluginId=G;exports.useResolvedResourceTarget=Jo;exports.useResource=co;exports.useResourceActions=Io;exports.useResourceAreaComponent=ao;exports.useResourceGraph=Lo;exports.useResourceGroups=lo;exports.useResourceMetrics=Ys;exports.useResourceMutations=Co;exports.useResourcePortForwarder=oo;exports.useResourceSearch=uo;exports.useResourceType=go;exports.useResourceTypes=ho;exports.useResources=So;exports.useRightDrawer=Bs;exports.useScopeValues=bs;exports.useScopedSettings=$t;exports.useSettings=Fo;exports.useSnackbar=ce;exports.useSourceStates=Ro;exports.useStreamAction=ko;exports.useWindowActions=ns;exports.valueToJSON=ot;exports.valueToJSONText=jt;exports.withConnectionReady=gs;
|