@samyx/preview-stacks-ui 0.35.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{ActionButton.vue_vue_type_script_setup_true_lang-pLJQfFvY.js → ActionButton.vue_vue_type_script_setup_true_lang-CB94t3xm.js} +2 -2
- package/dist/assets/{ActionButton.vue_vue_type_script_setup_true_lang-pLJQfFvY.js.map → ActionButton.vue_vue_type_script_setup_true_lang-CB94t3xm.js.map} +1 -1
- package/dist/assets/{AxesTab-Bb8UjmaR.js → AxesTab-C0OeAG-v.js} +2 -2
- package/dist/assets/{AxesTab-Bb8UjmaR.js.map → AxesTab-C0OeAG-v.js.map} +1 -1
- package/dist/assets/{ConfigTab-DLjvLYzj.js → ConfigTab-CqQK7vQl.js} +2 -2
- package/dist/assets/{ConfigTab-DLjvLYzj.js.map → ConfigTab-CqQK7vQl.js.map} +1 -1
- package/dist/assets/{ConfigView-BO_yZHja.js → ConfigView-D6Ourc5o.js} +2 -2
- package/dist/assets/{ConfigView-BO_yZHja.js.map → ConfigView-D6Ourc5o.js.map} +1 -1
- package/dist/assets/{ConflictNote.vue_vue_type_script_setup_true_lang-Bjozh4Jr.js → ConflictNote.vue_vue_type_script_setup_true_lang-BtSm_ZhU.js} +2 -2
- package/dist/assets/{ConflictNote.vue_vue_type_script_setup_true_lang-Bjozh4Jr.js.map → ConflictNote.vue_vue_type_script_setup_true_lang-BtSm_ZhU.js.map} +1 -1
- package/dist/assets/ControlView-G6A_-Og_.js +2 -0
- package/dist/assets/ControlView-G6A_-Og_.js.map +1 -0
- package/dist/assets/{DangerTab-DFtbEcU-.js → DangerTab-Cn06aqx9.js} +2 -2
- package/dist/assets/{DangerTab-DFtbEcU-.js.map → DangerTab-Cn06aqx9.js.map} +1 -1
- package/dist/assets/{DashboardView-BWa1V1EI.js → DashboardView-CpJmNcFL.js} +2 -2
- package/dist/assets/{DashboardView-BWa1V1EI.js.map → DashboardView-CpJmNcFL.js.map} +1 -1
- package/dist/assets/{DeploymentDetailView-Cs1sMvRs.js → DeploymentDetailView-CP2ANsF3.js} +2 -2
- package/dist/assets/{DeploymentDetailView-Cs1sMvRs.js.map → DeploymentDetailView-CP2ANsF3.js.map} +1 -1
- package/dist/assets/{DeploymentsView-CD84qmqw.js → DeploymentsView-CXQxjAem.js} +2 -2
- package/dist/assets/{DeploymentsView-CD84qmqw.js.map → DeploymentsView-CXQxjAem.js.map} +1 -1
- package/dist/assets/{DialogTrigger-BKNFZDUU.js → DialogTrigger-BlkbgxBa.js} +2 -2
- package/dist/assets/{DialogTrigger-BKNFZDUU.js.map → DialogTrigger-BlkbgxBa.js.map} +1 -1
- package/dist/assets/{EquivalentCommand-DSNG3Ig1.js → EquivalentCommand-CbJfYQaC.js} +2 -2
- package/dist/assets/{EquivalentCommand-DSNG3Ig1.js.map → EquivalentCommand-CbJfYQaC.js.map} +1 -1
- package/dist/assets/{ErrorNote.vue_vue_type_script_setup_true_lang-BaTXNX-q.js → ErrorNote.vue_vue_type_script_setup_true_lang-Imao12aK.js} +2 -2
- package/dist/assets/{ErrorNote.vue_vue_type_script_setup_true_lang-BaTXNX-q.js.map → ErrorNote.vue_vue_type_script_setup_true_lang-Imao12aK.js.map} +1 -1
- package/dist/assets/{HelpModal.vue_vue_type_script_setup_true_lang-BhdwErsB.js → HelpModal.vue_vue_type_script_setup_true_lang-CjoiZrMf.js} +2 -2
- package/dist/assets/{HelpModal.vue_vue_type_script_setup_true_lang-BhdwErsB.js.map → HelpModal.vue_vue_type_script_setup_true_lang-CjoiZrMf.js.map} +1 -1
- package/dist/assets/{JobDetailView-DeRVlajk.js → JobDetailView-lYBZcOSg.js} +2 -2
- package/dist/assets/{JobDetailView-DeRVlajk.js.map → JobDetailView-lYBZcOSg.js.map} +1 -1
- package/dist/assets/{JobsView-BMWq45ys.js → JobsView-CyZXyEfc.js} +2 -2
- package/dist/assets/{JobsView-BMWq45ys.js.map → JobsView-CyZXyEfc.js.map} +1 -1
- package/dist/assets/{LogViewer.vue_vue_type_script_setup_true_lang-Bj66MDSl.js → LogViewer.vue_vue_type_script_setup_true_lang-CBVTTiPn.js} +2 -2
- package/dist/assets/{LogViewer.vue_vue_type_script_setup_true_lang-Bj66MDSl.js.map → LogViewer.vue_vue_type_script_setup_true_lang-CBVTTiPn.js.map} +1 -1
- package/dist/assets/{LoginView-Docai9d6.js → LoginView-Do6LVtZ6.js} +2 -2
- package/dist/assets/{LoginView-Docai9d6.js.map → LoginView-Do6LVtZ6.js.map} +1 -1
- package/dist/assets/{LogsTab-Cfauurch.js → LogsTab-DMj2p8j8.js} +2 -2
- package/dist/assets/{LogsTab-Cfauurch.js.map → LogsTab-DMj2p8j8.js.map} +1 -1
- package/dist/assets/{NotFoundView-D7OvnAVF.js → NotFoundView-DyiW8m6P.js} +2 -2
- package/dist/assets/{NotFoundView-D7OvnAVF.js.map → NotFoundView-DyiW8m6P.js.map} +1 -1
- package/dist/assets/{NotifiersView-DPXRy0Ml.js → NotifiersView-CIWU3Ohd.js} +2 -2
- package/dist/assets/{NotifiersView-DPXRy0Ml.js.map → NotifiersView-CIWU3Ohd.js.map} +1 -1
- package/dist/assets/{OverviewTab-BKYsu11o.js → OverviewTab-tJGh_KZG.js} +2 -2
- package/dist/assets/{OverviewTab-BKYsu11o.js.map → OverviewTab-tJGh_KZG.js.map} +1 -1
- package/dist/assets/{PublicLogsView-DWtP1KLG.js → PublicLogsView-CwLsI-Nz.js} +2 -2
- package/dist/assets/{PublicLogsView-DWtP1KLG.js.map → PublicLogsView-CwLsI-Nz.js.map} +1 -1
- package/dist/assets/{RefreshButton.vue_vue_type_script_setup_true_lang-zOMuwEGt.js → RefreshButton.vue_vue_type_script_setup_true_lang-C5aXqJdu.js} +2 -2
- package/dist/assets/{RefreshButton.vue_vue_type_script_setup_true_lang-zOMuwEGt.js.map → RefreshButton.vue_vue_type_script_setup_true_lang-C5aXqJdu.js.map} +1 -1
- package/dist/assets/{RegistriesView-CXFrbpKU.js → RegistriesView-399hTPKi.js} +2 -2
- package/dist/assets/{RegistriesView-CXFrbpKU.js.map → RegistriesView-399hTPKi.js.map} +1 -1
- package/dist/assets/{RelativeTime.vue_vue_type_script_setup_true_lang-DmifGQCq.js → RelativeTime.vue_vue_type_script_setup_true_lang-ze6IGxQV.js} +2 -2
- package/dist/assets/{RelativeTime.vue_vue_type_script_setup_true_lang-DmifGQCq.js.map → RelativeTime.vue_vue_type_script_setup_true_lang-ze6IGxQV.js.map} +1 -1
- package/dist/assets/{RequiresTab-DzIjJaLx.js → RequiresTab-B53DZ6Dn.js} +2 -2
- package/dist/assets/{RequiresTab-DzIjJaLx.js.map → RequiresTab-B53DZ6Dn.js.map} +1 -1
- package/dist/assets/{RouteTarget.vue_vue_type_script_setup_true_lang-mCKpGvoV.js → RouteTarget.vue_vue_type_script_setup_true_lang-B1xfCOxN.js} +2 -2
- package/dist/assets/{RouteTarget.vue_vue_type_script_setup_true_lang-mCKpGvoV.js.map → RouteTarget.vue_vue_type_script_setup_true_lang-B1xfCOxN.js.map} +1 -1
- package/dist/assets/{RoutingView-BOH2ypa8.js → RoutingView-B5gwI-1h.js} +2 -2
- package/dist/assets/{RoutingView-BOH2ypa8.js.map → RoutingView-B5gwI-1h.js.map} +1 -1
- package/dist/assets/{RuntimeTab-DZ3MZE_K.js → RuntimeTab-B9lDbflh.js} +2 -2
- package/dist/assets/{RuntimeTab-DZ3MZE_K.js.map → RuntimeTab-B9lDbflh.js.map} +1 -1
- package/dist/assets/{SelectMenu.vue_vue_type_script_setup_true_lang-CEOgxUqO.js → SelectMenu.vue_vue_type_script_setup_true_lang-JY8m6tfk.js} +2 -2
- package/dist/assets/{SelectMenu.vue_vue_type_script_setup_true_lang-CEOgxUqO.js.map → SelectMenu.vue_vue_type_script_setup_true_lang-JY8m6tfk.js.map} +1 -1
- package/dist/assets/{SettingsView-B0DeldbW.js → SettingsView-DGor_LCJ.js} +2 -2
- package/dist/assets/{SettingsView-B0DeldbW.js.map → SettingsView-DGor_LCJ.js.map} +1 -1
- package/dist/assets/{SkeletonList.vue_vue_type_script_setup_true_lang-Veni2uNM.js → SkeletonList.vue_vue_type_script_setup_true_lang-DMvuIcZF.js} +2 -2
- package/dist/assets/{SkeletonList.vue_vue_type_script_setup_true_lang-Veni2uNM.js.map → SkeletonList.vue_vue_type_script_setup_true_lang-DMvuIcZF.js.map} +1 -1
- package/dist/assets/{SpecDetailView-CYTsg3dA.js → SpecDetailView-B0IAuWzl.js} +2 -2
- package/dist/assets/{SpecDetailView-CYTsg3dA.js.map → SpecDetailView-B0IAuWzl.js.map} +1 -1
- package/dist/assets/{SpecsView-DioO-zqq.js → SpecsView-BTD2qo9l.js} +2 -2
- package/dist/assets/{SpecsView-DioO-zqq.js.map → SpecsView-BTD2qo9l.js.map} +1 -1
- package/dist/assets/{SsoMark.vue_vue_type_script_setup_true_lang-DYn0Yyze.js → SsoMark.vue_vue_type_script_setup_true_lang-BXhQGdjJ.js} +2 -2
- package/dist/assets/{SsoMark.vue_vue_type_script_setup_true_lang-DYn0Yyze.js.map → SsoMark.vue_vue_type_script_setup_true_lang-BXhQGdjJ.js.map} +1 -1
- package/dist/assets/{SsoView-B_gXfZwB.js → SsoView-B_GrAR_X.js} +2 -2
- package/dist/assets/{SsoView-B_gXfZwB.js.map → SsoView-B_GrAR_X.js.map} +1 -1
- package/dist/assets/{StateBadge.vue_vue_type_script_setup_true_lang-DABjKwrU.js → StateBadge.vue_vue_type_script_setup_true_lang-jkd_ejVw.js} +2 -2
- package/dist/assets/{StateBadge.vue_vue_type_script_setup_true_lang-DABjKwrU.js.map → StateBadge.vue_vue_type_script_setup_true_lang-jkd_ejVw.js.map} +1 -1
- package/dist/assets/{SubmitView-D3dRZ8OV.js → SubmitView-D5UffFTS.js} +2 -2
- package/dist/assets/{SubmitView-D3dRZ8OV.js.map → SubmitView-D5UffFTS.js.map} +1 -1
- package/dist/assets/{SwarmView-_n42sP13.js → SwarmView-BG2DN4OG.js} +2 -2
- package/dist/assets/{SwarmView-_n42sP13.js.map → SwarmView-BG2DN4OG.js.map} +1 -1
- package/dist/assets/{Teleport-Cy-A7RhK.js → Teleport-DwPgOPS3.js} +3 -3
- package/dist/assets/{Teleport-Cy-A7RhK.js.map → Teleport-DwPgOPS3.js.map} +1 -1
- package/dist/assets/{TerminalTab-DdbwvvIy.js → TerminalTab-BLjzwPsG.js} +2 -2
- package/dist/assets/{TerminalTab-DdbwvvIy.js.map → TerminalTab-BLjzwPsG.js.map} +1 -1
- package/dist/assets/{UsersView-Dn9cLJCI.js → UsersView-BOGuCj7S.js} +2 -2
- package/dist/assets/{UsersView-Dn9cLJCI.js.map → UsersView-BOGuCj7S.js.map} +1 -1
- package/dist/assets/{VarEditor.vue_vue_type_script_setup_true_lang-Dyb8Lmxc.js → VarEditor.vue_vue_type_script_setup_true_lang-uS04X_Kj.js} +2 -2
- package/dist/assets/{VarEditor.vue_vue_type_script_setup_true_lang-Dyb8Lmxc.js.map → VarEditor.vue_vue_type_script_setup_true_lang-uS04X_Kj.js.map} +1 -1
- package/dist/assets/{VarIO-D7bwBO4U.js → VarIO-DkbGdmrU.js} +2 -2
- package/dist/assets/{VarIO-D7bwBO4U.js.map → VarIO-DkbGdmrU.js.map} +1 -1
- package/dist/assets/{VariablesView-CH3Ktrp1.js → VariablesView-C5XVfRcx.js} +3 -3
- package/dist/assets/{VariablesView-CH3Ktrp1.js.map → VariablesView-C5XVfRcx.js.map} +1 -1
- package/dist/assets/{index-ChQCta5r.js → index-BzdU0RNE.js} +4 -4
- package/dist/assets/{index-ChQCta5r.js.map → index-BzdU0RNE.js.map} +1 -1
- package/dist/assets/{useDeployment-DiChk3VG.js → useDeployment-D3f7oVQg.js} +2 -2
- package/dist/assets/{useDeployment-DiChk3VG.js.map → useDeployment-D3f7oVQg.js.map} +1 -1
- package/dist/index.html +4 -1
- package/package.json +1 -1
- package/dist/assets/ControlView-D-akBm65.js +0 -2
- package/dist/assets/ControlView-D-akBm65.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-Do6LVtZ6.js","assets/ActionButton.vue_vue_type_script_setup_true_lang-CB94t3xm.js","assets/EquivalentCommand-CbJfYQaC.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/EquivalentCommand-BFnZRfDg.css","assets/SsoMark.vue_vue_type_script_setup_true_lang-BXhQGdjJ.js","assets/LoginView-C90w1dZ2.css","assets/DashboardView-CpJmNcFL.js","assets/StateBadge.vue_vue_type_script_setup_true_lang-jkd_ejVw.js","assets/SkeletonList.vue_vue_type_script_setup_true_lang-DMvuIcZF.js","assets/RefreshButton.vue_vue_type_script_setup_true_lang-C5aXqJdu.js","assets/DeploymentsView-CXQxjAem.js","assets/RelativeTime.vue_vue_type_script_setup_true_lang-ze6IGxQV.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-JY8m6tfk.js","assets/Teleport-DwPgOPS3.js","assets/PublicLogsView-CwLsI-Nz.js","assets/LogViewer.vue_vue_type_script_setup_true_lang-CBVTTiPn.js","assets/PublicLogsView-BAe90EbI.css","assets/DeploymentDetailView-CP2ANsF3.js","assets/useDeployment-D3f7oVQg.js","assets/useVars-VN9gYdR6.js","assets/ConflictNote.vue_vue_type_script_setup_true_lang-BtSm_ZhU.js","assets/ErrorNote.vue_vue_type_script_setup_true_lang-Imao12aK.js","assets/OverviewTab-tJGh_KZG.js","assets/ConfigTab-CqQK7vQl.js","assets/VarEditor.vue_vue_type_script_setup_true_lang-uS04X_Kj.js","assets/VarIO-DkbGdmrU.js","assets/VarIO-BVE8A4Ur.css","assets/HelpModal.vue_vue_type_script_setup_true_lang-CjoiZrMf.js","assets/DialogTrigger-BlkbgxBa.js","assets/RuntimeTab-B9lDbflh.js","assets/RouteTarget.vue_vue_type_script_setup_true_lang-B1xfCOxN.js","assets/RuntimeTab-Y2qBJykM.css","assets/AxesTab-C0OeAG-v.js","assets/RequiresTab-B53DZ6Dn.js","assets/LogsTab-DMj2p8j8.js","assets/TerminalTab-BLjzwPsG.js","assets/TerminalTab-DbjRludT.css","assets/DangerTab-Cn06aqx9.js","assets/RoutingView-B5gwI-1h.js","assets/RoutingView-tn0RQdqM.css","assets/SwarmView-BG2DN4OG.js","assets/ControlView-G6A_-Og_.js","assets/RegistriesView-399hTPKi.js","assets/NotifiersView-CIWU3Ohd.js","assets/SpecsView-BTD2qo9l.js","assets/SpecDetailView-B0IAuWzl.js","assets/SubmitView-D5UffFTS.js","assets/JobsView-CyZXyEfc.js","assets/useJobQueue-JaWoydCt.js","assets/JobsView-CC7lre3Q.css","assets/JobDetailView-lYBZcOSg.js","assets/UsersView-BOGuCj7S.js","assets/UsersView-Bd8B9pLD.css","assets/SsoView-B_GrAR_X.js","assets/SsoView-AzBjKwF_.css","assets/VariablesView-C5XVfRcx.js","assets/VariablesView-Ck3IyRCN.css","assets/ConfigView-D6Ourc5o.js","assets/SettingsView-DGor_LCJ.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();/**
|
|
3
3
|
* @vue/shared v3.5.40
|
|
4
4
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
@@ -23,7 +23,7 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-Docai
|
|
|
23
23
|
* vue-router v4.6.4
|
|
24
24
|
* (c) 2025 Eduardo San Martin Morote
|
|
25
25
|
* @license MIT
|
|
26
|
-
*/let Af=()=>location.protocol+"//"+location.host;function Jl(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,a=r.slice(i);return a[0]!=="/"&&(a="/"+a),Ko(a,"")}return Ko(n,e)+s+r}function xf(e,t,n,s){let r=[],o=[],i=null;const a=({state:p})=>{const g=Jl(e,location),x=n.value,w=t.value;let I=0;if(p){if(n.value=g,t.value=p,i&&i===x){i=null;return}I=w?p.position-w.position:0}else s(g);r.forEach(C=>{C(n.value,x,{delta:I,type:Rr.pop,direction:I?I>0?ar.forward:ar.back:ar.unknown})})};function l(){i=n.value}function c(p){r.push(p);const g=()=>{const x=r.indexOf(p);x>-1&&r.splice(x,1)};return o.push(g),g}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(ae({},p.state,{scroll:qs()}),"")}}function f(){for(const p of o)p();o=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:l,listen:c,destroy:f}}function Yo(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?qs():null}}function Cf(e){const{history:t,location:n}=window,s={value:Jl(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,c,u){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Af()+e+l;try{t[u?"replaceState":"pushState"](c,"",p),r.value=c}catch(g){console.error(g),n[u?"replace":"assign"](p)}}function i(l,c){o(l,ae({},t.state,Yo(r.value.back,l,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=l}function a(l,c){const u=ae({},r.value,t.state,{forward:l,scroll:qs()});o(u.current,u,!0),o(l,ae({},Yo(s.value,l,null),{position:u.position+1},c),!1),s.value=l}return{location:s,state:r,push:a,replace:i}}function kf(e){e=cf(e);const t=Cf(e),n=xf(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=ae({location:"",base:e,go:s,createHref:ff.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let Zt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var xe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(xe||{});const Sf={type:Zt.Static,value:""},Rf=/[a-zA-Z0-9_]/;function Tf(e){if(!e)return[[]];if(e==="/")return[[Sf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${c}": ${g}`)}let n=xe.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let a=0,l,c="",u="";function f(){c&&(n===xe.Static?o.push({type:Zt.Static,value:c}):n===xe.Param||n===xe.ParamRegExp||n===xe.ParamRegExpEnd?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Zt.Param,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=l}for(;a<e.length;){if(l=e[a++],l==="\\"&&n!==xe.ParamRegExp){s=n,n=xe.EscapeNext;continue}switch(n){case xe.Static:l==="/"?(c&&f(),i()):l===":"?(f(),n=xe.Param):p();break;case xe.EscapeNext:p(),n=s;break;case xe.Param:l==="("?n=xe.ParamRegExp:Rf.test(l)?p():(f(),n=xe.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case xe.ParamRegExp:l===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+l:n=xe.ParamRegExpEnd:u+=l;break;case xe.ParamRegExpEnd:f(),n=xe.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--,u="";break;default:t("Unknown state");break}}return n===xe.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),f(),i(),r}const Qo="[^/]+?",Pf={sensitive:!1,strict:!1,start:!0,end:!0};var $e=(function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e})($e||{});const Of=/[.+*?^${}()[\]/\\]/g;function If(e,t){const n=ae({},Pf,t),s=[];let r=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[$e.Root];n.strict&&!c.length&&(r+="/");for(let f=0;f<c.length;f++){const p=c[f];let g=$e.Segment+(n.sensitive?$e.BonusCaseSensitive:0);if(p.type===Zt.Static)f||(r+="/"),r+=p.value.replace(Of,"\\$&"),g+=$e.Static;else if(p.type===Zt.Param){const{value:x,repeatable:w,optional:I,regexp:C}=p;o.push({name:x,repeatable:w,optional:I});const _=C||Qo;if(_!==Qo){g+=$e.BonusCustomRegExp;try{`${_}`}catch(k){throw new Error(`Invalid custom RegExp for param "${x}" (${_}): `+k.message)}}let T=w?`((?:${_})(?:/(?:${_}))*)`:`(${_})`;f||(T=I&&c.length<2?`(?:/${T})`:"/"+T),I&&(T+="?"),r+=T,g+=$e.Dynamic,I&&(g+=$e.BonusOptional),w&&(g+=$e.BonusRepeatable),_===".*"&&(g+=$e.BonusWildcard)}u.push(g)}s.push(u)}if(n.strict&&n.end){const c=s.length-1;s[c][s[c].length-1]+=$e.BonusStrict}n.strict||(r+="/?"),n.end?r+="$":n.strict&&!r.endsWith("/")&&(r+="(?:/|$)");const i=new RegExp(r,n.sensitive?"":"i");function a(c){const u=c.match(i),f={};if(!u)return null;for(let p=1;p<u.length;p++){const g=u[p]||"",x=o[p-1];f[x.name]=g&&x.repeatable?g.split("/"):g}return f}function l(c){let u="",f=!1;for(const p of e){(!f||!u.endsWith("/"))&&(u+="/"),f=!1;for(const g of p)if(g.type===Zt.Static)u+=g.value;else if(g.type===Zt.Param){const{value:x,repeatable:w,optional:I}=g,C=x in c?c[x]:"";if(ot(C)&&!w)throw new Error(`Provided param "${x}" is an array but it is not repeatable (* or + modifiers)`);const _=ot(C)?C.join("/"):C;if(!_)if(I)p.length<2&&(u.endsWith("/")?u=u.slice(0,-1):f=!0);else throw new Error(`Missing required param "${x}"`);u+=_}}return u||"/"}return{re:i,score:s,keys:o,parse:a,stringify:l}}function Mf(e,t){let n=0;for(;n<e.length&&n<t.length;){const s=t[n]-e[n];if(s)return s;n++}return e.length<t.length?e.length===1&&e[0]===$e.Static+$e.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===$e.Static+$e.Segment?1:-1:0}function Yl(e,t){let n=0;const s=e.score,r=t.score;for(;n<s.length&&n<r.length;){const o=Mf(s[n],r[n]);if(o)return o;n++}if(Math.abs(r.length-s.length)===1){if(Xo(s))return 1;if(Xo(r))return-1}return r.length-s.length}function Xo(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const Nf={strict:!1,end:!0,sensitive:!1};function Lf(e,t,n){const s=If(Tf(e.path),n),r=ae(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Df(e,t){const n=[],s=new Map;t=Go(Nf,t);function r(f){return s.get(f)}function o(f,p,g){const x=!g,w=ei(f);w.aliasOf=g&&g.record;const I=Go(t,f),C=[w];if("alias"in f){const k=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of k)C.push(ei(ae({},w,{components:g?g.record.components:w.components,path:U,aliasOf:g?g.record:w})))}let _,T;for(const k of C){const{path:U}=k;if(p&&U[0]!=="/"){const J=p.record.path,j=J[J.length-1]==="/"?"":"/";k.path=p.record.path+(U&&j+U)}if(_=Lf(k,p,I),g?g.alias.push(_):(T=T||_,T!==_&&T.alias.push(_),x&&f.name&&!ti(_)&&i(f.name)),Ql(_)&&l(_),w.children){const J=w.children;for(let j=0;j<J.length;j++)o(J[j],_,g&&g.children[j])}g=g||_}return T?()=>{i(T)}:Hn}function i(f){if(ql(f)){const p=s.get(f);p&&(s.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&s.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const p=Ff(f,n);n.splice(p,0,f),f.record.name&&!ti(f)&&s.set(f.record.name,f)}function c(f,p){let g,x={},w,I;if("name"in f&&f.name){if(g=s.get(f.name),!g)throw An(_e.MATCHER_NOT_FOUND,{location:f});I=g.record.name,x=ae(Zo(p.params,g.keys.filter(T=>!T.optional).concat(g.parent?g.parent.keys.filter(T=>T.optional):[]).map(T=>T.name)),f.params&&Zo(f.params,g.keys.map(T=>T.name))),w=g.stringify(x)}else if(f.path!=null)w=f.path,g=n.find(T=>T.re.test(w)),g&&(x=g.parse(w),I=g.record.name);else{if(g=p.name?s.get(p.name):n.find(T=>T.re.test(p.path)),!g)throw An(_e.MATCHER_NOT_FOUND,{location:f,currentLocation:p});I=g.record.name,x=ae({},p.params,f.params),w=g.stringify(x)}const C=[];let _=g;for(;_;)C.unshift(_.record),_=_.parent;return{name:I,path:w,params:x,matched:C,meta:jf(C)}}e.forEach(f=>o(f));function u(){n.length=0,s.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:a,getRecordMatcher:r}}function Zo(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function ei(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Vf(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Vf(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function ti(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function jf(e){return e.reduce((t,n)=>ae(t,n.meta),{})}function Ff(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;Yl(e,t[o])<0?s=o:n=o+1}const r=Bf(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function Bf(e){let t=e;for(;t=t.parent;)if(Ql(t)&&Yl(e,t)===0)return t}function Ql({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ni(e){const t=st(zs),n=st(qr),s=Ie(()=>{const l=G(e.to);return t.resolve(l)}),r=Ie(()=>{const{matched:l}=s.value,{length:c}=l,u=l[c-1],f=n.matched;if(!u||!f.length)return-1;const p=f.findIndex(wn.bind(null,u));if(p>-1)return p;const g=si(l[c-2]);return c>1&&si(u)===g&&f[f.length-1].path!==g?f.findIndex(wn.bind(null,l[c-2])):p}),o=Ie(()=>r.value>-1&&Kf(n.params,s.value.params)),i=Ie(()=>r.value>-1&&r.value===n.matched.length-1&&Wl(n.params,s.value.params));function a(l={}){if(Gf(l)){const c=t[G(e.replace)?"replace":"push"](G(e.to)).catch(Hn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:Ie(()=>s.value.href),isActive:o,isExactActive:i,navigate:a}}function $f(e){return e.length===1?e[0]:e}const Hf=sn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ni,setup(e,{slots:t}){const n=Kt(ni(e)),{options:s}=st(zs),r=Ie(()=>({[ri(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[ri(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&$f(t.default(n));return e.custom?o:_n("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),Uf=Hf;function Gf(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Kf(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!ot(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function si(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ri=(e,t,n)=>e??t??n,Wf=sn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=st(Pr),r=Ie(()=>e.route||s.value),o=st(Jo,0),i=Ie(()=>{let c=G(o);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=Ie(()=>r.value.matched[i.value]);us(Jo,Ie(()=>i.value+1)),us(Ef,a),us(Pr,r);const l=Ze();return mt(()=>[l.value,a.value,e.name],([c,u,f],[p,g,x])=>{u&&(u.instances[f]=c,g&&g!==u&&c&&c===p&&(u.leaveGuards.size||(u.leaveGuards=g.leaveGuards),u.updateGuards.size||(u.updateGuards=g.updateGuards))),c&&u&&(!g||!wn(u,g)||!p)&&(u.enterCallbacks[f]||[]).forEach(w=>w(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,f=a.value,p=f&&f.components[u];if(!p)return oi(n.default,{Component:p,route:c});const g=f.props[u],x=g?g===!0?c.params:typeof g=="function"?g(c):g:null,I=_n(p,ae({},x,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return oi(n.default,{Component:I,route:c})||I}}});function oi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const qf=Wf;function zf(e){const t=Df(e.routes,e),n=e.parseQuery||_f,s=e.stringifyQuery||zo,r=e.history,o=On(),i=On(),a=On(),l=Ma(Mt);let c=Mt;un&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=ir.bind(null,b=>""+b),f=ir.bind(null,tf),p=ir.bind(null,Qn);function g(b,D){let O,B;return ql(b)?(O=t.getRecordMatcher(b),B=D):B=b,t.addRoute(B,O)}function x(b){const D=t.getRecordMatcher(b);D&&t.removeRoute(D)}function w(){return t.getRoutes().map(b=>b.record)}function I(b){return!!t.getRecordMatcher(b)}function C(b,D){if(D=ae({},D||l.value),typeof b=="string"){const m=lr(n,b,D.path),v=t.resolve({path:m.path},D),E=r.createHref(m.fullPath);return ae(m,v,{params:p(v.params),hash:Qn(m.hash),redirectedFrom:void 0,href:E})}let O;if(b.path!=null)O=ae({},b,{path:lr(n,b.path,D.path).path});else{const m=ae({},b.params);for(const v in m)m[v]==null&&delete m[v];O=ae({},b,{params:f(m)}),D.params=f(D.params)}const B=t.resolve(O,D),Q=b.hash||"";B.params=u(p(B.params));const d=rf(s,ae({},b,{hash:Xu(Q),path:B.path})),h=r.createHref(d);return ae({fullPath:d,hash:Q,query:s===zo?bf(b.query):b.query||{}},B,{redirectedFrom:void 0,href:h})}function _(b){return typeof b=="string"?lr(n,b,l.value.path):ae({},b)}function T(b,D){if(c!==b)return An(_e.NAVIGATION_CANCELLED,{from:D,to:b})}function k(b){return j(b)}function U(b){return k(ae(_(b),{replace:!0}))}function J(b,D){const O=b.matched[b.matched.length-1];if(O&&O.redirect){const{redirect:B}=O;let Q=typeof B=="function"?B(b,D):B;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=_(Q):{path:Q},Q.params={}),ae({query:b.query,hash:b.hash,params:Q.path!=null?{}:b.params},Q)}}function j(b,D){const O=c=C(b),B=l.value,Q=b.state,d=b.force,h=b.replace===!0,m=J(O,B);if(m)return j(ae(_(m),{state:typeof m=="object"?ae({},Q,m.state):Q,force:d,replace:h}),D||O);const v=O;v.redirectedFrom=D;let E;return!d&&of(s,B,O)&&(E=An(_e.NAVIGATION_DUPLICATED,{to:v,from:B}),it(B,B,!0,!1)),(E?Promise.resolve(E):Y(v,B)).catch(y=>_t(y)?_t(y,_e.NAVIGATION_GUARD_REDIRECT)?y:Ot(y):ie(y,v,B)).then(y=>{if(y){if(_t(y,_e.NAVIGATION_GUARD_REDIRECT))return j(ae({replace:h},_(y.to),{state:typeof y.to=="object"?ae({},Q,y.to.state):Q,force:d}),D||v)}else y=N(v,B,!0,h,Q);return re(v,B,y),y})}function te(b,D){const O=T(b,D);return O?Promise.reject(O):Promise.resolve()}function L(b){const D=on.values().next().value;return D&&typeof D.runWithContext=="function"?D.runWithContext(b):b()}function Y(b,D){let O;const[B,Q,d]=wf(b,D);O=cr(B.reverse(),"beforeRouteLeave",b,D);for(const m of B)m.leaveGuards.forEach(v=>{O.push(Vt(v,b,D))});const h=te.bind(null,b,D);return O.push(h),Ye(O).then(()=>{O=[];for(const m of o.list())O.push(Vt(m,b,D));return O.push(h),Ye(O)}).then(()=>{O=cr(Q,"beforeRouteUpdate",b,D);for(const m of Q)m.updateGuards.forEach(v=>{O.push(Vt(v,b,D))});return O.push(h),Ye(O)}).then(()=>{O=[];for(const m of d)if(m.beforeEnter)if(ot(m.beforeEnter))for(const v of m.beforeEnter)O.push(Vt(v,b,D));else O.push(Vt(m.beforeEnter,b,D));return O.push(h),Ye(O)}).then(()=>(b.matched.forEach(m=>m.enterCallbacks={}),O=cr(d,"beforeRouteEnter",b,D,L),O.push(h),Ye(O))).then(()=>{O=[];for(const m of i.list())O.push(Vt(m,b,D));return O.push(h),Ye(O)}).catch(m=>_t(m,_e.NAVIGATION_CANCELLED)?m:Promise.reject(m))}function re(b,D,O){a.list().forEach(B=>L(()=>B(b,D,O)))}function N(b,D,O,B,Q){const d=T(b,D);if(d)return d;const h=D===Mt,m=un?history.state:{};O&&(B||h?r.replace(b.fullPath,ae({scroll:h&&m&&m.scroll},Q)):r.push(b.fullPath,Q)),l.value=b,it(b,D,O,h),Ot()}let ne;function ve(){ne||(ne=r.listen((b,D,O)=>{if(!Wt.listening)return;const B=C(b),Q=J(B,Wt.currentRoute.value);if(Q){j(ae(Q,{replace:!0,force:!0}),B).catch(Hn);return}c=B;const d=l.value;un&&pf(qo(d.fullPath,O.delta),qs()),Y(B,d).catch(h=>_t(h,_e.NAVIGATION_ABORTED|_e.NAVIGATION_CANCELLED)?h:_t(h,_e.NAVIGATION_GUARD_REDIRECT)?(j(ae(_(h.to),{force:!0}),B).then(m=>{_t(m,_e.NAVIGATION_ABORTED|_e.NAVIGATION_DUPLICATED)&&!O.delta&&O.type===Rr.pop&&r.go(-1,!1)}).catch(Hn),Promise.reject()):(O.delta&&r.go(-O.delta,!1),ie(h,B,d))).then(h=>{h=h||N(B,d,!1),h&&(O.delta&&!_t(h,_e.NAVIGATION_CANCELLED)?r.go(-O.delta,!1):O.type===Rr.pop&&_t(h,_e.NAVIGATION_ABORTED|_e.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),re(B,d,h)}).catch(Hn)}))}let Ge=On(),we=On(),ue;function ie(b,D,O){Ot(b);const B=we.list();return B.length?B.forEach(Q=>Q(b,D,O)):console.error(b),Promise.reject(b)}function yt(){return ue&&l.value!==Mt?Promise.resolve():new Promise((b,D)=>{Ge.add([b,D])})}function Ot(b){return ue||(ue=!b,ve(),Ge.list().forEach(([D,O])=>b?O(b):D()),Ge.reset()),b}function it(b,D,O,B){const{scrollBehavior:Q}=e;if(!un||!Q)return Promise.resolve();const d=!O&&gf(qo(b.fullPath,0))||(B||!O)&&history.state&&history.state.scroll||null;return vn().then(()=>Q(b,D,d)).then(h=>h&&hf(h)).catch(h=>ie(h,b,D))}const Ue=b=>r.go(b);let rn;const on=new Set,Wt={currentRoute:l,listening:!0,addRoute:g,removeRoute:x,clearRoutes:t.clearRoutes,hasRoute:I,getRoutes:w,resolve:C,options:e,push:k,replace:U,go:Ue,back:()=>Ue(-1),forward:()=>Ue(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:we.add,isReady:yt,install(b){b.component("RouterLink",Uf),b.component("RouterView",qf),b.config.globalProperties.$router=Wt,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>G(l)}),un&&!rn&&l.value===Mt&&(rn=!0,k(r.location).catch(B=>{}));const D={};for(const B in Mt)Object.defineProperty(D,B,{get:()=>l.value[B],enumerable:!0});b.provide(zs,Wt),b.provide(qr,ji(D)),b.provide(Pr,l);const O=b.unmount;on.add(b),b.unmount=function(){on.delete(b),on.size<1&&(c=Mt,ne&&ne(),ne=null,l.value=Mt,rn=!1,ue=!1),O()}}};function Ye(b){return b.reduce((D,O)=>D.then(()=>L(O)),Promise.resolve())}return Wt}function zr(){return st(zs)}function Jf(e){return st(qr)}const Yf=[{path:"/login",name:"login",component:()=>le(()=>import("./LoginView-Docai9d6.js"),__vite__mapDeps([0,1,2,3,4,5,6]))},{path:"/",name:"dashboard",component:()=>le(()=>import("./DashboardView-BWa1V1EI.js"),__vite__mapDeps([7,8,9,10]))},{path:"/deployments",name:"deployments",component:()=>le(()=>import("./DeploymentsView-CD84qmqw.js"),__vite__mapDeps([11,9,12,13,14,10]))},{path:"/deployments/:id/public-logs-view",name:"public-logs",component:()=>le(()=>import("./PublicLogsView-DWtP1KLG.js"),__vite__mapDeps([15,16,13,14,3,17])),props:!0,meta:{public:!0}},{path:"/deployments/:id",component:()=>le(()=>import("./DeploymentDetailView-Cs1sMvRs.js"),__vite__mapDeps([18,19,20,21,1,22,10])),props:!0,children:[{path:"",name:"deployment",redirect:e=>`/deployments/${e.params.id}/overview`},{path:"overview",name:"d.overview",component:()=>le(()=>import("./OverviewTab-BKYsu11o.js"),__vite__mapDeps([23,19,20,9]))},{path:"config",name:"d.config",component:()=>le(()=>import("./ConfigTab-DLjvLYzj.js"),__vite__mapDeps([24,19,20,25,26,13,14,3,27,28,29]))},{path:"runtime",name:"d.runtime",component:()=>le(()=>import("./RuntimeTab-DZ3MZE_K.js"),__vite__mapDeps([30,19,20,9,1,22,29,14,3,31,10,32]))},{path:"axes",name:"d.axes",component:()=>le(()=>import("./AxesTab-Bb8UjmaR.js"),__vite__mapDeps([33,19,20]))},{path:"requires",name:"d.requires",component:()=>le(()=>import("./RequiresTab-DzIjJaLx.js"),__vite__mapDeps([34,19,20]))},{path:"logs",name:"d.logs",component:()=>le(()=>import("./LogsTab-Cfauurch.js"),__vite__mapDeps([35,19,20,13,14,16]))},{path:"terminal",name:"d.terminal",component:()=>le(()=>import("./TerminalTab-DdbwvvIy.js"),__vite__mapDeps([36,22,13,14,3,37]))},{path:"danger",name:"d.danger",component:()=>le(()=>import("./DangerTab-DFtbEcU-.js"),__vite__mapDeps([38,19,20,21,1,22,2,3,4,13,14]))}]},{path:"/routing",name:"routing",component:()=>le(()=>import("./RoutingView-BOH2ypa8.js"),__vite__mapDeps([39,1,22,9,28,29,14,10,31,3,40]))},{path:"/swarm",name:"swarm",component:()=>le(()=>import("./SwarmView-_n42sP13.js"),__vite__mapDeps([41,1,22,28,29,14,10,13,9]))},{path:"/control",name:"control",component:()=>le(()=>import("./ControlView-D-akBm65.js"),__vite__mapDeps([42,1,22,28,29,14,10,9]))},{path:"/registries",name:"registries",component:()=>le(()=>import("./RegistriesView-CXFrbpKU.js"),__vite__mapDeps([43,1,22,9,28,29,14,10]))},{path:"/notifiers",name:"notifiers",component:()=>le(()=>import("./NotifiersView-DPXRy0Ml.js"),__vite__mapDeps([44,1,22,9,12,13,14,10]))},{path:"/specs",name:"specs",component:()=>le(()=>import("./SpecsView-DioO-zqq.js"),__vite__mapDeps([45,9,22,12,2,3,4,10]))},{path:"/specs/:name",name:"spec",component:()=>le(()=>import("./SpecDetailView-CYTsg3dA.js"),__vite__mapDeps([46,9,22])),props:!0},{path:"/submit/:id?",name:"submit",component:()=>le(()=>import("./SubmitView-D3dRZ8OV.js"),__vite__mapDeps([47,20,1,22,25,26,13,14,3,27])),props:!0},{path:"/jobs",name:"jobs",component:()=>le(()=>import("./JobsView-BMWq45ys.js"),__vite__mapDeps([48,8,9,12,13,14,49,10,3,50]))},{path:"/jobs/:jobId",name:"job",component:()=>le(()=>import("./JobDetailView-DeRVlajk.js"),__vite__mapDeps([51,49,16,8,1,22])),props:!0},{path:"/users",name:"users",component:()=>le(()=>import("./UsersView-Dn9cLJCI.js"),__vite__mapDeps([52,1,2,3,4,22,12,9,10,13,14,53]))},{path:"/sso",name:"sso",component:()=>le(()=>import("./SsoView-B_gXfZwB.js"),__vite__mapDeps([54,1,22,28,29,14,12,13,9,5,3,55]))},{path:"/variables",name:"variables",component:()=>le(()=>import("./VariablesView-CH3Ktrp1.js"),__vite__mapDeps([56,1,2,3,4,22,12,9,10,26,13,14,27,57]))},{path:"/config",name:"config",component:()=>le(()=>import("./ConfigView-BO_yZHja.js"),__vite__mapDeps([58,1,22]))},{path:"/settings",name:"settings",component:()=>le(()=>import("./SettingsView-B0DeldbW.js"),__vite__mapDeps([59,49,1,22,13,14]))},{path:"/:pathMatch(.*)*",name:"not-found",component:()=>le(()=>import("./NotFoundView-D7OvnAVF.js"),[])}],xn=zf({history:kf(),routes:Yf,scrollBehavior:(e,t,n)=>n??{top:0}});xn.beforeEach(async e=>{if(e.meta.public)return!0;const{authState:t,checkAuth:n}=await le(async()=>{const{authState:s,checkAuth:r}=await Promise.resolve().then(()=>Ed);return{authState:s,checkAuth:r}},void 0);return t.checked||await n(),e.name==="login"?t.authed?{path:"/"}:!0:t.authed?!0:{name:"login",query:e.fullPath!=="/"?{next:e.fullPath}:{}}});const Jr=typeof document<"u"&&typeof document.startViewTransition=="function";Jr&&(document.documentElement.dataset.vt="on");if(Jr){let e=null;xn.beforeResolve(()=>new Promise(t=>{document.startViewTransition(()=>(t(),new Promise(n=>{e=n,setTimeout(()=>{e==null||e(),e=null},400)})))})),xn.afterEach(async()=>{await vn(),e==null||e(),e=null})}let Qf=0;const mn=Kt([]);function Xl(e){const t=mn.findIndex(n=>n.id===e);t>=0&&mn.splice(t,1)}function kh(e,t,n={}){const s=++Qf;mn.push({id:s,kind:e,text:t,to:n.to,toLabel:n.toLabel});const r=n.ms??(e==="error"?0:6e3);for(r>0&&setTimeout(()=>Xl(s),r);mn.length>5;)mn.shift();return s}const Xf={class:"toasts","aria-live":"polite","aria-atomic":"false"},Zf=["aria-label","onClick"],ed=sn({__name:"ToastHost",setup(e){return(t,n)=>{const s=vr("RouterLink");return z(),me("div",Xf,[H(wu,{name:"toast"},{default:ge(()=>[(z(!0),me(be,null,_s(G(mn),r=>(z(),me("div",{key:r.id,class:Ft(["toast",r.kind])},[V("div",null,[V("div",null,Pe(r.text),1),r.to?(z(),We(s,{key:0,to:r.to},{default:ge(()=>[jt(Pe(r.toLabel??"Open")+" →",1)]),_:2},1032,["to"])):Se("",!0)]),V("button",{class:"x","aria-label":`dismiss: ${r.text}`,onClick:o=>G(Xl)(r.id)},"✕",8,Zf)],2))),128))]),_:1})])}}}),td=900;function ii(e){const t=e;if(!t)return!1;const n=t.tagName;return n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||t.isContentEditable===!0}function nd(){const e=zr(),t=Ze(!1);let n=0,s="";const r=o=>{if(o.key==="Escape"){t.value&&(t.value=!1,o.preventDefault()),ii(o.target)&&o.target.blur();return}if(o.metaKey||o.ctrlKey||o.altKey||ii(o.target))return;const i=Date.now();if(s==="g"&&i-n<td){s="";const a={d:"/deployments",j:"/jobs",h:"/",s:"/settings",n:"/submit"}[o.key];a&&(o.preventDefault(),e.push(a));return}if(o.key==="g"){s="g",n=i;return}if(s="",o.key==="?"){o.preventDefault(),t.value=!t.value;return}if(o.key==="/"){const a=document.querySelector("[data-search]");a&&(o.preventDefault(),a.focus(),a.select())}};return kn(()=>document.addEventListener("keydown",r)),ts(()=>document.removeEventListener("keydown",r)),{sheetOpen:t}}const sd=[{keys:"⌘K / Ctrl-K",what:"Open the command palette — jump to any deployment or page"},{keys:"?",what:"Open or close this sheet"},{keys:"g h",what:"Go to the dashboard"},{keys:"g d",what:"Go to deployments"},{keys:"g j",what:"Go to jobs"},{keys:"g n",what:"Go to submit"},{keys:"g s",what:"Go to settings"},{keys:"/",what:"Focus the search box on this view"},{keys:"Esc",what:"Close this sheet, or leave the field you are typing in"}],rd={class:"sheet"},od={class:"row"},id=sn({__name:"ShortcutSheet",props:{open:{type:Boolean}},emits:["close"],setup(e,{emit:t}){const n=t;return(s,r)=>(z(),We(Ws,{name:"fade"},{default:ge(()=>[e.open?(z(),me("div",{key:0,class:"scrim",role:"dialog","aria-modal":"true","aria-label":"Keyboard shortcuts",onClick:r[1]||(r[1]=Fl(o=>n("close"),["self"]))},[V("div",rd,[V("div",od,[r[2]||(r[2]=V("h2",{style:{"font-size":"var(--t-lg)","font-weight":"650"}},"Keyboard shortcuts",-1)),r[3]||(r[3]=V("span",{class:"grow"},null,-1)),V("button",{class:"ghost sm",onClick:r[0]||(r[0]=o=>n("close"))},"Close")]),V("dl",null,[(z(!0),me(be,null,_s(G(sd),o=>(z(),me(be,{key:o.keys},[V("dt",null,[(z(!0),me(be,null,_s(o.keys.split(" "),i=>(z(),me("kbd",{key:i,style:{"margin-left":"4px"}},Pe(i),1))),128))]),V("dd",null,Pe(o.what),1)],64))),128))])])])):Se("",!0)]),_:1}))}}),Ut={token:"pstack.ui.token",apiBase:"pstack.ui.apiBase",theme:"pstack.ui.theme",motion:"pstack.ui.motion"};function Cs(e,t){try{return localStorage.getItem(e)??t}catch{return t}}function ks(e,t){try{t?localStorage.setItem(e,t):localStorage.removeItem(e)}catch{}}const ur=Cs(Ut.theme,"system"),fr=Cs(Ut.motion,"system"),Oe=Kt({token:Cs(Ut.token,""),apiBase:Cs(Ut.apiBase,""),theme:ur==="dark"||ur==="light"?ur:"system",motion:fr==="full"||fr==="none"?fr:"system"});function Zl(){const e=document.documentElement;Oe.theme==="system"?delete e.dataset.theme:e.dataset.theme=Oe.theme,Oe.motion==="system"?delete e.dataset.motion:e.dataset.motion=Oe.motion}mt(()=>Oe.token,e=>ks(Ut.token,e));mt(()=>Oe.apiBase,e=>ks(Ut.apiBase,e));mt(()=>[Oe.theme,Oe.motion],()=>{ks(Ut.theme,Oe.theme==="system"?"":Oe.theme),ks(Ut.motion,Oe.motion==="system"?"":Oe.motion),Zl()});Zl();function Sh(e,t={}){const n=new URLSearchParams;for(const r of e)r.k&&n.set(r.k,r.v??"");for(const[r,o]of Object.entries(t))n.set(r,String(o));const s=n.toString();return s?`?${s}`:""}function Or(e){const t=Oe.apiBase.replace(/\/$/,""),n=t?t+e:e;return Ir?`${n}${n.includes("?")?"&":"?"}token=${encodeURIComponent(Ir)}`:n}let Ir="";function Rh(e){Ir=e}let hs=null;function ld(e){hs=e}async function an(e,t,n,s=!1){const r={};e!=="GET"&&(r["content-type"]="application/json"),Oe.token&&(r.authorization=`Bearer ${Oe.token}`);try{const o=await fetch(Or(t),{method:e,headers:r,body:n===void 0?void 0:JSON.stringify(n)}),i=await o.text();let a=null;try{a=i?JSON.parse(i):null}catch{}return o.status===401&&!t.startsWith("/api/auth/")&&(hs==null||hs()),a===null&&i?{status:o.status,ok:o.ok,body:{},raw:i,notJson:!0}:{status:o.status,ok:o.ok,body:a??{},raw:i,notJson:!1}}catch(o){return{status:0,ok:!1,body:{error:`unreachable: ${o.message}`},raw:"",notJson:!1}}}const Gt={get:e=>an("GET",e),getAuthed:e=>an("GET",e,void 0,!0),post:(e,t)=>an("POST",e,t??{}),put:(e,t)=>an("PUT",e,t),patch:(e,t)=>an("PATCH",e,t),del:e=>an("DELETE",e),getText:async e=>{const t={};Oe.token&&(t.authorization=`Bearer ${Oe.token}`);try{const n=await fetch(Or(e),{headers:t});return{status:n.status,ok:n.ok,text:await n.text()}}catch(n){return{status:0,ok:!1,text:`unreachable: ${n.message}`}}},url:Or};function Yr(e,t){if(e.status===0)return e.body.error??"unreachable";if(e.status===401)return`${t}: 401 unauthorized — set the bearer token in Settings.`;if(e.notJson)return`${t}: HTTP ${e.status}, and the response was not JSON. Something other than the pstack API answered — a proxy, or an error page.
|
|
26
|
+
*/let Af=()=>location.protocol+"//"+location.host;function Jl(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,a=r.slice(i);return a[0]!=="/"&&(a="/"+a),Ko(a,"")}return Ko(n,e)+s+r}function xf(e,t,n,s){let r=[],o=[],i=null;const a=({state:p})=>{const g=Jl(e,location),x=n.value,w=t.value;let I=0;if(p){if(n.value=g,t.value=p,i&&i===x){i=null;return}I=w?p.position-w.position:0}else s(g);r.forEach(C=>{C(n.value,x,{delta:I,type:Rr.pop,direction:I?I>0?ar.forward:ar.back:ar.unknown})})};function l(){i=n.value}function c(p){r.push(p);const g=()=>{const x=r.indexOf(p);x>-1&&r.splice(x,1)};return o.push(g),g}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(ae({},p.state,{scroll:qs()}),"")}}function f(){for(const p of o)p();o=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:l,listen:c,destroy:f}}function Yo(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?qs():null}}function Cf(e){const{history:t,location:n}=window,s={value:Jl(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,c,u){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Af()+e+l;try{t[u?"replaceState":"pushState"](c,"",p),r.value=c}catch(g){console.error(g),n[u?"replace":"assign"](p)}}function i(l,c){o(l,ae({},t.state,Yo(r.value.back,l,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=l}function a(l,c){const u=ae({},r.value,t.state,{forward:l,scroll:qs()});o(u.current,u,!0),o(l,ae({},Yo(s.value,l,null),{position:u.position+1},c),!1),s.value=l}return{location:s,state:r,push:a,replace:i}}function kf(e){e=cf(e);const t=Cf(e),n=xf(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=ae({location:"",base:e,go:s,createHref:ff.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let Zt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var xe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(xe||{});const Sf={type:Zt.Static,value:""},Rf=/[a-zA-Z0-9_]/;function Tf(e){if(!e)return[[]];if(e==="/")return[[Sf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${c}": ${g}`)}let n=xe.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let a=0,l,c="",u="";function f(){c&&(n===xe.Static?o.push({type:Zt.Static,value:c}):n===xe.Param||n===xe.ParamRegExp||n===xe.ParamRegExpEnd?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Zt.Param,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=l}for(;a<e.length;){if(l=e[a++],l==="\\"&&n!==xe.ParamRegExp){s=n,n=xe.EscapeNext;continue}switch(n){case xe.Static:l==="/"?(c&&f(),i()):l===":"?(f(),n=xe.Param):p();break;case xe.EscapeNext:p(),n=s;break;case xe.Param:l==="("?n=xe.ParamRegExp:Rf.test(l)?p():(f(),n=xe.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case xe.ParamRegExp:l===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+l:n=xe.ParamRegExpEnd:u+=l;break;case xe.ParamRegExpEnd:f(),n=xe.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--,u="";break;default:t("Unknown state");break}}return n===xe.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),f(),i(),r}const Qo="[^/]+?",Pf={sensitive:!1,strict:!1,start:!0,end:!0};var $e=(function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e})($e||{});const Of=/[.+*?^${}()[\]/\\]/g;function If(e,t){const n=ae({},Pf,t),s=[];let r=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[$e.Root];n.strict&&!c.length&&(r+="/");for(let f=0;f<c.length;f++){const p=c[f];let g=$e.Segment+(n.sensitive?$e.BonusCaseSensitive:0);if(p.type===Zt.Static)f||(r+="/"),r+=p.value.replace(Of,"\\$&"),g+=$e.Static;else if(p.type===Zt.Param){const{value:x,repeatable:w,optional:I,regexp:C}=p;o.push({name:x,repeatable:w,optional:I});const _=C||Qo;if(_!==Qo){g+=$e.BonusCustomRegExp;try{`${_}`}catch(k){throw new Error(`Invalid custom RegExp for param "${x}" (${_}): `+k.message)}}let T=w?`((?:${_})(?:/(?:${_}))*)`:`(${_})`;f||(T=I&&c.length<2?`(?:/${T})`:"/"+T),I&&(T+="?"),r+=T,g+=$e.Dynamic,I&&(g+=$e.BonusOptional),w&&(g+=$e.BonusRepeatable),_===".*"&&(g+=$e.BonusWildcard)}u.push(g)}s.push(u)}if(n.strict&&n.end){const c=s.length-1;s[c][s[c].length-1]+=$e.BonusStrict}n.strict||(r+="/?"),n.end?r+="$":n.strict&&!r.endsWith("/")&&(r+="(?:/|$)");const i=new RegExp(r,n.sensitive?"":"i");function a(c){const u=c.match(i),f={};if(!u)return null;for(let p=1;p<u.length;p++){const g=u[p]||"",x=o[p-1];f[x.name]=g&&x.repeatable?g.split("/"):g}return f}function l(c){let u="",f=!1;for(const p of e){(!f||!u.endsWith("/"))&&(u+="/"),f=!1;for(const g of p)if(g.type===Zt.Static)u+=g.value;else if(g.type===Zt.Param){const{value:x,repeatable:w,optional:I}=g,C=x in c?c[x]:"";if(ot(C)&&!w)throw new Error(`Provided param "${x}" is an array but it is not repeatable (* or + modifiers)`);const _=ot(C)?C.join("/"):C;if(!_)if(I)p.length<2&&(u.endsWith("/")?u=u.slice(0,-1):f=!0);else throw new Error(`Missing required param "${x}"`);u+=_}}return u||"/"}return{re:i,score:s,keys:o,parse:a,stringify:l}}function Mf(e,t){let n=0;for(;n<e.length&&n<t.length;){const s=t[n]-e[n];if(s)return s;n++}return e.length<t.length?e.length===1&&e[0]===$e.Static+$e.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===$e.Static+$e.Segment?1:-1:0}function Yl(e,t){let n=0;const s=e.score,r=t.score;for(;n<s.length&&n<r.length;){const o=Mf(s[n],r[n]);if(o)return o;n++}if(Math.abs(r.length-s.length)===1){if(Xo(s))return 1;if(Xo(r))return-1}return r.length-s.length}function Xo(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const Nf={strict:!1,end:!0,sensitive:!1};function Lf(e,t,n){const s=If(Tf(e.path),n),r=ae(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Df(e,t){const n=[],s=new Map;t=Go(Nf,t);function r(f){return s.get(f)}function o(f,p,g){const x=!g,w=ei(f);w.aliasOf=g&&g.record;const I=Go(t,f),C=[w];if("alias"in f){const k=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of k)C.push(ei(ae({},w,{components:g?g.record.components:w.components,path:U,aliasOf:g?g.record:w})))}let _,T;for(const k of C){const{path:U}=k;if(p&&U[0]!=="/"){const J=p.record.path,j=J[J.length-1]==="/"?"":"/";k.path=p.record.path+(U&&j+U)}if(_=Lf(k,p,I),g?g.alias.push(_):(T=T||_,T!==_&&T.alias.push(_),x&&f.name&&!ti(_)&&i(f.name)),Ql(_)&&l(_),w.children){const J=w.children;for(let j=0;j<J.length;j++)o(J[j],_,g&&g.children[j])}g=g||_}return T?()=>{i(T)}:Hn}function i(f){if(ql(f)){const p=s.get(f);p&&(s.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&s.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const p=Ff(f,n);n.splice(p,0,f),f.record.name&&!ti(f)&&s.set(f.record.name,f)}function c(f,p){let g,x={},w,I;if("name"in f&&f.name){if(g=s.get(f.name),!g)throw An(_e.MATCHER_NOT_FOUND,{location:f});I=g.record.name,x=ae(Zo(p.params,g.keys.filter(T=>!T.optional).concat(g.parent?g.parent.keys.filter(T=>T.optional):[]).map(T=>T.name)),f.params&&Zo(f.params,g.keys.map(T=>T.name))),w=g.stringify(x)}else if(f.path!=null)w=f.path,g=n.find(T=>T.re.test(w)),g&&(x=g.parse(w),I=g.record.name);else{if(g=p.name?s.get(p.name):n.find(T=>T.re.test(p.path)),!g)throw An(_e.MATCHER_NOT_FOUND,{location:f,currentLocation:p});I=g.record.name,x=ae({},p.params,f.params),w=g.stringify(x)}const C=[];let _=g;for(;_;)C.unshift(_.record),_=_.parent;return{name:I,path:w,params:x,matched:C,meta:jf(C)}}e.forEach(f=>o(f));function u(){n.length=0,s.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:a,getRecordMatcher:r}}function Zo(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function ei(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Vf(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Vf(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function ti(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function jf(e){return e.reduce((t,n)=>ae(t,n.meta),{})}function Ff(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;Yl(e,t[o])<0?s=o:n=o+1}const r=Bf(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function Bf(e){let t=e;for(;t=t.parent;)if(Ql(t)&&Yl(e,t)===0)return t}function Ql({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ni(e){const t=st(zs),n=st(qr),s=Ie(()=>{const l=G(e.to);return t.resolve(l)}),r=Ie(()=>{const{matched:l}=s.value,{length:c}=l,u=l[c-1],f=n.matched;if(!u||!f.length)return-1;const p=f.findIndex(wn.bind(null,u));if(p>-1)return p;const g=si(l[c-2]);return c>1&&si(u)===g&&f[f.length-1].path!==g?f.findIndex(wn.bind(null,l[c-2])):p}),o=Ie(()=>r.value>-1&&Kf(n.params,s.value.params)),i=Ie(()=>r.value>-1&&r.value===n.matched.length-1&&Wl(n.params,s.value.params));function a(l={}){if(Gf(l)){const c=t[G(e.replace)?"replace":"push"](G(e.to)).catch(Hn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:Ie(()=>s.value.href),isActive:o,isExactActive:i,navigate:a}}function $f(e){return e.length===1?e[0]:e}const Hf=sn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ni,setup(e,{slots:t}){const n=Kt(ni(e)),{options:s}=st(zs),r=Ie(()=>({[ri(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[ri(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&$f(t.default(n));return e.custom?o:_n("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),Uf=Hf;function Gf(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Kf(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!ot(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function si(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ri=(e,t,n)=>e??t??n,Wf=sn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=st(Pr),r=Ie(()=>e.route||s.value),o=st(Jo,0),i=Ie(()=>{let c=G(o);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=Ie(()=>r.value.matched[i.value]);us(Jo,Ie(()=>i.value+1)),us(Ef,a),us(Pr,r);const l=Ze();return mt(()=>[l.value,a.value,e.name],([c,u,f],[p,g,x])=>{u&&(u.instances[f]=c,g&&g!==u&&c&&c===p&&(u.leaveGuards.size||(u.leaveGuards=g.leaveGuards),u.updateGuards.size||(u.updateGuards=g.updateGuards))),c&&u&&(!g||!wn(u,g)||!p)&&(u.enterCallbacks[f]||[]).forEach(w=>w(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,f=a.value,p=f&&f.components[u];if(!p)return oi(n.default,{Component:p,route:c});const g=f.props[u],x=g?g===!0?c.params:typeof g=="function"?g(c):g:null,I=_n(p,ae({},x,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return oi(n.default,{Component:I,route:c})||I}}});function oi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const qf=Wf;function zf(e){const t=Df(e.routes,e),n=e.parseQuery||_f,s=e.stringifyQuery||zo,r=e.history,o=On(),i=On(),a=On(),l=Ma(Mt);let c=Mt;un&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=ir.bind(null,b=>""+b),f=ir.bind(null,tf),p=ir.bind(null,Qn);function g(b,D){let O,B;return ql(b)?(O=t.getRecordMatcher(b),B=D):B=b,t.addRoute(B,O)}function x(b){const D=t.getRecordMatcher(b);D&&t.removeRoute(D)}function w(){return t.getRoutes().map(b=>b.record)}function I(b){return!!t.getRecordMatcher(b)}function C(b,D){if(D=ae({},D||l.value),typeof b=="string"){const m=lr(n,b,D.path),v=t.resolve({path:m.path},D),E=r.createHref(m.fullPath);return ae(m,v,{params:p(v.params),hash:Qn(m.hash),redirectedFrom:void 0,href:E})}let O;if(b.path!=null)O=ae({},b,{path:lr(n,b.path,D.path).path});else{const m=ae({},b.params);for(const v in m)m[v]==null&&delete m[v];O=ae({},b,{params:f(m)}),D.params=f(D.params)}const B=t.resolve(O,D),Q=b.hash||"";B.params=u(p(B.params));const d=rf(s,ae({},b,{hash:Xu(Q),path:B.path})),h=r.createHref(d);return ae({fullPath:d,hash:Q,query:s===zo?bf(b.query):b.query||{}},B,{redirectedFrom:void 0,href:h})}function _(b){return typeof b=="string"?lr(n,b,l.value.path):ae({},b)}function T(b,D){if(c!==b)return An(_e.NAVIGATION_CANCELLED,{from:D,to:b})}function k(b){return j(b)}function U(b){return k(ae(_(b),{replace:!0}))}function J(b,D){const O=b.matched[b.matched.length-1];if(O&&O.redirect){const{redirect:B}=O;let Q=typeof B=="function"?B(b,D):B;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=_(Q):{path:Q},Q.params={}),ae({query:b.query,hash:b.hash,params:Q.path!=null?{}:b.params},Q)}}function j(b,D){const O=c=C(b),B=l.value,Q=b.state,d=b.force,h=b.replace===!0,m=J(O,B);if(m)return j(ae(_(m),{state:typeof m=="object"?ae({},Q,m.state):Q,force:d,replace:h}),D||O);const v=O;v.redirectedFrom=D;let E;return!d&&of(s,B,O)&&(E=An(_e.NAVIGATION_DUPLICATED,{to:v,from:B}),it(B,B,!0,!1)),(E?Promise.resolve(E):Y(v,B)).catch(y=>_t(y)?_t(y,_e.NAVIGATION_GUARD_REDIRECT)?y:Ot(y):ie(y,v,B)).then(y=>{if(y){if(_t(y,_e.NAVIGATION_GUARD_REDIRECT))return j(ae({replace:h},_(y.to),{state:typeof y.to=="object"?ae({},Q,y.to.state):Q,force:d}),D||v)}else y=N(v,B,!0,h,Q);return re(v,B,y),y})}function te(b,D){const O=T(b,D);return O?Promise.reject(O):Promise.resolve()}function L(b){const D=on.values().next().value;return D&&typeof D.runWithContext=="function"?D.runWithContext(b):b()}function Y(b,D){let O;const[B,Q,d]=wf(b,D);O=cr(B.reverse(),"beforeRouteLeave",b,D);for(const m of B)m.leaveGuards.forEach(v=>{O.push(Vt(v,b,D))});const h=te.bind(null,b,D);return O.push(h),Ye(O).then(()=>{O=[];for(const m of o.list())O.push(Vt(m,b,D));return O.push(h),Ye(O)}).then(()=>{O=cr(Q,"beforeRouteUpdate",b,D);for(const m of Q)m.updateGuards.forEach(v=>{O.push(Vt(v,b,D))});return O.push(h),Ye(O)}).then(()=>{O=[];for(const m of d)if(m.beforeEnter)if(ot(m.beforeEnter))for(const v of m.beforeEnter)O.push(Vt(v,b,D));else O.push(Vt(m.beforeEnter,b,D));return O.push(h),Ye(O)}).then(()=>(b.matched.forEach(m=>m.enterCallbacks={}),O=cr(d,"beforeRouteEnter",b,D,L),O.push(h),Ye(O))).then(()=>{O=[];for(const m of i.list())O.push(Vt(m,b,D));return O.push(h),Ye(O)}).catch(m=>_t(m,_e.NAVIGATION_CANCELLED)?m:Promise.reject(m))}function re(b,D,O){a.list().forEach(B=>L(()=>B(b,D,O)))}function N(b,D,O,B,Q){const d=T(b,D);if(d)return d;const h=D===Mt,m=un?history.state:{};O&&(B||h?r.replace(b.fullPath,ae({scroll:h&&m&&m.scroll},Q)):r.push(b.fullPath,Q)),l.value=b,it(b,D,O,h),Ot()}let ne;function ve(){ne||(ne=r.listen((b,D,O)=>{if(!Wt.listening)return;const B=C(b),Q=J(B,Wt.currentRoute.value);if(Q){j(ae(Q,{replace:!0,force:!0}),B).catch(Hn);return}c=B;const d=l.value;un&&pf(qo(d.fullPath,O.delta),qs()),Y(B,d).catch(h=>_t(h,_e.NAVIGATION_ABORTED|_e.NAVIGATION_CANCELLED)?h:_t(h,_e.NAVIGATION_GUARD_REDIRECT)?(j(ae(_(h.to),{force:!0}),B).then(m=>{_t(m,_e.NAVIGATION_ABORTED|_e.NAVIGATION_DUPLICATED)&&!O.delta&&O.type===Rr.pop&&r.go(-1,!1)}).catch(Hn),Promise.reject()):(O.delta&&r.go(-O.delta,!1),ie(h,B,d))).then(h=>{h=h||N(B,d,!1),h&&(O.delta&&!_t(h,_e.NAVIGATION_CANCELLED)?r.go(-O.delta,!1):O.type===Rr.pop&&_t(h,_e.NAVIGATION_ABORTED|_e.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),re(B,d,h)}).catch(Hn)}))}let Ge=On(),we=On(),ue;function ie(b,D,O){Ot(b);const B=we.list();return B.length?B.forEach(Q=>Q(b,D,O)):console.error(b),Promise.reject(b)}function yt(){return ue&&l.value!==Mt?Promise.resolve():new Promise((b,D)=>{Ge.add([b,D])})}function Ot(b){return ue||(ue=!b,ve(),Ge.list().forEach(([D,O])=>b?O(b):D()),Ge.reset()),b}function it(b,D,O,B){const{scrollBehavior:Q}=e;if(!un||!Q)return Promise.resolve();const d=!O&&gf(qo(b.fullPath,0))||(B||!O)&&history.state&&history.state.scroll||null;return vn().then(()=>Q(b,D,d)).then(h=>h&&hf(h)).catch(h=>ie(h,b,D))}const Ue=b=>r.go(b);let rn;const on=new Set,Wt={currentRoute:l,listening:!0,addRoute:g,removeRoute:x,clearRoutes:t.clearRoutes,hasRoute:I,getRoutes:w,resolve:C,options:e,push:k,replace:U,go:Ue,back:()=>Ue(-1),forward:()=>Ue(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:we.add,isReady:yt,install(b){b.component("RouterLink",Uf),b.component("RouterView",qf),b.config.globalProperties.$router=Wt,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>G(l)}),un&&!rn&&l.value===Mt&&(rn=!0,k(r.location).catch(B=>{}));const D={};for(const B in Mt)Object.defineProperty(D,B,{get:()=>l.value[B],enumerable:!0});b.provide(zs,Wt),b.provide(qr,ji(D)),b.provide(Pr,l);const O=b.unmount;on.add(b),b.unmount=function(){on.delete(b),on.size<1&&(c=Mt,ne&&ne(),ne=null,l.value=Mt,rn=!1,ue=!1),O()}}};function Ye(b){return b.reduce((D,O)=>D.then(()=>L(O)),Promise.resolve())}return Wt}function zr(){return st(zs)}function Jf(e){return st(qr)}const Yf=[{path:"/login",name:"login",component:()=>le(()=>import("./LoginView-Do6LVtZ6.js"),__vite__mapDeps([0,1,2,3,4,5,6]))},{path:"/",name:"dashboard",component:()=>le(()=>import("./DashboardView-CpJmNcFL.js"),__vite__mapDeps([7,8,9,10]))},{path:"/deployments",name:"deployments",component:()=>le(()=>import("./DeploymentsView-CXQxjAem.js"),__vite__mapDeps([11,9,12,13,14,10]))},{path:"/deployments/:id/public-logs-view",name:"public-logs",component:()=>le(()=>import("./PublicLogsView-CwLsI-Nz.js"),__vite__mapDeps([15,16,13,14,3,17])),props:!0,meta:{public:!0}},{path:"/deployments/:id",component:()=>le(()=>import("./DeploymentDetailView-CP2ANsF3.js"),__vite__mapDeps([18,19,20,21,1,22,10])),props:!0,children:[{path:"",name:"deployment",redirect:e=>`/deployments/${e.params.id}/overview`},{path:"overview",name:"d.overview",component:()=>le(()=>import("./OverviewTab-tJGh_KZG.js"),__vite__mapDeps([23,19,20,9]))},{path:"config",name:"d.config",component:()=>le(()=>import("./ConfigTab-CqQK7vQl.js"),__vite__mapDeps([24,19,20,25,26,13,14,3,27,28,29]))},{path:"runtime",name:"d.runtime",component:()=>le(()=>import("./RuntimeTab-B9lDbflh.js"),__vite__mapDeps([30,19,20,9,1,22,29,14,3,31,10,32]))},{path:"axes",name:"d.axes",component:()=>le(()=>import("./AxesTab-C0OeAG-v.js"),__vite__mapDeps([33,19,20]))},{path:"requires",name:"d.requires",component:()=>le(()=>import("./RequiresTab-B53DZ6Dn.js"),__vite__mapDeps([34,19,20]))},{path:"logs",name:"d.logs",component:()=>le(()=>import("./LogsTab-DMj2p8j8.js"),__vite__mapDeps([35,19,20,13,14,16]))},{path:"terminal",name:"d.terminal",component:()=>le(()=>import("./TerminalTab-BLjzwPsG.js"),__vite__mapDeps([36,22,13,14,3,37]))},{path:"danger",name:"d.danger",component:()=>le(()=>import("./DangerTab-Cn06aqx9.js"),__vite__mapDeps([38,19,20,21,1,22,2,3,4,13,14]))}]},{path:"/routing",name:"routing",component:()=>le(()=>import("./RoutingView-B5gwI-1h.js"),__vite__mapDeps([39,1,22,9,28,29,14,10,31,3,40]))},{path:"/swarm",name:"swarm",component:()=>le(()=>import("./SwarmView-BG2DN4OG.js"),__vite__mapDeps([41,1,22,28,29,14,10,13,9]))},{path:"/control",name:"control",component:()=>le(()=>import("./ControlView-G6A_-Og_.js"),__vite__mapDeps([42,1,22,28,29,14,10,9]))},{path:"/registries",name:"registries",component:()=>le(()=>import("./RegistriesView-399hTPKi.js"),__vite__mapDeps([43,1,22,9,28,29,14,10]))},{path:"/notifiers",name:"notifiers",component:()=>le(()=>import("./NotifiersView-CIWU3Ohd.js"),__vite__mapDeps([44,1,22,9,12,13,14,10]))},{path:"/specs",name:"specs",component:()=>le(()=>import("./SpecsView-BTD2qo9l.js"),__vite__mapDeps([45,9,22,12,2,3,4,10]))},{path:"/specs/:name",name:"spec",component:()=>le(()=>import("./SpecDetailView-B0IAuWzl.js"),__vite__mapDeps([46,9,22])),props:!0},{path:"/submit/:id?",name:"submit",component:()=>le(()=>import("./SubmitView-D5UffFTS.js"),__vite__mapDeps([47,20,1,22,25,26,13,14,3,27])),props:!0},{path:"/jobs",name:"jobs",component:()=>le(()=>import("./JobsView-CyZXyEfc.js"),__vite__mapDeps([48,8,9,12,13,14,49,10,3,50]))},{path:"/jobs/:jobId",name:"job",component:()=>le(()=>import("./JobDetailView-lYBZcOSg.js"),__vite__mapDeps([51,49,16,8,1,22])),props:!0},{path:"/users",name:"users",component:()=>le(()=>import("./UsersView-BOGuCj7S.js"),__vite__mapDeps([52,1,2,3,4,22,12,9,10,13,14,53]))},{path:"/sso",name:"sso",component:()=>le(()=>import("./SsoView-B_GrAR_X.js"),__vite__mapDeps([54,1,22,28,29,14,12,13,9,5,3,55]))},{path:"/variables",name:"variables",component:()=>le(()=>import("./VariablesView-C5XVfRcx.js"),__vite__mapDeps([56,1,2,3,4,22,12,9,10,26,13,14,27,57]))},{path:"/config",name:"config",component:()=>le(()=>import("./ConfigView-D6Ourc5o.js"),__vite__mapDeps([58,1,22]))},{path:"/settings",name:"settings",component:()=>le(()=>import("./SettingsView-DGor_LCJ.js"),__vite__mapDeps([59,49,1,22,13,14]))},{path:"/:pathMatch(.*)*",name:"not-found",component:()=>le(()=>import("./NotFoundView-DyiW8m6P.js"),[])}],xn=zf({history:kf(),routes:Yf,scrollBehavior:(e,t,n)=>n??{top:0}});xn.beforeEach(async e=>{if(e.meta.public)return!0;const{authState:t,checkAuth:n}=await le(async()=>{const{authState:s,checkAuth:r}=await Promise.resolve().then(()=>Ed);return{authState:s,checkAuth:r}},void 0);return t.checked||await n(),e.name==="login"?t.authed?{path:"/"}:!0:t.authed?!0:{name:"login",query:e.fullPath!=="/"?{next:e.fullPath}:{}}});const Jr=typeof document<"u"&&typeof document.startViewTransition=="function";Jr&&(document.documentElement.dataset.vt="on");if(Jr){let e=null;xn.beforeResolve(()=>new Promise(t=>{document.startViewTransition(()=>(t(),new Promise(n=>{e=n,setTimeout(()=>{e==null||e(),e=null},400)})))})),xn.afterEach(async()=>{await vn(),e==null||e(),e=null})}let Qf=0;const mn=Kt([]);function Xl(e){const t=mn.findIndex(n=>n.id===e);t>=0&&mn.splice(t,1)}function kh(e,t,n={}){const s=++Qf;mn.push({id:s,kind:e,text:t,to:n.to,toLabel:n.toLabel});const r=n.ms??(e==="error"?0:6e3);for(r>0&&setTimeout(()=>Xl(s),r);mn.length>5;)mn.shift();return s}const Xf={class:"toasts","aria-live":"polite","aria-atomic":"false"},Zf=["aria-label","onClick"],ed=sn({__name:"ToastHost",setup(e){return(t,n)=>{const s=vr("RouterLink");return z(),me("div",Xf,[H(wu,{name:"toast"},{default:ge(()=>[(z(!0),me(be,null,_s(G(mn),r=>(z(),me("div",{key:r.id,class:Ft(["toast",r.kind])},[V("div",null,[V("div",null,Pe(r.text),1),r.to?(z(),We(s,{key:0,to:r.to},{default:ge(()=>[jt(Pe(r.toLabel??"Open")+" →",1)]),_:2},1032,["to"])):Se("",!0)]),V("button",{class:"x","aria-label":`dismiss: ${r.text}`,onClick:o=>G(Xl)(r.id)},"✕",8,Zf)],2))),128))]),_:1})])}}}),td=900;function ii(e){const t=e;if(!t)return!1;const n=t.tagName;return n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||t.isContentEditable===!0}function nd(){const e=zr(),t=Ze(!1);let n=0,s="";const r=o=>{if(o.key==="Escape"){t.value&&(t.value=!1,o.preventDefault()),ii(o.target)&&o.target.blur();return}if(o.metaKey||o.ctrlKey||o.altKey||ii(o.target))return;const i=Date.now();if(s==="g"&&i-n<td){s="";const a={d:"/deployments",j:"/jobs",h:"/",s:"/settings",n:"/submit"}[o.key];a&&(o.preventDefault(),e.push(a));return}if(o.key==="g"){s="g",n=i;return}if(s="",o.key==="?"){o.preventDefault(),t.value=!t.value;return}if(o.key==="/"){const a=document.querySelector("[data-search]");a&&(o.preventDefault(),a.focus(),a.select())}};return kn(()=>document.addEventListener("keydown",r)),ts(()=>document.removeEventListener("keydown",r)),{sheetOpen:t}}const sd=[{keys:"⌘K / Ctrl-K",what:"Open the command palette — jump to any deployment or page"},{keys:"?",what:"Open or close this sheet"},{keys:"g h",what:"Go to the dashboard"},{keys:"g d",what:"Go to deployments"},{keys:"g j",what:"Go to jobs"},{keys:"g n",what:"Go to submit"},{keys:"g s",what:"Go to settings"},{keys:"/",what:"Focus the search box on this view"},{keys:"Esc",what:"Close this sheet, or leave the field you are typing in"}],rd={class:"sheet"},od={class:"row"},id=sn({__name:"ShortcutSheet",props:{open:{type:Boolean}},emits:["close"],setup(e,{emit:t}){const n=t;return(s,r)=>(z(),We(Ws,{name:"fade"},{default:ge(()=>[e.open?(z(),me("div",{key:0,class:"scrim",role:"dialog","aria-modal":"true","aria-label":"Keyboard shortcuts",onClick:r[1]||(r[1]=Fl(o=>n("close"),["self"]))},[V("div",rd,[V("div",od,[r[2]||(r[2]=V("h2",{style:{"font-size":"var(--t-lg)","font-weight":"650"}},"Keyboard shortcuts",-1)),r[3]||(r[3]=V("span",{class:"grow"},null,-1)),V("button",{class:"ghost sm",onClick:r[0]||(r[0]=o=>n("close"))},"Close")]),V("dl",null,[(z(!0),me(be,null,_s(G(sd),o=>(z(),me(be,{key:o.keys},[V("dt",null,[(z(!0),me(be,null,_s(o.keys.split(" "),i=>(z(),me("kbd",{key:i,style:{"margin-left":"4px"}},Pe(i),1))),128))]),V("dd",null,Pe(o.what),1)],64))),128))])])])):Se("",!0)]),_:1}))}}),Ut={token:"pstack.ui.token",apiBase:"pstack.ui.apiBase",theme:"pstack.ui.theme",motion:"pstack.ui.motion"};function Cs(e,t){try{return localStorage.getItem(e)??t}catch{return t}}function ks(e,t){try{t?localStorage.setItem(e,t):localStorage.removeItem(e)}catch{}}const ur=Cs(Ut.theme,"system"),fr=Cs(Ut.motion,"system"),Oe=Kt({token:Cs(Ut.token,""),apiBase:Cs(Ut.apiBase,""),theme:ur==="dark"||ur==="light"?ur:"system",motion:fr==="full"||fr==="none"?fr:"system"});function Zl(){const e=document.documentElement;Oe.theme==="system"?delete e.dataset.theme:e.dataset.theme=Oe.theme,Oe.motion==="system"?delete e.dataset.motion:e.dataset.motion=Oe.motion}mt(()=>Oe.token,e=>ks(Ut.token,e));mt(()=>Oe.apiBase,e=>ks(Ut.apiBase,e));mt(()=>[Oe.theme,Oe.motion],()=>{ks(Ut.theme,Oe.theme==="system"?"":Oe.theme),ks(Ut.motion,Oe.motion==="system"?"":Oe.motion),Zl()});Zl();function Sh(e,t={}){const n=new URLSearchParams;for(const r of e)r.k&&n.set(r.k,r.v??"");for(const[r,o]of Object.entries(t))n.set(r,String(o));const s=n.toString();return s?`?${s}`:""}function Or(e){const t=Oe.apiBase.replace(/\/$/,""),n=t?t+e:e;return Ir?`${n}${n.includes("?")?"&":"?"}token=${encodeURIComponent(Ir)}`:n}let Ir="";function Rh(e){Ir=e}let hs=null;function ld(e){hs=e}async function an(e,t,n,s=!1){const r={};e!=="GET"&&(r["content-type"]="application/json"),Oe.token&&(r.authorization=`Bearer ${Oe.token}`);try{const o=await fetch(Or(t),{method:e,headers:r,body:n===void 0?void 0:JSON.stringify(n)}),i=await o.text();let a=null;try{a=i?JSON.parse(i):null}catch{}return o.status===401&&!t.startsWith("/api/auth/")&&(hs==null||hs()),a===null&&i?{status:o.status,ok:o.ok,body:{},raw:i,notJson:!0}:{status:o.status,ok:o.ok,body:a??{},raw:i,notJson:!1}}catch(o){return{status:0,ok:!1,body:{error:`unreachable: ${o.message}`},raw:"",notJson:!1}}}const Gt={get:e=>an("GET",e),getAuthed:e=>an("GET",e,void 0,!0),post:(e,t)=>an("POST",e,t??{}),put:(e,t)=>an("PUT",e,t),patch:(e,t)=>an("PATCH",e,t),del:e=>an("DELETE",e),getText:async e=>{const t={};Oe.token&&(t.authorization=`Bearer ${Oe.token}`);try{const n=await fetch(Or(e),{headers:t});return{status:n.status,ok:n.ok,text:await n.text()}}catch(n){return{status:0,ok:!1,text:`unreachable: ${n.message}`}}},url:Or};function Yr(e,t){if(e.status===0)return e.body.error??"unreachable";if(e.status===401)return`${t}: 401 unauthorized — set the bearer token in Settings.`;if(e.notJson)return`${t}: HTTP ${e.status}, and the response was not JSON. Something other than the pstack API answered — a proxy, or an error page.
|
|
27
27
|
|
|
28
28
|
${e.raw.slice(0,400)}`;const n=e.body.error;return e.status===404&&(!n||n==="not found")?`${t}: 404 — no such resource, or this build of the API has no such route yet.`:n?`${t}: ${n}`:`${t}: HTTP ${e.status}`}function Th(e){const t=e.error??"HTTP 409 (no message)",n=e.stack??"";return e.kind?{kind:"shared",text:t,stack:n,deployments:[]}:e.containers!==void 0?{kind:"containers",text:t,stack:n,deployments:[]}:e.deployments?{kind:"referenced",text:t,stack:n,deployments:e.deployments}:{kind:"other",text:t,stack:n,deployments:[]}}const ad={class:"palette",role:"dialog","aria-modal":"true","aria-label":"Command palette"},cd={class:"palette-q"},ud={key:0,class:"palette-empty"},fd={key:0,class:"palette-group"},dd=["data-on","onClick","onMousemove"],hd={class:"palette-label"},pd={key:0,class:"palette-hint"},gd={class:"palette-foot"},md=sn({__name:"CommandPalette",setup(e,{expose:t}){const n=zr(),s=Ze(!1),r=Ze(""),o=Ze(0),i=Ze([]),a=Ze(null),l=Ze(null),c=[{id:"p.dash",label:"Dashboard",hint:"g h",group:"Go to",to:"/",base:9},{id:"p.dep",label:"Deployments",hint:"g d",group:"Go to",to:"/deployments",base:8},{id:"p.jobs",label:"Jobs",hint:"g j",group:"Go to",to:"/jobs",base:7},{id:"p.specs",label:"Specs",group:"Go to",to:"/specs",base:6},{id:"p.routing",label:"Routing",group:"Go to",to:"/routing",base:5},{id:"p.swarm",label:"Swarm",group:"Go to",to:"/swarm",base:4.5},{id:"p.reg",label:"Registries",group:"Go to",to:"/registries",base:4},{id:"p.notif",label:"Notifiers",group:"Go to",to:"/notifiers",base:3},{id:"p.hostvars",label:"Variables & secrets",group:"Go to",to:"/variables",base:2.7},{id:"p.users",label:"Users & access",group:"Go to",to:"/users",base:2.5},{id:"p.set",label:"Settings",hint:"g s",group:"Go to",to:"/settings",base:2},{id:"a.submit",label:"Submit a spec",hint:"g n",group:"Actions",to:"/submit",base:1}];function u(C,_){if(!_)return 0;const T=C.toLowerCase(),k=_.toLowerCase();let U=0,J=0,j=0;for(const te of k){const L=T.indexOf(te,U);if(L===-1)return null;j=L===U&&U>0?j+1:0,J+=10+j*12-Math.min(L-U,8),L===0&&(J+=25),U=L+1}return J-T.length*.4}const f=Ie(()=>{const C=i.value.map(k=>({id:`d.${k.id}`,label:k.id,hint:k.stack??void 0,group:"Deployments",to:`/deployments/${encodeURIComponent(k.id)}/overview`,base:0})),_=[...c,...C],T=r.value.trim();return T?_.map(k=>({it:k,s:u(`${k.label} ${k.hint??""}`,T)})).filter(k=>k.s!==null).sort((k,U)=>U.s-k.s||U.it.base-k.it.base).map(k=>k.it):_.slice().sort((k,U)=>U.base-k.base)}),p=Ie(()=>f.value.map((C,_)=>({it:C,head:_===0||f.value[_-1].group!==C.group})));async function g(){var _;s.value=!0,r.value="",o.value=0,await vn(),(_=a.value)==null||_.focus();const C=await Gt.get("/api/deployments");C.ok&&(i.value=C.body.deployments)}function x(){s.value=!1}function w(C){C&&(x(),n.push(C.to))}mt(o,async()=>{var C,_;await vn(),(_=(C=l.value)==null?void 0:C.querySelector('[data-on="true"]'))==null||_.scrollIntoView({block:"nearest"})}),mt(r,()=>o.value=0);function I(C){if((C.metaKey||C.ctrlKey)&&C.key.toLowerCase()==="k"){C.preventDefault(),s.value?x():g();return}s.value&&(C.key==="Escape"?(C.preventDefault(),x()):C.key==="ArrowDown"||C.key==="n"&&C.ctrlKey?(C.preventDefault(),o.value=Math.min(o.value+1,f.value.length-1)):C.key==="ArrowUp"||C.key==="p"&&C.ctrlKey?(C.preventDefault(),o.value=Math.max(o.value-1,0)):C.key==="Enter"&&(C.preventDefault(),w(f.value[o.value])))}return kn(()=>document.addEventListener("keydown",I)),ts(()=>document.removeEventListener("keydown",I)),t({show:g}),(C,_)=>(z(),We(Ws,{name:"fade"},{default:ge(()=>[s.value?(z(),me("div",{key:0,class:"scrim palette-scrim",onClick:Fl(x,["self"])},[V("div",ad,[V("div",cd,[_[1]||(_[1]=V("svg",{viewBox:"0 0 24 24",width:"16",height:"16","aria-hidden":"true"},[V("circle",{cx:"11",cy:"11",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),V("path",{d:"M16.5 16.5 21 21",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),qa(V("input",{ref_key:"input",ref:a,"onUpdate:modelValue":_[0]||(_[0]=T=>r.value=T),type:"text",placeholder:"Go to a deployment, a page, an action…","aria-label":"Search",autocomplete:"off",spellcheck:"false"},null,512),[[kr,r.value]]),_[2]||(_[2]=V("kbd",null,"esc",-1))]),V("div",{ref_key:"listEl",ref:l,class:"palette-list"},[p.value.length?Se("",!0):(z(),me("p",ud," Nothing matches “"+Pe(r.value)+"”. ",1)),(z(!0),me(be,null,_s(p.value,(T,k)=>(z(),me(be,{key:T.it.id},[T.head?(z(),me("div",fd,Pe(T.it.group),1)):Se("",!0),V("button",{class:"palette-row","data-on":k===o.value,onClick:U=>w(T.it),onMousemove:U=>o.value=k},[V("span",hd,Pe(T.it.label),1),T.it.hint?(z(),me("span",pd,Pe(T.it.hint),1)):Se("",!0)],40,dd)],64))),128))],512),V("div",gd,[_[3]||(_[3]=V("span",null,[V("kbd",null,"↑"),V("kbd",null,"↓"),jt(" move")],-1)),_[4]||(_[4]=V("span",null,[V("kbd",null,"↵"),jt(" open")],-1)),_[5]||(_[5]=V("span",{class:"grow"},null,-1)),V("span",null,Pe(f.value.length)+" result"+Pe(f.value.length===1?"":"s"),1)])])])):Se("",!0)]),_:1}))}});function yd(e,t=6e3){let n;const s=()=>{n!==void 0&&clearInterval(n),n=void 0},r=()=>{s(),n=setInterval(e,t)},o=()=>{document.visibilityState==="visible"?(e(),r()):s()};kn(()=>{e(),document.visibilityState==="visible"&&r(),document.addEventListener("visibilitychange",o)}),ts(()=>{s(),document.removeEventListener("visibilitychange",o)})}const ye=Kt({health:null,healthError:"",deployments:[],deploymentsError:"",deploymentsLoaded:!1,jobs:[],jobsError:"",jobsLoaded:!1});async function li(){const e=await Gt.get("/api/health");e.ok?(ye.health=e.body,ye.healthError=""):(ye.health=null,ye.healthError=Yr(e,"GET /api/health"))}async function ai(){const e=await Gt.get("/api/deployments");if(ye.deploymentsLoaded=!0,!e.ok){ye.deploymentsError=Yr(e,"GET /api/deployments");return}ye.deploymentsError="",ye.deployments=(e.body.deployments??[]).map(t=>({...t,kind:t.kind==="shared"?"shared":"isolated",busy:t.busy??null,running:t.running??null,stack:t.stack??null,asleep:t.asleep??null,orchestrator:t.orchestrator??null}))}async function ci(){const e=await Gt.get("/api/jobs");if(ye.jobsLoaded=!0,!e.ok){ye.jobsError=Yr(e,"GET /api/jobs");return}ye.jobsError="",ye.jobs=e.body.jobs??[]}const Ph=Ie(()=>{const e={total:0,isolated:0,shared:0,running:0,busy:0,asleep:0,unknown:0,unresolved:0};for(const t of ye.deployments)e.total++,t.kind==="shared"?e.shared++:e.isolated++,t.busy===!0&&e.busy++,t.asleep&&e.asleep++,t.running===!0&&e.running++,(t.busy===null||t.running===null)&&e.unknown++,t.unresolved&&e.unresolved++;return e}),Oh=Ie(()=>ye.jobs.filter(e=>e.state==="leaked"));function Ih(e){return ye.deployments.find(t=>t.id===e)}const vd=["viewer","developer","maintainer","admin"],X=Kt({checked:!1,authed:!1,root:!1,user:null,hasUsers:null,sso:null});function ui(e){return vd.indexOf(e??"")+1}function Dn(e){var n;if(X.root)return!0;const t=ui((n=X.user)==null?void 0:n.role);return t>0&&t>=ui(e)}async function _d(){const e=await Gt.get("/api/health");e.ok&&(X.hasUsers=e.body.hasUsers??null,X.sso=e.body.sso??null);const t=await Gt.getAuthed("/api/auth/me");t.status!==0&&(X.checked=!0,t.ok?(X.authed=!0,X.root=t.body.root===!0,X.user=t.body.user??null):(X.authed=!1,X.root=!1,X.user=null))}async function bd(e,t){const n=await Gt.post("/api/auth/login",{username:e,password:t});return n.ok?(X.authed=!0,X.root=!1,X.user=n.body.user,null):n.body.error??"login failed"}async function ea(){await Gt.post("/api/auth/logout",{}),X.authed=!1,X.root=!1,X.user=null}ld(()=>{if(!X.checked)return;const e=X.authed;X.authed=!1,X.user=null,X.root=!1;const t=xn.currentRoute.value;e&&t.name!=="login"&&xn.replace({name:"login",query:t.fullPath!=="/"?{next:t.fullPath}:{}})});const Ed=Object.freeze(Object.defineProperty({__proto__:null,authState:X,can:Dn,checkAuth:_d,login:bd,logout:ea},Symbol.toStringTag,{value:"Module"}));function Mh(e){return e?new Date(e).toLocaleString("sv"):"—"}function Nh(e,t){if(!e)return"—";const n=Math.max(0,Math.round(((t??Date.now())-e)/1e3)),s=n<60?`${n}s`:`${Math.floor(n/60)}m${String(n%60).padStart(2,"0")}s`;return t?s:`${s}…`}function Lh(e){if(!e)return"—";const t=Math.max(0,Math.round((Date.now()-e)/1e3));if(t<45)return"just now";const n=Math.round(t/60);if(n<60)return`${n}m ago`;const s=Math.round(n/60);return s<24?`${s}h ago`:`${Math.round(s/24)}d ago`}const wd={up:"Deploy",down:"Tear down",verify:"Verify",sleep:"Sleep",wake:"Wake"};function Dh(e){return e?wd[e]??e:"—"}function Ad(e){if(!e)return"—";const t=e.replace(/[-_]+/g," ");return t.charAt(0).toUpperCase()+t.slice(1)}/**
|
|
29
29
|
* @license lucide-vue-next v0.577.0 - ISC
|
|
@@ -155,5 +155,5 @@ ${e.raw.slice(0,400)}`;const n=e.body.error;return e.status===404&&(!n||n==="not
|
|
|
155
155
|
*
|
|
156
156
|
* This source code is licensed under the ISC license.
|
|
157
157
|
* See the LICENSE file in the root directory of this source tree.
|
|
158
|
-
*/const Kd=Ne("waypoints",[["path",{d:"m10.586 5.414-5.172 5.172",key:"4mc350"}],["path",{d:"m18.586 13.414-5.172 5.172",key:"8c96vv"}],["path",{d:"M6 12h12",key:"8npq4p"}],["circle",{cx:"12",cy:"20",r:"2",key:"144qzu"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}],["circle",{cx:"20",cy:"12",r:"2",key:"1xzzfp"}],["circle",{cx:"4",cy:"12",r:"2",key:"1hvhnz"}]]),Wd=["aria-label","aria-expanded"],qd=sn({__name:"InfoHint",props:{label:{},align:{},side:{}},setup(e){const t=e,n=Ze(!1),s=Ze(!1),r=Ze(null);function o(a){n.value&&r.value&&!r.value.contains(a.target)&&(n.value=!1)}function i(a){a.key==="Escape"&&n.value&&(n.value=!1)}return kn(()=>{document.addEventListener("pointerdown",o),document.addEventListener("keydown",i)}),$r(()=>{document.removeEventListener("pointerdown",o),document.removeEventListener("keydown",i)}),(a,l)=>(z(),me("span",{ref_key:"root",ref:r,class:"hint-wrap"},[V("button",{type:"button",class:Ft(["hint-btn",{on:n.value}]),"aria-label":t.label??"More information","aria-expanded":n.value||s.value,onClick:l[0]||(l[0]=c=>n.value=!n.value),onPointerenter:l[1]||(l[1]=c=>s.value=!0),onPointerleave:l[2]||(l[2]=c=>s.value=!1),onFocus:l[3]||(l[3]=c=>s.value=!0),onBlur:l[4]||(l[4]=c=>s.value=!1)},[H(G(Md),{size:15,"stroke-width":2,"aria-hidden":"true"})],42,Wd),H(Ws,{name:"hint"},{default:ge(()=>[n.value||s.value?(z(),me("span",{key:0,class:Ft(["hint-bub",[t.align==="end"?"to-end":"to-start",t.side==="top"?"above":"below"]]),role:"tooltip"},[dc(a.$slots,"default")],2)):Se("",!0)]),_:3})],512))}}),zd={key:0,class:"rail"},Jd={"aria-label":"Sections"},Yd={class:"count"},Qd={class:"count"},Xd={class:"foot"},Zd={key:0,class:"s-failed"},eh={key:1,class:"row",style:{gap:"4px"}},th={key:0,class:"foot-who"},nh={key:1,class:"foot-who"},sh={key:2,class:"mute"},rh={class:"mute"},oh={class:"row",style:{gap:"var(--s1)"}},ih={id:"main",class:"view"},lh=sn({__name:"App",setup(e){const{sheetOpen:t}=nd();yd(()=>{X.authed&&(ai(),ci())},7e3),mt(()=>X.authed,a=>{a&&(ai(),ci(),li())});const n=zr(),s=Jf(),r=Ie(()=>s.meta.public===!0);async function o(){await ea(),n.push("/login")}li();const i=Ie(()=>ye.jobs.filter(a=>a.state==="running").length);return(a,l)=>{const c=vr("RouterLink"),u=vr("RouterView");return z(),me(be,null,[l[20]||(l[20]=V("a",{class:"skip",href:"#main"},"Skip to content",-1)),V("div",{class:Ft(["shell",{"no-rail":!G(X).authed,public:r.value}])},[G(X).authed?(z(),me("aside",zd,[H(c,{to:"/",class:"brand"},{default:ge(()=>[H(G(Vd),{size:20,"aria-hidden":"true"}),l[2]||(l[2]=jt(" pstack ",-1))]),_:1}),V("nav",Jd,[H(c,{to:"/",class:"navlink",title:"g h"},{default:ge(()=>[H(G(Ld),{size:17,"aria-hidden":"true"}),l[3]||(l[3]=V("span",null,"Dashboard",-1))]),_:1}),H(c,{to:"/deployments",class:"navlink",title:"g d"},{default:ge(()=>[H(G(Pd),{size:17,"aria-hidden":"true"}),l[4]||(l[4]=V("span",null,"Deployments",-1)),V("span",Yd,Pe(G(ye).deployments.length),1)]),_:1}),H(c,{to:"/specs",class:"navlink"},{default:ge(()=>[H(G(Id),{size:17,"aria-hidden":"true"}),l[5]||(l[5]=V("span",null,"Specs",-1))]),_:1}),H(c,{to:"/routing",class:"navlink"},{default:ge(()=>[H(G(Kd),{size:17,"aria-hidden":"true"}),l[6]||(l[6]=V("span",null,"Routing",-1))]),_:1}),H(c,{to:"/swarm",class:"navlink"},{default:ge(()=>[H(G(Dd),{size:17,"aria-hidden":"true"}),l[7]||(l[7]=V("span",null,"Swarm",-1))]),_:1}),H(c,{to:"/registries",class:"navlink"},{default:ge(()=>[H(G(Nd),{size:17,"aria-hidden":"true"}),l[8]||(l[8]=V("span",null,"Registries",-1))]),_:1}),H(c,{to:"/notifiers",class:"navlink"},{default:ge(()=>[H(G(Td),{size:17,"aria-hidden":"true"}),l[9]||(l[9]=V("span",null,"Notifiers",-1))]),_:1}),H(c,{to:"/jobs",class:"navlink",title:"g j"},{default:ge(()=>[H(G(Od),{size:17,"aria-hidden":"true"}),l[10]||(l[10]=V("span",null,"Jobs",-1)),V("span",Qd,Pe(i.value?`${i.value}▸`:G(ye).jobs.length),1)]),_:1}),G(Dn)("developer")?(z(),We(c,{key:0,to:"/submit",class:"navlink",title:"g n"},{default:ge(()=>[H(G(jd),{size:17,"aria-hidden":"true"}),l[11]||(l[11]=V("span",null,"Submit",-1))]),_:1})):Se("",!0),H(c,{to:"/variables",class:"navlink"},{default:ge(()=>[H(G(Gd),{size:17,"aria-hidden":"true"}),l[12]||(l[12]=V("span",null,"Variables",-1))]),_:1}),H(c,{to:"/users",class:"navlink"},{default:ge(()=>[H(G(Ud),{size:17,"aria-hidden":"true"}),l[13]||(l[13]=V("span",null,"Users",-1))]),_:1}),G(Dn)("maintainer")?(z(),We(c,{key:1,to:"/control",class:"navlink"},{default:ge(()=>[H(G(Fd),{size:17,"aria-hidden":"true"}),l[14]||(l[14]=V("span",null,"Control stack",-1))]),_:1})):Se("",!0),G(Dn)("maintainer")?(z(),We(c,{key:2,to:"/sso",class:"navlink"},{default:ge(()=>[H(G($d),{size:17,"aria-hidden":"true"}),l[15]||(l[15]=V("span",null,"Sign-on",-1))]),_:1})):Se("",!0),G(Dn)("admin")?(z(),We(c,{key:3,to:"/config",class:"navlink"},{default:ge(()=>[H(G(Hd),{size:17,"aria-hidden":"true"}),l[16]||(l[16]=V("span",null,"Apply config",-1))]),_:1})):Se("",!0),H(c,{to:"/settings",class:"navlink",title:"g s"},{default:ge(()=>[H(G(Bd),{size:17,"aria-hidden":"true"}),l[17]||(l[17]=V("span",null,"Settings",-1))]),_:1})]),V("div",Xd,[G(ye).healthError?(z(),me("div",Zd,"Can't reach the server")):G(ye).health?(z(),me("div",eh,[G(X).user?(z(),me("span",th,Pe(G(X).user.username),1)):G(X).root&&G(X).checked?(z(),me("span",nh,"token access")):Se("",!0),G(X).user?(z(),me("span",sh,"· "+Pe(G(Ad)(G(X).user.role)),1)):Se("",!0),V("span",rh,"· v"+Pe(G(ye).health.version),1),H(qd,{label:"server details",side:"top"},{default:ge(()=>[l[18]||(l[18]=jt(" Data is stored in ",-1)),V("code",null,Pe(G(ye).health.dataDir),1),l[19]||(l[19]=jt(" on the host. ",-1)),G(ye).health.authEnforced===!1?(z(),me(be,{key:0},[jt(" This server accepts connections from this machine only, so it does not ask for a token. ")],64)):Se("",!0)]),_:1})])):Se("",!0),V("div",oh,[V("button",{class:"ghost sm",onClick:l[0]||(l[0]=f=>t.value=!0)},"Shortcuts"),G(X).user?(z(),me("button",{key:0,class:"ghost sm",onClick:o},"Sign out")):Se("",!0)])])])):Se("",!0),V("main",ih,[H(u,null,{default:ge(({Component:f})=>[G(Jr)?(z(),We(uo(f),{key:0})):(z(),We(Ws,{key:1,name:"view",mode:"out-in"},{default:ge(()=>[(z(),We(uo(f)))]),_:2},1024))]),_:1})])],2),H(ed),H(md),H(id,{open:G(t),onClose:l[1]||(l[1]=f=>t.value=!1)},null,8,["open"])],64)}}});Vu(lh).use(xn).mount("#app");export{Oe as $,ye as A,Ph as B,Yr as C,Ns as D,Ft as E,be as F,Dh as G,Lh as H,Nh as I,ai as J,ci as K,Ru as L,Ad as M,mt as N,kn as O,Rh as P,$r as Q,Mh as R,uo as S,Ws as T,kh as U,Sh as V,le as W,Ma as X,xn as Y,Th as Z,qd as _,V as a,Kt as a0,Ih as a1,Dn as a2,
|
|
159
|
-
//# sourceMappingURL=index-
|
|
158
|
+
*/const Kd=Ne("waypoints",[["path",{d:"m10.586 5.414-5.172 5.172",key:"4mc350"}],["path",{d:"m18.586 13.414-5.172 5.172",key:"8c96vv"}],["path",{d:"M6 12h12",key:"8npq4p"}],["circle",{cx:"12",cy:"20",r:"2",key:"144qzu"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}],["circle",{cx:"20",cy:"12",r:"2",key:"1xzzfp"}],["circle",{cx:"4",cy:"12",r:"2",key:"1hvhnz"}]]),Wd=["aria-label","aria-expanded"],qd=sn({__name:"InfoHint",props:{label:{},align:{},side:{}},setup(e){const t=e,n=Ze(!1),s=Ze(!1),r=Ze(null);function o(a){n.value&&r.value&&!r.value.contains(a.target)&&(n.value=!1)}function i(a){a.key==="Escape"&&n.value&&(n.value=!1)}return kn(()=>{document.addEventListener("pointerdown",o),document.addEventListener("keydown",i)}),$r(()=>{document.removeEventListener("pointerdown",o),document.removeEventListener("keydown",i)}),(a,l)=>(z(),me("span",{ref_key:"root",ref:r,class:"hint-wrap"},[V("button",{type:"button",class:Ft(["hint-btn",{on:n.value}]),"aria-label":t.label??"More information","aria-expanded":n.value||s.value,onClick:l[0]||(l[0]=c=>n.value=!n.value),onPointerenter:l[1]||(l[1]=c=>s.value=!0),onPointerleave:l[2]||(l[2]=c=>s.value=!1),onFocus:l[3]||(l[3]=c=>s.value=!0),onBlur:l[4]||(l[4]=c=>s.value=!1)},[H(G(Md),{size:15,"stroke-width":2,"aria-hidden":"true"})],42,Wd),H(Ws,{name:"hint"},{default:ge(()=>[n.value||s.value?(z(),me("span",{key:0,class:Ft(["hint-bub",[t.align==="end"?"to-end":"to-start",t.side==="top"?"above":"below"]]),role:"tooltip"},[dc(a.$slots,"default")],2)):Se("",!0)]),_:3})],512))}}),zd={key:0,class:"rail"},Jd={"aria-label":"Sections"},Yd={class:"count"},Qd={class:"count"},Xd={class:"foot"},Zd={key:0,class:"s-failed"},eh={key:1,class:"row",style:{gap:"4px"}},th={key:0,class:"foot-who"},nh={key:1,class:"foot-who"},sh={key:2,class:"mute"},rh={class:"mute"},oh={class:"row",style:{gap:"var(--s1)"}},ih={id:"main",class:"view"},lh=sn({__name:"App",setup(e){const{sheetOpen:t}=nd();yd(()=>{X.authed&&(ai(),ci())},7e3),mt(()=>X.authed,a=>{a&&(ai(),ci(),li())});const n=zr(),s=Jf(),r=Ie(()=>s.meta.public===!0);async function o(){await ea(),n.push("/login")}li();const i=Ie(()=>ye.jobs.filter(a=>a.state==="running").length);return(a,l)=>{const c=vr("RouterLink"),u=vr("RouterView");return z(),me(be,null,[l[20]||(l[20]=V("a",{class:"skip",href:"#main"},"Skip to content",-1)),V("div",{class:Ft(["shell",{"no-rail":!G(X).authed,public:r.value}])},[G(X).authed?(z(),me("aside",zd,[H(c,{to:"/",class:"brand"},{default:ge(()=>[H(G(Vd),{size:20,"aria-hidden":"true"}),l[2]||(l[2]=jt(" pstack ",-1))]),_:1}),V("nav",Jd,[H(c,{to:"/",class:"navlink",title:"g h"},{default:ge(()=>[H(G(Ld),{size:17,"aria-hidden":"true"}),l[3]||(l[3]=V("span",null,"Dashboard",-1))]),_:1}),H(c,{to:"/deployments",class:"navlink",title:"g d"},{default:ge(()=>[H(G(Pd),{size:17,"aria-hidden":"true"}),l[4]||(l[4]=V("span",null,"Deployments",-1)),V("span",Yd,Pe(G(ye).deployments.length),1)]),_:1}),H(c,{to:"/specs",class:"navlink"},{default:ge(()=>[H(G(Id),{size:17,"aria-hidden":"true"}),l[5]||(l[5]=V("span",null,"Specs",-1))]),_:1}),H(c,{to:"/routing",class:"navlink"},{default:ge(()=>[H(G(Kd),{size:17,"aria-hidden":"true"}),l[6]||(l[6]=V("span",null,"Routing",-1))]),_:1}),H(c,{to:"/swarm",class:"navlink"},{default:ge(()=>[H(G(Dd),{size:17,"aria-hidden":"true"}),l[7]||(l[7]=V("span",null,"Swarm",-1))]),_:1}),H(c,{to:"/registries",class:"navlink"},{default:ge(()=>[H(G(Nd),{size:17,"aria-hidden":"true"}),l[8]||(l[8]=V("span",null,"Registries",-1))]),_:1}),H(c,{to:"/notifiers",class:"navlink"},{default:ge(()=>[H(G(Td),{size:17,"aria-hidden":"true"}),l[9]||(l[9]=V("span",null,"Notifiers",-1))]),_:1}),H(c,{to:"/jobs",class:"navlink",title:"g j"},{default:ge(()=>[H(G(Od),{size:17,"aria-hidden":"true"}),l[10]||(l[10]=V("span",null,"Jobs",-1)),V("span",Qd,Pe(i.value?`${i.value}▸`:G(ye).jobs.length),1)]),_:1}),G(Dn)("developer")?(z(),We(c,{key:0,to:"/submit",class:"navlink",title:"g n"},{default:ge(()=>[H(G(jd),{size:17,"aria-hidden":"true"}),l[11]||(l[11]=V("span",null,"Submit",-1))]),_:1})):Se("",!0),H(c,{to:"/variables",class:"navlink"},{default:ge(()=>[H(G(Gd),{size:17,"aria-hidden":"true"}),l[12]||(l[12]=V("span",null,"Variables",-1))]),_:1}),H(c,{to:"/users",class:"navlink"},{default:ge(()=>[H(G(Ud),{size:17,"aria-hidden":"true"}),l[13]||(l[13]=V("span",null,"Users",-1))]),_:1}),G(Dn)("maintainer")?(z(),We(c,{key:1,to:"/control",class:"navlink"},{default:ge(()=>[H(G(Fd),{size:17,"aria-hidden":"true"}),l[14]||(l[14]=V("span",null,"Control stack",-1))]),_:1})):Se("",!0),G(Dn)("maintainer")?(z(),We(c,{key:2,to:"/sso",class:"navlink"},{default:ge(()=>[H(G($d),{size:17,"aria-hidden":"true"}),l[15]||(l[15]=V("span",null,"Sign-on",-1))]),_:1})):Se("",!0),G(Dn)("admin")?(z(),We(c,{key:3,to:"/config",class:"navlink"},{default:ge(()=>[H(G(Hd),{size:17,"aria-hidden":"true"}),l[16]||(l[16]=V("span",null,"Apply config",-1))]),_:1})):Se("",!0),H(c,{to:"/settings",class:"navlink",title:"g s"},{default:ge(()=>[H(G(Bd),{size:17,"aria-hidden":"true"}),l[17]||(l[17]=V("span",null,"Settings",-1))]),_:1})]),V("div",Xd,[G(ye).healthError?(z(),me("div",Zd,"Can't reach the server")):G(ye).health?(z(),me("div",eh,[G(X).user?(z(),me("span",th,Pe(G(X).user.username),1)):G(X).root&&G(X).checked?(z(),me("span",nh,"token access")):Se("",!0),G(X).user?(z(),me("span",sh,"· "+Pe(G(Ad)(G(X).user.role)),1)):Se("",!0),V("span",rh,"· v"+Pe(G(ye).health.version),1),H(qd,{label:"server details",side:"top"},{default:ge(()=>[l[18]||(l[18]=jt(" Data is stored in ",-1)),V("code",null,Pe(G(ye).health.dataDir),1),l[19]||(l[19]=jt(" on the host. ",-1)),G(ye).health.authEnforced===!1?(z(),me(be,{key:0},[jt(" This server accepts connections from this machine only, so it does not ask for a token. ")],64)):Se("",!0)]),_:1})])):Se("",!0),V("div",oh,[V("button",{class:"ghost sm",onClick:l[0]||(l[0]=f=>t.value=!0)},"Shortcuts"),G(X).user?(z(),me("button",{key:0,class:"ghost sm",onClick:o},"Sign out")):Se("",!0)])])])):Se("",!0),V("main",ih,[H(u,null,{default:ge(({Component:f})=>[G(Jr)?(z(),We(uo(f),{key:0})):(z(),We(Ws,{key:1,name:"view",mode:"out-in"},{default:ge(()=>[(z(),We(uo(f)))]),_:2},1024))]),_:1})])],2),H(ed),H(md),H(id,{open:G(t),onClose:l[1]||(l[1]=f=>t.value=!1)},null,8,["open"])],64)}}});Vu(lh).use(xn).mount("#app");export{Oe as $,ye as A,Ph as B,Yr as C,Ns as D,Ft as E,be as F,Dh as G,Lh as H,Nh as I,ai as J,ci as K,Ru as L,Ad as M,mt as N,kn as O,Rh as P,$r as Q,Mh as R,uo as S,Ws as T,kh as U,Sh as V,le as W,Ma as X,xn as Y,Th as Z,qd as _,V as a,Kt as a0,Ih as a1,Dn as a2,Ch as a3,Tu as a4,Ah as a5,dc as a6,vn as a7,vd as a8,ph as a9,Js as aA,sl as aB,dh as aC,_h as aD,De as aE,$t as aF,Bc as aa,ah as ab,Fc as ac,xh as ad,ts as ae,li as af,mh as ag,hh as ah,ns as ai,je as aj,gh as ak,st as al,_n as am,Ia as an,us as ao,yh as ap,fh as aq,ha as ar,uh as as,bh as at,vh as au,wh as av,Eh as aw,Va as ax,ch as ay,gr as az,X as b,me as c,sn as d,H as e,jt as f,Se as g,Fl as h,qa as i,Ze as j,Ie as k,vr as l,zr as m,Jf as n,z as o,Gt as p,bd as q,_s as r,_d as s,Pe as t,G as u,kr as v,ge as w,yd as x,Oh as y,We as z};
|
|
159
|
+
//# sourceMappingURL=index-BzdU0RNE.js.map
|