@samyx/preview-stacks-ui 0.28.0 → 0.30.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.
Files changed (93) hide show
  1. package/dist/assets/{ActionButton.vue_vue_type_script_setup_true_lang-B0qf7_XI.js → ActionButton.vue_vue_type_script_setup_true_lang-CxT4O7XN.js} +2 -2
  2. package/dist/assets/{ActionButton.vue_vue_type_script_setup_true_lang-B0qf7_XI.js.map → ActionButton.vue_vue_type_script_setup_true_lang-CxT4O7XN.js.map} +1 -1
  3. package/dist/assets/{AxesTab-BxVd_LDI.js → AxesTab-BJZ9B5js.js} +2 -2
  4. package/dist/assets/{AxesTab-BxVd_LDI.js.map → AxesTab-BJZ9B5js.js.map} +1 -1
  5. package/dist/assets/{ConfigTab-DSHTlGAK.js → ConfigTab-CKjpaZmg.js} +2 -2
  6. package/dist/assets/{ConfigTab-DSHTlGAK.js.map → ConfigTab-CKjpaZmg.js.map} +1 -1
  7. package/dist/assets/{ConflictNote.vue_vue_type_script_setup_true_lang-R1IfGYYT.js → ConflictNote.vue_vue_type_script_setup_true_lang-cZYd7gRK.js} +2 -2
  8. package/dist/assets/{ConflictNote.vue_vue_type_script_setup_true_lang-R1IfGYYT.js.map → ConflictNote.vue_vue_type_script_setup_true_lang-cZYd7gRK.js.map} +1 -1
  9. package/dist/assets/{DangerTab-BZ5e4YGe.js → DangerTab-XshYLxAZ.js} +2 -2
  10. package/dist/assets/{DangerTab-BZ5e4YGe.js.map → DangerTab-XshYLxAZ.js.map} +1 -1
  11. package/dist/assets/{DashboardView-TYfDe8IH.js → DashboardView-DqIE-Aof.js} +2 -2
  12. package/dist/assets/{DashboardView-TYfDe8IH.js.map → DashboardView-DqIE-Aof.js.map} +1 -1
  13. package/dist/assets/{DeploymentDetailView-RSDMb2tC.js → DeploymentDetailView-nFBQCzq0.js} +2 -2
  14. package/dist/assets/{DeploymentDetailView-RSDMb2tC.js.map → DeploymentDetailView-nFBQCzq0.js.map} +1 -1
  15. package/dist/assets/{DeploymentsView-DYAPYBih.js → DeploymentsView-CalAGK0U.js} +2 -2
  16. package/dist/assets/{DeploymentsView-DYAPYBih.js.map → DeploymentsView-CalAGK0U.js.map} +1 -1
  17. package/dist/assets/{EquivalentCommand-GFG6rkn5.js → EquivalentCommand-BjlPIrt9.js} +2 -2
  18. package/dist/assets/{EquivalentCommand-GFG6rkn5.js.map → EquivalentCommand-BjlPIrt9.js.map} +1 -1
  19. package/dist/assets/{ErrorNote.vue_vue_type_script_setup_true_lang-DNaY6OBe.js → ErrorNote.vue_vue_type_script_setup_true_lang-B5-EJpIO.js} +2 -2
  20. package/dist/assets/{ErrorNote.vue_vue_type_script_setup_true_lang-DNaY6OBe.js.map → ErrorNote.vue_vue_type_script_setup_true_lang-B5-EJpIO.js.map} +1 -1
  21. package/dist/assets/{HelpModal.vue_vue_type_script_setup_true_lang-DEjnzS2A.js → HelpModal.vue_vue_type_script_setup_true_lang-DWDQ-wIa.js} +2 -2
  22. package/dist/assets/{HelpModal.vue_vue_type_script_setup_true_lang-DEjnzS2A.js.map → HelpModal.vue_vue_type_script_setup_true_lang-DWDQ-wIa.js.map} +1 -1
  23. package/dist/assets/{JobDetailView-DvFGqRQj.js → JobDetailView-BExTkW8o.js} +2 -2
  24. package/dist/assets/{JobDetailView-DvFGqRQj.js.map → JobDetailView-BExTkW8o.js.map} +1 -1
  25. package/dist/assets/{JobsView-C-rxx15K.js → JobsView-h0PuFN8o.js} +2 -2
  26. package/dist/assets/{JobsView-C-rxx15K.js.map → JobsView-h0PuFN8o.js.map} +1 -1
  27. package/dist/assets/{LogViewer.vue_vue_type_script_setup_true_lang-6CJlo0ox.js → LogViewer.vue_vue_type_script_setup_true_lang-BNqCyGeQ.js} +2 -2
  28. package/dist/assets/{LogViewer.vue_vue_type_script_setup_true_lang-6CJlo0ox.js.map → LogViewer.vue_vue_type_script_setup_true_lang-BNqCyGeQ.js.map} +1 -1
  29. package/dist/assets/{LoginView-CAXL0Xhr.js → LoginView-CSY6YIsK.js} +2 -2
  30. package/dist/assets/{LoginView-CAXL0Xhr.js.map → LoginView-CSY6YIsK.js.map} +1 -1
  31. package/dist/assets/{LogsTab-Bzz4JBQM.js → LogsTab-CKNkR_07.js} +2 -2
  32. package/dist/assets/{LogsTab-Bzz4JBQM.js.map → LogsTab-CKNkR_07.js.map} +1 -1
  33. package/dist/assets/{NotFoundView-BRn9Jn4H.js → NotFoundView-B3377DMC.js} +2 -2
  34. package/dist/assets/{NotFoundView-BRn9Jn4H.js.map → NotFoundView-B3377DMC.js.map} +1 -1
  35. package/dist/assets/{NotifiersView-Bd13G-1b.js → NotifiersView-BrPpuf5o.js} +2 -2
  36. package/dist/assets/{NotifiersView-Bd13G-1b.js.map → NotifiersView-BrPpuf5o.js.map} +1 -1
  37. package/dist/assets/{OverviewTab-Ae5-H5DV.js → OverviewTab-DY-d5Ia3.js} +2 -2
  38. package/dist/assets/{OverviewTab-Ae5-H5DV.js.map → OverviewTab-DY-d5Ia3.js.map} +1 -1
  39. package/dist/assets/{PublicLogsView-DvCE0GT1.js → PublicLogsView-HBPDlV47.js} +2 -2
  40. package/dist/assets/{PublicLogsView-DvCE0GT1.js.map → PublicLogsView-HBPDlV47.js.map} +1 -1
  41. package/dist/assets/{RefreshButton.vue_vue_type_script_setup_true_lang-DpeOKN8U.js → RefreshButton.vue_vue_type_script_setup_true_lang-C7qymrfD.js} +2 -2
  42. package/dist/assets/{RefreshButton.vue_vue_type_script_setup_true_lang-DpeOKN8U.js.map → RefreshButton.vue_vue_type_script_setup_true_lang-C7qymrfD.js.map} +1 -1
  43. package/dist/assets/{RegistriesView-ZRRfxVTX.js → RegistriesView-B0XRfL2L.js} +2 -2
  44. package/dist/assets/{RegistriesView-ZRRfxVTX.js.map → RegistriesView-B0XRfL2L.js.map} +1 -1
  45. package/dist/assets/{RelativeTime.vue_vue_type_script_setup_true_lang-Dm9XnXF7.js → RelativeTime.vue_vue_type_script_setup_true_lang-BoNYQAdk.js} +2 -2
  46. package/dist/assets/{RelativeTime.vue_vue_type_script_setup_true_lang-Dm9XnXF7.js.map → RelativeTime.vue_vue_type_script_setup_true_lang-BoNYQAdk.js.map} +1 -1
  47. package/dist/assets/{RequiresTab-CLfNJHOh.js → RequiresTab-CwaFcz5T.js} +2 -2
  48. package/dist/assets/{RequiresTab-CLfNJHOh.js.map → RequiresTab-CwaFcz5T.js.map} +1 -1
  49. package/dist/assets/{RoutingView-BCsr0bjm.js → RoutingView-D-qgRSDy.js} +2 -2
  50. package/dist/assets/{RoutingView-BCsr0bjm.js.map → RoutingView-D-qgRSDy.js.map} +1 -1
  51. package/dist/assets/RuntimeTab-7GuemvVX.js +2 -0
  52. package/dist/assets/RuntimeTab-7GuemvVX.js.map +1 -0
  53. package/dist/assets/RuntimeTab-RB6kjod2.css +1 -0
  54. package/dist/assets/{SelectMenu.vue_vue_type_script_setup_true_lang-BLfPhhAj.js → SelectMenu.vue_vue_type_script_setup_true_lang-VAye0ofl.js} +2 -2
  55. package/dist/assets/{SelectMenu.vue_vue_type_script_setup_true_lang-BLfPhhAj.js.map → SelectMenu.vue_vue_type_script_setup_true_lang-VAye0ofl.js.map} +1 -1
  56. package/dist/assets/{SettingsView-Bo-SQP0q.js → SettingsView-cuiExi3-.js} +2 -2
  57. package/dist/assets/{SettingsView-Bo-SQP0q.js.map → SettingsView-cuiExi3-.js.map} +1 -1
  58. package/dist/assets/{SkeletonList.vue_vue_type_script_setup_true_lang-DjfNq2KM.js → SkeletonList.vue_vue_type_script_setup_true_lang-DMdwApyt.js} +2 -2
  59. package/dist/assets/{SkeletonList.vue_vue_type_script_setup_true_lang-DjfNq2KM.js.map → SkeletonList.vue_vue_type_script_setup_true_lang-DMdwApyt.js.map} +1 -1
  60. package/dist/assets/{SpecDetailView-C68gpDhO.js → SpecDetailView-Da_PDlft.js} +2 -2
  61. package/dist/assets/{SpecDetailView-C68gpDhO.js.map → SpecDetailView-Da_PDlft.js.map} +1 -1
  62. package/dist/assets/{SpecsView-mr3zSd-0.js → SpecsView-CQHYfu01.js} +2 -2
  63. package/dist/assets/{SpecsView-mr3zSd-0.js.map → SpecsView-CQHYfu01.js.map} +1 -1
  64. package/dist/assets/SsoView-5Kk12W1K.js +2 -0
  65. package/dist/assets/SsoView-5Kk12W1K.js.map +1 -0
  66. package/dist/assets/{StateBadge.vue_vue_type_script_setup_true_lang-BqldkWlT.js → StateBadge.vue_vue_type_script_setup_true_lang-m8_cteEx.js} +2 -2
  67. package/dist/assets/{StateBadge.vue_vue_type_script_setup_true_lang-BqldkWlT.js.map → StateBadge.vue_vue_type_script_setup_true_lang-m8_cteEx.js.map} +1 -1
  68. package/dist/assets/SubmitView-DsR4Rud8.js +50 -0
  69. package/dist/assets/SubmitView-DsR4Rud8.js.map +1 -0
  70. package/dist/assets/{SwarmView-DVKI5lNe.js → SwarmView-B-ESSXnj.js} +2 -2
  71. package/dist/assets/{SwarmView-DVKI5lNe.js.map → SwarmView-B-ESSXnj.js.map} +1 -1
  72. package/dist/assets/{Teleport-BUn4ayOo.js → Teleport-DTF2H_ia.js} +2 -2
  73. package/dist/assets/{Teleport-BUn4ayOo.js.map → Teleport-DTF2H_ia.js.map} +1 -1
  74. package/dist/assets/{TerminalTab-BRumgZMI.js → TerminalTab-BboWRxwq.js} +2 -2
  75. package/dist/assets/{TerminalTab-BRumgZMI.js.map → TerminalTab-BboWRxwq.js.map} +1 -1
  76. package/dist/assets/{UsersView-B7C2Bc3R.js → UsersView-BBn3F_YM.js} +2 -2
  77. package/dist/assets/{UsersView-B7C2Bc3R.js.map → UsersView-BBn3F_YM.js.map} +1 -1
  78. package/dist/assets/{VarEditor.vue_vue_type_script_setup_true_lang-CyOlKVt5.js → VarEditor.vue_vue_type_script_setup_true_lang-D7QFvEED.js} +2 -2
  79. package/dist/assets/{VarEditor.vue_vue_type_script_setup_true_lang-CyOlKVt5.js.map → VarEditor.vue_vue_type_script_setup_true_lang-D7QFvEED.js.map} +1 -1
  80. package/dist/assets/{VariablesView-UCBhNd_o.js → VariablesView-BAajBPNO.js} +2 -2
  81. package/dist/assets/{VariablesView-UCBhNd_o.js.map → VariablesView-BAajBPNO.js.map} +1 -1
  82. package/dist/assets/{index-9Ra4jfL4.js → index-BXPaPWhH.js} +3 -3
  83. package/dist/assets/{index-9Ra4jfL4.js.map → index-BXPaPWhH.js.map} +1 -1
  84. package/dist/assets/{useDeployment-DFOIiXrd.js → useDeployment-BDHMCIYu.js} +2 -2
  85. package/dist/assets/{useDeployment-DFOIiXrd.js.map → useDeployment-BDHMCIYu.js.map} +1 -1
  86. package/dist/index.html +1 -1
  87. package/package.json +1 -1
  88. package/dist/assets/RuntimeTab-CeJS5wuv.js +0 -2
  89. package/dist/assets/RuntimeTab-CeJS5wuv.js.map +0 -1
  90. package/dist/assets/SsoView-D2yf-noE.js +0 -2
  91. package/dist/assets/SsoView-D2yf-noE.js.map +0 -1
  92. package/dist/assets/SubmitView-Cdxo6Chq.js +0 -50
  93. package/dist/assets/SubmitView-Cdxo6Chq.js.map +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-CAXL0Xhr.js","assets/ActionButton.vue_vue_type_script_setup_true_lang-B0qf7_XI.js","assets/EquivalentCommand-GFG6rkn5.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/EquivalentCommand-BFnZRfDg.css","assets/LoginView-Djedwklv.css","assets/DashboardView-TYfDe8IH.js","assets/useFormat-DIlTY5Dl.js","assets/StateBadge.vue_vue_type_script_setup_true_lang-BqldkWlT.js","assets/SkeletonList.vue_vue_type_script_setup_true_lang-DjfNq2KM.js","assets/RefreshButton.vue_vue_type_script_setup_true_lang-DpeOKN8U.js","assets/DeploymentsView-DYAPYBih.js","assets/RelativeTime.vue_vue_type_script_setup_true_lang-Dm9XnXF7.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-BLfPhhAj.js","assets/Teleport-BUn4ayOo.js","assets/PublicLogsView-DvCE0GT1.js","assets/LogViewer.vue_vue_type_script_setup_true_lang-6CJlo0ox.js","assets/PublicLogsView-BAe90EbI.css","assets/DeploymentDetailView-RSDMb2tC.js","assets/useDeployment-DFOIiXrd.js","assets/useVars-VN9gYdR6.js","assets/ConflictNote.vue_vue_type_script_setup_true_lang-R1IfGYYT.js","assets/ErrorNote.vue_vue_type_script_setup_true_lang-DNaY6OBe.js","assets/OverviewTab-Ae5-H5DV.js","assets/ConfigTab-DSHTlGAK.js","assets/VarEditor.vue_vue_type_script_setup_true_lang-CyOlKVt5.js","assets/HelpModal.vue_vue_type_script_setup_true_lang-DEjnzS2A.js","assets/RuntimeTab-CeJS5wuv.js","assets/AxesTab-BxVd_LDI.js","assets/RequiresTab-CLfNJHOh.js","assets/LogsTab-Bzz4JBQM.js","assets/TerminalTab-BRumgZMI.js","assets/TerminalTab-DbjRludT.css","assets/DangerTab-BZ5e4YGe.js","assets/RoutingView-BCsr0bjm.js","assets/SwarmView-DVKI5lNe.js","assets/RegistriesView-ZRRfxVTX.js","assets/NotifiersView-Bd13G-1b.js","assets/SpecsView-mr3zSd-0.js","assets/SpecDetailView-C68gpDhO.js","assets/SubmitView-Cdxo6Chq.js","assets/JobsView-C-rxx15K.js","assets/JobDetailView-DvFGqRQj.js","assets/UsersView-B7C2Bc3R.js","assets/UsersView-Be77zCYE.css","assets/SsoView-D2yf-noE.js","assets/VariablesView-UCBhNd_o.js","assets/VariablesView-ByeOvDGJ.css","assets/SettingsView-Bo-SQP0q.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-CSY6YIsK.js","assets/ActionButton.vue_vue_type_script_setup_true_lang-CxT4O7XN.js","assets/EquivalentCommand-BjlPIrt9.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/EquivalentCommand-BFnZRfDg.css","assets/LoginView-Djedwklv.css","assets/DashboardView-DqIE-Aof.js","assets/useFormat-DIlTY5Dl.js","assets/StateBadge.vue_vue_type_script_setup_true_lang-m8_cteEx.js","assets/SkeletonList.vue_vue_type_script_setup_true_lang-DMdwApyt.js","assets/RefreshButton.vue_vue_type_script_setup_true_lang-C7qymrfD.js","assets/DeploymentsView-CalAGK0U.js","assets/RelativeTime.vue_vue_type_script_setup_true_lang-BoNYQAdk.js","assets/SelectMenu.vue_vue_type_script_setup_true_lang-VAye0ofl.js","assets/Teleport-DTF2H_ia.js","assets/PublicLogsView-HBPDlV47.js","assets/LogViewer.vue_vue_type_script_setup_true_lang-BNqCyGeQ.js","assets/PublicLogsView-BAe90EbI.css","assets/DeploymentDetailView-nFBQCzq0.js","assets/useDeployment-BDHMCIYu.js","assets/useVars-VN9gYdR6.js","assets/ConflictNote.vue_vue_type_script_setup_true_lang-cZYd7gRK.js","assets/ErrorNote.vue_vue_type_script_setup_true_lang-B5-EJpIO.js","assets/OverviewTab-DY-d5Ia3.js","assets/ConfigTab-CKjpaZmg.js","assets/VarEditor.vue_vue_type_script_setup_true_lang-D7QFvEED.js","assets/HelpModal.vue_vue_type_script_setup_true_lang-DWDQ-wIa.js","assets/RuntimeTab-7GuemvVX.js","assets/RuntimeTab-RB6kjod2.css","assets/AxesTab-BJZ9B5js.js","assets/RequiresTab-CwaFcz5T.js","assets/LogsTab-CKNkR_07.js","assets/TerminalTab-BboWRxwq.js","assets/TerminalTab-DbjRludT.css","assets/DangerTab-XshYLxAZ.js","assets/RoutingView-D-qgRSDy.js","assets/SwarmView-B-ESSXnj.js","assets/RegistriesView-B0XRfL2L.js","assets/NotifiersView-BrPpuf5o.js","assets/SpecsView-CQHYfu01.js","assets/SpecDetailView-Da_PDlft.js","assets/SubmitView-DsR4Rud8.js","assets/JobsView-h0PuFN8o.js","assets/JobDetailView-BExTkW8o.js","assets/UsersView-BBn3F_YM.js","assets/UsersView-Be77zCYE.css","assets/SsoView-5Kk12W1K.js","assets/VariablesView-BAajBPNO.js","assets/VariablesView-ByeOvDGJ.css","assets/SettingsView-cuiExi3-.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-CAXL0
