From 7f647941f6bec46df78dc240c64e0ee6e090d6b7 Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Sun, 17 Aug 2025 07:34:40 +0000 Subject: [PATCH] Slightly better error handling Extract error details we get from the API when status code > 2xx. Also, use toast messages to display the error, properly close delete modals and prevent full page display of error messages. Signed-off-by: Gabriel Adrian Samfira --- .../assets/_app/immutable/chunks/2p_hWkLJ.js | 1 + .../chunks/{C41YH50Q.js => BE8f1Riw.js} | 2 +- .../chunks/{DDhBTdDt.js => BEoJgOul.js} | 2 +- .../assets/_app/immutable/chunks/BZiHL9L3.js | 1 + .../assets/_app/immutable/chunks/Bgb-frqW.js | 1 + .../chunks/{C9DJVOi1.js => BrNfsPe8.js} | 2 +- .../assets/_app/immutable/chunks/BsqC4UA1.js | 1 + .../chunks/{CLYUNKnN.js => BzlxTz7Q.js} | 2 +- .../assets/_app/immutable/chunks/C89fcOde.js | 1 - .../assets/_app/immutable/chunks/CIBm3n2u.js | 1 + .../assets/_app/immutable/chunks/CRD55Dyg.js | 1 + .../assets/_app/immutable/chunks/CRhkqW2i.js | 1 + .../assets/_app/immutable/chunks/CTf6mQoE.js | 3 - .../assets/_app/immutable/chunks/CclkODgu.js | 1 - .../assets/_app/immutable/chunks/CoIRRsD9.js | 1 - .../assets/_app/immutable/chunks/CwqI2jFH.js | 1 - .../chunks/{B7ITzBt8.js => D4PaGKsV.js} | 2 +- .../assets/_app/immutable/chunks/DQP15tlf.js | 1 - .../assets/_app/immutable/chunks/DXCC0cSN.js | 3 + .../assets/_app/immutable/chunks/Dbd6PPbz.js | 1 - .../chunks/{BE4wujub.js => MCv1Wq2q.js} | 2 +- .../chunks/{BmGWMSQm.js => OpktHEmj.js} | 2 +- .../{app.kAVAdeq9.js => app.OegKHTwb.js} | 4 +- .../_app/immutable/entry/start.CI0Cdear.js | 1 - .../_app/immutable/entry/start.S-sEy6br.js | 1 + .../nodes/{0.DINiyk_8.js => 0.g860C_Ot.js} | 2 +- .../nodes/{1.DcR4nNsi.js => 1.BjWDFEyD.js} | 2 +- .../_app/immutable/nodes/10.Ci2MePhm.js | 1 + .../_app/immutable/nodes/10.LnrIJgIa.js | 1 - .../_app/immutable/nodes/11.BX_bMXWi.js | 1 + .../_app/immutable/nodes/11.Bsn67lBa.js | 1 - .../_app/immutable/nodes/12.B-vC_cmu.js | 1 - .../_app/immutable/nodes/12.C0lS_ubI.js | 1 + .../_app/immutable/nodes/13.Br7HzjXP.js | 1 - .../_app/immutable/nodes/13.CEJ1u9Ql.js | 1 + .../_app/immutable/nodes/14.BJHnbtAi.js | 1 + .../_app/immutable/nodes/14.Cd0DOn96.js | 1 - .../_app/immutable/nodes/15.CkHQugXH.js | 1 - .../_app/immutable/nodes/15.CqYhwqAI.js | 1 + .../_app/immutable/nodes/16.B35VVkOd.js | 1 - .../_app/immutable/nodes/16.BVViOnXd.js | 1 + .../_app/immutable/nodes/17.CCltcs-Z.js | 1 - .../_app/immutable/nodes/17.DLt70sQQ.js | 1 + .../_app/immutable/nodes/18.eu91cRrS.js | 1 + .../_app/immutable/nodes/18.iVIhGVtu.js | 1 - .../assets/_app/immutable/nodes/2.1DFwbmOU.js | 1 + .../assets/_app/immutable/nodes/2.CiT4lj0D.js | 1 - .../assets/_app/immutable/nodes/3.BSFz0YHn.js | 7 -- .../assets/_app/immutable/nodes/3.BWxN3TuB.js | 7 ++ .../assets/_app/immutable/nodes/4.D1IF4qSs.js | 3 + .../assets/_app/immutable/nodes/4.XnVoh6ca.js | 3 - .../assets/_app/immutable/nodes/5.CeMzA7DH.js | 1 + .../assets/_app/immutable/nodes/5.rvsSG-AQ.js | 1 - .../assets/_app/immutable/nodes/6.BPDnwpl3.js | 1 + .../assets/_app/immutable/nodes/6.CtGX0qgG.js | 1 - .../assets/_app/immutable/nodes/7.0w3i9VHx.js | 1 - .../assets/_app/immutable/nodes/7.CaVS6POQ.js | 1 + .../assets/_app/immutable/nodes/8.BiZNKYxk.js | 1 - .../assets/_app/immutable/nodes/8.W6llQu20.js | 1 + .../assets/_app/immutable/nodes/9.DfrxaqP7.js | 1 + .../assets/_app/immutable/nodes/9.DpSfMRgo.js | 1 - webapp/assets/_app/version.json | 2 +- webapp/assets/index.html | 14 +-- .../components/CreateEnterpriseModal.svelte | 8 +- .../components/CreateOrganizationModal.svelte | 7 +- .../src/lib/components/CreatePoolModal.svelte | 7 +- .../components/CreateRepositoryModal.svelte | 7 +- .../lib/components/CreateScaleSetModal.svelte | 7 +- .../lib/components/EntityInformation.svelte | 2 +- .../src/lib/components/EventsSection.svelte | 2 +- .../components/UpdateEnterpriseModal.svelte | 5 +- .../lib/components/UpdateEntityModal.svelte | 5 +- .../components/UpdateOrganizationModal.svelte | 5 +- .../src/lib/components/UpdatePoolModal.svelte | 3 +- .../components/UpdateRepositoryModal.svelte | 5 +- .../lib/components/UpdateScaleSetModal.svelte | 3 +- .../src/lib/components/WebhookSection.svelte | 3 +- webapp/src/lib/utils/apiError.ts | 88 +++++++++++++++++++ webapp/src/routes/+page.svelte | 5 +- webapp/src/routes/credentials/+page.svelte | 20 ++--- webapp/src/routes/endpoints/+page.svelte | 21 ++--- webapp/src/routes/enterprises/+page.svelte | 8 +- .../src/routes/enterprises/[id]/+page.svelte | 9 +- webapp/src/routes/init/+page.svelte | 3 +- webapp/src/routes/instances/+page.svelte | 13 ++- webapp/src/routes/instances/[id]/+page.svelte | 6 +- webapp/src/routes/login/+page.svelte | 3 +- webapp/src/routes/organizations/+page.svelte | 16 +++- .../routes/organizations/[id]/+page.svelte | 11 ++- webapp/src/routes/pools/+page.svelte | 35 ++++---- webapp/src/routes/pools/[id]/+page.svelte | 12 ++- webapp/src/routes/repositories/+page.svelte | 22 ++--- .../src/routes/repositories/[id]/+page.svelte | 11 ++- webapp/src/routes/scalesets/+page.svelte | 21 ++--- webapp/src/routes/scalesets/[id]/+page.svelte | 9 +- 95 files changed, 296 insertions(+), 195 deletions(-) create mode 100644 webapp/assets/_app/immutable/chunks/2p_hWkLJ.js rename webapp/assets/_app/immutable/chunks/{C41YH50Q.js => BE8f1Riw.js} (71%) rename webapp/assets/_app/immutable/chunks/{DDhBTdDt.js => BEoJgOul.js} (95%) create mode 100644 webapp/assets/_app/immutable/chunks/BZiHL9L3.js create mode 100644 webapp/assets/_app/immutable/chunks/Bgb-frqW.js rename webapp/assets/_app/immutable/chunks/{C9DJVOi1.js => BrNfsPe8.js} (78%) create mode 100644 webapp/assets/_app/immutable/chunks/BsqC4UA1.js rename webapp/assets/_app/immutable/chunks/{CLYUNKnN.js => BzlxTz7Q.js} (92%) delete mode 100644 webapp/assets/_app/immutable/chunks/C89fcOde.js create mode 100644 webapp/assets/_app/immutable/chunks/CIBm3n2u.js create mode 100644 webapp/assets/_app/immutable/chunks/CRD55Dyg.js create mode 100644 webapp/assets/_app/immutable/chunks/CRhkqW2i.js delete mode 100644 webapp/assets/_app/immutable/chunks/CTf6mQoE.js delete mode 100644 webapp/assets/_app/immutable/chunks/CclkODgu.js delete mode 100644 webapp/assets/_app/immutable/chunks/CoIRRsD9.js delete mode 100644 webapp/assets/_app/immutable/chunks/CwqI2jFH.js rename webapp/assets/_app/immutable/chunks/{B7ITzBt8.js => D4PaGKsV.js} (96%) delete mode 100644 webapp/assets/_app/immutable/chunks/DQP15tlf.js create mode 100644 webapp/assets/_app/immutable/chunks/DXCC0cSN.js delete mode 100644 webapp/assets/_app/immutable/chunks/Dbd6PPbz.js rename webapp/assets/_app/immutable/chunks/{BE4wujub.js => MCv1Wq2q.js} (96%) rename webapp/assets/_app/immutable/chunks/{BmGWMSQm.js => OpktHEmj.js} (97%) rename webapp/assets/_app/immutable/entry/{app.kAVAdeq9.js => app.OegKHTwb.js} (50%) delete mode 100644 webapp/assets/_app/immutable/entry/start.CI0Cdear.js create mode 100644 webapp/assets/_app/immutable/entry/start.S-sEy6br.js rename webapp/assets/_app/immutable/nodes/{0.DINiyk_8.js => 0.g860C_Ot.js} (99%) rename webapp/assets/_app/immutable/nodes/{1.DcR4nNsi.js => 1.BjWDFEyD.js} (87%) create mode 100644 webapp/assets/_app/immutable/nodes/10.Ci2MePhm.js delete mode 100644 webapp/assets/_app/immutable/nodes/10.LnrIJgIa.js create mode 100644 webapp/assets/_app/immutable/nodes/11.BX_bMXWi.js delete mode 100644 webapp/assets/_app/immutable/nodes/11.Bsn67lBa.js delete mode 100644 webapp/assets/_app/immutable/nodes/12.B-vC_cmu.js create mode 100644 webapp/assets/_app/immutable/nodes/12.C0lS_ubI.js delete mode 100644 webapp/assets/_app/immutable/nodes/13.Br7HzjXP.js create mode 100644 webapp/assets/_app/immutable/nodes/13.CEJ1u9Ql.js create mode 100644 webapp/assets/_app/immutable/nodes/14.BJHnbtAi.js delete mode 100644 webapp/assets/_app/immutable/nodes/14.Cd0DOn96.js delete mode 100644 webapp/assets/_app/immutable/nodes/15.CkHQugXH.js create mode 100644 webapp/assets/_app/immutable/nodes/15.CqYhwqAI.js delete mode 100644 webapp/assets/_app/immutable/nodes/16.B35VVkOd.js create mode 100644 webapp/assets/_app/immutable/nodes/16.BVViOnXd.js delete mode 100644 webapp/assets/_app/immutable/nodes/17.CCltcs-Z.js create mode 100644 webapp/assets/_app/immutable/nodes/17.DLt70sQQ.js create mode 100644 webapp/assets/_app/immutable/nodes/18.eu91cRrS.js delete mode 100644 webapp/assets/_app/immutable/nodes/18.iVIhGVtu.js create mode 100644 webapp/assets/_app/immutable/nodes/2.1DFwbmOU.js delete mode 100644 webapp/assets/_app/immutable/nodes/2.CiT4lj0D.js delete mode 100644 webapp/assets/_app/immutable/nodes/3.BSFz0YHn.js create mode 100644 webapp/assets/_app/immutable/nodes/3.BWxN3TuB.js create mode 100644 webapp/assets/_app/immutable/nodes/4.D1IF4qSs.js delete mode 100644 webapp/assets/_app/immutable/nodes/4.XnVoh6ca.js create mode 100644 webapp/assets/_app/immutable/nodes/5.CeMzA7DH.js delete mode 100644 webapp/assets/_app/immutable/nodes/5.rvsSG-AQ.js create mode 100644 webapp/assets/_app/immutable/nodes/6.BPDnwpl3.js delete mode 100644 webapp/assets/_app/immutable/nodes/6.CtGX0qgG.js delete mode 100644 webapp/assets/_app/immutable/nodes/7.0w3i9VHx.js create mode 100644 webapp/assets/_app/immutable/nodes/7.CaVS6POQ.js delete mode 100644 webapp/assets/_app/immutable/nodes/8.BiZNKYxk.js create mode 100644 webapp/assets/_app/immutable/nodes/8.W6llQu20.js create mode 100644 webapp/assets/_app/immutable/nodes/9.DfrxaqP7.js delete mode 100644 webapp/assets/_app/immutable/nodes/9.DpSfMRgo.js create mode 100644 webapp/src/lib/utils/apiError.ts diff --git a/webapp/assets/_app/immutable/chunks/2p_hWkLJ.js b/webapp/assets/_app/immutable/chunks/2p_hWkLJ.js new file mode 100644 index 00000000..02a9bb5c --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/2p_hWkLJ.js @@ -0,0 +1 @@ +import"./DsnmJJEf.js";import{i as dr}from"./B3Pzt0F_.js";import{p as or,E as sr,m as i,o as ir,s,f as le,j as d,r as o,k as t,g as r,n as c,u as m,t as f,x as Ge,z as nr,v as _,e as je,c as l,D as R,B as Be,b as $e,d as lr}from"./D8EpLgQ1.js";import{p as ur,i as E}from"./5WA7h8uK.js";import{r as b,b as ze}from"./CiE1LlKV.js";import{b as v,a as br}from"./C6k1Q4We.js";import{p as gr}from"./D4Caz1gY.js";import{M as cr}from"./qB7B8uiS.js";import{e as mr}from"./BZiHL9L3.js";import{J as vr}from"./DZblzgqm.js";var pr=le('

'),fr=le('
Updating...
'),xr=le('

Scale Set Information

Provider:
Entity:

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
');function Jr(Ce,ue){or(ue,!1);let e=ur(ue,"scaleSet",8);const $=sr();let O=i(!1),I=i(""),J=i(e().name||""),T=i(e().image||""),A=i(e().flavor||""),M=i(e().max_runners),N=i(e().min_idle_runners),P=i(e().runner_bootstrap_timeout),U=i(e().runner_prefix||""),h=i(e().os_type||"linux"),k=i(e().os_arch||"amd64"),D=i(e()["github-runner-group"]||""),G=i(e().enabled),g=i("{}");ir(()=>{if(e().extra_specs)try{if(typeof e().extra_specs=="object")s(g,JSON.stringify(e().extra_specs,null,2));else{const u=JSON.parse(e().extra_specs);s(g,JSON.stringify(u,null,2))}}catch{s(g,e().extra_specs||"{}")}});async function Le(){try{s(O,!0),s(I,"");let u={};if(r(g).trim())try{u=JSON.parse(r(g))}catch{throw new Error("Invalid JSON in extra specs")}const w={name:r(J)!==e().name?r(J):void 0,image:r(T)!==e().image?r(T):void 0,flavor:r(A)!==e().flavor?r(A):void 0,max_runners:r(M)!==e().max_runners?r(M):void 0,min_idle_runners:r(N)!==e().min_idle_runners?r(N):void 0,runner_bootstrap_timeout:r(P)!==e().runner_bootstrap_timeout?r(P):void 0,runner_prefix:r(U)!==e().runner_prefix?r(U):void 0,os_type:r(h)!==e().os_type?r(h):void 0,os_arch:r(k)!==e().os_arch?r(k):void 0,"github-runner-group":r(D)!==e()["github-runner-group"]&&r(D)||void 0,enabled:r(G)!==e().enabled?r(G):void 0,extra_specs:r(g).trim()!==JSON.stringify(e().extra_specs||{},null,2).trim()?u:void 0};Object.keys(w).forEach(p=>{w[p]===void 0&&delete w[p]}),$("submit",w)}catch(u){s(I,mr(u))}finally{s(O,!1)}}dr(),cr(Ce,{$$events:{close:()=>$("close")},children:(u,w)=>{var p=xr(),z=d(p),be=d(z),Fe=d(be);o(be),o(z);var C=t(z,2),ge=d(C);{var He=a=>{var n=pr(),j=d(n),ne=d(j,!0);o(j),o(n),f(()=>_(ne,r(I))),l(a,n)};E(ge,a=>{r(I)&&a(He)})}var L=t(ge,2),ce=t(d(L),2),F=d(ce),me=t(d(F),2),We=d(me,!0);o(me),o(F);var ve=t(F,2),pe=t(d(ve),2),qe=d(pe);{var Ke=a=>{var n=R();f(()=>_(n,`Repository: ${c(e()),m(()=>e().repo_name)??""}`)),l(a,n)},Qe=a=>{var n=Be(),j=$e(n);{var ne=x=>{var S=R();f(()=>_(S,`Organization: ${c(e()),m(()=>e().org_name)??""}`)),l(x,S)},er=x=>{var S=Be(),rr=$e(S);{var ar=y=>{var B=R();f(()=>_(B,`Enterprise: ${c(e()),m(()=>e().enterprise_name)??""}`)),l(y,B)},tr=y=>{var B=R("Unknown Entity");l(y,B)};E(rr,y=>{c(e()),m(()=>e().enterprise_name)?y(ar):y(tr,!1)},!0)}l(x,S)};E(j,x=>{c(e()),m(()=>e().org_name)?x(ne):x(er,!1)},!0)}l(a,n)};E(qe,a=>{c(e()),m(()=>e().repo_name)?a(Ke):a(Qe,!1)})}o(pe),o(ve),o(ce),o(L);var H=t(L,2),fe=t(d(H),2);b(fe),o(H);var W=t(H,2),xe=t(d(W),2),q=d(xe),ye=t(d(q),2);b(ye),o(q);var K=t(q,2),_e=t(d(K),2);b(_e),o(K);var Q=t(K,2),V=t(d(Q),2);f(()=>{r(h),Ge(()=>{})});var X=d(V);X.value=X.__value="linux";var he=t(X);he.value=he.__value="windows",o(V),o(Q);var ke=t(Q,2),Y=t(d(ke),2);f(()=>{r(k),Ge(()=>{})});var Z=d(Y);Z.value=Z.__value="amd64";var we=t(Z);we.value=we.__value="arm64",o(Y),o(ke),o(xe),o(W);var ee=t(W,2),Se=t(d(ee),2),re=d(Se),Re=t(d(re),2);b(Re),o(re);var ae=t(re,2),Ee=t(d(ae),2);b(Ee),o(ae);var Oe=t(ae,2),Ie=t(d(Oe),2);b(Ie),o(Oe),o(Se),o(ee);var te=t(ee,2),de=t(d(te),2),oe=d(de),Je=t(d(oe),2);b(Je),o(oe);var Te=t(oe,2),Ae=t(d(Te),2);b(Ae),o(Te),o(de);var se=t(de,2),Me=d(se),Ve=t(d(Me),2);vr(Ve,{rows:4,placeholder:"{}",get value(){return r(g)},set value(a){s(g,a)},$$legacy:!0}),o(Me),o(se);var Ne=t(se,2),Pe=d(Ne);b(Pe),nr(2),o(Ne),o(te);var Ue=t(te,2),De=d(Ue),ie=t(De,2),Xe=d(ie);{var Ye=a=>{var n=fr();l(a,n)},Ze=a=>{var n=R("Update Scale Set");l(a,n)};E(Xe,a=>{r(O)?a(Ye):a(Ze,!1)})}o(ie),o(Ue),o(C),o(p),f(()=>{_(Fe,`Update Scale Set ${c(e()),m(()=>e().name)??""}`),_(We,(c(e()),m(()=>e().provider_name))),ie.disabled=r(O)}),v(fe,()=>r(J),a=>s(J,a)),v(ye,()=>r(T),a=>s(T,a)),v(_e,()=>r(A),a=>s(A,a)),ze(V,()=>r(h),a=>s(h,a)),ze(Y,()=>r(k),a=>s(k,a)),v(Re,()=>r(N),a=>s(N,a)),v(Ee,()=>r(M),a=>s(M,a)),v(Ie,()=>r(P),a=>s(P,a)),v(Je,()=>r(U),a=>s(U,a)),v(Ae,()=>r(D),a=>s(D,a)),br(Pe,()=>r(G),a=>s(G,a)),je("click",De,()=>$("close")),je("submit",C,gr(Le)),l(u,p)},$$slots:{default:!0}}),lr()}export{Jr as U}; diff --git a/webapp/assets/_app/immutable/chunks/C41YH50Q.js b/webapp/assets/_app/immutable/chunks/BE8f1Riw.js similarity index 71% rename from webapp/assets/_app/immutable/chunks/C41YH50Q.js rename to webapp/assets/_app/immutable/chunks/BE8f1Riw.js index 9f4c7cfe..027693f0 100644 --- a/webapp/assets/_app/immutable/chunks/C41YH50Q.js +++ b/webapp/assets/_app/immutable/chunks/BE8f1Riw.js @@ -1 +1 @@ -import{s as e}from"./CTf6mQoE.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p}; +import{s as e}from"./DXCC0cSN.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p}; diff --git a/webapp/assets/_app/immutable/chunks/DDhBTdDt.js b/webapp/assets/_app/immutable/chunks/BEoJgOul.js similarity index 95% rename from webapp/assets/_app/immutable/chunks/DDhBTdDt.js rename to webapp/assets/_app/immutable/chunks/BEoJgOul.js index 7f2ab6df..cd418e15 100644 --- a/webapp/assets/_app/immutable/chunks/DDhBTdDt.js +++ b/webapp/assets/_app/immutable/chunks/BEoJgOul.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as U}from"./B3Pzt0F_.js";import{f as I,j as t,k as p,r as a,t as P,v as b,c as u,z as N,D as A,p as W,u as z,n as H,d as X}from"./D8EpLgQ1.js";import{p as s,i as T}from"./5WA7h8uK.js";import{s as Y,h as Z,B as F,c as $}from"./CiE1LlKV.js";import{b as ee}from"./CoIRRsD9.js";import{D as te,G as ae,a as se}from"./C9DJVOi1.js";import{E as ne}from"./B7ITzBt8.js";import{S as B}from"./BE4wujub.js";var le=I('
'),ie=I('
'),re=I('

');function ye(L,e){let n=s(e,"title",8),S=s(e,"subtitle",8),_=s(e,"forgeIcon",8,""),f=s(e,"onEdit",8,null),h=s(e,"onDelete",8,null),k=s(e,"editLabel",8,"Edit"),j=s(e,"deleteLabel",8,"Delete"),g=s(e,"titleClass",8,"");var c=re(),v=t(c),m=t(v),y=t(m),C=t(y);{var E=i=>{var r=le(),w=t(r);Z(w,_),a(r),u(i,r)};T(C,i=>{_()&&i(E)})}var l=p(C,2),D=t(l),G=t(D,!0);a(D);var M=p(D,2),V=t(M,!0);a(M),a(l),a(y);var R=p(y,2);{var q=i=>{var r=ie(),w=t(r);{var J=o=>{F(o,{variant:"secondary",size:"md",icon:"",$$events:{click(...d){f()?.apply(this,d)}},children:(d,Q)=>{N();var x=A();P(()=>b(x,k())),u(d,x)},$$slots:{default:!0}})};T(w,o=>{f()&&o(J)})}var K=p(w,2);{var O=o=>{F(o,{variant:"danger",size:"md",icon:"",$$events:{click(...d){h()?.apply(this,d)}},children:(d,Q)=>{N();var x=A();P(()=>b(x,j())),u(d,x)},$$slots:{default:!0}})};T(K,o=>{h()&&o(O)})}a(r),u(i,r)};T(R,i=>{(f()||h())&&i(q)})}a(m),a(v),a(c),P(()=>{Y(D,1,`text-2xl font-bold text-gray-900 dark:text-white ${g()??""}`),b(G,n()),b(V,S())}),u(L,c)}var oe=I('');function xe(L,e){W(e,!1);let n=s(e,"instances",8),S=s(e,"entityType",8),_=s(e,"onDeleteInstance",8);const f=[{key:"name",title:"Name",cellComponent:ne,cellProps:{entityType:"instance",nameField:"name"}},{key:"status",title:"Status",cellComponent:B,cellProps:{statusType:"instance",statusField:"status"}},{key:"runner_status",title:"Runner Status",cellComponent:B,cellProps:{statusType:"instance",statusField:"runner_status"}},{key:"created",title:"Created",cellComponent:ae,cellProps:{field:"created_at",type:"date"}},{key:"actions",title:"Actions",align:"right",cellComponent:se,cellProps:{actions:[{type:"delete",label:"Delete",title:"Delete instance",ariaLabel:"Delete instance",action:"delete"}]}}],h={entityType:"instance",primaryText:{field:"name",isClickable:!0,href:"/instances/{name}"},secondaryText:{field:"provider_id"},badges:[{type:"status",field:"status"}],actions:[{type:"delete",handler:l=>k(l)}]};function k(l){_()(l)}function j(l){k(l.detail.item)}U();var g=oe(),c=t(g),v=t(c),m=t(v),y=t(m);a(m);var C=p(m,2);a(v);var E=p(v,2);te(E,{get columns(){return f},get data(){return n()},loading:!1,error:"",searchTerm:"",showSearch:!1,showPagination:!1,currentPage:1,get perPage(){return H(n()),z(()=>n().length)},totalPages:1,get totalItems(){return H(n()),z(()=>n().length)},itemName:"instances",emptyTitle:"No instances running",get emptyMessage(){return`No instances running for this ${S()??""}.`},emptyIconType:"cog",get mobileCardConfig(){return h},$$events:{delete:j}}),a(c),a(g),P(()=>{b(y,`Instances (${H(n()),z(()=>n().length)??""})`),$(C,"href",`${ee}/instances`)}),u(L,g),X()}export{ye as D,xe as I}; +import"./DsnmJJEf.js";import{i as U}from"./B3Pzt0F_.js";import{f as I,j as t,k as p,r as a,t as P,v as b,c as u,z as N,D as A,p as W,u as z,n as H,d as X}from"./D8EpLgQ1.js";import{p as s,i as T}from"./5WA7h8uK.js";import{s as Y,h as Z,B as F,c as $}from"./CiE1LlKV.js";import{b as ee}from"./CRhkqW2i.js";import{D as te,G as ae,a as se}from"./BrNfsPe8.js";import{E as ne}from"./D4PaGKsV.js";import{S as B}from"./MCv1Wq2q.js";var le=I('
'),ie=I('
'),re=I('

');function ye(L,e){let n=s(e,"title",8),S=s(e,"subtitle",8),_=s(e,"forgeIcon",8,""),f=s(e,"onEdit",8,null),h=s(e,"onDelete",8,null),k=s(e,"editLabel",8,"Edit"),j=s(e,"deleteLabel",8,"Delete"),g=s(e,"titleClass",8,"");var c=re(),v=t(c),m=t(v),y=t(m),C=t(y);{var E=i=>{var r=le(),w=t(r);Z(w,_),a(r),u(i,r)};T(C,i=>{_()&&i(E)})}var l=p(C,2),D=t(l),G=t(D,!0);a(D);var M=p(D,2),V=t(M,!0);a(M),a(l),a(y);var R=p(y,2);{var q=i=>{var r=ie(),w=t(r);{var J=o=>{F(o,{variant:"secondary",size:"md",icon:"",$$events:{click(...d){f()?.apply(this,d)}},children:(d,Q)=>{N();var x=A();P(()=>b(x,k())),u(d,x)},$$slots:{default:!0}})};T(w,o=>{f()&&o(J)})}var K=p(w,2);{var O=o=>{F(o,{variant:"danger",size:"md",icon:"",$$events:{click(...d){h()?.apply(this,d)}},children:(d,Q)=>{N();var x=A();P(()=>b(x,j())),u(d,x)},$$slots:{default:!0}})};T(K,o=>{h()&&o(O)})}a(r),u(i,r)};T(R,i=>{(f()||h())&&i(q)})}a(m),a(v),a(c),P(()=>{Y(D,1,`text-2xl font-bold text-gray-900 dark:text-white ${g()??""}`),b(G,n()),b(V,S())}),u(L,c)}var oe=I('');function xe(L,e){W(e,!1);let n=s(e,"instances",8),S=s(e,"entityType",8),_=s(e,"onDeleteInstance",8);const f=[{key:"name",title:"Name",cellComponent:ne,cellProps:{entityType:"instance",nameField:"name"}},{key:"status",title:"Status",cellComponent:B,cellProps:{statusType:"instance",statusField:"status"}},{key:"runner_status",title:"Runner Status",cellComponent:B,cellProps:{statusType:"instance",statusField:"runner_status"}},{key:"created",title:"Created",cellComponent:ae,cellProps:{field:"created_at",type:"date"}},{key:"actions",title:"Actions",align:"right",cellComponent:se,cellProps:{actions:[{type:"delete",label:"Delete",title:"Delete instance",ariaLabel:"Delete instance",action:"delete"}]}}],h={entityType:"instance",primaryText:{field:"name",isClickable:!0,href:"/instances/{name}"},secondaryText:{field:"provider_id"},badges:[{type:"status",field:"status"}],actions:[{type:"delete",handler:l=>k(l)}]};function k(l){_()(l)}function j(l){k(l.detail.item)}U();var g=oe(),c=t(g),v=t(c),m=t(v),y=t(m);a(m);var C=p(m,2);a(v);var E=p(v,2);te(E,{get columns(){return f},get data(){return n()},loading:!1,error:"",searchTerm:"",showSearch:!1,showPagination:!1,currentPage:1,get perPage(){return H(n()),z(()=>n().length)},totalPages:1,get totalItems(){return H(n()),z(()=>n().length)},itemName:"instances",emptyTitle:"No instances running",get emptyMessage(){return`No instances running for this ${S()??""}.`},emptyIconType:"cog",get mobileCardConfig(){return h},$$events:{delete:j}}),a(c),a(g),P(()=>{b(y,`Instances (${H(n()),z(()=>n().length)??""})`),$(C,"href",`${ee}/instances`)}),u(L,g),X()}export{ye as D,xe as I}; diff --git a/webapp/assets/_app/immutable/chunks/BZiHL9L3.js b/webapp/assets/_app/immutable/chunks/BZiHL9L3.js new file mode 100644 index 00000000..586e429f --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/BZiHL9L3.js @@ -0,0 +1 @@ +function n(e){let s="An unexpected error occurred";if(e&&typeof e=="object"){if("response"in e&&e.response&&typeof e.response=="object"){const a=e.response;if("data"in a&&a.data&&typeof a.data=="object"){const t=a.data,r=t.error&&t.error.trim()?t.error:"",i=t.details&&t.details.trim()?t.details:"";if(r&&i)return`${r}. ${i}`;if(r)return r;if(i)return i}if("status"in a){const t=a.status;switch(t){case 400:s="Bad request - please check your input";break;case 401:s="Unauthorized - please log in again";break;case 403:s="Access denied - insufficient permissions";break;case 404:s="Resource not found";break;case 409:s="Conflict - resource already exists or is in use";break;case 422:s="Validation failed - please check your input";break;case 500:s="Internal server error - please try again later";break;default:s=`Request failed with status ${t}`}}}else if(e instanceof Error&&e.message&&!e.message.includes("status code"))return e.message}return s}export{n as e}; diff --git a/webapp/assets/_app/immutable/chunks/Bgb-frqW.js b/webapp/assets/_app/immutable/chunks/Bgb-frqW.js new file mode 100644 index 00000000..1d4c8b61 --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/Bgb-frqW.js @@ -0,0 +1 @@ +import"./DsnmJJEf.js";import{i as cr}from"./B3Pzt0F_.js";import{p as pr,E as vr,m as u,o as fr,s as n,f as E,j as d,r as t,k as a,g as e,t as _,x as He,u as h,z as mr,n as D,v as k,e as w,c as m,D as xr,d as yr}from"./D8EpLgQ1.js";import{p as _r,i as ge,s as hr,a as kr}from"./5WA7h8uK.js";import{e as wr,i as Er}from"./u94nIB4-.js";import{r as c,b as Ke,c as Rr}from"./CiE1LlKV.js";import{b as p,a as $r}from"./C6k1Q4We.js";import{p as Sr}from"./D4Caz1gY.js";import{M as Tr}from"./qB7B8uiS.js";import{J as Or}from"./DZblzgqm.js";import{e as Pr}from"./BZiHL9L3.js";import{e as Jr}from"./wyaP0EDu.js";var Mr=E('

'),Nr=E(' '),Ur=E('
'),Ar=E('
Updating...
'),Ir=E('

Pool Information (Read-only)

Provider:
Entity:

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Tags
Extra Specs (JSON)
');function Qr(We,ce){pr(ce,!1);const[qe,Qe]=hr(),B=()=>kr(Jr,"$eagerCache",qe);let o=_r(ce,"pool",8);const G=vr();let R=u(!1),$=u(""),S=u(o().image||""),T=u(o().flavor||""),O=u(o().max_runners),P=u(o().min_idle_runners),J=u(o().runner_bootstrap_timeout),M=u(o().priority),N=u(o().runner_prefix||""),x=u(o().os_type||"linux"),y=u(o().os_arch||"amd64"),U=u(o()["github-runner-group"]||""),A=u(o().enabled),g=u((o().tags||[]).map(i=>i.name||"").filter(Boolean)),f=u(""),v=u("{}");function Ve(i){if(i.repo_id){const s=B().repositories.find(l=>l.id===i.repo_id);return s?`${s.owner}/${s.name}`:"Unknown Entity"}if(i.org_id){const s=B().organizations.find(l=>l.id===i.org_id);return s&&s.name?s.name:"Unknown Entity"}if(i.enterprise_id){const s=B().enterprises.find(l=>l.id===i.enterprise_id);return s&&s.name?s.name:"Unknown Entity"}return"Unknown Entity"}function Xe(i){return i.repo_id?"Repository":i.org_id?"Organization":i.enterprise_id?"Enterprise":"Unknown"}fr(()=>{if(o().extra_specs)try{if(typeof o().extra_specs=="object")n(v,JSON.stringify(o().extra_specs,null,2));else{const i=JSON.parse(o().extra_specs);n(v,JSON.stringify(i,null,2))}}catch{n(v,o().extra_specs||"{}")}});function pe(){e(f).trim()&&!e(g).includes(e(f).trim())&&(n(g,[...e(g),e(f).trim()]),n(f,""))}function Ye(i){n(g,e(g).filter((s,l)=>l!==i))}function Ze(i){i.key==="Enter"&&(i.preventDefault(),pe())}async function er(){try{n(R,!0),n($,"");let i={};if(e(v).trim())try{i=JSON.parse(e(v))}catch{throw new Error("Invalid JSON in extra specs")}const s={image:e(S)!==o().image?e(S):void 0,flavor:e(T)!==o().flavor?e(T):void 0,max_runners:e(O)!==o().max_runners?e(O):void 0,min_idle_runners:e(P)!==o().min_idle_runners?e(P):void 0,runner_bootstrap_timeout:e(J)!==o().runner_bootstrap_timeout?e(J):void 0,priority:e(M)!==o().priority?e(M):void 0,runner_prefix:e(N)!==o().runner_prefix?e(N):void 0,os_type:e(x)!==o().os_type?e(x):void 0,os_arch:e(y)!==o().os_arch?e(y):void 0,"github-runner-group":e(U)!==o()["github-runner-group"]&&e(U)||void 0,enabled:e(A)!==o().enabled?e(A):void 0,tags:JSON.stringify(e(g))!==JSON.stringify((o().tags||[]).map(l=>l.name||"").filter(Boolean))?e(g):void 0,extra_specs:e(v).trim()!==JSON.stringify(o().extra_specs||{},null,2).trim()?i:void 0};Object.keys(s).forEach(l=>{s[l]===void 0&&delete s[l]}),G("submit",s)}catch(i){n($,Pr(i))}finally{n(R,!1)}}cr(),Tr(We,{$$events:{close:()=>G("close")},children:(i,s)=>{var l=Ir(),z=d(l),ve=d(z),rr=d(ve);t(ve),t(z);var L=a(z,2),fe=d(L);{var tr=r=>{var b=Mr(),j=d(b),C=d(j,!0);t(j),t(b),_(()=>k(C,e($))),m(r,b)};ge(fe,r=>{e($)&&r(tr)})}var F=a(fe,2),me=a(d(F),2),H=d(me),xe=a(d(H),2),ar=d(xe,!0);t(xe),t(H);var ye=a(H,2),_e=a(d(ye),2),dr=d(_e);t(_e),t(ye),t(me),t(F);var K=a(F,2),he=a(d(K),2),W=d(he),ke=a(d(W),2);c(ke),t(W);var q=a(W,2),we=a(d(q),2);c(we),t(q);var Q=a(q,2),V=a(d(Q),2);_(()=>{e(x),He(()=>{})});var X=d(V);X.value=X.__value="linux";var Ee=a(X);Ee.value=Ee.__value="windows",t(V),t(Q);var Re=a(Q,2),Y=a(d(Re),2);_(()=>{e(y),He(()=>{})});var Z=d(Y);Z.value=Z.__value="amd64";var $e=a(Z);$e.value=$e.__value="arm64",t(Y),t(Re),t(he),t(K);var ee=a(K,2),Se=a(d(ee),2),re=d(Se),Te=a(d(re),2);c(Te),t(re);var te=a(re,2),Oe=a(d(te),2);c(Oe),t(te);var Pe=a(te,2),Je=a(d(Pe),2);c(Je),t(Pe),t(Se),t(ee);var ae=a(ee,2),de=a(d(ae),2),oe=d(de),Me=a(d(oe),2);c(Me),t(oe);var ie=a(oe,2),Ne=a(d(ie),2);c(Ne),t(ie);var Ue=a(ie,2),Ae=a(d(Ue),2);c(Ae),t(Ue),t(de);var ne=a(de,2),Ie=d(ne),je=a(d(Ie),2),se=d(je),I=d(se);c(I);var or=a(I,2);t(se);var ir=a(se,2);{var nr=r=>{var b=Ur();wr(b,5,()=>e(g),Er,(j,C,gr)=>{var be=Nr(),Le=d(be),Fe=a(Le);t(be),_(()=>{k(Le,`${e(C)??""} `),Rr(Fe,"aria-label",`Remove tag ${e(C)??""}`)}),w("click",Fe,()=>Ye(gr)),m(j,be)}),t(b),m(r,b)};ge(ir,r=>{e(g),h(()=>e(g).length>0)&&r(nr)})}t(je),t(Ie),t(ne);var le=a(ne,2),Ce=d(le),sr=a(d(Ce),2);Or(sr,{rows:4,placeholder:"{}",get value(){return e(v)},set value(r){n(v,r)},$$legacy:!0}),t(Ce),t(le);var De=a(le,2),Be=d(De);c(Be),mr(2),t(De),t(ae);var Ge=a(ae,2),ze=d(Ge),ue=a(ze,2),lr=d(ue);{var ur=r=>{var b=Ar();m(r,b)},br=r=>{var b=xr("Update Pool");m(r,b)};ge(lr,r=>{e(R)?r(ur):r(br,!1)})}t(ue),t(Ge),t(L),t(l),_((r,b)=>{k(rr,`Update Pool ${D(o()),h(()=>o().id)??""}`),k(ar,(D(o()),h(()=>o().provider_name))),k(dr,`${r??""}: ${b??""}`),ue.disabled=e(R)},[()=>(D(o()),h(()=>Xe(o()))),()=>(D(o()),h(()=>Ve(o())))]),p(ke,()=>e(S),r=>n(S,r)),p(we,()=>e(T),r=>n(T,r)),Ke(V,()=>e(x),r=>n(x,r)),Ke(Y,()=>e(y),r=>n(y,r)),p(Te,()=>e(P),r=>n(P,r)),p(Oe,()=>e(O),r=>n(O,r)),p(Je,()=>e(J),r=>n(J,r)),p(Me,()=>e(N),r=>n(N,r)),p(Ne,()=>e(M),r=>n(M,r)),p(Ae,()=>e(U),r=>n(U,r)),p(I,()=>e(f),r=>n(f,r)),w("keydown",I,Ze),w("click",or,pe),$r(Be,()=>e(A),r=>n(A,r)),w("click",ze,()=>G("close")),w("submit",L,Sr(er)),m(i,l)},$$slots:{default:!0}}),yr(),Qe()}export{Qr as U}; diff --git a/webapp/assets/_app/immutable/chunks/C9DJVOi1.js b/webapp/assets/_app/immutable/chunks/BrNfsPe8.js similarity index 78% rename from webapp/assets/_app/immutable/chunks/C9DJVOi1.js rename to webapp/assets/_app/immutable/chunks/BrNfsPe8.js index 3375b79c..c916e43a 100644 --- a/webapp/assets/_app/immutable/chunks/C9DJVOi1.js +++ b/webapp/assets/_app/immutable/chunks/BrNfsPe8.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as ke}from"./B3Pzt0F_.js";import{V as ut,aU as gt,aV as ft,M as ht,O as mt,P as pt,Q as kt,R as xt,at as _t,K as Xe,L as yt,U as bt,T as wt,a8 as Mt,p as fe,l as $,s as ee,m as te,n as u,a as Le,C as ye,j as s,g as e,r as n,t as R,c as i,d as he,E as be,f as L,e as Ge,u as v,k as j,v as O,z as Se,D as Te,B as Q,b as q,x as Pt,q as X}from"./D8EpLgQ1.js";import{p as o,l as Ye,i as I,b as Ct}from"./5WA7h8uK.js";import{e as de,i as ge}from"./u94nIB4-.js";import{h as Ae,s as pe,f as jt,e as zt,r as Tt,c as Be,B as Ce,b as Lt,d as $e,i as Ht}from"./CiE1LlKV.js";import{c as It}from"./CCSWcuVN.js";import{b as St}from"./C6k1Q4We.js";import{b as At}from"./CoIRRsD9.js";import{B as Bt,g as et,b as Et}from"./BGVHQGl-.js";function tt(S,r,g){Xe&&yt();var a=S,t=_t,p,h,m=null,f=ut()?gt:ft;function M(){p&&bt(p),m!==null&&(m.lastChild.remove(),a.before(m),m=null),p=h}ht(()=>{if(f(t,t=r())){var k=a,A=xt();A&&(m=document.createDocumentFragment(),m.append(k=mt())),h=pt(()=>g(k)),A?kt.add_callback(M):M()}}),Xe&&(a=wt)}function Fe(S,r){var g=S.$$events?.[r.type],a=Mt(g)?g.slice():g==null?[]:[g];for(var t of a)t.call(this,r)}var Dt=ye('');function Vt(S,r){fe(r,!1);const g=te();let a=o(r,"name",8),t=o(r,"class",8,"h-5 w-5");const p={plus:'',edit:'',delete:'',view:'',close:'',check:'',x:'',"chevron-left":'',"chevron-right":'',"chevron-down":'',"chevron-up":'',search:'',refresh:'',menu:'',settings:'',"check-circle":'',"x-circle":'',"exclamation-circle":'',"information-circle":'',loading:'',sun:'',moon:'',document:'',folder:''};$(()=>u(a()),()=>{ee(g,p[a()]||"")}),Le();var h=Dt(),m=s(h);Ae(m,()=>e(g),!0),n(h),R(()=>pe(h,0,`${t()}`)),i(S,h),he()}var Nt=L('');function rt(S,r){const g=Ye(r,["children","$$slots","$$events","$$legacy"]),a=Ye(g,["action","disabled","title","ariaLabel","size"]);fe(r,!1);const t=te(),p=te(),h=te(),m=te(),f=te(),M=te(),k=te(),A=te(),U=te(),V=be();let P=o(r,"action",8,"edit"),Z=o(r,"disabled",8,!1),B=o(r,"title",8,""),x=o(r,"ariaLabel",8,""),H=o(r,"size",8,"md");function D(){Z()||V("click")}$(()=>{},()=>{ee(t,"transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50")}),$(()=>u(H()),()=>{ee(p,{sm:"p-1",md:"p-2"}[H()])}),$(()=>u(P()),()=>{ee(h,{edit:"text-indigo-600 dark:text-indigo-400 hover:text-indigo-900 dark:hover:text-indigo-300 focus:ring-indigo-500",delete:"text-red-600 dark:text-red-400 hover:text-red-900 dark:hover:text-red-300 focus:ring-red-500",view:"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-300 focus:ring-gray-500",add:"text-green-600 dark:text-green-400 hover:text-green-900 dark:hover:text-green-300 focus:ring-green-500"}[P()])}),$(()=>u(H()),()=>{ee(m,H()==="sm"?"h-4 w-4":"h-5 w-5")}),$(()=>(e(t),e(p),e(h)),()=>{ee(f,[e(t),e(p),e(h)].join(" "))}),$(()=>{},()=>{ee(M,{edit:'',delete:'',view:'',add:''})}),$(()=>{},()=>{ee(k,{edit:"Edit",delete:"Delete",view:"View",add:"Add"})}),$(()=>(u(B()),e(k),u(P())),()=>{ee(A,B()||e(k)[P()])}),$(()=>(u(x()),e(k),u(P())),()=>{ee(U,x()||`${e(k)[P()]} item`)}),Le(),ke();var F=Nt();jt(F,()=>({type:"button",class:e(f),disabled:Z(),title:e(A),"aria-label":e(U),...a}));var J=s(F),l=s(J);Ae(l,()=>(e(M),u(P()),v(()=>e(M)[P()])),!0),n(J),n(F),R(()=>pe(J,0,zt(e(m)))),Ge("click",F,D),i(S,F),he()}var Rt=L('
');function Ut(S,r){fe(r,!1);let g=o(r,"value",12,""),a=o(r,"placeholder",8,"Search..."),t=o(r,"disabled",8,!1);const p=be();function h(){p("input",g())}ke();var m=Rt(),f=s(m),M=s(f);Vt(M,{name:"search",class:"h-5 w-5 text-gray-400"}),n(f);var k=j(f,2);Tt(k),n(m),R(()=>{Be(k,"placeholder",a()),k.disabled=t()}),St(k,g),Ge("input",k,h),i(S,m),he()}var qt=L('

');function Ot(S,r){let g=o(r,"message",8,"Loading...");var a=qt(),t=j(s(a),2),p=s(t,!0);n(t),n(a),R(()=>O(p,g())),i(S,a)}var Ft=L('
'),Gt=L('

');function Kt(S,r){let g=o(r,"title",8,"Error"),a=o(r,"message",8),t=o(r,"showRetry",8,!1),p=o(r,"onRetry",8,void 0);var h=Gt(),m=s(h),f=s(m),M=j(s(f),2),k=s(M),A=s(k,!0);n(k);var U=j(k,2),V=s(U,!0);n(U);var P=j(U,2);{var Z=B=>{var x=Ft(),H=s(x);Ce(H,{variant:"secondary",size:"sm",icon:"",class:"text-red-700 dark:text-red-200 bg-red-100 dark:bg-red-800 hover:bg-red-200 dark:hover:bg-red-700 focus:outline-none focus:bg-red-200 dark:focus:bg-red-700",$$events:{click(...D){p()?.apply(this,D)}},children:(D,F)=>{Se();var J=Te("Retry");i(D,J)},$$slots:{default:!0}}),n(x),i(B,x)};I(P,B=>{t()&&p()&&B(Z)})}n(M),n(f),n(m),n(h),R(()=>{O(A,g()),O(V,a())}),i(S,h)}var Qt=ye(''),Zt=ye(''),Jt=ye(''),Wt=ye(''),Xt=ye(''),Yt=ye(''),$t=L('

');function er(S,r){let g=o(r,"title",8),a=o(r,"message",8),t=o(r,"iconType",8,"document");var p=$t(),h=s(p);{var m=V=>{var P=Qt();i(V,P)},f=V=>{var P=Q(),Z=q(P);{var B=H=>{var D=Zt();i(H,D)},x=H=>{var D=Q(),F=q(D);{var J=d=>{var c=Jt();i(d,c)},l=d=>{var c=Q(),y=q(c);{var N=w=>{var E=Wt();i(w,E)},W=w=>{var E=Q(),z=q(E);{var C=T=>{var G=Xt();i(T,G)},_=T=>{var G=Q(),Y=q(G);{var re=ae=>{var ce=Yt();i(ae,ce)};I(Y,ae=>{t()==="settings"&&ae(re)},!0)}i(T,G)};I(z,T=>{t()==="key"?T(C):T(_,!1)},!0)}i(w,E)};I(y,w=>{t()==="cog"?w(N):w(W,!1)},!0)}i(d,c)};I(F,d=>{t()==="users"?d(J):d(l,!1)},!0)}i(H,D)};I(Z,H=>{t()==="building"?H(B):H(x,!1)},!0)}i(V,P)};I(h,V=>{t()==="document"?V(m):V(f,!1)})}var M=j(h,2),k=s(M,!0);n(M);var A=j(M,2),U=s(A,!0);n(A),n(p),R(()=>{O(k,g()),O(U,a())}),i(S,p)}var tr=L(""),rr=L('
'),ar=L('
');function nr(S,r){fe(r,!1);let g=o(r,"searchTerm",12,""),a=o(r,"perPage",12,25),t=o(r,"placeholder",8,"Search..."),p=o(r,"showPerPageSelector",8,!0),h=o(r,"perPageOptions",24,()=>[25,50,100]);const m=be();function f(){m("search",{term:g()})}function M(){m("perPageChange",{perPage:a()})}ke();var k=ar(),A=s(k),U=s(A),V=s(U),P=j(s(V),2);Ut(P,{get placeholder(){return t()},get value(){return g()},set value(x){g(x)},$$events:{input:f},$$legacy:!0}),n(V),n(U);var Z=j(U,2);{var B=x=>{var H=rr(),D=s(H),F=j(s(D),2);R(()=>{a(),Pt(()=>{h()})}),de(F,5,h,ge,(J,l)=>{var d=tr(),c=s(d,!0);n(d);var y={};R(()=>{O(c,e(l)),y!==(y=e(l))&&(d.value=(d.__value=e(l))??"")}),i(J,d)}),n(F),n(D),n(H),Lt(F,a),Ge("change",F,M),i(x,H)};I(Z,x=>{p()&&x(B)})}n(A),n(k),i(S,k),he()}var ir=L('Showing to of ',1),or=L('
');function sr(S,r){fe(r,!1);const g=te(),a=te();let t=o(r,"currentPage",8,1),p=o(r,"totalPages",8,1),h=o(r,"perPage",8,25),m=o(r,"totalItems",8,0),f=o(r,"itemName",8,"results");const M=be();function k(P){P>=1&&P<=p()&&P!==t()&&M("pageChange",{page:P})}$(()=>(u(m()),u(t()),u(h())),()=>{ee(g,m()===0?0:(t()-1)*h()+1)}),$(()=>(u(t()),u(h()),u(m())),()=>{ee(a,Math.min(t()*h(),m()))}),Le(),ke();var A=Q(),U=q(A);{var V=P=>{var Z=or(),B=s(Z),x=s(B);{let z=X(()=>t()===1);Ce(x,{variant:"secondary",get disabled(){return e(z)},$$events:{click:()=>k(t()-1)},children:(C,_)=>{Se();var T=Te("Previous");i(C,T)},$$slots:{default:!0}})}var H=j(x,2);{let z=X(()=>t()===p());Ce(H,{variant:"secondary",get disabled(){return e(z)},class:"ml-3",$$events:{click:()=>k(t()+1)},children:(C,_)=>{Se();var T=Te("Next");i(C,T)},$$slots:{default:!0}})}n(B);var D=j(B,2),F=s(D),J=s(F),l=s(J);{var d=z=>{var C=Te();R(()=>O(C,`No ${f()??""}`)),i(z,C)},c=z=>{var C=ir(),_=j(q(C)),T=s(_,!0);n(_);var G=j(_,2),Y=s(G,!0);n(G);var re=j(G,2),ae=s(re,!0);n(re);var ce=j(re);R(()=>{O(T,e(g)),O(Y,e(a)),O(ae,m()),O(ce,` ${f()??""}`)}),i(z,C)};I(l,z=>{m()===0?z(d):z(c,!1)})}n(J),n(F);var y=j(F,2),N=s(y),W=s(N);{let z=X(()=>t()===1);Ce(W,{variant:"secondary",size:"sm",get disabled(){return e(z)},class:"rounded-r-none","aria-label":"Previous page",icon:"",$$events:{click:()=>k(t()-1)}})}var w=j(W,2);de(w,1,()=>(u(p()),v(()=>Array(p()))),ge,(z,C,_)=>{const T=X(()=>_+1);{let G=X(()=>e(T)===t()?"primary":"secondary");Ce(z,{get variant(){return e(G)},size:"sm",class:"rounded-none border-l-0 first:border-l first:rounded-l-md",$$events:{click:()=>k(e(T))},children:(Y,re)=>{Se();var ae=Te();R(()=>O(ae,e(T))),i(Y,ae)},$$slots:{default:!0}})}});var E=j(w,2);{let z=X(()=>t()===p());Ce(E,{variant:"secondary",size:"sm",get disabled(){return e(z)},class:"rounded-l-none","aria-label":"Next page",icon:"",$$events:{click:()=>k(t()+1)}})}n(N),n(y),n(D),n(Z),i(P,Z)};I(U,P=>{p()>1&&P(V)})}i(S,A),he()}var lr=L('

'),dr=L('

'),cr=L('

'),vr=L('

'),ur=L('
'),gr=L('
'),fr=L('
'),hr=L(" "),mr=L('
'),pr=L('
');function kr(S,r){fe(r,!1);const g=be();let a=o(r,"item",8),t=o(r,"config",8);function p(){if(!a())return"Unknown";const{field:l,useId:d,showOwner:c}=t().primaryText,y=a()[l];return d&&y?`${y.slice(0,8)}...`:c&&a().owner&&a().name?`${a().owner}/${a().name}`:y||"Unknown"}function h(){if(!t().secondaryText)return"";const{field:l,computedValue:d}=t().secondaryText;return d!==void 0?typeof d=="function"?d(a()):d:a()?.[l]||""}function m(){if(!t().primaryText.href||!a())return"#";let l=t().primaryText.href;return l=l.replace("{id}",a().id||""),l=l.replace("{name}",encodeURIComponent(a().name||"")),`${At}${l}`}function f(l){if(!a())return;const d=t().actions?.find(c=>c.type===l);d&&d.handler(a()),l==="edit"?g("edit",{item:a()}):l==="delete"?g("delete",{item:a()}):g("action",{type:l,item:a()})}function M(l){switch(l.type){case"status":if(t().entityType==="instance"){const c=a()?.[l.field]||"unknown";let y="neutral",N=c.charAt(0).toUpperCase()+c.slice(1);return l.field==="status"?y=c==="running"?"success":c==="pending"||c==="creating"?"info":c==="failed"||c==="error"?"error":"neutral":l.field==="runner_status"&&(y=c==="idle"?"info":c==="active"||c==="running"?"success":c==="failed"||c==="error"?"error":"neutral"),{variant:y,text:N}}return{variant:"neutral",text:a()?.[l.field]||"Unknown"};case"forge":return{variant:"neutral",text:a()?.[l.field]||"unknown"};case"auth":const d=a()?.[l.field]||"pat";return{variant:d==="pat"?"success":"info",text:d.toUpperCase()};case"custom":if(typeof l.value=="function"){const c=l.value(a());return{variant:c?.variant||"neutral",text:c?.text||""}}return{variant:l.value?.variant||"neutral",text:l.value?.text||""};default:return{variant:"neutral",text:""}}}ke();var k=pr(),A=s(k),U=s(A);{var V=l=>{var d=dr(),c=s(d),y=s(c,!0);n(c);var N=j(c,2);{var W=w=>{var E=lr(),z=s(E,!0);n(E),R(C=>O(z,C),[()=>v(h)]),i(w,E)};I(N,w=>{u(t()),v(()=>t().secondaryText)&&w(W)})}n(d),R((w,E)=>{Be(d,"href",w),pe(c,1,`text-sm font-medium text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 truncate ${u(t()),v(()=>t().primaryText.isMonospace?"font-mono":"")??""}`),O(y,E)},[()=>v(m),()=>v(p)]),i(l,d)},P=l=>{var d=vr(),c=s(d),y=s(c,!0);n(c);var N=j(c,2);{var W=w=>{var E=cr(),z=s(E,!0);n(E),R(C=>O(z,C),[()=>v(h)]),i(w,E)};I(N,w=>{u(t()),v(()=>t().secondaryText)&&w(W)})}n(d),R(w=>O(y,w),[()=>v(p)]),i(l,d)};I(U,l=>{u(t()),v(()=>t().primaryText.isClickable)?l(V):l(P,!1)})}var Z=j(U,2);{var B=l=>{var d=fr(),c=s(d);{var y=w=>{var E=Q(),z=q(E);de(z,1,()=>(u(t()),v(()=>t().customInfo)),ge,(C,_)=>{const T=X(()=>(e(_),u(a()),v(()=>typeof e(_).icon=="function"?e(_).icon(a()):e(_).icon))),G=X(()=>(e(_),u(a()),v(()=>typeof e(_).text=="function"?e(_).text(a()):e(_).text)));var Y=ur(),re=s(Y);{var ae=je=>{var He=Q(),De=q(He);Ae(De,()=>e(T)),i(je,He)};I(re,je=>{e(T)&&je(ae)})}var ce=j(re,2),Ee=s(ce,!0);n(ce),n(Y),R(()=>O(Ee,e(G))),i(C,Y)}),i(w,E)};I(c,w=>{u(t()),v(()=>t().customInfo)&&w(y)})}var N=j(c,2);{var W=w=>{var E=Q(),z=q(E);de(z,1,()=>(u(t()),v(()=>t().badges.filter(C=>C.type==="forge"))),ge,(C,_)=>{var T=gr(),G=s(T);Ae(G,()=>(u(et),e(_),u(a()),v(()=>et(e(_).field?a()?.[e(_).field]||"unknown":a()?.endpoint?.endpoint_type||"unknown"))));var Y=j(G,2),re=s(Y,!0);n(Y),n(T),R(()=>O(re,(u(a()),v(()=>a()?.endpoint?.name||"Unknown")))),i(C,T)}),i(w,E)};I(N,w=>{u(t()),v(()=>t().badges)&&w(W)})}n(d),i(l,d)};I(Z,l=>{u(t()),v(()=>t().customInfo||t().badges?.some(d=>d.type==="forge"))&&l(B)})}n(A);var x=j(A,2),H=s(x);{var D=l=>{var d=Q(),c=q(d);de(c,1,()=>(u(t()),v(()=>t().badges.filter(y=>y.type!=="forge"))),ge,(y,N)=>{var W=Q(),w=q(W);{var E=C=>{const _=X(()=>(e(N),v(()=>M(e(N)))));var T=hr(),G=s(T,!0);n(T),R(()=>{pe(T,1,`inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ring-1 ring-inset ${u(e(_)),v(()=>e(_).variant==="success"?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/50 dark:text-green-300 dark:ring-green-400/20":e(_).variant==="info"?"bg-blue-50 text-blue-700 ring-blue-600/20 dark:bg-blue-900/50 dark:text-blue-300 dark:ring-blue-400/20":e(_).variant==="error"?"bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-900/50 dark:text-red-300 dark:ring-red-400/20":"bg-gray-50 text-gray-700 ring-gray-600/20 dark:bg-gray-900/50 dark:text-gray-300 dark:ring-gray-400/20")??""}`),O(G,(u(e(_)),v(()=>e(_).text)))}),i(C,T)},z=C=>{const _=X(()=>(e(N),v(()=>M(e(N)))));Bt(C,{get variant(){return u(e(_)),v(()=>e(_).variant)},get text(){return u(e(_)),v(()=>e(_).text)}})};I(w,C=>{e(N),v(()=>e(N).type==="status")?C(E):C(z,!1)})}i(y,W)}),i(l,d)};I(H,l=>{u(t()),v(()=>t().badges)&&l(D)})}var F=j(H,2);{var J=l=>{var d=mr();de(d,5,()=>(u(t()),v(()=>t().actions)),ge,(c,y)=>{{let N=X(()=>(e(y),u(t()),v(()=>e(y).type==="edit"?`Edit ${t().entityType}`:`Delete ${t().entityType}`))),W=X(()=>(e(y),u(t()),v(()=>e(y).type==="edit"?`Edit ${t().entityType}`:`Delete ${t().entityType}`)));rt(c,{get action(){return e(y),v(()=>e(y).type)},size:"sm",get title(){return e(N)},get ariaLabel(){return e(W)},$$events:{click:()=>f(e(y).type)}})}}),n(d),i(l,d)};I(F,l=>{u(t()),v(()=>t().actions)&&l(J)})}n(x),n(k),i(S,k),he()}var xr=L('
'),_r=L('
'),yr=L("
"),br=L("
"),wr=L(' ',1),Mr=L('
');function Vr(S,r){fe(r,!1);const g=te();let a=o(r,"columns",24,()=>[]),t=o(r,"data",24,()=>[]),p=o(r,"loading",8,!1),h=o(r,"error",8,""),m=o(r,"totalItems",8,0),f=o(r,"itemName",8,"results"),M=o(r,"searchTerm",12,""),k=o(r,"searchPlaceholder",8,"Search..."),A=o(r,"showSearch",8,!0),U=o(r,"currentPage",8,1),V=o(r,"perPage",12,25),P=o(r,"totalPages",8,1),Z=o(r,"showPagination",8,!0),B=o(r,"showPerPageSelector",8,!0),x=o(r,"emptyTitle",8,"No items found"),H=o(r,"emptyMessage",8,""),D=o(r,"emptyIconType",8,"document"),F=o(r,"errorTitle",8,"Error loading data"),J=o(r,"showRetry",8,!1),l=o(r,"showMobileCards",8,!0),d=o(r,"mobileCardConfig",8,null);const c=be();function y(b){c("search",b.detail)}function N(b){c("pageChange",b.detail)}function W(b){c("perPageChange",b.detail)}function w(){c("retry")}function E(b){c("edit",b.detail)}function z(b){c("delete",b.detail)}function C(b){c("action",b.detail)}function _(b){const ve="px-6 py-4 text-sm",Ve=b.align==="right"?"text-right":b.align==="center"?"text-center":"text-left",Ne=b.key==="actions"?"font-medium":"text-gray-900 dark:text-white",Re=b.flexible?"min-w-0":"";return`${ve} ${Ve} ${Ne} ${Re}`.trim()}function T(){return a().map(b=>b.flexible?`${b.flexRatio||1}fr`:"auto").join(" ")}$(()=>(u(H()),u(M()),u(f())),()=>{ee(g,H()||(M()?`No items found matching "${M()}"`:`No ${f()} found`))}),Le(),ke();var G=Mr(),Y=s(G);{var re=b=>{nr(b,{get placeholder(){return k()},get showPerPageSelector(){return B()},get searchTerm(){return M()},set searchTerm(ve){M(ve)},get perPage(){return V()},set perPage(ve){V(ve)},$$events:{search:y,perPageChange:W},$$legacy:!0})};I(Y,b=>{A()&&b(re)})}var ae=j(Y,2),ce=s(ae);{var Ee=b=>{Ot(b,{get message(){return`Loading ${f()??""}...`}})},je=b=>{var ve=Q(),Ve=q(ve);{var Ne=we=>{{let Ie=X(()=>J()?w:void 0);Kt(we,{get title(){return F()},get message(){return h()},get showRetry(){return J()},get onRetry(){return e(Ie)}})}},Re=we=>{var Ie=Q(),at=q(Ie);{var nt=Me=>{er(Me,{get title(){return x()},get message(){return e(g)},get iconType(){return D()}})},it=Me=>{var Ke=wr(),Qe=q(Ke);{var ot=oe=>{var K=_r();de(K,7,t,(le,ne)=>le.id||le.name||ne,(le,ne,qe)=>{var ze=xr(),ie=s(ze);{var Pe=me=>{var xe=Q(),se=q(xe);tt(se,()=>(e(ne),v(()=>`${e(ne).id||e(ne).name}-${e(ne).updated_at}-mobile`)),_e=>{kr(_e,{get item(){return e(ne)},get config(){return d()},$$events:{edit(ue){Fe.call(this,r,ue)},delete(ue){Fe.call(this,r,ue)},action(ue){Fe.call(this,r,ue)}}})}),i(me,xe)},Oe=me=>{var xe=Q(),se=q(xe);$e(se,r,"mobile-card",{get item(){return e(ne)},get index(){return e(qe)}}),i(me,xe)};I(ie,me=>{d()?me(Pe):me(Oe,!1)})}n(ze),i(le,ze)}),n(K),i(oe,K)};I(Qe,oe=>{l()&&oe(ot)})}var Ze=j(Qe,2),Ue=s(Ze),Je=s(Ue);de(Je,1,a,ge,(oe,K)=>{var le=yr(),ne=s(le,!0);n(le),R(()=>{pe(le,1,`px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider bg-gray-50 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600 ${e(K),v(()=>e(K).align==="right"?"text-right":e(K).align==="center"?"text-center":"text-left")??""}`),O(ne,(e(K),v(()=>e(K).title)))}),i(oe,le)});var st=j(Je,2);de(st,3,t,(oe,K)=>oe.id||oe.name||K,(oe,K,le)=>{var ne=Q(),qe=q(ne);de(qe,1,a,ge,(ze,ie)=>{var Pe=br(),Oe=s(Pe);{var me=se=>{var _e=Q(),ue=q(_e);tt(ue,()=>(e(K),e(ie),v(()=>`${e(K).id||e(K).name}-${e(K).updated_at}-${e(ie).key}`)),lt=>{var We=Q(),dt=q(We);It(dt,()=>e(ie).cellComponent,(ct,vt)=>{vt(ct,Ct({get item(){return e(K)}},()=>e(ie).cellProps,{$$events:{edit:E,delete:z,action:C}}))}),i(lt,We)}),i(se,_e)},xe=se=>{var _e=Q(),ue=q(_e);$e(ue,r,"cell",{get item(){return e(K)},get column(){return e(ie)},get index(){return e(le)},get value(){return e(K),e(ie),v(()=>e(K)[e(ie).key])}}),i(se,_e)};I(Oe,se=>{e(ie),v(()=>e(ie).cellComponent)?se(me):se(xe,!1)})}n(Pe),R(se=>pe(Pe,1,`${se??""} border-b border-gray-200 dark:border-gray-700`),[()=>(e(ie),v(()=>_(e(ie))))]),i(ze,Pe)}),i(oe,ne)}),n(Ue),n(Ze),R(oe=>Ht(Ue,`grid-template-columns: ${oe??""}`),[()=>v(T)]),i(Me,Ke)};I(at,Me=>{u(t()),v(()=>t().length===0)?Me(nt):Me(it,!1)},!0)}i(we,Ie)};I(Ve,we=>{h()?we(Ne):we(Re,!1)},!0)}i(b,ve)};I(ce,b=>{p()?b(Ee):b(je,!1)})}var He=j(ce,2);{var De=b=>{sr(b,{get currentPage(){return U()},get totalPages(){return P()},get perPage(){return V()},get totalItems(){return m()},get itemName(){return f()},$$events:{pageChange:N}})};I(He,b=>{u(Z()),u(p()),u(h()),u(t()),v(()=>Z()&&!p()&&!h()&&t().length>0)&&b(De)})}n(ae),n(G),i(S,G),he()}var Pr=L('
');function Nr(S,r){fe(r,!1);const g=be();let a=o(r,"item",8),t=o(r,"actions",24,()=>[{type:"edit",title:"Edit",ariaLabel:"Edit item",action:"edit"},{type:"delete",title:"Delete",ariaLabel:"Delete item",action:"delete"}]);function p(m){a()&&(m==="edit"?g("edit",{item:a()}):m==="delete"?g("delete",{item:a()}):g("action",{type:m,item:a()}))}ke();var h=Pr();de(h,5,t,ge,(m,f)=>{{let M=X(()=>(e(f),v(()=>e(f).action||(e(f).type==="edit"?"edit":e(f).type==="delete"?"delete":"view")))),k=X(()=>(e(f),v(()=>e(f).title||(e(f).type==="edit"?"Edit":e(f).type==="delete"?"Delete":e(f).label)))),A=X(()=>(e(f),v(()=>e(f).ariaLabel||(e(f).type==="edit"?"Edit item":e(f).type==="delete"?"Delete item":e(f).label))));rt(m,{get action(){return e(M)},get title(){return e(k)},get ariaLabel(){return e(A)},$$events:{click:()=>p(e(f).type)}})}}),n(h),i(S,h),he()}var Cr=L(" "),jr=L(" ");function Rr(S,r){fe(r,!1);const g=te(),a=te();let t=o(r,"item",8),p=o(r,"field",8),h=o(r,"type",8,"text"),m=o(r,"truncateLength",8,50),f=o(r,"showTitle",8,!1);function M(){return t()&&p().split(".").reduce((B,x)=>B?.[x],t())||""}function k(){return h()==="date"?Et(e(g)):h()==="truncated"&&e(g).length>m()?`${e(g).slice(0,m())}...`:e(g)}function A(){switch(h()){case"code":return"inline-block max-w-full truncate bg-gray-100 dark:bg-gray-700 px-2 py-1 rounded text-xs font-mono";case"description":return"block w-full truncate text-sm text-gray-500 dark:text-gray-300";case"date":return"block w-full truncate text-sm text-gray-900 dark:text-white font-mono";default:return"block w-full truncate text-sm text-gray-900 dark:text-white"}}$(()=>{},()=>{ee(g,M())}),$(()=>{},()=>{ee(a,k())}),Le(),ke();var U=Q(),V=q(U);{var P=B=>{var x=Cr(),H=s(x,!0);n(x),R(D=>{pe(x,1,`${D??""} ${f()?"cursor-default":""}`),Be(x,"title",f()?e(g):""),O(H,e(a))},[()=>v(A)]),i(B,x)},Z=B=>{var x=jr(),H=s(x,!0);n(x),R(D=>{pe(x,1,`${D??""} ${f()?"cursor-default":""}`),Be(x,"title",f()?e(g):""),O(H,e(a))},[()=>v(A)]),i(B,x)};I(V,B=>{h()==="code"?B(P):B(Z,!1)})}i(S,U),he()}export{rt as A,Vr as D,Rr as G,Nr as a,tt as k}; +import"./DsnmJJEf.js";import{i as ke}from"./B3Pzt0F_.js";import{V as ut,aU as gt,aV as ft,M as ht,O as mt,P as pt,Q as kt,R as xt,at as _t,K as Xe,L as yt,U as bt,T as wt,a8 as Mt,p as fe,l as $,s as ee,m as te,n as u,a as Le,C as ye,j as s,g as e,r as n,t as R,c as i,d as he,E as be,f as L,e as Ge,u as v,k as j,v as O,z as Se,D as Te,B as Q,b as q,x as Pt,q as X}from"./D8EpLgQ1.js";import{p as o,l as Ye,i as I,b as Ct}from"./5WA7h8uK.js";import{e as de,i as ge}from"./u94nIB4-.js";import{h as Ae,s as pe,f as jt,e as zt,B as Ce,r as Tt,c as Be,b as Lt,d as $e,i as Ht}from"./CiE1LlKV.js";import{c as It}from"./CCSWcuVN.js";import{b as St}from"./C6k1Q4We.js";import{b as At}from"./CRhkqW2i.js";import{B as Bt,g as et,b as Et}from"./BGVHQGl-.js";function tt(S,r,g){Xe&&yt();var a=S,t=_t,p,h,m=null,f=ut()?gt:ft;function M(){p&&bt(p),m!==null&&(m.lastChild.remove(),a.before(m),m=null),p=h}ht(()=>{if(f(t,t=r())){var k=a,A=xt();A&&(m=document.createDocumentFragment(),m.append(k=mt())),h=pt(()=>g(k)),A?kt.add_callback(M):M()}}),Xe&&(a=wt)}function Fe(S,r){var g=S.$$events?.[r.type],a=Mt(g)?g.slice():g==null?[]:[g];for(var t of a)t.call(this,r)}var Dt=ye('');function Vt(S,r){fe(r,!1);const g=te();let a=o(r,"name",8),t=o(r,"class",8,"h-5 w-5");const p={plus:'',edit:'',delete:'',view:'',close:'',check:'',x:'',"chevron-left":'',"chevron-right":'',"chevron-down":'',"chevron-up":'',search:'',refresh:'',menu:'',settings:'',"check-circle":'',"x-circle":'',"exclamation-circle":'',"information-circle":'',loading:'',sun:'',moon:'',document:'',folder:''};$(()=>u(a()),()=>{ee(g,p[a()]||"")}),Le();var h=Dt(),m=s(h);Ae(m,()=>e(g),!0),n(h),R(()=>pe(h,0,`${t()}`)),i(S,h),he()}var Nt=L('');function rt(S,r){const g=Ye(r,["children","$$slots","$$events","$$legacy"]),a=Ye(g,["action","disabled","title","ariaLabel","size"]);fe(r,!1);const t=te(),p=te(),h=te(),m=te(),f=te(),M=te(),k=te(),A=te(),U=te(),V=be();let P=o(r,"action",8,"edit"),Z=o(r,"disabled",8,!1),B=o(r,"title",8,""),x=o(r,"ariaLabel",8,""),H=o(r,"size",8,"md");function D(){Z()||V("click")}$(()=>{},()=>{ee(t,"transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50")}),$(()=>u(H()),()=>{ee(p,{sm:"p-1",md:"p-2"}[H()])}),$(()=>u(P()),()=>{ee(h,{edit:"text-indigo-600 dark:text-indigo-400 hover:text-indigo-900 dark:hover:text-indigo-300 focus:ring-indigo-500",delete:"text-red-600 dark:text-red-400 hover:text-red-900 dark:hover:text-red-300 focus:ring-red-500",view:"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-300 focus:ring-gray-500",add:"text-green-600 dark:text-green-400 hover:text-green-900 dark:hover:text-green-300 focus:ring-green-500"}[P()])}),$(()=>u(H()),()=>{ee(m,H()==="sm"?"h-4 w-4":"h-5 w-5")}),$(()=>(e(t),e(p),e(h)),()=>{ee(f,[e(t),e(p),e(h)].join(" "))}),$(()=>{},()=>{ee(M,{edit:'',delete:'',view:'',add:''})}),$(()=>{},()=>{ee(k,{edit:"Edit",delete:"Delete",view:"View",add:"Add"})}),$(()=>(u(B()),e(k),u(P())),()=>{ee(A,B()||e(k)[P()])}),$(()=>(u(x()),e(k),u(P())),()=>{ee(U,x()||`${e(k)[P()]} item`)}),Le(),ke();var F=Nt();jt(F,()=>({type:"button",class:e(f),disabled:Z(),title:e(A),"aria-label":e(U),...a}));var J=s(F),l=s(J);Ae(l,()=>(e(M),u(P()),v(()=>e(M)[P()])),!0),n(J),n(F),R(()=>pe(J,0,zt(e(m)))),Ge("click",F,D),i(S,F),he()}var Rt=L('

');function Ut(S,r){let g=o(r,"message",8,"Loading...");var a=Rt(),t=j(s(a),2),p=s(t,!0);n(t),n(a),R(()=>O(p,g())),i(S,a)}var qt=L('
'),Ot=L('

');function Ft(S,r){let g=o(r,"title",8,"Error"),a=o(r,"message",8),t=o(r,"showRetry",8,!1),p=o(r,"onRetry",8,void 0);var h=Ot(),m=s(h),f=s(m),M=j(s(f),2),k=s(M),A=s(k,!0);n(k);var U=j(k,2),V=s(U,!0);n(U);var P=j(U,2);{var Z=B=>{var x=qt(),H=s(x);Ce(H,{variant:"secondary",size:"sm",icon:"",class:"text-red-700 dark:text-red-200 bg-red-100 dark:bg-red-800 hover:bg-red-200 dark:hover:bg-red-700 focus:outline-none focus:bg-red-200 dark:focus:bg-red-700",$$events:{click(...D){p()?.apply(this,D)}},children:(D,F)=>{Se();var J=Te("Retry");i(D,J)},$$slots:{default:!0}}),n(x),i(B,x)};I(P,B=>{t()&&p()&&B(Z)})}n(M),n(f),n(m),n(h),R(()=>{O(A,g()),O(V,a())}),i(S,h)}var Gt=ye(''),Kt=ye(''),Qt=ye(''),Zt=ye(''),Jt=ye(''),Wt=ye(''),Xt=L('

');function Yt(S,r){let g=o(r,"title",8),a=o(r,"message",8),t=o(r,"iconType",8,"document");var p=Xt(),h=s(p);{var m=V=>{var P=Gt();i(V,P)},f=V=>{var P=Q(),Z=q(P);{var B=H=>{var D=Kt();i(H,D)},x=H=>{var D=Q(),F=q(D);{var J=d=>{var c=Qt();i(d,c)},l=d=>{var c=Q(),y=q(c);{var N=w=>{var E=Zt();i(w,E)},W=w=>{var E=Q(),z=q(E);{var C=T=>{var G=Jt();i(T,G)},_=T=>{var G=Q(),Y=q(G);{var re=ae=>{var ce=Wt();i(ae,ce)};I(Y,ae=>{t()==="settings"&&ae(re)},!0)}i(T,G)};I(z,T=>{t()==="key"?T(C):T(_,!1)},!0)}i(w,E)};I(y,w=>{t()==="cog"?w(N):w(W,!1)},!0)}i(d,c)};I(F,d=>{t()==="users"?d(J):d(l,!1)},!0)}i(H,D)};I(Z,H=>{t()==="building"?H(B):H(x,!1)},!0)}i(V,P)};I(h,V=>{t()==="document"?V(m):V(f,!1)})}var M=j(h,2),k=s(M,!0);n(M);var A=j(M,2),U=s(A,!0);n(A),n(p),R(()=>{O(k,g()),O(U,a())}),i(S,p)}var $t=L('
');function er(S,r){fe(r,!1);let g=o(r,"value",12,""),a=o(r,"placeholder",8,"Search..."),t=o(r,"disabled",8,!1);const p=be();function h(){p("input",g())}ke();var m=$t(),f=s(m),M=s(f);Vt(M,{name:"search",class:"h-5 w-5 text-gray-400"}),n(f);var k=j(f,2);Tt(k),n(m),R(()=>{Be(k,"placeholder",a()),k.disabled=t()}),St(k,g),Ge("input",k,h),i(S,m),he()}var tr=L(""),rr=L('
'),ar=L('
');function nr(S,r){fe(r,!1);let g=o(r,"searchTerm",12,""),a=o(r,"perPage",12,25),t=o(r,"placeholder",8,"Search..."),p=o(r,"showPerPageSelector",8,!0),h=o(r,"perPageOptions",24,()=>[25,50,100]);const m=be();function f(){m("search",{term:g()})}function M(){m("perPageChange",{perPage:a()})}ke();var k=ar(),A=s(k),U=s(A),V=s(U),P=j(s(V),2);er(P,{get placeholder(){return t()},get value(){return g()},set value(x){g(x)},$$events:{input:f},$$legacy:!0}),n(V),n(U);var Z=j(U,2);{var B=x=>{var H=rr(),D=s(H),F=j(s(D),2);R(()=>{a(),Pt(()=>{h()})}),de(F,5,h,ge,(J,l)=>{var d=tr(),c=s(d,!0);n(d);var y={};R(()=>{O(c,e(l)),y!==(y=e(l))&&(d.value=(d.__value=e(l))??"")}),i(J,d)}),n(F),n(D),n(H),Lt(F,a),Ge("change",F,M),i(x,H)};I(Z,x=>{p()&&x(B)})}n(A),n(k),i(S,k),he()}var ir=L('Showing to of ',1),or=L('
');function sr(S,r){fe(r,!1);const g=te(),a=te();let t=o(r,"currentPage",8,1),p=o(r,"totalPages",8,1),h=o(r,"perPage",8,25),m=o(r,"totalItems",8,0),f=o(r,"itemName",8,"results");const M=be();function k(P){P>=1&&P<=p()&&P!==t()&&M("pageChange",{page:P})}$(()=>(u(m()),u(t()),u(h())),()=>{ee(g,m()===0?0:(t()-1)*h()+1)}),$(()=>(u(t()),u(h()),u(m())),()=>{ee(a,Math.min(t()*h(),m()))}),Le(),ke();var A=Q(),U=q(A);{var V=P=>{var Z=or(),B=s(Z),x=s(B);{let z=X(()=>t()===1);Ce(x,{variant:"secondary",get disabled(){return e(z)},$$events:{click:()=>k(t()-1)},children:(C,_)=>{Se();var T=Te("Previous");i(C,T)},$$slots:{default:!0}})}var H=j(x,2);{let z=X(()=>t()===p());Ce(H,{variant:"secondary",get disabled(){return e(z)},class:"ml-3",$$events:{click:()=>k(t()+1)},children:(C,_)=>{Se();var T=Te("Next");i(C,T)},$$slots:{default:!0}})}n(B);var D=j(B,2),F=s(D),J=s(F),l=s(J);{var d=z=>{var C=Te();R(()=>O(C,`No ${f()??""}`)),i(z,C)},c=z=>{var C=ir(),_=j(q(C)),T=s(_,!0);n(_);var G=j(_,2),Y=s(G,!0);n(G);var re=j(G,2),ae=s(re,!0);n(re);var ce=j(re);R(()=>{O(T,e(g)),O(Y,e(a)),O(ae,m()),O(ce,` ${f()??""}`)}),i(z,C)};I(l,z=>{m()===0?z(d):z(c,!1)})}n(J),n(F);var y=j(F,2),N=s(y),W=s(N);{let z=X(()=>t()===1);Ce(W,{variant:"secondary",size:"sm",get disabled(){return e(z)},class:"rounded-r-none","aria-label":"Previous page",icon:"",$$events:{click:()=>k(t()-1)}})}var w=j(W,2);de(w,1,()=>(u(p()),v(()=>Array(p()))),ge,(z,C,_)=>{const T=X(()=>_+1);{let G=X(()=>e(T)===t()?"primary":"secondary");Ce(z,{get variant(){return e(G)},size:"sm",class:"rounded-none border-l-0 first:border-l first:rounded-l-md",$$events:{click:()=>k(e(T))},children:(Y,re)=>{Se();var ae=Te();R(()=>O(ae,e(T))),i(Y,ae)},$$slots:{default:!0}})}});var E=j(w,2);{let z=X(()=>t()===p());Ce(E,{variant:"secondary",size:"sm",get disabled(){return e(z)},class:"rounded-l-none","aria-label":"Next page",icon:"",$$events:{click:()=>k(t()+1)}})}n(N),n(y),n(D),n(Z),i(P,Z)};I(U,P=>{p()>1&&P(V)})}i(S,A),he()}var lr=L('

'),dr=L('

'),cr=L('

'),vr=L('

'),ur=L('
'),gr=L('
'),fr=L('
'),hr=L(" "),mr=L('
'),pr=L('
');function kr(S,r){fe(r,!1);const g=be();let a=o(r,"item",8),t=o(r,"config",8);function p(){if(!a())return"Unknown";const{field:l,useId:d,showOwner:c}=t().primaryText,y=a()[l];return d&&y?`${y.slice(0,8)}...`:c&&a().owner&&a().name?`${a().owner}/${a().name}`:y||"Unknown"}function h(){if(!t().secondaryText)return"";const{field:l,computedValue:d}=t().secondaryText;return d!==void 0?typeof d=="function"?d(a()):d:a()?.[l]||""}function m(){if(!t().primaryText.href||!a())return"#";let l=t().primaryText.href;return l=l.replace("{id}",a().id||""),l=l.replace("{name}",encodeURIComponent(a().name||"")),`${At}${l}`}function f(l){if(!a())return;const d=t().actions?.find(c=>c.type===l);d&&d.handler(a()),l==="edit"?g("edit",{item:a()}):l==="delete"?g("delete",{item:a()}):g("action",{type:l,item:a()})}function M(l){switch(l.type){case"status":if(t().entityType==="instance"){const c=a()?.[l.field]||"unknown";let y="neutral",N=c.charAt(0).toUpperCase()+c.slice(1);return l.field==="status"?y=c==="running"?"success":c==="pending"||c==="creating"?"info":c==="failed"||c==="error"?"error":"neutral":l.field==="runner_status"&&(y=c==="idle"?"info":c==="active"||c==="running"?"success":c==="failed"||c==="error"?"error":"neutral"),{variant:y,text:N}}return{variant:"neutral",text:a()?.[l.field]||"Unknown"};case"forge":return{variant:"neutral",text:a()?.[l.field]||"unknown"};case"auth":const d=a()?.[l.field]||"pat";return{variant:d==="pat"?"success":"info",text:d.toUpperCase()};case"custom":if(typeof l.value=="function"){const c=l.value(a());return{variant:c?.variant||"neutral",text:c?.text||""}}return{variant:l.value?.variant||"neutral",text:l.value?.text||""};default:return{variant:"neutral",text:""}}}ke();var k=pr(),A=s(k),U=s(A);{var V=l=>{var d=dr(),c=s(d),y=s(c,!0);n(c);var N=j(c,2);{var W=w=>{var E=lr(),z=s(E,!0);n(E),R(C=>O(z,C),[()=>v(h)]),i(w,E)};I(N,w=>{u(t()),v(()=>t().secondaryText)&&w(W)})}n(d),R((w,E)=>{Be(d,"href",w),pe(c,1,`text-sm font-medium text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 truncate ${u(t()),v(()=>t().primaryText.isMonospace?"font-mono":"")??""}`),O(y,E)},[()=>v(m),()=>v(p)]),i(l,d)},P=l=>{var d=vr(),c=s(d),y=s(c,!0);n(c);var N=j(c,2);{var W=w=>{var E=cr(),z=s(E,!0);n(E),R(C=>O(z,C),[()=>v(h)]),i(w,E)};I(N,w=>{u(t()),v(()=>t().secondaryText)&&w(W)})}n(d),R(w=>O(y,w),[()=>v(p)]),i(l,d)};I(U,l=>{u(t()),v(()=>t().primaryText.isClickable)?l(V):l(P,!1)})}var Z=j(U,2);{var B=l=>{var d=fr(),c=s(d);{var y=w=>{var E=Q(),z=q(E);de(z,1,()=>(u(t()),v(()=>t().customInfo)),ge,(C,_)=>{const T=X(()=>(e(_),u(a()),v(()=>typeof e(_).icon=="function"?e(_).icon(a()):e(_).icon))),G=X(()=>(e(_),u(a()),v(()=>typeof e(_).text=="function"?e(_).text(a()):e(_).text)));var Y=ur(),re=s(Y);{var ae=je=>{var He=Q(),De=q(He);Ae(De,()=>e(T)),i(je,He)};I(re,je=>{e(T)&&je(ae)})}var ce=j(re,2),Ee=s(ce,!0);n(ce),n(Y),R(()=>O(Ee,e(G))),i(C,Y)}),i(w,E)};I(c,w=>{u(t()),v(()=>t().customInfo)&&w(y)})}var N=j(c,2);{var W=w=>{var E=Q(),z=q(E);de(z,1,()=>(u(t()),v(()=>t().badges.filter(C=>C.type==="forge"))),ge,(C,_)=>{var T=gr(),G=s(T);Ae(G,()=>(u(et),e(_),u(a()),v(()=>et(e(_).field?a()?.[e(_).field]||"unknown":a()?.endpoint?.endpoint_type||"unknown"))));var Y=j(G,2),re=s(Y,!0);n(Y),n(T),R(()=>O(re,(u(a()),v(()=>a()?.endpoint?.name||"Unknown")))),i(C,T)}),i(w,E)};I(N,w=>{u(t()),v(()=>t().badges)&&w(W)})}n(d),i(l,d)};I(Z,l=>{u(t()),v(()=>t().customInfo||t().badges?.some(d=>d.type==="forge"))&&l(B)})}n(A);var x=j(A,2),H=s(x);{var D=l=>{var d=Q(),c=q(d);de(c,1,()=>(u(t()),v(()=>t().badges.filter(y=>y.type!=="forge"))),ge,(y,N)=>{var W=Q(),w=q(W);{var E=C=>{const _=X(()=>(e(N),v(()=>M(e(N)))));var T=hr(),G=s(T,!0);n(T),R(()=>{pe(T,1,`inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ring-1 ring-inset ${u(e(_)),v(()=>e(_).variant==="success"?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/50 dark:text-green-300 dark:ring-green-400/20":e(_).variant==="info"?"bg-blue-50 text-blue-700 ring-blue-600/20 dark:bg-blue-900/50 dark:text-blue-300 dark:ring-blue-400/20":e(_).variant==="error"?"bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-900/50 dark:text-red-300 dark:ring-red-400/20":"bg-gray-50 text-gray-700 ring-gray-600/20 dark:bg-gray-900/50 dark:text-gray-300 dark:ring-gray-400/20")??""}`),O(G,(u(e(_)),v(()=>e(_).text)))}),i(C,T)},z=C=>{const _=X(()=>(e(N),v(()=>M(e(N)))));Bt(C,{get variant(){return u(e(_)),v(()=>e(_).variant)},get text(){return u(e(_)),v(()=>e(_).text)}})};I(w,C=>{e(N),v(()=>e(N).type==="status")?C(E):C(z,!1)})}i(y,W)}),i(l,d)};I(H,l=>{u(t()),v(()=>t().badges)&&l(D)})}var F=j(H,2);{var J=l=>{var d=mr();de(d,5,()=>(u(t()),v(()=>t().actions)),ge,(c,y)=>{{let N=X(()=>(e(y),u(t()),v(()=>e(y).type==="edit"?`Edit ${t().entityType}`:`Delete ${t().entityType}`))),W=X(()=>(e(y),u(t()),v(()=>e(y).type==="edit"?`Edit ${t().entityType}`:`Delete ${t().entityType}`)));rt(c,{get action(){return e(y),v(()=>e(y).type)},size:"sm",get title(){return e(N)},get ariaLabel(){return e(W)},$$events:{click:()=>f(e(y).type)}})}}),n(d),i(l,d)};I(F,l=>{u(t()),v(()=>t().actions)&&l(J)})}n(x),n(k),i(S,k),he()}var xr=L('
'),_r=L('
'),yr=L("
"),br=L("
"),wr=L(' ',1),Mr=L('
');function Vr(S,r){fe(r,!1);const g=te();let a=o(r,"columns",24,()=>[]),t=o(r,"data",24,()=>[]),p=o(r,"loading",8,!1),h=o(r,"error",8,""),m=o(r,"totalItems",8,0),f=o(r,"itemName",8,"results"),M=o(r,"searchTerm",12,""),k=o(r,"searchPlaceholder",8,"Search..."),A=o(r,"showSearch",8,!0),U=o(r,"currentPage",8,1),V=o(r,"perPage",12,25),P=o(r,"totalPages",8,1),Z=o(r,"showPagination",8,!0),B=o(r,"showPerPageSelector",8,!0),x=o(r,"emptyTitle",8,"No items found"),H=o(r,"emptyMessage",8,""),D=o(r,"emptyIconType",8,"document"),F=o(r,"errorTitle",8,"Error loading data"),J=o(r,"showRetry",8,!1),l=o(r,"showMobileCards",8,!0),d=o(r,"mobileCardConfig",8,null);const c=be();function y(b){c("search",b.detail)}function N(b){c("pageChange",b.detail)}function W(b){c("perPageChange",b.detail)}function w(){c("retry")}function E(b){c("edit",b.detail)}function z(b){c("delete",b.detail)}function C(b){c("action",b.detail)}function _(b){const ve="px-6 py-4 text-sm",Ve=b.align==="right"?"text-right":b.align==="center"?"text-center":"text-left",Ne=b.key==="actions"?"font-medium":"text-gray-900 dark:text-white",Re=b.flexible?"min-w-0":"";return`${ve} ${Ve} ${Ne} ${Re}`.trim()}function T(){return a().map(b=>b.flexible?`${b.flexRatio||1}fr`:"auto").join(" ")}$(()=>(u(H()),u(M()),u(f())),()=>{ee(g,H()||(M()?`No items found matching "${M()}"`:`No ${f()} found`))}),Le(),ke();var G=Mr(),Y=s(G);{var re=b=>{nr(b,{get placeholder(){return k()},get showPerPageSelector(){return B()},get searchTerm(){return M()},set searchTerm(ve){M(ve)},get perPage(){return V()},set perPage(ve){V(ve)},$$events:{search:y,perPageChange:W},$$legacy:!0})};I(Y,b=>{A()&&b(re)})}var ae=j(Y,2),ce=s(ae);{var Ee=b=>{Ut(b,{get message(){return`Loading ${f()??""}...`}})},je=b=>{var ve=Q(),Ve=q(ve);{var Ne=we=>{{let Ie=X(()=>J()?w:void 0);Ft(we,{get title(){return F()},get message(){return h()},get showRetry(){return J()},get onRetry(){return e(Ie)}})}},Re=we=>{var Ie=Q(),at=q(Ie);{var nt=Me=>{Yt(Me,{get title(){return x()},get message(){return e(g)},get iconType(){return D()}})},it=Me=>{var Ke=wr(),Qe=q(Ke);{var ot=oe=>{var K=_r();de(K,7,t,(le,ne)=>le.id||le.name||ne,(le,ne,qe)=>{var ze=xr(),ie=s(ze);{var Pe=me=>{var xe=Q(),se=q(xe);tt(se,()=>(e(ne),v(()=>`${e(ne).id||e(ne).name}-${e(ne).updated_at}-mobile`)),_e=>{kr(_e,{get item(){return e(ne)},get config(){return d()},$$events:{edit(ue){Fe.call(this,r,ue)},delete(ue){Fe.call(this,r,ue)},action(ue){Fe.call(this,r,ue)}}})}),i(me,xe)},Oe=me=>{var xe=Q(),se=q(xe);$e(se,r,"mobile-card",{get item(){return e(ne)},get index(){return e(qe)}}),i(me,xe)};I(ie,me=>{d()?me(Pe):me(Oe,!1)})}n(ze),i(le,ze)}),n(K),i(oe,K)};I(Qe,oe=>{l()&&oe(ot)})}var Ze=j(Qe,2),Ue=s(Ze),Je=s(Ue);de(Je,1,a,ge,(oe,K)=>{var le=yr(),ne=s(le,!0);n(le),R(()=>{pe(le,1,`px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider bg-gray-50 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600 ${e(K),v(()=>e(K).align==="right"?"text-right":e(K).align==="center"?"text-center":"text-left")??""}`),O(ne,(e(K),v(()=>e(K).title)))}),i(oe,le)});var st=j(Je,2);de(st,3,t,(oe,K)=>oe.id||oe.name||K,(oe,K,le)=>{var ne=Q(),qe=q(ne);de(qe,1,a,ge,(ze,ie)=>{var Pe=br(),Oe=s(Pe);{var me=se=>{var _e=Q(),ue=q(_e);tt(ue,()=>(e(K),e(ie),v(()=>`${e(K).id||e(K).name}-${e(K).updated_at}-${e(ie).key}`)),lt=>{var We=Q(),dt=q(We);It(dt,()=>e(ie).cellComponent,(ct,vt)=>{vt(ct,Ct({get item(){return e(K)}},()=>e(ie).cellProps,{$$events:{edit:E,delete:z,action:C}}))}),i(lt,We)}),i(se,_e)},xe=se=>{var _e=Q(),ue=q(_e);$e(ue,r,"cell",{get item(){return e(K)},get column(){return e(ie)},get index(){return e(le)},get value(){return e(K),e(ie),v(()=>e(K)[e(ie).key])}}),i(se,_e)};I(Oe,se=>{e(ie),v(()=>e(ie).cellComponent)?se(me):se(xe,!1)})}n(Pe),R(se=>pe(Pe,1,`${se??""} border-b border-gray-200 dark:border-gray-700`),[()=>(e(ie),v(()=>_(e(ie))))]),i(ze,Pe)}),i(oe,ne)}),n(Ue),n(Ze),R(oe=>Ht(Ue,`grid-template-columns: ${oe??""}`),[()=>v(T)]),i(Me,Ke)};I(at,Me=>{u(t()),v(()=>t().length===0)?Me(nt):Me(it,!1)},!0)}i(we,Ie)};I(Ve,we=>{h()?we(Ne):we(Re,!1)},!0)}i(b,ve)};I(ce,b=>{p()?b(Ee):b(je,!1)})}var He=j(ce,2);{var De=b=>{sr(b,{get currentPage(){return U()},get totalPages(){return P()},get perPage(){return V()},get totalItems(){return m()},get itemName(){return f()},$$events:{pageChange:N}})};I(He,b=>{u(Z()),u(p()),u(h()),u(t()),v(()=>Z()&&!p()&&!h()&&t().length>0)&&b(De)})}n(ae),n(G),i(S,G),he()}var Pr=L('
');function Nr(S,r){fe(r,!1);const g=be();let a=o(r,"item",8),t=o(r,"actions",24,()=>[{type:"edit",title:"Edit",ariaLabel:"Edit item",action:"edit"},{type:"delete",title:"Delete",ariaLabel:"Delete item",action:"delete"}]);function p(m){a()&&(m==="edit"?g("edit",{item:a()}):m==="delete"?g("delete",{item:a()}):g("action",{type:m,item:a()}))}ke();var h=Pr();de(h,5,t,ge,(m,f)=>{{let M=X(()=>(e(f),v(()=>e(f).action||(e(f).type==="edit"?"edit":e(f).type==="delete"?"delete":"view")))),k=X(()=>(e(f),v(()=>e(f).title||(e(f).type==="edit"?"Edit":e(f).type==="delete"?"Delete":e(f).label)))),A=X(()=>(e(f),v(()=>e(f).ariaLabel||(e(f).type==="edit"?"Edit item":e(f).type==="delete"?"Delete item":e(f).label))));rt(m,{get action(){return e(M)},get title(){return e(k)},get ariaLabel(){return e(A)},$$events:{click:()=>p(e(f).type)}})}}),n(h),i(S,h),he()}var Cr=L(" "),jr=L(" ");function Rr(S,r){fe(r,!1);const g=te(),a=te();let t=o(r,"item",8),p=o(r,"field",8),h=o(r,"type",8,"text"),m=o(r,"truncateLength",8,50),f=o(r,"showTitle",8,!1);function M(){return t()&&p().split(".").reduce((B,x)=>B?.[x],t())||""}function k(){return h()==="date"?Et(e(g)):h()==="truncated"&&e(g).length>m()?`${e(g).slice(0,m())}...`:e(g)}function A(){switch(h()){case"code":return"inline-block max-w-full truncate bg-gray-100 dark:bg-gray-700 px-2 py-1 rounded text-xs font-mono";case"description":return"block w-full truncate text-sm text-gray-500 dark:text-gray-300";case"date":return"block w-full truncate text-sm text-gray-900 dark:text-white font-mono";default:return"block w-full truncate text-sm text-gray-900 dark:text-white"}}$(()=>{},()=>{ee(g,M())}),$(()=>{},()=>{ee(a,k())}),Le(),ke();var U=Q(),V=q(U);{var P=B=>{var x=Cr(),H=s(x,!0);n(x),R(D=>{pe(x,1,`${D??""} ${f()?"cursor-default":""}`),Be(x,"title",f()?e(g):""),O(H,e(a))},[()=>v(A)]),i(B,x)},Z=B=>{var x=jr(),H=s(x,!0);n(x),R(D=>{pe(x,1,`${D??""} ${f()?"cursor-default":""}`),Be(x,"title",f()?e(g):""),O(H,e(a))},[()=>v(A)]),i(B,x)};I(V,B=>{h()==="code"?B(P):B(Z,!1)})}i(S,U),he()}export{rt as A,Vr as D,Rr as G,Nr as a,tt as k}; diff --git a/webapp/assets/_app/immutable/chunks/BsqC4UA1.js b/webapp/assets/_app/immutable/chunks/BsqC4UA1.js new file mode 100644 index 00000000..706e99fa --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/BsqC4UA1.js @@ -0,0 +1 @@ +import"./DsnmJJEf.js";import{i as ae}from"./B3Pzt0F_.js";import{p as se,E as re,l as M,n as ie,s as r,g as t,m as k,a as le,f as p,j as v,k as $,r as f,c as l,d as oe,B as T,b as E,z as V,D as q,t as F,v as N,u as ne}from"./D8EpLgQ1.js";import{p as R,i as m}from"./5WA7h8uK.js";import{g as u,B as G}from"./CiE1LlKV.js";import{t as y}from"./BEkVdVE1.js";import{e as de}from"./BZiHL9L3.js";var ce=p('
Checking...
'),ve=p('
'),fe=p('
Webhook installed
',1),ue=p('
No webhook installed
'),he=p('

Webhook Status

');function _e(H,g){se(g,!1);const x=k();let h=R(g,"entityType",8),s=R(g,"entityId",8),j=R(g,"entityName",8),i=k(null),o=k(!1),b=k(!0);const A=re();async function _(){if(s())try{r(b,!0),h()==="repository"?r(i,await u.getRepositoryWebhookInfo(s())):r(i,await u.getOrganizationWebhookInfo(s()))}catch(e){e&&typeof e=="object"&&"response"in e&&e.response?.status===404?r(i,null):(console.warn("Failed to check webhook status:",e),r(i,null))}finally{r(b,!1)}}async function J(){if(s())try{r(o,!0),h()==="repository"?await u.installRepositoryWebhook(s()):await u.installOrganizationWebhook(s()),y.success("Webhook Installed",`Webhook for ${h()} ${j()} has been installed successfully.`),await _(),A("webhookStatusChanged",{installed:!0})}catch(e){y.error("Webhook Installation Failed",e instanceof Error?e.message:"Failed to install webhook.")}finally{r(o,!1)}}async function K(){if(s())try{r(o,!0),h()==="repository"?await u.uninstallRepositoryWebhook(s()):await u.uninstallOrganizationWebhook(s()),y.success("Webhook Uninstalled",`Webhook for ${h()} ${j()} has been uninstalled successfully.`),await _(),A("webhookStatusChanged",{installed:!1})}catch(e){y.error("Webhook Uninstall Failed",de(e))}finally{r(o,!1)}}M(()=>ie(s()),()=>{s()&&_()}),M(()=>t(i),()=>{r(x,t(i)&&t(i).active)}),le(),ae();var w=he(),O=v(w),P=v(O),W=v(P),D=$(v(W),2),Q=v(D);{var X=e=>{var d=ce();l(e,d)},Y=e=>{var d=T(),z=E(d);{var I=a=>{var n=fe(),B=$(E(n),2);{var c=C=>{var U=ve(),te=v(U);f(U),F(()=>N(te,`URL: ${t(i),ne(()=>t(i).url||"N/A")??""}`)),l(C,U)};m(B,C=>{t(i)&&C(c)})}l(a,n)},S=a=>{var n=ue();l(a,n)};m(z,a=>{t(x)?a(I):a(S,!1)},!0)}l(e,d)};m(Q,e=>{t(b)?e(X):e(Y,!1)})}f(D),f(W);var L=$(W,2),Z=v(L);{var ee=e=>{var d=T(),z=E(d);{var I=a=>{G(a,{variant:"danger",size:"sm",get disabled(){return t(o)},$$events:{click:K},children:(n,B)=>{V();var c=q();F(()=>N(c,t(o)?"Uninstalling...":"Uninstall")),l(n,c)},$$slots:{default:!0}})},S=a=>{G(a,{variant:"primary",size:"sm",get disabled(){return t(o)},$$events:{click:J},children:(n,B)=>{V();var c=q();F(()=>N(c,t(o)?"Installing...":"Install Webhook")),l(n,c)},$$slots:{default:!0}})};m(z,a=>{t(x)?a(I):a(S,!1)})}l(e,d)};m(Z,e=>{t(b)||e(ee)})}f(L),f(P),f(O),f(w),l(H,w),oe()}export{_e as W}; diff --git a/webapp/assets/_app/immutable/chunks/CLYUNKnN.js b/webapp/assets/_app/immutable/chunks/BzlxTz7Q.js similarity index 92% rename from webapp/assets/_app/immutable/chunks/CLYUNKnN.js rename to webapp/assets/_app/immutable/chunks/BzlxTz7Q.js index e6432af4..78027fdd 100644 --- a/webapp/assets/_app/immutable/chunks/CLYUNKnN.js +++ b/webapp/assets/_app/immutable/chunks/BzlxTz7Q.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as b}from"./B3Pzt0F_.js";import{p as k,f as E,t as C,u as i,n as t,v as n,c as j,d as P,k as z,j as l,r as o}from"./D8EpLgQ1.js";import{c as N}from"./CiE1LlKV.js";import{p as f}from"./5WA7h8uK.js";import"./CoIRRsD9.js";import{j as x,e as c,i as u}from"./BGVHQGl-.js";var T=E('');function G(d,r){k(r,!1);let e=f(r,"item",8),m=f(r,"eagerCache",8,null);b();var s=T(),a=l(s),v=l(a,!0);o(a);var p=z(a,2),g=l(p,!0);o(p),o(s),C((h,y,_)=>{N(a,"href",h),n(v,y),n(g,_)},[()=>(t(x),t(e()),i(()=>x(e()))),()=>(t(c),t(e()),t(m()),i(()=>c(e(),m()))),()=>(t(u),t(e()),i(()=>u(e())))]),j(d,s),P()}export{G as P}; +import"./DsnmJJEf.js";import{i as b}from"./B3Pzt0F_.js";import{p as k,f as E,t as C,u as i,n as t,v as n,c as j,d as P,k as z,j as l,r as o}from"./D8EpLgQ1.js";import{c as N}from"./CiE1LlKV.js";import{p as f}from"./5WA7h8uK.js";import"./CRhkqW2i.js";import{j as x,e as c,i as u}from"./BGVHQGl-.js";var T=E('');function G(d,r){k(r,!1);let e=f(r,"item",8),m=f(r,"eagerCache",8,null);b();var s=T(),a=l(s),v=l(a,!0);o(a);var p=z(a,2),g=l(p,!0);o(p),o(s),C((h,y,_)=>{N(a,"href",h),n(v,y),n(g,_)},[()=>(t(x),t(e()),i(()=>x(e()))),()=>(t(c),t(e()),t(m()),i(()=>c(e(),m()))),()=>(t(u),t(e()),i(()=>u(e())))]),j(d,s),P()}export{G as P}; diff --git a/webapp/assets/_app/immutable/chunks/C89fcOde.js b/webapp/assets/_app/immutable/chunks/C89fcOde.js deleted file mode 100644 index 481fd468..00000000 --- a/webapp/assets/_app/immutable/chunks/C89fcOde.js +++ /dev/null @@ -1 +0,0 @@ -import"./DsnmJJEf.js";import{i as dr}from"./B3Pzt0F_.js";import{p as or,E as sr,m as i,o as ir,s,f as le,j as d,r as o,k as t,g as r,n as c,u as m,t as f,x as Ge,z as nr,v as _,e as je,c as u,D as R,B as Be,b as $e,d as lr}from"./D8EpLgQ1.js";import{p as ur,i as E}from"./5WA7h8uK.js";import{r as b,b as ze}from"./CiE1LlKV.js";import{b as v,a as br}from"./C6k1Q4We.js";import{p as gr}from"./D4Caz1gY.js";import{M as cr}from"./qB7B8uiS.js";import{J as mr}from"./DZblzgqm.js";var vr=le('

'),pr=le('
Updating...
'),fr=le('

Scale Set Information

Provider:
Entity:

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
');function Or(Ce,ue){or(ue,!1);let e=ur(ue,"scaleSet",8);const $=sr();let O=i(!1),J=i(""),T=i(e().name||""),I=i(e().image||""),M=i(e().flavor||""),N=i(e().max_runners),A=i(e().min_idle_runners),P=i(e().runner_bootstrap_timeout),U=i(e().runner_prefix||""),h=i(e().os_type||"linux"),k=i(e().os_arch||"amd64"),D=i(e()["github-runner-group"]||""),G=i(e().enabled),g=i("{}");ir(()=>{if(e().extra_specs)try{if(typeof e().extra_specs=="object")s(g,JSON.stringify(e().extra_specs,null,2));else{const l=JSON.parse(e().extra_specs);s(g,JSON.stringify(l,null,2))}}catch{s(g,e().extra_specs||"{}")}});async function Fe(){try{s(O,!0),s(J,"");let l={};if(r(g).trim())try{l=JSON.parse(r(g))}catch{throw new Error("Invalid JSON in extra specs")}const w={name:r(T)!==e().name?r(T):void 0,image:r(I)!==e().image?r(I):void 0,flavor:r(M)!==e().flavor?r(M):void 0,max_runners:r(N)!==e().max_runners?r(N):void 0,min_idle_runners:r(A)!==e().min_idle_runners?r(A):void 0,runner_bootstrap_timeout:r(P)!==e().runner_bootstrap_timeout?r(P):void 0,runner_prefix:r(U)!==e().runner_prefix?r(U):void 0,os_type:r(h)!==e().os_type?r(h):void 0,os_arch:r(k)!==e().os_arch?r(k):void 0,"github-runner-group":r(D)!==e()["github-runner-group"]&&r(D)||void 0,enabled:r(G)!==e().enabled?r(G):void 0,extra_specs:r(g).trim()!==JSON.stringify(e().extra_specs||{},null,2).trim()?l:void 0};Object.keys(w).forEach(p=>{w[p]===void 0&&delete w[p]}),$("submit",w)}catch(l){s(J,l instanceof Error?l.message:"Failed to update scale set")}finally{s(O,!1)}}dr(),cr(Ce,{$$events:{close:()=>$("close")},children:(l,w)=>{var p=fr(),z=d(p),be=d(z),Le=d(be);o(be),o(z);var C=t(z,2),ge=d(C);{var He=a=>{var n=vr(),j=d(n),ne=d(j,!0);o(j),o(n),f(()=>_(ne,r(J))),u(a,n)};E(ge,a=>{r(J)&&a(He)})}var F=t(ge,2),ce=t(d(F),2),L=d(ce),me=t(d(L),2),We=d(me,!0);o(me),o(L);var ve=t(L,2),pe=t(d(ve),2),qe=d(pe);{var Ke=a=>{var n=R();f(()=>_(n,`Repository: ${c(e()),m(()=>e().repo_name)??""}`)),u(a,n)},Qe=a=>{var n=Be(),j=$e(n);{var ne=x=>{var S=R();f(()=>_(S,`Organization: ${c(e()),m(()=>e().org_name)??""}`)),u(x,S)},er=x=>{var S=Be(),rr=$e(S);{var ar=y=>{var B=R();f(()=>_(B,`Enterprise: ${c(e()),m(()=>e().enterprise_name)??""}`)),u(y,B)},tr=y=>{var B=R("Unknown Entity");u(y,B)};E(rr,y=>{c(e()),m(()=>e().enterprise_name)?y(ar):y(tr,!1)},!0)}u(x,S)};E(j,x=>{c(e()),m(()=>e().org_name)?x(ne):x(er,!1)},!0)}u(a,n)};E(qe,a=>{c(e()),m(()=>e().repo_name)?a(Ke):a(Qe,!1)})}o(pe),o(ve),o(ce),o(F);var H=t(F,2),fe=t(d(H),2);b(fe),o(H);var W=t(H,2),xe=t(d(W),2),q=d(xe),ye=t(d(q),2);b(ye),o(q);var K=t(q,2),_e=t(d(K),2);b(_e),o(K);var Q=t(K,2),V=t(d(Q),2);f(()=>{r(h),Ge(()=>{})});var X=d(V);X.value=X.__value="linux";var he=t(X);he.value=he.__value="windows",o(V),o(Q);var ke=t(Q,2),Y=t(d(ke),2);f(()=>{r(k),Ge(()=>{})});var Z=d(Y);Z.value=Z.__value="amd64";var we=t(Z);we.value=we.__value="arm64",o(Y),o(ke),o(xe),o(W);var ee=t(W,2),Se=t(d(ee),2),re=d(Se),Re=t(d(re),2);b(Re),o(re);var ae=t(re,2),Ee=t(d(ae),2);b(Ee),o(ae);var Oe=t(ae,2),Je=t(d(Oe),2);b(Je),o(Oe),o(Se),o(ee);var te=t(ee,2),de=t(d(te),2),oe=d(de),Te=t(d(oe),2);b(Te),o(oe);var Ie=t(oe,2),Me=t(d(Ie),2);b(Me),o(Ie),o(de);var se=t(de,2),Ne=d(se),Ve=t(d(Ne),2);mr(Ve,{rows:4,placeholder:"{}",get value(){return r(g)},set value(a){s(g,a)},$$legacy:!0}),o(Ne),o(se);var Ae=t(se,2),Pe=d(Ae);b(Pe),nr(2),o(Ae),o(te);var Ue=t(te,2),De=d(Ue),ie=t(De,2),Xe=d(ie);{var Ye=a=>{var n=pr();u(a,n)},Ze=a=>{var n=R("Update Scale Set");u(a,n)};E(Xe,a=>{r(O)?a(Ye):a(Ze,!1)})}o(ie),o(Ue),o(C),o(p),f(()=>{_(Le,`Update Scale Set ${c(e()),m(()=>e().name)??""}`),_(We,(c(e()),m(()=>e().provider_name))),ie.disabled=r(O)}),v(fe,()=>r(T),a=>s(T,a)),v(ye,()=>r(I),a=>s(I,a)),v(_e,()=>r(M),a=>s(M,a)),ze(V,()=>r(h),a=>s(h,a)),ze(Y,()=>r(k),a=>s(k,a)),v(Re,()=>r(A),a=>s(A,a)),v(Ee,()=>r(N),a=>s(N,a)),v(Je,()=>r(P),a=>s(P,a)),v(Te,()=>r(U),a=>s(U,a)),v(Me,()=>r(D),a=>s(D,a)),br(Pe,()=>r(G),a=>s(G,a)),je("click",De,()=>$("close")),je("submit",C,gr(Fe)),u(l,p)},$$slots:{default:!0}}),lr()}export{Or as U}; diff --git a/webapp/assets/_app/immutable/chunks/CIBm3n2u.js b/webapp/assets/_app/immutable/chunks/CIBm3n2u.js new file mode 100644 index 00000000..ec528019 --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/CIBm3n2u.js @@ -0,0 +1 @@ +import"./DsnmJJEf.js";import{i as qe}from"./B3Pzt0F_.js";import{p as Fe,E as Ke,o as Ge,f as x,j as t,r,k as s,g as e,m,z as B,t as y,x as ue,u as l,v,n as T,s as i,e as be,c as u,D as He,d as Je}from"./D8EpLgQ1.js";import{p as ge,i as U}from"./5WA7h8uK.js";import{e as Qe,i as Ve}from"./u94nIB4-.js";import{r as me,b as ye,g as Xe}from"./CiE1LlKV.js";import{a as Ye,b as Ze}from"./C6k1Q4We.js";import{p as ea}from"./D4Caz1gY.js";import{e as xe}from"./BZiHL9L3.js";import{M as aa}from"./qB7B8uiS.js";var ta=x('

'),ra=x('
Owner:
'),oa=x('
'),sa=x(""),na=x(''),ia=x('

Leave empty to auto-generate a new secret

'),da=x('
Updating...
'),la=x('

Name:
Endpoint:
Current Credentials:
Current Pool Balancer:

Leave unchanged to keep current credentials

Round Robin distributes jobs evenly across pools, Pack fills pools in order

');function _a(fe,D){Fe(D,!1);let d=ge(D,"entity",8),w=ge(D,"entityType",8);const $=Ke();let C=m(!1),k=m(""),M=m([]),R=m(!1),f=m(""),_=m(""),h=m(""),b=m(!1);function _e(){if(w()==="repository"){const c=d();return`${c.owner}/${c.name}`}return d().name||""}function W(){return w().charAt(0).toUpperCase()+w().slice(1)}function he(){return w()==="repository"&&d().owner||""}async function ke(){try{i(R,!0),i(M,await Xe.listCredentials())}catch(c){i(k,xe(c))}finally{i(R,!1)}}function we(){i(f,d().credentials_name||""),i(_,d().pool_balancing_type||"roundrobin"),i(h,""),i(b,!1)}async function Ce(){try{i(C,!0),i(k,"");const c={};let E=!1;if(e(f)&&e(f)!==d().credentials_name&&(c.credentials_name=e(f),E=!0),e(_)&&e(_)!==d().pool_balancing_type&&(c.pool_balancer_type=e(_),E=!0),e(b)){if(!e(h).trim()){i(k,"Please enter a webhook secret or uncheck the option to change it");return}c.webhook_secret=e(h),E=!0}if(!E){$("close");return}$("submit",c)}catch(c){i(k,xe(c))}finally{i(C,!1)}}Ge(()=>{ke(),we()}),qe(),aa(fe,{$$events:{close:()=>$("close")},children:(c,E)=>{var j=la(),A=t(j),N=t(A),Ee=t(N);r(N);var Y=s(N,2),Se=t(Y,!0);r(Y),r(A);var z=s(A,2),Z=t(z);{var Pe=a=>{var o=ta(),n=t(o),p=t(n,!0);r(n),r(o),y(()=>v(p,e(k))),u(a,o)};U(Z,a=>{e(k)&&a(Pe)})}var I=s(Z,2),L=t(I),Ue=t(L);r(L);var ee=s(L,2),ae=t(ee);{var $e=a=>{var o=ra(),n=s(t(o),2),p=t(n,!0);r(n),r(o),y(S=>v(p,S),[()=>l(he)]),u(a,o)};U(ae,a=>{w()==="repository"&&a($e)})}var O=s(ae,2),te=s(t(O),2),Be=t(te,!0);r(te),r(O);var q=s(O,2),re=s(t(q),2),Te=t(re,!0);r(re),r(q);var F=s(q,2),oe=s(t(F),2),De=t(oe,!0);r(oe),r(F);var se=s(F,2),ne=s(t(se),2),Me=t(ne,!0);r(ne),r(se),r(ee),r(I);var K=s(I,2),G=t(K),Re=s(t(G),2);{var We=a=>{var o=oa();u(a,o)},je=a=>{var o=na();y(()=>{e(f),ue(()=>{e(M)})});var n=t(o);n.value=n.__value="";var p=s(n);Qe(p,1,()=>e(M),Ve,(S,g)=>{var P=sa(),Oe=t(P);r(P);var pe={};y(()=>{v(Oe,`${e(g),l(()=>e(g).name)??""} (${e(g),l(()=>e(g).endpoint?.name||"Unknown")??""})`),pe!==(pe=(e(g),l(()=>e(g).name)))&&(P.value=(P.__value=(e(g),l(()=>e(g).name)))??"")}),u(S,P)}),r(o),ye(o,()=>e(f),S=>i(f,S)),u(a,o)};U(Re,a=>{e(R)?a(We):a(je,!1)})}B(2),r(G);var H=s(G,2),J=s(t(H),2);y(()=>{e(_),ue(()=>{})});var Q=t(J);Q.value=Q.__value="roundrobin";var ie=s(Q);ie.value=ie.__value="pack",r(J),B(2),r(H);var de=s(H,2),V=t(de),le=t(V);me(le),B(2),r(V);var Ae=s(V,2);{var Ne=a=>{var o=ia(),n=s(t(o),2);me(n),B(2),r(o),y(()=>n.required=e(b)),Ze(n,()=>e(h),p=>i(h,p)),u(a,o)};U(Ae,a=>{e(b)&&a(Ne)})}r(de),r(K);var ce=s(K,2),ve=t(ce),X=s(ve,2),ze=t(X);{var Ie=a=>{var o=da();u(a,o)},Le=a=>{var o=He();y(n=>v(o,`Update ${n??""}`),[()=>l(W)]),u(a,o)};U(ze,a=>{e(C)?a(Ie):a(Le,!1)})}r(X),r(ce),r(z),r(j),y((a,o,n,p)=>{v(Ee,`Update ${a??""}`),v(Se,o),v(Ue,`${n??""} Information`),v(Be,(T(d()),l(()=>d().name))),v(Te,(T(d()),l(()=>d().endpoint?.name))),v(De,(T(d()),l(()=>d().credentials_name))),v(Me,(T(d()),l(()=>d().pool_balancing_type||"roundrobin"))),X.disabled=p},[()=>l(W),()=>l(_e),()=>l(W),()=>(e(C),e(b),e(h),l(()=>e(C)||e(b)&&!e(h).trim()))]),ye(J,()=>e(_),a=>i(_,a)),Ye(le,()=>e(b),a=>i(b,a)),be("click",ve,()=>$("close")),be("submit",z,ea(Ce)),u(c,j)},$$slots:{default:!0}}),Je()}export{_a as U}; diff --git a/webapp/assets/_app/immutable/chunks/CRD55Dyg.js b/webapp/assets/_app/immutable/chunks/CRD55Dyg.js new file mode 100644 index 00000000..0388dfa1 --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/CRD55Dyg.js @@ -0,0 +1 @@ +import"./DsnmJJEf.js";import{i as Lr}from"./B3Pzt0F_.js";import{p as qr,E as Gr,m as s,o as Jr,f as m,k as r,j as o,g as e,r as a,t as v,e as M,c as b,v as T,b as Nr,z as vr,x as W,u as p,s as d,D as je,d as Vr}from"./D8EpLgQ1.js";import{p as pr,i as z}from"./5WA7h8uK.js";import{e as Ae,i as Oe}from"./u94nIB4-.js";import{s as $e,r as h,b as Q,g as C,c as Fr}from"./CiE1LlKV.js";import{b as E,a as Kr}from"./C6k1Q4We.js";import{p as Ur}from"./D4Caz1gY.js";import{M as Wr}from"./qB7B8uiS.js";import{e as He}from"./BZiHL9L3.js";import{J as Qr}from"./DZblzgqm.js";var Xr=m('

'),Yr=m('
'),Zr=m(""),et=m(''),rt=m('
'),tt=m(""),at=m(''),ot=m(' '),dt=m('
'),it=m('

Entity & Provider Configuration

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
',1),st=m('
Creating...
'),lt=m('

Create New Pool

Entity Level *
');function ht(mr,X){qr(X,!1);const Y=Gr();let Be=pr(X,"initialEntityType",8,""),fr=pr(X,"initialEntityId",8,""),G=s(!1),P=s(""),n=s(Be()),I=s([]),Z=s([]),ee=s(!1),re=s(!1),k=s(fr()),S=s(""),B=s(""),D=s(""),te=s(void 0),ae=s(void 0),oe=s(void 0),de=s(100),ie=s("garm"),J=s("linux"),N=s("amd64"),se=s(""),le=s(!0),_=s([]),j=s(""),L=s("{}");async function yr(){try{d(re,!0),d(Z,await C.listProviders())}catch(l){d(P,He(l))}finally{d(re,!1)}}async function De(){if(e(n))try{switch(d(ee,!0),d(I,[]),e(n)){case"repository":d(I,await C.listRepositories());break;case"organization":d(I,await C.listOrganizations());break;case"enterprise":d(I,await C.listEnterprises());break}}catch(l){d(P,He(l))}finally{d(ee,!1)}}function ne(l){e(n)!==l&&(d(n,l),d(k,""),De())}function Le(){e(j).trim()&&!e(_).includes(e(j).trim())&&(d(_,[...e(_),e(j).trim()]),d(j,""))}function xr(l){d(_,e(_).filter((A,w)=>w!==l))}function hr(l){l.key==="Enter"&&(l.preventDefault(),Le())}async function kr(){if(!e(n)||!e(k)||!e(S)||!e(B)||!e(D)){d(P,"Please fill in all required fields");return}try{d(G,!0),d(P,"");let l={};if(e(L).trim())try{l=JSON.parse(e(L))}catch{throw new Error("Invalid JSON in extra specs")}const A={provider_name:e(S),image:e(B),flavor:e(D),max_runners:e(te)||10,min_idle_runners:e(ae)||0,runner_bootstrap_timeout:e(oe)||20,priority:e(de),runner_prefix:e(ie),os_type:e(J),os_arch:e(N),"github-runner-group":e(se)||void 0,enabled:e(le),tags:e(_),extra_specs:e(L).trim()?l:void 0};let w;switch(e(n)){case"repository":w=await C.createRepositoryPool(e(k),A);break;case"organization":w=await C.createOrganizationPool(e(k),A);break;case"enterprise":w=await C.createEnterprisePool(e(k),A);break;default:throw new Error("Invalid entity level")}Y("submit",A)}catch(l){d(P,He(l))}finally{d(G,!1)}}Jr(()=>{yr(),Be()&&De()}),Lr(),Wr(mr,{$$events:{close:()=>Y("close")},children:(l,A)=>{var w=lt(),V=r(o(w),2),qe=o(V);{var _r=c=>{var y=Xr(),O=o(y),F=o(O,!0);a(O),a(y),v(()=>T(F,e(P))),b(c,y)};z(qe,c=>{e(P)&&c(_r)})}var ue=r(qe,2),Ge=r(o(ue),2),be=o(Ge),ce=r(be,2),Je=r(ce,2);a(Ge),a(ue);var Ne=r(ue,2);{var wr=c=>{var y=it(),O=Nr(y),F=r(o(O),2),ve=o(F),pe=o(ve),Rr=o(pe);vr(),a(pe);var Tr=r(pe,2);{var zr=t=>{var u=Yr();b(t,u)},Cr=t=>{var u=et();v(()=>{e(k),W(()=>{e(n),e(I)})});var f=o(u),$=o(f);a(f),f.value=f.__value="";var R=r(f);Ae(R,1,()=>e(I),Oe,(g,i)=>{var x=Zr(),U=o(x);{var Br=H=>{var q=je();v(()=>T(q,`${e(i),p(()=>e(i).owner)??""}/${e(i),p(()=>e(i).name)??""} (${e(i),p(()=>e(i).endpoint?.name)??""})`)),b(H,q)},Dr=H=>{var q=je();v(()=>T(q,`${e(i),p(()=>e(i).name)??""} (${e(i),p(()=>e(i).endpoint?.name)??""})`)),b(H,q)};z(U,H=>{e(n)==="repository"?H(Br):H(Dr,!1)})}a(x);var gr={};v(()=>{gr!==(gr=(e(i),p(()=>e(i).id)))&&(x.value=(x.__value=(e(i),p(()=>e(i).id)))??"")}),b(g,x)}),a(u),v(()=>T($,`Select a ${e(n)??""}`)),Q(u,()=>e(k),g=>d(k,g)),b(t,u)};z(Tr,t=>{e(ee)?t(zr):t(Cr,!1)})}a(ve);var Ke=r(ve,2),Ir=r(o(Ke),2);{var Sr=t=>{var u=rt();b(t,u)},jr=t=>{var u=at();v(()=>{e(S),W(()=>{e(Z)})});var f=o(u);f.value=f.__value="";var $=r(f);Ae($,1,()=>e(Z),Oe,(R,g)=>{var i=tt(),x=o(i,!0);a(i);var U={};v(()=>{T(x,(e(g),p(()=>e(g).name))),U!==(U=(e(g),p(()=>e(g).name)))&&(i.value=(i.__value=(e(g),p(()=>e(g).name)))??"")}),b(R,i)}),a(u),Q(u,()=>e(S),R=>d(S,R)),b(t,u)};z(Ir,t=>{e(re)?t(Sr):t(jr,!1)})}a(Ke),a(F),a(O);var me=r(O,2),Ue=r(o(me),2),fe=o(Ue),We=r(o(fe),2);h(We),a(fe);var ye=r(fe,2),Qe=r(o(ye),2);h(Qe),a(ye);var xe=r(ye,2),he=r(o(xe),2);v(()=>{e(J),W(()=>{})});var ke=o(he);ke.value=ke.__value="linux";var Xe=r(ke);Xe.value=Xe.__value="windows",a(he),a(xe);var Ye=r(xe,2),_e=r(o(Ye),2);v(()=>{e(N),W(()=>{})});var we=o(_e);we.value=we.__value="amd64";var Ze=r(we);Ze.value=Ze.__value="arm64",a(_e),a(Ye),a(Ue),a(me);var Ee=r(me,2),er=r(o(Ee),2),Me=o(er),rr=r(o(Me),2);h(rr),a(Me);var Pe=r(Me,2),tr=r(o(Pe),2);h(tr),a(Pe);var ar=r(Pe,2),or=r(o(ar),2);h(or),a(ar),a(er),a(Ee);var dr=r(Ee,2),Re=r(o(dr),2),Te=o(Re),ir=r(o(Te),2);h(ir),a(Te);var ze=r(Te,2),sr=r(o(ze),2);h(sr),a(ze);var lr=r(ze,2),nr=r(o(lr),2);h(nr),a(lr),a(Re);var Ce=r(Re,2),ur=r(o(Ce),2),Ie=o(ur),K=o(Ie);h(K);var Ar=r(K,2);a(Ie);var Or=r(Ie,2);{var $r=t=>{var u=dt();Ae(u,5,()=>e(_),Oe,(f,$,R)=>{var g=ot(),i=o(g),x=r(i);a(g),v(()=>{T(i,`${e($)??""} `),Fr(x,"aria-label",`Remove tag ${e($)}`)}),M("click",x,()=>xr(R)),b(f,g)}),a(u),b(t,u)};z(Or,t=>{e(_),p(()=>e(_).length>0)&&t($r)})}a(ur),a(Ce);var Se=r(Ce,2),Hr=r(o(Se),2);Qr(Hr,{rows:4,placeholder:"{}",get value(){return e(L)},set value(t){d(L,t)},$$legacy:!0}),a(Se);var br=r(Se,2),cr=o(br);h(cr),vr(2),a(br),a(dr),v(t=>T(Rr,`${t??""} `),[()=>(e(n),p(()=>e(n).charAt(0).toUpperCase()+e(n).slice(1)))]),E(We,()=>e(B),t=>d(B,t)),E(Qe,()=>e(D),t=>d(D,t)),Q(he,()=>e(J),t=>d(J,t)),Q(_e,()=>e(N),t=>d(N,t)),E(rr,()=>e(ae),t=>d(ae,t)),E(tr,()=>e(te),t=>d(te,t)),E(or,()=>e(oe),t=>d(oe,t)),E(ir,()=>e(ie),t=>d(ie,t)),E(sr,()=>e(de),t=>d(de,t)),E(nr,()=>e(se),t=>d(se,t)),E(K,()=>e(j),t=>d(j,t)),M("keydown",K,hr),M("click",Ar,Le),Kr(cr,()=>e(le),t=>d(le,t)),b(c,y)};z(Ne,c=>{e(n)&&c(wr)})}var Ve=r(Ne,2),Fe=o(Ve),ge=r(Fe,2),Er=o(ge);{var Mr=c=>{var y=st();b(c,y)},Pr=c=>{var y=je("Create Pool");b(c,y)};z(Er,c=>{e(G)?c(Mr):c(Pr,!1)})}a(ge),a(Ve),a(V),a(w),v(()=>{$e(be,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="repository"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),$e(ce,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="organization"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),$e(Je,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="enterprise"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),ge.disabled=e(G)||!e(n)||!e(k)||!e(S)||!e(B)||!e(D)}),M("click",be,()=>ne("repository")),M("click",ce,()=>ne("organization")),M("click",Je,()=>ne("enterprise")),M("click",Fe,()=>Y("close")),M("submit",V,Ur(kr)),b(l,w)},$$slots:{default:!0}}),Vr()}export{ht as C}; diff --git a/webapp/assets/_app/immutable/chunks/CRhkqW2i.js b/webapp/assets/_app/immutable/chunks/CRhkqW2i.js new file mode 100644 index 00000000..57d21a05 --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/CRhkqW2i.js @@ -0,0 +1 @@ +const s=globalThis.__sveltekit_xtz33p?.base??"/ui",t=globalThis.__sveltekit_xtz33p?.assets??s;export{t as a,s as b}; diff --git a/webapp/assets/_app/immutable/chunks/CTf6mQoE.js b/webapp/assets/_app/immutable/chunks/CTf6mQoE.js deleted file mode 100644 index 15ee7bf7..00000000 --- a/webapp/assets/_app/immutable/chunks/CTf6mQoE.js +++ /dev/null @@ -1,3 +0,0 @@ -import{I as Ee,o as De,aR as T,g as x,s as P,bf as yt,aS as Be}from"./D8EpLgQ1.js";import{a as wt,b as L}from"./CoIRRsD9.js";class le{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Se{constructor(t,n){this.status=t,this.location=n}}class Re extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function vt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function bt(e){return e.split("%25").map(decodeURI).join("%25")}function kt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function me({href:e}){return e.split("#")[0]}function At(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(i,o){if(o==="get"||o==="getAll"||o==="has")return f=>(n(f),i[o](f));t();const c=Reflect.get(i,o);return typeof c=="function"?c.bind(i):c}}),enumerable:!0,configurable:!0});const s=["href","pathname","search","toString","toJSON"];r&&s.push("hash");for(const i of s)Object.defineProperty(a,i,{get(){return t(),e[i]},enumerable:!0,configurable:!0});return a}function Et(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}function St(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&G.delete(Ie(e)),Rt(e,t));const G=new Map;function It(e,t){const n=Ie(e,t),r=document.querySelector(n);if(r?.textContent){let{body:a,...s}=JSON.parse(r.textContent);const i=r.getAttribute("data-ttl");return i&&G.set(n,{body:a,init:s,ttl:1e3*Number(i)}),r.getAttribute("data-b64")!==null&&(a=St(a)),Promise.resolve(new Response(a,s))}return window.fetch(e,t)}function Ut(e,t,n){if(G.size>0){const r=Ie(e,n),a=G.get(r);if(a){if(performance.now(){const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const i=r.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return _e(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return _e(String.fromCharCode(...c.slice(2).split("-").map(_=>parseInt(_,16))));const d=Lt.exec(c),[,h,u,l,p]=d;return t.push({name:l,matcher:p,optional:!!h,rest:!!u,chained:u?f===1&&i[0]==="":!1}),u?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return _e(c)}).join("")}).join("")}/?$`),params:t}}function xt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Pt(e){return e.slice(1).split("/").filter(xt)}function Ct(e,t,n){const r={},a=e.slice(1),s=a.filter(o=>o!==void 0);let i=0;for(let o=0;od).join("/"),i=0),f===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](f)){r[c.name]=f;const d=t[o+1],h=a[o+1];d&&!d.rest&&d.optional&&h&&c.chained&&(i=0),!d&&!h&&Object.keys(r).length===s.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return r}function _e(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Ot({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[c,f,d]])=>{const{pattern:h,params:u}=Tt(o),l={id:o,exec:p=>{const _=h.exec(p);if(_)return Ct(_,u,r)},errors:[1,...d||[]].map(p=>e[p]),layouts:[0,...f||[]].map(i),leaf:s(c)};return l.errors.length=l.layouts.length=Math.max(l.errors.length,l.layouts.length),l});function s(o){const c=o<0;return c&&(o=~o),[c,e[o]]}function i(o){return o===void 0?o:[a.has(o),e[o]]}}function ze(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Fe(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const Nt="1755334486454",Xe="sveltekit:snapshot",Ze="sveltekit:scroll",Qe="sveltekit:states",jt="sveltekit:pageurl",F="sveltekit:history",Y="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Z=location.origin;function Ue(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function fe(){return{x:pageXOffset,y:pageYOffset}}function B(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Ve={...j,"":j.hover};function et(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function tt(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=et(e)}}function ve(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,s=!r||!!a||ue(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),i=r?.origin===Z&&e.hasAttribute("download");return{url:r,external:s,target:a,download:i}}function te(e){let t=null,n=null,r=null,a=null,s=null,i=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=B(o,"preload-code")),a===null&&(a=B(o,"preload-data")),t===null&&(t=B(o,"keepfocus")),n===null&&(n=B(o,"noscroll")),s===null&&(s=B(o,"reload")),i===null&&(i=B(o,"replacestate")),o=et(o);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Ve[r??"off"],preload_data:Ve[a??"off"],keepfocus:c(t),noscroll:c(n),reload:c(s),replace_state:c(i)}}function qe(e){const t=Ee(e);let n=!0;function r(){n=!0,t.update(i=>i)}function a(i){n=!1,t.set(i)}function s(i){let o;return t.subscribe(c=>{(o===void 0||n&&c!==o)&&i(o=c)})}return{notify:r,set:a,subscribe:s}}const nt={v:()=>{}};function $t(){const{set:e,subscribe:t}=Ee(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${wt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const i=(await a.json()).version!==Nt;return i&&(e(!0),nt.v(),clearTimeout(n)),i}catch{return!1}}return{subscribe:t,check:r}}function ue(e,t,n){return e.origin!==Z||!e.pathname.startsWith(t)?!0:n?!(e.pathname===t+"/"||e.pathname===t+"/index.html"||e.protocol==="file:"&&e.pathname.replace(/\/[^/]+\.html?$/,"")===t):!1}function kn(e){}function Me(e){const t=Bt(e),n=new ArrayBuffer(t.length),r=new DataView(n);for(let a=0;a>16),t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,t+=String.fromCharCode(n)):r===18&&(n>>=2,t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255)),t}const Ft=-1,Vt=-2,qt=-3,Mt=-4,Gt=-5,Ht=-6;function Kt(e,t){if(typeof e=="number")return a(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);function a(s,i=!1){if(s===Ft)return;if(s===qt)return NaN;if(s===Mt)return 1/0;if(s===Gt)return-1/0;if(s===Ht)return-0;if(i)throw new Error("Invalid input");if(s in r)return r[s];const o=n[s];if(!o||typeof o!="object")r[s]=o;else if(Array.isArray(o))if(typeof o[0]=="string"){const c=o[0],f=t?.[c];if(f)return r[s]=f(a(o[1]));switch(c){case"Date":r[s]=new Date(o[1]);break;case"Set":const d=new Set;r[s]=d;for(let l=1;lt!=null)}const Jt="x-sveltekit-invalidated",zt="x-sveltekit-trailing-slash";function ne(e){return e instanceof le||e instanceof Re?e.status:500}function Xt(e){return e instanceof Re?e.text:"Internal Error"}let E,J,ye;const Zt=De.toString().includes("$$")||/function \w+\(\) \{\}/.test(De.toString());Zt?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},J={current:null},ye={current:!1}):(E=new class{#e=T({});get data(){return x(this.#e)}set data(t){P(this.#e,t)}#t=T(null);get form(){return x(this.#t)}set form(t){P(this.#t,t)}#n=T(null);get error(){return x(this.#n)}set error(t){P(this.#n,t)}#r=T({});get params(){return x(this.#r)}set params(t){P(this.#r,t)}#a=T({id:null});get route(){return x(this.#a)}set route(t){P(this.#a,t)}#o=T({});get state(){return x(this.#o)}set state(t){P(this.#o,t)}#s=T(-1);get status(){return x(this.#s)}set status(t){P(this.#s,t)}#i=T(new URL("https://example.com"));get url(){return x(this.#i)}set url(t){P(this.#i,t)}},J=new class{#e=T(null);get current(){return x(this.#e)}set current(t){P(this.#e,t)}},ye=new class{#e=T(!1);get current(){return x(this.#e)}set current(t){P(this.#e,t)}},nt.v=()=>ye.current=!0);function Qt(e){Object.assign(E,e)}const en="/__data.json",tn=".html__data.json";function nn(e){return e.endsWith(".html")?e.replace(/\.html$/,tn):e.replace(/\/$/,"")+en}const{tick:rn}=yt,an=new Set(["icon","shortcut icon","apple-touch-icon"]),D=ze(Ze)??{},z=ze(Xe)??{},N={url:qe({}),page:qe({}),navigating:Ee(null),updated:$t()};function Le(e){D[e]=fe()}function on(e,t){let n=e+1;for(;D[n];)delete D[n],n+=1;for(n=t+1;z[n];)delete z[n],n+=1}function q(e){return location.href=e.href,new Promise(()=>{})}async function at(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(L||"/");e&&await e.update()}}function Ge(){}let Te,be,re,C,ke,v;globalThis.__sveltekit_13hoftk.data;const ae=[],oe=[];let O=null;const ee=new Map,ot=new Set,sn=new Set,H=new Set;let w={branch:[],error:null,url:null},xe=!1,se=!1,He=!0,X=!1,M=!1,st=!1,Pe=!1,it,k,I,$;const K=new Set,Ke=new Map;async function Rn(e,t,n){document.URL!==location.href&&(location.href=location.href),v=e,await e.hooks.init?.(),Te=Ot(e),C=document.documentElement,ke=t,be=e.nodes[0],re=e.nodes[1],be(),re(),k=history.state?.[F],I=history.state?.[Y],k||(k=I=Date.now(),history.replaceState({...history.state,[F]:k,[Y]:I},""));const r=D[k];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await _n(ke,n)):(await W({type:"enter",url:Ue(v.hash?wn(new URL(location.href)):location.href),replace_state:!0}),a()),mn()}function cn(){ae.length=0,Pe=!1}function ct(e){oe.some(t=>t?.snapshot)&&(z[e]=oe.map(t=>t?.snapshot?.capture()))}function lt(e){z[e]?.forEach((t,n)=>{oe[n]?.snapshot?.restore(t)})}function We(){Le(k),Fe(Ze,D),ct(I),Fe(Xe,z)}async function Ce(e,t,n,r){let a;const s=await W({type:"goto",url:Ue(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(Pe=!0,a=[...Ke.keys()]),t.invalidate&&t.invalidate.forEach(gn)}});return t.invalidateAll&&Be().then(Be).then(()=>{Ke.forEach(({resource:i},o)=>{a?.includes(o)&&i.refresh?.()})}),s}async function ln(e){if(e.id!==O?.id){const t={};K.add(t),O={id:e.id,token:t,promise:dt({...e,preload:t}).then(n=>(K.delete(t),n.type==="loaded"&&n.state.error&&(O=null),n))}}return O.promise}async function we(e){const t=(await he(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}function ft(e,t,n){w=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(E,e.props.page),it=new v.root({target:t,props:{...e.props,stores:N,components:oe},hydrate:n,sync:!1}),lt(I),n){const a={from:null,to:{params:w.params,route:{id:w.route?.id??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};H.forEach(s=>s(a))}se=!0}function ie({url:e,params:t,branch:n,status:r,error:a,route:s,form:i}){let o="never";if(L&&(e.pathname===L||e.pathname===L+"/"))o="always";else for(const l of n)l?.slash!==void 0&&(o=l.slash);e.pathname=vt(e.pathname,o),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:s},props:{constructors:Yt(n).map(l=>l.node.component),page:$e(E)}};i!==void 0&&(c.props.form=i);let f={},d=!E,h=0;for(let l=0;l(o&&(c.route=!0),u[l])}),params:new Proxy(r,{get:(u,l)=>(o&&c.params.add(l),u[l])}),data:s?.data??null,url:At(n,()=>{o&&(c.url=!0)},u=>{o&&c.search_params.add(u)},v.hash),async fetch(u,l){u instanceof Request&&(l={body:u.method==="GET"||u.method==="HEAD"?void 0:await u.blob(),cache:u.cache,credentials:u.credentials,headers:[...u.headers].length>0?u?.headers:void 0,integrity:u.integrity,keepalive:u.keepalive,method:u.method,mode:u.mode,redirect:u.redirect,referrer:u.referrer,referrerPolicy:u.referrerPolicy,signal:u.signal,...l});const{resolved:p,promise:_}=ut(u,l,n);return o&&d(p.href),_},setHeaders:()=>{},depends:d,parent(){return o&&(c.parent=!0),t()},untrack(u){o=!1;try{return u()}finally{o=!0}}};i=await f.universal.load.call(null,h)??null}return{node:f,loader:e,server:s,universal:f.universal?.load?{type:"data",data:i,uses:c}:null,data:i??s?.data??null,slash:f.universal?.trailingSlash??s?.slash}}function ut(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const s=se?Ut(r,a.href,t):It(r,t);return{resolved:a,promise:s}}function Ye(e,t,n,r,a,s){if(Pe)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const i of a.search_params)if(r.has(i))return!0;for(const i of a.params)if(s[i]!==w.params[i])return!0;for(const i of a.dependencies)if(ae.some(o=>o(new URL(i))))return!0;return!1}function Ne(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function fn(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),s=t.searchParams.getAll(r);a.every(i=>s.includes(i))&&s.every(i=>a.includes(i))&&n.delete(r)}return n}function Je({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:$e(E),constructors:[]}}}async function dt({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if(O?.id===e)return K.delete(O.token),O.promise;const{errors:i,layouts:o,leaf:c}=a,f=[...o,c];i.forEach(g=>g?.().catch(()=>{})),f.forEach(g=>g?.[1]().catch(()=>{}));let d=null;const h=w.url?e!==ce(w.url):!1,u=w.route?a.id!==w.route.id:!1,l=fn(w.url,n);let p=!1;const _=f.map((g,y)=>{const b=w.branch[y],A=!!g?.[0]&&(b?.loader!==g[1]||Ye(p,u,h,l,b.server?.uses,r));return A&&(p=!0),A});if(_.some(Boolean)){try{d=await gt(n,_)}catch(g){const y=await V(g,{url:n,params:r,route:{id:e}});return K.has(s)?Je({error:y,url:n,params:r,route:a}):de({status:ne(g),error:y,url:n,route:a})}if(d.type==="redirect")return d}const m=d?.nodes;let R=!1;const S=f.map(async(g,y)=>{if(!g)return;const b=w.branch[y],A=m?.[y];if((!A||A.type==="skip")&&g[1]===b?.loader&&!Ye(R,u,h,l,b.universal?.uses,r))return b;if(R=!0,A?.type==="error")throw A;return Oe({loader:g[1],url:n,params:r,route:a,parent:async()=>{const pe={};for(let ge=0;ge{});const U=[];for(let g=0;gPromise.resolve({}),server_data_node:Ne(s)}),c={node:await re(),loader:re,universal:null,server:null,data:null};return ie({url:n,params:a,branch:[o,c],status:e,error:t,route:null})}catch(o){if(o instanceof Se)return Ce(new URL(o.location,location.href),{},0);throw o}}async function dn(e){const t=e.href;if(ee.has(t))return ee.get(t);let n;try{const r=(async()=>{let a=await v.hooks.reroute({url:new URL(e),fetch:async(s,i)=>ut(s,i,e).promise})??e;if(typeof a=="string"){const s=new URL(e);v.hash?s.hash=a:s.pathname=a,a=s}return a})();ee.set(t,r),n=await r}catch{ee.delete(t);return}return n}async function he(e,t){if(e&&!ue(e,L,v.hash)){const n=await dn(e);if(!n)return;const r=hn(n);for(const a of Te){const s=a.exec(r);if(s)return{id:ce(e),invalidating:t,route:a,params:kt(s),url:e}}}}function hn(e){return bt(v.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(L.length))||"/"}function ce(e){return(v.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ht({url:e,type:t,intent:n,delta:r}){let a=!1;const s=je(w,n,e,t);r!==void 0&&(s.navigation.delta=r);const i={...s.navigation,cancel:()=>{a=!0,s.reject(new Error("navigation cancelled"))}};return X||ot.forEach(o=>o(i)),a?null:s}async function W({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:c={},accept:f=Ge,block:d=Ge}){const h=$;$=c;const u=await he(t,!1),l=e==="enter"?je(w,u,t,e):ht({url:t,type:e,delta:n?.delta,intent:u});if(!l){d(),$===c&&($=h);return}const p=k,_=I;f(),X=!0,se&&l.navigation.type!=="enter"&&N.navigating.set(J.current=l.navigation);let m=u&&await dt(u);if(!m){if(ue(t,L,v.hash))return await q(t);m=await pt(t,{id:null},await V(new Re(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404)}if(t=u?.url||t,$!==c)return l.reject(new Error("navigation aborted")),!1;if(m.type==="redirect")if(o>=20)m=await de({status:500,error:await V(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}});else return await Ce(new URL(m.location,t).href,{},o+1,c),!1;else m.props.page.status>=400&&await N.updated.check()&&(await at(),await q(t));if(cn(),Le(p),ct(_),m.props.page.url.pathname!==t.pathname&&(t.pathname=m.props.page.url.pathname),i=n?n.state:i,!n){const g=s?0:1,y={[F]:k+=g,[Y]:I+=g,[Qe]:i};(s?history.replaceState:history.pushState).call(history,y,"",t),s||on(k,I)}if(O=null,m.props.page.state=i,se){const g=(await Promise.all(Array.from(sn,y=>y(l.navigation)))).filter(y=>typeof y=="function");if(g.length>0){let y=function(){g.forEach(b=>{H.delete(b)})};g.push(y),g.forEach(b=>{H.add(b)})}w=m.state,m.props.page&&(m.props.page.url=t),it.$set(m.props),Qt(m.props.page),st=!0}else ft(m,ke,!1);const{activeElement:R}=document;await rn();const S=n?n.scroll:a?fe():null;if(He){const g=t.hash&&document.getElementById(_t(t));S?scrollTo(S.x,S.y):g?g.scrollIntoView():scrollTo(0,0)}const U=document.activeElement!==R&&document.activeElement!==document.body;!r&&!U&&yn(t),He=!0,m.props.page&&Object.assign(E,m.props.page),X=!1,e==="popstate"&<(I),l.fulfil(void 0),H.forEach(g=>g(l.navigation)),N.navigating.set(J.current=null)}async function pt(e,t,n,r){return e.origin===Z&&e.pathname===location.pathname&&!xe?await de({status:r,error:n,url:e,route:t}):await q(e)}function pn(){let e,t,n;C.addEventListener("mousemove",o=>{const c=o.target;clearTimeout(e),e=setTimeout(()=>{s(c,j.hover)},20)});function r(o){o.defaultPrevented||s(o.composedPath()[0],j.tap)}C.addEventListener("mousedown",r),C.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const c of o)c.isIntersecting&&(we(new URL(c.target.href)),a.unobserve(c.target))},{threshold:0});async function s(o,c){const f=tt(o,C),d=f===t&&c>=n;if(!f||d)return;const{url:h,external:u,download:l}=ve(f,L,v.hash);if(u||l)return;const p=te(f),_=h&&ce(w.url)===ce(h);if(!(p.reload||_))if(c<=p.preload_data){t=f,n=j.tap;const m=await he(h,!1);if(!m)return;ln(m)}else c<=p.preload_code&&(t=f,n=c,we(h))}function i(){a.disconnect();for(const o of C.querySelectorAll("a")){const{url:c,external:f,download:d}=ve(o,L,v.hash);if(f||d)continue;const h=te(o);h.reload||(h.preload_code===j.viewport&&a.observe(o),h.preload_code===j.eager&&we(c))}}H.add(i),i()}function V(e,t){if(e instanceof le)return e.body;const n=ne(e),r=Xt(e);return v.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function In(e,t={}){return e=new URL(Ue(e)),e.origin!==Z?Promise.reject(new Error("goto: invalid URL")):Ce(e,t,0)}function gn(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function mn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(We(),!X){const r=je(w,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};ot.forEach(s=>s(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&We()}),navigator.connection?.saveData||pn(),C.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=tt(t.composedPath()[0],C);if(!n)return;const{url:r,external:a,target:s,download:i}=ve(n,L,v.hash);if(!r)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const o=te(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||i)return;const[f,d]=(v.hash?r.hash.replace(/^#/,""):r.href).split("#"),h=f===me(location);if(a||o.reload&&(!h||!d)){ht({url:r,type:"link"})?X=!0:t.preventDefault();return}if(d!==void 0&&h){const[,u]=w.url.href.split("#");if(u===d){if(t.preventDefault(),d===""||d==="top"&&n.ownerDocument.getElementById("top")===null)window.scrollTo({top:0});else{const l=n.ownerDocument.getElementById(decodeURIComponent(d));l&&(l.scrollIntoView(),l.focus())}return}if(M=!0,Le(k),e(r),!o.replace_state)return;M=!1}t.preventDefault(),await new Promise(u=>{requestAnimationFrame(()=>{setTimeout(u,0)}),setTimeout(u,100)}),await W({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href})}),C.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const i=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(ue(i,L,!1))return;const o=t.target,c=te(o);if(c.reload)return;t.preventDefault(),t.stopPropagation();const f=new FormData(o),d=r?.getAttribute("name");d&&f.append(d,r?.getAttribute("value")??""),i.search=new URLSearchParams(f).toString(),W({type:"form",url:i,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??i.href===location.href})}),addEventListener("popstate",async t=>{if(!Ae){if(t.state?.[F]){const n=t.state[F];if($={},n===k)return;const r=D[n],a=t.state[Qe]??{},s=new URL(t.state[jt]??location.href),i=t.state[Y],o=w.url?me(location)===me(w.url):!1;if(i===I&&(st||o)){a!==E.state&&(E.state=a),e(s),D[k]=fe(),r&&scrollTo(r.x,r.y),k=n;return}const f=n-k;await W({type:"popstate",url:s,popped:{state:a,scroll:r,delta:f},accept:()=>{k=n,I=i},block:()=>{history.go(-f)},nav_token:$})}else if(!M){const n=new URL(location.href);e(n),v.hash&&location.reload()}}}),addEventListener("hashchange",()=>{M&&(M=!1,history.replaceState({...history.state,[F]:++k,[Y]:I},"",location.href))});for(const t of document.querySelectorAll("link"))an.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&N.navigating.set(J.current=null)});function e(t){w.url=E.url=t,N.page.set($e(E)),N.page.notify()}}async function _n(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:c}){xe=!0;const f=new URL(location.href);let d;({params:a={},route:s={id:null}}=await he(f,!1)||{}),d=Te.find(({id:l})=>l===s.id);let h,u=!0;try{const l=r.map(async(_,m)=>{const R=o[m];return R?.uses&&(R.uses=mt(R.uses)),Oe({loader:v.nodes[_],url:f,params:a,route:s,parent:async()=>{const S={};for(let U=0;Us?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let s;throw a.headers.get("content-type")?.includes("application/json")?s=await a.json():a.status===404?s="Not Found":a.status===500&&(s="Internal Error"),new le(a.status,s)}return new Promise(async s=>{const i=new Map,o=a.body.getReader(),c=new TextDecoder;function f(h){return Kt(h,{...v.decoders,Promise:u=>new Promise((l,p)=>{i.set(u,{fulfil:l,reject:p})})})}let d="";for(;;){const{done:h,value:u}=await o.read();if(h&&!d)break;for(d+=!u&&d?` -`:c.decode(u,{stream:!0});;){const l=d.indexOf(` -`);if(l===-1)break;const p=JSON.parse(d.slice(0,l));if(d=d.slice(l+1),p.type==="redirect")return s(p);if(p.type==="data")p.nodes?.forEach(_=>{_?.type==="data"&&(_.uses=mt(_.uses),_.data=f(_.data))}),s(p);else if(p.type==="chunk"){const{id:_,data:m,error:R}=p,S=i.get(_);i.delete(_),R?S.reject(f(R)):S.fulfil(f(m))}}}})}function mt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Ae=!1;function yn(e){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const n=_t(e);if(n&&document.getElementById(n)){const{x:a,y:s}=fe();setTimeout(()=>{const i=history.state;Ae=!0,location.replace(`#${n}`),v.hash&&location.replace(e.hash),history.replaceState(i,"",e.hash),scrollTo(a,s),Ae=!1})}else{const a=document.body,s=a.getAttribute("tabindex");a.tabIndex=-1,a.focus({preventScroll:!0,focusVisible:!1}),s!==null?a.setAttribute("tabindex",s):a.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const a=[];for(let s=0;s{if(r.rangeCount===a.length){for(let s=0;s{a=c,s=f});return i.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n},willUnload:!t,type:r,complete:i},fulfil:a,reject:s}}function $e(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function wn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function _t(e){let t;if(v.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Rn as a,In as g,kn as l,E as p,N as s}; diff --git a/webapp/assets/_app/immutable/chunks/CclkODgu.js b/webapp/assets/_app/immutable/chunks/CclkODgu.js deleted file mode 100644 index f3c6b3c0..00000000 --- a/webapp/assets/_app/immutable/chunks/CclkODgu.js +++ /dev/null @@ -1 +0,0 @@ -import"./DsnmJJEf.js";import{i as Oe}from"./B3Pzt0F_.js";import{p as qe,E as Ie,o as Ke,f as x,j as t,r,k as o,g as e,m,z as B,t as y,x as ue,u as c,v,n as T,s as i,e as be,c as u,D as Ge,d as He}from"./D8EpLgQ1.js";import{p as ge,i as $}from"./5WA7h8uK.js";import{e as Je,i as Qe}from"./u94nIB4-.js";import{r as me,b as ye,g as Ve}from"./CiE1LlKV.js";import{a as Xe,b as Ye}from"./C6k1Q4We.js";import{p as Ze}from"./D4Caz1gY.js";import{M as ea}from"./qB7B8uiS.js";var aa=x('

'),ta=x('
Owner:
'),ra=x('
'),sa=x(""),oa=x(''),na=x('

Leave empty to auto-generate a new secret

'),ia=x('
Updating...
'),da=x('

Name:
Endpoint:
Current Credentials:
Current Pool Balancer:

Leave unchanged to keep current credentials

Round Robin distributes jobs evenly across pools, Pack fills pools in order

');function xa(xe,D){qe(D,!1);let d=ge(D,"entity",8),k=ge(D,"entityType",8);const P=Ie();let C=m(!1),w=m(""),M=m([]),R=m(!1),f=m(""),_=m(""),h=m(""),b=m(!1);function fe(){if(k()==="repository"){const l=d();return`${l.owner}/${l.name}`}return d().name||""}function W(){return k().charAt(0).toUpperCase()+k().slice(1)}function _e(){return k()==="repository"&&d().owner||""}async function he(){try{i(R,!0),i(M,await Ve.listCredentials())}catch(l){i(w,l instanceof Error?l.message:"Failed to load credentials")}finally{i(R,!1)}}function ke(){i(f,d().credentials_name||""),i(_,d().pool_balancing_type||"roundrobin"),i(h,""),i(b,!1)}async function we(){try{i(C,!0),i(w,"");const l={};let E=!1;if(e(f)&&e(f)!==d().credentials_name&&(l.credentials_name=e(f),E=!0),e(_)&&e(_)!==d().pool_balancing_type&&(l.pool_balancer_type=e(_),E=!0),e(b)){if(!e(h).trim()){i(w,"Please enter a webhook secret or uncheck the option to change it");return}l.webhook_secret=e(h),E=!0}if(!E){P("close");return}P("submit",l)}catch(l){i(w,l instanceof Error?l.message:`Failed to update ${k()}`)}finally{i(C,!1)}}Ke(()=>{he(),ke()}),Oe(),ea(xe,{$$events:{close:()=>P("close")},children:(l,E)=>{var j=da(),F=t(j),N=t(F),Ce=t(N);r(N);var Y=o(N,2),Ee=t(Y,!0);r(Y),r(F);var z=o(F,2),Z=t(z);{var Se=a=>{var s=aa(),n=t(s),p=t(n,!0);r(n),r(s),y(()=>v(p,e(w))),u(a,s)};$(Z,a=>{e(w)&&a(Se)})}var A=o(Z,2),L=t(A),Ue=t(L);r(L);var ee=o(L,2),ae=t(ee);{var $e=a=>{var s=ta(),n=o(t(s),2),p=t(n,!0);r(n),r(s),y(S=>v(p,S),[()=>c(_e)]),u(a,s)};$(ae,a=>{k()==="repository"&&a($e)})}var O=o(ae,2),te=o(t(O),2),Pe=t(te,!0);r(te),r(O);var q=o(O,2),re=o(t(q),2),Be=t(re,!0);r(re),r(q);var I=o(q,2),se=o(t(I),2),Te=t(se,!0);r(se),r(I);var oe=o(I,2),ne=o(t(oe),2),De=t(ne,!0);r(ne),r(oe),r(ee),r(A);var K=o(A,2),G=t(K),Me=o(t(G),2);{var Re=a=>{var s=ra();u(a,s)},We=a=>{var s=oa();y(()=>{e(f),ue(()=>{e(M)})});var n=t(s);n.value=n.__value="";var p=o(n);Je(p,1,()=>e(M),Qe,(S,g)=>{var U=sa(),Le=t(U);r(U);var pe={};y(()=>{v(Le,`${e(g),c(()=>e(g).name)??""} (${e(g),c(()=>e(g).endpoint?.name||"Unknown")??""})`),pe!==(pe=(e(g),c(()=>e(g).name)))&&(U.value=(U.__value=(e(g),c(()=>e(g).name)))??"")}),u(S,U)}),r(s),ye(s,()=>e(f),S=>i(f,S)),u(a,s)};$(Me,a=>{e(R)?a(Re):a(We,!1)})}B(2),r(G);var H=o(G,2),J=o(t(H),2);y(()=>{e(_),ue(()=>{})});var Q=t(J);Q.value=Q.__value="roundrobin";var ie=o(Q);ie.value=ie.__value="pack",r(J),B(2),r(H);var de=o(H,2),V=t(de),le=t(V);me(le),B(2),r(V);var je=o(V,2);{var Fe=a=>{var s=na(),n=o(t(s),2);me(n),B(2),r(s),y(()=>n.required=e(b)),Ye(n,()=>e(h),p=>i(h,p)),u(a,s)};$(je,a=>{e(b)&&a(Fe)})}r(de),r(K);var ce=o(K,2),ve=t(ce),X=o(ve,2),Ne=t(X);{var ze=a=>{var s=ia();u(a,s)},Ae=a=>{var s=Ge();y(n=>v(s,`Update ${n??""}`),[()=>c(W)]),u(a,s)};$(Ne,a=>{e(C)?a(ze):a(Ae,!1)})}r(X),r(ce),r(z),r(j),y((a,s,n,p)=>{v(Ce,`Update ${a??""}`),v(Ee,s),v(Ue,`${n??""} Information`),v(Pe,(T(d()),c(()=>d().name))),v(Be,(T(d()),c(()=>d().endpoint?.name))),v(Te,(T(d()),c(()=>d().credentials_name))),v(De,(T(d()),c(()=>d().pool_balancing_type||"roundrobin"))),X.disabled=p},[()=>c(W),()=>c(fe),()=>c(W),()=>(e(C),e(b),e(h),c(()=>e(C)||e(b)&&!e(h).trim()))]),ye(J,()=>e(_),a=>i(_,a)),Xe(le,()=>e(b),a=>i(b,a)),be("click",ve,()=>P("close")),be("submit",z,Ze(we)),u(l,j)},$$slots:{default:!0}}),He()}export{xa as U}; diff --git a/webapp/assets/_app/immutable/chunks/CoIRRsD9.js b/webapp/assets/_app/immutable/chunks/CoIRRsD9.js deleted file mode 100644 index 8cbc8c4b..00000000 --- a/webapp/assets/_app/immutable/chunks/CoIRRsD9.js +++ /dev/null @@ -1 +0,0 @@ -const s=globalThis.__sveltekit_13hoftk?.base??"/ui",t=globalThis.__sveltekit_13hoftk?.assets??s;export{t as a,s as b}; diff --git a/webapp/assets/_app/immutable/chunks/CwqI2jFH.js b/webapp/assets/_app/immutable/chunks/CwqI2jFH.js deleted file mode 100644 index 4cf31304..00000000 --- a/webapp/assets/_app/immutable/chunks/CwqI2jFH.js +++ /dev/null @@ -1 +0,0 @@ -import"./DsnmJJEf.js";import{i as Dr}from"./B3Pzt0F_.js";import{p as Lr,E as qr,m as s,o as Gr,f as m,k as r,j as o,g as e,r as a,t as v,e as M,c as b,v as T,b as Jr,z as gr,x as W,u as p,s as d,D as Ie,d as Fr}from"./D8EpLgQ1.js";import{p as vr,i as z}from"./5WA7h8uK.js";import{e as Ae,i as $e}from"./u94nIB4-.js";import{s as Oe,r as h,b as Q,g as C,c as Nr}from"./CiE1LlKV.js";import{b as E,a as Vr}from"./C6k1Q4We.js";import{p as Kr}from"./D4Caz1gY.js";import{M as Ur}from"./qB7B8uiS.js";import{J as Wr}from"./DZblzgqm.js";var Qr=m('

'),Xr=m('
'),Yr=m(""),Zr=m(''),et=m('
'),rt=m(""),tt=m(''),at=m(' '),ot=m('
'),dt=m('

Entity & Provider Configuration

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
',1),it=m('
Creating...
'),st=m('

Create New Pool

Entity Level *
');function yt(pr,X){Lr(X,!1);const Y=qr();let He=vr(X,"initialEntityType",8,""),mr=vr(X,"initialEntityId",8,""),G=s(!1),P=s(""),n=s(He()),S=s([]),Z=s([]),ee=s(!1),re=s(!1),k=s(mr()),j=s(""),B=s(""),D=s(""),te=s(void 0),ae=s(void 0),oe=s(void 0),de=s(100),ie=s("garm"),J=s("linux"),F=s("amd64"),se=s(""),le=s(!0),_=s([]),I=s(""),L=s("{}");async function fr(){try{d(re,!0),d(Z,await C.listProviders())}catch(l){d(P,l instanceof Error?l.message:"Failed to load providers")}finally{d(re,!1)}}async function Be(){if(e(n))try{switch(d(ee,!0),d(S,[]),e(n)){case"repository":d(S,await C.listRepositories());break;case"organization":d(S,await C.listOrganizations());break;case"enterprise":d(S,await C.listEnterprises());break}}catch(l){d(P,l instanceof Error?l.message:`Failed to load ${e(n)}s`)}finally{d(ee,!1)}}function ne(l){e(n)!==l&&(d(n,l),d(k,""),Be())}function De(){e(I).trim()&&!e(_).includes(e(I).trim())&&(d(_,[...e(_),e(I).trim()]),d(I,""))}function yr(l){d(_,e(_).filter((A,w)=>w!==l))}function xr(l){l.key==="Enter"&&(l.preventDefault(),De())}async function hr(){if(!e(n)||!e(k)||!e(j)||!e(B)||!e(D)){d(P,"Please fill in all required fields");return}try{d(G,!0),d(P,"");let l={};if(e(L).trim())try{l=JSON.parse(e(L))}catch{throw new Error("Invalid JSON in extra specs")}const A={provider_name:e(j),image:e(B),flavor:e(D),max_runners:e(te)||10,min_idle_runners:e(ae)||0,runner_bootstrap_timeout:e(oe)||20,priority:e(de),runner_prefix:e(ie),os_type:e(J),os_arch:e(F),"github-runner-group":e(se)||void 0,enabled:e(le),tags:e(_),extra_specs:e(L).trim()?l:void 0};let w;switch(e(n)){case"repository":w=await C.createRepositoryPool(e(k),A);break;case"organization":w=await C.createOrganizationPool(e(k),A);break;case"enterprise":w=await C.createEnterprisePool(e(k),A);break;default:throw new Error("Invalid entity level")}Y("submit",A)}catch(l){d(P,l instanceof Error?l.message:"Failed to create pool")}finally{d(G,!1)}}Gr(()=>{fr(),He()&&Be()}),Dr(),Ur(pr,{$$events:{close:()=>Y("close")},children:(l,A)=>{var w=st(),N=r(o(w),2),Le=o(N);{var kr=c=>{var y=Qr(),$=o(y),V=o($,!0);a($),a(y),v(()=>T(V,e(P))),b(c,y)};z(Le,c=>{e(P)&&c(kr)})}var ue=r(Le,2),qe=r(o(ue),2),be=o(qe),ce=r(be,2),Ge=r(ce,2);a(qe),a(ue);var Je=r(ue,2);{var _r=c=>{var y=dt(),$=Jr(y),V=r(o($),2),ve=o(V),pe=o(ve),Pr=o(pe);gr(),a(pe);var Rr=r(pe,2);{var Tr=t=>{var u=Xr();b(t,u)},zr=t=>{var u=Zr();v(()=>{e(k),W(()=>{e(n),e(S)})});var f=o(u),O=o(f);a(f),f.value=f.__value="";var R=r(f);Ae(R,1,()=>e(S),$e,(g,i)=>{var x=Yr(),U=o(x);{var Hr=H=>{var q=Ie();v(()=>T(q,`${e(i),p(()=>e(i).owner)??""}/${e(i),p(()=>e(i).name)??""} (${e(i),p(()=>e(i).endpoint?.name)??""})`)),b(H,q)},Br=H=>{var q=Ie();v(()=>T(q,`${e(i),p(()=>e(i).name)??""} (${e(i),p(()=>e(i).endpoint?.name)??""})`)),b(H,q)};z(U,H=>{e(n)==="repository"?H(Hr):H(Br,!1)})}a(x);var cr={};v(()=>{cr!==(cr=(e(i),p(()=>e(i).id)))&&(x.value=(x.__value=(e(i),p(()=>e(i).id)))??"")}),b(g,x)}),a(u),v(()=>T(O,`Select a ${e(n)??""}`)),Q(u,()=>e(k),g=>d(k,g)),b(t,u)};z(Rr,t=>{e(ee)?t(Tr):t(zr,!1)})}a(ve);var Ve=r(ve,2),Cr=r(o(Ve),2);{var Sr=t=>{var u=et();b(t,u)},jr=t=>{var u=tt();v(()=>{e(j),W(()=>{e(Z)})});var f=o(u);f.value=f.__value="";var O=r(f);Ae(O,1,()=>e(Z),$e,(R,g)=>{var i=rt(),x=o(i,!0);a(i);var U={};v(()=>{T(x,(e(g),p(()=>e(g).name))),U!==(U=(e(g),p(()=>e(g).name)))&&(i.value=(i.__value=(e(g),p(()=>e(g).name)))??"")}),b(R,i)}),a(u),Q(u,()=>e(j),R=>d(j,R)),b(t,u)};z(Cr,t=>{e(re)?t(Sr):t(jr,!1)})}a(Ve),a(V),a($);var me=r($,2),Ke=r(o(me),2),fe=o(Ke),Ue=r(o(fe),2);h(Ue),a(fe);var ye=r(fe,2),We=r(o(ye),2);h(We),a(ye);var xe=r(ye,2),he=r(o(xe),2);v(()=>{e(J),W(()=>{})});var ke=o(he);ke.value=ke.__value="linux";var Qe=r(ke);Qe.value=Qe.__value="windows",a(he),a(xe);var Xe=r(xe,2),_e=r(o(Xe),2);v(()=>{e(F),W(()=>{})});var we=o(_e);we.value=we.__value="amd64";var Ye=r(we);Ye.value=Ye.__value="arm64",a(_e),a(Xe),a(Ke),a(me);var Ee=r(me,2),Ze=r(o(Ee),2),Me=o(Ze),er=r(o(Me),2);h(er),a(Me);var Pe=r(Me,2),rr=r(o(Pe),2);h(rr),a(Pe);var tr=r(Pe,2),ar=r(o(tr),2);h(ar),a(tr),a(Ze),a(Ee);var or=r(Ee,2),Re=r(o(or),2),Te=o(Re),dr=r(o(Te),2);h(dr),a(Te);var ze=r(Te,2),ir=r(o(ze),2);h(ir),a(ze);var sr=r(ze,2),lr=r(o(sr),2);h(lr),a(sr),a(Re);var Ce=r(Re,2),nr=r(o(Ce),2),Se=o(nr),K=o(Se);h(K);var Ir=r(K,2);a(Se);var Ar=r(Se,2);{var $r=t=>{var u=ot();Ae(u,5,()=>e(_),$e,(f,O,R)=>{var g=at(),i=o(g),x=r(i);a(g),v(()=>{T(i,`${e(O)??""} `),Nr(x,"aria-label",`Remove tag ${e(O)}`)}),M("click",x,()=>yr(R)),b(f,g)}),a(u),b(t,u)};z(Ar,t=>{e(_),p(()=>e(_).length>0)&&t($r)})}a(nr),a(Ce);var je=r(Ce,2),Or=r(o(je),2);Wr(Or,{rows:4,placeholder:"{}",get value(){return e(L)},set value(t){d(L,t)},$$legacy:!0}),a(je);var ur=r(je,2),br=o(ur);h(br),gr(2),a(ur),a(or),v(t=>T(Pr,`${t??""} `),[()=>(e(n),p(()=>e(n).charAt(0).toUpperCase()+e(n).slice(1)))]),E(Ue,()=>e(B),t=>d(B,t)),E(We,()=>e(D),t=>d(D,t)),Q(he,()=>e(J),t=>d(J,t)),Q(_e,()=>e(F),t=>d(F,t)),E(er,()=>e(ae),t=>d(ae,t)),E(rr,()=>e(te),t=>d(te,t)),E(ar,()=>e(oe),t=>d(oe,t)),E(dr,()=>e(ie),t=>d(ie,t)),E(ir,()=>e(de),t=>d(de,t)),E(lr,()=>e(se),t=>d(se,t)),E(K,()=>e(I),t=>d(I,t)),M("keydown",K,xr),M("click",Ir,De),Vr(br,()=>e(le),t=>d(le,t)),b(c,y)};z(Je,c=>{e(n)&&c(_r)})}var Fe=r(Je,2),Ne=o(Fe),ge=r(Ne,2),wr=o(ge);{var Er=c=>{var y=it();b(c,y)},Mr=c=>{var y=Ie("Create Pool");b(c,y)};z(wr,c=>{e(G)?c(Er):c(Mr,!1)})}a(ge),a(Fe),a(N),a(w),v(()=>{Oe(be,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="repository"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),Oe(ce,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="organization"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),Oe(Ge,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="enterprise"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),ge.disabled=e(G)||!e(n)||!e(k)||!e(j)||!e(B)||!e(D)}),M("click",be,()=>ne("repository")),M("click",ce,()=>ne("organization")),M("click",Ge,()=>ne("enterprise")),M("click",Ne,()=>Y("close")),M("submit",N,Kr(hr)),b(l,w)},$$slots:{default:!0}}),Fr()}export{yt as C}; diff --git a/webapp/assets/_app/immutable/chunks/B7ITzBt8.js b/webapp/assets/_app/immutable/chunks/D4PaGKsV.js similarity index 96% rename from webapp/assets/_app/immutable/chunks/B7ITzBt8.js rename to webapp/assets/_app/immutable/chunks/D4PaGKsV.js index 8b2103d3..4bd0902d 100644 --- a/webapp/assets/_app/immutable/chunks/B7ITzBt8.js +++ b/webapp/assets/_app/immutable/chunks/D4PaGKsV.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as j}from"./B3Pzt0F_.js";import{p as R,l as w,a as q,f as g,t as v,c as k,d as A,k as B,j as u,s as _,m as y,r as m,n as f,u as b,g as d,v as h}from"./D8EpLgQ1.js";import{p as o,i as D}from"./5WA7h8uK.js";import{c as U,s as F}from"./CiE1LlKV.js";import{b as r}from"./CoIRRsD9.js";var G=g('
'),H=g('');function V(x,n){R(n,!1);const i=y(),p=y();let e=o(n,"item",8),s=o(n,"entityType",8,"repository"),$=o(n,"showOwner",8,!1),E=o(n,"showId",8,!1),I=o(n,"fontMono",8,!1);function z(){if(!e())return"Unknown";switch(s()){case"repository":return $()?`${e().owner||"Unknown"}/${e().name||"Unknown"}`:e().name||"Unknown";case"organization":case"enterprise":return e().name||"Unknown";case"pool":return E()?e().id||"Unknown":e().name||"Unknown";case"scaleset":return e().name||"Unknown";case"instance":return e().name||"Unknown";default:return e().name||e().id||"Unknown"}}function C(){if(!e())return"#";let t;switch(s()){case"instance":t=e().name;break;default:t=e().id||e().name;break}if(!t)return"#";switch(s()){case"repository":return`${r}/repositories/${t}`;case"organization":return`${r}/organizations/${t}`;case"enterprise":return`${r}/enterprises/${t}`;case"pool":return`${r}/pools/${t}`;case"scaleset":return`${r}/scalesets/${t}`;case"instance":return`${r}/instances/${encodeURIComponent(t)}`;default:return"#"}}w(()=>{},()=>{_(i,z())}),w(()=>{},()=>{_(p,C())}),q(),j();var c=H(),a=u(c),M=u(a,!0);m(a);var N=B(a,2);{var O=t=>{var l=G(),T=u(l,!0);m(l),v(()=>h(T,(f(e()),b(()=>e().provider_id)))),k(t,l)};D(N,t=>{f(s()),f(e()),b(()=>s()==="instance"&&e()?.provider_id)&&t(O)})}m(c),v(()=>{U(a,"href",d(p)),F(a,1,`block w-full truncate text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 ${I()?"font-mono":""}`),U(a,"title",d(i)),h(M,d(i))}),k(x,c),A()}export{V as E}; +import"./DsnmJJEf.js";import{i as j}from"./B3Pzt0F_.js";import{p as R,l as w,a as q,f as g,t as v,c as k,d as A,k as B,j as u,s as _,m as y,r as m,n as f,u as b,g as d,v as h}from"./D8EpLgQ1.js";import{p as o,i as D}from"./5WA7h8uK.js";import{c as U,s as F}from"./CiE1LlKV.js";import{b as r}from"./CRhkqW2i.js";var G=g('
'),H=g('');function V(x,n){R(n,!1);const i=y(),p=y();let e=o(n,"item",8),s=o(n,"entityType",8,"repository"),$=o(n,"showOwner",8,!1),E=o(n,"showId",8,!1),I=o(n,"fontMono",8,!1);function z(){if(!e())return"Unknown";switch(s()){case"repository":return $()?`${e().owner||"Unknown"}/${e().name||"Unknown"}`:e().name||"Unknown";case"organization":case"enterprise":return e().name||"Unknown";case"pool":return E()?e().id||"Unknown":e().name||"Unknown";case"scaleset":return e().name||"Unknown";case"instance":return e().name||"Unknown";default:return e().name||e().id||"Unknown"}}function C(){if(!e())return"#";let t;switch(s()){case"instance":t=e().name;break;default:t=e().id||e().name;break}if(!t)return"#";switch(s()){case"repository":return`${r}/repositories/${t}`;case"organization":return`${r}/organizations/${t}`;case"enterprise":return`${r}/enterprises/${t}`;case"pool":return`${r}/pools/${t}`;case"scaleset":return`${r}/scalesets/${t}`;case"instance":return`${r}/instances/${encodeURIComponent(t)}`;default:return"#"}}w(()=>{},()=>{_(i,z())}),w(()=>{},()=>{_(p,C())}),q(),j();var c=H(),a=u(c),M=u(a,!0);m(a);var N=B(a,2);{var O=t=>{var l=G(),T=u(l,!0);m(l),v(()=>h(T,(f(e()),b(()=>e().provider_id)))),k(t,l)};D(N,t=>{f(s()),f(e()),b(()=>s()==="instance"&&e()?.provider_id)&&t(O)})}m(c),v(()=>{U(a,"href",d(p)),F(a,1,`block w-full truncate text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 ${I()?"font-mono":""}`),U(a,"title",d(i)),h(M,d(i))}),k(x,c),A()}export{V as E}; diff --git a/webapp/assets/_app/immutable/chunks/DQP15tlf.js b/webapp/assets/_app/immutable/chunks/DQP15tlf.js deleted file mode 100644 index 73a0c7e8..00000000 --- a/webapp/assets/_app/immutable/chunks/DQP15tlf.js +++ /dev/null @@ -1 +0,0 @@ -import"./DsnmJJEf.js";import{i as cr}from"./B3Pzt0F_.js";import{p as pr,E as vr,m as u,o as fr,s as n,f as E,j as d,r as t,k as a,g as e,t as _,x as He,u as h,z as mr,n as D,v as k,e as w,c as m,D as yr,d as xr}from"./D8EpLgQ1.js";import{p as _r,i as ge,s as hr,a as kr}from"./5WA7h8uK.js";import{e as wr,i as Er}from"./u94nIB4-.js";import{r as c,b as Ke,c as Rr}from"./CiE1LlKV.js";import{b as p,a as $r}from"./C6k1Q4We.js";import{p as Sr}from"./D4Caz1gY.js";import{M as Tr}from"./qB7B8uiS.js";import{J as Or}from"./DZblzgqm.js";import{e as Pr}from"./wyaP0EDu.js";var Jr=E('

'),Mr=E(' '),Nr=E('
'),Ur=E('
Updating...
'),Ar=E('

Pool Information (Read-only)

Provider:
Entity:

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Tags
Extra Specs (JSON)
');function Wr(We,ce){pr(ce,!1);const[qe,Qe]=hr(),B=()=>kr(Pr,"$eagerCache",qe);let o=_r(ce,"pool",8);const G=vr();let R=u(!1),$=u(""),S=u(o().image||""),T=u(o().flavor||""),O=u(o().max_runners),P=u(o().min_idle_runners),J=u(o().runner_bootstrap_timeout),M=u(o().priority),N=u(o().runner_prefix||""),y=u(o().os_type||"linux"),x=u(o().os_arch||"amd64"),U=u(o()["github-runner-group"]||""),A=u(o().enabled),g=u((o().tags||[]).map(i=>i.name||"").filter(Boolean)),f=u(""),v=u("{}");function Ve(i){if(i.repo_id){const s=B().repositories.find(l=>l.id===i.repo_id);return s?`${s.owner}/${s.name}`:"Unknown Entity"}if(i.org_id){const s=B().organizations.find(l=>l.id===i.org_id);return s&&s.name?s.name:"Unknown Entity"}if(i.enterprise_id){const s=B().enterprises.find(l=>l.id===i.enterprise_id);return s&&s.name?s.name:"Unknown Entity"}return"Unknown Entity"}function Xe(i){return i.repo_id?"Repository":i.org_id?"Organization":i.enterprise_id?"Enterprise":"Unknown"}fr(()=>{if(o().extra_specs)try{if(typeof o().extra_specs=="object")n(v,JSON.stringify(o().extra_specs,null,2));else{const i=JSON.parse(o().extra_specs);n(v,JSON.stringify(i,null,2))}}catch{n(v,o().extra_specs||"{}")}});function pe(){e(f).trim()&&!e(g).includes(e(f).trim())&&(n(g,[...e(g),e(f).trim()]),n(f,""))}function Ye(i){n(g,e(g).filter((s,l)=>l!==i))}function Ze(i){i.key==="Enter"&&(i.preventDefault(),pe())}async function er(){try{n(R,!0),n($,"");let i={};if(e(v).trim())try{i=JSON.parse(e(v))}catch{throw new Error("Invalid JSON in extra specs")}const s={image:e(S)!==o().image?e(S):void 0,flavor:e(T)!==o().flavor?e(T):void 0,max_runners:e(O)!==o().max_runners?e(O):void 0,min_idle_runners:e(P)!==o().min_idle_runners?e(P):void 0,runner_bootstrap_timeout:e(J)!==o().runner_bootstrap_timeout?e(J):void 0,priority:e(M)!==o().priority?e(M):void 0,runner_prefix:e(N)!==o().runner_prefix?e(N):void 0,os_type:e(y)!==o().os_type?e(y):void 0,os_arch:e(x)!==o().os_arch?e(x):void 0,"github-runner-group":e(U)!==o()["github-runner-group"]&&e(U)||void 0,enabled:e(A)!==o().enabled?e(A):void 0,tags:JSON.stringify(e(g))!==JSON.stringify((o().tags||[]).map(l=>l.name||"").filter(Boolean))?e(g):void 0,extra_specs:e(v).trim()!==JSON.stringify(o().extra_specs||{},null,2).trim()?i:void 0};Object.keys(s).forEach(l=>{s[l]===void 0&&delete s[l]}),G("submit",s)}catch(i){n($,i instanceof Error?i.message:"Failed to update pool")}finally{n(R,!1)}}cr(),Tr(We,{$$events:{close:()=>G("close")},children:(i,s)=>{var l=Ar(),z=d(l),ve=d(z),rr=d(ve);t(ve),t(z);var L=a(z,2),fe=d(L);{var tr=r=>{var b=Jr(),j=d(b),C=d(j,!0);t(j),t(b),_(()=>k(C,e($))),m(r,b)};ge(fe,r=>{e($)&&r(tr)})}var F=a(fe,2),me=a(d(F),2),H=d(me),ye=a(d(H),2),ar=d(ye,!0);t(ye),t(H);var xe=a(H,2),_e=a(d(xe),2),dr=d(_e);t(_e),t(xe),t(me),t(F);var K=a(F,2),he=a(d(K),2),W=d(he),ke=a(d(W),2);c(ke),t(W);var q=a(W,2),we=a(d(q),2);c(we),t(q);var Q=a(q,2),V=a(d(Q),2);_(()=>{e(y),He(()=>{})});var X=d(V);X.value=X.__value="linux";var Ee=a(X);Ee.value=Ee.__value="windows",t(V),t(Q);var Re=a(Q,2),Y=a(d(Re),2);_(()=>{e(x),He(()=>{})});var Z=d(Y);Z.value=Z.__value="amd64";var $e=a(Z);$e.value=$e.__value="arm64",t(Y),t(Re),t(he),t(K);var ee=a(K,2),Se=a(d(ee),2),re=d(Se),Te=a(d(re),2);c(Te),t(re);var te=a(re,2),Oe=a(d(te),2);c(Oe),t(te);var Pe=a(te,2),Je=a(d(Pe),2);c(Je),t(Pe),t(Se),t(ee);var ae=a(ee,2),de=a(d(ae),2),oe=d(de),Me=a(d(oe),2);c(Me),t(oe);var ie=a(oe,2),Ne=a(d(ie),2);c(Ne),t(ie);var Ue=a(ie,2),Ae=a(d(Ue),2);c(Ae),t(Ue),t(de);var ne=a(de,2),Ie=d(ne),je=a(d(Ie),2),se=d(je),I=d(se);c(I);var or=a(I,2);t(se);var ir=a(se,2);{var nr=r=>{var b=Nr();wr(b,5,()=>e(g),Er,(j,C,gr)=>{var be=Mr(),Le=d(be),Fe=a(Le);t(be),_(()=>{k(Le,`${e(C)??""} `),Rr(Fe,"aria-label",`Remove tag ${e(C)??""}`)}),w("click",Fe,()=>Ye(gr)),m(j,be)}),t(b),m(r,b)};ge(ir,r=>{e(g),h(()=>e(g).length>0)&&r(nr)})}t(je),t(Ie),t(ne);var le=a(ne,2),Ce=d(le),sr=a(d(Ce),2);Or(sr,{rows:4,placeholder:"{}",get value(){return e(v)},set value(r){n(v,r)},$$legacy:!0}),t(Ce),t(le);var De=a(le,2),Be=d(De);c(Be),mr(2),t(De),t(ae);var Ge=a(ae,2),ze=d(Ge),ue=a(ze,2),lr=d(ue);{var ur=r=>{var b=Ur();m(r,b)},br=r=>{var b=yr("Update Pool");m(r,b)};ge(lr,r=>{e(R)?r(ur):r(br,!1)})}t(ue),t(Ge),t(L),t(l),_((r,b)=>{k(rr,`Update Pool ${D(o()),h(()=>o().id)??""}`),k(ar,(D(o()),h(()=>o().provider_name))),k(dr,`${r??""}: ${b??""}`),ue.disabled=e(R)},[()=>(D(o()),h(()=>Xe(o()))),()=>(D(o()),h(()=>Ve(o())))]),p(ke,()=>e(S),r=>n(S,r)),p(we,()=>e(T),r=>n(T,r)),Ke(V,()=>e(y),r=>n(y,r)),Ke(Y,()=>e(x),r=>n(x,r)),p(Te,()=>e(P),r=>n(P,r)),p(Oe,()=>e(O),r=>n(O,r)),p(Je,()=>e(J),r=>n(J,r)),p(Me,()=>e(N),r=>n(N,r)),p(Ne,()=>e(M),r=>n(M,r)),p(Ae,()=>e(U),r=>n(U,r)),p(I,()=>e(f),r=>n(f,r)),w("keydown",I,Ze),w("click",or,pe),$r(Be,()=>e(A),r=>n(A,r)),w("click",ze,()=>G("close")),w("submit",L,Sr(er)),m(i,l)},$$slots:{default:!0}}),xr(),Qe()}export{Wr as U}; diff --git a/webapp/assets/_app/immutable/chunks/DXCC0cSN.js b/webapp/assets/_app/immutable/chunks/DXCC0cSN.js new file mode 100644 index 00000000..9618e15f --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/DXCC0cSN.js @@ -0,0 +1,3 @@ +import{I as Ee,o as De,aR as T,g as x,s as P,bf as yt,aS as Be}from"./D8EpLgQ1.js";import{a as wt,b as L}from"./CRhkqW2i.js";class le{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Se{constructor(t,n){this.status=t,this.location=n}}class Re extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function vt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function bt(e){return e.split("%25").map(decodeURI).join("%25")}function kt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function me({href:e}){return e.split("#")[0]}function At(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(i,o){if(o==="get"||o==="getAll"||o==="has")return f=>(n(f),i[o](f));t();const c=Reflect.get(i,o);return typeof c=="function"?c.bind(i):c}}),enumerable:!0,configurable:!0});const s=["href","pathname","search","toString","toJSON"];r&&s.push("hash");for(const i of s)Object.defineProperty(a,i,{get(){return t(),e[i]},enumerable:!0,configurable:!0});return a}function Et(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}function St(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&G.delete(Ie(e)),Rt(e,t));const G=new Map;function It(e,t){const n=Ie(e,t),r=document.querySelector(n);if(r?.textContent){let{body:a,...s}=JSON.parse(r.textContent);const i=r.getAttribute("data-ttl");return i&&G.set(n,{body:a,init:s,ttl:1e3*Number(i)}),r.getAttribute("data-b64")!==null&&(a=St(a)),Promise.resolve(new Response(a,s))}return window.fetch(e,t)}function Ut(e,t,n){if(G.size>0){const r=Ie(e,n),a=G.get(r);if(a){if(performance.now(){const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const i=r.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return _e(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return _e(String.fromCharCode(...c.slice(2).split("-").map(_=>parseInt(_,16))));const d=Lt.exec(c),[,h,u,l,p]=d;return t.push({name:l,matcher:p,optional:!!h,rest:!!u,chained:u?f===1&&i[0]==="":!1}),u?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return _e(c)}).join("")}).join("")}/?$`),params:t}}function xt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Pt(e){return e.slice(1).split("/").filter(xt)}function Ct(e,t,n){const r={},a=e.slice(1),s=a.filter(o=>o!==void 0);let i=0;for(let o=0;od).join("/"),i=0),f===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](f)){r[c.name]=f;const d=t[o+1],h=a[o+1];d&&!d.rest&&d.optional&&h&&c.chained&&(i=0),!d&&!h&&Object.keys(r).length===s.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return r}function _e(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Ot({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[c,f,d]])=>{const{pattern:h,params:u}=Tt(o),l={id:o,exec:p=>{const _=h.exec(p);if(_)return Ct(_,u,r)},errors:[1,...d||[]].map(p=>e[p]),layouts:[0,...f||[]].map(i),leaf:s(c)};return l.errors.length=l.layouts.length=Math.max(l.errors.length,l.layouts.length),l});function s(o){const c=o<0;return c&&(o=~o),[c,e[o]]}function i(o){return o===void 0?o:[a.has(o),e[o]]}}function Je(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Fe(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const Nt="1755415870786",Xe="sveltekit:snapshot",Ze="sveltekit:scroll",Qe="sveltekit:states",jt="sveltekit:pageurl",F="sveltekit:history",Y="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Z=location.origin;function Ue(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function fe(){return{x:pageXOffset,y:pageYOffset}}function B(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Ve={...j,"":j.hover};function et(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function tt(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=et(e)}}function ve(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,s=!r||!!a||ue(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),i=r?.origin===Z&&e.hasAttribute("download");return{url:r,external:s,target:a,download:i}}function te(e){let t=null,n=null,r=null,a=null,s=null,i=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=B(o,"preload-code")),a===null&&(a=B(o,"preload-data")),t===null&&(t=B(o,"keepfocus")),n===null&&(n=B(o,"noscroll")),s===null&&(s=B(o,"reload")),i===null&&(i=B(o,"replacestate")),o=et(o);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Ve[r??"off"],preload_data:Ve[a??"off"],keepfocus:c(t),noscroll:c(n),reload:c(s),replace_state:c(i)}}function qe(e){const t=Ee(e);let n=!0;function r(){n=!0,t.update(i=>i)}function a(i){n=!1,t.set(i)}function s(i){let o;return t.subscribe(c=>{(o===void 0||n&&c!==o)&&i(o=c)})}return{notify:r,set:a,subscribe:s}}const nt={v:()=>{}};function $t(){const{set:e,subscribe:t}=Ee(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${wt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const i=(await a.json()).version!==Nt;return i&&(e(!0),nt.v(),clearTimeout(n)),i}catch{return!1}}return{subscribe:t,check:r}}function ue(e,t,n){return e.origin!==Z||!e.pathname.startsWith(t)?!0:n?!(e.pathname===t+"/"||e.pathname===t+"/index.html"||e.protocol==="file:"&&e.pathname.replace(/\/[^/]+\.html?$/,"")===t):!1}function kn(e){}function Me(e){const t=Bt(e),n=new ArrayBuffer(t.length),r=new DataView(n);for(let a=0;a>16),t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,t+=String.fromCharCode(n)):r===18&&(n>>=2,t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255)),t}const Ft=-1,Vt=-2,qt=-3,Mt=-4,Gt=-5,Ht=-6;function Kt(e,t){if(typeof e=="number")return a(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);function a(s,i=!1){if(s===Ft)return;if(s===qt)return NaN;if(s===Mt)return 1/0;if(s===Gt)return-1/0;if(s===Ht)return-0;if(i)throw new Error("Invalid input");if(s in r)return r[s];const o=n[s];if(!o||typeof o!="object")r[s]=o;else if(Array.isArray(o))if(typeof o[0]=="string"){const c=o[0],f=t?.[c];if(f)return r[s]=f(a(o[1]));switch(c){case"Date":r[s]=new Date(o[1]);break;case"Set":const d=new Set;r[s]=d;for(let l=1;lt!=null)}const zt="x-sveltekit-invalidated",Jt="x-sveltekit-trailing-slash";function ne(e){return e instanceof le||e instanceof Re?e.status:500}function Xt(e){return e instanceof Re?e.text:"Internal Error"}let E,z,ye;const Zt=De.toString().includes("$$")||/function \w+\(\) \{\}/.test(De.toString());Zt?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},z={current:null},ye={current:!1}):(E=new class{#e=T({});get data(){return x(this.#e)}set data(t){P(this.#e,t)}#t=T(null);get form(){return x(this.#t)}set form(t){P(this.#t,t)}#n=T(null);get error(){return x(this.#n)}set error(t){P(this.#n,t)}#r=T({});get params(){return x(this.#r)}set params(t){P(this.#r,t)}#a=T({id:null});get route(){return x(this.#a)}set route(t){P(this.#a,t)}#o=T({});get state(){return x(this.#o)}set state(t){P(this.#o,t)}#s=T(-1);get status(){return x(this.#s)}set status(t){P(this.#s,t)}#i=T(new URL("https://example.com"));get url(){return x(this.#i)}set url(t){P(this.#i,t)}},z=new class{#e=T(null);get current(){return x(this.#e)}set current(t){P(this.#e,t)}},ye=new class{#e=T(!1);get current(){return x(this.#e)}set current(t){P(this.#e,t)}},nt.v=()=>ye.current=!0);function Qt(e){Object.assign(E,e)}const en="/__data.json",tn=".html__data.json";function nn(e){return e.endsWith(".html")?e.replace(/\.html$/,tn):e.replace(/\/$/,"")+en}const{tick:rn}=yt,an=new Set(["icon","shortcut icon","apple-touch-icon"]),D=Je(Ze)??{},J=Je(Xe)??{},N={url:qe({}),page:qe({}),navigating:Ee(null),updated:$t()};function Le(e){D[e]=fe()}function on(e,t){let n=e+1;for(;D[n];)delete D[n],n+=1;for(n=t+1;J[n];)delete J[n],n+=1}function q(e){return location.href=e.href,new Promise(()=>{})}async function at(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(L||"/");e&&await e.update()}}function Ge(){}let Te,be,re,C,ke,v;globalThis.__sveltekit_xtz33p.data;const ae=[],oe=[];let O=null;const ee=new Map,ot=new Set,sn=new Set,H=new Set;let w={branch:[],error:null,url:null},xe=!1,se=!1,He=!0,X=!1,M=!1,st=!1,Pe=!1,it,k,I,$;const K=new Set,Ke=new Map;async function Rn(e,t,n){document.URL!==location.href&&(location.href=location.href),v=e,await e.hooks.init?.(),Te=Ot(e),C=document.documentElement,ke=t,be=e.nodes[0],re=e.nodes[1],be(),re(),k=history.state?.[F],I=history.state?.[Y],k||(k=I=Date.now(),history.replaceState({...history.state,[F]:k,[Y]:I},""));const r=D[k];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await _n(ke,n)):(await W({type:"enter",url:Ue(v.hash?wn(new URL(location.href)):location.href),replace_state:!0}),a()),mn()}function cn(){ae.length=0,Pe=!1}function ct(e){oe.some(t=>t?.snapshot)&&(J[e]=oe.map(t=>t?.snapshot?.capture()))}function lt(e){J[e]?.forEach((t,n)=>{oe[n]?.snapshot?.restore(t)})}function We(){Le(k),Fe(Ze,D),ct(I),Fe(Xe,J)}async function Ce(e,t,n,r){let a;const s=await W({type:"goto",url:Ue(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(Pe=!0,a=[...Ke.keys()]),t.invalidate&&t.invalidate.forEach(gn)}});return t.invalidateAll&&Be().then(Be).then(()=>{Ke.forEach(({resource:i},o)=>{a?.includes(o)&&i.refresh?.()})}),s}async function ln(e){if(e.id!==O?.id){const t={};K.add(t),O={id:e.id,token:t,promise:dt({...e,preload:t}).then(n=>(K.delete(t),n.type==="loaded"&&n.state.error&&(O=null),n))}}return O.promise}async function we(e){const t=(await he(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}function ft(e,t,n){w=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(E,e.props.page),it=new v.root({target:t,props:{...e.props,stores:N,components:oe},hydrate:n,sync:!1}),lt(I),n){const a={from:null,to:{params:w.params,route:{id:w.route?.id??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};H.forEach(s=>s(a))}se=!0}function ie({url:e,params:t,branch:n,status:r,error:a,route:s,form:i}){let o="never";if(L&&(e.pathname===L||e.pathname===L+"/"))o="always";else for(const l of n)l?.slash!==void 0&&(o=l.slash);e.pathname=vt(e.pathname,o),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:s},props:{constructors:Yt(n).map(l=>l.node.component),page:$e(E)}};i!==void 0&&(c.props.form=i);let f={},d=!E,h=0;for(let l=0;l(o&&(c.route=!0),u[l])}),params:new Proxy(r,{get:(u,l)=>(o&&c.params.add(l),u[l])}),data:s?.data??null,url:At(n,()=>{o&&(c.url=!0)},u=>{o&&c.search_params.add(u)},v.hash),async fetch(u,l){u instanceof Request&&(l={body:u.method==="GET"||u.method==="HEAD"?void 0:await u.blob(),cache:u.cache,credentials:u.credentials,headers:[...u.headers].length>0?u?.headers:void 0,integrity:u.integrity,keepalive:u.keepalive,method:u.method,mode:u.mode,redirect:u.redirect,referrer:u.referrer,referrerPolicy:u.referrerPolicy,signal:u.signal,...l});const{resolved:p,promise:_}=ut(u,l,n);return o&&d(p.href),_},setHeaders:()=>{},depends:d,parent(){return o&&(c.parent=!0),t()},untrack(u){o=!1;try{return u()}finally{o=!0}}};i=await f.universal.load.call(null,h)??null}return{node:f,loader:e,server:s,universal:f.universal?.load?{type:"data",data:i,uses:c}:null,data:i??s?.data??null,slash:f.universal?.trailingSlash??s?.slash}}function ut(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const s=se?Ut(r,a.href,t):It(r,t);return{resolved:a,promise:s}}function Ye(e,t,n,r,a,s){if(Pe)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const i of a.search_params)if(r.has(i))return!0;for(const i of a.params)if(s[i]!==w.params[i])return!0;for(const i of a.dependencies)if(ae.some(o=>o(new URL(i))))return!0;return!1}function Ne(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function fn(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),s=t.searchParams.getAll(r);a.every(i=>s.includes(i))&&s.every(i=>a.includes(i))&&n.delete(r)}return n}function ze({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:$e(E),constructors:[]}}}async function dt({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if(O?.id===e)return K.delete(O.token),O.promise;const{errors:i,layouts:o,leaf:c}=a,f=[...o,c];i.forEach(g=>g?.().catch(()=>{})),f.forEach(g=>g?.[1]().catch(()=>{}));let d=null;const h=w.url?e!==ce(w.url):!1,u=w.route?a.id!==w.route.id:!1,l=fn(w.url,n);let p=!1;const _=f.map((g,y)=>{const b=w.branch[y],A=!!g?.[0]&&(b?.loader!==g[1]||Ye(p,u,h,l,b.server?.uses,r));return A&&(p=!0),A});if(_.some(Boolean)){try{d=await gt(n,_)}catch(g){const y=await V(g,{url:n,params:r,route:{id:e}});return K.has(s)?ze({error:y,url:n,params:r,route:a}):de({status:ne(g),error:y,url:n,route:a})}if(d.type==="redirect")return d}const m=d?.nodes;let R=!1;const S=f.map(async(g,y)=>{if(!g)return;const b=w.branch[y],A=m?.[y];if((!A||A.type==="skip")&&g[1]===b?.loader&&!Ye(R,u,h,l,b.universal?.uses,r))return b;if(R=!0,A?.type==="error")throw A;return Oe({loader:g[1],url:n,params:r,route:a,parent:async()=>{const pe={};for(let ge=0;ge{});const U=[];for(let g=0;gPromise.resolve({}),server_data_node:Ne(s)}),c={node:await re(),loader:re,universal:null,server:null,data:null};return ie({url:n,params:a,branch:[o,c],status:e,error:t,route:null})}catch(o){if(o instanceof Se)return Ce(new URL(o.location,location.href),{},0);throw o}}async function dn(e){const t=e.href;if(ee.has(t))return ee.get(t);let n;try{const r=(async()=>{let a=await v.hooks.reroute({url:new URL(e),fetch:async(s,i)=>ut(s,i,e).promise})??e;if(typeof a=="string"){const s=new URL(e);v.hash?s.hash=a:s.pathname=a,a=s}return a})();ee.set(t,r),n=await r}catch{ee.delete(t);return}return n}async function he(e,t){if(e&&!ue(e,L,v.hash)){const n=await dn(e);if(!n)return;const r=hn(n);for(const a of Te){const s=a.exec(r);if(s)return{id:ce(e),invalidating:t,route:a,params:kt(s),url:e}}}}function hn(e){return bt(v.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(L.length))||"/"}function ce(e){return(v.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ht({url:e,type:t,intent:n,delta:r}){let a=!1;const s=je(w,n,e,t);r!==void 0&&(s.navigation.delta=r);const i={...s.navigation,cancel:()=>{a=!0,s.reject(new Error("navigation cancelled"))}};return X||ot.forEach(o=>o(i)),a?null:s}async function W({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:c={},accept:f=Ge,block:d=Ge}){const h=$;$=c;const u=await he(t,!1),l=e==="enter"?je(w,u,t,e):ht({url:t,type:e,delta:n?.delta,intent:u});if(!l){d(),$===c&&($=h);return}const p=k,_=I;f(),X=!0,se&&l.navigation.type!=="enter"&&N.navigating.set(z.current=l.navigation);let m=u&&await dt(u);if(!m){if(ue(t,L,v.hash))return await q(t);m=await pt(t,{id:null},await V(new Re(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404)}if(t=u?.url||t,$!==c)return l.reject(new Error("navigation aborted")),!1;if(m.type==="redirect")if(o>=20)m=await de({status:500,error:await V(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}});else return await Ce(new URL(m.location,t).href,{},o+1,c),!1;else m.props.page.status>=400&&await N.updated.check()&&(await at(),await q(t));if(cn(),Le(p),ct(_),m.props.page.url.pathname!==t.pathname&&(t.pathname=m.props.page.url.pathname),i=n?n.state:i,!n){const g=s?0:1,y={[F]:k+=g,[Y]:I+=g,[Qe]:i};(s?history.replaceState:history.pushState).call(history,y,"",t),s||on(k,I)}if(O=null,m.props.page.state=i,se){const g=(await Promise.all(Array.from(sn,y=>y(l.navigation)))).filter(y=>typeof y=="function");if(g.length>0){let y=function(){g.forEach(b=>{H.delete(b)})};g.push(y),g.forEach(b=>{H.add(b)})}w=m.state,m.props.page&&(m.props.page.url=t),it.$set(m.props),Qt(m.props.page),st=!0}else ft(m,ke,!1);const{activeElement:R}=document;await rn();const S=n?n.scroll:a?fe():null;if(He){const g=t.hash&&document.getElementById(_t(t));S?scrollTo(S.x,S.y):g?g.scrollIntoView():scrollTo(0,0)}const U=document.activeElement!==R&&document.activeElement!==document.body;!r&&!U&&yn(t),He=!0,m.props.page&&Object.assign(E,m.props.page),X=!1,e==="popstate"&<(I),l.fulfil(void 0),H.forEach(g=>g(l.navigation)),N.navigating.set(z.current=null)}async function pt(e,t,n,r){return e.origin===Z&&e.pathname===location.pathname&&!xe?await de({status:r,error:n,url:e,route:t}):await q(e)}function pn(){let e,t,n;C.addEventListener("mousemove",o=>{const c=o.target;clearTimeout(e),e=setTimeout(()=>{s(c,j.hover)},20)});function r(o){o.defaultPrevented||s(o.composedPath()[0],j.tap)}C.addEventListener("mousedown",r),C.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const c of o)c.isIntersecting&&(we(new URL(c.target.href)),a.unobserve(c.target))},{threshold:0});async function s(o,c){const f=tt(o,C),d=f===t&&c>=n;if(!f||d)return;const{url:h,external:u,download:l}=ve(f,L,v.hash);if(u||l)return;const p=te(f),_=h&&ce(w.url)===ce(h);if(!(p.reload||_))if(c<=p.preload_data){t=f,n=j.tap;const m=await he(h,!1);if(!m)return;ln(m)}else c<=p.preload_code&&(t=f,n=c,we(h))}function i(){a.disconnect();for(const o of C.querySelectorAll("a")){const{url:c,external:f,download:d}=ve(o,L,v.hash);if(f||d)continue;const h=te(o);h.reload||(h.preload_code===j.viewport&&a.observe(o),h.preload_code===j.eager&&we(c))}}H.add(i),i()}function V(e,t){if(e instanceof le)return e.body;const n=ne(e),r=Xt(e);return v.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function In(e,t={}){return e=new URL(Ue(e)),e.origin!==Z?Promise.reject(new Error("goto: invalid URL")):Ce(e,t,0)}function gn(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function mn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(We(),!X){const r=je(w,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};ot.forEach(s=>s(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&We()}),navigator.connection?.saveData||pn(),C.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=tt(t.composedPath()[0],C);if(!n)return;const{url:r,external:a,target:s,download:i}=ve(n,L,v.hash);if(!r)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const o=te(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||i)return;const[f,d]=(v.hash?r.hash.replace(/^#/,""):r.href).split("#"),h=f===me(location);if(a||o.reload&&(!h||!d)){ht({url:r,type:"link"})?X=!0:t.preventDefault();return}if(d!==void 0&&h){const[,u]=w.url.href.split("#");if(u===d){if(t.preventDefault(),d===""||d==="top"&&n.ownerDocument.getElementById("top")===null)window.scrollTo({top:0});else{const l=n.ownerDocument.getElementById(decodeURIComponent(d));l&&(l.scrollIntoView(),l.focus())}return}if(M=!0,Le(k),e(r),!o.replace_state)return;M=!1}t.preventDefault(),await new Promise(u=>{requestAnimationFrame(()=>{setTimeout(u,0)}),setTimeout(u,100)}),await W({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href})}),C.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const i=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(ue(i,L,!1))return;const o=t.target,c=te(o);if(c.reload)return;t.preventDefault(),t.stopPropagation();const f=new FormData(o),d=r?.getAttribute("name");d&&f.append(d,r?.getAttribute("value")??""),i.search=new URLSearchParams(f).toString(),W({type:"form",url:i,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??i.href===location.href})}),addEventListener("popstate",async t=>{if(!Ae){if(t.state?.[F]){const n=t.state[F];if($={},n===k)return;const r=D[n],a=t.state[Qe]??{},s=new URL(t.state[jt]??location.href),i=t.state[Y],o=w.url?me(location)===me(w.url):!1;if(i===I&&(st||o)){a!==E.state&&(E.state=a),e(s),D[k]=fe(),r&&scrollTo(r.x,r.y),k=n;return}const f=n-k;await W({type:"popstate",url:s,popped:{state:a,scroll:r,delta:f},accept:()=>{k=n,I=i},block:()=>{history.go(-f)},nav_token:$})}else if(!M){const n=new URL(location.href);e(n),v.hash&&location.reload()}}}),addEventListener("hashchange",()=>{M&&(M=!1,history.replaceState({...history.state,[F]:++k,[Y]:I},"",location.href))});for(const t of document.querySelectorAll("link"))an.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&N.navigating.set(z.current=null)});function e(t){w.url=E.url=t,N.page.set($e(E)),N.page.notify()}}async function _n(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:c}){xe=!0;const f=new URL(location.href);let d;({params:a={},route:s={id:null}}=await he(f,!1)||{}),d=Te.find(({id:l})=>l===s.id);let h,u=!0;try{const l=r.map(async(_,m)=>{const R=o[m];return R?.uses&&(R.uses=mt(R.uses)),Oe({loader:v.nodes[_],url:f,params:a,route:s,parent:async()=>{const S={};for(let U=0;Us?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let s;throw a.headers.get("content-type")?.includes("application/json")?s=await a.json():a.status===404?s="Not Found":a.status===500&&(s="Internal Error"),new le(a.status,s)}return new Promise(async s=>{const i=new Map,o=a.body.getReader(),c=new TextDecoder;function f(h){return Kt(h,{...v.decoders,Promise:u=>new Promise((l,p)=>{i.set(u,{fulfil:l,reject:p})})})}let d="";for(;;){const{done:h,value:u}=await o.read();if(h&&!d)break;for(d+=!u&&d?` +`:c.decode(u,{stream:!0});;){const l=d.indexOf(` +`);if(l===-1)break;const p=JSON.parse(d.slice(0,l));if(d=d.slice(l+1),p.type==="redirect")return s(p);if(p.type==="data")p.nodes?.forEach(_=>{_?.type==="data"&&(_.uses=mt(_.uses),_.data=f(_.data))}),s(p);else if(p.type==="chunk"){const{id:_,data:m,error:R}=p,S=i.get(_);i.delete(_),R?S.reject(f(R)):S.fulfil(f(m))}}}})}function mt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Ae=!1;function yn(e){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const n=_t(e);if(n&&document.getElementById(n)){const{x:a,y:s}=fe();setTimeout(()=>{const i=history.state;Ae=!0,location.replace(`#${n}`),v.hash&&location.replace(e.hash),history.replaceState(i,"",e.hash),scrollTo(a,s),Ae=!1})}else{const a=document.body,s=a.getAttribute("tabindex");a.tabIndex=-1,a.focus({preventScroll:!0,focusVisible:!1}),s!==null?a.setAttribute("tabindex",s):a.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const a=[];for(let s=0;s{if(r.rangeCount===a.length){for(let s=0;s{a=c,s=f});return i.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n},willUnload:!t,type:r,complete:i},fulfil:a,reject:s}}function $e(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function wn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function _t(e){let t;if(v.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Rn as a,In as g,kn as l,E as p,N as s}; diff --git a/webapp/assets/_app/immutable/chunks/Dbd6PPbz.js b/webapp/assets/_app/immutable/chunks/Dbd6PPbz.js deleted file mode 100644 index cca64cf0..00000000 --- a/webapp/assets/_app/immutable/chunks/Dbd6PPbz.js +++ /dev/null @@ -1 +0,0 @@ -import"./DsnmJJEf.js";import{i as ae}from"./B3Pzt0F_.js";import{p as se,E as re,l as P,n as ie,s as r,g as t,m as k,a as le,f as p,j as v,k as U,r as f,c as l,d as oe,B as T,b as $,z as V,D as q,t as E,v as N,u as ne}from"./D8EpLgQ1.js";import{p as R,i as m}from"./5WA7h8uK.js";import{g as u,B as G}from"./CiE1LlKV.js";import{t as y}from"./BEkVdVE1.js";var de=p('
Checking...
'),ce=p('
'),ve=p('
Webhook installed
',1),fe=p('
No webhook installed
'),ue=p('

Webhook Status

');function ye(H,g){se(g,!1);const x=k();let h=R(g,"entityType",8),s=R(g,"entityId",8),j=R(g,"entityName",8),i=k(null),o=k(!1),b=k(!0);const O=re();async function _(){if(s())try{r(b,!0),h()==="repository"?r(i,await u.getRepositoryWebhookInfo(s())):r(i,await u.getOrganizationWebhookInfo(s()))}catch(e){e&&typeof e=="object"&&"response"in e&&e.response?.status===404?r(i,null):(console.warn("Failed to check webhook status:",e),r(i,null))}finally{r(b,!1)}}async function J(){if(s())try{r(o,!0),h()==="repository"?await u.installRepositoryWebhook(s()):await u.installOrganizationWebhook(s()),y.success("Webhook Installed",`Webhook for ${h()} ${j()} has been installed successfully.`),await _(),O("webhookStatusChanged",{installed:!0})}catch(e){y.error("Webhook Installation Failed",e instanceof Error?e.message:"Failed to install webhook.")}finally{r(o,!1)}}async function K(){if(s())try{r(o,!0),h()==="repository"?await u.uninstallRepositoryWebhook(s()):await u.uninstallOrganizationWebhook(s()),y.success("Webhook Uninstalled",`Webhook for ${h()} ${j()} has been uninstalled successfully.`),await _(),O("webhookStatusChanged",{installed:!1})}catch(e){y.error("Webhook Uninstall Failed",e instanceof Error?e.message:"Failed to uninstall webhook.")}finally{r(o,!1)}}P(()=>ie(s()),()=>{s()&&_()}),P(()=>t(i),()=>{r(x,t(i)&&t(i).active)}),le(),ae();var w=ue(),A=v(w),D=v(A),W=v(D),L=U(v(W),2),Q=v(L);{var X=e=>{var d=de();l(e,d)},Y=e=>{var d=T(),z=$(d);{var I=a=>{var n=ve(),B=U($(n),2);{var c=C=>{var F=ce(),te=v(F);f(F),E(()=>N(te,`URL: ${t(i),ne(()=>t(i).url||"N/A")??""}`)),l(C,F)};m(B,C=>{t(i)&&C(c)})}l(a,n)},S=a=>{var n=fe();l(a,n)};m(z,a=>{t(x)?a(I):a(S,!1)},!0)}l(e,d)};m(Q,e=>{t(b)?e(X):e(Y,!1)})}f(L),f(W);var M=U(W,2),Z=v(M);{var ee=e=>{var d=T(),z=$(d);{var I=a=>{G(a,{variant:"danger",size:"sm",get disabled(){return t(o)},$$events:{click:K},children:(n,B)=>{V();var c=q();E(()=>N(c,t(o)?"Uninstalling...":"Uninstall")),l(n,c)},$$slots:{default:!0}})},S=a=>{G(a,{variant:"primary",size:"sm",get disabled(){return t(o)},$$events:{click:J},children:(n,B)=>{V();var c=q();E(()=>N(c,t(o)?"Installing...":"Install Webhook")),l(n,c)},$$slots:{default:!0}})};m(z,a=>{t(x)?a(I):a(S,!1)})}l(e,d)};m(Z,e=>{t(b)||e(ee)})}f(M),f(D),f(A),f(w),l(H,w),oe()}export{ye as W}; diff --git a/webapp/assets/_app/immutable/chunks/BE4wujub.js b/webapp/assets/_app/immutable/chunks/MCv1Wq2q.js similarity index 96% rename from webapp/assets/_app/immutable/chunks/BE4wujub.js rename to webapp/assets/_app/immutable/chunks/MCv1Wq2q.js index 6b6a2146..5b0cc9f5 100644 --- a/webapp/assets/_app/immutable/chunks/BE4wujub.js +++ b/webapp/assets/_app/immutable/chunks/MCv1Wq2q.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as v}from"./B3Pzt0F_.js";import{p as w,l as m,n as s,g as r,m as g,a as x,B as h,b as T,c as B,d as S,s as k,u}from"./D8EpLgQ1.js";import{k as A}from"./C9DJVOi1.js";import{p as d}from"./5WA7h8uK.js";import{k as b,B as C}from"./BGVHQGl-.js";import{f as E}from"./ow_oMtSd.js";function q(_,i){w(i,!1);const c=g(),n=g();let e=d(i,"item",8),l=d(i,"statusType",8,"entity"),a=d(i,"statusField",8,"status");m(()=>(s(e()),s(a())),()=>{k(c,e()?.[a()]||"unknown")}),m(()=>(s(e()),s(l()),r(c),s(a())),()=>{k(n,(()=>{if(!e())return{variant:"error",text:"Unknown"};switch(l()){case"entity":return b(e());case"instance":let t="secondary";switch(r(c).toLowerCase()){case"running":t="success";break;case"stopped":t="info";break;case"creating":case"pending_create":t="warning";break;case"deleting":case"pending_delete":case"pending_force_delete":t="warning";break;case"error":case"deleted":t="error";break;case"active":case"online":t="success";break;case"idle":t="info";break;case"pending":case"installing":t="warning";break;case"failed":case"terminated":case"offline":t="error";break;case"unknown":default:t="secondary";break}return{variant:t,text:E(r(c))};case"enabled":return{variant:e().enabled?"success":"error",text:e().enabled?"Enabled":"Disabled"};case"custom":const o=e()[a()]||"Unknown";if(a()==="auth-type"){const f=o==="pat"||!o?"pat":"app";return{variant:f==="pat"?"success":"info",text:f==="pat"?"PAT":"App"}}return{variant:"info",text:o};default:return b(e())}})())}),x(),v();var p=h(),y=T(p);A(y,()=>(s(e()),s(a()),u(()=>`${e()?.name||"item"}-${e()?.[a()]||"status"}-${e()?.updated_at||"time"}`)),t=>{C(t,{get variant(){return r(n),u(()=>r(n).variant)},get text(){return r(n),u(()=>r(n).text)}})}),B(_,p),S()}export{q as S}; +import"./DsnmJJEf.js";import{i as v}from"./B3Pzt0F_.js";import{p as w,l as m,n as s,g as r,m as g,a as x,B as h,b as T,c as B,d as S,s as k,u}from"./D8EpLgQ1.js";import{k as A}from"./BrNfsPe8.js";import{p as d}from"./5WA7h8uK.js";import{k as b,B as C}from"./BGVHQGl-.js";import{f as E}from"./ow_oMtSd.js";function q(_,i){w(i,!1);const c=g(),n=g();let e=d(i,"item",8),l=d(i,"statusType",8,"entity"),a=d(i,"statusField",8,"status");m(()=>(s(e()),s(a())),()=>{k(c,e()?.[a()]||"unknown")}),m(()=>(s(e()),s(l()),r(c),s(a())),()=>{k(n,(()=>{if(!e())return{variant:"error",text:"Unknown"};switch(l()){case"entity":return b(e());case"instance":let t="secondary";switch(r(c).toLowerCase()){case"running":t="success";break;case"stopped":t="info";break;case"creating":case"pending_create":t="warning";break;case"deleting":case"pending_delete":case"pending_force_delete":t="warning";break;case"error":case"deleted":t="error";break;case"active":case"online":t="success";break;case"idle":t="info";break;case"pending":case"installing":t="warning";break;case"failed":case"terminated":case"offline":t="error";break;case"unknown":default:t="secondary";break}return{variant:t,text:E(r(c))};case"enabled":return{variant:e().enabled?"success":"error",text:e().enabled?"Enabled":"Disabled"};case"custom":const o=e()[a()]||"Unknown";if(a()==="auth-type"){const f=o==="pat"||!o?"pat":"app";return{variant:f==="pat"?"success":"info",text:f==="pat"?"PAT":"App"}}return{variant:"info",text:o};default:return b(e())}})())}),x(),v();var p=h(),y=T(p);A(y,()=>(s(e()),s(a()),u(()=>`${e()?.name||"item"}-${e()?.[a()]||"status"}-${e()?.updated_at||"time"}`)),t=>{C(t,{get variant(){return r(n),u(()=>r(n).variant)},get text(){return r(n),u(()=>r(n).text)}})}),B(_,p),S()}export{q as S}; diff --git a/webapp/assets/_app/immutable/chunks/BmGWMSQm.js b/webapp/assets/_app/immutable/chunks/OpktHEmj.js similarity index 97% rename from webapp/assets/_app/immutable/chunks/BmGWMSQm.js rename to webapp/assets/_app/immutable/chunks/OpktHEmj.js index 7e21970e..78eaac3e 100644 --- a/webapp/assets/_app/immutable/chunks/BmGWMSQm.js +++ b/webapp/assets/_app/immutable/chunks/OpktHEmj.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as K}from"./B3Pzt0F_.js";import{p as O,f as U,j as e,r as t,k as r,n as m,u as o,z as et,t as q,v as p,c as h,d as Q,E as ct,D as mt,B as Y,b as Z,g as P}from"./D8EpLgQ1.js";import{p as T,i as G,s as ut,a as pt}from"./5WA7h8uK.js";import{c as at,B as gt}from"./CiE1LlKV.js";import{b as R,B as H,e as xt}from"./BGVHQGl-.js";import{b as ft}from"./CoIRRsD9.js";import{e as yt}from"./wyaP0EDu.js";import{D as ht,G as tt}from"./C9DJVOi1.js";import{E as _t}from"./B7ITzBt8.js";import{S as bt}from"./BE4wujub.js";import{e as kt,i as wt}from"./u94nIB4-.js";import{b as Ct}from"./BAg1iRPq.js";var Pt=U('

ID
Created At
Updated At
Status
Pool Balancer Type
');function Wt(L,v){O(v,!1);let a=T(v,"entity",8),g=T(v,"entityType",8);function N(){return`${g().charAt(0).toUpperCase()+g().slice(1)} Information`}function n(){if(!a().endpoint?.base_url)return"#";switch(g()){case"repository":const d=a();return`${a().endpoint.base_url}/${d.owner}/${a().name}`;case"organization":return`${a().endpoint.base_url}/${a().name}`;case"enterprise":return`${a().endpoint.base_url}/enterprises/${a().name}`;default:return"#"}}function E(){return`${g().charAt(0).toUpperCase()+g().slice(1)} URL`}function V(){const d=a().pool_balancing_type;if(!d||d===""||d==="none")return"Round Robin (default)";switch(d){case"roundrobin":return"Round Robin";case"pack":return"Pack";default:return d}}K();var c=Pt(),x=e(c),_=e(x),I=e(_,!0);t(_);var b=r(_,2),i=e(b),f=r(e(i),2),k=e(f,!0);t(f),t(i);var u=r(i,2),D=r(e(u),2),M=e(D,!0);t(D),t(u);var w=r(u,2),S=r(e(w),2),$=e(S,!0);t(S),t(w);var s=r(w,2),C=r(e(s),2),l=e(C);{var j=d=>{H(d,{variant:"success",text:"Running"})},z=d=>{H(d,{variant:"error",text:"Stopped"})};G(l,d=>{m(a()),o(()=>a().pool_manager_status?.running)?d(j):d(z,!1)})}t(C),t(s);var B=r(s,2),A=r(e(B),2),y=e(A,!0);t(A),t(B);var W=r(B,2),F=e(W),rt=e(F,!0);t(F);var X=r(F,2),J=e(X),st=e(J);et(),t(J),t(X),t(W),t(b),t(x),t(c),q((d,ot,it,dt,nt,lt,vt)=>{p(I,d),p(k,(m(a()),o(()=>a().id))),p(M,ot),p($,it),p(y,dt),p(rt,nt),at(J,"href",lt),p(st,`${vt??""} `)},[()=>o(N),()=>(m(R),m(a()),o(()=>R(a().created_at))),()=>(m(R),m(a()),o(()=>R(a().updated_at))),()=>o(V),()=>o(E),()=>o(n),()=>o(n)]),h(L,c),Q()}var Tt=U('

No pools configured

'),Et=U('');function qt(L,v){O(v,!1);const[a,g]=ut(),N=()=>pt(yt,"$eagerCache",a);let n=T(v,"pools",8),E=T(v,"entityType",8),V=T(v,"entityId",8,""),c=T(v,"entityName",8,"");const x=ct();function _(){x("addPool",{entityType:E(),entityId:V(),entityName:c()})}const I=[{key:"id",title:"ID",flexible:!0,cellComponent:_t,cellProps:{entityType:"pool",showId:!0,fontMono:!0}},{key:"image",title:"Image",flexible:!0,cellComponent:tt,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:tt,cellProps:{field:"provider_name"}},{key:"status",title:"Status",cellComponent:bt,cellProps:{statusType:"enabled"}}],b={entityType:"pool",primaryText:{field:"id",isClickable:!0,href:"/pools/{id}",useId:!0,isMonospace:!0},secondaryText:{field:"entity_name",computedValue:s=>xt(s,N())},badges:[{type:"custom",value:s=>({variant:s.enabled?"success":"error",text:s.enabled?"Enabled":"Disabled"})}]};K();var i=Et(),f=e(i),k=e(f),u=e(k),D=e(u);t(u);var M=r(u,2);t(k);var w=r(k,2);{var S=s=>{var C=Tt(),l=r(e(C),4),j=e(l);t(l);var z=r(l,2),B=e(z);gt(B,{variant:"primary",size:"sm",$$events:{click:_},children:(A,y)=>{et();var W=mt("Add Pool");h(A,W)},$$slots:{default:!0}}),t(z),t(C),q(()=>p(j,`No pools configured for this ${E()??""}.`)),h(s,C)},$=s=>{ht(s,{get columns(){return I},get data(){return n()},loading:!1,error:"",searchTerm:"",showSearch:!1,showPagination:!1,currentPage:1,get perPage(){return m(n()),o(()=>n().length)},totalPages:1,get totalItems(){return m(n()),o(()=>n().length)},itemName:"pools",emptyTitle:"No pools configured",get emptyMessage(){return`No pools configured for this ${E()??""}.`},emptyIconType:"cog",get mobileCardConfig(){return b}})};G(w,s=>{m(n()),o(()=>n().length===0)?s(S):s($,!1)})}t(f),t(i),q(()=>{p(D,`Pools (${m(n()),o(()=>n().length)??""})`),at(M,"href",`${ft}/pools`)}),h(L,i),Q(),g()}var It=U('

'),Bt=U('

Events

'),Nt=U('

Events

No events available

');function Ft(L,v){O(v,!1);let a=T(v,"events",8),g=T(v,"eventsContainer",12,void 0);K();var N=Y(),n=Z(N);{var E=c=>{var x=Bt(),_=e(x),I=r(e(_),2);kt(I,5,a,wt,(b,i)=>{var f=It(),k=e(f),u=e(k),D=e(u,!0);t(u);var M=r(u,2),w=e(M);{var S=l=>{H(l,{variant:"error",text:"Error"})},$=l=>{var j=Y(),z=Z(j);{var B=y=>{H(y,{variant:"warning",text:"Warning"})},A=y=>{H(y,{variant:"info",text:"Info"})};G(z,y=>{P(i),o(()=>(P(i).event_level||"info").toLowerCase()==="warning")?y(B):y(A,!1)},!0)}h(l,j)};G(w,l=>{P(i),o(()=>(P(i).event_level||"info").toLowerCase()==="error")?l(S):l($,!1)})}var s=r(w,2),C=e(s,!0);t(s),t(M),t(k),t(f),q(l=>{p(D,(P(i),o(()=>P(i).message))),p(C,l)},[()=>(m(R),P(i),o(()=>R(P(i).created_at)))]),h(b,f)}),t(I),Ct(I,b=>g(b),()=>g()),t(_),t(x),h(c,x)},V=c=>{var x=Nt();h(c,x)};G(n,c=>{m(a()),o(()=>a()&&a().length>0)?c(E):c(V,!1)})}h(L,N),Q()}export{Wt as E,qt as P,Ft as a}; +import"./DsnmJJEf.js";import{i as K}from"./B3Pzt0F_.js";import{p as O,f as U,j as e,r as t,k as r,n as m,u as o,z as et,t as q,v as p,c as h,d as Q,E as ct,D as mt,B as Y,b as Z,g as P}from"./D8EpLgQ1.js";import{p as T,i as G,s as ut,a as pt}from"./5WA7h8uK.js";import{c as at,B as gt}from"./CiE1LlKV.js";import{b as R,B as H,e as xt}from"./BGVHQGl-.js";import{b as ft}from"./CRhkqW2i.js";import{e as yt}from"./wyaP0EDu.js";import{D as ht,G as tt}from"./BrNfsPe8.js";import{E as _t}from"./D4PaGKsV.js";import{S as bt}from"./MCv1Wq2q.js";import{e as kt,i as wt}from"./u94nIB4-.js";import{b as Ct}from"./BAg1iRPq.js";var Pt=U('

ID
Created At
Updated At
Status
Pool Balancer Type
');function Wt(L,v){O(v,!1);let a=T(v,"entity",8),g=T(v,"entityType",8);function N(){return`${g().charAt(0).toUpperCase()+g().slice(1)} Information`}function n(){if(!a().endpoint?.base_url)return"#";switch(g()){case"repository":const d=a();return`${a().endpoint.base_url}/${d.owner}/${a().name}`;case"organization":return`${a().endpoint.base_url}/${a().name}`;case"enterprise":return`${a().endpoint.base_url}/enterprises/${a().name}`;default:return"#"}}function E(){return`${g().charAt(0).toUpperCase()+g().slice(1)} URL`}function V(){const d=a().pool_balancing_type;if(!d||d===""||d==="none")return"Round Robin (default)";switch(d){case"roundrobin":return"Round Robin";case"pack":return"Pack";default:return d}}K();var c=Pt(),x=e(c),_=e(x),I=e(_,!0);t(_);var b=r(_,2),i=e(b),f=r(e(i),2),k=e(f,!0);t(f),t(i);var u=r(i,2),D=r(e(u),2),M=e(D,!0);t(D),t(u);var w=r(u,2),S=r(e(w),2),$=e(S,!0);t(S),t(w);var s=r(w,2),C=r(e(s),2),l=e(C);{var j=d=>{H(d,{variant:"success",text:"Running"})},z=d=>{H(d,{variant:"error",text:"Stopped"})};G(l,d=>{m(a()),o(()=>a().pool_manager_status?.running)?d(j):d(z,!1)})}t(C),t(s);var B=r(s,2),A=r(e(B),2),y=e(A,!0);t(A),t(B);var W=r(B,2),F=e(W),rt=e(F,!0);t(F);var X=r(F,2),J=e(X),st=e(J);et(),t(J),t(X),t(W),t(b),t(x),t(c),q((d,ot,it,dt,nt,lt,vt)=>{p(I,d),p(k,(m(a()),o(()=>a().id))),p(M,ot),p($,it),p(y,dt),p(rt,nt),at(J,"href",lt),p(st,`${vt??""} `)},[()=>o(N),()=>(m(R),m(a()),o(()=>R(a().created_at))),()=>(m(R),m(a()),o(()=>R(a().updated_at))),()=>o(V),()=>o(E),()=>o(n),()=>o(n)]),h(L,c),Q()}var Tt=U('

No pools configured

'),Et=U('');function qt(L,v){O(v,!1);const[a,g]=ut(),N=()=>pt(yt,"$eagerCache",a);let n=T(v,"pools",8),E=T(v,"entityType",8),V=T(v,"entityId",8,""),c=T(v,"entityName",8,"");const x=ct();function _(){x("addPool",{entityType:E(),entityId:V(),entityName:c()})}const I=[{key:"id",title:"ID",flexible:!0,cellComponent:_t,cellProps:{entityType:"pool",showId:!0,fontMono:!0}},{key:"image",title:"Image",flexible:!0,cellComponent:tt,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:tt,cellProps:{field:"provider_name"}},{key:"status",title:"Status",cellComponent:bt,cellProps:{statusType:"enabled"}}],b={entityType:"pool",primaryText:{field:"id",isClickable:!0,href:"/pools/{id}",useId:!0,isMonospace:!0},secondaryText:{field:"entity_name",computedValue:s=>xt(s,N())},badges:[{type:"custom",value:s=>({variant:s.enabled?"success":"error",text:s.enabled?"Enabled":"Disabled"})}]};K();var i=Et(),f=e(i),k=e(f),u=e(k),D=e(u);t(u);var M=r(u,2);t(k);var w=r(k,2);{var S=s=>{var C=Tt(),l=r(e(C),4),j=e(l);t(l);var z=r(l,2),B=e(z);gt(B,{variant:"primary",size:"sm",$$events:{click:_},children:(A,y)=>{et();var W=mt("Add Pool");h(A,W)},$$slots:{default:!0}}),t(z),t(C),q(()=>p(j,`No pools configured for this ${E()??""}.`)),h(s,C)},$=s=>{ht(s,{get columns(){return I},get data(){return n()},loading:!1,error:"",searchTerm:"",showSearch:!1,showPagination:!1,currentPage:1,get perPage(){return m(n()),o(()=>n().length)},totalPages:1,get totalItems(){return m(n()),o(()=>n().length)},itemName:"pools",emptyTitle:"No pools configured",get emptyMessage(){return`No pools configured for this ${E()??""}.`},emptyIconType:"cog",get mobileCardConfig(){return b}})};G(w,s=>{m(n()),o(()=>n().length===0)?s(S):s($,!1)})}t(f),t(i),q(()=>{p(D,`Pools (${m(n()),o(()=>n().length)??""})`),at(M,"href",`${ft}/pools`)}),h(L,i),Q(),g()}var It=U('

'),Bt=U('

Events

'),Nt=U('

Events

No events available

');function Ft(L,v){O(v,!1);let a=T(v,"events",8),g=T(v,"eventsContainer",12,void 0);K();var N=Y(),n=Z(N);{var E=c=>{var x=Bt(),_=e(x),I=r(e(_),2);kt(I,5,a,wt,(b,i)=>{var f=It(),k=e(f),u=e(k),D=e(u,!0);t(u);var M=r(u,2),w=e(M);{var S=l=>{H(l,{variant:"error",text:"Error"})},$=l=>{var j=Y(),z=Z(j);{var B=y=>{H(y,{variant:"warning",text:"Warning"})},A=y=>{H(y,{variant:"info",text:"Info"})};G(z,y=>{P(i),o(()=>(P(i).event_level||"info").toLowerCase()==="warning")?y(B):y(A,!1)},!0)}h(l,j)};G(w,l=>{P(i),o(()=>(P(i).event_level||"info").toLowerCase()==="error")?l(S):l($,!1)})}var s=r(w,2),C=e(s,!0);t(s),t(M),t(k),t(f),q(l=>{p(D,(P(i),o(()=>P(i).message))),p(C,l)},[()=>(m(R),P(i),o(()=>R(P(i).created_at)))]),h(b,f)}),t(I),Ct(I,b=>g(b),()=>g()),t(_),t(x),h(c,x)},V=c=>{var x=Nt();h(c,x)};G(n,c=>{m(a()),o(()=>a()&&a().length>0)?c(E):c(V,!1)})}h(L,N),Q()}export{Wt as E,qt as P,Ft as a}; diff --git a/webapp/assets/_app/immutable/entry/app.kAVAdeq9.js b/webapp/assets/_app/immutable/entry/app.OegKHTwb.js similarity index 50% rename from webapp/assets/_app/immutable/entry/app.kAVAdeq9.js rename to webapp/assets/_app/immutable/entry/app.OegKHTwb.js index f6063c71..3f3633bb 100644 --- a/webapp/assets/_app/immutable/entry/app.kAVAdeq9.js +++ b/webapp/assets/_app/immutable/entry/app.OegKHTwb.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DINiyk_8.js","../chunks/DsnmJJEf.js","../chunks/B3Pzt0F_.js","../chunks/D8EpLgQ1.js","../chunks/5WA7h8uK.js","../chunks/CiE1LlKV.js","../chunks/C41YH50Q.js","../chunks/CTf6mQoE.js","../chunks/CoIRRsD9.js","../chunks/duD3WMbl.js","../chunks/u94nIB4-.js","../chunks/BEkVdVE1.js","../assets/0.BPrCR_r7.css","../nodes/1.DcR4nNsi.js","../nodes/2.CiT4lj0D.js","../chunks/wyaP0EDu.js","../chunks/C6k1Q4We.js","../chunks/D4Caz1gY.js","../chunks/qB7B8uiS.js","../nodes/3.BSFz0YHn.js","../chunks/CO4LUyTP.js","../chunks/CNMHKIIK.js","../chunks/BGVHQGl-.js","../chunks/C9DJVOi1.js","../chunks/CCSWcuVN.js","../chunks/CGpPw4EW.js","../chunks/BE4wujub.js","../chunks/ow_oMtSd.js","../nodes/4.XnVoh6ca.js","../nodes/5.rvsSG-AQ.js","../chunks/CclkODgu.js","../chunks/KQ2xQpA3.js","../chunks/B7ITzBt8.js","../nodes/6.CtGX0qgG.js","../chunks/BmGWMSQm.js","../chunks/BAg1iRPq.js","../chunks/DDhBTdDt.js","../chunks/CwqI2jFH.js","../chunks/DZblzgqm.js","../nodes/7.0w3i9VHx.js","../nodes/8.BiZNKYxk.js","../nodes/9.DpSfMRgo.js","../nodes/10.LnrIJgIa.js","../nodes/11.Bsn67lBa.js","../nodes/12.B-vC_cmu.js","../chunks/Dbd6PPbz.js","../nodes/13.Br7HzjXP.js","../chunks/DQP15tlf.js","../chunks/CLYUNKnN.js","../nodes/14.Cd0DOn96.js","../nodes/15.CkHQugXH.js","../nodes/16.B35VVkOd.js","../nodes/17.CCltcs-Z.js","../chunks/C89fcOde.js","../nodes/18.iVIhGVtu.js"])))=>i.map(i=>d[i]); -import{s as A,aL as z,g as f,aN as U,aO as G,aP as Q,ax as W,aQ as Y,m as F,p as H,an as J,ao as K,o as X,aR as b,aS as Z,f as C,b as L,k as $,c as g,d as tt,B as T,j as et,r as rt,aT as D,D as st,t as ot,v as at}from"../chunks/D8EpLgQ1.js";import"../chunks/DsnmJJEf.js";import{p as I,i as V}from"../chunks/5WA7h8uK.js";import{c as w}from"../chunks/CCSWcuVN.js";import{b as k}from"../chunks/BAg1iRPq.js";function nt(c){return class extends it{constructor(t){super({component:c,...t})}}}class it{#e;#t;constructor(t){var a=new Map,u=(r,e)=>{var s=F(e,!1,!1);return a.set(r,s),s};const l=new Proxy({...t.props||{},$$events:{}},{get(r,e){return f(a.get(e)??u(e,Reflect.get(r,e)))},has(r,e){return e===z?!0:(f(a.get(e)??u(e,Reflect.get(r,e))),Reflect.has(r,e))},set(r,e,s){return A(a.get(e)??u(e,s),s),Reflect.set(r,e,s)}});this.#t=(t.hydrate?U:G)(t.component,{target:t.target,anchor:t.anchor,props:l,context:t.context,intro:t.intro??!1,recover:t.recover}),(!t?.props?.$$host||t.sync===!1)&&Q(),this.#e=l.$$events;for(const r of Object.keys(this.#t))r==="$set"||r==="$destroy"||r==="$on"||W(this,r,{get(){return this.#t[r]},set(e){this.#t[r]=e},enumerable:!0});this.#t.$set=r=>{Object.assign(l,r)},this.#t.$destroy=()=>{Y(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const u=(...l)=>a.call(this,...l);return this.#e[t].push(u),()=>{this.#e[t]=this.#e[t].filter(l=>l!==u)}}$destroy(){this.#t.$destroy()}}const ct="modulepreload",ut=function(c,t){return new URL(c,t).href},j={},o=function(t,a,u){let l=Promise.resolve();if(a&&a.length>0){let O=function(i){return Promise.all(i.map(d=>Promise.resolve(d).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};const e=document.getElementsByTagName("link"),s=document.querySelector("meta[property=csp-nonce]"),y=s?.nonce||s?.getAttribute("nonce");l=O(a.map(i=>{if(i=ut(i,u),i in j)return;j[i]=!0;const d=i.endsWith(".css"),v=d?'[rel="stylesheet"]':"";if(!!u)for(let n=e.length-1;n>=0;n--){const _=e[n];if(_.href===i&&(!d||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${v}`))return;const m=document.createElement("link");if(m.rel=d?"stylesheet":ct,d||(m.as="script"),m.crossOrigin="",m.href=i,y&&m.setAttribute("nonce",y),document.head.appendChild(m),d)return new Promise((n,_)=>{m.addEventListener("load",n),m.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${i}`)))})}))}function r(e){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=e,window.dispatchEvent(s),!s.defaultPrevented)throw e}return l.then(e=>{for(const s of e||[])s.status==="rejected"&&r(s.reason);return t().catch(r)})},Rt={};var lt=C('
'),_t=C(" ",1);function mt(c,t){H(t,!0);let a=I(t,"components",23,()=>[]),u=I(t,"data_0",3,null),l=I(t,"data_1",3,null);J(()=>t.stores.page.set(t.page)),K(()=>{t.stores,t.page,t.constructors,a(),t.form,u(),l(),t.stores.page.notify()});let r=b(!1),e=b(!1),s=b(null);X(()=>{const n=t.stores.page.subscribe(()=>{f(r)&&(A(e,!0),Z().then(()=>{A(s,document.title||"untitled page",!0)}))});return A(r,!0),n});const y=D(()=>t.constructors[1]);var O=_t(),i=L(O);{var d=n=>{const _=D(()=>t.constructors[0]);var h=T(),P=L(h);w(P,()=>f(_),(E,p)=>{k(p(E,{get data(){return u()},get form(){return t.form},get params(){return t.page.params},children:(R,vt)=>{var S=T(),B=L(S);w(B,()=>f(y),(N,M)=>{k(M(N,{get data(){return l()},get form(){return t.form},get params(){return t.page.params}}),q=>a()[1]=q,()=>a()?.[1])}),g(R,S)},$$slots:{default:!0}}),R=>a()[0]=R,()=>a()?.[0])}),g(n,h)},v=n=>{const _=D(()=>t.constructors[0]);var h=T(),P=L(h);w(P,()=>f(_),(E,p)=>{k(p(E,{get data(){return u()},get form(){return t.form},get params(){return t.page.params}}),R=>a()[0]=R,()=>a()?.[0])}),g(n,h)};V(i,n=>{t.constructors[1]?n(d):n(v,!1)})}var x=$(i,2);{var m=n=>{var _=lt(),h=et(_);{var P=E=>{var p=st();ot(()=>at(p,f(s))),g(E,p)};V(h,E=>{f(e)&&E(P)})}rt(_),g(n,_)};V(x,n=>{f(r)&&n(m)})}g(c,O),tt()}const yt=nt(mt),Ot=[()=>o(()=>import("../nodes/0.DINiyk_8.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url),()=>o(()=>import("../nodes/1.DcR4nNsi.js"),__vite__mapDeps([13,1,2,3,7,8]),import.meta.url),()=>o(()=>import("../nodes/2.CiT4lj0D.js"),__vite__mapDeps([14,1,2,3,4,10,5,8,15,16,17,18,11]),import.meta.url),()=>o(()=>import("../nodes/3.BSFz0YHn.js"),__vite__mapDeps([19,1,2,3,4,10,5,16,17,20,21,22,23,24,8,15,11,25,26,27]),import.meta.url),()=>o(()=>import("../nodes/4.XnVoh6ca.js"),__vite__mapDeps([28,1,2,3,4,5,16,17,20,21,22,23,10,24,8,15,11,25]),import.meta.url),()=>o(()=>import("../nodes/5.rvsSG-AQ.js"),__vite__mapDeps([29,1,2,3,4,5,8,20,10,16,17,18,15,30,31,11,22,23,24,32,25,26,27]),import.meta.url),()=>o(()=>import("../nodes/6.CtGX0qgG.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,30,10,16,17,18,31,34,22,15,23,24,32,26,27,35,36,11,37,38]),import.meta.url),()=>o(()=>import("../nodes/7.0w3i9VHx.js"),__vite__mapDeps([39,1,2,3,4,5,16,17,7,8,9,11]),import.meta.url),()=>o(()=>import("../nodes/8.BiZNKYxk.js"),__vite__mapDeps([40,1,2,3,4,5,31,18,20,10,11,23,24,16,8,22,32,26,27]),import.meta.url),()=>o(()=>import("../nodes/9.DpSfMRgo.js"),__vite__mapDeps([41,1,2,3,4,10,5,35,6,7,8,31,18,27,22]),import.meta.url),()=>o(()=>import("../nodes/10.LnrIJgIa.js"),__vite__mapDeps([42,1,2,3,4,5,16,17,7,8,9]),import.meta.url),()=>o(()=>import("../nodes/11.Bsn67lBa.js"),__vite__mapDeps([43,1,2,3,4,5,8,10,16,17,18,21,22,15,30,31,20,11,23,24,32,25,26,27]),import.meta.url),()=>o(()=>import("../nodes/12.B-vC_cmu.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,30,10,16,17,18,31,34,22,15,23,24,32,26,27,35,36,45,11,37,38]),import.meta.url),()=>o(()=>import("../nodes/13.Br7HzjXP.js"),__vite__mapDeps([46,1,2,3,4,5,8,20,37,10,16,17,18,38,47,15,31,11,22,23,24,32,25,26,27,48]),import.meta.url),()=>o(()=>import("../nodes/14.Cd0DOn96.js"),__vite__mapDeps([49,1,2,3,4,10,5,6,7,8,47,16,17,18,38,15,31,36,23,24,22,32,26,27,11]),import.meta.url),()=>o(()=>import("../nodes/15.CkHQugXH.js"),__vite__mapDeps([50,1,2,3,4,5,10,16,17,18,21,22,15,30,31,20,11,23,24,8,32,25,26,27]),import.meta.url),()=>o(()=>import("../nodes/16.B35VVkOd.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,30,10,16,17,18,31,34,22,15,23,24,32,26,27,35,36,45,11,37,38]),import.meta.url),()=>o(()=>import("../nodes/17.CCltcs-Z.js"),__vite__mapDeps([52,1,2,3,4,5,8,20,10,16,17,18,38,53,31,15,11,22,23,24,32,25,26,27,48]),import.meta.url),()=>o(()=>import("../nodes/18.iVIhGVtu.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,53,16,17,18,38,31,36,23,10,24,22,32,26,27,11]),import.meta.url)],Lt=[],At={"/":[2],"/credentials":[3],"/endpoints":[4],"/enterprises":[5],"/enterprises/[id]":[6],"/init":[7],"/instances":[8],"/instances/[id]":[9],"/login":[10],"/organizations":[11],"/organizations/[id]":[12],"/pools":[13],"/pools/[id]":[14],"/repositories":[15],"/repositories/[id]":[16],"/scalesets":[17],"/scalesets/[id]":[18]},dt={handleError:({error:c})=>{console.error(c)},reroute:()=>{},transport:{}},ft=Object.fromEntries(Object.entries(dt.transport).map(([c,t])=>[c,t.decode])),bt=!1,Tt=(c,t)=>ft[c](t);export{Tt as decode,ft as decoders,At as dictionary,bt as hash,dt as hooks,Rt as matchers,Ot as nodes,yt as root,Lt as server_loads}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.g860C_Ot.js","../chunks/DsnmJJEf.js","../chunks/B3Pzt0F_.js","../chunks/D8EpLgQ1.js","../chunks/5WA7h8uK.js","../chunks/CiE1LlKV.js","../chunks/BE8f1Riw.js","../chunks/DXCC0cSN.js","../chunks/CRhkqW2i.js","../chunks/duD3WMbl.js","../chunks/u94nIB4-.js","../chunks/BEkVdVE1.js","../assets/0.BPrCR_r7.css","../nodes/1.BjWDFEyD.js","../nodes/2.1DFwbmOU.js","../chunks/wyaP0EDu.js","../chunks/C6k1Q4We.js","../chunks/D4Caz1gY.js","../chunks/qB7B8uiS.js","../chunks/BZiHL9L3.js","../nodes/3.BWxN3TuB.js","../chunks/CO4LUyTP.js","../chunks/CNMHKIIK.js","../chunks/BGVHQGl-.js","../chunks/BrNfsPe8.js","../chunks/CCSWcuVN.js","../chunks/CGpPw4EW.js","../chunks/MCv1Wq2q.js","../chunks/ow_oMtSd.js","../nodes/4.D1IF4qSs.js","../nodes/5.CeMzA7DH.js","../chunks/CIBm3n2u.js","../chunks/KQ2xQpA3.js","../chunks/D4PaGKsV.js","../nodes/6.BPDnwpl3.js","../chunks/OpktHEmj.js","../chunks/BAg1iRPq.js","../chunks/BEoJgOul.js","../chunks/CRD55Dyg.js","../chunks/DZblzgqm.js","../nodes/7.CaVS6POQ.js","../nodes/8.W6llQu20.js","../nodes/9.DfrxaqP7.js","../nodes/10.Ci2MePhm.js","../nodes/11.BX_bMXWi.js","../nodes/12.C0lS_ubI.js","../chunks/BsqC4UA1.js","../nodes/13.CEJ1u9Ql.js","../chunks/Bgb-frqW.js","../chunks/BzlxTz7Q.js","../nodes/14.BJHnbtAi.js","../nodes/15.CqYhwqAI.js","../nodes/16.BVViOnXd.js","../nodes/17.DLt70sQQ.js","../chunks/2p_hWkLJ.js","../nodes/18.eu91cRrS.js"])))=>i.map(i=>d[i]); +import{s as A,aL as z,g as f,aN as U,aO as G,aP as Q,ax as W,aQ as Y,m as F,p as H,an as J,ao as K,o as X,aR as b,aS as Z,f as C,b as L,k as $,c as g,d as tt,B as T,j as et,r as rt,aT as D,D as st,t as ot,v as at}from"../chunks/D8EpLgQ1.js";import"../chunks/DsnmJJEf.js";import{p as I,i as V}from"../chunks/5WA7h8uK.js";import{c as w}from"../chunks/CCSWcuVN.js";import{b as k}from"../chunks/BAg1iRPq.js";function nt(c){return class extends it{constructor(t){super({component:c,...t})}}}class it{#e;#t;constructor(t){var a=new Map,u=(r,e)=>{var s=F(e,!1,!1);return a.set(r,s),s};const l=new Proxy({...t.props||{},$$events:{}},{get(r,e){return f(a.get(e)??u(e,Reflect.get(r,e)))},has(r,e){return e===z?!0:(f(a.get(e)??u(e,Reflect.get(r,e))),Reflect.has(r,e))},set(r,e,s){return A(a.get(e)??u(e,s),s),Reflect.set(r,e,s)}});this.#t=(t.hydrate?U:G)(t.component,{target:t.target,anchor:t.anchor,props:l,context:t.context,intro:t.intro??!1,recover:t.recover}),(!t?.props?.$$host||t.sync===!1)&&Q(),this.#e=l.$$events;for(const r of Object.keys(this.#t))r==="$set"||r==="$destroy"||r==="$on"||W(this,r,{get(){return this.#t[r]},set(e){this.#t[r]=e},enumerable:!0});this.#t.$set=r=>{Object.assign(l,r)},this.#t.$destroy=()=>{Y(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const u=(...l)=>a.call(this,...l);return this.#e[t].push(u),()=>{this.#e[t]=this.#e[t].filter(l=>l!==u)}}$destroy(){this.#t.$destroy()}}const ct="modulepreload",ut=function(c,t){return new URL(c,t).href},j={},o=function(t,a,u){let l=Promise.resolve();if(a&&a.length>0){let O=function(i){return Promise.all(i.map(d=>Promise.resolve(d).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};const e=document.getElementsByTagName("link"),s=document.querySelector("meta[property=csp-nonce]"),y=s?.nonce||s?.getAttribute("nonce");l=O(a.map(i=>{if(i=ut(i,u),i in j)return;j[i]=!0;const d=i.endsWith(".css"),v=d?'[rel="stylesheet"]':"";if(!!u)for(let n=e.length-1;n>=0;n--){const _=e[n];if(_.href===i&&(!d||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${v}`))return;const m=document.createElement("link");if(m.rel=d?"stylesheet":ct,d||(m.as="script"),m.crossOrigin="",m.href=i,y&&m.setAttribute("nonce",y),document.head.appendChild(m),d)return new Promise((n,_)=>{m.addEventListener("load",n),m.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${i}`)))})}))}function r(e){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=e,window.dispatchEvent(s),!s.defaultPrevented)throw e}return l.then(e=>{for(const s of e||[])s.status==="rejected"&&r(s.reason);return t().catch(r)})},Rt={};var lt=C('
'),_t=C(" ",1);function mt(c,t){H(t,!0);let a=I(t,"components",23,()=>[]),u=I(t,"data_0",3,null),l=I(t,"data_1",3,null);J(()=>t.stores.page.set(t.page)),K(()=>{t.stores,t.page,t.constructors,a(),t.form,u(),l(),t.stores.page.notify()});let r=b(!1),e=b(!1),s=b(null);X(()=>{const n=t.stores.page.subscribe(()=>{f(r)&&(A(e,!0),Z().then(()=>{A(s,document.title||"untitled page",!0)}))});return A(r,!0),n});const y=D(()=>t.constructors[1]);var O=_t(),i=L(O);{var d=n=>{const _=D(()=>t.constructors[0]);var h=T(),P=L(h);w(P,()=>f(_),(E,p)=>{k(p(E,{get data(){return u()},get form(){return t.form},get params(){return t.page.params},children:(R,vt)=>{var S=T(),B=L(S);w(B,()=>f(y),(N,M)=>{k(M(N,{get data(){return l()},get form(){return t.form},get params(){return t.page.params}}),q=>a()[1]=q,()=>a()?.[1])}),g(R,S)},$$slots:{default:!0}}),R=>a()[0]=R,()=>a()?.[0])}),g(n,h)},v=n=>{const _=D(()=>t.constructors[0]);var h=T(),P=L(h);w(P,()=>f(_),(E,p)=>{k(p(E,{get data(){return u()},get form(){return t.form},get params(){return t.page.params}}),R=>a()[0]=R,()=>a()?.[0])}),g(n,h)};V(i,n=>{t.constructors[1]?n(d):n(v,!1)})}var x=$(i,2);{var m=n=>{var _=lt(),h=et(_);{var P=E=>{var p=st();ot(()=>at(p,f(s))),g(E,p)};V(h,E=>{f(e)&&E(P)})}rt(_),g(n,_)};V(x,n=>{f(r)&&n(m)})}g(c,O),tt()}const yt=nt(mt),Ot=[()=>o(()=>import("../nodes/0.g860C_Ot.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url),()=>o(()=>import("../nodes/1.BjWDFEyD.js"),__vite__mapDeps([13,1,2,3,7,8]),import.meta.url),()=>o(()=>import("../nodes/2.1DFwbmOU.js"),__vite__mapDeps([14,1,2,3,4,10,5,8,15,16,17,18,11,19]),import.meta.url),()=>o(()=>import("../nodes/3.BWxN3TuB.js"),__vite__mapDeps([20,1,2,3,4,10,5,16,17,21,22,23,24,25,8,15,11,19,26,27,28]),import.meta.url),()=>o(()=>import("../nodes/4.D1IF4qSs.js"),__vite__mapDeps([29,1,2,3,4,5,16,17,21,22,23,24,10,25,8,15,11,19,26]),import.meta.url),()=>o(()=>import("../nodes/5.CeMzA7DH.js"),__vite__mapDeps([30,1,2,3,4,5,8,21,10,16,17,18,19,15,31,32,11,23,24,25,33,26,27,28]),import.meta.url),()=>o(()=>import("../nodes/6.BPDnwpl3.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,31,10,16,17,19,18,32,35,23,15,24,25,33,27,28,36,37,11,38,39]),import.meta.url),()=>o(()=>import("../nodes/7.CaVS6POQ.js"),__vite__mapDeps([40,1,2,3,4,5,16,17,7,8,9,11,19]),import.meta.url),()=>o(()=>import("../nodes/8.W6llQu20.js"),__vite__mapDeps([41,1,2,3,4,5,32,18,21,10,11,24,25,16,8,23,19,33,27,28]),import.meta.url),()=>o(()=>import("../nodes/9.DfrxaqP7.js"),__vite__mapDeps([42,1,2,3,4,10,5,36,6,7,8,32,18,28,23,19]),import.meta.url),()=>o(()=>import("../nodes/10.Ci2MePhm.js"),__vite__mapDeps([43,1,2,3,4,5,16,17,7,8,9,19]),import.meta.url),()=>o(()=>import("../nodes/11.BX_bMXWi.js"),__vite__mapDeps([44,1,2,3,4,5,8,10,16,17,18,22,23,19,15,31,32,21,11,24,25,33,26,27,28]),import.meta.url),()=>o(()=>import("../nodes/12.C0lS_ubI.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,31,10,16,17,19,18,32,35,23,15,24,25,33,27,28,36,37,46,11,38,39]),import.meta.url),()=>o(()=>import("../nodes/13.CEJ1u9Ql.js"),__vite__mapDeps([47,1,2,3,4,5,21,38,10,16,17,18,19,39,48,15,32,11,23,24,25,8,33,26,27,28,49]),import.meta.url),()=>o(()=>import("../nodes/14.BJHnbtAi.js"),__vite__mapDeps([50,1,2,3,4,10,5,6,7,8,48,16,17,18,39,19,15,32,37,24,25,23,33,27,28,11]),import.meta.url),()=>o(()=>import("../nodes/15.CqYhwqAI.js"),__vite__mapDeps([51,1,2,3,4,5,10,16,17,18,19,22,23,15,31,32,21,11,24,25,8,33,26,27,28]),import.meta.url),()=>o(()=>import("../nodes/16.BVViOnXd.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,31,10,16,17,19,18,32,35,23,15,24,25,33,27,28,36,37,46,11,38,39]),import.meta.url),()=>o(()=>import("../nodes/17.DLt70sQQ.js"),__vite__mapDeps([53,1,2,3,4,5,8,21,10,16,17,18,39,19,54,32,15,11,23,24,25,33,26,27,28,49]),import.meta.url),()=>o(()=>import("../nodes/18.eu91cRrS.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,54,16,17,18,19,39,32,37,24,10,25,23,33,27,28,11]),import.meta.url)],Lt=[],At={"/":[2],"/credentials":[3],"/endpoints":[4],"/enterprises":[5],"/enterprises/[id]":[6],"/init":[7],"/instances":[8],"/instances/[id]":[9],"/login":[10],"/organizations":[11],"/organizations/[id]":[12],"/pools":[13],"/pools/[id]":[14],"/repositories":[15],"/repositories/[id]":[16],"/scalesets":[17],"/scalesets/[id]":[18]},dt={handleError:({error:c})=>{console.error(c)},reroute:()=>{},transport:{}},ft=Object.fromEntries(Object.entries(dt.transport).map(([c,t])=>[c,t.decode])),bt=!1,Tt=(c,t)=>ft[c](t);export{Tt as decode,ft as decoders,At as dictionary,bt as hash,dt as hooks,Rt as matchers,Ot as nodes,yt as root,Lt as server_loads}; diff --git a/webapp/assets/_app/immutable/entry/start.CI0Cdear.js b/webapp/assets/_app/immutable/entry/start.CI0Cdear.js deleted file mode 100644 index b4e2a9f4..00000000 --- a/webapp/assets/_app/immutable/entry/start.CI0Cdear.js +++ /dev/null @@ -1 +0,0 @@ -import{l as o,a as r}from"../chunks/CTf6mQoE.js";export{o as load_css,r as start}; diff --git a/webapp/assets/_app/immutable/entry/start.S-sEy6br.js b/webapp/assets/_app/immutable/entry/start.S-sEy6br.js new file mode 100644 index 00000000..b348b111 --- /dev/null +++ b/webapp/assets/_app/immutable/entry/start.S-sEy6br.js @@ -0,0 +1 @@ +import{l as o,a as r}from"../chunks/DXCC0cSN.js";export{o as load_css,r as start}; diff --git a/webapp/assets/_app/immutable/nodes/0.DINiyk_8.js b/webapp/assets/_app/immutable/nodes/0.g860C_Ot.js similarity index 99% rename from webapp/assets/_app/immutable/nodes/0.DINiyk_8.js rename to webapp/assets/_app/immutable/nodes/0.g860C_Ot.js index d50c7e62..89f2370a 100644 --- a/webapp/assets/_app/immutable/nodes/0.DINiyk_8.js +++ b/webapp/assets/_app/immutable/nodes/0.g860C_Ot.js @@ -1,4 +1,4 @@ -import"../chunks/DsnmJJEf.js";import{i as He}from"../chunks/B3Pzt0F_.js";import{p as Se,o as De,s as h,m as F,g as e,l as X,a as Le,f as c,b as E,j as o,k as n,r as t,u as i,t as P,v as ge,c as s,B as U,C as Y,e as I,d as Be,q as cr,h as gr,$ as hr}from"../chunks/D8EpLgQ1.js";import{a as me,i as w,s as Ae}from"../chunks/5WA7h8uK.js";import{c as _,s as Q,h as ur,B as fr,d as Ge}from"../chunks/CiE1LlKV.js";import{p as qe}from"../chunks/C41YH50Q.js";import{g as fe}from"../chunks/CTf6mQoE.js";import{b as l}from"../chunks/CoIRRsD9.js";import{b as Ne,a as mr}from"../chunks/duD3WMbl.js";import{e as ne,i as ce,w as xr}from"../chunks/u94nIB4-.js";import{t as Oe}from"../chunks/BEkVdVE1.js";const pr=async({url:Z})=>({url:Z.pathname}),kr=!1,br=!1,va=Object.freeze(Object.defineProperty({__proto__:null,load:pr,prerender:kr,ssr:br},Symbol.toStringTag,{value:"Module"}));var yr=c('
Live Updates
'),_r=c('
Connecting
'),wr=c('
Updates Unavailable
'),Mr=c('
Manual Refresh
'),$r=Y(''),jr=Y(''),zr=Y(''),Cr=Y(''),Hr=c(' '),Sr=c(' '),Lr=c('
'),Br=c('
'),Ar=c('
'),Vr=c('
'),Ir=Y(''),Rr=Y(''),Tr=Y(''),Pr=Y(''),Er=c(' '),Gr=c(' '),Or=c('
'),Dr=c('
'),qr=c('
GARM GARM

GARM

',1);function Nr(Z,ee){Se(ee,!1);const[re,he]=Ae(),M=()=>me(xr,"$websocketStore",re),m=()=>me(qe,"$page",re),u=F(),y=F();let $=F(!1),G=F(!1),f=F(!1);De(()=>{j(),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",v)});function j(){const a=localStorage.getItem("theme");a==="dark"?h(f,!0):a==="light"?h(f,!1):h(f,window.matchMedia("(prefers-color-scheme: dark)").matches),p()}function v(a){(!localStorage.getItem("theme")||localStorage.getItem("theme")==="system")&&(h(f,a.matches),p())}function O(){h(f,!e(f)),localStorage.setItem("theme",e(f)?"dark":"light"),p()}function p(){e(f)?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}function z(){Ne.logout(),h(G,!1)}const le=[{href:`${l}/`,label:"Dashboard",icon:["M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2-2z","M8 5a2 2 0 012-2h4a2 2 0 012 2v2H8V5z"]},{href:`${l}/repositories`,label:"Repositories",icon:["M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2-2z","M8 5a2 2 0 012-2h4a2 2 0 012 2v2H8V5z"]},{href:`${l}/organizations`,label:"Organizations",icon:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"},{href:`${l}/enterprises`,label:"Enterprises",icon:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"},{href:`${l}/pools`,label:"Pools",icon:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},{href:`${l}/scalesets`,label:"Scale Sets",icon:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"},{href:`${l}/instances`,label:"Runners",icon:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"}],J=[{href:`${l}/credentials`,label:"Credentials",icon:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1721 9z"},{href:`${l}/endpoints`,label:"Endpoints",icon:"M13 10V3L4 14h7v7l9-11h-7z"}];X(()=>M(),()=>{h(u,M())}),X(()=>m(),()=>{m().url.pathname&&h($,!1)}),X(()=>m(),()=>{h(y,m().url.pathname)}),Le(),He();var D=qr(),V=E(D),q=o(V),ae=o(q),K=o(ae),te=o(K),b=o(te),C=n(b,2);t(te),t(K);var N=n(K,2),oe=o(N),de=o(oe),xe=o(de);{var ke=a=>{var r=yr();s(a,r)},Ue=a=>{var r=U(),g=E(r);{var H=x=>{var S=_r();s(x,S)},R=x=>{var S=U(),W=E(S);{var L=k=>{var T=wr();s(k,T)},B=k=>{var T=Mr();s(k,T)};w(W,k=>{e(u),i(()=>e(u).error)?k(L):k(B,!1)},!0)}s(x,S)};w(g,x=>{e(u),i(()=>e(u).connecting)?x(H):x(R,!1)},!0)}s(a,r)};w(xe,a=>{e(u),i(()=>e(u).connected)?a(ke):a(Ue,!1)})}t(de);var pe=n(de,2),Qe=o(pe);{var Fe=a=>{var r=$r();s(a,r)},Je=a=>{var r=jr();s(a,r)};w(Qe,a=>{e(f)?a(Fe):a(Je,!1)})}t(pe),t(oe),t(N),t(ae);var Ve=n(ae,2),Ie=o(Ve);ne(Ie,1,()=>le,ce,(a,r)=>{var g=Hr(),H=o(g),R=o(H);{var x=L=>{var B=U(),k=E(B);ne(k,1,()=>(e(r),i(()=>e(r).icon)),ce,(T,se)=>{var d=zr();P(()=>_(d,"d",e(se))),s(T,d)}),s(L,B)},S=L=>{var B=Cr();P(()=>_(B,"d",(e(r),i(()=>e(r).icon)))),s(L,B)};w(R,L=>{e(r),i(()=>Array.isArray(e(r).icon))?L(x):L(S,!1)})}t(H);var W=n(H);t(g),P(()=>{_(g,"href",(e(r),i(()=>e(r).href))),Q(g,1,`group flex items-center px-2 py-2 text-sm font-medium rounded-md transition-colors duration-200 +import"../chunks/DsnmJJEf.js";import{i as He}from"../chunks/B3Pzt0F_.js";import{p as Se,o as De,s as h,m as F,g as e,l as X,a as Le,f as c,b as E,j as o,k as n,r as t,u as i,t as P,v as ge,c as s,B as U,C as Y,e as I,d as Be,q as cr,h as gr,$ as hr}from"../chunks/D8EpLgQ1.js";import{a as me,i as w,s as Ae}from"../chunks/5WA7h8uK.js";import{c as _,s as Q,h as ur,B as fr,d as Ge}from"../chunks/CiE1LlKV.js";import{p as qe}from"../chunks/BE8f1Riw.js";import{g as fe}from"../chunks/DXCC0cSN.js";import{b as l}from"../chunks/CRhkqW2i.js";import{b as Ne,a as mr}from"../chunks/duD3WMbl.js";import{e as ne,i as ce,w as xr}from"../chunks/u94nIB4-.js";import{t as Oe}from"../chunks/BEkVdVE1.js";const pr=async({url:Z})=>({url:Z.pathname}),kr=!1,br=!1,va=Object.freeze(Object.defineProperty({__proto__:null,load:pr,prerender:kr,ssr:br},Symbol.toStringTag,{value:"Module"}));var yr=c('
Live Updates
'),_r=c('
Connecting
'),wr=c('
Updates Unavailable
'),Mr=c('
Manual Refresh
'),$r=Y(''),jr=Y(''),zr=Y(''),Cr=Y(''),Hr=c(' '),Sr=c(' '),Lr=c('
'),Br=c('
'),Ar=c('
'),Vr=c('
'),Ir=Y(''),Rr=Y(''),Tr=Y(''),Pr=Y(''),Er=c(' '),Gr=c(' '),Or=c('
'),Dr=c('
'),qr=c('
GARM GARM

GARM

',1);function Nr(Z,ee){Se(ee,!1);const[re,he]=Ae(),M=()=>me(xr,"$websocketStore",re),m=()=>me(qe,"$page",re),u=F(),y=F();let $=F(!1),G=F(!1),f=F(!1);De(()=>{j(),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",v)});function j(){const a=localStorage.getItem("theme");a==="dark"?h(f,!0):a==="light"?h(f,!1):h(f,window.matchMedia("(prefers-color-scheme: dark)").matches),p()}function v(a){(!localStorage.getItem("theme")||localStorage.getItem("theme")==="system")&&(h(f,a.matches),p())}function O(){h(f,!e(f)),localStorage.setItem("theme",e(f)?"dark":"light"),p()}function p(){e(f)?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}function z(){Ne.logout(),h(G,!1)}const le=[{href:`${l}/`,label:"Dashboard",icon:["M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2-2z","M8 5a2 2 0 012-2h4a2 2 0 012 2v2H8V5z"]},{href:`${l}/repositories`,label:"Repositories",icon:["M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2-2z","M8 5a2 2 0 012-2h4a2 2 0 012 2v2H8V5z"]},{href:`${l}/organizations`,label:"Organizations",icon:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"},{href:`${l}/enterprises`,label:"Enterprises",icon:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"},{href:`${l}/pools`,label:"Pools",icon:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},{href:`${l}/scalesets`,label:"Scale Sets",icon:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"},{href:`${l}/instances`,label:"Runners",icon:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z"}],J=[{href:`${l}/credentials`,label:"Credentials",icon:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1721 9z"},{href:`${l}/endpoints`,label:"Endpoints",icon:"M13 10V3L4 14h7v7l9-11h-7z"}];X(()=>M(),()=>{h(u,M())}),X(()=>m(),()=>{m().url.pathname&&h($,!1)}),X(()=>m(),()=>{h(y,m().url.pathname)}),Le(),He();var D=qr(),V=E(D),q=o(V),ae=o(q),K=o(ae),te=o(K),b=o(te),C=n(b,2);t(te),t(K);var N=n(K,2),oe=o(N),de=o(oe),xe=o(de);{var ke=a=>{var r=yr();s(a,r)},Ue=a=>{var r=U(),g=E(r);{var H=x=>{var S=_r();s(x,S)},R=x=>{var S=U(),W=E(S);{var L=k=>{var T=wr();s(k,T)},B=k=>{var T=Mr();s(k,T)};w(W,k=>{e(u),i(()=>e(u).error)?k(L):k(B,!1)},!0)}s(x,S)};w(g,x=>{e(u),i(()=>e(u).connecting)?x(H):x(R,!1)},!0)}s(a,r)};w(xe,a=>{e(u),i(()=>e(u).connected)?a(ke):a(Ue,!1)})}t(de);var pe=n(de,2),Qe=o(pe);{var Fe=a=>{var r=$r();s(a,r)},Je=a=>{var r=jr();s(a,r)};w(Qe,a=>{e(f)?a(Fe):a(Je,!1)})}t(pe),t(oe),t(N),t(ae);var Ve=n(ae,2),Ie=o(Ve);ne(Ie,1,()=>le,ce,(a,r)=>{var g=Hr(),H=o(g),R=o(H);{var x=L=>{var B=U(),k=E(B);ne(k,1,()=>(e(r),i(()=>e(r).icon)),ce,(T,se)=>{var d=zr();P(()=>_(d,"d",e(se))),s(T,d)}),s(L,B)},S=L=>{var B=Cr();P(()=>_(B,"d",(e(r),i(()=>e(r).icon)))),s(L,B)};w(R,L=>{e(r),i(()=>Array.isArray(e(r).icon))?L(x):L(S,!1)})}t(H);var W=n(H);t(g),P(()=>{_(g,"href",(e(r),i(()=>e(r).href))),Q(g,1,`group flex items-center px-2 py-2 text-sm font-medium rounded-md transition-colors duration-200 ${e(y),e(r),i(()=>e(y)===e(r).href?"bg-gray-100 text-gray-900 dark:bg-gray-700 dark:text-white":"text-gray-600 hover:bg-gray-50 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-gray-700 dark:hover:text-white")??""}`),ge(W,` ${e(r),i(()=>e(r).label)??""}`)}),s(a,g)});var be=n(Ie,2);ne(be,5,()=>J,ce,(a,r)=>{var g=Sr(),H=o(g),R=o(H);t(H);var x=n(H);t(g),P(()=>{_(g,"href",(e(r),i(()=>e(r).href))),Q(g,1,`group flex items-center px-2 py-2 text-sm font-medium rounded-md transition-colors duration-200 ${e(y),e(r),i(()=>e(y)===e(r).href?"bg-gray-100 text-gray-900 dark:bg-gray-700 dark:text-white":"text-gray-600 hover:bg-gray-50 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-gray-700 dark:hover:text-white")??""}`),_(R,"d",(e(r),i(()=>e(r).icon))),ge(x,` ${e(r),i(()=>e(r).label)??""}`)}),s(a,g)}),t(be);var Re=n(be,2),Ke=o(Re);t(Re),t(Ve),t(q),t(V);var ye=n(V,2),_e=o(ye),Te=o(_e),we=n(Te,2),Me=o(we),$e=n(Me,2),Pe=n($e,4),We=o(Pe);{var Xe=a=>{var r=Lr();s(a,r)},Ye=a=>{var r=U(),g=E(r);{var H=x=>{var S=Br();s(x,S)},R=x=>{var S=U(),W=E(S);{var L=k=>{var T=Ar();s(k,T)},B=k=>{var T=Vr();s(k,T)};w(W,k=>{e(u),i(()=>e(u).error)?k(L):k(B,!1)},!0)}s(x,S)};w(g,x=>{e(u),i(()=>e(u).connecting)?x(H):x(R,!1)},!0)}s(a,r)};w(We,a=>{e(u),i(()=>e(u).connected)?a(Xe):a(Ye,!1)})}t(Pe),t(we);var je=n(we,2),Ze=o(je);{var er=a=>{var r=Ir();s(a,r)},rr=a=>{var r=Rr();s(a,r)};w(Ze,a=>{e(f)?a(er):a(rr,!1)})}t(je),t(_e);var ar=n(_e,2);{var tr=a=>{var r=Or(),g=o(r),H=n(g,2),R=o(H),x=o(R);t(R);var S=n(R,2),W=o(S),L=o(W);ne(L,1,()=>le,ce,(se,d)=>{var A=Er(),ie=o(A),ze=o(ie);{var Ce=ve=>{var ue=U(),lr=E(ue);ne(lr,1,()=>(e(d),i(()=>e(d).icon)),ce,(dr,vr)=>{var Ee=Tr();P(()=>_(Ee,"d",e(vr))),s(dr,Ee)}),s(ve,ue)},ir=ve=>{var ue=Pr();P(()=>_(ue,"d",(e(d),i(()=>e(d).icon)))),s(ve,ue)};w(ze,ve=>{e(d),i(()=>Array.isArray(e(d).icon))?ve(Ce):ve(ir,!1)})}t(ie);var nr=n(ie);t(A),P(()=>{_(A,"href",(e(d),i(()=>e(d).href))),Q(A,1,`group flex items-center px-2 py-2 text-base font-medium rounded-md transition-colors duration-200 ${e(y),e(d),i(()=>e(y)===e(d).href?"bg-gray-100 dark:bg-gray-700 text-gray-900 dark:text-white":"text-gray-600 hover:bg-gray-50 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-gray-700 dark:hover:text-white")??""}`),ge(nr,` ${e(d),i(()=>e(d).label)??""}`)}),I("click",A,()=>h($,!1)),s(se,A)});var B=n(L,2);ne(B,5,()=>J,ce,(se,d)=>{var A=Gr(),ie=o(A),ze=o(ie);t(ie);var Ce=n(ie);t(A),P(()=>{_(A,"href",(e(d),i(()=>e(d).href))),Q(A,1,`group flex items-center px-2 py-2 text-base font-medium rounded-md transition-colors duration-200 diff --git a/webapp/assets/_app/immutable/nodes/1.DcR4nNsi.js b/webapp/assets/_app/immutable/nodes/1.BjWDFEyD.js similarity index 87% rename from webapp/assets/_app/immutable/nodes/1.DcR4nNsi.js rename to webapp/assets/_app/immutable/nodes/1.BjWDFEyD.js index 820e3848..73802f5b 100644 --- a/webapp/assets/_app/immutable/nodes/1.DcR4nNsi.js +++ b/webapp/assets/_app/immutable/nodes/1.BjWDFEyD.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as u}from"../chunks/B3Pzt0F_.js";import{p as h,f as g,b as v,t as d,c as l,d as _,j as s,r as a,k as x,v as o}from"../chunks/D8EpLgQ1.js";import{s as k,p}from"../chunks/CTf6mQoE.js";const $={get error(){return p.error},get status(){return p.status}};k.updated.check;const i=$;var b=g("

",1);function y(m,c){h(c,!1),u();var r=b(),t=v(r),n=s(t,!0);a(t);var e=x(t,2),f=s(e,!0);a(e),d(()=>{o(n,i.status),o(f,i.error?.message)}),l(m,r),_()}export{y as component}; +import"../chunks/DsnmJJEf.js";import{i as u}from"../chunks/B3Pzt0F_.js";import{p as h,f as g,b as v,t as d,c as l,d as _,j as s,r as a,k as x,v as o}from"../chunks/D8EpLgQ1.js";import{s as k,p}from"../chunks/DXCC0cSN.js";const $={get error(){return p.error},get status(){return p.status}};k.updated.check;const i=$;var b=g("

",1);function y(m,c){h(c,!1),u();var r=b(),t=v(r),n=s(t,!0);a(t);var e=x(t,2),f=s(e,!0);a(e),d(()=>{o(n,i.status),o(f,i.error?.message)}),l(m,r),_()}export{y as component}; diff --git a/webapp/assets/_app/immutable/nodes/10.Ci2MePhm.js b/webapp/assets/_app/immutable/nodes/10.Ci2MePhm.js new file mode 100644 index 00000000..1e54ae7f --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/10.Ci2MePhm.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as X}from"../chunks/B3Pzt0F_.js";import{p as Y,o as Z,l as ee,a as ae,f as C,h as re,t as _,g as a,e as k,c as w,d as te,$ as se,k as d,D as de,m as f,j as r,s as i,r as t,z as B,v as D}from"../chunks/D8EpLgQ1.js";import{i as oe,s as ie,a as le}from"../chunks/5WA7h8uK.js";import{B as ne,r as q,c as I}from"../chunks/CiE1LlKV.js";import{b as T}from"../chunks/C6k1Q4We.js";import{p as ce}from"../chunks/D4Caz1gY.js";import{g as U}from"../chunks/DXCC0cSN.js";import{b as c}from"../chunks/CRhkqW2i.js";import{a as me,b as ue}from"../chunks/duD3WMbl.js";import{e as pe}from"../chunks/BZiHL9L3.js";var ve=C('

'),fe=C('
GARM

Sign in to GARM

GitHub Actions Runner Manager

');function ze(H,K){Y(K,!1);const[W,F]=ie(),$=()=>le(me,"$authStore",W);let m=f(""),u=f(""),o=f(!1),l=f("");Z(()=>{J()});function J(){const e=localStorage.getItem("theme");let s=!1;e==="dark"?s=!0:e==="light"?s=!1:s=window.matchMedia("(prefers-color-scheme: dark)").matches,s?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}async function M(){if(!a(m)||!a(u)){i(l,"Please enter both username and password");return}i(o,!0),i(l,"");try{await ue.login(a(m),a(u)),U(`${c}/`)}catch(e){i(l,pe(e))}finally{i(o,!1)}}function L(e){e.key==="Enter"&&M()}ee(()=>($(),c),()=>{$().isAuthenticated&&U(`${c}/`)}),ae(),X();var g=fe();re(e=>{se.title="Login - GARM"});var z=r(g),h=r(z),A=r(h),S=r(A),N=d(S,2);t(A),B(4),t(h);var b=d(h,2),x=r(b),y=r(x),p=d(r(y),2);q(p),t(y);var P=d(y,2),v=d(r(P),2);q(v),t(P),t(x);var G=d(x,2);{var O=e=>{var s=ve(),n=r(s),E=d(r(n),2),j=r(E),V=r(j,!0);t(j),t(E),t(n),t(s),_(()=>D(V,a(l))),w(e,s)};oe(G,e=>{a(l)&&e(O)})}var R=d(G,2),Q=r(R);ne(Q,{type:"submit",variant:"primary",size:"md",fullWidth:!0,get disabled(){return a(o)},get loading(){return a(o)},children:(e,s)=>{B();var n=de();_(()=>D(n,a(o)?"Signing in...":"Sign in")),w(e,n)},$$slots:{default:!0}}),t(R),t(b),t(z),t(g),_(()=>{I(S,"src",`${c??""}/assets/garm-light.svg`),I(N,"src",`${c??""}/assets/garm-dark.svg`),p.disabled=a(o),v.disabled=a(o)}),T(p,()=>a(m),e=>i(m,e)),k("keypress",p,L),T(v,()=>a(u),e=>i(u,e)),k("keypress",v,L),k("submit",b,ce(M)),w(H,g),te(),F()}export{ze as component}; diff --git a/webapp/assets/_app/immutable/nodes/10.LnrIJgIa.js b/webapp/assets/_app/immutable/nodes/10.LnrIJgIa.js deleted file mode 100644 index d1f479c8..00000000 --- a/webapp/assets/_app/immutable/nodes/10.LnrIJgIa.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as X}from"../chunks/B3Pzt0F_.js";import{p as Y,o as Z,l as ee,a as ae,f as H,h as re,t as _,g as a,e as k,c as w,d as te,$ as se,k as d,D as de,m as f,j as r,s as i,r as t,z as B,v as D}from"../chunks/D8EpLgQ1.js";import{i as oe,s as ie,a as le}from"../chunks/5WA7h8uK.js";import{B as ne,r as q,c as T}from"../chunks/CiE1LlKV.js";import{b as U}from"../chunks/C6k1Q4We.js";import{p as ce}from"../chunks/D4Caz1gY.js";import{g as C}from"../chunks/CTf6mQoE.js";import{b as c}from"../chunks/CoIRRsD9.js";import{a as me,b as ue}from"../chunks/duD3WMbl.js";var pe=H('

'),ve=H('
GARM

Sign in to GARM

GitHub Actions Runner Manager

');function Le(I,K){Y(K,!1);const[W,F]=ie(),$=()=>le(me,"$authStore",W);let m=f(""),u=f(""),o=f(!1),l=f("");Z(()=>{J()});function J(){const e=localStorage.getItem("theme");let s=!1;e==="dark"?s=!0:e==="light"?s=!1:s=window.matchMedia("(prefers-color-scheme: dark)").matches,s?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}async function L(){if(!a(m)||!a(u)){i(l,"Please enter both username and password");return}i(o,!0),i(l,"");try{await ue.login(a(m),a(u)),C(`${c}/`)}catch(e){i(l,e instanceof Error?e.message:"Login failed")}finally{i(o,!1)}}function M(e){e.key==="Enter"&&L()}ee(()=>($(),c),()=>{$().isAuthenticated&&C(`${c}/`)}),ae(),X();var g=ve();re(e=>{se.title="Login - GARM"});var z=r(g),h=r(z),S=r(h),A=r(S),N=d(A,2);t(S),B(4),t(h);var b=d(h,2),x=r(b),y=r(x),p=d(r(y),2);q(p),t(y);var G=d(y,2),v=d(r(G),2);q(v),t(G),t(x);var P=d(x,2);{var O=e=>{var s=pe(),n=r(s),E=d(r(n),2),j=r(E),V=r(j,!0);t(j),t(E),t(n),t(s),_(()=>D(V,a(l))),w(e,s)};oe(P,e=>{a(l)&&e(O)})}var R=d(P,2),Q=r(R);ne(Q,{type:"submit",variant:"primary",size:"md",fullWidth:!0,get disabled(){return a(o)},get loading(){return a(o)},children:(e,s)=>{B();var n=de();_(()=>D(n,a(o)?"Signing in...":"Sign in")),w(e,n)},$$slots:{default:!0}}),t(R),t(b),t(z),t(g),_(()=>{T(A,"src",`${c??""}/assets/garm-light.svg`),T(N,"src",`${c??""}/assets/garm-dark.svg`),p.disabled=a(o),v.disabled=a(o)}),U(p,()=>a(m),e=>i(m,e)),k("keypress",p,M),U(v,()=>a(u),e=>i(u,e)),k("keypress",v,M),k("submit",b,ce(L)),w(I,g),te(),F()}export{Le as component}; diff --git a/webapp/assets/_app/immutable/nodes/11.BX_bMXWi.js b/webapp/assets/_app/immutable/nodes/11.BX_bMXWi.js new file mode 100644 index 00000000..90aff430 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/11.BX_bMXWi.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Le}from"../chunks/B3Pzt0F_.js";import{p as Ne,E as Ke,o as je,l as x,s as a,m as s,g as e,y as W,a as qe,f as T,k as i,j as o,r as n,c as E,t as Q,v as ie,x as Ae,u as v,z as Fe,e as $e,d as Ge,h as Qe,b as Xe,$ as Ze,n as P,q as ue}from"../chunks/D8EpLgQ1.js";import{a as He,i as X,s as Je}from"../chunks/5WA7h8uK.js";import{r as ge,b as Ue,h as et,c as tt,g as me}from"../chunks/CiE1LlKV.js";import{b as Ie}from"../chunks/CRhkqW2i.js";import{e as at,i as rt}from"../chunks/u94nIB4-.js";import{b as Re,a as We}from"../chunks/C6k1Q4We.js";import{p as ot}from"../chunks/D4Caz1gY.js";import{M as nt}from"../chunks/qB7B8uiS.js";import{F as it}from"../chunks/CNMHKIIK.js";import{e as Pe}from"../chunks/BZiHL9L3.js";import{e as Ve,a as Me}from"../chunks/wyaP0EDu.js";import{U as st}from"../chunks/CIBm3n2u.js";import{D as lt}from"../chunks/KQ2xQpA3.js";import{P as dt}from"../chunks/CO4LUyTP.js";import{t as K}from"../chunks/BEkVdVE1.js";import{B as ct,k as Ce,g as Oe,l as ut}from"../chunks/BGVHQGl-.js";import{D as gt,A as Be,G as mt,a as pt}from"../chunks/BrNfsPe8.js";import{E as ft}from"../chunks/D4PaGKsV.js";import{E as bt}from"../chunks/CGpPw4EW.js";import{S as vt}from"../chunks/MCv1Wq2q.js";var yt=T('

'),ht=T('

Loading...

'),_t=T(""),xt=T(''),kt=T('

Webhook secret will be automatically generated

'),wt=T('
'),zt=T('

Create Organization

');function $t(pe,fe){Ne(fe,!1);const[be,ve]=Je(),f=()=>He(Ve,"$eagerCache",be),D=s(),w=s(),z=s(),Z=s(),$=Ke();let C=s(!1),b=s(""),y=s("github"),r=s({name:"",credentials_name:"",webhook_secret:"",pool_balancer_type:"roundrobin"}),k=s(!0),p=s(!0);async function A(){if(!f().loaded.credentials&&!f().loading.credentials)try{await Me.getCredentials()}catch(d){a(b,Pe(d))}}function B(d){a(y,d.detail),W(r,e(r).credentials_name="")}function c(){if(e(r).credentials_name){const d=e(D).find(L=>L.name===e(r).credentials_name);d&&d.forge_type&&a(y,d.forge_type)}}function ye(){const d=new Uint8Array(32);return crypto.getRandomValues(d),Array.from(d,L=>L.toString(16).padStart(2,"0")).join("")}async function he(){if(!e(r).name?.trim()){a(b,"Organization name is required");return}if(!e(r).credentials_name){a(b,"Please select credentials");return}try{a(C,!0),a(b,"");const d={...e(r),install_webhook:e(k),auto_generate_secret:e(p)};$("submit",d)}catch(d){a(b,d instanceof Error?d.message:"Failed to create organization"),a(C,!1)}}je(()=>{A()}),x(()=>f(),()=>{a(D,f().credentials)}),x(()=>f(),()=>{a(w,f().loading.credentials)}),x(()=>(e(D),e(y)),()=>{a(z,e(D).filter(d=>e(y)?d.forge_type===e(y):!0))}),x(()=>e(p),()=>{e(p)?W(r,e(r).webhook_secret=ye()):e(p)||W(r,e(r).webhook_secret="")}),x(()=>(e(r),e(p)),()=>{a(Z,e(r).name?.trim()!==""&&e(r).credentials_name!==""&&(e(p)||e(r).webhook_secret&&e(r).webhook_secret.trim()!==""))}),qe(),Le(),nt(pe,{$$events:{close:()=>$("close")},children:(d,L)=>{var ee=zt(),N=i(o(ee),2);{var te=h=>{var _=yt(),F=o(_),U=o(F,!0);n(F),n(_),Q(()=>ie(U,e(b))),E(h,_)};X(N,h=>{e(b)&&h(te)})}var _e=i(N,2);{var xe=h=>{var _=ht();E(h,_)},ke=h=>{var _=wt(),F=o(_);it(F,{get selectedForgeType(){return e(y)},set selectedForgeType(l){a(y,l)},$$events:{select:B},$$legacy:!0});var U=i(F,2),se=i(o(U),2);ge(se),n(U);var j=i(U,2),S=i(o(j),2);Q(()=>{e(r),Ae(()=>{e(z)})});var q=o(S);q.value=q.__value="";var we=i(q);at(we,1,()=>e(z),rt,(l,m)=>{var O=_t(),de=o(O);n(O);var ce={};Q(()=>{ie(de,`${e(m),v(()=>e(m).name)??""} (${e(m),v(()=>e(m).endpoint?.name||"Unknown endpoint")??""})`),ce!==(ce=(e(m),v(()=>e(m).name)))&&(O.value=(O.__value=(e(m),v(()=>e(m).name)))??"")}),E(l,O)}),n(S),n(j);var G=i(j,2),ae=i(o(G),2);Q(()=>{e(r),Ae(()=>{})});var H=o(ae);H.value=H.__value="roundrobin";var le=i(H);le.value=le.__value="pack",n(ae),n(G);var re=i(G,2),oe=o(re),t=o(oe);ge(t),Fe(2),n(oe);var u=i(oe,2),I=o(u),M=o(I);ge(M),Fe(2),n(I);var g=i(I,2);{var J=l=>{var m=xt();ge(m),Re(m,()=>e(r).webhook_secret,O=>W(r,e(r).webhook_secret=O)),E(l,m)},ne=l=>{var m=kt();E(l,m)};X(g,l=>{e(p)?l(ne,!1):l(J)})}n(u),n(re);var V=i(re,2),Y=o(V),R=i(Y,2),ze=o(R,!0);n(R),n(V),n(_),Q(()=>{R.disabled=e(C)||e(w)||!e(Z),ie(ze,e(C)?"Creating...":"Create Organization")}),Re(se,()=>e(r).name,l=>W(r,e(r).name=l)),Ue(S,()=>e(r).credentials_name,l=>W(r,e(r).credentials_name=l)),$e("change",S,c),Ue(ae,()=>e(r).pool_balancer_type,l=>W(r,e(r).pool_balancer_type=l)),We(t,()=>e(k),l=>a(k,l)),We(M,()=>e(p),l=>a(p,l)),$e("click",Y,()=>$("close")),$e("submit",_,ot(he)),E(h,_)};X(_e,h=>{e(C)?h(xe):h(ke,!1)})}n(ee),E(d,ee)},$$slots:{default:!0}}),Ge(),ve()}var Ct=T(''),Ot=T('
',1);function Kt(pe,fe){Ne(fe,!1);const[be,ve]=Je(),f=()=>He(Ve,"$eagerCache",be),D=s(),w=s(),z=s(),Z=s();let $=s([]),C=s(!0),b=s(""),y=s(""),r=s(1),k=s(25),p=s(!1),A=s(!1),B=s(!1),c=s(null);function ye(){a(p,!1),a(B,!1),a(A,!1)}async function he(t){try{a(b,"");const u=t.detail,I={name:u.name,credentials_name:u.credentials_name,webhook_secret:u.webhook_secret,pool_balancer_type:u.pool_balancer_type},M=await me.createOrganization(I);if(u.install_webhook&&M.id)try{await me.installOrganizationWebhook(M.id),K.success("Webhook Installed",`Webhook for organization ${M.name} has been installed successfully.`)}catch(g){console.warn("Organization created but webhook installation failed:",g),K.error("Webhook Installation Failed",g instanceof Error?g.message:"Failed to install webhook. You can try installing it manually from the organization details page.")}K.success("Organization Created",`Organization ${M.name} has been created successfully.`),a(p,!1)}catch(u){throw a(b,Pe(u)),u}}async function d(t){if(e(c))try{await me.updateOrganization(e(c).id,t),K.success("Organization Updated",`Organization ${e(c).name} has been updated successfully.`),a(A,!1),a(c,null)}catch(u){throw u}}async function L(){if(e(c))try{a(b,""),await me.deleteOrganization(e(c).id),K.success("Organization Deleted",`Organization ${e(c).name} has been deleted successfully.`),a(c,null)}catch(t){const u=Pe(t);K.error("Delete Failed",u)}finally{ye()}}function ee(){a(p,!0)}function N(t){a(c,t),a(A,!0)}function te(t){a(c,t),a(B,!0)}je(async()=>{try{a(C,!0);const t=await Me.getOrganizations();t&&Array.isArray(t)&&a($,t)}catch(t){console.error("Failed to load organizations:",t),a(b,t instanceof Error?t.message:"Failed to load organizations")}finally{a(C,!1)}});async function _e(){try{await Me.retryResource("organizations")}catch(t){console.error("Retry failed:",t)}}const xe=[{key:"name",title:"Name",cellComponent:ft,cellProps:{entityType:"organization"}},{key:"endpoint",title:"Endpoint",cellComponent:bt},{key:"credentials",title:"Credentials",cellComponent:mt,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:vt,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:pt}],ke={entityType:"organization",primaryText:{field:"name",isClickable:!0,href:"/organizations/{id}"},customInfo:[{icon:t=>Oe(t?.endpoint?.endpoint_type||"unknown"),text:t=>t?.endpoint?.name||"Unknown"}],badges:[{type:"custom",value:t=>Ce(t)}],actions:[{type:"edit",handler:t=>N(t)},{type:"delete",handler:t=>te(t)}]};function h(t){a(y,t.detail.term),a(r,1)}function _(t){a(r,t.detail.page)}function F(t){a(k,t.detail.perPage),a(r,1)}function U(t){N(t.detail.item)}function se(t){te(t.detail.item)}x(()=>(e($),f()),()=>{(!e($).length||f().loaded.organizations)&&a($,f().organizations)}),x(()=>f(),()=>{a(C,f().loading.organizations)}),x(()=>f(),()=>{a(D,f().errorMessages.organizations)}),x(()=>(e($),e(y)),()=>{a(w,ut(e($),e(y)))}),x(()=>(e(w),e(k)),()=>{a(z,Math.ceil(e(w).length/e(k)))}),x(()=>(e(r),e(z)),()=>{e(r)>e(z)&&e(z)>0&&a(r,e(z))}),x(()=>(e(w),e(r),e(k)),()=>{a(Z,e(w).slice((e(r)-1)*e(k),e(r)*e(k)))}),qe(),Le();var j=Ot();Qe(t=>{Ze.title="Organizations - GARM"});var S=Xe(j),q=o(S);dt(q,{title:"Organizations",description:"Manage GitHub and Gitea organizations",actionLabel:"Add Organization",$$events:{action:ee}});var we=i(q,2);{let t=ue(()=>e(D)||e(b)),u=ue(()=>!!e(D));gt(we,{get columns(){return xe},get data(){return e(Z)},get loading(){return e(C)},get error(){return e(t)},get searchTerm(){return e(y)},searchPlaceholder:"Search organizations...",get currentPage(){return e(r)},get perPage(){return e(k)},get totalPages(){return e(z)},get totalItems(){return e(w),v(()=>e(w).length)},itemName:"organizations",emptyIconType:"building",get showRetry(){return e(u)},get mobileCardConfig(){return ke},$$events:{search:h,pageChange:_,perPageChange:F,retry:_e,edit:U,delete:se},$$slots:{"mobile-card":(I,M)=>{const g=ue(()=>M.item),J=ue(()=>(P(Ce),P(e(g)),v(()=>Ce(e(g)))));var ne=Ct(),V=o(ne),Y=o(V),R=o(Y),ze=o(R,!0);n(R);var l=i(R,2),m=o(l),O=o(m);et(O,()=>(P(Oe),P(e(g)),v(()=>Oe(e(g).endpoint?.endpoint_type||"unknown"))));var de=i(O,2),ce=o(de,!0);n(de),n(m),n(l),n(Y),n(V);var Ee=i(V,2),Te=o(Ee);ct(Te,{get variant(){return P(e(J)),v(()=>e(J).variant)},get text(){return P(e(J)),v(()=>e(J).text)}});var De=i(Te,2),Se=o(De);Be(Se,{action:"edit",size:"sm",title:"Edit organization",ariaLabel:"Edit organization",$$events:{click:()=>N(e(g))}});var Ye=i(Se,2);Be(Ye,{action:"delete",size:"sm",title:"Delete organization",ariaLabel:"Delete organization",$$events:{click:()=>te(e(g))}}),n(De),n(Ee),n(ne),Q(()=>{tt(Y,"href",(P(Ie),P(e(g)),v(()=>`${Ie}/organizations/${e(g).id}`))),ie(ze,(P(e(g)),v(()=>e(g).name))),ie(ce,(P(e(g)),v(()=>e(g).endpoint?.name||"Unknown")))}),E(I,ne)}}})}n(S);var G=i(S,2);{var ae=t=>{$t(t,{$$events:{close:()=>a(p,!1),submit:he}})};X(G,t=>{e(p)&&t(ae)})}var H=i(G,2);{var le=t=>{st(t,{get entity(){return e(c)},entityType:"organization",$$events:{close:()=>{a(A,!1),a(c,null)},submit:u=>d(u.detail)}})};X(H,t=>{e(A)&&e(c)&&t(le)})}var re=i(H,2);{var oe=t=>{lt(t,{title:"Delete Organization",message:"Are you sure you want to delete this organization? This action cannot be undone.",get itemName(){return e(c),v(()=>e(c).name)},$$events:{close:()=>{a(B,!1),a(c,null)},confirm:L}})};X(re,t=>{e(B)&&e(c)&&t(oe)})}E(pe,j),Ge(),ve()}export{Kt as component}; diff --git a/webapp/assets/_app/immutable/nodes/11.Bsn67lBa.js b/webapp/assets/_app/immutable/nodes/11.Bsn67lBa.js deleted file mode 100644 index 2a8fb7cb..00000000 --- a/webapp/assets/_app/immutable/nodes/11.Bsn67lBa.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as Ie}from"../chunks/B3Pzt0F_.js";import{p as Be,E as Ve,o as Le,l as x,s as a,m as s,g as e,y as W,a as Ne,f as T,k as i,j as o,r as n,c as M,t as V,v as se,x as De,u as v,z as Fe,e as $e,d as je,h as Ye,b as Ke,$ as Qe,n as E,q as ue}from"../chunks/D8EpLgQ1.js";import{a as qe,i as Y,s as Ge}from"../chunks/5WA7h8uK.js";import{r as ge,b as Se,h as Xe,c as Ze,g as me}from"../chunks/CiE1LlKV.js";import{b as Ae}from"../chunks/CoIRRsD9.js";import{e as et,i as tt}from"../chunks/u94nIB4-.js";import{b as Ue,a as Re}from"../chunks/C6k1Q4We.js";import{p as at}from"../chunks/D4Caz1gY.js";import{M as rt}from"../chunks/qB7B8uiS.js";import{F as ot}from"../chunks/CNMHKIIK.js";import{e as He,a as Pe}from"../chunks/wyaP0EDu.js";import{U as nt}from"../chunks/CclkODgu.js";import{D as it}from"../chunks/KQ2xQpA3.js";import{P as st}from"../chunks/CO4LUyTP.js";import{t as ie}from"../chunks/BEkVdVE1.js";import{B as lt,k as Ce,g as Oe,l as dt}from"../chunks/BGVHQGl-.js";import{D as ct,A as We,G as ut,a as gt}from"../chunks/C9DJVOi1.js";import{E as mt}from"../chunks/B7ITzBt8.js";import{E as pt}from"../chunks/CGpPw4EW.js";import{S as ft}from"../chunks/BE4wujub.js";var bt=T('

'),vt=T('

Loading...

'),yt=T(""),ht=T(''),_t=T('

Webhook secret will be automatically generated

'),xt=T('
'),kt=T('

Create Organization

');function wt(pe,fe){Be(fe,!1);const[be,ve]=Ge(),p=()=>qe(He,"$eagerCache",be),D=s(),w=s(),z=s(),K=s(),$=Ve();let C=s(!1),f=s(""),y=s("github"),r=s({name:"",credentials_name:"",webhook_secret:"",pool_balancer_type:"roundrobin"}),k=s(!0),b=s(!0);async function I(){if(!p().loaded.credentials&&!p().loading.credentials)try{await Pe.getCredentials()}catch(d){a(f,d instanceof Error?d.message:"Failed to load credentials")}}function B(d){a(y,d.detail),W(r,e(r).credentials_name="")}function c(){if(e(r).credentials_name){const d=e(D).find(L=>L.name===e(r).credentials_name);d&&d.forge_type&&a(y,d.forge_type)}}function ye(){const d=new Uint8Array(32);return crypto.getRandomValues(d),Array.from(d,L=>L.toString(16).padStart(2,"0")).join("")}async function he(){if(!e(r).name?.trim()){a(f,"Organization name is required");return}if(!e(r).credentials_name){a(f,"Please select credentials");return}try{a(C,!0),a(f,"");const d={...e(r),install_webhook:e(k),auto_generate_secret:e(b)};$("submit",d)}catch(d){a(f,d instanceof Error?d.message:"Failed to create organization"),a(C,!1)}}Le(()=>{I()}),x(()=>p(),()=>{a(D,p().credentials)}),x(()=>p(),()=>{a(w,p().loading.credentials)}),x(()=>(e(D),e(y)),()=>{a(z,e(D).filter(d=>e(y)?d.forge_type===e(y):!0))}),x(()=>e(b),()=>{e(b)?W(r,e(r).webhook_secret=ye()):e(b)||W(r,e(r).webhook_secret="")}),x(()=>(e(r),e(b)),()=>{a(K,e(r).name?.trim()!==""&&e(r).credentials_name!==""&&(e(b)||e(r).webhook_secret&&e(r).webhook_secret.trim()!==""))}),Ne(),Ie(),rt(pe,{$$events:{close:()=>$("close")},children:(d,L)=>{var F=kt(),N=i(o(F),2);{var _e=h=>{var _=bt(),S=o(_),A=o(S,!0);n(S),n(_),V(()=>se(A,e(f))),M(h,_)};Y(N,h=>{e(f)&&h(_e)})}var xe=i(N,2);{var ke=h=>{var _=vt();M(h,_)},we=h=>{var _=xt(),S=o(_);ot(S,{get selectedForgeType(){return e(y)},set selectedForgeType(l){a(y,l)},$$events:{select:B},$$legacy:!0});var A=i(S,2),Q=i(o(A),2);ge(Q),n(A);var U=i(A,2),R=i(o(U),2);V(()=>{e(r),De(()=>{e(z)})});var X=o(R);X.value=X.__value="";var le=i(X);et(le,1,()=>e(z),tt,(l,m)=>{var P=yt(),ze=o(P);n(P);var ne={};V(()=>{se(ze,`${e(m),v(()=>e(m).name)??""} (${e(m),v(()=>e(m).endpoint?.name||"Unknown endpoint")??""})`),ne!==(ne=(e(m),v(()=>e(m).name)))&&(P.value=(P.__value=(e(m),v(()=>e(m).name)))??"")}),M(l,P)}),n(R),n(U);var Z=i(U,2),j=i(o(Z),2);V(()=>{e(r),De(()=>{})});var ee=o(j);ee.value=ee.__value="roundrobin";var de=i(ee);de.value=de.__value="pack",n(j),n(Z);var te=i(Z,2),t=o(te),g=o(t);ge(g),Fe(2),n(t);var q=i(t,2),O=o(q),u=o(O);ge(u),Fe(2),n(O);var G=i(O,2);{var ae=l=>{var m=ht();ge(m),Ue(m,()=>e(r).webhook_secret,P=>W(r,e(r).webhook_secret=P)),M(l,m)},re=l=>{var m=_t();M(l,m)};Y(G,l=>{e(b)?l(re,!1):l(ae)})}n(q),n(te);var H=i(te,2),J=o(H),oe=i(J,2),ce=o(oe,!0);n(oe),n(H),n(_),V(()=>{oe.disabled=e(C)||e(w)||!e(K),se(ce,e(C)?"Creating...":"Create Organization")}),Ue(Q,()=>e(r).name,l=>W(r,e(r).name=l)),Se(R,()=>e(r).credentials_name,l=>W(r,e(r).credentials_name=l)),$e("change",R,c),Se(j,()=>e(r).pool_balancer_type,l=>W(r,e(r).pool_balancer_type=l)),Re(g,()=>e(k),l=>a(k,l)),Re(u,()=>e(b),l=>a(b,l)),$e("click",J,()=>$("close")),$e("submit",_,at(he)),M(h,_)};Y(xe,h=>{e(C)?h(ke):h(we,!1)})}n(F),M(d,F)},$$slots:{default:!0}}),je(),ve()}var zt=T(''),$t=T('
',1);function Jt(pe,fe){Be(fe,!1);const[be,ve]=Ge(),p=()=>qe(He,"$eagerCache",be),D=s(),w=s(),z=s(),K=s();let $=s([]),C=s(!0),f=s(""),y=s(""),r=s(1),k=s(25),b=s(!1),I=s(!1),B=s(!1),c=s(null);async function ye(t){try{a(f,"");const g=t.detail,q={name:g.name,credentials_name:g.credentials_name,webhook_secret:g.webhook_secret,pool_balancer_type:g.pool_balancer_type},O=await me.createOrganization(q);if(g.install_webhook&&O.id)try{await me.installOrganizationWebhook(O.id),ie.success("Webhook Installed",`Webhook for organization ${O.name} has been installed successfully.`)}catch(u){console.warn("Organization created but webhook installation failed:",u),ie.error("Webhook Installation Failed",u instanceof Error?u.message:"Failed to install webhook. You can try installing it manually from the organization details page.")}ie.success("Organization Created",`Organization ${O.name} has been created successfully.`),a(b,!1)}catch(g){throw a(f,g instanceof Error?g.message:"Failed to create organization"),g}}async function he(t){if(e(c))try{await me.updateOrganization(e(c).id,t),ie.success("Organization Updated",`Organization ${e(c).name} has been updated successfully.`),a(I,!1),a(c,null)}catch(g){throw g}}async function d(){if(e(c))try{a(f,""),await me.deleteOrganization(e(c).id),ie.success("Organization Deleted",`Organization ${e(c).name} has been deleted successfully.`),a(B,!1),a(c,null)}catch(t){a(f,t instanceof Error?t.message:"Failed to delete organization")}}function L(){a(b,!0)}function F(t){a(c,t),a(I,!0)}function N(t){a(c,t),a(B,!0)}Le(async()=>{try{a(C,!0);const t=await Pe.getOrganizations();t&&Array.isArray(t)&&a($,t)}catch(t){console.error("Failed to load organizations:",t),a(f,t instanceof Error?t.message:"Failed to load organizations")}finally{a(C,!1)}});async function _e(){try{await Pe.retryResource("organizations")}catch(t){console.error("Retry failed:",t)}}const xe=[{key:"name",title:"Name",cellComponent:mt,cellProps:{entityType:"organization"}},{key:"endpoint",title:"Endpoint",cellComponent:pt},{key:"credentials",title:"Credentials",cellComponent:ut,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:ft,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:gt}],ke={entityType:"organization",primaryText:{field:"name",isClickable:!0,href:"/organizations/{id}"},customInfo:[{icon:t=>Oe(t?.endpoint?.endpoint_type||"unknown"),text:t=>t?.endpoint?.name||"Unknown"}],badges:[{type:"custom",value:t=>Ce(t)}],actions:[{type:"edit",handler:t=>F(t)},{type:"delete",handler:t=>N(t)}]};function we(t){a(y,t.detail.term),a(r,1)}function h(t){a(r,t.detail.page)}function _(t){a(k,t.detail.perPage),a(r,1)}function S(t){F(t.detail.item)}function A(t){N(t.detail.item)}x(()=>(e($),p()),()=>{(!e($).length||p().loaded.organizations)&&a($,p().organizations)}),x(()=>p(),()=>{a(C,p().loading.organizations)}),x(()=>p(),()=>{a(D,p().errorMessages.organizations)}),x(()=>(e($),e(y)),()=>{a(w,dt(e($),e(y)))}),x(()=>(e(w),e(k)),()=>{a(z,Math.ceil(e(w).length/e(k)))}),x(()=>(e(r),e(z)),()=>{e(r)>e(z)&&e(z)>0&&a(r,e(z))}),x(()=>(e(w),e(r),e(k)),()=>{a(K,e(w).slice((e(r)-1)*e(k),e(r)*e(k)))}),Ne(),Ie();var Q=$t();Ye(t=>{Qe.title="Organizations - GARM"});var U=Ke(Q),R=o(U);st(R,{title:"Organizations",description:"Manage GitHub and Gitea organizations",actionLabel:"Add Organization",$$events:{action:L}});var X=i(R,2);{let t=ue(()=>e(D)||e(f)),g=ue(()=>!!e(D));ct(X,{get columns(){return xe},get data(){return e(K)},get loading(){return e(C)},get error(){return e(t)},get searchTerm(){return e(y)},searchPlaceholder:"Search organizations...",get currentPage(){return e(r)},get perPage(){return e(k)},get totalPages(){return e(z)},get totalItems(){return e(w),v(()=>e(w).length)},itemName:"organizations",emptyIconType:"building",get showRetry(){return e(g)},get mobileCardConfig(){return ke},$$events:{search:we,pageChange:h,perPageChange:_,retry:_e,edit:S,delete:A},$$slots:{"mobile-card":(q,O)=>{const u=ue(()=>O.item),G=ue(()=>(E(Ce),E(e(u)),v(()=>Ce(e(u)))));var ae=zt(),re=o(ae),H=o(re),J=o(H),oe=o(J,!0);n(J);var ce=i(J,2),l=o(ce),m=o(l);Xe(m,()=>(E(Oe),E(e(u)),v(()=>Oe(e(u).endpoint?.endpoint_type||"unknown"))));var P=i(m,2),ze=o(P,!0);n(P),n(l),n(ce),n(H),n(re);var ne=i(re,2),Ee=o(ne);lt(Ee,{get variant(){return E(e(G)),v(()=>e(G).variant)},get text(){return E(e(G)),v(()=>e(G).text)}});var Me=i(Ee,2),Te=o(Me);We(Te,{action:"edit",size:"sm",title:"Edit organization",ariaLabel:"Edit organization",$$events:{click:()=>F(e(u))}});var Je=i(Te,2);We(Je,{action:"delete",size:"sm",title:"Delete organization",ariaLabel:"Delete organization",$$events:{click:()=>N(e(u))}}),n(Me),n(ne),n(ae),V(()=>{Ze(H,"href",(E(Ae),E(e(u)),v(()=>`${Ae}/organizations/${e(u).id}`))),se(oe,(E(e(u)),v(()=>e(u).name))),se(ze,(E(e(u)),v(()=>e(u).endpoint?.name||"Unknown")))}),M(q,ae)}}})}n(U);var le=i(U,2);{var Z=t=>{wt(t,{$$events:{close:()=>a(b,!1),submit:ye}})};Y(le,t=>{e(b)&&t(Z)})}var j=i(le,2);{var ee=t=>{nt(t,{get entity(){return e(c)},entityType:"organization",$$events:{close:()=>{a(I,!1),a(c,null)},submit:g=>he(g.detail)}})};Y(j,t=>{e(I)&&e(c)&&t(ee)})}var de=i(j,2);{var te=t=>{it(t,{title:"Delete Organization",message:"Are you sure you want to delete this organization? This action cannot be undone.",get itemName(){return e(c),v(()=>e(c).name)},$$events:{close:()=>{a(B,!1),a(c,null)},confirm:d}})};Y(de,t=>{e(B)&&e(c)&&t(te)})}M(pe,Q),je(),ve()}export{Jt as component}; diff --git a/webapp/assets/_app/immutable/nodes/12.B-vC_cmu.js b/webapp/assets/_app/immutable/nodes/12.B-vC_cmu.js deleted file mode 100644 index 2fef2926..00000000 --- a/webapp/assets/_app/immutable/nodes/12.B-vC_cmu.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as Le}from"../chunks/B3Pzt0F_.js";import{p as Ne,o as We,A as qe,l as He,a as je,f as A,h as Ge,b as M,t as q,c as x,d as Re,g as e,m as l,s as o,u as s,$ as Ve,j as f,r as g,k as d,v as le,y as Je,B as de,q as m,n as Ke}from"../chunks/D8EpLgQ1.js";import{i as h,s as Qe,a as Xe}from"../chunks/5WA7h8uK.js";import{c as Ye,g as _}from"../chunks/CiE1LlKV.js";import{p as Ze}from"../chunks/C41YH50Q.js";import{g as ce}from"../chunks/CTf6mQoE.js";import{b as H}from"../chunks/CoIRRsD9.js";import{U as et}from"../chunks/CclkODgu.js";import{D as ue}from"../chunks/KQ2xQpA3.js";import{E as tt,P as at,a as nt}from"../chunks/BmGWMSQm.js";import{D as ot,I as rt}from"../chunks/DDhBTdDt.js";import{g as fe}from"../chunks/BGVHQGl-.js";import{W as it}from"../chunks/Dbd6PPbz.js";import{C as st}from"../chunks/CwqI2jFH.js";import{w as j}from"../chunks/u94nIB4-.js";import{t as C}from"../chunks/BEkVdVE1.js";var lt=A('

Loading organization...

'),dt=A('

'),ct=A(" ",1),ut=A(' ',1);function Tt(ge,me){Ne(me,!1);const[pe,ve]=Qe(),G=()=>Xe(Ze,"$page",pe),w=l();let a=l(null),c=l([]),p=l([]),F=l(!0),I=l(""),O=l(!1),D=l(!1),E=l(!1),T=l(!1),u=l(null),P=null,b=l();async function R(){if(e(w))try{o(F,!0),o(I,"");const[t,n,r]=await Promise.all([_.getOrganization(e(w)),_.listOrganizationPools(e(w)).catch(()=>[]),_.listOrganizationInstances(e(w)).catch(()=>[])]);o(a,t),o(c,n),o(p,r)}catch(t){o(I,t instanceof Error?t.message:"Failed to load organization")}finally{o(F,!1)}}function ye(t,n){const{events:r}=t;return{...n,events:r}}async function he(t){if(e(a))try{await _.updateOrganization(e(a).id,t),await R(),C.success("Organization Updated",`Organization ${e(a).name} has been updated successfully.`),o(O,!1)}catch(n){throw n}}async function _e(){if(e(a)){try{await _.deleteOrganization(e(a).id),ce(`${H}/organizations`)}catch(t){o(I,t instanceof Error?t.message:"Failed to delete organization")}o(D,!1)}}async function be(){if(e(u))try{await _.deleteInstance(e(u).name),C.success("Instance Deleted",`Instance ${e(u).name} has been deleted successfully.`),o(E,!1),o(u,null)}catch(t){const n=t instanceof Error?t.message:"Failed to delete instance";C.error("Delete Failed",n),o(E,!1),o(u,null)}}function ze(t){o(u,t),o(E,!0)}function $e(){o(T,!0)}async function xe(t){try{if(!e(a))return;await _.createOrganizationPool(e(a).id,t.detail),C.success("Pool Created",`Pool has been created successfully for organization ${e(a).name}.`),o(T,!1)}catch(n){throw n}}function V(){e(b)&&Je(b,e(b).scrollTop=e(b).scrollHeight)}function we(t){if(t.operation==="update"){const n=t.payload;if(e(a)&&n.id===e(a).id){const r=e(a).events?.length||0,i=n.events?.length||0;o(a,ye(e(a),n)),i>r&&setTimeout(()=>{V()},100)}}else if(t.operation==="delete"){const n=t.payload.id||t.payload;e(a)&&e(a).id===n&&ce(`${H}/organizations`)}}function Ie(t){if(!e(a))return;const n=t.payload;if(n.org_id===e(a).id){if(t.operation==="create")o(c,[...e(c),n]);else if(t.operation==="update")o(c,e(c).map(r=>r.id===n.id?n:r));else if(t.operation==="delete"){const r=n.id||n;o(c,e(c).filter(i=>i.id!==r))}}}function Ee(t){if(!e(a)||!e(c))return;const n=t.payload;if(e(c).some(i=>i.id===n.pool_id)){if(t.operation==="create")o(p,[...e(p),n]);else if(t.operation==="update")o(p,e(p).map(i=>i.id===n.id?n:i));else if(t.operation==="delete"){const i=n.id||n;o(p,e(p).filter(L=>L.id!==i))}}}We(()=>{R().then(()=>{e(a)?.events?.length&&setTimeout(()=>{V()},100)});const t=j.subscribeToEntity("organization",["update","delete"],we),n=j.subscribeToEntity("pool",["create","update","delete"],Ie),r=j.subscribeToEntity("instance",["create","update","delete"],Ee);P=()=>{t(),n(),r()}}),qe(()=>{P&&(P(),P=null)}),He(()=>G(),()=>{o(w,G().params.id)}),je(),Le();var J=ut();Ge(t=>{q(()=>Ve.title=`${e(a),s(()=>e(a)?`${e(a).name} - Organization Details`:"Organization Details")??""} - GARM`)});var S=M(J),B=f(S),K=f(B),U=f(K),Oe=f(U);g(U);var Q=d(U,2),X=f(Q),Y=d(f(X),2),De=f(Y,!0);g(Y),g(X),g(Q),g(K),g(B);var Te=d(B,2);{var Pe=t=>{var n=lt();x(t,n)},ke=t=>{var n=de(),r=M(n);{var i=z=>{var $=dt(),k=f($),N=f(k,!0);g(k),g($),q(()=>le(N,e(I))),x(z,$)},L=z=>{var $=de(),k=M($);{var N=W=>{var ae=ct(),ne=M(ae);{let v=m(()=>(e(a),s(()=>e(a).name||"Organization"))),y=m(()=>(e(a),s(()=>e(a).endpoint?.name))),Ue=m(()=>(Ke(fe),e(a),s(()=>fe(e(a).endpoint?.endpoint_type||"unknown"))));ot(ne,{get title(){return e(v)},get subtitle(){return`Endpoint: ${e(y)??""}`},get forgeIcon(){return e(Ue)},onEdit:()=>o(O,!0),onDelete:()=>o(D,!0)})}var oe=d(ne,2);tt(oe,{get entity(){return e(a)},entityType:"organization"});var re=d(oe,2);{let v=m(()=>(e(a),s(()=>e(a).id||""))),y=m(()=>(e(a),s(()=>e(a).name||"")));it(re,{entityType:"organization",get entityId(){return e(v)},get entityName(){return e(y)}})}var ie=d(re,2);{let v=m(()=>(e(a),s(()=>e(a).id||""))),y=m(()=>(e(a),s(()=>e(a).name||"")));at(ie,{get pools(){return e(c)},entityType:"organization",get entityId(){return e(v)},get entityName(){return e(y)},$$events:{addPool:$e}})}var se=d(ie,2);rt(se,{get instances(){return e(p)},entityType:"organization",onDeleteInstance:ze});var Be=d(se,2);{let v=m(()=>(e(a),s(()=>e(a)?.events)));nt(Be,{get events(){return e(v)},get eventsContainer(){return e(b)},set eventsContainer(y){o(b,y)},$$legacy:!0})}x(W,ae)};h(k,W=>{e(a)&&W(N)},!0)}x(z,$)};h(r,z=>{e(I)?z(i):z(L,!1)},!0)}x(t,n)};h(Te,t=>{e(F)?t(Pe):t(ke,!1)})}g(S);var Z=d(S,2);{var Me=t=>{et(t,{get entity(){return e(a)},entityType:"organization",$$events:{close:()=>o(O,!1),submit:n=>he(n.detail)}})};h(Z,t=>{e(O)&&e(a)&&t(Me)})}var ee=d(Z,2);{var Ce=t=>{ue(t,{title:"Delete Organization",message:"Are you sure you want to delete this organization? This action cannot be undone and will remove all associated pools and instances.",get itemName(){return e(a),s(()=>e(a).name)},$$events:{close:()=>o(D,!1),confirm:_e}})};h(ee,t=>{e(D)&&e(a)&&t(Ce)})}var te=d(ee,2);{var Ae=t=>{ue(t,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(u),s(()=>e(u).name)},$$events:{close:()=>{o(E,!1),o(u,null)},confirm:be}})};h(te,t=>{e(E)&&e(u)&&t(Ae)})}var Fe=d(te,2);{var Se=t=>{{let n=m(()=>(e(a),s(()=>e(a).id||"")));st(t,{initialEntityType:"organization",get initialEntityId(){return e(n)},$$events:{close:()=>o(T,!1),submit:xe}})}};h(Fe,t=>{e(T)&&e(a)&&t(Se)})}q(()=>{Ye(Oe,"href",`${H}/organizations`),le(De,(e(a),s(()=>e(a)?e(a).name:"Loading...")))}),x(ge,J),Re(),ve()}export{Tt as component}; diff --git a/webapp/assets/_app/immutable/nodes/12.C0lS_ubI.js b/webapp/assets/_app/immutable/nodes/12.C0lS_ubI.js new file mode 100644 index 00000000..64243495 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/12.C0lS_ubI.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Ne}from"../chunks/B3Pzt0F_.js";import{p as We,o as qe,A as He,l as je,a as Ge,f as A,h as Re,b as C,t as q,c as x,d as Ve,g as e,m as l,s as o,u as s,$ as Je,j as f,r as m,k as d,v as de,y as Ke,B as ce,q as g,n as Qe}from"../chunks/D8EpLgQ1.js";import{i as h,s as Xe,a as Ye}from"../chunks/5WA7h8uK.js";import{c as Ze,g as _}from"../chunks/CiE1LlKV.js";import{p as et}from"../chunks/BE8f1Riw.js";import{g as ue}from"../chunks/DXCC0cSN.js";import{b as H}from"../chunks/CRhkqW2i.js";import{U as tt}from"../chunks/CIBm3n2u.js";import{D as fe}from"../chunks/KQ2xQpA3.js";import{E as at,P as nt,a as ot}from"../chunks/OpktHEmj.js";import{D as rt,I as it}from"../chunks/BEoJgOul.js";import{g as me}from"../chunks/BGVHQGl-.js";import{e as j}from"../chunks/BZiHL9L3.js";import{W as st}from"../chunks/BsqC4UA1.js";import{C as lt}from"../chunks/CRD55Dyg.js";import{w as G}from"../chunks/u94nIB4-.js";import{t as E}from"../chunks/BEkVdVE1.js";var dt=A('

Loading organization...

'),ct=A('

'),ut=A(" ",1),ft=A(' ',1);function Mt(ge,pe){We(pe,!1);const[ve,ye]=Xe(),R=()=>Ye(et,"$page",ve),I=l();let a=l(null),c=l([]),p=l([]),S=l(!0),O=l(""),D=l(!1),T=l(!1),w=l(!1),P=l(!1),u=l(null),M=null,b=l();async function V(){if(e(I))try{o(S,!0),o(O,"");const[t,n,r]=await Promise.all([_.getOrganization(e(I)),_.listOrganizationPools(e(I)).catch(()=>[]),_.listOrganizationInstances(e(I)).catch(()=>[])]);o(a,t),o(c,n),o(p,r)}catch(t){o(O,j(t))}finally{o(S,!1)}}function he(t,n){const{events:r}=t;return{...n,events:r}}async function _e(t){if(e(a))try{await _.updateOrganization(e(a).id,t),await V(),E.success("Organization Updated",`Organization ${e(a).name} has been updated successfully.`),o(D,!1)}catch(n){throw n}}async function be(){if(e(a)){try{await _.deleteOrganization(e(a).id),ue(`${H}/organizations`)}catch(t){const n=j(t);E.error("Delete Failed",n)}o(T,!1)}}async function ze(){if(e(u))try{await _.deleteInstance(e(u).name),E.success("Instance Deleted",`Instance ${e(u).name} has been deleted successfully.`),o(w,!1),o(u,null)}catch(t){const n=j(t);E.error("Delete Failed",n),o(w,!1),o(u,null)}}function $e(t){o(u,t),o(w,!0)}function xe(){o(P,!0)}async function Ie(t){try{if(!e(a))return;await _.createOrganizationPool(e(a).id,t.detail),E.success("Pool Created",`Pool has been created successfully for organization ${e(a).name}.`),o(P,!1)}catch(n){throw n}}function J(){e(b)&&Ke(b,e(b).scrollTop=e(b).scrollHeight)}function we(t){if(t.operation==="update"){const n=t.payload;if(e(a)&&n.id===e(a).id){const r=e(a).events?.length||0,i=n.events?.length||0;o(a,he(e(a),n)),i>r&&setTimeout(()=>{J()},100)}}else if(t.operation==="delete"){const n=t.payload.id||t.payload;e(a)&&e(a).id===n&&ue(`${H}/organizations`)}}function Ee(t){if(!e(a))return;const n=t.payload;if(n.org_id===e(a).id){if(t.operation==="create")o(c,[...e(c),n]);else if(t.operation==="update")o(c,e(c).map(r=>r.id===n.id?n:r));else if(t.operation==="delete"){const r=n.id||n;o(c,e(c).filter(i=>i.id!==r))}}}function Oe(t){if(!e(a)||!e(c))return;const n=t.payload;if(e(c).some(i=>i.id===n.pool_id)){if(t.operation==="create")o(p,[...e(p),n]);else if(t.operation==="update")o(p,e(p).map(i=>i.id===n.id?n:i));else if(t.operation==="delete"){const i=n.id||n;o(p,e(p).filter(L=>L.id!==i))}}}qe(()=>{V().then(()=>{e(a)?.events?.length&&setTimeout(()=>{J()},100)});const t=G.subscribeToEntity("organization",["update","delete"],we),n=G.subscribeToEntity("pool",["create","update","delete"],Ee),r=G.subscribeToEntity("instance",["create","update","delete"],Oe);M=()=>{t(),n(),r()}}),He(()=>{M&&(M(),M=null)}),je(()=>R(),()=>{o(I,R().params.id)}),Ge(),Ne();var K=ft();Re(t=>{q(()=>Je.title=`${e(a),s(()=>e(a)?`${e(a).name} - Organization Details`:"Organization Details")??""} - GARM`)});var B=C(K),U=f(B),Q=f(U),F=f(Q),De=f(F);m(F);var X=d(F,2),Y=f(X),Z=d(f(Y),2),Te=f(Z,!0);m(Z),m(Y),m(X),m(Q),m(U);var Pe=d(U,2);{var Me=t=>{var n=dt();x(t,n)},ke=t=>{var n=ce(),r=C(n);{var i=z=>{var $=ct(),k=f($),N=f(k,!0);m(k),m($),q(()=>de(N,e(O))),x(z,$)},L=z=>{var $=ce(),k=C($);{var N=W=>{var ne=ut(),oe=C(ne);{let v=g(()=>(e(a),s(()=>e(a).name||"Organization"))),y=g(()=>(e(a),s(()=>e(a).endpoint?.name))),Le=g(()=>(Qe(me),e(a),s(()=>me(e(a).endpoint?.endpoint_type||"unknown"))));rt(oe,{get title(){return e(v)},get subtitle(){return`Endpoint: ${e(y)??""}`},get forgeIcon(){return e(Le)},onEdit:()=>o(D,!0),onDelete:()=>o(T,!0)})}var re=d(oe,2);at(re,{get entity(){return e(a)},entityType:"organization"});var ie=d(re,2);{let v=g(()=>(e(a),s(()=>e(a).id||""))),y=g(()=>(e(a),s(()=>e(a).name||"")));st(ie,{entityType:"organization",get entityId(){return e(v)},get entityName(){return e(y)}})}var se=d(ie,2);{let v=g(()=>(e(a),s(()=>e(a).id||""))),y=g(()=>(e(a),s(()=>e(a).name||"")));nt(se,{get pools(){return e(c)},entityType:"organization",get entityId(){return e(v)},get entityName(){return e(y)},$$events:{addPool:xe}})}var le=d(se,2);it(le,{get instances(){return e(p)},entityType:"organization",onDeleteInstance:$e});var Fe=d(le,2);{let v=g(()=>(e(a),s(()=>e(a)?.events)));ot(Fe,{get events(){return e(v)},get eventsContainer(){return e(b)},set eventsContainer(y){o(b,y)},$$legacy:!0})}x(W,ne)};h(k,W=>{e(a)&&W(N)},!0)}x(z,$)};h(r,z=>{e(O)?z(i):z(L,!1)},!0)}x(t,n)};h(Pe,t=>{e(S)?t(Me):t(ke,!1)})}m(B);var ee=d(B,2);{var Ce=t=>{tt(t,{get entity(){return e(a)},entityType:"organization",$$events:{close:()=>o(D,!1),submit:n=>_e(n.detail)}})};h(ee,t=>{e(D)&&e(a)&&t(Ce)})}var te=d(ee,2);{var Ae=t=>{fe(t,{title:"Delete Organization",message:"Are you sure you want to delete this organization? This action cannot be undone and will remove all associated pools and instances.",get itemName(){return e(a),s(()=>e(a).name)},$$events:{close:()=>o(T,!1),confirm:be}})};h(te,t=>{e(T)&&e(a)&&t(Ae)})}var ae=d(te,2);{var Se=t=>{fe(t,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(u),s(()=>e(u).name)},$$events:{close:()=>{o(w,!1),o(u,null)},confirm:ze}})};h(ae,t=>{e(w)&&e(u)&&t(Se)})}var Be=d(ae,2);{var Ue=t=>{{let n=g(()=>(e(a),s(()=>e(a).id||"")));lt(t,{initialEntityType:"organization",get initialEntityId(){return e(n)},$$events:{close:()=>o(P,!1),submit:Ie}})}};h(Be,t=>{e(P)&&e(a)&&t(Ue)})}q(()=>{Ze(De,"href",`${H}/organizations`),de(Te,(e(a),s(()=>e(a)?e(a).name:"Loading...")))}),x(ge,K),Ve(),ye()}export{Mt as component}; diff --git a/webapp/assets/_app/immutable/nodes/13.Br7HzjXP.js b/webapp/assets/_app/immutable/nodes/13.Br7HzjXP.js deleted file mode 100644 index 7a557f43..00000000 --- a/webapp/assets/_app/immutable/nodes/13.Br7HzjXP.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as re}from"../chunks/B3Pzt0F_.js";import{p as se,o as ne,l as d,a as ie,f as ce,h as de,b as pe,c as me,d as ue,g as t,m as r,$ as fe,j as ge,q as E,u as S,k as v,s as o,r as ye,n as he}from"../chunks/D8EpLgQ1.js";import{i as w,s as Pe,a as Ce}from"../chunks/5WA7h8uK.js";import{g as N}from"../chunks/CiE1LlKV.js";import"../chunks/CoIRRsD9.js";import{P as ve}from"../chunks/CO4LUyTP.js";import{C as $e}from"../chunks/CwqI2jFH.js";import{U as be}from"../chunks/DQP15tlf.js";import{D as _e}from"../chunks/KQ2xQpA3.js";import{e as Me,a as R}from"../chunks/wyaP0EDu.js";import{t as $}from"../chunks/BEkVdVE1.js";import{e as b,h as Ee}from"../chunks/BGVHQGl-.js";import{D as we,G as D,a as De}from"../chunks/C9DJVOi1.js";import{E as Te}from"../chunks/B7ITzBt8.js";import{E as ke}from"../chunks/CGpPw4EW.js";import{S as Ae}from"../chunks/BE4wujub.js";import{P as Fe}from"../chunks/CLYUNKnN.js";var Ue=ce('
',1);function Xe(G,q){se(q,!1);const[L,j]=Pe(),s=()=>Ce(Me,"$eagerCache",L),_=r(),i=r(),p=r(),T=r();let m=r([]),g=r(!0),u=r(""),y=r(""),n=r(1),c=r(25),h=r(!1),P=r(!1),f=r(!1),a=r(null);async function H(e){try{o(u,""),o(h,!1)}catch(l){throw o(u,l instanceof Error?l.message:"Failed to create pool"),l}}async function V(e){if(t(a))try{await N.updatePool(t(a).id,e),o(P,!1),$.add({type:"success",title:"Pool Updated",message:`Pool ${t(a).id.slice(0,8)}... has been updated successfully.`}),o(a,null)}catch(l){const C=l instanceof Error?l.message:"Failed to update pool";throw $.add({type:"error",title:"Update Failed",message:C}),l}}async function z(){if(!t(a))return;const e=`Pool ${t(a).id.slice(0,8)}...`;try{await N.deletePool(t(a).id),o(f,!1),$.add({type:"success",title:"Pool Deleted",message:`${e} has been deleted successfully.`}),o(a,null)}catch(l){const C=l instanceof Error?l.message:"Failed to delete pool";o(u,C),$.add({type:"error",title:"Delete Failed",message:C})}o(f,!1),o(a,null)}function B(){o(h,!0)}function k(e){o(a,e),o(P,!0)}function A(e){o(a,e),o(f,!0)}ne(async()=>{try{o(g,!0);const e=await R.getPools();e&&Array.isArray(e)&&o(m,e)}catch(e){console.error("Failed to load pools:",e),o(u,e instanceof Error?e.message:"Failed to load pools")}finally{o(g,!1)}});async function J(){try{await R.retryResource("pools")}catch(e){console.error("Retry failed:",e)}}const K=[{key:"id",title:"ID",flexible:!0,cellComponent:Te,cellProps:{entityType:"pool",showId:!0,fontMono:!0}},{key:"image",title:"Image",flexible:!0,cellComponent:D,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:D,cellProps:{field:"provider_name"}},{key:"flavor",title:"Flavor",cellComponent:D,cellProps:{field:"flavor"}},{key:"entity",title:"Entity",cellComponent:Fe},{key:"endpoint",title:"Endpoint",cellComponent:ke},{key:"status",title:"Status",cellComponent:Ae,cellProps:{statusType:"enabled"}},{key:"actions",title:"Actions",align:"right",cellComponent:De}],O={entityType:"pool",primaryText:{field:"id",isClickable:!0,href:"/pools/{id}",useId:!0,isMonospace:!0},secondaryText:{field:"entity_name",computedValue:e=>b(e,s())},badges:[{type:"custom",value:e=>({variant:e.enabled?"success":"error",text:e.enabled?"Enabled":"Disabled"})}],actions:[{type:"edit",handler:e=>k(e)},{type:"delete",handler:e=>A(e)}]};function Q(e){o(y,e.detail.term),o(n,1)}function W(e){o(n,e.detail.page)}function X(e){o(c,e.detail.perPage),o(n,1)}function Y(e){k(e.detail.item)}function Z(e){A(e.detail.item)}d(()=>(t(m),s()),()=>{(!t(m).length||s().loaded.pools)&&o(m,s().pools)}),d(()=>s(),()=>{o(g,s().loading.pools)}),d(()=>s(),()=>{o(_,s().errorMessages.pools)}),d(()=>(t(m),t(y),s()),()=>{o(i,Ee(t(m),t(y),e=>b(e,s())))}),d(()=>(t(i),t(c)),()=>{o(p,Math.ceil(t(i).length/t(c)))}),d(()=>(t(n),t(p)),()=>{t(n)>t(p)&&t(p)>0&&o(n,t(p))}),d(()=>(t(i),t(n),t(c)),()=>{o(T,t(i).slice((t(n)-1)*t(c),t(n)*t(c)))}),ie(),re();var F=Ue();de(e=>{fe.title="Pools - GARM"});var M=pe(F),U=ge(M);ve(U,{title:"Pools",description:"Manage runner pools across all entities",actionLabel:"Add Pool",$$events:{action:B}});var ee=v(U,2);{let e=E(()=>t(_)||t(u)),l=E(()=>!!t(_));we(ee,{get columns(){return K},get data(){return t(T)},get loading(){return t(g)},get error(){return t(e)},get searchTerm(){return t(y)},searchPlaceholder:"Search by entity name...",get currentPage(){return t(n)},get perPage(){return t(c)},get totalPages(){return t(p)},get totalItems(){return t(i),S(()=>t(i).length)},itemName:"pools",emptyIconType:"cog",get showRetry(){return t(l)},get mobileCardConfig(){return O},$$events:{search:Q,pageChange:W,perPageChange:X,retry:J,edit:Y,delete:Z}})}ye(M);var x=v(M,2);{var te=e=>{$e(e,{$$events:{close:()=>o(h,!1),submit:l=>H(l.detail)}})};w(x,e=>{t(h)&&e(te)})}var I=v(x,2);{var oe=e=>{be(e,{get pool(){return t(a)},$$events:{close:()=>{o(P,!1),o(a,null)},submit:l=>V(l.detail)}})};w(I,e=>{t(P)&&t(a)&&e(oe)})}var ae=v(I,2);{var le=e=>{{let l=E(()=>(t(a),he(b),s(),S(()=>`Pool ${t(a).id.slice(0,8)}... (${b(t(a),s())})`)));_e(e,{title:"Delete Pool",message:"Are you sure you want to delete this pool? This action cannot be undone and will remove all associated runners.",get itemName(){return t(l)},$$events:{close:()=>{o(f,!1),o(a,null)},confirm:z}})}};w(ae,e=>{t(f)&&t(a)&&e(le)})}me(G,F),ue(),j()}export{Xe as component}; diff --git a/webapp/assets/_app/immutable/nodes/13.CEJ1u9Ql.js b/webapp/assets/_app/immutable/nodes/13.CEJ1u9Ql.js new file mode 100644 index 00000000..a938b366 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/13.CEJ1u9Ql.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as se}from"../chunks/B3Pzt0F_.js";import{p as ne,o as ie,l as d,a as ce,f as de,h as pe,b as ue,c as me,d as fe,g as t,m as l,$ as ge,j as ye,q as M,u as F,k as C,s as o,r as he,n as Pe}from"../chunks/D8EpLgQ1.js";import{i as D,s as Ce,a as ve}from"../chunks/5WA7h8uK.js";import{g as N}from"../chunks/CiE1LlKV.js";import{P as $e}from"../chunks/CO4LUyTP.js";import{C as be}from"../chunks/CRD55Dyg.js";import{U as _e}from"../chunks/Bgb-frqW.js";import{D as Me}from"../chunks/KQ2xQpA3.js";import{e as De,a as R}from"../chunks/wyaP0EDu.js";import{t as f}from"../chunks/BEkVdVE1.js";import{e as v,h as Ee}from"../chunks/BGVHQGl-.js";import{e as G}from"../chunks/BZiHL9L3.js";import{D as Te,G as E,a as we}from"../chunks/BrNfsPe8.js";import{E as ke}from"../chunks/D4PaGKsV.js";import{E as Ae}from"../chunks/CGpPw4EW.js";import{S as xe}from"../chunks/MCv1Wq2q.js";import{P as Ie}from"../chunks/BzlxTz7Q.js";import"../chunks/CRhkqW2i.js";var Ue=de('
',1);function Ze(q,L){ne(L,!1);const[j,H]=Ce(),r=()=>ve(De,"$eagerCache",j),$=l(),i=l(),p=l(),T=l();let u=l([]),g=l(!0),w=l(""),y=l(""),s=l(1),c=l(25),h=l(!1),P=l(!1),m=l(!1),a=l(null);async function V(){f.success("Pool Created","Pool has been created successfully."),o(h,!1)}async function z(e){if(t(a))try{await N.updatePool(t(a).id,e),o(P,!1),f.add({type:"success",title:"Pool Updated",message:`Pool ${t(a).id.slice(0,8)}... has been updated successfully.`}),o(a,null)}catch(n){const _=G(n);throw f.add({type:"error",title:"Update Failed",message:_}),n}}async function B(){if(!t(a))return;const e=`Pool ${t(a).id.slice(0,8)}...`;try{await N.deletePool(t(a).id),o(m,!1),f.add({type:"success",title:"Pool Deleted",message:`${e} has been deleted successfully.`}),o(a,null)}catch(n){const _=G(n);f.add({type:"error",title:"Delete Failed",message:_})}o(m,!1),o(a,null)}function J(){o(h,!0)}function k(e){o(a,e),o(P,!0)}function A(e){o(a,e),o(m,!0)}ie(async()=>{try{o(g,!0);const e=await R.getPools();e&&Array.isArray(e)&&o(u,e)}catch(e){console.error("Failed to load pools:",e),o(w,e instanceof Error?e.message:"Failed to load pools")}finally{o(g,!1)}});async function K(){try{await R.retryResource("pools")}catch(e){console.error("Retry failed:",e)}}const O=[{key:"id",title:"ID",flexible:!0,cellComponent:ke,cellProps:{entityType:"pool",showId:!0,fontMono:!0}},{key:"image",title:"Image",flexible:!0,cellComponent:E,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:E,cellProps:{field:"provider_name"}},{key:"flavor",title:"Flavor",cellComponent:E,cellProps:{field:"flavor"}},{key:"entity",title:"Entity",cellComponent:Ie},{key:"endpoint",title:"Endpoint",cellComponent:Ae},{key:"status",title:"Status",cellComponent:xe,cellProps:{statusType:"enabled"}},{key:"actions",title:"Actions",align:"right",cellComponent:we}],Q={entityType:"pool",primaryText:{field:"id",isClickable:!0,href:"/pools/{id}",useId:!0,isMonospace:!0},secondaryText:{field:"entity_name",computedValue:e=>v(e,r())},badges:[{type:"custom",value:e=>({variant:e.enabled?"success":"error",text:e.enabled?"Enabled":"Disabled"})}],actions:[{type:"edit",handler:e=>k(e)},{type:"delete",handler:e=>A(e)}]};function W(e){o(y,e.detail.term),o(s,1)}function X(e){o(s,e.detail.page)}function Y(e){o(c,e.detail.perPage),o(s,1)}function Z(e){k(e.detail.item)}function ee(e){A(e.detail.item)}d(()=>(t(u),r()),()=>{(!t(u).length||r().loaded.pools)&&o(u,r().pools)}),d(()=>r(),()=>{o(g,r().loading.pools)}),d(()=>r(),()=>{o($,r().errorMessages.pools)}),d(()=>(t(u),t(y),r()),()=>{o(i,Ee(t(u),t(y),e=>v(e,r())))}),d(()=>(t(i),t(c)),()=>{o(p,Math.ceil(t(i).length/t(c)))}),d(()=>(t(s),t(p)),()=>{t(s)>t(p)&&t(p)>0&&o(s,t(p))}),d(()=>(t(i),t(s),t(c)),()=>{o(T,t(i).slice((t(s)-1)*t(c),t(s)*t(c)))}),ce(),se();var x=Ue();pe(e=>{ge.title="Pools - GARM"});var b=ue(x),I=ye(b);$e(I,{title:"Pools",description:"Manage runner pools across all entities",actionLabel:"Add Pool",$$events:{action:J}});var te=C(I,2);{let e=M(()=>t($)||t(w)),n=M(()=>!!t($));Te(te,{get columns(){return O},get data(){return t(T)},get loading(){return t(g)},get error(){return t(e)},get searchTerm(){return t(y)},searchPlaceholder:"Search by entity name...",get currentPage(){return t(s)},get perPage(){return t(c)},get totalPages(){return t(p)},get totalItems(){return t(i),F(()=>t(i).length)},itemName:"pools",emptyIconType:"cog",get showRetry(){return t(n)},get mobileCardConfig(){return Q},$$events:{search:W,pageChange:X,perPageChange:Y,retry:K,edit:Z,delete:ee}})}he(b);var U=C(b,2);{var oe=e=>{be(e,{$$events:{close:()=>o(h,!1),submit:()=>V()}})};D(U,e=>{t(h)&&e(oe)})}var S=C(U,2);{var ae=e=>{_e(e,{get pool(){return t(a)},$$events:{close:()=>{o(P,!1),o(a,null)},submit:n=>z(n.detail)}})};D(S,e=>{t(P)&&t(a)&&e(ae)})}var le=C(S,2);{var re=e=>{{let n=M(()=>(t(a),Pe(v),r(),F(()=>`Pool ${t(a).id.slice(0,8)}... (${v(t(a),r())})`)));Me(e,{title:"Delete Pool",message:"Are you sure you want to delete this pool? This action cannot be undone and will remove all associated runners.",get itemName(){return t(n)},$$events:{close:()=>{o(m,!1),o(a,null)},confirm:B}})}};D(le,e=>{t(m)&&t(a)&&e(re)})}me(q,x),fe(),H()}export{Ze as component}; diff --git a/webapp/assets/_app/immutable/nodes/14.BJHnbtAi.js b/webapp/assets/_app/immutable/nodes/14.BJHnbtAi.js new file mode 100644 index 00000000..b743db86 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/14.BJHnbtAi.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as He}from"../chunks/B3Pzt0F_.js";import{p as Ve,o as We,A as Ke,l as Qe,a as Xe,f as h,h as Ye,b as B,t as b,c as x,d as Ze,s as n,m as y,u as i,$ as ta,g as t,j as r,r as a,k as s,v as l,y as xt,B as Kt,q as N,n as f}from"../chunks/D8EpLgQ1.js";import{i as u,s as ea,a as aa}from"../chunks/5WA7h8uK.js";import{w as Qt,e as ra,i as da}from"../chunks/u94nIB4-.js";import{c as Xt,g as F,s as sa}from"../chunks/CiE1LlKV.js";import{p as ia}from"../chunks/BE8f1Riw.js";import{g as Yt}from"../chunks/DXCC0cSN.js";import{b as ut}from"../chunks/CRhkqW2i.js";import{U as oa}from"../chunks/Bgb-frqW.js";import{D as Zt}from"../chunks/KQ2xQpA3.js";import{D as na,I as la}from"../chunks/BEoJgOul.js";import{t as D}from"../chunks/BEkVdVE1.js";import{e as P,i as R,j as te,b as C,g as ee}from"../chunks/BGVHQGl-.js";import{e as L}from"../chunks/BZiHL9L3.js";var va=h('

Loading pool...

'),ca=h('

'),ma=h('
GitHub Runner Group
'),xa=h(' '),ua=h('
Tags
'),ga=h('

Extra Specifications

 
'),pa=h('

Basic Information

Pool ID
Provider
Image
Flavor
Status
Entity
Created At
Updated At

Configuration

Max Runners
Min Idle Runners
Bootstrap Timeout
Priority
Runner Prefix
OS Type / Architecture
',1),fa=h(' ',1);function Sa(ae,re){Ve(re,!1);const[de,se]=ea(),gt=()=>aa(ia,"$page",de),O=y();let e=y(null),G=y(!0),M=y(""),E=y(!1),A=y(!1),T=y(!1),g=y(null),U=null;async function ie(){if(t(O))try{n(G,!0),n(M,""),n(e,await F.getPool(t(O)))}catch(d){n(M,L(d))}finally{n(G,!1)}}async function oe(d){if(t(e))try{const o=await F.updatePool(t(e).id,d);n(e,o),n(E,!1),D.success("Pool Updated",`Pool ${t(e).id} has been updated successfully.`)}catch(o){const _=L(o);D.error("Update Failed",_)}}async function ne(){if(t(e)){try{await F.deletePool(t(e).id),Yt(`${ut}/pools`)}catch(d){const o=L(d);D.error("Delete Failed",o)}n(A,!1)}}async function le(){if(t(g)){try{await F.deleteInstance(t(g).name),D.success("Instance Deleted",`Instance ${t(g).name} has been deleted successfully.`)}catch(d){const o=L(d);D.error("Delete Failed",o)}n(T,!1),n(g,null)}}function ve(d){n(g,d),n(T,!0)}function ce(d){if(!d)return"{}";try{if(typeof d=="string"){const o=JSON.parse(d);return JSON.stringify(o,null,2)}return JSON.stringify(d,null,2)}catch{return d.toString()}}function me(d){if(d.operation==="update"){const o=d.payload;t(e)&&o.id===t(e).id&&n(e,o)}else if(d.operation==="delete"){const o=d.payload.id||d.payload;t(e)&&t(e).id===o&&Yt(`${ut}/pools`)}}function xe(d){if(!t(e)||!t(e).instances)return;const o=d.payload;if(o.pool_id===t(e).id){if(d.operation==="create")xt(e,t(e).instances=[...t(e).instances,o]);else if(d.operation==="update")xt(e,t(e).instances=t(e).instances.map(_=>_.id===o.id?o:_));else if(d.operation==="delete"){const _=o.id||o;xt(e,t(e).instances=t(e).instances.filter(z=>z.id!==_))}n(e,t(e))}}We(()=>{ie();const d=Qt.subscribeToEntity("pool",["update","delete"],me),o=Qt.subscribeToEntity("instance",["create","update","delete"],xe);U=()=>{d(),o()}}),Ke(()=>{U&&(U(),U=null)}),Qe(()=>gt(),()=>{n(O,gt().params.id)}),Xe(),He();var pt=fa();Ye(d=>{b(()=>ta.title=`${t(e),i(()=>t(e)?`Pool ${t(e).id} - Pool Details`:"Pool Details")??""} - GARM`)});var J=B(pt),j=r(J),ft=r(j),q=r(ft),ue=r(q);a(q);var _t=s(q,2),yt=r(_t),ht=s(r(yt),2),ge=r(ht,!0);a(ht),a(yt),a(_t),a(ft),a(j);var pe=s(j,2);{var fe=d=>{var o=va();x(d,o)},_e=d=>{var o=Kt(),_=B(o);{var z=k=>{var w=ca(),S=r(w),H=r(S,!0);a(S),a(w),b(()=>l(H,t(M))),x(k,w)},we=k=>{var w=Kt(),S=B(w);{var H=V=>{var wt=pa(),$t=B(wt);{let v=N(()=>(f(P),t(e),i(()=>P(t(e))))),c=N(()=>(f(R),t(e),i(()=>R(t(e))))),m=N(()=>(f(ee),t(e),i(()=>ee(t(e).endpoint?.endpoint_type||"unknown"))));na($t,{get title(){return t(e),i(()=>t(e).id)},get subtitle(){return`Pool for ${t(v)??""} (${t(c)??""})`},get forgeIcon(){return t(m)},onEdit:()=>n(E,!0),onDelete:()=>n(A,!0)})}var W=s($t,2),K=r(W),Pt=r(K),It=s(r(Pt),2),Q=r(It),Dt=s(r(Q),2),$e=r(Dt,!0);a(Dt),a(Q);var X=s(Q,2),Mt=s(r(X),2),Pe=r(Mt,!0);a(Mt),a(X);var Y=s(X,2),Et=s(r(Y),2),At=r(Et),Ie=r(At,!0);a(At),a(Et),a(Y);var Z=s(Y,2),Tt=s(r(Z),2),De=r(Tt,!0);a(Tt),a(Z);var tt=s(Z,2),Ut=s(r(tt),2),et=r(Ut),Me=r(et,!0);a(et),a(Ut),a(tt);var at=s(tt,2),St=s(r(at),2),Bt=r(St),rt=r(Bt),Ee=r(rt,!0);a(rt);var dt=s(rt,2),Ae=r(dt,!0);a(dt),a(Bt),a(St),a(at);var st=s(at,2),Nt=s(r(st),2),Te=r(Nt,!0);a(Nt),a(st);var Ft=s(st,2),Rt=s(r(Ft),2),Ue=r(Rt,!0);a(Rt),a(Ft),a(It),a(Pt),a(K);var Ct=s(K,2),Lt=r(Ct),Ot=s(r(Lt),2),it=r(Ot),Gt=s(r(it),2),Se=r(Gt,!0);a(Gt),a(it);var ot=s(it,2),Jt=s(r(ot),2),Be=r(Jt,!0);a(Jt),a(ot);var nt=s(ot,2),jt=s(r(nt),2),Ne=r(jt);a(jt),a(nt);var lt=s(nt,2),qt=s(r(lt),2),Fe=r(qt,!0);a(qt),a(lt);var vt=s(lt,2),zt=s(r(vt),2),Re=r(zt,!0);a(zt),a(vt);var ct=s(vt,2),Ht=s(r(ct),2),Ce=r(Ht);a(Ht),a(ct);var Vt=s(ct,2);{var Le=v=>{var c=ma(),m=s(r(c),2),p=r(m,!0);a(m),a(c),b(()=>l(p,(t(e),i(()=>t(e)["github-runner-group"])))),x(v,c)};u(Vt,v=>{t(e),i(()=>t(e)["github-runner-group"])&&v(Le)})}var Oe=s(Vt,2);{var Ge=v=>{var c=ua(),m=s(r(c),2),p=r(m);ra(p,5,()=>(t(e),i(()=>t(e).tags)),da,(I,$)=>{var mt=xa(),ze=r(mt,!0);a(mt),b(()=>l(ze,(t($),i(()=>typeof t($)=="string"?t($):t($).name)))),x(I,mt)}),a(p),a(m),a(c),x(v,c)};u(Oe,v=>{t(e),i(()=>t(e).tags&&t(e).tags.length>0)&&v(Ge)})}a(Ot),a(Lt),a(Ct),a(W);var Wt=s(W,2);{var Je=v=>{var c=ga(),m=r(c),p=s(r(m),2),I=r(p,!0);a(p),a(m),a(c),b($=>l(I,$),[()=>(t(e),i(()=>ce(t(e).extra_specs)))]),x(v,c)};u(Wt,v=>{t(e),i(()=>t(e).extra_specs)&&v(Je)})}var je=s(Wt,2);{var qe=v=>{la(v,{get instances(){return t(e),i(()=>t(e).instances)},entityType:"repository",onDeleteInstance:ve})};u(je,v=>{t(e),i(()=>t(e).instances)&&v(qe)})}b((v,c,m,p,I)=>{l($e,(t(e),i(()=>t(e).id))),l(Pe,(t(e),i(()=>t(e).provider_name))),l(Ie,(t(e),i(()=>t(e).image))),l(De,(t(e),i(()=>t(e).flavor))),sa(et,1,`inline-flex px-2 py-1 text-xs font-medium rounded-full ${t(e),i(()=>t(e).enabled?"bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200":"bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200")??""}`),l(Me,(t(e),i(()=>t(e).enabled?"Enabled":"Disabled"))),l(Ee,v),Xt(dt,"href",c),l(Ae,m),l(Te,p),l(Ue,I),l(Se,(t(e),i(()=>t(e).max_runners))),l(Be,(t(e),i(()=>t(e).min_idle_runners))),l(Ne,`${t(e),i(()=>t(e).runner_bootstrap_timeout)??""} minutes`),l(Fe,(t(e),i(()=>t(e).priority))),l(Re,(t(e),i(()=>t(e).runner_prefix||"garm"))),l(Ce,`${t(e),i(()=>t(e).os_type)??""} / ${t(e),i(()=>t(e).os_arch)??""}`)},[()=>(f(R),t(e),i(()=>R(t(e)))),()=>(f(te),t(e),i(()=>te(t(e)))),()=>(f(P),t(e),i(()=>P(t(e)))),()=>(f(C),t(e),i(()=>C(t(e).created_at||""))),()=>(f(C),t(e),i(()=>C(t(e).updated_at||"")))]),x(V,wt)};u(S,V=>{t(e)&&V(H)},!0)}x(k,w)};u(_,k=>{t(M)?k(z):k(we,!1)},!0)}x(d,o)};u(pe,d=>{t(G)?d(fe):d(_e,!1)})}a(J);var bt=s(J,2);{var ye=d=>{oa(d,{get pool(){return t(e)},$$events:{close:()=>n(E,!1),submit:o=>oe(o.detail)}})};u(bt,d=>{t(E)&&t(e)&&d(ye)})}var kt=s(bt,2);{var he=d=>{{let o=N(()=>(t(e),f(P),i(()=>`Pool ${t(e).id} (${P(t(e))})`)));Zt(d,{title:"Delete Pool",message:"Are you sure you want to delete this pool? This action cannot be undone and will remove all associated runners.",get itemName(){return t(o)},$$events:{close:()=>n(A,!1),confirm:ne}})}};u(kt,d=>{t(A)&&t(e)&&d(he)})}var be=s(kt,2);{var ke=d=>{Zt(d,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return t(g),i(()=>t(g).name)},$$events:{close:()=>{n(T,!1),n(g,null)},confirm:le}})};u(be,d=>{t(T)&&t(g)&&d(ke)})}b(()=>{Xt(ue,"href",`${ut}/pools`),l(ge,(t(e),i(()=>t(e)?t(e).id:"Loading...")))}),x(ae,pt),Ze(),se()}export{Sa as component}; diff --git a/webapp/assets/_app/immutable/nodes/14.Cd0DOn96.js b/webapp/assets/_app/immutable/nodes/14.Cd0DOn96.js deleted file mode 100644 index c682684d..00000000 --- a/webapp/assets/_app/immutable/nodes/14.Cd0DOn96.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as ze}from"../chunks/B3Pzt0F_.js";import{p as He,o as Ve,A as We,l as Ke,a as Qe,f as h,h as Xe,b as S,t as b,c as u,d as Ye,s as n,m as y,u as i,$ as Ze,g as t,j as r,r as a,k as s,v as l,y as mt,B as Wt,q as B,n as f}from"../chunks/D8EpLgQ1.js";import{i as g,s as ta,a as ea}from"../chunks/5WA7h8uK.js";import{w as Kt,e as aa,i as ra}from"../chunks/u94nIB4-.js";import{c as Qt,g as N,s as da}from"../chunks/CiE1LlKV.js";import{p as sa}from"../chunks/C41YH50Q.js";import{g as Xt}from"../chunks/CTf6mQoE.js";import{b as xt}from"../chunks/CoIRRsD9.js";import{U as ia}from"../chunks/DQP15tlf.js";import{D as Yt}from"../chunks/KQ2xQpA3.js";import{D as oa,I as na}from"../chunks/DDhBTdDt.js";import{t as E}from"../chunks/BEkVdVE1.js";import{e as P,i as R,j as Zt,b as C,g as te}from"../chunks/BGVHQGl-.js";var la=h('

Loading pool...

'),va=h('

'),ca=h('
GitHub Runner Group
'),ma=h(' '),xa=h('
Tags
'),ua=h('

Extra Specifications

 
'),ga=h('

Basic Information

Pool ID
Provider
Image
Flavor
Status
Entity
Created At
Updated At

Configuration

Max Runners
Min Idle Runners
Bootstrap Timeout
Priority
Runner Prefix
OS Type / Architecture
',1),pa=h(' ',1);function Ta(ee,ae){He(ae,!1);const[re,de]=ta(),ut=()=>ea(sa,"$page",re),L=y();let e=y(null),O=y(!0),M=y(""),F=y(!1),T=y(!1),D=y(!1),x=y(null),A=null;async function se(){if(t(L))try{n(O,!0),n(M,""),n(e,await N.getPool(t(L)))}catch(d){n(M,d instanceof Error?d.message:"Failed to load pool")}finally{n(O,!1)}}async function ie(d){if(t(e))try{const o=await N.updatePool(t(e).id,d);n(e,o),n(F,!1),E.success("Pool Updated",`Pool ${t(e).id} has been updated successfully.`)}catch(o){const _=o instanceof Error?o.message:"Failed to update pool";E.error("Update Failed",_)}}async function oe(){if(t(e)){try{await N.deletePool(t(e).id),Xt(`${xt}/pools`)}catch(d){const o=d instanceof Error?d.message:"Failed to delete pool";E.error("Delete Failed",o)}n(T,!1)}}async function ne(){if(t(x)){try{await N.deleteInstance(t(x).name),E.success("Instance Deleted",`Instance ${t(x).name} has been deleted successfully.`),n(D,!1),n(x,null)}catch(d){const o=d instanceof Error?d.message:"Failed to delete instance";E.error("Delete Failed",o)}n(D,!1),n(x,null)}}function le(d){n(x,d),n(D,!0)}function ve(d){if(!d)return"{}";try{if(typeof d=="string"){const o=JSON.parse(d);return JSON.stringify(o,null,2)}return JSON.stringify(d,null,2)}catch{return d.toString()}}function ce(d){if(d.operation==="update"){const o=d.payload;t(e)&&o.id===t(e).id&&n(e,o)}else if(d.operation==="delete"){const o=d.payload.id||d.payload;t(e)&&t(e).id===o&&Xt(`${xt}/pools`)}}function me(d){if(!t(e)||!t(e).instances)return;const o=d.payload;if(o.pool_id===t(e).id){if(d.operation==="create")mt(e,t(e).instances=[...t(e).instances,o]);else if(d.operation==="update")mt(e,t(e).instances=t(e).instances.map(_=>_.id===o.id?o:_));else if(d.operation==="delete"){const _=o.id||o;mt(e,t(e).instances=t(e).instances.filter(q=>q.id!==_))}n(e,t(e))}}Ve(()=>{se();const d=Kt.subscribeToEntity("pool",["update","delete"],ce),o=Kt.subscribeToEntity("instance",["create","update","delete"],me);A=()=>{d(),o()}}),We(()=>{A&&(A(),A=null)}),Ke(()=>ut(),()=>{n(L,ut().params.id)}),Qe(),ze();var gt=pa();Xe(d=>{b(()=>Ze.title=`${t(e),i(()=>t(e)?`Pool ${t(e).id} - Pool Details`:"Pool Details")??""} - GARM`)});var G=S(gt),J=r(G),pt=r(J),j=r(pt),xe=r(j);a(j);var ft=s(j,2),_t=r(ft),yt=s(r(_t),2),ue=r(yt,!0);a(yt),a(_t),a(ft),a(pt),a(J);var ge=s(J,2);{var pe=d=>{var o=la();u(d,o)},fe=d=>{var o=Wt(),_=S(o);{var q=k=>{var w=va(),U=r(w),z=r(U,!0);a(U),a(w),b(()=>l(z,t(M))),u(k,w)},ke=k=>{var w=Wt(),U=S(w);{var z=H=>{var kt=ga(),wt=S(kt);{let v=B(()=>(f(P),t(e),i(()=>P(t(e))))),c=B(()=>(f(R),t(e),i(()=>R(t(e))))),m=B(()=>(f(te),t(e),i(()=>te(t(e).endpoint?.endpoint_type||"unknown"))));oa(wt,{get title(){return t(e),i(()=>t(e).id)},get subtitle(){return`Pool for ${t(v)??""} (${t(c)??""})`},get forgeIcon(){return t(m)},onEdit:()=>n(F,!0),onDelete:()=>n(T,!0)})}var V=s(wt,2),W=r(V),$t=r(W),Pt=s(r($t),2),K=r(Pt),Dt=s(r(K),2),we=r(Dt,!0);a(Dt),a(K);var Q=s(K,2),It=s(r(Q),2),$e=r(It,!0);a(It),a(Q);var X=s(Q,2),Et=s(r(X),2),Mt=r(Et),Pe=r(Mt,!0);a(Mt),a(Et),a(X);var Y=s(X,2),Ft=s(r(Y),2),De=r(Ft,!0);a(Ft),a(Y);var Z=s(Y,2),Tt=s(r(Z),2),tt=r(Tt),Ie=r(tt,!0);a(tt),a(Tt),a(Z);var et=s(Z,2),At=s(r(et),2),Ut=r(At),at=r(Ut),Ee=r(at,!0);a(at);var rt=s(at,2),Me=r(rt,!0);a(rt),a(Ut),a(At),a(et);var dt=s(et,2),St=s(r(dt),2),Fe=r(St,!0);a(St),a(dt);var Bt=s(dt,2),Nt=s(r(Bt),2),Te=r(Nt,!0);a(Nt),a(Bt),a(Pt),a($t),a(W);var Rt=s(W,2),Ct=r(Rt),Lt=s(r(Ct),2),st=r(Lt),Ot=s(r(st),2),Ae=r(Ot,!0);a(Ot),a(st);var it=s(st,2),Gt=s(r(it),2),Ue=r(Gt,!0);a(Gt),a(it);var ot=s(it,2),Jt=s(r(ot),2),Se=r(Jt);a(Jt),a(ot);var nt=s(ot,2),jt=s(r(nt),2),Be=r(jt,!0);a(jt),a(nt);var lt=s(nt,2),qt=s(r(lt),2),Ne=r(qt,!0);a(qt),a(lt);var vt=s(lt,2),zt=s(r(vt),2),Re=r(zt);a(zt),a(vt);var Ht=s(vt,2);{var Ce=v=>{var c=ca(),m=s(r(c),2),p=r(m,!0);a(m),a(c),b(()=>l(p,(t(e),i(()=>t(e)["github-runner-group"])))),u(v,c)};g(Ht,v=>{t(e),i(()=>t(e)["github-runner-group"])&&v(Ce)})}var Le=s(Ht,2);{var Oe=v=>{var c=xa(),m=s(r(c),2),p=r(m);aa(p,5,()=>(t(e),i(()=>t(e).tags)),ra,(I,$)=>{var ct=ma(),qe=r(ct,!0);a(ct),b(()=>l(qe,(t($),i(()=>typeof t($)=="string"?t($):t($).name)))),u(I,ct)}),a(p),a(m),a(c),u(v,c)};g(Le,v=>{t(e),i(()=>t(e).tags&&t(e).tags.length>0)&&v(Oe)})}a(Lt),a(Ct),a(Rt),a(V);var Vt=s(V,2);{var Ge=v=>{var c=ua(),m=r(c),p=s(r(m),2),I=r(p,!0);a(p),a(m),a(c),b($=>l(I,$),[()=>(t(e),i(()=>ve(t(e).extra_specs)))]),u(v,c)};g(Vt,v=>{t(e),i(()=>t(e).extra_specs)&&v(Ge)})}var Je=s(Vt,2);{var je=v=>{na(v,{get instances(){return t(e),i(()=>t(e).instances)},entityType:"repository",onDeleteInstance:le})};g(Je,v=>{t(e),i(()=>t(e).instances)&&v(je)})}b((v,c,m,p,I)=>{l(we,(t(e),i(()=>t(e).id))),l($e,(t(e),i(()=>t(e).provider_name))),l(Pe,(t(e),i(()=>t(e).image))),l(De,(t(e),i(()=>t(e).flavor))),da(tt,1,`inline-flex px-2 py-1 text-xs font-medium rounded-full ${t(e),i(()=>t(e).enabled?"bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200":"bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200")??""}`),l(Ie,(t(e),i(()=>t(e).enabled?"Enabled":"Disabled"))),l(Ee,v),Qt(rt,"href",c),l(Me,m),l(Fe,p),l(Te,I),l(Ae,(t(e),i(()=>t(e).max_runners))),l(Ue,(t(e),i(()=>t(e).min_idle_runners))),l(Se,`${t(e),i(()=>t(e).runner_bootstrap_timeout)??""} minutes`),l(Be,(t(e),i(()=>t(e).priority))),l(Ne,(t(e),i(()=>t(e).runner_prefix||"garm"))),l(Re,`${t(e),i(()=>t(e).os_type)??""} / ${t(e),i(()=>t(e).os_arch)??""}`)},[()=>(f(R),t(e),i(()=>R(t(e)))),()=>(f(Zt),t(e),i(()=>Zt(t(e)))),()=>(f(P),t(e),i(()=>P(t(e)))),()=>(f(C),t(e),i(()=>C(t(e).created_at||""))),()=>(f(C),t(e),i(()=>C(t(e).updated_at||"")))]),u(H,kt)};g(U,H=>{t(e)&&H(z)},!0)}u(k,w)};g(_,k=>{t(M)?k(q):k(ke,!1)},!0)}u(d,o)};g(ge,d=>{t(O)?d(pe):d(fe,!1)})}a(G);var ht=s(G,2);{var _e=d=>{ia(d,{get pool(){return t(e)},$$events:{close:()=>n(F,!1),submit:o=>ie(o.detail)}})};g(ht,d=>{t(F)&&t(e)&&d(_e)})}var bt=s(ht,2);{var ye=d=>{{let o=B(()=>(t(e),f(P),i(()=>`Pool ${t(e).id} (${P(t(e))})`)));Yt(d,{title:"Delete Pool",message:"Are you sure you want to delete this pool? This action cannot be undone and will remove all associated runners.",get itemName(){return t(o)},$$events:{close:()=>n(T,!1),confirm:oe}})}};g(bt,d=>{t(T)&&t(e)&&d(ye)})}var he=s(bt,2);{var be=d=>{Yt(d,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return t(x),i(()=>t(x).name)},$$events:{close:()=>{n(D,!1),n(x,null)},confirm:ne}})};g(he,d=>{t(D)&&t(x)&&d(be)})}b(()=>{Qt(xe,"href",`${xt}/pools`),l(ue,(t(e),i(()=>t(e)?t(e).id:"Loading...")))}),u(ee,gt),Ye(),de()}export{Ta as component}; diff --git a/webapp/assets/_app/immutable/nodes/15.CkHQugXH.js b/webapp/assets/_app/immutable/nodes/15.CkHQugXH.js deleted file mode 100644 index 2e6c5196..00000000 --- a/webapp/assets/_app/immutable/nodes/15.CkHQugXH.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as Ee}from"../chunks/B3Pzt0F_.js";import{p as Me,E as Le,o as Te,l as w,s as r,m as a,g as e,y as T,a as Fe,f as S,k as l,j as c,r as u,c as F,t as K,v as fe,x as xe,u as j,z as $e,e as be,d as Se,h as Ne,b as ze,$ as Be,q as Re}from"../chunks/D8EpLgQ1.js";import{a as De,i as J,s as Ae}from"../chunks/5WA7h8uK.js";import{r as Q,b as Ce,g as oe}from"../chunks/CiE1LlKV.js";import{e as Oe,i as He}from"../chunks/u94nIB4-.js";import{b as ye,a as Pe}from"../chunks/C6k1Q4We.js";import{p as Je}from"../chunks/D4Caz1gY.js";import{M as Ve}from"../chunks/qB7B8uiS.js";import{F as Ye}from"../chunks/CNMHKIIK.js";import{e as Ie,a as ve}from"../chunks/wyaP0EDu.js";import{U as Ke}from"../chunks/CclkODgu.js";import{D as Qe}from"../chunks/KQ2xQpA3.js";import{P as Xe}from"../chunks/CO4LUyTP.js";import{t as X}from"../chunks/BEkVdVE1.js";import{k as Ze,g as et,c as tt,m as rt,p as ot}from"../chunks/BGVHQGl-.js";import{D as at,G as st,a as nt}from"../chunks/C9DJVOi1.js";import{E as it}from"../chunks/B7ITzBt8.js";import{E as lt}from"../chunks/CGpPw4EW.js";import{S as dt}from"../chunks/BE4wujub.js";import"../chunks/CoIRRsD9.js";var ct=S('

'),ut=S('

Loading...

'),pt=S(""),mt=S(''),gt=S('

Webhook secret will be automatically generated

'),ft=S('
'),bt=S('

Create Repository

');function yt(ae,se){Me(se,!1);const[ne,ie]=Ae(),p=()=>De(Ie,"$eagerCache",ne),R=a(),k=a(),G=a(),x=a(),C=Le();let g=a(!1),f=a(""),b=a("github"),o=a({name:"",owner:"",credentials_name:"",webhook_secret:"",pool_balancer_type:"roundrobin"}),D=a(!0),d=a(!0);async function y(){if(!p().loaded.credentials&&!p().loading.credentials)try{await ve.getCredentials()}catch(s){r(f,s instanceof Error?s.message:"Failed to load credentials")}}function _(s){r(b,s.detail),T(o,e(o).credentials_name="")}function P(){if(e(o).credentials_name){const s=e(R).find(A=>A.name===e(o).credentials_name);s&&s.forge_type&&r(b,s.forge_type)}}function E(){const s=new Uint8Array(32);return crypto.getRandomValues(s),Array.from(s,A=>A.toString(16).padStart(2,"0")).join("")}Te(()=>{y()});async function le(){if(!e(o).name?.trim()){r(f,"Repository name is required");return}if(!e(o).owner?.trim()){r(f,"Repository owner is required");return}if(!e(o).credentials_name){r(f,"Please select credentials");return}try{r(g,!0),r(f,"");const s={...e(o),install_webhook:e(D),auto_generate_secret:e(d)};C("submit",s)}catch(s){r(f,s instanceof Error?s.message:"Failed to create repository"),r(g,!1)}}w(()=>p(),()=>{r(R,p().credentials)}),w(()=>p(),()=>{r(k,p().loading.credentials)}),w(()=>(e(R),e(b)),()=>{r(G,e(R).filter(s=>e(b)?s.forge_type===e(b):!0))}),w(()=>e(d),()=>{e(d)?T(o,e(o).webhook_secret=E()):e(d)||T(o,e(o).webhook_secret="")}),w(()=>(e(o),e(d)),()=>{r(x,e(o).name?.trim()!==""&&e(o).owner?.trim()!==""&&e(o).credentials_name!==""&&(e(d)||e(o).webhook_secret?.trim()!==""))}),Fe(),Ee(),Ve(ae,{$$events:{close:()=>C("close")},children:(s,A)=>{var M=bt(),Z=l(c(M),2);{var de=v=>{var h=ct(),I=c(h),W=c(I,!0);u(I),u(h),K(()=>fe(W,e(f))),F(v,h)};J(Z,v=>{e(f)&&v(de)})}var ce=l(Z,2);{var ue=v=>{var h=ut();F(v,h)},pe=v=>{var h=ft(),I=c(h);Ye(I,{get selectedForgeType(){return e(b)},set selectedForgeType(i){r(b,i)},$$events:{select:_},$$legacy:!0});var W=l(I,2),ee=l(c(W),2);Q(ee),u(W);var L=l(W,2),N=l(c(L),2);Q(N),u(L);var z=l(L,2),B=l(c(z),2);K(()=>{e(o),xe(()=>{e(G)})});var O=c(B);O.value=O.__value="";var me=l(O);Oe(me,1,()=>e(G),He,(i,m)=>{var U=pt(),Ge=c(U);u(U);var ke={};K(()=>{fe(Ge,`${e(m),j(()=>e(m).name)??""} (${e(m),j(()=>e(m).endpoint?.name)??""})`),ke!==(ke=(e(m),j(()=>e(m).name)))&&(U.value=(U.__value=(e(m),j(()=>e(m).name)))??"")}),F(i,U)}),u(B),u(z);var H=l(z,2),V=l(c(H),2);K(()=>{e(o),xe(()=>{})});var Y=c(V);Y.value=Y.__value="roundrobin";var te=l(Y);te.value=te.__value="pack",u(V),u(H);var t=l(H,2),n=c(t),re=c(n);Q(re),$e(2),u(n);var $=l(n,2),q=c($),he=c(q);Q(he),$e(2),u(q);var We=l(q,2);{var qe=i=>{var m=mt();Q(m),ye(m,()=>e(o).webhook_secret,U=>T(o,e(o).webhook_secret=U)),F(i,m)},Ue=i=>{var m=gt();F(i,m)};J(We,i=>{e(d)?i(Ue,!1):i(qe)})}u($),u(t);var _e=l(t,2),we=c(_e),ge=l(we,2),je=c(ge,!0);u(ge),u(_e),u(h),K(()=>{ge.disabled=e(g)||e(k)||!e(x),fe(je,e(g)?"Creating...":"Create Repository")}),ye(ee,()=>e(o).name,i=>T(o,e(o).name=i)),ye(N,()=>e(o).owner,i=>T(o,e(o).owner=i)),Ce(B,()=>e(o).credentials_name,i=>T(o,e(o).credentials_name=i)),be("change",B,P),Ce(V,()=>e(o).pool_balancer_type,i=>T(o,e(o).pool_balancer_type=i)),Pe(re,()=>e(D),i=>r(D,i)),Pe(he,()=>e(d),i=>r(d,i)),be("click",we,()=>C("close")),be("submit",h,Je(le)),F(v,h)};J(ce,v=>{e(g)?v(ue):v(pe,!1)})}u(M),F(s,M)},$$slots:{default:!0}}),Se(),ie()}var vt=S('
',1);function Gt(ae,se){Me(se,!1);const[ne,ie]=Ae(),p=()=>De(Ie,"$eagerCache",ne),R=a(),k=a(),G=a();let x=a([]),C=a(!0),g=a(""),f=a(""),b=a(!1),o=a(!1),D=a(!1),d=a(null),y=a(null),_=a(1),P=a(25),E=a(1);Te(async()=>{try{r(C,!0);const t=await ve.getRepositories();t&&Array.isArray(t)&&r(x,t)}catch(t){console.error("Failed to load repositories:",t),r(g,t instanceof Error?t.message:"Failed to load repositories")}finally{r(C,!1)}});async function le(){try{await ve.retryResource("repositories")}catch(t){console.error("Retry failed:",t)}}function s(t){r(d,t),r(o,!0)}function A(t){r(y,t),r(D,!0)}function M(){r(b,!1),r(o,!1),r(D,!1),r(d,null),r(y,null),r(g,"")}async function Z(t){try{r(g,"");const n=t.detail,re={name:n.name,owner:n.owner,credentials_name:n.credentials_name,webhook_secret:n.webhook_secret},$=await oe.createRepository(re);if(n.install_webhook&&$.id)try{await oe.installRepoWebhook($.id),X.success("Webhook Installed",`Webhook for repository ${$.owner}/${$.name} has been installed successfully.`)}catch(q){console.warn("Repository created but webhook installation failed:",q),X.error("Webhook Installation Failed",q instanceof Error?q.message:"Failed to install webhook. You can try installing it manually from the repository details page.")}r(b,!1),X.success("Repository Created",`Repository ${$.owner}/${$.name} has been created successfully.`)}catch(n){throw r(g,n instanceof Error?n.message:"Failed to create repository"),n}}async function de(t){if(e(d))try{await oe.updateRepository(e(d).id,t),X.success("Repository Updated",`Repository ${e(d).owner}/${e(d).name} has been updated successfully.`),M()}catch(n){throw n}}async function ce(){if(e(y))try{r(g,""),await oe.deleteRepository(e(y).id),X.success("Repository Deleted",`Repository ${e(y).owner}/${e(y).name} has been deleted successfully.`),M()}catch(t){r(g,t instanceof Error?t.message:"Failed to delete repository")}}const ue=[{key:"repository",title:"Repository",cellComponent:it,cellProps:{entityType:"repository",showOwner:!0}},{key:"endpoint",title:"Endpoint",cellComponent:lt},{key:"credentials",title:"Credentials",cellComponent:st,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:dt,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:nt}],pe={entityType:"repository",primaryText:{field:"name",isClickable:!0,href:"/repositories/{id}",showOwner:!0},customInfo:[{icon:t=>et(t?.endpoint?.endpoint_type||"unknown"),text:t=>t?.endpoint?.name||"Unknown"}],badges:[{type:"custom",value:t=>Ze(t)}],actions:[{type:"edit",handler:t=>s(t)},{type:"delete",handler:t=>A(t)}]};function v(t){r(f,t.detail.term),r(_,1)}function h(t){r(_,t.detail.page)}function I(t){const n=tt(t.detail.perPage);r(P,n.newPerPage),r(_,n.newCurrentPage)}function W(t){s(t.detail.item)}function ee(t){A(t.detail.item)}w(()=>(e(x),p()),()=>{(!e(x).length||p().loaded.repositories)&&r(x,p().repositories)}),w(()=>p(),()=>{r(C,p().loading.repositories)}),w(()=>p(),()=>{r(R,p().errorMessages.repositories)}),w(()=>(e(x),e(f)),()=>{r(k,rt(e(x),e(f)))}),w(()=>(e(E),e(k),e(P),e(_)),()=>{r(E,Math.ceil(e(k).length/e(P))),e(_)>e(E)&&e(E)>0&&r(_,e(E))}),w(()=>(e(k),e(_),e(P)),()=>{r(G,ot(e(k),e(_),e(P)))}),Fe(),Ee();var L=vt();Ne(t=>{Be.title="Repositories - GARM"});var N=ze(L),z=c(N);Xe(z,{title:"Repositories",description:"Manage your GitHub repositories and their runners",actionLabel:"Add Repository",$$events:{action:()=>{r(b,!0)}}});var B=l(z,2);{let t=Re(()=>e(R)||e(g)),n=Re(()=>!!e(R));at(B,{get columns(){return ue},get data(){return e(G)},get loading(){return e(C)},get error(){return e(t)},get searchTerm(){return e(f)},searchPlaceholder:"Search repositories by name or owner...",get currentPage(){return e(_)},get perPage(){return e(P)},get totalPages(){return e(E)},get totalItems(){return e(k),j(()=>e(k).length)},itemName:"repositories",emptyIconType:"building",get showRetry(){return e(n)},get mobileCardConfig(){return pe},$$events:{search:v,pageChange:h,perPageChange:I,retry:le,edit:W,delete:ee}})}u(N);var O=l(N,2);{var me=t=>{yt(t,{$$events:{close:()=>r(b,!1),submit:Z}})};J(O,t=>{e(b)&&t(me)})}var H=l(O,2);{var V=t=>{Ke(t,{get entity(){return e(d)},entityType:"repository",$$events:{close:M,submit:n=>de(n.detail)}})};J(H,t=>{e(o)&&e(d)&&t(V)})}var Y=l(H,2);{var te=t=>{Qe(t,{title:"Delete Repository",message:"Are you sure you want to delete this repository? This action cannot be undone and will remove all associated pools and runners.",get itemName(){return`${e(y),j(()=>e(y).owner)??""}/${e(y),j(()=>e(y).name)??""}`},$$events:{close:M,confirm:ce}})};J(Y,t=>{e(D)&&e(y)&&t(te)})}F(ae,L),Se(),ie()}export{Gt as component}; diff --git a/webapp/assets/_app/immutable/nodes/15.CqYhwqAI.js b/webapp/assets/_app/immutable/nodes/15.CqYhwqAI.js new file mode 100644 index 00000000..82a2bac2 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/15.CqYhwqAI.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Me}from"../chunks/B3Pzt0F_.js";import{p as Te,E as Ne,o as De,l as w,s as r,m as a,g as e,y as T,a as Se,f as S,k as l,j as c,r as u,c as D,t as Q,v as fe,x as $e,u as j,z as Re,e as ye,d as Fe,h as ze,b as Be,$ as Oe,q as Ce}from"../chunks/D8EpLgQ1.js";import{a as Ae,i as V,s as Ie}from"../chunks/5WA7h8uK.js";import{r as X,b as Pe,g as oe}from"../chunks/CiE1LlKV.js";import{e as He,i as Je}from"../chunks/u94nIB4-.js";import{b as ve,a as Ee}from"../chunks/C6k1Q4We.js";import{p as Ve}from"../chunks/D4Caz1gY.js";import{M as Ye}from"../chunks/qB7B8uiS.js";import{e as ae}from"../chunks/BZiHL9L3.js";import{F as Ke}from"../chunks/CNMHKIIK.js";import{e as We,a as he}from"../chunks/wyaP0EDu.js";import{U as Qe}from"../chunks/CIBm3n2u.js";import{D as Xe}from"../chunks/KQ2xQpA3.js";import{P as Ze}from"../chunks/CO4LUyTP.js";import{t as J}from"../chunks/BEkVdVE1.js";import{k as et,g as tt,c as rt,m as ot,p as at}from"../chunks/BGVHQGl-.js";import{D as st,G as nt,a as it}from"../chunks/BrNfsPe8.js";import{E as lt}from"../chunks/D4PaGKsV.js";import{E as dt}from"../chunks/CGpPw4EW.js";import{S as ct}from"../chunks/MCv1Wq2q.js";import"../chunks/CRhkqW2i.js";var ut=S('

'),pt=S('

Loading...

'),mt=S(""),gt=S(''),bt=S('

Webhook secret will be automatically generated

'),ft=S('
'),yt=S('

Create Repository

');function vt(se,ne){Te(ne,!1);const[ie,le]=Ie(),p=()=>Ae(We,"$eagerCache",ie),R=a(),k=a(),G=a(),x=a(),C=Ne();let y=a(!1),g=a(""),b=a("github"),o=a({name:"",owner:"",credentials_name:"",webhook_secret:"",pool_balancer_type:"roundrobin"}),F=a(!0),d=a(!0);async function f(){if(!p().loaded.credentials&&!p().loading.credentials)try{await he.getCredentials()}catch(i){r(g,ae(i))}}function _(i){r(b,i.detail),T(o,e(o).credentials_name="")}function P(){if(e(o).credentials_name){const i=e(R).find(A=>A.name===e(o).credentials_name);i&&i.forge_type&&r(b,i.forge_type)}}function E(){const i=new Uint8Array(32);return crypto.getRandomValues(i),Array.from(i,A=>A.toString(16).padStart(2,"0")).join("")}De(()=>{f()});async function de(){if(!e(o).name?.trim()){r(g,"Repository name is required");return}if(!e(o).owner?.trim()){r(g,"Repository owner is required");return}if(!e(o).credentials_name){r(g,"Please select credentials");return}try{r(y,!0),r(g,"");const i={...e(o),install_webhook:e(F),auto_generate_secret:e(d)};C("submit",i)}catch(i){r(g,ae(i)),r(y,!1)}}w(()=>p(),()=>{r(R,p().credentials)}),w(()=>p(),()=>{r(k,p().loading.credentials)}),w(()=>(e(R),e(b)),()=>{r(G,e(R).filter(i=>e(b)?i.forge_type===e(b):!0))}),w(()=>e(d),()=>{e(d)?T(o,e(o).webhook_secret=E()):e(d)||T(o,e(o).webhook_secret="")}),w(()=>(e(o),e(d)),()=>{r(x,e(o).name?.trim()!==""&&e(o).owner?.trim()!==""&&e(o).credentials_name!==""&&(e(d)||e(o).webhook_secret?.trim()!==""))}),Se(),Me(),Ye(se,{$$events:{close:()=>C("close")},children:(i,A)=>{var M=yt(),Z=l(c(M),2);{var ce=v=>{var h=ut(),I=c(h),W=c(I,!0);u(I),u(h),Q(()=>fe(W,e(g))),D(v,h)};V(Z,v=>{e(g)&&v(ce)})}var ue=l(Z,2);{var pe=v=>{var h=pt();D(v,h)},me=v=>{var h=ft(),I=c(h);Ke(I,{get selectedForgeType(){return e(b)},set selectedForgeType(n){r(b,n)},$$events:{select:_},$$legacy:!0});var W=l(I,2),ee=l(c(W),2);X(ee),u(W);var L=l(W,2),N=l(c(L),2);X(N),u(L);var z=l(L,2),B=l(c(z),2);Q(()=>{e(o),$e(()=>{e(G)})});var O=c(B);O.value=O.__value="";var ge=l(O);He(ge,1,()=>e(G),Je,(n,m)=>{var U=mt(),Le=c(U);u(U);var xe={};Q(()=>{fe(Le,`${e(m),j(()=>e(m).name)??""} (${e(m),j(()=>e(m).endpoint?.name)??""})`),xe!==(xe=(e(m),j(()=>e(m).name)))&&(U.value=(U.__value=(e(m),j(()=>e(m).name)))??"")}),D(n,U)}),u(B),u(z);var H=l(z,2),Y=l(c(H),2);Q(()=>{e(o),$e(()=>{})});var K=c(Y);K.value=K.__value="roundrobin";var te=l(K);te.value=te.__value="pack",u(Y),u(H);var t=l(H,2),s=c(t),re=c(s);X(re),Re(2),u(s);var $=l(s,2),q=c($),_e=c(q);X(_e),Re(2),u(q);var qe=l(q,2);{var Ue=n=>{var m=gt();X(m),ve(m,()=>e(o).webhook_secret,U=>T(o,e(o).webhook_secret=U)),D(n,m)},je=n=>{var m=bt();D(n,m)};V(qe,n=>{e(d)?n(je,!1):n(Ue)})}u($),u(t);var we=l(t,2),ke=c(we),be=l(ke,2),Ge=c(be,!0);u(be),u(we),u(h),Q(()=>{be.disabled=e(y)||e(k)||!e(x),fe(Ge,e(y)?"Creating...":"Create Repository")}),ve(ee,()=>e(o).name,n=>T(o,e(o).name=n)),ve(N,()=>e(o).owner,n=>T(o,e(o).owner=n)),Pe(B,()=>e(o).credentials_name,n=>T(o,e(o).credentials_name=n)),ye("change",B,P),Pe(Y,()=>e(o).pool_balancer_type,n=>T(o,e(o).pool_balancer_type=n)),Ee(re,()=>e(F),n=>r(F,n)),Ee(_e,()=>e(d),n=>r(d,n)),ye("click",ke,()=>C("close")),ye("submit",h,Ve(de)),D(v,h)};V(ue,v=>{e(y)?v(pe):v(me,!1)})}u(M),D(i,M)},$$slots:{default:!0}}),Fe(),le()}var ht=S('
',1);function Nt(se,ne){Te(ne,!1);const[ie,le]=Ie(),p=()=>Ae(We,"$eagerCache",ie),R=a(),k=a(),G=a();let x=a([]),C=a(!0),y=a(""),g=a(""),b=a(!1),o=a(!1),F=a(!1),d=a(null),f=a(null),_=a(1),P=a(25),E=a(1);De(async()=>{try{r(C,!0);const t=await he.getRepositories();t&&Array.isArray(t)&&r(x,t)}catch(t){console.error("Failed to load repositories:",t),r(y,t instanceof Error?t.message:"Failed to load repositories")}finally{r(C,!1)}});async function de(){try{await he.retryResource("repositories")}catch(t){console.error("Retry failed:",t)}}function i(t){r(d,t),r(o,!0)}function A(t){r(f,t),r(F,!0)}function M(){r(b,!1),r(o,!1),r(F,!1),r(d,null),r(f,null),r(y,"")}async function Z(t){try{r(y,"");const s=t.detail,re={name:s.name,owner:s.owner,credentials_name:s.credentials_name,webhook_secret:s.webhook_secret},$=await oe.createRepository(re);if(s.install_webhook&&$.id)try{await oe.installRepoWebhook($.id),J.success("Webhook Installed",`Webhook for repository ${$.owner}/${$.name} has been installed successfully.`)}catch(q){console.warn("Repository created but webhook installation failed:",q),J.error("Webhook Installation Failed",q instanceof Error?q.message:"Failed to install webhook. You can try installing it manually from the repository details page.")}r(b,!1),J.success("Repository Created",`Repository ${$.owner}/${$.name} has been created successfully.`)}catch(s){throw r(y,ae(s)),s}}async function ce(t){if(e(d))try{await oe.updateRepository(e(d).id,t),J.success("Repository Updated",`Repository ${e(d).owner}/${e(d).name} has been updated successfully.`),M()}catch(s){throw s}}async function ue(){if(e(f))try{r(y,""),await oe.deleteRepository(e(f).id),J.success("Repository Deleted",`Repository ${e(f).owner}/${e(f).name} has been deleted successfully.`)}catch(t){const s=ae(t);J.error("Delete Failed",s)}finally{M()}}const pe=[{key:"repository",title:"Repository",cellComponent:lt,cellProps:{entityType:"repository",showOwner:!0}},{key:"endpoint",title:"Endpoint",cellComponent:dt},{key:"credentials",title:"Credentials",cellComponent:nt,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:ct,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:it}],me={entityType:"repository",primaryText:{field:"name",isClickable:!0,href:"/repositories/{id}",showOwner:!0},customInfo:[{icon:t=>tt(t?.endpoint?.endpoint_type||"unknown"),text:t=>t?.endpoint?.name||"Unknown"}],badges:[{type:"custom",value:t=>et(t)}],actions:[{type:"edit",handler:t=>i(t)},{type:"delete",handler:t=>A(t)}]};function v(t){r(g,t.detail.term),r(_,1)}function h(t){r(_,t.detail.page)}function I(t){const s=rt(t.detail.perPage);r(P,s.newPerPage),r(_,s.newCurrentPage)}function W(t){i(t.detail.item)}function ee(t){A(t.detail.item)}w(()=>(e(x),p()),()=>{(!e(x).length||p().loaded.repositories)&&r(x,p().repositories)}),w(()=>p(),()=>{r(C,p().loading.repositories)}),w(()=>p(),()=>{r(R,p().errorMessages.repositories)}),w(()=>(e(x),e(g)),()=>{r(k,ot(e(x),e(g)))}),w(()=>(e(E),e(k),e(P),e(_)),()=>{r(E,Math.ceil(e(k).length/e(P))),e(_)>e(E)&&e(E)>0&&r(_,e(E))}),w(()=>(e(k),e(_),e(P)),()=>{r(G,at(e(k),e(_),e(P)))}),Se(),Me();var L=ht();ze(t=>{Oe.title="Repositories - GARM"});var N=Be(L),z=c(N);Ze(z,{title:"Repositories",description:"Manage your GitHub repositories and their runners",actionLabel:"Add Repository",$$events:{action:()=>{r(b,!0)}}});var B=l(z,2);{let t=Ce(()=>e(R)||e(y)),s=Ce(()=>!!e(R));st(B,{get columns(){return pe},get data(){return e(G)},get loading(){return e(C)},get error(){return e(t)},get searchTerm(){return e(g)},searchPlaceholder:"Search repositories by name or owner...",get currentPage(){return e(_)},get perPage(){return e(P)},get totalPages(){return e(E)},get totalItems(){return e(k),j(()=>e(k).length)},itemName:"repositories",emptyIconType:"building",get showRetry(){return e(s)},get mobileCardConfig(){return me},$$events:{search:v,pageChange:h,perPageChange:I,retry:de,edit:W,delete:ee}})}u(N);var O=l(N,2);{var ge=t=>{vt(t,{$$events:{close:()=>r(b,!1),submit:Z}})};V(O,t=>{e(b)&&t(ge)})}var H=l(O,2);{var Y=t=>{Qe(t,{get entity(){return e(d)},entityType:"repository",$$events:{close:M,submit:s=>ce(s.detail)}})};V(H,t=>{e(o)&&e(d)&&t(Y)})}var K=l(H,2);{var te=t=>{Xe(t,{title:"Delete Repository",message:"Are you sure you want to delete this repository? This action cannot be undone and will remove all associated pools and runners.",get itemName(){return`${e(f),j(()=>e(f).owner)??""}/${e(f),j(()=>e(f).name)??""}`},$$events:{close:M,confirm:ue}})};V(K,t=>{e(F)&&e(f)&&t(te)})}D(se,L),Fe(),le()}export{Nt as component}; diff --git a/webapp/assets/_app/immutable/nodes/16.B35VVkOd.js b/webapp/assets/_app/immutable/nodes/16.B35VVkOd.js deleted file mode 100644 index 5ee0941c..00000000 --- a/webapp/assets/_app/immutable/nodes/16.B35VVkOd.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as We}from"../chunks/B3Pzt0F_.js";import{p as qe,o as ze,A as He,l as je,a as Ge,f as A,h as Oe,b as M,t as z,c as w,d as Ve,g as e,m as l,s as r,u as s,$ as Je,j as u,r as f,k as d,v as le,y as Ke,B as de,q as m,n as Qe}from"../chunks/D8EpLgQ1.js";import{i as g,s as Xe,a as Ye}from"../chunks/5WA7h8uK.js";import{c as Ze,g as h}from"../chunks/CiE1LlKV.js";import{p as et}from"../chunks/C41YH50Q.js";import{g as ce}from"../chunks/CTf6mQoE.js";import{b as H}from"../chunks/CoIRRsD9.js";import{U as tt}from"../chunks/CclkODgu.js";import{D as pe}from"../chunks/KQ2xQpA3.js";import{E as ot,P as at,a as rt}from"../chunks/BmGWMSQm.js";import{D as st,I as nt}from"../chunks/DDhBTdDt.js";import{g as ue}from"../chunks/BGVHQGl-.js";import{W as it}from"../chunks/Dbd6PPbz.js";import{C as lt}from"../chunks/CwqI2jFH.js";import{w as j}from"../chunks/u94nIB4-.js";import{t as C}from"../chunks/BEkVdVE1.js";var dt=A('

Loading repository...

'),ct=A('

'),pt=A(" ",1),ut=A(' ',1);function kt(fe,me){qe(me,!1);const[ye,ve]=Xe(),G=()=>Ye(et,"$page",ye),x=l();let t=l(null),c=l([]),y=l([]),F=l(!0),I=l(""),R=l(!1),D=l(!1),E=l(!1),T=l(!1),p=l(null),P=null,_=l();async function O(){if(e(x))try{r(F,!0),r(I,"");const[o,a,n]=await Promise.all([h.getRepository(e(x)),h.listRepositoryPools(e(x)).catch(()=>[]),h.listRepositoryInstances(e(x)).catch(()=>[])]);r(t,o),r(c,a),r(y,n)}catch(o){r(I,o instanceof Error?o.message:"Failed to load repository")}finally{r(F,!1)}}function ge(o,a){const{events:n}=o;return{...a,events:n}}async function he(o){if(e(t))try{await h.updateRepository(e(t).id,o),await O(),C.success("Repository Updated",`Repository ${e(t).owner}/${e(t).name} has been updated successfully.`),r(R,!1)}catch(a){throw a}}async function _e(){if(e(t)){try{await h.deleteRepository(e(t).id),ce(`${H}/repositories`)}catch(o){r(I,o instanceof Error?o.message:"Failed to delete repository")}r(D,!1)}}async function $e(){if(e(p))try{await h.deleteInstance(e(p).name),C.success("Instance Deleted",`Instance ${e(p).name} has been deleted successfully.`),r(E,!1),r(p,null)}catch(o){const a=o instanceof Error?o.message:"Failed to delete instance";C.error("Delete Failed",a),r(E,!1),r(p,null)}}function be(o){r(p,o),r(E,!0)}function we(){r(T,!0)}async function xe(o){try{if(!e(t))return;await h.createRepositoryPool(e(t).id,o.detail),C.success("Pool Created",`Pool has been created successfully for repository ${e(t).owner}/${e(t).name}.`),r(T,!1)}catch(a){throw a}}function V(){e(_)&&Ke(_,e(_).scrollTop=e(_).scrollHeight)}function Ie(o){if(o.operation==="update"){const a=o.payload;if(e(t)&&a.id===e(t).id){const n=e(t).events?.length||0,i=a.events?.length||0;r(t,ge(e(t),a)),i>n&&setTimeout(()=>{V()},100)}}else if(o.operation==="delete"){const a=o.payload.id||o.payload;e(t)&&e(t).id===a&&ce(`${H}/repositories`)}}function Ee(o){if(!e(t))return;const a=o.payload;if(a.repo_id===e(t).id){if(o.operation==="create")r(c,[...e(c),a]);else if(o.operation==="update")r(c,e(c).map(n=>n.id===a.id?a:n));else if(o.operation==="delete"){const n=a.id||a;r(c,e(c).filter(i=>i.id!==n))}}}function Re(o){if(!e(t)||!e(c))return;const a=o.payload;if(e(c).some(i=>i.id===a.pool_id)){if(o.operation==="create")r(y,[...e(y),a]);else if(o.operation==="update")r(y,e(y).map(i=>i.id===a.id?a:i));else if(o.operation==="delete"){const i=a.id||a;r(y,e(y).filter(L=>L.id!==i))}}}ze(()=>{O().then(()=>{e(t)?.events?.length&&setTimeout(()=>{V()},100)});const o=j.subscribeToEntity("repository",["update","delete"],Ie),a=j.subscribeToEntity("pool",["create","update","delete"],Ee),n=j.subscribeToEntity("instance",["create","update","delete"],Re);P=()=>{o(),a(),n()}}),He(()=>{P&&(P(),P=null)}),je(()=>G(),()=>{r(x,G().params.id)}),Ge(),We();var J=ut();Oe(o=>{z(()=>Je.title=`${e(t),s(()=>e(t)?`${e(t).name} - Repository Details`:"Repository Details")??""} - GARM`)});var S=M(J),B=u(S),K=u(B),U=u(K),De=u(U);f(U);var Q=d(U,2),X=u(Q),Y=d(u(X),2),Te=u(Y,!0);f(Y),f(X),f(Q),f(K),f(B);var Pe=d(B,2);{var ke=o=>{var a=dt();w(o,a)},Me=o=>{var a=de(),n=M(a);{var i=$=>{var b=ct(),k=u(b),N=u(k,!0);f(k),f(b),z(()=>le(N,e(I))),w($,b)},L=$=>{var b=de(),k=M(b);{var N=W=>{var oe=pt(),ae=M(oe);{let v=m(()=>(e(t),s(()=>e(t).name||"Repository"))),q=m(()=>(e(t),s(()=>e(t).owner))),Le=m(()=>(e(t),s(()=>e(t).endpoint?.name))),Ne=m(()=>(Qe(ue),e(t),s(()=>ue(e(t).endpoint?.endpoint_type||"unknown"))));st(ae,{get title(){return e(v)},get subtitle(){return`Owner: ${e(q)??""} • Endpoint: ${e(Le)??""}`},get forgeIcon(){return e(Ne)},onEdit:()=>r(R,!0),onDelete:()=>r(D,!0)})}var re=d(ae,2);ot(re,{get entity(){return e(t)},entityType:"repository"});var se=d(re,2);{let v=m(()=>(e(t),s(()=>e(t).id||"")));it(se,{entityType:"repository",get entityId(){return e(v)},get entityName(){return`${e(t),s(()=>e(t).owner)??""}/${e(t),s(()=>e(t).name)??""}`}})}var ne=d(se,2);{let v=m(()=>(e(t),s(()=>e(t).id||"")));at(ne,{get pools(){return e(c)},entityType:"repository",get entityId(){return e(v)},get entityName(){return`${e(t),s(()=>e(t).owner)??""}/${e(t),s(()=>e(t).name)??""}`},$$events:{addPool:we}})}var ie=d(ne,2);nt(ie,{get instances(){return e(y)},entityType:"repository",onDeleteInstance:be});var Ue=d(ie,2);{let v=m(()=>(e(t),s(()=>e(t)?.events)));rt(Ue,{get events(){return e(v)},get eventsContainer(){return e(_)},set eventsContainer(q){r(_,q)},$$legacy:!0})}w(W,oe)};g(k,W=>{e(t)&&W(N)},!0)}w($,b)};g(n,$=>{e(I)?$(i):$(L,!1)},!0)}w(o,a)};g(Pe,o=>{e(F)?o(ke):o(Me,!1)})}f(S);var Z=d(S,2);{var Ce=o=>{tt(o,{get entity(){return e(t)},entityType:"repository",$$events:{close:()=>r(R,!1),submit:a=>he(a.detail)}})};g(Z,o=>{e(R)&&e(t)&&o(Ce)})}var ee=d(Z,2);{var Ae=o=>{{let a=m(()=>(e(t),s(()=>`${e(t).owner}/${e(t).name}`)));pe(o,{title:"Delete Repository",message:"Are you sure you want to delete this repository? This action cannot be undone and will remove all associated pools and instances.",get itemName(){return e(a)},$$events:{close:()=>r(D,!1),confirm:_e}})}};g(ee,o=>{e(D)&&e(t)&&o(Ae)})}var te=d(ee,2);{var Fe=o=>{pe(o,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(p),s(()=>e(p).name)},$$events:{close:()=>{r(E,!1),r(p,null)},confirm:$e}})};g(te,o=>{e(E)&&e(p)&&o(Fe)})}var Se=d(te,2);{var Be=o=>{{let a=m(()=>(e(t),s(()=>e(t).id||"")));lt(o,{initialEntityType:"repository",get initialEntityId(){return e(a)},$$events:{close:()=>r(T,!1),submit:xe}})}};g(Se,o=>{e(T)&&e(t)&&o(Be)})}z(()=>{Ze(De,"href",`${H}/repositories`),le(Te,(e(t),s(()=>e(t)?e(t).name:"Loading...")))}),w(fe,J),Ve(),ve()}export{kt as component}; diff --git a/webapp/assets/_app/immutable/nodes/16.BVViOnXd.js b/webapp/assets/_app/immutable/nodes/16.BVViOnXd.js new file mode 100644 index 00000000..b2928fba --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/16.BVViOnXd.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as qe}from"../chunks/B3Pzt0F_.js";import{p as ze,o as He,A as je,l as Ge,a as Oe,f as A,h as Ve,b as C,t as z,c as w,d as Je,g as e,m as l,s as r,u as s,$ as Ke,j as u,r as f,k as d,v as de,y as Qe,B as ce,q as m,n as Xe}from"../chunks/D8EpLgQ1.js";import{i as g,s as Ye,a as Ze}from"../chunks/5WA7h8uK.js";import{c as et,g as h}from"../chunks/CiE1LlKV.js";import{p as tt}from"../chunks/BE8f1Riw.js";import{g as pe}from"../chunks/DXCC0cSN.js";import{b as H}from"../chunks/CRhkqW2i.js";import{U as ot}from"../chunks/CIBm3n2u.js";import{D as ue}from"../chunks/KQ2xQpA3.js";import{E as at,P as rt,a as st}from"../chunks/OpktHEmj.js";import{D as nt,I as it}from"../chunks/BEoJgOul.js";import{g as fe}from"../chunks/BGVHQGl-.js";import{e as j}from"../chunks/BZiHL9L3.js";import{W as lt}from"../chunks/BsqC4UA1.js";import{C as dt}from"../chunks/CRD55Dyg.js";import{w as G}from"../chunks/u94nIB4-.js";import{t as R}from"../chunks/BEkVdVE1.js";var ct=A('

Loading repository...

'),pt=A('

'),ut=A(" ",1),ft=A(' ',1);function Ct(me,ye){ze(ye,!1);const[ve,ge]=Ye(),O=()=>Ze(tt,"$page",ve),x=l();let t=l(null),c=l([]),y=l([]),S=l(!0),E=l(""),D=l(!1),T=l(!1),I=l(!1),P=l(!1),p=l(null),M=null,_=l();async function V(){if(e(x))try{r(S,!0),r(E,"");const[o,a,n]=await Promise.all([h.getRepository(e(x)),h.listRepositoryPools(e(x)).catch(()=>[]),h.listRepositoryInstances(e(x)).catch(()=>[])]);r(t,o),r(c,a),r(y,n)}catch(o){r(E,j(o))}finally{r(S,!1)}}function he(o,a){const{events:n}=o;return{...a,events:n}}async function _e(o){if(e(t))try{await h.updateRepository(e(t).id,o),await V(),R.success("Repository Updated",`Repository ${e(t).owner}/${e(t).name} has been updated successfully.`),r(D,!1)}catch(a){throw a}}async function $e(){if(e(t)){try{await h.deleteRepository(e(t).id),pe(`${H}/repositories`)}catch(o){const a=j(o);R.error("Delete Failed",a)}r(T,!1)}}async function be(){if(e(p))try{await h.deleteInstance(e(p).name),R.success("Instance Deleted",`Instance ${e(p).name} has been deleted successfully.`),r(I,!1),r(p,null)}catch(o){const a=j(o);R.error("Delete Failed",a),r(I,!1),r(p,null)}}function we(o){r(p,o),r(I,!0)}function xe(){r(P,!0)}async function Ie(o){try{if(!e(t))return;await h.createRepositoryPool(e(t).id,o.detail),R.success("Pool Created",`Pool has been created successfully for repository ${e(t).owner}/${e(t).name}.`),r(P,!1)}catch(a){throw a}}function J(){e(_)&&Qe(_,e(_).scrollTop=e(_).scrollHeight)}function Re(o){if(o.operation==="update"){const a=o.payload;if(e(t)&&a.id===e(t).id){const n=e(t).events?.length||0,i=a.events?.length||0;r(t,he(e(t),a)),i>n&&setTimeout(()=>{J()},100)}}else if(o.operation==="delete"){const a=o.payload.id||o.payload;e(t)&&e(t).id===a&&pe(`${H}/repositories`)}}function Ee(o){if(!e(t))return;const a=o.payload;if(a.repo_id===e(t).id){if(o.operation==="create")r(c,[...e(c),a]);else if(o.operation==="update")r(c,e(c).map(n=>n.id===a.id?a:n));else if(o.operation==="delete"){const n=a.id||a;r(c,e(c).filter(i=>i.id!==n))}}}function De(o){if(!e(t)||!e(c))return;const a=o.payload;if(e(c).some(i=>i.id===a.pool_id)){if(o.operation==="create")r(y,[...e(y),a]);else if(o.operation==="update")r(y,e(y).map(i=>i.id===a.id?a:i));else if(o.operation==="delete"){const i=a.id||a;r(y,e(y).filter(L=>L.id!==i))}}}He(()=>{V().then(()=>{e(t)?.events?.length&&setTimeout(()=>{J()},100)});const o=G.subscribeToEntity("repository",["update","delete"],Re),a=G.subscribeToEntity("pool",["create","update","delete"],Ee),n=G.subscribeToEntity("instance",["create","update","delete"],De);M=()=>{o(),a(),n()}}),je(()=>{M&&(M(),M=null)}),Ge(()=>O(),()=>{r(x,O().params.id)}),Oe(),qe();var K=ft();Ve(o=>{z(()=>Ke.title=`${e(t),s(()=>e(t)?`${e(t).name} - Repository Details`:"Repository Details")??""} - GARM`)});var B=C(K),U=u(B),Q=u(U),F=u(Q),Te=u(F);f(F);var X=d(F,2),Y=u(X),Z=d(u(Y),2),Pe=u(Z,!0);f(Z),f(Y),f(X),f(Q),f(U);var Me=d(U,2);{var ke=o=>{var a=ct();w(o,a)},Ce=o=>{var a=ce(),n=C(a);{var i=$=>{var b=pt(),k=u(b),N=u(k,!0);f(k),f(b),z(()=>de(N,e(E))),w($,b)},L=$=>{var b=ce(),k=C(b);{var N=W=>{var ae=ut(),re=C(ae);{let v=m(()=>(e(t),s(()=>e(t).name||"Repository"))),q=m(()=>(e(t),s(()=>e(t).owner))),Ne=m(()=>(e(t),s(()=>e(t).endpoint?.name))),We=m(()=>(Xe(fe),e(t),s(()=>fe(e(t).endpoint?.endpoint_type||"unknown"))));nt(re,{get title(){return e(v)},get subtitle(){return`Owner: ${e(q)??""} • Endpoint: ${e(Ne)??""}`},get forgeIcon(){return e(We)},onEdit:()=>r(D,!0),onDelete:()=>r(T,!0)})}var se=d(re,2);at(se,{get entity(){return e(t)},entityType:"repository"});var ne=d(se,2);{let v=m(()=>(e(t),s(()=>e(t).id||"")));lt(ne,{entityType:"repository",get entityId(){return e(v)},get entityName(){return`${e(t),s(()=>e(t).owner)??""}/${e(t),s(()=>e(t).name)??""}`}})}var ie=d(ne,2);{let v=m(()=>(e(t),s(()=>e(t).id||"")));rt(ie,{get pools(){return e(c)},entityType:"repository",get entityId(){return e(v)},get entityName(){return`${e(t),s(()=>e(t).owner)??""}/${e(t),s(()=>e(t).name)??""}`},$$events:{addPool:xe}})}var le=d(ie,2);it(le,{get instances(){return e(y)},entityType:"repository",onDeleteInstance:we});var Le=d(le,2);{let v=m(()=>(e(t),s(()=>e(t)?.events)));st(Le,{get events(){return e(v)},get eventsContainer(){return e(_)},set eventsContainer(q){r(_,q)},$$legacy:!0})}w(W,ae)};g(k,W=>{e(t)&&W(N)},!0)}w($,b)};g(n,$=>{e(E)?$(i):$(L,!1)},!0)}w(o,a)};g(Me,o=>{e(S)?o(ke):o(Ce,!1)})}f(B);var ee=d(B,2);{var Ae=o=>{ot(o,{get entity(){return e(t)},entityType:"repository",$$events:{close:()=>r(D,!1),submit:a=>_e(a.detail)}})};g(ee,o=>{e(D)&&e(t)&&o(Ae)})}var te=d(ee,2);{var Se=o=>{{let a=m(()=>(e(t),s(()=>`${e(t).owner}/${e(t).name}`)));ue(o,{title:"Delete Repository",message:"Are you sure you want to delete this repository? This action cannot be undone and will remove all associated pools and instances.",get itemName(){return e(a)},$$events:{close:()=>r(T,!1),confirm:$e}})}};g(te,o=>{e(T)&&e(t)&&o(Se)})}var oe=d(te,2);{var Be=o=>{ue(o,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(p),s(()=>e(p).name)},$$events:{close:()=>{r(I,!1),r(p,null)},confirm:be}})};g(oe,o=>{e(I)&&e(p)&&o(Be)})}var Ue=d(oe,2);{var Fe=o=>{{let a=m(()=>(e(t),s(()=>e(t).id||"")));dt(o,{initialEntityType:"repository",get initialEntityId(){return e(a)},$$events:{close:()=>r(P,!1),submit:Ie}})}};g(Ue,o=>{e(P)&&e(t)&&o(Fe)})}z(()=>{et(Te,"href",`${H}/repositories`),de(Pe,(e(t),s(()=>e(t)?e(t).name:"Loading...")))}),w(me,K),Je(),ge()}export{Ct as component}; diff --git a/webapp/assets/_app/immutable/nodes/17.CCltcs-Z.js b/webapp/assets/_app/immutable/nodes/17.CCltcs-Z.js deleted file mode 100644 index 731517fe..00000000 --- a/webapp/assets/_app/immutable/nodes/17.CCltcs-Z.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as yr}from"../chunks/B3Pzt0F_.js";import{p as hr,E as Gr,o as xr,f as w,k as a,j as o,g as e,m as i,r as s,t as k,s as r,e as de,c as f,v as X,b as kr,z as br,x as ye,D as qe,d as _r,l as U,a as Hr,h as jr,$ as Fr,q as Oe,u as mr,n as Nr}from"../chunks/D8EpLgQ1.js";import{i as D,s as Ur,a as qr}from"../chunks/5WA7h8uK.js";import{r as T,s as Le,b as he,g as R}from"../chunks/CiE1LlKV.js";import"../chunks/CoIRRsD9.js";import{P as Or}from"../chunks/CO4LUyTP.js";import{e as pr,i as vr}from"../chunks/u94nIB4-.js";import{b as H,a as Lr}from"../chunks/C6k1Q4We.js";import{p as Br}from"../chunks/D4Caz1gY.js";import{M as Jr}from"../chunks/qB7B8uiS.js";import{J as Vr}from"../chunks/DZblzgqm.js";import{U as Wr}from"../chunks/C89fcOde.js";import{D as Kr}from"../chunks/KQ2xQpA3.js";import{e as Qr,a as fr}from"../chunks/wyaP0EDu.js";import{t as Be}from"../chunks/BEkVdVE1.js";import{e as ne,h as Xr}from"../chunks/BGVHQGl-.js";import{D as Yr,G as Je,a as Zr}from"../chunks/C9DJVOi1.js";import{E as et}from"../chunks/B7ITzBt8.js";import{E as rt}from"../chunks/CGpPw4EW.js";import{S as tt}from"../chunks/BE4wujub.js";import{P as at}from"../chunks/CLYUNKnN.js";var ot=w('

'),st=w('
'),lt=w(""),it=w(''),dt=w('
'),nt=w(""),ct=w(''),ut=w('

Entity & Provider Configuration

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
',1),gt=w('
Creating...
'),bt=w('

Create New Scale Set

Scale sets are only available for GitHub endpoints

Entity Level *
');function mt(xe,ke){hr(ke,!1);const Y=Gr();let q=i(!1),m=i(""),n=i(""),v=i([]),S=i([]),O=i(!1),C=i(!1),$=i(""),p=i(""),_=i(""),u=i(""),y=i(""),A=i(void 0),z=i(void 0),I=i(void 0),d=i("garm"),L=i("linux"),B=i("amd64"),Z=i(""),ee=i(!0),G=i("{}");async function ce(){try{r(C,!0),r(S,await R.listProviders())}catch(c){r(m,c instanceof Error?c.message:"Failed to load providers")}finally{r(C,!1)}}async function _e(){if(e(n))try{switch(r(O,!0),r(v,[]),e(n)){case"repository":r(v,await R.listRepositories());break;case"organization":r(v,await R.listOrganizations());break;case"enterprise":r(v,await R.listEnterprises());break}}catch(c){r(m,c instanceof Error?c.message:`Failed to load ${e(n)}s`)}finally{r(O,!1)}}function re(c){e(n)!==c&&(r(n,c),r(p,""),_e())}async function we(){if(!e($)||!e(n)||!e(p)||!e(_)||!e(u)||!e(y)){r(m,"Please fill in all required fields");return}try{r(q,!0),r(m,"");let c={};if(e(G).trim())try{c=JSON.parse(e(G))}catch{throw new Error("Invalid JSON in extra specs")}const J={name:e($),provider_name:e(_),image:e(u),flavor:e(y),max_runners:e(A)||10,min_idle_runners:e(z)||0,runner_bootstrap_timeout:e(I)||20,runner_prefix:e(d),os_type:e(L),os_arch:e(B),"github-runner-group":e(Z)||void 0,enabled:e(ee),extra_specs:e(G).trim()?c:void 0};let E;switch(e(n)){case"repository":E=await R.createRepositoryScaleSet(e(p),J);break;case"organization":E=await R.createOrganizationScaleSet(e(p),J);break;case"enterprise":E=await R.createEnterpriseScaleSet(e(p),J);break;default:throw new Error("Invalid entity level selected")}Y("submit",E)}catch(c){r(m,c instanceof Error?c.message:"Failed to create scale set")}finally{r(q,!1)}}xr(()=>{ce()}),yr(),Jr(xe,{$$events:{close:()=>Y("close")},children:(c,J)=>{var E=bt(),V=a(o(E),2),ue=o(V);{var ge=b=>{var P=ot(),K=o(P),ve=o(K,!0);s(K),s(P),k(()=>X(ve,e(m))),f(b,P)};D(ue,b=>{e(m)&&b(ge)})}var j=a(ue,2),te=a(o(j),2);T(te),s(j);var ae=a(j,2),oe=o(ae),be=a(o(oe),2),W=o(be),se=a(W,2),me=a(se,2);s(be),s(oe),s(ae);var pe=a(ae,2);{var t=b=>{var P=ut(),K=kr(P),ve=a(o(K),2),Ce=o(ve),$e=o(Ce),$r=o($e);br(),s($e);var Er=a($e,2);{var Pr=l=>{var h=st();f(l,h)},Mr=l=>{var h=it();k(()=>{e(p),ye(()=>{e(n),e(v)})});var M=o(h),Ue=o(M);s(M),M.value=M.__value="";var le=a(M);pr(le,1,()=>e(v),vr,(F,x)=>{var N=lt(),fe=o(N);{var zr=Q=>{var ie=qe();k(()=>X(ie,`${e(x).owner??""}/${e(x).name??""} (${e(x).endpoint?.name||"Unknown endpoint"})`)),f(Q,ie)},Ir=Q=>{var ie=qe();k(()=>X(ie,`${e(x).name??""} (${e(x).endpoint?.name||"Unknown endpoint"})`)),f(Q,ie)};D(fe,Q=>{e(n)==="repository"?Q(zr):Q(Ir,!1)})}s(N);var gr={};k(()=>{gr!==(gr=e(x).id)&&(N.value=(N.__value=e(x).id)??"")}),f(F,N)}),s(h),k(()=>X(Ue,`Select a ${e(n)??""}`)),he(h,()=>e(p),F=>r(p,F)),f(l,h)};D(Er,l=>{e(O)?l(Pr):l(Mr,!1)})}s(Ce);var We=a(Ce,2),Tr=a(o(We),2);{var Rr=l=>{var h=dt();f(l,h)},Dr=l=>{var h=ct();k(()=>{e(_),ye(()=>{e(S)})});var M=o(h);M.value=M.__value="";var Ue=a(M);pr(Ue,1,()=>e(S),vr,(le,F)=>{var x=nt(),N=o(x,!0);s(x);var fe={};k(()=>{X(N,e(F).name),fe!==(fe=e(F).name)&&(x.value=(x.__value=e(F).name)??"")}),f(le,x)}),s(h),he(h,()=>e(_),le=>r(_,le)),f(l,h)};D(Tr,l=>{e(C)?l(Rr):l(Dr,!1)})}s(We),s(ve),s(K);var Ee=a(K,2),Ke=a(o(Ee),2),Pe=o(Ke),Qe=a(o(Pe),2);T(Qe),s(Pe);var Me=a(Pe,2),Xe=a(o(Me),2);T(Xe),s(Me);var Te=a(Me,2),Re=a(o(Te),2);k(()=>{e(L),ye(()=>{})});var De=o(Re);De.value=De.__value="linux";var Ye=a(De);Ye.value=Ye.__value="windows",s(Re),s(Te);var Ze=a(Te,2),Ae=a(o(Ze),2);k(()=>{e(B),ye(()=>{})});var ze=o(Ae);ze.value=ze.__value="amd64";var er=a(ze);er.value=er.__value="arm64",s(Ae),s(Ze),s(Ke),s(Ee);var Ie=a(Ee,2),rr=a(o(Ie),2),Ge=o(rr),tr=a(o(Ge),2);T(tr),s(Ge);var He=a(Ge,2),ar=a(o(He),2);T(ar),s(He);var or=a(He,2),sr=a(o(or),2);T(sr),s(or),s(rr),s(Ie);var lr=a(Ie,2),je=a(o(lr),2),Fe=o(je),ir=a(o(Fe),2);T(ir),s(Fe);var dr=a(Fe,2),nr=a(o(dr),2);T(nr),s(dr),s(je);var Ne=a(je,2),Ar=a(o(Ne),2);Vr(Ar,{rows:4,placeholder:"{}",get value(){return e(G)},set value(l){r(G,l)},$$legacy:!0}),s(Ne);var cr=a(Ne,2),ur=o(cr);T(ur),br(2),s(cr),s(lr),k(l=>X($r,`${l??""} `),[()=>e(n).charAt(0).toUpperCase()+e(n).slice(1)]),H(Qe,()=>e(u),l=>r(u,l)),H(Xe,()=>e(y),l=>r(y,l)),he(Re,()=>e(L),l=>r(L,l)),he(Ae,()=>e(B),l=>r(B,l)),H(tr,()=>e(z),l=>r(z,l)),H(ar,()=>e(A),l=>r(A,l)),H(sr,()=>e(I),l=>r(I,l)),H(ir,()=>e(d),l=>r(d,l)),H(nr,()=>e(Z),l=>r(Z,l)),Lr(ur,()=>e(ee),l=>r(ee,l)),f(b,P)};D(pe,b=>{e(n)&&b(t)})}var g=a(pe,2),Ve=o(g),Se=a(Ve,2),wr=o(Se);{var Sr=b=>{var P=gt();f(b,P)},Cr=b=>{var P=qe("Create Scale Set");f(b,P)};D(wr,b=>{e(q)?b(Sr):b(Cr,!1)})}s(Se),s(g),s(V),s(E),k(()=>{Le(W,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="repository"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),Le(se,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="organization"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),Le(me,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="enterprise"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),Se.disabled=e(q)||!e($)||!e(n)||!e(p)||!e(_)||!e(u)||!e(y)}),H(te,()=>e($),b=>r($,b)),de("click",W,()=>re("repository")),de("click",se,()=>re("organization")),de("click",me,()=>re("enterprise")),de("click",Ve,()=>Y("close")),de("submit",V,Br(we)),f(c,E)},$$slots:{default:!0}}),_r()}var pt=w('
',1);function jt(xe,ke){hr(ke,!1);const[Y,q]=Ur(),m=()=>qr(Qr,"$eagerCache",Y),n=i(),v=i(),S=i(),O=i();let C=i([]),$=i(!0),p=i(""),_=i(""),u=i(1),y=i(25),A=i(!1),z=i(!1),I=i(!1),d=i(null);async function L(t){try{r(p,""),r(A,!1),Be.success("Scale Set Created","Scale set has been created successfully.")}catch(g){throw r(p,g instanceof Error?g.message:"Failed to create scale set"),g}}async function B(t){if(e(d))try{await R.updateScaleSet(e(d).id,t),Be.success("Scale Set Updated",`Scale set ${e(d).name} has been updated successfully.`),r(z,!1),r(d,null)}catch(g){throw g}}async function Z(){if(e(d))try{await R.deleteScaleSet(e(d).id),Be.success("Scale Set Deleted",`Scale set ${e(d).name} has been deleted successfully.`),r(I,!1),r(d,null)}catch(t){r(p,t instanceof Error?t.message:"Failed to delete scale set")}}function ee(){r(A,!0)}function G(t){r(d,t),r(z,!0)}function ce(t){r(d,t),r(I,!0)}xr(async()=>{try{r($,!0);const t=await fr.getScaleSets();t&&Array.isArray(t)&&r(C,t)}catch(t){console.error("Failed to load scale sets:",t),r(p,t instanceof Error?t.message:"Failed to load scale sets")}finally{r($,!1)}});async function _e(){try{await fr.retryResource("scalesets")}catch(t){console.error("Retry failed:",t)}}const re=[{key:"name",title:"Name",cellComponent:et,cellProps:{entityType:"scaleset"}},{key:"image",title:"Image",cellComponent:Je,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:Je,cellProps:{field:"provider_name"}},{key:"flavor",title:"Flavor",cellComponent:Je,cellProps:{field:"flavor"}},{key:"entity",title:"Entity",cellComponent:at},{key:"endpoint",title:"Endpoint",cellComponent:rt},{key:"status",title:"Status",cellComponent:tt,cellProps:{statusType:"enabled"}},{key:"actions",title:"Actions",align:"right",cellComponent:Zr}],we={entityType:"scaleset",primaryText:{field:"name",isClickable:!0,href:"/scalesets/{id}"},secondaryText:{field:"entity_name",computedValue:t=>ne(t)},badges:[{type:"custom",value:t=>({variant:t.enabled?"success":"error",text:t.enabled?"Enabled":"Disabled"})}],actions:[{type:"edit",handler:t=>G(t)},{type:"delete",handler:t=>ce(t)}]};function c(t){r(_,t.detail.term),r(u,1)}function J(t){r(u,t.detail.page)}function E(t){r(y,t.detail.perPage),r(u,1)}function V(t){G(t.detail.item)}function ue(t){ce(t.detail.item)}U(()=>(e(C),m()),()=>{(!e(C).length||m().loaded.scalesets)&&r(C,m().scalesets)}),U(()=>m(),()=>{r($,m().loading.scalesets)}),U(()=>m(),()=>{r(n,m().errorMessages.scalesets)}),U(()=>(e(C),e(_),ne),()=>{r(v,Xr(e(C),e(_),t=>ne(t)))}),U(()=>(e(v),e(y)),()=>{r(S,Math.ceil(e(v).length/e(y)))}),U(()=>(e(u),e(S)),()=>{e(u)>e(S)&&e(S)>0&&r(u,e(S))}),U(()=>(e(v),e(u),e(y)),()=>{r(O,e(v).slice((e(u)-1)*e(y),e(u)*e(y)))}),Hr(),yr();var ge=pt();jr(t=>{Fr.title="Scale Sets - GARM"});var j=kr(ge),te=o(j);Or(te,{title:"Scale Sets",description:"Manage GitHub runner scale sets",actionLabel:"Add Scale Set",$$events:{action:ee}});var ae=a(te,2);{let t=Oe(()=>e(n)||e(p)),g=Oe(()=>!!e(n));Yr(ae,{get columns(){return re},get data(){return e(O)},get loading(){return e($)},get error(){return e(t)},get searchTerm(){return e(_)},searchPlaceholder:"Search by entity name...",get currentPage(){return e(u)},get perPage(){return e(y)},get totalPages(){return e(S)},get totalItems(){return e(v),mr(()=>e(v).length)},itemName:"scale sets",emptyIconType:"cog",get showRetry(){return e(g)},get mobileCardConfig(){return we},$$events:{search:c,pageChange:J,perPageChange:E,retry:_e,edit:V,delete:ue}})}s(j);var oe=a(j,2);{var be=t=>{mt(t,{$$events:{close:()=>r(A,!1),submit:g=>L(g.detail)}})};D(oe,t=>{e(A)&&t(be)})}var W=a(oe,2);{var se=t=>{Wr(t,{get scaleSet(){return e(d)},$$events:{close:()=>{r(z,!1),r(d,null)},submit:g=>B(g.detail)}})};D(W,t=>{e(z)&&e(d)&&t(se)})}var me=a(W,2);{var pe=t=>{{let g=Oe(()=>(e(d),Nr(ne),mr(()=>`Scale Set ${e(d).name} (${ne(e(d))})`)));Kr(t,{title:"Delete Scale Set",message:"Are you sure you want to delete this scale set? This action cannot be undone and will remove all associated runners.",get itemName(){return e(g)},$$events:{close:()=>{r(I,!1),r(d,null)},confirm:Z}})}};D(me,t=>{e(I)&&e(d)&&t(pe)})}f(xe,ge),_r(),q()}export{jt as component}; diff --git a/webapp/assets/_app/immutable/nodes/17.DLt70sQQ.js b/webapp/assets/_app/immutable/nodes/17.DLt70sQQ.js new file mode 100644 index 00000000..2b2f21ca --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/17.DLt70sQQ.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as hr}from"../chunks/B3Pzt0F_.js";import{p as xr,E as Hr,o as kr,f as w,k as a,j as o,g as e,m as i,r as s,t as k,s as r,e as ne,c as f,v as X,b as _r,z as pr,x as he,D as Be,d as wr,l as q,a as jr,h as Nr,$ as Ur,q as Je,u as mr,n as qr}from"../chunks/D8EpLgQ1.js";import{i as D,s as Or,a as Lr}from"../chunks/5WA7h8uK.js";import{r as T,s as Fe,b as xe,g as R}from"../chunks/CiE1LlKV.js";import"../chunks/CRhkqW2i.js";import{P as Br}from"../chunks/CO4LUyTP.js";import{e as vr,i as fr}from"../chunks/u94nIB4-.js";import{b as H,a as Jr}from"../chunks/C6k1Q4We.js";import{p as Fr}from"../chunks/D4Caz1gY.js";import{M as Vr}from"../chunks/qB7B8uiS.js";import{J as Wr}from"../chunks/DZblzgqm.js";import{e as Y}from"../chunks/BZiHL9L3.js";import{U as Kr}from"../chunks/2p_hWkLJ.js";import{D as Qr}from"../chunks/KQ2xQpA3.js";import{e as Xr,a as yr}from"../chunks/wyaP0EDu.js";import{t as ke}from"../chunks/BEkVdVE1.js";import{e as ce,h as Yr}from"../chunks/BGVHQGl-.js";import{D as Zr,G as Ve,a as et}from"../chunks/BrNfsPe8.js";import{E as rt}from"../chunks/D4PaGKsV.js";import{E as tt}from"../chunks/CGpPw4EW.js";import{S as at}from"../chunks/MCv1Wq2q.js";import{P as ot}from"../chunks/BzlxTz7Q.js";var st=w('

'),lt=w('
'),it=w(""),dt=w(''),nt=w('
'),ct=w(""),ut=w(''),gt=w('

Entity & Provider Configuration

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
',1),bt=w('
Creating...
'),pt=w('

Create New Scale Set

Scale sets are only available for GitHub endpoints

Entity Level *
');function mt(_e,we){xr(we,!1);const Z=Hr();let O=i(!1),b=i(""),n=i(""),m=i([]),S=i([]),L=i(!1),C=i(!1),$=i(""),v=i(""),_=i(""),u=i(""),y=i(""),A=i(void 0),z=i(void 0),I=i(void 0),d=i("garm"),B=i("linux"),J=i("amd64"),ee=i(""),re=i(!0),G=i("{}");async function ue(){try{r(C,!0),r(S,await R.listProviders())}catch(p){r(b,Y(p))}finally{r(C,!1)}}async function Se(){if(e(n))try{switch(r(L,!0),r(m,[]),e(n)){case"repository":r(m,await R.listRepositories());break;case"organization":r(m,await R.listOrganizations());break;case"enterprise":r(m,await R.listEnterprises());break}}catch(p){r(b,Y(p))}finally{r(L,!1)}}function te(p){e(n)!==p&&(r(n,p),r(v,""),Se())}async function Ce(){if(!e($)||!e(n)||!e(v)||!e(_)||!e(u)||!e(y)){r(b,"Please fill in all required fields");return}try{r(O,!0),r(b,"");let p={};if(e(G).trim())try{p=JSON.parse(e(G))}catch{throw new Error("Invalid JSON in extra specs")}const F={name:e($),provider_name:e(_),image:e(u),flavor:e(y),max_runners:e(A)||10,min_idle_runners:e(z)||0,runner_bootstrap_timeout:e(I)||20,runner_prefix:e(d),os_type:e(B),os_arch:e(J),"github-runner-group":e(ee)||void 0,enabled:e(re),extra_specs:e(G).trim()?p:void 0};let P;switch(e(n)){case"repository":P=await R.createRepositoryScaleSet(e(v),F);break;case"organization":P=await R.createOrganizationScaleSet(e(v),F);break;case"enterprise":P=await R.createEnterpriseScaleSet(e(v),F);break;default:throw new Error("Invalid entity level selected")}Z("submit",P)}catch(p){r(b,Y(p))}finally{r(O,!1)}}kr(()=>{ue()}),hr(),Vr(_e,{$$events:{close:()=>Z("close")},children:(p,F)=>{var P=pt(),V=a(o(P),2),ge=o(V);{var be=g=>{var M=st(),K=o(M),fe=o(K,!0);s(K),s(M),k(()=>X(fe,e(b))),f(g,M)};D(ge,g=>{e(b)&&g(be)})}var j=a(ge,2),ae=a(o(j),2);T(ae),s(j);var oe=a(j,2),se=o(oe),pe=a(o(se),2),W=o(pe),le=a(W,2),me=a(le,2);s(pe),s(se),s(oe);var ve=a(oe,2);{var t=g=>{var M=gt(),K=_r(M),fe=a(o(K),2),Pe=o(fe),Me=o(Pe),Pr=o(Me);pr(),s(Me);var Mr=a(Me,2);{var Er=l=>{var h=lt();f(l,h)},Tr=l=>{var h=dt();k(()=>{e(v),he(()=>{e(n),e(m)})});var E=o(h),Le=o(E);s(E),E.value=E.__value="";var ie=a(E);vr(ie,1,()=>e(m),fr,(N,x)=>{var U=it(),ye=o(U);{var Ir=Q=>{var de=Be();k(()=>X(de,`${e(x).owner??""}/${e(x).name??""} (${e(x).endpoint?.name||"Unknown endpoint"})`)),f(Q,de)},Gr=Q=>{var de=Be();k(()=>X(de,`${e(x).name??""} (${e(x).endpoint?.name||"Unknown endpoint"})`)),f(Q,de)};D(ye,Q=>{e(n)==="repository"?Q(Ir):Q(Gr,!1)})}s(U);var br={};k(()=>{br!==(br=e(x).id)&&(U.value=(U.__value=e(x).id)??"")}),f(N,U)}),s(h),k(()=>X(Le,`Select a ${e(n)??""}`)),xe(h,()=>e(v),N=>r(v,N)),f(l,h)};D(Mr,l=>{e(L)?l(Er):l(Tr,!1)})}s(Pe);var Ke=a(Pe,2),Rr=a(o(Ke),2);{var Dr=l=>{var h=nt();f(l,h)},Ar=l=>{var h=ut();k(()=>{e(_),he(()=>{e(S)})});var E=o(h);E.value=E.__value="";var Le=a(E);vr(Le,1,()=>e(S),fr,(ie,N)=>{var x=ct(),U=o(x,!0);s(x);var ye={};k(()=>{X(U,e(N).name),ye!==(ye=e(N).name)&&(x.value=(x.__value=e(N).name)??"")}),f(ie,x)}),s(h),xe(h,()=>e(_),ie=>r(_,ie)),f(l,h)};D(Rr,l=>{e(C)?l(Dr):l(Ar,!1)})}s(Ke),s(fe),s(K);var Ee=a(K,2),Qe=a(o(Ee),2),Te=o(Qe),Xe=a(o(Te),2);T(Xe),s(Te);var Re=a(Te,2),Ye=a(o(Re),2);T(Ye),s(Re);var De=a(Re,2),Ae=a(o(De),2);k(()=>{e(B),he(()=>{})});var ze=o(Ae);ze.value=ze.__value="linux";var Ze=a(ze);Ze.value=Ze.__value="windows",s(Ae),s(De);var er=a(De,2),Ie=a(o(er),2);k(()=>{e(J),he(()=>{})});var Ge=o(Ie);Ge.value=Ge.__value="amd64";var rr=a(Ge);rr.value=rr.__value="arm64",s(Ie),s(er),s(Qe),s(Ee);var He=a(Ee,2),tr=a(o(He),2),je=o(tr),ar=a(o(je),2);T(ar),s(je);var Ne=a(je,2),or=a(o(Ne),2);T(or),s(Ne);var sr=a(Ne,2),lr=a(o(sr),2);T(lr),s(sr),s(tr),s(He);var ir=a(He,2),Ue=a(o(ir),2),qe=o(Ue),dr=a(o(qe),2);T(dr),s(qe);var nr=a(qe,2),cr=a(o(nr),2);T(cr),s(nr),s(Ue);var Oe=a(Ue,2),zr=a(o(Oe),2);Wr(zr,{rows:4,placeholder:"{}",get value(){return e(G)},set value(l){r(G,l)},$$legacy:!0}),s(Oe);var ur=a(Oe,2),gr=o(ur);T(gr),pr(2),s(ur),s(ir),k(l=>X(Pr,`${l??""} `),[()=>e(n).charAt(0).toUpperCase()+e(n).slice(1)]),H(Xe,()=>e(u),l=>r(u,l)),H(Ye,()=>e(y),l=>r(y,l)),xe(Ae,()=>e(B),l=>r(B,l)),xe(Ie,()=>e(J),l=>r(J,l)),H(ar,()=>e(z),l=>r(z,l)),H(or,()=>e(A),l=>r(A,l)),H(lr,()=>e(I),l=>r(I,l)),H(dr,()=>e(d),l=>r(d,l)),H(cr,()=>e(ee),l=>r(ee,l)),Jr(gr,()=>e(re),l=>r(re,l)),f(g,M)};D(ve,g=>{e(n)&&g(t)})}var c=a(ve,2),We=o(c),$e=a(We,2),Sr=o($e);{var Cr=g=>{var M=bt();f(g,M)},$r=g=>{var M=Be("Create Scale Set");f(g,M)};D(Sr,g=>{e(O)?g(Cr):g($r,!1)})}s($e),s(c),s(V),s(P),k(()=>{Fe(W,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="repository"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),Fe(le,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="organization"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),Fe(me,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(n)==="enterprise"?"border-blue-500 bg-blue-50 dark:bg-blue-900":"border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"}`),$e.disabled=e(O)||!e($)||!e(n)||!e(v)||!e(_)||!e(u)||!e(y)}),H(ae,()=>e($),g=>r($,g)),ne("click",W,()=>te("repository")),ne("click",le,()=>te("organization")),ne("click",me,()=>te("enterprise")),ne("click",We,()=>Z("close")),ne("submit",V,Fr(Ce)),f(p,P)},$$slots:{default:!0}}),wr()}var vt=w('
',1);function Ut(_e,we){xr(we,!1);const[Z,O]=Or(),b=()=>Lr(Xr,"$eagerCache",Z),n=i(),m=i(),S=i(),L=i();let C=i([]),$=i(!0),v=i(""),_=i(""),u=i(1),y=i(25),A=i(!1),z=i(!1),I=i(!1),d=i(null);async function B(t){try{r(v,""),r(A,!1),ke.success("Scale Set Created","Scale set has been created successfully.")}catch(c){throw r(v,Y(c)),c}}async function J(t){if(e(d))try{await R.updateScaleSet(e(d).id,t),ke.success("Scale Set Updated",`Scale set ${e(d).name} has been updated successfully.`),r(z,!1),r(d,null)}catch(c){throw c}}async function ee(){if(e(d))try{await R.deleteScaleSet(e(d).id),ke.success("Scale Set Deleted",`Scale set ${e(d).name} has been deleted successfully.`)}catch(t){const c=Y(t);ke.error("Delete Failed",c)}finally{r(I,!1),r(d,null)}}function re(){r(A,!0)}function G(t){r(d,t),r(z,!0)}function ue(t){r(d,t),r(I,!0)}kr(async()=>{try{r($,!0);const t=await yr.getScaleSets();t&&Array.isArray(t)&&r(C,t)}catch(t){console.error("Failed to load scale sets:",t),r(v,Y(t))}finally{r($,!1)}});async function Se(){try{await yr.retryResource("scalesets")}catch(t){console.error("Retry failed:",t)}}const te=[{key:"name",title:"Name",cellComponent:rt,cellProps:{entityType:"scaleset"}},{key:"image",title:"Image",cellComponent:Ve,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:Ve,cellProps:{field:"provider_name"}},{key:"flavor",title:"Flavor",cellComponent:Ve,cellProps:{field:"flavor"}},{key:"entity",title:"Entity",cellComponent:ot},{key:"endpoint",title:"Endpoint",cellComponent:tt},{key:"status",title:"Status",cellComponent:at,cellProps:{statusType:"enabled"}},{key:"actions",title:"Actions",align:"right",cellComponent:et}],Ce={entityType:"scaleset",primaryText:{field:"name",isClickable:!0,href:"/scalesets/{id}"},secondaryText:{field:"entity_name",computedValue:t=>ce(t)},badges:[{type:"custom",value:t=>({variant:t.enabled?"success":"error",text:t.enabled?"Enabled":"Disabled"})}],actions:[{type:"edit",handler:t=>G(t)},{type:"delete",handler:t=>ue(t)}]};function p(t){r(_,t.detail.term),r(u,1)}function F(t){r(u,t.detail.page)}function P(t){r(y,t.detail.perPage),r(u,1)}function V(t){G(t.detail.item)}function ge(t){ue(t.detail.item)}q(()=>(e(C),b()),()=>{(!e(C).length||b().loaded.scalesets)&&r(C,b().scalesets)}),q(()=>b(),()=>{r($,b().loading.scalesets)}),q(()=>b(),()=>{r(n,b().errorMessages.scalesets)}),q(()=>(e(C),e(_),ce),()=>{r(m,Yr(e(C),e(_),t=>ce(t)))}),q(()=>(e(m),e(y)),()=>{r(S,Math.ceil(e(m).length/e(y)))}),q(()=>(e(u),e(S)),()=>{e(u)>e(S)&&e(S)>0&&r(u,e(S))}),q(()=>(e(m),e(u),e(y)),()=>{r(L,e(m).slice((e(u)-1)*e(y),e(u)*e(y)))}),jr(),hr();var be=vt();Nr(t=>{Ur.title="Scale Sets - GARM"});var j=_r(be),ae=o(j);Br(ae,{title:"Scale Sets",description:"Manage GitHub runner scale sets",actionLabel:"Add Scale Set",$$events:{action:re}});var oe=a(ae,2);{let t=Je(()=>e(n)||e(v)),c=Je(()=>!!e(n));Zr(oe,{get columns(){return te},get data(){return e(L)},get loading(){return e($)},get error(){return e(t)},get searchTerm(){return e(_)},searchPlaceholder:"Search by entity name...",get currentPage(){return e(u)},get perPage(){return e(y)},get totalPages(){return e(S)},get totalItems(){return e(m),mr(()=>e(m).length)},itemName:"scale sets",emptyIconType:"cog",get showRetry(){return e(c)},get mobileCardConfig(){return Ce},$$events:{search:p,pageChange:F,perPageChange:P,retry:Se,edit:V,delete:ge}})}s(j);var se=a(j,2);{var pe=t=>{mt(t,{$$events:{close:()=>r(A,!1),submit:c=>B(c.detail)}})};D(se,t=>{e(A)&&t(pe)})}var W=a(se,2);{var le=t=>{Kr(t,{get scaleSet(){return e(d)},$$events:{close:()=>{r(z,!1),r(d,null)},submit:c=>J(c.detail)}})};D(W,t=>{e(z)&&e(d)&&t(le)})}var me=a(W,2);{var ve=t=>{{let c=Je(()=>(e(d),qr(ce),mr(()=>`Scale Set ${e(d).name} (${ce(e(d))})`)));Qr(t,{title:"Delete Scale Set",message:"Are you sure you want to delete this scale set? This action cannot be undone and will remove all associated runners.",get itemName(){return e(c)},$$events:{close:()=>{r(I,!1),r(d,null)},confirm:ee}})}};D(me,t=>{e(I)&&e(d)&&t(ve)})}f(_e,be),wr(),O()}export{Ut as component}; diff --git a/webapp/assets/_app/immutable/nodes/18.eu91cRrS.js b/webapp/assets/_app/immutable/nodes/18.eu91cRrS.js new file mode 100644 index 00000000..2b1238f3 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/18.eu91cRrS.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Je}from"../chunks/B3Pzt0F_.js";import{p as Pe,o as je,A as qe,l as ze,a as Ve,f as w,h as We,b as U,t as k,c as p,d as Ke,s as l,m as _,u as i,$ as Qe,g as t,j as a,r,k as d,v as o,y as ct,B as zt,q as $,n as x}from"../chunks/D8EpLgQ1.js";import{i as g,s as Xe,a as Ye}from"../chunks/5WA7h8uK.js";import{c as Vt,g as B,s as Ze}from"../chunks/CiE1LlKV.js";import{p as ta}from"../chunks/BE8f1Riw.js";import{g as Wt}from"../chunks/DXCC0cSN.js";import{b as vt}from"../chunks/CRhkqW2i.js";import{U as ea}from"../chunks/2p_hWkLJ.js";import{D as Kt}from"../chunks/KQ2xQpA3.js";import{D as aa,I as ra}from"../chunks/BEoJgOul.js";import{w as Qt}from"../chunks/u94nIB4-.js";import{t as R}from"../chunks/BEkVdVE1.js";import{e as Xt}from"../chunks/BZiHL9L3.js";import{e as S,i as F,j as Yt,b as C,g as Zt}from"../chunks/BGVHQGl-.js";var sa=w('

Loading scale set...

'),da=w('

'),ia=w('
GitHub Runner Group
'),na=w('

Extra Specifications

 
'),la=w('

Basic Information

Scale Set ID
Name
Provider
Image
Flavor
Status
Entity
Created At
Updated At

Configuration

Max Runners
Min Idle Runners
Bootstrap Timeout
Runner Prefix
OS Type / Architecture
',1),oa=w(' ',1);function $a(te,ee){Pe(ee,!1);const[ae,re]=Xe(),mt=()=>Ye(ta,"$page",ae),I=_();let e=_(null),G=_(!0),D=_(""),E=_(!1),M=_(!1),A=_(!1),m=_(null),N=null;async function ut(){if(!(!t(I)||isNaN(t(I))))try{l(G,!0),l(D,""),l(e,await B.getScaleSet(t(I)))}catch(s){l(D,s instanceof Error?s.message:"Failed to load scale set")}finally{l(G,!1)}}async function se(s){if(t(e))try{await B.updateScaleSet(t(e).id,s),await ut(),R.success("Scale Set Updated",`Scale Set ${t(e).name} has been updated successfully.`),l(E,!1)}catch(n){throw n}}async function de(){if(t(e)){try{await B.deleteScaleSet(t(e).id),Wt(`${vt}/scalesets`)}catch(s){const n=Xt(s);R.error("Delete Failed",n)}l(M,!1)}}async function ie(){if(t(m)){try{await B.deleteInstance(t(m).name),R.success("Instance Deleted",`Instance ${t(m).name} has been deleted successfully.`)}catch(s){const n=Xt(s);R.error("Delete Failed",n)}l(A,!1),l(m,null)}}function ne(s){l(m,s),l(A,!0)}function le(s){if(!s)return"{}";try{if(typeof s=="string"){const n=JSON.parse(s);return JSON.stringify(n,null,2)}return JSON.stringify(s,null,2)}catch{return s.toString()}}function oe(s){if(s.operation==="update"){const n=s.payload;t(e)&&n.id===t(e).id&&l(e,n)}else if(s.operation==="delete"){const n=s.payload.id||s.payload;t(e)&&t(e).id===n&&Wt(`${vt}/scalesets`)}}function ce(s){if(!t(e)||!t(e).instances)return;const n=s.payload;if(n.scale_set_id===t(e).id){if(s.operation==="create")ct(e,t(e).instances=[...t(e).instances,n]);else if(s.operation==="update")ct(e,t(e).instances=t(e).instances.map(y=>y.id===n.id?n:y));else if(s.operation==="delete"){const y=n.id||n;ct(e,t(e).instances=t(e).instances.filter(J=>J.id!==y))}l(e,t(e))}}je(()=>{ut();const s=Qt.subscribeToEntity("scaleset",["update","delete"],oe),n=Qt.subscribeToEntity("instance",["create","update","delete"],ce);N=()=>{s(),n()}}),qe(()=>{N&&(N(),N=null)}),ze(()=>mt(),()=>{l(I,parseInt(mt().params.id||"0"))}),Ve(),Je();var xt=oa();We(s=>{k(()=>Qe.title=`${t(e),i(()=>t(e)?`${t(e).name} - Scale Set Details`:"Scale Set Details")??""} - GARM`)});var L=U(xt),O=a(L),gt=a(O),H=a(gt),ve=a(H);r(H);var ft=d(H,2),pt=a(ft),_t=d(a(pt),2),me=a(_t,!0);r(_t),r(pt),r(ft),r(gt),r(O);var ue=d(O,2);{var xe=s=>{var n=sa();p(s,n)},ge=s=>{var n=zt(),y=U(n);{var J=h=>{var b=da(),T=a(b),P=a(T,!0);r(T),r(b),k(()=>o(P,t(D))),p(h,b)},he=h=>{var b=zt(),T=U(b);{var P=j=>{var bt=la(),kt=U(bt);{let c=$(()=>(t(e),i(()=>t(e).name||"Scale Set"))),v=$(()=>(x(S),t(e),i(()=>S(t(e))))),u=$(()=>(x(F),t(e),i(()=>F(t(e))))),f=$(()=>(x(Zt),i(()=>Zt("github"))));aa(kt,{get title(){return t(c)},get subtitle(){return`Scale set for ${t(v)??""} (${t(u)??""}) • GitHub Runner Scale Set`},get forgeIcon(){return t(f)},onEdit:()=>l(E,!0),onDelete:()=>l(M,!0)})}var q=d(kt,2),z=a(q),St=a(z),wt=d(a(St),2),V=a(wt),$t=d(a(V),2),be=a($t,!0);r($t),r(V);var W=d(V,2),It=d(a(W),2),ke=a(It,!0);r(It),r(W);var K=d(W,2),Dt=d(a(K),2),Se=a(Dt,!0);r(Dt),r(K);var Q=d(K,2),Et=d(a(Q),2),Mt=a(Et),we=a(Mt,!0);r(Mt),r(Et),r(Q);var X=d(Q,2),At=d(a(X),2),$e=a(At,!0);r(At),r(X);var Y=d(X,2),Nt=d(a(Y),2),Z=a(Nt),Ie=a(Z,!0);r(Z),r(Nt),r(Y);var tt=d(Y,2),Tt=d(a(tt),2),Ut=a(Tt),et=a(Ut),De=a(et,!0);r(et);var at=d(et,2),Ee=a(at,!0);r(at),r(Ut),r(Tt),r(tt);var rt=d(tt,2),Bt=d(a(rt),2),Me=a(Bt,!0);r(Bt),r(rt);var Rt=d(rt,2),Ft=d(a(Rt),2),Ae=a(Ft,!0);r(Ft),r(Rt),r(wt),r(St),r(z);var Ct=d(z,2),Gt=a(Ct),Lt=d(a(Gt),2),st=a(Lt),Ot=d(a(st),2),Ne=a(Ot,!0);r(Ot),r(st);var dt=d(st,2),Ht=d(a(dt),2),Te=a(Ht,!0);r(Ht),r(dt);var it=d(dt,2),Jt=d(a(it),2),Ue=a(Jt);r(Jt),r(it);var nt=d(it,2),Pt=d(a(nt),2),Be=a(Pt,!0);r(Pt),r(nt);var lt=d(nt,2),jt=d(a(lt),2),Re=a(jt);r(jt),r(lt);var Fe=d(lt,2);{var Ce=c=>{var v=ia(),u=d(a(v),2),f=a(u,!0);r(u),r(v),k(()=>o(f,(t(e),i(()=>t(e)["github-runner-group"])))),p(c,v)};g(Fe,c=>{t(e),i(()=>t(e)["github-runner-group"])&&c(Ce)})}r(Lt),r(Gt),r(Ct),r(q);var qt=d(q,2);{var Ge=c=>{var v=na(),u=a(v),f=d(a(u),2),ot=a(f,!0);r(f),r(u),r(v),k(He=>o(ot,He),[()=>(t(e),i(()=>le(t(e).extra_specs)))]),p(c,v)};g(qt,c=>{t(e),i(()=>t(e).extra_specs)&&c(Ge)})}var Le=d(qt,2);{var Oe=c=>{ra(c,{get instances(){return t(e),i(()=>t(e).instances)},entityType:"scaleset",onDeleteInstance:ne})};g(Le,c=>{t(e),i(()=>t(e).instances)&&c(Oe)})}k((c,v,u,f,ot)=>{o(be,(t(e),i(()=>t(e).id))),o(ke,(t(e),i(()=>t(e).name))),o(Se,(t(e),i(()=>t(e).provider_name))),o(we,(t(e),i(()=>t(e).image))),o($e,(t(e),i(()=>t(e).flavor))),Ze(Z,1,`inline-flex px-2 py-1 text-xs font-medium rounded-full ${t(e),i(()=>t(e).enabled?"bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200":"bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200")??""}`),o(Ie,(t(e),i(()=>t(e).enabled?"Enabled":"Disabled"))),o(De,c),Vt(at,"href",v),o(Ee,u),o(Me,f),o(Ae,ot),o(Ne,(t(e),i(()=>t(e).max_runners))),o(Te,(t(e),i(()=>t(e).min_idle_runners))),o(Ue,`${t(e),i(()=>t(e).runner_bootstrap_timeout)??""} minutes`),o(Be,(t(e),i(()=>t(e).runner_prefix||"garm"))),o(Re,`${t(e),i(()=>t(e).os_type)??""} / ${t(e),i(()=>t(e).os_arch)??""}`)},[()=>(x(F),t(e),i(()=>F(t(e)))),()=>(x(Yt),t(e),i(()=>Yt(t(e)))),()=>(x(S),t(e),i(()=>S(t(e)))),()=>(x(C),t(e),i(()=>C(t(e).created_at||""))),()=>(x(C),t(e),i(()=>C(t(e).updated_at||"")))]),p(j,bt)};g(T,j=>{t(e)&&j(P)},!0)}p(h,b)};g(y,h=>{t(D)?h(J):h(he,!1)},!0)}p(s,n)};g(ue,s=>{t(G)?s(xe):s(ge,!1)})}r(L);var yt=d(L,2);{var fe=s=>{ea(s,{get scaleSet(){return t(e)},$$events:{close:()=>l(E,!1),submit:n=>se(n.detail)}})};g(yt,s=>{t(E)&&t(e)&&s(fe)})}var ht=d(yt,2);{var pe=s=>{{let n=$(()=>(t(e),x(S),i(()=>`Scale Set ${t(e).name} (${S(t(e))})`)));Kt(s,{title:"Delete Scale Set",message:"Are you sure you want to delete this scale set? This action cannot be undone and will remove all associated runners.",get itemName(){return t(n)},$$events:{close:()=>l(M,!1),confirm:de}})}};g(ht,s=>{t(M)&&t(e)&&s(pe)})}var _e=d(ht,2);{var ye=s=>{Kt(s,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return t(m),i(()=>t(m).name)},$$events:{close:()=>{l(A,!1),l(m,null)},confirm:ie}})};g(_e,s=>{t(A)&&t(m)&&s(ye)})}k(()=>{Vt(ve,"href",`${vt}/scalesets`),o(me,(t(e),i(()=>t(e)?t(e).name:"Loading...")))}),p(te,xt),Ke(),re()}export{$a as component}; diff --git a/webapp/assets/_app/immutable/nodes/18.iVIhGVtu.js b/webapp/assets/_app/immutable/nodes/18.iVIhGVtu.js deleted file mode 100644 index ad26b0dc..00000000 --- a/webapp/assets/_app/immutable/nodes/18.iVIhGVtu.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as Ht}from"../chunks/B3Pzt0F_.js";import{p as Jt,o as jt,A as qt,l as zt,a as Pt,f as w,h as Vt,b as F,t as k,c as p,d as Wt,s as l,m as _,u as i,$ as Kt,g as e,j as a,r,k as d,v as o,y as ve,B as Pe,q as I,n as x}from"../chunks/D8EpLgQ1.js";import{i as g,s as Qt,a as Xt}from"../chunks/5WA7h8uK.js";import{c as Ve,g as U,s as Yt}from"../chunks/CiE1LlKV.js";import{p as Zt}from"../chunks/C41YH50Q.js";import{g as We}from"../chunks/CTf6mQoE.js";import{b as me}from"../chunks/CoIRRsD9.js";import{U as ea}from"../chunks/C89fcOde.js";import{D as Ke}from"../chunks/KQ2xQpA3.js";import{D as ta,I as aa}from"../chunks/DDhBTdDt.js";import{w as Qe}from"../chunks/u94nIB4-.js";import{t as B}from"../chunks/BEkVdVE1.js";import{e as S,i as R,j as Xe,b as C,g as Ye}from"../chunks/BGVHQGl-.js";var ra=w('

Loading scale set...

'),sa=w('

'),da=w('
GitHub Runner Group
'),ia=w('

Extra Specifications

 
'),na=w('

Basic Information

Scale Set ID
Name
Provider
Image
Flavor
Status
Entity
Created At
Updated At

Configuration

Max Runners
Min Idle Runners
Bootstrap Timeout
Runner Prefix
OS Type / Architecture
',1),la=w(' ',1);function Sa(Ze,et){Jt(et,!1);const[tt,at]=Qt(),ue=()=>Xt(Zt,"$page",tt),D=_();let t=_(null),G=_(!0),E=_(""),M=_(!1),N=_(!1),$=_(!1),m=_(null),A=null;async function L(){if(!(!e(D)||isNaN(e(D))))try{l(G,!0),l(E,""),l(t,await U.getScaleSet(e(D)))}catch(s){l(E,s instanceof Error?s.message:"Failed to load scale set")}finally{l(G,!1)}}async function rt(s){if(e(t))try{await U.updateScaleSet(e(t).id,s),await L(),B.success("Scale Set Updated",`Scale Set ${e(t).name} has been updated successfully.`),l(M,!1)}catch(n){throw n}}async function st(){if(e(t)){try{await U.deleteScaleSet(e(t).id),We(`${me}/scalesets`)}catch(s){const n=s instanceof Error?s.message:"Failed to delete scale set";B.error("Delete Failed",n)}l(N,!1)}}async function dt(){if(e(m)){try{await U.deleteInstance(e(m).name),B.success("Instance Deleted",`Instance ${e(m).name} has been deleted successfully.`),await L(),l($,!1),l(m,null)}catch(s){const n=s instanceof Error?s.message:"Failed to delete instance";B.error("Delete Failed",n)}l($,!1),l(m,null)}}function it(s){l(m,s),l($,!0)}function nt(s){if(!s)return"{}";try{if(typeof s=="string"){const n=JSON.parse(s);return JSON.stringify(n,null,2)}return JSON.stringify(s,null,2)}catch{return s.toString()}}function lt(s){if(s.operation==="update"){const n=s.payload;e(t)&&n.id===e(t).id&&l(t,n)}else if(s.operation==="delete"){const n=s.payload.id||s.payload;e(t)&&e(t).id===n&&We(`${me}/scalesets`)}}function ot(s){if(!e(t)||!e(t).instances)return;const n=s.payload;if(n.scale_set_id===e(t).id){if(s.operation==="create")ve(t,e(t).instances=[...e(t).instances,n]);else if(s.operation==="update")ve(t,e(t).instances=e(t).instances.map(y=>y.id===n.id?n:y));else if(s.operation==="delete"){const y=n.id||n;ve(t,e(t).instances=e(t).instances.filter(j=>j.id!==y))}l(t,e(t))}}jt(()=>{L();const s=Qe.subscribeToEntity("scaleset",["update","delete"],lt),n=Qe.subscribeToEntity("instance",["create","update","delete"],ot);A=()=>{s(),n()}}),qt(()=>{A&&(A(),A=null)}),zt(()=>ue(),()=>{l(D,parseInt(ue().params.id||"0"))}),Pt(),Ht();var xe=la();Vt(s=>{k(()=>Kt.title=`${e(t),i(()=>e(t)?`${e(t).name} - Scale Set Details`:"Scale Set Details")??""} - GARM`)});var O=F(xe),H=a(O),ge=a(H),J=a(ge),ct=a(J);r(J);var fe=d(J,2),pe=a(fe),_e=d(a(pe),2),vt=a(_e,!0);r(_e),r(pe),r(fe),r(ge),r(H);var mt=d(H,2);{var ut=s=>{var n=ra();p(s,n)},xt=s=>{var n=Pe(),y=F(n);{var j=h=>{var b=sa(),T=a(b),q=a(T,!0);r(T),r(b),k(()=>o(q,e(E))),p(h,b)},yt=h=>{var b=Pe(),T=F(b);{var q=z=>{var be=na(),ke=F(be);{let c=I(()=>(e(t),i(()=>e(t).name||"Scale Set"))),v=I(()=>(x(S),e(t),i(()=>S(e(t))))),u=I(()=>(x(R),e(t),i(()=>R(e(t))))),f=I(()=>(x(Ye),i(()=>Ye("github"))));ta(ke,{get title(){return e(c)},get subtitle(){return`Scale set for ${e(v)??""} (${e(u)??""}) • GitHub Runner Scale Set`},get forgeIcon(){return e(f)},onEdit:()=>l(M,!0),onDelete:()=>l(N,!0)})}var P=d(ke,2),V=a(P),Se=a(V),we=d(a(Se),2),W=a(we),$e=d(a(W),2),ht=a($e,!0);r($e),r(W);var K=d(W,2),Ie=d(a(K),2),bt=a(Ie,!0);r(Ie),r(K);var Q=d(K,2),De=d(a(Q),2),kt=a(De,!0);r(De),r(Q);var X=d(Q,2),Ee=d(a(X),2),Me=a(Ee),St=a(Me,!0);r(Me),r(Ee),r(X);var Y=d(X,2),Ne=d(a(Y),2),wt=a(Ne,!0);r(Ne),r(Y);var Z=d(Y,2),Ae=d(a(Z),2),ee=a(Ae),$t=a(ee,!0);r(ee),r(Ae),r(Z);var te=d(Z,2),Te=d(a(te),2),Fe=a(Te),ae=a(Fe),It=a(ae,!0);r(ae);var re=d(ae,2),Dt=a(re,!0);r(re),r(Fe),r(Te),r(te);var se=d(te,2),Ue=d(a(se),2),Et=a(Ue,!0);r(Ue),r(se);var Be=d(se,2),Re=d(a(Be),2),Mt=a(Re,!0);r(Re),r(Be),r(we),r(Se),r(V);var Ce=d(V,2),Ge=a(Ce),Le=d(a(Ge),2),de=a(Le),Oe=d(a(de),2),Nt=a(Oe,!0);r(Oe),r(de);var ie=d(de,2),He=d(a(ie),2),At=a(He,!0);r(He),r(ie);var ne=d(ie,2),Je=d(a(ne),2),Tt=a(Je);r(Je),r(ne);var le=d(ne,2),je=d(a(le),2),Ft=a(je,!0);r(je),r(le);var oe=d(le,2),qe=d(a(oe),2),Ut=a(qe);r(qe),r(oe);var Bt=d(oe,2);{var Rt=c=>{var v=da(),u=d(a(v),2),f=a(u,!0);r(u),r(v),k(()=>o(f,(e(t),i(()=>e(t)["github-runner-group"])))),p(c,v)};g(Bt,c=>{e(t),i(()=>e(t)["github-runner-group"])&&c(Rt)})}r(Le),r(Ge),r(Ce),r(P);var ze=d(P,2);{var Ct=c=>{var v=ia(),u=a(v),f=d(a(u),2),ce=a(f,!0);r(f),r(u),r(v),k(Ot=>o(ce,Ot),[()=>(e(t),i(()=>nt(e(t).extra_specs)))]),p(c,v)};g(ze,c=>{e(t),i(()=>e(t).extra_specs)&&c(Ct)})}var Gt=d(ze,2);{var Lt=c=>{aa(c,{get instances(){return e(t),i(()=>e(t).instances)},entityType:"scaleset",onDeleteInstance:it})};g(Gt,c=>{e(t),i(()=>e(t).instances)&&c(Lt)})}k((c,v,u,f,ce)=>{o(ht,(e(t),i(()=>e(t).id))),o(bt,(e(t),i(()=>e(t).name))),o(kt,(e(t),i(()=>e(t).provider_name))),o(St,(e(t),i(()=>e(t).image))),o(wt,(e(t),i(()=>e(t).flavor))),Yt(ee,1,`inline-flex px-2 py-1 text-xs font-medium rounded-full ${e(t),i(()=>e(t).enabled?"bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200":"bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200")??""}`),o($t,(e(t),i(()=>e(t).enabled?"Enabled":"Disabled"))),o(It,c),Ve(re,"href",v),o(Dt,u),o(Et,f),o(Mt,ce),o(Nt,(e(t),i(()=>e(t).max_runners))),o(At,(e(t),i(()=>e(t).min_idle_runners))),o(Tt,`${e(t),i(()=>e(t).runner_bootstrap_timeout)??""} minutes`),o(Ft,(e(t),i(()=>e(t).runner_prefix||"garm"))),o(Ut,`${e(t),i(()=>e(t).os_type)??""} / ${e(t),i(()=>e(t).os_arch)??""}`)},[()=>(x(R),e(t),i(()=>R(e(t)))),()=>(x(Xe),e(t),i(()=>Xe(e(t)))),()=>(x(S),e(t),i(()=>S(e(t)))),()=>(x(C),e(t),i(()=>C(e(t).created_at||""))),()=>(x(C),e(t),i(()=>C(e(t).updated_at||"")))]),p(z,be)};g(T,z=>{e(t)&&z(q)},!0)}p(h,b)};g(y,h=>{e(E)?h(j):h(yt,!1)},!0)}p(s,n)};g(mt,s=>{e(G)?s(ut):s(xt,!1)})}r(O);var ye=d(O,2);{var gt=s=>{ea(s,{get scaleSet(){return e(t)},$$events:{close:()=>l(M,!1),submit:n=>rt(n.detail)}})};g(ye,s=>{e(M)&&e(t)&&s(gt)})}var he=d(ye,2);{var ft=s=>{{let n=I(()=>(e(t),x(S),i(()=>`Scale Set ${e(t).name} (${S(e(t))})`)));Ke(s,{title:"Delete Scale Set",message:"Are you sure you want to delete this scale set? This action cannot be undone and will remove all associated runners.",get itemName(){return e(n)},$$events:{close:()=>l(N,!1),confirm:st}})}};g(he,s=>{e(N)&&e(t)&&s(ft)})}var pt=d(he,2);{var _t=s=>{Ke(s,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(m),i(()=>e(m).name)},$$events:{close:()=>{l($,!1),l(m,null)},confirm:dt}})};g(pt,s=>{e($)&&e(m)&&s(_t)})}k(()=>{Ve(ct,"href",`${me}/scalesets`),o(vt,(e(t),i(()=>e(t)?e(t).name:"Loading...")))}),p(Ze,xe),Wt(),at()}export{Sa as component}; diff --git a/webapp/assets/_app/immutable/nodes/2.1DFwbmOU.js b/webapp/assets/_app/immutable/nodes/2.1DFwbmOU.js new file mode 100644 index 00000000..333497f1 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/2.1DFwbmOU.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Fe}from"../chunks/B3Pzt0F_.js";import{f as h,k as a,j as r,r as t,t as T,v as z,c as m,B as He,b as ze,p as Oe,E as vt,l as Le,s as v,m as I,g as e,a as Ne,C as ut,z as ve,n as B,u,d as Qe,e as Ge,o as mt,A as gt,h as bt,$ as pt,y as N}from"../chunks/D8EpLgQ1.js";import{p as fe,i as C,s as ft,a as xt}from"../chunks/5WA7h8uK.js";import{e as ht,w as Me,i as kt}from"../chunks/u94nIB4-.js";import{s as xe,B as yt,r as Ue,g as Ke,c as ue}from"../chunks/CiE1LlKV.js";import{b as Q}from"../chunks/CRhkqW2i.js";import{e as _t,a as Ce}from"../chunks/wyaP0EDu.js";import{b as Re}from"../chunks/C6k1Q4We.js";import{p as wt}from"../chunks/D4Caz1gY.js";import{M as Mt}from"../chunks/qB7B8uiS.js";import{t as Je}from"../chunks/BEkVdVE1.js";import{e as Ut}from"../chunks/BZiHL9L3.js";var Ct=h('
'),Rt=h('
'),zt=h('
'),Lt=h('
'),$t=h('
');function pe(me,D){let f=fe(D,"title",8),re=fe(D,"content",8),s=fe(D,"position",8,"top"),ae=fe(D,"width",8,"w-80");var i=$t(),k=a(r(i),2),p=r(k),y=r(p,!0);t(p);var d=a(p,2),R=r(d,!0);t(d);var oe=a(d,2);{var ge=E=>{var P=Ct();m(E,P)},se=E=>{var P=He(),W=ze(P);{var J=L=>{var q=Rt();m(L,q)},K=L=>{var q=He(),ie=ze(q);{var le=$=>{var H=zt();m($,H)},ne=$=>{var H=He(),X=ze(H);{var de=l=>{var o=Lt();m(l,o)};C(X,l=>{s()==="right"&&l(de)},!0)}m($,H)};C(ie,$=>{s()==="left"?$(le):$(ne,!1)},!0)}m(L,q)};C(W,L=>{s()==="bottom"?L(J):L(K,!1)},!0)}m(E,P)};C(oe,E=>{s()==="top"?E(ge):E(se,!1)})}t(k),t(i),T(()=>{xe(k,1,`absolute ${s()==="top"?"bottom-full":s()==="bottom"?"top-full":s()==="left"?"right-full top-1/2 -translate-y-1/2":"left-full top-1/2 -translate-y-1/2"} left-1/2 transform -translate-x-1/2 ${s()==="top"?"mb-2":s()==="bottom"?"mt-2":"mx-2"} ${ae()??""} p-3 bg-gray-900 text-white text-xs rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50`),z(y,f()),z(R,re())}),m(me,i)}var St=ut(' Settings',1),jt=h('
Metadata
'),Bt=h('
Callback
'),At=h('
Webhook
'),It=h('

No URLs configured

'),Et=h('
Controller Webhook URL

Use this URL in your GitHub organization/repository webhook settings

'),Ht=h('

Please enter a valid URL

'),Gt=h('

Please enter a valid URL

'),Pt=h('

Please enter a valid URL

'),qt=h('

Controller Settings

URL where runners can fetch metadata and setup information

URL where runners send status updates and lifecycle events

URL where GitHub/Gitea will send webhook events for job notifications

Time to wait before spinning up a runner for a new job (0 = immediate)

'),Tt=h('

Controller Information

Identity

Controller ID
Hostname
Job Age Backoff

Integration URLs

',1);function Dt(me,D){Oe(D,!1);const f=I(),re=I();let s=fe(D,"controllerInfo",12);const ae=vt();let i=I(!1),k=I(!1),p=I(""),y=I(""),d=I(""),R=I(null);function oe(){v(p,s().metadata_url||""),v(y,s().callback_url||""),v(d,s().webhook_url||""),v(R,s().minimum_job_age_backoff||null),v(i,!0)}async function ge(){try{v(k,!0);const n={};e(p).trim()&&(n.metadata_url=e(p).trim()),e(y).trim()&&(n.callback_url=e(y).trim()),e(d).trim()&&(n.webhook_url=e(d).trim()),e(R)!==null&&e(R)>=0&&(n.minimum_job_age_backoff=e(R));const c=await Ke.updateController(n);Je.success("Settings Updated","Controller settings have been updated successfully."),v(i,!1),s(c),ae("updated",c)}catch(n){Je.error("Update Failed",n instanceof Error?n.message:"Failed to update controller settings")}finally{v(k,!1)}}function se(){v(i,!1),v(p,""),v(y,""),v(d,""),v(R,null)}Le(()=>{},()=>{v(f,n=>{if(!n.trim())return!0;try{return new URL(n),!0}catch{return!1}})}),Le(()=>(e(f),e(p),e(y),e(d),e(R)),()=>{v(re,e(f)(e(p))&&e(f)(e(y))&&e(f)(e(d))&&(e(R)===null||e(R)>=0))}),Ne(),Fe();var E=Tt(),P=ze(E),W=r(P),J=r(W),K=r(J),L=a(r(K),2),q=a(r(L),2),ie=r(q),le=r(ie);t(ie),t(q),t(L),t(K);var ne=a(K,2);yt(ne,{variant:"secondary",size:"sm",$$events:{click:oe},children:(n,c)=>{var b=St();ve(),m(n,b)},$$slots:{default:!0}}),t(J);var $=a(J,2),H=r($),X=r(H),de=a(r(X),2),l=r(de),o=a(r(l),2),S=r(o,!0);t(o),t(l);var _=a(l,2),x=a(r(_),2),w=r(x,!0);t(x),t(_);var A=a(_,2),V=r(A),Y=a(r(V),2),Z=r(Y);pe(Z,{title:"Job Age Backoff",content:"Time in seconds GARM waits after receiving a new job before spinning up a runner. This delay allows existing idle runners to pick up jobs first, preventing unnecessary runner creation. Set to 0 for immediate response."}),t(Y),t(V);var F=a(V,2),O=r(F);t(F),t(A),t(de),t(X),t(H);var ee=a(H,2),ce=r(ee),he=a(r(ce),2),ke=r(he);{var $e=n=>{var c=jt(),b=r(c),M=a(r(b),2),G=r(M);pe(G,{title:"Metadata URL",content:"URL where runners retrieve setup information and metadata. Runners must be able to connect to this URL during their initialization process. Usually accessible at /api/v1/metadata endpoint."}),t(M),t(b);var U=a(b,2),j=r(U,!0);t(U),t(c),T(()=>z(j,(B(s()),u(()=>s().metadata_url)))),m(n,c)};C(ke,n=>{B(s()),u(()=>s().metadata_url)&&n($e)})}var Pe=a(ke,2);{var Xe=n=>{var c=Bt(),b=r(c),M=a(r(b),2),G=r(M);pe(G,{title:"Callback URL",content:"URL where runners send status updates and system information (OS version, runner agent ID, etc.) to the controller. Runners must be able to connect to this URL. Usually accessible at /api/v1/callbacks endpoint."}),t(M),t(b);var U=a(b,2),j=r(U,!0);t(U),t(c),T(()=>z(j,(B(s()),u(()=>s().callback_url)))),m(n,c)};C(Pe,n=>{B(s()),u(()=>s().callback_url)&&n(Xe)})}var qe=a(Pe,2);{var Ye=n=>{var c=At(),b=r(c),M=a(r(b),2),G=r(M);pe(G,{title:"Webhook Base URL",content:"Base URL for webhooks where GitHub sends job notifications. GARM needs to receive these webhooks to know when to create new runners for jobs. GitHub must be able to connect to this URL. Usually accessible at /webhooks endpoint."}),t(M),t(b);var U=a(b,2),j=r(U,!0);t(U),t(c),T(()=>z(j,(B(s()),u(()=>s().webhook_url)))),m(n,c)};C(qe,n=>{B(s()),u(()=>s().webhook_url)&&n(Ye)})}var Ze=a(qe,2);{var et=n=>{var c=It(),b=a(r(c),4);t(c),Ge("click",b,oe),m(n,c)};C(Ze,n=>{B(s()),u(()=>!s().metadata_url&&!s().callback_url&&!s().webhook_url)&&n(et)})}t(he),t(ce),t(ee),t($);var tt=a($,2);{var rt=n=>{var c=Et(),b=r(c),M=a(r(b),2),G=r(M);pe(G,{title:"Controller Webhook URL",content:"Unique webhook URL for this GARM controller. This is the preferred URL to use in GitHub webhook settings as it's controller-specific and allows multiple GARM controllers to work with the same repository. Automatically combines the webhook base URL with the controller ID."}),t(M),t(b);var U=a(b,2),j=r(U),be=a(r(j),2),ye=r(be),Se=r(ye,!0);t(ye),ve(2),t(be),t(j),t(U),t(c),T(()=>z(Se,(B(s()),u(()=>s().controller_webhook_url)))),m(n,c)};C(tt,n=>{B(s()),u(()=>s().controller_webhook_url)&&n(rt)})}t(W),t(P);var at=a(P,2);{var ot=n=>{Mt(n,{$$events:{close:se},children:(c,b)=>{var M=qt(),G=a(r(M),2),U=r(G),j=a(r(U),2);Ue(j);let be;var ye=a(j,2);{var Se=g=>{var te=Ht();m(g,te)};C(ye,g=>{e(f),e(p),u(()=>!e(f)(e(p)))&&g(Se)})}ve(2),t(U);var je=a(U,2),_e=a(r(je),2);Ue(_e);let Te;var st=a(_e,2);{var it=g=>{var te=Gt();m(g,te)};C(st,g=>{e(f),e(y),u(()=>!e(f)(e(y)))&&g(it)})}ve(2),t(je);var Be=a(je,2),we=a(r(Be),2);Ue(we);let De;var lt=a(we,2);{var nt=g=>{var te=Pt();m(g,te)};C(lt,g=>{e(f),e(d),u(()=>!e(f)(e(d)))&&g(nt)})}ve(2),t(Be);var Ae=a(Be,2),Ve=a(r(Ae),2);Ue(Ve),ve(2),t(Ae);var We=a(Ae,2),Ie=r(We),Ee=a(Ie,2),dt=r(Ee,!0);t(Ee),t(We),t(G),t(M),T((g,te,ct)=>{be=xe(j,1,"block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 bg-white dark:bg-gray-700 text-gray-900 dark:text-white sm:text-sm",null,be,g),Te=xe(_e,1,"block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 bg-white dark:bg-gray-700 text-gray-900 dark:text-white sm:text-sm",null,Te,te),De=xe(we,1,"block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 bg-white dark:bg-gray-700 text-gray-900 dark:text-white sm:text-sm",null,De,ct),Ie.disabled=e(k),Ee.disabled=!e(re)||e(k),z(dt,e(k)?"Saving...":"Save Changes")},[()=>({"border-red-300":!e(f)(e(p))}),()=>({"border-red-300":!e(f)(e(y))}),()=>({"border-red-300":!e(f)(e(d))})]),Re(j,()=>e(p),g=>v(p,g)),Re(_e,()=>e(y),g=>v(y,g)),Re(we,()=>e(d),g=>v(d,g)),Re(Ve,()=>e(R),g=>v(R,g)),Ge("click",Ie,se),Ge("submit",G,wt(ge)),m(c,M)},$$slots:{default:!0}})};C(at,n=>{e(i)&&n(ot)})}T(n=>{z(le,`v${n??""}`),z(S,(B(s()),u(()=>s().controller_id))),z(w,(B(s()),u(()=>s().hostname||"Unknown"))),z(O,`${B(s()),u(()=>s().minimum_job_age_backoff||30)??""}s`)},[()=>(B(s()),u(()=>s().version?.replace(/^v/,"")||"Unknown"))]),m(me,E),Qe()}var Vt=h('

Error loading dashboard

'),Wt=h('
'),Jt=h('

Dashboard

Welcome to GARM - GitHub Actions Runner Manager

');function sr(me,D){Oe(D,!1);const[f,re]=ft(),s=()=>xt(_t,"$eagerCache",f),ae=I();let i=I({repositories:0,organizations:0,pools:0,instances:0}),k=I(null),p=I(""),y=[];function d(l,o,S=1e3){const _=parseInt(l.textContent||"0"),x=(o-_)/(S/16);let w=_;const A=()=>{if(w+=x,x>0&&w>=o||x<0&&w<=o){l.textContent=o.toString();return}l.textContent=Math.floor(w).toString(),requestAnimationFrame(A)};_!==o&&requestAnimationFrame(A)}mt(async()=>{try{const[x,w,A,V,Y]=await Promise.all([Ce.getRepositories(),Ce.getOrganizations(),Ce.getPools(),Ke.listInstances(),Ce.getControllerInfo()]);setTimeout(()=>{const Z=document.querySelector('[data-stat="repositories"]'),F=document.querySelector('[data-stat="organizations"]'),O=document.querySelector('[data-stat="pools"]'),ee=document.querySelector('[data-stat="instances"]');Z&&d(Z,x.length),F&&d(F,w.length),O&&d(O,A.length),ee&&d(ee,V.length)},100),v(i,{repositories:x.length,organizations:w.length,pools:A.length,instances:V.length}),Y&&v(k,Y)}catch(x){v(p,Ut(x)),console.error("Dashboard error:",x)}const l=Me.subscribeToEntity("repository",["create","delete"],R),o=Me.subscribeToEntity("organization",["create","delete"],oe),S=Me.subscribeToEntity("pool",["create","delete"],ge),_=Me.subscribeToEntity("instance",["create","delete"],se);y=[l,o,S,_]}),gt(()=>{y.forEach(l=>l())});function R(l){const o=document.querySelector('[data-stat="repositories"]');l.operation==="create"?(N(i,e(i).repositories++),o&&d(o,e(i).repositories,500)):l.operation==="delete"&&(N(i,e(i).repositories=Math.max(0,e(i).repositories-1)),o&&d(o,e(i).repositories,500))}function oe(l){const o=document.querySelector('[data-stat="organizations"]');l.operation==="create"?(N(i,e(i).organizations++),o&&d(o,e(i).organizations,500)):l.operation==="delete"&&(N(i,e(i).organizations=Math.max(0,e(i).organizations-1)),o&&d(o,e(i).organizations,500))}function ge(l){const o=document.querySelector('[data-stat="pools"]');l.operation==="create"?(N(i,e(i).pools++),o&&d(o,e(i).pools,500)):l.operation==="delete"&&(N(i,e(i).pools=Math.max(0,e(i).pools-1)),o&&d(o,e(i).pools,500))}function se(l){const o=document.querySelector('[data-stat="instances"]');l.operation==="create"?(N(i,e(i).instances++),o&&d(o,e(i).instances,500)):l.operation==="delete"&&(N(i,e(i).instances=Math.max(0,e(i).instances-1)),o&&d(o,e(i).instances,500))}function E(l){v(k,l.detail)}function P(l){return{blue:"bg-blue-500 text-white",green:"bg-green-500 text-white",purple:"bg-purple-500 text-white",yellow:"bg-yellow-500 text-white"}[l]||"bg-gray-500 text-white"}Le(()=>(e(k),s()),()=>{(!e(k)||s().loaded.controllerInfo)&&v(k,s().controllerInfo)}),Le(()=>(e(i),Q),()=>{v(ae,[{title:"Repositories",value:e(i).repositories,icon:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",color:"blue",href:`${Q}/repositories`},{title:"Organizations",value:e(i).organizations,icon:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z",color:"green",href:`${Q}/organizations`},{title:"Pools",value:e(i).pools,icon:"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z",color:"purple",href:`${Q}/pools`},{title:"Instances",value:e(i).instances,icon:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z",color:"yellow",href:`${Q}/instances`}])}),Ne(),Fe();var W=Jt();bt(l=>{pt.title="Dashboard - GARM"});var J=a(r(W),2);{var K=l=>{var o=Vt(),S=r(o),_=a(r(S),2),x=a(r(_),2),w=r(x,!0);t(x),t(_),t(S),t(o),T(()=>z(w,e(p))),m(l,o)};C(J,l=>{e(p)&&l(K)})}var L=a(J,2);ht(L,5,()=>e(ae),kt,(l,o)=>{var S=Wt(),_=r(S),x=r(_),w=r(x),A=r(w),V=r(A),Y=r(V);t(V),t(A),t(w);var Z=a(w,2),F=r(Z),O=r(F),ee=r(O,!0);t(O);var ce=a(O,2),he=r(ce,!0);t(ce),t(F),t(Z),t(x),t(_),t(S),T((ke,$e)=>{ue(S,"href",(e(o),u(()=>e(o).href))),xe(A,1,`w-8 h-8 rounded-md ${ke??""} flex items-center justify-center`),ue(Y,"d",(e(o),u(()=>e(o).icon))),z(ee,(e(o),u(()=>e(o).title))),ue(ce,"data-stat",$e),z(he,(e(o),u(()=>e(o).value)))},[()=>(e(o),u(()=>P(e(o).color))),()=>(e(o),u(()=>e(o).title.toLowerCase()))]),m(l,S)}),t(L);var q=a(L,2);{var ie=l=>{Dt(l,{get controllerInfo(){return e(k)},$$events:{updated:E}})};C(q,l=>{e(k)&&l(ie)})}var le=a(q,2),ne=r(le),$=a(r(ne),4),H=r($),X=a(H,2),de=a(X,2);t($),t(ne),t(le),t(W),T(()=>{ue(H,"href",`${Q??""}/repositories`),ue(X,"href",`${Q??""}/pools`),ue(de,"href",`${Q??""}/instances`)}),m(me,W),Qe(),re()}export{sr as component}; diff --git a/webapp/assets/_app/immutable/nodes/2.CiT4lj0D.js b/webapp/assets/_app/immutable/nodes/2.CiT4lj0D.js deleted file mode 100644 index b08a6de1..00000000 --- a/webapp/assets/_app/immutable/nodes/2.CiT4lj0D.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as Je}from"../chunks/B3Pzt0F_.js";import{f as h,k as a,j as r,r as t,t as T,v as z,c as m,B as He,b as ze,p as Oe,E as vt,l as Le,s as v,m as I,g as e,a as Ne,C as ut,z as ve,n as B,u,d as Qe,e as Ge,o as mt,A as gt,h as bt,$ as pt,y as N}from"../chunks/D8EpLgQ1.js";import{p as fe,i as C,s as ft,a as xt}from"../chunks/5WA7h8uK.js";import{e as ht,w as Me,i as kt}from"../chunks/u94nIB4-.js";import{s as xe,B as yt,r as Ue,g as Ke,c as ue}from"../chunks/CiE1LlKV.js";import{b as Q}from"../chunks/CoIRRsD9.js";import{e as _t,a as Ce}from"../chunks/wyaP0EDu.js";import{b as Re}from"../chunks/C6k1Q4We.js";import{p as wt}from"../chunks/D4Caz1gY.js";import{M as Mt}from"../chunks/qB7B8uiS.js";import{t as Fe}from"../chunks/BEkVdVE1.js";var Ut=h('
'),Ct=h('
'),Rt=h('
'),zt=h('
'),Lt=h('
');function pe(me,D){let x=fe(D,"title",8),re=fe(D,"content",8),s=fe(D,"position",8,"top"),ae=fe(D,"width",8,"w-80");var i=Lt(),k=a(r(i),2),p=r(k),y=r(p,!0);t(p);var d=a(p,2),R=r(d,!0);t(d);var oe=a(d,2);{var ge=E=>{var q=Ut();m(E,q)},se=E=>{var q=He(),W=ze(q);{var F=L=>{var P=Ct();m(L,P)},K=L=>{var P=He(),ie=ze(P);{var le=$=>{var H=Rt();m($,H)},ne=$=>{var H=He(),X=ze(H);{var de=l=>{var o=zt();m(l,o)};C(X,l=>{s()==="right"&&l(de)},!0)}m($,H)};C(ie,$=>{s()==="left"?$(le):$(ne,!1)},!0)}m(L,P)};C(W,L=>{s()==="bottom"?L(F):L(K,!1)},!0)}m(E,q)};C(oe,E=>{s()==="top"?E(ge):E(se,!1)})}t(k),t(i),T(()=>{xe(k,1,`absolute ${s()==="top"?"bottom-full":s()==="bottom"?"top-full":s()==="left"?"right-full top-1/2 -translate-y-1/2":"left-full top-1/2 -translate-y-1/2"} left-1/2 transform -translate-x-1/2 ${s()==="top"?"mb-2":s()==="bottom"?"mt-2":"mx-2"} ${ae()??""} p-3 bg-gray-900 text-white text-xs rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50`),z(y,x()),z(R,re())}),m(me,i)}var $t=ut(' Settings',1),St=h('
Metadata
'),jt=h('
Callback
'),Bt=h('
Webhook
'),At=h('

No URLs configured

'),It=h('
Controller Webhook URL

Use this URL in your GitHub organization/repository webhook settings

'),Et=h('

Please enter a valid URL

'),Ht=h('

Please enter a valid URL

'),Gt=h('

Please enter a valid URL

'),qt=h('

Controller Settings

URL where runners can fetch metadata and setup information

URL where runners send status updates and lifecycle events

URL where GitHub/Gitea will send webhook events for job notifications

Time to wait before spinning up a runner for a new job (0 = immediate)

'),Pt=h('

Controller Information

Identity

Controller ID
Hostname
Job Age Backoff

Integration URLs

',1);function Tt(me,D){Oe(D,!1);const x=I(),re=I();let s=fe(D,"controllerInfo",12);const ae=vt();let i=I(!1),k=I(!1),p=I(""),y=I(""),d=I(""),R=I(null);function oe(){v(p,s().metadata_url||""),v(y,s().callback_url||""),v(d,s().webhook_url||""),v(R,s().minimum_job_age_backoff||null),v(i,!0)}async function ge(){try{v(k,!0);const n={};e(p).trim()&&(n.metadata_url=e(p).trim()),e(y).trim()&&(n.callback_url=e(y).trim()),e(d).trim()&&(n.webhook_url=e(d).trim()),e(R)!==null&&e(R)>=0&&(n.minimum_job_age_backoff=e(R));const c=await Ke.updateController(n);Fe.success("Settings Updated","Controller settings have been updated successfully."),v(i,!1),s(c),ae("updated",c)}catch(n){Fe.error("Update Failed",n instanceof Error?n.message:"Failed to update controller settings")}finally{v(k,!1)}}function se(){v(i,!1),v(p,""),v(y,""),v(d,""),v(R,null)}Le(()=>{},()=>{v(x,n=>{if(!n.trim())return!0;try{return new URL(n),!0}catch{return!1}})}),Le(()=>(e(x),e(p),e(y),e(d),e(R)),()=>{v(re,e(x)(e(p))&&e(x)(e(y))&&e(x)(e(d))&&(e(R)===null||e(R)>=0))}),Ne(),Je();var E=Pt(),q=ze(E),W=r(q),F=r(W),K=r(F),L=a(r(K),2),P=a(r(L),2),ie=r(P),le=r(ie);t(ie),t(P),t(L),t(K);var ne=a(K,2);yt(ne,{variant:"secondary",size:"sm",$$events:{click:oe},children:(n,c)=>{var b=$t();ve(),m(n,b)},$$slots:{default:!0}}),t(F);var $=a(F,2),H=r($),X=r(H),de=a(r(X),2),l=r(de),o=a(r(l),2),S=r(o,!0);t(o),t(l);var _=a(l,2),f=a(r(_),2),w=r(f,!0);t(f),t(_);var A=a(_,2),V=r(A),Y=a(r(V),2),Z=r(Y);pe(Z,{title:"Job Age Backoff",content:"Time in seconds GARM waits after receiving a new job before spinning up a runner. This delay allows existing idle runners to pick up jobs first, preventing unnecessary runner creation. Set to 0 for immediate response."}),t(Y),t(V);var J=a(V,2),O=r(J);t(J),t(A),t(de),t(X),t(H);var ee=a(H,2),ce=r(ee),he=a(r(ce),2),ke=r(he);{var $e=n=>{var c=St(),b=r(c),M=a(r(b),2),G=r(M);pe(G,{title:"Metadata URL",content:"URL where runners retrieve setup information and metadata. Runners must be able to connect to this URL during their initialization process. Usually accessible at /api/v1/metadata endpoint."}),t(M),t(b);var U=a(b,2),j=r(U,!0);t(U),t(c),T(()=>z(j,(B(s()),u(()=>s().metadata_url)))),m(n,c)};C(ke,n=>{B(s()),u(()=>s().metadata_url)&&n($e)})}var qe=a(ke,2);{var Xe=n=>{var c=jt(),b=r(c),M=a(r(b),2),G=r(M);pe(G,{title:"Callback URL",content:"URL where runners send status updates and system information (OS version, runner agent ID, etc.) to the controller. Runners must be able to connect to this URL. Usually accessible at /api/v1/callbacks endpoint."}),t(M),t(b);var U=a(b,2),j=r(U,!0);t(U),t(c),T(()=>z(j,(B(s()),u(()=>s().callback_url)))),m(n,c)};C(qe,n=>{B(s()),u(()=>s().callback_url)&&n(Xe)})}var Pe=a(qe,2);{var Ye=n=>{var c=Bt(),b=r(c),M=a(r(b),2),G=r(M);pe(G,{title:"Webhook Base URL",content:"Base URL for webhooks where GitHub sends job notifications. GARM needs to receive these webhooks to know when to create new runners for jobs. GitHub must be able to connect to this URL. Usually accessible at /webhooks endpoint."}),t(M),t(b);var U=a(b,2),j=r(U,!0);t(U),t(c),T(()=>z(j,(B(s()),u(()=>s().webhook_url)))),m(n,c)};C(Pe,n=>{B(s()),u(()=>s().webhook_url)&&n(Ye)})}var Ze=a(Pe,2);{var et=n=>{var c=At(),b=a(r(c),4);t(c),Ge("click",b,oe),m(n,c)};C(Ze,n=>{B(s()),u(()=>!s().metadata_url&&!s().callback_url&&!s().webhook_url)&&n(et)})}t(he),t(ce),t(ee),t($);var tt=a($,2);{var rt=n=>{var c=It(),b=r(c),M=a(r(b),2),G=r(M);pe(G,{title:"Controller Webhook URL",content:"Unique webhook URL for this GARM controller. This is the preferred URL to use in GitHub webhook settings as it's controller-specific and allows multiple GARM controllers to work with the same repository. Automatically combines the webhook base URL with the controller ID."}),t(M),t(b);var U=a(b,2),j=r(U),be=a(r(j),2),ye=r(be),Se=r(ye,!0);t(ye),ve(2),t(be),t(j),t(U),t(c),T(()=>z(Se,(B(s()),u(()=>s().controller_webhook_url)))),m(n,c)};C(tt,n=>{B(s()),u(()=>s().controller_webhook_url)&&n(rt)})}t(W),t(q);var at=a(q,2);{var ot=n=>{Mt(n,{$$events:{close:se},children:(c,b)=>{var M=qt(),G=a(r(M),2),U=r(G),j=a(r(U),2);Ue(j);let be;var ye=a(j,2);{var Se=g=>{var te=Et();m(g,te)};C(ye,g=>{e(x),e(p),u(()=>!e(x)(e(p)))&&g(Se)})}ve(2),t(U);var je=a(U,2),_e=a(r(je),2);Ue(_e);let Te;var st=a(_e,2);{var it=g=>{var te=Ht();m(g,te)};C(st,g=>{e(x),e(y),u(()=>!e(x)(e(y)))&&g(it)})}ve(2),t(je);var Be=a(je,2),we=a(r(Be),2);Ue(we);let De;var lt=a(we,2);{var nt=g=>{var te=Gt();m(g,te)};C(lt,g=>{e(x),e(d),u(()=>!e(x)(e(d)))&&g(nt)})}ve(2),t(Be);var Ae=a(Be,2),Ve=a(r(Ae),2);Ue(Ve),ve(2),t(Ae);var We=a(Ae,2),Ie=r(We),Ee=a(Ie,2),dt=r(Ee,!0);t(Ee),t(We),t(G),t(M),T((g,te,ct)=>{be=xe(j,1,"block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 bg-white dark:bg-gray-700 text-gray-900 dark:text-white sm:text-sm",null,be,g),Te=xe(_e,1,"block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 bg-white dark:bg-gray-700 text-gray-900 dark:text-white sm:text-sm",null,Te,te),De=xe(we,1,"block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 bg-white dark:bg-gray-700 text-gray-900 dark:text-white sm:text-sm",null,De,ct),Ie.disabled=e(k),Ee.disabled=!e(re)||e(k),z(dt,e(k)?"Saving...":"Save Changes")},[()=>({"border-red-300":!e(x)(e(p))}),()=>({"border-red-300":!e(x)(e(y))}),()=>({"border-red-300":!e(x)(e(d))})]),Re(j,()=>e(p),g=>v(p,g)),Re(_e,()=>e(y),g=>v(y,g)),Re(we,()=>e(d),g=>v(d,g)),Re(Ve,()=>e(R),g=>v(R,g)),Ge("click",Ie,se),Ge("submit",G,wt(ge)),m(c,M)},$$slots:{default:!0}})};C(at,n=>{e(i)&&n(ot)})}T(n=>{z(le,`v${n??""}`),z(S,(B(s()),u(()=>s().controller_id))),z(w,(B(s()),u(()=>s().hostname||"Unknown"))),z(O,`${B(s()),u(()=>s().minimum_job_age_backoff||30)??""}s`)},[()=>(B(s()),u(()=>s().version?.replace(/^v/,"")||"Unknown"))]),m(me,E),Qe()}var Dt=h('

Error loading dashboard

'),Vt=h('
'),Wt=h('

Dashboard

Welcome to GARM - GitHub Actions Runner Manager

');function ar(me,D){Oe(D,!1);const[x,re]=ft(),s=()=>xt(_t,"$eagerCache",x),ae=I();let i=I({repositories:0,organizations:0,pools:0,instances:0}),k=I(null),p=I(""),y=[];function d(l,o,S=1e3){const _=parseInt(l.textContent||"0"),f=(o-_)/(S/16);let w=_;const A=()=>{if(w+=f,f>0&&w>=o||f<0&&w<=o){l.textContent=o.toString();return}l.textContent=Math.floor(w).toString(),requestAnimationFrame(A)};_!==o&&requestAnimationFrame(A)}mt(async()=>{try{const[f,w,A,V,Y]=await Promise.all([Ce.getRepositories(),Ce.getOrganizations(),Ce.getPools(),Ke.listInstances(),Ce.getControllerInfo()]);setTimeout(()=>{const Z=document.querySelector('[data-stat="repositories"]'),J=document.querySelector('[data-stat="organizations"]'),O=document.querySelector('[data-stat="pools"]'),ee=document.querySelector('[data-stat="instances"]');Z&&d(Z,f.length),J&&d(J,w.length),O&&d(O,A.length),ee&&d(ee,V.length)},100),v(i,{repositories:f.length,organizations:w.length,pools:A.length,instances:V.length}),Y&&v(k,Y)}catch(f){v(p,f instanceof Error?f.message:"Failed to load dashboard data"),console.error("Dashboard error:",f)}const l=Me.subscribeToEntity("repository",["create","delete"],R),o=Me.subscribeToEntity("organization",["create","delete"],oe),S=Me.subscribeToEntity("pool",["create","delete"],ge),_=Me.subscribeToEntity("instance",["create","delete"],se);y=[l,o,S,_]}),gt(()=>{y.forEach(l=>l())});function R(l){const o=document.querySelector('[data-stat="repositories"]');l.operation==="create"?(N(i,e(i).repositories++),o&&d(o,e(i).repositories,500)):l.operation==="delete"&&(N(i,e(i).repositories=Math.max(0,e(i).repositories-1)),o&&d(o,e(i).repositories,500))}function oe(l){const o=document.querySelector('[data-stat="organizations"]');l.operation==="create"?(N(i,e(i).organizations++),o&&d(o,e(i).organizations,500)):l.operation==="delete"&&(N(i,e(i).organizations=Math.max(0,e(i).organizations-1)),o&&d(o,e(i).organizations,500))}function ge(l){const o=document.querySelector('[data-stat="pools"]');l.operation==="create"?(N(i,e(i).pools++),o&&d(o,e(i).pools,500)):l.operation==="delete"&&(N(i,e(i).pools=Math.max(0,e(i).pools-1)),o&&d(o,e(i).pools,500))}function se(l){const o=document.querySelector('[data-stat="instances"]');l.operation==="create"?(N(i,e(i).instances++),o&&d(o,e(i).instances,500)):l.operation==="delete"&&(N(i,e(i).instances=Math.max(0,e(i).instances-1)),o&&d(o,e(i).instances,500))}function E(l){v(k,l.detail)}function q(l){return{blue:"bg-blue-500 text-white",green:"bg-green-500 text-white",purple:"bg-purple-500 text-white",yellow:"bg-yellow-500 text-white"}[l]||"bg-gray-500 text-white"}Le(()=>(e(k),s()),()=>{(!e(k)||s().loaded.controllerInfo)&&v(k,s().controllerInfo)}),Le(()=>(e(i),Q),()=>{v(ae,[{title:"Repositories",value:e(i).repositories,icon:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",color:"blue",href:`${Q}/repositories`},{title:"Organizations",value:e(i).organizations,icon:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z",color:"green",href:`${Q}/organizations`},{title:"Pools",value:e(i).pools,icon:"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z",color:"purple",href:`${Q}/pools`},{title:"Instances",value:e(i).instances,icon:"M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z",color:"yellow",href:`${Q}/instances`}])}),Ne(),Je();var W=Wt();bt(l=>{pt.title="Dashboard - GARM"});var F=a(r(W),2);{var K=l=>{var o=Dt(),S=r(o),_=a(r(S),2),f=a(r(_),2),w=r(f,!0);t(f),t(_),t(S),t(o),T(()=>z(w,e(p))),m(l,o)};C(F,l=>{e(p)&&l(K)})}var L=a(F,2);ht(L,5,()=>e(ae),kt,(l,o)=>{var S=Vt(),_=r(S),f=r(_),w=r(f),A=r(w),V=r(A),Y=r(V);t(V),t(A),t(w);var Z=a(w,2),J=r(Z),O=r(J),ee=r(O,!0);t(O);var ce=a(O,2),he=r(ce,!0);t(ce),t(J),t(Z),t(f),t(_),t(S),T((ke,$e)=>{ue(S,"href",(e(o),u(()=>e(o).href))),xe(A,1,`w-8 h-8 rounded-md ${ke??""} flex items-center justify-center`),ue(Y,"d",(e(o),u(()=>e(o).icon))),z(ee,(e(o),u(()=>e(o).title))),ue(ce,"data-stat",$e),z(he,(e(o),u(()=>e(o).value)))},[()=>(e(o),u(()=>q(e(o).color))),()=>(e(o),u(()=>e(o).title.toLowerCase()))]),m(l,S)}),t(L);var P=a(L,2);{var ie=l=>{Tt(l,{get controllerInfo(){return e(k)},$$events:{updated:E}})};C(P,l=>{e(k)&&l(ie)})}var le=a(P,2),ne=r(le),$=a(r(ne),4),H=r($),X=a(H,2),de=a(X,2);t($),t(ne),t(le),t(W),T(()=>{ue(H,"href",`${Q??""}/repositories`),ue(X,"href",`${Q??""}/pools`),ue(de,"href",`${Q??""}/instances`)}),m(me,W),Qe(),re()}export{ar as component}; diff --git a/webapp/assets/_app/immutable/nodes/3.BSFz0YHn.js b/webapp/assets/_app/immutable/nodes/3.BSFz0YHn.js deleted file mode 100644 index f89efad2..00000000 --- a/webapp/assets/_app/immutable/nodes/3.BSFz0YHn.js +++ /dev/null @@ -1,7 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as It}from"../chunks/B3Pzt0F_.js";import{p as jt,g as e,o as Gt,l as Q,a as Ut,f as E,e as f,h as qt,b as Fe,c as $,d as zt,$ as Bt,m as b,s as n,i as St,j as i,k as a,r as o,u,n as ye,q as Le,t as se,v as W,w as tt,x as Lt,y as _,z as X}from"../chunks/D8EpLgQ1.js";import{i as G,s as Nt,a as Kt}from"../chunks/5WA7h8uK.js";import{e as Vt,i as Ht}from"../chunks/u94nIB4-.js";import{h as Rt,r as L,s as Ie,b as Yt,a as Ot,g as ve}from"../chunks/CiE1LlKV.js";import{b as N,a as Jt}from"../chunks/C6k1Q4We.js";import{p as rt}from"../chunks/D4Caz1gY.js";import{P as Qt}from"../chunks/CO4LUyTP.js";import{F as Wt}from"../chunks/CNMHKIIK.js";import{D as Xt,A as at,G as it,a as Zt}from"../chunks/C9DJVOi1.js";import{e as er,a as Ne}from"../chunks/wyaP0EDu.js";import{t as je}from"../chunks/BEkVdVE1.js";import{f as tr,p as rr,g as Ke,B as ot,c as ar}from"../chunks/BGVHQGl-.js";import"../chunks/CoIRRsD9.js";import{E as ir}from"../chunks/CGpPw4EW.js";import{S as or}from"../chunks/BE4wujub.js";var nr=E('

'),dr=E(""),sr=E('

'),lr=E('

Gitea only supports PAT authentication

'),cr=E('
'),ur=E('

or drag and drop

PEM, KEY files only

',1),pr=E(''),gr=E('
'),br=E('

or drag and drop

PEM, KEY files only. Upload new private key.

',1),yr=E(" ",1),vr=E(''),fr=E(''),mr=E('
',1);function Ur(nt,dt){jt(dt,!1);const[st,lt]=Nt(),U=()=>Kt(er,"$eagerCache",st),Ge=b(),Z=b(),Ve=b(),Ue=b(),p={PAT:"pat",APP:"app"};let we=b(!0),le=b([]),J=b([]),fe=b(""),Ce=b(""),K=b(1),ce=b(25),ue=b(1),Pe=b(!1),Ae=b(!1),Te=b(!1),D=b(p.PAT),g=b(null),M=b(null),r=b({name:"",description:"",endpoint:"",auth_type:p.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),$e={...e(r)},ee=b(!1);function ct(t){t.key==="Escape"&&(e(Pe)||e(Ae)||e(Te))&&P()}Gt(async()=>{try{n(we,!0);const[t,s]=await Promise.all([Ne.getCredentials(),Ne.getEndpoints()]);t&&Array.isArray(t)&&n(le,t),s&&Array.isArray(s)&&n(J,s)}catch(t){console.error("Failed to load credentials:",t),n(fe,t instanceof Error?t.message:"Failed to load credentials")}finally{n(we,!1)}});async function ut(){try{await Ne.retryResource("credentials")}catch(t){console.error("Retry failed:",t)}}async function pt(){He(),n(Pe,!0),n(x,"github")}let x=b("");function gt(t){n(x,t.detail),_(r,e(r).auth_type=p.PAT),n(D,p.PAT)}async function qe(t){n(g,t),n(r,{name:t.name||"",description:t.description||"",endpoint:t.endpoint?.name||"",auth_type:t["auth-type"]||p.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),n(D,t["auth-type"]||p.PAT),$e={...e(r)},n(ee,!1),n(Ae,!0)}function ze(t){n(M,t),n(Te,!0)}function He(){n(r,{name:"",description:"",endpoint:"",auth_type:p.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),$e={...e(r)},n(D,p.PAT),n(ee,!1)}function P(){n(Pe,!1),n(Ae,!1),n(Te,!1),n(g,null),n(M,null),n(x,""),He()}function Re(t){n(D,t),_(r,e(r).auth_type=t)}function bt(){const t={};if(e(r).name!==$e.name&&e(r).name.trim()!==""&&(t.name=e(r).name.trim()),e(r).description!==$e.description&&e(r).description.trim()!==""&&(t.description=e(r).description.trim()),e(ee)&&e(g))if(e(g)["auth-type"]===p.PAT)e(r).oauth2_token.trim()!==""&&(t.pat={oauth2_token:e(r).oauth2_token.trim()});else{const s={};let y=!1;if(e(r).app_id.trim()!==""&&(s.app_id=parseInt(e(r).app_id.trim()),y=!0),e(r).installation_id.trim()!==""&&(s.installation_id=parseInt(e(r).installation_id.trim()),y=!0),e(r).private_key_bytes!=="")try{const m=atob(e(r).private_key_bytes);s.private_key_bytes=Array.from(m,l=>l.charCodeAt(0)),y=!0}catch{}y&&(t.app=s)}return t}async function yt(){try{if(e(x)==="github")await ve.createGithubCredentials(e(r));else if(e(x)==="gitea")await ve.createGiteaCredentials(e(r));else throw new Error("Please select a forge type");je.success("Credentials Created",`Credentials ${e(r).name} have been created successfully.`),P()}catch(t){n(fe,t instanceof Error?t.message:"Failed to create credentials")}}async function vt(){if(!(!e(g)||!e(g).id))try{const t=bt();if(Object.keys(t).length===0){je.info("No Changes","No fields were modified."),P();return}e(g).forge_type==="github"?await ve.updateGithubCredentials(e(g).id,t):await ve.updateGiteaCredentials(e(g).id,t),je.success("Credentials Updated",`Credentials ${e(g)?.name||"Unknown"} have been updated successfully.`),P()}catch(t){n(fe,t instanceof Error?t.message:"Failed to update credentials")}}async function ft(){if(!(!e(M)||!e(M).id))try{e(M).forge_type==="github"?await ve.deleteGithubCredentials(e(M).id):await ve.deleteGiteaCredentials(e(M).id),je.success("Credentials Deleted",`Credentials ${e(M)?.name||"Unknown"} have been deleted successfully.`),P()}catch(t){n(fe,t instanceof Error?t.message:"Failed to delete credentials")}}function Ye(t){const y=t.target.files?.[0];if(!y){_(r,e(r).private_key_bytes="");return}const m=new FileReader;m.onload=l=>{const h=l.target?.result;_(r,e(r).private_key_bytes=btoa(h))},m.readAsText(y)}function Oe(){return!e(r).name||!e(r).description||!e(r).endpoint?!1:e(r).auth_type===p.PAT?!!e(r).oauth2_token:!!e(r).app_id&&!!e(r).installation_id&&!!e(r).private_key_bytes}function Je(){return!e(r).name.trim()||!e(r).description.trim()?!1:e(ee)&&e(g)?e(g)["auth-type"]===p.PAT?!!e(r).oauth2_token.trim():!!e(r).app_id.trim()&&!!e(r).installation_id.trim()&&!!e(r).private_key_bytes:!0}function mt(t){return e(J).find(y=>y.name===t)?.endpoint_type||""}function xt(t){return mt(t)==="gitea"}const _t=[{key:"name",title:"Name",cellComponent:it,cellProps:{field:"name"}},{key:"description",title:"Description",cellComponent:it,cellProps:{field:"description",type:"description"}},{key:"endpoint",title:"Endpoint",cellComponent:ir},{key:"auth_type",title:"Auth Type",cellComponent:or,cellProps:{statusType:"custom",statusField:"auth-type"}},{key:"actions",title:"Actions",align:"right",cellComponent:Zt}],ht={entityType:"credential",primaryText:{field:"name",isClickable:!1},secondaryText:{field:"description"},customInfo:[{icon:t=>Ke(t?.forge_type||"unknown"),text:t=>t?.endpoint?.name||"Unknown"}],badges:[{type:"auth",field:"auth-type"}],actions:[{type:"edit",handler:t=>qe(t)},{type:"delete",handler:t=>ze(t)}]};function kt(t){n(Ce,t.detail.term),n(K,1)}function wt(t){n(K,t.detail.page)}function Ct(t){const s=ar(t.detail.perPage);n(ce,s.newPerPage),n(K,s.newCurrentPage)}function Pt(t){qe(t.detail.item)}function At(t){ze(t.detail.item)}Q(()=>(e(le),U()),()=>{(!e(le).length||U().loaded.credentials)&&n(le,U().credentials)}),Q(()=>U(),()=>{n(we,U().loading.credentials)}),Q(()=>U(),()=>{n(Ge,U().errorMessages.credentials)}),Q(()=>(e(J),U()),()=>{(!e(J).length||U().loaded.endpoints)&&n(J,U().endpoints)}),Q(()=>(e(le),e(Ce)),()=>{n(Z,tr(e(le),e(Ce)))}),Q(()=>(e(ue),e(Z),e(ce),e(K)),()=>{n(ue,Math.ceil(e(Z).length/e(ce))),e(K)>e(ue)&&e(ue)>0&&n(K,e(ue))}),Q(()=>(e(Z),e(K),e(ce)),()=>{n(Ve,rr(e(Z),e(K),e(ce)))}),Q(()=>(e(x),e(J)),()=>{n(Ue,e(x)?e(J).filter(t=>t.endpoint_type===e(x)):e(J))}),Ut(),It();var Qe=mr();f("keydown",St,ct),qt(t=>{Bt.title="Credentials - GARM"});var Be=Fe(Qe),We=i(Be);Qt(We,{title:"Credentials",description:"Manage authentication credentials for your GitHub and Gitea endpoints.",actionLabel:"Add Credentials",$$events:{action:pt}});var Tt=a(We,2);{let t=Le(()=>e(Ge)||e(fe)),s=Le(()=>!!e(Ge));Xt(Tt,{get columns(){return _t},get data(){return e(Ve)},get loading(){return e(we)},get error(){return e(t)},get searchTerm(){return e(Ce)},searchPlaceholder:"Search credentials by name, description, or endpoint...",get currentPage(){return e(K)},get perPage(){return e(ce)},get totalPages(){return e(ue)},get totalItems(){return e(Z),u(()=>e(Z).length)},itemName:"credentials",emptyIconType:"key",get showRetry(){return e(s)},get mobileCardConfig(){return ht},$$events:{search:kt,pageChange:wt,perPageChange:Ct,retry:ut,edit:Pt,delete:At},$$slots:{"mobile-card":(y,m)=>{const l=Le(()=>m.item);var h=nr(),A=i(h),q=i(A),F=i(q),I=i(F,!0);o(F);var k=a(F,2),V=i(k,!0);o(k);var z=a(k,2),B=i(z),S=i(B);Rt(S,()=>(ye(Ke),ye(e(l)),u(()=>Ke(e(l).forge_type||"unknown"))));var te=a(S,2),re=i(te,!0);o(te),o(B),o(z),o(q),o(A);var ae=a(A,2),H=i(ae);{var ie=j=>{ot(j,{variant:"success",text:"PAT"})},R=j=>{ot(j,{variant:"info",text:"App"})};G(H,j=>{ye(e(l)),u(()=>(e(l)["auth-type"]||"pat")==="pat")?j(ie):j(R,!1)})}var Y=a(H,2),oe=i(Y);at(oe,{action:"edit",size:"sm",title:"Edit credentials",ariaLabel:"Edit credentials",$$events:{click:()=>qe(e(l))}});var pe=a(oe,2);at(pe,{action:"delete",size:"sm",title:"Delete credentials",ariaLabel:"Delete credentials",$$events:{click:()=>ze(e(l))}}),o(Y),o(ae),o(h),se(()=>{W(I,(ye(e(l)),u(()=>e(l).name))),W(V,(ye(e(l)),u(()=>e(l).description))),W(re,(ye(e(l)),u(()=>e(l).endpoint?.name||"Unknown")))}),$(y,h)}}})}o(Be);var Xe=a(Be,2);{var $t=t=>{var s=pr(),y=i(s),m=a(y,2),l=i(m),h=a(i(l),2);o(l);var A=a(l,2),q=i(A);Wt(q,{get selectedForgeType(){return e(x)},set selectedForgeType(d){n(x,d)},$$events:{select:gt},$$legacy:!0});var F=a(q,2),I=a(i(F),2);L(I),o(F);var k=a(F,2),V=a(i(k),2);tt(V),o(k);var z=a(k,2),B=a(i(z),2);se(()=>{e(r),Lt(()=>{e(Ue)})});var S=i(B);S.value=S.__value="";var te=a(S);Vt(te,1,()=>e(Ue),Ht,(d,c)=>{var v=dr(),C=i(v);o(v);var T={};se(()=>{W(C,`${e(c),u(()=>e(c).name)??""} (${e(c),u(()=>e(c).endpoint_type)??""})`),T!==(T=(e(c),u(()=>e(c).name)))&&(v.value=(v.__value=(e(c),u(()=>e(c).name)))??"")}),$(d,v)}),o(B);var re=a(B,2);{var ae=d=>{var c=sr(),v=i(c);o(c),se(()=>W(v,`Showing only ${e(x)??""} endpoints`)),$(d,c)};G(re,d=>{e(x)&&d(ae)})}o(z);var H=a(z,2),ie=a(i(H),2),R=i(ie),Y=a(R,2);o(ie);var oe=a(ie,2);{var pe=d=>{var c=lr();$(d,c)};G(oe,d=>{e(x)==="gitea"&&d(pe)})}o(H);var j=a(H,2);{var Ee=d=>{var c=cr(),v=a(i(c),2);L(v),o(c),N(v,()=>e(r).oauth2_token,C=>_(r,e(r).oauth2_token=C)),$(d,c)};G(j,d=>{e(D),u(()=>e(D)===p.PAT)&&d(Ee)})}var me=a(j,2);{var De=d=>{var c=ur(),v=Fe(c),C=a(i(v),2);L(C),o(v);var T=a(v,2),O=a(i(T),2);L(O),o(T);var de=a(T,2),ge=a(i(de),2),_e=i(ge),he=a(_e,2),ke=a(i(he),2),Me=i(ke);X(),o(ke),X(2),o(he),o(ge),o(de),N(C,()=>e(r).app_id,be=>_(r,e(r).app_id=be)),N(O,()=>e(r).installation_id,be=>_(r,e(r).installation_id=be)),f("change",_e,Ye),f("click",Me,()=>document.getElementById("private_key")?.click()),$(d,c)};G(me,d=>{e(D),u(()=>e(D)===p.APP)&&d(De)})}var w=a(me,2),ne=i(w),xe=a(ne,2);o(w),o(A),o(m),o(s),se((d,c,v)=>{Ie(R,1,`flex-1 py-2 px-4 text-sm font-medium rounded-md border focus:outline-none focus:ring-2 focus:ring-blue-500 cursor-pointer - ${e(D),u(()=>e(D)===p.PAT?"bg-blue-600 text-white border-blue-600":"bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300 border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-600")??""} - ${d??""}`),Y.disabled=e(x)==="gitea",Ie(Y,1,`flex-1 py-2 px-4 text-sm font-medium rounded-md border focus:outline-none focus:ring-2 focus:ring-blue-500 - ${e(D),u(()=>e(D)===p.APP?"bg-blue-600 text-white border-blue-600":"bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300 border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-600")??""} - ${e(x)==="gitea"?"opacity-50 cursor-not-allowed":"cursor-pointer"}`),xe.disabled=c,Ie(xe,1,`px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors - ${v??""}`)},[()=>(e(r),u(()=>(e(r).endpoint&&xt(e(r).endpoint),""))),()=>u(()=>!Oe()),()=>u(()=>Oe()?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed")]),f("click",y,P),f("click",h,P),N(I,()=>e(r).name,d=>_(r,e(r).name=d)),N(V,()=>e(r).description,d=>_(r,e(r).description=d)),Yt(B,()=>e(r).endpoint,d=>_(r,e(r).endpoint=d)),f("click",R,()=>Re(p.PAT)),f("click",Y,()=>Re(p.APP)),f("click",ne,P),f("submit",A,rt(yt)),$(t,s)};G(Xe,t=>{e(Pe)&&t($t)})}var Ze=a(Xe,2);{var Et=t=>{var s=vr(),y=i(s),m=a(y,2),l=i(m),h=i(l),A=a(i(h),2),q=i(A);o(A),o(h);var F=a(h,2);o(l);var I=a(l,2),k=i(I),V=a(i(k),2);L(V),o(k);var z=a(k,2),B=a(i(z),2);tt(B),o(z);var S=a(z,2),te=a(i(S),2);L(te),X(2),o(S);var re=a(S,2),ae=a(i(re),2),H=i(ae),ie=i(H,!0);o(H),o(ae),X(2),o(re);var R=a(re,2),Y=i(R),oe=i(Y);L(oe),X(2),o(Y),X(2),o(R);var pe=a(R,2);{var j=w=>{var ne=yr(),xe=Fe(ne);{var d=C=>{var T=gr(),O=a(i(T),2);L(O),o(T),N(O,()=>e(r).oauth2_token,de=>_(r,e(r).oauth2_token=de)),$(C,T)};G(xe,C=>{e(g),u(()=>e(g)["auth-type"]===p.PAT)&&C(d)})}var c=a(xe,2);{var v=C=>{var T=br(),O=Fe(T),de=a(i(O),2);L(de),o(O);var ge=a(O,2),_e=a(i(ge),2);L(_e),o(ge);var he=a(ge,2),ke=a(i(he),2),Me=i(ke),be=a(Me,2),et=a(i(be),2),Ft=i(et);X(),o(et),X(2),o(be),o(ke),o(he),N(de,()=>e(r).app_id,Se=>_(r,e(r).app_id=Se)),N(_e,()=>e(r).installation_id,Se=>_(r,e(r).installation_id=Se)),f("change",Me,Ye),f("click",Ft,()=>document.getElementById("edit_private_key")?.click()),$(C,T)};G(c,C=>{e(g),u(()=>e(g)["auth-type"]===p.APP)&&C(v)})}$(w,ne)};G(pe,w=>{e(ee)&&w(j)})}var Ee=a(pe,2),me=i(Ee),De=a(me,2);o(Ee),o(I),o(m),o(s),se((w,ne)=>{W(q,`Update credentials for ${e(g),u(()=>e(g)?.name||"Unknown")??""}`),Ot(te,(e(r),u(()=>e(r).endpoint))),W(ie,(e(g),u(()=>(e(g)?.["auth-type"]||p.PAT)===p.PAT?"Personal Access Token (PAT)":"GitHub App"))),De.disabled=w,Ie(De,1,`px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors - ${ne??""}`)},[()=>u(()=>!Je()),()=>u(()=>Je()?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed")]),f("click",y,P),f("click",F,P),N(V,()=>e(r).name,w=>_(r,e(r).name=w)),N(B,()=>e(r).description,w=>_(r,e(r).description=w)),Jt(oe,()=>e(ee),w=>n(ee,w)),f("click",me,P),f("submit",I,rt(vt)),$(t,s)};G(Ze,t=>{e(Ae)&&e(g)&&t(Et)})}var Dt=a(Ze,2);{var Mt=t=>{var s=fr(),y=i(s),m=a(y,2),l=i(m),h=i(l),A=a(i(h),2),q=a(i(A),2),F=i(q);o(q),o(A),o(h),o(l);var I=a(l,2),k=i(I),V=a(k,2);o(I),o(m),o(s),se(()=>W(F,`Are you sure you want to delete the credentials "${e(M),u(()=>e(M)?.name||"Unknown")??""}"? This action cannot be undone.`)),f("click",y,P),f("click",k,P),f("click",V,ft),$(t,s)};G(Dt,t=>{e(Te)&&e(M)&&t(Mt)})}$(nt,Qe),zt(),lt()}export{Ur as component}; diff --git a/webapp/assets/_app/immutable/nodes/3.BWxN3TuB.js b/webapp/assets/_app/immutable/nodes/3.BWxN3TuB.js new file mode 100644 index 00000000..f96b2bd9 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/3.BWxN3TuB.js @@ -0,0 +1,7 @@ +import"../chunks/DsnmJJEf.js";import{i as jt}from"../chunks/B3Pzt0F_.js";import{p as Gt,g as e,o as Ut,l as Q,a as qt,f as E,e as f,h as zt,b as Fe,c as $,d as Bt,$ as St,m as y,s as n,i as Lt,j as o,k as a,r as i,u,n as be,q as Le,t as se,v as W,w as rt,x as Nt,y as _,z as X}from"../chunks/D8EpLgQ1.js";import{i as G,s as Kt,a as Vt}from"../chunks/5WA7h8uK.js";import{e as Ht,i as Rt}from"../chunks/u94nIB4-.js";import{h as Yt,r as L,s as je,b as Ot,a as Jt,g as ve}from"../chunks/CiE1LlKV.js";import{b as N,a as Qt}from"../chunks/C6k1Q4We.js";import{p as at}from"../chunks/D4Caz1gY.js";import{P as Wt}from"../chunks/CO4LUyTP.js";import{F as Xt}from"../chunks/CNMHKIIK.js";import{D as Zt,A as ot,G as it,a as er}from"../chunks/BrNfsPe8.js";import{e as tr,a as Ne}from"../chunks/wyaP0EDu.js";import{t as ke}from"../chunks/BEkVdVE1.js";import{f as rr,p as ar,g as Ke,B as nt,c as or}from"../chunks/BGVHQGl-.js";import{e as Ve}from"../chunks/BZiHL9L3.js";import"../chunks/CRhkqW2i.js";import{E as ir}from"../chunks/CGpPw4EW.js";import{S as nr}from"../chunks/MCv1Wq2q.js";var dr=E('

'),sr=E(""),lr=E('

'),cr=E('

Gitea only supports PAT authentication

'),ur=E('
'),pr=E('

or drag and drop

PEM, KEY files only

',1),gr=E(''),yr=E('
'),br=E('

or drag and drop

PEM, KEY files only. Upload new private key.

',1),vr=E(" ",1),fr=E(''),mr=E(''),xr=E('
',1);function zr(dt,st){Gt(st,!1);const[lt,ct]=Kt(),U=()=>Vt(tr,"$eagerCache",lt),Ge=y(),Z=y(),He=y(),Ue=y(),p={PAT:"pat",APP:"app"};let we=y(!0),le=y([]),J=y([]),Ce=y(""),Pe=y(""),K=y(1),ce=y(25),ue=y(1),Ae=y(!1),Te=y(!1),$e=y(!1),D=y(p.PAT),g=y(null),M=y(null),t=y({name:"",description:"",endpoint:"",auth_type:p.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),Ee={...e(t)},ee=y(!1);function ut(r){r.key==="Escape"&&(e(Ae)||e(Te)||e($e))&&P()}Ut(async()=>{try{n(we,!0);const[r,d]=await Promise.all([Ne.getCredentials(),Ne.getEndpoints()]);r&&Array.isArray(r)&&n(le,r),d&&Array.isArray(d)&&n(J,d)}catch(r){console.error("Failed to load credentials:",r),n(Ce,r instanceof Error?r.message:"Failed to load credentials")}finally{n(we,!1)}});async function pt(){try{await Ne.retryResource("credentials")}catch(r){console.error("Retry failed:",r)}}async function gt(){Re(),n(Ae,!0),n(x,"github")}let x=y("");function yt(r){n(x,r.detail),_(t,e(t).auth_type=p.PAT),n(D,p.PAT)}async function qe(r){n(g,r),n(t,{name:r.name||"",description:r.description||"",endpoint:r.endpoint?.name||"",auth_type:r["auth-type"]||p.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),n(D,r["auth-type"]||p.PAT),Ee={...e(t)},n(ee,!1),n(Te,!0)}function ze(r){n(M,r),n($e,!0)}function Re(){n(t,{name:"",description:"",endpoint:"",auth_type:p.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),Ee={...e(t)},n(D,p.PAT),n(ee,!1)}function P(){n(Ae,!1),n(Te,!1),n($e,!1),n(g,null),n(M,null),n(x,""),Re()}function Ye(r){n(D,r),_(t,e(t).auth_type=r)}function bt(){const r={};if(e(t).name!==Ee.name&&e(t).name.trim()!==""&&(r.name=e(t).name.trim()),e(t).description!==Ee.description&&e(t).description.trim()!==""&&(r.description=e(t).description.trim()),e(ee)&&e(g))if(e(g)["auth-type"]===p.PAT)e(t).oauth2_token.trim()!==""&&(r.pat={oauth2_token:e(t).oauth2_token.trim()});else{const d={};let b=!1;if(e(t).app_id.trim()!==""&&(d.app_id=parseInt(e(t).app_id.trim()),b=!0),e(t).installation_id.trim()!==""&&(d.installation_id=parseInt(e(t).installation_id.trim()),b=!0),e(t).private_key_bytes!=="")try{const m=atob(e(t).private_key_bytes);d.private_key_bytes=Array.from(m,l=>l.charCodeAt(0)),b=!0}catch{}b&&(r.app=d)}return r}async function vt(){try{if(e(x)==="github")await ve.createGithubCredentials(e(t));else if(e(x)==="gitea")await ve.createGiteaCredentials(e(t));else throw new Error("Please select a forge type");ke.success("Credentials Created",`Credentials ${e(t).name} have been created successfully.`),P()}catch(r){n(Ce,Ve(r))}}async function ft(){if(!(!e(g)||!e(g).id))try{const r=bt();if(Object.keys(r).length===0){ke.info("No Changes","No fields were modified."),P();return}e(g).forge_type==="github"?await ve.updateGithubCredentials(e(g).id,r):await ve.updateGiteaCredentials(e(g).id,r),ke.success("Credentials Updated",`Credentials ${e(g)?.name||"Unknown"} have been updated successfully.`),P()}catch(r){n(Ce,Ve(r))}}async function mt(){if(!(!e(M)||!e(M).id))try{e(M).forge_type==="github"?await ve.deleteGithubCredentials(e(M).id):await ve.deleteGiteaCredentials(e(M).id),ke.success("Credentials Deleted",`Credentials ${e(M)?.name||"Unknown"} have been deleted successfully.`)}catch(r){const d=Ve(r);ke.error("Delete Failed",d)}finally{P()}}function Oe(r){const b=r.target.files?.[0];if(!b){_(t,e(t).private_key_bytes="");return}const m=new FileReader;m.onload=l=>{const h=l.target?.result;_(t,e(t).private_key_bytes=btoa(h))},m.readAsText(b)}function Je(){return!e(t).name||!e(t).description||!e(t).endpoint?!1:e(t).auth_type===p.PAT?!!e(t).oauth2_token:!!e(t).app_id&&!!e(t).installation_id&&!!e(t).private_key_bytes}function Qe(){return!e(t).name.trim()||!e(t).description.trim()?!1:e(ee)&&e(g)?e(g)["auth-type"]===p.PAT?!!e(t).oauth2_token.trim():!!e(t).app_id.trim()&&!!e(t).installation_id.trim()&&!!e(t).private_key_bytes:!0}function xt(r){return e(J).find(b=>b.name===r)?.endpoint_type||""}function _t(r){return xt(r)==="gitea"}const ht=[{key:"name",title:"Name",cellComponent:it,cellProps:{field:"name"}},{key:"description",title:"Description",cellComponent:it,cellProps:{field:"description",type:"description"}},{key:"endpoint",title:"Endpoint",cellComponent:ir},{key:"auth_type",title:"Auth Type",cellComponent:nr,cellProps:{statusType:"custom",statusField:"auth-type"}},{key:"actions",title:"Actions",align:"right",cellComponent:er}],kt={entityType:"credential",primaryText:{field:"name",isClickable:!1},secondaryText:{field:"description"},customInfo:[{icon:r=>Ke(r?.forge_type||"unknown"),text:r=>r?.endpoint?.name||"Unknown"}],badges:[{type:"auth",field:"auth-type"}],actions:[{type:"edit",handler:r=>qe(r)},{type:"delete",handler:r=>ze(r)}]};function wt(r){n(Pe,r.detail.term),n(K,1)}function Ct(r){n(K,r.detail.page)}function Pt(r){const d=or(r.detail.perPage);n(ce,d.newPerPage),n(K,d.newCurrentPage)}function At(r){qe(r.detail.item)}function Tt(r){ze(r.detail.item)}Q(()=>(e(le),U()),()=>{(!e(le).length||U().loaded.credentials)&&n(le,U().credentials)}),Q(()=>U(),()=>{n(we,U().loading.credentials)}),Q(()=>U(),()=>{n(Ge,U().errorMessages.credentials)}),Q(()=>(e(J),U()),()=>{(!e(J).length||U().loaded.endpoints)&&n(J,U().endpoints)}),Q(()=>(e(le),e(Pe)),()=>{n(Z,rr(e(le),e(Pe)))}),Q(()=>(e(ue),e(Z),e(ce),e(K)),()=>{n(ue,Math.ceil(e(Z).length/e(ce))),e(K)>e(ue)&&e(ue)>0&&n(K,e(ue))}),Q(()=>(e(Z),e(K),e(ce)),()=>{n(He,ar(e(Z),e(K),e(ce)))}),Q(()=>(e(x),e(J)),()=>{n(Ue,e(x)?e(J).filter(r=>r.endpoint_type===e(x)):e(J))}),qt(),jt();var We=xr();f("keydown",Lt,ut),zt(r=>{St.title="Credentials - GARM"});var Be=Fe(We),Xe=o(Be);Wt(Xe,{title:"Credentials",description:"Manage authentication credentials for your GitHub and Gitea endpoints.",actionLabel:"Add Credentials",$$events:{action:gt}});var $t=a(Xe,2);{let r=Le(()=>e(Ge)||e(Ce)),d=Le(()=>!!e(Ge));Zt($t,{get columns(){return ht},get data(){return e(He)},get loading(){return e(we)},get error(){return e(r)},get searchTerm(){return e(Pe)},searchPlaceholder:"Search credentials by name, description, or endpoint...",get currentPage(){return e(K)},get perPage(){return e(ce)},get totalPages(){return e(ue)},get totalItems(){return e(Z),u(()=>e(Z).length)},itemName:"credentials",emptyIconType:"key",get showRetry(){return e(d)},get mobileCardConfig(){return kt},$$events:{search:wt,pageChange:Ct,perPageChange:Pt,retry:pt,edit:At,delete:Tt},$$slots:{"mobile-card":(b,m)=>{const l=Le(()=>m.item);var h=dr(),A=o(h),q=o(A),I=o(q),F=o(I,!0);i(I);var k=a(I,2),V=o(k,!0);i(k);var z=a(k,2),B=o(z),S=o(B);Yt(S,()=>(be(Ke),be(e(l)),u(()=>Ke(e(l).forge_type||"unknown"))));var te=a(S,2),re=o(te,!0);i(te),i(B),i(z),i(q),i(A);var ae=a(A,2),H=o(ae);{var oe=j=>{nt(j,{variant:"success",text:"PAT"})},R=j=>{nt(j,{variant:"info",text:"App"})};G(H,j=>{be(e(l)),u(()=>(e(l)["auth-type"]||"pat")==="pat")?j(oe):j(R,!1)})}var Y=a(H,2),ie=o(Y);ot(ie,{action:"edit",size:"sm",title:"Edit credentials",ariaLabel:"Edit credentials",$$events:{click:()=>qe(e(l))}});var pe=a(ie,2);ot(pe,{action:"delete",size:"sm",title:"Delete credentials",ariaLabel:"Delete credentials",$$events:{click:()=>ze(e(l))}}),i(Y),i(ae),i(h),se(()=>{W(F,(be(e(l)),u(()=>e(l).name))),W(V,(be(e(l)),u(()=>e(l).description))),W(re,(be(e(l)),u(()=>e(l).endpoint?.name||"Unknown")))}),$(b,h)}}})}i(Be);var Ze=a(Be,2);{var Et=r=>{var d=gr(),b=o(d),m=a(b,2),l=o(m),h=a(o(l),2);i(l);var A=a(l,2),q=o(A);Xt(q,{get selectedForgeType(){return e(x)},set selectedForgeType(s){n(x,s)},$$events:{select:yt},$$legacy:!0});var I=a(q,2),F=a(o(I),2);L(F),i(I);var k=a(I,2),V=a(o(k),2);rt(V),i(k);var z=a(k,2),B=a(o(z),2);se(()=>{e(t),Nt(()=>{e(Ue)})});var S=o(B);S.value=S.__value="";var te=a(S);Ht(te,1,()=>e(Ue),Rt,(s,c)=>{var v=sr(),C=o(v);i(v);var T={};se(()=>{W(C,`${e(c),u(()=>e(c).name)??""} (${e(c),u(()=>e(c).endpoint_type)??""})`),T!==(T=(e(c),u(()=>e(c).name)))&&(v.value=(v.__value=(e(c),u(()=>e(c).name)))??"")}),$(s,v)}),i(B);var re=a(B,2);{var ae=s=>{var c=lr(),v=o(c);i(c),se(()=>W(v,`Showing only ${e(x)??""} endpoints`)),$(s,c)};G(re,s=>{e(x)&&s(ae)})}i(z);var H=a(z,2),oe=a(o(H),2),R=o(oe),Y=a(R,2);i(oe);var ie=a(oe,2);{var pe=s=>{var c=cr();$(s,c)};G(ie,s=>{e(x)==="gitea"&&s(pe)})}i(H);var j=a(H,2);{var De=s=>{var c=ur(),v=a(o(c),2);L(v),i(c),N(v,()=>e(t).oauth2_token,C=>_(t,e(t).oauth2_token=C)),$(s,c)};G(j,s=>{e(D),u(()=>e(D)===p.PAT)&&s(De)})}var fe=a(j,2);{var Me=s=>{var c=pr(),v=Fe(c),C=a(o(v),2);L(C),i(v);var T=a(v,2),O=a(o(T),2);L(O),i(T);var de=a(T,2),ge=a(o(de),2),xe=o(ge),_e=a(xe,2),he=a(o(_e),2),Ie=o(he);X(),i(he),X(2),i(_e),i(ge),i(de),N(C,()=>e(t).app_id,ye=>_(t,e(t).app_id=ye)),N(O,()=>e(t).installation_id,ye=>_(t,e(t).installation_id=ye)),f("change",xe,Oe),f("click",Ie,()=>document.getElementById("private_key")?.click()),$(s,c)};G(fe,s=>{e(D),u(()=>e(D)===p.APP)&&s(Me)})}var w=a(fe,2),ne=o(w),me=a(ne,2);i(w),i(A),i(m),i(d),se((s,c,v)=>{je(R,1,`flex-1 py-2 px-4 text-sm font-medium rounded-md border focus:outline-none focus:ring-2 focus:ring-blue-500 cursor-pointer + ${e(D),u(()=>e(D)===p.PAT?"bg-blue-600 text-white border-blue-600":"bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300 border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-600")??""} + ${s??""}`),Y.disabled=e(x)==="gitea",je(Y,1,`flex-1 py-2 px-4 text-sm font-medium rounded-md border focus:outline-none focus:ring-2 focus:ring-blue-500 + ${e(D),u(()=>e(D)===p.APP?"bg-blue-600 text-white border-blue-600":"bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300 border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-600")??""} + ${e(x)==="gitea"?"opacity-50 cursor-not-allowed":"cursor-pointer"}`),me.disabled=c,je(me,1,`px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors + ${v??""}`)},[()=>(e(t),u(()=>(e(t).endpoint&&_t(e(t).endpoint),""))),()=>u(()=>!Je()),()=>u(()=>Je()?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed")]),f("click",b,P),f("click",h,P),N(F,()=>e(t).name,s=>_(t,e(t).name=s)),N(V,()=>e(t).description,s=>_(t,e(t).description=s)),Ot(B,()=>e(t).endpoint,s=>_(t,e(t).endpoint=s)),f("click",R,()=>Ye(p.PAT)),f("click",Y,()=>Ye(p.APP)),f("click",ne,P),f("submit",A,at(vt)),$(r,d)};G(Ze,r=>{e(Ae)&&r(Et)})}var et=a(Ze,2);{var Dt=r=>{var d=fr(),b=o(d),m=a(b,2),l=o(m),h=o(l),A=a(o(h),2),q=o(A);i(A),i(h);var I=a(h,2);i(l);var F=a(l,2),k=o(F),V=a(o(k),2);L(V),i(k);var z=a(k,2),B=a(o(z),2);rt(B),i(z);var S=a(z,2),te=a(o(S),2);L(te),X(2),i(S);var re=a(S,2),ae=a(o(re),2),H=o(ae),oe=o(H,!0);i(H),i(ae),X(2),i(re);var R=a(re,2),Y=o(R),ie=o(Y);L(ie),X(2),i(Y),X(2),i(R);var pe=a(R,2);{var j=w=>{var ne=vr(),me=Fe(ne);{var s=C=>{var T=yr(),O=a(o(T),2);L(O),i(T),N(O,()=>e(t).oauth2_token,de=>_(t,e(t).oauth2_token=de)),$(C,T)};G(me,C=>{e(g),u(()=>e(g)["auth-type"]===p.PAT)&&C(s)})}var c=a(me,2);{var v=C=>{var T=br(),O=Fe(T),de=a(o(O),2);L(de),i(O);var ge=a(O,2),xe=a(o(ge),2);L(xe),i(ge);var _e=a(ge,2),he=a(o(_e),2),Ie=o(he),ye=a(Ie,2),tt=a(o(ye),2),Ft=o(tt);X(),i(tt),X(2),i(ye),i(he),i(_e),N(de,()=>e(t).app_id,Se=>_(t,e(t).app_id=Se)),N(xe,()=>e(t).installation_id,Se=>_(t,e(t).installation_id=Se)),f("change",Ie,Oe),f("click",Ft,()=>document.getElementById("edit_private_key")?.click()),$(C,T)};G(c,C=>{e(g),u(()=>e(g)["auth-type"]===p.APP)&&C(v)})}$(w,ne)};G(pe,w=>{e(ee)&&w(j)})}var De=a(pe,2),fe=o(De),Me=a(fe,2);i(De),i(F),i(m),i(d),se((w,ne)=>{W(q,`Update credentials for ${e(g),u(()=>e(g)?.name||"Unknown")??""}`),Jt(te,(e(t),u(()=>e(t).endpoint))),W(oe,(e(g),u(()=>(e(g)?.["auth-type"]||p.PAT)===p.PAT?"Personal Access Token (PAT)":"GitHub App"))),Me.disabled=w,je(Me,1,`px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors + ${ne??""}`)},[()=>u(()=>!Qe()),()=>u(()=>Qe()?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed")]),f("click",b,P),f("click",I,P),N(V,()=>e(t).name,w=>_(t,e(t).name=w)),N(B,()=>e(t).description,w=>_(t,e(t).description=w)),Qt(ie,()=>e(ee),w=>n(ee,w)),f("click",fe,P),f("submit",F,at(ft)),$(r,d)};G(et,r=>{e(Te)&&e(g)&&r(Dt)})}var Mt=a(et,2);{var It=r=>{var d=mr(),b=o(d),m=a(b,2),l=o(m),h=o(l),A=a(o(h),2),q=a(o(A),2),I=o(q);i(q),i(A),i(h),i(l);var F=a(l,2),k=o(F),V=a(k,2);i(F),i(m),i(d),se(()=>W(I,`Are you sure you want to delete the credentials "${e(M),u(()=>e(M)?.name||"Unknown")??""}"? This action cannot be undone.`)),f("click",b,P),f("click",k,P),f("click",V,mt),$(r,d)};G(Mt,r=>{e($e)&&e(M)&&r(It)})}$(dt,We),Bt(),ct()}export{zr as component}; diff --git a/webapp/assets/_app/immutable/nodes/4.D1IF4qSs.js b/webapp/assets/_app/immutable/nodes/4.D1IF4qSs.js new file mode 100644 index 00000000..ce0d8aa9 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/4.D1IF4qSs.js @@ -0,0 +1,3 @@ +import"../chunks/DsnmJJEf.js";import{i as bt}from"../chunks/B3Pzt0F_.js";import{p as gt,g as e,o as ft,l as Z,a as _t,f as j,e as b,h as mt,b as Ce,c as I,d as yt,m as p,i as vt,$ as xt,j as o,q as Ee,k as a,t as ye,u as C,s,r as i,n as ie,v as se,w as Ie,z as V,y as g}from"../chunks/D8EpLgQ1.js";import{i as ne,s as ht,a as kt}from"../chunks/5WA7h8uK.js";import{h as wt,r as U,c as je,s as Ge,g as ee}from"../chunks/CiE1LlKV.js";import{b as E}from"../chunks/C6k1Q4We.js";import{p as ze}from"../chunks/D4Caz1gY.js";import{P as Ct}from"../chunks/CO4LUyTP.js";import{F as Et}from"../chunks/CNMHKIIK.js";import{D as Pt,A as qe,G as Pe,a as $t}from"../chunks/BrNfsPe8.js";import{e as At,a as He}from"../chunks/wyaP0EDu.js";import{t as de}from"../chunks/BEkVdVE1.js";import{g as $e,c as Rt,a as Bt,p as Ut}from"../chunks/BGVHQGl-.js";import{e as Ae}from"../chunks/BZiHL9L3.js";import"../chunks/CRhkqW2i.js";import{E as Lt}from"../chunks/CGpPw4EW.js";var Mt=j('

'),Tt=j('
',1),Dt=j('

If empty, Base URL will be used as API Base URL

'),Ft=j(''),It=j('
',1),jt=j('

If empty, Base URL will be used as API Base URL

'),Gt=j(''),zt=j(''),qt=j('
',1);function or(Ne,Se){gt(Se,!1);const[Ve,Oe]=ht(),q=()=>kt(At,"$eagerCache",Ve),ve=p(),H=p(),Re=p();let le=p(!0),O=p([]),ue=p(""),ce=p(""),L=p(1),K=p(25),J=p(1),pe=p(!1),be=p(!1),ge=p(!1),G=p("github"),m=p(null),A=p(null),r=p({name:"",description:"",endpoint_type:"",base_url:"",api_base_url:"",upload_base_url:"",ca_cert_bundle:""}),k={...e(r)};ft(async()=>{try{s(le,!0);const t=await He.getEndpoints();t&&Array.isArray(t)&&s(O,t)}catch(t){console.error("Failed to load endpoints:",t),s(ue,t instanceof Error?t.message:"Failed to load endpoints")}finally{s(le,!1)}});async function Ke(){try{await He.retryResource("endpoints")}catch(t){console.error("Retry failed:",t)}}const Je=[{key:"name",title:"Name",cellComponent:Pe,cellProps:{field:"name"}},{key:"description",title:"Description",cellComponent:Pe,cellProps:{field:"description"}},{key:"api_url",title:"API URL",cellComponent:Pe,cellProps:{field:"api_base_url",fallbackField:"base_url"}},{key:"forge_type",title:"Forge Type",cellComponent:Lt},{key:"actions",title:"Actions",align:"right",cellComponent:$t}],Qe={entityType:"endpoint",primaryText:{field:"name",isClickable:!1},secondaryText:{field:"description"},customInfo:[{icon:t=>$e(t?.endpoint_type||"unknown"),text:t=>t?.api_base_url||"Unknown"}],actions:[{type:"edit",handler:t=>xe(t)},{type:"delete",handler:t=>he(t)}]};function We(t){s(ce,t.detail.term),s(L,1)}function Xe(t){s(L,t.detail.page)}function Ye(t){const n=Rt(t.detail.perPage);s(K,n.newPerPage),s(L,n.newCurrentPage)}function Ze(t){xe(t.detail.item)}function et(t){he(t.detail.item)}function tt(){s(G,"github"),Be(),s(pe,!0)}function rt(t){s(G,t.detail),g(r,e(r).endpoint_type=t.detail)}function xe(t){s(m,t),s(r,{name:t.name||"",description:t.description||"",endpoint_type:t.endpoint_type||"",base_url:t.base_url||"",api_base_url:t.api_base_url||"",upload_base_url:t.upload_base_url||"",ca_cert_bundle:typeof t.ca_cert_bundle=="string"?t.ca_cert_bundle:""}),k={...e(r)},s(be,!0)}function he(t){s(A,t),s(ge,!0)}function Be(){s(r,{name:"",description:"",endpoint_type:"",base_url:"",api_base_url:"",upload_base_url:"",ca_cert_bundle:""}),k={...e(r)}}function at(t){t.key==="Escape"&&(e(pe)||e(be)||e(ge))&&y()}function y(){s(pe,!1),s(be,!1),s(ge,!1),s(G,"github"),s(m,null),s(A,null),Be()}function ot(){const t={};if(e(r).description!==k.description&&(e(r).description.trim()!==""||k.description!=="")&&(t.description=e(r).description.trim()),e(r).base_url!==k.base_url&&e(r).base_url.trim()!==""&&(t.base_url=e(r).base_url.trim()),e(r).api_base_url!==k.api_base_url&&(e(r).api_base_url.trim()!==""||k.api_base_url!=="")&&(t.api_base_url=e(r).api_base_url.trim()),e(m)?.endpoint_type==="github"&&e(r).upload_base_url!==k.upload_base_url&&(e(r).upload_base_url.trim()!==""||k.upload_base_url!=="")&&(t.upload_base_url=e(r).upload_base_url.trim()),e(r).ca_cert_bundle!==k.ca_cert_bundle)if(e(r).ca_cert_bundle!=="")try{const n=atob(e(r).ca_cert_bundle);t.ca_cert_bundle=Array.from(n,c=>c.charCodeAt(0))}catch{k.ca_cert_bundle!==""&&(t.ca_cert_bundle=[])}else k.ca_cert_bundle!==""&&(t.ca_cert_bundle=[]);return t}async function it(){try{const t={name:e(r).name,description:e(r).description,endpoint_type:e(r).endpoint_type,base_url:e(r).base_url,api_base_url:e(r).api_base_url,upload_base_url:e(r).upload_base_url};if(e(r).ca_cert_bundle&&e(r).ca_cert_bundle.trim()!=="")try{const n=atob(e(r).ca_cert_bundle);t.ca_cert_bundle=Array.from(n,c=>c.charCodeAt(0))}catch{}e(r).endpoint_type==="github"?await ee.createGithubEndpoint(t):await ee.createGiteaEndpoint(t),de.success("Endpoint Created",`Endpoint ${e(r).name} has been created successfully.`),y()}catch(t){s(ue,Ae(t))}}async function st(){if(e(m))try{const t=ot();if(Object.keys(t).length===0){de.info("No Changes","No fields were modified."),y();return}e(m).endpoint_type==="github"?await ee.updateGithubEndpoint(e(m).name,t):await ee.updateGiteaEndpoint(e(m).name,t),de.success("Endpoint Updated",`Endpoint ${e(m).name} has been updated successfully.`),y()}catch(t){s(ue,Ae(t))}}async function nt(){if(e(A)){try{e(A).endpoint_type==="github"?await ee.deleteGithubEndpoint(e(A).name):await ee.deleteGiteaEndpoint(e(A).name),de.success("Endpoint Deleted",`Endpoint ${e(A).name} has been deleted successfully.`)}catch(t){const n=Ae(t);de.error("Delete Failed",n)}y()}}function Ue(t){const c=t.target.files?.[0];if(!c){g(r,e(r).ca_cert_bundle="");return}const v=new FileReader;v.onload=d=>{const f=d.target?.result;g(r,e(r).ca_cert_bundle=btoa(f))},v.readAsText(c)}function fe(){return!(!e(r).name||!e(r).description||!e(r).base_url||e(r).endpoint_type==="github"&&!e(r).api_base_url)}Z(()=>(e(O),q()),()=>{(!e(O).length||q().loaded.endpoints)&&s(O,q().endpoints)}),Z(()=>q(),()=>{s(le,q().loading.endpoints)}),Z(()=>q(),()=>{s(ve,q().errorMessages.endpoints)}),Z(()=>(e(O),e(ce)),()=>{s(H,Bt(e(O),e(ce)))}),Z(()=>(e(J),e(H),e(K),e(L)),()=>{s(J,Math.ceil(e(H).length/e(K))),e(L)>e(J)&&e(J)>0&&s(L,e(J))}),Z(()=>(e(H),e(L),e(K)),()=>{s(Re,Ut(e(H),e(L),e(K)))}),_t(),bt();var Le=qt();b("keydown",vt,at),mt(t=>{xt.title="Endpoints - GARM"});var ke=Ce(Le),Me=o(ke);Ct(Me,{title:"Endpoints",description:"Manage your GitHub and Gitea endpoints for runner management.",actionLabel:"Add Endpoint",$$events:{action:tt}});var dt=a(Me,2);{let t=Ee(()=>e(ve)||e(ue)),n=Ee(()=>!!e(ve));Pt(dt,{get columns(){return Je},get data(){return e(Re)},get loading(){return e(le)},get error(){return e(t)},get searchTerm(){return e(ce)},searchPlaceholder:"Search endpoints by name, description, or URL...",get currentPage(){return e(L)},get perPage(){return e(K)},get totalPages(){return e(J)},get totalItems(){return e(H),C(()=>e(H).length)},itemName:"endpoints",emptyIconType:"settings",get showRetry(){return e(n)},get mobileCardConfig(){return Qe},$$events:{search:We,pageChange:Xe,perPageChange:Ye,retry:Ke,edit:Ze,delete:et},$$slots:{"mobile-card":(c,v)=>{const d=Ee(()=>v.item);var f=Mt(),x=o(f),R=o(x),P=o(R),w=o(P,!0);i(P);var _=a(P,2),M=o(_,!0);i(_);var B=a(_,2),T=o(B);wt(T,()=>(ie($e),ie(e(d)),C(()=>$e(e(d).endpoint_type||"","w-5 h-5"))));var D=a(T,2),Q=o(D,!0);i(D),i(B),i(R),i(x);var N=a(x,2),z=o(N);qe(z,{action:"edit",size:"sm",title:"Edit endpoint",ariaLabel:"Edit endpoint",$$events:{click:()=>xe(e(d))}});var W=a(z,2);qe(W,{action:"delete",size:"sm",title:"Delete endpoint",ariaLabel:"Delete endpoint",$$events:{click:()=>he(e(d))}}),i(N),i(f),ye(()=>{se(w,(ie(e(d)),C(()=>e(d).name))),se(M,(ie(e(d)),C(()=>e(d).description))),se(Q,(ie(e(d)),C(()=>e(d).endpoint_type)))}),I(c,f)}}})}i(ke);var Te=a(ke,2);{var lt=t=>{var n=Ft(),c=o(n),v=a(c,2),d=o(v),f=a(o(d),2);i(d);var x=a(d,2),R=o(x);Et(R,{get selectedForgeType(){return e(G)},set selectedForgeType(u){s(G,u)},$$events:{select:rt},$$legacy:!0});var P=a(R,2),w=a(o(P),2);U(w),i(P);var _=a(P,2),M=a(o(_),2);Ie(M),i(_);var B=a(_,2),T=a(o(B),2);U(T),i(B);var D=a(B,2);{var Q=u=>{var $=Tt(),l=Ce($),h=a(o(l),2);U(h),i(l);var F=a(l,2),S=a(o(F),2);U(S),i(F),E(h,()=>e(r).api_base_url,Y=>g(r,e(r).api_base_url=Y)),E(S,()=>e(r).upload_base_url,Y=>g(r,e(r).upload_base_url=Y)),I(u,$)},N=u=>{var $=Dt(),l=a(o($),2);U(l),V(2),i($),E(l,()=>e(r).api_base_url,h=>g(r,e(r).api_base_url=h)),I(u,$)};ne(D,u=>{e(G)==="github"?u(Q):u(N,!1)})}var z=a(D,2),W=a(o(z),2),X=o(W),te=a(X,2),re=a(o(te),2),_e=o(re);V(),i(re),V(2),i(te),i(W),i(z);var ae=a(z,2),me=o(ae),oe=a(me,2);i(ae),i(x),i(v),i(n),ye((u,$)=>{je(w,"placeholder",e(G)==="github"?"e.g., github-enterprise or github-com":"e.g., gitea-main or my-gitea"),je(T,"placeholder",e(G)==="github"?"https://github.com or https://github.example.com":"https://gitea.example.com"),oe.disabled=u,Ge(oe,1,`px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors + ${$??""}`)},[()=>C(()=>!fe()),()=>C(()=>fe()?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed")]),b("click",c,y),b("click",f,y),E(w,()=>e(r).name,u=>g(r,e(r).name=u)),E(M,()=>e(r).description,u=>g(r,e(r).description=u)),E(T,()=>e(r).base_url,u=>g(r,e(r).base_url=u)),b("change",X,Ue),b("click",_e,()=>document.getElementById("ca_cert_file")?.click()),b("click",me,y),b("submit",x,ze(it)),I(t,n)};ne(Te,t=>{e(pe)&&t(lt)})}var De=a(Te,2);{var ut=t=>{var n=Gt(),c=o(n),v=a(c,2),d=o(v),f=o(d),x=o(f),R=o(x);i(x),V(2),i(f);var P=a(f,2);i(d);var w=a(d,2),_=o(w),M=a(o(_),2);U(M),i(_);var B=a(_,2),T=a(o(B),2);Ie(T),i(B);var D=a(B,2),Q=a(o(D),2);U(Q),i(D);var N=a(D,2);{var z=l=>{var h=It(),F=Ce(h),S=a(o(F),2);U(S),i(F);var Y=a(F,2),Fe=a(o(Y),2);U(Fe),i(Y),E(S,()=>e(r).api_base_url,we=>g(r,e(r).api_base_url=we)),E(Fe,()=>e(r).upload_base_url,we=>g(r,e(r).upload_base_url=we)),I(l,h)},W=l=>{var h=jt(),F=a(o(h),2);U(F),V(2),i(h),E(F,()=>e(r).api_base_url,S=>g(r,e(r).api_base_url=S)),I(l,h)};ne(N,l=>{e(m),C(()=>e(m).endpoint_type==="github")?l(z):l(W,!1)})}var X=a(N,2),te=a(o(X),2),re=o(te),_e=a(re,2),ae=a(o(_e),2),me=o(ae);V(),i(ae),V(2),i(_e),i(te),i(X);var oe=a(X,2),u=o(oe),$=a(u,2);i(oe),i(w),i(v),i(n),ye((l,h)=>{se(R,`Edit ${e(m),C(()=>e(m).endpoint_type==="github"?"GitHub":"Gitea")??""} Endpoint`),$.disabled=l,Ge($,1,`px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors + ${h??""}`)},[()=>C(()=>!fe()),()=>C(()=>fe()?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed")]),b("click",c,y),b("click",P,y),E(M,()=>e(r).name,l=>g(r,e(r).name=l)),E(T,()=>e(r).description,l=>g(r,e(r).description=l)),E(Q,()=>e(r).base_url,l=>g(r,e(r).base_url=l)),b("change",re,Ue),b("click",me,()=>document.getElementById("edit_ca_cert_file")?.click()),b("click",u,y),b("submit",w,ze(st)),I(t,n)};ne(De,t=>{e(be)&&e(m)&&t(ut)})}var ct=a(De,2);{var pt=t=>{var n=zt(),c=o(n),v=a(c,2),d=o(v),f=o(d),x=a(o(f),2),R=a(o(x),2),P=o(R);i(R),i(x),i(f),i(d);var w=a(d,2),_=o(w),M=a(_,2);i(w),i(v),i(n),ye(()=>se(P,`Are you sure you want to delete the endpoint "${e(A),C(()=>e(A).name)??""}"? This action cannot be undone.`)),b("click",c,y),b("click",_,y),b("click",M,nt),I(t,n)};ne(ct,t=>{e(ge)&&e(A)&&t(pt)})}I(Ne,Le),yt(),Oe()}export{or as component}; diff --git a/webapp/assets/_app/immutable/nodes/4.XnVoh6ca.js b/webapp/assets/_app/immutable/nodes/4.XnVoh6ca.js deleted file mode 100644 index 36e9bd97..00000000 --- a/webapp/assets/_app/immutable/nodes/4.XnVoh6ca.js +++ /dev/null @@ -1,3 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as pt}from"../chunks/B3Pzt0F_.js";import{p as bt,g as e,o as gt,l as Z,a as ft,f as I,e as b,h as _t,b as Ee,c as j,d as mt,m as p,i as yt,$ as vt,j as o,q as Ce,k as a,t as me,u as E,s,r as i,n as se,v as ne,w as De,z as V,y as g}from"../chunks/D8EpLgQ1.js";import{i as de,s as xt,a as ht}from"../chunks/5WA7h8uK.js";import{h as kt,r as U,c as je,s as Ie,g as ee}from"../chunks/CiE1LlKV.js";import{b as C}from"../chunks/C6k1Q4We.js";import{p as Ge}from"../chunks/D4Caz1gY.js";import{P as wt}from"../chunks/CO4LUyTP.js";import{F as Et}from"../chunks/CNMHKIIK.js";import{D as Ct,A as ze,G as Pe,a as Pt}from"../chunks/C9DJVOi1.js";import{e as $t,a as qe}from"../chunks/wyaP0EDu.js";import{t as ye}from"../chunks/BEkVdVE1.js";import{g as $e,c as Rt,a as At,p as Bt}from"../chunks/BGVHQGl-.js";import"../chunks/CoIRRsD9.js";import{E as Ut}from"../chunks/CGpPw4EW.js";var Lt=I('

'),Mt=I('
',1),Tt=I('

If empty, Base URL will be used as API Base URL

'),Ft=I(''),Dt=I('
',1),jt=I('

If empty, Base URL will be used as API Base URL

'),It=I(''),Gt=I(''),zt=I('
',1);function rr(He,Ne){bt(Ne,!1);const[Se,Ve]=xt(),q=()=>ht($t,"$eagerCache",Se),ve=p(),H=p(),Re=p();let le=p(!0),O=p([]),te=p(""),ue=p(""),L=p(1),K=p(25),J=p(1),ce=p(!1),pe=p(!1),be=p(!1),G=p("github"),m=p(null),R=p(null),r=p({name:"",description:"",endpoint_type:"",base_url:"",api_base_url:"",upload_base_url:"",ca_cert_bundle:""}),k={...e(r)};gt(async()=>{try{s(le,!0);const t=await qe.getEndpoints();t&&Array.isArray(t)&&s(O,t)}catch(t){console.error("Failed to load endpoints:",t),s(te,t instanceof Error?t.message:"Failed to load endpoints")}finally{s(le,!1)}});async function Oe(){try{await qe.retryResource("endpoints")}catch(t){console.error("Retry failed:",t)}}const Ke=[{key:"name",title:"Name",cellComponent:Pe,cellProps:{field:"name"}},{key:"description",title:"Description",cellComponent:Pe,cellProps:{field:"description"}},{key:"api_url",title:"API URL",cellComponent:Pe,cellProps:{field:"api_base_url",fallbackField:"base_url"}},{key:"forge_type",title:"Forge Type",cellComponent:Ut},{key:"actions",title:"Actions",align:"right",cellComponent:Pt}],Je={entityType:"endpoint",primaryText:{field:"name",isClickable:!1},secondaryText:{field:"description"},customInfo:[{icon:t=>$e(t?.endpoint_type||"unknown"),text:t=>t?.api_base_url||"Unknown"}],actions:[{type:"edit",handler:t=>xe(t)},{type:"delete",handler:t=>he(t)}]};function Qe(t){s(ue,t.detail.term),s(L,1)}function We(t){s(L,t.detail.page)}function Xe(t){const d=Rt(t.detail.perPage);s(K,d.newPerPage),s(L,d.newCurrentPage)}function Ye(t){xe(t.detail.item)}function Ze(t){he(t.detail.item)}function et(){s(G,"github"),Ae(),s(ce,!0)}function tt(t){s(G,t.detail),g(r,e(r).endpoint_type=t.detail)}function xe(t){s(m,t),s(r,{name:t.name||"",description:t.description||"",endpoint_type:t.endpoint_type||"",base_url:t.base_url||"",api_base_url:t.api_base_url||"",upload_base_url:t.upload_base_url||"",ca_cert_bundle:typeof t.ca_cert_bundle=="string"?t.ca_cert_bundle:""}),k={...e(r)},s(pe,!0)}function he(t){s(R,t),s(be,!0)}function Ae(){s(r,{name:"",description:"",endpoint_type:"",base_url:"",api_base_url:"",upload_base_url:"",ca_cert_bundle:""}),k={...e(r)}}function rt(t){t.key==="Escape"&&(e(ce)||e(pe)||e(be))&&y()}function y(){s(ce,!1),s(pe,!1),s(be,!1),s(G,"github"),s(m,null),s(R,null),Ae()}function at(){const t={};if(e(r).description!==k.description&&(e(r).description.trim()!==""||k.description!=="")&&(t.description=e(r).description.trim()),e(r).base_url!==k.base_url&&e(r).base_url.trim()!==""&&(t.base_url=e(r).base_url.trim()),e(r).api_base_url!==k.api_base_url&&(e(r).api_base_url.trim()!==""||k.api_base_url!=="")&&(t.api_base_url=e(r).api_base_url.trim()),e(m)?.endpoint_type==="github"&&e(r).upload_base_url!==k.upload_base_url&&(e(r).upload_base_url.trim()!==""||k.upload_base_url!=="")&&(t.upload_base_url=e(r).upload_base_url.trim()),e(r).ca_cert_bundle!==k.ca_cert_bundle)if(e(r).ca_cert_bundle!=="")try{const d=atob(e(r).ca_cert_bundle);t.ca_cert_bundle=Array.from(d,c=>c.charCodeAt(0))}catch{k.ca_cert_bundle!==""&&(t.ca_cert_bundle=[])}else k.ca_cert_bundle!==""&&(t.ca_cert_bundle=[]);return t}async function ot(){try{const t={name:e(r).name,description:e(r).description,endpoint_type:e(r).endpoint_type,base_url:e(r).base_url,api_base_url:e(r).api_base_url,upload_base_url:e(r).upload_base_url};if(e(r).ca_cert_bundle&&e(r).ca_cert_bundle.trim()!=="")try{const d=atob(e(r).ca_cert_bundle);t.ca_cert_bundle=Array.from(d,c=>c.charCodeAt(0))}catch{}e(r).endpoint_type==="github"?await ee.createGithubEndpoint(t):await ee.createGiteaEndpoint(t),ye.success("Endpoint Created",`Endpoint ${e(r).name} has been created successfully.`),y()}catch(t){s(te,t instanceof Error?t.message:"Failed to create endpoint")}}async function it(){if(e(m))try{const t=at();if(Object.keys(t).length===0){ye.info("No Changes","No fields were modified."),y();return}e(m).endpoint_type==="github"?await ee.updateGithubEndpoint(e(m).name,t):await ee.updateGiteaEndpoint(e(m).name,t),ye.success("Endpoint Updated",`Endpoint ${e(m).name} has been updated successfully.`),y()}catch(t){s(te,t instanceof Error?t.message:"Failed to update endpoint")}}async function st(){if(e(R))try{e(R).endpoint_type==="github"?await ee.deleteGithubEndpoint(e(R).name):await ee.deleteGiteaEndpoint(e(R).name),ye.success("Endpoint Deleted",`Endpoint ${e(R).name} has been deleted successfully.`),y()}catch(t){s(te,t instanceof Error?t.message:"Failed to delete endpoint")}}function Be(t){const c=t.target.files?.[0];if(!c){g(r,e(r).ca_cert_bundle="");return}const v=new FileReader;v.onload=n=>{const f=n.target?.result;g(r,e(r).ca_cert_bundle=btoa(f))},v.readAsText(c)}function ge(){return!(!e(r).name||!e(r).description||!e(r).base_url||e(r).endpoint_type==="github"&&!e(r).api_base_url)}Z(()=>(e(O),q()),()=>{(!e(O).length||q().loaded.endpoints)&&s(O,q().endpoints)}),Z(()=>q(),()=>{s(le,q().loading.endpoints)}),Z(()=>q(),()=>{s(ve,q().errorMessages.endpoints)}),Z(()=>(e(O),e(ue)),()=>{s(H,At(e(O),e(ue)))}),Z(()=>(e(J),e(H),e(K),e(L)),()=>{s(J,Math.ceil(e(H).length/e(K))),e(L)>e(J)&&e(J)>0&&s(L,e(J))}),Z(()=>(e(H),e(L),e(K)),()=>{s(Re,Bt(e(H),e(L),e(K)))}),ft(),pt();var Ue=zt();b("keydown",yt,rt),_t(t=>{vt.title="Endpoints - GARM"});var ke=Ee(Ue),Le=o(ke);wt(Le,{title:"Endpoints",description:"Manage your GitHub and Gitea endpoints for runner management.",actionLabel:"Add Endpoint",$$events:{action:et}});var nt=a(Le,2);{let t=Ce(()=>e(ve)||e(te)),d=Ce(()=>!!e(ve));Ct(nt,{get columns(){return Ke},get data(){return e(Re)},get loading(){return e(le)},get error(){return e(t)},get searchTerm(){return e(ue)},searchPlaceholder:"Search endpoints by name, description, or URL...",get currentPage(){return e(L)},get perPage(){return e(K)},get totalPages(){return e(J)},get totalItems(){return e(H),E(()=>e(H).length)},itemName:"endpoints",emptyIconType:"settings",get showRetry(){return e(d)},get mobileCardConfig(){return Je},$$events:{search:Qe,pageChange:We,perPageChange:Xe,retry:Oe,edit:Ye,delete:Ze},$$slots:{"mobile-card":(c,v)=>{const n=Ce(()=>v.item);var f=Lt(),x=o(f),A=o(x),P=o(A),w=o(P,!0);i(P);var _=a(P,2),M=o(_,!0);i(_);var B=a(_,2),T=o(B);kt(T,()=>(se($e),se(e(n)),E(()=>$e(e(n).endpoint_type||"","w-5 h-5"))));var F=a(T,2),Q=o(F,!0);i(F),i(B),i(A),i(x);var N=a(x,2),z=o(N);ze(z,{action:"edit",size:"sm",title:"Edit endpoint",ariaLabel:"Edit endpoint",$$events:{click:()=>xe(e(n))}});var W=a(z,2);ze(W,{action:"delete",size:"sm",title:"Delete endpoint",ariaLabel:"Delete endpoint",$$events:{click:()=>he(e(n))}}),i(N),i(f),me(()=>{ne(w,(se(e(n)),E(()=>e(n).name))),ne(M,(se(e(n)),E(()=>e(n).description))),ne(Q,(se(e(n)),E(()=>e(n).endpoint_type)))}),j(c,f)}}})}i(ke);var Me=a(ke,2);{var dt=t=>{var d=Ft(),c=o(d),v=a(c,2),n=o(v),f=a(o(n),2);i(n);var x=a(n,2),A=o(x);Et(A,{get selectedForgeType(){return e(G)},set selectedForgeType(u){s(G,u)},$$events:{select:tt},$$legacy:!0});var P=a(A,2),w=a(o(P),2);U(w),i(P);var _=a(P,2),M=a(o(_),2);De(M),i(_);var B=a(_,2),T=a(o(B),2);U(T),i(B);var F=a(B,2);{var Q=u=>{var $=Mt(),l=Ee($),h=a(o(l),2);U(h),i(l);var D=a(l,2),S=a(o(D),2);U(S),i(D),C(h,()=>e(r).api_base_url,Y=>g(r,e(r).api_base_url=Y)),C(S,()=>e(r).upload_base_url,Y=>g(r,e(r).upload_base_url=Y)),j(u,$)},N=u=>{var $=Tt(),l=a(o($),2);U(l),V(2),i($),C(l,()=>e(r).api_base_url,h=>g(r,e(r).api_base_url=h)),j(u,$)};de(F,u=>{e(G)==="github"?u(Q):u(N,!1)})}var z=a(F,2),W=a(o(z),2),X=o(W),re=a(X,2),ae=a(o(re),2),fe=o(ae);V(),i(ae),V(2),i(re),i(W),i(z);var oe=a(z,2),_e=o(oe),ie=a(_e,2);i(oe),i(x),i(v),i(d),me((u,$)=>{je(w,"placeholder",e(G)==="github"?"e.g., github-enterprise or github-com":"e.g., gitea-main or my-gitea"),je(T,"placeholder",e(G)==="github"?"https://github.com or https://github.example.com":"https://gitea.example.com"),ie.disabled=u,Ie(ie,1,`px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors - ${$??""}`)},[()=>E(()=>!ge()),()=>E(()=>ge()?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed")]),b("click",c,y),b("click",f,y),C(w,()=>e(r).name,u=>g(r,e(r).name=u)),C(M,()=>e(r).description,u=>g(r,e(r).description=u)),C(T,()=>e(r).base_url,u=>g(r,e(r).base_url=u)),b("change",X,Be),b("click",fe,()=>document.getElementById("ca_cert_file")?.click()),b("click",_e,y),b("submit",x,Ge(ot)),j(t,d)};de(Me,t=>{e(ce)&&t(dt)})}var Te=a(Me,2);{var lt=t=>{var d=It(),c=o(d),v=a(c,2),n=o(v),f=o(n),x=o(f),A=o(x);i(x),V(2),i(f);var P=a(f,2);i(n);var w=a(n,2),_=o(w),M=a(o(_),2);U(M),i(_);var B=a(_,2),T=a(o(B),2);De(T),i(B);var F=a(B,2),Q=a(o(F),2);U(Q),i(F);var N=a(F,2);{var z=l=>{var h=Dt(),D=Ee(h),S=a(o(D),2);U(S),i(D);var Y=a(D,2),Fe=a(o(Y),2);U(Fe),i(Y),C(S,()=>e(r).api_base_url,we=>g(r,e(r).api_base_url=we)),C(Fe,()=>e(r).upload_base_url,we=>g(r,e(r).upload_base_url=we)),j(l,h)},W=l=>{var h=jt(),D=a(o(h),2);U(D),V(2),i(h),C(D,()=>e(r).api_base_url,S=>g(r,e(r).api_base_url=S)),j(l,h)};de(N,l=>{e(m),E(()=>e(m).endpoint_type==="github")?l(z):l(W,!1)})}var X=a(N,2),re=a(o(X),2),ae=o(re),fe=a(ae,2),oe=a(o(fe),2),_e=o(oe);V(),i(oe),V(2),i(fe),i(re),i(X);var ie=a(X,2),u=o(ie),$=a(u,2);i(ie),i(w),i(v),i(d),me((l,h)=>{ne(A,`Edit ${e(m),E(()=>e(m).endpoint_type==="github"?"GitHub":"Gitea")??""} Endpoint`),$.disabled=l,Ie($,1,`px-4 py-2 text-sm font-medium text-white rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors - ${h??""}`)},[()=>E(()=>!ge()),()=>E(()=>ge()?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed")]),b("click",c,y),b("click",P,y),C(M,()=>e(r).name,l=>g(r,e(r).name=l)),C(T,()=>e(r).description,l=>g(r,e(r).description=l)),C(Q,()=>e(r).base_url,l=>g(r,e(r).base_url=l)),b("change",ae,Be),b("click",_e,()=>document.getElementById("edit_ca_cert_file")?.click()),b("click",u,y),b("submit",w,Ge(it)),j(t,d)};de(Te,t=>{e(pe)&&e(m)&&t(lt)})}var ut=a(Te,2);{var ct=t=>{var d=Gt(),c=o(d),v=a(c,2),n=o(v),f=o(n),x=a(o(f),2),A=a(o(x),2),P=o(A);i(A),i(x),i(f),i(n);var w=a(n,2),_=o(w),M=a(_,2);i(w),i(v),i(d),me(()=>ne(P,`Are you sure you want to delete the endpoint "${e(R),E(()=>e(R).name)??""}"? This action cannot be undone.`)),b("click",c,y),b("click",_,y),b("click",M,st),j(t,d)};de(ut,t=>{e(be)&&e(R)&&t(ct)})}j(He,Ue),mt(),Ve()}export{rr as component}; diff --git a/webapp/assets/_app/immutable/nodes/5.CeMzA7DH.js b/webapp/assets/_app/immutable/nodes/5.CeMzA7DH.js new file mode 100644 index 00000000..06f4aeca --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/5.CeMzA7DH.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Ge}from"../chunks/B3Pzt0F_.js";import{p as Se,E as Ie,o as Be,l as w,s as r,m as n,g as e,a as He,f as M,k as o,j as i,r as l,c as $,t as N,v as K,x as $e,u as v,z as Je,y as Z,e as Ce,d as Re,B as Ve,b as Ue,h as We,$ as Ye,n as A,q as ee}from"../chunks/D8EpLgQ1.js";import{a as Le,i as B,s as Ne}from"../chunks/5WA7h8uK.js";import{r as Pe,b as Me,c as Ke,g as ve}from"../chunks/CiE1LlKV.js";import{b as De}from"../chunks/CRhkqW2i.js";import{P as Oe}from"../chunks/CO4LUyTP.js";import{e as Qe,i as Xe}from"../chunks/u94nIB4-.js";import{b as Te}from"../chunks/C6k1Q4We.js";import{p as Ze}from"../chunks/D4Caz1gY.js";import{M as et}from"../chunks/qB7B8uiS.js";import{e as re}from"../chunks/BZiHL9L3.js";import{e as qe,a as he}from"../chunks/wyaP0EDu.js";import{U as tt}from"../chunks/CIBm3n2u.js";import{D as rt}from"../chunks/KQ2xQpA3.js";import{t as te}from"../chunks/BEkVdVE1.js";import{B as at,k as ye,l as st}from"../chunks/BGVHQGl-.js";import{D as ot,A as Ae,G as nt,a as it}from"../chunks/BrNfsPe8.js";import{E as lt}from"../chunks/D4PaGKsV.js";import{E as dt}from"../chunks/CGpPw4EW.js";import{S as ct}from"../chunks/MCv1Wq2q.js";var ut=M('

'),pt=M('

Loading...

'),mt=M(""),ft=M('

Loading credentials...

'),gt=M('

No GitHub credentials found. Please create GitHub credentials first.

'),bt=M(`

You'll need to manually configure this secret in GitHub's enterprise webhook settings.

`),vt=M('

Create Enterprise

Enterprises are only available for GitHub endpoints.

');function yt(ae,se){Se(se,!1);const[oe,ne]=Ne(),u=()=>Le(qe,"$eagerCache",oe),G=n(),h=n(),p=n(),H=n(),E=Ie();let x=n(!1),y=n(""),a=n({name:"",credentials_name:"",webhook_secret:"",pool_balancer_type:"roundrobin"});async function _(){if(!u().loaded.credentials&&!u().loading.credentials)try{await he.getCredentials()}catch(m){r(y,re(m))}}async function C(){if(!e(a).name||!e(a).name.trim()){r(y,"Enterprise name is required");return}if(!e(a).credentials_name){r(y,"Please select credentials");return}try{r(x,!0),r(y,"");const m={...e(a)};E("submit",m)}catch(m){r(y,re(m)),r(x,!1)}}Be(()=>{_()}),w(()=>u(),()=>{r(G,u().credentials)}),w(()=>u(),()=>{r(h,u().loading.credentials)}),w(()=>e(G),()=>{r(p,e(G).filter(m=>m.forge_type==="github"))}),w(()=>e(a),()=>{r(H,e(a).name&&e(a).name.trim()!==""&&e(a).credentials_name!==""&&e(a).webhook_secret&&e(a).webhook_secret.trim()!=="")}),He(),Ge(),et(ae,{$$events:{close:()=>E("close")},children:(m,q)=>{var D=vt(),d=o(i(D),4);{var ie=f=>{var g=ut(),T=i(g),R=i(T,!0);l(T),l(g),N(()=>K(R,e(y))),$(f,g)};B(d,f=>{e(y)&&f(ie)})}var le=o(d,2);{var de=f=>{var g=pt();$(f,g)},ce=f=>{var g=bt(),T=i(g),R=o(i(T),2);Pe(R),l(T);var z=o(T,2),U=o(i(z),2);N(()=>{e(a),$e(()=>{e(p)})});var j=i(U);j.value=j.__value="";var ue=o(j);Qe(ue,1,()=>e(p),Xe,(s,c)=>{var P=mt(),b=i(P);l(P);var k={};N(()=>{K(b,`${e(c),v(()=>e(c).name)??""} (${e(c),v(()=>e(c).endpoint?.name||"Unknown endpoint")??""})`),k!==(k=(e(c),v(()=>e(c).name)))&&(P.value=(P.__value=(e(c),v(()=>e(c).name)))??"")}),$(s,P)}),l(U);var pe=o(U,2);{var me=s=>{var c=ft();$(s,c)},O=s=>{var c=Ve(),P=Ue(c);{var b=k=>{var Y=gt();$(k,Y)};B(P,k=>{e(p),v(()=>e(p).length===0)&&k(b)},!0)}$(s,c)};B(pe,s=>{e(h)?s(me):s(O,!1)})}l(z);var S=o(z,2),L=o(i(S),2);N(()=>{e(a),$e(()=>{})});var F=i(L);F.value=F.__value="roundrobin";var I=o(F);I.value=I.__value="pack",l(L),l(S);var J=o(S,2),V=o(i(J),2);Pe(V),Je(2),l(J);var Q=o(J,2),X=i(Q),W=o(X,2),t=i(W,!0);l(W),l(Q),l(g),N(()=>{W.disabled=(e(x),e(h),e(H),e(p),v(()=>e(x)||e(h)||!e(H)||e(p).length===0)),K(t,e(x)?"Creating...":"Create Enterprise")}),Te(R,()=>e(a).name,s=>Z(a,e(a).name=s)),Me(U,()=>e(a).credentials_name,s=>Z(a,e(a).credentials_name=s)),Me(L,()=>e(a).pool_balancer_type,s=>Z(a,e(a).pool_balancer_type=s)),Te(V,()=>e(a).webhook_secret,s=>Z(a,e(a).webhook_secret=s)),Ce("click",X,()=>E("close")),Ce("submit",g,Ze(C)),$(f,g)};B(le,f=>{e(x)?f(de):f(ce,!1)})}l(D),$(m,D)},$$slots:{default:!0}}),Re(),ne()}var ht=M(''),_t=M('
',1);function jt(ae,se){Se(se,!1);const[oe,ne]=Ne(),u=()=>Le(qe,"$eagerCache",oe),G=n(),h=n(),p=n(),H=n();let E=n([]),x=n(!0),y=n(""),a=n(""),_=n(1),C=n(25),m=n(!1),q=n(!1),D=n(!1),d=n(null);async function ie(t){try{r(y,""),await ve.createEnterprise(t),te.success("Enterprise Created",`Enterprise ${t.name} has been created successfully.`),r(m,!1)}catch(s){throw r(y,re(s)),s}}async function le(t){if(e(d))try{await ve.updateEnterprise(e(d).id,t),te.success("Enterprise Updated",`Enterprise ${e(d).name} has been updated successfully.`),r(q,!1),r(d,null)}catch(s){throw s}}async function de(){if(e(d))try{r(y,""),await ve.deleteEnterprise(e(d).id),te.success("Enterprise Deleted",`Enterprise ${e(d).name} has been deleted successfully.`),r(D,!1),r(d,null)}catch(t){const s=re(t);te.error("Delete Failed",s)}}function ce(){r(m,!0)}function f(t){r(d,t),r(q,!0)}function g(t){r(d,t),r(D,!0)}Be(async()=>{try{r(x,!0);const t=await he.getEnterprises();t&&Array.isArray(t)&&r(E,t)}catch(t){console.error("Failed to load enterprises:",t),r(y,t instanceof Error?t.message:"Failed to load enterprises")}finally{r(x,!1)}});async function T(){try{await he.retryResource("enterprises")}catch(t){console.error("Retry failed:",t)}}const R=[{key:"name",title:"Name",cellComponent:lt,cellProps:{entityType:"enterprise"}},{key:"endpoint",title:"Endpoint",cellComponent:dt},{key:"credentials",title:"Credentials",cellComponent:nt,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:ct,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:it}],z={entityType:"enterprise",primaryText:{field:"name",isClickable:!0,href:"/enterprises/{id}"},secondaryText:{field:"credentials_name"},badges:[{type:"custom",value:t=>ye(t)}],actions:[{type:"edit",handler:t=>f(t)},{type:"delete",handler:t=>g(t)}]};function U(t){r(a,t.detail.term),r(_,1)}function j(t){r(_,t.detail.page)}function ue(t){r(C,t.detail.perPage),r(_,1)}function pe(t){f(t.detail.item)}function me(t){g(t.detail.item)}w(()=>(e(E),u()),()=>{(!e(E).length||u().loaded.enterprises)&&r(E,u().enterprises)}),w(()=>u(),()=>{r(x,u().loading.enterprises)}),w(()=>u(),()=>{r(G,u().errorMessages.enterprises)}),w(()=>(e(E),e(a)),()=>{r(h,st(e(E),e(a)))}),w(()=>(e(h),e(C)),()=>{r(p,Math.ceil(e(h).length/e(C)))}),w(()=>(e(_),e(p)),()=>{e(_)>e(p)&&e(p)>0&&r(_,e(p))}),w(()=>(e(h),e(_),e(C)),()=>{r(H,e(h).slice((e(_)-1)*e(C),e(_)*e(C)))}),He(),Ge();var O=_t();We(t=>{Ye.title="Enterprises - GARM"});var S=Ue(O),L=i(S);Oe(L,{title:"Enterprises",description:"Manage GitHub enterprises",actionLabel:"Add Enterprise",$$events:{action:ce}});var F=o(L,2);{let t=ee(()=>e(G)||e(y)),s=ee(()=>!!e(G));ot(F,{get columns(){return R},get data(){return e(H)},get loading(){return e(x)},get error(){return e(t)},get searchTerm(){return e(a)},searchPlaceholder:"Search enterprises...",get currentPage(){return e(_)},get perPage(){return e(C)},get totalPages(){return e(p)},get totalItems(){return e(h),v(()=>e(h).length)},itemName:"enterprises",emptyIconType:"building",get showRetry(){return e(s)},get mobileCardConfig(){return z},$$events:{search:U,pageChange:j,perPageChange:ue,retry:T,edit:pe,delete:me},$$slots:{"mobile-card":(c,P)=>{const b=ee(()=>P.item),k=ee(()=>(A(ye),A(e(b)),v(()=>ye(e(b)))));var Y=ht(),fe=i(Y),ge=i(fe),be=i(ge),ze=i(be,!0);l(be);var _e=o(be,2),je=i(_e,!0);l(_e),l(ge),l(fe);var xe=o(fe,2),ke=i(xe);at(ke,{get variant(){return A(e(k)),v(()=>e(k).variant)},get text(){return A(e(k)),v(()=>e(k).text)}});var we=o(ke,2),Ee=i(we);Ae(Ee,{action:"edit",size:"sm",title:"Edit enterprise",ariaLabel:"Edit enterprise",$$events:{click:()=>f(e(b))}});var Fe=o(Ee,2);Ae(Fe,{action:"delete",size:"sm",title:"Delete enterprise",ariaLabel:"Delete enterprise",$$events:{click:()=>g(e(b))}}),l(we),l(xe),l(Y),N(()=>{Ke(ge,"href",(A(De),A(e(b)),v(()=>`${De}/enterprises/${e(b).id}`))),K(ze,(A(e(b)),v(()=>e(b).name))),K(je,(A(e(b)),v(()=>e(b).credentials_name)))}),$(c,Y)}}})}l(S);var I=o(S,2);{var J=t=>{yt(t,{$$events:{close:()=>r(m,!1),submit:s=>ie(s.detail)}})};B(I,t=>{e(m)&&t(J)})}var V=o(I,2);{var Q=t=>{tt(t,{get entity(){return e(d)},entityType:"enterprise",$$events:{close:()=>{r(q,!1),r(d,null)},submit:s=>le(s.detail)}})};B(V,t=>{e(q)&&e(d)&&t(Q)})}var X=o(V,2);{var W=t=>{rt(t,{title:"Delete Enterprise",message:"Are you sure you want to delete this enterprise? This action cannot be undone.",get itemName(){return e(d),v(()=>e(d).name)},$$events:{close:()=>{r(D,!1),r(d,null)},confirm:de}})};B(X,t=>{e(D)&&e(d)&&t(W)})}$(ae,O),Re(),ne()}export{jt as component}; diff --git a/webapp/assets/_app/immutable/nodes/5.rvsSG-AQ.js b/webapp/assets/_app/immutable/nodes/5.rvsSG-AQ.js deleted file mode 100644 index 5f4f52cc..00000000 --- a/webapp/assets/_app/immutable/nodes/5.rvsSG-AQ.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as Ae}from"../chunks/B3Pzt0F_.js";import{p as Ge,E as je,o as Se,l as w,s as r,m as n,g as e,a as Be,f as M,k as o,j as i,r as l,c as $,t as L,v as K,x as Ee,u as y,z as Ie,y as Z,e as $e,d as He,B as Je,b as Re,h as Ve,$ as We,n as A,q as ee}from"../chunks/D8EpLgQ1.js";import{a as Ue,i as B,s as Fe}from"../chunks/5WA7h8uK.js";import{r as Ce,b as Pe,c as Ye,g as ge}from"../chunks/CiE1LlKV.js";import{b as Me}from"../chunks/CoIRRsD9.js";import{P as Ke}from"../chunks/CO4LUyTP.js";import{e as Oe,i as Qe}from"../chunks/u94nIB4-.js";import{b as De}from"../chunks/C6k1Q4We.js";import{p as Xe}from"../chunks/D4Caz1gY.js";import{M as Ze}from"../chunks/qB7B8uiS.js";import{e as Le,a as ye}from"../chunks/wyaP0EDu.js";import{U as et}from"../chunks/CclkODgu.js";import{D as tt}from"../chunks/KQ2xQpA3.js";import{t as be}from"../chunks/BEkVdVE1.js";import{B as rt,k as ve,l as at}from"../chunks/BGVHQGl-.js";import{D as st,A as Te,G as ot,a as nt}from"../chunks/C9DJVOi1.js";import{E as it}from"../chunks/B7ITzBt8.js";import{E as lt}from"../chunks/CGpPw4EW.js";import{S as dt}from"../chunks/BE4wujub.js";var ct=M('

'),ut=M('

Loading...

'),pt=M(""),mt=M('

Loading credentials...

'),ft=M('

No GitHub credentials found. Please create GitHub credentials first.

'),gt=M(`

You'll need to manually configure this secret in GitHub's enterprise webhook settings.

`),bt=M('

Create Enterprise

Enterprises are only available for GitHub endpoints.

');function vt(te,re){Ge(re,!1);const[ae,se]=Fe(),p=()=>Ue(Le,"$eagerCache",ae),G=n(),h=n(),m=n(),H=n(),E=je();let x=n(!1),f=n(""),a=n({name:"",credentials_name:"",webhook_secret:"",pool_balancer_type:"roundrobin"});async function _(){if(!p().loaded.credentials&&!p().loading.credentials)try{await ye.getCredentials()}catch(c){r(f,c instanceof Error?c.message:"Failed to load credentials")}}async function C(){if(!e(a).name||!e(a).name.trim()){r(f,"Enterprise name is required");return}if(!e(a).credentials_name){r(f,"Please select credentials");return}try{r(x,!0),r(f,"");const c={...e(a)};E("submit",c)}catch(c){r(f,c instanceof Error?c.message:"Failed to create enterprise"),r(x,!1)}}Se(()=>{_()}),w(()=>p(),()=>{r(G,p().credentials)}),w(()=>p(),()=>{r(h,p().loading.credentials)}),w(()=>e(G),()=>{r(m,e(G).filter(c=>c.forge_type==="github"))}),w(()=>e(a),()=>{r(H,e(a).name&&e(a).name.trim()!==""&&e(a).credentials_name!==""&&e(a).webhook_secret&&e(a).webhook_secret.trim()!=="")}),Be(),Ae(),Ze(te,{$$events:{close:()=>E("close")},children:(c,N)=>{var D=bt(),d=o(i(D),4);{var oe=g=>{var b=ct(),T=i(b),R=i(T,!0);l(T),l(b),L(()=>K(R,e(f))),$(g,b)};B(d,g=>{e(f)&&g(oe)})}var ne=o(d,2);{var ie=g=>{var b=ut();$(g,b)},le=g=>{var b=gt(),T=i(b),R=o(i(T),2);Ce(R),l(T);var q=o(T,2),U=o(i(q),2);L(()=>{e(a),Ee(()=>{e(m)})});var z=i(U);z.value=z.__value="";var de=o(z);Oe(de,1,()=>e(m),Qe,(s,u)=>{var P=pt(),v=i(P);l(P);var k={};L(()=>{K(v,`${e(u),y(()=>e(u).name)??""} (${e(u),y(()=>e(u).endpoint?.name||"Unknown endpoint")??""})`),k!==(k=(e(u),y(()=>e(u).name)))&&(P.value=(P.__value=(e(u),y(()=>e(u).name)))??"")}),$(s,P)}),l(U);var ce=o(U,2);{var ue=s=>{var u=mt();$(s,u)},O=s=>{var u=Je(),P=Re(u);{var v=k=>{var Y=ft();$(k,Y)};B(P,k=>{e(m),y(()=>e(m).length===0)&&k(v)},!0)}$(s,u)};B(ce,s=>{e(h)?s(ue):s(O,!1)})}l(q);var S=o(q,2),F=o(i(S),2);L(()=>{e(a),Ee(()=>{})});var j=i(F);j.value=j.__value="roundrobin";var I=o(j);I.value=I.__value="pack",l(F),l(S);var J=o(S,2),V=o(i(J),2);Ce(V),Ie(2),l(J);var Q=o(J,2),X=i(Q),W=o(X,2),t=i(W,!0);l(W),l(Q),l(b),L(()=>{W.disabled=(e(x),e(h),e(H),e(m),y(()=>e(x)||e(h)||!e(H)||e(m).length===0)),K(t,e(x)?"Creating...":"Create Enterprise")}),De(R,()=>e(a).name,s=>Z(a,e(a).name=s)),Pe(U,()=>e(a).credentials_name,s=>Z(a,e(a).credentials_name=s)),Pe(F,()=>e(a).pool_balancer_type,s=>Z(a,e(a).pool_balancer_type=s)),De(V,()=>e(a).webhook_secret,s=>Z(a,e(a).webhook_secret=s)),$e("click",X,()=>E("close")),$e("submit",b,Xe(C)),$(g,b)};B(ne,g=>{e(x)?g(ie):g(le,!1)})}l(D),$(c,D)},$$slots:{default:!0}}),He(),se()}var yt=M(''),ht=M('
',1);function Nt(te,re){Ge(re,!1);const[ae,se]=Fe(),p=()=>Ue(Le,"$eagerCache",ae),G=n(),h=n(),m=n(),H=n();let E=n([]),x=n(!0),f=n(""),a=n(""),_=n(1),C=n(25),c=n(!1),N=n(!1),D=n(!1),d=n(null);async function oe(t){try{r(f,""),await ge.createEnterprise(t),be.success("Enterprise Created",`Enterprise ${t.name} has been created successfully.`),r(c,!1)}catch(s){throw r(f,s instanceof Error?s.message:"Failed to create enterprise"),s}}async function ne(t){if(e(d))try{await ge.updateEnterprise(e(d).id,t),be.success("Enterprise Updated",`Enterprise ${e(d).name} has been updated successfully.`),r(N,!1),r(d,null)}catch(s){throw s}}async function ie(){if(e(d))try{r(f,""),await ge.deleteEnterprise(e(d).id),be.success("Enterprise Deleted",`Enterprise ${e(d).name} has been deleted successfully.`),r(D,!1),r(d,null)}catch(t){r(f,t instanceof Error?t.message:"Failed to delete enterprise")}}function le(){r(c,!0)}function g(t){r(d,t),r(N,!0)}function b(t){r(d,t),r(D,!0)}Se(async()=>{try{r(x,!0);const t=await ye.getEnterprises();t&&Array.isArray(t)&&r(E,t)}catch(t){console.error("Failed to load enterprises:",t),r(f,t instanceof Error?t.message:"Failed to load enterprises")}finally{r(x,!1)}});async function T(){try{await ye.retryResource("enterprises")}catch(t){console.error("Retry failed:",t)}}const R=[{key:"name",title:"Name",cellComponent:it,cellProps:{entityType:"enterprise"}},{key:"endpoint",title:"Endpoint",cellComponent:lt},{key:"credentials",title:"Credentials",cellComponent:ot,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:dt,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:nt}],q={entityType:"enterprise",primaryText:{field:"name",isClickable:!0,href:"/enterprises/{id}"},secondaryText:{field:"credentials_name"},badges:[{type:"custom",value:t=>ve(t)}],actions:[{type:"edit",handler:t=>g(t)},{type:"delete",handler:t=>b(t)}]};function U(t){r(a,t.detail.term),r(_,1)}function z(t){r(_,t.detail.page)}function de(t){r(C,t.detail.perPage),r(_,1)}function ce(t){g(t.detail.item)}function ue(t){b(t.detail.item)}w(()=>(e(E),p()),()=>{(!e(E).length||p().loaded.enterprises)&&r(E,p().enterprises)}),w(()=>p(),()=>{r(x,p().loading.enterprises)}),w(()=>p(),()=>{r(G,p().errorMessages.enterprises)}),w(()=>(e(E),e(a)),()=>{r(h,at(e(E),e(a)))}),w(()=>(e(h),e(C)),()=>{r(m,Math.ceil(e(h).length/e(C)))}),w(()=>(e(_),e(m)),()=>{e(_)>e(m)&&e(m)>0&&r(_,e(m))}),w(()=>(e(h),e(_),e(C)),()=>{r(H,e(h).slice((e(_)-1)*e(C),e(_)*e(C)))}),Be(),Ae();var O=ht();Ve(t=>{We.title="Enterprises - GARM"});var S=Re(O),F=i(S);Ke(F,{title:"Enterprises",description:"Manage GitHub enterprises",actionLabel:"Add Enterprise",$$events:{action:le}});var j=o(F,2);{let t=ee(()=>e(G)||e(f)),s=ee(()=>!!e(G));st(j,{get columns(){return R},get data(){return e(H)},get loading(){return e(x)},get error(){return e(t)},get searchTerm(){return e(a)},searchPlaceholder:"Search enterprises...",get currentPage(){return e(_)},get perPage(){return e(C)},get totalPages(){return e(m)},get totalItems(){return e(h),y(()=>e(h).length)},itemName:"enterprises",emptyIconType:"building",get showRetry(){return e(s)},get mobileCardConfig(){return q},$$events:{search:U,pageChange:z,perPageChange:de,retry:T,edit:ce,delete:ue},$$slots:{"mobile-card":(u,P)=>{const v=ee(()=>P.item),k=ee(()=>(A(ve),A(e(v)),y(()=>ve(e(v)))));var Y=yt(),pe=i(Y),me=i(pe),fe=i(me),Ne=i(fe,!0);l(fe);var he=o(fe,2),qe=i(he,!0);l(he),l(me),l(pe);var _e=o(pe,2),xe=i(_e);rt(xe,{get variant(){return A(e(k)),y(()=>e(k).variant)},get text(){return A(e(k)),y(()=>e(k).text)}});var ke=o(xe,2),we=i(ke);Te(we,{action:"edit",size:"sm",title:"Edit enterprise",ariaLabel:"Edit enterprise",$$events:{click:()=>g(e(v))}});var ze=o(we,2);Te(ze,{action:"delete",size:"sm",title:"Delete enterprise",ariaLabel:"Delete enterprise",$$events:{click:()=>b(e(v))}}),l(ke),l(_e),l(Y),L(()=>{Ye(me,"href",(A(Me),A(e(v)),y(()=>`${Me}/enterprises/${e(v).id}`))),K(Ne,(A(e(v)),y(()=>e(v).name))),K(qe,(A(e(v)),y(()=>e(v).credentials_name)))}),$(u,Y)}}})}l(S);var I=o(S,2);{var J=t=>{vt(t,{$$events:{close:()=>r(c,!1),submit:s=>oe(s.detail)}})};B(I,t=>{e(c)&&t(J)})}var V=o(I,2);{var Q=t=>{et(t,{get entity(){return e(d)},entityType:"enterprise",$$events:{close:()=>{r(N,!1),r(d,null)},submit:s=>ne(s.detail)}})};B(V,t=>{e(N)&&e(d)&&t(Q)})}var X=o(V,2);{var W=t=>{tt(t,{title:"Delete Enterprise",message:"Are you sure you want to delete this enterprise? This action cannot be undone.",get itemName(){return e(d),y(()=>e(d).name)},$$events:{close:()=>{r(D,!1),r(d,null)},confirm:ie}})};B(X,t=>{e(D)&&e(d)&&t(W)})}$(te,O),He(),se()}export{Nt as component}; diff --git a/webapp/assets/_app/immutable/nodes/6.BPDnwpl3.js b/webapp/assets/_app/immutable/nodes/6.BPDnwpl3.js new file mode 100644 index 00000000..d1a00717 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/6.BPDnwpl3.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Ne}from"../chunks/B3Pzt0F_.js";import{p as qe,o as ze,A as Ge,l as je,a as Re,f as F,h as Ve,b as B,t as G,c as E,d as We,g as e,m as i,s,u as l,$ as Je,j as u,r as f,k as d,v as ie,y as Ke,B as le,q as v,n as Oe}from"../chunks/D8EpLgQ1.js";import{i as g,s as Qe,a as Xe}from"../chunks/5WA7h8uK.js";import{c as Ye,g as y}from"../chunks/CiE1LlKV.js";import{p as Ze}from"../chunks/BE8f1Riw.js";import{g as de}from"../chunks/DXCC0cSN.js";import{b as j}from"../chunks/CRhkqW2i.js";import{U as et}from"../chunks/CIBm3n2u.js";import{D as ce}from"../chunks/KQ2xQpA3.js";import{E as tt,P as at,a as rt}from"../chunks/OpktHEmj.js";import{D as st,I as nt}from"../chunks/BEoJgOul.js";import{g as pe}from"../chunks/BGVHQGl-.js";import{w as R}from"../chunks/u94nIB4-.js";import{t as D}from"../chunks/BEkVdVE1.js";import{C as ot}from"../chunks/CRD55Dyg.js";import{e as ue}from"../chunks/BZiHL9L3.js";var it=F('

Loading enterprise...

'),lt=F('

'),dt=F(" ",1),ct=F(' ',1);function Tt(fe,me){qe(me,!1);const[ve,ge]=Qe(),V=()=>Xe(Ze,"$page",ve),$=i();let a=i(null),c=i([]),m=i([]),S=i(!0),P=i(""),T=i(!1),M=i(!1),x=i(!1),C=i(!1),p=i(null),k=null,h=i();async function W(){if(e($))try{s(S,!0),s(P,"");const[t,r,n]=await Promise.all([y.getEnterprise(e($)),y.listEnterprisePools(e($)).catch(()=>[]),y.listEnterpriseInstances(e($)).catch(()=>[])]);s(a,t),s(c,r),s(m,n)}catch(t){s(P,t instanceof Error?t.message:"Failed to load enterprise")}finally{s(S,!1)}}function ye(t,r){const{events:n}=t;return{...r,events:n}}async function he(t){if(e(a))try{await y.updateEnterprise(e(a).id,t),await W(),D.success("Enterprise Updated",`Enterprise ${e(a).name} has been updated successfully.`),s(T,!1)}catch(r){throw r}}async function be(){if(e(a)){try{await y.deleteEnterprise(e(a).id),de(`${j}/enterprises`)}catch(t){const r=ue(t);D.error("Delete Failed",r)}s(M,!1)}}async function _e(){if(e(p))try{await y.deleteInstance(e(p).name),D.success("Instance Deleted",`Instance ${e(p).name} has been deleted successfully.`),s(x,!1),s(p,null)}catch(t){const r=ue(t);D.error("Delete Failed",r),s(x,!1),s(p,null)}}function Ee(t){s(p,t),s(x,!0)}function $e(){s(C,!0)}async function xe(t){try{if(!e(a))return;await y.createEnterprisePool(e(a).id,t.detail),D.success("Pool Created",`Pool has been created successfully for enterprise ${e(a).name}.`),s(C,!1)}catch(r){throw r}}function J(){e(h)&&Ke(h,e(h).scrollTop=e(h).scrollHeight)}function Ie(t){if(t.operation==="update"){const r=t.payload;if(e(a)&&r.id===e(a).id){const n=e(a).events?.length||0,o=r.events?.length||0;s(a,ye(e(a),r)),o>n&&setTimeout(()=>{J()},100)}}else if(t.operation==="delete"){const r=t.payload.id||t.payload;e(a)&&e(a).id===r&&de(`${j}/enterprises`)}}function we(t){if(!e(a))return;const r=t.payload;if(r.enterprise_id===e(a).id){if(t.operation==="create")s(c,[...e(c),r]);else if(t.operation==="update")s(c,e(c).map(n=>n.id===r.id?r:n));else if(t.operation==="delete"){const n=r.id||r;s(c,e(c).filter(o=>o.id!==n))}}}function De(t){if(!e(a)||!e(c))return;const r=t.payload;if(e(c).some(o=>o.id===r.pool_id)){if(t.operation==="create")s(m,[...e(m),r]);else if(t.operation==="update")s(m,e(m).map(o=>o.id===r.id?r:o));else if(t.operation==="delete"){const o=r.id||r;s(m,e(m).filter(N=>N.id!==o))}}}ze(()=>{W().then(()=>{e(a)?.events?.length&&setTimeout(()=>{J()},100)});const t=R.subscribeToEntity("enterprise",["update","delete"],Ie),r=R.subscribeToEntity("pool",["create","update","delete"],we),n=R.subscribeToEntity("instance",["create","update","delete"],De);k=()=>{t(),r(),n()}}),Ge(()=>{k&&(k(),k=null)}),je(()=>V(),()=>{s($,V().params.id)}),Re(),Ne();var K=ct();Ve(t=>{G(()=>Je.title=`${e(a),l(()=>e(a)?`${e(a).name} - Enterprise Details`:"Enterprise Details")??""} - GARM`)});var U=B(K),L=u(U),O=u(L),H=u(O),Pe=u(H);f(H);var Q=d(H,2),X=u(Q),Y=d(u(X),2),Te=u(Y,!0);f(Y),f(X),f(Q),f(O),f(L);var Me=d(L,2);{var Ce=t=>{var r=it();E(t,r)},ke=t=>{var r=le(),n=B(r);{var o=b=>{var _=lt(),A=u(_),q=u(A,!0);f(A),f(_),G(()=>ie(q,e(P))),E(b,_)},N=b=>{var _=le(),A=B(_);{var q=z=>{var ae=dt(),re=B(ae);{let I=v(()=>(e(a),l(()=>e(a).name||"Enterprise"))),w=v(()=>(e(a),l(()=>e(a).endpoint?.name))),He=v(()=>(Oe(pe),l(()=>pe("github"))));st(re,{get title(){return e(I)},get subtitle(){return`Endpoint: ${e(w)??""} • GitHub Enterprise`},get forgeIcon(){return e(He)},onEdit:()=>s(T,!0),onDelete:()=>s(M,!0)})}var se=d(re,2);tt(se,{get entity(){return e(a)},entityType:"enterprise"});var ne=d(se,2);{let I=v(()=>(e(a),l(()=>e(a).id||""))),w=v(()=>(e(a),l(()=>e(a).name||"")));at(ne,{get pools(){return e(c)},entityType:"enterprise",get entityId(){return e(I)},get entityName(){return e(w)},$$events:{addPool:$e}})}var oe=d(ne,2);nt(oe,{get instances(){return e(m)},entityType:"enterprise",onDeleteInstance:Ee});var Le=d(oe,2);{let I=v(()=>(e(a),l(()=>e(a)?.events)));rt(Le,{get events(){return e(I)},get eventsContainer(){return e(h)},set eventsContainer(w){s(h,w)},$$legacy:!0})}E(z,ae)};g(A,z=>{e(a)&&z(q)},!0)}E(b,_)};g(n,b=>{e(P)?b(o):b(N,!1)},!0)}E(t,r)};g(Me,t=>{e(S)?t(Ce):t(ke,!1)})}f(U);var Z=d(U,2);{var Ae=t=>{et(t,{get entity(){return e(a)},entityType:"enterprise",$$events:{close:()=>s(T,!1),submit:r=>he(r.detail)}})};g(Z,t=>{e(T)&&e(a)&&t(Ae)})}var ee=d(Z,2);{var Be=t=>{ce(t,{title:"Delete Enterprise",message:"Are you sure you want to delete this enterprise? This action cannot be undone and will remove all associated pools and instances.",get itemName(){return e(a),l(()=>e(a).name)},$$events:{close:()=>s(M,!1),confirm:be}})};g(ee,t=>{e(M)&&e(a)&&t(Be)})}var te=d(ee,2);{var Fe=t=>{ce(t,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(p),l(()=>e(p).name)},$$events:{close:()=>{s(x,!1),s(p,null)},confirm:_e}})};g(te,t=>{e(x)&&e(p)&&t(Fe)})}var Se=d(te,2);{var Ue=t=>{{let r=v(()=>(e(a),l(()=>e(a).id||"")));ot(t,{initialEntityType:"enterprise",get initialEntityId(){return e(r)},$$events:{close:()=>s(C,!1),submit:xe}})}};g(Se,t=>{e(C)&&e(a)&&t(Ue)})}G(()=>{Ye(Pe,"href",`${j}/enterprises`),ie(Te,(e(a),l(()=>e(a)?e(a).name:"Loading...")))}),E(fe,K),We(),ge()}export{Tt as component}; diff --git a/webapp/assets/_app/immutable/nodes/6.CtGX0qgG.js b/webapp/assets/_app/immutable/nodes/6.CtGX0qgG.js deleted file mode 100644 index 03f28a9f..00000000 --- a/webapp/assets/_app/immutable/nodes/6.CtGX0qgG.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as He}from"../chunks/B3Pzt0F_.js";import{p as Ne,o as qe,A as ze,l as Ge,a as je,f as B,h as Re,b as A,t as G,c as E,d as Ve,g as e,m as o,s,u as l,$ as We,j as u,r as f,k as d,v as oe,y as Je,B as le,q as v,n as Ke}from"../chunks/D8EpLgQ1.js";import{i as g,s as Oe,a as Qe}from"../chunks/5WA7h8uK.js";import{c as Xe,g as y}from"../chunks/CiE1LlKV.js";import{p as Ye}from"../chunks/C41YH50Q.js";import{g as de}from"../chunks/CTf6mQoE.js";import{b as j}from"../chunks/CoIRRsD9.js";import{U as Ze}from"../chunks/CclkODgu.js";import{D as ce}from"../chunks/KQ2xQpA3.js";import{E as et,P as tt,a as at}from"../chunks/BmGWMSQm.js";import{D as rt,I as st}from"../chunks/DDhBTdDt.js";import{g as pe}from"../chunks/BGVHQGl-.js";import{w as R}from"../chunks/u94nIB4-.js";import{t as F}from"../chunks/BEkVdVE1.js";import{C as nt}from"../chunks/CwqI2jFH.js";var it=B('

Loading enterprise...

'),ot=B('

'),lt=B(" ",1),dt=B(' ',1);function Dt(ue,fe){Ne(fe,!1);const[me,ve]=Oe(),V=()=>Qe(Ye,"$page",me),$=o();let a=o(null),c=o([]),m=o([]),S=o(!0),x=o(""),T=o(!1),P=o(!1),w=o(!1),M=o(!1),p=o(null),C=null,h=o();async function W(){if(e($))try{s(S,!0),s(x,"");const[t,r,n]=await Promise.all([y.getEnterprise(e($)),y.listEnterprisePools(e($)).catch(()=>[]),y.listEnterpriseInstances(e($)).catch(()=>[])]);s(a,t),s(c,r),s(m,n)}catch(t){s(x,t instanceof Error?t.message:"Failed to load enterprise")}finally{s(S,!1)}}function ge(t,r){const{events:n}=t;return{...r,events:n}}async function ye(t){if(e(a))try{await y.updateEnterprise(e(a).id,t),await W(),F.success("Enterprise Updated",`Enterprise ${e(a).name} has been updated successfully.`),s(T,!1)}catch(r){throw r}}async function he(){if(e(a)){try{await y.deleteEnterprise(e(a).id),de(`${j}/enterprises`)}catch(t){s(x,t instanceof Error?t.message:"Failed to delete enterprise")}s(P,!1)}}async function be(){if(e(p))try{await y.deleteInstance(e(p).name),F.success("Instance Deleted",`Instance ${e(p).name} has been deleted successfully.`),s(w,!1),s(p,null)}catch(t){const r=t instanceof Error?t.message:"Failed to delete instance";F.error("Delete Failed",r),s(w,!1),s(p,null)}}function _e(t){s(p,t),s(w,!0)}function Ee(){s(M,!0)}async function $e(t){try{if(!e(a))return;await y.createEnterprisePool(e(a).id,t.detail),F.success("Pool Created",`Pool has been created successfully for enterprise ${e(a).name}.`),s(M,!1)}catch(r){throw r}}function J(){e(h)&&Je(h,e(h).scrollTop=e(h).scrollHeight)}function xe(t){if(t.operation==="update"){const r=t.payload;if(e(a)&&r.id===e(a).id){const n=e(a).events?.length||0,i=r.events?.length||0;s(a,ge(e(a),r)),i>n&&setTimeout(()=>{J()},100)}}else if(t.operation==="delete"){const r=t.payload.id||t.payload;e(a)&&e(a).id===r&&de(`${j}/enterprises`)}}function we(t){if(!e(a))return;const r=t.payload;if(r.enterprise_id===e(a).id){if(t.operation==="create")s(c,[...e(c),r]);else if(t.operation==="update")s(c,e(c).map(n=>n.id===r.id?r:n));else if(t.operation==="delete"){const n=r.id||r;s(c,e(c).filter(i=>i.id!==n))}}}function Ie(t){if(!e(a)||!e(c))return;const r=t.payload;if(e(c).some(i=>i.id===r.pool_id)){if(t.operation==="create")s(m,[...e(m),r]);else if(t.operation==="update")s(m,e(m).map(i=>i.id===r.id?r:i));else if(t.operation==="delete"){const i=r.id||r;s(m,e(m).filter(N=>N.id!==i))}}}qe(()=>{W().then(()=>{e(a)?.events?.length&&setTimeout(()=>{J()},100)});const t=R.subscribeToEntity("enterprise",["update","delete"],xe),r=R.subscribeToEntity("pool",["create","update","delete"],we),n=R.subscribeToEntity("instance",["create","update","delete"],Ie);C=()=>{t(),r(),n()}}),ze(()=>{C&&(C(),C=null)}),Ge(()=>V(),()=>{s($,V().params.id)}),je(),He();var K=dt();Re(t=>{G(()=>We.title=`${e(a),l(()=>e(a)?`${e(a).name} - Enterprise Details`:"Enterprise Details")??""} - GARM`)});var U=A(K),L=u(U),O=u(L),H=u(O),De=u(H);f(H);var Q=d(H,2),X=u(Q),Y=d(u(X),2),Te=u(Y,!0);f(Y),f(X),f(Q),f(O),f(L);var Pe=d(L,2);{var Me=t=>{var r=it();E(t,r)},Ce=t=>{var r=le(),n=A(r);{var i=b=>{var _=ot(),k=u(_),q=u(k,!0);f(k),f(_),G(()=>oe(q,e(x))),E(b,_)},N=b=>{var _=le(),k=A(_);{var q=z=>{var ae=lt(),re=A(ae);{let I=v(()=>(e(a),l(()=>e(a).name||"Enterprise"))),D=v(()=>(e(a),l(()=>e(a).endpoint?.name))),Le=v(()=>(Ke(pe),l(()=>pe("github"))));rt(re,{get title(){return e(I)},get subtitle(){return`Endpoint: ${e(D)??""} • GitHub Enterprise`},get forgeIcon(){return e(Le)},onEdit:()=>s(T,!0),onDelete:()=>s(P,!0)})}var se=d(re,2);et(se,{get entity(){return e(a)},entityType:"enterprise"});var ne=d(se,2);{let I=v(()=>(e(a),l(()=>e(a).id||""))),D=v(()=>(e(a),l(()=>e(a).name||"")));tt(ne,{get pools(){return e(c)},entityType:"enterprise",get entityId(){return e(I)},get entityName(){return e(D)},$$events:{addPool:Ee}})}var ie=d(ne,2);st(ie,{get instances(){return e(m)},entityType:"enterprise",onDeleteInstance:_e});var Ue=d(ie,2);{let I=v(()=>(e(a),l(()=>e(a)?.events)));at(Ue,{get events(){return e(I)},get eventsContainer(){return e(h)},set eventsContainer(D){s(h,D)},$$legacy:!0})}E(z,ae)};g(k,z=>{e(a)&&z(q)},!0)}E(b,_)};g(n,b=>{e(x)?b(i):b(N,!1)},!0)}E(t,r)};g(Pe,t=>{e(S)?t(Me):t(Ce,!1)})}f(U);var Z=d(U,2);{var ke=t=>{Ze(t,{get entity(){return e(a)},entityType:"enterprise",$$events:{close:()=>s(T,!1),submit:r=>ye(r.detail)}})};g(Z,t=>{e(T)&&e(a)&&t(ke)})}var ee=d(Z,2);{var Ae=t=>{ce(t,{title:"Delete Enterprise",message:"Are you sure you want to delete this enterprise? This action cannot be undone and will remove all associated pools and instances.",get itemName(){return e(a),l(()=>e(a).name)},$$events:{close:()=>s(P,!1),confirm:he}})};g(ee,t=>{e(P)&&e(a)&&t(Ae)})}var te=d(ee,2);{var Fe=t=>{ce(t,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(p),l(()=>e(p).name)},$$events:{close:()=>{s(w,!1),s(p,null)},confirm:be}})};g(te,t=>{e(w)&&e(p)&&t(Fe)})}var Be=d(te,2);{var Se=t=>{{let r=v(()=>(e(a),l(()=>e(a).id||"")));nt(t,{initialEntityType:"enterprise",get initialEntityId(){return e(r)},$$events:{close:()=>s(M,!1),submit:$e}})}};g(Be,t=>{e(M)&&e(a)&&t(Se)})}G(()=>{Xe(De,"href",`${j}/enterprises`),oe(Te,(e(a),l(()=>e(a)?e(a).name:"Loading...")))}),E(ue,K),Ve(),ve()}export{Dt as component}; diff --git a/webapp/assets/_app/immutable/nodes/7.0w3i9VHx.js b/webapp/assets/_app/immutable/nodes/7.0w3i9VHx.js deleted file mode 100644 index 3b5d5acd..00000000 --- a/webapp/assets/_app/immutable/nodes/7.0w3i9VHx.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as Xe}from"../chunks/B3Pzt0F_.js";import{p as Ye,o as Ze,l as R,a as er,f as m,h as rr,t as re,g as e,e as ar,c as n,d as tr,m as i,$ as dr,j as a,k as d,s,r as t,z as L,u as h,C as lr,b as sr,D as or,v as $e,q as ir}from"../chunks/D8EpLgQ1.js";import{i as u,s as nr,a as vr}from"../chunks/5WA7h8uK.js";import{B as Ue,r as A,s as F,c as ze}from"../chunks/CiE1LlKV.js";import{b as P}from"../chunks/C6k1Q4We.js";import{p as mr}from"../chunks/D4Caz1gY.js";import{g as W}from"../chunks/CTf6mQoE.js";import{b as q}from"../chunks/CoIRRsD9.js";import{a as cr,b as ur}from"../chunks/duD3WMbl.js";import{t as pr}from"../chunks/BEkVdVE1.js";var br=m('

Username is required

'),gr=m('

Please enter a valid email address

'),fr=m('

Full name is required

'),xr=m('

Password must be at least 8 characters long

'),hr=m('

Passwords do not match

'),yr=lr(' Advanced Configuration (Optional)',1),kr=m('

URL where runners can fetch metadata and setup information.

URL where runners send status updates and lifecycle events.

URL where GitHub/Gitea will send webhook events for job notifications.

'),_r=m("
  • Enter a username
  • "),wr=m("
  • Enter a valid email address
  • "),$r=m("
  • Enter your full name
  • "),Ur=m("
  • Enter a password with at least 8 characters
  • "),zr=m("
  • Confirm your password
  • "),Mr=m('

    Please complete all required fields

    '),Rr=m('

    '),Ar=m('
    GARM

    Welcome to GARM

    Complete the first-run setup to get started

    First-Run Initialization

    GARM needs to be initialized before first use. This will create the admin user and generate a unique controller ID for this installation.

    This will create the admin user, generate a unique controller ID, and configure the required URLs for your GARM installation.
    Make sure to remember these credentials as they cannot be recovered.

    ');function Sr(Me,Re){Ye(Re,!1);const[Ae,Pe]=nr(),C=()=>vr(cr,"$authStore",Ae),k=i(),_=i(),w=i(),$=i(),U=i(),N=i();let g=i("admin"),p=i("admin@garm.local"),c=i(""),f=i(""),x=i("Administrator"),S=i(!1),H=i(""),T=i(!1),E=i(""),I=i(""),V=i("");async function qe(){if(e(N))try{s(S,!0),s(H,""),await ur.initialize(e(g).trim(),e(p).trim(),e(c),e(x).trim(),{callbackUrl:e(E).trim()||void 0,metadataUrl:e(I).trim()||void 0,webhookUrl:e(V).trim()||void 0}),pr.success("GARM Initialized","GARM has been successfully initialized. Welcome!"),W(`${q}/`)}catch(r){s(H,r instanceof Error?r.message:"Failed to initialize GARM")}finally{s(S,!1)}}Ze(()=>{if(C().isAuthenticated){W(`${q}/`);return}!C().needsInitialization&&!C().loading&&W(`${q}/login`)}),R(()=>(e(E),e(I),e(V)),()=>{if(typeof window<"u"){const r=window.location.origin;e(E)||s(E,`${r}/api/v1/callbacks`),e(I)||s(I,`${r}/api/v1/metadata`),e(V)||s(V,`${r}/webhooks`)}}),R(()=>e(p),()=>{s(k,e(p).trim()!==""&&e(p).includes("@"))}),R(()=>e(c),()=>{s(_,e(c).length>=8)}),R(()=>(e(f),e(c)),()=>{s(w,e(f).length>0&&e(c)===e(f))}),R(()=>e(g),()=>{s($,e(g).trim()!=="")}),R(()=>e(x),()=>{s(U,e(x).trim()!=="")}),R(()=>(e($),e(k),e(U),e(_),e(w)),()=>{s(N,e($)&&e(k)&&e(U)&&e(_)&&e(w))}),R(()=>(C(),q),()=>{C().isAuthenticated?W(`${q}/`):!C().needsInitialization&&!C().loading&&W(`${q}/login`)}),er(),Xe();var ae=Ar();rr(r=>{dr.title="Initialize GARM - First Run Setup"});var te=a(ae),me=a(te),ce=a(me),Ce=d(ce,2);t(me),L(4),t(te);var ue=d(te,2),pe=d(a(ue),2),de=a(pe),le=a(de),be=d(a(le),2),O=a(be);A(O);var Ge=d(O,2);{var Le=r=>{var l=br();n(r,l)};u(Ge,r=>{e($),e(g),h(()=>!e($)&&e(g).length>0)&&r(Le)})}t(be),t(le);var se=d(le,2),ge=d(a(se),2),J=a(ge);A(J);var Ee=d(J,2);{var Ie=r=>{var l=gr();n(r,l)};u(Ee,r=>{e(k),e(p),h(()=>!e(k)&&e(p).length>0)&&r(Ie)})}t(ge),t(se);var oe=d(se,2),fe=d(a(oe),2),K=a(fe);A(K);var Ve=d(K,2);{var Be=r=>{var l=fr();n(r,l)};u(Ve,r=>{e(U),e(x),h(()=>!e(U)&&e(x).length>0)&&r(Be)})}t(fe),t(oe);var ie=d(oe,2),xe=d(a(ie),2),Q=a(xe);A(Q);var Fe=d(Q,2);{var Ne=r=>{var l=xr();n(r,l)};u(Fe,r=>{e(_),e(c),h(()=>!e(_)&&e(c).length>0)&&r(Ne)})}t(xe),t(ie);var ne=d(ie,2),he=d(a(ne),2),X=a(he);A(X);var Se=d(X,2);{var je=r=>{var l=hr();n(r,l)};u(Se,r=>{e(w),e(f),h(()=>!e(w)&&e(f).length>0)&&r(je)})}t(he),t(ne);var ve=d(ne,2),ye=a(ve);Ue(ye,{type:"button",variant:"ghost",size:"sm",$$events:{click:()=>s(T,!e(T))},children:(r,l)=>{var b=yr(),v=sr(b);L(),re(()=>F(v,0,`w-4 h-4 mr-2 transition-transform ${e(T)?"rotate-90":""}`)),n(r,b)},$$slots:{default:!0}});var De=d(ye,2);{var We=r=>{var l=kr(),b=a(l),v=a(b),z=d(a(v),2),G=a(z);A(G),L(2),t(z),t(v);var B=d(v,2),Y=d(a(B),2),j=a(Y);A(j),L(2),t(Y),t(B);var Z=d(B,2),D=d(a(Z),2),ee=a(D);A(ee),L(2),t(D),t(Z),t(b),t(l),P(G,()=>e(I),M=>s(I,M)),P(j,()=>e(E),M=>s(E,M)),P(ee,()=>e(V),M=>s(V,M)),n(r,l)};u(De,r=>{e(T)&&r(We)})}t(ve);var ke=d(ve,2);{var He=r=>{var l=Mr(),b=a(l),v=d(a(b),2),z=d(a(v),2),G=a(z),B=a(G);{var Y=o=>{var y=_r();n(o,y)};u(B,o=>{e($)||o(Y)})}var j=d(B,2);{var Z=o=>{var y=wr();n(o,y)};u(j,o=>{e(k)||o(Z)})}var D=d(j,2);{var ee=o=>{var y=$r();n(o,y)};u(D,o=>{e(U)||o(ee)})}var M=d(D,2);{var Je=o=>{var y=Ur();n(o,y)};u(M,o=>{e(_)||o(Je)})}var Ke=d(M,2);{var Qe=o=>{var y=zr();n(o,y)};u(Ke,o=>{e(w)||o(Qe)})}t(G),t(z),t(v),t(b),t(l),n(r,l)};u(ke,r=>{e(N),e(g),e(p),e(x),e(c),e(f),h(()=>!e(N)&&(e(g).length>0||e(p).length>0||e(x).length>0||e(c).length>0||e(f).length>0))&&r(He)})}var _e=d(ke,2);{var Te=r=>{var l=Rr(),b=a(l),v=d(a(b),2),z=a(v),G=a(z,!0);t(z),t(v),t(b),t(l),re(()=>$e(G,e(H))),n(r,l)};u(_e,r=>{e(H)&&r(Te)})}var we=d(_e,2),Oe=a(we);{let r=ir(()=>!e(N)||e(S));Ue(Oe,{type:"submit",variant:"primary",size:"lg",fullWidth:!0,get loading(){return e(S)},get disabled(){return e(r)},children:(l,b)=>{L();var v=or();re(()=>$e(v,e(S)?"Initializing...":"Initialize GARM")),n(l,v)},$$slots:{default:!0}})}t(we),t(de),L(2),t(pe),t(ue),t(ae),re(()=>{ze(ce,"src",`${q??""}/assets/garm-light.svg`),ze(Ce,"src",`${q??""}/assets/garm-dark.svg`),F(O,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e($),e(g),h(()=>!e($)&&e(g).length>0?"border-red-300 dark:border-red-600":"")??""}`),F(J,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e(k),e(p),h(()=>!e(k)&&e(p).length>0?"border-red-300 dark:border-red-600":"")??""}`),F(K,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e(U),e(x),h(()=>!e(U)&&e(x).length>0?"border-red-300 dark:border-red-600":"")??""}`),F(Q,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e(_),e(c),h(()=>!e(_)&&e(c).length>0?"border-red-300 dark:border-red-600":"")??""}`),F(X,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e(w),e(f),h(()=>!e(w)&&e(f).length>0?"border-red-300 dark:border-red-600":"")??""}`)}),P(O,()=>e(g),r=>s(g,r)),P(J,()=>e(p),r=>s(p,r)),P(K,()=>e(x),r=>s(x,r)),P(Q,()=>e(c),r=>s(c,r)),P(X,()=>e(f),r=>s(f,r)),ar("submit",de,mr(qe)),n(Me,ae),tr(),Pe()}export{Sr as component}; diff --git a/webapp/assets/_app/immutable/nodes/7.CaVS6POQ.js b/webapp/assets/_app/immutable/nodes/7.CaVS6POQ.js new file mode 100644 index 00000000..93f6a61b --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/7.CaVS6POQ.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Xe}from"../chunks/B3Pzt0F_.js";import{p as Ye,o as Ze,l as R,a as er,f as m,h as rr,t as re,g as e,e as ar,c as n,d as tr,m as i,$ as dr,j as a,k as d,s,r as t,z as L,u as h,C as lr,b as sr,D as or,v as $e,q as ir}from"../chunks/D8EpLgQ1.js";import{i as u,s as nr,a as vr}from"../chunks/5WA7h8uK.js";import{B as Ue,r as A,s as N,c as ze}from"../chunks/CiE1LlKV.js";import{b as P}from"../chunks/C6k1Q4We.js";import{p as mr}from"../chunks/D4Caz1gY.js";import{g as W}from"../chunks/DXCC0cSN.js";import{b as q}from"../chunks/CRhkqW2i.js";import{a as cr,b as ur}from"../chunks/duD3WMbl.js";import{t as pr}from"../chunks/BEkVdVE1.js";import{e as br}from"../chunks/BZiHL9L3.js";var gr=m('

    Username is required

    '),fr=m('

    Please enter a valid email address

    '),xr=m('

    Full name is required

    '),hr=m('

    Password must be at least 8 characters long

    '),yr=m('

    Passwords do not match

    '),kr=lr(' Advanced Configuration (Optional)',1),_r=m('

    URL where runners can fetch metadata and setup information.

    URL where runners send status updates and lifecycle events.

    URL where GitHub/Gitea will send webhook events for job notifications.

    '),wr=m("
  • Enter a username
  • "),$r=m("
  • Enter a valid email address
  • "),Ur=m("
  • Enter your full name
  • "),zr=m("
  • Enter a password with at least 8 characters
  • "),Mr=m("
  • Confirm your password
  • "),Rr=m('

    Please complete all required fields

    '),Ar=m('

    '),Pr=m('
    GARM

    Welcome to GARM

    Complete the first-run setup to get started

    First-Run Initialization

    GARM needs to be initialized before first use. This will create the admin user and generate a unique controller ID for this installation.

    This will create the admin user, generate a unique controller ID, and configure the required URLs for your GARM installation.
    Make sure to remember these credentials as they cannot be recovered.

    ');function Dr(Me,Re){Ye(Re,!1);const[Ae,Pe]=nr(),C=()=>vr(cr,"$authStore",Ae),k=i(),_=i(),w=i(),$=i(),U=i(),S=i();let g=i("admin"),p=i("admin@garm.local"),c=i(""),f=i(""),x=i("Administrator"),j=i(!1),H=i(""),T=i(!1),I=i(""),E=i(""),V=i("");async function qe(){if(e(S))try{s(j,!0),s(H,""),await ur.initialize(e(g).trim(),e(p).trim(),e(c),e(x).trim(),{callbackUrl:e(I).trim()||void 0,metadataUrl:e(E).trim()||void 0,webhookUrl:e(V).trim()||void 0}),pr.success("GARM Initialized","GARM has been successfully initialized. Welcome!"),W(`${q}/`)}catch(r){s(H,br(r))}finally{s(j,!1)}}Ze(()=>{if(C().isAuthenticated){W(`${q}/`);return}!C().needsInitialization&&!C().loading&&W(`${q}/login`)}),R(()=>(e(I),e(E),e(V)),()=>{if(typeof window<"u"){const r=window.location.origin;e(I)||s(I,`${r}/api/v1/callbacks`),e(E)||s(E,`${r}/api/v1/metadata`),e(V)||s(V,`${r}/webhooks`)}}),R(()=>e(p),()=>{s(k,e(p).trim()!==""&&e(p).includes("@"))}),R(()=>e(c),()=>{s(_,e(c).length>=8)}),R(()=>(e(f),e(c)),()=>{s(w,e(f).length>0&&e(c)===e(f))}),R(()=>e(g),()=>{s($,e(g).trim()!=="")}),R(()=>e(x),()=>{s(U,e(x).trim()!=="")}),R(()=>(e($),e(k),e(U),e(_),e(w)),()=>{s(S,e($)&&e(k)&&e(U)&&e(_)&&e(w))}),R(()=>(C(),q),()=>{C().isAuthenticated?W(`${q}/`):!C().needsInitialization&&!C().loading&&W(`${q}/login`)}),er(),Xe();var ae=Pr();rr(r=>{dr.title="Initialize GARM - First Run Setup"});var te=a(ae),me=a(te),ce=a(me),Ce=d(ce,2);t(me),L(4),t(te);var ue=d(te,2),pe=d(a(ue),2),de=a(pe),le=a(de),be=d(a(le),2),O=a(be);A(O);var Ge=d(O,2);{var Le=r=>{var l=gr();n(r,l)};u(Ge,r=>{e($),e(g),h(()=>!e($)&&e(g).length>0)&&r(Le)})}t(be),t(le);var se=d(le,2),ge=d(a(se),2),J=a(ge);A(J);var Ie=d(J,2);{var Ee=r=>{var l=fr();n(r,l)};u(Ie,r=>{e(k),e(p),h(()=>!e(k)&&e(p).length>0)&&r(Ee)})}t(ge),t(se);var oe=d(se,2),fe=d(a(oe),2),K=a(fe);A(K);var Ve=d(K,2);{var Be=r=>{var l=xr();n(r,l)};u(Ve,r=>{e(U),e(x),h(()=>!e(U)&&e(x).length>0)&&r(Be)})}t(fe),t(oe);var ie=d(oe,2),xe=d(a(ie),2),Q=a(xe);A(Q);var Ne=d(Q,2);{var Se=r=>{var l=hr();n(r,l)};u(Ne,r=>{e(_),e(c),h(()=>!e(_)&&e(c).length>0)&&r(Se)})}t(xe),t(ie);var ne=d(ie,2),he=d(a(ne),2),X=a(he);A(X);var je=d(X,2);{var Fe=r=>{var l=yr();n(r,l)};u(je,r=>{e(w),e(f),h(()=>!e(w)&&e(f).length>0)&&r(Fe)})}t(he),t(ne);var ve=d(ne,2),ye=a(ve);Ue(ye,{type:"button",variant:"ghost",size:"sm",$$events:{click:()=>s(T,!e(T))},children:(r,l)=>{var b=kr(),v=sr(b);L(),re(()=>N(v,0,`w-4 h-4 mr-2 transition-transform ${e(T)?"rotate-90":""}`)),n(r,b)},$$slots:{default:!0}});var De=d(ye,2);{var We=r=>{var l=_r(),b=a(l),v=a(b),z=d(a(v),2),G=a(z);A(G),L(2),t(z),t(v);var B=d(v,2),Y=d(a(B),2),F=a(Y);A(F),L(2),t(Y),t(B);var Z=d(B,2),D=d(a(Z),2),ee=a(D);A(ee),L(2),t(D),t(Z),t(b),t(l),P(G,()=>e(E),M=>s(E,M)),P(F,()=>e(I),M=>s(I,M)),P(ee,()=>e(V),M=>s(V,M)),n(r,l)};u(De,r=>{e(T)&&r(We)})}t(ve);var ke=d(ve,2);{var He=r=>{var l=Rr(),b=a(l),v=d(a(b),2),z=d(a(v),2),G=a(z),B=a(G);{var Y=o=>{var y=wr();n(o,y)};u(B,o=>{e($)||o(Y)})}var F=d(B,2);{var Z=o=>{var y=$r();n(o,y)};u(F,o=>{e(k)||o(Z)})}var D=d(F,2);{var ee=o=>{var y=Ur();n(o,y)};u(D,o=>{e(U)||o(ee)})}var M=d(D,2);{var Je=o=>{var y=zr();n(o,y)};u(M,o=>{e(_)||o(Je)})}var Ke=d(M,2);{var Qe=o=>{var y=Mr();n(o,y)};u(Ke,o=>{e(w)||o(Qe)})}t(G),t(z),t(v),t(b),t(l),n(r,l)};u(ke,r=>{e(S),e(g),e(p),e(x),e(c),e(f),h(()=>!e(S)&&(e(g).length>0||e(p).length>0||e(x).length>0||e(c).length>0||e(f).length>0))&&r(He)})}var _e=d(ke,2);{var Te=r=>{var l=Ar(),b=a(l),v=d(a(b),2),z=a(v),G=a(z,!0);t(z),t(v),t(b),t(l),re(()=>$e(G,e(H))),n(r,l)};u(_e,r=>{e(H)&&r(Te)})}var we=d(_e,2),Oe=a(we);{let r=ir(()=>!e(S)||e(j));Ue(Oe,{type:"submit",variant:"primary",size:"lg",fullWidth:!0,get loading(){return e(j)},get disabled(){return e(r)},children:(l,b)=>{L();var v=or();re(()=>$e(v,e(j)?"Initializing...":"Initialize GARM")),n(l,v)},$$slots:{default:!0}})}t(we),t(de),L(2),t(pe),t(ue),t(ae),re(()=>{ze(ce,"src",`${q??""}/assets/garm-light.svg`),ze(Ce,"src",`${q??""}/assets/garm-dark.svg`),N(O,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e($),e(g),h(()=>!e($)&&e(g).length>0?"border-red-300 dark:border-red-600":"")??""}`),N(J,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e(k),e(p),h(()=>!e(k)&&e(p).length>0?"border-red-300 dark:border-red-600":"")??""}`),N(K,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e(U),e(x),h(()=>!e(U)&&e(x).length>0?"border-red-300 dark:border-red-600":"")??""}`),N(Q,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e(_),e(c),h(()=>!e(_)&&e(c).length>0?"border-red-300 dark:border-red-600":"")??""}`),N(X,1,`appearance-none block w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white sm:text-sm ${e(w),e(f),h(()=>!e(w)&&e(f).length>0?"border-red-300 dark:border-red-600":"")??""}`)}),P(O,()=>e(g),r=>s(g,r)),P(J,()=>e(p),r=>s(p,r)),P(K,()=>e(x),r=>s(x,r)),P(Q,()=>e(c),r=>s(c,r)),P(X,()=>e(f),r=>s(f,r)),ar("submit",de,mr(qe)),n(Me,ae),tr(),Pe()}export{Dr as component}; diff --git a/webapp/assets/_app/immutable/nodes/8.BiZNKYxk.js b/webapp/assets/_app/immutable/nodes/8.BiZNKYxk.js deleted file mode 100644 index 38d013cb..00000000 --- a/webapp/assets/_app/immutable/nodes/8.BiZNKYxk.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as z}from"../chunks/B3Pzt0F_.js";import{p as J,f as C,c as x,d as K,j as y,n as _,u as f,r as b,t as A,v as L,B as ce,b as O,o as de,A as ue,l as w,a as me,h as pe,g as e,m as d,$ as fe,q as ge,k as S,s}from"../chunks/D8EpLgQ1.js";import{p as ve,i as D}from"../chunks/5WA7h8uK.js";import{c as T,g as B}from"../chunks/CiE1LlKV.js";import{D as he}from"../chunks/KQ2xQpA3.js";import{P as _e}from"../chunks/CO4LUyTP.js";import{w as ye}from"../chunks/u94nIB4-.js";import{t as be}from"../chunks/BEkVdVE1.js";import{D as xe,G as Ce,a as ke}from"../chunks/C9DJVOi1.js";import{E as Pe}from"../chunks/B7ITzBt8.js";import{S as H}from"../chunks/BE4wujub.js";import{b as W}from"../chunks/CoIRRsD9.js";var Ie=C(' '),we=C(' '),Se=C('-'),Te=C('
    ');function De($,P){J(P,!1);let a=ve(P,"item",8);z();var p=Te(),I=y(p);{var u=r=>{var n=Ie(),h=y(n);b(n),A(()=>{T(n,"href",`${W??""}/pools/${_(a()),f(()=>a().pool_id)??""}`),T(n,"title",`Pool: ${_(a()),f(()=>a().pool_id)??""}`),L(h,`Pool: ${_(a()),f(()=>a().pool_id)??""}`)}),x(r,n)},k=r=>{var n=ce(),h=O(n);{var o=l=>{var i=we(),m=y(i);b(i),A(()=>{T(i,"href",`${W??""}/scalesets/${_(a()),f(()=>a().scale_set_id)??""}`),T(i,"title",`Scale Set: ${_(a()),f(()=>a().scale_set_id)??""}`),L(m,`Scale Set: ${_(a()),f(()=>a().scale_set_id)??""}`)}),x(l,i)},g=l=>{var i=Se();x(l,i)};D(h,l=>{_(a()),f(()=>a()?.scale_set_id)?l(o):l(g,!1)},!0)}x(r,n)};D(I,r=>{_(a()),f(()=>a()?.pool_id)?r(u):r(k,!1)})}b(p),x($,p),K()}var $e=C('

    Error

    '),Ee=C('
    ',1);function Je($,P){J(P,!1);const a=d(),p=d(),I=d();let u=d([]),k=d(!0),r=d(""),n=d(""),h=null,o=d(1),g=d(25),l=d(""),i=d(!1),m=d(null);async function M(){try{s(k,!0),s(r,""),s(u,await B.listInstances())}catch(t){s(r,t instanceof Error?t.message:"Failed to load instances")}finally{s(k,!1)}}function F(t){s(m,t),s(i,!0)}async function Q(){if(e(m))try{await B.deleteInstance(e(m).name),be.success("Instance Deleted",`Instance ${e(m).name} has been deleted successfully.`),s(i,!1),s(m,null)}catch(t){s(r,t instanceof Error?t.message:"Failed to delete instance")}}const U=[{key:"name",title:"Name",cellComponent:Pe,cellProps:{entityType:"instance",showId:!0}},{key:"pool_scale_set",title:"Pool/Scale Set",flexible:!0,cellComponent:De},{key:"created",title:"Created",cellComponent:Ce,cellProps:{field:"created_at",type:"date"}},{key:"status",title:"Status",cellComponent:H,cellProps:{statusType:"instance",statusField:"status"}},{key:"runner_status",title:"Runner Status",cellComponent:H,cellProps:{statusType:"instance",statusField:"runner_status"}},{key:"actions",title:"Actions",align:"right",cellComponent:ke,cellProps:{actions:[{type:"delete",title:"Delete",ariaLabel:"Delete instance",action:"delete"}]}}],V={entityType:"instance",primaryText:{field:"name",isClickable:!0,href:"/instances/{name}"},secondaryText:{field:"provider_id"},badges:[{type:"status",field:"status"},{type:"status",field:"runner_status"}],actions:[{type:"delete",handler:t=>F(t)}]};function X(t){s(l,t.detail.term),s(o,1)}function Y(t){s(o,t.detail.page)}function Z(t){s(g,t.detail.perPage),s(o,1)}async function ee(){try{await M()}catch(t){console.error("Retry failed:",t)}}function te(t){}function ae(t){F(t.detail.item)}function se(t){if(t.operation==="create"){const c=t.payload;s(u,[...e(u),c])}else if(t.operation==="update"){const c=t.payload;s(u,e(u).map(v=>v.name===c.name?c:v))}else if(t.operation==="delete"){const c=t.payload.name||t.payload;s(u,e(u).filter(v=>v.name!==c))}}de(()=>{M(),h=ye.subscribeToEntity("instance",["create","update","delete"],se)}),ue(()=>{h&&(h(),h=null)}),w(()=>(e(u),e(l),e(n)),()=>{s(a,e(u).filter(t=>{const c=e(l)===""||t.name?.toLowerCase().includes(e(l).toLowerCase())||t.provider_id?.toLowerCase().includes(e(l).toLowerCase()),v=e(n)===""||t.status===e(n)||t.runner_status===e(n);return c&&v}))}),w(()=>(e(a),e(g)),()=>{s(p,Math.ceil(e(a).length/e(g)))}),w(()=>(e(o),e(p)),()=>{e(o)>e(p)&&e(p)>0&&s(o,e(p))}),w(()=>(e(a),e(o),e(g)),()=>{s(I,e(a).slice((e(o)-1)*e(g),e(o)*e(g)))}),me(),z();var R=Ee();pe(t=>{fe.title="Instances - GARM"});var E=O(R),N=y(E);_e(N,{title:"Runner Instances",description:"Monitor your running instances",showAction:!1});var G=S(N,2);{var re=t=>{var c=$e(),v=y(c),q=y(v),j=S(y(q),2),ie=y(j,!0);b(j),b(q),b(v),b(c),A(()=>L(ie,e(r))),x(t,c)};D(G,t=>{e(r)&&t(re)})}var ne=S(G,2);{let t=ge(()=>!!e(r));xe(ne,{get columns(){return U},get data(){return e(I)},get loading(){return e(k)},get error(){return e(r)},get searchTerm(){return e(l)},searchPlaceholder:"Search instances...",get currentPage(){return e(o)},get perPage(){return e(g)},get totalPages(){return e(p)},get totalItems(){return e(a),f(()=>e(a).length)},itemName:"instances",emptyIconType:"cog",get showRetry(){return e(t)},get mobileCardConfig(){return V},$$events:{search:X,pageChange:Y,perPageChange:Z,retry:ee,edit:te,delete:ae}})}b(E);var le=S(E,2);{var oe=t=>{he(t,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(m),f(()=>e(m).name)},$$events:{close:()=>{s(i,!1),s(m,null)},confirm:Q}})};D(le,t=>{e(i)&&e(m)&&t(oe)})}x($,R),K()}export{Je as component}; diff --git a/webapp/assets/_app/immutable/nodes/8.W6llQu20.js b/webapp/assets/_app/immutable/nodes/8.W6llQu20.js new file mode 100644 index 00000000..2b4194a5 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/8.W6llQu20.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as z}from"../chunks/B3Pzt0F_.js";import{p as J,f as C,c as x,d as K,j as y,n as _,u as f,r as b,t as E,v as L,B as ce,b as O,o as de,A as ue,l as S,a as me,h as pe,g as e,m as u,$ as fe,q as ge,k as w,s}from"../chunks/D8EpLgQ1.js";import{p as ve,i as D}from"../chunks/5WA7h8uK.js";import{c as T,g as B}from"../chunks/CiE1LlKV.js";import{D as he}from"../chunks/KQ2xQpA3.js";import{P as _e}from"../chunks/CO4LUyTP.js";import{w as ye}from"../chunks/u94nIB4-.js";import{t as be}from"../chunks/BEkVdVE1.js";import{D as xe,G as Ce,a as Pe}from"../chunks/BrNfsPe8.js";import{e as ke}from"../chunks/BZiHL9L3.js";import{E as Ie}from"../chunks/D4PaGKsV.js";import{S as H}from"../chunks/MCv1Wq2q.js";import{b as W}from"../chunks/CRhkqW2i.js";var Se=C(' '),we=C(' '),Te=C('-'),De=C('
    ');function $e($,k){J(k,!1);let a=ve(k,"item",8);z();var m=De(),I=y(m);{var i=r=>{var p=Se(),v=y(p);b(p),E(()=>{T(p,"href",`${W??""}/pools/${_(a()),f(()=>a().pool_id)??""}`),T(p,"title",`Pool: ${_(a()),f(()=>a().pool_id)??""}`),L(v,`Pool: ${_(a()),f(()=>a().pool_id)??""}`)}),x(r,p)},P=r=>{var p=ce(),v=O(p);{var l=n=>{var o=we(),c=y(o);b(o),E(()=>{T(o,"href",`${W??""}/scalesets/${_(a()),f(()=>a().scale_set_id)??""}`),T(o,"title",`Scale Set: ${_(a()),f(()=>a().scale_set_id)??""}`),L(c,`Scale Set: ${_(a()),f(()=>a().scale_set_id)??""}`)}),x(n,o)},g=n=>{var o=Te();x(n,o)};D(v,n=>{_(a()),f(()=>a()?.scale_set_id)?n(l):n(g,!1)},!0)}x(r,p)};D(I,r=>{_(a()),f(()=>a()?.pool_id)?r(i):r(P,!1)})}b(m),x($,m),K()}var Ae=C('

    Error

    '),Ee=C('
    ',1);function Oe($,k){J(k,!1);const a=u(),m=u(),I=u();let i=u([]),P=u(!0),r=u(""),p="",v=null,l=u(1),g=u(25),n=u(""),o=u(!1),c=u(null);async function M(){try{s(P,!0),s(r,""),s(i,await B.listInstances())}catch(t){s(r,t instanceof Error?t.message:"Failed to load instances")}finally{s(P,!1)}}function R(t){s(c,t),s(o,!0)}async function Q(){if(e(c))try{await B.deleteInstance(e(c).name),be.success("Instance Deleted",`Instance ${e(c).name} has been deleted successfully.`)}catch(t){s(r,ke(t))}finally{s(o,!1),s(c,null)}}const U=[{key:"name",title:"Name",cellComponent:Ie,cellProps:{entityType:"instance",showId:!0}},{key:"pool_scale_set",title:"Pool/Scale Set",flexible:!0,cellComponent:$e},{key:"created",title:"Created",cellComponent:Ce,cellProps:{field:"created_at",type:"date"}},{key:"status",title:"Status",cellComponent:H,cellProps:{statusType:"instance",statusField:"status"}},{key:"runner_status",title:"Runner Status",cellComponent:H,cellProps:{statusType:"instance",statusField:"runner_status"}},{key:"actions",title:"Actions",align:"right",cellComponent:Pe,cellProps:{actions:[{type:"delete",title:"Delete",ariaLabel:"Delete instance",action:"delete"}]}}],V={entityType:"instance",primaryText:{field:"name",isClickable:!0,href:"/instances/{name}"},secondaryText:{field:"provider_id"},badges:[{type:"status",field:"status"},{type:"status",field:"runner_status"}],actions:[{type:"delete",handler:t=>R(t)}]};function X(t){s(n,t.detail.term),s(l,1)}function Y(t){s(l,t.detail.page)}function Z(t){s(g,t.detail.perPage),s(l,1)}async function ee(){try{await M()}catch(t){console.error("Retry failed:",t)}}function te(t){}function ae(t){R(t.detail.item)}function se(t){if(t.operation==="create"){const d=t.payload;s(i,[...e(i),d])}else if(t.operation==="update"){const d=t.payload;s(i,e(i).map(h=>h.name===d.name?d:h))}else if(t.operation==="delete"){const d=t.payload.name||t.payload;s(i,e(i).filter(h=>h.name!==d))}}de(()=>{M(),v=ye.subscribeToEntity("instance",["create","update","delete"],se)}),ue(()=>{v&&(v(),v=null)}),S(()=>(e(i),e(n)),()=>{s(a,e(i).filter(t=>(e(n)===""||t.name?.toLowerCase().includes(e(n).toLowerCase())||t.provider_id?.toLowerCase().includes(e(n).toLowerCase()))&&p===""))}),S(()=>(e(a),e(g)),()=>{s(m,Math.ceil(e(a).length/e(g)))}),S(()=>(e(l),e(m)),()=>{e(l)>e(m)&&e(m)>0&&s(l,e(m))}),S(()=>(e(a),e(l),e(g)),()=>{s(I,e(a).slice((e(l)-1)*e(g),e(l)*e(g)))}),me(),z();var F=Ee();pe(t=>{fe.title="Instances - GARM"});var A=O(F),N=y(A);_e(N,{title:"Runner Instances",description:"Monitor your running instances",showAction:!1});var G=w(N,2);{var re=t=>{var d=Ae(),h=y(d),q=y(h),j=w(y(q),2),ie=y(j,!0);b(j),b(q),b(h),b(d),E(()=>L(ie,e(r))),x(t,d)};D(G,t=>{e(r)&&t(re)})}var ne=w(G,2);{let t=ge(()=>!!e(r));xe(ne,{get columns(){return U},get data(){return e(I)},get loading(){return e(P)},get error(){return e(r)},get searchTerm(){return e(n)},searchPlaceholder:"Search instances...",get currentPage(){return e(l)},get perPage(){return e(g)},get totalPages(){return e(m)},get totalItems(){return e(a),f(()=>e(a).length)},itemName:"instances",emptyIconType:"cog",get showRetry(){return e(t)},get mobileCardConfig(){return V},$$events:{search:X,pageChange:Y,perPageChange:Z,retry:ee,edit:te,delete:ae}})}b(A);var le=w(A,2);{var oe=t=>{he(t,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(c),f(()=>e(c).name)},$$events:{close:()=>{s(o,!1),s(c,null)},confirm:Q}})};D(le,t=>{e(o)&&e(c)&&t(oe)})}x($,F),K()}export{Oe as component}; diff --git a/webapp/assets/_app/immutable/nodes/9.DfrxaqP7.js b/webapp/assets/_app/immutable/nodes/9.DfrxaqP7.js new file mode 100644 index 00000000..6f22cc95 --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/9.DfrxaqP7.js @@ -0,0 +1 @@ +import"../chunks/DsnmJJEf.js";import{i as Te}from"../chunks/B3Pzt0F_.js";import{p as Ue,o as Le,A as Oe,l as Pe,a as Ve,f as g,h as ze,b as O,t as f,c as v,d as Re,g as t,m as M,s as p,u as i,$ as qe,j as s,r as a,k as r,v as c,B as Et,n as b,e as Fe,q as Tt,D as Ut}from"../chunks/D8EpLgQ1.js";import{i as _,s as Ge,a as He}from"../chunks/5WA7h8uK.js";import{w as We,e as Lt,i as Ot}from"../chunks/u94nIB4-.js";import{c as nt,g as Pt,s as Vt}from"../chunks/CiE1LlKV.js";import{b as Je}from"../chunks/BAg1iRPq.js";import{p as Ke}from"../chunks/BE8f1Riw.js";import{g as zt}from"../chunks/DXCC0cSN.js";import{b as $}from"../chunks/CRhkqW2i.js";import{D as Qe}from"../chunks/KQ2xQpA3.js";import{g as P,f as V}from"../chunks/ow_oMtSd.js";import{s as Rt,b as A,B as qt,d as Ft}from"../chunks/BGVHQGl-.js";import{e as Xe}from"../chunks/BZiHL9L3.js";var Ye=g('

    Error

    '),Ze=g('

    Loading instance details...

    '),ta=g(' '),ea=g(' '),aa=g('-'),sa=g('
    Updated At:
    '),ra=g('
    '),da=g('
    Network Addresses:
    '),ia=g('
    Network Addresses:
    No addresses available
    '),na=g('
    OS Type:
    '),oa=g('
    OS Name:
    '),la=g('
    OS Version:
    '),va=g('
    OS Architecture:
    '),xa=g('

    '),ca=g('

    Status Messages

    '),ma=g('

    Status Messages

    No status messages available

    '),ga=g('

    Instance Information

    ID:
    Name:
    Provider ID:
    Provider:
    Pool/Scale Set:
    Agent ID:
    Created At:

    Status & Network

    Instance Status:
    Runner Status:
    ',1),_a=g('
    Instance not found.
    '),ua=g(' ',1);function $a(Gt,Ht){Ue(Ht,!1);const[Wt,Jt]=Ge(),ot=()=>He(Ke,"$page",Wt),z=M();let e=M(null),R=M(!0),B=M(""),N=M(!1),C=null,E=M();async function Kt(){if(t(z))try{p(R,!0),p(B,""),p(e,await Pt.getInstance(t(z)))}catch(o){p(B,o instanceof Error?o.message:"Failed to load instance")}finally{p(R,!1)}}async function Qt(){if(t(e)){try{await Pt.deleteInstance(t(e).name),zt(`${$}/instances`)}catch(o){p(B,Xe(o))}p(N,!1)}}function Xt(o){if(t(e))if(o.operation==="update"&&o.payload.id===t(e).id){const h=t(e).status_messages?.length||0,j={...t(e),...o.payload},S=j.status_messages?.length||0;p(e,j),S>h&&setTimeout(()=>{Rt(t(E))},100)}else o.operation==="delete"&&(o.payload.id||o.payload)===t(e).id&&zt(`${$}/instances`)}Le(()=>{Kt().then(()=>{t(e)?.status_messages?.length&&setTimeout(()=>{Rt(t(E))},100)}),C=We.subscribeToEntity("instance",["update","delete"],Xt)}),Oe(()=>{C&&(C(),C=null)}),Pe(()=>ot(),()=>{p(z,decodeURIComponent(ot().params.id||""))}),Ve(),Te();var lt=ua();ze(o=>{f(()=>qe.title=`${t(e),i(()=>t(e)?`${t(e).name} - Instance Details`:"Instance Details")??""} - GARM`)});var q=O(lt),F=s(q),vt=s(F),G=s(vt),Yt=s(G);a(G);var xt=r(G,2),ct=s(xt),mt=r(s(ct),2),Zt=s(mt,!0);a(mt),a(ct),a(xt),a(vt),a(F);var gt=r(F,2);{var te=o=>{var h=Ye(),j=s(h),S=s(j),T=r(s(S),2),I=s(T,!0);a(T),a(S),a(j),a(h),f(()=>c(I,t(B))),v(o,h)};_(gt,o=>{t(B)&&o(te)})}var ee=r(gt,2);{var ae=o=>{var h=Ze();v(o,h)},se=o=>{var h=Et(),j=O(h);{var S=I=>{var U=ga(),H=O(U),W=s(H),J=s(W),_t=r(s(J),2),ie=s(_t);a(_t),a(J);var ut=r(J,2),K=s(ut),ft=r(s(K),2),ne=s(ft,!0);a(ft),a(K);var Q=r(K,2),yt=r(s(Q),2),oe=s(yt,!0);a(yt),a(Q);var X=r(Q,2),pt=r(s(X),2),le=s(pt,!0);a(pt),a(X);var Y=r(X,2),ht=r(s(Y),2),ve=s(ht,!0);a(ht),a(Y);var Z=r(Y,2),kt=r(s(Z),2),xe=s(kt);{var ce=d=>{var n=ta(),l=s(n,!0);a(n),f(()=>{nt(n,"href",`${$??""}/pools/${t(e),i(()=>t(e).pool_id)??""}`),c(l,(t(e),i(()=>t(e).pool_id)))}),v(d,n)},me=d=>{var n=Et(),l=O(n);{var m=u=>{var y=ea(),D=s(y,!0);a(y),f(()=>{nt(y,"href",`${$??""}/scalesets/${t(e),i(()=>t(e).scale_set_id)??""}`),c(D,(t(e),i(()=>t(e).scale_set_id)))}),v(u,y)},x=u=>{var y=aa();v(u,y)};_(l,u=>{t(e),i(()=>t(e).scale_set_id)?u(m):u(x,!1)},!0)}v(d,n)};_(xe,d=>{t(e),i(()=>t(e).pool_id)?d(ce):d(me,!1)})}a(kt),a(Z);var tt=r(Z,2),bt=r(s(tt),2),ge=s(bt,!0);a(bt),a(tt);var et=r(tt,2),wt=r(s(et),2),_e=s(wt,!0);a(wt),a(et);var ue=r(et,2);{var fe=d=>{var n=sa(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(x=>c(m,x),[()=>(b(A),t(e),i(()=>A(t(e).updated_at)))]),v(d,n)};_(ue,d=>{t(e),i(()=>t(e).updated_at&&t(e).updated_at!==t(e).created_at)&&d(fe)})}a(ut),a(W);var It=r(W,2),jt=r(s(It),2),at=s(jt),Dt=r(s(at),2),st=s(Dt),ye=s(st,!0);a(st),a(Dt),a(at);var rt=r(at,2),St=r(s(rt),2),dt=s(St),pe=s(dt,!0);a(dt),a(St),a(rt);var Mt=r(rt,2);{var he=d=>{var n=da(),l=r(s(n),2);Lt(l,5,()=>(t(e),i(()=>t(e).addresses)),Ot,(m,x)=>{var u=ra(),y=s(u),D=s(y,!0);a(y);var it=r(y,2);{let L=Tt(()=>(t(x),i(()=>t(x).type||"Unknown")));qt(it,{variant:"info",get text(){return t(L)}})}a(u),f(()=>c(D,(t(x),i(()=>t(x).address)))),v(m,u)}),a(l),a(n),v(d,n)},ke=d=>{var n=ia();v(d,n)};_(Mt,d=>{t(e),i(()=>t(e).addresses&&t(e).addresses.length>0)?d(he):d(ke,!1)})}var At=r(Mt,2);{var be=d=>{var n=na(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(()=>c(m,(t(e),i(()=>t(e).os_type)))),v(d,n)};_(At,d=>{t(e),i(()=>t(e).os_type)&&d(be)})}var Bt=r(At,2);{var we=d=>{var n=oa(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(()=>c(m,(t(e),i(()=>t(e).os_name)))),v(d,n)};_(Bt,d=>{t(e),i(()=>t(e).os_name)&&d(we)})}var $t=r(Bt,2);{var Ie=d=>{var n=la(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(()=>c(m,(t(e),i(()=>t(e).os_version)))),v(d,n)};_($t,d=>{t(e),i(()=>t(e).os_version)&&d(Ie)})}var je=r($t,2);{var De=d=>{var n=va(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(()=>c(m,(t(e),i(()=>t(e).os_arch)))),v(d,n)};_(je,d=>{t(e),i(()=>t(e).os_arch)&&d(De)})}a(jt),a(It),a(H);var Se=r(H,2);{var Me=d=>{var n=ca(),l=r(s(n),2);Lt(l,5,()=>(t(e),i(()=>t(e).status_messages)),Ot,(m,x)=>{var u=xa(),y=s(u),D=s(y),it=s(D,!0);a(D);var L=r(D,2),Nt=s(L);{var Be=k=>{const w=Tt(()=>(b(Ft),t(x),i(()=>Ft(t(x).event_level))));qt(k,{get variant(){return b(t(w)),i(()=>t(w).variant)},get text(){return b(t(w)),i(()=>t(w).text)}})};_(Nt,k=>{t(x),i(()=>t(x).event_level)&&k(Be)})}var Ct=r(Nt,2),$e=s(Ct);{var Ne=k=>{var w=Ut();f(Ee=>c(w,Ee),[()=>(b(A),t(x),i(()=>A(t(x).created_at)))]),v(k,w)},Ce=k=>{var w=Ut("Unknown date");v(k,w)};_($e,k=>{t(x),i(()=>t(x).created_at)?k(Ne):k(Ce,!1)})}a(Ct),a(L),a(y),a(u),f(()=>c(it,(t(x),i(()=>t(x).message)))),v(m,u)}),a(l),Je(l,m=>p(E,m),()=>t(E)),a(n),v(d,n)},Ae=d=>{var n=ma();v(d,n)};_(Se,d=>{t(e),i(()=>t(e).status_messages&&t(e).status_messages.length>0)?d(Me):d(Ae,!1)})}f((d,n,l,m,x)=>{c(ne,(t(e),i(()=>t(e).id))),c(oe,(t(e),i(()=>t(e).name))),c(le,(t(e),i(()=>t(e).provider_id))),c(ve,(t(e),i(()=>t(e).provider_name||"Unknown"))),c(ge,(t(e),i(()=>t(e).agent_id||"Not assigned"))),c(_e,d),Vt(st,1,`inline-flex px-2 py-1 text-xs font-semibold rounded-full ring-1 ring-inset ${n??""}`),c(ye,l),Vt(dt,1,`inline-flex px-2 py-1 text-xs font-semibold rounded-full ring-1 ring-inset ${m??""}`),c(pe,x)},[()=>(b(A),t(e),i(()=>A(t(e).created_at))),()=>(b(P),t(e),i(()=>P(t(e).status||"unknown"))),()=>(b(V),t(e),i(()=>V(t(e).status||"unknown"))),()=>(b(P),t(e),i(()=>P(t(e).runner_status||"unknown"))),()=>(b(V),t(e),i(()=>V(t(e).runner_status||"unknown")))]),Fe("click",ie,()=>p(N,!0)),v(I,U)},T=I=>{var U=_a();v(I,U)};_(j,I=>{t(e)?I(S):I(T,!1)},!0)}v(o,h)};_(ee,o=>{t(R)?o(ae):o(se,!1)})}a(q);var re=r(q,2);{var de=o=>{Qe(o,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return t(e),i(()=>t(e).name)},$$events:{close:()=>p(N,!1),confirm:Qt}})};_(re,o=>{t(N)&&t(e)&&o(de)})}f(()=>{nt(Yt,"href",`${$}/instances`),c(Zt,(t(e),i(()=>t(e)?t(e).name:"Instance Details")))}),v(Gt,lt),Re(),Jt()}export{$a as component}; diff --git a/webapp/assets/_app/immutable/nodes/9.DpSfMRgo.js b/webapp/assets/_app/immutable/nodes/9.DpSfMRgo.js deleted file mode 100644 index 54eb6b8a..00000000 --- a/webapp/assets/_app/immutable/nodes/9.DpSfMRgo.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as Te}from"../chunks/B3Pzt0F_.js";import{p as Ue,o as Le,A as Oe,l as Ve,a as ze,f as g,h as Pe,b as O,t as f,c as v,d as Re,g as t,m as M,s as p,u as i,$ as qe,j as s,r as a,k as r,v as c,B as Et,n as b,e as Fe,q as Tt,D as Ut}from"../chunks/D8EpLgQ1.js";import{i as _,s as Ge,a as He}from"../chunks/5WA7h8uK.js";import{w as We,e as Lt,i as Ot}from"../chunks/u94nIB4-.js";import{c as nt,g as Vt,s as zt}from"../chunks/CiE1LlKV.js";import{b as Je}from"../chunks/BAg1iRPq.js";import{p as Ke}from"../chunks/C41YH50Q.js";import{g as Pt}from"../chunks/CTf6mQoE.js";import{b as A}from"../chunks/CoIRRsD9.js";import{D as Qe}from"../chunks/KQ2xQpA3.js";import{g as V,f as z}from"../chunks/ow_oMtSd.js";import{s as Rt,b as B,B as qt,d as Ft}from"../chunks/BGVHQGl-.js";var Xe=g('

    Error

    '),Ye=g('

    Loading instance details...

    '),Ze=g(' '),ta=g(' '),ea=g('-'),aa=g('
    Updated At:
    '),sa=g('
    '),ra=g('
    Network Addresses:
    '),da=g('
    Network Addresses:
    No addresses available
    '),ia=g('
    OS Type:
    '),na=g('
    OS Name:
    '),oa=g('
    OS Version:
    '),la=g('
    OS Architecture:
    '),va=g('

    '),xa=g('

    Status Messages

    '),ca=g('

    Status Messages

    No status messages available

    '),ma=g('

    Instance Information

    ID:
    Name:
    Provider ID:
    Provider:
    Pool/Scale Set:
    Agent ID:
    Created At:

    Status & Network

    Instance Status:
    Runner Status:
    ',1),ga=g('
    Instance not found.
    '),_a=g(' ',1);function Ba(Gt,Ht){Ue(Ht,!1);const[Wt,Jt]=Ge(),ot=()=>He(Ke,"$page",Wt),P=M();let e=M(null),R=M(!0),$=M(""),N=M(!1),C=null,E=M();async function Kt(){if(t(P))try{p(R,!0),p($,""),p(e,await Vt.getInstance(t(P)))}catch(o){p($,o instanceof Error?o.message:"Failed to load instance")}finally{p(R,!1)}}async function Qt(){if(t(e)){try{await Vt.deleteInstance(t(e).name),Pt(`${A}/instances`)}catch(o){p($,o instanceof Error?o.message:"Failed to delete instance")}p(N,!1)}}function Xt(o){if(t(e))if(o.operation==="update"&&o.payload.id===t(e).id){const h=t(e).status_messages?.length||0,j={...t(e),...o.payload},S=j.status_messages?.length||0;p(e,j),S>h&&setTimeout(()=>{Rt(t(E))},100)}else o.operation==="delete"&&(o.payload.id||o.payload)===t(e).id&&Pt(`${A}/instances`)}Le(()=>{Kt().then(()=>{t(e)?.status_messages?.length&&setTimeout(()=>{Rt(t(E))},100)}),C=We.subscribeToEntity("instance",["update","delete"],Xt)}),Oe(()=>{C&&(C(),C=null)}),Ve(()=>ot(),()=>{p(P,decodeURIComponent(ot().params.id||""))}),ze(),Te();var lt=_a();Pe(o=>{f(()=>qe.title=`${t(e),i(()=>t(e)?`${t(e).name} - Instance Details`:"Instance Details")??""} - GARM`)});var q=O(lt),F=s(q),vt=s(F),G=s(vt),Yt=s(G);a(G);var xt=r(G,2),ct=s(xt),mt=r(s(ct),2),Zt=s(mt,!0);a(mt),a(ct),a(xt),a(vt),a(F);var gt=r(F,2);{var te=o=>{var h=Xe(),j=s(h),S=s(j),T=r(s(S),2),I=s(T,!0);a(T),a(S),a(j),a(h),f(()=>c(I,t($))),v(o,h)};_(gt,o=>{t($)&&o(te)})}var ee=r(gt,2);{var ae=o=>{var h=Ye();v(o,h)},se=o=>{var h=Et(),j=O(h);{var S=I=>{var U=ma(),H=O(U),W=s(H),J=s(W),_t=r(s(J),2),ie=s(_t);a(_t),a(J);var ut=r(J,2),K=s(ut),ft=r(s(K),2),ne=s(ft,!0);a(ft),a(K);var Q=r(K,2),yt=r(s(Q),2),oe=s(yt,!0);a(yt),a(Q);var X=r(Q,2),pt=r(s(X),2),le=s(pt,!0);a(pt),a(X);var Y=r(X,2),ht=r(s(Y),2),ve=s(ht,!0);a(ht),a(Y);var Z=r(Y,2),kt=r(s(Z),2),xe=s(kt);{var ce=d=>{var n=Ze(),l=s(n,!0);a(n),f(()=>{nt(n,"href",`${A??""}/pools/${t(e),i(()=>t(e).pool_id)??""}`),c(l,(t(e),i(()=>t(e).pool_id)))}),v(d,n)},me=d=>{var n=Et(),l=O(n);{var m=u=>{var y=ta(),D=s(y,!0);a(y),f(()=>{nt(y,"href",`${A??""}/scalesets/${t(e),i(()=>t(e).scale_set_id)??""}`),c(D,(t(e),i(()=>t(e).scale_set_id)))}),v(u,y)},x=u=>{var y=ea();v(u,y)};_(l,u=>{t(e),i(()=>t(e).scale_set_id)?u(m):u(x,!1)},!0)}v(d,n)};_(xe,d=>{t(e),i(()=>t(e).pool_id)?d(ce):d(me,!1)})}a(kt),a(Z);var tt=r(Z,2),bt=r(s(tt),2),ge=s(bt,!0);a(bt),a(tt);var et=r(tt,2),wt=r(s(et),2),_e=s(wt,!0);a(wt),a(et);var ue=r(et,2);{var fe=d=>{var n=aa(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(x=>c(m,x),[()=>(b(B),t(e),i(()=>B(t(e).updated_at)))]),v(d,n)};_(ue,d=>{t(e),i(()=>t(e).updated_at&&t(e).updated_at!==t(e).created_at)&&d(fe)})}a(ut),a(W);var It=r(W,2),jt=r(s(It),2),at=s(jt),Dt=r(s(at),2),st=s(Dt),ye=s(st,!0);a(st),a(Dt),a(at);var rt=r(at,2),St=r(s(rt),2),dt=s(St),pe=s(dt,!0);a(dt),a(St),a(rt);var Mt=r(rt,2);{var he=d=>{var n=ra(),l=r(s(n),2);Lt(l,5,()=>(t(e),i(()=>t(e).addresses)),Ot,(m,x)=>{var u=sa(),y=s(u),D=s(y,!0);a(y);var it=r(y,2);{let L=Tt(()=>(t(x),i(()=>t(x).type||"Unknown")));qt(it,{variant:"info",get text(){return t(L)}})}a(u),f(()=>c(D,(t(x),i(()=>t(x).address)))),v(m,u)}),a(l),a(n),v(d,n)},ke=d=>{var n=da();v(d,n)};_(Mt,d=>{t(e),i(()=>t(e).addresses&&t(e).addresses.length>0)?d(he):d(ke,!1)})}var Bt=r(Mt,2);{var be=d=>{var n=ia(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(()=>c(m,(t(e),i(()=>t(e).os_type)))),v(d,n)};_(Bt,d=>{t(e),i(()=>t(e).os_type)&&d(be)})}var $t=r(Bt,2);{var we=d=>{var n=na(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(()=>c(m,(t(e),i(()=>t(e).os_name)))),v(d,n)};_($t,d=>{t(e),i(()=>t(e).os_name)&&d(we)})}var At=r($t,2);{var Ie=d=>{var n=oa(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(()=>c(m,(t(e),i(()=>t(e).os_version)))),v(d,n)};_(At,d=>{t(e),i(()=>t(e).os_version)&&d(Ie)})}var je=r(At,2);{var De=d=>{var n=la(),l=r(s(n),2),m=s(l,!0);a(l),a(n),f(()=>c(m,(t(e),i(()=>t(e).os_arch)))),v(d,n)};_(je,d=>{t(e),i(()=>t(e).os_arch)&&d(De)})}a(jt),a(It),a(H);var Se=r(H,2);{var Me=d=>{var n=xa(),l=r(s(n),2);Lt(l,5,()=>(t(e),i(()=>t(e).status_messages)),Ot,(m,x)=>{var u=va(),y=s(u),D=s(y),it=s(D,!0);a(D);var L=r(D,2),Nt=s(L);{var $e=k=>{const w=Tt(()=>(b(Ft),t(x),i(()=>Ft(t(x).event_level))));qt(k,{get variant(){return b(t(w)),i(()=>t(w).variant)},get text(){return b(t(w)),i(()=>t(w).text)}})};_(Nt,k=>{t(x),i(()=>t(x).event_level)&&k($e)})}var Ct=r(Nt,2),Ae=s(Ct);{var Ne=k=>{var w=Ut();f(Ee=>c(w,Ee),[()=>(b(B),t(x),i(()=>B(t(x).created_at)))]),v(k,w)},Ce=k=>{var w=Ut("Unknown date");v(k,w)};_(Ae,k=>{t(x),i(()=>t(x).created_at)?k(Ne):k(Ce,!1)})}a(Ct),a(L),a(y),a(u),f(()=>c(it,(t(x),i(()=>t(x).message)))),v(m,u)}),a(l),Je(l,m=>p(E,m),()=>t(E)),a(n),v(d,n)},Be=d=>{var n=ca();v(d,n)};_(Se,d=>{t(e),i(()=>t(e).status_messages&&t(e).status_messages.length>0)?d(Me):d(Be,!1)})}f((d,n,l,m,x)=>{c(ne,(t(e),i(()=>t(e).id))),c(oe,(t(e),i(()=>t(e).name))),c(le,(t(e),i(()=>t(e).provider_id))),c(ve,(t(e),i(()=>t(e).provider_name||"Unknown"))),c(ge,(t(e),i(()=>t(e).agent_id||"Not assigned"))),c(_e,d),zt(st,1,`inline-flex px-2 py-1 text-xs font-semibold rounded-full ring-1 ring-inset ${n??""}`),c(ye,l),zt(dt,1,`inline-flex px-2 py-1 text-xs font-semibold rounded-full ring-1 ring-inset ${m??""}`),c(pe,x)},[()=>(b(B),t(e),i(()=>B(t(e).created_at))),()=>(b(V),t(e),i(()=>V(t(e).status||"unknown"))),()=>(b(z),t(e),i(()=>z(t(e).status||"unknown"))),()=>(b(V),t(e),i(()=>V(t(e).runner_status||"unknown"))),()=>(b(z),t(e),i(()=>z(t(e).runner_status||"unknown")))]),Fe("click",ie,()=>p(N,!0)),v(I,U)},T=I=>{var U=ga();v(I,U)};_(j,I=>{t(e)?I(S):I(T,!1)},!0)}v(o,h)};_(ee,o=>{t(R)?o(ae):o(se,!1)})}a(q);var re=r(q,2);{var de=o=>{Qe(o,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return t(e),i(()=>t(e).name)},$$events:{close:()=>p(N,!1),confirm:Qt}})};_(re,o=>{t(N)&&t(e)&&o(de)})}f(()=>{nt(Yt,"href",`${A}/instances`),c(Zt,(t(e),i(()=>t(e)?t(e).name:"Instance Details")))}),v(Gt,lt),Re(),Jt()}export{Ba as component}; diff --git a/webapp/assets/_app/version.json b/webapp/assets/_app/version.json index 6268ff48..0a3e848e 100644 --- a/webapp/assets/_app/version.json +++ b/webapp/assets/_app/version.json @@ -1 +1 @@ -{"version":"1755334486454"} \ No newline at end of file +{"version":"1755415870786"} \ No newline at end of file diff --git a/webapp/assets/index.html b/webapp/assets/index.html index fa125d3f..8c3850e6 100644 --- a/webapp/assets/index.html +++ b/webapp/assets/index.html @@ -71,11 +71,11 @@ })(); - - + + - - + + @@ -85,7 +85,7 @@