@omniviewdev/runtime 0.26.0 → 0.27.1
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.js +2 -2
- package/dist/bindings/events/index.d.ts +12 -0
- package/dist/browser-9YF5mP93.js +13 -0
- package/dist/browser-VYZDuy8Z.cjs +1 -0
- package/dist/context/drawer/types.d.ts +8 -0
- package/dist/events-B9wlH6cT.cjs +1 -0
- package/dist/events-CgnLM6iV.js +1041 -0
- package/dist/index.cjs +3 -3
- package/dist/index.js +132 -131
- package/dist/logSessionEvents.d.ts +12 -0
- package/dist/logs.d.ts +3 -0
- package/dist/runtime.cjs +1 -1
- package/dist/runtime.js +23 -22
- package/dist/service-CDYj21m9.js +858 -0
- package/dist/service-DO0Rrm3E.cjs +1 -0
- package/package.json +3 -3
- package/dist/calls-B-HP1Icv.cjs +0 -1
- package/dist/calls-DYGtxNJ6.js +0 -684
- package/dist/events-DnLqUWri.cjs +0 -1
- package/dist/events-uBheGmqm.js +0 -370
- package/dist/service-Brxo1pLe.js +0 -755
- package/dist/service-COOtx0k6.cjs +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react/jsx-runtime"),F=require("react/compiler-runtime"),I=require("react");require("./index-BVi9X4oU.cjs");const N=require("./service-
|
|
2
|
-
`);return{message:e||(t.title!=="Error"?t.title:"Operation failed"),status:"error",details:s,actions:t.actions?.map(vn)}}function qe(t,e,s){if(ze(e))return;const n=ie(e);t(bn(n,s))}function te(t,e){return s=>{if(ze(s))return;const n=ie(s);t(bn(n,n.title!=="Error"?n.title:e))}}function os(t){const e=F.c(2);let s;return e[0]!==t?(s=O.jsx(is,{...t},t.pluginId),e[0]=t,e[1]=s):s=e[1],s}function is(t){const e=F.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:a}=Bt(o);let l;e[2]!==a.plugin?.settings||e[3]!==n?(l=Object.fromEntries(Object.entries(a.plugin?.settings??{}).filter(cs).map(D=>{const[q,A]=D;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 at.PluginMeta,e[5]=u):u=e[5];const[d,f]=I.useState(u),[p,g]=I.useState(!1),[m,h]=I.useState(null),y=I.useRef(0);console.debug("[PluginContextProvider] render",{pluginId:n,metaLoaded:p,metaError:!!m});let v;e[6]!==n?(v=()=>{if(n===void 0||n===""){console.debug("[PluginContextProvider] skipping meta fetch — empty pluginId");return}const D=y.current=y.current+1;console.debug(`[PluginContextProvider] fetching meta for "${n}"`),N.GetPluginMeta(n).then(q=>{D===y.current&&(console.debug(`[PluginContextProvider] meta loaded for "${n}"`,{name:q?.name,version:q?.version}),f(q),g(!0))}).catch(q=>{if(D!==y.current)return;const A=ie(q);console.error(`[PluginContextProvider] error fetching meta for "${n}":`,A.detail),h(A.detail),g(!1)})},e[6]=n,e[7]=v):v=e[7];const b=v;let S,E;e[8]!==b||e[9]!==p||e[10]!==n?(S=()=>{if(p)return;const D=()=>{h(null),b()},q=[G.On("plugin/init_complete",D),G.On("plugin/dev_install_complete",A=>{A.data?.id===n&&D()}),G.On("plugin/inventory_changed",D)];return()=>{for(const A of q)A()}},E=[n,p,b],e[8]=b,e[9]=p,e[10]=n,e[11]=S,e[12]=E):(S=e[11],E=e[12]),I.useEffect(S,E);let x,w;if(e[13]!==b||e[14]!==n?(x=()=>(console.debug(`[PluginContextProvider] useEffect — pluginId changed to "${n}"`),b(),()=>{y.current=y.current+1}),w=[n,b],e[13]=b,e[14]=n,e[15]=x,e[16]=w):(x=e[15],w=e[16]),I.useEffect(x,w),m){if(i)throw new Error(m);let D,q,A;e[17]===Symbol.for("react.memo_cache_sentinel")?(A={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'},q={display:"flex",alignItems:"center",gap:8,marginBottom:12},e[17]=D,e[18]=q,e[19]=A):(D=e[17],q=e[18],A=e[19]);let $,_;e[20]===Symbol.for("react.memo_cache_sentinel")?($=O.jsxs("div",{style:q,children:[O.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"#EF4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[O.jsx("circle",{cx:"12",cy:"12",r:"10"}),O.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),O.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),O.jsx("span",{style:{fontSize:14,fontWeight:600,color:"#FECACA"},children:"Plugin failed to load"})]}),_={fontSize:13,color:"#A1A1AA",margin:"0 0 16px"},e[20]=$,e[21]=_):($=e[20],_=e[21]);let P;e[22]!==m?(P=O.jsx("p",{style:_,children:m}),e[22]=m,e[23]=P):P=e[23];let T;e[24]!==b?(T=()=>{h(null),b()},e[24]=b,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=O.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=O.jsx("div",{style:A,children:O.jsxs("div",{style:D,children:[$,P,L]})}),e[29]=P,e[30]=L,e[31]=M):M=e[31],M}if(!p){if(i)return null;let D;return e[32]===Symbol.for("react.memo_cache_sentinel")?(D=O.jsxs("div",{style:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[O.jsx("div",{style:{width:24,height:24,border:"2px solid #3F3F46",borderTopColor:"#A1A1AA",borderRadius:"50%",animation:"plugin-spin 0.8s linear infinite"}}),O.jsx("style",{children:"@keyframes plugin-spin { to { transform: rotate(360deg); } }"})]}),e[32]=D):D=e[32],D}let C;e[33]!==d||e[34]!==n||e[35]!==c?(C={pluginId:n,settings:c,meta:d},e[33]=d,e[34]=n,e[35]=c,e[36]=C):C=e[36];let R;return e[37]!==s||e[38]!==C?(R=O.jsx(lt.Provider,{value:C,children:s}),e[37]=s,e[38]=C,e[39]=R):R=e[39],R}function cs(t){const[,e]=t;return e!==void 0}function zt(){const t=I.useContext(lt);if(!t)throw new Error("usePluginContext must be used within a PluginContextProvider");return t}const Vt=I.createContext(void 0),as=t=>{const e=F.c(7),{children:s}=t,{categories:n}=Bt(rt);let r;if(e[0]!==n){r={};for(const[l,c]of Object.entries(n))for(const[u,d]of Object.entries(c?.settings??{}))d&&(r[yn(rt,l,u)]=d.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 a;return e[4]!==s||e[5]!==o?(a=O.jsx(Vt.Provider,{value:o,children:s}),e[4]=s,e[5]=o,e[6]=a):a=e[6],a},wn={height:32,focused:0,tabs:[],createTab:()=>{},createTabs:()=>{},updateTab:()=>{},focusTab:()=>{},reorderTab:()=>{},closeTab:()=>{},closeTabs:()=>{},resizeDrawer:()=>{},closeDrawer:()=>{},fullscreenDrawer:()=>{}},Sn=I.createContext(wn),En=I.createContext(void 0),Cn=I.createContext(void 0),Jt=I.createContext(void 0),ls=3e4,us=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[r,i]=I.useState(n);let o;e[1]===Symbol.for("react.memo_cache_sentinel")?(o=y=>{i(v=>[y,...v])},e[1]=o):o=e[1];const a=o;let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=(y,v)=>{i(b=>b.map(S=>S.id===y?{...S,...v}:S))},e[2]=l):l=e[2];const c=l;let u;e[3]===Symbol.for("react.memo_cache_sentinel")?(u=y=>{i(v=>v.filter(b=>b.id!==y))},e[3]=u):u=e[3];const d=u;let f,p;e[4]!==r?(f=()=>{const y=[];for(const v of r)if(v.status!=="running"){const b=Date.now()-(v.completedAt??v.startedAt),S=Math.max(0,ls-b);y.push(setTimeout(()=>d(v.id),S))}return()=>y.forEach(clearTimeout)},p=[r,d],e[4]=r,e[5]=f,e[6]=p):(f=e[5],p=e[6]),I.useEffect(f,p);let g;e[7]!==r?(g={operations:r,addOperation:a,updateOperation:c,removeOperation:d},e[7]=r,e[8]=g):g=e[8];const m=g;let h;return e[9]!==s||e[10]!==m?(h=O.jsx(Jt.Provider,{value:m,children:s}),e[9]=s,e[10]=m,e[11]=h):h=e[11],h},dt=I.createContext(null),ds=t=>{const e=F.c(3),{actions:s,children:n}=t;let r;return e[0]!==s||e[1]!==n?(r=O.jsx(dt.Provider,{value:s,children:n}),e[0]=s,e[1]=n,e[2]=r):r=e[2],r};function fs(){const t=I.useContext(dt);if(!t)throw new Error("useWindowActions must be used inside a workspace window (WindowActionsProvider)");return t}var Lt=function(t,e){return Lt=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])},Lt(t,e)};function ps(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Lt(t,e);function s(){this.constructor=t}t.prototype=e===null?Object.create(e):(s.prototype=e.prototype,new s)}var xt="Invariant Violation",an=Object.setPrototypeOf,gs=an===void 0?function(t,e){return t.__proto__=e,t}:an,hs=(function(t){ps(e,t);function e(s){s===void 0&&(s=xt);var n=t.call(this,typeof s=="number"?xt+": "+s+" (see https://github.com/apollographql/invariant-packages)":s)||this;return n.framesToPop=1,n.name=xt,gs(n,e.prototype),n}return e})(Error);function Ft(t,e){if(!t)throw new hs(e)}var In=["debug","log","warn","error","silent"],ys=In.indexOf("log");function nt(t){return function(){if(In.indexOf(t)>=ys){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=nt("debug"),t.log=nt("log"),t.warn=nt("warn"),t.error=nt("error")})(Ft||(Ft={}));const _n=I.createContext(void 0),xn=()=>I.useContext(_n);function Ht(t){const e=F.c(6),s=xn(),n=I.useRef(null);let r;e[0]!==t||e[1]!==s?(r=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]=r):r=e[2];const i=r;let o;e[3]!==t||e[4]!==s?(o=()=>{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]=o):o=e[5];const a=o;return I.useSyncExternalStore(i,a,a)}function ms(t){return Ht(t).store}const vs=t=>{const e=F.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]=I.useState(r);Ft(i===s,"You can't change the extension registry after it has been rendered");let o;return e[2]!==n||e[3]!==i?(o=O.jsx(_n.Provider,{value:i,children:n}),e[2]=n,e[3]=i,e[4]=o):o=e[4],o},Rt=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()},Rn="kubernetes/resource/editor/v1",Ee=t=>typeof t=="object"&&t!==null,ge=t=>typeof t=="string"&&t.trim().length>0,bs=t=>Array.isArray(t)&&t.length>0&&t.every(e=>typeof e=="string"&&e.length>0&&!["__proto__","prototype","constructor"].includes(e)||typeof e=="number"&&Number.isSafeInteger(e)&&e>=0),Dt=t=>Array.isArray(t)&&t.every(bs),kt=t=>Array.isArray(t)&&t.every(ge);function Dn(t){if(!Ee(t)||t.contractVersion!==1)return"Unsupported resource editor contract.";if(!ge(t.label)||!Array.isArray(t.targets)||t.targets.length===0)return"Resource editor requires exact targets and a label.";const e=new Set;for(const s of t.targets){if(!Ee(s)||typeof s.group!="string"||!ge(s.version)||!ge(s.kind)||!(ge(s.resource)||s.resource===""&&Array.isArray(t.intents)&&(t.intents.every(r=>r==="inspect")&&Array.isArray(t.ownedPaths)&&t.ownedPaths.length===0||Ee(t.request)&&ge(t.request.protocol)&&t.intents.every(r=>r==="action"||r==="inspect")))||!["Namespaced","Cluster"].includes(String(s.scope))||[s.group,s.version,s.kind,s.resource].some(r=>String(r).includes("*")))return"Resource editor target must be exact.";const n=JSON.stringify([s.group,s.version,s.kind,s.resource,s.scope]);if(e.has(n))return"Duplicate resource editor target.";e.add(n)}if(!Array.isArray(t.intents)||t.intents.length===0||t.intents.some(s=>!["create","edit","inspect","action"].includes(s))||new Set(t.intents).size!==t.intents.length)return"Invalid resource editor intents.";if(!Array.isArray(t.sections)||t.sections.length===0||t.sections.some(s=>!Ee(s)||!ge(s.id)||!ge(s.label))||new Set(t.sections.map(s=>s.id)).size!==t.sections.length)return"Invalid resource editor sections.";if(!Dt(t.ownedPaths)||t.sensitivePaths!==void 0&&!Dt(t.sensitivePaths))return"Invalid resource editor paths.";if(t.ownershipPolicy!==void 0&&!["declarative","conditional","controller","system"].includes(String(t.ownershipPolicy)))return"Invalid resource editor ownership policy.";if(typeof t.component!="function"&&!(Ee(t.component)&&typeof t.component.$$typeof=="symbol"))return"Invalid resource editor component.";for(const s of["validate","validateSubmission","formUnavailable","readOnly"])if(t[s]!==void 0&&typeof t[s]!="function")return"Invalid resource editor callback.";if(t.request!==void 0){const s=t.request;if(!Ee(s)||!ge(s.protocol))return"Invalid resource editor request.";if(s.source==="canonical"){if(s.buildInput!==void 0||!["kubernetes.review.v1","kubernetes.service-account-token.v1","kubernetes.csr-approval.v1","kubernetes.pod-eviction.v1","kubernetes.scale.v1"].includes(s.protocol))return"Unsupported canonical resource editor request."}else if(s.source!==void 0&&s.source!=="projection"||typeof s.buildInput!="function")return"Invalid resource editor projection request."}if(t.requirements!==void 0){const s=t.requirements;if(!Ee(s))return"Invalid resource editor requirements.";if(s.capabilities!==void 0&&(!kt(s.capabilities)||s.capabilities.some(n=>!["create","update","delete","list","get"].includes(n))))return"Invalid resource editor capabilities.";if(s.actions!==void 0&&!kt(s.actions)||s.features!==void 0&&!kt(s.features))return"Invalid resource editor requirements.";if(s.schema!==void 0&&(!Ee(s.schema)||s.schema.identity!==void 0&&!ge(s.schema.identity)||s.schema.paths!==void 0&&!Dt(s.schema.paths)))return"Invalid resource editor schema requirements."}return null}function kn(t,e){return t.length<=e.length&&t.every((s,n)=>s===e[n])}function On(t,e){const s=e.intent==="inspect"&&(e.discovery.status==="unknown"||e.discovery.status==="absent")&&e.discovery.features["host.local-capture"]==="available";if(e.discovery.status!=="available"&&!s||!t.intents.includes(e.intent)||!t.targets.some(r=>r.group===e.group&&r.version===e.version&&r.kind===e.kind&&r.resource===e.resource&&r.scope===e.scope))return!1;const n=t.requirements;return!(n?.capabilities?.some(r=>e.capabilities[r]!=="available")||n?.actions?.some(r=>e.capabilities.actions[r]!=="available")||n?.features?.some(r=>e.discovery.features[r]!=="available")||n?.schema&&(e.schema.status!=="available"||n.schema.identity!==void 0&&n.schema.identity!==e.schema.identity||n.schema.paths?.some(r=>!e.schema.paths?.some(i=>r.length===i.length&&kn(i,r)))))}function ws(t,e,s){const n=t.filter(o=>On(o.value,e)),r=n.find(o=>o.id===s.preferredID);if(r)return{status:"selected",contribution:r};const i=n.filter(o=>o.plugin===s.builtinPluginID);return i.length===1?{status:"selected",contribution:i[0]}:n.length===1?{status:"selected",contribution:n[0]}:n.length?{status:"choose",contributions:n}:{status:"fallback"}}class Nn{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.id===Rn){const s=Dn(e.value);if(s)throw new Error(s)}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 Ss{_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=Rt(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 Nn({...e,id:s});this._stores.set(s,n),this._storeUnsubs.set(s,n.subscribe(()=>this._notify())),this._notify()}getExtensionPoint(e){const s=Rt(e);return this._stores.get(s)}hasExtensionPoint(e){const s=Rt(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 re={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)"}},Tn=I.createContext(void 0),Es={default:"info",info:"info",success:"success",warning:"warning",error:"danger"},Cs=({children:t})=>{const{toast:e}=B.useToast(),[s,n]=I.useState([]),[r,i]=I.useState([]),[o,a]=I.useState(!1),[l,c]=I.useState(),[u,d]=I.useState(""),f=I.useRef(0),p=I.useRef(null);I.useEffect(()=>{if(!o)return;const h=document.activeElement;p.current?.focus();const y=v=>{v.key==="Escape"&&(v.stopPropagation(),a(!1))};return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y),h instanceof HTMLElement&&h.isConnected&&h.focus()}},[o]);const g=h=>{n(y=>[...y,h])},m=(h,y,v)=>{const b=typeof h=="object";let S="",E="info",x,w=5e3,C;if(b){if(S=h.message,h.showOnce){if(s.includes(S))return;g(S)}E=h.status,x=h.details,w=h.autoHideDuration??5e3,C=h.actions}else S=h,E=y,x=v;let R;if(E==="error"){const D={id:++f.current,message:S,details:x,created:new Date().toISOString(),actions:C};i(q=>[...q,D].slice(-20)),R={label:"Details",onClick:()=>{c(D.id),a(!0)}}}e(E==="error"?S:x??S,{severity:Es[E]??"info",title:E!=="error"&&x?S:void 0,duration:w,action:R??C?.[0]})};return O.jsxs(Tn.Provider,{value:{showSnackbar:m,openNotifications:()=>{a(!0)},notificationCount:r.length},children:[t,o&&O.jsxs(B.Card,{ref:p,style:re.Panel,size:"sm",variant:"outline",surface:"overlay",elevation:3,"aria-label":"Notifications",tabIndex:-1,children:[O.jsxs(B.Toolbar,{size:"sm",style:re.Header,children:[O.jsx(B.Text,{size:"sm",weight:"semibold",children:"Notifications"}),O.jsx(B.Text,{size:"xs",tone:"muted",children:r.length}),O.jsxs(B.Toolbar.Group,{style:re.HeaderActions,children:[O.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":"Clear history",title:"Clear history",disabled:r.length===0,onClick:()=>{i([]),c(void 0),d("")},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m3 3 6 6m0-6L3 9M13 6h8M3 14h18M3 20h18"})})}),O.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":"Close notifications",title:"Close notifications",onClick:()=>{a(!1)},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m6 9 6 6 6-6"})})})]})]}),O.jsxs("div",{style:re.List,children:[r.length===0&&O.jsx(B.EmptyState,{size:"sm",title:"No recent errors",description:"Error details will appear here."}),r.slice().reverse().map(h=>{const y=l===h.id;return O.jsxs("div",{style:re.Notice,children:[O.jsxs("div",{style:re.Row,children:[O.jsxs("svg",{style:re.ErrorIcon,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-label":"Error",role:"img",children:[O.jsx("circle",{cx:"12",cy:"12",r:"9"}),O.jsx("path",{d:"m9 9 6 6m0-6-6 6"})]}),O.jsx(B.Button,{size:"sm",variant:"ghost",style:re.Message,"aria-expanded":y,"aria-controls":`notification-${h.id}`,title:h.message,onClick:()=>{c(y?void 0:h.id),d("")},children:O.jsx(B.Text,{size:"sm",style:re.MessageText,truncate:!y,children:h.message})}),O.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":y?"Collapse details":"Expand details",title:y?"Collapse details":"Expand details","aria-expanded":y,"aria-controls":`notification-${h.id}`,onClick:()=>{c(y?void 0:h.id),d("")},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:y?"m6 15 6-6 6 6":"m6 9 6 6 6-6"})})}),O.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":`Dismiss ${h.message}`,title:"Dismiss notification",onClick:()=>{i(v=>v.filter(b=>b.id!==h.id)),y&&(c(void 0),d(""))},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m6 6 12 12m0-12L6 18"})})})]}),O.jsx("div",{id:`notification-${h.id}`,hidden:!y,style:re.Details,children:y&&O.jsxs(O.Fragment,{children:[O.jsx(B.Text,{size:"xs",tone:"muted",children:O.jsx("time",{dateTime:h.created,children:new Date(h.created).toLocaleString()})}),O.jsx(B.Code,{size:"sm",style:re.Code,children:h.details?.length?h.details:h.message}),O.jsxs("div",{style:re.Actions,children:[O.jsx(B.Button,{size:"sm",variant:"ghost",onClick:async()=>{d("");try{await navigator.clipboard.writeText(`${h.message}
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react/jsx-runtime"),F=require("react/compiler-runtime"),I=require("react");require("./index-BVi9X4oU.cjs");const N=require("./service-DO0Rrm3E.cjs"),G=require("./events-B9wlH6cT.cjs"),pn=require("./graph-D4xtzkXX.cjs"),k=require("@tanstack/react-query"),st=require("react-router"),B=require("@omniviewdev/base-ui"),gn=require("./browser-VYZDuy8Z.cjs"),at=require("./models-R2rKpSiU.cjs"),ns=require("react-router/dom"),lt=I.createContext(void 0),rt={kind:"host"},hn=t=>["settings",t.kind,t.kind==="plugin"?t.pluginId:""],ss={};async function yn(t,e){await t.cancelQueries(e),await t.invalidateQueries(e)}const Ct=new WeakMap;function rs(t){let e=Ct.get(t);if(!e){const s=r=>{const i=r?["settings",r.kind,r.kind==="plugin"?r.pluginId:""]:["settings","plugin"];yn(t,{queryKey:i})},n=[G.On("settings/changed",r=>{s(r.data)}),G.On("plugin/init_complete",()=>s()),G.On("plugin/inventory_changed",()=>s()),G.On("plugin/dev_reload_complete",()=>s()),G.On("plugin/recovered",()=>s()),G.On("plugin/dev_install_complete",r=>{const i=r.data?.id;typeof i=="string"&&s({kind:"plugin",pluginId:i})})];e={users:0,stop:()=>{for(const r of n)r()}},Ct.set(t,e)}return e.users++,()=>{--e.users===0&&(e.stop(),Ct.delete(t))}}function mn(t,e,s){return t.kind==="host"?`${e}.${s}`:s}function Bt(t){const e=F.c(25),s=k.useQueryClient(),n=t.kind,r=t.pluginId;let i,o;e[0]!==s?(i=()=>rs(s),o=[s],e[0]=s,e[1]=i,e[2]=o):(i=e[1],o=e[2]),I.useEffect(i,o);let a;e[3]!==t?(a=hn(t),e[3]=t,e[4]=a):a=e[4];let l;e[5]!==t?(l=async v=>{const{signal:b}=v,S=await N.GetSnapshot(t);return b.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=k.useQuery(c);let d;e[10]!==s||e[11]!==n||e[12]!==r||e[13]!==t?(d={mutationFn:async v=>{const b=await N.Commit(t,v);return await yn(s,{queryKey:["settings",n,r??""]}),b}},e[10]=s,e[11]=n,e[12]=r,e[13]=t,e[14]=d):d=e[14];const{mutateAsync:f}=k.useMutation(d);let p;e[15]!==n||e[16]!==r?(p=(v,b)=>N.Validate(n==="host"?rt:{kind:n,pluginId:r},v,b),e[15]=n,e[16]=r,e[17]=p):p=e[17];const g=p,m=u.data?.categories??ss,h=u.error??void 0;let y;return e[18]!==f||e[19]!==u.data||e[20]!==u.isPending||e[21]!==m||e[22]!==h||e[23]!==g?(y={snapshot:u.data,categories:m,isLoading:u.isPending,error:h,commit:f,validate:g},e[18]=f,e[19]=u.data,e[20]=u.isPending,e[21]=m,e[22]=h,e[23]=g,e[24]=y):y=e[24],y}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 ut(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),r=n.get("section");if(r!=="extensions"&&!((r===null||r==="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 o=i.toString();return`/developer-tools/extensions${o?`?${o}`:""}`}function Wt(t){const e=t.startsWith("#")?t.slice(1):t;return/^\/settings\/?(?:[?#]|$)/.test(e)&&ut(e)===null?e:null}function qt(t=""){const e=ut(t);if(e!==null)return G.Emit("extensions/inspector/open",{targetWindow:"main",path:e}).then(()=>N.Focus("main")).then(()=>"main");const s=t===""?"":Wt(t);return s===null?Promise.reject(new Error("Settings requires a local settings route.")):N.OpenSettings(s==="/settings"||s==="/settings/"?"":s)}let Re=null;function os(t){return Re=t,()=>{Re===t&&(Re=null)}}function vn(t){const e=ut(t);if(e!==null){Re?Re(e):qt(t).catch(n=>{console.error("[extensions] opening the inspector failed",n)});return}const s=Wt(t);if(s!==null){qt(s).catch(n=>{console.error("[settings] opening the settings window failed",n)});return}if(!Re)throw new Error(`cannot navigate to "${t}": this window has no page navigator`);Re(t)}const cn={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 It(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 _t(){return{type:J.CANCELLED,code:"CANCELLED",title:"Cancelled",status:499,detail:"The operation was cancelled.",recovery:"none"}}function Be(t,e){if(e>12)return;if(t==="cancelled")return _t();if(typeof t=="string"){const n=t.trim(),r=n.indexOf("{");if(r<0&&!n.startsWith('"'))return;try{return Be(JSON.parse(n.startsWith('"')?n:n.slice(r)),e+1)}catch{return}}const s=It(t);if(s){if(s.name==="AbortError"||s.name==="CancelError")return _t();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},r=Be(s.detail,e+1);r?n.detail=`${r.title}: ${r.detail}`:/^\s*[{"]|:\s*\{/.test(s.detail)&&(n.detail="The operation could not be completed."),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(o=>de(o,512)).slice(0,8)),Array.isArray(s.actions)&&(n.actions=s.actions.filter(o=>{const a=It(o);return!!a&&["navigate","retry","open-url","copy"].includes(String(a.type))&&de(a.label,256)&&(a.target===void 0||de(a.target,4096))}).slice(0,8)),["correctRequest","refreshContract","restartQuery","reconnect","none"].includes(String(s.recovery))&&(n.recovery=s.recovery);const i=It(s.location);return i?.unit==="utf8-byte"&&typeof i.start=="number"&&typeof i.end=="number"&&Number.isSafeInteger(i.start)&&Number.isSafeInteger(i.end)&&i.start>=0&&i.end>=i.start&&(n.location={start:i.start,end:i.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(cn,n)||(n="INTERNAL"),n==="CANCELLED")return _t();const[r,i,o]=cn[n],a=n==="FORBIDDEN"||n==="UNAUTHORIZED"||n==="INTERNAL"||n==="PROVIDER_ERROR";return{type:r,status:i,code:n,recovery:o,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 Be(s.message,e+1)??Be(s.cause,e+1)}}function ie(t){return Be(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 ze(t){return ie(t).type===J.CANCELLED}function bn(t){switch(t.type){case"navigate":return{label:t.label,onClick:()=>{vn((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 wn(t,e){const s=[t.detail,...t.suggestions?.map(r=>`• ${r}`)??[]].join(`
|
|
2
|
+
`);return{message:e||(t.title!=="Error"?t.title:"Operation failed"),status:"error",details:s,actions:t.actions?.map(bn)}}function qe(t,e,s){if(ze(e))return;const n=ie(e);t(wn(n,s))}function te(t,e){return s=>{if(ze(s))return;const n=ie(s);t(wn(n,n.title!=="Error"?n.title:e))}}function is(t){const e=F.c(2);let s;return e[0]!==t?(s=O.jsx(cs,{...t},t.pluginId),e[0]=t,e[1]=s):s=e[1],s}function cs(t){const e=F.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:a}=Bt(o);let l;e[2]!==a.plugin?.settings||e[3]!==n?(l=Object.fromEntries(Object.entries(a.plugin?.settings??{}).filter(as).map(D=>{const[q,A]=D;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 at.PluginMeta,e[5]=u):u=e[5];const[d,f]=I.useState(u),[p,g]=I.useState(!1),[m,h]=I.useState(null),y=I.useRef(0);console.debug("[PluginContextProvider] render",{pluginId:n,metaLoaded:p,metaError:!!m});let v;e[6]!==n?(v=()=>{if(n===void 0||n===""){console.debug("[PluginContextProvider] skipping meta fetch — empty pluginId");return}const D=y.current=y.current+1;console.debug(`[PluginContextProvider] fetching meta for "${n}"`),N.GetPluginMeta(n).then(q=>{D===y.current&&(console.debug(`[PluginContextProvider] meta loaded for "${n}"`,{name:q?.name,version:q?.version}),f(q),g(!0))}).catch(q=>{if(D!==y.current)return;const A=ie(q);console.error(`[PluginContextProvider] error fetching meta for "${n}":`,A.detail),h(A.detail),g(!1)})},e[6]=n,e[7]=v):v=e[7];const b=v;let S,E;e[8]!==b||e[9]!==p||e[10]!==n?(S=()=>{if(p)return;const D=()=>{h(null),b()},q=[G.On("plugin/init_complete",D),G.On("plugin/dev_install_complete",A=>{A.data?.id===n&&D()}),G.On("plugin/inventory_changed",D)];return()=>{for(const A of q)A()}},E=[n,p,b],e[8]=b,e[9]=p,e[10]=n,e[11]=S,e[12]=E):(S=e[11],E=e[12]),I.useEffect(S,E);let x,w;if(e[13]!==b||e[14]!==n?(x=()=>(console.debug(`[PluginContextProvider] useEffect — pluginId changed to "${n}"`),b(),()=>{y.current=y.current+1}),w=[n,b],e[13]=b,e[14]=n,e[15]=x,e[16]=w):(x=e[15],w=e[16]),I.useEffect(x,w),m){if(i)throw new Error(m);let D,q,A;e[17]===Symbol.for("react.memo_cache_sentinel")?(A={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'},q={display:"flex",alignItems:"center",gap:8,marginBottom:12},e[17]=D,e[18]=q,e[19]=A):(D=e[17],q=e[18],A=e[19]);let $,_;e[20]===Symbol.for("react.memo_cache_sentinel")?($=O.jsxs("div",{style:q,children:[O.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"#EF4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[O.jsx("circle",{cx:"12",cy:"12",r:"10"}),O.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),O.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),O.jsx("span",{style:{fontSize:14,fontWeight:600,color:"#FECACA"},children:"Plugin failed to load"})]}),_={fontSize:13,color:"#A1A1AA",margin:"0 0 16px"},e[20]=$,e[21]=_):($=e[20],_=e[21]);let P;e[22]!==m?(P=O.jsx("p",{style:_,children:m}),e[22]=m,e[23]=P):P=e[23];let T;e[24]!==b?(T=()=>{h(null),b()},e[24]=b,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=O.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=O.jsx("div",{style:A,children:O.jsxs("div",{style:D,children:[$,P,L]})}),e[29]=P,e[30]=L,e[31]=M):M=e[31],M}if(!p){if(i)return null;let D;return e[32]===Symbol.for("react.memo_cache_sentinel")?(D=O.jsxs("div",{style:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[O.jsx("div",{style:{width:24,height:24,border:"2px solid #3F3F46",borderTopColor:"#A1A1AA",borderRadius:"50%",animation:"plugin-spin 0.8s linear infinite"}}),O.jsx("style",{children:"@keyframes plugin-spin { to { transform: rotate(360deg); } }"})]}),e[32]=D):D=e[32],D}let C;e[33]!==d||e[34]!==n||e[35]!==c?(C={pluginId:n,settings:c,meta:d},e[33]=d,e[34]=n,e[35]=c,e[36]=C):C=e[36];let R;return e[37]!==s||e[38]!==C?(R=O.jsx(lt.Provider,{value:C,children:s}),e[37]=s,e[38]=C,e[39]=R):R=e[39],R}function as(t){const[,e]=t;return e!==void 0}function zt(){const t=I.useContext(lt);if(!t)throw new Error("usePluginContext must be used within a PluginContextProvider");return t}const Vt=I.createContext(void 0),ls=t=>{const e=F.c(7),{children:s}=t,{categories:n}=Bt(rt);let r;if(e[0]!==n){r={};for(const[l,c]of Object.entries(n))for(const[u,d]of Object.entries(c?.settings??{}))d&&(r[mn(rt,l,u)]=d.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 a;return e[4]!==s||e[5]!==o?(a=O.jsx(Vt.Provider,{value:o,children:s}),e[4]=s,e[5]=o,e[6]=a):a=e[6],a},Sn={height:32,focused:0,tabs:[],createTab:()=>{},createTabs:()=>{},updateTab:()=>{},focusTab:()=>{},reorderTab:()=>{},closeTab:()=>{},closeTabs:()=>{},resizeDrawer:()=>{},closeDrawer:()=>{},fullscreenDrawer:()=>{}},En=I.createContext(Sn),Cn=I.createContext(void 0),In=I.createContext(void 0),Jt=I.createContext(void 0),us=3e4,ds=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[r,i]=I.useState(n);let o;e[1]===Symbol.for("react.memo_cache_sentinel")?(o=y=>{i(v=>[y,...v])},e[1]=o):o=e[1];const a=o;let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=(y,v)=>{i(b=>b.map(S=>S.id===y?{...S,...v}:S))},e[2]=l):l=e[2];const c=l;let u;e[3]===Symbol.for("react.memo_cache_sentinel")?(u=y=>{i(v=>v.filter(b=>b.id!==y))},e[3]=u):u=e[3];const d=u;let f,p;e[4]!==r?(f=()=>{const y=[];for(const v of r)if(v.status!=="running"){const b=Date.now()-(v.completedAt??v.startedAt),S=Math.max(0,us-b);y.push(setTimeout(()=>d(v.id),S))}return()=>y.forEach(clearTimeout)},p=[r,d],e[4]=r,e[5]=f,e[6]=p):(f=e[5],p=e[6]),I.useEffect(f,p);let g;e[7]!==r?(g={operations:r,addOperation:a,updateOperation:c,removeOperation:d},e[7]=r,e[8]=g):g=e[8];const m=g;let h;return e[9]!==s||e[10]!==m?(h=O.jsx(Jt.Provider,{value:m,children:s}),e[9]=s,e[10]=m,e[11]=h):h=e[11],h},dt=I.createContext(null),fs=t=>{const e=F.c(3),{actions:s,children:n}=t;let r;return e[0]!==s||e[1]!==n?(r=O.jsx(dt.Provider,{value:s,children:n}),e[0]=s,e[1]=n,e[2]=r):r=e[2],r};function ps(){const t=I.useContext(dt);if(!t)throw new Error("useWindowActions must be used inside a workspace window (WindowActionsProvider)");return t}var Lt=function(t,e){return Lt=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])},Lt(t,e)};function gs(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Lt(t,e);function s(){this.constructor=t}t.prototype=e===null?Object.create(e):(s.prototype=e.prototype,new s)}var xt="Invariant Violation",an=Object.setPrototypeOf,hs=an===void 0?function(t,e){return t.__proto__=e,t}:an,ys=(function(t){gs(e,t);function e(s){s===void 0&&(s=xt);var n=t.call(this,typeof s=="number"?xt+": "+s+" (see https://github.com/apollographql/invariant-packages)":s)||this;return n.framesToPop=1,n.name=xt,hs(n,e.prototype),n}return e})(Error);function Ft(t,e){if(!t)throw new ys(e)}var _n=["debug","log","warn","error","silent"],ms=_n.indexOf("log");function nt(t){return function(){if(_n.indexOf(t)>=ms){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=nt("debug"),t.log=nt("log"),t.warn=nt("warn"),t.error=nt("error")})(Ft||(Ft={}));const xn=I.createContext(void 0),Rn=()=>I.useContext(xn);function Ht(t){const e=F.c(6),s=Rn(),n=I.useRef(null);let r;e[0]!==t||e[1]!==s?(r=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]=r):r=e[2];const i=r;let o;e[3]!==t||e[4]!==s?(o=()=>{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]=o):o=e[5];const a=o;return I.useSyncExternalStore(i,a,a)}function vs(t){return Ht(t).store}const bs=t=>{const e=F.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]=I.useState(r);Ft(i===s,"You can't change the extension registry after it has been rendered");let o;return e[2]!==n||e[3]!==i?(o=O.jsx(xn.Provider,{value:i,children:n}),e[2]=n,e[3]=i,e[4]=o):o=e[4],o},Rt=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()},Dn="kubernetes/resource/editor/v1",Ee=t=>typeof t=="object"&&t!==null,ge=t=>typeof t=="string"&&t.trim().length>0,ws=t=>Array.isArray(t)&&t.length>0&&t.every(e=>typeof e=="string"&&e.length>0&&!["__proto__","prototype","constructor"].includes(e)||typeof e=="number"&&Number.isSafeInteger(e)&&e>=0),Dt=t=>Array.isArray(t)&&t.every(ws),kt=t=>Array.isArray(t)&&t.every(ge);function kn(t){if(!Ee(t)||t.contractVersion!==1)return"Unsupported resource editor contract.";if(!ge(t.label)||!Array.isArray(t.targets)||t.targets.length===0)return"Resource editor requires exact targets and a label.";const e=new Set;for(const s of t.targets){if(!Ee(s)||typeof s.group!="string"||!ge(s.version)||!ge(s.kind)||!(ge(s.resource)||s.resource===""&&Array.isArray(t.intents)&&(t.intents.every(r=>r==="inspect")&&Array.isArray(t.ownedPaths)&&t.ownedPaths.length===0||Ee(t.request)&&ge(t.request.protocol)&&t.intents.every(r=>r==="action"||r==="inspect")))||!["Namespaced","Cluster"].includes(String(s.scope))||[s.group,s.version,s.kind,s.resource].some(r=>String(r).includes("*")))return"Resource editor target must be exact.";const n=JSON.stringify([s.group,s.version,s.kind,s.resource,s.scope]);if(e.has(n))return"Duplicate resource editor target.";e.add(n)}if(!Array.isArray(t.intents)||t.intents.length===0||t.intents.some(s=>!["create","edit","inspect","action"].includes(s))||new Set(t.intents).size!==t.intents.length)return"Invalid resource editor intents.";if(!Array.isArray(t.sections)||t.sections.length===0||t.sections.some(s=>!Ee(s)||!ge(s.id)||!ge(s.label))||new Set(t.sections.map(s=>s.id)).size!==t.sections.length)return"Invalid resource editor sections.";if(!Dt(t.ownedPaths)||t.sensitivePaths!==void 0&&!Dt(t.sensitivePaths))return"Invalid resource editor paths.";if(t.ownershipPolicy!==void 0&&!["declarative","conditional","controller","system"].includes(String(t.ownershipPolicy)))return"Invalid resource editor ownership policy.";if(typeof t.component!="function"&&!(Ee(t.component)&&typeof t.component.$$typeof=="symbol"))return"Invalid resource editor component.";for(const s of["validate","validateSubmission","formUnavailable","readOnly"])if(t[s]!==void 0&&typeof t[s]!="function")return"Invalid resource editor callback.";if(t.request!==void 0){const s=t.request;if(!Ee(s)||!ge(s.protocol))return"Invalid resource editor request.";if(s.source==="canonical"){if(s.buildInput!==void 0||!["kubernetes.review.v1","kubernetes.service-account-token.v1","kubernetes.csr-approval.v1","kubernetes.pod-eviction.v1","kubernetes.scale.v1"].includes(s.protocol))return"Unsupported canonical resource editor request."}else if(s.source!==void 0&&s.source!=="projection"||typeof s.buildInput!="function")return"Invalid resource editor projection request."}if(t.requirements!==void 0){const s=t.requirements;if(!Ee(s))return"Invalid resource editor requirements.";if(s.capabilities!==void 0&&(!kt(s.capabilities)||s.capabilities.some(n=>!["create","update","delete","list","get"].includes(n))))return"Invalid resource editor capabilities.";if(s.actions!==void 0&&!kt(s.actions)||s.features!==void 0&&!kt(s.features))return"Invalid resource editor requirements.";if(s.schema!==void 0&&(!Ee(s.schema)||s.schema.identity!==void 0&&!ge(s.schema.identity)||s.schema.paths!==void 0&&!Dt(s.schema.paths)))return"Invalid resource editor schema requirements."}return null}function On(t,e){return t.length<=e.length&&t.every((s,n)=>s===e[n])}function Nn(t,e){const s=e.intent==="inspect"&&(e.discovery.status==="unknown"||e.discovery.status==="absent")&&e.discovery.features["host.local-capture"]==="available";if(e.discovery.status!=="available"&&!s||!t.intents.includes(e.intent)||!t.targets.some(r=>r.group===e.group&&r.version===e.version&&r.kind===e.kind&&r.resource===e.resource&&r.scope===e.scope))return!1;const n=t.requirements;return!(n?.capabilities?.some(r=>e.capabilities[r]!=="available")||n?.actions?.some(r=>e.capabilities.actions[r]!=="available")||n?.features?.some(r=>e.discovery.features[r]!=="available")||n?.schema&&(e.schema.status!=="available"||n.schema.identity!==void 0&&n.schema.identity!==e.schema.identity||n.schema.paths?.some(r=>!e.schema.paths?.some(i=>r.length===i.length&&On(i,r)))))}function Ss(t,e,s){const n=t.filter(o=>Nn(o.value,e)),r=n.find(o=>o.id===s.preferredID);if(r)return{status:"selected",contribution:r};const i=n.filter(o=>o.plugin===s.builtinPluginID);return i.length===1?{status:"selected",contribution:i[0]}:n.length===1?{status:"selected",contribution:n[0]}:n.length?{status:"choose",contributions:n}:{status:"fallback"}}class Tn{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.id===Dn){const s=kn(e.value);if(s)throw new Error(s)}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 Es{_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=Rt(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 Tn({...e,id:s});this._stores.set(s,n),this._storeUnsubs.set(s,n.subscribe(()=>this._notify())),this._notify()}getExtensionPoint(e){const s=Rt(e);return this._stores.get(s)}hasExtensionPoint(e){const s=Rt(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 re={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)"}},Pn=I.createContext(void 0),Cs={default:"info",info:"info",success:"success",warning:"warning",error:"danger"},Is=({children:t})=>{const{toast:e}=B.useToast(),[s,n]=I.useState([]),[r,i]=I.useState([]),[o,a]=I.useState(!1),[l,c]=I.useState(),[u,d]=I.useState(""),f=I.useRef(0),p=I.useRef(null);I.useEffect(()=>{if(!o)return;const h=document.activeElement;p.current?.focus();const y=v=>{v.key==="Escape"&&(v.stopPropagation(),a(!1))};return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y),h instanceof HTMLElement&&h.isConnected&&h.focus()}},[o]);const g=h=>{n(y=>[...y,h])},m=(h,y,v)=>{const b=typeof h=="object";let S="",E="info",x,w=5e3,C;if(b){if(S=h.message,h.showOnce){if(s.includes(S))return;g(S)}E=h.status,x=h.details,w=h.autoHideDuration??5e3,C=h.actions}else S=h,E=y,x=v;let R;if(E==="error"){const D={id:++f.current,message:S,details:x,created:new Date().toISOString(),actions:C};i(q=>[...q,D].slice(-20)),R={label:"Details",onClick:()=>{c(D.id),a(!0)}}}e(E==="error"?S:x??S,{severity:Cs[E]??"info",title:E!=="error"&&x?S:void 0,duration:w,action:R??C?.[0]})};return O.jsxs(Pn.Provider,{value:{showSnackbar:m,openNotifications:()=>{a(!0)},notificationCount:r.length},children:[t,o&&O.jsxs(B.Card,{ref:p,style:re.Panel,size:"sm",variant:"outline",surface:"overlay",elevation:3,"aria-label":"Notifications",tabIndex:-1,children:[O.jsxs(B.Toolbar,{size:"sm",style:re.Header,children:[O.jsx(B.Text,{size:"sm",weight:"semibold",children:"Notifications"}),O.jsx(B.Text,{size:"xs",tone:"muted",children:r.length}),O.jsxs(B.Toolbar.Group,{style:re.HeaderActions,children:[O.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":"Clear history",title:"Clear history",disabled:r.length===0,onClick:()=>{i([]),c(void 0),d("")},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m3 3 6 6m0-6L3 9M13 6h8M3 14h18M3 20h18"})})}),O.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":"Close notifications",title:"Close notifications",onClick:()=>{a(!1)},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m6 9 6 6 6-6"})})})]})]}),O.jsxs("div",{style:re.List,children:[r.length===0&&O.jsx(B.EmptyState,{size:"sm",title:"No recent errors",description:"Error details will appear here."}),r.slice().reverse().map(h=>{const y=l===h.id;return O.jsxs("div",{style:re.Notice,children:[O.jsxs("div",{style:re.Row,children:[O.jsxs("svg",{style:re.ErrorIcon,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-label":"Error",role:"img",children:[O.jsx("circle",{cx:"12",cy:"12",r:"9"}),O.jsx("path",{d:"m9 9 6 6m0-6-6 6"})]}),O.jsx(B.Button,{size:"sm",variant:"ghost",style:re.Message,"aria-expanded":y,"aria-controls":`notification-${h.id}`,title:h.message,onClick:()=>{c(y?void 0:h.id),d("")},children:O.jsx(B.Text,{size:"sm",style:re.MessageText,truncate:!y,children:h.message})}),O.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":y?"Collapse details":"Expand details",title:y?"Collapse details":"Expand details","aria-expanded":y,"aria-controls":`notification-${h.id}`,onClick:()=>{c(y?void 0:h.id),d("")},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:y?"m6 15 6-6 6 6":"m6 9 6 6 6-6"})})}),O.jsx(B.IconButton,{size:"sm",variant:"ghost","aria-label":`Dismiss ${h.message}`,title:"Dismiss notification",onClick:()=>{i(v=>v.filter(b=>b.id!==h.id)),y&&(c(void 0),d(""))},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m6 6 12 12m0-12L6 18"})})})]}),O.jsx("div",{id:`notification-${h.id}`,hidden:!y,style:re.Details,children:y&&O.jsxs(O.Fragment,{children:[O.jsx(B.Text,{size:"xs",tone:"muted",children:O.jsx("time",{dateTime:h.created,children:new Date(h.created).toLocaleString()})}),O.jsx(B.Code,{size:"sm",style:re.Code,children:h.details?.length?h.details:h.message}),O.jsxs("div",{style:re.Actions,children:[O.jsx(B.Button,{size:"sm",variant:"ghost",onClick:async()=>{d("");try{await navigator.clipboard.writeText(`${h.message}
|
|
3
3
|
${h.created}
|
|
4
|
-
${h.details??""}`)}catch{d("Copy failed. Select the diagnostic text and copy it manually.")}},children:"Copy details"}),h.actions?.map((v,b)=>O.jsx(B.Button,{size:"sm",variant:"outline",onClick:v.onClick,children:v.label},`${v.label}-${b}`))]})]})})]},h.id)})]}),u&&O.jsx(B.Text,{as:"p",size:"sm",role:"status",style:re.CopyError,children:u})]})]})},ce=()=>{const t=I.useContext(Tn);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 Q(t){const s=I.useContext(lt)?.pluginId??t;if(!s)throw new Error("pluginID must be provided either via PluginContext or as an explicit parameter");return s}const oe=new Map,Me=new Map;let Ot=0,Ae=[],Xt=0;const Pn={phase:"checking"};function Ce(t,e){const s=JSON.stringify([t,e]);let n=oe.get(s);return n||(n={pluginID:t,connectionID:e,key:s,snapshot:Pn,listeners:new Set,users:0,version:0,generation:++Xt,starts:new Set},oe.set(s,n)),n}function We(t,e){t.snapshot.phase==="connected"&&e.phase!=="connected"&&(t.generation=++Xt),t.snapshot=e;for(const s of t.listeners)s()}function Ie(t,e,s=!1){t.generation=++Xt,t.version++,s||(t.operation=void 0),We(t,e)}function Is(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 Yt(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 An(t,e){const s=Is(t.status);return{phase:s,connection:e,message:Yt(t.error||t.details)||(s==="error"?"The connection is not ready.":void 0)}}function qn(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:Yt(s.detail||s.title)}}function Nt(t,e){e=Yt(e)||"The plugin is unavailable.",Me.set(t,e);for(const s of oe.values())s.pluginID===t&&Ie(s,{phase:"error",message:e,connection:s.snapshot.connection})}function ln(t){const e=Me.delete(t);for(const s of oe.values())s.pluginID===t&&(!e&&s.snapshot.phase==="checking"&&s.operation?.kind==="check"||(Ie(s,{phase:"checking",connection:s.snapshot.connection}),s.users&&ve(s,"check").catch(()=>{})))}function Pe(){if(!(typeof document<"u"&&document.visibilityState==="hidden"))for(const t of oe.values())t.users&&!Me.has(t.pluginID)&&ve(t,"check",!0).catch(()=>{})}function _s(){Ae.length||(Ae=[G.On("connection/status",({data:t})=>{const e=oe.get(JSON.stringify([t.pluginID,t.connectionID]));!e||Me.has(t.pluginID)||e.stop&&t.status!=="DISCONNECTED"||t.status!=="DISCONNECTED"&&e.starts.size&&e.operation?.kind!=="start"||Ie(e,An({status:t.status,error:"",details:""},e.snapshot.connection),t.status==="CONNECTED")}),G.On("plugin/crash",({data:t})=>Nt(t.pluginID,t.error||"The plugin stopped unexpectedly.")),G.On("plugin/crash_recovery_failed",({data:t})=>Nt(t.pluginID,t.error||"Plugin recovery failed.")),G.On("plugin/recovered",({data:t})=>ln(t.pluginID)),G.On("plugin/state_change",({data:t})=>{t.to==="Running"?ln(t.pluginID):Nt(t.pluginID,t.reason||`The plugin is ${t.to}.`)})],typeof window<"u"&&(window.addEventListener("focus",Pe),window.addEventListener("pageshow",Pe),Ae.push(()=>{window.removeEventListener("focus",Pe),window.removeEventListener("pageshow",Pe)})),typeof document<"u"&&(document.addEventListener("visibilitychange",Pe),Ae.push(()=>document.removeEventListener("visibilitychange",Pe))))}function ke(t){return oe.set(t.key,t),t.users++,Ot++,_s(),()=>{if(t.users--,Ot--,t.users||(Ie(t,Pn),oe.get(t.key)===t&&oe.delete(t.key)),!Ot){for(const e of Ae)e();Ae=[],Me.clear()}}}function ve(t,e,s=!1){if(t.stop)return Promise.reject(new Error("Connection is disconnecting. Wait for it to stop before connecting."));const n=Me.get(t.pluginID);if(n)return We(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")&&We(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"?N.StartConnection(t.pluginID,t.connectionID):N.CheckConnection(t.pluginID,t.connectionID)}).then(o=>(t.version===r&&We(t,An(o,o.connection??t.snapshot.connection)),o),o=>{throw t.version===r&&We(t,qn(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 je(t,e){return{getSnapshot:()=>Ce(t,e).snapshot,subscribe:s=>{const n=Ce(t,e),r=n.users===0,i=ke(n);return n.listeners.add(s),r&&ve(n,"check").catch(()=>{}),()=>{n.listeners.delete(s),i()}},connect:async()=>{const s=Ce(t,e),n=ke(s);try{await ve(s,"start")}catch{}finally{n()}},retry:async()=>{const s=Ce(t,e),n=ke(s);try{await ve(s,"check")}catch{}finally{n()}}}}async function Ve(t,e){const s=Ce(t,e),n=ke(s);try{try{await ve(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 xs(t,e,s){const n=Ce(t,e),r=ke(n);try{try{await ve(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 ft(t,e){return oe.get(JSON.stringify([t,e]))?.generation}function Ln(t,e,s){const n=oe.get(JSON.stringify([t,e]));return s!==void 0&&n?.generation===s&&n.snapshot.phase==="connected"}async function Rs(t,e){const s=Ce(t,e),n=ke(s);try{return await ve(s,"start")}finally{n()}}function Fn(t,e){const s=Ce(t,e);if(s.stop)return s.stop;const n=ke(s),r=Promise.resolve().then(()=>N.StopConnection(t,e)).then(i=>(Ie(s,{phase:"disconnected",connection:i}),i),i=>{throw Ie(s,qn(i,s.snapshot.connection)),i}).finally(()=>{s.stop=void 0,n()});return s.stop=r,Ie(s,{phase:"disconnected",message:"Disconnecting. Wait for the connection to stop before reconnecting.",connection:s.snapshot.connection}),r}function un(t,e,s=!1){const n=oe.get(JSON.stringify([t,e]));n&&(Ie(n,{phase:s?"not-found":"checking",connection:s?void 0:n.snapshot.connection}),!s&&n.users&&ve(n,"check").catch(()=>{}))}function Tt(t){if(!t.applied)throw new Error("Connection profile was not applied");return t}const Ds=t=>{const e=F.c(91),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s),a=k.useQueryClient(),{showSnackbar:l}=ce();let c;e[0]!==n||e[1]!==o?(c=[o,"connection","detail",n],e[0]=n,e[1]=o,e[2]=c):c=e[2];const u=c;let d;e[3]!==o||e[4]!==a?(d=async()=>{await Promise.all([a.invalidateQueries({queryKey:[o,"connection"]}),a.invalidateQueries({queryKey:be.all(o)}),a.invalidateQueries({queryKey:[o,"resource-v2","editor-schemas"]})])},e[3]=o,e[4]=a,e[5]=d):d=e[5];const f=d;let p;e[6]!==n||e[7]!==f||e[8]!==o?(p=async()=>{un(o,n),await f()},e[6]=n,e[7]=f,e[8]=o,e[9]=p):p=e[9];const g=p;let m;e[10]!==n||e[11]!==o?(m=()=>Rs(o,n),e[10]=n,e[11]=o,e[12]=m):m=e[12];let h;e[13]!==l?(h=te(l,"Failed to start connection"),e[13]=l,e[14]=h):h=e[14];let y;e[15]!==f||e[16]!==m||e[17]!==h?(y={mutationFn:m,onSuccess:f,onError:h},e[15]=f,e[16]=m,e[17]=h,e[18]=y):y=e[18];const{mutateAsync:v}=k.useMutation(y);let b;e[19]!==n||e[20]!==o?(b=()=>Fn(o,n),e[19]=n,e[20]=o,e[21]=b):b=e[21];let S;e[22]!==l?(S=te(l,"Failed to stop connection"),e[22]=l,e[23]=S):S=e[23];let E;e[24]!==f||e[25]!==b||e[26]!==S?(E={mutationFn:b,onSuccess:f,onError:S},e[24]=f,e[25]=b,e[26]=S,e[27]=E):E=e[27];const{mutateAsync:x}=k.useMutation(E);let w;e[28]!==o?(w=ye=>{const{connection:xe,credentials:Oe}=ye;return N.SaveConnectionProfile(o,xe,Oe).then(Tt)},e[28]=o,e[29]=w):w=e[29];let C,R;e[30]!==l?(C=()=>{l("Connection profile saved","success")},R=te(l,"Failed to save connection profile"),e[30]=l,e[31]=C,e[32]=R):(C=e[31],R=e[32]);let D;e[33]!==g||e[34]!==w||e[35]!==C||e[36]!==R?(D={mutationFn:w,onSuccess:C,onError:R,onSettled:g},e[33]=g,e[34]=w,e[35]=C,e[36]=R,e[37]=D):D=e[37];const{mutateAsync:q}=k.useMutation(D);let A;e[38]!==q?(A=(ye,xe)=>q({connection:ye,credentials:xe}),e[38]=q,e[39]=A):A=e[39];const $=A;let _;e[40]!==n||e[41]!==o?(_=()=>N.ImportConnectionProfile(o,n).then(Tt),e[40]=n,e[41]=o,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]!==g||e[47]!==_||e[48]!==P||e[49]!==T?(j={mutationFn:_,onSuccess:P,onError:T,onSettled:g},e[46]=g,e[47]=_,e[48]=P,e[49]=T,e[50]=j):j=e[50];const{mutateAsync:L}=k.useMutation(j);let M;e[51]!==n||e[52]!==o?(M=()=>N.ResetConnectionProfile(o,n).then(Tt),e[51]=n,e[52]=o,e[53]=M):M=e[53];let U,W;e[54]!==l?(U=()=>{l("Connection profile reset","success")},W=te(l,"Failed to reset connection profile"),e[54]=l,e[55]=U,e[56]=W):(U=e[55],W=e[56]);let V;e[57]!==g||e[58]!==M||e[59]!==U||e[60]!==W?(V={mutationFn:M,onSuccess:U,onError:W,onSettled:g},e[57]=g,e[58]=M,e[59]=U,e[60]=W,e[61]=V):V=e[61];const{mutateAsync:z}=k.useMutation(V);let H;e[62]!==n||e[63]!==o?(H=()=>N.RemoveConnection(o,n),e[62]=n,e[63]=o,e[64]=H):H=e[64];let K;e[65]!==n||e[66]!==o||e[67]!==l?(K=()=>{un(o,n,!0),l("Connection disabled","success")},e[65]=n,e[66]=o,e[67]=l,e[68]=K):K=e[68];let Y;e[69]!==l?(Y=te(l,"Failed to disable connection"),e[69]=l,e[70]=Y):Y=e[70];let ee;e[71]!==f||e[72]!==H||e[73]!==K||e[74]!==Y?(ee={mutationFn:H,onSuccess:K,onError:Y,onSettled:f},e[71]=f,e[72]=H,e[73]=K,e[74]=Y,e[75]=ee):ee=e[75];const{mutateAsync:ae}=k.useMutation(ee);let fe;e[76]!==n||e[77]!==o?(fe=()=>N.GetConnection(o,n),e[76]=n,e[77]=o,e[78]=fe):fe=e[78];const we=i&&!!n;let Se;e[79]!==u||e[80]!==fe||e[81]!==we?(Se={queryKey:u,queryFn:fe,enabled:we},e[79]=u,e[80]=fe,e[81]=we,e[82]=Se):Se=e[82];const _e=k.useQuery(Se);let he;return e[83]!==_e||e[84]!==L||e[85]!==ae||e[86]!==z||e[87]!==$||e[88]!==v||e[89]!==x?(he={connection:_e,startConnection:v,stopConnection:x,saveConnectionProfile:$,importConnectionProfile:L,resetConnectionProfile:z,removeConnection:ae},e[83]=_e,e[84]=L,e[85]=ae,e[86]=z,e[87]=$,e[88]=v,e[89]=x,e[90]=he):he=e[90],he},Mn=t=>[t,"connection","list"],ks=t=>{const e=F.c(17),{plugin:s}=t,n=Q(s),r=k.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=Mn(n),e[0]=n,e[1]=o):o=e[1];const a=o;let l;e[2]!==r||e[3]!==a?(l=h=>{const y=h.data;console.log("got update to connections",y),r.setQueryData(a,y)},e[2]=r,e[3]=a,e[4]=l):l=e[4];const c=l;let u,d;e[5]!==c||e[6]!==n?(u=()=>{const h=G.On(`${n}/connection/sync`,c);return()=>{h()}},d=[n,c],e[5]=c,e[6]=n,e[7]=u,e[8]=d):(u=e[7],d=e[8]),I.useEffect(u,d);let f;e[9]!==n||e[10]!==i?(f=async()=>{try{return await N.ListConnections(n)}catch(h){const y=h;console.log(y),te(i,"Failed to load connections")(y)}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:k.keepPreviousData},e[12]=a,e[13]=f,e[14]=p):p=e[14];const g=k.useQuery(p);let m;return e[15]!==g?(m={connections:g},e[15]=g,e[16]=m):m=e[16],m},Os={phase:"checking"},Ns={getSnapshot:()=>Os,subscribe:()=>()=>{},connect:async()=>{},retry:async()=>{}};function ne(t){const e=F.c(8),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s);let a;e[0]!==n||e[1]!==i||e[2]!==o?(a=i?je(o,n):Ns,e[0]=n,e[1]=i,e[2]=o,e[3]=a):a=e[3];const l=a,c=I.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 se(t,e){const s=k.useQueryClient();return I.useCallback(async(n,r,i,o=e)=>{const a=o,l=ft(t,a),c=()=>l!==void 0&&Ln(t,a,l);if(r.aborted||!c())throw new k.CancelledError({revert:!0});let u,d=!1,f=!1;const p=()=>{u&&"cancel"in u&&typeof u.cancel=="function"&&Promise.resolve(u.cancel()).catch(h=>{console.error("Failed to cancel resource query",h)}),m()},g=je(t,a).subscribe(()=>{c()||(d=!0,s.cancelQueries({queryKey:n,exact:!0}).catch(h=>{console.error("Failed to cancel invalidated resource query",h)}))}),m=()=>{f||(f=!0,g())};r.addEventListener("abort",p,{once:!0});try{if(r.aborted||d||!c())throw new k.CancelledError({revert:!0});u=i();const h=await u;if(r.aborted||d||!c())throw new k.CancelledError({revert:!0});return h}finally{r.removeEventListener("abort",p),m()}},[t,e,s])}const Ts=t=>{const e=F.c(20),{pluginID:s,route:n,dimension:r,enabled:i}=t,o=i===void 0?!0:i,a=Q(s),l=o&&!!r;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=se(a,n.connection),f=o&&!!a&&!!n.connection&&!!r&&u.phase==="connected";let p;e[4]!==r||e[5]!==a||e[6]!==n?(p=[a,"resource-v2","scope-values",n,r],e[4]=r,e[5]=a,e[6]=n,e[7]=p):p=e[7];let g;e[8]!==r||e[9]!==d||e[10]!==a||e[11]!==f||e[12]!==n?(g=f?v=>{const{signal:b,queryKey:S}=v;return d(S,b,()=>N.ScopeValues(a,n,r))}:k.skipToken,e[8]=r,e[9]=d,e[10]=a,e[11]=f,e[12]=n,e[13]=g):g=e[13];let m;e[14]!==f||e[15]!==p||e[16]!==g?(m={queryKey:p,queryFn:g,enabled:f},e[14]=f,e[15]=p,e[16]=g,e[17]=m):m=e[17];const h=k.useQuery(m);let y;return e[18]!==h?(y={values:h},e[18]=h,e[19]=y):y=e[19],y};function Mt(t){const e=Object.values(t.states),s=e.length,n=e.filter(o=>o==="following"||o==="finished").length,r=e.filter(o=>o==="failed").length,i=e.filter(o=>o==="following"||o==="finished"||o==="failed"||o==="closed").length;return{pluginID:t.pluginID,connectionID:t.connectionID,totalResources:s,trackedTotal:s,syncedCount:n,errorCount:r,doneCount:i,progress:s?i/s:0}}function pt(t){return t.trackedTotal>0&&t.doneCount>=t.trackedTotal}function jn(t){return t.some(e=>!pt(e))}function $n(t){const e=t.reduce((s,n)=>s+n.trackedTotal,0);return e?t.reduce((s,n)=>s+n.doneCount,0)/e:0}function Zt(t,e){return JSON.stringify([t,e.route.connection])}function jt(t,e,s){const n=Zt(e,s);let r=t.get(n);return r||(r={states:{},pluginID:e,connectionID:s.route.connection},t.set(n,r)),r.states[s.type]=s.status.state,r}function Ps(){const[t,e]=I.useState(new Map),s=I.useRef(t),n=I.useRef(new Map),r=I.useRef(new Map),[i,o]=I.useState(!0),[a,l]=I.useState(),c=I.useRef({generation:0}),[u,d]=I.useState({}),[f,p]=I.useState(new Map),g=I.useRef(new Map),[m,h]=I.useState(new Map);I.useEffect(()=>{const _=G.On("plugin/crash_recovery_failed",T=>{const j=T.data,L=j?.pluginID;L&&h(M=>{const U=new Map(M);return U.set(L,j.error??"Crash recovery failed"),U})}),P=G.On("plugin/recovered",T=>{const L=T.data?.pluginID;L&&h(M=>{if(!M.has(L))return M;const U=new Map(M);return U.delete(L),U})});return()=>{_(),P()}},[]);const y=I.useCallback(async()=>{const _=++c.current.generation;n.current.clear(),r.current.clear();let P;try{P=N.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[U,W]of Object.entries(T))if(W){j[U]=W.map(V=>V.connection);for(const V of W){const z=JSON.stringify([U,V.connection.id]),H=n.current.get(z)??{readiness:V.readiness,readinessError:V.readinessError};if(L.set(z,H),H.readiness!=="CONNECTED")continue;const K={pluginID:U,connectionID:V.connection.id,states:{}};if(V.resources)for(const[Y,ee]of Object.entries(V.resources))K.states[Y]=ee;Object.assign(K.states,r.current.get(z)?.states),g.current.set(z,K),M.set(z,Mt(K))}}d(j);for(const[U,W]of n.current)L.set(U,W);s.current=L,e(L),p(M)}).catch(T=>{_===c.current.generation&&l(ie(T))}).finally(()=>{_===c.current.generation&&o(!1)})},[]),v=I.useCallback(async()=>{o(!0),l(void 0),await y()},[y]);I.useEffect(()=>{const _=c.current;return y().catch(P=>{console.error("Connection status refresh failed:",P)}),()=>{++_.generation}},[y]),I.useEffect(()=>{let _=!0,P=0;const T=G.On("connection/status",j=>{const L=j.data,M=JSON.stringify([L.pluginID,L.connectionID]),U=L.status==="DISCONNECTED"||L.status==="PENDING"||L.status==="CONNECTED"||L.status==="FAILED"?L.status:"UNKNOWN",W={readiness:U};n.current.set(M,W);const V=new Map(s.current);V.set(M,W),s.current=V,e(V),U!=="CONNECTED"&&(p(K=>{const Y=new Map(K);return Y.delete(M),Y}),g.current.delete(M),r.current.delete(M));const z=++P,H=c.current.generation;N.ListAllConnections().then(K=>{if(!_||z!==P||H!==c.current.generation||!K)return;const Y={};for(const[ee,ae]of Object.entries(K))ae!=null&&(Y[ee]=ae);d(Y)}).catch(K=>{_&&z===P&&H===c.current.generation&&console.error("Connection metadata refresh failed:",K)})});return()=>{_=!1,T()}},[]);const b=I.useCallback(_=>{const P=_.data,T=Zt(P.pluginID,P);if(s.current.get(T)?.readiness!=="CONNECTED")return;const j=jt(g.current,P.pluginID,P);jt(r.current,P.pluginID,P);const L=Mt(j);p(M=>{const U=new Map(M);return U.set(T,L),U})},[]);I.useEffect(()=>G.On("source/STATE",b),[b]);const S=I.useCallback(async(_,P)=>{await Fn(_,P)},[]),E=I.useCallback(async(_,P)=>{s.current.get(JSON.stringify([_,P]))?.readiness==="CONNECTED"&&await N.RetryConnectionSources(_,{connection:P})},[]),x=I.useCallback(async _=>{const P=m.get(_);h(T=>{if(!T.has(_))return T;const j=new Map(T);return j.delete(_),j});try{await N.RetryFailedPlugin(_)}catch(T){throw h(j=>{const L=new Map(j);return L.set(_,P??"Reload failed"),L}),T}},[m]),w=[],C=new Set(t.keys());for(const[_,P]of Object.entries(u))for(const T of P)C.add(JSON.stringify([_,T.id]));for(const _ of C){const[P,T]=JSON.parse(_),L=(u[P]??[]).find(H=>H.id===T),M=t.get(_)??{readiness:"UNKNOWN"},U=M.readiness==="CONNECTED"?f.get(_):void 0,W=U!=null&&!pt(U),V=U!=null&&U.errorCount>0,z=m.get(P);w.push({pluginID:P,connectionID:T,name:L?.name??T,avatar:L?.avatar??"",readiness:M.readiness,readinessError:M.readinessError,sync:U,isSyncing:W,hasErrors:V||z!=null||M.readiness==="FAILED"||M.readinessError!=null,pluginFailed:z!=null,pluginError:z})}const R=new Map;for(const _ of w){const P=R.get(_.pluginID)??[];P.push(_),R.set(_.pluginID,P)}const D=w.flatMap(_=>_.sync?[_.sync]:[]),q=w.filter(_=>_.isSyncing),A=w.filter(_=>_.hasErrors),$=w.filter(_=>_.pluginFailed);return{isLoading:i,error:a,refresh:v,entries:w,grouped:R,connectedCount:w.filter(_=>_.readiness==="CONNECTED").length,syncingCount:q.length,errorCount:A.length,failedCount:$.length,hasSyncing:jn(D),aggregateProgress:$n(D),disconnect:S,retrySources:E,retryPlugin:x}}function As(t){const e=F.c(9),{pluginID:s}=t,n=Q(s);let r,i;e[0]!==n?(r=[n,"connection","profiles"],i=u=>{const{signal:d}=u;d.throwIfAborted();const f=N.ListConnectionProfiles(n),p=()=>{f.cancel()};return d.addEventListener("abort",p,{once:!0}),f.finally(()=>d.removeEventListener("abort",p))},e[0]=n,e[1]=r,e[2]=i):(r=e[1],i=e[2]);const o=!!n;let a;e[3]!==r||e[4]!==i||e[5]!==o?(a={queryKey:r,queryFn:i,enabled:o,retry:!1},e[3]=r,e[4]=i,e[5]=o,e[6]=a):a=e[6];const l=k.useQuery(a);let c;return e[7]!==l?(c={profiles:l},e[7]=l,e[8]=c):c=e[8],c}const qs={display:"flex",alignItems:"center",justifyContent:"center",minHeight:240,height:"100%",padding:24,boxSizing:"border-box",color:"var(--ov-color-fg-default)"},Ls={width:"100%",maxWidth:560,minWidth:0,display:"flex",flexDirection:"column",gap:16},Fs={display:"flex",alignItems:"center",gap:12},Ms={margin:0,fontSize:"1.125rem",fontWeight:600},js={display:"flex",flexWrap:"wrap",gap:8},Pt={margin:0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},$s={width:20,height:20,flexShrink:0},Us={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 Un(t){const e=F.c(44),{state:s,connectionName:n,connectionDetails:r,onEditConnection:i,onBack:o,backLabel:a}=t,l=a===void 0?"Back to connections":a,c=I.useId();if(s.phase==="connected")return null;const u=s.phase==="checking"||s.phase==="connecting",d=Us[s.phase],f=n??s.connection?.name;let p;e[0]!==r||e[1]!==f?(p=r??(f&&O.jsx(B.Text,{size:"sm",tone:"muted",style:Pt,children:f})),e[0]=r,e[1]=f,e[2]=p):p=e[2];let g;e[3]!==u?(g=u&&O.jsx(B.Spinner,{style:$s,"aria-hidden":"true"}),e[3]=u,e[4]=g):g=e[4];let m;e[5]!==c||e[6]!==d.title?(m=O.jsx("h2",{id:c,style:Ms,children:d.title}),e[5]=c,e[6]=d.title,e[7]=m):m=e[7];let h;e[8]!==g||e[9]!==m?(h=O.jsxs("div",{style:Fs,role:"status","aria-live":"polite",children:[g,m]}),e[8]=g,e[9]=m,e[10]=h):h=e[10];let y;e[11]!==d.description?(y=O.jsx(B.Text,{as:"p",size:"sm",tone:"muted",style:Pt,children:d.description}),e[11]=d.description,e[12]=y):y=e[12];let v;e[13]!==u||e[14]!==s.message?(v=s.message&&O.jsx(B.Text,{as:"p",size:"sm",style:Pt,role:u?"status":"alert",children:s.message}),e[13]=u,e[14]=s.message,e[15]=v):v=e[15];let b;e[16]!==u||e[17]!==s?(b=s.phase!=="not-found"&&O.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]=b):b=e[18];const S=s.phase==="checking";let E;e[19]!==s?(E=()=>{s.retry()},e[19]=s,e[20]=E):E=e[20];let x;e[21]!==E||e[22]!==S?(x=O.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",disabled:S,onClick:E,children:"Retry check"}),e[21]=E,e[22]=S,e[23]=x):x=e[23];let w;e[24]!==i?(w=i&&O.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",onClick:i,children:"Edit connection"}),e[24]=i,e[25]=w):w=e[25];let C;e[26]!==l||e[27]!==o?(C=o&&O.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",onClick:o,children:l}),e[26]=l,e[27]=o,e[28]=C):C=e[28];let R;e[29]!==x||e[30]!==w||e[31]!==C||e[32]!==b?(R=O.jsxs("div",{style:js,children:[b,x,w,C]}),e[29]=x,e[30]=w,e[31]=C,e[32]=b,e[33]=R):R=e[33];let D;e[34]!==R||e[35]!==p||e[36]!==h||e[37]!==y||e[38]!==v?(D=O.jsxs("div",{style:Ls,children:[p,h,y,v,R]}),e[34]=R,e[35]=p,e[36]=h,e[37]=y,e[38]=v,e[39]=D):D=e[39];let q;return e[40]!==u||e[41]!==c||e[42]!==D?(q=O.jsx("section",{style:qs,"aria-labelledby":c,"aria-busy":u,children:D}),e[40]=u,e[41]=c,e[42]=D,e[43]=q):q=e[43],q}function Qs(t){const e=F.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 a=ne(o);if(a.phase!=="connected"){let c;return e[3]!==n||e[4]!==i||e[5]!==a?(c=i?i(a):O.jsx(Un,{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]!==r?(l=O.jsx(O.Fragment,{children:r}),e[7]=r,e[8]=l):l=e[8],l}function Ks(t){const e=F.c(7),s=Q(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=I.createElement(Qs,{...t,pluginID:s,key:n}),e[3]=s,e[4]=t,e[5]=n,e[6]=r):r=e[6],r}const Je={supported:void 0,transportAvailable:!1,isLoading:!1},Le=new Map;let At,dn=0;function me(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 Fe(t,e){let s=Le.get(t);s||(s={retired:new Set,connections:new Map},Le.set(t,s));let n=s.connections.get(e);return n||(n={pluginID:t,connectionID:e,state:Je,listeners:new Set,epoch:0,eventVersion:0},s.connections.set(e,n)),n}function Gs(t){return t&&/^[0-9]+$/.test(t)?BigInt(t):void 0}function Qn(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)&&Qn(s[i],n[i]))}function Bs(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))Qn(t.entries[r],s[r])?s[r]=t.entries[r]:n=!1;return{...e,entries:n?t.entries:s}}function Kn(t,e){const s=Le.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,me(i,{...Je,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,a=Gs(t.snapshot?.revision??t.revision);if(a!==void 0&&(i.revision===void 0||a>i.revision)&&(i.revision=a,me(i,{snapshot:t.removed?void 0:t.snapshot?Bs(i.state.snapshot,t.snapshot):i.state.snapshot})),!t.transportAvailable){i.epoch++,i.pending=void 0,me(i,{supported:t.supported,transportAvailable:!1,isLoading:!1});continue}if(n===void 0){me(i,{supported:t.supported,transportAvailable:!t.supported}),t.supported&&i.listeners.size?ot(i,!1):me(i,{isLoading:!1,error:void 0});continue}me(i,{supported:t.supported,transportAvailable:!e||o,isLoading:!1,error:void 0}),e&&!o&&i.listeners.size&&ot(i,!1)}}function ot(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;me(t,{isLoading:!0,error:void 0});const r=e?N.RefreshConnectionMetadata:N.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 a=o.snapshot?.connectionID??o.connectionID;a!==void 0&&a!==t.connectionID||Kn({...o,connectionID:t.connectionID},!1)}).catch(o=>{t.epoch===s&&t.eventVersion===n&&t.listeners.size&&me(t,{error:o,isLoading:!1})}).finally(()=>{t.pending===i&&(t.pending=void 0),t.epoch===s&&t.listeners.size&&me(t,{isLoading:!1})});return e||(t.pending=i),i}function en(t,e){return t.listeners.add(e),dn++===0&&(At=G.On("resource/connection/metadata",s=>Kn(s.data,!0))),t.listeners.size===1&&ot(t,!1),()=>{t.listeners.delete(e),t.listeners.size||(t.epoch++,t.pending=void 0,Le.get(t.pluginID)?.connections.delete(t.connectionID)),--dn===0&&(At?.(),At=void 0,Le.clear())}}function Ws(t,e){const s=F.c(15),n=Q(t),r=n!==void 0&&e!==void 0;let i;s[0]!==e||s[1]!==r||s[2]!==n?(i=p=>r?en(Fe(n,e),p):Vs,s[0]=e,s[1]=r,s[2]=n,s[3]=i):i=s[3];const o=i;let a;s[4]!==e||s[5]!==r||s[6]!==n?(a=()=>r?Fe(n,e).state:Je,s[4]=e,s[5]=r,s[6]=n,s[7]=a):a=s[7];const l=a,c=I.useSyncExternalStore(o,l,zs);let u;s[8]!==e||s[9]!==r||s[10]!==n?(u=()=>{const p=r?Le.get(n)?.connections.get(e):void 0;return p?ot(p,!0):Promise.resolve()},s[8]=e,s[9]=r,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 zs(){return Je}function Vs(){}function Js(t,e){const s=JSON.parse(e);let n=new Map;return{subscribe(r){const i=s.map(o=>en(Fe(t,o),r));return()=>i.forEach(o=>o())},read(){const r=s.map(i=>Fe(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 Hs(t,e){const s=F.c(5),n=Q(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=Js(n,i),s[2]=i,s[3]=n,s[4]=o):o=s[4];const a=o;return I.useSyncExternalStore(a.subscribe,a.read,a.read)}function Xs(t,e,s){let n,r;return{read(){const i=e===void 0?Je:Fe(t,e).state;return n!==i&&(r=s(i),n=i),r}}}function Ys(t,e,s){const n=F.c(7),r=Q(t);let i;n[0]!==e||n[1]!==r?(i=c=>e===void 0?Zs:en(Fe(r,e),c),n[0]=e,n[1]=r,n[2]=i):i=n[2];const o=i;let a;n[3]!==e||n[4]!==r||n[5]!==s?(a=Xs(r,e,s),n[3]=e,n[4]=r,n[5]=s,n[6]=a):a=n[6];const l=a;return I.useSyncExternalStore(o,l.read,l.read)}function Zs(){}function er(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 tr(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 nr(t,e,s){const n=F.c(29),r=Q(t),i=k.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 a=o;let l;n[3]!==s||n[4]!==e||n[5]!==r?(l=async()=>{const S=await N.Get(r,e);return S==null?s:tr(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]=r,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=k.useQuery(c);let d;n[10]!==e||n[11]!==r?(d=async S=>{await N.Set(r,e,S)},n[10]=e,n[11]=r,n[12]=d):d=n[12];let f,p,g;n[13]!==i||n[14]!==a?(f=async S=>{await i.cancelQueries({queryKey:a});const E=i.getQueryData(a);return i.setQueryData(a,S),{previous:E}},p=(S,E,x)=>{x?.previous!==void 0&&i.setQueryData(a,x.previous)},g=()=>{i.invalidateQueries({queryKey:a})},n[13]=i,n[14]=a,n[15]=f,n[16]=p,n[17]=g):(f=n[15],p=n[16],g=n[17]);let m;n[18]!==d||n[19]!==f||n[20]!==p||n[21]!==g?(m={mutationFn:d,onMutate:f,onError:p,onSettled:g},n[18]=d,n[19]=f,n[20]=p,n[21]=g,n[22]=m):m=n[22];const h=k.useMutation(m),y=u.data??s;let v;n[23]!==h?(v=async S=>{await h.mutateAsync(S)},n[23]=h,n[24]=v):v=n[24];let b;return n[25]!==u.isLoading||n[26]!==y||n[27]!==v?(b={data:y,update:v,isLoading:u.isLoading},n[25]=u.isLoading,n[26]=y,n[27]=v,n[28]=b):b=n[28],b}const sr=()=>{const t=I.useContext(En);if(!t)throw new Error("useRightDrawer must be used within a RightDrawerProvider");return t},tn=()=>{const t=I.useContext(Sn);if(t===void 0)throw new Error("useBottomDrawer must be used within a BottomDrawerProvider");return t},rr=({pluginID:t})=>{const e=Q(t),{showSnackbar:s}=ce(),{createTab:n,updateTab:r}=tn();return{createSession:k.useMutation({mutationFn:async({connectionID:o,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:o,opts:{...c},recovery:u}});const f=at.SessionOptions.createFrom({command:["/bin/bash"],tty:!0,...c});try{const p=await N.CreateSession(e,o,f);if(!p)throw new Error("Failed to create session: null response");return r({id:d},{id:p.id,title:l??`Session ${p.id.substring(0,8)}`,properties:{status:"connected",pluginID:e,connectionID:o,opts:{...c},recovery:u}}),p}catch(p){const g=ie(p);return r({id:d},{properties:{status:"error",error:g.detail,pluginID:e,connectionID:o,opts:{...c},recovery:u,errorInfo:{title:g.title||"Session error",suggestion:g.detail,raw:g.detail}}}),qe(s,p,"Failed to start session"),null}}}).mutateAsync}};function or(t){const e=F.c(29),{pluginID:s,resourceKey:n}=t,r=Q(s),{showSnackbar:i}=ce(),o=k.useQueryClient();let a;e[0]!==r||e[1]!==n?(a=["exec","native-launch",r,n],e[0]=r,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=k.useIsMutating(c)>0;let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d={queryKey:["exec","native-terminal-support"],queryFn:N.GetNativeTerminalSupport,staleTime:1/0,retry:!1},e[5]=d):d=e[5];const f=k.useQuery(d);let p,g;e[6]!==r||e[7]!==n?(p=["executions",r,n,"actions"],g=async()=>({exec:await N.GetHandler(r,n)}),e[6]=r,e[7]=n,e[8]=p,e[9]=g):(p=e[8],g=e[9]);const m=!!n&&f.data===!0;let h;e[10]!==p||e[11]!==g||e[12]!==m?(h={queryKey:p,queryFn:g,enabled:m,retry:!1},e[10]=p,e[11]=g,e[12]=m,e[13]=h):h=e[13];const y=k.useQuery(h),v=f.isSuccess&&f.data===!0&&y.isSuccess&&y.data.exec?.supports_native_command===!0;let b;e[14]!==r||e[15]!==i?(b=async R=>{const{connectionID:D,opts:q}=R;try{return await N.OpenNativeSession(r,D,at.SessionOptions.createFrom({tty:!0,...q})),!0}catch(A){return qe(i,A,"Failed to open native terminal"),!1}},e[14]=r,e[15]=i,e[16]=b):b=e[16];let S;e[17]!==l||e[18]!==b?(S={mutationKey:l,mutationFn:b,retry:!1},e[17]=l,e[18]=b,e[19]=S):S=e[19];const{mutateAsync:E}=k.useMutation(S);let x;e[20]!==v||e[21]!==E||e[22]!==l||e[23]!==o?(x=async R=>!v||o.isMutating({mutationKey:l,exact:!0})>0?!1:E(R),e[20]=v,e[21]=E,e[22]=l,e[23]=o,e[24]=x):x=e[24];const w=x;let C;return e[25]!==u||e[26]!==v||e[27]!==w?(C={openNativeSession:w,isSupported:v,isPending:u},e[25]=u,e[26]=v,e[27]=w,e[28]=C):C=e[28],C}const ir=t=>{const e=F.c(15),{pluginID:s}=t,n=Q(s),{showSnackbar:r}=ce(),{createTab:i}=tn();let o;e[0]!==i||e[1]!==n?(o=async g=>{const{connectionID:m,resourceKey:h,resourceID:y,resourceData:v,reference:b,route:S,icon:E,label:x,target:w,follow:C,tailLines:R,params:D}=g,$={resource_key:h,resource_id:y,resource_data:v,reference:b,route:S,options:{target:w??"",follow:C===void 0?!0:C,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 N.CreateSession$1(n,m,$);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:E??"LuLogs"}),_},e[0]=i,e[1]=n,e[2]=o):o=e[2];let a;e[3]!==r?(a=te(r,"Failed to start log session"),e[3]=r,e[4]=a):a=e[4];let l;e[5]!==o||e[6]!==a?(l={mutationFn:o,onError:a},e[5]=o,e[6]=a,e[7]=l):l=e[7];const c=k.useMutation(l);let u;e[8]!==r?(u=te(r,"Failed to close log session"),e[8]=r,e[9]=u):u=e[9];let d;e[10]!==u?(d={mutationFn:cr,onError:u},e[10]=u,e[11]=d):d=e[11];const f=k.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 cr(t){await N.CloseSession(t)}const ar=()=>{const t=F.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e={queryKey:["metric","providers"],queryFn:N.GetProviders,staleTime:3e4},t[0]=e):e=t[0],k.useQuery(e)},Gn=t=>{const e=F.c(7);let s,n;e[0]!==t?(s=["metric","providers",t],n=()=>N.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],k.useQuery(i)},lr=t=>{const e=F.c(45),{connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i,resourceData:o,reference:a,route:l,params:c,metricIDs:u,shape:d,timeRange:f,refreshInterval:p,enabled:g}=t,m=i===void 0?"":i;let h;e[0]!==u?(h=u===void 0?[]:u,e[0]=u,e[1]=h):h=e[1];const y=h,v=d===void 0?0:d,b=p===void 0?0:p,S=g===void 0?!0:g,{data:E,isLoading:x}=Gn(n);let w;e[2]!==E?(w=E??[],e[2]=E,e[3]=w):w=e[3];const C=w,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 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]!==y||e[10]!==c||e[11]!==a||e[12]!==r||e[13]!==n||e[14]!==m||e[15]!==l||e[16]!==v||e[17]!==D||e[18]!==q?(A=["metric","query",s,n,r,m,a,l,c,y,v,D,q],e[8]=s,e[9]=y,e[10]=c,e[11]=a,e[12]=r,e[13]=n,e[14]=m,e[15]=l,e[16]=v,e[17]=D,e[18]=q,e[19]=A):A=e[19];let $;e[20]!==s||e[21]!==y||e[22]!==c||e[23]!==a||e[24]!==o||e[25]!==r||e[26]!==n||e[27]!==m||e[28]!==l||e[29]!==v||e[30]!==R||e[31]!==f?.end||e[32]!==f?.start?($=async()=>{const V=await N.QueryAll(s,{resource_key:n,resource_id:r,resource_namespace:m,resource_data:o,reference:a,route:l,params:c,metric_ids:y,shape:v,start_time:(f?.start??new Date(0)).toISOString(),end_time:(f?.end??new Date(0)).toISOString(),step:R}),z={};for(const[H,K]of Object.entries(V))K!=null&&(z[H]=K);return z},e[20]=s,e[21]=y,e[22]=c,e[23]=a,e[24]=o,e[25]=r,e[26]=n,e[27]=m,e[28]=l,e[29]=v,e[30]=R,e[31]=f?.end,e[32]=f?.start,e[33]=$):$=e[33];const _=S&&!!s&&!!n&&C.length>0,P=b>0?b:void 0;let T;e[34]!==$||e[35]!==_||e[36]!==P||e[37]!==A?(T={queryKey:A,queryFn:$,enabled:_,refetchInterval:P,staleTime:5e3,placeholderData:k.keepPreviousData},e[34]=$,e[35]=_,e[36]=P,e[37]=A,e[38]=T):T=e[38];const j=k.useQuery(T),L=j.data??void 0,M=x||j.isLoading,U=j.error;let W;return e[39]!==j.refetch||e[40]!==C||e[41]!==L||e[42]!==M||e[43]!==U?(W={data:L,providers:C,isLoading:M,error:U,refetch:j.refetch},e[39]=j.refetch,e[40]=C,e[41]=L,e[42]=M,e[43]=U,e[44]=W):W=e[44],W},ur=t=>{const{pluginID:e,connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i="",resourceData:o,reference:a,route:l,params:c,metricIDs:u=[],interval:d=1e4,enabled:f=!0}=t,p=Q(e),[g,m]=I.useState(null),[h,y]=I.useState(null),[v,b]=I.useState(!1),[S,E]=I.useState(null),x=I.useRef(null),w=I.useCallback(async()=>{if(!(!f||!p||!s||!n))try{const R=await N.Subscribe(p,s,{resource_key:n,resource_id:r,resource_namespace:i,resource_data:o,reference:a,route:l,params:c,metric_ids:u,interval:d*1e6});y(R),b(!0),E(null);const D=G.On(`core/metrics/data/${R}`,A=>{const $=A.data;try{const _=JSON.parse($);_.results&&(m(_.results),b(!0),E(null))}catch(_){console.error("Failed to parse metric stream data:",_)}}),q=G.On(`core/metrics/error/${R}`,A=>{const $=A.data;try{const _=JSON.parse($);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)}E(P),b(!1)}catch{E("Failed to parse metric stream error")}});x.current=()=>{D(),q()}}catch(R){E(R instanceof Error?R.message:String(R))}},[p,s,n,r,i,o,a,l,c,u,d,f]),C=I.useCallback(async()=>{if(h)try{await N.Unsubscribe(h)}catch(R){console.error("Failed to unsubscribe:",R)}x.current&&(x.current(),x.current=null),y(null),b(!1)},[h]);return I.useEffect(()=>()=>{h&&N.Unsubscribe(h).catch(console.error),x.current&&x.current()},[h]),{data:g,subscriptionID:h,isStreaming:v,error:S,start:w,stop:C}},De=["networker","portforward","all-sessions"];function dr(){const t=F.c(17),{showSnackbar:e}=ce(),s=k.useQueryClient();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:[...De],queryFn:gr,retry:!1},t[0]=n):n=t[0];const r=k.useQuery(n);let i,o;t[1]!==s?(i=()=>{const g=G.On("core/networker/portforward/created",()=>{s.invalidateQueries({queryKey:[...De]})}),m=G.On("core/networker/portforward/closed",()=>{s.invalidateQueries({queryKey:[...De]})});return()=>{g(),m()}},o=[s],t[1]=s,t[2]=i,t[3]=o):(i=t[2],o=t[3]),I.useEffect(i,o);let a;t[4]!==r.data?(a=r.data??[],t[4]=r.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:[...De]})},t[8]=s,t[9]=u):u=t[9];let d;t[10]!==c||t[11]!==u?(d={mutationFn:pr,onError:c,onSuccess:u},t[10]=c,t[11]=u,t[12]=d):d=t[12];const f=k.useMutation(d);let p;return t[13]!==l||t[14]!==f.mutateAsync||t[15]!==r?(p={sessions:r,activeSessions:l,closeSession:f.mutateAsync,openInBrowser:fr},t[13]=l,t[14]=f.mutateAsync,t[15]=r,t[16]=p):p=t[16],p}function fr(t){return G.OpenURL(`http://localhost:${t}`)}async function pr(t){return N.ClosePortForwardSession(t)}async function gr(){return N.ListAllPortForwardSessions().catch(hr)}function hr(t){if(ie(t).detail.includes("not found"))return[];throw t}function yr(t){const e=F.c(36),{pluginID:s,connectionID:n,resourceID:r}=t,i=Q(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 a=o,{showSnackbar:l}=ce(),c=k.useQueryClient();let u;e[4]!==n||e[5]!==i||e[6]!==r||e[7]!==l?(u=async()=>N.FindPortForwardSessions(i,n,at.FindPortForwardSessionRequest.createFrom({resource_id:r,connection_id:n})).catch(w=>{const C=ie(w);return C.detail.includes("not found")?[]:(l({message:"Failed to fetch port forward sessions",status:"error",details:C.detail}),[])}),e[4]=n,e[5]=i,e[6]=r,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=k.useQuery(d);let p;e[12]!==n||e[13]!==i?(p=async w=>{const{opts:C}=w,R={local_port:C.localPort||0,remote_port:C.remotePort,protocol:C.protocol||"TCP",connection_type:"RESOURCE",connection:{resource_data:C.resource,reference:C.reference,route:C.route,connection_id:n,plugin_id:i,resource_id:C.resourceId,resource_key:C.resourceKey},labels:C.labels??{},params:C.parameters??{}},D=await N.StartResourcePortForwardingSession(i,n,R);if(!D)throw new Error("Failed to start port forwarding: null response");return C.openInBrowser&&G.OpenURL(`http://localhost:${D.local_port}`),D},e[12]=n,e[13]=i,e[14]=p):p=e[14];let g;e[15]!==l?(g=te(l,"Failed to start port forwarding session"),e[15]=l,e[16]=g):g=e[16];let m;e[17]!==c||e[18]!==a?(m=async()=>{await Promise.all([c.invalidateQueries({queryKey:a}),c.invalidateQueries({queryKey:[...De]})])},e[17]=c,e[18]=a,e[19]=m):m=e[19];let h;e[20]!==p||e[21]!==g||e[22]!==m?(h={mutationFn:p,onError:g,onSuccess:m},e[20]=p,e[21]=g,e[22]=m,e[23]=h):h=e[23];const y=k.useMutation(h);let v;e[24]!==l?(v=te(l,"Failed to close port forwarding session"),e[24]=l,e[25]=v):v=e[25];let b;e[26]!==c||e[27]!==a?(b=async()=>{await Promise.all([c.invalidateQueries({queryKey:a}),c.invalidateQueries({queryKey:[...De]})])},e[26]=c,e[27]=a,e[28]=b):b=e[28];let S;e[29]!==v||e[30]!==b?(S={mutationFn:mr,onError:v,onSuccess:b},e[29]=v,e[30]=b,e[31]=S):S=e[31];const E=k.useMutation(S);let x;return e[32]!==E.mutateAsync||e[33]!==y.mutateAsync||e[34]!==f?(x={sessions:f,forward:y.mutateAsync,close:E.mutateAsync},e[32]=E.mutateAsync,e[33]=y.mutateAsync,e[34]=f,e[35]=x):x=e[35],x}async function mr(t){const{opts:e}=t;return N.ClosePortForwardSession(e.sessionID)}const vr=()=>{const t=I.useContext(Cn);if(!t)throw new Error("useConfirmationModal must be used within a ConfirmationModalProvider");return t},br=t=>{const e=F.c(31),{pluginID:s,request:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s),a=n?.request.route.connection??"",l=i&&!!n;let c;e[0]!==a||e[1]!==o||e[2]!==l?(c={pluginID:o,connectionID:a,enabled:l},e[0]=a,e[1]=o,e[2]=l,e[3]=c):c=e[3];const u=ne(c),d=se(o,a),f=k.useQueryClient(),{showSnackbar:p}=ce();let g;e[4]!==o||e[5]!==n?(g=be.resource(o,n),e[4]=o,e[5]=n,e[6]=g):g=e[6];const m=g,h=i&&!!n&&u.phase==="connected";let y;e[7]!==o||e[8]!==n?(y=async D=>{if(!n)throw new Error("Resource target is not resolved");return await Ve(o,n.request.route.connection),N.Mutate(o,{...D,route:n.request.route,reference:n.request.reference})},e[7]=o,e[8]=n,e[9]=y):y=e[9];let v;e[10]!==o||e[11]!==f?(v=async()=>{await f.invalidateQueries({queryKey:be.all(o)})},e[10]=o,e[11]=f,e[12]=v):v=e[12];let b;e[13]!==p?(b=te(p,"Failed to mutate resource"),e[13]=p,e[14]=b):b=e[14];let S;e[15]!==y||e[16]!==v||e[17]!==b?(S={mutationFn:y,onSuccess:v,onError:b},e[15]=y,e[16]=v,e[17]=b,e[18]=S):S=e[18];const{mutateAsync:E}=k.useMutation(S);let x;e[19]!==d||e[20]!==o||e[21]!==h||e[22]!==n?(x=h?D=>{const{signal:q,queryKey:A}=D;return d(A,q,()=>N.Get$1(o,n))}:k.skipToken,e[19]=d,e[20]=o,e[21]=h,e[22]=n,e[23]=x):x=e[23];let w;e[24]!==h||e[25]!==m||e[26]!==x?(w={queryKey:m,queryFn:x,retry:!1,enabled:h},e[24]=h,e[25]=m,e[26]=x,e[27]=w):w=e[27];const C=k.useQuery(w);let R;return e[28]!==E||e[29]!==C?(R={resource:C,mutate:E},e[28]=E,e[29]=C,e[30]=R):R=e[30],R},wr=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 r;e[4]!==t?(r=async()=>N.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=k.useQuery(i);let a;return e[9]!==o?(a={component:o},e[9]=o,e[10]=a):a=e[10],a},Sr=t=>{const e=F.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s);let a;e[0]!==i||e[1]!==o||e[2]!==n.connection?(a={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=a):a=e[3];const l=ne(a),c=se(o,n.connection),u=i&&!!o&&!!n.connection&&l.phase==="connected";let d;e[4]!==o||e[5]!==n?(d=[o,"resource-v2","groups",n],e[4]=o,e[5]=n,e[6]=d):d=e[6];let f;e[7]!==c||e[8]!==o||e[9]!==u||e[10]!==n?(f=u?h=>{const{signal:y,queryKey:v}=h;return c(v,y,()=>N.GetResourceGroups(o,n))}:k.skipToken,e[7]=c,e[8]=o,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 g=k.useQuery(p);let m;return e[16]!==g?(m={groups:g},e[16]=g,e[17]=m):m=e[17],m},Er=t=>{const e=F.c(28),{pluginID:s,searches:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s);let a;e[0]!==i||e[1]!==n?(a=JSON.stringify(i?[...new Set(n.map(Cr))].sort():[]),e[0]=i,e[1]=n,e[2]=a):a=e[2];const l=a;let c;if(e[3]!==l||e[4]!==o){const v=JSON.parse(l);let b;e[6]!==o?(b=S=>[S,je(o,S)],e[6]=o,e[7]=b):b=e[7],c=new Map(v.map(b)),e[3]=l,e[4]=o,e[5]=c}else c=e[5];const u=c;let d,f;e[8]!==u?(d=()=>JSON.stringify([...u.values()].map(Ir)),f=v=>{const b=[...u.values()].map(S=>S.subscribe(v));return()=>{for(const S of b)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 g=p;I.useSyncExternalStore(g.subscribe,g.getSnapshot,g.getSnapshot);const m=se(o,"");let h;if(e[15]!==i||e[16]!==m||e[17]!==o||e[18]!==g.stores||e[19]!==n){let v;e[21]!==i||e[22]!==m||e[23]!==o||e[24]!==g.stores?(v=b=>{const S=b.request.target.route.connection,E=i&&g.stores.get(S)?.getSnapshot().phase==="connected";return{queryKey:be.nativeQuery(o,b),queryFn:E?x=>{const{signal:w,queryKey:C}=x;return m(C,w,()=>N.NativeQuery(o,b),S)}:k.skipToken,retry:!1,enabled:E}},e[21]=i,e[22]=m,e[23]=o,e[24]=g.stores,e[25]=v):v=e[25],h=n.map(v),e[15]=i,e[16]=m,e[17]=o,e[18]=g.stores,e[19]=n,e[20]=h}else h=e[20];let y;return e[26]!==h?(y={queries:h},e[26]=h,e[27]=y):y=e[27],k.useQueries(y)};function Cr(t){return t.request.target.route.connection}function Ir(t){return t.getSnapshot().phase}const _r=t=>{const e=F.c(21),{pluginID:s,route:n,type:r}=t,i=Q(s),o=!!r;let a;e[0]!==i||e[1]!==n.connection||e[2]!==o?(a={pluginID:i,connectionID:n.connection,enabled:o},e[0]=i,e[1]=n.connection,e[2]=o,e[3]=a):a=e[3];const l=ne(a),c=se(i,n.connection),u=!!i&&!!n.connection&&!!r&&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?y=>{const{signal:v,queryKey:b}=y;return c(b,v,()=>N.Catalog(i,{route:n}))}:k.skipToken,e[7]=c,e[8]=i,e[9]=u,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==r?(p=y=>y.types.find(v=>v.type===r),e[12]=r,e[13]=p):p=e[13];let g;e[14]!==u||e[15]!==d||e[16]!==f||e[17]!==p?(g={queryKey:d,queryFn:f,select:p,enabled:u,retry:!1},e[14]=u,e[15]=d,e[16]=f,e[17]=p,e[18]=g):g=e[18];const m=k.useQuery(g);let h;return e[19]!==m?(h={resourceType:m},e[19]=m,e[20]=h):h=e[20],h},xr=t=>{const e=F.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s);let a;e[0]!==i||e[1]!==o||e[2]!==n.connection?(a={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=a):a=e[3];const l=ne(a),c=se(o,n.connection),u=i&&!!o&&!!n.connection&&l.phase==="connected";let d;e[4]!==o||e[5]!==n?(d=[o,"resource-v2","catalog",n],e[4]=o,e[5]=n,e[6]=d):d=e[6];let f;e[7]!==c||e[8]!==o||e[9]!==u||e[10]!==n?(f=u?h=>{const{signal:y,queryKey:v}=h;return c(v,y,()=>N.Catalog(o,{route:n}))}:k.skipToken,e[7]=c,e[8]=o,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:Rr,enabled:u,retry:!1},e[12]=u,e[13]=d,e[14]=f,e[15]=p):p=e[15];const g=k.useQuery(p);let m;return e[16]!==g?(m={resourceTypes:g},e[16]=g,e[17]=m):m=e[17],m};function Rr(t){return t.types}const $t=new Set;typeof window<"u"&&window.addEventListener("beforeunload",()=>{for(const t of $t)t.close()});async function Bn(t,e){const s=await N.OpenSourceView(t,e);let n={records:new Map,complete:!1},r,i,o,a=BigInt(0),l=!0,c=!1,u=!1,d=0,f,p,g=[];const m=new Set;function h(){if(f!==void 0||p!==void 0||c)return;const w=()=>{if(f=void 0,p=void 0,!c)for(const C of m)C()};typeof requestAnimationFrame=="function"?f=requestAnimationFrame(w):p=setTimeout(w,0)}function y(w,C){n={...n,...w,...C?{event:{kind:C,revision:++d}}:{}},h()}function v(w){c||u||(u=!0,y({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:w}}}))}function b(){if(c||u)return;r=void 0,l=!0;const w=Date.now();if(g=g.filter(C=>w-C<1e4),g.length>=3){v("Source view could not maintain a contiguous event sequence.");return}g.push(w),N.SyncSourceView(t,s.viewId).catch(C=>v(String(C)))}function S(w){if(c||u||w.viewId!==s.viewId)return;if(w.kind==="reset"){r=void 0,l=!0,y({},"reset"),w.reset?.reason==="closed"&&y({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(w.kind!=="snapshot"&&w.kind!=="snapshotEnd"||w.sequence!=="1"||!w.viewGeneration||w.viewGeneration===i||w.viewGeneration===o)return;i=w.viewGeneration,o=void 0,a=BigInt(0),r=new Map,l=!1}if(!/^[1-9][0-9]*$/.test(w.sequence)){o=w.viewGeneration,b();return}const C=BigInt(w.sequence);if(w.viewGeneration!==i||C!==a+BigInt(1)){o=w.viewGeneration,b();return}switch(a=C,w.kind){case"snapshot":if(!r){b();return}for(const R of w.records??[])r.set(R.key,R);break;case"snapshotEnd":if(!r||!w.status){b();return}y({records:r,viewGeneration:i,status:w.status,complete:!0},"snapshotEnd"),r=void 0;break;case"changes":{if(r){b();return}const R=new Map(n.records);for(const D of w.removes??[])R.delete(D.key);for(const D of w.upserts??[])R.set(D.key,D);y({records:R},"changes");break}case"status":if(r||!w.status){b();return}y({status:w.status});break;default:b()}}const E=G.On(s.topic,w=>S(w.data)),x={mode:s.mode,subscribe(w){return m.add(w),()=>{m.delete(w)}},getSnapshot(){return n},async refresh(){const w=u;u=!1,g=[];try{await N.RefreshSourceView(t,s.viewId)}catch(C){throw u=w,C}},close(){c||(c=!0,$t.delete(x),E(),f!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(f),clearTimeout(p),m.clear(),N.CloseSourceView(t,s.viewId).catch(()=>{}))}};$t.add(x);try{await N.SyncSourceView(t,s.viewId)}catch(w){throw x.close(),w}return x}const Dr={getSnapshot:()=>{},subscribe:()=>()=>{}},it=new Map;function kr(t,e,s,n){let r=it.get(t);return r||(r={refs:0,client:Bn(e,{targetId:s.targetId,target:s.request.target,updates:n?"ifSupported":"none"})},it.set(t,r)),r.refs++,r}function Or(t,e){--e.refs===0&&(it.get(t)===e&&it.delete(t),e.client.then(s=>s.close(),()=>{}))}function Wn(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 Nr(t,e){let s,n;const r=new Promise((c,u)=>{s=c,n=u});let i=()=>{};const o=(c,u)=>{i(),e.removeEventListener("abort",a),c?n(c):s(u)},a=()=>o(new k.CancelledError({revert:!0})),l=()=>{const c=t.getSnapshot();c.status?.state==="failed"||c.status?.state==="closed"?o(c.status.error??new Error("Source view closed before its snapshot completed")):c.complete&&o(void 0,Wn(c))};return i=t.subscribe(l),e.addEventListener("abort",a,{once:!0}),e.aborted?a():l(),r}const Tr=t=>{const e=F.c(92),{pluginID:s,request:n,enabled:r,live:i,collection:o}=t,a=r===void 0?!0:r,l=i===void 0?!0:i,c=o===void 0?!1:o,u=Q(s),d=k.useQueryClient();let f;e[0]!==n?(f=k.hashKey([n]),e[0]=n,e[1]=f):f=e[1];const p=f;let g;e[2]!==n||e[3]!==p?(g={hash:p,request:n},e[2]=n,e[3]=p,e[4]=g):g=e[4];const[m,h]=I.useState(g);m.hash!==p&&h({hash:p,request:n});const y=m.hash===p?m.request:n,v=y?.request.target.route.connection??"",b=a&&!!y;let S;e[5]!==v||e[6]!==u||e[7]!==b?(S={pluginID:u,connectionID:v,enabled:b},e[5]=v,e[6]=u,e[7]=b,e[8]=S):S=e[8];const E=ne(S);let x;e[9]!==v||e[10]!==u||e[11]!==b?(x=b?{subscribe:je(u,v).subscribe,getSnapshot:()=>ft(u,v)}:Dr,e[9]=v,e[10]=u,e[11]=b,e[12]=x):x=e[12];const w=x,C=I.useSyncExternalStore(w.subscribe,w.getSnapshot,w.getSnapshot),R=se(u,v),D=b&&E.phase==="connected";let q;e[13]!==c||e[14]!==u||e[15]!==y?(q=y?k.hashKey([u,y.targetId,y.request.target,c]):void 0,e[13]=c,e[14]=u,e[15]=y,e[16]=q):q=e[16];const A=q;let $;e[17]!==c||e[18]!==l||e[19]!==u?($=X=>c?[...be.list(u,X),"collection",l?"ifSupported":"none"]:be.list(u,X),e[17]=c,e[18]=l,e[19]=u,e[20]=$):$=e[20];const _=$;let P;e[21]!==_||e[22]!==y?(P=_(y),e[21]=_,e[22]=y,e[23]=P):P=e[23];const T=P;let j;e[24]!==C||e[25]!==T?(j=k.hashKey([T,C]),e[24]=C,e[25]=T,e[26]=j):j=e[26];const L=j,[M,U]=I.useState(),[W,V]=I.useState();let z,H;e[27]!==c||e[28]!==v||e[29]!==C||e[30]!==l||e[31]!==u||e[32]!==d||e[33]!==D||e[34]!==T||e[35]!==y||e[36]!==L?(z=()=>{if(!c||!D||!y||C===void 0)return;const X=kr(L,u,y,l);let Z=!0,ue=Pr;const sn=()=>{Z&&U({key:L,entry:X})};return X.client.then(rn=>{if(!Z)return;sn();const on=()=>{if(!Z||!Ln(u,v,C))return;const Ge=rn.getSnapshot();V({key:L,status:Ge.status}),Ge.complete&&Ge.status?.state!=="failed"&&Ge.status?.state!=="closed"&&d.setQueryData(T,Wn(Ge))};ue=rn.subscribe(on),on()},sn),()=>{Z=!1,ue(),Or(L,X)}},H=[c,D,y,C,L,u,v,l,d,T],e[27]=c,e[28]=v,e[29]=C,e[30]=l,e[31]=u,e[32]=d,e[33]=D,e[34]=T,e[35]=y,e[36]=L,e[37]=z,e[38]=H):(z=e[37],H=e[38]),I.useEffect(z,H);const K=M?.key===L&&D&&c?M.entry:void 0;let Y;e[39]!==R||e[40]!==u?(Y=(X,Z,ue)=>R(ue,Z,()=>N.Enumerate(u,X)),e[39]=R,e[40]=u,e[41]=Y):Y=e[41];const ee=Y;let ae;e[42]!==R?(ae=(X,Z,ue)=>R(ue,Z,async()=>Nr(await X.client,Z)),e[42]=R,e[43]=ae):ae=e[43];const fe=ae;let we;e[44]!==c||e[45]!==fe||e[46]!==K||e[47]!==ee||e[48]!==D||e[49]!==y?(we=D&&y&&(!c||K)?X=>{const{signal:Z,queryKey:ue}=X;return c?fe(K,Z,ue):ee(y,Z,ue)}:k.skipToken,e[44]=c,e[45]=fe,e[46]=K,e[47]=ee,e[48]=D,e[49]=y,e[50]=we):we=e[50];const Se=we,_e=D&&(!c||!!K);let he;e[51]!==Se||e[52]!==T||e[53]!==_e?(he={queryKey:T,queryFn:Se,enabled:_e,retry:!1,gcTime:0,placeholderData:void 0},e[51]=Se,e[52]=T,e[53]=_e,e[54]=he):he=e[54];const ye=k.useQuery(he),xe=ye.refetch;let Oe;e[55]!==c||e[56]!==K||e[57]!==xe?(Oe=async(...X)=>{const Z=X;return c&&K&&await(await K.client).refresh(),xe(...Z)},e[55]=c,e[56]=K,e[57]=xe,e[58]=Oe):Oe=e[58];const He=Oe;let Xe;e[59]!==c||e[60]!==He||e[61]!==ye?(Xe=c?{...ye,refetch:He}:ye,e[59]=c,e[60]=He,e[61]=ye,e[62]=Xe):Xe=e[62];const $e=Xe,[Ue,nn]=I.useState();let Ne=Ue;if(A&&y&&$e.isSuccess&&$e.data){if(Ue?.identity!==A||Ue.requestHash!==p){let X;e[63]!==p||e[64]!==y||e[65]!==A?(X={identity:A,requestHash:p,request:y},e[63]=p,e[64]=y,e[65]=A,e[66]=X):X=e[66],Ne=X,nn(Ne)}}else Ue&&Ue.identity!==A&&(Ne=void 0,nn(void 0));const le=A&&Ne?.identity===A?Ne.request:void 0;let Ye;e[67]!==le||e[68]!==_?(Ye=_(le),e[67]=le,e[68]=_,e[69]=Ye):Ye=e[69];const ht=Ye;let Te;e[70]!==le||e[71]!==c||e[72]!==ee||e[73]!==D?(Te=D&&le&&!c?X=>{const{signal:Z,queryKey:ue}=X;return ee(le,Z,ue)}:k.skipToken,e[70]=le,e[71]=c,e[72]=ee,e[73]=D,e[74]=Te):Te=e[74];let Ze;e[75]!==ht||e[76]!==Te?(Ze={queryKey:ht,queryFn:Te,enabled:!1,retry:!1,gcTime:0,placeholderData:void 0},e[75]=ht,e[76]=Te,e[77]=Ze):Ze=e[77];const Qe=k.useQuery(Ze);let et;e[78]!==le||e[79]!==Qe.data?(et=le&&Qe.data?{request:le,page:Qe.data}:void 0,e[78]=le,e[79]=Qe.data,e[80]=et):et=e[80];const Ke=et,pe=K&&W?.key===L?W.status:void 0,yt=!!Ke&&Ne?.requestHash===p,mt=c?He:Qe.refetch,vt=Ke?.page.view,bt=pe?.state==="following",wt=pe?.state==="opening"||pe?.state==="snapshotting"||pe?.state==="resetRequired",St=pe?.state==="following"||pe?.state==="finished",Et=pe?.state==="failed";let tt;return e[81]!==Ke||e[82]!==$e||e[83]!==pe||e[84]!==yt||e[85]!==mt||e[86]!==vt||e[87]!==bt||e[88]!==wt||e[89]!==St||e[90]!==Et?(tt={resources:$e,acquired:Ke,isAcquiredRequestCurrent:yt,refreshAcquiredPage:mt,view:vt,source:pe,isLive:bt,isSyncing:wt,isSynced:St,sourceError:Et},e[81]=Ke,e[82]=$e,e[83]=pe,e[84]=yt,e[85]=mt,e[86]=vt,e[87]=bt,e[88]=wt,e[89]=St,e[90]=Et,e[91]=tt):tt=e[91],tt};function Pr(){}const Ar=t=>{const e=F.c(13),{pluginID:s}=t,n=Q(s),r=k.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=async f=>(await Ve(n,f.route.connection),N.Mutate(n,f)),e[0]=n,e[1]=o):o=e[1];let a;e[2]!==n||e[3]!==r?(a=async()=>{await r.invalidateQueries({queryKey:be.all(n)})},e[2]=n,e[3]=r,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]!==o||e[8]!==a||e[9]!==l?(c={mutationFn:o,onSuccess:a,onError:l},e[7]=o,e[8]=a,e[9]=l,e[10]=c):c=e[10];const u=k.useMutation(c);let d;return e[11]!==u?(d={mutate:u.mutateAsync,mutation:u},e[11]=u,e[12]=d):d=e[12],d},qr=t=>{const e=F.c(25),{pluginID:s,route:n,type:r,enabled:i}=t,o=i===void 0?!0:i,a=Q(s),l=n.connection,c=o&&!!r;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=se(a,l);let p;e[4]!==a||e[5]!==n||e[6]!==r?(p=[a,"resource-v2","actions",n,r],e[4]=a,e[5]=n,e[6]=r,e[7]=p):p=e[7];let g;e[8]!==o||e[9]!==f||e[10]!==a||e[11]!==d||e[12]!==n||e[13]!==r?(g=o&&r&&d.phase==="connected"?S=>{const{signal:E,queryKey:x}=S;return f(x,E,()=>N.GetActions(a,n,r))}:k.skipToken,e[8]=o,e[9]=f,e[10]=a,e[11]=d,e[12]=n,e[13]=r,e[14]=g):g=e[14];const m=o&&!!a&&!!n.connection&&!!r&&d.phase==="connected";let h;e[15]!==p||e[16]!==g||e[17]!==m?(h={queryKey:p,queryFn:g,enabled:m,staleTime:3e5},e[15]=p,e[16]=g,e[17]=m,e[18]=h):h=e[18];const y=k.useQuery(h);let v;e[19]!==y.data?(v=y.data??[],e[19]=y.data,e[20]=v):v=e[20];let b;return e[21]!==y.error||e[22]!==y.isLoading||e[23]!==v?(b={actions:v,isLoading:y.isLoading,error:y.error},e[21]=y.error,e[22]=y.isLoading,e[23]=v,e[24]=b):b=e[24],b},Lr=t=>{const e=F.c(15),{pluginID:s}=t,n=Q(s),r=k.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=async f=>(await Ve(n,f.route.connection),N.Action(n,f)),e[0]=n,e[1]=o):o=e[1];let a;e[2]!==n||e[3]!==r?(a=async()=>{await r.invalidateQueries({queryKey:be.all(n)})},e[2]=n,e[3]=r,e[4]=a):a=e[4];let l;e[5]!==i?(l=(f,p)=>{qe(i,f,`Failed to execute action "${p.action}"`)},e[5]=i,e[6]=l):l=e[6];let c;e[7]!==o||e[8]!==a||e[9]!==l?(c={mutationFn:o,onSuccess:a,onError:l},e[7]=o,e[8]=a,e[9]=l,e[10]=c):c=e[10];const u=k.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},Fr={getSnapshot:()=>{},subscribe:()=>()=>{}},zn=t=>{const e=F.c(35),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s),a=k.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 c=ne(l),u=se(o,n.connection);let d;e[4]!==i||e[5]!==o||e[6]!==n.connection?(d=i&&o&&n.connection?{subscribe:je(o,n.connection).subscribe,getSnapshot:()=>ft(o,n.connection)}:Fr,e[4]=i,e[5]=o,e[6]=n.connection,e[7]=d):d=e[7];const f=d,p=I.useSyncExternalStore(f.subscribe,f.getSnapshot,f.getSnapshot),g=i&&!!o&&!!n.connection&&c.phase==="connected";let m;e[8]!==p||e[9]!==o||e[10]!==n?(m=[o,"resource-v2","editor-schemas",n,p],e[8]=p,e[9]=o,e[10]=n,e[11]=m):m=e[11];let h;e[12]!==p||e[13]!==u||e[14]!==o||e[15]!==a||e[16]!==g||e[17]!==n?(h=g?x=>{const{signal:w,queryKey:C}=x;return u(C,w,async()=>{const R=await u(C,w,()=>N.GetEditorSchemas(o,n)),D=[],q=new Set;for(const A of R){const $=A.documentId;A.status!=="available"||!$||q.has($)||(D.push(await a.fetchQuery({queryKey:[o,"resource-v2","editor-schema-document",n,$,p],queryFn:_=>{const{signal:P,queryKey:T}=_;return u(T,AbortSignal.any([w,P]),()=>N.GetEditorSchemaDocument(o,n,$))},staleTime:1/0})),q.add($))}return{associations:R,documents:D}})}:k.skipToken,e[12]=p,e[13]=u,e[14]=o,e[15]=a,e[16]=g,e[17]=n,e[18]=h):h=e[18];let y;e[19]!==g||e[20]!==m||e[21]!==h?(y={queryKey:m,queryFn:h,enabled:g,staleTime:6e5,retry:1},e[19]=g,e[20]=m,e[21]=h,e[22]=y):y=e[22];const v=k.useQuery(y);let b;e[23]!==v.data?.associations||e[24]!==g?(b=g?v.data?.associations??[]:[],e[23]=v.data?.associations,e[24]=g,e[25]=b):b=e[25];let S;e[26]!==v.data?.documents||e[27]!==g?(S=g?v.data?.documents??[]:[],e[26]=v.data?.documents,e[27]=g,e[28]=S):S=e[28];let E;return e[29]!==v.error||e[30]!==v.isLoading||e[31]!==v.refetch||e[32]!==b||e[33]!==S?(E={associations:b,documents:S,isLoading:v.isLoading,error:v.error,refetch:v.refetch},e[29]=v.error,e[30]=v.isLoading,e[31]=v.refetch,e[32]=b,e[33]=S,e[34]=E):E=e[34],E},Mr={getSnapshot:()=>{},subscribe:()=>()=>{}},jr=t=>{const e=F.c(37),{pluginID:s,route:n,type:r,representation:i,path:o,enabled:a}=t,l=a===void 0?!0:a,c=Q(s);let u;e[0]!==l||e[1]!==c||e[2]!==n.connection?(u={pluginID:c,connectionID:n.connection,enabled:l},e[0]=l,e[1]=c,e[2]=n.connection,e[3]=u):u=e[3];const d=ne(u),f=se(c,n.connection);let p;e[4]!==l||e[5]!==c||e[6]!==n.connection?(p=l&&c&&n.connection?{subscribe:je(c,n.connection).subscribe,getSnapshot:()=>ft(c,n.connection)}:Mr,e[4]=l,e[5]=c,e[6]=n.connection,e[7]=p):p=e[7];const g=p,m=I.useSyncExternalStore(g.subscribe,g.getSnapshot,g.getSnapshot),h=l&&!!c&&!!n.connection&&!!r&&d.phase==="connected",y=i??"";let v;e[8]!==m||e[9]!==o||e[10]!==c||e[11]!==n||e[12]!==y||e[13]!==r?(v=[c,"resource-v2","schema-fields",n,r,y,o,m],e[8]=m,e[9]=o,e[10]=c,e[11]=n,e[12]=y,e[13]=r,e[14]=v):v=e[14];let b;e[15]!==f||e[16]!==o||e[17]!==c||e[18]!==h||e[19]!==i||e[20]!==n||e[21]!==r?(b=h?D=>{const{signal:q,queryKey:A}=D;return f(A,q,()=>N.GetSchemaFields(c,{route:n,type:r,representation:i,path:o}))}:k.skipToken,e[15]=f,e[16]=o,e[17]=c,e[18]=h,e[19]=i,e[20]=n,e[21]=r,e[22]=b):b=e[22];let S;e[23]!==h||e[24]!==v||e[25]!==b?(S={queryKey:v,queryFn:b,enabled:h,staleTime:6e5,retry:1,placeholderData:void 0},e[23]=h,e[24]=v,e[25]=b,e[26]=S):S=e[26];const E=k.useQuery(S),x=h?E.data:void 0;let w;e[27]!==E.data?.fields||e[28]!==h?(w=h?E.data?.fields??[]:[],e[27]=E.data?.fields,e[28]=h,e[29]=w):w=e[29];const C=h?E.data?.overlay:void 0;let R;return e[30]!==E.error||e[31]!==E.isLoading||e[32]!==E.refetch||e[33]!==C||e[34]!==x||e[35]!==w?(R={result:x,fields:w,overlay:C,isLoading:E.isLoading,error:E.error,refetch:E.refetch},e[30]=E.error,e[31]=E.isLoading,e[32]=E.refetch,e[33]=C,e[34]=x,e[35]=w,e[36]=R):R=e[36],R},Vn=(t,e)=>`${t.modelDirectory}/${encodeURIComponent(e)}.${t.language}`,$r=t=>{const e=F.c(14),{pluginID:s,route:n,type:r,representation:i,key:o,name:a,enabled:l}=t,c=l===void 0?!0:l;let u;e[0]!==c||e[1]!==s||e[2]!==n?(u={pluginID:s,route:n,enabled:c},e[0]=c,e[1]=s,e[2]=n,e[3]=u):u=e[3];const{associations:d}=zn(u);let f;if(e[4]!==d||e[5]!==o||e[6]!==a||e[7]!==i||e[8]!==r){let p;e[10]!==o||e[11]!==i||e[12]!==r?(p=m=>m.type!==r?!1:o!==void 0?m.key===o:m.key?!1:i===void 0||m.representation===i,e[10]=o,e[11]=i,e[12]=r,e[13]=p):p=e[13];const g=d.find(p);f=g?Vn(g,a):void 0,e[4]=d,e[5]=o,e[6]=a,e[7]=i,e[8]=r,e[9]=f}else f=e[9];return f},fn=t=>["following","finished","failed","closed"].includes(t),Ur=({pluginID:t,route:e,enabled:s=!0})=>{const n=Q(t),r=k.useQueryClient(),i=e.connection,o=I.useMemo(()=>[n,"resource-v2","source-states",{connection:i}],[n,i]),a=I.useRef([]),l=I.useRef(!1),c=I.useRef(void 0),u=I.useCallback(g=>{r.setQueryData(o,m=>m&&{...m,types:{...m.types,[g.type]:g.status}})},[r,o]),d=k.useQuery({queryKey:o,queryFn:async()=>{const g=[];c.current=g;try{const m=await N.GetSourceStates(n,{connection:i});if(!m)throw new Error("Failed to get source states: null response");const h={...m.types};for(const y of g)h[y.type]=y.status;return{...m,types:h}}finally{c.current===g&&(c.current=void 0)}},enabled:s&&!!n&&!!i,refetchInterval:g=>{const m=Object.values(g.state.data?.types??{});return m.length>0&&m.every(h=>fn(h.state))?!1:3e3}});I.useEffect(()=>{if(l.current=!1,a.current=[],!s||!n||!i)return;const g=G.On(`${n}/${i}/source/STATE`,m=>{const h=m.data;h.pluginID!==n||h.route.connection!==i||(l.current?u(h):a.current.push(h),c.current?.push(h))});return()=>{g(),l.current=!1,a.current=[]}},[n,i,s,u]),I.useEffect(()=>{if(!d.data||l.current)return;l.current=!0;const g=a.current;a.current=[];for(const m of g)u(m)},[d.data,u]);const f=Object.values(d.data?.types??{}),p=f.filter(g=>fn(g.state)).length;return{summary:d.data,getTypeStatus:g=>d.data?.types[g],isFullySynced:f.length>0&&p===f.length,syncProgress:f.length?p/f.length:0,errorCount:f.filter(g=>g.state==="failed").length}},Qr=()=>{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]=I.useState(e);let r;t[1]===Symbol.for("react.memo_cache_sentinel")?(r=new Map,t[1]=r):r=t[1];const i=I.useRef(r);let o;t[2]===Symbol.for("react.memo_cache_sentinel")?(o=new Map,t[2]=o):o=t[2];const a=I.useRef(o);let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=v=>{const b=v.data,S=Zt(b.pluginID,b),E=jt(i.current,b.pluginID,b),x=Mt(E);if(n(w=>{const C=new Map(w);return C.set(S,x),C}),a.current.has(S)&&(clearTimeout(a.current.get(S)),a.current.delete(S)),pt(x)){const w=setTimeout(()=>{n(C=>{const R=new Map(C);return R.delete(S),R}),i.current.delete(S),a.current.delete(S)},5e3);a.current.set(S,w)}},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,b=G.On("source/STATE",c);return()=>{b();for(const S of v.values())clearTimeout(S);v.clear()}},d=[c],t[4]=u,t[5]=d):(u=t[4],d=t[5]),I.useEffect(u,d);let f,p,g,m;t[6]!==s?(g=Array.from(s.values()),f=jn(g),p=g.find(Kr)??g[0]??null,m=$n(g),t[6]=s,t[7]=f,t[8]=p,t[9]=g,t[10]=m):(f=t[7],p=t[8],g=t[9],m=t[10]);const h=m;let y;return t[11]!==h||t[12]!==f||t[13]!==p||t[14]!==g?(y={syncs:g,hasSyncing:f,primarySync:p,aggregateProgress:h},t[11]=h,t[12]=f,t[13]=p,t[14]=g,t[15]=y):y=t[15],y};function Kr(t){return!pt(t)}const Jn=()=>{const t=I.useContext(Jt);if(!t)throw new Error("useOperations must be used within an OperationsProvider");return t};function ct(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(ct);case"map":return Object.fromEntries(Object.entries(t.value).map(([e,s])=>[e,ct(s)]))}}function Ut(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 Qt(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 Kt(t){if(t===null)return{kind:"null"};if(typeof t=="boolean")return{kind:"bool",value:t};if(typeof t=="string")return{kind:"string",value:Ut(t)};if(typeof t=="bigint")return Qt(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 Qt(t.toString())}return{kind:"double",value:t}}if(Array.isArray(t))return{kind:"list",value:t.map(Kt)};if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype)return{kind:"map",value:Object.fromEntries(Object.entries(t).map(([e,s])=>[Ut(e),Kt(s)]))};throw new TypeError("Unsupported resource value")}function Gt(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(Gt).join(",")}]`;case"map":return`{${Object.entries(t.value).map(([e,s])=>`${JSON.stringify(e)}:${Gt(s)}`).join(",")}}`}}function Gr(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 a=e++;for(;e<t.length;){const l=t[e++];if(l==="\\"){e++;continue}if(l==='"')return Ut(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:r()};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=r();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 Qt(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}},o=i(0);return n(),e!==t.length?s():o}const Br=({pluginID:t})=>{const e=Q(t),{showSnackbar:s}=ce(),{addOperation:n,updateOperation:r}=Jn(),i=I.useRef(new Set),o=I.useCallback((c,u=!1)=>{c.disposed||(c.disposed=!0,c.unsubscribe?.(),c.open?.cancel(),c.attach?.cancel(),c.handle&&(N.CancelStreamAction(c.handle).catch(()=>{}),u&&r(c.handle,{status:"cancelled",message:"Cancelled",completedAt:Date.now()})),i.current.delete(c))},[r]);I.useEffect(()=>()=>{for(const c of i.current)o(c,!0)},[e,o]);const a=I.useCallback(async({request:c,label:u})=>{const d={disposed:!1,terminal:!1,sequence:0};i.current.add(d);try{if(await Ve(e,c.route.connection),d.disposed)throw new Error("Stream action was cancelled before the connection became ready");d.open=N.StreamAction(e,c);const f=await d.open;if(d.open=void 0,d.disposed)return N.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=m=>{if(d.disposed||!Number.isSafeInteger(m.sequence)||m.sequence<=d.sequence)return;d.sequence=m.sequence;const h=m.event,y=h.data?ct(h.data):void 0,v=y&&typeof y=="object"&&!Array.isArray(y)?y:{};if(h.type==="error"){d.terminal=!0;const b=ie(h.error);r(f,{status:ze(b)?"cancelled":"error",message:b.title,completedAt:Date.now()}),qe(s,b,u),o(d)}else if(h.type==="complete"){d.terminal=!0;const b=typeof v.message=="string"?v.message:`${u} completed`;r(f,{status:"completed",message:b,completedAt:Date.now()}),s(b,"success"),o(d)}else r(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=G.On(`action/stream/${f}`,m=>p(m.data)),d.attach=N.AttachStreamAction(f);const g=await d.attach;return d.attach=void 0,p(g),f}catch(f){if(d.terminal&&d.handle)return d.handle;throw d.disposed||(d.handle&&r(d.handle,{status:ze(f)?"cancelled":"error",message:ie(f).title,completedAt:Date.now()}),qe(s,f,`Failed to start "${c.action}"`)),o(d),f}},[e,n,r,s,o]),l=I.useCallback(c=>{for(const u of i.current)if(u.handle===c){o(u,!0);return}},[o]);return{startStreamAction:a,cancelStreamAction:l}};function Hn(t,e){return`${t}/${e}/graph/CHANGED`}function gt(t,e,s,n){const r=F.c(16),i=k.useQueryClient(),o=I.useRef(s);let a,l;r[0]!==s?(a=()=>{o.current=s},l=[s],r[0]=s,r[1]=a,r[2]=l):(a=r[1],l=r[2]),I.useLayoutEffect(a,l);let c;r[3]!==s?(c=JSON.stringify(s),r[3]=s,r[4]=c):c=r[4];const u=c;let d;r[5]!==e||r[6]!==n||r[7]!==t||r[8]!==i?(d=()=>{if(!n||!t||!e)return;const p=G.On(Hn(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]=d):d=r[9];let f;r[10]!==e||r[11]!==n||r[12]!==u||r[13]!==t||r[14]!==i?(f=[i,t,e,u,n],r[10]=e,r[11]=n,r[12]=u,r[13]=t,r[14]=i,r[15]=f):f=r[15],I.useEffect(d,f)}const Wr={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 zr(t,e){const s=Wr[t];if(s)return s[e];const n=t.replace(/_/g," ");return e==="outgoing"?n:`${n} (incoming)`}function Xn(t,e){return e.map(s=>{const n=pn.sameGraphNode(s.source,t);return{resource:n?s.target:s.source,type:s.type,direction:n?"outgoing":"incoming",label:s.label}})}const Vr=t=>{const e=F.c(38),{pluginID:s,reference:n,route:r,direction:i,relationshipType:o,enabled:a,refetchInterval:l}=t,c=i===void 0?"both":i,u=a===void 0?!0:a,d=l===void 0?!1:l,f=Q(s),p=o??null;let g;e[0]!==c||e[1]!==f||e[2]!==n||e[3]!==r||e[4]!==p?(g=["RESOURCE_RELATED",f,n,r,c,p],e[0]=c,e[1]=f,e[2]=n,e[3]=r,e[4]=p,e[5]=g):g=e[5];const m=g,h=u&&!!n.address.id;let y;e[6]!==f||e[7]!==r.connection||e[8]!==h?(y={pluginID:f,connectionID:r.connection,enabled:h},e[6]=f,e[7]=r.connection,e[8]=h,e[9]=y):y=e[9];const v=ne(y),b=se(f,r.connection),S=u&&!!f&&!!r.connection&&!!n.address.id&&v.phase==="connected";gt(f,r.connection,m,S);let E;e[10]!==c||e[11]!==b||e[12]!==f||e[13]!==S||e[14]!==n||e[15]!==o||e[16]!==r?(E=S?q=>{const{signal:A,queryKey:$}=q;return b($,A,()=>N.GetRelated(f,n,r,c,o??null))}:k.skipToken,e[10]=c,e[11]=b,e[12]=f,e[13]=S,e[14]=n,e[15]=o,e[16]=r,e[17]=E):E=e[17];let x;e[18]!==S||e[19]!==m||e[20]!==d||e[21]!==E?(x={queryKey:m,queryFn:E,enabled:S,refetchInterval:d},e[18]=S,e[19]=m,e[20]=d,e[21]=E,e[22]=x):x=e[22];const w=k.useQuery(x);let C,R;if(e[23]!==f||e[24]!==w.data||e[25]!==n||e[26]!==r){const q={pluginId:f,reference:n};let A;e[29]!==w.data?(A=w.data??[],e[29]=w.data,e[30]=A):A=e[30],C=A,R=Xn(q,C),e[23]=f,e[24]=w.data,e[25]=n,e[26]=r,e[27]=C,e[28]=R}else C=e[27],R=e[28];let D;return e[31]!==C||e[32]!==w.error||e[33]!==w.isFetching||e[34]!==w.isLoading||e[35]!==w.refetch||e[36]!==R?(D={related:R,edges:C,isLoading:w.isLoading,isFetching:w.isFetching,error:w.error,refetch:w.refetch},e[31]=C,e[32]=w.error,e[33]=w.isFetching,e[34]=w.isLoading,e[35]=w.refetch,e[36]=R,e[37]=D):D=e[37],D},Jr=t=>{const e=F.c(27),{pluginID:s,reference:n,route:r,maxDepth:i,enabled:o,refetchInterval:a}=t,l=i===void 0?3:i,c=o===void 0?!0:o,u=a===void 0?!1:a,d=Q(s);let f;e[0]!==l||e[1]!==d||e[2]!==n||e[3]!==r?(f=["RESOURCE_DEPENDENCY_TREE",d,n,r,l],e[0]=l,e[1]=d,e[2]=n,e[3]=r,e[4]=f):f=e[4];const p=f,g=c&&!!n.address.id;let m;e[5]!==d||e[6]!==r.connection||e[7]!==g?(m={pluginID:d,connectionID:r.connection,enabled:g},e[5]=d,e[6]=r.connection,e[7]=g,e[8]=m):m=e[8];const h=ne(m),y=se(d,r.connection),v=c&&!!d&&!!r.connection&&!!n.address.id&&h.phase==="connected";gt(d,r.connection,p,v);let b;e[9]!==y||e[10]!==l||e[11]!==d||e[12]!==v||e[13]!==n||e[14]!==r?(b=v?C=>{const{signal:R,queryKey:D}=C;return y(D,R,()=>N.GetDependencyTree(d,n,r,l))}:k.skipToken,e[9]=y,e[10]=l,e[11]=d,e[12]=v,e[13]=n,e[14]=r,e[15]=b):b=e[15];let S;e[16]!==v||e[17]!==p||e[18]!==u||e[19]!==b?(S={queryKey:p,queryFn:b,enabled:v,refetchInterval:u},e[16]=v,e[17]=p,e[18]=u,e[19]=b,e[20]=S):S=e[20];const E=k.useQuery(S),x=E.data??null;let w;return e[21]!==E.error||e[22]!==E.isFetching||e[23]!==E.isLoading||e[24]!==E.refetch||e[25]!==x?(w={tree:x,isLoading:E.isLoading,isFetching:E.isFetching,error:E.error,refetch:E.refetch},e[21]=E.error,e[22]=E.isFetching,e[23]=E.isLoading,e[24]=E.refetch,e[25]=x,e[26]=w):w=e[26],w},Hr=t=>{const e=F.c(28),{pluginID:s,reference:n,route:r,upDepth:i,downDepth:o,enabled:a}=t,l=i===void 0?2:i,c=o===void 0?3:o,u=a===void 0?!0:a,d=Q(s);let f;e[0]!==c||e[1]!==d||e[2]!==n||e[3]!==r||e[4]!==l?(f=["RESOURCE_GRAPH",d,n,r,l,c],e[0]=c,e[1]=d,e[2]=n,e[3]=r,e[4]=l,e[5]=f):f=e[5];const p=f,g=u&&!!n.address.id;let m;e[6]!==d||e[7]!==r.connection||e[8]!==g?(m={pluginID:d,connectionID:r.connection,enabled:g},e[6]=d,e[7]=r.connection,e[8]=g,e[9]=m):m=e[9];const h=ne(m),y=se(d,r.connection),v=u&&!!d&&!!r.connection&&!!n.address.id&&h.phase==="connected";gt(d,r.connection,p,v);let b;e[10]!==c||e[11]!==y||e[12]!==d||e[13]!==v||e[14]!==n||e[15]!==r||e[16]!==l?(b=v?C=>{const{signal:R,queryKey:D}=C;return y(D,R,()=>N.GetSubgraph(d,n,r,l,c))}:k.skipToken,e[10]=c,e[11]=y,e[12]=d,e[13]=v,e[14]=n,e[15]=r,e[16]=l,e[17]=b):b=e[17];let S;e[18]!==v||e[19]!==p||e[20]!==b?(S={queryKey:p,queryFn:b,enabled:v,retry:!1},e[18]=v,e[19]=p,e[20]=b,e[21]=S):S=e[21];const E=k.useQuery(S),x=E.data??null;let w;return e[22]!==E.error||e[23]!==E.isFetching||e[24]!==E.isLoading||e[25]!==E.refetch||e[26]!==x?(w={graph:x,isLoading:E.isLoading,isFetching:E.isFetching,error:E.error,refetch:E.refetch},e[22]=E.error,e[23]=E.isFetching,e[24]=E.isLoading,e[25]=E.refetch,e[26]=x,e[27]=w):w=e[27],w},Xr=()=>{const t=I.useContext(Vt);if(!t)throw new Error("useSettings must be used within a SettingsProvider");return t},Yr=1,Zr=t=>{const e=F.c(19);let s,n,r,i;if(e[0]!==t){const{to:m,withinContext:h,onClick:y,onAuxClick:v,...b}=t;i=m,n=y,s=v,r=b,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}=zt(),a=I.useContext(dt);o||console.error("Link used outside of a plugin context");const l=`/_plugin/${o}${i.startsWith("/")?"":"/"}${i}`;let c;e[5]!==n||e[6]!==l||e[7]!==a?(c=m=>{n?.(m),!(m.defaultPrevented||!a||!(m.ctrlKey||m.metaKey))&&(m.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=m=>{s?.(m),!(m.defaultPrevented||!a||m.button!==Yr)&&(m.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 g;return e[14]!==f||e[15]!==u||e[16]!==r||e[17]!==l?(g=O.jsx(st.Link,{style:p,...r,to:l,onClick:u,onAuxClick:f}),e[14]=f,e[15]=u,e[16]=r,e[17]=l,e[18]=g):g=e[18],g};function eo(){const t=F.c(10),e=st.useNavigate(),s=st.useLocation(),{pluginId:n}=zt();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 a;t[3]!==e||t[4]!==r?(a=(u,d)=>{const{...f}=d??{};u.startsWith("/")?e(`${r}${u}`,f):e(u,f)},t[3]=e,t[4]=r,t[5]=a):a=t[5];const l=a;let c;return t[6]!==s||t[7]!==l||t[8]!==o?(c={location:s,navigate:l,pluginPath:o},t[6]=s,t[7]=l,t[8]=o,t[9]=c):c=t[9],c}class to{}class no{_extensions;root;pages;_routes;get extensions(){return this._extensions||[]}get Routes(){if(!this._routes&&this.root)return[{path:"",index:!0,Component:this.root}];if(!this._routes?.length)throw new Error("cannot use plugin without a root page or router");return this._routes}get Window(){if(!this._routes&&this.root)return O.jsx(this.root,{});const e=st.createMemoryRouter(this._routes||[]);return O.jsx(ts.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 Yn=(t=>(t.MISSING_MANIFEST="MISSING_MANIFEST",t.MISSING_PLUGIN="MISSING_PLUGIN",t.MISSING_ENTRYPOINT="MISSING_ENTRYPOINT",t))(Yn||{});const Zn="omniview/global-search/open";function so(t={}){window.dispatchEvent(new CustomEvent(Zn,{detail:t}))}const es="omniview/resource/icons";class ro extends I.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 oo(t,e){try{return t?.schemaVersion!==1||typeof t.resolve!="function"?void 0:t.resolve(e)}catch{return}}function io(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 r=n["aria-hidden"]??!0;let i;return e[3]!==s||e[4]!==n||e[5]!==r?(i=O.jsx(s,{...n,"aria-hidden":r}),e[3]=s,e[4]=n,e[5]=r,e[6]=i):i=e[6],i}function co(t){const e=F.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:a}=Ht(es);let l;e[5]!==s||e[6]!==r?(l=s===void 0?O.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:O.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 c=l;let u;if(e[8]!==a||e[9]!==c||e[10]!==n||e[11]!==r||e[12]!==i||e[13]!==o){u=Symbol.for("react.early_return_sentinel");e:for(const f of a){if(f.plugin!==n)continue;const p=oo(f.value,i);if(p){u=O.jsx(ro,{resetToken:f,fallback:c,children:O.jsx(I.Suspense,{fallback:c,children:O.jsx(io,{icon:p,...r})})},JSON.stringify([n,i,o,f.id]));break e}}e[8]=a,e[9]=c,e[10]=n,e[11]=r,e[12]=i,e[13]=o,e[14]=u}else u=e[14];if(u!==Symbol.for("react.early_return_sentinel"))return u;let d;return e[15]!==c?(d=O.jsx(O.Fragment,{children:c}),e[15]=c,e[16]=d):d=e[16],d}const ao="omniview/settings/editor";function lo(t){const e=F.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=Q(s),a=i&&!!n.type;let l;e[4]!==o||e[5]!==n.route.connection||e[6]!==a?(l={pluginID:o,connectionID:n.route.connection,enabled:a},e[4]=o,e[5]=n.route.connection,e[6]=a,e[7]=l):l=e[7];const c=ne(l),u=se(o,n.route.connection),d=i&&!!o&&!!n.route.connection&&!!n.type&&c.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]!==u||e[12]!==o||e[13]!==d||e[14]!==n?(p=d?v=>{const{signal:b,queryKey:S}=v;return u(S,b,()=>N.ResolveTarget(o,n))}:k.skipToken,e[11]=u,e[12]=o,e[13]=d,e[14]=n,e[15]=p):p=e[15];let g;e[16]!==d||e[17]!==f||e[18]!==p?(g={queryKey:f,queryFn:p,enabled:d,retry:!1,placeholderData:void 0},e[16]=d,e[17]=f,e[18]=p,e[19]=g):g=e[19];const m=k.useQuery(g),h=d&&m.isSuccess&&!m.isFetching?m.data:void 0;let y;return e[20]!==m||e[21]!==h?(y={...m,data:h},e[20]=m,e[21]=h,e[22]=y):y=e[22],y}exports.sameGraphNode=pn.sameGraphNode;exports.ALL_SESSIONS_KEY=De;exports.BottomDrawerContext=Sn;exports.ConfirmationModalContext=Cn;exports.ConnectionBoundary=Ks;exports.ConnectionBoundaryFallback=Un;exports.ErrorTypes=J;exports.ExtensionPointRegistry=Ss;exports.ExtensionPointStore=Nn;exports.ExtensionProvider=vs;exports.GLOBAL_SEARCH_OPEN_EVENT=Zn;exports.HOST_SETTINGS_SCOPE=rt;exports.Link=Zr;exports.OperationsContext=Jt;exports.OperationsProvider=us;exports.PluginContext=lt;exports.PluginContextProvider=os;exports.PluginErrorCode=Yn;exports.PluginWindow=no;exports.PluginWindowRootProps=to;exports.RESOURCE_EDITOR_EXTENSION_POINT=Rn;exports.RESOURCE_ICON_EXTENSION_POINT_ID=es;exports.ResourceIcon=co;exports.RightDrawerContext=En;exports.SETTINGS_EDITOR_EXTENSION_POINT_ID=ao;exports.SettingsContext=Vt;exports.SettingsProvider=as;exports.SnackbarProvider=Cs;exports.WindowActionsContext=dt;exports.WindowActionsProvider=ds;exports.actionToSnackbar=vn;exports.connectionListQueryKey=Mn;exports.createErrorHandler=te;exports.defaultState=wn;exports.editorModelPath=Vn;exports.extensionInspectorTarget=ut;exports.graphChangedEvent=Hn;exports.isCancelledError=ze;exports.jsonTextToValue=Gr;exports.jsonToValue=Kt;exports.matchesResourceEditor=On;exports.navigateActivePage=mn;exports.openGlobalSearch=so;exports.openSettings=qt;exports.openSourceView=Bn;exports.parseAppError=ie;exports.readCurrentConnectionMetadataString=er;exports.registerActivePageNavigator=rs;exports.relationshipLabel=zr;exports.requireConnectionReady=Ve;exports.resourceEditorPathContains=kn;exports.resourceQueryKeys=be;exports.scopedSettingID=yn;exports.selectResourceEditor=ws;exports.settingsQueryKey=gn;exports.settingsWindowTarget=Wt;exports.showAppError=qe;exports.toRelatedResources=Xn;exports.useActiveSyncs=Qr;exports.useBottomDrawer=tn;exports.useConfirmationModal=vr;exports.useConnection=Ds;exports.useConnectionMetadata=Ws;exports.useConnectionMetadataConnections=Hs;exports.useConnectionMetadataSelector=Ys;exports.useConnectionProfiles=As;exports.useConnectionReadiness=ne;exports.useConnectionStatus=Ps;exports.useConnections=ks;exports.useDependencyTree=Jr;exports.useEditorSchemas=zn;exports.useExec=rr;exports.useExecuteAction=Lr;exports.useExtensionPoint=ms;exports.useExtensionPointSnapshot=Ht;exports.useExtensionRegistry=xn;exports.useLogs=ir;exports.useMetricProviders=ar;exports.useMetricProvidersForResource=Gn;exports.useMetricStream=ur;exports.useNativeExec=or;exports.useOperations=Jn;exports.usePluginContext=zt;exports.usePluginData=nr;exports.usePluginRouter=eo;exports.usePortForwardSessions=dr;exports.useRefetchOnGraphChange=gt;exports.useRelatedResources=Vr;exports.useResolvedPluginId=Q;exports.useResolvedResourceTarget=lo;exports.useResource=br;exports.useResourceActions=qr;exports.useResourceAreaComponent=wr;exports.useResourceEditorModelPath=$r;exports.useResourceGraph=Hr;exports.useResourceGroups=Sr;exports.useResourceMetrics=lr;exports.useResourceMutations=Ar;exports.useResourcePortForwarder=yr;exports.useResourceSearch=Er;exports.useResourceType=_r;exports.useResourceTypes=xr;exports.useResources=Tr;exports.useRightDrawer=sr;exports.useSchemaFields=jr;exports.useScopeValues=Ts;exports.useScopedSettings=Bt;exports.useSettings=Xr;exports.useSnackbar=ce;exports.useSourceStates=Ur;exports.useStreamAction=Br;exports.useWindowActions=fs;exports.validateResourceEditorContribution=Dn;exports.valueToJSON=ct;exports.valueToJSONText=Gt;exports.withConnectionReady=xs;
|
|
4
|
+
${h.details??""}`)}catch{d("Copy failed. Select the diagnostic text and copy it manually.")}},children:"Copy details"}),h.actions?.map((v,b)=>O.jsx(B.Button,{size:"sm",variant:"outline",onClick:v.onClick,children:v.label},`${v.label}-${b}`))]})]})})]},h.id)})]}),u&&O.jsx(B.Text,{as:"p",size:"sm",role:"status",style:re.CopyError,children:u})]})]})},ce=()=>{const t=I.useContext(Pn);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 Q(t){const s=I.useContext(lt)?.pluginId??t;if(!s)throw new Error("pluginID must be provided either via PluginContext or as an explicit parameter");return s}const oe=new Map,Me=new Map;let Ot=0,Ae=[],Xt=0;const An={phase:"checking"};function Ce(t,e){const s=JSON.stringify([t,e]);let n=oe.get(s);return n||(n={pluginID:t,connectionID:e,key:s,snapshot:An,listeners:new Set,users:0,version:0,generation:++Xt,starts:new Set},oe.set(s,n)),n}function We(t,e){t.snapshot.phase==="connected"&&e.phase!=="connected"&&(t.generation=++Xt),t.snapshot=e;for(const s of t.listeners)s()}function Ie(t,e,s=!1){t.generation=++Xt,t.version++,s||(t.operation=void 0),We(t,e)}function _s(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 Yt(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 qn(t,e){const s=_s(t.status);return{phase:s,connection:e,message:Yt(t.error||t.details)||(s==="error"?"The connection is not ready.":void 0)}}function Ln(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:Yt(s.detail||s.title)}}function Nt(t,e){e=Yt(e)||"The plugin is unavailable.",Me.set(t,e);for(const s of oe.values())s.pluginID===t&&Ie(s,{phase:"error",message:e,connection:s.snapshot.connection})}function ln(t){const e=Me.delete(t);for(const s of oe.values())s.pluginID===t&&(!e&&s.snapshot.phase==="checking"&&s.operation?.kind==="check"||(Ie(s,{phase:"checking",connection:s.snapshot.connection}),s.users&&ve(s,"check").catch(()=>{})))}function Pe(){if(!(typeof document<"u"&&document.visibilityState==="hidden"))for(const t of oe.values())t.users&&!Me.has(t.pluginID)&&ve(t,"check",!0).catch(()=>{})}function xs(){Ae.length||(Ae=[G.On("connection/status",({data:t})=>{const e=oe.get(JSON.stringify([t.pluginID,t.connectionID]));!e||Me.has(t.pluginID)||e.stop&&t.status!=="DISCONNECTED"||t.status!=="DISCONNECTED"&&e.starts.size&&e.operation?.kind!=="start"||Ie(e,qn({status:t.status,error:"",details:""},e.snapshot.connection),t.status==="CONNECTED")}),G.On("plugin/crash",({data:t})=>Nt(t.pluginID,t.error||"The plugin stopped unexpectedly.")),G.On("plugin/crash_recovery_failed",({data:t})=>Nt(t.pluginID,t.error||"Plugin recovery failed.")),G.On("plugin/recovered",({data:t})=>ln(t.pluginID)),G.On("plugin/state_change",({data:t})=>{t.to==="Running"?ln(t.pluginID):Nt(t.pluginID,t.reason||`The plugin is ${t.to}.`)})],typeof window<"u"&&(window.addEventListener("focus",Pe),window.addEventListener("pageshow",Pe),Ae.push(()=>{window.removeEventListener("focus",Pe),window.removeEventListener("pageshow",Pe)})),typeof document<"u"&&(document.addEventListener("visibilitychange",Pe),Ae.push(()=>document.removeEventListener("visibilitychange",Pe))))}function ke(t){return oe.set(t.key,t),t.users++,Ot++,xs(),()=>{if(t.users--,Ot--,t.users||(Ie(t,An),oe.get(t.key)===t&&oe.delete(t.key)),!Ot){for(const e of Ae)e();Ae=[],Me.clear()}}}function ve(t,e,s=!1){if(t.stop)return Promise.reject(new Error("Connection is disconnecting. Wait for it to stop before connecting."));const n=Me.get(t.pluginID);if(n)return We(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")&&We(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"?N.StartConnection(t.pluginID,t.connectionID):N.CheckConnection(t.pluginID,t.connectionID)}).then(o=>(t.version===r&&We(t,qn(o,o.connection??t.snapshot.connection)),o),o=>{throw t.version===r&&We(t,Ln(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 je(t,e){return{getSnapshot:()=>Ce(t,e).snapshot,subscribe:s=>{const n=Ce(t,e),r=n.users===0,i=ke(n);return n.listeners.add(s),r&&ve(n,"check").catch(()=>{}),()=>{n.listeners.delete(s),i()}},connect:async()=>{const s=Ce(t,e),n=ke(s);try{await ve(s,"start")}catch{}finally{n()}},retry:async()=>{const s=Ce(t,e),n=ke(s);try{await ve(s,"check")}catch{}finally{n()}}}}async function Ve(t,e){const s=Ce(t,e),n=ke(s);try{try{await ve(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 Rs(t,e,s){const n=Ce(t,e),r=ke(n);try{try{await ve(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 ft(t,e){return oe.get(JSON.stringify([t,e]))?.generation}function Fn(t,e,s){const n=oe.get(JSON.stringify([t,e]));return s!==void 0&&n?.generation===s&&n.snapshot.phase==="connected"}async function Ds(t,e){const s=Ce(t,e),n=ke(s);try{return await ve(s,"start")}finally{n()}}function Mn(t,e){const s=Ce(t,e);if(s.stop)return s.stop;const n=ke(s),r=Promise.resolve().then(()=>N.StopConnection(t,e)).then(i=>(Ie(s,{phase:"disconnected",connection:i}),i),i=>{throw Ie(s,Ln(i,s.snapshot.connection)),i}).finally(()=>{s.stop=void 0,n()});return s.stop=r,Ie(s,{phase:"disconnected",message:"Disconnecting. Wait for the connection to stop before reconnecting.",connection:s.snapshot.connection}),r}function un(t,e,s=!1){const n=oe.get(JSON.stringify([t,e]));n&&(Ie(n,{phase:s?"not-found":"checking",connection:s?void 0:n.snapshot.connection}),!s&&n.users&&ve(n,"check").catch(()=>{}))}function Tt(t){if(!t.applied)throw new Error("Connection profile was not applied");return t}const ks=t=>{const e=F.c(91),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s),a=k.useQueryClient(),{showSnackbar:l}=ce();let c;e[0]!==n||e[1]!==o?(c=[o,"connection","detail",n],e[0]=n,e[1]=o,e[2]=c):c=e[2];const u=c;let d;e[3]!==o||e[4]!==a?(d=async()=>{await Promise.all([a.invalidateQueries({queryKey:[o,"connection"]}),a.invalidateQueries({queryKey:be.all(o)}),a.invalidateQueries({queryKey:[o,"resource-v2","editor-schemas"]})])},e[3]=o,e[4]=a,e[5]=d):d=e[5];const f=d;let p;e[6]!==n||e[7]!==f||e[8]!==o?(p=async()=>{un(o,n),await f()},e[6]=n,e[7]=f,e[8]=o,e[9]=p):p=e[9];const g=p;let m;e[10]!==n||e[11]!==o?(m=()=>Ds(o,n),e[10]=n,e[11]=o,e[12]=m):m=e[12];let h;e[13]!==l?(h=te(l,"Failed to start connection"),e[13]=l,e[14]=h):h=e[14];let y;e[15]!==f||e[16]!==m||e[17]!==h?(y={mutationFn:m,onSuccess:f,onError:h},e[15]=f,e[16]=m,e[17]=h,e[18]=y):y=e[18];const{mutateAsync:v}=k.useMutation(y);let b;e[19]!==n||e[20]!==o?(b=()=>Mn(o,n),e[19]=n,e[20]=o,e[21]=b):b=e[21];let S;e[22]!==l?(S=te(l,"Failed to stop connection"),e[22]=l,e[23]=S):S=e[23];let E;e[24]!==f||e[25]!==b||e[26]!==S?(E={mutationFn:b,onSuccess:f,onError:S},e[24]=f,e[25]=b,e[26]=S,e[27]=E):E=e[27];const{mutateAsync:x}=k.useMutation(E);let w;e[28]!==o?(w=ye=>{const{connection:xe,credentials:Oe}=ye;return N.SaveConnectionProfile(o,xe,Oe).then(Tt)},e[28]=o,e[29]=w):w=e[29];let C,R;e[30]!==l?(C=()=>{l("Connection profile saved","success")},R=te(l,"Failed to save connection profile"),e[30]=l,e[31]=C,e[32]=R):(C=e[31],R=e[32]);let D;e[33]!==g||e[34]!==w||e[35]!==C||e[36]!==R?(D={mutationFn:w,onSuccess:C,onError:R,onSettled:g},e[33]=g,e[34]=w,e[35]=C,e[36]=R,e[37]=D):D=e[37];const{mutateAsync:q}=k.useMutation(D);let A;e[38]!==q?(A=(ye,xe)=>q({connection:ye,credentials:xe}),e[38]=q,e[39]=A):A=e[39];const $=A;let _;e[40]!==n||e[41]!==o?(_=()=>N.ImportConnectionProfile(o,n).then(Tt),e[40]=n,e[41]=o,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]!==g||e[47]!==_||e[48]!==P||e[49]!==T?(j={mutationFn:_,onSuccess:P,onError:T,onSettled:g},e[46]=g,e[47]=_,e[48]=P,e[49]=T,e[50]=j):j=e[50];const{mutateAsync:L}=k.useMutation(j);let M;e[51]!==n||e[52]!==o?(M=()=>N.ResetConnectionProfile(o,n).then(Tt),e[51]=n,e[52]=o,e[53]=M):M=e[53];let U,W;e[54]!==l?(U=()=>{l("Connection profile reset","success")},W=te(l,"Failed to reset connection profile"),e[54]=l,e[55]=U,e[56]=W):(U=e[55],W=e[56]);let V;e[57]!==g||e[58]!==M||e[59]!==U||e[60]!==W?(V={mutationFn:M,onSuccess:U,onError:W,onSettled:g},e[57]=g,e[58]=M,e[59]=U,e[60]=W,e[61]=V):V=e[61];const{mutateAsync:z}=k.useMutation(V);let H;e[62]!==n||e[63]!==o?(H=()=>N.RemoveConnection(o,n),e[62]=n,e[63]=o,e[64]=H):H=e[64];let K;e[65]!==n||e[66]!==o||e[67]!==l?(K=()=>{un(o,n,!0),l("Connection disabled","success")},e[65]=n,e[66]=o,e[67]=l,e[68]=K):K=e[68];let Y;e[69]!==l?(Y=te(l,"Failed to disable connection"),e[69]=l,e[70]=Y):Y=e[70];let ee;e[71]!==f||e[72]!==H||e[73]!==K||e[74]!==Y?(ee={mutationFn:H,onSuccess:K,onError:Y,onSettled:f},e[71]=f,e[72]=H,e[73]=K,e[74]=Y,e[75]=ee):ee=e[75];const{mutateAsync:ae}=k.useMutation(ee);let fe;e[76]!==n||e[77]!==o?(fe=()=>N.GetConnection(o,n),e[76]=n,e[77]=o,e[78]=fe):fe=e[78];const we=i&&!!n;let Se;e[79]!==u||e[80]!==fe||e[81]!==we?(Se={queryKey:u,queryFn:fe,enabled:we},e[79]=u,e[80]=fe,e[81]=we,e[82]=Se):Se=e[82];const _e=k.useQuery(Se);let he;return e[83]!==_e||e[84]!==L||e[85]!==ae||e[86]!==z||e[87]!==$||e[88]!==v||e[89]!==x?(he={connection:_e,startConnection:v,stopConnection:x,saveConnectionProfile:$,importConnectionProfile:L,resetConnectionProfile:z,removeConnection:ae},e[83]=_e,e[84]=L,e[85]=ae,e[86]=z,e[87]=$,e[88]=v,e[89]=x,e[90]=he):he=e[90],he},jn=t=>[t,"connection","list"],Os=t=>{const e=F.c(17),{plugin:s}=t,n=Q(s),r=k.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=jn(n),e[0]=n,e[1]=o):o=e[1];const a=o;let l;e[2]!==r||e[3]!==a?(l=h=>{const y=h.data;console.log("got update to connections",y),r.setQueryData(a,y)},e[2]=r,e[3]=a,e[4]=l):l=e[4];const c=l;let u,d;e[5]!==c||e[6]!==n?(u=()=>{const h=G.On(`${n}/connection/sync`,c);return()=>{h()}},d=[n,c],e[5]=c,e[6]=n,e[7]=u,e[8]=d):(u=e[7],d=e[8]),I.useEffect(u,d);let f;e[9]!==n||e[10]!==i?(f=async()=>{try{return await N.ListConnections(n)}catch(h){const y=h;console.log(y),te(i,"Failed to load connections")(y)}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:k.keepPreviousData},e[12]=a,e[13]=f,e[14]=p):p=e[14];const g=k.useQuery(p);let m;return e[15]!==g?(m={connections:g},e[15]=g,e[16]=m):m=e[16],m},Ns={phase:"checking"},Ts={getSnapshot:()=>Ns,subscribe:()=>()=>{},connect:async()=>{},retry:async()=>{}};function ne(t){const e=F.c(8),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s);let a;e[0]!==n||e[1]!==i||e[2]!==o?(a=i?je(o,n):Ts,e[0]=n,e[1]=i,e[2]=o,e[3]=a):a=e[3];const l=a,c=I.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 se(t,e){const s=k.useQueryClient();return I.useCallback(async(n,r,i,o=e)=>{const a=o,l=ft(t,a),c=()=>l!==void 0&&Fn(t,a,l);if(r.aborted||!c())throw new k.CancelledError({revert:!0});let u,d=!1,f=!1;const p=()=>{u&&"cancel"in u&&typeof u.cancel=="function"&&Promise.resolve(u.cancel()).catch(h=>{console.error("Failed to cancel resource query",h)}),m()},g=je(t,a).subscribe(()=>{c()||(d=!0,s.cancelQueries({queryKey:n,exact:!0}).catch(h=>{console.error("Failed to cancel invalidated resource query",h)}))}),m=()=>{f||(f=!0,g())};r.addEventListener("abort",p,{once:!0});try{if(r.aborted||d||!c())throw new k.CancelledError({revert:!0});u=i();const h=await u;if(r.aborted||d||!c())throw new k.CancelledError({revert:!0});return h}finally{r.removeEventListener("abort",p),m()}},[t,e,s])}const Ps=t=>{const e=F.c(20),{pluginID:s,route:n,dimension:r,enabled:i}=t,o=i===void 0?!0:i,a=Q(s),l=o&&!!r;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=se(a,n.connection),f=o&&!!a&&!!n.connection&&!!r&&u.phase==="connected";let p;e[4]!==r||e[5]!==a||e[6]!==n?(p=[a,"resource-v2","scope-values",n,r],e[4]=r,e[5]=a,e[6]=n,e[7]=p):p=e[7];let g;e[8]!==r||e[9]!==d||e[10]!==a||e[11]!==f||e[12]!==n?(g=f?v=>{const{signal:b,queryKey:S}=v;return d(S,b,()=>N.ScopeValues(a,n,r))}:k.skipToken,e[8]=r,e[9]=d,e[10]=a,e[11]=f,e[12]=n,e[13]=g):g=e[13];let m;e[14]!==f||e[15]!==p||e[16]!==g?(m={queryKey:p,queryFn:g,enabled:f},e[14]=f,e[15]=p,e[16]=g,e[17]=m):m=e[17];const h=k.useQuery(m);let y;return e[18]!==h?(y={values:h},e[18]=h,e[19]=y):y=e[19],y};function Mt(t){const e=Object.values(t.states),s=e.length,n=e.filter(o=>o==="following"||o==="finished").length,r=e.filter(o=>o==="failed").length,i=e.filter(o=>o==="following"||o==="finished"||o==="failed"||o==="closed").length;return{pluginID:t.pluginID,connectionID:t.connectionID,totalResources:s,trackedTotal:s,syncedCount:n,errorCount:r,doneCount:i,progress:s?i/s:0}}function pt(t){return t.trackedTotal>0&&t.doneCount>=t.trackedTotal}function $n(t){return t.some(e=>!pt(e))}function Un(t){const e=t.reduce((s,n)=>s+n.trackedTotal,0);return e?t.reduce((s,n)=>s+n.doneCount,0)/e:0}function Zt(t,e){return JSON.stringify([t,e.route.connection])}function jt(t,e,s){const n=Zt(e,s);let r=t.get(n);return r||(r={states:{},pluginID:e,connectionID:s.route.connection},t.set(n,r)),r.states[s.type]=s.status.state,r}function As(){const[t,e]=I.useState(new Map),s=I.useRef(t),n=I.useRef(new Map),r=I.useRef(new Map),[i,o]=I.useState(!0),[a,l]=I.useState(),c=I.useRef({generation:0}),[u,d]=I.useState({}),[f,p]=I.useState(new Map),g=I.useRef(new Map),[m,h]=I.useState(new Map);I.useEffect(()=>{const _=G.On("plugin/crash_recovery_failed",T=>{const j=T.data,L=j?.pluginID;L&&h(M=>{const U=new Map(M);return U.set(L,j.error??"Crash recovery failed"),U})}),P=G.On("plugin/recovered",T=>{const L=T.data?.pluginID;L&&h(M=>{if(!M.has(L))return M;const U=new Map(M);return U.delete(L),U})});return()=>{_(),P()}},[]);const y=I.useCallback(async()=>{const _=++c.current.generation;n.current.clear(),r.current.clear();let P;try{P=N.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[U,W]of Object.entries(T))if(W){j[U]=W.map(V=>V.connection);for(const V of W){const z=JSON.stringify([U,V.connection.id]),H=n.current.get(z)??{readiness:V.readiness,readinessError:V.readinessError};if(L.set(z,H),H.readiness!=="CONNECTED")continue;const K={pluginID:U,connectionID:V.connection.id,states:{}};if(V.resources)for(const[Y,ee]of Object.entries(V.resources))K.states[Y]=ee;Object.assign(K.states,r.current.get(z)?.states),g.current.set(z,K),M.set(z,Mt(K))}}d(j);for(const[U,W]of n.current)L.set(U,W);s.current=L,e(L),p(M)}).catch(T=>{_===c.current.generation&&l(ie(T))}).finally(()=>{_===c.current.generation&&o(!1)})},[]),v=I.useCallback(async()=>{o(!0),l(void 0),await y()},[y]);I.useEffect(()=>{const _=c.current;return y().catch(P=>{console.error("Connection status refresh failed:",P)}),()=>{++_.generation}},[y]),I.useEffect(()=>{let _=!0,P=0;const T=G.On("connection/status",j=>{const L=j.data,M=JSON.stringify([L.pluginID,L.connectionID]),U=L.status==="DISCONNECTED"||L.status==="PENDING"||L.status==="CONNECTED"||L.status==="FAILED"?L.status:"UNKNOWN",W={readiness:U};n.current.set(M,W);const V=new Map(s.current);V.set(M,W),s.current=V,e(V),U!=="CONNECTED"&&(p(K=>{const Y=new Map(K);return Y.delete(M),Y}),g.current.delete(M),r.current.delete(M));const z=++P,H=c.current.generation;N.ListAllConnections().then(K=>{if(!_||z!==P||H!==c.current.generation||!K)return;const Y={};for(const[ee,ae]of Object.entries(K))ae!=null&&(Y[ee]=ae);d(Y)}).catch(K=>{_&&z===P&&H===c.current.generation&&console.error("Connection metadata refresh failed:",K)})});return()=>{_=!1,T()}},[]);const b=I.useCallback(_=>{const P=_.data,T=Zt(P.pluginID,P);if(s.current.get(T)?.readiness!=="CONNECTED")return;const j=jt(g.current,P.pluginID,P);jt(r.current,P.pluginID,P);const L=Mt(j);p(M=>{const U=new Map(M);return U.set(T,L),U})},[]);I.useEffect(()=>G.On("source/STATE",b),[b]);const S=I.useCallback(async(_,P)=>{await Mn(_,P)},[]),E=I.useCallback(async(_,P)=>{s.current.get(JSON.stringify([_,P]))?.readiness==="CONNECTED"&&await N.RetryConnectionSources(_,{connection:P})},[]),x=I.useCallback(async _=>{const P=m.get(_);h(T=>{if(!T.has(_))return T;const j=new Map(T);return j.delete(_),j});try{await N.RetryFailedPlugin(_)}catch(T){throw h(j=>{const L=new Map(j);return L.set(_,P??"Reload failed"),L}),T}},[m]),w=[],C=new Set(t.keys());for(const[_,P]of Object.entries(u))for(const T of P)C.add(JSON.stringify([_,T.id]));for(const _ of C){const[P,T]=JSON.parse(_),L=(u[P]??[]).find(H=>H.id===T),M=t.get(_)??{readiness:"UNKNOWN"},U=M.readiness==="CONNECTED"?f.get(_):void 0,W=U!=null&&!pt(U),V=U!=null&&U.errorCount>0,z=m.get(P);w.push({pluginID:P,connectionID:T,name:L?.name??T,avatar:L?.avatar??"",readiness:M.readiness,readinessError:M.readinessError,sync:U,isSyncing:W,hasErrors:V||z!=null||M.readiness==="FAILED"||M.readinessError!=null,pluginFailed:z!=null,pluginError:z})}const R=new Map;for(const _ of w){const P=R.get(_.pluginID)??[];P.push(_),R.set(_.pluginID,P)}const D=w.flatMap(_=>_.sync?[_.sync]:[]),q=w.filter(_=>_.isSyncing),A=w.filter(_=>_.hasErrors),$=w.filter(_=>_.pluginFailed);return{isLoading:i,error:a,refresh:v,entries:w,grouped:R,connectedCount:w.filter(_=>_.readiness==="CONNECTED").length,syncingCount:q.length,errorCount:A.length,failedCount:$.length,hasSyncing:$n(D),aggregateProgress:Un(D),disconnect:S,retrySources:E,retryPlugin:x}}function qs(t){const e=F.c(9),{pluginID:s}=t,n=Q(s);let r,i;e[0]!==n?(r=[n,"connection","profiles"],i=u=>{const{signal:d}=u;d.throwIfAborted();const f=N.ListConnectionProfiles(n),p=()=>{f.cancel()};return d.addEventListener("abort",p,{once:!0}),f.finally(()=>d.removeEventListener("abort",p))},e[0]=n,e[1]=r,e[2]=i):(r=e[1],i=e[2]);const o=!!n;let a;e[3]!==r||e[4]!==i||e[5]!==o?(a={queryKey:r,queryFn:i,enabled:o,retry:!1},e[3]=r,e[4]=i,e[5]=o,e[6]=a):a=e[6];const l=k.useQuery(a);let c;return e[7]!==l?(c={profiles:l},e[7]=l,e[8]=c):c=e[8],c}const Ls={display:"flex",alignItems:"center",justifyContent:"center",minHeight:240,height:"100%",padding:24,boxSizing:"border-box",color:"var(--ov-color-fg-default)"},Fs={width:"100%",maxWidth:560,minWidth:0,display:"flex",flexDirection:"column",gap:16},Ms={display:"flex",alignItems:"center",gap:12},js={margin:0,fontSize:"1.125rem",fontWeight:600},$s={display:"flex",flexWrap:"wrap",gap:8},Pt={margin:0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},Us={width:20,height:20,flexShrink:0},Qs={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 Qn(t){const e=F.c(44),{state:s,connectionName:n,connectionDetails:r,onEditConnection:i,onBack:o,backLabel:a}=t,l=a===void 0?"Back to connections":a,c=I.useId();if(s.phase==="connected")return null;const u=s.phase==="checking"||s.phase==="connecting",d=Qs[s.phase],f=n??s.connection?.name;let p;e[0]!==r||e[1]!==f?(p=r??(f&&O.jsx(B.Text,{size:"sm",tone:"muted",style:Pt,children:f})),e[0]=r,e[1]=f,e[2]=p):p=e[2];let g;e[3]!==u?(g=u&&O.jsx(B.Spinner,{style:Us,"aria-hidden":"true"}),e[3]=u,e[4]=g):g=e[4];let m;e[5]!==c||e[6]!==d.title?(m=O.jsx("h2",{id:c,style:js,children:d.title}),e[5]=c,e[6]=d.title,e[7]=m):m=e[7];let h;e[8]!==g||e[9]!==m?(h=O.jsxs("div",{style:Ms,role:"status","aria-live":"polite",children:[g,m]}),e[8]=g,e[9]=m,e[10]=h):h=e[10];let y;e[11]!==d.description?(y=O.jsx(B.Text,{as:"p",size:"sm",tone:"muted",style:Pt,children:d.description}),e[11]=d.description,e[12]=y):y=e[12];let v;e[13]!==u||e[14]!==s.message?(v=s.message&&O.jsx(B.Text,{as:"p",size:"sm",style:Pt,role:u?"status":"alert",children:s.message}),e[13]=u,e[14]=s.message,e[15]=v):v=e[15];let b;e[16]!==u||e[17]!==s?(b=s.phase!=="not-found"&&O.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]=b):b=e[18];const S=s.phase==="checking";let E;e[19]!==s?(E=()=>{s.retry()},e[19]=s,e[20]=E):E=e[20];let x;e[21]!==E||e[22]!==S?(x=O.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",disabled:S,onClick:E,children:"Retry check"}),e[21]=E,e[22]=S,e[23]=x):x=e[23];let w;e[24]!==i?(w=i&&O.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",onClick:i,children:"Edit connection"}),e[24]=i,e[25]=w):w=e[25];let C;e[26]!==l||e[27]!==o?(C=o&&O.jsx(B.Button,{size:"sm",variant:"outline",color:"neutral",onClick:o,children:l}),e[26]=l,e[27]=o,e[28]=C):C=e[28];let R;e[29]!==x||e[30]!==w||e[31]!==C||e[32]!==b?(R=O.jsxs("div",{style:$s,children:[b,x,w,C]}),e[29]=x,e[30]=w,e[31]=C,e[32]=b,e[33]=R):R=e[33];let D;e[34]!==R||e[35]!==p||e[36]!==h||e[37]!==y||e[38]!==v?(D=O.jsxs("div",{style:Fs,children:[p,h,y,v,R]}),e[34]=R,e[35]=p,e[36]=h,e[37]=y,e[38]=v,e[39]=D):D=e[39];let q;return e[40]!==u||e[41]!==c||e[42]!==D?(q=O.jsx("section",{style:Ls,"aria-labelledby":c,"aria-busy":u,children:D}),e[40]=u,e[41]=c,e[42]=D,e[43]=q):q=e[43],q}function Ks(t){const e=F.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 a=ne(o);if(a.phase!=="connected"){let c;return e[3]!==n||e[4]!==i||e[5]!==a?(c=i?i(a):O.jsx(Qn,{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]!==r?(l=O.jsx(O.Fragment,{children:r}),e[7]=r,e[8]=l):l=e[8],l}function Gs(t){const e=F.c(7),s=Q(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=I.createElement(Ks,{...t,pluginID:s,key:n}),e[3]=s,e[4]=t,e[5]=n,e[6]=r):r=e[6],r}const Je={supported:void 0,transportAvailable:!1,isLoading:!1},Le=new Map;let At,dn=0;function me(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 Fe(t,e){let s=Le.get(t);s||(s={retired:new Set,connections:new Map},Le.set(t,s));let n=s.connections.get(e);return n||(n={pluginID:t,connectionID:e,state:Je,listeners:new Set,epoch:0,eventVersion:0},s.connections.set(e,n)),n}function Bs(t){return t&&/^[0-9]+$/.test(t)?BigInt(t):void 0}function Kn(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)&&Kn(s[i],n[i]))}function Ws(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))Kn(t.entries[r],s[r])?s[r]=t.entries[r]:n=!1;return{...e,entries:n?t.entries:s}}function Gn(t,e){const s=Le.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,me(i,{...Je,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,a=Bs(t.snapshot?.revision??t.revision);if(a!==void 0&&(i.revision===void 0||a>i.revision)&&(i.revision=a,me(i,{snapshot:t.removed?void 0:t.snapshot?Ws(i.state.snapshot,t.snapshot):i.state.snapshot})),!t.transportAvailable){i.epoch++,i.pending=void 0,me(i,{supported:t.supported,transportAvailable:!1,isLoading:!1});continue}if(n===void 0){me(i,{supported:t.supported,transportAvailable:!t.supported}),t.supported&&i.listeners.size?ot(i,!1):me(i,{isLoading:!1,error:void 0});continue}me(i,{supported:t.supported,transportAvailable:!e||o,isLoading:!1,error:void 0}),e&&!o&&i.listeners.size&&ot(i,!1)}}function ot(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;me(t,{isLoading:!0,error:void 0});const r=e?N.RefreshConnectionMetadata:N.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 a=o.snapshot?.connectionID??o.connectionID;a!==void 0&&a!==t.connectionID||Gn({...o,connectionID:t.connectionID},!1)}).catch(o=>{t.epoch===s&&t.eventVersion===n&&t.listeners.size&&me(t,{error:o,isLoading:!1})}).finally(()=>{t.pending===i&&(t.pending=void 0),t.epoch===s&&t.listeners.size&&me(t,{isLoading:!1})});return e||(t.pending=i),i}function en(t,e){return t.listeners.add(e),dn++===0&&(At=G.On("resource/connection/metadata",s=>Gn(s.data,!0))),t.listeners.size===1&&ot(t,!1),()=>{t.listeners.delete(e),t.listeners.size||(t.epoch++,t.pending=void 0,Le.get(t.pluginID)?.connections.delete(t.connectionID)),--dn===0&&(At?.(),At=void 0,Le.clear())}}function zs(t,e){const s=F.c(15),n=Q(t),r=n!==void 0&&e!==void 0;let i;s[0]!==e||s[1]!==r||s[2]!==n?(i=p=>r?en(Fe(n,e),p):Js,s[0]=e,s[1]=r,s[2]=n,s[3]=i):i=s[3];const o=i;let a;s[4]!==e||s[5]!==r||s[6]!==n?(a=()=>r?Fe(n,e).state:Je,s[4]=e,s[5]=r,s[6]=n,s[7]=a):a=s[7];const l=a,c=I.useSyncExternalStore(o,l,Vs);let u;s[8]!==e||s[9]!==r||s[10]!==n?(u=()=>{const p=r?Le.get(n)?.connections.get(e):void 0;return p?ot(p,!0):Promise.resolve()},s[8]=e,s[9]=r,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 Vs(){return Je}function Js(){}function Hs(t,e){const s=JSON.parse(e);let n=new Map;return{subscribe(r){const i=s.map(o=>en(Fe(t,o),r));return()=>i.forEach(o=>o())},read(){const r=s.map(i=>Fe(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 Xs(t,e){const s=F.c(5),n=Q(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=Hs(n,i),s[2]=i,s[3]=n,s[4]=o):o=s[4];const a=o;return I.useSyncExternalStore(a.subscribe,a.read,a.read)}function Ys(t,e,s){let n,r;return{read(){const i=e===void 0?Je:Fe(t,e).state;return n!==i&&(r=s(i),n=i),r}}}function Zs(t,e,s){const n=F.c(7),r=Q(t);let i;n[0]!==e||n[1]!==r?(i=c=>e===void 0?er:en(Fe(r,e),c),n[0]=e,n[1]=r,n[2]=i):i=n[2];const o=i;let a;n[3]!==e||n[4]!==r||n[5]!==s?(a=Ys(r,e,s),n[3]=e,n[4]=r,n[5]=s,n[6]=a):a=n[6];const l=a;return I.useSyncExternalStore(o,l.read,l.read)}function er(){}function tr(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 nr(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 sr(t,e,s){const n=F.c(29),r=Q(t),i=k.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 a=o;let l;n[3]!==s||n[4]!==e||n[5]!==r?(l=async()=>{const S=await N.Get(r,e);return S==null?s:nr(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]=r,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=k.useQuery(c);let d;n[10]!==e||n[11]!==r?(d=async S=>{await N.Set(r,e,S)},n[10]=e,n[11]=r,n[12]=d):d=n[12];let f,p,g;n[13]!==i||n[14]!==a?(f=async S=>{await i.cancelQueries({queryKey:a});const E=i.getQueryData(a);return i.setQueryData(a,S),{previous:E}},p=(S,E,x)=>{x?.previous!==void 0&&i.setQueryData(a,x.previous)},g=()=>{i.invalidateQueries({queryKey:a})},n[13]=i,n[14]=a,n[15]=f,n[16]=p,n[17]=g):(f=n[15],p=n[16],g=n[17]);let m;n[18]!==d||n[19]!==f||n[20]!==p||n[21]!==g?(m={mutationFn:d,onMutate:f,onError:p,onSettled:g},n[18]=d,n[19]=f,n[20]=p,n[21]=g,n[22]=m):m=n[22];const h=k.useMutation(m),y=u.data??s;let v;n[23]!==h?(v=async S=>{await h.mutateAsync(S)},n[23]=h,n[24]=v):v=n[24];let b;return n[25]!==u.isLoading||n[26]!==y||n[27]!==v?(b={data:y,update:v,isLoading:u.isLoading},n[25]=u.isLoading,n[26]=y,n[27]=v,n[28]=b):b=n[28],b}const rr=()=>{const t=I.useContext(Cn);if(!t)throw new Error("useRightDrawer must be used within a RightDrawerProvider");return t},tn=()=>{const t=I.useContext(En);if(t===void 0)throw new Error("useBottomDrawer must be used within a BottomDrawerProvider");return t},or=({pluginID:t})=>{const e=Q(t),{showSnackbar:s}=ce(),{createTab:n,updateTab:r}=tn();return{createSession:k.useMutation({mutationFn:async({connectionID:o,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:o,opts:{...c},recovery:u}});const f=at.SessionOptions.createFrom({command:["/bin/bash"],tty:!0,...c});try{const p=await N.CreateSession(e,o,f);if(!p)throw new Error("Failed to create session: null response");return r({id:d},{id:p.id,title:l??`Session ${p.id.substring(0,8)}`,properties:{status:"connected",pluginID:e,connectionID:o,opts:{...c},recovery:u}}),p}catch(p){const g=ie(p);return r({id:d},{properties:{status:"error",error:g.detail,pluginID:e,connectionID:o,opts:{...c},recovery:u,errorInfo:{title:g.title||"Session error",suggestion:g.detail,raw:g.detail}}}),qe(s,p,"Failed to start session"),null}}}).mutateAsync}};function ir(t){const e=F.c(29),{pluginID:s,resourceKey:n}=t,r=Q(s),{showSnackbar:i}=ce(),o=k.useQueryClient();let a;e[0]!==r||e[1]!==n?(a=["exec","native-launch",r,n],e[0]=r,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=k.useIsMutating(c)>0;let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d={queryKey:["exec","native-terminal-support"],queryFn:N.GetNativeTerminalSupport,staleTime:1/0,retry:!1},e[5]=d):d=e[5];const f=k.useQuery(d);let p,g;e[6]!==r||e[7]!==n?(p=["executions",r,n,"actions"],g=async()=>({exec:await N.GetHandler(r,n)}),e[6]=r,e[7]=n,e[8]=p,e[9]=g):(p=e[8],g=e[9]);const m=!!n&&f.data===!0;let h;e[10]!==p||e[11]!==g||e[12]!==m?(h={queryKey:p,queryFn:g,enabled:m,retry:!1},e[10]=p,e[11]=g,e[12]=m,e[13]=h):h=e[13];const y=k.useQuery(h),v=f.isSuccess&&f.data===!0&&y.isSuccess&&y.data.exec?.supports_native_command===!0;let b;e[14]!==r||e[15]!==i?(b=async R=>{const{connectionID:D,opts:q}=R;try{return await N.OpenNativeSession(r,D,at.SessionOptions.createFrom({tty:!0,...q})),!0}catch(A){return qe(i,A,"Failed to open native terminal"),!1}},e[14]=r,e[15]=i,e[16]=b):b=e[16];let S;e[17]!==l||e[18]!==b?(S={mutationKey:l,mutationFn:b,retry:!1},e[17]=l,e[18]=b,e[19]=S):S=e[19];const{mutateAsync:E}=k.useMutation(S);let x;e[20]!==v||e[21]!==E||e[22]!==l||e[23]!==o?(x=async R=>!v||o.isMutating({mutationKey:l,exact:!0})>0?!1:E(R),e[20]=v,e[21]=E,e[22]=l,e[23]=o,e[24]=x):x=e[24];const w=x;let C;return e[25]!==u||e[26]!==v||e[27]!==w?(C={openNativeSession:w,isSupported:v,isPending:u},e[25]=u,e[26]=v,e[27]=w,e[28]=C):C=e[28],C}const cr=t=>{const e=F.c(15),{pluginID:s}=t,n=Q(s),{showSnackbar:r}=ce(),{createTab:i}=tn();let o;e[0]!==i||e[1]!==n?(o=async g=>{const{connectionID:m,resourceKey:h,resourceID:y,resourceData:v,reference:b,route:S,icon:E,label:x,target:w,follow:C,tailLines:R,params:D}=g,$={resource_key:h,resource_id:y,resource_data:v,reference:b,route:S,options:{target:w??"",follow:C===void 0?!0:C,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 N.CreateSession$1(n,m,$);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:E??"LuLogs"}),_},e[0]=i,e[1]=n,e[2]=o):o=e[2];let a;e[3]!==r?(a=te(r,"Failed to start log session"),e[3]=r,e[4]=a):a=e[4];let l;e[5]!==o||e[6]!==a?(l={mutationFn:o,onError:a},e[5]=o,e[6]=a,e[7]=l):l=e[7];const c=k.useMutation(l);let u;e[8]!==r?(u=te(r,"Failed to close log session"),e[8]=r,e[9]=u):u=e[9];let d;e[10]!==u?(d={mutationFn:ar,onError:u},e[10]=u,e[11]=d):d=e[11];const f=k.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 ar(t){await N.CloseSession(t)}const lr=()=>{const t=F.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e={queryKey:["metric","providers"],queryFn:N.GetProviders,staleTime:3e4},t[0]=e):e=t[0],k.useQuery(e)},Bn=t=>{const e=F.c(7);let s,n;e[0]!==t?(s=["metric","providers",t],n=()=>N.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],k.useQuery(i)},ur=t=>{const e=F.c(45),{connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i,resourceData:o,reference:a,route:l,params:c,metricIDs:u,shape:d,timeRange:f,refreshInterval:p,enabled:g}=t,m=i===void 0?"":i;let h;e[0]!==u?(h=u===void 0?[]:u,e[0]=u,e[1]=h):h=e[1];const y=h,v=d===void 0?0:d,b=p===void 0?0:p,S=g===void 0?!0:g,{data:E,isLoading:x}=Bn(n);let w;e[2]!==E?(w=E??[],e[2]=E,e[3]=w):w=e[3];const C=w,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 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]!==y||e[10]!==c||e[11]!==a||e[12]!==r||e[13]!==n||e[14]!==m||e[15]!==l||e[16]!==v||e[17]!==D||e[18]!==q?(A=["metric","query",s,n,r,m,a,l,c,y,v,D,q],e[8]=s,e[9]=y,e[10]=c,e[11]=a,e[12]=r,e[13]=n,e[14]=m,e[15]=l,e[16]=v,e[17]=D,e[18]=q,e[19]=A):A=e[19];let $;e[20]!==s||e[21]!==y||e[22]!==c||e[23]!==a||e[24]!==o||e[25]!==r||e[26]!==n||e[27]!==m||e[28]!==l||e[29]!==v||e[30]!==R||e[31]!==f?.end||e[32]!==f?.start?($=async()=>{const V=await N.QueryAll(s,{resource_key:n,resource_id:r,resource_namespace:m,resource_data:o,reference:a,route:l,params:c,metric_ids:y,shape:v,start_time:(f?.start??new Date(0)).toISOString(),end_time:(f?.end??new Date(0)).toISOString(),step:R}),z={};for(const[H,K]of Object.entries(V))K!=null&&(z[H]=K);return z},e[20]=s,e[21]=y,e[22]=c,e[23]=a,e[24]=o,e[25]=r,e[26]=n,e[27]=m,e[28]=l,e[29]=v,e[30]=R,e[31]=f?.end,e[32]=f?.start,e[33]=$):$=e[33];const _=S&&!!s&&!!n&&C.length>0,P=b>0?b:void 0;let T;e[34]!==$||e[35]!==_||e[36]!==P||e[37]!==A?(T={queryKey:A,queryFn:$,enabled:_,refetchInterval:P,staleTime:5e3,placeholderData:k.keepPreviousData},e[34]=$,e[35]=_,e[36]=P,e[37]=A,e[38]=T):T=e[38];const j=k.useQuery(T),L=j.data??void 0,M=x||j.isLoading,U=j.error;let W;return e[39]!==j.refetch||e[40]!==C||e[41]!==L||e[42]!==M||e[43]!==U?(W={data:L,providers:C,isLoading:M,error:U,refetch:j.refetch},e[39]=j.refetch,e[40]=C,e[41]=L,e[42]=M,e[43]=U,e[44]=W):W=e[44],W},dr=t=>{const{pluginID:e,connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i="",resourceData:o,reference:a,route:l,params:c,metricIDs:u=[],interval:d=1e4,enabled:f=!0}=t,p=Q(e),[g,m]=I.useState(null),[h,y]=I.useState(null),[v,b]=I.useState(!1),[S,E]=I.useState(null),x=I.useRef(null),w=I.useCallback(async()=>{if(!(!f||!p||!s||!n))try{const R=await N.Subscribe(p,s,{resource_key:n,resource_id:r,resource_namespace:i,resource_data:o,reference:a,route:l,params:c,metric_ids:u,interval:d*1e6});y(R),b(!0),E(null);const D=G.On(`core/metrics/data/${R}`,A=>{const $=A.data;try{const _=JSON.parse($);_.results&&(m(_.results),b(!0),E(null))}catch(_){console.error("Failed to parse metric stream data:",_)}}),q=G.On(`core/metrics/error/${R}`,A=>{const $=A.data;try{const _=JSON.parse($);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)}E(P),b(!1)}catch{E("Failed to parse metric stream error")}});x.current=()=>{D(),q()}}catch(R){E(R instanceof Error?R.message:String(R))}},[p,s,n,r,i,o,a,l,c,u,d,f]),C=I.useCallback(async()=>{if(h)try{await N.Unsubscribe(h)}catch(R){console.error("Failed to unsubscribe:",R)}x.current&&(x.current(),x.current=null),y(null),b(!1)},[h]);return I.useEffect(()=>()=>{h&&N.Unsubscribe(h).catch(console.error),x.current&&x.current()},[h]),{data:g,subscriptionID:h,isStreaming:v,error:S,start:w,stop:C}},De=["networker","portforward","all-sessions"];function fr(){const t=F.c(17),{showSnackbar:e}=ce(),s=k.useQueryClient();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:[...De],queryFn:hr,retry:!1},t[0]=n):n=t[0];const r=k.useQuery(n);let i,o;t[1]!==s?(i=()=>{const g=G.On("core/networker/portforward/created",()=>{s.invalidateQueries({queryKey:[...De]})}),m=G.On("core/networker/portforward/closed",()=>{s.invalidateQueries({queryKey:[...De]})});return()=>{g(),m()}},o=[s],t[1]=s,t[2]=i,t[3]=o):(i=t[2],o=t[3]),I.useEffect(i,o);let a;t[4]!==r.data?(a=r.data??[],t[4]=r.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:[...De]})},t[8]=s,t[9]=u):u=t[9];let d;t[10]!==c||t[11]!==u?(d={mutationFn:gr,onError:c,onSuccess:u},t[10]=c,t[11]=u,t[12]=d):d=t[12];const f=k.useMutation(d);let p;return t[13]!==l||t[14]!==f.mutateAsync||t[15]!==r?(p={sessions:r,activeSessions:l,closeSession:f.mutateAsync,openInBrowser:pr},t[13]=l,t[14]=f.mutateAsync,t[15]=r,t[16]=p):p=t[16],p}function pr(t){return gn.OpenURL(`http://localhost:${t}`)}async function gr(t){return N.ClosePortForwardSession(t)}async function hr(){return N.ListAllPortForwardSessions().catch(yr)}function yr(t){if(ie(t).detail.includes("not found"))return[];throw t}function mr(t){const e=F.c(36),{pluginID:s,connectionID:n,resourceID:r}=t,i=Q(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 a=o,{showSnackbar:l}=ce(),c=k.useQueryClient();let u;e[4]!==n||e[5]!==i||e[6]!==r||e[7]!==l?(u=async()=>N.FindPortForwardSessions(i,n,at.FindPortForwardSessionRequest.createFrom({resource_id:r,connection_id:n})).catch(w=>{const C=ie(w);return C.detail.includes("not found")?[]:(l({message:"Failed to fetch port forward sessions",status:"error",details:C.detail}),[])}),e[4]=n,e[5]=i,e[6]=r,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=k.useQuery(d);let p;e[12]!==n||e[13]!==i?(p=async w=>{const{opts:C}=w,R={local_port:C.localPort||0,remote_port:C.remotePort,protocol:C.protocol||"TCP",connection_type:"RESOURCE",connection:{resource_data:C.resource,reference:C.reference,route:C.route,connection_id:n,plugin_id:i,resource_id:C.resourceId,resource_key:C.resourceKey},labels:C.labels??{},params:C.parameters??{}},D=await N.StartResourcePortForwardingSession(i,n,R);if(!D)throw new Error("Failed to start port forwarding: null response");return C.openInBrowser&&gn.OpenURL(`http://localhost:${D.local_port}`),D},e[12]=n,e[13]=i,e[14]=p):p=e[14];let g;e[15]!==l?(g=te(l,"Failed to start port forwarding session"),e[15]=l,e[16]=g):g=e[16];let m;e[17]!==c||e[18]!==a?(m=async()=>{await Promise.all([c.invalidateQueries({queryKey:a}),c.invalidateQueries({queryKey:[...De]})])},e[17]=c,e[18]=a,e[19]=m):m=e[19];let h;e[20]!==p||e[21]!==g||e[22]!==m?(h={mutationFn:p,onError:g,onSuccess:m},e[20]=p,e[21]=g,e[22]=m,e[23]=h):h=e[23];const y=k.useMutation(h);let v;e[24]!==l?(v=te(l,"Failed to close port forwarding session"),e[24]=l,e[25]=v):v=e[25];let b;e[26]!==c||e[27]!==a?(b=async()=>{await Promise.all([c.invalidateQueries({queryKey:a}),c.invalidateQueries({queryKey:[...De]})])},e[26]=c,e[27]=a,e[28]=b):b=e[28];let S;e[29]!==v||e[30]!==b?(S={mutationFn:vr,onError:v,onSuccess:b},e[29]=v,e[30]=b,e[31]=S):S=e[31];const E=k.useMutation(S);let x;return e[32]!==E.mutateAsync||e[33]!==y.mutateAsync||e[34]!==f?(x={sessions:f,forward:y.mutateAsync,close:E.mutateAsync},e[32]=E.mutateAsync,e[33]=y.mutateAsync,e[34]=f,e[35]=x):x=e[35],x}async function vr(t){const{opts:e}=t;return N.ClosePortForwardSession(e.sessionID)}const br=()=>{const t=I.useContext(In);if(!t)throw new Error("useConfirmationModal must be used within a ConfirmationModalProvider");return t},wr=t=>{const e=F.c(31),{pluginID:s,request:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s),a=n?.request.route.connection??"",l=i&&!!n;let c;e[0]!==a||e[1]!==o||e[2]!==l?(c={pluginID:o,connectionID:a,enabled:l},e[0]=a,e[1]=o,e[2]=l,e[3]=c):c=e[3];const u=ne(c),d=se(o,a),f=k.useQueryClient(),{showSnackbar:p}=ce();let g;e[4]!==o||e[5]!==n?(g=be.resource(o,n),e[4]=o,e[5]=n,e[6]=g):g=e[6];const m=g,h=i&&!!n&&u.phase==="connected";let y;e[7]!==o||e[8]!==n?(y=async D=>{if(!n)throw new Error("Resource target is not resolved");return await Ve(o,n.request.route.connection),N.Mutate(o,{...D,route:n.request.route,reference:n.request.reference})},e[7]=o,e[8]=n,e[9]=y):y=e[9];let v;e[10]!==o||e[11]!==f?(v=async()=>{await f.invalidateQueries({queryKey:be.all(o)})},e[10]=o,e[11]=f,e[12]=v):v=e[12];let b;e[13]!==p?(b=te(p,"Failed to mutate resource"),e[13]=p,e[14]=b):b=e[14];let S;e[15]!==y||e[16]!==v||e[17]!==b?(S={mutationFn:y,onSuccess:v,onError:b},e[15]=y,e[16]=v,e[17]=b,e[18]=S):S=e[18];const{mutateAsync:E}=k.useMutation(S);let x;e[19]!==d||e[20]!==o||e[21]!==h||e[22]!==n?(x=h?D=>{const{signal:q,queryKey:A}=D;return d(A,q,()=>N.Get$1(o,n))}:k.skipToken,e[19]=d,e[20]=o,e[21]=h,e[22]=n,e[23]=x):x=e[23];let w;e[24]!==h||e[25]!==m||e[26]!==x?(w={queryKey:m,queryFn:x,retry:!1,enabled:h},e[24]=h,e[25]=m,e[26]=x,e[27]=w):w=e[27];const C=k.useQuery(w);let R;return e[28]!==E||e[29]!==C?(R={resource:C,mutate:E},e[28]=E,e[29]=C,e[30]=R):R=e[30],R},Sr=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 r;e[4]!==t?(r=async()=>N.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=k.useQuery(i);let a;return e[9]!==o?(a={component:o},e[9]=o,e[10]=a):a=e[10],a},Er=t=>{const e=F.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s);let a;e[0]!==i||e[1]!==o||e[2]!==n.connection?(a={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=a):a=e[3];const l=ne(a),c=se(o,n.connection),u=i&&!!o&&!!n.connection&&l.phase==="connected";let d;e[4]!==o||e[5]!==n?(d=[o,"resource-v2","groups",n],e[4]=o,e[5]=n,e[6]=d):d=e[6];let f;e[7]!==c||e[8]!==o||e[9]!==u||e[10]!==n?(f=u?h=>{const{signal:y,queryKey:v}=h;return c(v,y,()=>N.GetResourceGroups(o,n))}:k.skipToken,e[7]=c,e[8]=o,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 g=k.useQuery(p);let m;return e[16]!==g?(m={groups:g},e[16]=g,e[17]=m):m=e[17],m},Cr=t=>{const e=F.c(28),{pluginID:s,searches:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s);let a;e[0]!==i||e[1]!==n?(a=JSON.stringify(i?[...new Set(n.map(Ir))].sort():[]),e[0]=i,e[1]=n,e[2]=a):a=e[2];const l=a;let c;if(e[3]!==l||e[4]!==o){const v=JSON.parse(l);let b;e[6]!==o?(b=S=>[S,je(o,S)],e[6]=o,e[7]=b):b=e[7],c=new Map(v.map(b)),e[3]=l,e[4]=o,e[5]=c}else c=e[5];const u=c;let d,f;e[8]!==u?(d=()=>JSON.stringify([...u.values()].map(_r)),f=v=>{const b=[...u.values()].map(S=>S.subscribe(v));return()=>{for(const S of b)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 g=p;I.useSyncExternalStore(g.subscribe,g.getSnapshot,g.getSnapshot);const m=se(o,"");let h;if(e[15]!==i||e[16]!==m||e[17]!==o||e[18]!==g.stores||e[19]!==n){let v;e[21]!==i||e[22]!==m||e[23]!==o||e[24]!==g.stores?(v=b=>{const S=b.request.target.route.connection,E=i&&g.stores.get(S)?.getSnapshot().phase==="connected";return{queryKey:be.nativeQuery(o,b),queryFn:E?x=>{const{signal:w,queryKey:C}=x;return m(C,w,()=>N.NativeQuery(o,b),S)}:k.skipToken,retry:!1,enabled:E}},e[21]=i,e[22]=m,e[23]=o,e[24]=g.stores,e[25]=v):v=e[25],h=n.map(v),e[15]=i,e[16]=m,e[17]=o,e[18]=g.stores,e[19]=n,e[20]=h}else h=e[20];let y;return e[26]!==h?(y={queries:h},e[26]=h,e[27]=y):y=e[27],k.useQueries(y)};function Ir(t){return t.request.target.route.connection}function _r(t){return t.getSnapshot().phase}const xr=t=>{const e=F.c(21),{pluginID:s,route:n,type:r}=t,i=Q(s),o=!!r;let a;e[0]!==i||e[1]!==n.connection||e[2]!==o?(a={pluginID:i,connectionID:n.connection,enabled:o},e[0]=i,e[1]=n.connection,e[2]=o,e[3]=a):a=e[3];const l=ne(a),c=se(i,n.connection),u=!!i&&!!n.connection&&!!r&&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?y=>{const{signal:v,queryKey:b}=y;return c(b,v,()=>N.Catalog(i,{route:n}))}:k.skipToken,e[7]=c,e[8]=i,e[9]=u,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==r?(p=y=>y.types.find(v=>v.type===r),e[12]=r,e[13]=p):p=e[13];let g;e[14]!==u||e[15]!==d||e[16]!==f||e[17]!==p?(g={queryKey:d,queryFn:f,select:p,enabled:u,retry:!1},e[14]=u,e[15]=d,e[16]=f,e[17]=p,e[18]=g):g=e[18];const m=k.useQuery(g);let h;return e[19]!==m?(h={resourceType:m},e[19]=m,e[20]=h):h=e[20],h},Rr=t=>{const e=F.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s);let a;e[0]!==i||e[1]!==o||e[2]!==n.connection?(a={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=a):a=e[3];const l=ne(a),c=se(o,n.connection),u=i&&!!o&&!!n.connection&&l.phase==="connected";let d;e[4]!==o||e[5]!==n?(d=[o,"resource-v2","catalog",n],e[4]=o,e[5]=n,e[6]=d):d=e[6];let f;e[7]!==c||e[8]!==o||e[9]!==u||e[10]!==n?(f=u?h=>{const{signal:y,queryKey:v}=h;return c(v,y,()=>N.Catalog(o,{route:n}))}:k.skipToken,e[7]=c,e[8]=o,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:Dr,enabled:u,retry:!1},e[12]=u,e[13]=d,e[14]=f,e[15]=p):p=e[15];const g=k.useQuery(p);let m;return e[16]!==g?(m={resourceTypes:g},e[16]=g,e[17]=m):m=e[17],m};function Dr(t){return t.types}const $t=new Set;typeof window<"u"&&window.addEventListener("beforeunload",()=>{for(const t of $t)t.close()});async function Wn(t,e){const s=await N.OpenSourceView(t,e);let n={records:new Map,complete:!1},r,i,o,a=BigInt(0),l=!0,c=!1,u=!1,d=0,f,p,g=[];const m=new Set;function h(){if(f!==void 0||p!==void 0||c)return;const w=()=>{if(f=void 0,p=void 0,!c)for(const C of m)C()};typeof requestAnimationFrame=="function"?f=requestAnimationFrame(w):p=setTimeout(w,0)}function y(w,C){n={...n,...w,...C?{event:{kind:C,revision:++d}}:{}},h()}function v(w){c||u||(u=!0,y({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:w}}}))}function b(){if(c||u)return;r=void 0,l=!0;const w=Date.now();if(g=g.filter(C=>w-C<1e4),g.length>=3){v("Source view could not maintain a contiguous event sequence.");return}g.push(w),N.SyncSourceView(t,s.viewId).catch(C=>v(String(C)))}function S(w){if(c||u||w.viewId!==s.viewId)return;if(w.kind==="reset"){r=void 0,l=!0,y({},"reset"),w.reset?.reason==="closed"&&y({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(w.kind!=="snapshot"&&w.kind!=="snapshotEnd"||w.sequence!=="1"||!w.viewGeneration||w.viewGeneration===i||w.viewGeneration===o)return;i=w.viewGeneration,o=void 0,a=BigInt(0),r=new Map,l=!1}if(!/^[1-9][0-9]*$/.test(w.sequence)){o=w.viewGeneration,b();return}const C=BigInt(w.sequence);if(w.viewGeneration!==i||C!==a+BigInt(1)){o=w.viewGeneration,b();return}switch(a=C,w.kind){case"snapshot":if(!r){b();return}for(const R of w.records??[])r.set(R.key,R);break;case"snapshotEnd":if(!r||!w.status){b();return}y({records:r,viewGeneration:i,status:w.status,complete:!0},"snapshotEnd"),r=void 0;break;case"changes":{if(r){b();return}const R=new Map(n.records);for(const D of w.removes??[])R.delete(D.key);for(const D of w.upserts??[])R.set(D.key,D);y({records:R},"changes");break}case"status":if(r||!w.status){b();return}y({status:w.status});break;default:b()}}const E=G.On(s.topic,w=>S(w.data)),x={mode:s.mode,subscribe(w){return m.add(w),()=>{m.delete(w)}},getSnapshot(){return n},async refresh(){const w=u;u=!1,g=[];try{await N.RefreshSourceView(t,s.viewId)}catch(C){throw u=w,C}},close(){c||(c=!0,$t.delete(x),E(),f!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(f),clearTimeout(p),m.clear(),N.CloseSourceView(t,s.viewId).catch(()=>{}))}};$t.add(x);try{await N.SyncSourceView(t,s.viewId)}catch(w){throw x.close(),w}return x}const kr={getSnapshot:()=>{},subscribe:()=>()=>{}},it=new Map;function Or(t,e,s,n){let r=it.get(t);return r||(r={refs:0,client:Wn(e,{targetId:s.targetId,target:s.request.target,updates:n?"ifSupported":"none"})},it.set(t,r)),r.refs++,r}function Nr(t,e){--e.refs===0&&(it.get(t)===e&&it.delete(t),e.client.then(s=>s.close(),()=>{}))}function zn(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 Tr(t,e){let s,n;const r=new Promise((c,u)=>{s=c,n=u});let i=()=>{};const o=(c,u)=>{i(),e.removeEventListener("abort",a),c?n(c):s(u)},a=()=>o(new k.CancelledError({revert:!0})),l=()=>{const c=t.getSnapshot();c.status?.state==="failed"||c.status?.state==="closed"?o(c.status.error??new Error("Source view closed before its snapshot completed")):c.complete&&o(void 0,zn(c))};return i=t.subscribe(l),e.addEventListener("abort",a,{once:!0}),e.aborted?a():l(),r}const Pr=t=>{const e=F.c(92),{pluginID:s,request:n,enabled:r,live:i,collection:o}=t,a=r===void 0?!0:r,l=i===void 0?!0:i,c=o===void 0?!1:o,u=Q(s),d=k.useQueryClient();let f;e[0]!==n?(f=k.hashKey([n]),e[0]=n,e[1]=f):f=e[1];const p=f;let g;e[2]!==n||e[3]!==p?(g={hash:p,request:n},e[2]=n,e[3]=p,e[4]=g):g=e[4];const[m,h]=I.useState(g);m.hash!==p&&h({hash:p,request:n});const y=m.hash===p?m.request:n,v=y?.request.target.route.connection??"",b=a&&!!y;let S;e[5]!==v||e[6]!==u||e[7]!==b?(S={pluginID:u,connectionID:v,enabled:b},e[5]=v,e[6]=u,e[7]=b,e[8]=S):S=e[8];const E=ne(S);let x;e[9]!==v||e[10]!==u||e[11]!==b?(x=b?{subscribe:je(u,v).subscribe,getSnapshot:()=>ft(u,v)}:kr,e[9]=v,e[10]=u,e[11]=b,e[12]=x):x=e[12];const w=x,C=I.useSyncExternalStore(w.subscribe,w.getSnapshot,w.getSnapshot),R=se(u,v),D=b&&E.phase==="connected";let q;e[13]!==c||e[14]!==u||e[15]!==y?(q=y?k.hashKey([u,y.targetId,y.request.target,c]):void 0,e[13]=c,e[14]=u,e[15]=y,e[16]=q):q=e[16];const A=q;let $;e[17]!==c||e[18]!==l||e[19]!==u?($=X=>c?[...be.list(u,X),"collection",l?"ifSupported":"none"]:be.list(u,X),e[17]=c,e[18]=l,e[19]=u,e[20]=$):$=e[20];const _=$;let P;e[21]!==_||e[22]!==y?(P=_(y),e[21]=_,e[22]=y,e[23]=P):P=e[23];const T=P;let j;e[24]!==C||e[25]!==T?(j=k.hashKey([T,C]),e[24]=C,e[25]=T,e[26]=j):j=e[26];const L=j,[M,U]=I.useState(),[W,V]=I.useState();let z,H;e[27]!==c||e[28]!==v||e[29]!==C||e[30]!==l||e[31]!==u||e[32]!==d||e[33]!==D||e[34]!==T||e[35]!==y||e[36]!==L?(z=()=>{if(!c||!D||!y||C===void 0)return;const X=Or(L,u,y,l);let Z=!0,ue=Ar;const sn=()=>{Z&&U({key:L,entry:X})};return X.client.then(rn=>{if(!Z)return;sn();const on=()=>{if(!Z||!Fn(u,v,C))return;const Ge=rn.getSnapshot();V({key:L,status:Ge.status}),Ge.complete&&Ge.status?.state!=="failed"&&Ge.status?.state!=="closed"&&d.setQueryData(T,zn(Ge))};ue=rn.subscribe(on),on()},sn),()=>{Z=!1,ue(),Nr(L,X)}},H=[c,D,y,C,L,u,v,l,d,T],e[27]=c,e[28]=v,e[29]=C,e[30]=l,e[31]=u,e[32]=d,e[33]=D,e[34]=T,e[35]=y,e[36]=L,e[37]=z,e[38]=H):(z=e[37],H=e[38]),I.useEffect(z,H);const K=M?.key===L&&D&&c?M.entry:void 0;let Y;e[39]!==R||e[40]!==u?(Y=(X,Z,ue)=>R(ue,Z,()=>N.Enumerate(u,X)),e[39]=R,e[40]=u,e[41]=Y):Y=e[41];const ee=Y;let ae;e[42]!==R?(ae=(X,Z,ue)=>R(ue,Z,async()=>Tr(await X.client,Z)),e[42]=R,e[43]=ae):ae=e[43];const fe=ae;let we;e[44]!==c||e[45]!==fe||e[46]!==K||e[47]!==ee||e[48]!==D||e[49]!==y?(we=D&&y&&(!c||K)?X=>{const{signal:Z,queryKey:ue}=X;return c?fe(K,Z,ue):ee(y,Z,ue)}:k.skipToken,e[44]=c,e[45]=fe,e[46]=K,e[47]=ee,e[48]=D,e[49]=y,e[50]=we):we=e[50];const Se=we,_e=D&&(!c||!!K);let he;e[51]!==Se||e[52]!==T||e[53]!==_e?(he={queryKey:T,queryFn:Se,enabled:_e,retry:!1,gcTime:0,placeholderData:void 0},e[51]=Se,e[52]=T,e[53]=_e,e[54]=he):he=e[54];const ye=k.useQuery(he),xe=ye.refetch;let Oe;e[55]!==c||e[56]!==K||e[57]!==xe?(Oe=async(...X)=>{const Z=X;return c&&K&&await(await K.client).refresh(),xe(...Z)},e[55]=c,e[56]=K,e[57]=xe,e[58]=Oe):Oe=e[58];const He=Oe;let Xe;e[59]!==c||e[60]!==He||e[61]!==ye?(Xe=c?{...ye,refetch:He}:ye,e[59]=c,e[60]=He,e[61]=ye,e[62]=Xe):Xe=e[62];const $e=Xe,[Ue,nn]=I.useState();let Ne=Ue;if(A&&y&&$e.isSuccess&&$e.data){if(Ue?.identity!==A||Ue.requestHash!==p){let X;e[63]!==p||e[64]!==y||e[65]!==A?(X={identity:A,requestHash:p,request:y},e[63]=p,e[64]=y,e[65]=A,e[66]=X):X=e[66],Ne=X,nn(Ne)}}else Ue&&Ue.identity!==A&&(Ne=void 0,nn(void 0));const le=A&&Ne?.identity===A?Ne.request:void 0;let Ye;e[67]!==le||e[68]!==_?(Ye=_(le),e[67]=le,e[68]=_,e[69]=Ye):Ye=e[69];const ht=Ye;let Te;e[70]!==le||e[71]!==c||e[72]!==ee||e[73]!==D?(Te=D&&le&&!c?X=>{const{signal:Z,queryKey:ue}=X;return ee(le,Z,ue)}:k.skipToken,e[70]=le,e[71]=c,e[72]=ee,e[73]=D,e[74]=Te):Te=e[74];let Ze;e[75]!==ht||e[76]!==Te?(Ze={queryKey:ht,queryFn:Te,enabled:!1,retry:!1,gcTime:0,placeholderData:void 0},e[75]=ht,e[76]=Te,e[77]=Ze):Ze=e[77];const Qe=k.useQuery(Ze);let et;e[78]!==le||e[79]!==Qe.data?(et=le&&Qe.data?{request:le,page:Qe.data}:void 0,e[78]=le,e[79]=Qe.data,e[80]=et):et=e[80];const Ke=et,pe=K&&W?.key===L?W.status:void 0,yt=!!Ke&&Ne?.requestHash===p,mt=c?He:Qe.refetch,vt=Ke?.page.view,bt=pe?.state==="following",wt=pe?.state==="opening"||pe?.state==="snapshotting"||pe?.state==="resetRequired",St=pe?.state==="following"||pe?.state==="finished",Et=pe?.state==="failed";let tt;return e[81]!==Ke||e[82]!==$e||e[83]!==pe||e[84]!==yt||e[85]!==mt||e[86]!==vt||e[87]!==bt||e[88]!==wt||e[89]!==St||e[90]!==Et?(tt={resources:$e,acquired:Ke,isAcquiredRequestCurrent:yt,refreshAcquiredPage:mt,view:vt,source:pe,isLive:bt,isSyncing:wt,isSynced:St,sourceError:Et},e[81]=Ke,e[82]=$e,e[83]=pe,e[84]=yt,e[85]=mt,e[86]=vt,e[87]=bt,e[88]=wt,e[89]=St,e[90]=Et,e[91]=tt):tt=e[91],tt};function Ar(){}const qr=t=>{const e=F.c(13),{pluginID:s}=t,n=Q(s),r=k.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=async f=>(await Ve(n,f.route.connection),N.Mutate(n,f)),e[0]=n,e[1]=o):o=e[1];let a;e[2]!==n||e[3]!==r?(a=async()=>{await r.invalidateQueries({queryKey:be.all(n)})},e[2]=n,e[3]=r,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]!==o||e[8]!==a||e[9]!==l?(c={mutationFn:o,onSuccess:a,onError:l},e[7]=o,e[8]=a,e[9]=l,e[10]=c):c=e[10];const u=k.useMutation(c);let d;return e[11]!==u?(d={mutate:u.mutateAsync,mutation:u},e[11]=u,e[12]=d):d=e[12],d},Lr=t=>{const e=F.c(25),{pluginID:s,route:n,type:r,enabled:i}=t,o=i===void 0?!0:i,a=Q(s),l=n.connection,c=o&&!!r;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=se(a,l);let p;e[4]!==a||e[5]!==n||e[6]!==r?(p=[a,"resource-v2","actions",n,r],e[4]=a,e[5]=n,e[6]=r,e[7]=p):p=e[7];let g;e[8]!==o||e[9]!==f||e[10]!==a||e[11]!==d||e[12]!==n||e[13]!==r?(g=o&&r&&d.phase==="connected"?S=>{const{signal:E,queryKey:x}=S;return f(x,E,()=>N.GetActions(a,n,r))}:k.skipToken,e[8]=o,e[9]=f,e[10]=a,e[11]=d,e[12]=n,e[13]=r,e[14]=g):g=e[14];const m=o&&!!a&&!!n.connection&&!!r&&d.phase==="connected";let h;e[15]!==p||e[16]!==g||e[17]!==m?(h={queryKey:p,queryFn:g,enabled:m,staleTime:3e5},e[15]=p,e[16]=g,e[17]=m,e[18]=h):h=e[18];const y=k.useQuery(h);let v;e[19]!==y.data?(v=y.data??[],e[19]=y.data,e[20]=v):v=e[20];let b;return e[21]!==y.error||e[22]!==y.isLoading||e[23]!==v?(b={actions:v,isLoading:y.isLoading,error:y.error},e[21]=y.error,e[22]=y.isLoading,e[23]=v,e[24]=b):b=e[24],b},Fr=t=>{const e=F.c(15),{pluginID:s}=t,n=Q(s),r=k.useQueryClient(),{showSnackbar:i}=ce();let o;e[0]!==n?(o=async f=>(await Ve(n,f.route.connection),N.Action(n,f)),e[0]=n,e[1]=o):o=e[1];let a;e[2]!==n||e[3]!==r?(a=async()=>{await r.invalidateQueries({queryKey:be.all(n)})},e[2]=n,e[3]=r,e[4]=a):a=e[4];let l;e[5]!==i?(l=(f,p)=>{qe(i,f,`Failed to execute action "${p.action}"`)},e[5]=i,e[6]=l):l=e[6];let c;e[7]!==o||e[8]!==a||e[9]!==l?(c={mutationFn:o,onSuccess:a,onError:l},e[7]=o,e[8]=a,e[9]=l,e[10]=c):c=e[10];const u=k.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},Mr={getSnapshot:()=>{},subscribe:()=>()=>{}},Vn=t=>{const e=F.c(35),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=Q(s),a=k.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 c=ne(l),u=se(o,n.connection);let d;e[4]!==i||e[5]!==o||e[6]!==n.connection?(d=i&&o&&n.connection?{subscribe:je(o,n.connection).subscribe,getSnapshot:()=>ft(o,n.connection)}:Mr,e[4]=i,e[5]=o,e[6]=n.connection,e[7]=d):d=e[7];const f=d,p=I.useSyncExternalStore(f.subscribe,f.getSnapshot,f.getSnapshot),g=i&&!!o&&!!n.connection&&c.phase==="connected";let m;e[8]!==p||e[9]!==o||e[10]!==n?(m=[o,"resource-v2","editor-schemas",n,p],e[8]=p,e[9]=o,e[10]=n,e[11]=m):m=e[11];let h;e[12]!==p||e[13]!==u||e[14]!==o||e[15]!==a||e[16]!==g||e[17]!==n?(h=g?x=>{const{signal:w,queryKey:C}=x;return u(C,w,async()=>{const R=await u(C,w,()=>N.GetEditorSchemas(o,n)),D=[],q=new Set;for(const A of R){const $=A.documentId;A.status!=="available"||!$||q.has($)||(D.push(await a.fetchQuery({queryKey:[o,"resource-v2","editor-schema-document",n,$,p],queryFn:_=>{const{signal:P,queryKey:T}=_;return u(T,AbortSignal.any([w,P]),()=>N.GetEditorSchemaDocument(o,n,$))},staleTime:1/0})),q.add($))}return{associations:R,documents:D}})}:k.skipToken,e[12]=p,e[13]=u,e[14]=o,e[15]=a,e[16]=g,e[17]=n,e[18]=h):h=e[18];let y;e[19]!==g||e[20]!==m||e[21]!==h?(y={queryKey:m,queryFn:h,enabled:g,staleTime:6e5,retry:1},e[19]=g,e[20]=m,e[21]=h,e[22]=y):y=e[22];const v=k.useQuery(y);let b;e[23]!==v.data?.associations||e[24]!==g?(b=g?v.data?.associations??[]:[],e[23]=v.data?.associations,e[24]=g,e[25]=b):b=e[25];let S;e[26]!==v.data?.documents||e[27]!==g?(S=g?v.data?.documents??[]:[],e[26]=v.data?.documents,e[27]=g,e[28]=S):S=e[28];let E;return e[29]!==v.error||e[30]!==v.isLoading||e[31]!==v.refetch||e[32]!==b||e[33]!==S?(E={associations:b,documents:S,isLoading:v.isLoading,error:v.error,refetch:v.refetch},e[29]=v.error,e[30]=v.isLoading,e[31]=v.refetch,e[32]=b,e[33]=S,e[34]=E):E=e[34],E},jr={getSnapshot:()=>{},subscribe:()=>()=>{}},$r=t=>{const e=F.c(37),{pluginID:s,route:n,type:r,representation:i,path:o,enabled:a}=t,l=a===void 0?!0:a,c=Q(s);let u;e[0]!==l||e[1]!==c||e[2]!==n.connection?(u={pluginID:c,connectionID:n.connection,enabled:l},e[0]=l,e[1]=c,e[2]=n.connection,e[3]=u):u=e[3];const d=ne(u),f=se(c,n.connection);let p;e[4]!==l||e[5]!==c||e[6]!==n.connection?(p=l&&c&&n.connection?{subscribe:je(c,n.connection).subscribe,getSnapshot:()=>ft(c,n.connection)}:jr,e[4]=l,e[5]=c,e[6]=n.connection,e[7]=p):p=e[7];const g=p,m=I.useSyncExternalStore(g.subscribe,g.getSnapshot,g.getSnapshot),h=l&&!!c&&!!n.connection&&!!r&&d.phase==="connected",y=i??"";let v;e[8]!==m||e[9]!==o||e[10]!==c||e[11]!==n||e[12]!==y||e[13]!==r?(v=[c,"resource-v2","schema-fields",n,r,y,o,m],e[8]=m,e[9]=o,e[10]=c,e[11]=n,e[12]=y,e[13]=r,e[14]=v):v=e[14];let b;e[15]!==f||e[16]!==o||e[17]!==c||e[18]!==h||e[19]!==i||e[20]!==n||e[21]!==r?(b=h?D=>{const{signal:q,queryKey:A}=D;return f(A,q,()=>N.GetSchemaFields(c,{route:n,type:r,representation:i,path:o}))}:k.skipToken,e[15]=f,e[16]=o,e[17]=c,e[18]=h,e[19]=i,e[20]=n,e[21]=r,e[22]=b):b=e[22];let S;e[23]!==h||e[24]!==v||e[25]!==b?(S={queryKey:v,queryFn:b,enabled:h,staleTime:6e5,retry:1,placeholderData:void 0},e[23]=h,e[24]=v,e[25]=b,e[26]=S):S=e[26];const E=k.useQuery(S),x=h?E.data:void 0;let w;e[27]!==E.data?.fields||e[28]!==h?(w=h?E.data?.fields??[]:[],e[27]=E.data?.fields,e[28]=h,e[29]=w):w=e[29];const C=h?E.data?.overlay:void 0;let R;return e[30]!==E.error||e[31]!==E.isLoading||e[32]!==E.refetch||e[33]!==C||e[34]!==x||e[35]!==w?(R={result:x,fields:w,overlay:C,isLoading:E.isLoading,error:E.error,refetch:E.refetch},e[30]=E.error,e[31]=E.isLoading,e[32]=E.refetch,e[33]=C,e[34]=x,e[35]=w,e[36]=R):R=e[36],R},Jn=(t,e)=>`${t.modelDirectory}/${encodeURIComponent(e)}.${t.language}`,Ur=t=>{const e=F.c(14),{pluginID:s,route:n,type:r,representation:i,key:o,name:a,enabled:l}=t,c=l===void 0?!0:l;let u;e[0]!==c||e[1]!==s||e[2]!==n?(u={pluginID:s,route:n,enabled:c},e[0]=c,e[1]=s,e[2]=n,e[3]=u):u=e[3];const{associations:d}=Vn(u);let f;if(e[4]!==d||e[5]!==o||e[6]!==a||e[7]!==i||e[8]!==r){let p;e[10]!==o||e[11]!==i||e[12]!==r?(p=m=>m.type!==r?!1:o!==void 0?m.key===o:m.key?!1:i===void 0||m.representation===i,e[10]=o,e[11]=i,e[12]=r,e[13]=p):p=e[13];const g=d.find(p);f=g?Jn(g,a):void 0,e[4]=d,e[5]=o,e[6]=a,e[7]=i,e[8]=r,e[9]=f}else f=e[9];return f},fn=t=>["following","finished","failed","closed"].includes(t),Qr=({pluginID:t,route:e,enabled:s=!0})=>{const n=Q(t),r=k.useQueryClient(),i=e.connection,o=I.useMemo(()=>[n,"resource-v2","source-states",{connection:i}],[n,i]),a=I.useRef([]),l=I.useRef(!1),c=I.useRef(void 0),u=I.useCallback(g=>{r.setQueryData(o,m=>m&&{...m,types:{...m.types,[g.type]:g.status}})},[r,o]),d=k.useQuery({queryKey:o,queryFn:async()=>{const g=[];c.current=g;try{const m=await N.GetSourceStates(n,{connection:i});if(!m)throw new Error("Failed to get source states: null response");const h={...m.types};for(const y of g)h[y.type]=y.status;return{...m,types:h}}finally{c.current===g&&(c.current=void 0)}},enabled:s&&!!n&&!!i,refetchInterval:g=>{const m=Object.values(g.state.data?.types??{});return m.length>0&&m.every(h=>fn(h.state))?!1:3e3}});I.useEffect(()=>{if(l.current=!1,a.current=[],!s||!n||!i)return;const g=G.On(`${n}/${i}/source/STATE`,m=>{const h=m.data;h.pluginID!==n||h.route.connection!==i||(l.current?u(h):a.current.push(h),c.current?.push(h))});return()=>{g(),l.current=!1,a.current=[]}},[n,i,s,u]),I.useEffect(()=>{if(!d.data||l.current)return;l.current=!0;const g=a.current;a.current=[];for(const m of g)u(m)},[d.data,u]);const f=Object.values(d.data?.types??{}),p=f.filter(g=>fn(g.state)).length;return{summary:d.data,getTypeStatus:g=>d.data?.types[g],isFullySynced:f.length>0&&p===f.length,syncProgress:f.length?p/f.length:0,errorCount:f.filter(g=>g.state==="failed").length}},Kr=()=>{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]=I.useState(e);let r;t[1]===Symbol.for("react.memo_cache_sentinel")?(r=new Map,t[1]=r):r=t[1];const i=I.useRef(r);let o;t[2]===Symbol.for("react.memo_cache_sentinel")?(o=new Map,t[2]=o):o=t[2];const a=I.useRef(o);let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=v=>{const b=v.data,S=Zt(b.pluginID,b),E=jt(i.current,b.pluginID,b),x=Mt(E);if(n(w=>{const C=new Map(w);return C.set(S,x),C}),a.current.has(S)&&(clearTimeout(a.current.get(S)),a.current.delete(S)),pt(x)){const w=setTimeout(()=>{n(C=>{const R=new Map(C);return R.delete(S),R}),i.current.delete(S),a.current.delete(S)},5e3);a.current.set(S,w)}},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,b=G.On("source/STATE",c);return()=>{b();for(const S of v.values())clearTimeout(S);v.clear()}},d=[c],t[4]=u,t[5]=d):(u=t[4],d=t[5]),I.useEffect(u,d);let f,p,g,m;t[6]!==s?(g=Array.from(s.values()),f=$n(g),p=g.find(Gr)??g[0]??null,m=Un(g),t[6]=s,t[7]=f,t[8]=p,t[9]=g,t[10]=m):(f=t[7],p=t[8],g=t[9],m=t[10]);const h=m;let y;return t[11]!==h||t[12]!==f||t[13]!==p||t[14]!==g?(y={syncs:g,hasSyncing:f,primarySync:p,aggregateProgress:h},t[11]=h,t[12]=f,t[13]=p,t[14]=g,t[15]=y):y=t[15],y};function Gr(t){return!pt(t)}const Hn=()=>{const t=I.useContext(Jt);if(!t)throw new Error("useOperations must be used within an OperationsProvider");return t};function ct(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(ct);case"map":return Object.fromEntries(Object.entries(t.value).map(([e,s])=>[e,ct(s)]))}}function Ut(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 Qt(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 Kt(t){if(t===null)return{kind:"null"};if(typeof t=="boolean")return{kind:"bool",value:t};if(typeof t=="string")return{kind:"string",value:Ut(t)};if(typeof t=="bigint")return Qt(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 Qt(t.toString())}return{kind:"double",value:t}}if(Array.isArray(t))return{kind:"list",value:t.map(Kt)};if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype)return{kind:"map",value:Object.fromEntries(Object.entries(t).map(([e,s])=>[Ut(e),Kt(s)]))};throw new TypeError("Unsupported resource value")}function Gt(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(Gt).join(",")}]`;case"map":return`{${Object.entries(t.value).map(([e,s])=>`${JSON.stringify(e)}:${Gt(s)}`).join(",")}}`}}function Br(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 a=e++;for(;e<t.length;){const l=t[e++];if(l==="\\"){e++;continue}if(l==='"')return Ut(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:r()};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=r();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 Qt(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}},o=i(0);return n(),e!==t.length?s():o}const Wr=({pluginID:t})=>{const e=Q(t),{showSnackbar:s}=ce(),{addOperation:n,updateOperation:r}=Hn(),i=I.useRef(new Set),o=I.useCallback((c,u=!1)=>{c.disposed||(c.disposed=!0,c.unsubscribe?.(),c.open?.cancel(),c.attach?.cancel(),c.handle&&(N.CancelStreamAction(c.handle).catch(()=>{}),u&&r(c.handle,{status:"cancelled",message:"Cancelled",completedAt:Date.now()})),i.current.delete(c))},[r]);I.useEffect(()=>()=>{for(const c of i.current)o(c,!0)},[e,o]);const a=I.useCallback(async({request:c,label:u})=>{const d={disposed:!1,terminal:!1,sequence:0};i.current.add(d);try{if(await Ve(e,c.route.connection),d.disposed)throw new Error("Stream action was cancelled before the connection became ready");d.open=N.StreamAction(e,c);const f=await d.open;if(d.open=void 0,d.disposed)return N.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=m=>{if(d.disposed||!Number.isSafeInteger(m.sequence)||m.sequence<=d.sequence)return;d.sequence=m.sequence;const h=m.event,y=h.data?ct(h.data):void 0,v=y&&typeof y=="object"&&!Array.isArray(y)?y:{};if(h.type==="error"){d.terminal=!0;const b=ie(h.error);r(f,{status:ze(b)?"cancelled":"error",message:b.title,completedAt:Date.now()}),qe(s,b,u),o(d)}else if(h.type==="complete"){d.terminal=!0;const b=typeof v.message=="string"?v.message:`${u} completed`;r(f,{status:"completed",message:b,completedAt:Date.now()}),s(b,"success"),o(d)}else r(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=G.On(`action/stream/${f}`,m=>p(m.data)),d.attach=N.AttachStreamAction(f);const g=await d.attach;return d.attach=void 0,p(g),f}catch(f){if(d.terminal&&d.handle)return d.handle;throw d.disposed||(d.handle&&r(d.handle,{status:ze(f)?"cancelled":"error",message:ie(f).title,completedAt:Date.now()}),qe(s,f,`Failed to start "${c.action}"`)),o(d),f}},[e,n,r,s,o]),l=I.useCallback(c=>{for(const u of i.current)if(u.handle===c){o(u,!0);return}},[o]);return{startStreamAction:a,cancelStreamAction:l}};function Xn(t,e){return`${t}/${e}/graph/CHANGED`}function gt(t,e,s,n){const r=F.c(16),i=k.useQueryClient(),o=I.useRef(s);let a,l;r[0]!==s?(a=()=>{o.current=s},l=[s],r[0]=s,r[1]=a,r[2]=l):(a=r[1],l=r[2]),I.useLayoutEffect(a,l);let c;r[3]!==s?(c=JSON.stringify(s),r[3]=s,r[4]=c):c=r[4];const u=c;let d;r[5]!==e||r[6]!==n||r[7]!==t||r[8]!==i?(d=()=>{if(!n||!t||!e)return;const p=G.On(Xn(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]=d):d=r[9];let f;r[10]!==e||r[11]!==n||r[12]!==u||r[13]!==t||r[14]!==i?(f=[i,t,e,u,n],r[10]=e,r[11]=n,r[12]=u,r[13]=t,r[14]=i,r[15]=f):f=r[15],I.useEffect(d,f)}const zr={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 Vr(t,e){const s=zr[t];if(s)return s[e];const n=t.replace(/_/g," ");return e==="outgoing"?n:`${n} (incoming)`}function Yn(t,e){return e.map(s=>{const n=pn.sameGraphNode(s.source,t);return{resource:n?s.target:s.source,type:s.type,direction:n?"outgoing":"incoming",label:s.label}})}const Jr=t=>{const e=F.c(38),{pluginID:s,reference:n,route:r,direction:i,relationshipType:o,enabled:a,refetchInterval:l}=t,c=i===void 0?"both":i,u=a===void 0?!0:a,d=l===void 0?!1:l,f=Q(s),p=o??null;let g;e[0]!==c||e[1]!==f||e[2]!==n||e[3]!==r||e[4]!==p?(g=["RESOURCE_RELATED",f,n,r,c,p],e[0]=c,e[1]=f,e[2]=n,e[3]=r,e[4]=p,e[5]=g):g=e[5];const m=g,h=u&&!!n.address.id;let y;e[6]!==f||e[7]!==r.connection||e[8]!==h?(y={pluginID:f,connectionID:r.connection,enabled:h},e[6]=f,e[7]=r.connection,e[8]=h,e[9]=y):y=e[9];const v=ne(y),b=se(f,r.connection),S=u&&!!f&&!!r.connection&&!!n.address.id&&v.phase==="connected";gt(f,r.connection,m,S);let E;e[10]!==c||e[11]!==b||e[12]!==f||e[13]!==S||e[14]!==n||e[15]!==o||e[16]!==r?(E=S?q=>{const{signal:A,queryKey:$}=q;return b($,A,()=>N.GetRelated(f,n,r,c,o??null))}:k.skipToken,e[10]=c,e[11]=b,e[12]=f,e[13]=S,e[14]=n,e[15]=o,e[16]=r,e[17]=E):E=e[17];let x;e[18]!==S||e[19]!==m||e[20]!==d||e[21]!==E?(x={queryKey:m,queryFn:E,enabled:S,refetchInterval:d},e[18]=S,e[19]=m,e[20]=d,e[21]=E,e[22]=x):x=e[22];const w=k.useQuery(x);let C,R;if(e[23]!==f||e[24]!==w.data||e[25]!==n||e[26]!==r){const q={pluginId:f,reference:n};let A;e[29]!==w.data?(A=w.data??[],e[29]=w.data,e[30]=A):A=e[30],C=A,R=Yn(q,C),e[23]=f,e[24]=w.data,e[25]=n,e[26]=r,e[27]=C,e[28]=R}else C=e[27],R=e[28];let D;return e[31]!==C||e[32]!==w.error||e[33]!==w.isFetching||e[34]!==w.isLoading||e[35]!==w.refetch||e[36]!==R?(D={related:R,edges:C,isLoading:w.isLoading,isFetching:w.isFetching,error:w.error,refetch:w.refetch},e[31]=C,e[32]=w.error,e[33]=w.isFetching,e[34]=w.isLoading,e[35]=w.refetch,e[36]=R,e[37]=D):D=e[37],D},Hr=t=>{const e=F.c(27),{pluginID:s,reference:n,route:r,maxDepth:i,enabled:o,refetchInterval:a}=t,l=i===void 0?3:i,c=o===void 0?!0:o,u=a===void 0?!1:a,d=Q(s);let f;e[0]!==l||e[1]!==d||e[2]!==n||e[3]!==r?(f=["RESOURCE_DEPENDENCY_TREE",d,n,r,l],e[0]=l,e[1]=d,e[2]=n,e[3]=r,e[4]=f):f=e[4];const p=f,g=c&&!!n.address.id;let m;e[5]!==d||e[6]!==r.connection||e[7]!==g?(m={pluginID:d,connectionID:r.connection,enabled:g},e[5]=d,e[6]=r.connection,e[7]=g,e[8]=m):m=e[8];const h=ne(m),y=se(d,r.connection),v=c&&!!d&&!!r.connection&&!!n.address.id&&h.phase==="connected";gt(d,r.connection,p,v);let b;e[9]!==y||e[10]!==l||e[11]!==d||e[12]!==v||e[13]!==n||e[14]!==r?(b=v?C=>{const{signal:R,queryKey:D}=C;return y(D,R,()=>N.GetDependencyTree(d,n,r,l))}:k.skipToken,e[9]=y,e[10]=l,e[11]=d,e[12]=v,e[13]=n,e[14]=r,e[15]=b):b=e[15];let S;e[16]!==v||e[17]!==p||e[18]!==u||e[19]!==b?(S={queryKey:p,queryFn:b,enabled:v,refetchInterval:u},e[16]=v,e[17]=p,e[18]=u,e[19]=b,e[20]=S):S=e[20];const E=k.useQuery(S),x=E.data??null;let w;return e[21]!==E.error||e[22]!==E.isFetching||e[23]!==E.isLoading||e[24]!==E.refetch||e[25]!==x?(w={tree:x,isLoading:E.isLoading,isFetching:E.isFetching,error:E.error,refetch:E.refetch},e[21]=E.error,e[22]=E.isFetching,e[23]=E.isLoading,e[24]=E.refetch,e[25]=x,e[26]=w):w=e[26],w},Xr=t=>{const e=F.c(28),{pluginID:s,reference:n,route:r,upDepth:i,downDepth:o,enabled:a}=t,l=i===void 0?2:i,c=o===void 0?3:o,u=a===void 0?!0:a,d=Q(s);let f;e[0]!==c||e[1]!==d||e[2]!==n||e[3]!==r||e[4]!==l?(f=["RESOURCE_GRAPH",d,n,r,l,c],e[0]=c,e[1]=d,e[2]=n,e[3]=r,e[4]=l,e[5]=f):f=e[5];const p=f,g=u&&!!n.address.id;let m;e[6]!==d||e[7]!==r.connection||e[8]!==g?(m={pluginID:d,connectionID:r.connection,enabled:g},e[6]=d,e[7]=r.connection,e[8]=g,e[9]=m):m=e[9];const h=ne(m),y=se(d,r.connection),v=u&&!!d&&!!r.connection&&!!n.address.id&&h.phase==="connected";gt(d,r.connection,p,v);let b;e[10]!==c||e[11]!==y||e[12]!==d||e[13]!==v||e[14]!==n||e[15]!==r||e[16]!==l?(b=v?C=>{const{signal:R,queryKey:D}=C;return y(D,R,()=>N.GetSubgraph(d,n,r,l,c))}:k.skipToken,e[10]=c,e[11]=y,e[12]=d,e[13]=v,e[14]=n,e[15]=r,e[16]=l,e[17]=b):b=e[17];let S;e[18]!==v||e[19]!==p||e[20]!==b?(S={queryKey:p,queryFn:b,enabled:v,retry:!1},e[18]=v,e[19]=p,e[20]=b,e[21]=S):S=e[21];const E=k.useQuery(S),x=E.data??null;let w;return e[22]!==E.error||e[23]!==E.isFetching||e[24]!==E.isLoading||e[25]!==E.refetch||e[26]!==x?(w={graph:x,isLoading:E.isLoading,isFetching:E.isFetching,error:E.error,refetch:E.refetch},e[22]=E.error,e[23]=E.isFetching,e[24]=E.isLoading,e[25]=E.refetch,e[26]=x,e[27]=w):w=e[27],w},Yr=()=>{const t=I.useContext(Vt);if(!t)throw new Error("useSettings must be used within a SettingsProvider");return t},Zr=1,eo=t=>{const e=F.c(19);let s,n,r,i;if(e[0]!==t){const{to:m,withinContext:h,onClick:y,onAuxClick:v,...b}=t;i=m,n=y,s=v,r=b,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}=zt(),a=I.useContext(dt);o||console.error("Link used outside of a plugin context");const l=`/_plugin/${o}${i.startsWith("/")?"":"/"}${i}`;let c;e[5]!==n||e[6]!==l||e[7]!==a?(c=m=>{n?.(m),!(m.defaultPrevented||!a||!(m.ctrlKey||m.metaKey))&&(m.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=m=>{s?.(m),!(m.defaultPrevented||!a||m.button!==Zr)&&(m.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 g;return e[14]!==f||e[15]!==u||e[16]!==r||e[17]!==l?(g=O.jsx(st.Link,{style:p,...r,to:l,onClick:u,onAuxClick:f}),e[14]=f,e[15]=u,e[16]=r,e[17]=l,e[18]=g):g=e[18],g};function to(){const t=F.c(10),e=st.useNavigate(),s=st.useLocation(),{pluginId:n}=zt();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 a;t[3]!==e||t[4]!==r?(a=(u,d)=>{const{...f}=d??{};u.startsWith("/")?e(`${r}${u}`,f):e(u,f)},t[3]=e,t[4]=r,t[5]=a):a=t[5];const l=a;let c;return t[6]!==s||t[7]!==l||t[8]!==o?(c={location:s,navigate:l,pluginPath:o},t[6]=s,t[7]=l,t[8]=o,t[9]=c):c=t[9],c}class no{}class so{_extensions;root;pages;_routes;get extensions(){return this._extensions||[]}get Routes(){if(!this._routes&&this.root)return[{path:"",index:!0,Component:this.root}];if(!this._routes?.length)throw new Error("cannot use plugin without a root page or router");return this._routes}get Window(){if(!this._routes&&this.root)return O.jsx(this.root,{});const e=st.createMemoryRouter(this._routes||[]);return O.jsx(ns.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 Zn=(t=>(t.MISSING_MANIFEST="MISSING_MANIFEST",t.MISSING_PLUGIN="MISSING_PLUGIN",t.MISSING_ENTRYPOINT="MISSING_ENTRYPOINT",t))(Zn||{});const es="omniview/global-search/open";function ro(t={}){window.dispatchEvent(new CustomEvent(es,{detail:t}))}const ts="omniview/resource/icons";class oo extends I.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 io(t,e){try{return t?.schemaVersion!==1||typeof t.resolve!="function"?void 0:t.resolve(e)}catch{return}}function co(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 r=n["aria-hidden"]??!0;let i;return e[3]!==s||e[4]!==n||e[5]!==r?(i=O.jsx(s,{...n,"aria-hidden":r}),e[3]=s,e[4]=n,e[5]=r,e[6]=i):i=e[6],i}function ao(t){const e=F.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:a}=Ht(ts);let l;e[5]!==s||e[6]!==r?(l=s===void 0?O.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:O.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 c=l;let u;if(e[8]!==a||e[9]!==c||e[10]!==n||e[11]!==r||e[12]!==i||e[13]!==o){u=Symbol.for("react.early_return_sentinel");e:for(const f of a){if(f.plugin!==n)continue;const p=io(f.value,i);if(p){u=O.jsx(oo,{resetToken:f,fallback:c,children:O.jsx(I.Suspense,{fallback:c,children:O.jsx(co,{icon:p,...r})})},JSON.stringify([n,i,o,f.id]));break e}}e[8]=a,e[9]=c,e[10]=n,e[11]=r,e[12]=i,e[13]=o,e[14]=u}else u=e[14];if(u!==Symbol.for("react.early_return_sentinel"))return u;let d;return e[15]!==c?(d=O.jsx(O.Fragment,{children:c}),e[15]=c,e[16]=d):d=e[16],d}const lo="omniview/settings/editor";function uo(t){const e=F.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=Q(s),a=i&&!!n.type;let l;e[4]!==o||e[5]!==n.route.connection||e[6]!==a?(l={pluginID:o,connectionID:n.route.connection,enabled:a},e[4]=o,e[5]=n.route.connection,e[6]=a,e[7]=l):l=e[7];const c=ne(l),u=se(o,n.route.connection),d=i&&!!o&&!!n.route.connection&&!!n.type&&c.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]!==u||e[12]!==o||e[13]!==d||e[14]!==n?(p=d?v=>{const{signal:b,queryKey:S}=v;return u(S,b,()=>N.ResolveTarget(o,n))}:k.skipToken,e[11]=u,e[12]=o,e[13]=d,e[14]=n,e[15]=p):p=e[15];let g;e[16]!==d||e[17]!==f||e[18]!==p?(g={queryKey:f,queryFn:p,enabled:d,retry:!1,placeholderData:void 0},e[16]=d,e[17]=f,e[18]=p,e[19]=g):g=e[19];const m=k.useQuery(g),h=d&&m.isSuccess&&!m.isFetching?m.data:void 0;let y;return e[20]!==m||e[21]!==h?(y={...m,data:h},e[20]=m,e[21]=h,e[22]=y):y=e[22],y}exports.sameGraphNode=pn.sameGraphNode;exports.ALL_SESSIONS_KEY=De;exports.BottomDrawerContext=En;exports.ConfirmationModalContext=In;exports.ConnectionBoundary=Gs;exports.ConnectionBoundaryFallback=Qn;exports.ErrorTypes=J;exports.ExtensionPointRegistry=Es;exports.ExtensionPointStore=Tn;exports.ExtensionProvider=bs;exports.GLOBAL_SEARCH_OPEN_EVENT=es;exports.HOST_SETTINGS_SCOPE=rt;exports.Link=eo;exports.OperationsContext=Jt;exports.OperationsProvider=ds;exports.PluginContext=lt;exports.PluginContextProvider=is;exports.PluginErrorCode=Zn;exports.PluginWindow=so;exports.PluginWindowRootProps=no;exports.RESOURCE_EDITOR_EXTENSION_POINT=Dn;exports.RESOURCE_ICON_EXTENSION_POINT_ID=ts;exports.ResourceIcon=ao;exports.RightDrawerContext=Cn;exports.SETTINGS_EDITOR_EXTENSION_POINT_ID=lo;exports.SettingsContext=Vt;exports.SettingsProvider=ls;exports.SnackbarProvider=Is;exports.WindowActionsContext=dt;exports.WindowActionsProvider=fs;exports.actionToSnackbar=bn;exports.connectionListQueryKey=jn;exports.createErrorHandler=te;exports.defaultState=Sn;exports.editorModelPath=Jn;exports.extensionInspectorTarget=ut;exports.graphChangedEvent=Xn;exports.isCancelledError=ze;exports.jsonTextToValue=Br;exports.jsonToValue=Kt;exports.matchesResourceEditor=Nn;exports.navigateActivePage=vn;exports.openGlobalSearch=ro;exports.openSettings=qt;exports.openSourceView=Wn;exports.parseAppError=ie;exports.readCurrentConnectionMetadataString=tr;exports.registerActivePageNavigator=os;exports.relationshipLabel=Vr;exports.requireConnectionReady=Ve;exports.resourceEditorPathContains=On;exports.resourceQueryKeys=be;exports.scopedSettingID=mn;exports.selectResourceEditor=Ss;exports.settingsQueryKey=hn;exports.settingsWindowTarget=Wt;exports.showAppError=qe;exports.toRelatedResources=Yn;exports.useActiveSyncs=Kr;exports.useBottomDrawer=tn;exports.useConfirmationModal=br;exports.useConnection=ks;exports.useConnectionMetadata=zs;exports.useConnectionMetadataConnections=Xs;exports.useConnectionMetadataSelector=Zs;exports.useConnectionProfiles=qs;exports.useConnectionReadiness=ne;exports.useConnectionStatus=As;exports.useConnections=Os;exports.useDependencyTree=Hr;exports.useEditorSchemas=Vn;exports.useExec=or;exports.useExecuteAction=Fr;exports.useExtensionPoint=vs;exports.useExtensionPointSnapshot=Ht;exports.useExtensionRegistry=Rn;exports.useLogs=cr;exports.useMetricProviders=lr;exports.useMetricProvidersForResource=Bn;exports.useMetricStream=dr;exports.useNativeExec=ir;exports.useOperations=Hn;exports.usePluginContext=zt;exports.usePluginData=sr;exports.usePluginRouter=to;exports.usePortForwardSessions=fr;exports.useRefetchOnGraphChange=gt;exports.useRelatedResources=Jr;exports.useResolvedPluginId=Q;exports.useResolvedResourceTarget=uo;exports.useResource=wr;exports.useResourceActions=Lr;exports.useResourceAreaComponent=Sr;exports.useResourceEditorModelPath=Ur;exports.useResourceGraph=Xr;exports.useResourceGroups=Er;exports.useResourceMetrics=ur;exports.useResourceMutations=qr;exports.useResourcePortForwarder=mr;exports.useResourceSearch=Cr;exports.useResourceType=xr;exports.useResourceTypes=Rr;exports.useResources=Pr;exports.useRightDrawer=rr;exports.useSchemaFields=$r;exports.useScopeValues=Ps;exports.useScopedSettings=Bt;exports.useSettings=Yr;exports.useSnackbar=ce;exports.useSourceStates=Qr;exports.useStreamAction=Wr;exports.useWindowActions=ps;exports.validateResourceEditorContribution=kn;exports.valueToJSON=ct;exports.valueToJSONText=Gt;exports.withConnectionReady=Rs;
|