23
23
  * vue-router v4.6.4
24
24
  * (c) 2025 Eduardo San Martin Morote
25
25
  * @license MIT
26
- */let Ef=()=>location.protocol+"//"+location.host;function ql(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),Go(a,"")}return Go(n,e)+s+r}function wf(e,t,n,s){let r=[],o=[],i=null;const a=({state:p})=>{const g=ql(e,location),C=n.value,w=t.value;let I=0;if(p){if(n.value=g,t.value=p,i&&i===C){i=null;return}I=w?p.position-w.position:0}else s(g);r.forEach(x=>{x(n.value,C,{delta:I,type:Rr.pop,direction:I?I>0?lr.forward:lr.back:lr.unknown})})};function l(){i=n.value}function c(p){r.push(p);const g=()=>{const C=r.indexOf(p);C>-1&&r.splice(C,1)};return o.push(g),g}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(ie({},p.state,{scroll:Ws()}),"")}}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 Jo(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?Ws():null}}function Af(e){const{history:t,location:n}=window,s={value:ql(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:Ef()+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,ie({},t.state,Jo(r.value.back,l,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=l}function a(l,c){const u=ie({},r.value,t.state,{forward:l,scroll:Ws()});o(u.current,u,!0),o(l,ie({},Jo(s.value,l,null),{position:u.position+1},c),!1),s.value=l}return{location:s,state:r,push:a,replace:i}}function Cf(e){e=lf(e);const t=Af(e),n=wf(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=ie({location:"",base:e,go:s,createHref:cf.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 Ce=(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})(Ce||{});const xf={type:Zt.Static,value:""},Sf=/[a-zA-Z0-9_]/;function Rf(e){if(!e)return[[]];if(e==="/")return[[xf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${c}": ${g}`)}let n=Ce.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let a=0,l,c="",u="";function f(){c&&(n===Ce.Static?o.push({type:Zt.Static,value:c}):n===Ce.Param||n===Ce.ParamRegExp||n===Ce.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!==Ce.ParamRegExp){s=n,n=Ce.EscapeNext;continue}switch(n){case Ce.Static:l==="/"?(c&&f(),i()):l===":"?(f(),n=Ce.Param):p();break;case Ce.EscapeNext:p(),n=s;break;case Ce.Param:l==="("?n=Ce.ParamRegExp:Sf.test(l)?p():(f(),n=Ce.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case Ce.ParamRegExp:l===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+l:n=Ce.ParamRegExpEnd:u+=l;break;case Ce.ParamRegExpEnd:f(),n=Ce.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--,u="";break;default:t("Unknown state");break}}return n===Ce.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),f(),i(),r}const Yo="[^/]+?",Tf={sensitive:!1,strict:!1,start:!0,end:!0};var Fe=(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})(Fe||{});const kf=/[.+*?^${}()[\]/\\]/g;function Pf(e,t){const n=ie({},Tf,t),s=[];let r=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[Fe.Root];n.strict&&!c.length&&(r+="/");for(let f=0;f<c.length;f++){const p=c[f];let g=Fe.Segment+(n.sensitive?Fe.BonusCaseSensitive:0);if(p.type===Zt.Static)f||(r+="/"),r+=p.value.replace(kf,"\\$&"),g+=Fe.Static;else if(p.type===Zt.Param){const{value:C,repeatable:w,optional:I,regexp:x}=p;o.push({name:C,repeatable:w,optional:I});const v=x||Yo;if(v!==Yo){g+=Fe.BonusCustomRegExp;try{`${v}`}catch(S){throw new Error(`Invalid custom RegExp for param "${C}" (${v}): `+S.message)}}let k=w?`((?:${v})(?:/(?:${v}))*)`:`(${v})`;f||(k=I&&c.length<2?`(?:/${k})`:"/"+k),I&&(k+="?"),r+=k,g+=Fe.Dynamic,I&&(g+=Fe.BonusOptional),w&&(g+=Fe.BonusRepeatable),v===".*"&&(g+=Fe.BonusWildcard)}u.push(g)}s.push(u)}if(n.strict&&n.end){const c=s.length-1;s[c][s[c].length-1]+=Fe.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]||"",C=o[p-1];f[C.name]=g&&C.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:C,repeatable:w,optional:I}=g,x=C in c?c[C]:"";if(rt(x)&&!w)throw new Error(`Provided param "${C}" is an array but it is not repeatable (* or + modifiers)`);const v=rt(x)?x.join("/"):x;if(!v)if(I)p.length<2&&(u.endsWith("/")?u=u.slice(0,-1):f=!0);else throw new Error(`Missing required param "${C}"`);u+=v}}return u||"/"}return{re:i,score:s,keys:o,parse:a,stringify:l}}function Of(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]===Fe.Static+Fe.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Fe.Static+Fe.Segment?1:-1:0}function zl(e,t){let n=0;const s=e.score,r=t.score;for(;n<s.length&&n<r.length;){const o=Of(s[n],r[n]);if(o)return o;n++}if(Math.abs(r.length-s.length)===1){if(Qo(s))return 1;if(Qo(r))return-1}return r.length-s.length}function Qo(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Mf(e,t,n){const s=Pf(Rf(e.path),n),r=ie(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Nf(e,t){const n=[],s=new Map;t=Uo(If,t);function r(f){return s.get(f)}function o(f,p,g){const C=!g,w=Zo(f);w.aliasOf=g&&g.record;const I=Uo(t,f),x=[w];if("alias"in f){const S=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of S)x.push(Zo(ie({},w,{components:g?g.record.components:w.components,path:U,aliasOf:g?g.record:w})))}let v,k;for(const S of x){const{path:U}=S;if(p&&U[0]!=="/"){const z=p.record.path,V=z[z.length-1]==="/"?"":"/";S.path=p.record.path+(U&&V+U)}if(v=Mf(S,p,I),g?g.alias.push(v):(k=k||v,k!==v&&k.alias.push(v),C&&f.name&&!ei(v)&&i(f.name)),Jl(v)&&l(v),w.children){const z=w.children;for(let V=0;V<z.length;V++)o(z[V],v,g&&g.children[V])}g=g||v}return k?()=>{i(k)}:Hn}function i(f){if(Kl(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=Vf(f,n);n.splice(p,0,f),f.record.name&&!ei(f)&&s.set(f.record.name,f)}function c(f,p){let g,C={},w,I;if("name"in f&&f.name){if(g=s.get(f.name),!g)throw An(ve.MATCHER_NOT_FOUND,{location:f});I=g.record.name,C=ie(Xo(p.params,g.keys.filter(k=>!k.optional).concat(g.parent?g.parent.keys.filter(k=>k.optional):[]).map(k=>k.name)),f.params&&Xo(f.params,g.keys.map(k=>k.name))),w=g.stringify(C)}else if(f.path!=null)w=f.path,g=n.find(k=>k.re.test(w)),g&&(C=g.parse(w),I=g.record.name);else{if(g=p.name?s.get(p.name):n.find(k=>k.re.test(p.path)),!g)throw An(ve.MATCHER_NOT_FOUND,{location:f,currentLocation:p});I=g.record.name,C=ie({},p.params,f.params),w=g.stringify(C)}const x=[];let v=g;for(;v;)x.unshift(v.record),v=v.parent;return{name:I,path:w,params:C,matched:x,meta:Df(x)}}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 Xo(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function Zo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Lf(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 Lf(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 ei(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Df(e){return e.reduce((t,n)=>ie(t,n.meta),{})}function Vf(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;zl(e,t[o])<0?s=o:n=o+1}const r=jf(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function jf(e){let t=e;for(;t=t.parent;)if(Jl(t)&&zl(e,t)===0)return t}function Jl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ti(e){const t=nt(qs),n=nt(Wr),s=Pe(()=>{const l=q(e.to);return t.resolve(l)}),r=Pe(()=>{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=ni(l[c-2]);return c>1&&ni(u)===g&&f[f.length-1].path!==g?f.findIndex(wn.bind(null,l[c-2])):p}),o=Pe(()=>r.value>-1&&Uf(n.params,s.value.params)),i=Pe(()=>r.value>-1&&r.value===n.matched.length-1&&Gl(n.params,s.value.params));function a(l={}){if($f(l)){const c=t[q(e.replace)?"replace":"push"](q(e.to)).catch(Hn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:Pe(()=>s.value.href),isActive:o,isExactActive:i,navigate:a}}function Ff(e){return e.length===1?e[0]:e}const Bf=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:ti,setup(e,{slots:t}){const n=Kt(ti(e)),{options:s}=nt(qs),r=Pe(()=>({[si(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[si(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Ff(t.default(n));return e.custom?o:vn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),Hf=Bf;function $f(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 Uf(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(!rt(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function ni(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const si=(e,t,n)=>e??t??n,Gf=sn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=nt(kr),r=Pe(()=>e.route||s.value),o=nt(zo,0),i=Pe(()=>{let c=q(o);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=Pe(()=>r.value.matched[i.value]);cs(zo,Pe(()=>i.value+1)),cs(vf,a),cs(kr,r);const l=Xe();return gt(()=>[l.value,a.value,e.name],([c,u,f],[p,g,C])=>{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 ri(n.default,{Component:p,route:c});const g=f.props[u],C=g?g===!0?c.params:typeof g=="function"?g(c):g:null,I=vn(p,ie({},C,t,{onVnodeUnmounted:x=>{x.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return ri(n.default,{Component:I,route:c})||I}}});function ri(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Kf=Gf;function Wf(e){const t=Nf(e.routes,e),n=e.parseQuery||yf,s=e.stringifyQuery||qo,r=e.history,o=On(),i=On(),a=On(),l=Oa(Mt);let c=Mt;un&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=or.bind(null,b=>""+b),f=or.bind(null,Zu),p=or.bind(null,Yn);function g(b,D){let O,B;return Kl(b)?(O=t.getRecordMatcher(b),B=D):B=b,t.addRoute(B,O)}function C(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 x(b,D){if(D=ie({},D||l.value),typeof b=="string"){const m=ir(n,b,D.path),_=t.resolve({path:m.path},D),E=r.createHref(m.fullPath);return ie(m,_,{params:p(_.params),hash:Yn(m.hash),redirectedFrom:void 0,href:E})}let O;if(b.path!=null)O=ie({},b,{path:ir(n,b.path,D.path).path});else{const m=ie({},b.params);for(const _ in m)m[_]==null&&delete m[_];O=ie({},b,{params:f(m)}),D.params=f(D.params)}const B=t.resolve(O,D),Y=b.hash||"";B.params=u(p(B.params));const d=nf(s,ie({},b,{hash:Yu(Y),path:B.path})),h=r.createHref(d);return ie({fullPath:d,hash:Y,query:s===qo?_f(b.query):b.query||{}},B,{redirectedFrom:void 0,href:h})}function v(b){return typeof b=="string"?ir(n,b,l.value.path):ie({},b)}function k(b,D){if(c!==b)return An(ve.NAVIGATION_CANCELLED,{from:D,to:b})}function S(b){return V(b)}function U(b){return S(ie(v(b),{replace:!0}))}function z(b,D){const O=b.matched[b.matched.length-1];if(O&&O.redirect){const{redirect:B}=O;let Y=typeof B=="function"?B(b,D):B;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=v(Y):{path:Y},Y.params={}),ie({query:b.query,hash:b.hash,params:Y.path!=null?{}:b.params},Y)}}function V(b,D){const O=c=x(b),B=l.value,Y=b.state,d=b.force,h=b.replace===!0,m=z(O,B);if(m)return V(ie(v(m),{state:typeof m=="object"?ie({},Y,m.state):Y,force:d,replace:h}),D||O);const _=O;_.redirectedFrom=D;let E;return!d&&sf(s,B,O)&&(E=An(ve.NAVIGATION_DUPLICATED,{to:_,from:B}),ot(B,B,!0,!1)),(E?Promise.resolve(E):J(_,B)).catch(y=>_t(y)?_t(y,ve.NAVIGATION_GUARD_REDIRECT)?y:Ot(y):oe(y,_,B)).then(y=>{if(y){if(_t(y,ve.NAVIGATION_GUARD_REDIRECT))return V(ie({replace:h},v(y.to),{state:typeof y.to=="object"?ie({},Y,y.to.state):Y,force:d}),D||_)}else y=N(_,B,!0,h,Y);return se(_,B,y),y})}function ee(b,D){const O=k(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 J(b,D){let O;const[B,Y,d]=bf(b,D);O=ar(B.reverse(),"beforeRouteLeave",b,D);for(const m of B)m.leaveGuards.forEach(_=>{O.push(Vt(_,b,D))});const h=ee.bind(null,b,D);return O.push(h),Je(O).then(()=>{O=[];for(const m of o.list())O.push(Vt(m,b,D));return O.push(h),Je(O)}).then(()=>{O=ar(Y,"beforeRouteUpdate",b,D);for(const m of Y)m.updateGuards.forEach(_=>{O.push(Vt(_,b,D))});return O.push(h),Je(O)}).then(()=>{O=[];for(const m of d)if(m.beforeEnter)if(rt(m.beforeEnter))for(const _ of m.beforeEnter)O.push(Vt(_,b,D));else O.push(Vt(m.beforeEnter,b,D));return O.push(h),Je(O)}).then(()=>(b.matched.forEach(m=>m.enterCallbacks={}),O=ar(d,"beforeRouteEnter",b,D,L),O.push(h),Je(O))).then(()=>{O=[];for(const m of i.list())O.push(Vt(m,b,D));return O.push(h),Je(O)}).catch(m=>_t(m,ve.NAVIGATION_CANCELLED)?m:Promise.reject(m))}function se(b,D,O){a.list().forEach(B=>L(()=>B(b,D,O)))}function N(b,D,O,B,Y){const d=k(b,D);if(d)return d;const h=D===Mt,m=un?history.state:{};O&&(B||h?r.replace(b.fullPath,ie({scroll:h&&m&&m.scroll},Y)):r.push(b.fullPath,Y)),l.value=b,ot(b,D,O,h),Ot()}let te;function _e(){te||(te=r.listen((b,D,O)=>{if(!Wt.listening)return;const B=x(b),Y=z(B,Wt.currentRoute.value);if(Y){V(ie(Y,{replace:!0,force:!0}),B).catch(Hn);return}c=B;const d=l.value;un&&df(Wo(d.fullPath,O.delta),Ws()),J(B,d).catch(h=>_t(h,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?h:_t(h,ve.NAVIGATION_GUARD_REDIRECT)?(V(ie(v(h.to),{force:!0}),B).then(m=>{_t(m,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!O.delta&&O.type===Rr.pop&&r.go(-1,!1)}).catch(Hn),Promise.reject()):(O.delta&&r.go(-O.delta,!1),oe(h,B,d))).then(h=>{h=h||N(B,d,!1),h&&(O.delta&&!_t(h,ve.NAVIGATION_CANCELLED)?r.go(-O.delta,!1):O.type===Rr.pop&&_t(h,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),se(B,d,h)}).catch(Hn)}))}let Ue=On(),we=On(),ce;function oe(b,D,O){Ot(b);const B=we.list();return B.length?B.forEach(Y=>Y(b,D,O)):console.error(b),Promise.reject(b)}function mt(){return ce&&l.value!==Mt?Promise.resolve():new Promise((b,D)=>{Ue.add([b,D])})}function Ot(b){return ce||(ce=!b,_e(),Ue.list().forEach(([D,O])=>b?O(b):D()),Ue.reset()),b}function ot(b,D,O,B){const{scrollBehavior:Y}=e;if(!un||!Y)return Promise.resolve();const d=!O&&hf(Wo(b.fullPath,0))||(B||!O)&&history.state&&history.state.scroll||null;return _n().then(()=>Y(b,D,d)).then(h=>h&&ff(h)).catch(h=>oe(h,b,D))}const $e=b=>r.go(b);let rn;const on=new Set,Wt={currentRoute:l,listening:!0,addRoute:g,removeRoute:C,clearRoutes:t.clearRoutes,hasRoute:I,getRoutes:w,resolve:x,options:e,push:S,replace:U,go:$e,back:()=>$e(-1),forward:()=>$e(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:we.add,isReady:mt,install(b){b.component("RouterLink",Hf),b.component("RouterView",Kf),b.config.globalProperties.$router=Wt,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>q(l)}),un&&!rn&&l.value===Mt&&(rn=!0,S(r.location).catch(B=>{}));const D={};for(const B in Mt)Object.defineProperty(D,B,{get:()=>l.value[B],enumerable:!0});b.provide(qs,Wt),b.provide(Wr,Di(D)),b.provide(kr,l);const O=b.unmount;on.add(b),b.unmount=function(){on.delete(b),on.size<1&&(c=Mt,te&&te(),te=null,l.value=Mt,rn=!1,ce=!1),O()}}};function Je(b){return b.reduce((D,O)=>D.then(()=>L(O)),Promise.resolve())}return Wt}function qr(){return nt(qs)}function qf(e){return nt(Wr)}const zf=[{path:"/login",name:"login",component:()=>fe(()=>import("./LoginView-CAXL0Xhr.js"),__vite__mapDeps([0,1,2,3,4,5]))},{path:"/",name:"dashboard",component:()=>fe(()=>import("./DashboardView-TYfDe8IH.js"),__vite__mapDeps([6,7,8,9,10]))},{path:"/deployments",name:"deployments",component:()=>fe(()=>import("./DeploymentsView-DYAPYBih.js"),__vite__mapDeps([11,7,9,12,13,14,10]))},{path:"/deployments/:id/public-logs-view",name:"public-logs",component:()=>fe(()=>import("./PublicLogsView-DvCE0GT1.js"),__vite__mapDeps([15,7,16,13,14,3,17])),props:!0,meta:{public:!0}},{path:"/deployments/:id",component:()=>fe(()=>import("./DeploymentDetailView-RSDMb2tC.js"),__vite__mapDeps([18,7,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:()=>fe(()=>import("./OverviewTab-Ae5-H5DV.js"),__vite__mapDeps([23,19,20,7,9]))},{path:"config",name:"d.config",component:()=>fe(()=>import("./ConfigTab-DSHTlGAK.js"),__vite__mapDeps([24,7,19,20,25,26,14]))},{path:"runtime",name:"d.runtime",component:()=>fe(()=>import("./RuntimeTab-CeJS5wuv.js"),__vite__mapDeps([27,7,19,20,9,1,22,10]))},{path:"axes",name:"d.axes",component:()=>fe(()=>import("./AxesTab-BxVd_LDI.js"),__vite__mapDeps([28,19,20]))},{path:"requires",name:"d.requires",component:()=>fe(()=>import("./RequiresTab-CLfNJHOh.js"),__vite__mapDeps([29,19,20]))},{path:"logs",name:"d.logs",component:()=>fe(()=>import("./LogsTab-Bzz4JBQM.js"),__vite__mapDeps([30,19,20,7,13,14,16]))},{path:"terminal",name:"d.terminal",component:()=>fe(()=>import("./TerminalTab-BRumgZMI.js"),__vite__mapDeps([31,22,13,14,3,32]))},{path:"danger",name:"d.danger",component:()=>fe(()=>import("./DangerTab-BZ5e4YGe.js"),__vite__mapDeps([33,19,20,21,7,1,22,2,3,4,13,14]))}]},{path:"/routing",name:"routing",component:()=>fe(()=>import("./RoutingView-BCsr0bjm.js"),__vite__mapDeps([34,7,1,22,9,26,14,10]))},{path:"/swarm",name:"swarm",component:()=>fe(()=>import("./SwarmView-DVKI5lNe.js"),__vite__mapDeps([35,7,1,22,26,14,10,13,9]))},{path:"/registries",name:"registries",component:()=>fe(()=>import("./RegistriesView-ZRRfxVTX.js"),__vite__mapDeps([36,1,22,9,26,14,10]))},{path:"/notifiers",name:"notifiers",component:()=>fe(()=>import("./NotifiersView-Bd13G-1b.js"),__vite__mapDeps([37,7,1,22,9,12,13,14,10]))},{path:"/specs",name:"specs",component:()=>fe(()=>import("./SpecsView-mr3zSd-0.js"),__vite__mapDeps([38,7,9,22,12,2,3,4,10]))},{path:"/specs/:name",name:"spec",component:()=>fe(()=>import("./SpecDetailView-C68gpDhO.js"),__vite__mapDeps([39,7,9,22])),props:!0},{path:"/submit/:id?",name:"submit",component:()=>fe(()=>import("./SubmitView-Cdxo6Chq.js"),__vite__mapDeps([40,20,1,22,25,13,14])),props:!0},{path:"/jobs",name:"jobs",component:()=>fe(()=>import("./JobsView-C-rxx15K.js"),__vite__mapDeps([41,7,8,9,12,13,14,10]))},{path:"/jobs/:jobId",name:"job",component:()=>fe(()=>import("./JobDetailView-DvFGqRQj.js"),__vite__mapDeps([42,7,16,8,1,22])),props:!0},{path:"/users",name:"users",component:()=>fe(()=>import("./UsersView-B7C2Bc3R.js"),__vite__mapDeps([43,1,2,3,4,22,12,7,9,10,44]))},{path:"/sso",name:"sso",component:()=>fe(()=>import("./SsoView-D2yf-noE.js"),__vite__mapDeps([45,1,22,26,14,13,9]))},{path:"/variables",name:"variables",component:()=>fe(()=>import("./VariablesView-UCBhNd_o.js"),__vite__mapDeps([46,1,2,3,4,22,12,7,9,10,47]))},{path:"/settings",name:"settings",component:()=>fe(()=>import("./SettingsView-Bo-SQP0q.js"),__vite__mapDeps([48,1,13,14]))},{path:"/:pathMatch(.*)*",name:"not-found",component:()=>fe(()=>import("./NotFoundView-BRn9Jn4H.js"),[])}],Cn=Wf({history:Cf(),routes:zf,scrollBehavior:(e,t,n)=>n??{top:0}});Cn.beforeEach(async e=>{if(e.meta.public)return!0;const{authState:t,checkAuth:n}=await fe(async()=>{const{authState:s,checkAuth:r}=await Promise.resolve().then(()=>_d);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 zr=typeof document<"u"&&typeof document.startViewTransition=="function";zr&&(document.documentElement.dataset.vt="on");if(zr){let e=null;Cn.beforeResolve(()=>new Promise(t=>{document.startViewTransition(()=>(t(),new Promise(n=>{e=n,setTimeout(()=>{e==null||e(),e=null},400)})))})),Cn.afterEach(async()=>{await _n(),e==null||e(),e=null})}let Jf=0;const mn=Kt([]);function Yl(e){const t=mn.findIndex(n=>n.id===e);t>=0&&mn.splice(t,1)}function _h(e,t,n={}){const s=++Jf;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(()=>Yl(s),r);mn.length>5;)mn.shift();return s}const Yf={class:"toasts","aria-live":"polite","aria-atomic":"false"},Qf=["aria-label","onClick"],Xf=sn({__name:"ToastHost",setup(e){return(t,n)=>{const s=yr("RouterLink");return Z(),ge("div",Yf,[$(bu,{name:"toast"},{default:me(()=>[(Z(!0),ge(be,null,_s(q(mn),r=>(Z(),ge("div",{key:r.id,class:Ft(["toast",r.kind])},[F("div",null,[F("div",null,Ie(r.text),1),r.to?(Z(),xt(s,{key:0,to:r.to},{default:me(()=>[jt(Ie(r.toLabel??"Open")+" →",1)]),_:2},1032,["to"])):Ke("",!0)]),F("button",{class:"x","aria-label":`dismiss: ${r.text}`,onClick:o=>q(Yl)(r.id)},"✕",8,Qf)],2))),128))]),_:1})])}}}),Zf=900;function oi(e){const t=e;if(!t)return!1;const n=t.tagName;return n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||t.isContentEditable===!0}function ed(){const e=qr(),t=Xe(!1);let n=0,s="";const r=o=>{if(o.key==="Escape"){t.value&&(t.value=!1,o.preventDefault()),oi(o.target)&&o.target.blur();return}if(o.metaKey||o.ctrlKey||o.altKey||oi(o.target))return;const i=Date.now();if(s==="g"&&i-n<Zf){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 Sn(()=>document.addEventListener("keydown",r)),es(()=>document.removeEventListener("keydown",r)),{sheetOpen:t}}const td=[{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"}],nd={class:"sheet"},sd={class:"row"},rd=sn({__name:"ShortcutSheet",props:{open:{type:Boolean}},emits:["close"],setup(e,{emit:t}){const n=t;return(s,r)=>(Z(),xt(Ks,{name:"fade"},{default:me(()=>[e.open?(Z(),ge("div",{key:0,class:"scrim",role:"dialog","aria-modal":"true","aria-label":"Keyboard shortcuts",onClick:r[1]||(r[1]=Vl(o=>n("close"),["self"]))},[F("div",nd,[F("div",sd,[r[2]||(r[2]=F("h2",{style:{"font-size":"var(--t-lg)","font-weight":"650"}},"Keyboard shortcuts",-1)),r[3]||(r[3]=F("span",{class:"grow"},null,-1)),F("button",{class:"ghost sm",onClick:r[0]||(r[0]=o=>n("close"))},"Close")]),F("dl",null,[(Z(!0),ge(be,null,_s(q(td),o=>(Z(),ge(be,{key:o.keys},[F("dt",null,[(Z(!0),ge(be,null,_s(o.keys.split(" "),i=>(Z(),ge("kbd",{key:i,style:{"margin-left":"4px"}},Ie(i),1))),128))]),F("dd",null,Ie(o.what),1)],64))),128))])])])):Ke("",!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 xs(e,t){try{t?localStorage.setItem(e,t):localStorage.removeItem(e)}catch{}}const cr=Cs(Ut.theme,"system"),ur=Cs(Ut.motion,"system"),ke=Kt({token:Cs(Ut.token,""),apiBase:Cs(Ut.apiBase,""),theme:cr==="dark"||cr==="light"?cr:"system",motion:ur==="full"||ur==="none"?ur:"system"});function Ql(){const e=document.documentElement;ke.theme==="system"?delete e.dataset.theme:e.dataset.theme=ke.theme,ke.motion==="system"?delete e.dataset.motion:e.dataset.motion=ke.motion}gt(()=>ke.token,e=>xs(Ut.token,e));gt(()=>ke.apiBase,e=>xs(Ut.apiBase,e));gt(()=>[ke.theme,ke.motion],()=>{xs(Ut.theme,ke.theme==="system"?"":ke.theme),xs(Ut.motion,ke.motion==="system"?"":ke.motion),Ql()});Ql();function vh(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 Pr(e){const t=ke.apiBase.replace(/\/$/,""),n=t?t+e:e;return Or?`${n}${n.includes("?")?"&":"?"}token=${encodeURIComponent(Or)}`:n}let Or="";function bh(e){Or=e}let ds=null;function od(e){ds=e}async function an(e,t,n,s=!1){const r={};e!=="GET"&&(r["content-type"]="application/json"),ke.token&&(r.authorization=`Bearer ${ke.token}`);try{const o=await fetch(Pr(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/")&&(ds==null||ds()),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={};ke.token&&(t.authorization=`Bearer ${ke.token}`);try{const n=await fetch(Pr(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:Pr};function Jr(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 Ef=()=>location.protocol+"//"+location.host;function ql(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),Go(a,"")}return Go(n,e)+s+r}function wf(e,t,n,s){let r=[],o=[],i=null;const a=({state:p})=>{const g=ql(e,location),C=n.value,w=t.value;let I=0;if(p){if(n.value=g,t.value=p,i&&i===C){i=null;return}I=w?p.position-w.position:0}else s(g);r.forEach(x=>{x(n.value,C,{delta:I,type:Rr.pop,direction:I?I>0?lr.forward:lr.back:lr.unknown})})};function l(){i=n.value}function c(p){r.push(p);const g=()=>{const C=r.indexOf(p);C>-1&&r.splice(C,1)};return o.push(g),g}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(ie({},p.state,{scroll:Ws()}),"")}}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 Jo(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?Ws():null}}function Af(e){const{history:t,location:n}=window,s={value:ql(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:Ef()+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,ie({},t.state,Jo(r.value.back,l,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=l}function a(l,c){const u=ie({},r.value,t.state,{forward:l,scroll:Ws()});o(u.current,u,!0),o(l,ie({},Jo(s.value,l,null),{position:u.position+1},c),!1),s.value=l}return{location:s,state:r,push:a,replace:i}}function Cf(e){e=lf(e);const t=Af(e),n=wf(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=ie({location:"",base:e,go:s,createHref:cf.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 Ce=(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})(Ce||{});const xf={type:Zt.Static,value:""},Sf=/[a-zA-Z0-9_]/;function Rf(e){if(!e)return[[]];if(e==="/")return[[xf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${c}": ${g}`)}let n=Ce.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let a=0,l,c="",u="";function f(){c&&(n===Ce.Static?o.push({type:Zt.Static,value:c}):n===Ce.Param||n===Ce.ParamRegExp||n===Ce.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!==Ce.ParamRegExp){s=n,n=Ce.EscapeNext;continue}switch(n){case Ce.Static:l==="/"?(c&&f(),i()):l===":"?(f(),n=Ce.Param):p();break;case Ce.EscapeNext:p(),n=s;break;case Ce.Param:l==="("?n=Ce.ParamRegExp:Sf.test(l)?p():(f(),n=Ce.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case Ce.ParamRegExp:l===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+l:n=Ce.ParamRegExpEnd:u+=l;break;case Ce.ParamRegExpEnd:f(),n=Ce.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--,u="";break;default:t("Unknown state");break}}return n===Ce.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),f(),i(),r}const Yo="[^/]+?",Tf={sensitive:!1,strict:!1,start:!0,end:!0};var Fe=(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})(Fe||{});const kf=/[.+*?^${}()[\]/\\]/g;function Pf(e,t){const n=ie({},Tf,t),s=[];let r=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[Fe.Root];n.strict&&!c.length&&(r+="/");for(let f=0;f<c.length;f++){const p=c[f];let g=Fe.Segment+(n.sensitive?Fe.BonusCaseSensitive:0);if(p.type===Zt.Static)f||(r+="/"),r+=p.value.replace(kf,"\\$&"),g+=Fe.Static;else if(p.type===Zt.Param){const{value:C,repeatable:w,optional:I,regexp:x}=p;o.push({name:C,repeatable:w,optional:I});const v=x||Yo;if(v!==Yo){g+=Fe.BonusCustomRegExp;try{`${v}`}catch(S){throw new Error(`Invalid custom RegExp for param "${C}" (${v}): `+S.message)}}let k=w?`((?:${v})(?:/(?:${v}))*)`:`(${v})`;f||(k=I&&c.length<2?`(?:/${k})`:"/"+k),I&&(k+="?"),r+=k,g+=Fe.Dynamic,I&&(g+=Fe.BonusOptional),w&&(g+=Fe.BonusRepeatable),v===".*"&&(g+=Fe.BonusWildcard)}u.push(g)}s.push(u)}if(n.strict&&n.end){const c=s.length-1;s[c][s[c].length-1]+=Fe.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]||"",C=o[p-1];f[C.name]=g&&C.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:C,repeatable:w,optional:I}=g,x=C in c?c[C]:"";if(rt(x)&&!w)throw new Error(`Provided param "${C}" is an array but it is not repeatable (* or + modifiers)`);const v=rt(x)?x.join("/"):x;if(!v)if(I)p.length<2&&(u.endsWith("/")?u=u.slice(0,-1):f=!0);else throw new Error(`Missing required param "${C}"`);u+=v}}return u||"/"}return{re:i,score:s,keys:o,parse:a,stringify:l}}function Of(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]===Fe.Static+Fe.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Fe.Static+Fe.Segment?1:-1:0}function zl(e,t){let n=0;const s=e.score,r=t.score;for(;n<s.length&&n<r.length;){const o=Of(s[n],r[n]);if(o)return o;n++}if(Math.abs(r.length-s.length)===1){if(Qo(s))return 1;if(Qo(r))return-1}return r.length-s.length}function Qo(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const If={strict:!1,end:!0,sensitive:!1};function Mf(e,t,n){const s=Pf(Rf(e.path),n),r=ie(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Nf(e,t){const n=[],s=new Map;t=Uo(If,t);function r(f){return s.get(f)}function o(f,p,g){const C=!g,w=Zo(f);w.aliasOf=g&&g.record;const I=Uo(t,f),x=[w];if("alias"in f){const S=typeof f.alias=="string"?[f.alias]:f.alias;for(const U of S)x.push(Zo(ie({},w,{components:g?g.record.components:w.components,path:U,aliasOf:g?g.record:w})))}let v,k;for(const S of x){const{path:U}=S;if(p&&U[0]!=="/"){const z=p.record.path,V=z[z.length-1]==="/"?"":"/";S.path=p.record.path+(U&&V+U)}if(v=Mf(S,p,I),g?g.alias.push(v):(k=k||v,k!==v&&k.alias.push(v),C&&f.name&&!ei(v)&&i(f.name)),Jl(v)&&l(v),w.children){const z=w.children;for(let V=0;V<z.length;V++)o(z[V],v,g&&g.children[V])}g=g||v}return k?()=>{i(k)}:Hn}function i(f){if(Kl(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=Vf(f,n);n.splice(p,0,f),f.record.name&&!ei(f)&&s.set(f.record.name,f)}function c(f,p){let g,C={},w,I;if("name"in f&&f.name){if(g=s.get(f.name),!g)throw An(ve.MATCHER_NOT_FOUND,{location:f});I=g.record.name,C=ie(Xo(p.params,g.keys.filter(k=>!k.optional).concat(g.parent?g.parent.keys.filter(k=>k.optional):[]).map(k=>k.name)),f.params&&Xo(f.params,g.keys.map(k=>k.name))),w=g.stringify(C)}else if(f.path!=null)w=f.path,g=n.find(k=>k.re.test(w)),g&&(C=g.parse(w),I=g.record.name);else{if(g=p.name?s.get(p.name):n.find(k=>k.re.test(p.path)),!g)throw An(ve.MATCHER_NOT_FOUND,{location:f,currentLocation:p});I=g.record.name,C=ie({},p.params,f.params),w=g.stringify(C)}const x=[];let v=g;for(;v;)x.unshift(v.record),v=v.parent;return{name:I,path:w,params:C,matched:x,meta:Df(x)}}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 Xo(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function Zo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Lf(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 Lf(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 ei(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Df(e){return e.reduce((t,n)=>ie(t,n.meta),{})}function Vf(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;zl(e,t[o])<0?s=o:n=o+1}const r=jf(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function jf(e){let t=e;for(;t=t.parent;)if(Jl(t)&&zl(e,t)===0)return t}function Jl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ti(e){const t=nt(qs),n=nt(Wr),s=Pe(()=>{const l=q(e.to);return t.resolve(l)}),r=Pe(()=>{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=ni(l[c-2]);return c>1&&ni(u)===g&&f[f.length-1].path!==g?f.findIndex(wn.bind(null,l[c-2])):p}),o=Pe(()=>r.value>-1&&Uf(n.params,s.value.params)),i=Pe(()=>r.value>-1&&r.value===n.matched.length-1&&Gl(n.params,s.value.params));function a(l={}){if($f(l)){const c=t[q(e.replace)?"replace":"push"](q(e.to)).catch(Hn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:Pe(()=>s.value.href),isActive:o,isExactActive:i,navigate:a}}function Ff(e){return e.length===1?e[0]:e}const Bf=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:ti,setup(e,{slots:t}){const n=Kt(ti(e)),{options:s}=nt(qs),r=Pe(()=>({[si(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[si(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Ff(t.default(n));return e.custom?o:vn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),Hf=Bf;function $f(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 Uf(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(!rt(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function ni(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const si=(e,t,n)=>e??t??n,Gf=sn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=nt(kr),r=Pe(()=>e.route||s.value),o=nt(zo,0),i=Pe(()=>{let c=q(o);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=Pe(()=>r.value.matched[i.value]);cs(zo,Pe(()=>i.value+1)),cs(vf,a),cs(kr,r);const l=Xe();return gt(()=>[l.value,a.value,e.name],([c,u,f],[p,g,C])=>{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 ri(n.default,{Component:p,route:c});const g=f.props[u],C=g?g===!0?c.params:typeof g=="function"?g(c):g:null,I=vn(p,ie({},C,t,{onVnodeUnmounted:x=>{x.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return ri(n.default,{Component:I,route:c})||I}}});function ri(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Kf=Gf;function Wf(e){const t=Nf(e.routes,e),n=e.parseQuery||yf,s=e.stringifyQuery||qo,r=e.history,o=On(),i=On(),a=On(),l=Oa(Mt);let c=Mt;un&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=or.bind(null,b=>""+b),f=or.bind(null,Zu),p=or.bind(null,Yn);function g(b,D){let O,B;return Kl(b)?(O=t.getRecordMatcher(b),B=D):B=b,t.addRoute(B,O)}function C(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 x(b,D){if(D=ie({},D||l.value),typeof b=="string"){const m=ir(n,b,D.path),_=t.resolve({path:m.path},D),E=r.createHref(m.fullPath);return ie(m,_,{params:p(_.params),hash:Yn(m.hash),redirectedFrom:void 0,href:E})}let O;if(b.path!=null)O=ie({},b,{path:ir(n,b.path,D.path).path});else{const m=ie({},b.params);for(const _ in m)m[_]==null&&delete m[_];O=ie({},b,{params:f(m)}),D.params=f(D.params)}const B=t.resolve(O,D),Y=b.hash||"";B.params=u(p(B.params));const d=nf(s,ie({},b,{hash:Yu(Y),path:B.path})),h=r.createHref(d);return ie({fullPath:d,hash:Y,query:s===qo?_f(b.query):b.query||{}},B,{redirectedFrom:void 0,href:h})}function v(b){return typeof b=="string"?ir(n,b,l.value.path):ie({},b)}function k(b,D){if(c!==b)return An(ve.NAVIGATION_CANCELLED,{from:D,to:b})}function S(b){return V(b)}function U(b){return S(ie(v(b),{replace:!0}))}function z(b,D){const O=b.matched[b.matched.length-1];if(O&&O.redirect){const{redirect:B}=O;let Y=typeof B=="function"?B(b,D):B;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=v(Y):{path:Y},Y.params={}),ie({query:b.query,hash:b.hash,params:Y.path!=null?{}:b.params},Y)}}function V(b,D){const O=c=x(b),B=l.value,Y=b.state,d=b.force,h=b.replace===!0,m=z(O,B);if(m)return V(ie(v(m),{state:typeof m=="object"?ie({},Y,m.state):Y,force:d,replace:h}),D||O);const _=O;_.redirectedFrom=D;let E;return!d&&sf(s,B,O)&&(E=An(ve.NAVIGATION_DUPLICATED,{to:_,from:B}),ot(B,B,!0,!1)),(E?Promise.resolve(E):J(_,B)).catch(y=>_t(y)?_t(y,ve.NAVIGATION_GUARD_REDIRECT)?y:Ot(y):oe(y,_,B)).then(y=>{if(y){if(_t(y,ve.NAVIGATION_GUARD_REDIRECT))return V(ie({replace:h},v(y.to),{state:typeof y.to=="object"?ie({},Y,y.to.state):Y,force:d}),D||_)}else y=N(_,B,!0,h,Y);return se(_,B,y),y})}function ee(b,D){const O=k(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 J(b,D){let O;const[B,Y,d]=bf(b,D);O=ar(B.reverse(),"beforeRouteLeave",b,D);for(const m of B)m.leaveGuards.forEach(_=>{O.push(Vt(_,b,D))});const h=ee.bind(null,b,D);return O.push(h),Je(O).then(()=>{O=[];for(const m of o.list())O.push(Vt(m,b,D));return O.push(h),Je(O)}).then(()=>{O=ar(Y,"beforeRouteUpdate",b,D);for(const m of Y)m.updateGuards.forEach(_=>{O.push(Vt(_,b,D))});return O.push(h),Je(O)}).then(()=>{O=[];for(const m of d)if(m.beforeEnter)if(rt(m.beforeEnter))for(const _ of m.beforeEnter)O.push(Vt(_,b,D));else O.push(Vt(m.beforeEnter,b,D));return O.push(h),Je(O)}).then(()=>(b.matched.forEach(m=>m.enterCallbacks={}),O=ar(d,"beforeRouteEnter",b,D,L),O.push(h),Je(O))).then(()=>{O=[];for(const m of i.list())O.push(Vt(m,b,D));return O.push(h),Je(O)}).catch(m=>_t(m,ve.NAVIGATION_CANCELLED)?m:Promise.reject(m))}function se(b,D,O){a.list().forEach(B=>L(()=>B(b,D,O)))}function N(b,D,O,B,Y){const d=k(b,D);if(d)return d;const h=D===Mt,m=un?history.state:{};O&&(B||h?r.replace(b.fullPath,ie({scroll:h&&m&&m.scroll},Y)):r.push(b.fullPath,Y)),l.value=b,ot(b,D,O,h),Ot()}let te;function _e(){te||(te=r.listen((b,D,O)=>{if(!Wt.listening)return;const B=x(b),Y=z(B,Wt.currentRoute.value);if(Y){V(ie(Y,{replace:!0,force:!0}),B).catch(Hn);return}c=B;const d=l.value;un&&df(Wo(d.fullPath,O.delta),Ws()),J(B,d).catch(h=>_t(h,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?h:_t(h,ve.NAVIGATION_GUARD_REDIRECT)?(V(ie(v(h.to),{force:!0}),B).then(m=>{_t(m,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!O.delta&&O.type===Rr.pop&&r.go(-1,!1)}).catch(Hn),Promise.reject()):(O.delta&&r.go(-O.delta,!1),oe(h,B,d))).then(h=>{h=h||N(B,d,!1),h&&(O.delta&&!_t(h,ve.NAVIGATION_CANCELLED)?r.go(-O.delta,!1):O.type===Rr.pop&&_t(h,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),se(B,d,h)}).catch(Hn)}))}let Ue=On(),we=On(),ce;function oe(b,D,O){Ot(b);const B=we.list();return B.length?B.forEach(Y=>Y(b,D,O)):console.error(b),Promise.reject(b)}function mt(){return ce&&l.value!==Mt?Promise.resolve():new Promise((b,D)=>{Ue.add([b,D])})}function Ot(b){return ce||(ce=!b,_e(),Ue.list().forEach(([D,O])=>b?O(b):D()),Ue.reset()),b}function ot(b,D,O,B){const{scrollBehavior:Y}=e;if(!un||!Y)return Promise.resolve();const d=!O&&hf(Wo(b.fullPath,0))||(B||!O)&&history.state&&history.state.scroll||null;return _n().then(()=>Y(b,D,d)).then(h=>h&&ff(h)).catch(h=>oe(h,b,D))}const $e=b=>r.go(b);let rn;const on=new Set,Wt={currentRoute:l,listening:!0,addRoute:g,removeRoute:C,clearRoutes:t.clearRoutes,hasRoute:I,getRoutes:w,resolve:x,options:e,push:S,replace:U,go:$e,back:()=>$e(-1),forward:()=>$e(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:we.add,isReady:mt,install(b){b.component("RouterLink",Hf),b.component("RouterView",Kf),b.config.globalProperties.$router=Wt,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>q(l)}),un&&!rn&&l.value===Mt&&(rn=!0,S(r.location).catch(B=>{}));const D={};for(const B in Mt)Object.defineProperty(D,B,{get:()=>l.value[B],enumerable:!0});b.provide(qs,Wt),b.provide(Wr,Di(D)),b.provide(kr,l);const O=b.unmount;on.add(b),b.unmount=function(){on.delete(b),on.size<1&&(c=Mt,te&&te(),te=null,l.value=Mt,rn=!1,ce=!1),O()}}};function Je(b){return b.reduce((D,O)=>D.then(()=>L(O)),Promise.resolve())}return Wt}function qr(){return nt(qs)}function qf(e){return nt(Wr)}const zf=[{path:"/login",name:"login",component:()=>fe(()=>import("./LoginView-CSY6YIsK.js"),__vite__mapDeps([0,1,2,3,4,5]))},{path:"/",name:"dashboard",component:()=>fe(()=>import("./DashboardView-DqIE-Aof.js"),__vite__mapDeps([6,7,8,9,10]))},{path:"/deployments",name:"deployments",component:()=>fe(()=>import("./DeploymentsView-CalAGK0U.js"),__vite__mapDeps([11,7,9,12,13,14,10]))},{path:"/deployments/:id/public-logs-view",name:"public-logs",component:()=>fe(()=>import("./PublicLogsView-HBPDlV47.js"),__vite__mapDeps([15,7,16,13,14,3,17])),props:!0,meta:{public:!0}},{path:"/deployments/:id",component:()=>fe(()=>import("./DeploymentDetailView-nFBQCzq0.js"),__vite__mapDeps([18,7,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:()=>fe(()=>import("./OverviewTab-DY-d5Ia3.js"),__vite__mapDeps([23,19,20,7,9]))},{path:"config",name:"d.config",component:()=>fe(()=>import("./ConfigTab-CKjpaZmg.js"),__vite__mapDeps([24,7,19,20,25,26,14]))},{path:"runtime",name:"d.runtime",component:()=>fe(()=>import("./RuntimeTab-7GuemvVX.js"),__vite__mapDeps([27,7,19,20,9,1,22,10,3,28]))},{path:"axes",name:"d.axes",component:()=>fe(()=>import("./AxesTab-BJZ9B5js.js"),__vite__mapDeps([29,19,20]))},{path:"requires",name:"d.requires",component:()=>fe(()=>import("./RequiresTab-CwaFcz5T.js"),__vite__mapDeps([30,19,20]))},{path:"logs",name:"d.logs",component:()=>fe(()=>import("./LogsTab-CKNkR_07.js"),__vite__mapDeps([31,19,20,7,13,14,16]))},{path:"terminal",name:"d.terminal",component:()=>fe(()=>import("./TerminalTab-BboWRxwq.js"),__vite__mapDeps([32,22,13,14,3,33]))},{path:"danger",name:"d.danger",component:()=>fe(()=>import("./DangerTab-XshYLxAZ.js"),__vite__mapDeps([34,19,20,21,7,1,22,2,3,4,13,14]))}]},{path:"/routing",name:"routing",component:()=>fe(()=>import("./RoutingView-D-qgRSDy.js"),__vite__mapDeps([35,7,1,22,9,26,14,10]))},{path:"/swarm",name:"swarm",component:()=>fe(()=>import("./SwarmView-B-ESSXnj.js"),__vite__mapDeps([36,7,1,22,26,14,10,13,9]))},{path:"/registries",name:"registries",component:()=>fe(()=>import("./RegistriesView-B0XRfL2L.js"),__vite__mapDeps([37,1,22,9,26,14,10]))},{path:"/notifiers",name:"notifiers",component:()=>fe(()=>import("./NotifiersView-BrPpuf5o.js"),__vite__mapDeps([38,7,1,22,9,12,13,14,10]))},{path:"/specs",name:"specs",component:()=>fe(()=>import("./SpecsView-CQHYfu01.js"),__vite__mapDeps([39,7,9,22,12,2,3,4,10]))},{path:"/specs/:name",name:"spec",component:()=>fe(()=>import("./SpecDetailView-Da_PDlft.js"),__vite__mapDeps([40,7,9,22])),props:!0},{path:"/submit/:id?",name:"submit",component:()=>fe(()=>import("./SubmitView-DsR4Rud8.js"),__vite__mapDeps([41,20,1,22,25,13,14])),props:!0},{path:"/jobs",name:"jobs",component:()=>fe(()=>import("./JobsView-h0PuFN8o.js"),__vite__mapDeps([42,7,8,9,12,13,14,10]))},{path:"/jobs/:jobId",name:"job",component:()=>fe(()=>import("./JobDetailView-BExTkW8o.js"),__vite__mapDeps([43,7,16,8,1,22])),props:!0},{path:"/users",name:"users",component:()=>fe(()=>import("./UsersView-BBn3F_YM.js"),__vite__mapDeps([44,1,2,3,4,22,12,7,9,10,45]))},{path:"/sso",name:"sso",component:()=>fe(()=>import("./SsoView-5Kk12W1K.js"),__vite__mapDeps([46,1,22,26,14,13,9]))},{path:"/variables",name:"variables",component:()=>fe(()=>import("./VariablesView-BAajBPNO.js"),__vite__mapDeps([47,1,2,3,4,22,12,7,9,10,48]))},{path:"/settings",name:"settings",component:()=>fe(()=>import("./SettingsView-cuiExi3-.js"),__vite__mapDeps([49,1,13,14]))},{path:"/:pathMatch(.*)*",name:"not-found",component:()=>fe(()=>import("./NotFoundView-B3377DMC.js"),[])}],Cn=Wf({history:Cf(),routes:zf,scrollBehavior:(e,t,n)=>n??{top:0}});Cn.beforeEach(async e=>{if(e.meta.public)return!0;const{authState:t,checkAuth:n}=await fe(async()=>{const{authState:s,checkAuth:r}=await Promise.resolve().then(()=>_d);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 zr=typeof document<"u"&&typeof document.startViewTransition=="function";zr&&(document.documentElement.dataset.vt="on");if(zr){let e=null;Cn.beforeResolve(()=>new Promise(t=>{document.startViewTransition(()=>(t(),new Promise(n=>{e=n,setTimeout(()=>{e==null||e(),e=null},400)})))})),Cn.afterEach(async()=>{await _n(),e==null||e(),e=null})}let Jf=0;const mn=Kt([]);function Yl(e){const t=mn.findIndex(n=>n.id===e);t>=0&&mn.splice(t,1)}function _h(e,t,n={}){const s=++Jf;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(()=>Yl(s),r);mn.length>5;)mn.shift();return s}const Yf={class:"toasts","aria-live":"polite","aria-atomic":"false"},Qf=["aria-label","onClick"],Xf=sn({__name:"ToastHost",setup(e){return(t,n)=>{const s=yr("RouterLink");return Z(),ge("div",Yf,[$(bu,{name:"toast"},{default:me(()=>[(Z(!0),ge(be,null,_s(q(mn),r=>(Z(),ge("div",{key:r.id,class:Ft(["toast",r.kind])},[F("div",null,[F("div",null,Ie(r.text),1),r.to?(Z(),xt(s,{key:0,to:r.to},{default:me(()=>[jt(Ie(r.toLabel??"Open")+" →",1)]),_:2},1032,["to"])):Ke("",!0)]),F("button",{class:"x","aria-label":`dismiss: ${r.text}`,onClick:o=>q(Yl)(r.id)},"✕",8,Qf)],2))),128))]),_:1})])}}}),Zf=900;function oi(e){const t=e;if(!t)return!1;const n=t.tagName;return n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||t.isContentEditable===!0}function ed(){const e=qr(),t=Xe(!1);let n=0,s="";const r=o=>{if(o.key==="Escape"){t.value&&(t.value=!1,o.preventDefault()),oi(o.target)&&o.target.blur();return}if(o.metaKey||o.ctrlKey||o.altKey||oi(o.target))return;const i=Date.now();if(s==="g"&&i-n<Zf){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 Sn(()=>document.addEventListener("keydown",r)),es(()=>document.removeEventListener("keydown",r)),{sheetOpen:t}}const td=[{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"}],nd={class:"sheet"},sd={class:"row"},rd=sn({__name:"ShortcutSheet",props:{open:{type:Boolean}},emits:["close"],setup(e,{emit:t}){const n=t;return(s,r)=>(Z(),xt(Ks,{name:"fade"},{default:me(()=>[e.open?(Z(),ge("div",{key:0,class:"scrim",role:"dialog","aria-modal":"true","aria-label":"Keyboard shortcuts",onClick:r[1]||(r[1]=Vl(o=>n("close"),["self"]))},[F("div",nd,[F("div",sd,[r[2]||(r[2]=F("h2",{style:{"font-size":"var(--t-lg)","font-weight":"650"}},"Keyboard shortcuts",-1)),r[3]||(r[3]=F("span",{class:"grow"},null,-1)),F("button",{class:"ghost sm",onClick:r[0]||(r[0]=o=>n("close"))},"Close")]),F("dl",null,[(Z(!0),ge(be,null,_s(q(td),o=>(Z(),ge(be,{key:o.keys},[F("dt",null,[(Z(!0),ge(be,null,_s(o.keys.split(" "),i=>(Z(),ge("kbd",{key:i,style:{"margin-left":"4px"}},Ie(i),1))),128))]),F("dd",null,Ie(o.what),1)],64))),128))])])])):Ke("",!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 xs(e,t){try{t?localStorage.setItem(e,t):localStorage.removeItem(e)}catch{}}const cr=Cs(Ut.theme,"system"),ur=Cs(Ut.motion,"system"),ke=Kt({token:Cs(Ut.token,""),apiBase:Cs(Ut.apiBase,""),theme:cr==="dark"||cr==="light"?cr:"system",motion:ur==="full"||ur==="none"?ur:"system"});function Ql(){const e=document.documentElement;ke.theme==="system"?delete e.dataset.theme:e.dataset.theme=ke.theme,ke.motion==="system"?delete e.dataset.motion:e.dataset.motion=ke.motion}gt(()=>ke.token,e=>xs(Ut.token,e));gt(()=>ke.apiBase,e=>xs(Ut.apiBase,e));gt(()=>[ke.theme,ke.motion],()=>{xs(Ut.theme,ke.theme==="system"?"":ke.theme),xs(Ut.motion,ke.motion==="system"?"":ke.motion),Ql()});Ql();function vh(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 Pr(e){const t=ke.apiBase.replace(/\/$/,""),n=t?t+e:e;return Or?`${n}${n.includes("?")?"&":"?"}token=${encodeURIComponent(Or)}`:n}let Or="";function bh(e){Or=e}let ds=null;function od(e){ds=e}async function an(e,t,n,s=!1){const r={};e!=="GET"&&(r["content-type"]="application/json"),ke.token&&(r.authorization=`Bearer ${ke.token}`);try{const o=await fetch(Pr(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/")&&(ds==null||ds()),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={};ke.token&&(t.authorization=`Bearer ${ke.token}`);try{const n=await fetch(Pr(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:Pr};function Jr(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 Eh(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 id={class:"palette",role:"dialog","aria-modal":"true","aria-label":"Command palette"},ld={class:"palette-q"},ad={key:0,class:"palette-empty"},cd={key:0,class:"palette-group"},ud=["data-on","onClick","onMousemove"],fd={class:"palette-label"},dd={key:0,class:"palette-hint"},hd={class:"palette-foot"},pd=sn({__name:"CommandPalette",setup(e,{expose:t}){const n=qr(),s=Xe(!1),r=Xe(""),o=Xe(0),i=Xe([]),a=Xe(null),l=Xe(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(x,v){if(!v)return 0;const k=x.toLowerCase(),S=v.toLowerCase();let U=0,z=0,V=0;for(const ee of S){const L=k.indexOf(ee,U);if(L===-1)return null;V=L===U&&U>0?V+1:0,z+=10+V*12-Math.min(L-U,8),L===0&&(z+=25),U=L+1}return z-k.length*.4}const f=Pe(()=>{const x=i.value.map(S=>({id:`d.${S.id}`,label:S.id,hint:S.stack??void 0,group:"Deployments",to:`/deployments/${encodeURIComponent(S.id)}/overview`,base:0})),v=[...c,...x],k=r.value.trim();return k?v.map(S=>({it:S,s:u(`${S.label} ${S.hint??""}`,k)})).filter(S=>S.s!==null).sort((S,U)=>U.s-S.s||U.it.base-S.it.base).map(S=>S.it):v.slice().sort((S,U)=>U.base-S.base)}),p=Pe(()=>f.value.map((x,v)=>({it:x,head:v===0||f.value[v-1].group!==x.group})));async function g(){var v;s.value=!0,r.value="",o.value=0,await _n(),(v=a.value)==null||v.focus();const x=await Gt.get("/api/deployments");x.ok&&(i.value=x.body.deployments)}function C(){s.value=!1}function w(x){x&&(C(),n.push(x.to))}gt(o,async()=>{var x,v;await _n(),(v=(x=l.value)==null?void 0:x.querySelector('[data-on="true"]'))==null||v.scrollIntoView({block:"nearest"})}),gt(r,()=>o.value=0);function I(x){if((x.metaKey||x.ctrlKey)&&x.key.toLowerCase()==="k"){x.preventDefault(),s.value?C():g();return}s.value&&(x.key==="Escape"?(x.preventDefault(),C()):x.key==="ArrowDown"||x.key==="n"&&x.ctrlKey?(x.preventDefault(),o.value=Math.min(o.value+1,f.value.length-1)):x.key==="ArrowUp"||x.key==="p"&&x.ctrlKey?(x.preventDefault(),o.value=Math.max(o.value-1,0)):x.key==="Enter"&&(x.preventDefault(),w(f.value[o.value])))}return Sn(()=>document.addEventListener("keydown",I)),es(()=>document.removeEventListener("keydown",I)),t({show:g}),(x,v)=>(Z(),xt(Ks,{name:"fade"},{default:me(()=>[s.value?(Z(),ge("div",{key:0,class:"scrim palette-scrim",onClick:Vl(C,["self"])},[F("div",id,[F("div",ld,[v[1]||(v[1]=F("svg",{viewBox:"0 0 24 24",width:"16",height:"16","aria-hidden":"true"},[F("circle",{cx:"11",cy:"11",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),F("path",{d:"M16.5 16.5 21 21",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),Ka(F("input",{ref_key:"input",ref:a,"onUpdate:modelValue":v[0]||(v[0]=k=>r.value=k),type:"text",placeholder:"Go to a deployment, a page, an action…","aria-label":"Search",autocomplete:"off",spellcheck:"false"},null,512),[[xr,r.value]]),v[2]||(v[2]=F("kbd",null,"esc",-1))]),F("div",{ref_key:"listEl",ref:l,class:"palette-list"},[p.value.length?Ke("",!0):(Z(),ge("p",ad," Nothing matches “"+Ie(r.value)+"”. ",1)),(Z(!0),ge(be,null,_s(p.value,(k,S)=>(Z(),ge(be,{key:k.it.id},[k.head?(Z(),ge("div",cd,Ie(k.it.group),1)):Ke("",!0),F("button",{class:"palette-row","data-on":S===o.value,onClick:U=>w(k.it),onMousemove:U=>o.value=S},[F("span",fd,Ie(k.it.label),1),k.it.hint?(Z(),ge("span",dd,Ie(k.it.hint),1)):Ke("",!0)],40,ud)],64))),128))],512),F("div",hd,[v[3]||(v[3]=F("span",null,[F("kbd",null,"↑"),F("kbd",null,"↓"),jt(" move")],-1)),v[4]||(v[4]=F("span",null,[F("kbd",null,"↵"),jt(" open")],-1)),v[5]||(v[5]=F("span",{class:"grow"},null,-1)),F("span",null,Ie(f.value.length)+" result"+Ie(f.value.length===1?"":"s"),1)])])])):Ke("",!0)]),_:1}))}});function gd(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()};Sn(()=>{e(),document.visibilityState==="visible"&&r(),document.addEventListener("visibilitychange",o)}),es(()=>{s(),document.removeEventListener("visibilitychange",o)})}const ye=Kt({health:null,healthError:"",deployments:[],deploymentsError:"",deploymentsLoaded:!1,jobs:[],jobsError:"",jobsLoaded:!1});async function ii(){const e=await Gt.get("/api/health");e.ok?(ye.health=e.body,ye.healthError=""):(ye.health=null,ye.healthError=Jr(e,"GET /api/health"))}async function li(){const e=await Gt.get("/api/deployments");if(ye.deploymentsLoaded=!0,!e.ok){ye.deploymentsError=Jr(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 ai(){const e=await Gt.get("/api/jobs");if(ye.jobsLoaded=!0,!e.ok){ye.jobsError=Jr(e,"GET /api/jobs");return}ye.jobsError="",ye.jobs=e.body.jobs??[]}const wh=Pe(()=>{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}),Ah=Pe(()=>ye.jobs.filter(e=>e.state==="leaked"));function Ch(e){return ye.deployments.find(t=>t.id===e)}const ae=Kt({checked:!1,authed:!1,root:!1,user:null,hasUsers:null,sso:null});async function md(){const e=await Gt.get("/api/health");e.ok&&(ae.hasUsers=e.body.hasUsers??null,ae.sso=e.body.sso??null);const t=await Gt.getAuthed("/api/auth/me");t.status!==0&&(ae.checked=!0,t.ok?(ae.authed=!0,ae.root=t.body.root===!0,ae.user=t.body.user??null):(ae.authed=!1,ae.root=!1,ae.user=null))}async function yd(e,t){const n=await Gt.post("/api/auth/login",{username:e,password:t});return n.ok?(ae.authed=!0,ae.root=!1,ae.user=n.body.user,null):n.body.error??"login failed"}async function Xl(){await Gt.post("/api/auth/logout",{}),ae.authed=!1,ae.root=!1,ae.user=null}od(()=>{if(!ae.checked)return;const e=ae.authed;ae.authed=!1,ae.user=null,ae.root=!1;const t=Cn.currentRoute.value;e&&t.name!=="login"&&Cn.replace({name:"login",query:t.fullPath!=="/"?{next:t.fullPath}:{}})});const _d=Object.freeze(Object.defineProperty({__proto__:null,authState:ae,checkAuth:md,login:yd,logout:Xl},Symbol.toStringTag,{value:"Module"}));/**
29
29
  * @license lucide-vue-next v0.577.0 - ISC
@@ -146,4 +146,4 @@ ${e.raw.slice(0,400)}`;const n=e.body.error;return e.status===404&&(!n||n==="not
146
146
  * This source code is licensed under the ISC license.
147
147
  * See the LICENSE file in the root directory of this source tree.
148
148
  */const jd=He("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"}]]),Fd=["aria-label","aria-expanded"],Bd=sn({__name:"InfoHint",props:{label:{},align:{},side:{}},setup(e){const t=e,n=Xe(!1),s=Xe(!1),r=Xe(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 Sn(()=>{document.addEventListener("pointerdown",o),document.addEventListener("keydown",i)}),Br(()=>{document.removeEventListener("pointerdown",o),document.removeEventListener("keydown",i)}),(a,l)=>(Z(),ge("span",{ref_key:"root",ref:r,class:"hint-wrap"},[F("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)},[$(q(Td),{size:15,"stroke-width":2,"aria-hidden":"true"})],42,Fd),$(Ks,{name:"hint"},{default:me(()=>[n.value||s.value?(Z(),ge("span",{key:0,class:Ft(["hint-bub",[t.align==="end"?"to-end":"to-start",t.side==="top"?"above":"below"]]),role:"tooltip"},[uc(a.$slots,"default")],2)):Ke("",!0)]),_:3})],512))}}),Hd={key:0,class:"rail"},$d={"aria-label":"Sections"},Ud={class:"count"},Gd={class:"count"},Kd={class:"foot"},Wd={key:0,class:"s-failed"},qd={key:1,class:"row",style:{gap:"4px"}},zd={key:0,class:"foot-who"},Jd={key:1,class:"foot-who"},Yd={class:"mute"},Qd={class:"row",style:{gap:"var(--s1)"}},Xd={id:"main",class:"view"},Zd=sn({__name:"App",setup(e){const{sheetOpen:t}=ed();gd(()=>{ae.authed&&(li(),ai())},7e3),gt(()=>ae.authed,a=>{a&&(li(),ai(),ii())});const n=qr(),s=qf(),r=Pe(()=>s.meta.public===!0);async function o(){await Xl(),n.push("/login")}ii();const i=Pe(()=>ye.jobs.filter(a=>a.state==="running").length);return(a,l)=>{const c=yr("RouterLink"),u=yr("RouterView");return Z(),ge(be,null,[l[18]||(l[18]=F("a",{class:"skip",href:"#main"},"Skip to content",-1)),F("div",{class:Ft(["shell",{"no-rail":!q(ae).authed,public:r.value}])},[q(ae).authed?(Z(),ge("aside",Hd,[$(c,{to:"/",class:"brand"},{default:me(()=>[$(q(Id),{size:20,"aria-hidden":"true"}),l[2]||(l[2]=jt(" pstack ",-1))]),_:1}),F("nav",$d,[$(c,{to:"/",class:"navlink",title:"g h"},{default:me(()=>[$(q(Pd),{size:17,"aria-hidden":"true"}),l[3]||(l[3]=F("span",null,"Dashboard",-1))]),_:1}),$(c,{to:"/deployments",class:"navlink",title:"g d"},{default:me(()=>[$(q(xd),{size:17,"aria-hidden":"true"}),l[4]||(l[4]=F("span",null,"Deployments",-1)),F("span",Ud,Ie(q(ye).deployments.length),1)]),_:1}),$(c,{to:"/specs",class:"navlink"},{default:me(()=>[$(q(Rd),{size:17,"aria-hidden":"true"}),l[5]||(l[5]=F("span",null,"Specs",-1))]),_:1}),$(c,{to:"/routing",class:"navlink"},{default:me(()=>[$(q(jd),{size:17,"aria-hidden":"true"}),l[6]||(l[6]=F("span",null,"Routing",-1))]),_:1}),$(c,{to:"/swarm",class:"navlink"},{default:me(()=>[$(q(Od),{size:17,"aria-hidden":"true"}),l[7]||(l[7]=F("span",null,"Swarm",-1))]),_:1}),$(c,{to:"/registries",class:"navlink"},{default:me(()=>[$(q(kd),{size:17,"aria-hidden":"true"}),l[8]||(l[8]=F("span",null,"Registries",-1))]),_:1}),$(c,{to:"/notifiers",class:"navlink"},{default:me(()=>[$(q(Cd),{size:17,"aria-hidden":"true"}),l[9]||(l[9]=F("span",null,"Notifiers",-1))]),_:1}),$(c,{to:"/jobs",class:"navlink",title:"g j"},{default:me(()=>[$(q(Sd),{size:17,"aria-hidden":"true"}),l[10]||(l[10]=F("span",null,"Jobs",-1)),F("span",Gd,Ie(i.value?`${i.value}▸`:q(ye).jobs.length),1)]),_:1}),$(c,{to:"/submit",class:"navlink",title:"g n"},{default:me(()=>[$(q(Md),{size:17,"aria-hidden":"true"}),l[11]||(l[11]=F("span",null,"Submit",-1))]),_:1}),$(c,{to:"/variables",class:"navlink"},{default:me(()=>[$(q(Vd),{size:17,"aria-hidden":"true"}),l[12]||(l[12]=F("span",null,"Variables",-1))]),_:1}),$(c,{to:"/users",class:"navlink"},{default:me(()=>[$(q(Dd),{size:17,"aria-hidden":"true"}),l[13]||(l[13]=F("span",null,"Users",-1))]),_:1}),$(c,{to:"/sso",class:"navlink"},{default:me(()=>[$(q(Ld),{size:17,"aria-hidden":"true"}),l[14]||(l[14]=F("span",null,"Sign-on",-1))]),_:1}),$(c,{to:"/settings",class:"navlink",title:"g s"},{default:me(()=>[$(q(Nd),{size:17,"aria-hidden":"true"}),l[15]||(l[15]=F("span",null,"Settings",-1))]),_:1})]),F("div",Kd,[q(ye).healthError?(Z(),ge("div",Wd,"Can't reach the server")):q(ye).health?(Z(),ge("div",qd,[q(ae).user?(Z(),ge("span",zd,Ie(q(ae).user.username),1)):q(ae).root&&q(ae).checked?(Z(),ge("span",Jd,"token access")):Ke("",!0),F("span",Yd,"· v"+Ie(q(ye).health.version),1),$(Bd,{label:"server details",side:"top"},{default:me(()=>[l[16]||(l[16]=jt(" Data is stored in ",-1)),F("code",null,Ie(q(ye).health.dataDir),1),l[17]||(l[17]=jt(" on the host. ",-1)),q(ye).health.authEnforced===!1?(Z(),ge(be,{key:0},[jt(" This server accepts connections from this machine only, so it does not ask for a token. ")],64)):Ke("",!0)]),_:1})])):Ke("",!0),F("div",Qd,[F("button",{class:"ghost sm",onClick:l[0]||(l[0]=f=>t.value=!0)},"Shortcuts"),q(ae).user?(Z(),ge("button",{key:0,class:"ghost sm",onClick:o},"Sign out")):Ke("",!0)])])])):Ke("",!0),F("main",Xd,[$(u,null,{default:me(({Component:f})=>[q(zr)?(Z(),xt(co(f),{key:0})):(Z(),xt(Ks,{key:1,name:"view",mode:"out-in"},{default:me(()=>[(Z(),xt(co(f)))]),_:2},1024))]),_:1})])],2),$(Xf),$(pd),$(rd,{open:q(t),onClose:l[1]||(l[1]=f=>t.value=!1)},null,8,["open"])],64)}}});Lu(Zd).use(Cn).mount("#app");export{uc as $,ye as A,wh as B,Jr as C,Ms as D,Ft as E,be as F,li as G,ai as H,Su as I,gt as J,Sn as K,bh as L,Br as M,co as N,_h as O,vh as P,fe as Q,Oa as R,Cn as S,Ks as T,Eh as U,ke as V,Kt as W,Ch as X,Ru as Y,gh as Z,Bd as _,F as a,_n as a0,ih as a1,jc as a2,eh as a3,Vc as a4,mh as a5,es as a6,ii as a7,ah as a8,oh as a9,ts as aa,De as ab,lh as ac,nt as ad,vn as ae,Pa as af,cs as ag,ch as ah,sh as ai,fa as aj,nh as ak,dh as al,uh as am,ph as an,hh as ao,La as ap,th as aq,pr as ar,zs as as,tl as at,rh as au,fh as av,Ne as aw,Ht as ax,yh as ay,ae as b,ge as c,sn as d,$ as e,jt as f,Ke as g,Vl as h,Ka as i,Pe as j,yr as k,qr as l,qf as m,Gt as n,Z as o,yd as p,md as q,Xe as r,gd as s,Ie as t,q as u,xr as v,me as w,Ah as x,_s as y,xt as z};
149
- //# sourceMappingURL=index-9Ra4jfL4.js.map
149
+ //# sourceMappingURL=index-BXPaPWhH.js.map