From 572ebbf2c7e02ae405b3d3ffd2364763313cba31 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Tue, 23 Sep 2025 17:15:04 +0300 Subject: [PATCH] Fix init redirect state (#527) On init, we were redirected to the proper URL, but the page would not render properly. Signed-off-by: Gabriel Adrian Samfira --- .../chunks/{R3ADTHgb.js => 5uRpB3Rp.js} | 2 +- .../chunks/{Du50aAe5.js => BIepGqC5.js} | 2 +- .../chunks/{DPR9Z_fe.js => BIkO7LkR.js} | 2 +- .../chunks/{D7e9zx6w.js => BMOcKgHw.js} | 2 +- .../chunks/{C2rI8IaC.js => B_RLftTg.js} | 2 +- .../chunks/{D6f8Dk7c.js => BaxpdL59.js} | 2 +- .../assets/_app/immutable/chunks/Br47IbuU.js | 3 ++ .../chunks/{U3V4g_hv.js => BtskFTeb.js} | 2 +- .../chunks/{JUkrBp3F.js => C01HillC.js} | 2 +- .../chunks/{CYqkNFLz.js => C6PRls9Y.js} | 2 +- .../chunks/{oOdVuDuv.js => CDgX_mkE.js} | 2 +- .../chunks/{BZ2WxPPD.js => CMG1iQmM.js} | 2 +- .../chunks/{WI-og7-I.js => CSF6MBq7.js} | 2 +- .../assets/_app/immutable/chunks/CTvJf3dP.js | 3 -- .../chunks/{CPFytHjx.js => CVL5tSYq.js} | 2 +- .../chunks/{91PQ6UtW.js => Cpm0auuQ.js} | 2 +- .../chunks/{DJsB5Z5V.js => Cr2hBuns.js} | 2 +- .../chunks/{DVsSf1wv.js => Crr6XDlZ.js} | 2 +- .../chunks/{Cqnw7O8j.js => DDJerweA.js} | 2 +- .../chunks/{BgSaD1r_.js => DMSCYqmZ.js} | 2 +- .../chunks/{BUaPampd.js => DQv7wuIJ.js} | 2 +- .../chunks/{BVyy60Ai.js => DVwzA4-Q.js} | 2 +- .../chunks/{BM4Azg_w.js => DXLlGL2Y.js} | 2 +- .../chunks/{B1V2wE0x.js => MwmEfQpp.js} | 2 +- .../chunks/{DliFOxtc.js => VkS8dDRx.js} | 2 +- .../chunks/{2Xl6sR6s.js => YJXtpdqO.js} | 2 +- .../chunks/{Bo3f8OIz.js => ao5EljEX.js} | 2 +- .../chunks/{C7KJ549w.js => kPsHrhth.js} | 2 +- .../chunks/{DqbUkQgD.js => yWyZZHPR.js} | 2 +- .../{app.B4u5nxVj.js => app.C-ablTrw.js} | 4 +- .../_app/immutable/entry/start.-FfRLqKC.js | 1 - .../_app/immutable/entry/start.C9b9f19p.js | 1 + .../assets/_app/immutable/nodes/0.CZrswIpC.js | 13 +++++ .../assets/_app/immutable/nodes/0.DYP5Tzsv.js | 13 ----- .../nodes/{1.BQyKnLFk.js => 1.BVDX-kKb.js} | 2 +- .../nodes/{10.BTAzlY6Z.js => 10.ClLNNemr.js} | 2 +- .../nodes/{11.kE-kE_J5.js => 11.CH-gQqkl.js} | 2 +- .../nodes/{12.4nNpW1qS.js => 12.C8GWS3WC.js} | 2 +- .../nodes/{13.B0F9yHlE.js => 13.DkvBfG2H.js} | 2 +- .../nodes/{14.FP7fqeji.js => 14.D-PSVsY_.js} | 2 +- .../nodes/{15.1LkKX8Mu.js => 15.BMBRAtUe.js} | 2 +- .../nodes/{16.Un1eDEkg.js => 16.wLKojKF5.js} | 2 +- .../nodes/{17.DCq-Dc1c.js => 17.DtdOzhy4.js} | 2 +- .../nodes/{18.xleZqgRD.js => 18.CjzIUFPa.js} | 2 +- .../nodes/{19.CWBEFCxV.js => 19.UQq6vp0O.js} | 2 +- .../nodes/{2.C24-dbK7.js => 2.vfWjk2nO.js} | 2 +- .../nodes/{20.BcQWH_IW.js => 20.ydnVC7Nh.js} | 2 +- .../nodes/{21.Nj7C5iaJ.js => 21.BUQSdMH1.js} | 2 +- .../nodes/{3.CcPcfE5H.js => 3.Di2gNd2_.js} | 10 ++-- .../nodes/{4.CdHupLIu.js => 4.CqGHGl2O.js} | 2 +- .../nodes/{5.BZ5sZ9vU.js => 5.DSvy7UtH.js} | 2 +- .../nodes/{6.CAXPtVkl.js => 6.BLiOuR3x.js} | 2 +- .../assets/_app/immutable/nodes/7.2oZviKjs.js | 1 + .../assets/_app/immutable/nodes/7.CRLDW2c_.js | 1 - .../nodes/{8.DVlwXnoT.js => 8.BMDTInDo.js} | 2 +- .../nodes/{9.el4sTgm4.js => 9.B0t4Xpa3.js} | 2 +- webapp/assets/_app/version.json | 2 +- webapp/assets/index.html | 14 +++--- webapp/src/routes/+layout.svelte | 50 +++++++++---------- webapp/src/routes/credentials/+page.svelte | 40 +++++++++++++-- webapp/src/routes/init/+page.svelte | 15 +++--- .../src/routes/init/page.integration.test.ts | 8 +-- webapp/src/routes/init/page.test.ts | 2 +- 63 files changed, 152 insertions(+), 121 deletions(-) rename webapp/assets/_app/immutable/chunks/{R3ADTHgb.js => 5uRpB3Rp.js} (99%) rename webapp/assets/_app/immutable/chunks/{Du50aAe5.js => BIepGqC5.js} (99%) rename webapp/assets/_app/immutable/chunks/{DPR9Z_fe.js => BIkO7LkR.js} (99%) rename webapp/assets/_app/immutable/chunks/{D7e9zx6w.js => BMOcKgHw.js} (78%) rename webapp/assets/_app/immutable/chunks/{C2rI8IaC.js => B_RLftTg.js} (97%) rename webapp/assets/_app/immutable/chunks/{D6f8Dk7c.js => BaxpdL59.js} (95%) create mode 100644 webapp/assets/_app/immutable/chunks/Br47IbuU.js rename webapp/assets/_app/immutable/chunks/{U3V4g_hv.js => BtskFTeb.js} (94%) rename webapp/assets/_app/immutable/chunks/{JUkrBp3F.js => C01HillC.js} (98%) rename webapp/assets/_app/immutable/chunks/{CYqkNFLz.js => C6PRls9Y.js} (83%) rename webapp/assets/_app/immutable/chunks/{oOdVuDuv.js => CDgX_mkE.js} (97%) rename webapp/assets/_app/immutable/chunks/{BZ2WxPPD.js => CMG1iQmM.js} (89%) rename webapp/assets/_app/immutable/chunks/{WI-og7-I.js => CSF6MBq7.js} (97%) delete mode 100644 webapp/assets/_app/immutable/chunks/CTvJf3dP.js rename webapp/assets/_app/immutable/chunks/{CPFytHjx.js => CVL5tSYq.js} (96%) rename webapp/assets/_app/immutable/chunks/{91PQ6UtW.js => Cpm0auuQ.js} (93%) rename webapp/assets/_app/immutable/chunks/{DJsB5Z5V.js => Cr2hBuns.js} (99%) rename webapp/assets/_app/immutable/chunks/{DVsSf1wv.js => Crr6XDlZ.js} (71%) rename webapp/assets/_app/immutable/chunks/{Cqnw7O8j.js => DDJerweA.js} (92%) rename webapp/assets/_app/immutable/chunks/{BgSaD1r_.js => DMSCYqmZ.js} (79%) rename webapp/assets/_app/immutable/chunks/{BUaPampd.js => DQv7wuIJ.js} (98%) rename webapp/assets/_app/immutable/chunks/{BVyy60Ai.js => DVwzA4-Q.js} (97%) rename webapp/assets/_app/immutable/chunks/{BM4Azg_w.js => DXLlGL2Y.js} (84%) rename webapp/assets/_app/immutable/chunks/{B1V2wE0x.js => MwmEfQpp.js} (98%) rename webapp/assets/_app/immutable/chunks/{DliFOxtc.js => VkS8dDRx.js} (89%) rename webapp/assets/_app/immutable/chunks/{2Xl6sR6s.js => YJXtpdqO.js} (98%) rename webapp/assets/_app/immutable/chunks/{Bo3f8OIz.js => ao5EljEX.js} (91%) rename webapp/assets/_app/immutable/chunks/{C7KJ549w.js => kPsHrhth.js} (98%) rename webapp/assets/_app/immutable/chunks/{DqbUkQgD.js => yWyZZHPR.js} (99%) rename webapp/assets/_app/immutable/entry/{app.B4u5nxVj.js => app.C-ablTrw.js} (68%) delete mode 100644 webapp/assets/_app/immutable/entry/start.-FfRLqKC.js create mode 100644 webapp/assets/_app/immutable/entry/start.C9b9f19p.js create mode 100644 webapp/assets/_app/immutable/nodes/0.CZrswIpC.js delete mode 100644 webapp/assets/_app/immutable/nodes/0.DYP5Tzsv.js rename webapp/assets/_app/immutable/nodes/{1.BQyKnLFk.js => 1.BVDX-kKb.js} (84%) rename webapp/assets/_app/immutable/nodes/{10.BTAzlY6Z.js => 10.ClLNNemr.js} (94%) rename webapp/assets/_app/immutable/nodes/{11.kE-kE_J5.js => 11.CH-gQqkl.js} (95%) rename webapp/assets/_app/immutable/nodes/{12.4nNpW1qS.js => 12.C8GWS3WC.js} (93%) rename webapp/assets/_app/immutable/nodes/{13.B0F9yHlE.js => 13.DkvBfG2H.js} (88%) rename webapp/assets/_app/immutable/nodes/{14.FP7fqeji.js => 14.D-PSVsY_.js} (97%) rename webapp/assets/_app/immutable/nodes/{15.1LkKX8Mu.js => 15.BMBRAtUe.js} (95%) rename webapp/assets/_app/immutable/nodes/{16.Un1eDEkg.js => 16.wLKojKF5.js} (93%) rename webapp/assets/_app/immutable/nodes/{17.DCq-Dc1c.js => 17.DtdOzhy4.js} (97%) rename webapp/assets/_app/immutable/nodes/{18.xleZqgRD.js => 18.CjzIUFPa.js} (96%) rename webapp/assets/_app/immutable/nodes/{19.CWBEFCxV.js => 19.UQq6vp0O.js} (92%) rename webapp/assets/_app/immutable/nodes/{2.C24-dbK7.js => 2.vfWjk2nO.js} (99%) rename webapp/assets/_app/immutable/nodes/{20.BcQWH_IW.js => 20.ydnVC7Nh.js} (98%) rename webapp/assets/_app/immutable/nodes/{21.Nj7C5iaJ.js => 21.BUQSdMH1.js} (97%) rename webapp/assets/_app/immutable/nodes/{3.CcPcfE5H.js => 3.Di2gNd2_.js} (59%) rename webapp/assets/_app/immutable/nodes/{4.CdHupLIu.js => 4.CqGHGl2O.js} (98%) rename webapp/assets/_app/immutable/nodes/{5.BZ5sZ9vU.js => 5.DSvy7UtH.js} (94%) rename webapp/assets/_app/immutable/nodes/{6.CAXPtVkl.js => 6.BLiOuR3x.js} (94%) create mode 100644 webapp/assets/_app/immutable/nodes/7.2oZviKjs.js delete mode 100644 webapp/assets/_app/immutable/nodes/7.CRLDW2c_.js rename webapp/assets/_app/immutable/nodes/{8.DVlwXnoT.js => 8.BMDTInDo.js} (93%) rename webapp/assets/_app/immutable/nodes/{9.el4sTgm4.js => 9.B0t4Xpa3.js} (98%) diff --git a/webapp/assets/_app/immutable/chunks/R3ADTHgb.js b/webapp/assets/_app/immutable/chunks/5uRpB3Rp.js similarity index 99% rename from webapp/assets/_app/immutable/chunks/R3ADTHgb.js rename to webapp/assets/_app/immutable/chunks/5uRpB3Rp.js index 7ebebcee..c8e186a0 100644 --- a/webapp/assets/_app/immutable/chunks/R3ADTHgb.js +++ b/webapp/assets/_app/immutable/chunks/5uRpB3Rp.js @@ -1,4 +1,4 @@ -import"./DsnmJJEf.js";import{i as Vh}from"./C7KraPli.js";import{ay as ud,aw as dd,p as Nh,E as Fh,o as pd,A as md,g as j,m as Wi,l as Wt,k as zi,q as zt,h as Xh,f as _h,b as St,c as Uh,d as $t,r as Bt,s as Sn,z as Cl,D as Pl,t as ti,e as kn,v as gd,C as $o,B as Od,a as yd}from"./cPTQ2Ibn.js";import{b as bd}from"./Cwu7L3Xf.js";import{p as Be,a as xd,s as Sd,i as Ql}from"./DqFqoVWr.js";import{t as kd}from"./CCFUzH5i.js";import{B as Al,s as wn}from"./DqbUkQgD.js";import{M as wd}from"./Bo3f8OIz.js";function vd(n,e,t){var i=ud(n,e);i&&i.set&&(n[e]=t,dd(()=>{n[e]=null}))}let qr=[],Hh=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=Hh[i])e=i+1;else return!0;if(e==t)return!1}}function Ml(n){return n>=127462&&n<=127487}const Rl=8205;function Cd(n,e,t=!0,i=!0){return(t?jh:Pd)(n,e,i)}function jh(n,e,t){if(e==n.length)return e;e&&Gh(n.charCodeAt(e))&&Zh(n.charCodeAt(e-1))&&e--;let i=Js(n,e);for(e+=Dl(i);e=0&&Ml(Js(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Pd(n,e,t){for(;e>0;){let i=jh(n,e-2,t);if(i=56320&&n<57344}function Zh(n){return n>=55296&&n<56320}function Dl(n){return n<65536?1:2}class V{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=pi(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ye.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=pi(this,e,t);let i=[];return this.decompose(e,t,i,0),Ye.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Ii(this),r=new Ii(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Ii(this,e)}iterRange(e,t=this.length){return new Yh(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Kh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?V.empty:e.length<=32?new J(e):Ye.from(J.split(e,[]))}}class J extends V{constructor(e,t=Qd(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new Ad(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new J(El(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Gn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new J(l,o.length+r.length));else{let a=l.length>>1;i.push(new J(l.slice(0,a)),new J(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof J))return super.replace(e,t,i);[e,t]=pi(this,e,t);let s=Gn(this.text,Gn(i.text,El(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new J(s,r):Ye.from(J.split(s,[]),r)}sliceString(e,t=this.length,i=` +import"./DsnmJJEf.js";import{i as Vh}from"./C7KraPli.js";import{ay as ud,aw as dd,p as Nh,E as Fh,o as pd,A as md,g as j,m as Wi,l as Wt,k as zi,q as zt,h as Xh,f as _h,b as St,c as Uh,d as $t,r as Bt,s as Sn,z as Cl,D as Pl,t as ti,e as kn,v as gd,C as $o,B as Od,a as yd}from"./cPTQ2Ibn.js";import{b as bd}from"./Cwu7L3Xf.js";import{p as Be,a as xd,s as Sd,i as Ql}from"./DqFqoVWr.js";import{t as kd}from"./CCFUzH5i.js";import{B as Al,s as wn}from"./yWyZZHPR.js";import{M as wd}from"./ao5EljEX.js";function vd(n,e,t){var i=ud(n,e);i&&i.set&&(n[e]=t,dd(()=>{n[e]=null}))}let qr=[],Hh=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=Hh[i])e=i+1;else return!0;if(e==t)return!1}}function Ml(n){return n>=127462&&n<=127487}const Rl=8205;function Cd(n,e,t=!0,i=!0){return(t?jh:Pd)(n,e,i)}function jh(n,e,t){if(e==n.length)return e;e&&Gh(n.charCodeAt(e))&&Zh(n.charCodeAt(e-1))&&e--;let i=Js(n,e);for(e+=Dl(i);e=0&&Ml(Js(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Pd(n,e,t){for(;e>0;){let i=jh(n,e-2,t);if(i=56320&&n<57344}function Zh(n){return n>=55296&&n<56320}function Dl(n){return n<65536?1:2}class V{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=pi(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ye.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=pi(this,e,t);let i=[];return this.decompose(e,t,i,0),Ye.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Ii(this),r=new Ii(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Ii(this,e)}iterRange(e,t=this.length){return new Yh(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Kh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?V.empty:e.length<=32?new J(e):Ye.from(J.split(e,[]))}}class J extends V{constructor(e,t=Qd(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new Ad(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new J(El(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Gn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new J(l,o.length+r.length));else{let a=l.length>>1;i.push(new J(l.slice(0,a)),new J(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof J))return super.replace(e,t,i);[e,t]=pi(this,e,t);let s=Gn(this.text,Gn(i.text,El(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new J(s,r):Ye.from(J.split(s,[]),r)}sliceString(e,t=this.length,i=` `){[e,t]=pi(this,e,t);let s="";for(let r=0,o=0;r<=t&&oe&&o&&(s+=i),er&&(s+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new J(i,s)),i=[],s=-1);return s>-1&&t.push(new J(i,s)),t}}class Ye extends V{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,s);s=l+1,i=a+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r=o){let h=s&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if([e,t]=pi(this,e,t),i.lines=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>h>>6){let c=this.children.slice();return c[s]=a,new Ye(c,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` `){[e,t]=pi(this,e,t);let s="";for(let r=0,o=0;re&&r&&(s+=i),eo&&(s+=l.sliceString(e-o,t-o,i)),o=a+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Ye))return 0;let i=0,[s,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==l)return i;let a=this.children[s],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new J(d,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],a=0,h=-1,c=[];function f(d){let p;if(d.lines>r&&d instanceof Ye)for(let m of d.children)f(m);else d.lines>o&&(a>o||!a)?(u(),l.push(d)):d instanceof J&&a&&(p=c[c.length-1])instanceof J&&d.lines+p.lines<=32?(a+=d.lines,h+=d.length+1,c[c.length-1]=new J(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>s&&u(),a+=d.lines,h+=d.length+1,c.push(d))}function u(){a!=0&&(l.push(c.length==1?c[0]:Ye.from(c,h)),h=-1,a=c.length=0)}for(let d of e)f(d);return u(),l.length==1?l[0]:new Ye(l,t)}}V.empty=new J([""],0);function Qd(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Gn(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r=t&&(a>i&&(l=l.slice(0,i-s)),s0?1:(e instanceof J?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof J?s.text.length:s.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` `,this;e--}else if(s instanceof J){let a=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=s.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof J?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class Yh{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Ii(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class Kh{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(V.prototype[Symbol.iterator]=function(){return this.iter()},Ii.prototype[Symbol.iterator]=Yh.prototype[Symbol.iterator]=Kh.prototype[Symbol.iterator]=function(){return this});class Ad{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}function pi(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function Oe(n,e,t=!0,i=!0){return Cd(n,e,t,i)}function Md(n){return n>=56320&&n<57344}function Rd(n){return n>=55296&&n<56320}function Ce(n,e){let t=n.charCodeAt(e);if(!Rd(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return Md(i)?(t-55296<<10)+(i-56320)+65536:t}function Bo(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Ke(n){return n<65536?1:2}const $r=/\r\n?|\n/;var ge=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(ge||(ge={}));class st{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-s);r+=l}else{if(i!=ge.Simple&&h>=e&&(i==ge.TrackDel&&se||i==ge.TrackBefore&&se))return null;if(h>e||h==e&&t<0&&!l)return e==s||t<0?r:r+a;r+=a}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i=0&&s<=t&&l>=e)return st?"cover":!0;s=l}return!1}toString(){let e="";for(let t=0;t=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new st(e)}static create(e){return new st(e)}}class ae extends st{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Br(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return Lr(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s=0){t[s]=l,t[s+1]=o;let a=s>>1;for(;i.length0&&Tt(i,t,r.text),r.forward(c),l+=c}let h=e[o++];for(;l>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,l=null;function a(c=!1){if(!c&&!s.length)return;ou||f<0||u>t)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${t})`);let p=d?typeof d=="string"?V.of(d.split(i||$r)):d:V.empty,m=p.length;if(f==u&&m==0)return;fo&&ye(s,f-o,-1),ye(s,u-f,m),Tt(r,s,p),o=u}}return h(e),a(!l),l}static empty(e){return new ae(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;sl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length=0&&t<=0&&t==n[s+1]?n[s]+=e:s>=0&&e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function Tt(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(s,h,r,c,f),s=h,r=c}}}function Lr(n,e,t,i=!1){let s=[],r=i?[]:null,o=new Ui(n),l=new Ui(e);for(let a=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);ye(s,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let f=Math.min(c,l.len);h+=f,c-=f,l.forward(f)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}class Ui{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?V.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?V.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class Nt{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new Nt(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return b.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return b.range(this.anchor,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return b.range(e.anchor,e.head)}static create(e,t,i){return new Nt(e,t,i)}}class b{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:b.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new b(e.ranges.map(t=>Nt.fromJSON(t)),e.main)}static single(e,t=e){return new b([b.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;se?8:0)|r)}static normalized(e,t=0){let i=e[t];e.sort((s,r)=>s.from-r.from),t=e.indexOf(i);for(let s=1;sr.head?b.range(a,l):b.range(l,a))}}return new b(e,t)}}function ec(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let Lo=0;class M{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.id=Lo++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new M(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:Wo),!!e.static,e.enables)}of(e){return new Zn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Zn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Zn(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function Wo(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class Zn{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=Lo++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?h=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&c.push(e[f.id]);return{create(f){return f.values[o]=i(f),1},update(f,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||Wr(f,c)){let d=i(f);if(l?!ql(d,f.values[o],s):!s(d,f.values[o]))return f.values[o]=d,1}return 0},reconfigure:(f,u)=>{let d,p=u.config.address[r];if(p!=null){let m=cs(u,p);if(this.dependencies.every(g=>g instanceof M?u.facet(g)===f.facet(g):g instanceof ue?u.field(g,!1)==f.field(g,!1):!0)||(l?ql(d=i(f),m,s):s(d=i(f),m)))return f.values[o]=m,0}else d=i(f);return f.values[o]=d,1}}}}function ql(n,e,t){if(n.length!=e.length)return!1;for(let i=0;in[a.id]),s=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let c=0;ci===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(vn).find(i=>i.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>{let r=i.facet(vn),o=s.facet(vn),l;return(l=r.find(a=>a.field==this))&&l!=o.find(a=>a.field==this)?(i.values[t]=l.create(i),1):s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,vn.of({field:this,create:e})]}get extension(){return this}}const It={lowest:4,low:3,default:2,high:1,highest:0};function Qi(n){return e=>new tc(e,n)}const Et={highest:Qi(It.highest),high:Qi(It.high),default:Qi(It.default),low:Qi(It.low),lowest:Qi(It.lowest)};class tc{constructor(e,t){this.inner=e,this.prec=t}}class $s{of(e){return new zr(this,e)}reconfigure(e){return $s.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class zr{constructor(e,t){this.compartment=e,this.inner=t}}class hs{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let u of Ed(e,t,o))u instanceof ue?s.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],h=[];for(let u of s)l[u.id]=h.length<<1,h.push(d=>u.slot(d));let c=i?.config.facets;for(let u in r){let d=r[u],p=d[0].facet,m=c&&c[u]||[];if(d.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,Wo(m,d))a.push(i.facet(p));else{let g=p.combine(d.map(y=>y.value));a.push(i&&p.compare(g,i.facet(p))?i.facet(p):g)}else{for(let g of d)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=h.length<<1,h.push(y=>g.dynamicSlot(y)));l[p.id]=h.length<<1,h.push(g=>Dd(g,p,d))}}let f=h.map(u=>u(l));return new hs(e,o,f,l,a,r)}}function Ed(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,l){let a=s.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof zr&&t.delete(o.compartment)}if(s.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof zr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof tc)r(o.inner,o.prec);else if(o instanceof ue)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof Zn)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,It.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(n,It.default),i.reduce((o,l)=>o.concat(l))}function Vi(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function cs(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const ic=M.define(),Ir=M.define({combine:n=>n.some(e=>e),static:!0}),nc=M.define({combine:n=>n.length?n[0]:void 0,static:!0}),sc=M.define(),rc=M.define(),oc=M.define(),lc=M.define({combine:n=>n.length?n[0]:!1});class bt{constructor(e,t){this.type=e,this.value=t}static define(){return new qd}}class qd{of(e){return new bt(this,e)}}class $d{constructor(e){this.map=e}of(e){return new B(this,e)}}class B{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new B(this.type,t)}is(e){return this.type==e}static define(e={}){return new $d(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}}B.reconfigure=B.define();B.appendConfig=B.define();class oe{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&ec(i,t.newLength),r.some(l=>l.type==oe.time)||(this.annotations=r.concat(oe.time.of(Date.now())))}static create(e,t,i,s,r,o){return new oe(e,t,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(oe.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}oe.time=bt.define();oe.userEvent=bt.define();oe.addToHistory=bt.define();oe.remote=bt.define();function Bd(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i=n[i]))r=n[i++],o=n[i++];else if(s=0;s--){let r=i[s](n);r instanceof oe?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof oe?n=r[0]:n=hc(e,ai(r),!1)}return n}function Wd(n){let e=n.startState,t=e.facet(oc),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=ac(i,Vr(e,r,n.changes.newLength),!0))}return i==n?n:oe.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const zd=[];function ai(n){return n==null?zd:Array.isArray(n)?n:[n]}var Y=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(Y||(Y={}));const Id=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Nr;try{Nr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function Vd(n){if(Nr)return Nr.test(n);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||Id.test(t)))return!0}return!1}function Nd(n){return e=>{if(!/\S/.test(e))return Y.Space;if(Vd(e))return Y.Word;for(let t=0;t-1)return Y.Word;return Y.Other}}class I{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;ls.set(h,a)),t=null),s.set(l.value.compartment,l.value.extension)):l.is(B.reconfigure)?(t=null,i=l.value):l.is(B.appendConfig)&&(t=null,i=ai(i).concat(l.value));let r;t?r=e.startState.values.slice():(t=hs.resolve(i,s,this),r=new I(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let o=e.startState.facet(Ir)?e.newSelection:e.newSelection.asSingle();new I(t,e.newDoc,o,r,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:b.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=ai(i.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return I.create({doc:e.doc,selection:b.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=hs.resolve(e.extensions||[],new Map),i=e.doc instanceof V?e.doc:V.of((e.doc||"").split(t.staticFacet(I.lineSeparator)||$r)),s=e.selection?e.selection instanceof b?e.selection:b.single(e.selection.anchor,e.selection.head):b.single(0);return ec(s,i.length),t.staticFacet(Ir)||(s=s.asSingle()),new I(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(I.tabSize)}get lineBreak(){return this.facet(I.lineSeparator)||` diff --git a/webapp/assets/_app/immutable/chunks/Du50aAe5.js b/webapp/assets/_app/immutable/chunks/BIepGqC5.js similarity index 99% rename from webapp/assets/_app/immutable/chunks/Du50aAe5.js rename to webapp/assets/_app/immutable/chunks/BIepGqC5.js index b8664f0a..74179c7e 100644 --- a/webapp/assets/_app/immutable/chunks/Du50aAe5.js +++ b/webapp/assets/_app/immutable/chunks/BIepGqC5.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as pe}from"./C7KraPli.js";import{aj as gt,aU as ft,aV as ht,J as mt,L as pt,M as xt,N as kt,O as yt,at as _t,H as We,I as bt,Q as wt,P as Mt,a1 as Pt,p as ue,l as we,k as Me,m as Pe,q as p,h as Ee,C as xe,d as s,g as e,r as i,t as R,b as n,c as ge,f as T,s as P,e as U,z as Be,D as Te,B as F,a as V,E as Ce,i as et,y as Ct,v as Q,u as c}from"./cPTQ2Ibn.js";import{p as d,i as z,b as jt}from"./DqFqoVWr.js";import{e as se,i as ve}from"./CiWDXYQd.js";import{h as Fe,s as me,B as be,r as zt,c as Ae,b as Tt,d as It,i as Xe,j as Lt}from"./DqbUkQgD.js";import{c as Ht}from"./41x1-UqF.js";import{b as St}from"./B-_QCM7E.js";import{A as tt}from"./C2rI8IaC.js";import{B as Bt,g as Ye,b as At}from"./DJsB5Z5V.js";function $e(H,r,g){We&&bt();var a=H,t=_t,x,h,m=null,u=gt()?ft:ht;function I(){x&&wt(x),m!==null&&(m.lastChild.remove(),a.before(m),m=null),x=h}mt(()=>{if(u(t,t=r())){var b=a,S=yt();S&&(m=document.createDocumentFragment(),m.append(b=pt())),h=xt(()=>g(b)),S?kt.add_callback(I):I()}}),We&&(a=Mt)}function Se(H,r){var g=H.$$events?.[r.type],a=Pt(g)?g.slice():g==null?[]:[g];for(var t of a)t.call(this,r)}var Et=xe('');function Dt(H,r){ue(r,!1);const g=Pe();let a=d(r,"name",8),t=d(r,"class",8,"h-5 w-5");const x={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:''};we(()=>p(a()),()=>{Me(g,x[a()]||"")}),Ee();var h=Et(),m=s(h);Fe(m,()=>e(g),!0),i(h),R(()=>me(h,0,`${t()}`)),n(H,h),ge()}var Nt=T('

');function Vt(H,r){let g=d(r,"message",8,"Loading...");var a=Nt(),t=P(s(a),2),x=s(t,!0);i(t),i(a),R(()=>U(x,g())),n(H,a)}var Rt=T('
'),Ut=T('

');function qt(H,r){let g=d(r,"title",8,"Error"),a=d(r,"message",8),t=d(r,"showRetry",8,!1),x=d(r,"onRetry",8,void 0);var h=Ut(),m=s(h),u=s(m),I=P(s(u),2),b=s(I),S=s(b,!0);i(b);var G=P(b,2),q=s(G,!0);i(G);var E=P(G,2);{var K=B=>{var w=Rt(),A=s(w);be(A,{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(...N){x()?.apply(this,N)}},children:(N,X)=>{Be();var ee=Te("Retry");n(N,ee)},$$slots:{default:!0}}),i(w),n(B,w)};z(E,B=>{t()&&x()&&B(K)})}i(I),i(u),i(m),i(h),R(()=>{U(S,g()),U(q,a())}),n(H,h)}var Ot=xe(''),Ft=xe(''),Gt=xe(''),Jt=xe(''),Qt=xe(''),Zt=xe(''),Kt=T('

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

'),sr=T('

'),lr=T('

'),dr=T('

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

');function Vt(H,r){let g=d(r,"message",8,"Loading...");var a=Nt(),t=P(s(a),2),x=s(t,!0);i(t),i(a),R(()=>U(x,g())),n(H,a)}var Rt=T('
'),Ut=T('

');function qt(H,r){let g=d(r,"title",8,"Error"),a=d(r,"message",8),t=d(r,"showRetry",8,!1),x=d(r,"onRetry",8,void 0);var h=Ut(),m=s(h),u=s(m),I=P(s(u),2),b=s(I),S=s(b,!0);i(b);var G=P(b,2),q=s(G,!0);i(G);var E=P(G,2);{var K=B=>{var w=Rt(),A=s(w);be(A,{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(...N){x()?.apply(this,N)}},children:(N,X)=>{Be();var ee=Te("Retry");n(N,ee)},$$slots:{default:!0}}),i(w),n(B,w)};z(E,B=>{t()&&x()&&B(K)})}i(I),i(u),i(m),i(h),R(()=>{U(S,g()),U(q,a())}),n(H,h)}var Ot=xe(''),Ft=xe(''),Gt=xe(''),Jt=xe(''),Qt=xe(''),Zt=xe(''),Kt=T('

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

'),sr=T('

'),lr=T('

'),dr=T('

'),vr=T('
'),cr=T('
'),ur=T('
'),gr=T(" "),fr=T('
'),hr=T('
');function mr(H,r){ue(r,!1);const g=Ce();let a=d(r,"item",8),t=d(r,"config",8);function x(){if(!a())return"Unknown";const{field:o,useId:v,showOwner:l}=t().primaryText,f=a()[o];return v&&f?`${f.slice(0,8)}...`:l&&a().owner&&a().name?`${a().owner}/${a().name}`:f||"Unknown"}function h(){if(!t().secondaryText)return"";const{field:o,computedValue:v}=t().secondaryText;return v!==void 0?typeof v=="function"?v(a()):v:a()?.[o]||""}function m(){if(!t().primaryText.href||!a())return"#";let o=t().primaryText.href;return o=o.replace("{id}",a().id||""),o=o.replace("{name}",encodeURIComponent(a().name||"")),It(o)}function u(o){if(!a())return;const v=t().actions?.find(l=>l.type===o);v&&v.handler(a()),o==="edit"?g("edit",{item:a()}):o==="delete"?g("delete",{item:a()}):o==="clone"?g("clone",{item:a()}):g("action",{type:o,item:a()})}function I(o){switch(o.type){case"status":if(t().entityType==="instance"){const l=a()?.[o.field]||"unknown";let f="neutral",D=l.charAt(0).toUpperCase()+l.slice(1);return o.field==="status"?f=l==="running"?"success":l==="pending"||l==="creating"?"info":l==="failed"||l==="error"?"error":"neutral":o.field==="runner_status"&&(f=l==="idle"?"info":l==="active"||l==="running"?"success":l==="failed"||l==="error"?"error":"neutral"),{variant:f,text:D}}return{variant:"neutral",text:a()?.[o.field]||"Unknown"};case"forge":return{variant:"neutral",text:a()?.[o.field]||"unknown"};case"auth":const v=a()?.[o.field]||"pat";return{variant:v==="pat"?"success":"info",text:v.toUpperCase()};case"custom":if(typeof o.value=="function"){const l=o.value(a());return{variant:l?.variant||"neutral",text:l?.text||""}}return{variant:o.value?.variant||"neutral",text:o.value?.text||""};default:return{variant:"neutral",text:""}}}pe();var b=hr(),S=s(b),G=s(S);{var q=o=>{var v=sr(),l=s(v),f=s(l,!0);i(l);var D=P(l,2);{var Z=_=>{var L=or(),C=s(L,!0);i(L),R(M=>U(C,M),[()=>c(h)]),n(_,L)};z(D,_=>{p(t()),c(()=>t().secondaryText)&&_(Z)})}i(v),R((_,L)=>{Ae(v,"href",_),me(l,1,`text-sm font-medium text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 truncate${p(t()),c(()=>t().primaryText.isMonospace?" font-mono":"")??""}`),U(f,L)},[()=>c(m),()=>c(x)]),n(o,v)},E=o=>{var v=dr(),l=s(v),f=s(l,!0);i(l);var D=P(l,2);{var Z=_=>{var L=lr(),C=s(L,!0);i(L),R(M=>U(C,M),[()=>c(h)]),n(_,L)};z(D,_=>{p(t()),c(()=>t().secondaryText)&&_(Z)})}i(v),R(_=>U(f,_),[()=>c(x)]),n(o,v)};z(G,o=>{p(t()),c(()=>t().primaryText.isClickable)?o(q):o(E,!1)})}var K=P(G,2);{var B=o=>{var v=ur(),l=s(v);{var f=_=>{var L=F(),C=V(L);se(C,1,()=>(p(t()),c(()=>t().customInfo)),ve,(M,k)=>{const j=Q(()=>(e(k),p(a()),c(()=>typeof e(k).icon=="function"?e(k).icon(a()):e(k).icon))),J=Q(()=>(e(k),p(a()),c(()=>typeof e(k).text=="function"?e(k).text(a()):e(k).text)));var W=vr(),$=s(W);{var re=je=>{var Le=F(),De=V(Le);Fe(De,()=>e(j)),n(je,Le)};z($,je=>{e(j)&&je(re)})}var le=P($,2),Ie=s(le,!0);i(le),i(W),R(()=>U(Ie,e(J))),n(M,W)}),n(_,L)};z(l,_=>{p(t()),c(()=>t().customInfo)&&_(f)})}var D=P(l,2);{var Z=_=>{var L=F(),C=V(L);se(C,1,()=>(p(t()),c(()=>t().badges.filter(M=>M.type==="forge"))),ve,(M,k)=>{var j=cr(),J=s(j);Fe(J,()=>(p(Ye),e(k),p(a()),c(()=>Ye(e(k).field?a()?.[e(k).field]||"unknown":a()?.endpoint?.endpoint_type||"unknown"))));var W=P(J,2),$=s(W,!0);i(W),i(j),R(()=>U($,(p(a()),c(()=>a()?.endpoint?.name||"Unknown")))),n(M,j)}),n(_,L)};z(D,_=>{p(t()),c(()=>t().badges)&&_(Z)})}i(v),n(o,v)};z(K,o=>{p(t()),c(()=>t().customInfo||t().badges?.some(v=>v.type==="forge"))&&o(B)})}i(S);var w=P(S,2),A=s(w);{var N=o=>{var v=F(),l=V(v);se(l,1,()=>(p(t()),c(()=>t().badges.filter(f=>f.type!=="forge"))),ve,(f,D)=>{var Z=F(),_=V(Z);{var L=M=>{const k=Q(()=>(e(D),c(()=>I(e(D)))));var j=gr(),J=s(j,!0);i(j),R(()=>{me(j,1,`inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ring-1 ring-inset ${p(e(k)),c(()=>e(k).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(k).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(k).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")??""}`),U(J,(p(e(k)),c(()=>e(k).text)))}),n(M,j)},C=M=>{const k=Q(()=>(e(D),c(()=>I(e(D)))));Bt(M,{get variant(){return p(e(k)),c(()=>e(k).variant)},get text(){return p(e(k)),c(()=>e(k).text)}})};z(_,M=>{e(D),c(()=>e(D).type==="status")?M(L):M(C,!1)})}n(f,Z)}),n(o,v)};z(A,o=>{p(t()),c(()=>t().badges)&&o(N)})}var X=P(A,2);{var ee=o=>{var v=fr();se(v,5,()=>(p(t()),c(()=>t().actions)),ve,(l,f)=>{{let D=Q(()=>(e(f),c(()=>e(f).type==="clone"?"copy":e(f).type))),Z=Q(()=>(e(f),p(t()),c(()=>e(f).type==="edit"?`Edit ${t().entityType}`:e(f).type==="delete"?`Delete ${t().entityType}`:e(f).type==="clone"?`Clone ${t().entityType}`:e(f).type))),_=Q(()=>(e(f),p(t()),c(()=>e(f).type==="edit"?`Edit ${t().entityType}`:e(f).type==="delete"?`Delete ${t().entityType}`:e(f).type==="clone"?`Clone ${t().entityType}`:e(f).type)));tt(l,{get action(){return e(D)},size:"sm",get title(){return e(Z)},get ariaLabel(){return e(_)},$$events:{click:()=>u(e(f).type)}})}}),i(v),n(o,v)};z(X,o=>{p(t()),c(()=>t().actions)&&o(ee)})}i(w),i(b),n(H,b),ge()}var pr=T('
'),xr=T('
'),kr=T("
"),yr=T("
"),_r=T(' ',1),br=T('
');function Er(H,r){ue(r,!1);const g=Pe();let a=d(r,"columns",24,()=>[]),t=d(r,"data",24,()=>[]),x=d(r,"loading",8,!1),h=d(r,"error",8,""),m=d(r,"totalItems",8,0),u=d(r,"itemName",8,"results"),I=d(r,"searchTerm",12,""),b=d(r,"searchPlaceholder",8,"Search..."),S=d(r,"showSearch",8,!0),G=d(r,"currentPage",8,1),q=d(r,"perPage",12,25),E=d(r,"totalPages",8,1),K=d(r,"showPagination",8,!0),B=d(r,"showPerPageSelector",8,!0),w=d(r,"emptyTitle",8,"No items found"),A=d(r,"emptyMessage",8,""),N=d(r,"emptyIconType",8,"document"),X=d(r,"errorTitle",8,"Error loading data"),ee=d(r,"showRetry",8,!1),o=d(r,"showMobileCards",8,!0),v=d(r,"mobileCardConfig",8,null);const l=Ce();function f(y){l("search",y.detail)}function D(y){l("pageChange",y.detail)}function Z(y){l("perPageChange",y.detail)}function _(){l("retry")}function L(y){l("edit",y.detail)}function C(y){l("delete",y.detail)}function M(y){l("clone",y.detail)}function k(y){l("action",y.detail)}function j(y){const de="px-6 py-4 text-sm",Ne=y.align==="right"?"text-right":y.align==="center"?"text-center":"text-left",Ve=y.key==="actions"?"font-medium":"text-gray-900 dark:text-white",Re=y.flexible?"min-w-0":"";return`${de} ${Ne} ${Ve} ${Re}`.trim()}function J(){return a().map(y=>y.flexible?`${y.flexRatio||1}fr`:"auto").join(" ")}we(()=>(p(A()),p(I()),p(u())),()=>{Me(g,A()||(I()?`No items found matching "${I()}"`:`No ${u()} found`))}),Ee(),pe();var W=br(),$=s(W);{var re=y=>{rr(y,{get placeholder(){return b()},get showPerPageSelector(){return B()},get searchTerm(){return I()},set searchTerm(de){I(de)},get perPage(){return q()},set perPage(de){q(de)},$$events:{search:f,perPageChange:Z},$$legacy:!0})};z($,y=>{S()&&y(re)})}var le=P($,2),Ie=s(le);{var je=y=>{Vt(y,{get message(){return`Loading ${u()??""}...`}})},Le=y=>{var de=F(),Ne=V(de);{var Ve=ke=>{{let He=Q(()=>ee()?_:void 0);qt(ke,{get title(){return X()},get message(){return h()},get showRetry(){return ee()},get onRetry(){return e(He)}})}},Re=ke=>{var He=F(),at=V(He);{var nt=ye=>{Wt(ye,{get title(){return w()},get message(){return e(g)},get iconType(){return N()}})},it=ye=>{var Ge=_r(),Je=V(Ge);{var ot=ae=>{var O=xr();se(O,7,t,(ie,te)=>ie.id||ie.name||te,(ie,te,qe)=>{var ze=pr(),Y=s(ze);{var _e=ce=>{var fe=F(),ne=V(fe);$e(ne,()=>(e(te),c(()=>`${e(te).id||e(te).name}-${e(te).updated_at}-mobile`)),he=>{mr(he,{get item(){return e(te)},get config(){return v()},$$events:{edit(oe){Se.call(this,r,oe)},delete(oe){Se.call(this,r,oe)},clone(oe){Se.call(this,r,oe)},action(oe){Se.call(this,r,oe)}}})}),n(ce,fe)},Oe=ce=>{var fe=F(),ne=V(fe);Xe(ne,r,"mobile-card",{get item(){return e(te)},get index(){return e(qe)}}),n(ce,fe)};z(Y,ce=>{v()?ce(_e):ce(Oe,!1)})}i(ze),n(ie,ze)}),i(O),n(ae,O)};z(Je,ae=>{o()&&ae(ot)})}var Qe=P(Je,2),Ue=s(Qe),Ze=s(Ue);se(Ze,1,a,ve,(ae,O)=>{var ie=kr(),te=s(ie,!0);i(ie),R(()=>{me(ie,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(O),c(()=>e(O).align==="right"?"text-right":e(O).align==="center"?"text-center":"text-left")??""}`),U(te,(e(O),c(()=>e(O).title)))}),n(ae,ie)});var st=P(Ze,2);se(st,3,t,(ae,O)=>ae.id||ae.name||O,(ae,O,ie)=>{var te=F(),qe=V(te);se(qe,1,a,ve,(ze,Y)=>{var _e=yr(),Oe=s(_e);{var ce=ne=>{var he=F(),oe=V(he);$e(oe,()=>(e(O),e(Y),c(()=>`${e(O).id||e(O).name}-${e(O).updated_at}-${e(Y).key}`)),lt=>{var Ke=F(),dt=V(Ke);{let vt=Q(()=>typeof e(Y).cellProps=="function"?e(Y).cellProps(e(O)):e(Y).cellProps);Ht(dt,()=>e(Y).cellComponent,(ct,ut)=>{ut(ct,jt({get item(){return e(O)}},()=>e(vt),{$$events:{edit:L,delete:C,clone:M,action:k}}))})}n(lt,Ke)}),n(ne,he)},fe=ne=>{var he=F(),oe=V(he);Xe(oe,r,"cell",{get item(){return e(O)},get column(){return e(Y)},get index(){return e(ie)},get value(){return e(O),e(Y),c(()=>e(O)[e(Y).key])}}),n(ne,he)};z(Oe,ne=>{e(Y),c(()=>e(Y).cellComponent)?ne(ce):ne(fe,!1)})}i(_e),R(ne=>me(_e,1,`${ne??""} border-b border-gray-200 dark:border-gray-700`),[()=>(e(Y),c(()=>j(e(Y))))]),n(ze,_e)}),n(ae,te)}),i(Ue),i(Qe),R(ae=>Lt(Ue,`grid-template-columns: ${ae??""}`),[()=>c(J)]),n(ye,Ge)};z(at,ye=>{p(t()),c(()=>t().length===0)?ye(nt):ye(it,!1)},!0)}n(ke,He)};z(Ne,ke=>{h()?ke(Ve):ke(Re,!1)},!0)}n(y,de)};z(Ie,y=>{x()?y(je):y(Le,!1)})}var De=P(Ie,2);{var rt=y=>{ir(y,{get currentPage(){return G()},get totalPages(){return E()},get perPage(){return q()},get totalItems(){return m()},get itemName(){return u()},$$events:{pageChange:D}})};z(De,y=>{p(K()),p(x()),p(h()),p(t()),c(()=>K()&&!x()&&!h()&&t().length>0)&&y(rt)})}i(le),i(W),n(H,W),ge()}var wr=T('
');function Dr(H,r){ue(r,!1);const g=Ce();let a=d(r,"item",8),t=d(r,"actions",24,()=>[{type:"edit",title:"Edit",ariaLabel:"Edit item",action:"edit"},{type:"delete",title:"Delete",ariaLabel:"Delete item",action:"delete"}]);function x(m){a()&&(m==="edit"?g("edit",{item:a()}):m==="delete"?g("delete",{item:a()}):m==="copy"?g("clone",{item:a()}):g("action",{type:m,item:a()}))}pe();var h=wr();se(h,5,t,ve,(m,u)=>{{let I=Q(()=>(e(u),c(()=>e(u).action==="clone"?"copy":e(u).action||(e(u).type==="edit"?"edit":e(u).type==="delete"?"delete":e(u).type==="copy"?"copy":"view")))),b=Q(()=>(e(u),c(()=>e(u).title||(e(u).type==="edit"?"Edit":e(u).type==="delete"?"Delete":e(u).type==="copy"?"Clone":e(u).label)))),S=Q(()=>(e(u),c(()=>e(u).ariaLabel||(e(u).type==="edit"?"Edit item":e(u).type==="delete"?"Delete item":e(u).type==="copy"?"Clone item":e(u).label))));tt(m,{get action(){return e(I)},get title(){return e(b)},get ariaLabel(){return e(S)},$$events:{click:()=>x(e(u).type)}})}}),i(h),n(H,h),ge()}var Mr=T(" "),Pr=T(" ");function Nr(H,r){ue(r,!1);const g=Pe(),a=Pe();let t=d(r,"item",8),x=d(r,"field",8),h=d(r,"type",8,"text"),m=d(r,"truncateLength",8,50),u=d(r,"showTitle",8,!1);function I(){return t()&&x().split(".").reduce((B,w)=>B?.[w],t())||""}function b(){return h()==="date"?At(e(g)):h()==="truncated"&&e(g).length>m()?`${e(g).slice(0,m())}...`:e(g)}function S(){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"}}we(()=>{},()=>{Me(g,I())}),we(()=>{},()=>{Me(a,b())}),Ee(),pe();var G=F(),q=V(G);{var E=B=>{var w=Mr(),A=s(w,!0);i(w),R(N=>{me(w,1,`${N??""} ${u()?"cursor-default":""}`),Ae(w,"title",u()?e(g):""),U(A,e(a))},[()=>c(S)]),n(B,w)},K=B=>{var w=Pr(),A=s(w,!0);i(w),R(N=>{me(w,1,`${N??""} ${u()?"cursor-default":""}`),Ae(w,"title",u()?e(g):""),U(A,e(a))},[()=>c(S)]),n(B,w)};z(q,B=>{h()==="code"?B(E):B(K,!1)})}n(H,G),ge()}export{Dr as A,Er as D,Nr as G,Vt as L,$e as k}; diff --git a/webapp/assets/_app/immutable/chunks/DPR9Z_fe.js b/webapp/assets/_app/immutable/chunks/BIkO7LkR.js similarity index 99% rename from webapp/assets/_app/immutable/chunks/DPR9Z_fe.js rename to webapp/assets/_app/immutable/chunks/BIkO7LkR.js index 8298cdfd..7f45355d 100644 --- a/webapp/assets/_app/immutable/chunks/DPR9Z_fe.js +++ b/webapp/assets/_app/immutable/chunks/BIkO7LkR.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as it}from"./C7KraPli.js";import{p as st,E as lt,m as n,o as nt,l as zr,g as e,h as ut,f as x,s as r,d as o,r as a,t as p,i as q,b as u,e as M,a as de,z as Ye,y as Q,u as v,k as d,D as X,c as bt,B as Ir,q as vt}from"./cPTQ2Ibn.js";import{p as Ar,i as E}from"./DqFqoVWr.js";import{e as ie,i as se}from"./CiWDXYQd.js";import{s as Ze,r as C,b as Y,g as D,c as jr,d as $r}from"./DqbUkQgD.js";import{b as $,a as ct}from"./B-_QCM7E.js";import{p as gt}from"./D4Caz1gY.js";import{M as pt}from"./Bo3f8OIz.js";import{e as le}from"./BZiHL9L3.js";import{J as ft}from"./D6f8Dk7c.js";var mt=x('

'),yt=x('
'),xt=x(""),_t=x(''),ht=x('
'),kt=x(""),wt=x(''),Et=x('
Loading templates...
'),Tt=x(""),Mt=x('

Templates define how the runner software is installed and configured.

',1),Pt=x('

Create a template first or proceed without a template to use default behavior.

'),Rt=x('

Select an entity first to see available templates

'),St=x(' '),Ct=x('
'),zt=x('

Entity & Provider Configuration

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
',1),It=x('
Creating...
'),At=x('

Create New Pool

Entity Level *
');function Vt(Or,ne){st(ne,!1);const Z=lt();let ue=Ar(ne,"initialEntityType",8,""),er=Ar(ne,"initialEntityId",8,""),ee=n(!1),O=n(""),f=n(ue()),B=n([]),be=n([]),P=n([]),ve=n(!1),ce=n(!1),ge=n(!1),m=n(er()),G=n(""),V=n(""),F=n(""),pe=n(void 0),fe=n(void 0),me=n(void 0),ye=n(100),xe=n("garm"),T=n("linux"),re=n("amd64"),_e=n(""),he=n(!0),z=n([]),J=n(""),K=n("{}"),I=n(void 0);async function Br(){try{d(ce,!0),d(be,await D.listProviders())}catch(i){d(O,le(i))}finally{d(ce,!1)}}async function rr(){try{d(ge,!0);const i=ke();if(!i){d(P,[]);return}if(d(P,await D.listTemplates(e(T),void 0,i)),!e(I)||!e(P).find(g=>g.id===e(I))){const g=e(P).find(H=>H.owner_id==="system");g?d(I,g.id):e(P).length>0&&d(I,e(P)[0].id)}}catch(i){d(O,le(i))}finally{d(ge,!1)}}function ke(){if(!e(m)||!e(B))return null;const i=e(B).find(g=>g.id===e(m));if(!i)return null;if("forge_type"in i)return i.forge_type;if("endpoint"in i){const g=i.endpoint;if(g&&"endpoint_type"in g)return g.endpoint_type||null}return"github"}async function tr(){if(e(f))try{switch(d(ve,!0),d(B,[]),e(f)){case"repository":d(B,await D.listRepositories());break;case"organization":d(B,await D.listOrganizations());break;case"enterprise":d(B,await D.listEnterprises());break}}catch(i){d(O,le(i))}finally{d(ve,!1)}}function we(i){e(f)!==i&&(d(f,i),d(m,""),d(I,void 0),tr())}function ar(){e(J).trim()&&!e(z).includes(e(J).trim())&&(d(z,[...e(z),e(J).trim()]),d(J,""))}function Hr(i){d(z,e(z).filter((g,H)=>H!==i))}function Lr(i){i.key==="Enter"&&(i.preventDefault(),ar())}async function qr(){if(!e(f)||!e(m)||!e(G)||!e(V)||!e(F)){d(O,"Please fill in all required fields");return}try{d(ee,!0),d(O,"");let i={};if(e(K).trim())try{i=JSON.parse(e(K))}catch{throw new Error("Invalid JSON in extra specs")}const g={provider_name:e(G),image:e(V),flavor:e(F),max_runners:e(pe)||10,min_idle_runners:e(fe)||0,runner_bootstrap_timeout:e(me)||20,priority:e(ye),runner_prefix:e(xe),os_type:e(T),os_arch:e(re),"github-runner-group":e(_e)||void 0,enabled:e(he),tags:e(z),extra_specs:e(K).trim()?i:void 0,template_id:e(I)};if(ue()&&er())Z("submit",g);else{switch(e(f)){case"repository":await D.createRepositoryPool(e(m),g);break;case"organization":await D.createOrganizationPool(e(m),g);break;case"enterprise":await D.createEnterprisePool(e(m),g);break;default:throw new Error("Invalid entity level")}Z("submit",g)}}catch(i){d(O,le(i))}finally{d(ee,!1)}}nt(()=>{Br(),ue()&&tr()}),zr(()=>(e(m),e(T)),()=>{e(m)&&e(T)&&rr()}),zr(()=>(e(T),e(m)),()=>{e(T)&&e(m)&&rr()}),ut(),it(),pt(Or,{$$events:{close:()=>Z("close")},children:(i,g)=>{var H=At(),Ee=r(o(H),2),or=o(Ee);{var Dr=k=>{var R=mt(),N=o(R),te=o(N,!0);a(N),a(R),p(()=>M(te,e(O))),u(k,R)};E(or,k=>{e(O)&&k(Dr)})}var Te=r(or,2),dr=r(o(Te),2),Me=o(dr),Pe=r(Me,2),ir=r(Pe,2);a(dr),a(Te);var sr=r(Te,2);{var Gr=k=>{var R=zt(),N=de(R),te=r(o(N),2),Se=o(te),Ce=o(Se),Fr=o(Ce);Ye(),a(Ce);var Kr=r(Ce,2);{var Ur=t=>{var b=yt();u(t,b)},Wr=t=>{var b=_t();p(()=>{e(m),Q(()=>{e(f),e(B)})});var w=o(b),L=o(w);a(w),w.value=w.__value="";var A=r(w);ie(A,1,()=>e(B),se,(c,s)=>{var y=xt(),j=o(y);{var U=l=>{var h=X();p(()=>M(h,`${e(s),v(()=>e(s).owner)??""}/${e(s),v(()=>e(s).name)??""} (${e(s),v(()=>e(s).endpoint?.name)??""})`)),u(l,h)},S=l=>{var h=X();p(()=>M(h,`${e(s),v(()=>e(s).name)??""} (${e(s),v(()=>e(s).endpoint?.name)??""})`)),u(l,h)};E(j,l=>{e(f)==="repository"?l(U):l(S,!1)})}a(y);var _={};p(()=>{_!==(_=(e(s),v(()=>e(s).id)))&&(y.value=(y.__value=(e(s),v(()=>e(s).id)))??"")}),u(c,y)}),a(b),p(()=>M(L,`Select a ${e(f)??""}`)),Y(b,()=>e(m),c=>d(m,c)),u(t,b)};E(Kr,t=>{e(ve)?t(Ur):t(Wr,!1)})}a(Se);var ur=r(Se,2),Qr=r(o(ur),2);{var Xr=t=>{var b=ht();u(t,b)},Yr=t=>{var b=wt();p(()=>{e(G),Q(()=>{e(be)})});var w=o(b);w.value=w.__value="";var L=r(w);ie(L,1,()=>e(be),se,(A,c)=>{var s=kt(),y=o(s,!0);a(s);var j={};p(()=>{M(y,(e(c),v(()=>e(c).name))),j!==(j=(e(c),v(()=>e(c).name)))&&(s.value=(s.__value=(e(c),v(()=>e(c).name)))??"")}),u(A,s)}),a(b),Y(b,()=>e(G),A=>d(G,A)),u(t,b)};E(Qr,t=>{e(ce)?t(Xr):t(Yr,!1)})}a(ur),a(te),a(N);var ze=r(N,2),Ie=r(o(ze),2),Ae=o(Ie),br=r(o(Ae),2);C(br),a(Ae);var je=r(Ae,2),vr=r(o(je),2);C(vr),a(je);var $e=r(je,2),Oe=r(o($e),2);p(()=>{e(T),Q(()=>{})});var Be=o(Oe);Be.value=Be.__value="linux";var cr=r(Be);cr.value=cr.__value="windows",a(Oe),a($e);var gr=r($e,2),He=r(o(gr),2);p(()=>{e(re),Q(()=>{})});var Le=o(He);Le.value=Le.__value="amd64";var pr=r(Le);pr.value=pr.__value="arm64",a(He),a(gr),a(Ie);var fr=r(Ie,2),Zr=r(o(fr),2);{var et=t=>{var b=Et();u(t,b)},rt=t=>{var b=Ir(),w=de(b);{var L=c=>{var s=Mt(),y=de(s);p(()=>{e(I),Q(()=>{e(P)})}),ie(y,5,()=>e(P),se,(_,l)=>{var h=Tt(),W=o(h),We=r(W);{var Qe=Xe=>{var Cr=X();p(()=>M(Cr,`- ${e(l),v(()=>e(l).description)??""}`)),u(Xe,Cr)};E(We,Xe=>{e(l),v(()=>e(l).description)&&Xe(Qe)})}a(h);var oe={};p(()=>{M(W,`${e(l),v(()=>e(l).name)??""} ${e(l),v(()=>e(l).owner_id==="system"?"(System)":"")??""} `),oe!==(oe=(e(l),v(()=>e(l).id)))&&(h.value=(h.__value=(e(l),v(()=>e(l).id)))??"")}),u(_,h)}),a(y);var j=r(y,2),U=r(o(j));{var S=_=>{var l=X();p(h=>M(l,`Showing templates for ${h??""} ${e(T)??""}.`),[()=>v(ke)]),u(_,l)};E(U,_=>{e(m)&&_(S)})}a(j),Y(y,()=>e(I),_=>d(I,_)),u(c,s)},A=c=>{var s=Ir(),y=de(s);{var j=S=>{var _=Pt(),l=o(_),h=o(l);a(l);var W=r(l,2),We=o(W);Ye(),a(W),a(_),p((Qe,oe)=>{M(h,`No templates found for ${Qe??""} ${e(T)??""}.`),jr(We,"href",oe)},[()=>v(ke),()=>(vt($r),v(()=>$r("/templates")))]),u(S,_)},U=S=>{var _=Rt();u(S,_)};E(y,S=>{e(m)?S(j):S(U,!1)},!0)}u(c,s)};E(w,c=>{e(P),v(()=>e(P).length>0)?c(L):c(A,!1)},!0)}u(t,b)};E(Zr,t=>{e(ge)?t(et):t(rt,!1)})}a(fr),a(ze);var qe=r(ze,2),mr=r(o(qe),2),De=o(mr),yr=r(o(De),2);C(yr),a(De);var Ge=r(De,2),xr=r(o(Ge),2);C(xr),a(Ge);var _r=r(Ge,2),hr=r(o(_r),2);C(hr),a(_r),a(mr),a(qe);var kr=r(qe,2),Je=r(o(kr),2),Ne=o(Je),wr=r(o(Ne),2);C(wr),a(Ne);var Ve=r(Ne,2),Er=r(o(Ve),2);C(Er),a(Ve);var Tr=r(Ve,2),Mr=r(o(Tr),2);C(Mr),a(Tr),a(Je);var Fe=r(Je,2),Pr=r(o(Fe),2),Ke=o(Pr),ae=o(Ke);C(ae);var tt=r(ae,2);a(Ke);var at=r(Ke,2);{var ot=t=>{var b=Ct();ie(b,5,()=>e(z),se,(w,L,A)=>{var c=St(),s=o(c),y=r(s);a(c),p(()=>{M(s,`${e(L)??""} `),jr(y,"aria-label",`Remove tag ${e(L)}`)}),q("click",y,()=>Hr(A)),u(w,c)}),a(b),u(t,b)};E(at,t=>{e(z),v(()=>e(z).length>0)&&t(ot)})}a(Pr),a(Fe);var Ue=r(Fe,2),dt=r(o(Ue),2);ft(dt,{rows:4,placeholder:"{}",get value(){return e(K)},set value(t){d(K,t)},$$legacy:!0}),a(Ue);var Rr=r(Ue,2),Sr=o(Rr);C(Sr),Ye(2),a(Rr),a(kr),p(t=>M(Fr,`${t??""} `),[()=>(e(f),v(()=>e(f).charAt(0).toUpperCase()+e(f).slice(1)))]),$(br,()=>e(V),t=>d(V,t)),$(vr,()=>e(F),t=>d(F,t)),Y(Oe,()=>e(T),t=>d(T,t)),Y(He,()=>e(re),t=>d(re,t)),$(yr,()=>e(fe),t=>d(fe,t)),$(xr,()=>e(pe),t=>d(pe,t)),$(hr,()=>e(me),t=>d(me,t)),$(wr,()=>e(xe),t=>d(xe,t)),$(Er,()=>e(ye),t=>d(ye,t)),$(Mr,()=>e(_e),t=>d(_e,t)),$(ae,()=>e(J),t=>d(J,t)),q("keydown",ae,Lr),q("click",tt,ar),ct(Sr,()=>e(he),t=>d(he,t)),u(k,R)};E(sr,k=>{e(f)&&k(Gr)})}var lr=r(sr,2),nr=o(lr),Re=r(nr,2),Jr=o(Re);{var Nr=k=>{var R=It();u(k,R)},Vr=k=>{var R=X("Create Pool");u(k,R)};E(Jr,k=>{e(ee)?k(Nr):k(Vr,!1)})}a(Re),a(lr),a(Ee),a(H),p(()=>{Ze(Me,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(f)==="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"}`),Ze(Pe,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(f)==="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"}`),Ze(ir,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(f)==="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"}`),Re.disabled=e(ee)||!e(f)||!e(m)||!e(G)||!e(V)||!e(F)}),q("click",Me,()=>we("repository")),q("click",Pe,()=>we("organization")),q("click",ir,()=>we("enterprise")),q("click",nr,()=>Z("close")),q("submit",Ee,gt(qr)),u(i,H)},$$slots:{default:!0}}),bt()}export{Vt as C}; +import"./DsnmJJEf.js";import{i as it}from"./C7KraPli.js";import{p as st,E as lt,m as n,o as nt,l as zr,g as e,h as ut,f as x,s as r,d as o,r as a,t as p,i as q,b as u,e as M,a as de,z as Ye,y as Q,u as v,k as d,D as X,c as bt,B as Ir,q as vt}from"./cPTQ2Ibn.js";import{p as Ar,i as E}from"./DqFqoVWr.js";import{e as ie,i as se}from"./CiWDXYQd.js";import{s as Ze,r as C,b as Y,g as D,c as jr,d as $r}from"./yWyZZHPR.js";import{b as $,a as ct}from"./B-_QCM7E.js";import{p as gt}from"./D4Caz1gY.js";import{M as pt}from"./ao5EljEX.js";import{e as le}from"./BZiHL9L3.js";import{J as ft}from"./BaxpdL59.js";var mt=x('

'),yt=x('
'),xt=x(""),_t=x(''),ht=x('
'),kt=x(""),wt=x(''),Et=x('
Loading templates...
'),Tt=x(""),Mt=x('

Templates define how the runner software is installed and configured.

',1),Pt=x('

Create a template first or proceed without a template to use default behavior.

'),Rt=x('

Select an entity first to see available templates

'),St=x(' '),Ct=x('
'),zt=x('

Entity & Provider Configuration

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
',1),It=x('
Creating...
'),At=x('

Create New Pool

Entity Level *
');function Vt(Or,ne){st(ne,!1);const Z=lt();let ue=Ar(ne,"initialEntityType",8,""),er=Ar(ne,"initialEntityId",8,""),ee=n(!1),O=n(""),f=n(ue()),B=n([]),be=n([]),P=n([]),ve=n(!1),ce=n(!1),ge=n(!1),m=n(er()),G=n(""),V=n(""),F=n(""),pe=n(void 0),fe=n(void 0),me=n(void 0),ye=n(100),xe=n("garm"),T=n("linux"),re=n("amd64"),_e=n(""),he=n(!0),z=n([]),J=n(""),K=n("{}"),I=n(void 0);async function Br(){try{d(ce,!0),d(be,await D.listProviders())}catch(i){d(O,le(i))}finally{d(ce,!1)}}async function rr(){try{d(ge,!0);const i=ke();if(!i){d(P,[]);return}if(d(P,await D.listTemplates(e(T),void 0,i)),!e(I)||!e(P).find(g=>g.id===e(I))){const g=e(P).find(H=>H.owner_id==="system");g?d(I,g.id):e(P).length>0&&d(I,e(P)[0].id)}}catch(i){d(O,le(i))}finally{d(ge,!1)}}function ke(){if(!e(m)||!e(B))return null;const i=e(B).find(g=>g.id===e(m));if(!i)return null;if("forge_type"in i)return i.forge_type;if("endpoint"in i){const g=i.endpoint;if(g&&"endpoint_type"in g)return g.endpoint_type||null}return"github"}async function tr(){if(e(f))try{switch(d(ve,!0),d(B,[]),e(f)){case"repository":d(B,await D.listRepositories());break;case"organization":d(B,await D.listOrganizations());break;case"enterprise":d(B,await D.listEnterprises());break}}catch(i){d(O,le(i))}finally{d(ve,!1)}}function we(i){e(f)!==i&&(d(f,i),d(m,""),d(I,void 0),tr())}function ar(){e(J).trim()&&!e(z).includes(e(J).trim())&&(d(z,[...e(z),e(J).trim()]),d(J,""))}function Hr(i){d(z,e(z).filter((g,H)=>H!==i))}function Lr(i){i.key==="Enter"&&(i.preventDefault(),ar())}async function qr(){if(!e(f)||!e(m)||!e(G)||!e(V)||!e(F)){d(O,"Please fill in all required fields");return}try{d(ee,!0),d(O,"");let i={};if(e(K).trim())try{i=JSON.parse(e(K))}catch{throw new Error("Invalid JSON in extra specs")}const g={provider_name:e(G),image:e(V),flavor:e(F),max_runners:e(pe)||10,min_idle_runners:e(fe)||0,runner_bootstrap_timeout:e(me)||20,priority:e(ye),runner_prefix:e(xe),os_type:e(T),os_arch:e(re),"github-runner-group":e(_e)||void 0,enabled:e(he),tags:e(z),extra_specs:e(K).trim()?i:void 0,template_id:e(I)};if(ue()&&er())Z("submit",g);else{switch(e(f)){case"repository":await D.createRepositoryPool(e(m),g);break;case"organization":await D.createOrganizationPool(e(m),g);break;case"enterprise":await D.createEnterprisePool(e(m),g);break;default:throw new Error("Invalid entity level")}Z("submit",g)}}catch(i){d(O,le(i))}finally{d(ee,!1)}}nt(()=>{Br(),ue()&&tr()}),zr(()=>(e(m),e(T)),()=>{e(m)&&e(T)&&rr()}),zr(()=>(e(T),e(m)),()=>{e(T)&&e(m)&&rr()}),ut(),it(),pt(Or,{$$events:{close:()=>Z("close")},children:(i,g)=>{var H=At(),Ee=r(o(H),2),or=o(Ee);{var Dr=k=>{var R=mt(),N=o(R),te=o(N,!0);a(N),a(R),p(()=>M(te,e(O))),u(k,R)};E(or,k=>{e(O)&&k(Dr)})}var Te=r(or,2),dr=r(o(Te),2),Me=o(dr),Pe=r(Me,2),ir=r(Pe,2);a(dr),a(Te);var sr=r(Te,2);{var Gr=k=>{var R=zt(),N=de(R),te=r(o(N),2),Se=o(te),Ce=o(Se),Fr=o(Ce);Ye(),a(Ce);var Kr=r(Ce,2);{var Ur=t=>{var b=yt();u(t,b)},Wr=t=>{var b=_t();p(()=>{e(m),Q(()=>{e(f),e(B)})});var w=o(b),L=o(w);a(w),w.value=w.__value="";var A=r(w);ie(A,1,()=>e(B),se,(c,s)=>{var y=xt(),j=o(y);{var U=l=>{var h=X();p(()=>M(h,`${e(s),v(()=>e(s).owner)??""}/${e(s),v(()=>e(s).name)??""} (${e(s),v(()=>e(s).endpoint?.name)??""})`)),u(l,h)},S=l=>{var h=X();p(()=>M(h,`${e(s),v(()=>e(s).name)??""} (${e(s),v(()=>e(s).endpoint?.name)??""})`)),u(l,h)};E(j,l=>{e(f)==="repository"?l(U):l(S,!1)})}a(y);var _={};p(()=>{_!==(_=(e(s),v(()=>e(s).id)))&&(y.value=(y.__value=(e(s),v(()=>e(s).id)))??"")}),u(c,y)}),a(b),p(()=>M(L,`Select a ${e(f)??""}`)),Y(b,()=>e(m),c=>d(m,c)),u(t,b)};E(Kr,t=>{e(ve)?t(Ur):t(Wr,!1)})}a(Se);var ur=r(Se,2),Qr=r(o(ur),2);{var Xr=t=>{var b=ht();u(t,b)},Yr=t=>{var b=wt();p(()=>{e(G),Q(()=>{e(be)})});var w=o(b);w.value=w.__value="";var L=r(w);ie(L,1,()=>e(be),se,(A,c)=>{var s=kt(),y=o(s,!0);a(s);var j={};p(()=>{M(y,(e(c),v(()=>e(c).name))),j!==(j=(e(c),v(()=>e(c).name)))&&(s.value=(s.__value=(e(c),v(()=>e(c).name)))??"")}),u(A,s)}),a(b),Y(b,()=>e(G),A=>d(G,A)),u(t,b)};E(Qr,t=>{e(ce)?t(Xr):t(Yr,!1)})}a(ur),a(te),a(N);var ze=r(N,2),Ie=r(o(ze),2),Ae=o(Ie),br=r(o(Ae),2);C(br),a(Ae);var je=r(Ae,2),vr=r(o(je),2);C(vr),a(je);var $e=r(je,2),Oe=r(o($e),2);p(()=>{e(T),Q(()=>{})});var Be=o(Oe);Be.value=Be.__value="linux";var cr=r(Be);cr.value=cr.__value="windows",a(Oe),a($e);var gr=r($e,2),He=r(o(gr),2);p(()=>{e(re),Q(()=>{})});var Le=o(He);Le.value=Le.__value="amd64";var pr=r(Le);pr.value=pr.__value="arm64",a(He),a(gr),a(Ie);var fr=r(Ie,2),Zr=r(o(fr),2);{var et=t=>{var b=Et();u(t,b)},rt=t=>{var b=Ir(),w=de(b);{var L=c=>{var s=Mt(),y=de(s);p(()=>{e(I),Q(()=>{e(P)})}),ie(y,5,()=>e(P),se,(_,l)=>{var h=Tt(),W=o(h),We=r(W);{var Qe=Xe=>{var Cr=X();p(()=>M(Cr,`- ${e(l),v(()=>e(l).description)??""}`)),u(Xe,Cr)};E(We,Xe=>{e(l),v(()=>e(l).description)&&Xe(Qe)})}a(h);var oe={};p(()=>{M(W,`${e(l),v(()=>e(l).name)??""} ${e(l),v(()=>e(l).owner_id==="system"?"(System)":"")??""} `),oe!==(oe=(e(l),v(()=>e(l).id)))&&(h.value=(h.__value=(e(l),v(()=>e(l).id)))??"")}),u(_,h)}),a(y);var j=r(y,2),U=r(o(j));{var S=_=>{var l=X();p(h=>M(l,`Showing templates for ${h??""} ${e(T)??""}.`),[()=>v(ke)]),u(_,l)};E(U,_=>{e(m)&&_(S)})}a(j),Y(y,()=>e(I),_=>d(I,_)),u(c,s)},A=c=>{var s=Ir(),y=de(s);{var j=S=>{var _=Pt(),l=o(_),h=o(l);a(l);var W=r(l,2),We=o(W);Ye(),a(W),a(_),p((Qe,oe)=>{M(h,`No templates found for ${Qe??""} ${e(T)??""}.`),jr(We,"href",oe)},[()=>v(ke),()=>(vt($r),v(()=>$r("/templates")))]),u(S,_)},U=S=>{var _=Rt();u(S,_)};E(y,S=>{e(m)?S(j):S(U,!1)},!0)}u(c,s)};E(w,c=>{e(P),v(()=>e(P).length>0)?c(L):c(A,!1)},!0)}u(t,b)};E(Zr,t=>{e(ge)?t(et):t(rt,!1)})}a(fr),a(ze);var qe=r(ze,2),mr=r(o(qe),2),De=o(mr),yr=r(o(De),2);C(yr),a(De);var Ge=r(De,2),xr=r(o(Ge),2);C(xr),a(Ge);var _r=r(Ge,2),hr=r(o(_r),2);C(hr),a(_r),a(mr),a(qe);var kr=r(qe,2),Je=r(o(kr),2),Ne=o(Je),wr=r(o(Ne),2);C(wr),a(Ne);var Ve=r(Ne,2),Er=r(o(Ve),2);C(Er),a(Ve);var Tr=r(Ve,2),Mr=r(o(Tr),2);C(Mr),a(Tr),a(Je);var Fe=r(Je,2),Pr=r(o(Fe),2),Ke=o(Pr),ae=o(Ke);C(ae);var tt=r(ae,2);a(Ke);var at=r(Ke,2);{var ot=t=>{var b=Ct();ie(b,5,()=>e(z),se,(w,L,A)=>{var c=St(),s=o(c),y=r(s);a(c),p(()=>{M(s,`${e(L)??""} `),jr(y,"aria-label",`Remove tag ${e(L)}`)}),q("click",y,()=>Hr(A)),u(w,c)}),a(b),u(t,b)};E(at,t=>{e(z),v(()=>e(z).length>0)&&t(ot)})}a(Pr),a(Fe);var Ue=r(Fe,2),dt=r(o(Ue),2);ft(dt,{rows:4,placeholder:"{}",get value(){return e(K)},set value(t){d(K,t)},$$legacy:!0}),a(Ue);var Rr=r(Ue,2),Sr=o(Rr);C(Sr),Ye(2),a(Rr),a(kr),p(t=>M(Fr,`${t??""} `),[()=>(e(f),v(()=>e(f).charAt(0).toUpperCase()+e(f).slice(1)))]),$(br,()=>e(V),t=>d(V,t)),$(vr,()=>e(F),t=>d(F,t)),Y(Oe,()=>e(T),t=>d(T,t)),Y(He,()=>e(re),t=>d(re,t)),$(yr,()=>e(fe),t=>d(fe,t)),$(xr,()=>e(pe),t=>d(pe,t)),$(hr,()=>e(me),t=>d(me,t)),$(wr,()=>e(xe),t=>d(xe,t)),$(Er,()=>e(ye),t=>d(ye,t)),$(Mr,()=>e(_e),t=>d(_e,t)),$(ae,()=>e(J),t=>d(J,t)),q("keydown",ae,Lr),q("click",tt,ar),ct(Sr,()=>e(he),t=>d(he,t)),u(k,R)};E(sr,k=>{e(f)&&k(Gr)})}var lr=r(sr,2),nr=o(lr),Re=r(nr,2),Jr=o(Re);{var Nr=k=>{var R=It();u(k,R)},Vr=k=>{var R=X("Create Pool");u(k,R)};E(Jr,k=>{e(ee)?k(Nr):k(Vr,!1)})}a(Re),a(lr),a(Ee),a(H),p(()=>{Ze(Me,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(f)==="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"}`),Ze(Pe,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(f)==="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"}`),Ze(ir,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(f)==="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"}`),Re.disabled=e(ee)||!e(f)||!e(m)||!e(G)||!e(V)||!e(F)}),q("click",Me,()=>we("repository")),q("click",Pe,()=>we("organization")),q("click",ir,()=>we("enterprise")),q("click",nr,()=>Z("close")),q("submit",Ee,gt(qr)),u(i,H)},$$slots:{default:!0}}),bt()}export{Vt as C}; diff --git a/webapp/assets/_app/immutable/chunks/D7e9zx6w.js b/webapp/assets/_app/immutable/chunks/BMOcKgHw.js similarity index 78% rename from webapp/assets/_app/immutable/chunks/D7e9zx6w.js rename to webapp/assets/_app/immutable/chunks/BMOcKgHw.js index 4de5c05f..eb5d213d 100644 --- a/webapp/assets/_app/immutable/chunks/D7e9zx6w.js +++ b/webapp/assets/_app/immutable/chunks/BMOcKgHw.js @@ -1 +1 @@ -const w=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function x(t){const s=[];return{pattern:t==="/"?/^\/$/:new RegExp(`^${_(t).map(a=>{const i=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(i)return s.push({name:i[1],matcher:i[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const c=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(c)return s.push({name:c[1],matcher:c[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const n=a.split(/\[(.+?)\](?!\])/);return"/"+n.map((e,u)=>{if(u%2){if(e.startsWith("x+"))return h(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith("u+"))return h(String.fromCharCode(...e.slice(2).split("-").map(g=>parseInt(g,16))));const o=w.exec(e),[,l,f,m,d]=o;return s.push({name:m,matcher:d,optional:!!l,rest:!!f,chained:f?u===1&&n[0]==="":!1}),f?"([^]*?)":l?"([^/]*)?":"([^/]+?)"}return h(e)}).join("")}).join("")}/?$`),params:s}}function $(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function _(t){return t.slice(1).split("/").filter($)}function j(t,s,p){const a={},i=t.slice(1),c=i.filter(r=>r!==void 0);let n=0;for(let r=0;ro).join("/"),n=0),u===void 0){e.rest&&(a[e.name]="");continue}if(!e.matcher||p[e.matcher](u)){a[e.name]=u;const o=s[r+1],l=i[r+1];o&&!o.rest&&o.optional&&l&&e.chained&&(n=0),!o&&!l&&Object.keys(a).length===c.length&&(n=0);continue}if(e.optional&&e.chained){n++;continue}return}if(!n)return a}function h(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}const b=/\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;function k(t,s){return"/"+_(t).map(a=>a.replace(b,(i,c,n,r)=>{const e=s[r];if(!e){if(c||n&&e!==void 0)return"";throw new Error(`Missing parameter '${r}' in route ${t}`)}if(e.startsWith("/")||e.endsWith("/"))throw new Error(`Parameter '${r}' in route ${t} cannot start or end with a slash -- this would cause an invalid route like foo//bar`);return e})).filter(Boolean).join("/")}const v=globalThis.__sveltekit_ppz5de?.base??"/ui",C=globalThis.__sveltekit_ppz5de?.assets??v;export{C as a,v as b,j as e,x as p,k as r}; +const w=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function x(t){const s=[];return{pattern:t==="/"?/^\/$/:new RegExp(`^${_(t).map(a=>{const i=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(i)return s.push({name:i[1],matcher:i[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const c=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(c)return s.push({name:c[1],matcher:c[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const n=a.split(/\[(.+?)\](?!\])/);return"/"+n.map((e,u)=>{if(u%2){if(e.startsWith("x+"))return h(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith("u+"))return h(String.fromCharCode(...e.slice(2).split("-").map(d=>parseInt(d,16))));const o=w.exec(e),[,l,p,m,g]=o;return s.push({name:m,matcher:g,optional:!!l,rest:!!p,chained:p?u===1&&n[0]==="":!1}),p?"([^]*?)":l?"([^/]*)?":"([^/]+?)"}return h(e)}).join("")}).join("")}/?$`),params:s}}function $(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function _(t){return t.slice(1).split("/").filter($)}function j(t,s,f){const a={},i=t.slice(1),c=i.filter(r=>r!==void 0);let n=0;for(let r=0;ro).join("/"),n=0),u===void 0){e.rest&&(a[e.name]="");continue}if(!e.matcher||f[e.matcher](u)){a[e.name]=u;const o=s[r+1],l=i[r+1];o&&!o.rest&&o.optional&&l&&e.chained&&(n=0),!o&&!l&&Object.keys(a).length===c.length&&(n=0);continue}if(e.optional&&e.chained){n++;continue}return}if(!n)return a}function h(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}const b=/\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;function k(t,s){return"/"+_(t).map(a=>a.replace(b,(i,c,n,r)=>{const e=s[r];if(!e){if(c||n&&e!==void 0)return"";throw new Error(`Missing parameter '${r}' in route ${t}`)}if(e.startsWith("/")||e.endsWith("/"))throw new Error(`Parameter '${r}' in route ${t} cannot start or end with a slash -- this would cause an invalid route like foo//bar`);return e})).filter(Boolean).join("/")}const v=globalThis.__sveltekit_1gg6hf8?.base??"/ui",C=globalThis.__sveltekit_1gg6hf8?.assets??v;export{C as a,v as b,j as e,x as p,k as r}; diff --git a/webapp/assets/_app/immutable/chunks/C2rI8IaC.js b/webapp/assets/_app/immutable/chunks/B_RLftTg.js similarity index 97% rename from webapp/assets/_app/immutable/chunks/C2rI8IaC.js rename to webapp/assets/_app/immutable/chunks/B_RLftTg.js index 582270a6..5a7e24c8 100644 --- a/webapp/assets/_app/immutable/chunks/C2rI8IaC.js +++ b/webapp/assets/_app/immutable/chunks/B_RLftTg.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as V}from"./C7KraPli.js";import{p as B,E as D,l as t,q as s,g as e,m as a,h as P,f as T,t as q,i as S,b as F,c as G,u as I,d as w,k as o,r as z}from"./cPTQ2Ibn.js";import{e as J,h as K,s as N,f as O}from"./DqbUkQgD.js";import{l as C,p as l}from"./DqFqoVWr.js";var Q=T('');function Z(j,i){const M=C(i,["children","$$slots","$$events","$$legacy"]),L=C(M,["action","disabled","title","ariaLabel","size"]);B(i,!1);const u=a(),h=a(),p=a(),v=a(),g=a(),f=a(),n=a(),m=a(),b=a(),A=D();let r=l(i,"action",8,"edit"),x=l(i,"disabled",8,!1),y=l(i,"title",8,""),_=l(i,"ariaLabel",8,""),c=l(i,"size",8,"md");function H(){x()||A("click")}t(()=>{},()=>{o(u,"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")}),t(()=>s(c()),()=>{o(h,{sm:"p-1",md:"p-2"}[c()])}),t(()=>s(r()),()=>{o(p,{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",copy:"text-blue-600 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-300 focus:ring-blue-500"}[r()])}),t(()=>s(c()),()=>{o(v,c()==="sm"?"h-4 w-4":"h-5 w-5")}),t(()=>(e(u),e(h),e(p)),()=>{o(g,[e(u),e(h),e(p)].join(" "))}),t(()=>{},()=>{o(f,{edit:'',delete:'',view:'',add:'',copy:''})}),t(()=>{},()=>{o(n,{edit:"Edit",delete:"Delete",view:"View",add:"Add",copy:"Clone"})}),t(()=>(s(y()),e(n),s(r())),()=>{o(m,y()||e(n)[r()])}),t(()=>(s(_()),e(n),s(r())),()=>{o(b,_()||`${e(n)[r()]} item`)}),P(),V();var d=Q();J(d,()=>({type:"button",class:e(g),disabled:x(),title:e(m),"aria-label":e(b),...L}));var k=w(d),E=w(k);K(E,()=>(e(f),s(r()),I(()=>e(f)[r()])),!0),z(k),z(d),q(()=>N(k,0,O(e(v)))),S("click",d,H),F(j,d),G()}export{Z as A}; +import"./DsnmJJEf.js";import{i as V}from"./C7KraPli.js";import{p as B,E as D,l as t,q as s,g as e,m as a,h as P,f as T,t as q,i as S,b as F,c as G,u as I,d as w,k as o,r as z}from"./cPTQ2Ibn.js";import{e as J,h as K,s as N,f as O}from"./yWyZZHPR.js";import{l as C,p as l}from"./DqFqoVWr.js";var Q=T('');function Z(j,i){const M=C(i,["children","$$slots","$$events","$$legacy"]),L=C(M,["action","disabled","title","ariaLabel","size"]);B(i,!1);const u=a(),h=a(),p=a(),v=a(),g=a(),f=a(),n=a(),m=a(),b=a(),A=D();let r=l(i,"action",8,"edit"),x=l(i,"disabled",8,!1),y=l(i,"title",8,""),_=l(i,"ariaLabel",8,""),c=l(i,"size",8,"md");function H(){x()||A("click")}t(()=>{},()=>{o(u,"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")}),t(()=>s(c()),()=>{o(h,{sm:"p-1",md:"p-2"}[c()])}),t(()=>s(r()),()=>{o(p,{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",copy:"text-blue-600 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-300 focus:ring-blue-500"}[r()])}),t(()=>s(c()),()=>{o(v,c()==="sm"?"h-4 w-4":"h-5 w-5")}),t(()=>(e(u),e(h),e(p)),()=>{o(g,[e(u),e(h),e(p)].join(" "))}),t(()=>{},()=>{o(f,{edit:'',delete:'',view:'',add:'',copy:''})}),t(()=>{},()=>{o(n,{edit:"Edit",delete:"Delete",view:"View",add:"Add",copy:"Clone"})}),t(()=>(s(y()),e(n),s(r())),()=>{o(m,y()||e(n)[r()])}),t(()=>(s(_()),e(n),s(r())),()=>{o(b,_()||`${e(n)[r()]} item`)}),P(),V();var d=Q();J(d,()=>({type:"button",class:e(g),disabled:x(),title:e(m),"aria-label":e(b),...L}));var k=w(d),E=w(k);K(E,()=>(e(f),s(r()),I(()=>e(f)[r()])),!0),z(k),z(d),q(()=>N(k,0,O(e(v)))),S("click",d,H),F(j,d),G()}export{Z as A}; diff --git a/webapp/assets/_app/immutable/chunks/D6f8Dk7c.js b/webapp/assets/_app/immutable/chunks/BaxpdL59.js similarity index 95% rename from webapp/assets/_app/immutable/chunks/D6f8Dk7c.js rename to webapp/assets/_app/immutable/chunks/BaxpdL59.js index 09172b34..058ad1fe 100644 --- a/webapp/assets/_app/immutable/chunks/D6f8Dk7c.js +++ b/webapp/assets/_app/immutable/chunks/BaxpdL59.js @@ -1,4 +1,4 @@ -import"./DsnmJJEf.js";import{i as g}from"./C7KraPli.js";import{p as x,l as k,k as d,m as w,q as y,h as J,f as b,d as z,x as L,s as j,g as c,r as q,t as B,b as f,c as C}from"./cPTQ2Ibn.js";import{p as o,i as E}from"./DqFqoVWr.js";import{c as n,s as M}from"./DqbUkQgD.js";import{b as N}from"./B-_QCM7E.js";var O=b('
'),S=b('
');function I(m,r){x(r,!1);let t=o(r,"value",12,""),p=o(r,"placeholder",8,"{}"),u=o(r,"rows",8,4),i=o(r,"disabled",8,!1),a=w(!0);k(()=>y(t()),()=>{if(t().trim())try{JSON.parse(t()),d(a,!0)}catch{d(a,!1)}else d(a,!0)}),J(),g();var l=S(),e=z(l);L(e);var v=j(e,2);{var h=s=>{var _=O();f(s,_)};E(v,s=>{c(a)||s(h)})}q(l),B(()=>{n(e,"placeholder",p()),n(e,"rows",u()),e.disabled=i(),M(e,1,`w-full px-3 py-2 border rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 font-mono text-sm resize-none +import"./DsnmJJEf.js";import{i as g}from"./C7KraPli.js";import{p as x,l as k,k as d,m as w,q as y,h as J,f as b,d as z,x as L,s as j,g as c,r as q,t as B,b as f,c as C}from"./cPTQ2Ibn.js";import{p as o,i as E}from"./DqFqoVWr.js";import{c as n,s as M}from"./yWyZZHPR.js";import{b as N}from"./B-_QCM7E.js";var O=b('
'),S=b('
');function I(m,r){x(r,!1);let t=o(r,"value",12,""),p=o(r,"placeholder",8,"{}"),u=o(r,"rows",8,4),i=o(r,"disabled",8,!1),a=w(!0);k(()=>y(t()),()=>{if(t().trim())try{JSON.parse(t()),d(a,!0)}catch{d(a,!1)}else d(a,!0)}),J(),g();var l=S(),e=z(l);L(e);var v=j(e,2);{var h=s=>{var _=O();f(s,_)};E(v,s=>{c(a)||s(h)})}q(l),B(()=>{n(e,"placeholder",p()),n(e,"rows",u()),e.disabled=i(),M(e,1,`w-full px-3 py-2 border rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 font-mono text-sm resize-none ${c(a)?"border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-white":"border-red-300 dark:border-red-600 bg-red-50 dark:bg-red-900/20 text-red-900 dark:text-red-100"} ${i()?"opacity-50 cursor-not-allowed":""} `)}),N(e,t),f(m,l),C()}export{I as J}; diff --git a/webapp/assets/_app/immutable/chunks/Br47IbuU.js b/webapp/assets/_app/immutable/chunks/Br47IbuU.js new file mode 100644 index 00000000..6b4f3343 --- /dev/null +++ b/webapp/assets/_app/immutable/chunks/Br47IbuU.js @@ -0,0 +1,3 @@ +import{F as Ae,o as De,aR as L,g as P,k as N,bf as mt,aS as $e}from"./cPTQ2Ibn.js";import{p as _t,e as yt,a as wt,b as I}from"./BMOcKgHw.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 Ee{constructor(t,n){this.status=t,this.location=n}}class Se 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 l=Reflect.get(i,o);return typeof l=="function"?l.bind(i):l}}),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(Re(e)),Rt(e,t));const G=new Map;function Tt(e,t){const n=Re(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=Re(e,n),a=G.get(r);if(a){if(performance.now(){const{pattern:g,params:u}=_t(o),c={id:o,exec:h=>{const _=g.exec(h);if(_)return yt(_,u,r)},errors:[1,...d||[]].map(h=>e[h]),layouts:[0,...f||[]].map(i),leaf:s(l)};return c.errors.length=c.layouts.length=Math.max(c.errors.length,c.layouts.length),c});function s(o){const l=o<0;return l&&(o=~o),[l,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 Be(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const Lt="1758636468030",We="sveltekit:snapshot",ze="sveltekit:scroll",Xe="sveltekit:states",Pt="sveltekit:pageurl",V="sveltekit:history",J="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Z=location.origin;function Te(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 Ze(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Qe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=Ze(e)}}function we(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=Ze(o);function l(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:l(t),noscroll:l(n),reload:l(s),replace_state:l(i)}}function Fe(e){const t=Ae(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(l=>{(o===void 0||n&&l!==o)&&i(o=l)})}return{notify:r,set:a,subscribe:s}}const et={v:()=>{}};function Nt(){const{set:e,subscribe:t}=Ae(!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!==Lt;return i&&(e(!0),et.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 yn(e){}function Ot(e){const t=xt(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 jt=-1,Dt=-2,$t=-3,Bt=-4,Vt=-5,Ft=-6;function Mt(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===jt)return;if(s===$t)return NaN;if(s===Bt)return 1/0;if(s===Vt)return-1/0;if(s===Ft)return-0;if(i||typeof s!="number")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 l=o[0],f=t?.[l];if(f)return r[s]=f(a(o[1]));switch(l){case"Date":r[s]=new Date(o[1]);break;case"Set":const d=new Set;r[s]=d;for(let c=1;ct!=null)}const Ht="x-sveltekit-invalidated",Kt="x-sveltekit-trailing-slash";function ne(e){return e instanceof le||e instanceof Se?e.status:500}function Yt(e){return e instanceof Se?e.text:"Internal Error"}let E,W,_e;const Jt=De.toString().includes("$$")||/function \w+\(\) \{\}/.test(De.toString());Jt?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},W={current:null},_e={current:!1}):(E=new class{#e=L({});get data(){return P(this.#e)}set data(t){N(this.#e,t)}#t=L(null);get form(){return P(this.#t)}set form(t){N(this.#t,t)}#n=L(null);get error(){return P(this.#n)}set error(t){N(this.#n,t)}#r=L({});get params(){return P(this.#r)}set params(t){N(this.#r,t)}#a=L({id:null});get route(){return P(this.#a)}set route(t){N(this.#a,t)}#o=L({});get state(){return P(this.#o)}set state(t){N(this.#o,t)}#s=L(-1);get status(){return P(this.#s)}set status(t){N(this.#s,t)}#i=L(new URL("https://example.com"));get url(){return P(this.#i)}set url(t){N(this.#i,t)}},W=new class{#e=L(null);get current(){return P(this.#e)}set current(t){N(this.#e,t)}},_e=new class{#e=L(!1);get current(){return P(this.#e)}set current(t){N(this.#e,t)}},et.v=()=>_e.current=!0);function Wt(e){Object.assign(E,e)}const zt="/__data.json",Xt=".html__data.json";function Zt(e){return e.endsWith(".html")?e.replace(/\.html$/,Xt):e.replace(/\/$/,"")+zt}const{tick:Qt}=mt,en=new Set(["icon","shortcut icon","apple-touch-icon"]),$=Je(ze)??{},z=Je(We)??{},x={url:Fe({}),page:Fe({}),navigating:Ae(null),updated:Nt()};function Ue(e){$[e]=fe()}function tn(e,t){let n=e+1;for(;$[n];)delete $[n],n+=1;for(n=t+1;z[n];)delete z[n],n+=1}function M(e){return location.href=e.href,new Promise(()=>{})}async function nt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(I||"/");e&&await e.update()}}function Me(){}let Ie,ve,re,O,be,v;globalThis.__sveltekit_1gg6hf8.data;const ae=[],oe=[];let C=null;const ee=new Map,rt=new Set,nn=new Set,H=new Set;let w={branch:[],error:null,url:null},Le=!1,se=!1,qe=!0,X=!1,q=!1,at=!1,Pe=!1,ot,k,T,D;const K=new Set,Ge=new Map;async function kn(e,t,n){document.URL!==location.href&&(location.href=location.href),v=e,await e.hooks.init?.(),Ie=It(e),O=document.documentElement,be=t,ve=e.nodes[0],re=e.nodes[1],ve(),re(),k=history.state?.[V],T=history.state?.[J],k||(k=T=Date.now(),history.replaceState({...history.state,[V]:k,[J]:T},""));const r=$[k];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await hn(be,n)):(await Y({type:"enter",url:Te(v.hash?gn(new URL(location.href)):location.href),replace_state:!0}),a()),dn()}function rn(){ae.length=0,Pe=!1}function st(e){oe.some(t=>t?.snapshot)&&(z[e]=oe.map(t=>t?.snapshot?.capture()))}function it(e){z[e]?.forEach((t,n)=>{oe[n]?.snapshot?.restore(t)})}function He(){Ue(k),Be(ze,$),st(T),Be(We,z)}async function Ne(e,t,n,r){let a;const s=await Y({type:"goto",url:Te(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=[...Ge.keys()]),t.invalidate&&t.invalidate.forEach(un)}});return t.invalidateAll&&$e().then($e).then(()=>{Ge.forEach(({resource:i},o)=>{a?.includes(o)&&i.refresh?.()})}),s}async function an(e){if(e.id!==C?.id){const t={};K.add(t),C={id:e.id,token:t,promise:ft({...e,preload:t}).then(n=>(K.delete(t),n.type==="loaded"&&n.state.error&&(C=null),n))}}return C.promise}async function ye(e){const t=(await he(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}function ct(e,t,n){w=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(E,e.props.page),ot=new v.root({target:t,props:{...e.props,stores:x,components:oe},hydrate:n,sync:!1}),it(T),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(I&&(e.pathname===I||e.pathname===I+"/"))o="always";else for(const c of n)c?.slash!==void 0&&(o=c.slash);e.pathname=vt(e.pathname,o),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:s},props:{constructors:Gt(n).map(c=>c.node.component),page:je(E)}};i!==void 0&&(l.props.form=i);let f={},d=!E,g=0;for(let c=0;c(o&&(l.route=!0),u[c])}),params:new Proxy(r,{get:(u,c)=>(o&&l.params.add(c),u[c])}),data:s?.data??null,url:At(n,()=>{o&&(l.url=!0)},u=>{o&&l.search_params.add(u)},v.hash),async fetch(u,c){u instanceof Request&&(c={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,...c});const{resolved:h,promise:_}=lt(u,c,n);return o&&d(h.href),_},setHeaders:()=>{},depends:d,parent(){return o&&(l.parent=!0),t()},untrack(u){o=!1;try{return u()}finally{o=!0}}};i=await f.universal.load.call(null,g)??null}return{node:f,loader:e,server:s,universal:f.universal?.load?{type:"data",data:i,uses:l}:null,data:i??s?.data??null,slash:f.universal?.trailingSlash??s?.slash}}function lt(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):Tt(r,t);return{resolved:a,promise:s}}function Ke(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 Ce(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function on(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 Ye({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:je(E),constructors:[]}}}async function ft({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if(C?.id===e)return K.delete(C.token),C.promise;const{errors:i,layouts:o,leaf:l}=a,f=[...o,l];i.forEach(p=>p?.().catch(()=>{})),f.forEach(p=>p?.[1]().catch(()=>{}));let d=null;const g=w.url?e!==ce(w.url):!1,u=w.route?a.id!==w.route.id:!1,c=on(w.url,n);let h=!1;const _=f.map((p,y)=>{const b=w.branch[y],A=!!p?.[0]&&(b?.loader!==p[1]||Ke(h,u,g,c,b.server?.uses,r));return A&&(h=!0),A});if(_.some(Boolean)){try{d=await ht(n,_)}catch(p){const y=await F(p,{url:n,params:r,route:{id:e}});return K.has(s)?Ye({error:y,url:n,params:r,route:a}):de({status:ne(p),error:y,url:n,route:a})}if(d.type==="redirect")return d}const m=d?.nodes;let R=!1;const S=f.map(async(p,y)=>{if(!p)return;const b=w.branch[y],A=m?.[y];if((!A||A.type==="skip")&&p[1]===b?.loader&&!Ke(R,u,g,c,b.universal?.uses,r))return b;if(R=!0,A?.type==="error")throw A;return Oe({loader:p[1],url:n,params:r,route:a,parent:async()=>{const pe={};for(let ge=0;ge{});const U=[];for(let p=0;pPromise.resolve({}),server_data_node:Ce(s)}),l={node:await re(),loader:re,universal:null,server:null,data:null};return ie({url:n,params:a,branch:[o,l],status:e,error:t,route:null})}catch(o){if(o instanceof Ee)return Ne(new URL(o.location,location.href),{},0);throw o}}async function cn(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)=>lt(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,I,v.hash)){const n=await cn(e);if(!n)return;const r=ln(n);for(const a of Ie){const s=a.exec(r);if(s)return{id:ce(e),invalidating:t,route:a,params:kt(s),url:e}}}}function ln(e){return bt(v.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(I.length))||"/"}function ce(e){return(v.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ut({url:e,type:t,intent:n,delta:r}){let a=!1;const s=xe(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||rt.forEach(o=>o(i)),a?null:s}async function Y({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:l={},accept:f=Me,block:d=Me}){const g=D;D=l;const u=await he(t,!1),c=e==="enter"?xe(w,u,t,e):ut({url:t,type:e,delta:n?.delta,intent:u});if(!c){d(),D===l&&(D=g);return}const h=k,_=T;f(),X=!0,se&&c.navigation.type!=="enter"&&x.navigating.set(W.current=c.navigation);let m=u&&await ft(u);if(!m){if(ue(t,I,v.hash))return await M(t);m=await dt(t,{id:null},await F(new Se(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404)}if(t=u?.url||t,D!==l)return c.reject(new Error("navigation aborted")),!1;if(m.type==="redirect")if(o>=20)m=await de({status:500,error:await F(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}});else return await Ne(new URL(m.location,t).href,{},o+1,l),!1;else m.props.page.status>=400&&await x.updated.check()&&(await nt(),await M(t));if(rn(),Ue(h),st(_),m.props.page.url.pathname!==t.pathname&&(t.pathname=m.props.page.url.pathname),i=n?n.state:i,!n){const p=s?0:1,y={[V]:k+=p,[J]:T+=p,[Xe]:i};(s?history.replaceState:history.pushState).call(history,y,"",t),s||tn(k,T)}if(C=null,m.props.page.state=i,se){const p=(await Promise.all(Array.from(nn,y=>y(c.navigation)))).filter(y=>typeof y=="function");if(p.length>0){let y=function(){p.forEach(b=>{H.delete(b)})};p.push(y),p.forEach(b=>{H.add(b)})}w=m.state,m.props.page&&(m.props.page.url=t),ot.$set(m.props),Wt(m.props.page),at=!0}else ct(m,be,!1);const{activeElement:R}=document;await Qt();const S=n?n.scroll:a?fe():null;if(qe){const p=t.hash&&document.getElementById(gt(t));S?scrollTo(S.x,S.y):p?p.scrollIntoView():scrollTo(0,0)}const U=document.activeElement!==R&&document.activeElement!==document.body;!r&&!U&&pn(t),qe=!0,m.props.page&&Object.assign(E,m.props.page),X=!1,e==="popstate"&&it(T),c.fulfil(void 0),H.forEach(p=>p(c.navigation)),x.navigating.set(W.current=null)}async function dt(e,t,n,r){return e.origin===Z&&e.pathname===location.pathname&&!Le?await de({status:r,error:n,url:e,route:t}):await M(e)}function fn(){let e,t,n;O.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(e),e=setTimeout(()=>{s(l,j.hover)},20)});function r(o){o.defaultPrevented||s(o.composedPath()[0],j.tap)}O.addEventListener("mousedown",r),O.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(ye(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function s(o,l){const f=Qe(o,O),d=f===t&&l>=n;if(!f||d)return;const{url:g,external:u,download:c}=we(f,I,v.hash);if(u||c)return;const h=te(f),_=g&&ce(w.url)===ce(g);if(!(h.reload||_))if(l<=h.preload_data){t=f,n=j.tap;const m=await he(g,!1);if(!m)return;an(m)}else l<=h.preload_code&&(t=f,n=l,ye(g))}function i(){a.disconnect();for(const o of O.querySelectorAll("a")){const{url:l,external:f,download:d}=we(o,I,v.hash);if(f||d)continue;const g=te(o);g.reload||(g.preload_code===j.viewport&&a.observe(o),g.preload_code===j.eager&&ye(l))}}H.add(i),i()}function F(e,t){if(e instanceof le)return e.body;const n=ne(e),r=Yt(e);return v.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function An(e,t={}){return e=new URL(Te(e)),e.origin!==Z?Promise.reject(new Error("goto: invalid URL")):Ne(e,t,0)}function un(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function dn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(He(),!X){const r=xe(w,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};rt.forEach(s=>s(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&He()}),navigator.connection?.saveData||fn(),O.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Qe(t.composedPath()[0],O);if(!n)return;const{url:r,external:a,target:s,download:i}=we(n,I,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("#"),g=f===me(location);if(a||o.reload&&(!g||!d)){ut({url:r,type:"link"})?X=!0:t.preventDefault();return}if(d!==void 0&&g){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 c=n.ownerDocument.getElementById(decodeURIComponent(d));c&&(c.scrollIntoView(),c.focus())}return}if(q=!0,Ue(k),e(r),!o.replace_state)return;q=!1}t.preventDefault(),await new Promise(u=>{requestAnimationFrame(()=>{setTimeout(u,0)}),setTimeout(u,100)}),await Y({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href})}),O.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,I,!1))return;const o=t.target,l=te(o);if(l.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(),Y({type:"form",url:i,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??i.href===location.href})}),addEventListener("popstate",async t=>{if(!ke){if(t.state?.[V]){const n=t.state[V];if(D={},n===k)return;const r=$[n],a=t.state[Xe]??{},s=new URL(t.state[Pt]??location.href),i=t.state[J],o=w.url?me(location)===me(w.url):!1;if(i===T&&(at||o)){a!==E.state&&(E.state=a),e(s),$[k]=fe(),r&&scrollTo(r.x,r.y),k=n;return}const f=n-k;await Y({type:"popstate",url:s,popped:{state:a,scroll:r,delta:f},accept:()=>{k=n,T=i},block:()=>{history.go(-f)},nav_token:D})}else if(!q){const n=new URL(location.href);e(n),v.hash&&location.reload()}}}),addEventListener("hashchange",()=>{q&&(q=!1,history.replaceState({...history.state,[V]:++k,[J]:T},"",location.href))});for(const t of document.querySelectorAll("link"))en.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&x.navigating.set(W.current=null)});function e(t){w.url=E.url=t,x.page.set(je(E)),x.page.notify()}}async function hn(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:l}){Le=!0;const f=new URL(location.href);let d;({params:a={},route:s={id:null}}=await he(f,!1)||{}),d=Ie.find(({id:c})=>c===s.id);let g,u=!0;try{const c=r.map(async(_,m)=>{const R=o[m];return R?.uses&&(R.uses=pt(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(),l=new TextDecoder;function f(g){return Mt(g,{...v.decoders,Promise:u=>new Promise((c,h)=>{i.set(u,{fulfil:c,reject:h})})})}let d="";for(;;){const{done:g,value:u}=await o.read();if(g&&!d)break;for(d+=!u&&d?` +`:l.decode(u,{stream:!0});;){const c=d.indexOf(` +`);if(c===-1)break;const h=JSON.parse(d.slice(0,c));if(d=d.slice(c+1),h.type==="redirect")return s(h);if(h.type==="data")h.nodes?.forEach(_=>{_?.type==="data"&&(_.uses=pt(_.uses),_.data=f(_.data))}),s(h);else if(h.type==="chunk"){const{id:_,data:m,error:R}=h,S=i.get(_);i.delete(_),R?S.reject(f(R)):S.fulfil(f(m))}}}})}function pt(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 ke=!1;function pn(e){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const n=gt(e);if(n&&document.getElementById(n)){const{x:a,y:s}=fe();setTimeout(()=>{const i=history.state;ke=!0,location.replace(`#${n}`),v.hash&&location.replace(e.hash),history.replaceState(i,"",e.hash),scrollTo(a,s),ke=!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=l,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 je(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 gn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function gt(e){let t;if(v.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{kn as a,An as g,yn as l,E as p,x as s}; diff --git a/webapp/assets/_app/immutable/chunks/U3V4g_hv.js b/webapp/assets/_app/immutable/chunks/BtskFTeb.js similarity index 94% rename from webapp/assets/_app/immutable/chunks/U3V4g_hv.js rename to webapp/assets/_app/immutable/chunks/BtskFTeb.js index e4fb1d5c..ab4f18ee 100644 --- a/webapp/assets/_app/immutable/chunks/U3V4g_hv.js +++ b/webapp/assets/_app/immutable/chunks/BtskFTeb.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as E}from"./C7KraPli.js";import{p as H,E as L,f as h,t as f,b as c,c as z,d as e,r as a,s as x,e as d,z as M,D as q}from"./cPTQ2Ibn.js";import{p as i,i as C}from"./DqFqoVWr.js";import{B as F}from"./DqbUkQgD.js";var G=h('
'),I=h('

');function S(u,t){H(t,!1);const _=L();let b=i(t,"title",8),k=i(t,"description",8),v=i(t,"actionLabel",8,null),g=i(t,"showAction",8,!0);function w(){_("action")}E();var r=I(),s=e(r),o=e(s),y=e(o,!0);a(o);var m=x(o,2),A=e(m,!0);a(m),a(s);var P=x(s,2);{var j=n=>{var l=G(),B=e(l);F(B,{variant:"primary",icon:'',$$events:{click:w},children:(D,J)=>{M();var p=q();f(()=>d(p,v())),c(D,p)},$$slots:{default:!0}}),a(l),c(n,l)};C(P,n=>{g()&&v()&&n(j)})}a(r),f(()=>{d(y,b()),d(A,k())}),c(u,r),z()}export{S as P}; +import"./DsnmJJEf.js";import{i as E}from"./C7KraPli.js";import{p as H,E as L,f as h,t as f,b as c,c as z,d as e,r as a,s as x,e as d,z as M,D as q}from"./cPTQ2Ibn.js";import{p as i,i as C}from"./DqFqoVWr.js";import{B as F}from"./yWyZZHPR.js";var G=h('
'),I=h('

');function S(u,t){H(t,!1);const _=L();let b=i(t,"title",8),k=i(t,"description",8),v=i(t,"actionLabel",8,null),g=i(t,"showAction",8,!0);function w(){_("action")}E();var r=I(),s=e(r),o=e(s),y=e(o,!0);a(o);var m=x(o,2),A=e(m,!0);a(m),a(s);var P=x(s,2);{var j=n=>{var l=G(),B=e(l);F(B,{variant:"primary",icon:'',$$events:{click:w},children:(D,J)=>{M();var p=q();f(()=>d(p,v())),c(D,p)},$$slots:{default:!0}}),a(l),c(n,l)};C(P,n=>{g()&&v()&&n(j)})}a(r),f(()=>{d(y,b()),d(A,k())}),c(u,r),z()}export{S as P}; diff --git a/webapp/assets/_app/immutable/chunks/JUkrBp3F.js b/webapp/assets/_app/immutable/chunks/C01HillC.js similarity index 98% rename from webapp/assets/_app/immutable/chunks/JUkrBp3F.js rename to webapp/assets/_app/immutable/chunks/C01HillC.js index c1018030..029d177a 100644 --- a/webapp/assets/_app/immutable/chunks/JUkrBp3F.js +++ b/webapp/assets/_app/immutable/chunks/C01HillC.js @@ -1 +1 @@ -import{F as p,G as l}from"./cPTQ2Ibn.js";import{g as d}from"./DqbUkQgD.js";import{w as r}from"./BV_mDmfH.js";const f={repositories:[],organizations:[],enterprises:[],pools:[],scalesets:[],credentials:[],endpoints:[],controllerInfo:null,templates:[],loading:{repositories:!1,organizations:!1,enterprises:!1,pools:!1,scalesets:!1,credentials:!1,endpoints:!1,controllerInfo:!1,templates:!1},loaded:{repositories:!1,organizations:!1,enterprises:!1,pools:!1,scalesets:!1,credentials:!1,endpoints:!1,controllerInfo:!1,templates:!1},errorMessages:{repositories:"",organizations:"",enterprises:"",pools:"",scalesets:"",credentials:"",endpoints:"",controllerInfo:"",templates:""}},a=p(f);class u{unsubscribers=[];loadingPromises=new Map;retryAttempts=new Map;MAX_RETRIES=3;RETRY_DELAY_MS=1e3;websocketStatusUnsubscriber=null;async loadResource(e,t=!1){if(this.loadingPromises.has(e))return this.loadingPromises.get(e);a.update(o=>({...o,loading:{...o.loading,[e]:!0},errorMessages:{...o.errorMessages,[e]:""}}));const s=this.attemptLoad(e);this.loadingPromises.set(e,s);try{const o=await s;return a.update(n=>({...n,[e]:o,loading:{...n.loading,[e]:!1},loaded:{...n.loaded,[e]:!0},errorMessages:{...n.errorMessages,[e]:""}})),this.retryAttempts.delete(e),t&&this.startBackgroundLoading(e),o}catch(o){const n=o instanceof Error?o.message:"Failed to load data";throw a.update(i=>({...i,loading:{...i.loading,[e]:!1},errorMessages:{...i.errorMessages,[e]:n}})),console.error(`Failed to load ${e}:`,o),o}finally{this.loadingPromises.delete(e)}}async attemptLoad(e){const t=(this.retryAttempts.get(e)||0)+1;this.retryAttempts.set(e,t);try{let s;switch(e){case"repositories":s=d.listRepositories();break;case"organizations":s=d.listOrganizations();break;case"enterprises":s=d.listEnterprises();break;case"pools":s=d.listAllPools();break;case"scalesets":s=d.listScaleSets();break;case"credentials":s=d.listAllCredentials();break;case"endpoints":s=d.listAllEndpoints();break;case"controllerInfo":s=d.getControllerInfo();break;case"templates":s=d.listTemplates();break;default:throw new Error(`Unknown resource type: ${e}`)}return await s}catch(s){if(tsetTimeout(n,o)),this.attemptLoad(e)}else throw console.error(`All ${this.MAX_RETRIES} attempts failed for ${e}:`,s),s}}async startBackgroundLoading(e){const s=["repositories","organizations","enterprises","pools","scalesets","credentials","endpoints","templates"].filter(o=>o!==e);for(const o of s)setTimeout(()=>{this.loadResource(o,!1).catch(n=>{console.warn(`Background loading failed for ${o}:`,n)})},100*s.indexOf(o))}retryResource(e){return this.retryAttempts.delete(e),this.loadResource(e,!0)}setupWebSocketSubscriptions(){this.cleanup();const e=[r.subscribeToEntity("repository",["create","update","delete"],this.handleRepositoryEvent.bind(this)),r.subscribeToEntity("organization",["create","update","delete"],this.handleOrganizationEvent.bind(this)),r.subscribeToEntity("enterprise",["create","update","delete"],this.handleEnterpriseEvent.bind(this)),r.subscribeToEntity("pool",["create","update","delete"],this.handlePoolEvent.bind(this)),r.subscribeToEntity("scaleset",["create","update","delete"],this.handleScaleSetEvent.bind(this)),r.subscribeToEntity("controller",["update"],this.handleControllerEvent.bind(this)),r.subscribeToEntity("github_credentials",["create","update","delete"],this.handleCredentialsEvent.bind(this)),r.subscribeToEntity("gitea_credentials",["create","update","delete"],this.handleCredentialsEvent.bind(this)),r.subscribeToEntity("github_endpoint",["create","update","delete"],this.handleEndpointEvent.bind(this)),r.subscribeToEntity("template",["create","update","delete"],this.handleTemplateEvent.bind(this))];this.unsubscribers=e,this.setupWebSocketStatusMonitoring()}setupWebSocketStatusMonitoring(){this.websocketStatusUnsubscriber&&this.websocketStatusUnsubscriber();let e=!1;this.websocketStatusUnsubscriber=r.subscribe(t=>{t.connected&&!e&&(console.log("[EagerCache] WebSocket connected - reinitializing cache"),this.initializeAllResources()),e=t.connected})}async initializeAllResources(){const t=["repositories","organizations","enterprises","pools","scalesets","credentials","endpoints","controllerInfo","templates"].map(s=>this.loadResource(s,!0).catch(o=>{console.warn(`Failed to reload ${s} on WebSocket reconnect:`,o)}));await Promise.allSettled(t)}handleRepositoryEvent(e){a.update(t=>{if(!t.loaded.repositories)return t;const s=[...t.repositories],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,repositories:s}})}handleOrganizationEvent(e){a.update(t=>{if(!t.loaded.organizations)return t;const s=[...t.organizations],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,organizations:s}})}handleEnterpriseEvent(e){a.update(t=>{if(!t.loaded.enterprises)return t;const s=[...t.enterprises],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,enterprises:s}})}handlePoolEvent(e){a.update(t=>{if(!t.loaded.pools)return t;const s=[...t.pools],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,pools:s}})}handleScaleSetEvent(e){a.update(t=>{if(!t.loaded.scalesets)return t;const s=[...t.scalesets],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,scalesets:s}})}handleCredentialsEvent(e){a.update(t=>{if(!t.loaded.credentials)return t;const s=[...t.credentials],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,credentials:s}})}handleEndpointEvent(e){a.update(t=>{if(!t.loaded.endpoints)return t;const s=[...t.endpoints],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.name===o.name);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.name:o,i=s.findIndex(c=>c.name===n);i!==-1&&s.splice(i,1)}return{...t,endpoints:s}})}cleanup(){this.unsubscribers.forEach(e=>e()),this.unsubscribers=[],this.websocketStatusUnsubscriber&&(this.websocketStatusUnsubscriber(),this.websocketStatusUnsubscriber=null)}shouldUseCache(){return l(r).connected}async getRepositories(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching repositories directly from API"),await d.listRepositories();const t=l(a);return t.loaded.repositories?t.repositories:this.loadResource("repositories",!0)}async getOrganizations(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching organizations directly from API"),await d.listOrganizations();const t=l(a);return t.loaded.organizations?t.organizations:this.loadResource("organizations",!0)}async getEnterprises(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching enterprises directly from API"),await d.listEnterprises();const t=l(a);return t.loaded.enterprises?t.enterprises:this.loadResource("enterprises",!0)}async getPools(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching pools directly from API"),await d.listAllPools();const t=l(a);return t.loaded.pools?t.pools:this.loadResource("pools",!0)}async getScaleSets(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching scalesets directly from API"),await d.listScaleSets();const t=l(a);return t.loaded.scalesets?t.scalesets:this.loadResource("scalesets",!0)}async getCredentials(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching credentials directly from API"),await d.listAllCredentials();const t=l(a);return t.loaded.credentials?t.credentials:this.loadResource("credentials",!0)}async getEndpoints(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching endpoints directly from API"),await d.listAllEndpoints();const t=l(a);return t.loaded.endpoints?t.endpoints:this.loadResource("endpoints",!0)}async getControllerInfo(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching controller info directly from API"),await d.getControllerInfo();const t=l(a);return t.loaded.controllerInfo?t.controllerInfo:this.loadResource("controllerInfo",!0)}async getTemplates(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching templates directly from API"),await d.listTemplates();const t=l(a);return t.loaded.templates?t.templates:this.loadResource("templates",!0)}handleControllerEvent(e){a.update(t=>{if(!t.loaded.controllerInfo)return t;const s=e.payload;return e.operation==="update"?{...t,controllerInfo:s}:t})}handleTemplateEvent(e){a.update(t=>{if(!t.loaded.templates)return t;const s=[...t.templates],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,templates:s}})}}const h=new u;typeof window<"u"&&h.setupWebSocketSubscriptions();export{h as a,a as e}; +import{F as p,G as l}from"./cPTQ2Ibn.js";import{g as d}from"./yWyZZHPR.js";import{w as r}from"./BV_mDmfH.js";const f={repositories:[],organizations:[],enterprises:[],pools:[],scalesets:[],credentials:[],endpoints:[],controllerInfo:null,templates:[],loading:{repositories:!1,organizations:!1,enterprises:!1,pools:!1,scalesets:!1,credentials:!1,endpoints:!1,controllerInfo:!1,templates:!1},loaded:{repositories:!1,organizations:!1,enterprises:!1,pools:!1,scalesets:!1,credentials:!1,endpoints:!1,controllerInfo:!1,templates:!1},errorMessages:{repositories:"",organizations:"",enterprises:"",pools:"",scalesets:"",credentials:"",endpoints:"",controllerInfo:"",templates:""}},a=p(f);class u{unsubscribers=[];loadingPromises=new Map;retryAttempts=new Map;MAX_RETRIES=3;RETRY_DELAY_MS=1e3;websocketStatusUnsubscriber=null;async loadResource(e,t=!1){if(this.loadingPromises.has(e))return this.loadingPromises.get(e);a.update(o=>({...o,loading:{...o.loading,[e]:!0},errorMessages:{...o.errorMessages,[e]:""}}));const s=this.attemptLoad(e);this.loadingPromises.set(e,s);try{const o=await s;return a.update(n=>({...n,[e]:o,loading:{...n.loading,[e]:!1},loaded:{...n.loaded,[e]:!0},errorMessages:{...n.errorMessages,[e]:""}})),this.retryAttempts.delete(e),t&&this.startBackgroundLoading(e),o}catch(o){const n=o instanceof Error?o.message:"Failed to load data";throw a.update(i=>({...i,loading:{...i.loading,[e]:!1},errorMessages:{...i.errorMessages,[e]:n}})),console.error(`Failed to load ${e}:`,o),o}finally{this.loadingPromises.delete(e)}}async attemptLoad(e){const t=(this.retryAttempts.get(e)||0)+1;this.retryAttempts.set(e,t);try{let s;switch(e){case"repositories":s=d.listRepositories();break;case"organizations":s=d.listOrganizations();break;case"enterprises":s=d.listEnterprises();break;case"pools":s=d.listAllPools();break;case"scalesets":s=d.listScaleSets();break;case"credentials":s=d.listAllCredentials();break;case"endpoints":s=d.listAllEndpoints();break;case"controllerInfo":s=d.getControllerInfo();break;case"templates":s=d.listTemplates();break;default:throw new Error(`Unknown resource type: ${e}`)}return await s}catch(s){if(tsetTimeout(n,o)),this.attemptLoad(e)}else throw console.error(`All ${this.MAX_RETRIES} attempts failed for ${e}:`,s),s}}async startBackgroundLoading(e){const s=["repositories","organizations","enterprises","pools","scalesets","credentials","endpoints","templates"].filter(o=>o!==e);for(const o of s)setTimeout(()=>{this.loadResource(o,!1).catch(n=>{console.warn(`Background loading failed for ${o}:`,n)})},100*s.indexOf(o))}retryResource(e){return this.retryAttempts.delete(e),this.loadResource(e,!0)}setupWebSocketSubscriptions(){this.cleanup();const e=[r.subscribeToEntity("repository",["create","update","delete"],this.handleRepositoryEvent.bind(this)),r.subscribeToEntity("organization",["create","update","delete"],this.handleOrganizationEvent.bind(this)),r.subscribeToEntity("enterprise",["create","update","delete"],this.handleEnterpriseEvent.bind(this)),r.subscribeToEntity("pool",["create","update","delete"],this.handlePoolEvent.bind(this)),r.subscribeToEntity("scaleset",["create","update","delete"],this.handleScaleSetEvent.bind(this)),r.subscribeToEntity("controller",["update"],this.handleControllerEvent.bind(this)),r.subscribeToEntity("github_credentials",["create","update","delete"],this.handleCredentialsEvent.bind(this)),r.subscribeToEntity("gitea_credentials",["create","update","delete"],this.handleCredentialsEvent.bind(this)),r.subscribeToEntity("github_endpoint",["create","update","delete"],this.handleEndpointEvent.bind(this)),r.subscribeToEntity("template",["create","update","delete"],this.handleTemplateEvent.bind(this))];this.unsubscribers=e,this.setupWebSocketStatusMonitoring()}setupWebSocketStatusMonitoring(){this.websocketStatusUnsubscriber&&this.websocketStatusUnsubscriber();let e=!1;this.websocketStatusUnsubscriber=r.subscribe(t=>{t.connected&&!e&&(console.log("[EagerCache] WebSocket connected - reinitializing cache"),this.initializeAllResources()),e=t.connected})}async initializeAllResources(){const t=["repositories","organizations","enterprises","pools","scalesets","credentials","endpoints","controllerInfo","templates"].map(s=>this.loadResource(s,!0).catch(o=>{console.warn(`Failed to reload ${s} on WebSocket reconnect:`,o)}));await Promise.allSettled(t)}handleRepositoryEvent(e){a.update(t=>{if(!t.loaded.repositories)return t;const s=[...t.repositories],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,repositories:s}})}handleOrganizationEvent(e){a.update(t=>{if(!t.loaded.organizations)return t;const s=[...t.organizations],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,organizations:s}})}handleEnterpriseEvent(e){a.update(t=>{if(!t.loaded.enterprises)return t;const s=[...t.enterprises],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,enterprises:s}})}handlePoolEvent(e){a.update(t=>{if(!t.loaded.pools)return t;const s=[...t.pools],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,pools:s}})}handleScaleSetEvent(e){a.update(t=>{if(!t.loaded.scalesets)return t;const s=[...t.scalesets],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,scalesets:s}})}handleCredentialsEvent(e){a.update(t=>{if(!t.loaded.credentials)return t;const s=[...t.credentials],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,credentials:s}})}handleEndpointEvent(e){a.update(t=>{if(!t.loaded.endpoints)return t;const s=[...t.endpoints],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.name===o.name);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.name:o,i=s.findIndex(c=>c.name===n);i!==-1&&s.splice(i,1)}return{...t,endpoints:s}})}cleanup(){this.unsubscribers.forEach(e=>e()),this.unsubscribers=[],this.websocketStatusUnsubscriber&&(this.websocketStatusUnsubscriber(),this.websocketStatusUnsubscriber=null)}shouldUseCache(){return l(r).connected}async getRepositories(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching repositories directly from API"),await d.listRepositories();const t=l(a);return t.loaded.repositories?t.repositories:this.loadResource("repositories",!0)}async getOrganizations(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching organizations directly from API"),await d.listOrganizations();const t=l(a);return t.loaded.organizations?t.organizations:this.loadResource("organizations",!0)}async getEnterprises(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching enterprises directly from API"),await d.listEnterprises();const t=l(a);return t.loaded.enterprises?t.enterprises:this.loadResource("enterprises",!0)}async getPools(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching pools directly from API"),await d.listAllPools();const t=l(a);return t.loaded.pools?t.pools:this.loadResource("pools",!0)}async getScaleSets(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching scalesets directly from API"),await d.listScaleSets();const t=l(a);return t.loaded.scalesets?t.scalesets:this.loadResource("scalesets",!0)}async getCredentials(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching credentials directly from API"),await d.listAllCredentials();const t=l(a);return t.loaded.credentials?t.credentials:this.loadResource("credentials",!0)}async getEndpoints(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching endpoints directly from API"),await d.listAllEndpoints();const t=l(a);return t.loaded.endpoints?t.endpoints:this.loadResource("endpoints",!0)}async getControllerInfo(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching controller info directly from API"),await d.getControllerInfo();const t=l(a);return t.loaded.controllerInfo?t.controllerInfo:this.loadResource("controllerInfo",!0)}async getTemplates(){if(!l(r).connected)return console.log("[EagerCache] WebSocket disconnected - fetching templates directly from API"),await d.listTemplates();const t=l(a);return t.loaded.templates?t.templates:this.loadResource("templates",!0)}handleControllerEvent(e){a.update(t=>{if(!t.loaded.controllerInfo)return t;const s=e.payload;return e.operation==="update"?{...t,controllerInfo:s}:t})}handleTemplateEvent(e){a.update(t=>{if(!t.loaded.templates)return t;const s=[...t.templates],o=e.payload;if(e.operation==="create")s.push(o);else if(e.operation==="update"){const n=s.findIndex(i=>i.id===o.id);n!==-1&&(s[n]=o)}else if(e.operation==="delete"){const n=typeof o=="object"?o.id:o,i=s.findIndex(c=>c.id===n);i!==-1&&s.splice(i,1)}return{...t,templates:s}})}}const h=new u;typeof window<"u"&&h.setupWebSocketSubscriptions();export{h as a,a as e}; diff --git a/webapp/assets/_app/immutable/chunks/CYqkNFLz.js b/webapp/assets/_app/immutable/chunks/C6PRls9Y.js similarity index 83% rename from webapp/assets/_app/immutable/chunks/CYqkNFLz.js rename to webapp/assets/_app/immutable/chunks/C6PRls9Y.js index fb067386..8ce541df 100644 --- a/webapp/assets/_app/immutable/chunks/CYqkNFLz.js +++ b/webapp/assets/_app/immutable/chunks/C6PRls9Y.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as _}from"./C7KraPli.js";import{p as h,f as x,t as u,b as g,c as k,s as w,d as o,u as d,q as e,r,e as y}from"./cPTQ2Ibn.js";import{h as b}from"./DqbUkQgD.js";import{p as m}from"./DqFqoVWr.js";import{g as l}from"./DJsB5Z5V.js";var z=x('
');function U(v,i){h(i,!1);let t=m(i,"item",8),s=m(i,"iconSize",8,"w-5 h-5");_();var a=z(),n=o(a),f=o(n);b(f,()=>(e(l),e(t()),e(s()),d(()=>l(t()?.endpoint?.endpoint_type||t()?.endpoint_type||"unknown",s())))),r(n);var p=w(n,2),c=o(p,!0);r(p),r(a),u(()=>y(c,(e(t()),d(()=>t()?.endpoint?.name||t()?.endpoint_name||t()?.endpoint_type||"Unknown")))),g(v,a),k()}export{U as E}; +import"./DsnmJJEf.js";import{i as _}from"./C7KraPli.js";import{p as h,f as x,t as u,b as g,c as k,s as w,d as o,u as d,q as e,r,e as y}from"./cPTQ2Ibn.js";import{h as b}from"./yWyZZHPR.js";import{p as m}from"./DqFqoVWr.js";import{g as l}from"./Cr2hBuns.js";var z=x('
');function U(v,i){h(i,!1);let t=m(i,"item",8),s=m(i,"iconSize",8,"w-5 h-5");_();var a=z(),n=o(a),f=o(n);b(f,()=>(e(l),e(t()),e(s()),d(()=>l(t()?.endpoint?.endpoint_type||t()?.endpoint_type||"unknown",s())))),r(n);var p=w(n,2),c=o(p,!0);r(p),r(a),u(()=>y(c,(e(t()),d(()=>t()?.endpoint?.name||t()?.endpoint_name||t()?.endpoint_type||"Unknown")))),g(v,a),k()}export{U as E}; diff --git a/webapp/assets/_app/immutable/chunks/oOdVuDuv.js b/webapp/assets/_app/immutable/chunks/CDgX_mkE.js similarity index 97% rename from webapp/assets/_app/immutable/chunks/oOdVuDuv.js rename to webapp/assets/_app/immutable/chunks/CDgX_mkE.js index 578ab21b..efd407fb 100644 --- a/webapp/assets/_app/immutable/chunks/oOdVuDuv.js +++ b/webapp/assets/_app/immutable/chunks/CDgX_mkE.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import"./C7KraPli.js";import{f as k,d as a,s as m,r as i,t as g,e as f,b as v,z as p,D as z}from"./cPTQ2Ibn.js";import{p as t,i as u}from"./DqFqoVWr.js";import{s as Y,h as Z,B as H}from"./DqbUkQgD.js";var $=k('
'),ee=k('
'),te=k('

');function se(j,e){let E=t(e,"title",8),M=t(e,"subtitle",8),D=t(e,"forgeIcon",8,""),h=t(e,"onEdit",8,null),x=t(e,"onDelete",8,null),B=t(e,"editLabel",8,"Edit"),C=t(e,"deleteLabel",8,"Delete"),P=t(e,"editVariant",8,"secondary"),A=t(e,"deleteVariant",8,"danger"),q=t(e,"editDisabled",8,!1),F=t(e,"deleteDisabled",8,!1),G=t(e,"editIcon",8,""),J=t(e,"deleteIcon",8,""),K=t(e,"titleClass",8,"");var _=te(),y=a(_),w=a(y),b=a(w),I=a(b);{var N=l=>{var d=$(),c=a(d);Z(c,D),i(d),v(l,d)};u(I,l=>{D()&&l(N)})}var L=m(I,2),o=a(L),O=a(o,!0);i(o);var V=m(o,2),Q=a(V,!0);i(V),i(L),i(b);var R=m(b,2);{var S=l=>{var d=ee(),c=a(d);{var T=r=>{H(r,{get variant(){return P()},size:"md",get disabled(){return q()},get icon(){return G()},$$events:{click(...s){h()?.apply(this,s)}},children:(s,X)=>{p();var n=z();g(()=>f(n,B())),v(s,n)},$$slots:{default:!0}})};u(c,r=>{h()&&r(T)})}var U=m(c,2);{var W=r=>{H(r,{get variant(){return A()},size:"md",get disabled(){return F()},get icon(){return J()},$$events:{click(...s){x()?.apply(this,s)}},children:(s,X)=>{p();var n=z();g(()=>f(n,C())),v(s,n)},$$slots:{default:!0}})};u(U,r=>{x()&&r(W)})}i(d),v(l,d)};u(R,l=>{(h()||x())&&l(S)})}i(w),i(y),i(_),g(()=>{Y(o,1,`text-2xl font-bold text-gray-900 dark:text-white ${K()??""}`),f(O,E()),f(Q,M())}),v(j,_)}export{se as D}; +import"./DsnmJJEf.js";import"./C7KraPli.js";import{f as k,d as a,s as m,r as i,t as g,e as f,b as v,z as p,D as z}from"./cPTQ2Ibn.js";import{p as t,i as u}from"./DqFqoVWr.js";import{s as Y,h as Z,B as H}from"./yWyZZHPR.js";var $=k('
'),ee=k('
'),te=k('

');function se(j,e){let E=t(e,"title",8),M=t(e,"subtitle",8),D=t(e,"forgeIcon",8,""),h=t(e,"onEdit",8,null),x=t(e,"onDelete",8,null),B=t(e,"editLabel",8,"Edit"),C=t(e,"deleteLabel",8,"Delete"),P=t(e,"editVariant",8,"secondary"),A=t(e,"deleteVariant",8,"danger"),q=t(e,"editDisabled",8,!1),F=t(e,"deleteDisabled",8,!1),G=t(e,"editIcon",8,""),J=t(e,"deleteIcon",8,""),K=t(e,"titleClass",8,"");var _=te(),y=a(_),w=a(y),b=a(w),I=a(b);{var N=l=>{var d=$(),c=a(d);Z(c,D),i(d),v(l,d)};u(I,l=>{D()&&l(N)})}var L=m(I,2),o=a(L),O=a(o,!0);i(o);var V=m(o,2),Q=a(V,!0);i(V),i(L),i(b);var R=m(b,2);{var S=l=>{var d=ee(),c=a(d);{var T=r=>{H(r,{get variant(){return P()},size:"md",get disabled(){return q()},get icon(){return G()},$$events:{click(...s){h()?.apply(this,s)}},children:(s,X)=>{p();var n=z();g(()=>f(n,B())),v(s,n)},$$slots:{default:!0}})};u(c,r=>{h()&&r(T)})}var U=m(c,2);{var W=r=>{H(r,{get variant(){return A()},size:"md",get disabled(){return F()},get icon(){return J()},$$events:{click(...s){x()?.apply(this,s)}},children:(s,X)=>{p();var n=z();g(()=>f(n,C())),v(s,n)},$$slots:{default:!0}})};u(U,r=>{x()&&r(W)})}i(d),v(l,d)};u(R,l=>{(h()||x())&&l(S)})}i(w),i(y),i(_),g(()=>{Y(o,1,`text-2xl font-bold text-gray-900 dark:text-white ${K()??""}`),f(O,E()),f(Q,M())}),v(j,_)}export{se as D}; diff --git a/webapp/assets/_app/immutable/chunks/BZ2WxPPD.js b/webapp/assets/_app/immutable/chunks/CMG1iQmM.js similarity index 89% rename from webapp/assets/_app/immutable/chunks/BZ2WxPPD.js rename to webapp/assets/_app/immutable/chunks/CMG1iQmM.js index 0d8c1f85..09c237c4 100644 --- a/webapp/assets/_app/immutable/chunks/BZ2WxPPD.js +++ b/webapp/assets/_app/immutable/chunks/CMG1iQmM.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as v}from"./C7KraPli.js";import{p as w,l as m,q as s,g as r,m as g,h as x,B as h,a as T,b as B,c as S,k,u}from"./cPTQ2Ibn.js";import{k as A}from"./Du50aAe5.js";import{p as d}from"./DqFqoVWr.js";import{k as b,B as C}from"./DJsB5Z5V.js";import{f as E}from"./ow_oMtSd.js";function j(_,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{j as S}; +import"./DsnmJJEf.js";import{i as v}from"./C7KraPli.js";import{p as w,l as m,q as s,g as r,m as g,h as x,B as h,a as T,b as B,c as S,k,u}from"./cPTQ2Ibn.js";import{k as A}from"./BIepGqC5.js";import{p as d}from"./DqFqoVWr.js";import{k as b,B as C}from"./Cr2hBuns.js";import{f as E}from"./ow_oMtSd.js";function j(_,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{j as S}; diff --git a/webapp/assets/_app/immutable/chunks/WI-og7-I.js b/webapp/assets/_app/immutable/chunks/CSF6MBq7.js similarity index 97% rename from webapp/assets/_app/immutable/chunks/WI-og7-I.js rename to webapp/assets/_app/immutable/chunks/CSF6MBq7.js index 7b2a363e..fcf469d5 100644 --- a/webapp/assets/_app/immutable/chunks/WI-og7-I.js +++ b/webapp/assets/_app/immutable/chunks/CSF6MBq7.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as K}from"./C7KraPli.js";import{p as O,f as U,d as e,r as t,s,q as c,u as o,z as at,t as W,e as g,b as h,c as Q,E as mt,D as ut,B as Y,a as Z,g as P}from"./cPTQ2Ibn.js";import{p as T,i as H,s as gt,a as pt}from"./DqFqoVWr.js";import{c as rt,d as tt,B as xt}from"./DqbUkQgD.js";import{b as R,B as $,e as ft}from"./DJsB5Z5V.js";import{e as yt}from"./JUkrBp3F.js";import{D as ht,G as et}from"./Du50aAe5.js";import{E as _t}from"./CPFytHjx.js";import{S as bt}from"./BZ2WxPPD.js";import{e as kt,i as wt}from"./CiWDXYQd.js";import{b as Ct}from"./Cwu7L3Xf.js";var Pt=U('

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

No pools configured

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

'),Bt=U('

Events

'),Nt=U('

Events

No events available

');function Wt(L,v){O(v,!1);let a=T(v,"events",8),p=T(v,"eventsContainer",12,void 0);K();var N=Y(),n=Z(N);{var E=m=>{var x=Bt(),_=e(x),I=s(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=s(u,2),w=e(M);{var S=l=>{$(l,{variant:"error",text:"Error"})},G=l=>{var j=Y(),z=Z(j);{var B=y=>{$(y,{variant:"warning",text:"Warning"})},A=y=>{$(y,{variant:"info",text:"Info"})};H(z,y=>{P(i),o(()=>(P(i).event_level||"info").toLowerCase()==="warning")?y(B):y(A,!1)},!0)}h(l,j)};H(w,l=>{P(i),o(()=>(P(i).event_level||"info").toLowerCase()==="error")?l(S):l(G,!1)})}var r=s(w,2),C=e(r,!0);t(r),t(M),t(k),t(f),W(l=>{g(D,(P(i),o(()=>P(i).message))),g(C,l)},[()=>(c(R),P(i),o(()=>R(P(i).created_at)))]),h(b,f)}),t(I),Ct(I,b=>p(b),()=>p()),t(_),t(x),h(m,x)},V=m=>{var x=Nt();h(m,x)};H(n,m=>{c(a()),o(()=>a()&&a().length>0)?m(E):m(V,!1)})}h(L,N),Q()}export{$t as E,qt as P,Wt as a}; +import"./DsnmJJEf.js";import{i as K}from"./C7KraPli.js";import{p as O,f as U,d as e,r as t,s,q as c,u as o,z as at,t as W,e as g,b as h,c as Q,E as mt,D as ut,B as Y,a as Z,g as P}from"./cPTQ2Ibn.js";import{p as T,i as H,s as gt,a as pt}from"./DqFqoVWr.js";import{c as rt,d as tt,B as xt}from"./yWyZZHPR.js";import{b as R,B as $,e as ft}from"./Cr2hBuns.js";import{e as yt}from"./C01HillC.js";import{D as ht,G as et}from"./BIepGqC5.js";import{E as _t}from"./CVL5tSYq.js";import{S as bt}from"./CMG1iQmM.js";import{e as kt,i as wt}from"./CiWDXYQd.js";import{b as Ct}from"./Cwu7L3Xf.js";var Pt=U('

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

No pools configured

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

'),Bt=U('

Events

'),Nt=U('

Events

No events available

');function Wt(L,v){O(v,!1);let a=T(v,"events",8),p=T(v,"eventsContainer",12,void 0);K();var N=Y(),n=Z(N);{var E=m=>{var x=Bt(),_=e(x),I=s(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=s(u,2),w=e(M);{var S=l=>{$(l,{variant:"error",text:"Error"})},G=l=>{var j=Y(),z=Z(j);{var B=y=>{$(y,{variant:"warning",text:"Warning"})},A=y=>{$(y,{variant:"info",text:"Info"})};H(z,y=>{P(i),o(()=>(P(i).event_level||"info").toLowerCase()==="warning")?y(B):y(A,!1)},!0)}h(l,j)};H(w,l=>{P(i),o(()=>(P(i).event_level||"info").toLowerCase()==="error")?l(S):l(G,!1)})}var r=s(w,2),C=e(r,!0);t(r),t(M),t(k),t(f),W(l=>{g(D,(P(i),o(()=>P(i).message))),g(C,l)},[()=>(c(R),P(i),o(()=>R(P(i).created_at)))]),h(b,f)}),t(I),Ct(I,b=>p(b),()=>p()),t(_),t(x),h(m,x)},V=m=>{var x=Nt();h(m,x)};H(n,m=>{c(a()),o(()=>a()&&a().length>0)?m(E):m(V,!1)})}h(L,N),Q()}export{$t as E,qt as P,Wt as a}; diff --git a/webapp/assets/_app/immutable/chunks/CTvJf3dP.js b/webapp/assets/_app/immutable/chunks/CTvJf3dP.js deleted file mode 100644 index 8c580828..00000000 --- a/webapp/assets/_app/immutable/chunks/CTvJf3dP.js +++ /dev/null @@ -1,3 +0,0 @@ -import{F as Ae,o as De,aR as L,g as P,k as N,bf as mt,aS as $e}from"./cPTQ2Ibn.js";import{p as _t,e as yt,a as wt,b as I}from"./D7e9zx6w.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 Ee{constructor(t,n){this.status=t,this.location=n}}class Se 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 l=Reflect.get(i,o);return typeof l=="function"?l.bind(i):l}}),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(Re(e)),Rt(e,t));const G=new Map;function Tt(e,t){const n=Re(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=Re(e,n),a=G.get(r);if(a){if(performance.now(){const{pattern:g,params:u}=_t(o),c={id:o,exec:h=>{const _=g.exec(h);if(_)return yt(_,u,r)},errors:[1,...d||[]].map(h=>e[h]),layouts:[0,...f||[]].map(i),leaf:s(l)};return c.errors.length=c.layouts.length=Math.max(c.errors.length,c.layouts.length),c});function s(o){const l=o<0;return l&&(o=~o),[l,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 Be(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const Lt="1758549499990",We="sveltekit:snapshot",ze="sveltekit:scroll",Xe="sveltekit:states",Pt="sveltekit:pageurl",V="sveltekit:history",J="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Z=location.origin;function Te(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 Ze(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Qe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=Ze(e)}}function we(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=Ze(o);function l(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:l(t),noscroll:l(n),reload:l(s),replace_state:l(i)}}function Fe(e){const t=Ae(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(l=>{(o===void 0||n&&l!==o)&&i(o=l)})}return{notify:r,set:a,subscribe:s}}const et={v:()=>{}};function Nt(){const{set:e,subscribe:t}=Ae(!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!==Lt;return i&&(e(!0),et.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 yn(e){}function Ot(e){const t=xt(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 jt=-1,Dt=-2,$t=-3,Bt=-4,Vt=-5,Ft=-6;function Mt(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===jt)return;if(s===$t)return NaN;if(s===Bt)return 1/0;if(s===Vt)return-1/0;if(s===Ft)return-0;if(i||typeof s!="number")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 l=o[0],f=t?.[l];if(f)return r[s]=f(a(o[1]));switch(l){case"Date":r[s]=new Date(o[1]);break;case"Set":const d=new Set;r[s]=d;for(let c=1;ct!=null)}const Ht="x-sveltekit-invalidated",Kt="x-sveltekit-trailing-slash";function ne(e){return e instanceof le||e instanceof Se?e.status:500}function Yt(e){return e instanceof Se?e.text:"Internal Error"}let E,W,_e;const Jt=De.toString().includes("$$")||/function \w+\(\) \{\}/.test(De.toString());Jt?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},W={current:null},_e={current:!1}):(E=new class{#e=L({});get data(){return P(this.#e)}set data(t){N(this.#e,t)}#t=L(null);get form(){return P(this.#t)}set form(t){N(this.#t,t)}#n=L(null);get error(){return P(this.#n)}set error(t){N(this.#n,t)}#r=L({});get params(){return P(this.#r)}set params(t){N(this.#r,t)}#a=L({id:null});get route(){return P(this.#a)}set route(t){N(this.#a,t)}#o=L({});get state(){return P(this.#o)}set state(t){N(this.#o,t)}#s=L(-1);get status(){return P(this.#s)}set status(t){N(this.#s,t)}#i=L(new URL("https://example.com"));get url(){return P(this.#i)}set url(t){N(this.#i,t)}},W=new class{#e=L(null);get current(){return P(this.#e)}set current(t){N(this.#e,t)}},_e=new class{#e=L(!1);get current(){return P(this.#e)}set current(t){N(this.#e,t)}},et.v=()=>_e.current=!0);function Wt(e){Object.assign(E,e)}const zt="/__data.json",Xt=".html__data.json";function Zt(e){return e.endsWith(".html")?e.replace(/\.html$/,Xt):e.replace(/\/$/,"")+zt}const{tick:Qt}=mt,en=new Set(["icon","shortcut icon","apple-touch-icon"]),$=Je(ze)??{},z=Je(We)??{},x={url:Fe({}),page:Fe({}),navigating:Ae(null),updated:Nt()};function Ue(e){$[e]=fe()}function tn(e,t){let n=e+1;for(;$[n];)delete $[n],n+=1;for(n=t+1;z[n];)delete z[n],n+=1}function M(e){return location.href=e.href,new Promise(()=>{})}async function nt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(I||"/");e&&await e.update()}}function Me(){}let Ie,ve,re,O,be,v;globalThis.__sveltekit_ppz5de.data;const ae=[],oe=[];let C=null;const ee=new Map,rt=new Set,nn=new Set,H=new Set;let w={branch:[],error:null,url:null},Le=!1,se=!1,qe=!0,X=!1,q=!1,at=!1,Pe=!1,ot,k,T,D;const K=new Set,Ge=new Map;async function kn(e,t,n){document.URL!==location.href&&(location.href=location.href),v=e,await e.hooks.init?.(),Ie=It(e),O=document.documentElement,be=t,ve=e.nodes[0],re=e.nodes[1],ve(),re(),k=history.state?.[V],T=history.state?.[J],k||(k=T=Date.now(),history.replaceState({...history.state,[V]:k,[J]:T},""));const r=$[k];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await hn(be,n)):(await Y({type:"enter",url:Te(v.hash?gn(new URL(location.href)):location.href),replace_state:!0}),a()),dn()}function rn(){ae.length=0,Pe=!1}function st(e){oe.some(t=>t?.snapshot)&&(z[e]=oe.map(t=>t?.snapshot?.capture()))}function it(e){z[e]?.forEach((t,n)=>{oe[n]?.snapshot?.restore(t)})}function He(){Ue(k),Be(ze,$),st(T),Be(We,z)}async function Ne(e,t,n,r){let a;const s=await Y({type:"goto",url:Te(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=[...Ge.keys()]),t.invalidate&&t.invalidate.forEach(un)}});return t.invalidateAll&&$e().then($e).then(()=>{Ge.forEach(({resource:i},o)=>{a?.includes(o)&&i.refresh?.()})}),s}async function an(e){if(e.id!==C?.id){const t={};K.add(t),C={id:e.id,token:t,promise:ft({...e,preload:t}).then(n=>(K.delete(t),n.type==="loaded"&&n.state.error&&(C=null),n))}}return C.promise}async function ye(e){const t=(await he(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}function ct(e,t,n){w=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(E,e.props.page),ot=new v.root({target:t,props:{...e.props,stores:x,components:oe},hydrate:n,sync:!1}),it(T),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(I&&(e.pathname===I||e.pathname===I+"/"))o="always";else for(const c of n)c?.slash!==void 0&&(o=c.slash);e.pathname=vt(e.pathname,o),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:s},props:{constructors:Gt(n).map(c=>c.node.component),page:je(E)}};i!==void 0&&(l.props.form=i);let f={},d=!E,g=0;for(let c=0;c(o&&(l.route=!0),u[c])}),params:new Proxy(r,{get:(u,c)=>(o&&l.params.add(c),u[c])}),data:s?.data??null,url:At(n,()=>{o&&(l.url=!0)},u=>{o&&l.search_params.add(u)},v.hash),async fetch(u,c){u instanceof Request&&(c={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,...c});const{resolved:h,promise:_}=lt(u,c,n);return o&&d(h.href),_},setHeaders:()=>{},depends:d,parent(){return o&&(l.parent=!0),t()},untrack(u){o=!1;try{return u()}finally{o=!0}}};i=await f.universal.load.call(null,g)??null}return{node:f,loader:e,server:s,universal:f.universal?.load?{type:"data",data:i,uses:l}:null,data:i??s?.data??null,slash:f.universal?.trailingSlash??s?.slash}}function lt(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):Tt(r,t);return{resolved:a,promise:s}}function Ke(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 Ce(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function on(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 Ye({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:je(E),constructors:[]}}}async function ft({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if(C?.id===e)return K.delete(C.token),C.promise;const{errors:i,layouts:o,leaf:l}=a,f=[...o,l];i.forEach(p=>p?.().catch(()=>{})),f.forEach(p=>p?.[1]().catch(()=>{}));let d=null;const g=w.url?e!==ce(w.url):!1,u=w.route?a.id!==w.route.id:!1,c=on(w.url,n);let h=!1;const _=f.map((p,y)=>{const b=w.branch[y],A=!!p?.[0]&&(b?.loader!==p[1]||Ke(h,u,g,c,b.server?.uses,r));return A&&(h=!0),A});if(_.some(Boolean)){try{d=await ht(n,_)}catch(p){const y=await F(p,{url:n,params:r,route:{id:e}});return K.has(s)?Ye({error:y,url:n,params:r,route:a}):de({status:ne(p),error:y,url:n,route:a})}if(d.type==="redirect")return d}const m=d?.nodes;let R=!1;const S=f.map(async(p,y)=>{if(!p)return;const b=w.branch[y],A=m?.[y];if((!A||A.type==="skip")&&p[1]===b?.loader&&!Ke(R,u,g,c,b.universal?.uses,r))return b;if(R=!0,A?.type==="error")throw A;return Oe({loader:p[1],url:n,params:r,route:a,parent:async()=>{const pe={};for(let ge=0;ge{});const U=[];for(let p=0;pPromise.resolve({}),server_data_node:Ce(s)}),l={node:await re(),loader:re,universal:null,server:null,data:null};return ie({url:n,params:a,branch:[o,l],status:e,error:t,route:null})}catch(o){if(o instanceof Ee)return Ne(new URL(o.location,location.href),{},0);throw o}}async function cn(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)=>lt(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,I,v.hash)){const n=await cn(e);if(!n)return;const r=ln(n);for(const a of Ie){const s=a.exec(r);if(s)return{id:ce(e),invalidating:t,route:a,params:kt(s),url:e}}}}function ln(e){return bt(v.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(I.length))||"/"}function ce(e){return(v.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ut({url:e,type:t,intent:n,delta:r}){let a=!1;const s=xe(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||rt.forEach(o=>o(i)),a?null:s}async function Y({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:l={},accept:f=Me,block:d=Me}){const g=D;D=l;const u=await he(t,!1),c=e==="enter"?xe(w,u,t,e):ut({url:t,type:e,delta:n?.delta,intent:u});if(!c){d(),D===l&&(D=g);return}const h=k,_=T;f(),X=!0,se&&c.navigation.type!=="enter"&&x.navigating.set(W.current=c.navigation);let m=u&&await ft(u);if(!m){if(ue(t,I,v.hash))return await M(t);m=await dt(t,{id:null},await F(new Se(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404)}if(t=u?.url||t,D!==l)return c.reject(new Error("navigation aborted")),!1;if(m.type==="redirect")if(o>=20)m=await de({status:500,error:await F(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}});else return await Ne(new URL(m.location,t).href,{},o+1,l),!1;else m.props.page.status>=400&&await x.updated.check()&&(await nt(),await M(t));if(rn(),Ue(h),st(_),m.props.page.url.pathname!==t.pathname&&(t.pathname=m.props.page.url.pathname),i=n?n.state:i,!n){const p=s?0:1,y={[V]:k+=p,[J]:T+=p,[Xe]:i};(s?history.replaceState:history.pushState).call(history,y,"",t),s||tn(k,T)}if(C=null,m.props.page.state=i,se){const p=(await Promise.all(Array.from(nn,y=>y(c.navigation)))).filter(y=>typeof y=="function");if(p.length>0){let y=function(){p.forEach(b=>{H.delete(b)})};p.push(y),p.forEach(b=>{H.add(b)})}w=m.state,m.props.page&&(m.props.page.url=t),ot.$set(m.props),Wt(m.props.page),at=!0}else ct(m,be,!1);const{activeElement:R}=document;await Qt();const S=n?n.scroll:a?fe():null;if(qe){const p=t.hash&&document.getElementById(gt(t));S?scrollTo(S.x,S.y):p?p.scrollIntoView():scrollTo(0,0)}const U=document.activeElement!==R&&document.activeElement!==document.body;!r&&!U&&pn(t),qe=!0,m.props.page&&Object.assign(E,m.props.page),X=!1,e==="popstate"&&it(T),c.fulfil(void 0),H.forEach(p=>p(c.navigation)),x.navigating.set(W.current=null)}async function dt(e,t,n,r){return e.origin===Z&&e.pathname===location.pathname&&!Le?await de({status:r,error:n,url:e,route:t}):await M(e)}function fn(){let e,t,n;O.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(e),e=setTimeout(()=>{s(l,j.hover)},20)});function r(o){o.defaultPrevented||s(o.composedPath()[0],j.tap)}O.addEventListener("mousedown",r),O.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(ye(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function s(o,l){const f=Qe(o,O),d=f===t&&l>=n;if(!f||d)return;const{url:g,external:u,download:c}=we(f,I,v.hash);if(u||c)return;const h=te(f),_=g&&ce(w.url)===ce(g);if(!(h.reload||_))if(l<=h.preload_data){t=f,n=j.tap;const m=await he(g,!1);if(!m)return;an(m)}else l<=h.preload_code&&(t=f,n=l,ye(g))}function i(){a.disconnect();for(const o of O.querySelectorAll("a")){const{url:l,external:f,download:d}=we(o,I,v.hash);if(f||d)continue;const g=te(o);g.reload||(g.preload_code===j.viewport&&a.observe(o),g.preload_code===j.eager&&ye(l))}}H.add(i),i()}function F(e,t){if(e instanceof le)return e.body;const n=ne(e),r=Yt(e);return v.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function An(e,t={}){return e=new URL(Te(e)),e.origin!==Z?Promise.reject(new Error("goto: invalid URL")):Ne(e,t,0)}function un(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function dn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(He(),!X){const r=xe(w,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};rt.forEach(s=>s(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&He()}),navigator.connection?.saveData||fn(),O.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Qe(t.composedPath()[0],O);if(!n)return;const{url:r,external:a,target:s,download:i}=we(n,I,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("#"),g=f===me(location);if(a||o.reload&&(!g||!d)){ut({url:r,type:"link"})?X=!0:t.preventDefault();return}if(d!==void 0&&g){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 c=n.ownerDocument.getElementById(decodeURIComponent(d));c&&(c.scrollIntoView(),c.focus())}return}if(q=!0,Ue(k),e(r),!o.replace_state)return;q=!1}t.preventDefault(),await new Promise(u=>{requestAnimationFrame(()=>{setTimeout(u,0)}),setTimeout(u,100)}),await Y({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href})}),O.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,I,!1))return;const o=t.target,l=te(o);if(l.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(),Y({type:"form",url:i,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??i.href===location.href})}),addEventListener("popstate",async t=>{if(!ke){if(t.state?.[V]){const n=t.state[V];if(D={},n===k)return;const r=$[n],a=t.state[Xe]??{},s=new URL(t.state[Pt]??location.href),i=t.state[J],o=w.url?me(location)===me(w.url):!1;if(i===T&&(at||o)){a!==E.state&&(E.state=a),e(s),$[k]=fe(),r&&scrollTo(r.x,r.y),k=n;return}const f=n-k;await Y({type:"popstate",url:s,popped:{state:a,scroll:r,delta:f},accept:()=>{k=n,T=i},block:()=>{history.go(-f)},nav_token:D})}else if(!q){const n=new URL(location.href);e(n),v.hash&&location.reload()}}}),addEventListener("hashchange",()=>{q&&(q=!1,history.replaceState({...history.state,[V]:++k,[J]:T},"",location.href))});for(const t of document.querySelectorAll("link"))en.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&x.navigating.set(W.current=null)});function e(t){w.url=E.url=t,x.page.set(je(E)),x.page.notify()}}async function hn(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:l}){Le=!0;const f=new URL(location.href);let d;({params:a={},route:s={id:null}}=await he(f,!1)||{}),d=Ie.find(({id:c})=>c===s.id);let g,u=!0;try{const c=r.map(async(_,m)=>{const R=o[m];return R?.uses&&(R.uses=pt(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(),l=new TextDecoder;function f(g){return Mt(g,{...v.decoders,Promise:u=>new Promise((c,h)=>{i.set(u,{fulfil:c,reject:h})})})}let d="";for(;;){const{done:g,value:u}=await o.read();if(g&&!d)break;for(d+=!u&&d?` -`:l.decode(u,{stream:!0});;){const c=d.indexOf(` -`);if(c===-1)break;const h=JSON.parse(d.slice(0,c));if(d=d.slice(c+1),h.type==="redirect")return s(h);if(h.type==="data")h.nodes?.forEach(_=>{_?.type==="data"&&(_.uses=pt(_.uses),_.data=f(_.data))}),s(h);else if(h.type==="chunk"){const{id:_,data:m,error:R}=h,S=i.get(_);i.delete(_),R?S.reject(f(R)):S.fulfil(f(m))}}}})}function pt(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 ke=!1;function pn(e){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const n=gt(e);if(n&&document.getElementById(n)){const{x:a,y:s}=fe();setTimeout(()=>{const i=history.state;ke=!0,location.replace(`#${n}`),v.hash&&location.replace(e.hash),history.replaceState(i,"",e.hash),scrollTo(a,s),ke=!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=l,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 je(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 gn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function gt(e){let t;if(v.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{kn as a,An as g,yn as l,E as p,x as s}; diff --git a/webapp/assets/_app/immutable/chunks/CPFytHjx.js b/webapp/assets/_app/immutable/chunks/CVL5tSYq.js similarity index 96% rename from webapp/assets/_app/immutable/chunks/CPFytHjx.js rename to webapp/assets/_app/immutable/chunks/CVL5tSYq.js index a942bcc9..7e8fdc33 100644 --- a/webapp/assets/_app/immutable/chunks/CPFytHjx.js +++ b/webapp/assets/_app/immutable/chunks/CVL5tSYq.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as R}from"./C7KraPli.js";import{p as j,l as w,h as A,f as g,t as k,b as v,c as B,s as D,d as u,k as _,m as y,r as m,q as f,u as h,g as d,e as U}from"./cPTQ2Ibn.js";import{p as o,i as F}from"./DqFqoVWr.js";import{c as b,s as G,d as n}from"./DqbUkQgD.js";var H=g('
'),J=g('');function V(x,a){j(a,!1);const i=y(),p=y();let e=o(a,"item",8),s=o(a,"entityType",8,"repository"),E=o(a,"showOwner",8,!1),I=o(a,"showId",8,!1),z=o(a,"fontMono",8,!1);function C(){if(!e())return"Unknown";switch(s()){case"repository":return E()?`${e().owner||"Unknown"}/${e().name||"Unknown"}`:e().name||"Unknown";case"organization":case"enterprise":return e().name||"Unknown";case"pool":return I()?e().id||"Unknown":e().name||"Unknown";case"scaleset":return e().name||"Unknown";case"instance":return e().name||"Unknown";case"template":return e().name||"Unknown";default:return e().name||e().id||"Unknown"}}function M(){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 n(`/repositories/${t}`);case"organization":return n(`/organizations/${t}`);case"enterprise":return n(`/enterprises/${t}`);case"pool":return n(`/pools/${t}`);case"scaleset":return n(`/scalesets/${t}`);case"instance":return n(`/instances/${encodeURIComponent(t)}`);case"template":return n(`/templates/${t}`);default:return"#"}}w(()=>{},()=>{_(i,C())}),w(()=>{},()=>{_(p,M())}),A(),R();var c=J(),r=u(c),N=u(r,!0);m(r);var O=D(r);{var T=t=>{var l=H(),q=u(l,!0);m(l),k(()=>U(q,(f(e()),h(()=>e().provider_id)))),v(t,l)};F(O,t=>{f(s()),f(e()),h(()=>s()==="instance"&&e()?.provider_id)&&t(T)})}m(c),k(()=>{b(r,"href",d(p)),G(r,1,`block w-full truncate text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 ${z()?"font-mono":""}`),b(r,"title",d(i)),U(N,d(i))}),v(x,c),B()}export{V as E}; +import"./DsnmJJEf.js";import{i as R}from"./C7KraPli.js";import{p as j,l as w,h as A,f as g,t as k,b as v,c as B,s as D,d as u,k as _,m as y,r as m,q as f,u as h,g as d,e as U}from"./cPTQ2Ibn.js";import{p as o,i as F}from"./DqFqoVWr.js";import{c as b,s as G,d as n}from"./yWyZZHPR.js";var H=g('
'),J=g('');function V(x,a){j(a,!1);const i=y(),p=y();let e=o(a,"item",8),s=o(a,"entityType",8,"repository"),E=o(a,"showOwner",8,!1),I=o(a,"showId",8,!1),z=o(a,"fontMono",8,!1);function C(){if(!e())return"Unknown";switch(s()){case"repository":return E()?`${e().owner||"Unknown"}/${e().name||"Unknown"}`:e().name||"Unknown";case"organization":case"enterprise":return e().name||"Unknown";case"pool":return I()?e().id||"Unknown":e().name||"Unknown";case"scaleset":return e().name||"Unknown";case"instance":return e().name||"Unknown";case"template":return e().name||"Unknown";default:return e().name||e().id||"Unknown"}}function M(){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 n(`/repositories/${t}`);case"organization":return n(`/organizations/${t}`);case"enterprise":return n(`/enterprises/${t}`);case"pool":return n(`/pools/${t}`);case"scaleset":return n(`/scalesets/${t}`);case"instance":return n(`/instances/${encodeURIComponent(t)}`);case"template":return n(`/templates/${t}`);default:return"#"}}w(()=>{},()=>{_(i,C())}),w(()=>{},()=>{_(p,M())}),A(),R();var c=J(),r=u(c),N=u(r,!0);m(r);var O=D(r);{var T=t=>{var l=H(),q=u(l,!0);m(l),k(()=>U(q,(f(e()),h(()=>e().provider_id)))),v(t,l)};F(O,t=>{f(s()),f(e()),h(()=>s()==="instance"&&e()?.provider_id)&&t(T)})}m(c),k(()=>{b(r,"href",d(p)),G(r,1,`block w-full truncate text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 ${z()?"font-mono":""}`),b(r,"title",d(i)),U(N,d(i))}),v(x,c),B()}export{V as E}; diff --git a/webapp/assets/_app/immutable/chunks/91PQ6UtW.js b/webapp/assets/_app/immutable/chunks/Cpm0auuQ.js similarity index 93% rename from webapp/assets/_app/immutable/chunks/91PQ6UtW.js rename to webapp/assets/_app/immutable/chunks/Cpm0auuQ.js index 51836f79..a81d3665 100644 --- a/webapp/assets/_app/immutable/chunks/91PQ6UtW.js +++ b/webapp/assets/_app/immutable/chunks/Cpm0auuQ.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as q}from"./C7KraPli.js";import{p as A,E as F,f as y,s as l,d as t,r as a,z as $,D as b,b as o,t as p,e as n,c as G}from"./cPTQ2Ibn.js";import{p as v,i as H}from"./DqFqoVWr.js";import{M as I}from"./Bo3f8OIz.js";import{B as w}from"./DqbUkQgD.js";var J=y('

'),K=y('

');function W(D,s){A(s,!1);let M=v(s,"title",8),j=v(s,"message",8),g=v(s,"itemName",8,""),d=v(s,"loading",8,!1);const c=F();function B(){c("confirm")}q(),I(D,{$$events:{close:()=>c("close")},children:(C,O)=>{var m=K(),f=l(t(m),2),u=t(f),P=t(u,!0);a(u);var h=l(u,2),x=t(h),z=t(x,!0);a(x);var E=l(x,2);{var L=e=>{var i=J(),r=t(i,!0);a(i),p(()=>n(r,g())),o(e,i)};H(E,e=>{g()&&e(L)})}a(h),a(f);var _=l(f,2),k=t(_);w(k,{variant:"secondary",get disabled(){return d()},$$events:{click:()=>c("close")},children:(e,i)=>{$();var r=b("Cancel");o(e,r)},$$slots:{default:!0}});var N=l(k,2);w(N,{variant:"danger",get disabled(){return d()},get loading(){return d()},$$events:{click:B},children:(e,i)=>{$();var r=b();p(()=>n(r,d()?"Deleting...":"Delete")),o(e,r)},$$slots:{default:!0}}),a(_),a(m),p(()=>{n(P,M()),n(z,j())}),o(C,m)},$$slots:{default:!0}}),G()}export{W as D}; +import"./DsnmJJEf.js";import{i as q}from"./C7KraPli.js";import{p as A,E as F,f as y,s as l,d as t,r as a,z as $,D as b,b as o,t as p,e as n,c as G}from"./cPTQ2Ibn.js";import{p as v,i as H}from"./DqFqoVWr.js";import{M as I}from"./ao5EljEX.js";import{B as w}from"./yWyZZHPR.js";var J=y('

'),K=y('

');function W(D,s){A(s,!1);let M=v(s,"title",8),j=v(s,"message",8),g=v(s,"itemName",8,""),d=v(s,"loading",8,!1);const c=F();function B(){c("confirm")}q(),I(D,{$$events:{close:()=>c("close")},children:(C,O)=>{var m=K(),f=l(t(m),2),u=t(f),P=t(u,!0);a(u);var h=l(u,2),x=t(h),z=t(x,!0);a(x);var E=l(x,2);{var L=e=>{var i=J(),r=t(i,!0);a(i),p(()=>n(r,g())),o(e,i)};H(E,e=>{g()&&e(L)})}a(h),a(f);var _=l(f,2),k=t(_);w(k,{variant:"secondary",get disabled(){return d()},$$events:{click:()=>c("close")},children:(e,i)=>{$();var r=b("Cancel");o(e,r)},$$slots:{default:!0}});var N=l(k,2);w(N,{variant:"danger",get disabled(){return d()},get loading(){return d()},$$events:{click:B},children:(e,i)=>{$();var r=b();p(()=>n(r,d()?"Deleting...":"Delete")),o(e,r)},$$slots:{default:!0}}),a(_),a(m),p(()=>{n(P,M()),n(z,j())}),o(C,m)},$$slots:{default:!0}}),G()}export{W as D}; diff --git a/webapp/assets/_app/immutable/chunks/DJsB5Z5V.js b/webapp/assets/_app/immutable/chunks/Cr2hBuns.js similarity index 99% rename from webapp/assets/_app/immutable/chunks/DJsB5Z5V.js rename to webapp/assets/_app/immutable/chunks/Cr2hBuns.js index bc301b15..fb62be3c 100644 --- a/webapp/assets/_app/immutable/chunks/DJsB5Z5V.js +++ b/webapp/assets/_app/immutable/chunks/Cr2hBuns.js @@ -1,4 +1,4 @@ -import{d,s as w,f as x}from"./DqbUkQgD.js";import"./DsnmJJEf.js";import{i as k}from"./C7KraPli.js";import{p as b,l as _,q as c,h as v,f as y,t as h,b as E,c as B,k as z,m as L,d as M,r as j,g as T,e as U}from"./cPTQ2Ibn.js";import{p as o}from"./DqFqoVWr.js";function q(e){if(!e)return"N/A";try{return(typeof e=="string"?new Date(e):e).toLocaleString()}catch{return"Invalid Date"}}function A(e,r="w-4 h-4"){return e==="gitea"?``:e==="github"?`
`:` +import{d,s as w,f as x}from"./yWyZZHPR.js";import"./DsnmJJEf.js";import{i as k}from"./C7KraPli.js";import{p as b,l as _,q as c,h as v,f as y,t as h,b as E,c as B,k as z,m as L,d as M,r as j,g as T,e as U}from"./cPTQ2Ibn.js";import{p as o}from"./DqFqoVWr.js";function q(e){if(!e)return"N/A";try{return(typeof e=="string"?new Date(e):e).toLocaleString()}catch{return"Invalid Date"}}function A(e,r="w-4 h-4"){return e==="gitea"?``:e==="github"?`
`:` `}function C(e,r){if(e.repo_name)return e.repo_name;if(e.org_name)return e.org_name;if(e.enterprise_name)return e.enterprise_name;if(e.repo_id&&!e.repo_name&&r?.repositories){const n=r.repositories.find(t=>t.id===e.repo_id);return n?`${n.owner}/${n.name}`:"Unknown Entity"}if(e.org_id&&!e.org_name&&r?.organizations){const n=r.organizations.find(t=>t.id===e.org_id);return n&&n.name?n.name:"Unknown Entity"}if(e.enterprise_id&&!e.enterprise_name&&r?.enterprises){const n=r.enterprises.find(t=>t.id===e.enterprise_id);return n&&n.name?n.name:"Unknown Entity"}return"Unknown Entity"}function H(e){return e.repo_id?"repository":e.org_id?"organization":e.enterprise_id?"enterprise":"unknown"}function P(e){return e.repo_id?d(`/repositories/${e.repo_id}`):e.org_id?d(`/organizations/${e.org_id}`):e.enterprise_id?d(`/enterprises/${e.enterprise_id}`):"#"}function V(e){e&&(e.scrollTop=e.scrollHeight)}function W(e){return{newPerPage:e,newCurrentPage:1}}function G(e){return e.pool_manager_status?.running?{text:"Running",variant:"success"}:{text:"Stopped",variant:"error"}}function J(e){switch(e.toLowerCase()){case"error":return{text:"Error",variant:"error"};case"warning":return{text:"Warning",variant:"warning"};case"info":return{text:"Info",variant:"info"};default:return{text:e,variant:"info"}}}function l(e,r,n){if(!r.trim())return e;const t=r.toLowerCase();return e.filter(a=>typeof n=="function"?n(a).toLowerCase().includes(t):n.some(i=>a[i]?.toString().toLowerCase().includes(t)))}function K(e,r){return l(e,r,["name","owner"])}function O(e,r){return l(e,r,["name"])}function Q(e,r){return l(e,r,n=>[n.name||"",n.description||"",n.endpoint?.name||""].join(" "))}function X(e,r){return l(e,r,["name","description","base_url","api_base_url"])}function Y(e,r,n){return e.slice((r-1)*n,r*n)}var I=y(" ");function Z(e,r){b(r,!1);const n=L();let t=o(r,"variant",8,"gray"),a=o(r,"size",8,"sm"),i=o(r,"text",8),g=o(r,"ring",8,!1);const u={success:"bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200",error:"bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200",warning:"bg-yellow-100 dark:bg-yellow-900 text-yellow-800 dark:text-yellow-200",info:"bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200",gray:"bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200",blue:"bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200",green:"bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200",red:"bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200",yellow:"bg-yellow-100 dark:bg-yellow-900 text-yellow-800 dark:text-yellow-200",secondary:"bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200"},f={success:"ring-green-600/20 dark:ring-green-400/30",error:"ring-red-600/20 dark:ring-red-400/30",warning:"ring-yellow-600/20 dark:ring-yellow-400/30",info:"ring-blue-600/20 dark:ring-blue-400/30",gray:"ring-gray-500/20 dark:ring-gray-400/30",blue:"ring-blue-600/20 dark:ring-blue-400/30",green:"ring-green-600/20 dark:ring-green-400/30",red:"ring-red-600/20 dark:ring-red-400/30",yellow:"ring-yellow-600/20 dark:ring-yellow-400/30",secondary:"ring-gray-500/20 dark:ring-gray-400/30"},p={sm:"px-2 py-1 text-xs",md:"px-2.5 py-0.5 text-xs"};_(()=>(c(t()),c(a()),c(g())),()=>{z(n,["inline-flex items-center rounded-full font-semibold",u[t()],p[a()],g()?`ring-1 ring-inset ${f[t()]}`:""].filter(Boolean).join(" "))}),v(),k();var s=I(),m=M(s,!0);j(s),h(()=>{w(s,1,x(T(n))),U(m,i())}),E(e,s),B()}export{Z as B,X as a,q as b,W as c,J as d,C as e,Q as f,A as g,l as h,H as i,P as j,G as k,O as l,K as m,Y as p,V as s}; diff --git a/webapp/assets/_app/immutable/chunks/DVsSf1wv.js b/webapp/assets/_app/immutable/chunks/Crr6XDlZ.js similarity index 71% rename from webapp/assets/_app/immutable/chunks/DVsSf1wv.js rename to webapp/assets/_app/immutable/chunks/Crr6XDlZ.js index 05ef291e..e9a96cf2 100644 --- a/webapp/assets/_app/immutable/chunks/DVsSf1wv.js +++ b/webapp/assets/_app/immutable/chunks/Crr6XDlZ.js @@ -1 +1 @@ -import{s as e}from"./CTvJf3dP.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"./Br47IbuU.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/Cqnw7O8j.js b/webapp/assets/_app/immutable/chunks/DDJerweA.js similarity index 92% rename from webapp/assets/_app/immutable/chunks/Cqnw7O8j.js rename to webapp/assets/_app/immutable/chunks/DDJerweA.js index 601ebbff..ab65ff52 100644 --- a/webapp/assets/_app/immutable/chunks/Cqnw7O8j.js +++ b/webapp/assets/_app/immutable/chunks/DDJerweA.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as j}from"./C7KraPli.js";import{p as E,E as G,f as S,d as t,r,s as g,u,q as p,z as m,t as q,e as z,i as f,b as D,c as H}from"./cPTQ2Ibn.js";import{h as y,s as h}from"./DqbUkQgD.js";import{p as v}from"./DqFqoVWr.js";import{g as o}from"./DJsB5Z5V.js";var I=S('
');function M(x,s){E(s,!1);const k=G();let i=v(s,"selectedForgeType",12,""),_=v(s,"label",8,"Select Forge Type");function n(c){i(c),k("select",c)}j();var d=I(),l=t(d),F=t(l,!0);r(l);var b=g(l,2),e=t(b),w=t(e);y(w,()=>(p(o),u(()=>o("github","w-8 h-8")))),m(2),r(e);var a=g(e,2),T=t(a);y(T,()=>(p(o),u(()=>o("gitea","w-8 h-8")))),m(2),r(a),r(b),r(d),q(()=>{z(F,_()),h(e,1,`flex flex-col items-center justify-center p-6 border-2 rounded-lg transition-colors cursor-pointer ${i()==="github"?"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"}`),h(a,1,`flex flex-col items-center justify-center p-6 border-2 rounded-lg transition-colors cursor-pointer ${i()==="gitea"?"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"}`)}),f("click",e,()=>n("github")),f("click",a,()=>n("gitea")),D(x,d),H()}export{M as F}; +import"./DsnmJJEf.js";import{i as j}from"./C7KraPli.js";import{p as E,E as G,f as S,d as t,r,s as g,u,q as p,z as m,t as q,e as z,i as f,b as D,c as H}from"./cPTQ2Ibn.js";import{h as y,s as h}from"./yWyZZHPR.js";import{p as v}from"./DqFqoVWr.js";import{g as o}from"./Cr2hBuns.js";var I=S('
');function M(x,s){E(s,!1);const k=G();let i=v(s,"selectedForgeType",12,""),_=v(s,"label",8,"Select Forge Type");function n(c){i(c),k("select",c)}j();var d=I(),l=t(d),F=t(l,!0);r(l);var b=g(l,2),e=t(b),w=t(e);y(w,()=>(p(o),u(()=>o("github","w-8 h-8")))),m(2),r(e);var a=g(e,2),T=t(a);y(T,()=>(p(o),u(()=>o("gitea","w-8 h-8")))),m(2),r(a),r(b),r(d),q(()=>{z(F,_()),h(e,1,`flex flex-col items-center justify-center p-6 border-2 rounded-lg transition-colors cursor-pointer ${i()==="github"?"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"}`),h(a,1,`flex flex-col items-center justify-center p-6 border-2 rounded-lg transition-colors cursor-pointer ${i()==="gitea"?"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"}`)}),f("click",e,()=>n("github")),f("click",a,()=>n("gitea")),D(x,d),H()}export{M as F}; diff --git a/webapp/assets/_app/immutable/chunks/BgSaD1r_.js b/webapp/assets/_app/immutable/chunks/DMSCYqmZ.js similarity index 79% rename from webapp/assets/_app/immutable/chunks/BgSaD1r_.js rename to webapp/assets/_app/immutable/chunks/DMSCYqmZ.js index 198f6f6f..815c61cc 100644 --- a/webapp/assets/_app/immutable/chunks/BgSaD1r_.js +++ b/webapp/assets/_app/immutable/chunks/DMSCYqmZ.js @@ -1 +1 @@ -import{s as t,p as r}from"./CTvJf3dP.js";const e={get data(){return r.data},get error(){return r.error},get form(){return r.form},get params(){return r.params},get route(){return r.route},get state(){return r.state},get status(){return r.status},get url(){return r.url}};t.updated.check;const s=e;export{s as p}; +import{s as t,p as r}from"./Br47IbuU.js";const e={get data(){return r.data},get error(){return r.error},get form(){return r.form},get params(){return r.params},get route(){return r.route},get state(){return r.state},get status(){return r.status},get url(){return r.url}};t.updated.check;const s=e;export{s as p}; diff --git a/webapp/assets/_app/immutable/chunks/BUaPampd.js b/webapp/assets/_app/immutable/chunks/DQv7wuIJ.js similarity index 98% rename from webapp/assets/_app/immutable/chunks/BUaPampd.js rename to webapp/assets/_app/immutable/chunks/DQv7wuIJ.js index 78492191..32927690 100644 --- a/webapp/assets/_app/immutable/chunks/BUaPampd.js +++ b/webapp/assets/_app/immutable/chunks/DQv7wuIJ.js @@ -1,2 +1,2 @@ -import"./DsnmJJEf.js";import{i as Ar}from"./C7KraPli.js";import{p as Jr,E as Mr,m as u,o as Nr,k as s,l as or,g as e,h as Pr,f as M,d,r as a,s as o,q as R,u as p,t as f,y as Re,z as sr,e as y,i as ir,b,D,B as Ee,a as Q,c as Cr}from"./cPTQ2Ibn.js";import{p as Ur,i as E,s as Dr,a as Gr}from"./DqFqoVWr.js";import{e as jr,i as zr}from"./CiWDXYQd.js";import{r as $,s as nr,b as $e,g as Br,d as lr,c as Lr}from"./DqbUkQgD.js";import{b as J,a as Fr}from"./B-_QCM7E.js";import{p as qr}from"./D4Caz1gY.js";import{M as Hr}from"./Bo3f8OIz.js";import{e as ur}from"./BZiHL9L3.js";import{J as Wr}from"./D6f8Dk7c.js";import{e as Kr}from"./JUkrBp3F.js";var Qr=M('

'),Vr=M('

'),Xr=M('
Loading templates...
'),Yr=M(""),Zr=M('

',1),et=M('

Create a template first or proceed without a template to use default behavior.

'),rt=M('
Updating...
'),tt=M('

Scale Set Information

Provider:
Entity:

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
');function vt(pr,Oe){Jr(Oe,!1);const[br,cr]=Dr(),V=()=>Gr(Kr,"$eagerCache",br);let r=Ur(Oe,"scaleSet",8);const X=Mr();let z=u(!1),G=u(""),k=u(""),x=u([]),Y=u(!1),B=u(r().name||""),L=u(r().image||""),F=u(r().flavor||""),O=u(r().max_runners),I=u(r().min_idle_runners),q=u(r().runner_bootstrap_timeout),H=u(r().runner_prefix||""),_=u(r().os_type||"linux"),j=u(r().os_arch||"amd64"),W=u(r()["github-runner-group"]||""),K=u(r().enabled),A=u("{}"),w=u(r().template_id);function Z(){if(r().endpoint?.endpoint_type)return r().endpoint.endpoint_type;if(r().repo_id){const i=V().repositories.find(c=>c.id===r().repo_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}if(r().org_id){const i=V().organizations.find(c=>c.id===r().org_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}if(r().enterprise_id){const i=V().enterprises.find(c=>c.id===r().enterprise_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}return null}async function Ie(){try{s(Y,!0);const i=Z();if(!i){s(x,[]);return}if(s(x,await Br.listTemplates(e(_),void 0,i)),!e(w)||!e(x).find(c=>c.id===e(w))){const c=e(x).find(S=>S.owner_id==="system");c?s(w,c.id):e(x).length>0&&s(w,e(x)[0].id)}}catch(i){s(G,ur(i))}finally{s(Y,!1)}}Nr(()=>{if(r().extra_specs)try{if(typeof r().extra_specs=="object")s(A,JSON.stringify(r().extra_specs,null,2));else{const i=JSON.parse(r().extra_specs);s(A,JSON.stringify(i,null,2))}}catch{s(A,r().extra_specs||"{}")}Ie()});async function gr(){try{if(s(z,!0),s(G,""),e(k))throw new Error(e(k));let i={};if(e(A).trim())try{i=JSON.parse(e(A))}catch{throw new Error("Invalid JSON in extra specs")}const c={name:e(B)!==r().name?e(B):void 0,image:e(L)!==r().image?e(L):void 0,flavor:e(F)!==r().flavor?e(F):void 0,max_runners:e(O)!==r().max_runners?e(O):void 0,min_idle_runners:e(I)!==r().min_idle_runners?e(I):void 0,runner_bootstrap_timeout:e(q)!==r().runner_bootstrap_timeout?e(q):void 0,runner_prefix:e(H)!==r().runner_prefix?e(H):void 0,os_type:e(_)!==r().os_type?e(_):void 0,os_arch:e(j)!==r().os_arch?e(j):void 0,"github-runner-group":e(W)!==r()["github-runner-group"]&&e(W)||void 0,enabled:e(K)!==r().enabled?e(K):void 0,extra_specs:e(A).trim()!==JSON.stringify(r().extra_specs||{},null,2).trim()?i:void 0,template_id:e(w)!==r().template_id?e(w):void 0};Object.keys(c).forEach(S=>{c[S]===void 0&&delete c[S]}),X("submit",c)}catch(i){s(G,ur(i))}finally{s(z,!1)}}or(()=>e(_),()=>{e(_)&&Ie()}),or(()=>(e(I),e(O)),()=>{e(I)!==null&&e(I)!==void 0&&e(O)!==null&&e(O)!==void 0&&e(I)>e(O)?s(k,"Min idle runners cannot be greater than max runners"):s(k,"")}),Pr(),Ar(),Hr(pr,{$$events:{close:()=>X("close")},children:(i,c)=>{var S=tt(),ee=d(S),Ae=d(ee),vr=d(Ae);a(Ae),a(ee);var re=o(ee,2),Je=d(re);{var fr=t=>{var n=Qr(),T=d(n),N=d(T,!0);a(T),a(n),f(()=>y(N,e(G))),b(t,n)};E(Je,t=>{e(G)&&t(fr)})}var Me=o(Je,2);{var mr=t=>{var n=Vr(),T=d(n),N=d(T,!0);a(T),a(n),f(()=>y(N,e(k))),b(t,n)};E(Me,t=>{e(k)&&t(mr)})}var te=o(Me,2),Ne=o(d(te),2),ae=d(Ne),Pe=o(d(ae),2),yr=d(Pe,!0);a(Pe),a(ae);var Ce=o(ae,2),Ue=o(d(Ce),2),xr=d(Ue);{var _r=t=>{var n=D();f(()=>y(n,`Repository: ${R(r()),p(()=>r().repo_name)??""}`)),b(t,n)},hr=t=>{var n=Ee(),T=Q(n);{var N=v=>{var m=D();f(()=>y(m,`Organization: ${R(r()),p(()=>r().org_name)??""}`)),b(v,m)},Se=v=>{var m=Ee(),h=Q(m);{var C=g=>{var l=D();f(()=>y(l,`Enterprise: ${R(r()),p(()=>r().enterprise_name)??""}`)),b(g,l)},U=g=>{var l=D("Unknown Entity");b(g,l)};E(h,g=>{R(r()),p(()=>r().enterprise_name)?g(C):g(U,!1)},!0)}b(v,m)};E(T,v=>{R(r()),p(()=>r().org_name)?v(N):v(Se,!1)},!0)}b(t,n)};E(xr,t=>{R(r()),p(()=>r().repo_name)?t(_r):t(hr,!1)})}a(Ue),a(Ce),a(Ne),a(te);var de=o(te,2),De=o(d(de),2);$(De),a(de);var oe=o(de,2),Ge=o(d(oe),2),se=d(Ge),je=o(d(se),2);$(je),a(se);var ie=o(se,2),ze=o(d(ie),2);$(ze),a(ie);var ne=o(ie,2),le=o(d(ne),2);f(()=>{e(_),Re(()=>{})});var ue=d(le);ue.value=ue.__value="linux";var Be=o(ue);Be.value=Be.__value="windows",a(le),a(ne);var pe=o(ne,2),be=o(d(pe),2);f(()=>{e(j),Re(()=>{})});var ce=d(be);ce.value=ce.__value="amd64";var Le=o(ce);Le.value=Le.__value="arm64",a(be),a(pe);var Fe=o(pe,2),kr=o(d(Fe),2);{var wr=t=>{var n=Xr();b(t,n)},Sr=t=>{var n=Ee(),T=Q(n);{var N=v=>{var m=Zr(),h=Q(m);f(()=>{e(w),Re(()=>{e(x)})}),jr(h,5,()=>e(x),zr,(g,l)=>{var P=Yr(),tr=d(P),Or=o(tr);{var Ir=Te=>{var dr=D();f(()=>y(dr,`- ${e(l),p(()=>e(l).description)??""}`)),b(Te,dr)};E(Or,Te=>{e(l),p(()=>e(l).description)&&Te(Ir)})}a(P);var ar={};f(()=>{y(tr,`${e(l),p(()=>e(l).name)??""} ${e(l),p(()=>e(l).owner_id==="system"?"(System)":"")??""} `),ar!==(ar=(e(l),p(()=>e(l).id)))&&(P.value=(P.__value=(e(l),p(()=>e(l).id)))??"")}),b(g,P)}),a(h);var C=o(h,2),U=d(C);a(C),f(g=>y(U,`Templates define how the runner software is installed and configured. +import"./DsnmJJEf.js";import{i as Ar}from"./C7KraPli.js";import{p as Jr,E as Mr,m as u,o as Nr,k as s,l as or,g as e,h as Pr,f as M,d,r as a,s as o,q as R,u as p,t as f,y as Re,z as sr,e as y,i as ir,b,D,B as Ee,a as Q,c as Cr}from"./cPTQ2Ibn.js";import{p as Ur,i as E,s as Dr,a as Gr}from"./DqFqoVWr.js";import{e as jr,i as zr}from"./CiWDXYQd.js";import{r as $,s as nr,b as $e,g as Br,d as lr,c as Lr}from"./yWyZZHPR.js";import{b as J,a as Fr}from"./B-_QCM7E.js";import{p as qr}from"./D4Caz1gY.js";import{M as Hr}from"./ao5EljEX.js";import{e as ur}from"./BZiHL9L3.js";import{J as Wr}from"./BaxpdL59.js";import{e as Kr}from"./C01HillC.js";var Qr=M('

'),Vr=M('

'),Xr=M('
Loading templates...
'),Yr=M(""),Zr=M('

',1),et=M('

Create a template first or proceed without a template to use default behavior.

'),rt=M('
Updating...
'),tt=M('

Scale Set Information

Provider:
Entity:

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
');function vt(pr,Oe){Jr(Oe,!1);const[br,cr]=Dr(),V=()=>Gr(Kr,"$eagerCache",br);let r=Ur(Oe,"scaleSet",8);const X=Mr();let z=u(!1),G=u(""),k=u(""),x=u([]),Y=u(!1),B=u(r().name||""),L=u(r().image||""),F=u(r().flavor||""),O=u(r().max_runners),I=u(r().min_idle_runners),q=u(r().runner_bootstrap_timeout),H=u(r().runner_prefix||""),_=u(r().os_type||"linux"),j=u(r().os_arch||"amd64"),W=u(r()["github-runner-group"]||""),K=u(r().enabled),A=u("{}"),w=u(r().template_id);function Z(){if(r().endpoint?.endpoint_type)return r().endpoint.endpoint_type;if(r().repo_id){const i=V().repositories.find(c=>c.id===r().repo_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}if(r().org_id){const i=V().organizations.find(c=>c.id===r().org_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}if(r().enterprise_id){const i=V().enterprises.find(c=>c.id===r().enterprise_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}return null}async function Ie(){try{s(Y,!0);const i=Z();if(!i){s(x,[]);return}if(s(x,await Br.listTemplates(e(_),void 0,i)),!e(w)||!e(x).find(c=>c.id===e(w))){const c=e(x).find(S=>S.owner_id==="system");c?s(w,c.id):e(x).length>0&&s(w,e(x)[0].id)}}catch(i){s(G,ur(i))}finally{s(Y,!1)}}Nr(()=>{if(r().extra_specs)try{if(typeof r().extra_specs=="object")s(A,JSON.stringify(r().extra_specs,null,2));else{const i=JSON.parse(r().extra_specs);s(A,JSON.stringify(i,null,2))}}catch{s(A,r().extra_specs||"{}")}Ie()});async function gr(){try{if(s(z,!0),s(G,""),e(k))throw new Error(e(k));let i={};if(e(A).trim())try{i=JSON.parse(e(A))}catch{throw new Error("Invalid JSON in extra specs")}const c={name:e(B)!==r().name?e(B):void 0,image:e(L)!==r().image?e(L):void 0,flavor:e(F)!==r().flavor?e(F):void 0,max_runners:e(O)!==r().max_runners?e(O):void 0,min_idle_runners:e(I)!==r().min_idle_runners?e(I):void 0,runner_bootstrap_timeout:e(q)!==r().runner_bootstrap_timeout?e(q):void 0,runner_prefix:e(H)!==r().runner_prefix?e(H):void 0,os_type:e(_)!==r().os_type?e(_):void 0,os_arch:e(j)!==r().os_arch?e(j):void 0,"github-runner-group":e(W)!==r()["github-runner-group"]&&e(W)||void 0,enabled:e(K)!==r().enabled?e(K):void 0,extra_specs:e(A).trim()!==JSON.stringify(r().extra_specs||{},null,2).trim()?i:void 0,template_id:e(w)!==r().template_id?e(w):void 0};Object.keys(c).forEach(S=>{c[S]===void 0&&delete c[S]}),X("submit",c)}catch(i){s(G,ur(i))}finally{s(z,!1)}}or(()=>e(_),()=>{e(_)&&Ie()}),or(()=>(e(I),e(O)),()=>{e(I)!==null&&e(I)!==void 0&&e(O)!==null&&e(O)!==void 0&&e(I)>e(O)?s(k,"Min idle runners cannot be greater than max runners"):s(k,"")}),Pr(),Ar(),Hr(pr,{$$events:{close:()=>X("close")},children:(i,c)=>{var S=tt(),ee=d(S),Ae=d(ee),vr=d(Ae);a(Ae),a(ee);var re=o(ee,2),Je=d(re);{var fr=t=>{var n=Qr(),T=d(n),N=d(T,!0);a(T),a(n),f(()=>y(N,e(G))),b(t,n)};E(Je,t=>{e(G)&&t(fr)})}var Me=o(Je,2);{var mr=t=>{var n=Vr(),T=d(n),N=d(T,!0);a(T),a(n),f(()=>y(N,e(k))),b(t,n)};E(Me,t=>{e(k)&&t(mr)})}var te=o(Me,2),Ne=o(d(te),2),ae=d(Ne),Pe=o(d(ae),2),yr=d(Pe,!0);a(Pe),a(ae);var Ce=o(ae,2),Ue=o(d(Ce),2),xr=d(Ue);{var _r=t=>{var n=D();f(()=>y(n,`Repository: ${R(r()),p(()=>r().repo_name)??""}`)),b(t,n)},hr=t=>{var n=Ee(),T=Q(n);{var N=v=>{var m=D();f(()=>y(m,`Organization: ${R(r()),p(()=>r().org_name)??""}`)),b(v,m)},Se=v=>{var m=Ee(),h=Q(m);{var C=g=>{var l=D();f(()=>y(l,`Enterprise: ${R(r()),p(()=>r().enterprise_name)??""}`)),b(g,l)},U=g=>{var l=D("Unknown Entity");b(g,l)};E(h,g=>{R(r()),p(()=>r().enterprise_name)?g(C):g(U,!1)},!0)}b(v,m)};E(T,v=>{R(r()),p(()=>r().org_name)?v(N):v(Se,!1)},!0)}b(t,n)};E(xr,t=>{R(r()),p(()=>r().repo_name)?t(_r):t(hr,!1)})}a(Ue),a(Ce),a(Ne),a(te);var de=o(te,2),De=o(d(de),2);$(De),a(de);var oe=o(de,2),Ge=o(d(oe),2),se=d(Ge),je=o(d(se),2);$(je),a(se);var ie=o(se,2),ze=o(d(ie),2);$(ze),a(ie);var ne=o(ie,2),le=o(d(ne),2);f(()=>{e(_),Re(()=>{})});var ue=d(le);ue.value=ue.__value="linux";var Be=o(ue);Be.value=Be.__value="windows",a(le),a(ne);var pe=o(ne,2),be=o(d(pe),2);f(()=>{e(j),Re(()=>{})});var ce=d(be);ce.value=ce.__value="amd64";var Le=o(ce);Le.value=Le.__value="arm64",a(be),a(pe);var Fe=o(pe,2),kr=o(d(Fe),2);{var wr=t=>{var n=Xr();b(t,n)},Sr=t=>{var n=Ee(),T=Q(n);{var N=v=>{var m=Zr(),h=Q(m);f(()=>{e(w),Re(()=>{e(x)})}),jr(h,5,()=>e(x),zr,(g,l)=>{var P=Yr(),tr=d(P),Or=o(tr);{var Ir=Te=>{var dr=D();f(()=>y(dr,`- ${e(l),p(()=>e(l).description)??""}`)),b(Te,dr)};E(Or,Te=>{e(l),p(()=>e(l).description)&&Te(Ir)})}a(P);var ar={};f(()=>{y(tr,`${e(l),p(()=>e(l).name)??""} ${e(l),p(()=>e(l).owner_id==="system"?"(System)":"")??""} `),ar!==(ar=(e(l),p(()=>e(l).id)))&&(P.value=(P.__value=(e(l),p(()=>e(l).id)))??"")}),b(g,P)}),a(h);var C=o(h,2),U=d(C);a(C),f(g=>y(U,`Templates define how the runner software is installed and configured. Showing templates for ${g??""} ${e(_)??""}.`),[()=>p(Z)]),$e(h,()=>e(w),g=>s(w,g)),b(v,m)},Se=v=>{var m=et(),h=d(m),C=d(h);a(h);var U=o(h,2),g=d(U);sr(),a(U),a(m),f((l,P)=>{y(C,`No templates found for ${l??""} ${e(_)??""}.`),Lr(g,"href",P)},[()=>p(Z),()=>(R(lr),p(()=>lr("/templates")))]),b(v,m)};E(T,v=>{e(x),p(()=>e(x).length>0)?v(N):v(Se,!1)},!0)}b(t,n)};E(kr,t=>{e(Y)?t(wr):t(Sr,!1)})}a(Fe),a(Ge),a(oe);var ge=o(oe,2),qe=o(d(ge),2),ve=d(qe),fe=o(d(ve),2);$(fe),a(ve);var me=o(ve,2),ye=o(d(me),2);$(ye),a(me);var He=o(me,2),We=o(d(He),2);$(We),a(He),a(qe),a(ge);var xe=o(ge,2),_e=o(d(xe),2),he=d(_e),Ke=o(d(he),2);$(Ke),a(he);var Qe=o(he,2),Ve=o(d(Qe),2);$(Ve),a(Qe),a(_e);var ke=o(_e,2),Xe=d(ke),Tr=o(d(Xe),2);Wr(Tr,{rows:4,placeholder:"{}",get value(){return e(A)},set value(t){s(A,t)},$$legacy:!0}),a(Xe),a(ke);var Ye=o(ke,2),Ze=d(Ye);$(Ze),sr(2),a(Ye),a(xe);var er=o(xe,2),rr=d(er),we=o(rr,2),Rr=d(we);{var Er=t=>{var n=rt();b(t,n)},$r=t=>{var n=D("Update Scale Set");b(t,n)};E(Rr,t=>{e(z)?t(Er):t($r,!1)})}a(we),a(er),a(re),a(S),f(()=>{y(vr,`Update Scale Set ${R(r()),p(()=>r().name)??""}`),y(yr,(R(r()),p(()=>r().provider_name))),nr(fe,1,`w-full px-3 py-2 border ${e(k)?"border-red-300 dark:border-red-500":"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`),nr(ye,1,`w-full px-3 py-2 border ${e(k)?"border-red-300 dark:border-red-500":"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`),we.disabled=e(z)||e(k)!==""}),J(De,()=>e(B),t=>s(B,t)),J(je,()=>e(L),t=>s(L,t)),J(ze,()=>e(F),t=>s(F,t)),$e(le,()=>e(_),t=>s(_,t)),$e(be,()=>e(j),t=>s(j,t)),J(fe,()=>e(I),t=>s(I,t)),J(ye,()=>e(O),t=>s(O,t)),J(We,()=>e(q),t=>s(q,t)),J(Ke,()=>e(H),t=>s(H,t)),J(Ve,()=>e(W),t=>s(W,t)),Fr(Ze,()=>e(K),t=>s(K,t)),ir("click",rr,()=>X("close")),ir("submit",re,qr(gr)),b(i,S)},$$slots:{default:!0}}),Cr(),cr()}export{vt as U}; diff --git a/webapp/assets/_app/immutable/chunks/BVyy60Ai.js b/webapp/assets/_app/immutable/chunks/DVwzA4-Q.js similarity index 97% rename from webapp/assets/_app/immutable/chunks/BVyy60Ai.js rename to webapp/assets/_app/immutable/chunks/DVwzA4-Q.js index bba416ab..8c077c12 100644 --- a/webapp/assets/_app/immutable/chunks/BVyy60Ai.js +++ b/webapp/assets/_app/immutable/chunks/DVwzA4-Q.js @@ -1 +1 @@ -import{F as w}from"./cPTQ2Ibn.js";import{g as r}from"./DqbUkQgD.js";const m=!0,z=m,I=()=>window.location.port==="5173",b={isAuthenticated:!1,user:null,loading:!0,needsInitialization:!1},n=w(b);function f(t,a,e=7){const i=new Date;i.setTime(i.getTime()+e*24*60*60*1e3),document.cookie=`${t}=${a};expires=${i.toUTCString()};path=/;SameSite=Lax`}function d(t){const a=t+"=",e=document.cookie.split(";");for(let i=0;i({...i,loading:!0}));const e=await r.login({username:t,password:a});z&&(f("garm_token",e.token),f("garm_user",t)),r.setToken(e.token),n.set({isAuthenticated:!0,user:t,loading:!1,needsInitialization:!1})}catch(e){throw n.update(i=>({...i,loading:!1})),e}},logout(){g("garm_token"),g("garm_user"),n.set({isAuthenticated:!1,user:null,loading:!1,needsInitialization:!1})},async init(){try{n.update(e=>({...e,loading:!0})),await c.checkInitializationStatus();const t=d("garm_token"),a=d("garm_user");if(t&&a&&(r.setToken(t),await c.checkAuth())){n.set({isAuthenticated:!0,user:a,loading:!1,needsInitialization:!1});return}n.update(e=>({...e,loading:!1,needsInitialization:!1}))}catch{n.update(a=>({...a,loading:!1}))}},async checkInitializationStatus(){try{const t={Accept:"application/json"},a=d("garm_token"),e=I();e&&a&&(t.Authorization=`Bearer ${a}`);const i=await fetch("/api/v1/login",{method:"GET",headers:t,credentials:e?"omit":"include"});if(!i.ok){if(i.status===409&&(await i.json()).error==="init_required")throw n.update(s=>({...s,needsInitialization:!0,loading:!1})),new Error("Initialization required");return}return}catch(t){if(t instanceof Error&&t.message==="Initialization required")throw t;return}},async checkAuth(){try{return await c.checkInitializationStatus(),await r.getControllerInfo(),!0}catch(t){return t instanceof Error&&t.message==="Initialization required"?!1:t?.response?.status===409&&t?.response?.data?.error==="init_required"?(n.update(a=>({...a,needsInitialization:!0,loading:!1})),!1):(c.logout(),!1)}},async initialize(t,a,e,i,o){try{n.update(u=>({...u,loading:!0}));const s=await r.firstRun({username:t,email:a,password:e,full_name:i||t});await c.login(t,e);const l=window.location.origin,h=o?.metadataUrl||`${l}/api/v1/metadata`,p=o?.callbackUrl||`${l}/api/v1/callbacks`,k=o?.webhookUrl||`${l}/webhooks`;await r.updateController({metadata_url:h,callback_url:p,webhook_url:k}),n.update(u=>({...u,needsInitialization:!1}))}catch(s){throw n.update(l=>({...l,loading:!1})),s}}};export{n as a,c as b}; +import{F as w}from"./cPTQ2Ibn.js";import{g as r}from"./yWyZZHPR.js";const m=!0,z=m,I=()=>window.location.port==="5173",b={isAuthenticated:!1,user:null,loading:!0,needsInitialization:!1},n=w(b);function f(t,a,e=7){const i=new Date;i.setTime(i.getTime()+e*24*60*60*1e3),document.cookie=`${t}=${a};expires=${i.toUTCString()};path=/;SameSite=Lax`}function d(t){const a=t+"=",e=document.cookie.split(";");for(let i=0;i({...i,loading:!0}));const e=await r.login({username:t,password:a});z&&(f("garm_token",e.token),f("garm_user",t)),r.setToken(e.token),n.set({isAuthenticated:!0,user:t,loading:!1,needsInitialization:!1})}catch(e){throw n.update(i=>({...i,loading:!1})),e}},logout(){g("garm_token"),g("garm_user"),n.set({isAuthenticated:!1,user:null,loading:!1,needsInitialization:!1})},async init(){try{n.update(e=>({...e,loading:!0})),await c.checkInitializationStatus();const t=d("garm_token"),a=d("garm_user");if(t&&a&&(r.setToken(t),await c.checkAuth())){n.set({isAuthenticated:!0,user:a,loading:!1,needsInitialization:!1});return}n.update(e=>({...e,loading:!1,needsInitialization:!1}))}catch{n.update(a=>({...a,loading:!1}))}},async checkInitializationStatus(){try{const t={Accept:"application/json"},a=d("garm_token"),e=I();e&&a&&(t.Authorization=`Bearer ${a}`);const i=await fetch("/api/v1/login",{method:"GET",headers:t,credentials:e?"omit":"include"});if(!i.ok){if(i.status===409&&(await i.json()).error==="init_required")throw n.update(s=>({...s,needsInitialization:!0,loading:!1})),new Error("Initialization required");return}return}catch(t){if(t instanceof Error&&t.message==="Initialization required")throw t;return}},async checkAuth(){try{return await c.checkInitializationStatus(),await r.getControllerInfo(),!0}catch(t){return t instanceof Error&&t.message==="Initialization required"?!1:t?.response?.status===409&&t?.response?.data?.error==="init_required"?(n.update(a=>({...a,needsInitialization:!0,loading:!1})),!1):(c.logout(),!1)}},async initialize(t,a,e,i,o){try{n.update(u=>({...u,loading:!0}));const s=await r.firstRun({username:t,email:a,password:e,full_name:i||t});await c.login(t,e);const l=window.location.origin,h=o?.metadataUrl||`${l}/api/v1/metadata`,p=o?.callbackUrl||`${l}/api/v1/callbacks`,k=o?.webhookUrl||`${l}/webhooks`;await r.updateController({metadata_url:h,callback_url:p,webhook_url:k}),n.update(u=>({...u,needsInitialization:!1}))}catch(s){throw n.update(l=>({...l,loading:!1})),s}}};export{n as a,c as b}; diff --git a/webapp/assets/_app/immutable/chunks/BM4Azg_w.js b/webapp/assets/_app/immutable/chunks/DXLlGL2Y.js similarity index 84% rename from webapp/assets/_app/immutable/chunks/BM4Azg_w.js rename to webapp/assets/_app/immutable/chunks/DXLlGL2Y.js index dd1558de..387ed6f7 100644 --- a/webapp/assets/_app/immutable/chunks/BM4Azg_w.js +++ b/webapp/assets/_app/immutable/chunks/DXLlGL2Y.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as _}from"./C7KraPli.js";import{p as k,f as E,t as C,u as i,q as t,e as f,b as P,c as j,s as q,d as l,r as o}from"./cPTQ2Ibn.js";import{c as z}from"./DqbUkQgD.js";import{p as n}from"./DqFqoVWr.js";import{j as x,e as c,i as u}from"./DJsB5Z5V.js";var N=E('');function F(d,r){k(r,!1);let e=n(r,"item",8),m=n(r,"eagerCache",8,null);_();var s=N(),a=l(s),v=l(a,!0);o(a);var p=q(a,2),g=l(p,!0);o(p),o(s),C((h,b,y)=>{z(a,"href",h),f(v,b),f(g,y)},[()=>(t(x),t(e()),i(()=>x(e()))),()=>(t(c),t(e()),t(m()),i(()=>c(e(),m()))),()=>(t(u),t(e()),i(()=>u(e())))]),P(d,s),j()}export{F as P}; +import"./DsnmJJEf.js";import{i as _}from"./C7KraPli.js";import{p as k,f as E,t as C,u as i,q as t,e as f,b as P,c as j,s as q,d as l,r as o}from"./cPTQ2Ibn.js";import{c as z}from"./yWyZZHPR.js";import{p as n}from"./DqFqoVWr.js";import{j as x,e as c,i as u}from"./Cr2hBuns.js";var N=E('');function F(d,r){k(r,!1);let e=n(r,"item",8),m=n(r,"eagerCache",8,null);_();var s=N(),a=l(s),v=l(a,!0);o(a);var p=q(a,2),g=l(p,!0);o(p),o(s),C((h,b,y)=>{z(a,"href",h),f(v,b),f(g,y)},[()=>(t(x),t(e()),i(()=>x(e()))),()=>(t(c),t(e()),t(m()),i(()=>c(e(),m()))),()=>(t(u),t(e()),i(()=>u(e())))]),P(d,s),j()}export{F as P}; diff --git a/webapp/assets/_app/immutable/chunks/B1V2wE0x.js b/webapp/assets/_app/immutable/chunks/MwmEfQpp.js similarity index 98% rename from webapp/assets/_app/immutable/chunks/B1V2wE0x.js rename to webapp/assets/_app/immutable/chunks/MwmEfQpp.js index 4a3fe93d..5176420d 100644 --- a/webapp/assets/_app/immutable/chunks/B1V2wE0x.js +++ b/webapp/assets/_app/immutable/chunks/MwmEfQpp.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as Oe}from"./C7KraPli.js";import{p as Fe,E as Ke,o as Ge,f as x,d as t,r,s,g as e,m,z as B,t as y,y as ue,u as l,e as v,q as T,k as i,i as be,b as u,D as He,c as Je}from"./cPTQ2Ibn.js";import{p as ge,i as U}from"./DqFqoVWr.js";import{e as Qe,i as Ve}from"./CiWDXYQd.js";import{r as me,b as ye,g as Xe}from"./DqbUkQgD.js";import{a as Ye,b as Ze}from"./B-_QCM7E.js";import{p as ea}from"./D4Caz1gY.js";import{e as xe}from"./BZiHL9L3.js";import{M as aa}from"./Bo3f8OIz.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()}),Oe(),aa(fe,{$$events:{close:()=>$("close")},children:(c,E)=>{var A=la(),N=t(A),j=t(N),Ee=t(j);r(j);var Y=s(j,2),Se=t(Y,!0);r(Y),r(N);var q=s(N,2),Z=t(q);{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 z=s(Z,2),I=t(z),Ue=t(I);r(I);var ee=s(I,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 L=s(ae,2),te=s(t(L),2),Be=t(te,!0);r(te),r(L);var O=s(L,2),re=s(t(O),2),Te=t(re,!0);r(re),r(O);var F=s(O,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(z);var K=s(z,2),G=t(K),Re=s(t(G),2);{var We=a=>{var o=oa();u(a,o)},Ae=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(),Le=t(P);r(P);var pe={};y(()=>{v(Le,`${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(Ae,!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 Ne=s(V,2);{var je=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(Ne,a=>{e(b)&&a(je)})}r(de),r(K);var ce=s(K,2),ve=t(ce),X=s(ve,2),qe=t(X);{var ze=a=>{var o=da();u(a,o)},Ie=a=>{var o=He();y(n=>v(o,`Update ${n??""}`),[()=>l(W)]),u(a,o)};U(qe,a=>{e(C)?a(ze):a(Ie,!1)})}r(X),r(ce),r(q),r(A),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",q,ea(Ce)),u(c,A)},$$slots:{default:!0}}),Je()}export{_a as U}; +import"./DsnmJJEf.js";import{i as Oe}from"./C7KraPli.js";import{p as Fe,E as Ke,o as Ge,f as x,d as t,r,s,g as e,m,z as B,t as y,y as ue,u as l,e as v,q as T,k as i,i as be,b as u,D as He,c as Je}from"./cPTQ2Ibn.js";import{p as ge,i as U}from"./DqFqoVWr.js";import{e as Qe,i as Ve}from"./CiWDXYQd.js";import{r as me,b as ye,g as Xe}from"./yWyZZHPR.js";import{a as Ye,b as Ze}from"./B-_QCM7E.js";import{p as ea}from"./D4Caz1gY.js";import{e as xe}from"./BZiHL9L3.js";import{M as aa}from"./ao5EljEX.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()}),Oe(),aa(fe,{$$events:{close:()=>$("close")},children:(c,E)=>{var A=la(),N=t(A),j=t(N),Ee=t(j);r(j);var Y=s(j,2),Se=t(Y,!0);r(Y),r(N);var q=s(N,2),Z=t(q);{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 z=s(Z,2),I=t(z),Ue=t(I);r(I);var ee=s(I,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 L=s(ae,2),te=s(t(L),2),Be=t(te,!0);r(te),r(L);var O=s(L,2),re=s(t(O),2),Te=t(re,!0);r(re),r(O);var F=s(O,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(z);var K=s(z,2),G=t(K),Re=s(t(G),2);{var We=a=>{var o=oa();u(a,o)},Ae=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(),Le=t(P);r(P);var pe={};y(()=>{v(Le,`${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(Ae,!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 Ne=s(V,2);{var je=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(Ne,a=>{e(b)&&a(je)})}r(de),r(K);var ce=s(K,2),ve=t(ce),X=s(ve,2),qe=t(X);{var ze=a=>{var o=da();u(a,o)},Ie=a=>{var o=He();y(n=>v(o,`Update ${n??""}`),[()=>l(W)]),u(a,o)};U(qe,a=>{e(C)?a(ze):a(Ie,!1)})}r(X),r(ce),r(q),r(A),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",q,ea(Ce)),u(c,A)},$$slots:{default:!0}}),Je()}export{_a as U}; diff --git a/webapp/assets/_app/immutable/chunks/DliFOxtc.js b/webapp/assets/_app/immutable/chunks/VkS8dDRx.js similarity index 89% rename from webapp/assets/_app/immutable/chunks/DliFOxtc.js rename to webapp/assets/_app/immutable/chunks/VkS8dDRx.js index 76835d62..6d407805 100644 --- a/webapp/assets/_app/immutable/chunks/DliFOxtc.js +++ b/webapp/assets/_app/immutable/chunks/VkS8dDRx.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as D}from"./C7KraPli.js";import{p as P,f as I,d as s,r as n,s as u,u as l,q as i,t as w,e as S,b as N,c as A}from"./cPTQ2Ibn.js";import{d as f,c as F}from"./DqbUkQgD.js";import{p as d}from"./DqFqoVWr.js";import{D as E,G,A as j}from"./Du50aAe5.js";import{E as q}from"./CPFytHjx.js";import{S as g}from"./BZ2WxPPD.js";var L=I('');function O(y,a){P(a,!1);let e=d(a,"instances",8),h=d(a,"entityType",8),v=d(a,"onDeleteInstance",8);const b=[{key:"name",title:"Name",cellComponent:q,cellProps:{entityType:"instance",nameField:"name"}},{key:"status",title:"Status",cellComponent:g,cellProps:{statusType:"instance",statusField:"status"}},{key:"runner_status",title:"Runner Status",cellComponent:g,cellProps:{statusType:"instance",statusField:"runner_status"}},{key:"created",title:"Created",cellComponent:G,cellProps:{field:"created_at",type:"date"}},{key:"actions",title:"Actions",align:"right",cellComponent:j,cellProps:{actions:[{type:"delete",label:"Delete",title:"Delete instance",ariaLabel:"Delete instance",action:"delete"}]}}],x={entityType:"instance",primaryText:{field:"name",isClickable:!0,href:"/instances/{name}"},secondaryText:{field:"provider_id"},badges:[{type:"status",field:"status"}],actions:[{type:"delete",handler:t=>m(t)}]};function m(t){v()(t)}function C(t){m(t.detail.item)}D();var r=L(),p=s(r),o=s(p),c=s(o),T=s(c);n(c);var _=u(c,2);n(o);var k=u(o,2);E(k,{get columns(){return b},get data(){return e()},loading:!1,error:"",searchTerm:"",showSearch:!1,showPagination:!1,currentPage:1,get perPage(){return i(e()),l(()=>e().length)},totalPages:1,get totalItems(){return i(e()),l(()=>e().length)},itemName:"instances",emptyTitle:"No instances running",get emptyMessage(){return`No instances running for this ${h()??""}.`},emptyIconType:"cog",get mobileCardConfig(){return x},$$events:{delete:C}}),n(p),n(r),w(t=>{S(T,`Instances (${i(e()),l(()=>e().length)??""})`),F(_,"href",t)},[()=>(i(f),l(()=>f("/instances")))]),N(y,r),A()}export{O as I}; +import"./DsnmJJEf.js";import{i as D}from"./C7KraPli.js";import{p as P,f as I,d as s,r as n,s as u,u as l,q as i,t as w,e as S,b as N,c as A}from"./cPTQ2Ibn.js";import{d as f,c as F}from"./yWyZZHPR.js";import{p as d}from"./DqFqoVWr.js";import{D as E,G,A as j}from"./BIepGqC5.js";import{E as q}from"./CVL5tSYq.js";import{S as g}from"./CMG1iQmM.js";var L=I('');function O(y,a){P(a,!1);let e=d(a,"instances",8),h=d(a,"entityType",8),v=d(a,"onDeleteInstance",8);const b=[{key:"name",title:"Name",cellComponent:q,cellProps:{entityType:"instance",nameField:"name"}},{key:"status",title:"Status",cellComponent:g,cellProps:{statusType:"instance",statusField:"status"}},{key:"runner_status",title:"Runner Status",cellComponent:g,cellProps:{statusType:"instance",statusField:"runner_status"}},{key:"created",title:"Created",cellComponent:G,cellProps:{field:"created_at",type:"date"}},{key:"actions",title:"Actions",align:"right",cellComponent:j,cellProps:{actions:[{type:"delete",label:"Delete",title:"Delete instance",ariaLabel:"Delete instance",action:"delete"}]}}],x={entityType:"instance",primaryText:{field:"name",isClickable:!0,href:"/instances/{name}"},secondaryText:{field:"provider_id"},badges:[{type:"status",field:"status"}],actions:[{type:"delete",handler:t=>m(t)}]};function m(t){v()(t)}function C(t){m(t.detail.item)}D();var r=L(),p=s(r),o=s(p),c=s(o),T=s(c);n(c);var _=u(c,2);n(o);var k=u(o,2);E(k,{get columns(){return b},get data(){return e()},loading:!1,error:"",searchTerm:"",showSearch:!1,showPagination:!1,currentPage:1,get perPage(){return i(e()),l(()=>e().length)},totalPages:1,get totalItems(){return i(e()),l(()=>e().length)},itemName:"instances",emptyTitle:"No instances running",get emptyMessage(){return`No instances running for this ${h()??""}.`},emptyIconType:"cog",get mobileCardConfig(){return x},$$events:{delete:C}}),n(p),n(r),w(t=>{S(T,`Instances (${i(e()),l(()=>e().length)??""})`),F(_,"href",t)},[()=>(i(f),l(()=>f("/instances")))]),N(y,r),A()}export{O as I}; diff --git a/webapp/assets/_app/immutable/chunks/2Xl6sR6s.js b/webapp/assets/_app/immutable/chunks/YJXtpdqO.js similarity index 98% rename from webapp/assets/_app/immutable/chunks/2Xl6sR6s.js rename to webapp/assets/_app/immutable/chunks/YJXtpdqO.js index 044d3bcb..3749cf8c 100644 --- a/webapp/assets/_app/immutable/chunks/2Xl6sR6s.js +++ b/webapp/assets/_app/immutable/chunks/YJXtpdqO.js @@ -1,2 +1,2 @@ -import"./DsnmJJEf.js";import{i as Hr}from"./C7KraPli.js";import{p as Kr,E as Wr,m as u,o as Qr,k as n,l as pr,g as e,h as Vr,f as w,d,r as t,s as o,t as v,y as Pe,u as b,z as br,q as j,e as h,i as G,b as c,B as Xr,a as gr,D as cr,c as Yr}from"./cPTQ2Ibn.js";import{p as Zr,i as I,s as et,a as rt}from"./DqFqoVWr.js";import{e as fr,i as vr}from"./CiWDXYQd.js";import{r as k,s as mr,b as Je,c as yr,g as tt,d as xr}from"./DqbUkQgD.js";import{b as S,a as at}from"./B-_QCM7E.js";import{p as dt}from"./D4Caz1gY.js";import{M as ot}from"./Bo3f8OIz.js";import{J as it}from"./D6f8Dk7c.js";import{e as _r}from"./BZiHL9L3.js";import{e as nt}from"./JUkrBp3F.js";var st=w('

'),lt=w('

'),ut=w('
Loading templates...
'),pt=w(""),bt=w('

',1),gt=w('

Create a template first or proceed without a template to use default behavior.

'),ct=w(' '),ft=w('
'),vt=w('
Updating...
'),mt=w('

Pool Information (Read-only)

Provider:
Entity:

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Tags
Extra Specs (JSON)
');function Pt(hr,Me){Kr(Me,!1);const[kr,wr]=et(),U=()=>rt(nt,"$eagerCache",kr);let a=Zr(Me,"pool",8);const Z=Wr();let z=u(!1),B=u(""),T=u(""),m=u([]),ee=u(!1),L=u(a().image||""),F=u(a().flavor||""),O=u(a().max_runners),P=u(a().min_idle_runners),q=u(a().runner_bootstrap_timeout),H=u(a().priority),K=u(a().runner_prefix||""),y=u(a().os_type||"linux"),D=u(a().os_arch||"amd64"),W=u(a()["github-runner-group"]||""),Q=u(a().enabled),x=u((a().tags||[]).map(i=>i.name||"").filter(Boolean)),C=u(""),J=u("{}"),$=u(a().template_id);function Tr(i){if(i.repo_id){const s=U().repositories.find(p=>p.id===i.repo_id);return s?`${s.owner}/${s.name}`:"Unknown Entity"}if(i.org_id){const s=U().organizations.find(p=>p.id===i.org_id);return s&&s.name?s.name:"Unknown Entity"}if(i.enterprise_id){const s=U().enterprises.find(p=>p.id===i.enterprise_id);return s&&s.name?s.name:"Unknown Entity"}return"Unknown Entity"}function $r(i){return i.repo_id?"Repository":i.org_id?"Organization":i.enterprise_id?"Enterprise":"Unknown"}function re(){if(a().endpoint?.endpoint_type)return a().endpoint.endpoint_type;if(a().repo_id){const i=U().repositories.find(s=>s.id===a().repo_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}if(a().org_id){const i=U().organizations.find(s=>s.id===a().org_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}if(a().enterprise_id){const i=U().enterprises.find(s=>s.id===a().enterprise_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}return null}async function Ne(){try{n(ee,!0);const i=re();if(!i){n(m,[]);return}if(n(m,await tt.listTemplates(e(y),void 0,i)),!e($)||!e(m).find(s=>s.id===e($))){const s=e(m).find(p=>p.owner_id==="system");s?n($,s.id):e(m).length>0&&n($,e(m)[0].id)}}catch(i){n(B,_r(i))}finally{n(ee,!1)}}Qr(()=>{if(a().extra_specs)try{if(typeof a().extra_specs=="object")n(J,JSON.stringify(a().extra_specs,null,2));else{const i=JSON.parse(a().extra_specs);n(J,JSON.stringify(i,null,2))}}catch{n(J,a().extra_specs||"{}")}Ne()});function Ae(){e(C).trim()&&!e(x).includes(e(C).trim())&&(n(x,[...e(x),e(C).trim()]),n(C,""))}function Er(i){n(x,e(x).filter((s,p)=>p!==i))}function Rr(i){i.key==="Enter"&&(i.preventDefault(),Ae())}async function Sr(){try{if(n(z,!0),n(B,""),e(T))throw new Error(e(T));let i={};if(e(J).trim())try{i=JSON.parse(e(J))}catch{throw new Error("Invalid JSON in extra specs")}const s={image:e(L)!==a().image?e(L):void 0,flavor:e(F)!==a().flavor?e(F):void 0,max_runners:e(O)!==a().max_runners?e(O):void 0,min_idle_runners:e(P)!==a().min_idle_runners?e(P):void 0,runner_bootstrap_timeout:e(q)!==a().runner_bootstrap_timeout?e(q):void 0,priority:e(H)!==a().priority?e(H):void 0,runner_prefix:e(K)!==a().runner_prefix?e(K):void 0,os_type:e(y)!==a().os_type?e(y):void 0,os_arch:e(D)!==a().os_arch?e(D):void 0,"github-runner-group":e(W)!==a()["github-runner-group"]&&e(W)||void 0,enabled:e(Q)!==a().enabled?e(Q):void 0,tags:JSON.stringify(e(x))!==JSON.stringify((a().tags||[]).map(p=>p.name||"").filter(Boolean))?e(x):void 0,extra_specs:e(J).trim()!==JSON.stringify(a().extra_specs||{},null,2).trim()?i:void 0,template_id:e($)!==a().template_id?e($):void 0};Object.keys(s).forEach(p=>{s[p]===void 0&&delete s[p]}),Z("submit",s)}catch(i){n(B,_r(i))}finally{n(z,!1)}}pr(()=>e(y),()=>{e(y)&&Ne()}),pr(()=>(e(P),e(O)),()=>{e(P)!==null&&e(P)!==void 0&&e(O)!==null&&e(O)!==void 0&&e(P)>e(O)?n(T,"Min idle runners cannot be greater than max runners"):n(T,"")}),Vr(),Hr(),ot(hr,{$$events:{close:()=>Z("close")},children:(i,s)=>{var p=mt(),te=d(p),Ie=d(te),Or=d(Ie);t(Ie),t(te);var ae=o(te,2),Ue=d(ae);{var Pr=r=>{var l=st(),E=d(l),M=d(E,!0);t(E),t(l),v(()=>h(M,e(B))),c(r,l)};I(Ue,r=>{e(B)&&r(Pr)})}var Ce=o(Ue,2);{var Jr=r=>{var l=lt(),E=d(l),M=d(E,!0);t(E),t(l),v(()=>h(M,e(T))),c(r,l)};I(Ce,r=>{e(T)&&r(Jr)})}var de=o(Ce,2),Be=o(d(de),2),oe=d(Be),De=o(d(oe),2),Mr=d(De,!0);t(De),t(oe);var je=o(oe,2),Ge=o(d(je),2),Nr=d(Ge);t(Ge),t(je),t(Be),t(de);var ie=o(de,2),ze=o(d(ie),2),ne=d(ze),Le=o(d(ne),2);k(Le),t(ne);var se=o(ne,2),Fe=o(d(se),2);k(Fe),t(se);var le=o(se,2),ue=o(d(le),2);v(()=>{e(y),Pe(()=>{})});var pe=d(ue);pe.value=pe.__value="linux";var qe=o(pe);qe.value=qe.__value="windows",t(ue),t(le);var be=o(le,2),ge=o(d(be),2);v(()=>{e(D),Pe(()=>{})});var ce=d(ge);ce.value=ce.__value="amd64";var He=o(ce);He.value=He.__value="arm64",t(ge),t(be);var Ke=o(be,2),Ar=o(d(Ke),2);{var Ir=r=>{var l=ut();c(r,l)},Ur=r=>{var l=Xr(),E=gr(l);{var M=_=>{var R=bt(),f=gr(R);v(()=>{e($),Pe(()=>{e(m)})}),fr(f,5,()=>e(m),vr,(N,g)=>{var A=pt(),sr=d(A),Fr=o(sr);{var qr=Oe=>{var ur=cr();v(()=>h(ur,`- ${e(g),b(()=>e(g).description)??""}`)),c(Oe,ur)};I(Fr,Oe=>{e(g),b(()=>e(g).description)&&Oe(qr)})}t(A);var lr={};v(()=>{h(sr,`${e(g),b(()=>e(g).name)??""} ${e(g),b(()=>e(g).owner_id==="system"?"(System)":"")??""} `),lr!==(lr=(e(g),b(()=>e(g).id)))&&(A.value=(A.__value=(e(g),b(()=>e(g).id)))??"")}),c(N,A)}),t(f);var X=o(f,2),Y=d(X);t(X),v(N=>h(Y,`Templates define how the runner software is installed and configured. +import"./DsnmJJEf.js";import{i as Hr}from"./C7KraPli.js";import{p as Kr,E as Wr,m as u,o as Qr,k as n,l as pr,g as e,h as Vr,f as w,d,r as t,s as o,t as v,y as Pe,u as b,z as br,q as j,e as h,i as G,b as c,B as Xr,a as gr,D as cr,c as Yr}from"./cPTQ2Ibn.js";import{p as Zr,i as I,s as et,a as rt}from"./DqFqoVWr.js";import{e as fr,i as vr}from"./CiWDXYQd.js";import{r as k,s as mr,b as Je,c as yr,g as tt,d as xr}from"./yWyZZHPR.js";import{b as S,a as at}from"./B-_QCM7E.js";import{p as dt}from"./D4Caz1gY.js";import{M as ot}from"./ao5EljEX.js";import{J as it}from"./BaxpdL59.js";import{e as _r}from"./BZiHL9L3.js";import{e as nt}from"./C01HillC.js";var st=w('

'),lt=w('

'),ut=w('
Loading templates...
'),pt=w(""),bt=w('

',1),gt=w('

Create a template first or proceed without a template to use default behavior.

'),ct=w(' '),ft=w('
'),vt=w('
Updating...
'),mt=w('

Pool Information (Read-only)

Provider:
Entity:

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Tags
Extra Specs (JSON)
');function Pt(hr,Me){Kr(Me,!1);const[kr,wr]=et(),U=()=>rt(nt,"$eagerCache",kr);let a=Zr(Me,"pool",8);const Z=Wr();let z=u(!1),B=u(""),T=u(""),m=u([]),ee=u(!1),L=u(a().image||""),F=u(a().flavor||""),O=u(a().max_runners),P=u(a().min_idle_runners),q=u(a().runner_bootstrap_timeout),H=u(a().priority),K=u(a().runner_prefix||""),y=u(a().os_type||"linux"),D=u(a().os_arch||"amd64"),W=u(a()["github-runner-group"]||""),Q=u(a().enabled),x=u((a().tags||[]).map(i=>i.name||"").filter(Boolean)),C=u(""),J=u("{}"),$=u(a().template_id);function Tr(i){if(i.repo_id){const s=U().repositories.find(p=>p.id===i.repo_id);return s?`${s.owner}/${s.name}`:"Unknown Entity"}if(i.org_id){const s=U().organizations.find(p=>p.id===i.org_id);return s&&s.name?s.name:"Unknown Entity"}if(i.enterprise_id){const s=U().enterprises.find(p=>p.id===i.enterprise_id);return s&&s.name?s.name:"Unknown Entity"}return"Unknown Entity"}function $r(i){return i.repo_id?"Repository":i.org_id?"Organization":i.enterprise_id?"Enterprise":"Unknown"}function re(){if(a().endpoint?.endpoint_type)return a().endpoint.endpoint_type;if(a().repo_id){const i=U().repositories.find(s=>s.id===a().repo_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}if(a().org_id){const i=U().organizations.find(s=>s.id===a().org_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}if(a().enterprise_id){const i=U().enterprises.find(s=>s.id===a().enterprise_id);if(i?.endpoint?.endpoint_type)return i.endpoint.endpoint_type}return null}async function Ne(){try{n(ee,!0);const i=re();if(!i){n(m,[]);return}if(n(m,await tt.listTemplates(e(y),void 0,i)),!e($)||!e(m).find(s=>s.id===e($))){const s=e(m).find(p=>p.owner_id==="system");s?n($,s.id):e(m).length>0&&n($,e(m)[0].id)}}catch(i){n(B,_r(i))}finally{n(ee,!1)}}Qr(()=>{if(a().extra_specs)try{if(typeof a().extra_specs=="object")n(J,JSON.stringify(a().extra_specs,null,2));else{const i=JSON.parse(a().extra_specs);n(J,JSON.stringify(i,null,2))}}catch{n(J,a().extra_specs||"{}")}Ne()});function Ae(){e(C).trim()&&!e(x).includes(e(C).trim())&&(n(x,[...e(x),e(C).trim()]),n(C,""))}function Er(i){n(x,e(x).filter((s,p)=>p!==i))}function Rr(i){i.key==="Enter"&&(i.preventDefault(),Ae())}async function Sr(){try{if(n(z,!0),n(B,""),e(T))throw new Error(e(T));let i={};if(e(J).trim())try{i=JSON.parse(e(J))}catch{throw new Error("Invalid JSON in extra specs")}const s={image:e(L)!==a().image?e(L):void 0,flavor:e(F)!==a().flavor?e(F):void 0,max_runners:e(O)!==a().max_runners?e(O):void 0,min_idle_runners:e(P)!==a().min_idle_runners?e(P):void 0,runner_bootstrap_timeout:e(q)!==a().runner_bootstrap_timeout?e(q):void 0,priority:e(H)!==a().priority?e(H):void 0,runner_prefix:e(K)!==a().runner_prefix?e(K):void 0,os_type:e(y)!==a().os_type?e(y):void 0,os_arch:e(D)!==a().os_arch?e(D):void 0,"github-runner-group":e(W)!==a()["github-runner-group"]&&e(W)||void 0,enabled:e(Q)!==a().enabled?e(Q):void 0,tags:JSON.stringify(e(x))!==JSON.stringify((a().tags||[]).map(p=>p.name||"").filter(Boolean))?e(x):void 0,extra_specs:e(J).trim()!==JSON.stringify(a().extra_specs||{},null,2).trim()?i:void 0,template_id:e($)!==a().template_id?e($):void 0};Object.keys(s).forEach(p=>{s[p]===void 0&&delete s[p]}),Z("submit",s)}catch(i){n(B,_r(i))}finally{n(z,!1)}}pr(()=>e(y),()=>{e(y)&&Ne()}),pr(()=>(e(P),e(O)),()=>{e(P)!==null&&e(P)!==void 0&&e(O)!==null&&e(O)!==void 0&&e(P)>e(O)?n(T,"Min idle runners cannot be greater than max runners"):n(T,"")}),Vr(),Hr(),ot(hr,{$$events:{close:()=>Z("close")},children:(i,s)=>{var p=mt(),te=d(p),Ie=d(te),Or=d(Ie);t(Ie),t(te);var ae=o(te,2),Ue=d(ae);{var Pr=r=>{var l=st(),E=d(l),M=d(E,!0);t(E),t(l),v(()=>h(M,e(B))),c(r,l)};I(Ue,r=>{e(B)&&r(Pr)})}var Ce=o(Ue,2);{var Jr=r=>{var l=lt(),E=d(l),M=d(E,!0);t(E),t(l),v(()=>h(M,e(T))),c(r,l)};I(Ce,r=>{e(T)&&r(Jr)})}var de=o(Ce,2),Be=o(d(de),2),oe=d(Be),De=o(d(oe),2),Mr=d(De,!0);t(De),t(oe);var je=o(oe,2),Ge=o(d(je),2),Nr=d(Ge);t(Ge),t(je),t(Be),t(de);var ie=o(de,2),ze=o(d(ie),2),ne=d(ze),Le=o(d(ne),2);k(Le),t(ne);var se=o(ne,2),Fe=o(d(se),2);k(Fe),t(se);var le=o(se,2),ue=o(d(le),2);v(()=>{e(y),Pe(()=>{})});var pe=d(ue);pe.value=pe.__value="linux";var qe=o(pe);qe.value=qe.__value="windows",t(ue),t(le);var be=o(le,2),ge=o(d(be),2);v(()=>{e(D),Pe(()=>{})});var ce=d(ge);ce.value=ce.__value="amd64";var He=o(ce);He.value=He.__value="arm64",t(ge),t(be);var Ke=o(be,2),Ar=o(d(Ke),2);{var Ir=r=>{var l=ut();c(r,l)},Ur=r=>{var l=Xr(),E=gr(l);{var M=_=>{var R=bt(),f=gr(R);v(()=>{e($),Pe(()=>{e(m)})}),fr(f,5,()=>e(m),vr,(N,g)=>{var A=pt(),sr=d(A),Fr=o(sr);{var qr=Oe=>{var ur=cr();v(()=>h(ur,`- ${e(g),b(()=>e(g).description)??""}`)),c(Oe,ur)};I(Fr,Oe=>{e(g),b(()=>e(g).description)&&Oe(qr)})}t(A);var lr={};v(()=>{h(sr,`${e(g),b(()=>e(g).name)??""} ${e(g),b(()=>e(g).owner_id==="system"?"(System)":"")??""} `),lr!==(lr=(e(g),b(()=>e(g).id)))&&(A.value=(A.__value=(e(g),b(()=>e(g).id)))??"")}),c(N,A)}),t(f);var X=o(f,2),Y=d(X);t(X),v(N=>h(Y,`Templates define how the runner software is installed and configured. Showing templates for ${N??""} ${e(y)??""}.`),[()=>b(re)]),Je(f,()=>e($),N=>n($,N)),c(_,R)},Se=_=>{var R=gt(),f=d(R),X=d(f);t(f);var Y=o(f,2),N=d(Y);br(),t(Y),t(R),v((g,A)=>{h(X,`No templates found for ${g??""} ${e(y)??""}.`),yr(N,"href",A)},[()=>b(re),()=>(j(xr),b(()=>xr("/templates")))]),c(_,R)};I(E,_=>{e(m),b(()=>e(m).length>0)?_(M):_(Se,!1)},!0)}c(r,l)};I(Ar,r=>{e(ee)?r(Ir):r(Ur,!1)})}t(Ke),t(ze),t(ie);var fe=o(ie,2),We=o(d(fe),2),ve=d(We),me=o(d(ve),2);k(me),t(ve);var ye=o(ve,2),xe=o(d(ye),2);k(xe),t(ye);var Qe=o(ye,2),Ve=o(d(Qe),2);k(Ve),t(Qe),t(We),t(fe);var _e=o(fe,2),he=o(d(_e),2),ke=d(he),Xe=o(d(ke),2);k(Xe),t(ke);var we=o(ke,2),Ye=o(d(we),2);k(Ye),t(we);var Ze=o(we,2),er=o(d(Ze),2);k(er),t(Ze),t(he);var Te=o(he,2),rr=d(Te),tr=o(d(rr),2),$e=d(tr),V=d($e);k(V);var Cr=o(V,2);t($e);var Br=o($e,2);{var Dr=r=>{var l=ft();fr(l,5,()=>e(x),vr,(E,M,Se)=>{var _=ct(),R=d(_),f=o(R);t(_),v(()=>{h(R,`${e(M)??""} `),yr(f,"aria-label",`Remove tag ${e(M)??""}`)}),G("click",f,()=>Er(Se)),c(E,_)}),t(l),c(r,l)};I(Br,r=>{e(x),b(()=>e(x).length>0)&&r(Dr)})}t(tr),t(rr),t(Te);var Ee=o(Te,2),ar=d(Ee),jr=o(d(ar),2);it(jr,{rows:4,placeholder:"{}",get value(){return e(J)},set value(r){n(J,r)},$$legacy:!0}),t(ar),t(Ee);var dr=o(Ee,2),or=d(dr);k(or),br(2),t(dr),t(_e);var ir=o(_e,2),nr=d(ir),Re=o(nr,2),Gr=d(Re);{var zr=r=>{var l=vt();c(r,l)},Lr=r=>{var l=cr("Update Pool");c(r,l)};I(Gr,r=>{e(z)?r(zr):r(Lr,!1)})}t(Re),t(ir),t(ae),t(p),v((r,l)=>{h(Or,`Update Pool ${j(a()),b(()=>a().id)??""}`),h(Mr,(j(a()),b(()=>a().provider_name))),h(Nr,`${r??""}: ${l??""}`),mr(me,1,`w-full px-3 py-2 border ${e(T)?"border-red-300 dark:border-red-500":"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`),mr(xe,1,`w-full px-3 py-2 border ${e(T)?"border-red-300 dark:border-red-500":"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`),Re.disabled=e(z)||e(T)!==""},[()=>(j(a()),b(()=>$r(a()))),()=>(j(a()),b(()=>Tr(a())))]),S(Le,()=>e(L),r=>n(L,r)),S(Fe,()=>e(F),r=>n(F,r)),Je(ue,()=>e(y),r=>n(y,r)),Je(ge,()=>e(D),r=>n(D,r)),S(me,()=>e(P),r=>n(P,r)),S(xe,()=>e(O),r=>n(O,r)),S(Ve,()=>e(q),r=>n(q,r)),S(Xe,()=>e(K),r=>n(K,r)),S(Ye,()=>e(H),r=>n(H,r)),S(er,()=>e(W),r=>n(W,r)),S(V,()=>e(C),r=>n(C,r)),G("keydown",V,Rr),G("click",Cr,Ae),at(or,()=>e(Q),r=>n(Q,r)),G("click",nr,()=>Z("close")),G("submit",ae,dt(Sr)),c(i,p)},$$slots:{default:!0}}),Yr(),wr()}export{Pt as U}; diff --git a/webapp/assets/_app/immutable/chunks/Bo3f8OIz.js b/webapp/assets/_app/immutable/chunks/ao5EljEX.js similarity index 91% rename from webapp/assets/_app/immutable/chunks/Bo3f8OIz.js rename to webapp/assets/_app/immutable/chunks/ao5EljEX.js index b0450836..0c6633e2 100644 --- a/webapp/assets/_app/immutable/chunks/Bo3f8OIz.js +++ b/webapp/assets/_app/immutable/chunks/ao5EljEX.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as u}from"./C7KraPli.js";import{p as v,E as m,f as h,d as r,r as d,i,b as k,c as g}from"./cPTQ2Ibn.js";import{i as b}from"./DqbUkQgD.js";var w=h('');function M(s,t){v(t,!1);const l=m();function n(){l("close")}function c(o){o.stopPropagation()}function f(o){o.key==="Escape"&&l("close")}u();var a=w(),e=r(a),p=r(e);b(p,t,"default",{}),d(e),d(a),i("click",e,c),i("click",a,n),i("keydown",a,f),k(s,a),g()}export{M}; +import"./DsnmJJEf.js";import{i as u}from"./C7KraPli.js";import{p as v,E as m,f as h,d as r,r as d,i,b as k,c as g}from"./cPTQ2Ibn.js";import{i as b}from"./yWyZZHPR.js";var w=h('');function M(s,t){v(t,!1);const l=m();function n(){l("close")}function c(o){o.stopPropagation()}function f(o){o.key==="Escape"&&l("close")}u();var a=w(),e=r(a),p=r(e);b(p,t,"default",{}),d(e),d(a),i("click",e,c),i("click",a,n),i("keydown",a,f),k(s,a),g()}export{M}; diff --git a/webapp/assets/_app/immutable/chunks/C7KJ549w.js b/webapp/assets/_app/immutable/chunks/kPsHrhth.js similarity index 98% rename from webapp/assets/_app/immutable/chunks/C7KJ549w.js rename to webapp/assets/_app/immutable/chunks/kPsHrhth.js index 09ab2c03..f3a6b2a5 100644 --- a/webapp/assets/_app/immutable/chunks/C7KJ549w.js +++ b/webapp/assets/_app/immutable/chunks/kPsHrhth.js @@ -1 +1 @@ -import"./DsnmJJEf.js";import{i as ae}from"./C7KraPli.js";import{p as se,E as re,l as M,q as ie,k as r,g as t,m as k,h as le,f as p,d as v,s as $,r as f,b as l,c as oe,B as T,a as E,z as q,D as V,t as F,e as N,u as ne}from"./cPTQ2Ibn.js";import{p as R,i as m}from"./DqFqoVWr.js";import{g as h,B as G}from"./DqbUkQgD.js";import{t as y}from"./Bgbd8SZ5.js";import{e as de}from"./BZiHL9L3.js";var ce=p('
Checking...
'),ve=p('
'),fe=p('
Webhook installed
',1),he=p('
No webhook installed
'),ue=p('

Webhook Status

');function _e(H,g){se(g,!1);const x=k();let u=R(g,"entityType",8),s=R(g,"entityId",8),A=R(g,"entityName",8),i=k(null),o=k(!1),b=k(!0);const O=re();async function _(){if(s())try{r(b,!0),u()==="repository"?r(i,await h.getRepositoryWebhookInfo(s())):r(i,await h.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),u()==="repository"?await h.installRepositoryWebhook(s()):await h.installOrganizationWebhook(s()),y.success("Webhook Installed",`Webhook for ${u()} ${A()} 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),u()==="repository"?await h.uninstallRepositoryWebhook(s()):await h.uninstallOrganizationWebhook(s()),y.success("Webhook Uninstalled",`Webhook for ${u()} ${A()} has been uninstalled successfully.`),await _(),O("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=ue(),P=v(w),j=v(P),W=v(j),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=he();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)=>{q();var c=V();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)=>{q();var c=V();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(j),f(P),f(w),l(H,w),oe()}export{_e as W}; +import"./DsnmJJEf.js";import{i as ae}from"./C7KraPli.js";import{p as se,E as re,l as M,q as ie,k as r,g as t,m as k,h as le,f as p,d as v,s as $,r as f,b as l,c as oe,B as T,a as E,z as q,D as V,t as F,e as N,u as ne}from"./cPTQ2Ibn.js";import{p as R,i as m}from"./DqFqoVWr.js";import{g as h,B as G}from"./yWyZZHPR.js";import{t as y}from"./Bgbd8SZ5.js";import{e as de}from"./BZiHL9L3.js";var ce=p('
Checking...
'),ve=p('
'),fe=p('
Webhook installed
',1),he=p('
No webhook installed
'),ue=p('

Webhook Status

');function _e(H,g){se(g,!1);const x=k();let u=R(g,"entityType",8),s=R(g,"entityId",8),A=R(g,"entityName",8),i=k(null),o=k(!1),b=k(!0);const O=re();async function _(){if(s())try{r(b,!0),u()==="repository"?r(i,await h.getRepositoryWebhookInfo(s())):r(i,await h.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),u()==="repository"?await h.installRepositoryWebhook(s()):await h.installOrganizationWebhook(s()),y.success("Webhook Installed",`Webhook for ${u()} ${A()} 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),u()==="repository"?await h.uninstallRepositoryWebhook(s()):await h.uninstallOrganizationWebhook(s()),y.success("Webhook Uninstalled",`Webhook for ${u()} ${A()} has been uninstalled successfully.`),await _(),O("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=ue(),P=v(w),j=v(P),W=v(j),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=he();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)=>{q();var c=V();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)=>{q();var c=V();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(j),f(P),f(w),l(H,w),oe()}export{_e as W}; diff --git a/webapp/assets/_app/immutable/chunks/DqbUkQgD.js b/webapp/assets/_app/immutable/chunks/yWyZZHPR.js similarity index 99% rename from webapp/assets/_app/immutable/chunks/DqbUkQgD.js rename to webapp/assets/_app/immutable/chunks/yWyZZHPR.js index 8ab1387c..fbb3607e 100644 --- a/webapp/assets/_app/immutable/chunks/DqbUkQgD.js +++ b/webapp/assets/_app/immutable/chunks/yWyZZHPR.js @@ -1,4 +1,4 @@ -import{b as zr,r as Gr}from"./D7e9zx6w.js";import"./DsnmJJEf.js";import{i as _r}from"./C7KraPli.js";import{t as ke,H as ee,I as ot,ac as qr,aW as Hr,P as At,X as $r,a8 as Nr,aX as Wr,aY as Qr,aZ as Rt,R as Mr,a_ as Jr,S as Le,J as nr,a7 as nt,M as lr,ag as ut,a1 as Kr,a$ as Xr,b0 as Yr,aw as Zr,ak as es,b1 as ts,b2 as rs,b3 as ss,b4 as as,g as F,b5 as os,b6 as ns,W as yt,b7 as ls,b8 as is,b9 as cs,ba as ps,bb as ds,at as hs,bc as us,bd as Os,be as Ps,p as ms,E as bs,l as se,h as Vs,f as Ss,i as As,b as ye,c as Rs,q as ce,m as ae,k as oe,d as Xe,s as ft,r as Ye,C as Ot,B as ys,a as fs}from"./cPTQ2Ibn.js";import{l as wt,p as ne,i as Ze}from"./DqFqoVWr.js";function It(r,e,t=!1,s=!1,o=!1){var a=r,n="";ke(()=>{var l=qr;if(n===(n=e()??"")){ee&&ot();return}if(l.nodes_start!==null&&(Hr(l.nodes_start,l.nodes_end),l.nodes_start=l.nodes_end=null),n!==""){if(ee){At.data;for(var i=ot(),c=i;i!==null&&(i.nodeType!==$r||i.data!=="");)c=i,i=Nr(i);if(i===null)throw Wr(),Qr;Rt(At,c),a=Mr(i);return}var p=n+"";t?p=`${p}`:s&&(p=`${p}`);var R=Jr(p);if((t||s)&&(R=Le(R)),Rt(Le(R),R.lastChild),t||s)for(;Le(R);)a.before(Le(R));else a.before(R)}})}function ws(r,e,t,s,o){ee&&ot();var a=e.$$slots?.[t],n=!1;a===!0&&(a=e[t==="default"?"children":t],n=!0),a===void 0||a(r,n?()=>s:s)}function Is(r,e){var t=void 0,s;nr(()=>{t!==(t=e())&&(s&&(nt(s),s=null),t&&(s=lr(()=>{ut(()=>t(r))})))})}function ir(r){var e,t,s="";if(typeof r=="string"||typeof r=="number")s+=r;else if(typeof r=="object")if(Array.isArray(r)){var o=r.length;for(e=0;e{var l=qr;if(n===(n=e()??"")){ee&&ot();return}if(l.nodes_start!==null&&(Hr(l.nodes_start,l.nodes_end),l.nodes_start=l.nodes_end=null),n!==""){if(ee){At.data;for(var i=ot(),c=i;i!==null&&(i.nodeType!==$r||i.data!=="");)c=i,i=Nr(i);if(i===null)throw Wr(),Qr;Rt(At,c),a=Mr(i);return}var p=n+"";t?p=`${p}`:s&&(p=`${p}`);var R=Jr(p);if((t||s)&&(R=Le(R)),Rt(Le(R),R.lastChild),t||s)for(;Le(R);)a.before(Le(R));else a.before(R)}})}function ws(r,e,t,s,o){ee&&ot();var a=e.$$slots?.[t],n=!1;a===!0&&(a=e[t==="default"?"children":t],n=!0),a===void 0||a(r,n?()=>s:s)}function Is(r,e){var t=void 0,s;nr(()=>{t!==(t=e())&&(s&&(nt(s),s=null),t&&(s=lr(()=>{ut(()=>t(r))})))})}function ir(r){var e,t,s="";if(typeof r=="string"||typeof r=="number")s+=r;else if(typeof r=="object")if(Array.isArray(r)){var o=r.length;for(e=0;e=0;){var l=n+a;(n===0||Et.includes(s[n-1]))&&(l===s.length||Et.includes(s[l]))?s=(n===0?"":s.substring(0,n))+s.substring(l+1):n=l}}return s===""?null:s}function gt(r,e=!1){var t=e?" !important;":";",s="";for(var o in r){var a=r[o];a!=null&&a!==""&&(s+=" "+o+": "+a+t)}return s}function et(r){return r[0]!=="-"||r[1]!=="-"?r.toLowerCase():r}function vs(r,e){if(e){var t="",s,o;if(Array.isArray(e)?(s=e[0],o=e[1]):s=e,r){r=String(r).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,n=0,l=!1,i=[];s&&i.push(...Object.keys(s).map(et)),o&&i.push(...Object.keys(o).map(et));var c=0,p=-1;const f=r.length;for(var R=0;R{qe(r,r.__value)});e.observe(r,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Zr(()=>{e.disconnect()})}function _o(r,e,t=e){var s=!0;es(r,"change",o=>{var a=o?"[selected]":":checked",n;if(r.multiple)n=[].map.call(r.querySelectorAll(a),ge);else{var l=r.querySelector(a)??r.querySelector("option:not([disabled])");n=l&&ge(l)}t(n)}),ut(()=>{var o=e();if(qe(r,o,s),s&&o===void 0){var a=r.querySelector(":checked");a!==null&&(o=ge(a),t(o))}r.__value=o,s=!1}),cr(r)}function ge(r){return"__value"in r?r.__value:r.value}const fe=Symbol("class"),we=Symbol("style"),pr=Symbol("is custom element"),dr=Symbol("is html");function qo(r){if(ee){var e=!1,t=()=>{if(!e){if(e=!0,r.hasAttribute("value")){var s=r.value;He(r,"value",null),r.value=s}if(r.hasAttribute("checked")){var o=r.checked;He(r,"checked",null),r.checked=o}}};r.__on_r=t,us(t),Os()}}function Ho(r,e){var t=Pt(r);t.value===(t.value=e??void 0)||r.value===e&&(e!==0||r.nodeName!=="PROGRESS")||(r.value=e??"")}function Cs(r,e){e?r.hasAttribute("selected")||r.setAttribute("selected",""):r.removeAttribute("selected")}function He(r,e,t,s){var o=Pt(r);ee&&(o[e]=r.getAttribute(e),e==="src"||e==="srcset"||e==="href"&&r.nodeName==="LINK")||o[e]!==(o[e]=t)&&(e==="loading"&&(r[rs]=t),t==null?r.removeAttribute(e):typeof t!="string"&&hr(r).includes(e)?r[e]=t:r.setAttribute(e,t))}function Ts(r,e,t,s,o=!1){var a=Pt(r),n=a[pr],l=!a[dr];let i=ee&&n;i&&yt(!1);var c=e||{},p=r.tagName==="OPTION";for(var R in e)R in t||(t[R]=null);t.class?t.class=gs(t.class):t[fe]&&(t.class=null),t[we]&&(t.style??=null);var I=hr(r);for(const E in t){let g=t[E];if(p&&E==="value"&&g==null){r.value=r.__value="",c[E]=g;continue}if(E==="class"){var B=r.namespaceURI==="http://www.w3.org/1999/xhtml";Fe(r,B,g,s,e?.[fe],t[fe]),c[E]=g,c[fe]=t[fe];continue}if(E==="style"){Us(r,g,e?.[we],t[we]),c[E]=g,c[we]=t[we];continue}var y=c[E];if(!(g===y&&!(g===void 0&&r.hasAttribute(E)))){c[E]=g;var f=E[0]+E[1];if(f!=="$$")if(f==="on"){const T={},D="$$"+E;let C=E.slice(2);var w=Ps(C);if(ls(C)&&(C=C.slice(0,-7),T.capture=!0),!w&&y){if(g!=null)continue;r.removeEventListener(C,c[D],T),c[D]=null}if(g!=null)if(w)r[`__${C}`]=g,cs([C]);else{let ie=function(te){c[E].call(this,te)};c[D]=is(C,r,ie,T)}else w&&(r[`__${C}`]=void 0)}else if(E==="style")He(r,E,g);else if(E==="autofocus")ps(r,!!g);else if(!n&&(E==="__value"||E==="value"&&g!=null))r.value=r.__value=g;else if(E==="selected"&&p)Cs(r,g);else{var U=E;l||(U=ds(U));var j=U==="defaultValue"||U==="defaultChecked";if(g==null&&!n&&!j)if(a[E]=null,U==="value"||U==="checked"){let T=r;const D=e===void 0;if(U==="value"){let C=T.defaultValue;T.removeAttribute(U),T.defaultValue=C,T.value=T.__value=D?C:null}else{let C=T.defaultChecked;T.removeAttribute(U),T.defaultChecked=C,T.checked=D?C:!1}}else r.removeAttribute(E);else j||I.includes(U)&&(n||typeof g!="string")?(r[U]=g,U in a&&(a[U]=hs)):typeof g!="function"&&He(r,U,g)}}}return i&&yt(!0),c}function Bs(r,e,t=[],s=[],o,a=!1){ts(t,s,n=>{var l=void 0,i={},c=r.nodeName==="SELECT",p=!1;if(nr(()=>{var I=e(...n.map(F)),B=Ts(r,l,I,o,a);p&&c&&"value"in I&&qe(r,I.value);for(let f of Object.getOwnPropertySymbols(i))I[f]||nt(i[f]);for(let f of Object.getOwnPropertySymbols(I)){var y=I[f];f.description===os&&(!l||y!==l[f])&&(i[f]&&nt(i[f]),i[f]=lr(()=>Is(r,()=>y))),B[f]=y}l=B}),c){var R=r;ut(()=>{qe(R,l.value,!0),cr(R)})}p=!0})}function Pt(r){return r.__attributes??={[pr]:r.nodeName.includes("-"),[dr]:r.namespaceURI===ss}}var xt=new Map;function hr(r){var e=xt.get(r.nodeName);if(e)return e;xt.set(r.nodeName,e=[]);for(var t,s=r,o=Element.prototype;o!==s;){t=ns(s);for(var a in t)t[a].set&&e.push(a);s=as(s)}return e}function $o(r,e){return zr+Gr(r,e)}function ur(r,e){return function(){return r.apply(e,arguments)}}const{toString:Ds}=Object.prototype,{getPrototypeOf:mt}=Object,{iterator:Ne,toStringTag:Or}=Symbol,We=(r=>e=>{const t=Ds.call(e);return r[t]||(r[t]=t.slice(8,-1).toLowerCase())})(Object.create(null)),J=r=>(r=r.toLowerCase(),e=>We(e)===r),Qe=r=>e=>typeof e===r,{isArray:Se}=Array,Ve=Qe("undefined");function xe(r){return r!==null&&!Ve(r)&&r.constructor!==null&&!Ve(r.constructor)&&$(r.constructor.isBuffer)&&r.constructor.isBuffer(r)}const Pr=J("ArrayBuffer");function Ls(r){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(r):e=r&&r.buffer&&Pr(r.buffer),e}const js=Qe("string"),$=Qe("function"),mr=Qe("number"),ve=r=>r!==null&&typeof r=="object",ks=r=>r===!0||r===!1,ze=r=>{if(We(r)!=="object")return!1;const e=mt(r);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Or in r)&&!(Ne in r)},Fs=r=>{if(!ve(r)||xe(r))return!1;try{return Object.keys(r).length===0&&Object.getPrototypeOf(r)===Object.prototype}catch{return!1}},zs=J("Date"),Gs=J("File"),_s=J("Blob"),qs=J("FileList"),Hs=r=>ve(r)&&$(r.pipe),$s=r=>{let e;return r&&(typeof FormData=="function"&&r instanceof FormData||$(r.append)&&((e=We(r))==="formdata"||e==="object"&&$(r.toString)&&r.toString()==="[object FormData]"))},Ns=J("URLSearchParams"),[Ws,Qs,Ms,Js]=["ReadableStream","Request","Response","Headers"].map(J),Ks=r=>r.trim?r.trim():r.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ue(r,e,{allOwnKeys:t=!1}={}){if(r===null||typeof r>"u")return;let s,o;if(typeof r!="object"&&(r=[r]),Se(r))for(s=0,o=r.length;s0;)if(o=t[s],e===o.toLowerCase())return o;return null}const pe=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Vr=r=>!Ve(r)&&r!==pe;function lt(){const{caseless:r,skipUndefined:e}=Vr(this)&&this||{},t={},s=(o,a)=>{const n=r&&br(t,a)||a;ze(t[n])&&ze(o)?t[n]=lt(t[n],o):ze(o)?t[n]=lt({},o):Se(o)?t[n]=o.slice():(!e||!Ve(o))&&(t[n]=o)};for(let o=0,a=arguments.length;o(Ue(e,(o,a)=>{t&&$(o)?r[a]=ur(o,t):r[a]=o},{allOwnKeys:s}),r),Ys=r=>(r.charCodeAt(0)===65279&&(r=r.slice(1)),r),Zs=(r,e,t,s)=>{r.prototype=Object.create(e.prototype,s),r.prototype.constructor=r,Object.defineProperty(r,"super",{value:e.prototype}),t&&Object.assign(r.prototype,t)},ea=(r,e,t,s)=>{let o,a,n;const l={};if(e=e||{},r==null)return e;do{for(o=Object.getOwnPropertyNames(r),a=o.length;a-- >0;)n=o[a],(!s||s(n,r,e))&&!l[n]&&(e[n]=r[n],l[n]=!0);r=t!==!1&&mt(r)}while(r&&(!t||t(r,e))&&r!==Object.prototype);return e},ta=(r,e,t)=>{r=String(r),(t===void 0||t>r.length)&&(t=r.length),t-=e.length;const s=r.indexOf(e,t);return s!==-1&&s===t},ra=r=>{if(!r)return null;if(Se(r))return r;let e=r.length;if(!mr(e))return null;const t=new Array(e);for(;e-- >0;)t[e]=r[e];return t},sa=(r=>e=>r&&e instanceof r)(typeof Uint8Array<"u"&&mt(Uint8Array)),aa=(r,e)=>{const s=(r&&r[Ne]).call(r);let o;for(;(o=s.next())&&!o.done;){const a=o.value;e.call(r,a[0],a[1])}},oa=(r,e)=>{let t;const s=[];for(;(t=r.exec(e))!==null;)s.push(t);return s},na=J("HTMLFormElement"),la=r=>r.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,s,o){return s.toUpperCase()+o}),vt=(({hasOwnProperty:r})=>(e,t)=>r.call(e,t))(Object.prototype),ia=J("RegExp"),Sr=(r,e)=>{const t=Object.getOwnPropertyDescriptors(r),s={};Ue(t,(o,a)=>{let n;(n=e(o,a,r))!==!1&&(s[a]=n||o)}),Object.defineProperties(r,s)},ca=r=>{Sr(r,(e,t)=>{if($(r)&&["arguments","caller","callee"].indexOf(t)!==-1)return!1;const s=r[t];if($(s)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+t+"'")})}})},pa=(r,e)=>{const t={},s=o=>{o.forEach(a=>{t[a]=!0})};return Se(r)?s(r):s(String(r).split(e)),t},da=()=>{},ha=(r,e)=>r!=null&&Number.isFinite(r=+r)?r:e;function ua(r){return!!(r&&$(r.append)&&r[Or]==="FormData"&&r[Ne])}const Oa=r=>{const e=new Array(10),t=(s,o)=>{if(ve(s)){if(e.indexOf(s)>=0)return;if(xe(s))return s;if(!("toJSON"in s)){e[o]=s;const a=Se(s)?[]:{};return Ue(s,(n,l)=>{const i=t(n,o+1);!Ve(i)&&(a[l]=i)}),e[o]=void 0,a}}return s};return t(r,0)},Pa=J("AsyncFunction"),ma=r=>r&&(ve(r)||$(r))&&$(r.then)&&$(r.catch),Ar=((r,e)=>r?setImmediate:e?((t,s)=>(pe.addEventListener("message",({source:o,data:a})=>{o===pe&&a===t&&s.length&&s.shift()()},!1),o=>{s.push(o),pe.postMessage(t,"*")}))(`axios@${Math.random()}`,[]):t=>setTimeout(t))(typeof setImmediate=="function",$(pe.postMessage)),ba=typeof queueMicrotask<"u"?queueMicrotask.bind(pe):typeof process<"u"&&process.nextTick||Ar,Va=r=>r!=null&&$(r[Ne]),h={isArray:Se,isArrayBuffer:Pr,isBuffer:xe,isFormData:$s,isArrayBufferView:Ls,isString:js,isNumber:mr,isBoolean:ks,isObject:ve,isPlainObject:ze,isEmptyObject:Fs,isReadableStream:Ws,isRequest:Qs,isResponse:Ms,isHeaders:Js,isUndefined:Ve,isDate:zs,isFile:Gs,isBlob:_s,isRegExp:ia,isFunction:$,isStream:Hs,isURLSearchParams:Ns,isTypedArray:sa,isFileList:qs,forEach:Ue,merge:lt,extend:Xs,trim:Ks,stripBOM:Ys,inherits:Zs,toFlatObject:ea,kindOf:We,kindOfTest:J,endsWith:ta,toArray:ra,forEachEntry:aa,matchAll:oa,isHTMLForm:na,hasOwnProperty:vt,hasOwnProp:vt,reduceDescriptors:Sr,freezeMethods:ca,toObjectSet:pa,toCamelCase:la,noop:da,toFiniteNumber:ha,findKey:br,global:pe,isContextDefined:Vr,isSpecCompliantForm:ua,toJSONObject:Oa,isAsyncFn:Pa,isThenable:ma,setImmediate:Ar,asap:ba,isIterable:Va};function v(r,e,t,s,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=r,this.name="AxiosError",e&&(this.code=e),t&&(this.config=t),s&&(this.request=s),o&&(this.response=o,this.status=o.status?o.status:null)}h.inherits(v,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:h.toJSONObject(this.config),code:this.code,status:this.status}}});const Rr=v.prototype,yr={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(r=>{yr[r]={value:r}});Object.defineProperties(v,yr);Object.defineProperty(Rr,"isAxiosError",{value:!0});v.from=(r,e,t,s,o,a)=>{const n=Object.create(Rr);h.toFlatObject(r,n,function(p){return p!==Error.prototype},c=>c!=="isAxiosError");const l=r&&r.message?r.message:"Error",i=e==null&&r?r.code:e;return v.call(n,l,i,t,s,o),r&&n.cause==null&&Object.defineProperty(n,"cause",{value:r,configurable:!0}),n.name=r&&r.name||"Error",a&&Object.assign(n,a),n};const Sa=null;function it(r){return h.isPlainObject(r)||h.isArray(r)}function fr(r){return h.endsWith(r,"[]")?r.slice(0,-2):r}function Ut(r,e,t){return r?r.concat(e).map(function(o,a){return o=fr(o),!t&&a?"["+o+"]":o}).join(t?".":""):e}function Aa(r){return h.isArray(r)&&!r.some(it)}const Ra=h.toFlatObject(h,{},null,function(e){return/^is[A-Z]/.test(e)});function Me(r,e,t){if(!h.isObject(r))throw new TypeError("target must be an object");e=e||new FormData,t=h.toFlatObject(t,{metaTokens:!0,dots:!1,indexes:!1},!1,function(f,w){return!h.isUndefined(w[f])});const s=t.metaTokens,o=t.visitor||p,a=t.dots,n=t.indexes,i=(t.Blob||typeof Blob<"u"&&Blob)&&h.isSpecCompliantForm(e);if(!h.isFunction(o))throw new TypeError("visitor must be a function");function c(y){if(y===null)return"";if(h.isDate(y))return y.toISOString();if(h.isBoolean(y))return y.toString();if(!i&&h.isBlob(y))throw new v("Blob is not supported. Use a Buffer instead.");return h.isArrayBuffer(y)||h.isTypedArray(y)?i&&typeof Blob=="function"?new Blob([y]):Buffer.from(y):y}function p(y,f,w){let U=y;if(y&&!w&&typeof y=="object"){if(h.endsWith(f,"{}"))f=s?f:f.slice(0,-2),y=JSON.stringify(y);else if(h.isArray(y)&&Aa(y)||(h.isFileList(y)||h.endsWith(f,"[]"))&&(U=h.toArray(y)))return f=fr(f),U.forEach(function(E,g){!(h.isUndefined(E)||E===null)&&e.append(n===!0?Ut([f],g,a):n===null?f:f+"[]",c(E))}),!1}return it(y)?!0:(e.append(Ut(w,f,a),c(y)),!1)}const R=[],I=Object.assign(Ra,{defaultVisitor:p,convertValue:c,isVisitable:it});function B(y,f){if(!h.isUndefined(y)){if(R.indexOf(y)!==-1)throw Error("Circular reference detected in "+f.join("."));R.push(y),h.forEach(y,function(U,j){(!(h.isUndefined(U)||U===null)&&o.call(e,U,h.isString(j)?j.trim():j,f,I))===!0&&B(U,f?f.concat(j):[j])}),R.pop()}}if(!h.isObject(r))throw new TypeError("data must be an object");return B(r),e}function Ct(r){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(r).replace(/[!'()~]|%20|%00/g,function(s){return e[s]})}function bt(r,e){this._pairs=[],r&&Me(r,this,e)}const wr=bt.prototype;wr.append=function(e,t){this._pairs.push([e,t])};wr.toString=function(e){const t=e?function(s){return e.call(this,s,Ct)}:Ct;return this._pairs.map(function(o){return t(o[0])+"="+t(o[1])},"").join("&")};function ya(r){return encodeURIComponent(r).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Ir(r,e,t){if(!e)return r;const s=t&&t.encode||ya;h.isFunction(t)&&(t={serialize:t});const o=t&&t.serialize;let a;if(o?a=o(e,t):a=h.isURLSearchParams(e)?e.toString():new bt(e,t).toString(s),a){const n=r.indexOf("#");n!==-1&&(r=r.slice(0,n)),r+=(r.indexOf("?")===-1?"?":"&")+a}return r}class Tt{constructor(){this.handlers=[]}use(e,t,s){return this.handlers.push({fulfilled:e,rejected:t,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){h.forEach(this.handlers,function(s){s!==null&&e(s)})}}const Er={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},fa=typeof URLSearchParams<"u"?URLSearchParams:bt,wa=typeof FormData<"u"?FormData:null,Ia=typeof Blob<"u"?Blob:null,Ea={isBrowser:!0,classes:{URLSearchParams:fa,FormData:wa,Blob:Ia},protocols:["http","https","file","blob","url","data"]},Vt=typeof window<"u"&&typeof document<"u",ct=typeof navigator=="object"&&navigator||void 0,ga=Vt&&(!ct||["ReactNative","NativeScript","NS"].indexOf(ct.product)<0),xa=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",va=Vt&&window.location.href||"http://localhost",Ua=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Vt,hasStandardBrowserEnv:ga,hasStandardBrowserWebWorkerEnv:xa,navigator:ct,origin:va},Symbol.toStringTag,{value:"Module"})),q={...Ua,...Ea};function Ca(r,e){return Me(r,new q.classes.URLSearchParams,{visitor:function(t,s,o,a){return q.isNode&&h.isBuffer(t)?(this.append(s,t.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)},...e})}function Ta(r){return h.matchAll(/\w+|\[(\w*)]/g,r).map(e=>e[0]==="[]"?"":e[1]||e[0])}function Ba(r){const e={},t=Object.keys(r);let s;const o=t.length;let a;for(s=0;s=t.length;return n=!n&&h.isArray(o)?o.length:n,i?(h.hasOwnProp(o,n)?o[n]=[o[n],s]:o[n]=s,!l):((!o[n]||!h.isObject(o[n]))&&(o[n]=[]),e(t,s,o[n],a)&&h.isArray(o[n])&&(o[n]=Ba(o[n])),!l)}if(h.isFormData(r)&&h.isFunction(r.entries)){const t={};return h.forEachEntry(r,(s,o)=>{e(Ta(s),o,t,0)}),t}return null}function Da(r,e,t){if(h.isString(r))try{return(e||JSON.parse)(r),h.trim(r)}catch(s){if(s.name!=="SyntaxError")throw s}return(t||JSON.stringify)(r)}const Ce={transitional:Er,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const s=t.getContentType()||"",o=s.indexOf("application/json")>-1,a=h.isObject(e);if(a&&h.isHTMLForm(e)&&(e=new FormData(e)),h.isFormData(e))return o?JSON.stringify(gr(e)):e;if(h.isArrayBuffer(e)||h.isBuffer(e)||h.isStream(e)||h.isFile(e)||h.isBlob(e)||h.isReadableStream(e))return e;if(h.isArrayBufferView(e))return e.buffer;if(h.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let l;if(a){if(s.indexOf("application/x-www-form-urlencoded")>-1)return Ca(e,this.formSerializer).toString();if((l=h.isFileList(e))||s.indexOf("multipart/form-data")>-1){const i=this.env&&this.env.FormData;return Me(l?{"files[]":e}:e,i&&new i,this.formSerializer)}}return a||o?(t.setContentType("application/json",!1),Da(e)):e}],transformResponse:[function(e){const t=this.transitional||Ce.transitional,s=t&&t.forcedJSONParsing,o=this.responseType==="json";if(h.isResponse(e)||h.isReadableStream(e))return e;if(e&&h.isString(e)&&(s&&!this.responseType||o)){const n=!(t&&t.silentJSONParsing)&&o;try{return JSON.parse(e,this.parseReviver)}catch(l){if(n)throw l.name==="SyntaxError"?v.from(l,v.ERR_BAD_RESPONSE,this,null,this.response):l}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:q.classes.FormData,Blob:q.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};h.forEach(["delete","get","head","post","put","patch"],r=>{Ce.headers[r]={}});const La=h.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ja=r=>{const e={};let t,s,o;return r&&r.split(` `).forEach(function(n){o=n.indexOf(":"),t=n.substring(0,o).trim().toLowerCase(),s=n.substring(o+1).trim(),!(!t||e[t]&&La[t])&&(t==="set-cookie"?e[t]?e[t].push(s):e[t]=[s]:e[t]=e[t]?e[t]+", "+s:s)}),e},Bt=Symbol("internals");function Ie(r){return r&&String(r).trim().toLowerCase()}function Ge(r){return r===!1||r==null?r:h.isArray(r)?r.map(Ge):String(r)}function ka(r){const e=Object.create(null),t=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=t.exec(r);)e[s[1]]=s[2];return e}const Fa=r=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(r.trim());function rt(r,e,t,s,o){if(h.isFunction(s))return s.call(this,e,t);if(o&&(e=t),!!h.isString(e)){if(h.isString(s))return e.indexOf(s)!==-1;if(h.isRegExp(s))return s.test(e)}}function za(r){return r.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,s)=>t.toUpperCase()+s)}function Ga(r,e){const t=h.toCamelCase(" "+e);["get","set","has"].forEach(s=>{Object.defineProperty(r,s+t,{value:function(o,a,n){return this[s].call(this,e,o,a,n)},configurable:!0})})}let N=class{constructor(e){e&&this.set(e)}set(e,t,s){const o=this;function a(l,i,c){const p=Ie(i);if(!p)throw new Error("header name must be a non-empty string");const R=h.findKey(o,p);(!R||o[R]===void 0||c===!0||c===void 0&&o[R]!==!1)&&(o[R||i]=Ge(l))}const n=(l,i)=>h.forEach(l,(c,p)=>a(c,p,i));if(h.isPlainObject(e)||e instanceof this.constructor)n(e,t);else if(h.isString(e)&&(e=e.trim())&&!Fa(e))n(ja(e),t);else if(h.isObject(e)&&h.isIterable(e)){let l={},i,c;for(const p of e){if(!h.isArray(p))throw TypeError("Object iterator must return a key-value pair");l[c=p[0]]=(i=l[c])?h.isArray(i)?[...i,p[1]]:[i,p[1]]:p[1]}n(l,t)}else e!=null&&a(t,e,s);return this}get(e,t){if(e=Ie(e),e){const s=h.findKey(this,e);if(s){const o=this[s];if(!t)return o;if(t===!0)return ka(o);if(h.isFunction(t))return t.call(this,o,s);if(h.isRegExp(t))return t.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ie(e),e){const s=h.findKey(this,e);return!!(s&&this[s]!==void 0&&(!t||rt(this,this[s],s,t)))}return!1}delete(e,t){const s=this;let o=!1;function a(n){if(n=Ie(n),n){const l=h.findKey(s,n);l&&(!t||rt(s,s[l],l,t))&&(delete s[l],o=!0)}}return h.isArray(e)?e.forEach(a):a(e),o}clear(e){const t=Object.keys(this);let s=t.length,o=!1;for(;s--;){const a=t[s];(!e||rt(this,this[a],a,e,!0))&&(delete this[a],o=!0)}return o}normalize(e){const t=this,s={};return h.forEach(this,(o,a)=>{const n=h.findKey(s,a);if(n){t[n]=Ge(o),delete t[a];return}const l=e?za(a):String(a).trim();l!==a&&delete t[a],t[l]=Ge(o),s[l]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return h.forEach(this,(s,o)=>{s!=null&&s!==!1&&(t[o]=e&&h.isArray(s)?s.join(", "):s)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join(` `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const s=new this(e);return t.forEach(o=>s.set(o)),s}static accessor(e){const s=(this[Bt]=this[Bt]={accessors:{}}).accessors,o=this.prototype;function a(n){const l=Ie(n);s[l]||(Ga(o,n),s[l]=!0)}return h.isArray(e)?e.forEach(a):a(e),this}};N.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);h.reduceDescriptors(N.prototype,({value:r},e)=>{let t=e[0].toUpperCase()+e.slice(1);return{get:()=>r,set(s){this[t]=s}}});h.freezeMethods(N);function st(r,e){const t=this||Ce,s=e||t,o=N.from(s.headers);let a=s.data;return h.forEach(r,function(l){a=l.call(t,a,o.normalize(),e?e.status:void 0)}),o.normalize(),a}function xr(r){return!!(r&&r.__CANCEL__)}function Ae(r,e,t){v.call(this,r??"canceled",v.ERR_CANCELED,e,t),this.name="CanceledError"}h.inherits(Ae,v,{__CANCEL__:!0});function vr(r,e,t){const s=t.config.validateStatus;!t.status||!s||s(t.status)?r(t):e(new v("Request failed with status code "+t.status,[v.ERR_BAD_REQUEST,v.ERR_BAD_RESPONSE][Math.floor(t.status/100)-4],t.config,t.request,t))}function _a(r){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(r);return e&&e[1]||""}function qa(r,e){r=r||10;const t=new Array(r),s=new Array(r);let o=0,a=0,n;return e=e!==void 0?e:1e3,function(i){const c=Date.now(),p=s[a];n||(n=c),t[o]=i,s[o]=c;let R=a,I=0;for(;R!==o;)I+=t[R++],R=R%r;if(o=(o+1)%r,o===a&&(a=(a+1)%r),c-n{t=p,o=null,a&&(clearTimeout(a),a=null),r(...c)};return[(...c)=>{const p=Date.now(),R=p-t;R>=s?n(c,p):(o=c,a||(a=setTimeout(()=>{a=null,n(o)},s-R)))},()=>o&&n(o)]}const $e=(r,e,t=3)=>{let s=0;const o=qa(50,250);return Ha(a=>{const n=a.loaded,l=a.lengthComputable?a.total:void 0,i=n-s,c=o(i),p=n<=l;s=n;const R={loaded:n,total:l,progress:l?n/l:void 0,bytes:i,rate:c||void 0,estimated:c&&l&&p?(l-n)/c:void 0,event:a,lengthComputable:l!=null,[e?"download":"upload"]:!0};r(R)},t)},Dt=(r,e)=>{const t=r!=null;return[s=>e[0]({lengthComputable:t,total:r,loaded:s}),e[1]]},Lt=r=>(...e)=>h.asap(()=>r(...e)),$a=q.hasStandardBrowserEnv?((r,e)=>t=>(t=new URL(t,q.origin),r.protocol===t.protocol&&r.host===t.host&&(e||r.port===t.port)))(new URL(q.origin),q.navigator&&/(msie|trident)/i.test(q.navigator.userAgent)):()=>!0,Na=q.hasStandardBrowserEnv?{write(r,e,t,s,o,a){const n=[r+"="+encodeURIComponent(e)];h.isNumber(t)&&n.push("expires="+new Date(t).toGMTString()),h.isString(s)&&n.push("path="+s),h.isString(o)&&n.push("domain="+o),a===!0&&n.push("secure"),document.cookie=n.join("; ")},read(r){const e=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(r){this.write(r,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Wa(r){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(r)}function Qa(r,e){return e?r.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):r}function Ur(r,e,t){let s=!Wa(e);return r&&(s||t==!1)?Qa(r,e):e}const jt=r=>r instanceof N?{...r}:r;function he(r,e){e=e||{};const t={};function s(c,p,R,I){return h.isPlainObject(c)&&h.isPlainObject(p)?h.merge.call({caseless:I},c,p):h.isPlainObject(p)?h.merge({},p):h.isArray(p)?p.slice():p}function o(c,p,R,I){if(h.isUndefined(p)){if(!h.isUndefined(c))return s(void 0,c,R,I)}else return s(c,p,R,I)}function a(c,p){if(!h.isUndefined(p))return s(void 0,p)}function n(c,p){if(h.isUndefined(p)){if(!h.isUndefined(c))return s(void 0,c)}else return s(void 0,p)}function l(c,p,R){if(R in e)return s(c,p);if(R in r)return s(void 0,c)}const i={url:a,method:a,data:a,baseURL:n,transformRequest:n,transformResponse:n,paramsSerializer:n,timeout:n,timeoutMessage:n,withCredentials:n,withXSRFToken:n,adapter:n,responseType:n,xsrfCookieName:n,xsrfHeaderName:n,onUploadProgress:n,onDownloadProgress:n,decompress:n,maxContentLength:n,maxBodyLength:n,beforeRedirect:n,transport:n,httpAgent:n,httpsAgent:n,cancelToken:n,socketPath:n,responseEncoding:n,validateStatus:l,headers:(c,p,R)=>o(jt(c),jt(p),R,!0)};return h.forEach(Object.keys({...r,...e}),function(p){const R=i[p]||o,I=R(r[p],e[p],p);h.isUndefined(I)&&R!==l||(t[p]=I)}),t}const Cr=r=>{const e=he({},r);let{data:t,withXSRFToken:s,xsrfHeaderName:o,xsrfCookieName:a,headers:n,auth:l}=e;if(e.headers=n=N.from(n),e.url=Ir(Ur(e.baseURL,e.url,e.allowAbsoluteUrls),r.params,r.paramsSerializer),l&&n.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),h.isFormData(t)){if(q.hasStandardBrowserEnv||q.hasStandardBrowserWebWorkerEnv)n.setContentType(void 0);else if(h.isFunction(t.getHeaders)){const i=t.getHeaders(),c=["content-type","content-length"];Object.entries(i).forEach(([p,R])=>{c.includes(p.toLowerCase())&&n.set(p,R)})}}if(q.hasStandardBrowserEnv&&(s&&h.isFunction(s)&&(s=s(e)),s||s!==!1&&$a(e.url))){const i=o&&a&&Na.read(a);i&&n.set(o,i)}return e},Ma=typeof XMLHttpRequest<"u",Ja=Ma&&function(r){return new Promise(function(t,s){const o=Cr(r);let a=o.data;const n=N.from(o.headers).normalize();let{responseType:l,onUploadProgress:i,onDownloadProgress:c}=o,p,R,I,B,y;function f(){B&&B(),y&&y(),o.cancelToken&&o.cancelToken.unsubscribe(p),o.signal&&o.signal.removeEventListener("abort",p)}let w=new XMLHttpRequest;w.open(o.method.toUpperCase(),o.url,!0),w.timeout=o.timeout;function U(){if(!w)return;const E=N.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),T={data:!l||l==="text"||l==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:E,config:r,request:w};vr(function(C){t(C),f()},function(C){s(C),f()},T),w=null}"onloadend"in w?w.onloadend=U:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(U)},w.onabort=function(){w&&(s(new v("Request aborted",v.ECONNABORTED,r,w)),w=null)},w.onerror=function(g){const T=g&&g.message?g.message:"Network Error",D=new v(T,v.ERR_NETWORK,r,w);D.event=g||null,s(D),w=null},w.ontimeout=function(){let g=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const T=o.transitional||Er;o.timeoutErrorMessage&&(g=o.timeoutErrorMessage),s(new v(g,T.clarifyTimeoutError?v.ETIMEDOUT:v.ECONNABORTED,r,w)),w=null},a===void 0&&n.setContentType(null),"setRequestHeader"in w&&h.forEach(n.toJSON(),function(g,T){w.setRequestHeader(T,g)}),h.isUndefined(o.withCredentials)||(w.withCredentials=!!o.withCredentials),l&&l!=="json"&&(w.responseType=o.responseType),c&&([I,y]=$e(c,!0),w.addEventListener("progress",I)),i&&w.upload&&([R,B]=$e(i),w.upload.addEventListener("progress",R),w.upload.addEventListener("loadend",B)),(o.cancelToken||o.signal)&&(p=E=>{w&&(s(!E||E.type?new Ae(null,r,w):E),w.abort(),w=null)},o.cancelToken&&o.cancelToken.subscribe(p),o.signal&&(o.signal.aborted?p():o.signal.addEventListener("abort",p)));const j=_a(o.url);if(j&&q.protocols.indexOf(j)===-1){s(new v("Unsupported protocol "+j+":",v.ERR_BAD_REQUEST,r));return}w.send(a||null)})},Ka=(r,e)=>{const{length:t}=r=r?r.filter(Boolean):[];if(e||t){let s=new AbortController,o;const a=function(c){if(!o){o=!0,l();const p=c instanceof Error?c:this.reason;s.abort(p instanceof v?p:new Ae(p instanceof Error?p.message:p))}};let n=e&&setTimeout(()=>{n=null,a(new v(`timeout ${e} of ms exceeded`,v.ETIMEDOUT))},e);const l=()=>{r&&(n&&clearTimeout(n),n=null,r.forEach(c=>{c.unsubscribe?c.unsubscribe(a):c.removeEventListener("abort",a)}),r=null)};r.forEach(c=>c.addEventListener("abort",a));const{signal:i}=s;return i.unsubscribe=()=>h.asap(l),i}},Xa=function*(r,e){let t=r.byteLength;if(t{const o=Ya(r,e);let a=0,n,l=i=>{n||(n=!0,s&&s(i))};return new ReadableStream({async pull(i){try{const{done:c,value:p}=await o.next();if(c){l(),i.close();return}let R=p.byteLength;if(t){let I=a+=R;t(I)}i.enqueue(new Uint8Array(p))}catch(c){throw l(c),c}},cancel(i){return l(i),o.return()}},{highWaterMark:2})},Ft=64*1024,{isFunction:je}=h,eo=(({Request:r,Response:e})=>({Request:r,Response:e}))(h.global),{ReadableStream:zt,TextEncoder:Gt}=h.global,_t=(r,...e)=>{try{return!!r(...e)}catch{return!1}},to=r=>{r=h.merge.call({skipUndefined:!0},eo,r);const{fetch:e,Request:t,Response:s}=r,o=e?je(e):typeof fetch=="function",a=je(t),n=je(s);if(!o)return!1;const l=o&&je(zt),i=o&&(typeof Gt=="function"?(y=>f=>y.encode(f))(new Gt):async y=>new Uint8Array(await new t(y).arrayBuffer())),c=a&&l&&_t(()=>{let y=!1;const f=new t(q.origin,{body:new zt,method:"POST",get duplex(){return y=!0,"half"}}).headers.has("Content-Type");return y&&!f}),p=n&&l&&_t(()=>h.isReadableStream(new s("").body)),R={stream:p&&(y=>y.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(y=>{!R[y]&&(R[y]=(f,w)=>{let U=f&&f[y];if(U)return U.call(f);throw new v(`Response type '${y}' is not supported`,v.ERR_NOT_SUPPORT,w)})});const I=async y=>{if(y==null)return 0;if(h.isBlob(y))return y.size;if(h.isSpecCompliantForm(y))return(await new t(q.origin,{method:"POST",body:y}).arrayBuffer()).byteLength;if(h.isArrayBufferView(y)||h.isArrayBuffer(y))return y.byteLength;if(h.isURLSearchParams(y)&&(y=y+""),h.isString(y))return(await i(y)).byteLength},B=async(y,f)=>{const w=h.toFiniteNumber(y.getContentLength());return w??I(f)};return async y=>{let{url:f,method:w,data:U,signal:j,cancelToken:E,timeout:g,onDownloadProgress:T,onUploadProgress:D,responseType:C,headers:ie,withCredentials:te="same-origin",fetchOptions:Re}=Cr(y),Te=e||fetch;C=C?(C+"").toLowerCase():"text";let ue=Ka([j,E&&E.toAbortSignal()],g),z=null;const k=ue&&ue.unsubscribe&&(()=>{ue.unsubscribe()});let Oe;try{if(D&&c&&w!=="get"&&w!=="head"&&(Oe=await B(ie,U))!==0){let re=new t(f,{method:"POST",body:U,duplex:"half"}),me;if(h.isFormData(U)&&(me=re.headers.get("content-type"))&&ie.setContentType(me),re.body){const[Ke,De]=Dt(Oe,$e(Lt(D)));U=kt(re.body,Ft,Ke,De)}}h.isString(te)||(te=te?"include":"omit");const M=a&&"credentials"in t.prototype,Pe={...Re,signal:ue,method:w.toUpperCase(),headers:ie.normalize().toJSON(),body:U,duplex:"half",credentials:M?te:void 0};z=a&&new t(f,Pe);let W=await(a?Te(z,Re):Te(f,Pe));const Be=p&&(C==="stream"||C==="response");if(p&&(T||Be&&k)){const re={};["status","statusText","headers"].forEach(St=>{re[St]=W[St]});const me=h.toFiniteNumber(W.headers.get("content-length")),[Ke,De]=T&&Dt(me,$e(Lt(T),!0))||[];W=new s(kt(W.body,Ft,Ke,()=>{De&&De(),k&&k()}),re)}C=C||"text";let Fr=await R[h.findKey(R,C)||"text"](W,y);return!Be&&k&&k(),await new Promise((re,me)=>{vr(re,me,{data:Fr,headers:N.from(W.headers),status:W.status,statusText:W.statusText,config:y,request:z})})}catch(M){throw k&&k(),M&&M.name==="TypeError"&&/Load failed|fetch/i.test(M.message)?Object.assign(new v("Network Error",v.ERR_NETWORK,y,z),{cause:M.cause||M}):v.from(M,M&&M.code,y,z)}}},ro=new Map,Tr=r=>{let e=r?r.env:{};const{fetch:t,Request:s,Response:o}=e,a=[s,o,t];let n=a.length,l=n,i,c,p=ro;for(;l--;)i=a[l],c=p.get(i),c===void 0&&p.set(i,c=l?new Map:to(e)),p=c;return c};Tr();const pt={http:Sa,xhr:Ja,fetch:{get:Tr}};h.forEach(pt,(r,e)=>{if(r){try{Object.defineProperty(r,"name",{value:e})}catch{}Object.defineProperty(r,"adapterName",{value:e})}});const qt=r=>`- ${r}`,so=r=>h.isFunction(r)||r===null||r===!1,Br={getAdapter:(r,e)=>{r=h.isArray(r)?r:[r];const{length:t}=r;let s,o;const a={};for(let n=0;n`adapter ${i} `+(c===!1?"is not supported by the environment":"is not available in the build"));let l=t?n.length>1?`since : diff --git a/webapp/assets/_app/immutable/entry/app.B4u5nxVj.js b/webapp/assets/_app/immutable/entry/app.C-ablTrw.js similarity index 68% rename from webapp/assets/_app/immutable/entry/app.B4u5nxVj.js rename to webapp/assets/_app/immutable/entry/app.C-ablTrw.js index 54b40e1c..24f26c52 100644 --- a/webapp/assets/_app/immutable/entry/app.B4u5nxVj.js +++ b/webapp/assets/_app/immutable/entry/app.C-ablTrw.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DYP5Tzsv.js","../chunks/DsnmJJEf.js","../chunks/C7KraPli.js","../chunks/cPTQ2Ibn.js","../chunks/DqFqoVWr.js","../chunks/DqbUkQgD.js","../chunks/D7e9zx6w.js","../chunks/BgSaD1r_.js","../chunks/CTvJf3dP.js","../chunks/BVyy60Ai.js","../chunks/CCFUzH5i.js","../chunks/CiWDXYQd.js","../chunks/DVsSf1wv.js","../chunks/BV_mDmfH.js","../chunks/Bgbd8SZ5.js","../assets/0.CP-xI7De.css","../nodes/1.BQyKnLFk.js","../nodes/2.C24-dbK7.js","../chunks/JUkrBp3F.js","../chunks/B-_QCM7E.js","../chunks/D4Caz1gY.js","../chunks/Bo3f8OIz.js","../chunks/BZiHL9L3.js","../nodes/3.CcPcfE5H.js","../chunks/U3V4g_hv.js","../chunks/Cqnw7O8j.js","../chunks/DJsB5Z5V.js","../chunks/C2rI8IaC.js","../chunks/Du50aAe5.js","../chunks/41x1-UqF.js","../chunks/CYqkNFLz.js","../chunks/BZ2WxPPD.js","../chunks/ow_oMtSd.js","../nodes/4.CdHupLIu.js","../nodes/5.BZ5sZ9vU.js","../chunks/B1V2wE0x.js","../chunks/91PQ6UtW.js","../chunks/CPFytHjx.js","../nodes/6.CAXPtVkl.js","../chunks/WI-og7-I.js","../chunks/Cwu7L3Xf.js","../chunks/oOdVuDuv.js","../chunks/DliFOxtc.js","../chunks/DPR9Z_fe.js","../chunks/D6f8Dk7c.js","../nodes/7.CRLDW2c_.js","../nodes/8.DVlwXnoT.js","../nodes/9.el4sTgm4.js","../nodes/10.BTAzlY6Z.js","../nodes/11.kE-kE_J5.js","../nodes/12.4nNpW1qS.js","../chunks/C7KJ549w.js","../nodes/13.B0F9yHlE.js","../chunks/2Xl6sR6s.js","../chunks/BM4Azg_w.js","../nodes/14.FP7fqeji.js","../nodes/15.1LkKX8Mu.js","../nodes/16.Un1eDEkg.js","../nodes/17.DCq-Dc1c.js","../chunks/BUaPampd.js","../nodes/18.xleZqgRD.js","../nodes/19.CWBEFCxV.js","../chunks/C98nByjP.js","../nodes/20.BcQWH_IW.js","../chunks/R3ADTHgb.js","../nodes/21.Nj7C5iaJ.js"])))=>i.map(i=>d[i]); -import{k 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 T,aS as Z,f as j,a as y,s as $,b as g,c as tt,B as D,d as et,r as rt,aT as I,D as st,t as ot,e as at}from"../chunks/cPTQ2Ibn.js";import"../chunks/DsnmJJEf.js";import{p as V,i as b}from"../chunks/DqFqoVWr.js";import{c as w}from"../chunks/41x1-UqF.js";import{b as k}from"../chunks/Cwu7L3Xf.js";function it(_){return class extends nt{constructor(t){super({component:_,...t})}}}class nt{#e;#t;constructor(t){var a=new Map,c=(r,e)=>{var o=F(e,!1,!1);return a.set(r,o),o};const u=new Proxy({...t.props||{},$$events:{}},{get(r,e){return f(a.get(e)??c(e,Reflect.get(r,e)))},has(r,e){return e===z?!0:(f(a.get(e)??c(e,Reflect.get(r,e))),Reflect.has(r,e))},set(r,e,o){return A(a.get(e)??c(e,o),o),Reflect.set(r,e,o)}});this.#t=(t.hydrate?U:G)(t.component,{target:t.target,anchor:t.anchor,props:u,context:t.context,intro:t.intro??!1,recover:t.recover}),(!t?.props?.$$host||t.sync===!1)&&Q(),this.#e=u.$$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(u,r)},this.#t.$destroy=()=>{Y(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const c=(...u)=>a.call(this,...u);return this.#e[t].push(c),()=>{this.#e[t]=this.#e[t].filter(u=>u!==c)}}$destroy(){this.#t.$destroy()}}const _t="modulepreload",ct=function(_,t){return new URL(_,t).href},C={},s=function(t,a,c){let u=Promise.resolve();if(a&&a.length>0){let L=function(n){return Promise.all(n.map(d=>Promise.resolve(d).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};const e=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),O=o?.nonce||o?.getAttribute("nonce");u=L(a.map(n=>{if(n=ct(n,c),n in C)return;C[n]=!0;const d=n.endsWith(".css"),v=d?'[rel="stylesheet"]':"";if(!!c)for(let i=e.length-1;i>=0;i--){const m=e[i];if(m.href===n&&(!d||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${v}`))return;const l=document.createElement("link");if(l.rel=d?"stylesheet":_t,d||(l.as="script"),l.crossOrigin="",l.href=n,O&&l.setAttribute("nonce",O),document.head.appendChild(l),d)return new Promise((i,m)=>{l.addEventListener("load",i),l.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${n}`)))})}))}function r(e){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=e,window.dispatchEvent(o),!o.defaultPrevented)throw e}return u.then(e=>{for(const o of e||[])o.status==="rejected"&&r(o.reason);return t().catch(r)})},Rt={};var ut=j('
'),mt=j(" ",1);function lt(_,t){H(t,!0);let a=V(t,"components",23,()=>[]),c=V(t,"data_0",3,null),u=V(t,"data_1",3,null);J(()=>t.stores.page.set(t.page)),K(()=>{t.stores,t.page,t.constructors,a(),t.form,c(),u(),t.stores.page.notify()});let r=T(!1),e=T(!1),o=T(null);X(()=>{const i=t.stores.page.subscribe(()=>{f(r)&&(A(e,!0),Z().then(()=>{A(o,document.title||"untitled page",!0)}))});return A(r,!0),i});const O=I(()=>t.constructors[1]);var L=mt(),n=y(L);{var d=i=>{const m=I(()=>t.constructors[0]);var h=D(),P=y(h);w(P,()=>f(m),(p,E)=>{k(E(p,{get data(){return c()},get form(){return t.form},get params(){return t.page.params},children:(R,vt)=>{var S=D(),B=y(S);w(B,()=>f(O),(N,M)=>{k(M(N,{get data(){return u()},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(i,h)},v=i=>{const m=I(()=>t.constructors[0]);var h=D(),P=y(h);w(P,()=>f(m),(p,E)=>{k(E(p,{get data(){return c()},get form(){return t.form},get params(){return t.page.params}}),R=>a()[0]=R,()=>a()?.[0])}),g(i,h)};b(n,i=>{t.constructors[1]?i(d):i(v,!1)})}var x=$(n,2);{var l=i=>{var m=ut(),h=et(m);{var P=p=>{var E=st();ot(()=>at(E,f(o))),g(p,E)};b(h,p=>{f(e)&&p(P)})}rt(m),g(i,m)};b(x,i=>{f(r)&&i(l)})}g(_,L),tt()}const Ot=it(lt),Lt=[()=>s(()=>import("../nodes/0.DYP5Tzsv.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url),()=>s(()=>import("../nodes/1.BQyKnLFk.js"),__vite__mapDeps([16,1,2,3,7,8,6]),import.meta.url),()=>s(()=>import("../nodes/2.C24-dbK7.js"),__vite__mapDeps([17,1,2,3,4,11,5,6,13,18,19,20,21,14,22]),import.meta.url),()=>s(()=>import("../nodes/3.CcPcfE5H.js"),__vite__mapDeps([23,1,2,3,4,11,5,6,19,20,24,25,26,27,28,29,18,13,14,22,30,31,32]),import.meta.url),()=>s(()=>import("../nodes/4.CdHupLIu.js"),__vite__mapDeps([33,1,2,3,4,5,6,19,20,24,25,26,27,18,13,14,22,28,11,29,30]),import.meta.url),()=>s(()=>import("../nodes/5.BZ5sZ9vU.js"),__vite__mapDeps([34,1,2,3,4,5,6,24,11,19,20,21,22,18,13,35,36,14,26,28,29,27,37,30,31,32]),import.meta.url),()=>s(()=>import("../nodes/6.CAXPtVkl.js"),__vite__mapDeps([38,1,2,3,4,5,6,12,8,35,11,19,20,22,21,36,39,26,18,13,28,29,27,37,31,32,40,41,42,14,43,44]),import.meta.url),()=>s(()=>import("../nodes/7.CRLDW2c_.js"),__vite__mapDeps([45,1,2,3,4,5,6,19,20,8,9,14,22]),import.meta.url),()=>s(()=>import("../nodes/8.DVlwXnoT.js"),__vite__mapDeps([46,1,2,3,4,5,6,36,21,24,13,14,28,11,29,19,27,26,22,37,31,32]),import.meta.url),()=>s(()=>import("../nodes/9.el4sTgm4.js"),__vite__mapDeps([47,1,2,3,4,11,5,6,40,12,8,36,21,13,32,26,22]),import.meta.url),()=>s(()=>import("../nodes/10.BTAzlY6Z.js"),__vite__mapDeps([48,1,2,3,4,5,6,19,20,8,9,22]),import.meta.url),()=>s(()=>import("../nodes/11.kE-kE_J5.js"),__vite__mapDeps([49,1,2,3,4,5,6,11,19,20,21,25,26,22,18,13,35,36,24,14,28,29,27,37,30,31,32]),import.meta.url),()=>s(()=>import("../nodes/12.4nNpW1qS.js"),__vite__mapDeps([50,1,2,3,4,5,6,12,8,35,11,19,20,22,21,36,39,26,18,13,28,29,27,37,31,32,40,41,42,51,14,43,44]),import.meta.url),()=>s(()=>import("../nodes/13.B0F9yHlE.js"),__vite__mapDeps([52,1,2,3,4,5,6,24,43,11,19,20,21,22,44,53,18,13,36,28,29,27,26,14,37,30,31,32,54]),import.meta.url),()=>s(()=>import("../nodes/14.FP7fqeji.js"),__vite__mapDeps([55,1,2,3,4,11,5,6,7,8,53,19,20,21,44,22,18,13,36,42,28,29,27,26,37,31,32,41,14]),import.meta.url),()=>s(()=>import("../nodes/15.1LkKX8Mu.js"),__vite__mapDeps([56,1,2,3,4,5,6,11,19,20,21,22,25,26,18,13,35,36,24,14,28,29,27,37,30,31,32]),import.meta.url),()=>s(()=>import("../nodes/16.Un1eDEkg.js"),__vite__mapDeps([57,1,2,3,4,5,6,12,8,35,11,19,20,22,21,36,39,26,18,13,28,29,27,37,31,32,40,41,42,51,14,43,44]),import.meta.url),()=>s(()=>import("../nodes/17.DCq-Dc1c.js"),__vite__mapDeps([58,1,2,3,4,5,6,24,11,19,20,21,44,22,59,18,13,36,28,29,27,26,14,37,30,31,32,54]),import.meta.url),()=>s(()=>import("../nodes/18.xleZqgRD.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,59,11,19,20,21,22,44,18,13,36,42,28,29,27,26,37,31,32,41,14]),import.meta.url),()=>s(()=>import("../nodes/19.CWBEFCxV.js"),__vite__mapDeps([61,1,2,3,4,8,6,5,24,27,28,11,29,19,26,14,22,36,21,37,62,18,13]),import.meta.url),()=>s(()=>import("../nodes/20.BcQWH_IW.js"),__vite__mapDeps([63,1,2,3,4,5,6,19,20,7,8,27,14,22,26,41,64,40,10,21,62,13]),import.meta.url),()=>s(()=>import("../nodes/21.Nj7C5iaJ.js"),__vite__mapDeps([65,1,2,3,4,5,6,19,40,20,8,7,14,22,41,64,10,21]),import.meta.url)],yt=[],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],"/templates":[19],"/templates/create":[21],"/templates/[id]":[20]},dt={handleError:({error:_})=>{console.error(_)},reroute:()=>{},transport:{}},ft=Object.fromEntries(Object.entries(dt.transport).map(([_,t])=>[_,t.decode])),Tt=!1,Dt=(_,t)=>ft[_](t);export{Dt as decode,ft as decoders,At as dictionary,Tt as hash,dt as hooks,Rt as matchers,Lt as nodes,Ot as root,yt as server_loads}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CZrswIpC.js","../chunks/DsnmJJEf.js","../chunks/C7KraPli.js","../chunks/cPTQ2Ibn.js","../chunks/DqFqoVWr.js","../chunks/yWyZZHPR.js","../chunks/BMOcKgHw.js","../chunks/DMSCYqmZ.js","../chunks/Br47IbuU.js","../chunks/DVwzA4-Q.js","../chunks/CCFUzH5i.js","../chunks/CiWDXYQd.js","../chunks/Crr6XDlZ.js","../chunks/BV_mDmfH.js","../chunks/Bgbd8SZ5.js","../assets/0.CP-xI7De.css","../nodes/1.BVDX-kKb.js","../nodes/2.vfWjk2nO.js","../chunks/C01HillC.js","../chunks/B-_QCM7E.js","../chunks/D4Caz1gY.js","../chunks/ao5EljEX.js","../chunks/BZiHL9L3.js","../nodes/3.Di2gNd2_.js","../chunks/BtskFTeb.js","../chunks/DDJerweA.js","../chunks/Cr2hBuns.js","../chunks/B_RLftTg.js","../chunks/BIepGqC5.js","../chunks/41x1-UqF.js","../chunks/C6PRls9Y.js","../chunks/CMG1iQmM.js","../chunks/ow_oMtSd.js","../nodes/4.CqGHGl2O.js","../nodes/5.DSvy7UtH.js","../chunks/MwmEfQpp.js","../chunks/Cpm0auuQ.js","../chunks/CVL5tSYq.js","../nodes/6.BLiOuR3x.js","../chunks/CSF6MBq7.js","../chunks/Cwu7L3Xf.js","../chunks/CDgX_mkE.js","../chunks/VkS8dDRx.js","../chunks/BIkO7LkR.js","../chunks/BaxpdL59.js","../nodes/7.2oZviKjs.js","../nodes/8.BMDTInDo.js","../nodes/9.B0t4Xpa3.js","../nodes/10.ClLNNemr.js","../nodes/11.CH-gQqkl.js","../nodes/12.C8GWS3WC.js","../chunks/kPsHrhth.js","../nodes/13.DkvBfG2H.js","../chunks/YJXtpdqO.js","../chunks/DXLlGL2Y.js","../nodes/14.D-PSVsY_.js","../nodes/15.BMBRAtUe.js","../nodes/16.wLKojKF5.js","../nodes/17.DtdOzhy4.js","../chunks/DQv7wuIJ.js","../nodes/18.CjzIUFPa.js","../nodes/19.UQq6vp0O.js","../chunks/C98nByjP.js","../nodes/20.ydnVC7Nh.js","../chunks/5uRpB3Rp.js","../nodes/21.BUQSdMH1.js"])))=>i.map(i=>d[i]); +import{k 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 T,aS as Z,f as j,a as y,s as $,b as g,c as tt,B as D,d as et,r as rt,aT as I,D as st,t as ot,e as at}from"../chunks/cPTQ2Ibn.js";import"../chunks/DsnmJJEf.js";import{p as V,i as b}from"../chunks/DqFqoVWr.js";import{c as w}from"../chunks/41x1-UqF.js";import{b as k}from"../chunks/Cwu7L3Xf.js";function it(_){return class extends nt{constructor(t){super({component:_,...t})}}}class nt{#e;#t;constructor(t){var a=new Map,c=(r,e)=>{var o=F(e,!1,!1);return a.set(r,o),o};const u=new Proxy({...t.props||{},$$events:{}},{get(r,e){return f(a.get(e)??c(e,Reflect.get(r,e)))},has(r,e){return e===z?!0:(f(a.get(e)??c(e,Reflect.get(r,e))),Reflect.has(r,e))},set(r,e,o){return A(a.get(e)??c(e,o),o),Reflect.set(r,e,o)}});this.#t=(t.hydrate?U:G)(t.component,{target:t.target,anchor:t.anchor,props:u,context:t.context,intro:t.intro??!1,recover:t.recover}),(!t?.props?.$$host||t.sync===!1)&&Q(),this.#e=u.$$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(u,r)},this.#t.$destroy=()=>{Y(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const c=(...u)=>a.call(this,...u);return this.#e[t].push(c),()=>{this.#e[t]=this.#e[t].filter(u=>u!==c)}}$destroy(){this.#t.$destroy()}}const _t="modulepreload",ct=function(_,t){return new URL(_,t).href},C={},s=function(t,a,c){let u=Promise.resolve();if(a&&a.length>0){let L=function(n){return Promise.all(n.map(d=>Promise.resolve(d).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};const e=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),O=o?.nonce||o?.getAttribute("nonce");u=L(a.map(n=>{if(n=ct(n,c),n in C)return;C[n]=!0;const d=n.endsWith(".css"),v=d?'[rel="stylesheet"]':"";if(!!c)for(let i=e.length-1;i>=0;i--){const m=e[i];if(m.href===n&&(!d||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${n}"]${v}`))return;const l=document.createElement("link");if(l.rel=d?"stylesheet":_t,d||(l.as="script"),l.crossOrigin="",l.href=n,O&&l.setAttribute("nonce",O),document.head.appendChild(l),d)return new Promise((i,m)=>{l.addEventListener("load",i),l.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${n}`)))})}))}function r(e){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=e,window.dispatchEvent(o),!o.defaultPrevented)throw e}return u.then(e=>{for(const o of e||[])o.status==="rejected"&&r(o.reason);return t().catch(r)})},Rt={};var ut=j('
'),mt=j(" ",1);function lt(_,t){H(t,!0);let a=V(t,"components",23,()=>[]),c=V(t,"data_0",3,null),u=V(t,"data_1",3,null);J(()=>t.stores.page.set(t.page)),K(()=>{t.stores,t.page,t.constructors,a(),t.form,c(),u(),t.stores.page.notify()});let r=T(!1),e=T(!1),o=T(null);X(()=>{const i=t.stores.page.subscribe(()=>{f(r)&&(A(e,!0),Z().then(()=>{A(o,document.title||"untitled page",!0)}))});return A(r,!0),i});const O=I(()=>t.constructors[1]);var L=mt(),n=y(L);{var d=i=>{const m=I(()=>t.constructors[0]);var h=D(),P=y(h);w(P,()=>f(m),(p,E)=>{k(E(p,{get data(){return c()},get form(){return t.form},get params(){return t.page.params},children:(R,vt)=>{var S=D(),B=y(S);w(B,()=>f(O),(N,M)=>{k(M(N,{get data(){return u()},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(i,h)},v=i=>{const m=I(()=>t.constructors[0]);var h=D(),P=y(h);w(P,()=>f(m),(p,E)=>{k(E(p,{get data(){return c()},get form(){return t.form},get params(){return t.page.params}}),R=>a()[0]=R,()=>a()?.[0])}),g(i,h)};b(n,i=>{t.constructors[1]?i(d):i(v,!1)})}var x=$(n,2);{var l=i=>{var m=ut(),h=et(m);{var P=p=>{var E=st();ot(()=>at(E,f(o))),g(p,E)};b(h,p=>{f(e)&&p(P)})}rt(m),g(i,m)};b(x,i=>{f(r)&&i(l)})}g(_,L),tt()}const Ot=it(lt),Lt=[()=>s(()=>import("../nodes/0.CZrswIpC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url),()=>s(()=>import("../nodes/1.BVDX-kKb.js"),__vite__mapDeps([16,1,2,3,7,8,6]),import.meta.url),()=>s(()=>import("../nodes/2.vfWjk2nO.js"),__vite__mapDeps([17,1,2,3,4,11,5,6,13,18,19,20,21,14,22]),import.meta.url),()=>s(()=>import("../nodes/3.Di2gNd2_.js"),__vite__mapDeps([23,1,2,3,4,11,5,6,19,20,24,25,26,27,28,29,18,13,14,22,30,31,32]),import.meta.url),()=>s(()=>import("../nodes/4.CqGHGl2O.js"),__vite__mapDeps([33,1,2,3,4,5,6,19,20,24,25,26,27,18,13,14,22,28,11,29,30]),import.meta.url),()=>s(()=>import("../nodes/5.DSvy7UtH.js"),__vite__mapDeps([34,1,2,3,4,5,6,24,11,19,20,21,22,18,13,35,36,14,26,28,29,27,37,30,31,32]),import.meta.url),()=>s(()=>import("../nodes/6.BLiOuR3x.js"),__vite__mapDeps([38,1,2,3,4,5,6,12,8,35,11,19,20,22,21,36,39,26,18,13,28,29,27,37,31,32,40,41,42,14,43,44]),import.meta.url),()=>s(()=>import("../nodes/7.2oZviKjs.js"),__vite__mapDeps([45,1,2,3,4,5,6,19,20,8,9,14,22]),import.meta.url),()=>s(()=>import("../nodes/8.BMDTInDo.js"),__vite__mapDeps([46,1,2,3,4,5,6,36,21,24,13,14,28,11,29,19,27,26,22,37,31,32]),import.meta.url),()=>s(()=>import("../nodes/9.B0t4Xpa3.js"),__vite__mapDeps([47,1,2,3,4,11,5,6,40,12,8,36,21,13,32,26,22]),import.meta.url),()=>s(()=>import("../nodes/10.ClLNNemr.js"),__vite__mapDeps([48,1,2,3,4,5,6,19,20,8,9,22]),import.meta.url),()=>s(()=>import("../nodes/11.CH-gQqkl.js"),__vite__mapDeps([49,1,2,3,4,5,6,11,19,20,21,25,26,22,18,13,35,36,24,14,28,29,27,37,30,31,32]),import.meta.url),()=>s(()=>import("../nodes/12.C8GWS3WC.js"),__vite__mapDeps([50,1,2,3,4,5,6,12,8,35,11,19,20,22,21,36,39,26,18,13,28,29,27,37,31,32,40,41,42,51,14,43,44]),import.meta.url),()=>s(()=>import("../nodes/13.DkvBfG2H.js"),__vite__mapDeps([52,1,2,3,4,5,6,24,43,11,19,20,21,22,44,53,18,13,36,28,29,27,26,14,37,30,31,32,54]),import.meta.url),()=>s(()=>import("../nodes/14.D-PSVsY_.js"),__vite__mapDeps([55,1,2,3,4,11,5,6,7,8,53,19,20,21,44,22,18,13,36,42,28,29,27,26,37,31,32,41,14]),import.meta.url),()=>s(()=>import("../nodes/15.BMBRAtUe.js"),__vite__mapDeps([56,1,2,3,4,5,6,11,19,20,21,22,25,26,18,13,35,36,24,14,28,29,27,37,30,31,32]),import.meta.url),()=>s(()=>import("../nodes/16.wLKojKF5.js"),__vite__mapDeps([57,1,2,3,4,5,6,12,8,35,11,19,20,22,21,36,39,26,18,13,28,29,27,37,31,32,40,41,42,51,14,43,44]),import.meta.url),()=>s(()=>import("../nodes/17.DtdOzhy4.js"),__vite__mapDeps([58,1,2,3,4,5,6,24,11,19,20,21,44,22,59,18,13,36,28,29,27,26,14,37,30,31,32,54]),import.meta.url),()=>s(()=>import("../nodes/18.CjzIUFPa.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,59,11,19,20,21,22,44,18,13,36,42,28,29,27,26,37,31,32,41,14]),import.meta.url),()=>s(()=>import("../nodes/19.UQq6vp0O.js"),__vite__mapDeps([61,1,2,3,4,8,6,5,24,27,28,11,29,19,26,14,22,36,21,37,62,18,13]),import.meta.url),()=>s(()=>import("../nodes/20.ydnVC7Nh.js"),__vite__mapDeps([63,1,2,3,4,5,6,19,20,7,8,27,14,22,26,41,64,40,10,21,62,13]),import.meta.url),()=>s(()=>import("../nodes/21.BUQSdMH1.js"),__vite__mapDeps([65,1,2,3,4,5,6,19,40,20,8,7,14,22,41,64,10,21]),import.meta.url)],yt=[],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],"/templates":[19],"/templates/create":[21],"/templates/[id]":[20]},dt={handleError:({error:_})=>{console.error(_)},reroute:()=>{},transport:{}},ft=Object.fromEntries(Object.entries(dt.transport).map(([_,t])=>[_,t.decode])),Tt=!1,Dt=(_,t)=>ft[_](t);export{Dt as decode,ft as decoders,At as dictionary,Tt as hash,dt as hooks,Rt as matchers,Lt as nodes,Ot as root,yt as server_loads}; diff --git a/webapp/assets/_app/immutable/entry/start.-FfRLqKC.js b/webapp/assets/_app/immutable/entry/start.-FfRLqKC.js deleted file mode 100644 index c4f1cdf1..00000000 --- a/webapp/assets/_app/immutable/entry/start.-FfRLqKC.js +++ /dev/null @@ -1 +0,0 @@ -import{l as o,a as r}from"../chunks/CTvJf3dP.js";export{o as load_css,r as start}; diff --git a/webapp/assets/_app/immutable/entry/start.C9b9f19p.js b/webapp/assets/_app/immutable/entry/start.C9b9f19p.js new file mode 100644 index 00000000..67436a79 --- /dev/null +++ b/webapp/assets/_app/immutable/entry/start.C9b9f19p.js @@ -0,0 +1 @@ +import{l as o,a as r}from"../chunks/Br47IbuU.js";export{o as load_css,r as start}; diff --git a/webapp/assets/_app/immutable/nodes/0.CZrswIpC.js b/webapp/assets/_app/immutable/nodes/0.CZrswIpC.js new file mode 100644 index 00000000..67e41a9c --- /dev/null +++ b/webapp/assets/_app/immutable/nodes/0.CZrswIpC.js @@ -0,0 +1,13 @@ +import"../chunks/DsnmJJEf.js";import{i as Te}from"../chunks/C7KraPli.js";import{p as Ge,o as Ke,l as I,k as f,m as T,h as Oe,f as h,a as P,d as o,s as l,r as a,g as e,u as i,t as U,e as pe,b as s,B as F,C as re,q as ye,i as R,c as De,v as hr,j as ur,$ as fr,D as Qe}from"../chunks/cPTQ2Ibn.js";import{a as _e,i as b,s as Ee}from"../chunks/DqFqoVWr.js";import{d as n,c as w,s as K,h as mr,B as xr,i as Fe}from"../chunks/yWyZZHPR.js";import{p as je}from"../chunks/DMSCYqmZ.js";import{g as Pe}from"../chunks/Br47IbuU.js";import{b as We,a as pr}from"../chunks/DVwzA4-Q.js";import{t as Se}from"../chunks/CCFUzH5i.js";import{e as ve,i as xe}from"../chunks/CiWDXYQd.js";import{p as br}from"../chunks/Crr6XDlZ.js";import{w as kr}from"../chunks/BV_mDmfH.js";import{t as Je}from"../chunks/Bgbd8SZ5.js";const yr=async({url:ae})=>({url:ae.pathname}),_r=!1,wr=!1,fa=Object.freeze(Object.defineProperty({__proto__:null,load:yr,prerender:_r,ssr:wr},Symbol.toStringTag,{value:"Module"}));var Mr=h('
Live Updates
'),zr=h('
Connecting
'),jr=h('
Updates Unavailable
'),Sr=h('
Manual Refresh
'),Cr=re(''),Hr=re(''),Br=re(''),Lr=re(''),$r=h(' '),Ar=h(' '),Vr=h('
'),Rr=h('
'),Ir=h('
'),Pr=h('
'),Tr=re(''),Gr=re(''),Or=re(''),Dr=re(''),Er=h(' '),Nr=h(' '),Ur=h('
'),qr=h('
'),Qr=h('
GARM GARM

GARM

',1);function Fr(ae,te){Ge(te,!1);const[oe,be]=Ee(),d=()=>_e(kr,"$websocketStore",oe),se=()=>_e(Se,"$themeStore",oe),W=()=>_e(br,"$page",oe),u=T(),j=T(),k=T();let y=T(!1),m=T(!1);Ke(()=>{window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",v)});function v(t){(!localStorage.getItem("theme")||localStorage.getItem("theme")==="system")&&Se.set(t.matches)}function J(){Se.toggle()}function ie(){We.logout(),f(m,!1)}const X=[{href:n("/"),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:n("/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:n("/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:n("/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:n("/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:n("/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:n("/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"}],M=[{href:n("/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:n("/endpoints"),label:"Endpoints",icon:"M13 10V3L4 14h7v7l9-11h-7z"},{href:n("/templates"),label:"Runner Install Templates",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"}];I(()=>d(),()=>{f(u,d())}),I(()=>se(),()=>{f(j,se())}),I(()=>W(),()=>{W().url.pathname&&f(y,!1)}),I(()=>W(),()=>{f(k,W().url.pathname)}),Oe(),Te();var S=Qr(),q=P(S),ce=o(q),ne=o(ce),$=o(ne),A=o($),Y=o(A),G=l(Y,2);a(A),a($);var O=l($,2),D=o(O),V=o(D),ge=o(V);{var he=t=>{var r=Mr();s(t,r)},Z=t=>{var r=F(),g=P(r);{var _=x=>{var z=zr();s(x,z)},C=x=>{var z=F(),ee=P(z);{var H=p=>{var N=jr();s(p,N)},B=p=>{var N=Sr();s(p,N)};b(ee,p=>{e(u),i(()=>e(u).error)?p(H):p(B,!1)},!0)}s(x,z)};b(g,x=>{e(u),i(()=>e(u).connecting)?x(_):x(C,!1)},!0)}s(t,r)};b(ge,t=>{e(u),i(()=>e(u).connected)?t(he):t(Z,!1)})}a(V);var E=l(V,2),ue=o(E);{var we=t=>{var r=Cr();s(t,r)},Ce=t=>{var r=Hr();s(t,r)};b(ue,t=>{e(j)?t(we):t(Ce,!1)})}a(E),a(D),a(O),a(ne);var Me=l(ne,2),ze=o(Me);ve(ze,1,()=>X,xe,(t,r)=>{var g=$r(),_=o(g),C=o(_);{var x=H=>{var B=F(),p=P(B);ve(p,1,()=>(e(r),i(()=>e(r).icon)),xe,(N,le)=>{var c=Br();U(()=>w(c,"d",e(le))),s(N,c)}),s(H,B)},z=H=>{var B=Lr();U(()=>w(B,"d",(e(r),i(()=>e(r).icon)))),s(H,B)};b(C,H=>{e(r),i(()=>Array.isArray(e(r).icon))?H(x):H(z,!1)})}a(_);var ee=l(_);a(g),U(()=>{w(g,"href",(e(r),i(()=>e(r).href))),K(g,1,`group flex items-center px-2 py-2 text-sm font-medium rounded-md transition-colors duration-200 + ${e(k),e(r),i(()=>e(k)===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")??""}`),pe(ee,` ${e(r),i(()=>e(r).label)??""}`)}),s(t,g)});var Q=l(ze,2);ve(Q,5,()=>M,xe,(t,r)=>{var g=Ar(),_=o(g),C=o(_);a(_);var x=l(_);a(g),U(()=>{w(g,"href",(e(r),i(()=>e(r).href))),K(g,1,`group flex items-center px-2 py-2 text-sm font-medium rounded-md transition-colors duration-200 + ${e(k),e(r),i(()=>e(k)===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")??""}`),w(C,"d",(e(r),i(()=>e(r).icon))),pe(x,` ${e(r),i(()=>e(r).label)??""}`)}),s(t,g)}),a(Q);var fe=l(Q,2),Xe=o(fe);a(fe),a(Me),a(ce),a(q);var He=l(q,2),Be=o(He),Ne=o(Be),Le=l(Ne,2),$e=o(Le),Ae=l($e,2),Ue=l(Ae,4),Ye=o(Ue);{var Ze=t=>{var r=Vr();s(t,r)},er=t=>{var r=F(),g=P(r);{var _=x=>{var z=Rr();s(x,z)},C=x=>{var z=F(),ee=P(z);{var H=p=>{var N=Ir();s(p,N)},B=p=>{var N=Pr();s(p,N)};b(ee,p=>{e(u),i(()=>e(u).error)?p(H):p(B,!1)},!0)}s(x,z)};b(g,x=>{e(u),i(()=>e(u).connecting)?x(_):x(C,!1)},!0)}s(t,r)};b(Ye,t=>{e(u),i(()=>e(u).connected)?t(Ze):t(er,!1)})}a(Ue),a(Le);var Ve=l(Le,2),rr=o(Ve);{var ar=t=>{var r=Tr();s(t,r)},tr=t=>{var r=Gr();s(t,r)};b(rr,t=>{e(j)?t(ar):t(tr,!1)})}a(Ve),a(Be);var or=l(Be,2);{var sr=t=>{var r=Ur(),g=o(r),_=l(g,2),C=o(_),x=o(C);a(C);var z=l(C,2),ee=o(z),H=o(ee);ve(H,1,()=>X,xe,(le,c)=>{var L=Er(),de=o(L),Re=o(de);{var Ie=me=>{var ke=F(),vr=P(ke);ve(vr,1,()=>(e(c),i(()=>e(c).icon)),xe,(cr,gr)=>{var qe=Or();U(()=>w(qe,"d",e(gr))),s(cr,qe)}),s(me,ke)},lr=me=>{var ke=Dr();U(()=>w(ke,"d",(e(c),i(()=>e(c).icon)))),s(me,ke)};b(Re,me=>{e(c),i(()=>Array.isArray(e(c).icon))?me(Ie):me(lr,!1)})}a(de);var dr=l(de);a(L),U(()=>{w(L,"href",(e(c),i(()=>e(c).href))),K(L,1,`group flex items-center px-2 py-2 text-base font-medium rounded-md transition-colors duration-200 + ${e(k),e(c),i(()=>e(k)===e(c).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")??""}`),pe(dr,` ${e(c),i(()=>e(c).label)??""}`)}),R("click",L,()=>f(y,!1)),s(le,L)});var B=l(H,2);ve(B,5,()=>M,xe,(le,c)=>{var L=Nr(),de=o(L),Re=o(de);a(de);var Ie=l(de);a(L),U(()=>{w(L,"href",(e(c),i(()=>e(c).href))),K(L,1,`group flex items-center px-2 py-2 text-base font-medium rounded-md transition-colors duration-200 + ${e(k),e(c),i(()=>e(k)===e(c).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")??""}`),w(Re,"d",(e(c),i(()=>e(c).icon))),pe(Ie,` ${e(c),i(()=>e(c).label)??""}`)}),R("click",L,()=>f(y,!1)),s(le,L)}),a(B);var p=l(B,2),N=o(p);a(p),a(ee),a(z),a(_),a(r),R("click",g,()=>f(y,!1)),R("keydown",g,le=>{le.key==="Escape"&&f(y,!1)}),R("click",x,()=>f(y,!1)),R("click",N,ie),s(t,r)};b(or,t=>{e(y)&&t(sr)})}a(He);var ir=l(He,2);{var nr=t=>{var r=qr();R("click",r,()=>f(m,!1)),R("keydown",r,g=>{g.key==="Escape"&&f(m,!1)}),s(t,r)};b(ir,t=>{e(m)&&t(nr)})}U((t,r,g,_,C)=>{w(A,"href",t),w(Y,"src",r),w(G,"src",g),w(E,"title",e(j)?"Switch to Light Mode":"Switch to Dark Mode"),w($e,"src",_),K($e,1,`${e(j)?"hidden":"block"} h-8 w-8`),w(Ae,"src",C),K(Ae,1,`${e(j)?"block":"hidden"} h-8 w-8`)},[()=>(ye(n),i(()=>n("/"))),()=>(ye(n),i(()=>n("/assets/garm-light.svg"))),()=>(ye(n),i(()=>n("/assets/garm-dark.svg"))),()=>(ye(n),i(()=>n("/assets/garm-light.svg"))),()=>(ye(n),i(()=>n("/assets/garm-dark.svg")))]),R("click",E,J),R("click",Xe,ie),R("click",Ne,()=>f(y,!e(y))),R("click",Ve,J),s(ae,S),De(),be()}var Jr=h("
"),Kr=h('

'),Wr=h('
');function Xr(ae,te){Ge(te,!1);const[oe,be]=Ee(),d=()=>_e(Je,"$toastStore",oe),se=T();function W(m){switch(m){case"success":return` + + `;case"error":return` + + `;case"warning":return` + + `;case"info":default:return` + + `}}function u(m){switch(m){case"success":return"bg-green-50 dark:bg-green-900 border-green-200 dark:border-green-700";case"error":return"bg-red-50 dark:bg-red-900 border-red-200 dark:border-red-700";case"warning":return"bg-yellow-50 dark:bg-yellow-900 border-yellow-200 dark:border-yellow-700";case"info":default:return"bg-blue-50 dark:bg-blue-900 border-blue-200 dark:border-blue-700"}}function j(m){switch(m){case"success":return"text-green-800 dark:text-green-200";case"error":return"text-red-800 dark:text-red-200";case"warning":return"text-yellow-800 dark:text-yellow-200";case"info":default:return"text-blue-800 dark:text-blue-200"}}function k(m){switch(m){case"success":return"text-green-700 dark:text-green-300";case"error":return"text-red-700 dark:text-red-300";case"warning":return"text-yellow-700 dark:text-yellow-300";case"info":default:return"text-blue-700 dark:text-blue-300"}}I(()=>d(),()=>{f(se,d())}),Oe(),Te();var y=Wr();ve(y,5,()=>e(se),m=>m.id,(m,v)=>{var J=Kr(),ie=o(J),X=o(ie),M=o(X);mr(M,()=>(e(v),i(()=>W(e(v).type)))),a(X);var S=l(X,2),q=o(S),ce=o(q,!0);a(q);var ne=l(q,2);{var $=G=>{var O=Jr(),D=o(O,!0);a(O),U(V=>{K(O,1,`mt-1 text-sm ${V??""}`),pe(D,(e(v),i(()=>e(v).message)))},[()=>(e(v),i(()=>k(e(v).type)))]),s(G,O)};b(ne,G=>{e(v),i(()=>e(v).message)&&G($)})}a(S);var A=l(S,2),Y=o(A);{let G=hr(()=>(e(v),i(()=>e(v).type==="success"?"text-green-400 hover:text-green-500 focus:ring-green-500":e(v).type==="error"?"text-red-400 hover:text-red-500 focus:ring-red-500":e(v).type==="warning"?"text-yellow-400 hover:text-yellow-500 focus:ring-yellow-500":"text-blue-400 hover:text-blue-500 focus:ring-blue-500")));xr(Y,{variant:"ghost",size:"sm","aria-label":"Dismiss notification",icon:"",get class(){return e(G)},$$events:{click:()=>Je.remove(e(v).id)}})}a(A),a(ie),a(J),U((G,O)=>{K(J,1,`relative rounded-lg border p-4 shadow-lg transition-all duration-300 ease-in-out ${G??""}`),K(q,1,`text-sm font-medium ${O??""}`),pe(ce,(e(v),i(()=>e(v).title)))},[()=>(e(v),i(()=>u(e(v).type))),()=>(e(v),i(()=>j(e(v).type)))]),s(m,J)}),a(y),s(ae,y),De(),be()}var Yr=h('

Loading...

'),Zr=h('
'),ea=h('

'),ra=h(" ",1);function ma(ae,te){Ge(te,!1);const[oe,be]=Ee(),d=()=>_e(pr,"$authStore",oe),se=T(),W=T(),u=T(),j=T(),k=T(),y=T();Ke(()=>{We.init(),Se.init()}),I(()=>(d(),Pe),()=>{if(!d().loading){const M=je.url.pathname===n("/login"),S=je.url.pathname===n("/init");!M&&!S&&!d().isAuthenticated&&(d().needsInitialization?Pe(n("/init"),{replaceState:!0}):Pe(n("/login"),{replaceState:!0}))}}),I(()=>n,()=>{f(se,je.url.pathname===n("/login"))}),I(()=>n,()=>{f(W,je.url.pathname===n("/init"))}),I(()=>d(),()=>{f(u,d().needsInitialization&&!d().isAuthenticated&&!d().loading)}),I(()=>d(),()=>{f(j,!d().needsInitialization&&!d().isAuthenticated&&!d().loading)}),I(()=>d(),()=>{f(k,d().isAuthenticated&&!d().loading)}),I(()=>(e(u),e(j),e(k)),()=>{f(y,!e(u)&&!e(j)&&!e(k))}),Oe(),Te();var m=ra();ur(M=>{fr.title="GARM - GitHub Actions Runner Manager"});var v=P(m);{var J=M=>{var S=Yr();s(M,S)},ie=M=>{var S=F(),q=P(S);{var ce=$=>{var A=F(),Y=P(A);Fe(Y,te,"default",{}),s($,A)},ne=$=>{var A=F(),Y=P(A);{var G=D=>{var V=Zr(),ge=o(V);Fr(ge,{});var he=l(ge,2),Z=o(he),E=o(Z),ue=o(E);Fe(ue,te,"default",{}),a(E),a(Z),a(he),a(V),s(D,V)},O=D=>{var V=F(),ge=P(V);{var he=Z=>{var E=ea(),ue=o(E),we=l(o(ue),2),Ce=o(we);{var Me=Q=>{var fe=Qe("Redirecting to initialization...");s(Q,fe)},ze=Q=>{var fe=Qe("Redirecting to login...");s(Q,fe)};b(Ce,Q=>{d(),i(()=>d().needsInitialization)?Q(Me):Q(ze,!1)})}a(we),a(ue),a(E),s(Z,E)};b(ge,Z=>{e(y)&&Z(he)},!0)}s(D,V)};b(Y,D=>{e(k)?D(G):D(O,!1)},!0)}s($,A)};b(q,$=>{e(j)||e(u)?$(ce):$(ne,!1)},!0)}s(M,S)};b(v,M=>{d(),i(()=>d().loading)?M(J):M(ie,!1)})}var X=l(v,2);Xr(X,{}),s(ae,m),De(),be()}export{ma as component,fa as universal}; diff --git a/webapp/assets/_app/immutable/nodes/0.DYP5Tzsv.js b/webapp/assets/_app/immutable/nodes/0.DYP5Tzsv.js deleted file mode 100644 index fcea88fe..00000000 --- a/webapp/assets/_app/immutable/nodes/0.DYP5Tzsv.js +++ /dev/null @@ -1,13 +0,0 @@ -import"../chunks/DsnmJJEf.js";import{i as $e}from"../chunks/C7KraPli.js";import{p as Ae,o as Ne,l as Q,k as b,m as U,h as Le,f as g,a as O,d as s,s as l,r as t,g as e,u as o,t as G,e as ge,b as i,B as q,C as Y,q as fe,i as V,c as Ve,v as gr,j as hr,$ as ur}from"../chunks/cPTQ2Ibn.js";import{a as xe,i as w,s as Re}from"../chunks/DqFqoVWr.js";import{d as n,c as _,s as N,h as fr,B as mr,i as De}from"../chunks/DqbUkQgD.js";import{p as ve}from"../chunks/BgSaD1r_.js";import{g as me}from"../chunks/CTvJf3dP.js";import{b as Ue,a as xr}from"../chunks/BVyy60Ai.js";import{t as ke}from"../chunks/CCFUzH5i.js";import{e as ne,i as ce}from"../chunks/CiWDXYQd.js";import{p as pr}from"../chunks/DVsSf1wv.js";import{w as br}from"../chunks/BV_mDmfH.js";import{t as qe}from"../chunks/Bgbd8SZ5.js";const kr=async({url:Z})=>({url:Z.pathname}),yr=!1,_r=!1,ua=Object.freeze(Object.defineProperty({__proto__:null,load:kr,prerender:yr,ssr:_r},Symbol.toStringTag,{value:"Module"}));var wr=g('
Live Updates
'),Mr=g('
Connecting
'),jr=g('
Updates Unavailable
'),zr=g('
Manual Refresh
'),Cr=Y(''),Hr=Y(''),Sr=Y(''),Br=Y(''),$r=g(' '),Ar=g(' '),Lr=g('
'),Vr=g('
'),Rr=g('
'),Ir=g('
'),Pr=Y(''),Tr=Y(''),Gr=Y(''),Or=Y(''),Er=g(' '),Dr=g(' '),qr=g('
'),Nr=g('
'),Ur=g('
GARM GARM

GARM

',1);function Qr(Z,ee){Ae(ee,!1);const[re,he]=Re(),p=()=>xe(br,"$websocketStore",re),E=()=>xe(ke,"$themeStore",re),R=()=>xe(pr,"$page",re),h=U(),I=U(),z=U();let M=U(!1),m=U(!1);Ne(()=>{window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",v)});function v(a){(!localStorage.getItem("theme")||localStorage.getItem("theme")==="system")&&ke.set(a.matches)}function u(){ke.toggle()}function C(){Ue.logout(),b(m,!1)}const F=[{href:n("/"),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:n("/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:n("/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:n("/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:n("/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:n("/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:n("/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"}],le=[{href:n("/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:n("/endpoints"),label:"Endpoints",icon:"M13 10V3L4 14h7v7l9-11h-7z"},{href:n("/templates"),label:"Runner Install Templates",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"}];Q(()=>p(),()=>{b(h,p())}),Q(()=>E(),()=>{b(I,E())}),Q(()=>R(),()=>{R().url.pathname&&b(M,!1)}),Q(()=>R(),()=>{b(z,R().url.pathname)}),Le(),$e();var J=Ur(),j=O(J),D=s(j),ae=s(D),te=s(ae),K=s(te),P=s(K),k=l(P,2);t(K),t(te);var H=l(te,2),oe=s(H),W=s(oe),pe=s(W);{var ye=a=>{var r=wr();i(a,r)},Qe=a=>{var r=q(),c=O(r);{var y=f=>{var S=Mr();i(f,S)},B=f=>{var S=q(),X=O(S);{var $=x=>{var T=jr();i(x,T)},A=x=>{var T=zr();i(x,T)};w(X,x=>{e(h),o(()=>e(h).error)?x($):x(A,!1)},!0)}i(f,S)};w(c,f=>{e(h),o(()=>e(h).connecting)?f(y):f(B,!1)},!0)}i(a,r)};w(pe,a=>{e(h),o(()=>e(h).connected)?a(ye):a(Qe,!1)})}t(W);var be=l(W,2),Fe=s(be);{var Je=a=>{var r=Cr();i(a,r)},Ke=a=>{var r=Hr();i(a,r)};w(Fe,a=>{e(I)?a(Je):a(Ke,!1)})}t(be),t(oe),t(H),t(ae);var Ie=l(ae,2),Pe=s(Ie);ne(Pe,1,()=>F,ce,(a,r)=>{var c=$r(),y=s(c),B=s(y);{var f=$=>{var A=q(),x=O(A);ne(x,1,()=>(e(r),o(()=>e(r).icon)),ce,(T,se)=>{var d=Sr();G(()=>_(d,"d",e(se))),i(T,d)}),i($,A)},S=$=>{var A=Br();G(()=>_(A,"d",(e(r),o(()=>e(r).icon)))),i($,A)};w(B,$=>{e(r),o(()=>Array.isArray(e(r).icon))?$(f):$(S,!1)})}t(y);var X=l(y);t(c),G(()=>{_(c,"href",(e(r),o(()=>e(r).href))),N(c,1,`group flex items-center px-2 py-2 text-sm font-medium rounded-md transition-colors duration-200 - ${e(z),e(r),o(()=>e(z)===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(X,` ${e(r),o(()=>e(r).label)??""}`)}),i(a,c)});var _e=l(Pe,2);ne(_e,5,()=>le,ce,(a,r)=>{var c=Ar(),y=s(c),B=s(y);t(y);var f=l(y);t(c),G(()=>{_(c,"href",(e(r),o(()=>e(r).href))),N(c,1,`group flex items-center px-2 py-2 text-sm font-medium rounded-md transition-colors duration-200 - ${e(z),e(r),o(()=>e(z)===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")??""}`),_(B,"d",(e(r),o(()=>e(r).icon))),ge(f,` ${e(r),o(()=>e(r).label)??""}`)}),i(a,c)}),t(_e);var Te=l(_e,2),We=s(Te);t(Te),t(Ie),t(D),t(j);var we=l(j,2),Me=s(we),Ge=s(Me),je=l(Ge,2),ze=s(je),Ce=l(ze,2),Oe=l(Ce,4),Xe=s(Oe);{var Ye=a=>{var r=Lr();i(a,r)},Ze=a=>{var r=q(),c=O(r);{var y=f=>{var S=Vr();i(f,S)},B=f=>{var S=q(),X=O(S);{var $=x=>{var T=Rr();i(x,T)},A=x=>{var T=Ir();i(x,T)};w(X,x=>{e(h),o(()=>e(h).error)?x($):x(A,!1)},!0)}i(f,S)};w(c,f=>{e(h),o(()=>e(h).connecting)?f(y):f(B,!1)},!0)}i(a,r)};w(Xe,a=>{e(h),o(()=>e(h).connected)?a(Ye):a(Ze,!1)})}t(Oe),t(je);var He=l(je,2),er=s(He);{var rr=a=>{var r=Pr();i(a,r)},ar=a=>{var r=Tr();i(a,r)};w(er,a=>{e(I)?a(rr):a(ar,!1)})}t(He),t(Me);var tr=l(Me,2);{var or=a=>{var r=qr(),c=s(r),y=l(c,2),B=s(y),f=s(B);t(B);var S=l(B,2),X=s(S),$=s(X);ne($,1,()=>F,ce,(se,d)=>{var L=Er(),ie=s(L),Se=s(ie);{var Be=de=>{var ue=q(),dr=O(ue);ne(dr,1,()=>(e(d),o(()=>e(d).icon)),ce,(vr,cr)=>{var Ee=Gr();G(()=>_(Ee,"d",e(cr))),i(vr,Ee)}),i(de,ue)},nr=de=>{var ue=Or();G(()=>_(ue,"d",(e(d),o(()=>e(d).icon)))),i(de,ue)};w(Se,de=>{e(d),o(()=>Array.isArray(e(d).icon))?de(Be):de(nr,!1)})}t(ie);var lr=l(ie);t(L),G(()=>{_(L,"href",(e(d),o(()=>e(d).href))),N(L,1,`group flex items-center px-2 py-2 text-base font-medium rounded-md transition-colors duration-200 - ${e(z),e(d),o(()=>e(z)===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(lr,` ${e(d),o(()=>e(d).label)??""}`)}),V("click",L,()=>b(M,!1)),i(se,L)});var A=l($,2);ne(A,5,()=>le,ce,(se,d)=>{var L=Dr(),ie=s(L),Se=s(ie);t(ie);var Be=l(ie);t(L),G(()=>{_(L,"href",(e(d),o(()=>e(d).href))),N(L,1,`group flex items-center px-2 py-2 text-base font-medium rounded-md transition-colors duration-200 - ${e(z),e(d),o(()=>e(z)===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")??""}`),_(Se,"d",(e(d),o(()=>e(d).icon))),ge(Be,` ${e(d),o(()=>e(d).label)??""}`)}),V("click",L,()=>b(M,!1)),i(se,L)}),t(A);var x=l(A,2),T=s(x);t(x),t(X),t(S),t(y),t(r),V("click",c,()=>b(M,!1)),V("keydown",c,se=>{se.key==="Escape"&&b(M,!1)}),V("click",f,()=>b(M,!1)),V("click",T,C),i(a,r)};w(tr,a=>{e(M)&&a(or)})}t(we);var sr=l(we,2);{var ir=a=>{var r=Nr();V("click",r,()=>b(m,!1)),V("keydown",r,c=>{c.key==="Escape"&&b(m,!1)}),i(a,r)};w(sr,a=>{e(m)&&a(ir)})}G((a,r,c,y,B)=>{_(K,"href",a),_(P,"src",r),_(k,"src",c),_(be,"title",e(I)?"Switch to Light Mode":"Switch to Dark Mode"),_(ze,"src",y),N(ze,1,`${e(I)?"hidden":"block"} h-8 w-8`),_(Ce,"src",B),N(Ce,1,`${e(I)?"block":"hidden"} h-8 w-8`)},[()=>(fe(n),o(()=>n("/"))),()=>(fe(n),o(()=>n("/assets/garm-light.svg"))),()=>(fe(n),o(()=>n("/assets/garm-dark.svg"))),()=>(fe(n),o(()=>n("/assets/garm-light.svg"))),()=>(fe(n),o(()=>n("/assets/garm-dark.svg")))]),V("click",be,u),V("click",We,C),V("click",Ge,()=>b(M,!e(M))),V("click",He,u),i(Z,J),Ve(),he()}var Fr=g("
"),Jr=g('

'),Kr=g('
');function Wr(Z,ee){Ae(ee,!1);const[re,he]=Re(),p=()=>xe(qe,"$toastStore",re),E=U();function R(m){switch(m){case"success":return` - - `;case"error":return` - - `;case"warning":return` - - `;case"info":default:return` - - `}}function h(m){switch(m){case"success":return"bg-green-50 dark:bg-green-900 border-green-200 dark:border-green-700";case"error":return"bg-red-50 dark:bg-red-900 border-red-200 dark:border-red-700";case"warning":return"bg-yellow-50 dark:bg-yellow-900 border-yellow-200 dark:border-yellow-700";case"info":default:return"bg-blue-50 dark:bg-blue-900 border-blue-200 dark:border-blue-700"}}function I(m){switch(m){case"success":return"text-green-800 dark:text-green-200";case"error":return"text-red-800 dark:text-red-200";case"warning":return"text-yellow-800 dark:text-yellow-200";case"info":default:return"text-blue-800 dark:text-blue-200"}}function z(m){switch(m){case"success":return"text-green-700 dark:text-green-300";case"error":return"text-red-700 dark:text-red-300";case"warning":return"text-yellow-700 dark:text-yellow-300";case"info":default:return"text-blue-700 dark:text-blue-300"}}Q(()=>p(),()=>{b(E,p())}),Le(),$e();var M=Kr();ne(M,5,()=>e(E),m=>m.id,(m,v)=>{var u=Jr(),C=s(u),F=s(C),le=s(F);fr(le,()=>(e(v),o(()=>R(e(v).type)))),t(F);var J=l(F,2),j=s(J),D=s(j,!0);t(j);var ae=l(j,2);{var te=k=>{var H=Fr(),oe=s(H,!0);t(H),G(W=>{N(H,1,`mt-1 text-sm ${W??""}`),ge(oe,(e(v),o(()=>e(v).message)))},[()=>(e(v),o(()=>z(e(v).type)))]),i(k,H)};w(ae,k=>{e(v),o(()=>e(v).message)&&k(te)})}t(J);var K=l(J,2),P=s(K);{let k=gr(()=>(e(v),o(()=>e(v).type==="success"?"text-green-400 hover:text-green-500 focus:ring-green-500":e(v).type==="error"?"text-red-400 hover:text-red-500 focus:ring-red-500":e(v).type==="warning"?"text-yellow-400 hover:text-yellow-500 focus:ring-yellow-500":"text-blue-400 hover:text-blue-500 focus:ring-blue-500")));mr(P,{variant:"ghost",size:"sm","aria-label":"Dismiss notification",icon:"",get class(){return e(k)},$$events:{click:()=>qe.remove(e(v).id)}})}t(K),t(C),t(u),G((k,H)=>{N(u,1,`relative rounded-lg border p-4 shadow-lg transition-all duration-300 ease-in-out ${k??""}`),N(j,1,`text-sm font-medium ${H??""}`),ge(D,(e(v),o(()=>e(v).title)))},[()=>(e(v),o(()=>h(e(v).type))),()=>(e(v),o(()=>I(e(v).type)))]),i(m,u)}),t(M),i(Z,M),Ve(),he()}var Xr=g('

Loading...

'),Yr=g('

Redirecting to login...

'),Zr=g('
'),ea=g(" ",1);function fa(Z,ee){Ae(ee,!1);const[re,he]=Re(),p=()=>xe(xr,"$authStore",re),E=U(),R=U(),h=U();Ne(()=>{Ue.init(),ke.init(),setTimeout(()=>{const u=ve.url.pathname===n("/login"),C=ve.url.pathname===n("/init");!u&&!C&&!p().isAuthenticated&&!p().loading&&(p().needsInitialization?me(n("/init")):me(n("/login")))},200)}),Q(()=>(p(),me),()=>{if(!p().loading){const u=ve.url.pathname===n("/login"),C=ve.url.pathname===n("/init");!u&&!C&&!p().isAuthenticated&&(p().needsInitialization?me(n("/init")):me(n("/login")))}}),Q(()=>n,()=>{b(E,ve.url.pathname===n("/login"))}),Q(()=>n,()=>{b(R,ve.url.pathname===n("/init"))}),Q(()=>(e(E),e(R)),()=>{b(h,!e(E)&&!e(R))}),Le(),$e();var I=ea();hr(u=>{ur.title="GARM - GitHub Actions Runner Manager"});var z=O(I);{var M=u=>{var C=Xr();i(u,C)},m=u=>{var C=q(),F=O(C);{var le=j=>{var D=Yr();i(j,D)},J=j=>{var D=q(),ae=O(D);{var te=P=>{var k=q(),H=O(k);De(H,ee,"default",{}),i(P,k)},K=P=>{var k=Zr(),H=s(k);Qr(H,{});var oe=l(H,2),W=s(oe),pe=s(W),ye=s(pe);De(ye,ee,"default",{}),t(pe),t(W),t(oe),t(k),i(P,k)};w(ae,P=>{e(E)||e(R)?P(te):P(K,!1)},!0)}i(j,D)};w(F,j=>{e(h),p(),o(()=>e(h)&&!p().isAuthenticated)?j(le):j(J,!1)},!0)}i(u,C)};w(z,u=>{p(),o(()=>p().loading)?u(M):u(m,!1)})}var v=l(z,2);Wr(v,{}),i(Z,I),Ve(),he()}export{fa as component,ua as universal}; diff --git a/webapp/assets/_app/immutable/nodes/1.BQyKnLFk.js b/webapp/assets/_app/immutable/nodes/1.BVDX-kKb.js similarity index 84% rename from webapp/assets/_app/immutable/nodes/1.BQyKnLFk.js rename to webapp/assets/_app/immutable/nodes/1.BVDX-kKb.js index 63c5549f..9cbefcd0 100644 --- a/webapp/assets/_app/immutable/nodes/1.BQyKnLFk.js +++ b/webapp/assets/_app/immutable/nodes/1.BVDX-kKb.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as h}from"../chunks/C7KraPli.js";import{p as c,f as l,a as v,t as u,b as _,c as d,d as s,r as e,s as g,e as p}from"../chunks/cPTQ2Ibn.js";import{p as o}from"../chunks/BgSaD1r_.js";var x=l("

",1);function q(i,m){c(m,!1),h();var t=x(),r=v(t),f=s(r,!0);e(r);var a=g(r,2),n=s(a,!0);e(a),u(()=>{p(f,o.status),p(n,o.error?.message)}),_(i,t),d()}export{q as component}; +import"../chunks/DsnmJJEf.js";import{i as h}from"../chunks/C7KraPli.js";import{p as c,f as l,a as v,t as u,b as _,c as d,d as s,r as e,s as g,e as p}from"../chunks/cPTQ2Ibn.js";import{p as o}from"../chunks/DMSCYqmZ.js";var x=l("

",1);function q(i,m){c(m,!1),h();var t=x(),r=v(t),f=s(r,!0);e(r);var a=g(r,2),n=s(a,!0);e(a),u(()=>{p(f,o.status),p(n,o.error?.message)}),_(i,t),d()}export{q as component}; diff --git a/webapp/assets/_app/immutable/nodes/10.BTAzlY6Z.js b/webapp/assets/_app/immutable/nodes/10.ClLNNemr.js similarity index 94% rename from webapp/assets/_app/immutable/nodes/10.BTAzlY6Z.js rename to webapp/assets/_app/immutable/nodes/10.ClLNNemr.js index a9251324..7efde9c5 100644 --- a/webapp/assets/_app/immutable/nodes/10.BTAzlY6Z.js +++ b/webapp/assets/_app/immutable/nodes/10.ClLNNemr.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as Z}from"../chunks/C7KraPli.js";import{p as ee,o as ae,l as re,h as te,f as K,j as se,t as _,g as a,i as k,b as w,c as de,$ as oe,s as d,D as ie,m as f,d as r,u as q,q as B,k as i,r as t,z as D,e as I}from"../chunks/cPTQ2Ibn.js";import{i as le,s as ne,a as ce}from"../chunks/DqFqoVWr.js";import{B as me,d as l,c as T,r as U}from"../chunks/DqbUkQgD.js";import{b as C}from"../chunks/B-_QCM7E.js";import{p as ue}from"../chunks/D4Caz1gY.js";import{g as H}from"../chunks/CTvJf3dP.js";import{a as pe,b as ve}from"../chunks/BVyy60Ai.js";import{e as fe}from"../chunks/BZiHL9L3.js";var ge=K('

'),he=K('
GARM

Sign in to GARM

GitHub Actions Runner Manager

');function Ae(W,F){ee(F,!1);const[J,N]=ne(),$=()=>ce(pe,"$authStore",J);let m=f(""),u=f(""),o=f(!1),n=f("");ae(()=>{O()});function O(){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(n,"Please enter both username and password");return}i(o,!0),i(n,"");try{await ve.login(a(m),a(u)),H(l("/"))}catch(e){i(n,fe(e))}finally{i(o,!1)}}function L(e){e.key==="Enter"&&M()}re(()=>($(),l),()=>{$().isAuthenticated&&H(l("/"))}),te(),Z();var g=he();se(e=>{oe.title="Login - GARM"});var z=r(g),h=r(z),A=r(h),S=r(A),Q=d(S,2);t(A),D(4),t(h);var b=d(h,2),x=r(b),y=r(x),p=d(r(y),2);U(p),t(y);var P=d(y,2),v=d(r(P),2);U(v),t(P),t(x);var G=d(x,2);{var V=e=>{var s=ge(),c=r(s),E=d(r(c),2),j=r(E),Y=r(j,!0);t(j),t(E),t(c),t(s),_(()=>I(Y,a(n))),w(e,s)};le(G,e=>{a(n)&&e(V)})}var R=d(G,2),X=r(R);me(X,{type:"submit",variant:"primary",size:"md",fullWidth:!0,get disabled(){return a(o)},get loading(){return a(o)},children:(e,s)=>{D();var c=ie();_(()=>I(c,a(o)?"Signing in...":"Sign in")),w(e,c)},$$slots:{default:!0}}),t(R),t(b),t(z),t(g),_((e,s)=>{T(S,"src",e),T(Q,"src",s),p.disabled=a(o),v.disabled=a(o)},[()=>(B(l),q(()=>l("/assets/garm-light.svg"))),()=>(B(l),q(()=>l("/assets/garm-dark.svg")))]),C(p,()=>a(m),e=>i(m,e)),k("keypress",p,L),C(v,()=>a(u),e=>i(u,e)),k("keypress",v,L),k("submit",b,ue(M)),w(W,g),de(),N()}export{Ae as component}; +import"../chunks/DsnmJJEf.js";import{i as Z}from"../chunks/C7KraPli.js";import{p as ee,o as ae,l as re,h as te,f as K,j as se,t as _,g as a,i as k,b as w,c as de,$ as oe,s as d,D as ie,m as f,d as r,u as q,q as B,k as i,r as t,z as D,e as I}from"../chunks/cPTQ2Ibn.js";import{i as le,s as ne,a as ce}from"../chunks/DqFqoVWr.js";import{B as me,d as l,c as T,r as U}from"../chunks/yWyZZHPR.js";import{b as C}from"../chunks/B-_QCM7E.js";import{p as ue}from"../chunks/D4Caz1gY.js";import{g as H}from"../chunks/Br47IbuU.js";import{a as pe,b as ve}from"../chunks/DVwzA4-Q.js";import{e as fe}from"../chunks/BZiHL9L3.js";var ge=K('

'),he=K('
GARM

Sign in to GARM

GitHub Actions Runner Manager

');function Ae(W,F){ee(F,!1);const[J,N]=ne(),$=()=>ce(pe,"$authStore",J);let m=f(""),u=f(""),o=f(!1),n=f("");ae(()=>{O()});function O(){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(n,"Please enter both username and password");return}i(o,!0),i(n,"");try{await ve.login(a(m),a(u)),H(l("/"))}catch(e){i(n,fe(e))}finally{i(o,!1)}}function L(e){e.key==="Enter"&&M()}re(()=>($(),l),()=>{$().isAuthenticated&&H(l("/"))}),te(),Z();var g=he();se(e=>{oe.title="Login - GARM"});var z=r(g),h=r(z),A=r(h),S=r(A),Q=d(S,2);t(A),D(4),t(h);var b=d(h,2),x=r(b),y=r(x),p=d(r(y),2);U(p),t(y);var P=d(y,2),v=d(r(P),2);U(v),t(P),t(x);var G=d(x,2);{var V=e=>{var s=ge(),c=r(s),E=d(r(c),2),j=r(E),Y=r(j,!0);t(j),t(E),t(c),t(s),_(()=>I(Y,a(n))),w(e,s)};le(G,e=>{a(n)&&e(V)})}var R=d(G,2),X=r(R);me(X,{type:"submit",variant:"primary",size:"md",fullWidth:!0,get disabled(){return a(o)},get loading(){return a(o)},children:(e,s)=>{D();var c=ie();_(()=>I(c,a(o)?"Signing in...":"Sign in")),w(e,c)},$$slots:{default:!0}}),t(R),t(b),t(z),t(g),_((e,s)=>{T(S,"src",e),T(Q,"src",s),p.disabled=a(o),v.disabled=a(o)},[()=>(B(l),q(()=>l("/assets/garm-light.svg"))),()=>(B(l),q(()=>l("/assets/garm-dark.svg")))]),C(p,()=>a(m),e=>i(m,e)),k("keypress",p,L),C(v,()=>a(u),e=>i(u,e)),k("keypress",v,L),k("submit",b,ue(M)),w(W,g),de(),N()}export{Ae as component}; diff --git a/webapp/assets/_app/immutable/nodes/11.kE-kE_J5.js b/webapp/assets/_app/immutable/nodes/11.CH-gQqkl.js similarity index 95% rename from webapp/assets/_app/immutable/nodes/11.kE-kE_J5.js rename to webapp/assets/_app/immutable/nodes/11.CH-gQqkl.js index 55bd2097..1a8c9e9e 100644 --- a/webapp/assets/_app/immutable/nodes/11.kE-kE_J5.js +++ b/webapp/assets/_app/immutable/nodes/11.CH-gQqkl.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as Le}from"../chunks/C7KraPli.js";import{p as Ne,E as Qe,o as je,l as x,k as a,m as s,g as e,w as W,h as qe,f as T,s as i,d as o,r as n,b as E,t as Q,e as ie,y as Ae,u as v,z as Fe,i as $e,c as Ge,j as Xe,a as Ze,$ as et,q as P,v as ue}from"../chunks/cPTQ2Ibn.js";import{a as He,i as X,s as Je}from"../chunks/DqFqoVWr.js";import{r as ge,b as Ue,h as tt,d as Ie,c as at,g as me}from"../chunks/DqbUkQgD.js";import{e as rt,i as ot}from"../chunks/CiWDXYQd.js";import{b as Re,a as We}from"../chunks/B-_QCM7E.js";import{p as nt}from"../chunks/D4Caz1gY.js";import{M as it}from"../chunks/Bo3f8OIz.js";import{F as st}from"../chunks/Cqnw7O8j.js";import{e as Pe}from"../chunks/BZiHL9L3.js";import{e as Ve,a as Me}from"../chunks/JUkrBp3F.js";import{U as lt}from"../chunks/B1V2wE0x.js";import{D as dt}from"../chunks/91PQ6UtW.js";import{P as ct}from"../chunks/U3V4g_hv.js";import{t as K}from"../chunks/Bgbd8SZ5.js";import{B as ut,k as Ce,g as Oe,l as gt}from"../chunks/DJsB5Z5V.js";import{D as mt,G as pt,A as ft}from"../chunks/Du50aAe5.js";import{A as Be}from"../chunks/C2rI8IaC.js";import{E as bt}from"../chunks/CPFytHjx.js";import{E as vt}from"../chunks/CYqkNFLz.js";import{S as yt}from"../chunks/BZ2WxPPD.js";var ht=T('

'),_t=T('

Loading...

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

Webhook secret will be automatically generated

'),zt=T('
'),$t=T('

Create Organization

');function Ct(pe,fe){Ne(fe,!1);const[be,ve]=Je(),f=()=>He(Ve,"$eagerCache",be),D=s(),w=s(),z=s(),Z=s(),$=Qe();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(),it(pe,{$$events:{close:()=>$("close")},children:(d,L)=>{var ee=$t(),N=i(o(ee),2);{var te=h=>{var _=ht(),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 _=_t();E(h,_)},ke=h=>{var _=zt(),F=o(_);st(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);rt(we,1,()=>e(z),ot,(l,m)=>{var O=xt(),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=kt();ge(m),Re(m,()=>e(r).webhook_secret,O=>W(r,e(r).webhook_secret=O)),E(l,m)},ne=l=>{var m=wt();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",_,nt(he)),E(h,_)};X(_e,h=>{e(C)?h(xe):h(ke,!1)})}n(ee),E(d,ee)},$$slots:{default:!0}}),Ge(),ve()}var Ot=T(''),Pt=T('
',1);function Qt(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:bt,cellProps:{entityType:"organization"}},{key:"endpoint",title:"Endpoint",cellComponent:vt},{key:"credentials",title:"Credentials",cellComponent:pt,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:yt,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:ft}],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,gt(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=Pt();Xe(t=>{et.title="Organizations - GARM"});var S=Ze(j),q=o(S);ct(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));mt(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=Ot(),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);tt(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);ut(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(Ke=>{at(Y,"href",Ke),ie(ze,(P(e(g)),v(()=>e(g).name))),ie(ce,(P(e(g)),v(()=>e(g).endpoint?.name||"Unknown")))},[()=>(P(Ie),P(e(g)),v(()=>Ie(`/organizations/${e(g).id}`)))]),E(I,ne)}}})}n(S);var G=i(S,2);{var ae=t=>{Ct(t,{$$events:{close:()=>a(p,!1),submit:he}})};X(G,t=>{e(p)&&t(ae)})}var H=i(G,2);{var le=t=>{lt(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=>{dt(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{Qt as component}; +import"../chunks/DsnmJJEf.js";import{i as Le}from"../chunks/C7KraPli.js";import{p as Ne,E as Qe,o as je,l as x,k as a,m as s,g as e,w as W,h as qe,f as T,s as i,d as o,r as n,b as E,t as Q,e as ie,y as Ae,u as v,z as Fe,i as $e,c as Ge,j as Xe,a as Ze,$ as et,q as P,v as ue}from"../chunks/cPTQ2Ibn.js";import{a as He,i as X,s as Je}from"../chunks/DqFqoVWr.js";import{r as ge,b as Ue,h as tt,d as Ie,c as at,g as me}from"../chunks/yWyZZHPR.js";import{e as rt,i as ot}from"../chunks/CiWDXYQd.js";import{b as Re,a as We}from"../chunks/B-_QCM7E.js";import{p as nt}from"../chunks/D4Caz1gY.js";import{M as it}from"../chunks/ao5EljEX.js";import{F as st}from"../chunks/DDJerweA.js";import{e as Pe}from"../chunks/BZiHL9L3.js";import{e as Ve,a as Me}from"../chunks/C01HillC.js";import{U as lt}from"../chunks/MwmEfQpp.js";import{D as dt}from"../chunks/Cpm0auuQ.js";import{P as ct}from"../chunks/BtskFTeb.js";import{t as K}from"../chunks/Bgbd8SZ5.js";import{B as ut,k as Ce,g as Oe,l as gt}from"../chunks/Cr2hBuns.js";import{D as mt,G as pt,A as ft}from"../chunks/BIepGqC5.js";import{A as Be}from"../chunks/B_RLftTg.js";import{E as bt}from"../chunks/CVL5tSYq.js";import{E as vt}from"../chunks/C6PRls9Y.js";import{S as yt}from"../chunks/CMG1iQmM.js";var ht=T('

'),_t=T('

Loading...

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

Webhook secret will be automatically generated

'),zt=T('
'),$t=T('

Create Organization

');function Ct(pe,fe){Ne(fe,!1);const[be,ve]=Je(),f=()=>He(Ve,"$eagerCache",be),D=s(),w=s(),z=s(),Z=s(),$=Qe();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(),it(pe,{$$events:{close:()=>$("close")},children:(d,L)=>{var ee=$t(),N=i(o(ee),2);{var te=h=>{var _=ht(),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 _=_t();E(h,_)},ke=h=>{var _=zt(),F=o(_);st(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);rt(we,1,()=>e(z),ot,(l,m)=>{var O=xt(),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=kt();ge(m),Re(m,()=>e(r).webhook_secret,O=>W(r,e(r).webhook_secret=O)),E(l,m)},ne=l=>{var m=wt();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",_,nt(he)),E(h,_)};X(_e,h=>{e(C)?h(xe):h(ke,!1)})}n(ee),E(d,ee)},$$slots:{default:!0}}),Ge(),ve()}var Ot=T(''),Pt=T('
',1);function Qt(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:bt,cellProps:{entityType:"organization"}},{key:"endpoint",title:"Endpoint",cellComponent:vt},{key:"credentials",title:"Credentials",cellComponent:pt,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:yt,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:ft}],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,gt(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=Pt();Xe(t=>{et.title="Organizations - GARM"});var S=Ze(j),q=o(S);ct(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));mt(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=Ot(),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);tt(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);ut(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(Ke=>{at(Y,"href",Ke),ie(ze,(P(e(g)),v(()=>e(g).name))),ie(ce,(P(e(g)),v(()=>e(g).endpoint?.name||"Unknown")))},[()=>(P(Ie),P(e(g)),v(()=>Ie(`/organizations/${e(g).id}`)))]),E(I,ne)}}})}n(S);var G=i(S,2);{var ae=t=>{Ct(t,{$$events:{close:()=>a(p,!1),submit:he}})};X(G,t=>{e(p)&&t(ae)})}var H=i(G,2);{var le=t=>{lt(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=>{dt(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{Qt as component}; diff --git a/webapp/assets/_app/immutable/nodes/12.4nNpW1qS.js b/webapp/assets/_app/immutable/nodes/12.C8GWS3WC.js similarity index 93% rename from webapp/assets/_app/immutable/nodes/12.4nNpW1qS.js rename to webapp/assets/_app/immutable/nodes/12.C8GWS3WC.js index c3a5c1dc..d3c7c186 100644 --- a/webapp/assets/_app/immutable/nodes/12.4nNpW1qS.js +++ b/webapp/assets/_app/immutable/nodes/12.C8GWS3WC.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as We}from"../chunks/C7KraPli.js";import{p as qe,o as He,A as je,l as Ge,h as Re,f as B,j as Ve,a as C,t as j,b as x,c as Je,u as i,q as de,e as ce,g as e,m as l,d as f,s as d,k as o,$ as Ke,r as m,w as Qe,B as ue,v as g}from"../chunks/cPTQ2Ibn.js";import{i as h,s as Xe,a as Ye}from"../chunks/DqFqoVWr.js";import{d as A,c as Ze,g as _}from"../chunks/DqbUkQgD.js";import{p as et}from"../chunks/DVsSf1wv.js";import{g as fe}from"../chunks/CTvJf3dP.js";import{U as tt}from"../chunks/B1V2wE0x.js";import{D as me}from"../chunks/91PQ6UtW.js";import{E as at,P as nt,a as ot}from"../chunks/WI-og7-I.js";import{D as rt}from"../chunks/oOdVuDuv.js";import{g as ge}from"../chunks/DJsB5Z5V.js";import{e as S}from"../chunks/BZiHL9L3.js";import{I as it}from"../chunks/DliFOxtc.js";import{W as st}from"../chunks/C7KJ549w.js";import{C as lt}from"../chunks/DPR9Z_fe.js";import{w as G}from"../chunks/BV_mDmfH.js";import{t as I}from"../chunks/Bgbd8SZ5.js";var dt=B('

Loading organization...

'),ct=B('

'),ut=B(" ",1),ft=B(' ',1);function Mt(pe,ve){qe(ve,!1);const[ye,he]=Xe(),R=()=>Ye(et,"$page",ye),w=l();let a=l(null),c=l([]),p=l([]),F=l(!0),O=l(""),D=l(!1),P=l(!1),E=l(!1),T=l(!1),u=l(null),M=null,b=l();async function V(){if(e(w))try{o(F,!0),o(O,"");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(O,S(t))}finally{o(F,!1)}}function _e(t,n){const{events:r}=t;return{...n,events:r}}async function be(t){if(e(a))try{await _.updateOrganization(e(a).id,t),await V(),I.success("Organization Updated",`Organization ${e(a).name} has been updated successfully.`),o(D,!1)}catch(n){throw n}}async function ze(){if(e(a)){try{await _.deleteOrganization(e(a).id),fe(A("/organizations"))}catch(t){const n=S(t);I.error("Delete Failed",n)}o(P,!1)}}async function $e(){if(e(u))try{await _.deleteInstance(e(u).name),I.success("Instance Deleted",`Instance ${e(u).name} has been deleted successfully.`),o(E,!1),o(u,null)}catch(t){const n=S(t);I.error("Delete Failed",n),o(E,!1),o(u,null)}}function xe(t){o(u,t),o(E,!0)}function Ie(){o(T,!0)}async function we(t){try{if(!e(a))return;await _.createOrganizationPool(e(a).id,t.detail),I.success("Pool Created",`Pool has been created successfully for organization ${e(a).name}.`),o(T,!1)}catch(n){const r=S(n);I.error("Pool Creation Failed",r)}}function J(){e(b)&&Qe(b,e(b).scrollTop=e(b).scrollHeight)}function Ee(t){if(t.operation==="update"){const n=t.payload;if(e(a)&&n.id===e(a).id){const r=e(a).events?.length||0,s=n.events?.length||0;o(a,_e(e(a),n)),s>r&&setTimeout(()=>{J()},100)}}else if(t.operation==="delete"){const n=t.payload.id||t.payload;e(a)&&e(a).id===n&&fe(A("/organizations"))}}function Oe(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(s=>s.id!==r))}}}function De(t){if(!e(a)||!e(c))return;const n=t.payload;if(e(c).some(s=>s.id===n.pool_id)){if(t.operation==="create")o(p,[...e(p),n]);else if(t.operation==="update")o(p,e(p).map(s=>s.id===n.id?n:s));else if(t.operation==="delete"){const s=n.id||n;o(p,e(p).filter(W=>W.id!==s))}}}He(()=>{V().then(()=>{e(a)?.events?.length&&setTimeout(()=>{J()},100)});const t=G.subscribeToEntity("organization",["update","delete"],Ee),n=G.subscribeToEntity("pool",["create","update","delete"],Oe),r=G.subscribeToEntity("instance",["create","update","delete"],De);M=()=>{t(),n(),r()}}),je(()=>{M&&(M(),M=null)}),Ge(()=>R(),()=>{o(w,R().params.id)}),Re(),We();var K=ft();Ve(t=>{j(()=>Ke.title=`${e(a),i(()=>e(a)?`${e(a).name} - Organization Details`:"Organization Details")??""} - GARM`)});var U=C(K),L=f(U),Q=f(L),N=f(Q),Pe=f(N);m(N);var X=d(N,2),Y=f(X),Z=d(f(Y),2),Te=f(Z,!0);m(Z),m(Y),m(X),m(Q),m(L);var Me=d(L,2);{var ke=t=>{var n=dt();x(t,n)},Ce=t=>{var n=ue(),r=C(n);{var s=z=>{var $=ct(),k=f($),q=f(k,!0);m(k),m($),j(()=>ce(q,e(O))),x(z,$)},W=z=>{var $=ue(),k=C($);{var q=H=>{var ne=ut(),oe=C(ne);{let v=g(()=>(e(a),i(()=>e(a).name||"Organization"))),y=g(()=>(e(a),i(()=>e(a).endpoint?.name))),Ne=g(()=>(de(ge),e(a),i(()=>ge(e(a).endpoint?.endpoint_type||"unknown"))));rt(oe,{get title(){return e(v)},get subtitle(){return`Endpoint: ${e(y)??""}`},get forgeIcon(){return e(Ne)},onEdit:()=>o(D,!0),onDelete:()=>o(P,!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),i(()=>e(a).id||""))),y=g(()=>(e(a),i(()=>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),i(()=>e(a).id||""))),y=g(()=>(e(a),i(()=>e(a).name||"")));nt(se,{get pools(){return e(c)},entityType:"organization",get entityId(){return e(v)},get entityName(){return e(y)},$$events:{addPool:Ie}})}var le=d(se,2);it(le,{get instances(){return e(p)},entityType:"organization",onDeleteInstance:xe});var Le=d(le,2);{let v=g(()=>(e(a),i(()=>e(a)?.events)));ot(Le,{get events(){return e(v)},get eventsContainer(){return e(b)},set eventsContainer(y){o(b,y)},$$legacy:!0})}x(H,ne)};h(k,H=>{e(a)&&H(q)},!0)}x(z,$)};h(r,z=>{e(O)?z(s):z(W,!1)},!0)}x(t,n)};h(Me,t=>{e(F)?t(ke):t(Ce,!1)})}m(U);var ee=d(U,2);{var Ae=t=>{tt(t,{get entity(){return e(a)},entityType:"organization",$$events:{close:()=>o(D,!1),submit:n=>be(n.detail)}})};h(ee,t=>{e(D)&&e(a)&&t(Ae)})}var te=d(ee,2);{var Se=t=>{me(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),i(()=>e(a).name)},$$events:{close:()=>o(P,!1),confirm:ze}})};h(te,t=>{e(P)&&e(a)&&t(Se)})}var ae=d(te,2);{var Be=t=>{me(t,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(u),i(()=>e(u).name)},$$events:{close:()=>{o(E,!1),o(u,null)},confirm:$e}})};h(ae,t=>{e(E)&&e(u)&&t(Be)})}var Fe=d(ae,2);{var Ue=t=>{{let n=g(()=>(e(a),i(()=>e(a).id||"")));lt(t,{initialEntityType:"organization",get initialEntityId(){return e(n)},$$events:{close:()=>o(T,!1),submit:we}})}};h(Fe,t=>{e(T)&&e(a)&&t(Ue)})}j(t=>{Ze(Pe,"href",t),ce(Te,(e(a),i(()=>e(a)?e(a).name:"Loading...")))},[()=>(de(A),i(()=>A("/organizations")))]),x(pe,K),Je(),he()}export{Mt as component}; +import"../chunks/DsnmJJEf.js";import{i as We}from"../chunks/C7KraPli.js";import{p as qe,o as He,A as je,l as Ge,h as Re,f as B,j as Ve,a as C,t as j,b as x,c as Je,u as i,q as de,e as ce,g as e,m as l,d as f,s as d,k as o,$ as Ke,r as m,w as Qe,B as ue,v as g}from"../chunks/cPTQ2Ibn.js";import{i as h,s as Xe,a as Ye}from"../chunks/DqFqoVWr.js";import{d as A,c as Ze,g as _}from"../chunks/yWyZZHPR.js";import{p as et}from"../chunks/Crr6XDlZ.js";import{g as fe}from"../chunks/Br47IbuU.js";import{U as tt}from"../chunks/MwmEfQpp.js";import{D as me}from"../chunks/Cpm0auuQ.js";import{E as at,P as nt,a as ot}from"../chunks/CSF6MBq7.js";import{D as rt}from"../chunks/CDgX_mkE.js";import{g as ge}from"../chunks/Cr2hBuns.js";import{e as S}from"../chunks/BZiHL9L3.js";import{I as it}from"../chunks/VkS8dDRx.js";import{W as st}from"../chunks/kPsHrhth.js";import{C as lt}from"../chunks/BIkO7LkR.js";import{w as G}from"../chunks/BV_mDmfH.js";import{t as I}from"../chunks/Bgbd8SZ5.js";var dt=B('

Loading organization...

'),ct=B('

'),ut=B(" ",1),ft=B(' ',1);function Mt(pe,ve){qe(ve,!1);const[ye,he]=Xe(),R=()=>Ye(et,"$page",ye),w=l();let a=l(null),c=l([]),p=l([]),F=l(!0),O=l(""),D=l(!1),P=l(!1),E=l(!1),T=l(!1),u=l(null),M=null,b=l();async function V(){if(e(w))try{o(F,!0),o(O,"");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(O,S(t))}finally{o(F,!1)}}function _e(t,n){const{events:r}=t;return{...n,events:r}}async function be(t){if(e(a))try{await _.updateOrganization(e(a).id,t),await V(),I.success("Organization Updated",`Organization ${e(a).name} has been updated successfully.`),o(D,!1)}catch(n){throw n}}async function ze(){if(e(a)){try{await _.deleteOrganization(e(a).id),fe(A("/organizations"))}catch(t){const n=S(t);I.error("Delete Failed",n)}o(P,!1)}}async function $e(){if(e(u))try{await _.deleteInstance(e(u).name),I.success("Instance Deleted",`Instance ${e(u).name} has been deleted successfully.`),o(E,!1),o(u,null)}catch(t){const n=S(t);I.error("Delete Failed",n),o(E,!1),o(u,null)}}function xe(t){o(u,t),o(E,!0)}function Ie(){o(T,!0)}async function we(t){try{if(!e(a))return;await _.createOrganizationPool(e(a).id,t.detail),I.success("Pool Created",`Pool has been created successfully for organization ${e(a).name}.`),o(T,!1)}catch(n){const r=S(n);I.error("Pool Creation Failed",r)}}function J(){e(b)&&Qe(b,e(b).scrollTop=e(b).scrollHeight)}function Ee(t){if(t.operation==="update"){const n=t.payload;if(e(a)&&n.id===e(a).id){const r=e(a).events?.length||0,s=n.events?.length||0;o(a,_e(e(a),n)),s>r&&setTimeout(()=>{J()},100)}}else if(t.operation==="delete"){const n=t.payload.id||t.payload;e(a)&&e(a).id===n&&fe(A("/organizations"))}}function Oe(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(s=>s.id!==r))}}}function De(t){if(!e(a)||!e(c))return;const n=t.payload;if(e(c).some(s=>s.id===n.pool_id)){if(t.operation==="create")o(p,[...e(p),n]);else if(t.operation==="update")o(p,e(p).map(s=>s.id===n.id?n:s));else if(t.operation==="delete"){const s=n.id||n;o(p,e(p).filter(W=>W.id!==s))}}}He(()=>{V().then(()=>{e(a)?.events?.length&&setTimeout(()=>{J()},100)});const t=G.subscribeToEntity("organization",["update","delete"],Ee),n=G.subscribeToEntity("pool",["create","update","delete"],Oe),r=G.subscribeToEntity("instance",["create","update","delete"],De);M=()=>{t(),n(),r()}}),je(()=>{M&&(M(),M=null)}),Ge(()=>R(),()=>{o(w,R().params.id)}),Re(),We();var K=ft();Ve(t=>{j(()=>Ke.title=`${e(a),i(()=>e(a)?`${e(a).name} - Organization Details`:"Organization Details")??""} - GARM`)});var U=C(K),L=f(U),Q=f(L),N=f(Q),Pe=f(N);m(N);var X=d(N,2),Y=f(X),Z=d(f(Y),2),Te=f(Z,!0);m(Z),m(Y),m(X),m(Q),m(L);var Me=d(L,2);{var ke=t=>{var n=dt();x(t,n)},Ce=t=>{var n=ue(),r=C(n);{var s=z=>{var $=ct(),k=f($),q=f(k,!0);m(k),m($),j(()=>ce(q,e(O))),x(z,$)},W=z=>{var $=ue(),k=C($);{var q=H=>{var ne=ut(),oe=C(ne);{let v=g(()=>(e(a),i(()=>e(a).name||"Organization"))),y=g(()=>(e(a),i(()=>e(a).endpoint?.name))),Ne=g(()=>(de(ge),e(a),i(()=>ge(e(a).endpoint?.endpoint_type||"unknown"))));rt(oe,{get title(){return e(v)},get subtitle(){return`Endpoint: ${e(y)??""}`},get forgeIcon(){return e(Ne)},onEdit:()=>o(D,!0),onDelete:()=>o(P,!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),i(()=>e(a).id||""))),y=g(()=>(e(a),i(()=>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),i(()=>e(a).id||""))),y=g(()=>(e(a),i(()=>e(a).name||"")));nt(se,{get pools(){return e(c)},entityType:"organization",get entityId(){return e(v)},get entityName(){return e(y)},$$events:{addPool:Ie}})}var le=d(se,2);it(le,{get instances(){return e(p)},entityType:"organization",onDeleteInstance:xe});var Le=d(le,2);{let v=g(()=>(e(a),i(()=>e(a)?.events)));ot(Le,{get events(){return e(v)},get eventsContainer(){return e(b)},set eventsContainer(y){o(b,y)},$$legacy:!0})}x(H,ne)};h(k,H=>{e(a)&&H(q)},!0)}x(z,$)};h(r,z=>{e(O)?z(s):z(W,!1)},!0)}x(t,n)};h(Me,t=>{e(F)?t(ke):t(Ce,!1)})}m(U);var ee=d(U,2);{var Ae=t=>{tt(t,{get entity(){return e(a)},entityType:"organization",$$events:{close:()=>o(D,!1),submit:n=>be(n.detail)}})};h(ee,t=>{e(D)&&e(a)&&t(Ae)})}var te=d(ee,2);{var Se=t=>{me(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),i(()=>e(a).name)},$$events:{close:()=>o(P,!1),confirm:ze}})};h(te,t=>{e(P)&&e(a)&&t(Se)})}var ae=d(te,2);{var Be=t=>{me(t,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(u),i(()=>e(u).name)},$$events:{close:()=>{o(E,!1),o(u,null)},confirm:$e}})};h(ae,t=>{e(E)&&e(u)&&t(Be)})}var Fe=d(ae,2);{var Ue=t=>{{let n=g(()=>(e(a),i(()=>e(a).id||"")));lt(t,{initialEntityType:"organization",get initialEntityId(){return e(n)},$$events:{close:()=>o(T,!1),submit:we}})}};h(Fe,t=>{e(T)&&e(a)&&t(Ue)})}j(t=>{Ze(Pe,"href",t),ce(Te,(e(a),i(()=>e(a)?e(a).name:"Loading...")))},[()=>(de(A),i(()=>A("/organizations")))]),x(pe,K),Je(),he()}export{Mt as component}; diff --git a/webapp/assets/_app/immutable/nodes/13.B0F9yHlE.js b/webapp/assets/_app/immutable/nodes/13.DkvBfG2H.js similarity index 88% rename from webapp/assets/_app/immutable/nodes/13.B0F9yHlE.js rename to webapp/assets/_app/immutable/nodes/13.DkvBfG2H.js index 0b05c384..1616a1d0 100644 --- a/webapp/assets/_app/immutable/nodes/13.B0F9yHlE.js +++ b/webapp/assets/_app/immutable/nodes/13.DkvBfG2H.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as ye}from"../chunks/C7KraPli.js";import{p as he,o as Pe,l as p,h as ve,f as J,j as Ce,a as _e,b as V,c as $e,g as t,m as r,$ as be,d as q,v as w,u as j,s as y,k as o,r as H,q as Me}from"../chunks/cPTQ2Ibn.js";import{i as _,s as Te,a as De}from"../chunks/DqFqoVWr.js";import{g as k}from"../chunks/DqbUkQgD.js";import{P as Ee}from"../chunks/U3V4g_hv.js";import{C as we}from"../chunks/DPR9Z_fe.js";import{U as ke}from"../chunks/2Xl6sR6s.js";import{D as Ae}from"../chunks/91PQ6UtW.js";import{M as Ie}from"../chunks/Bo3f8OIz.js";import{D as Se,G as A,A as xe,L as Fe}from"../chunks/Du50aAe5.js";import{e as Ue,a as z}from"../chunks/JUkrBp3F.js";import{t as u}from"../chunks/Bgbd8SZ5.js";import{e as $,h as Le}from"../chunks/DJsB5Z5V.js";import{e as b}from"../chunks/BZiHL9L3.js";import{E as Ne}from"../chunks/CPFytHjx.js";import{E as Re}from"../chunks/CYqkNFLz.js";import{S as Ge}from"../chunks/BZ2WxPPD.js";import{P as Ve}from"../chunks/BM4Azg_w.js";import"../chunks/D7e9zx6w.js";const B={};var qe=J('
'),je=J('
',1);function ct(K,O){he(O,!1);const[Q,W]=Te(),s=()=>De(Ue,"$eagerCache",Q),M=r(),c=r(),m=r(),I=r();let f=r([]),h=r(!0),S=r(""),P=r(""),n=r(1),d=r(25),v=r(!1),C=r(!1),g=r(!1),a=r(null),T=r(!1);async function X(e){try{u.success("Pool Created","Pool has been created successfully."),o(v,!1)}catch(l){const i=b(l);u.error("Pool Creation Failed",i)}}async function Y(e){if(t(a))try{await k.updatePool(t(a).id,e),o(C,!1),u.add({type:"success",title:"Pool Updated",message:`Pool ${t(a).id.slice(0,8)}... has been updated successfully.`}),o(a,null)}catch(l){const i=b(l);throw u.add({type:"error",title:"Update Failed",message:i}),l}}async function Z(){if(!t(a))return;const e=`Pool ${t(a).id.slice(0,8)}...`;try{await k.deletePool(t(a).id),o(g,!1),u.add({type:"success",title:"Pool Deleted",message:`${e} has been deleted successfully.`}),o(a,null)}catch(l){const i=b(l);u.add({type:"error",title:"Delete Failed",message:i})}o(g,!1),o(a,null)}function ee(){o(v,!0)}async function x(e){try{o(T,!0);const l=await k.getPool(e.id);o(a,l),o(C,!0)}catch(l){const i=b(l);u.error("Failed to Load Pool Details",i)}finally{o(T,!1)}}function F(e){o(a,e),o(g,!0)}Pe(async()=>{try{o(h,!0);const e=await z.getPools();e&&Array.isArray(e)&&o(f,e)}catch(e){B?.VITEST||console.error("Failed to load pools:",e),o(S,e instanceof Error?e.message:"Failed to load pools")}finally{o(h,!1)}});async function te(){try{await z.retryResource("pools")}catch(e){B?.VITEST||console.error("Retry failed:",e)}}const oe=[{key:"id",title:"ID",flexible:!0,cellComponent:Ne,cellProps:{entityType:"pool",showId:!0,fontMono:!0}},{key:"image",title:"Image",flexible:!0,cellComponent:A,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:A,cellProps:{field:"provider_name"}},{key:"flavor",title:"Flavor",cellComponent:A,cellProps:{field:"flavor"}},{key:"entity",title:"Entity",cellComponent:Ve},{key:"endpoint",title:"Endpoint",cellComponent:Re},{key:"status",title:"Status",cellComponent:Ge,cellProps:{statusType:"enabled"}},{key:"actions",title:"Actions",align:"right",cellComponent:xe}],ae={entityType:"pool",primaryText:{field:"id",isClickable:!0,href:"/pools/{id}",useId:!0,isMonospace:!0},secondaryText:{field:"entity_name",computedValue:e=>$(e,s())},badges:[{type:"custom",value:e=>({variant:e.enabled?"success":"error",text:e.enabled?"Enabled":"Disabled"})}],actions:[{type:"edit",handler:e=>x(e)},{type:"delete",handler:e=>F(e)}]};function le(e){o(P,e.detail.term),o(n,1)}function re(e){o(n,e.detail.page)}function se(e){o(d,e.detail.perPage),o(n,1)}function ne(e){x(e.detail.item)}function ie(e){F(e.detail.item)}p(()=>(t(f),s()),()=>{(!t(f).length||s().loaded.pools)&&o(f,s().pools)}),p(()=>s(),()=>{o(h,s().loading.pools)}),p(()=>s(),()=>{o(M,s().errorMessages.pools)}),p(()=>(t(f),t(P),s()),()=>{o(c,Le(t(f),t(P),e=>$(e,s())))}),p(()=>(t(c),t(d)),()=>{o(m,Math.ceil(t(c).length/t(d)))}),p(()=>(t(n),t(m)),()=>{t(n)>t(m)&&t(m)>0&&o(n,t(m))}),p(()=>(t(c),t(n),t(d)),()=>{o(I,t(c).slice((t(n)-1)*t(d),t(n)*t(d)))}),ve(),ye();var U=je();Ce(e=>{be.title="Pools - GARM"});var D=_e(U),L=q(D);Ee(L,{title:"Pools",description:"Manage runner pools across all entities",actionLabel:"Add Pool",$$events:{action:ee}});var ce=y(L,2);{let e=w(()=>t(M)||t(S)),l=w(()=>!!t(M));Se(ce,{get columns(){return oe},get data(){return t(I)},get loading(){return t(h)},get error(){return t(e)},get searchTerm(){return t(P)},searchPlaceholder:"Search by entity name...",get currentPage(){return t(n)},get perPage(){return t(d)},get totalPages(){return t(m)},get totalItems(){return t(c),j(()=>t(c).length)},itemName:"pools",emptyIconType:"cog",get showRetry(){return t(l)},get mobileCardConfig(){return ae},$$events:{search:le,pageChange:re,perPageChange:se,retry:te,edit:ne,delete:ie}})}H(D);var N=y(D,2);{var de=e=>{we(e,{$$events:{close:()=>o(v,!1),submit:X}})};_(N,e=>{t(v)&&e(de)})}var R=y(N,2);{var pe=e=>{ke(e,{get pool(){return t(a)},$$events:{close:()=>{o(C,!1),o(a,null)},submit:l=>Y(l.detail)}})};_(R,e=>{t(C)&&t(a)&&e(pe)})}var G=y(R,2);{var ue=e=>{{let l=w(()=>(t(a),Me($),s(),j(()=>`Pool ${t(a).id.slice(0,8)}... (${$(t(a),s())})`)));Ae(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(g,!1),o(a,null)},confirm:Z}})}};_(G,e=>{t(g)&&t(a)&&e(ue)})}var me=y(G,2);{var fe=e=>{Ie(e,{$$events:{close:()=>{}},children:(l,i)=>{var E=qe(),ge=q(E);Fe(ge,{message:"Loading pool details..."}),H(E),V(l,E)},$$slots:{default:!0}})};_(me,e=>{t(T)&&e(fe)})}V(K,U),$e(),W()}export{ct as component}; +import"../chunks/DsnmJJEf.js";import{i as ye}from"../chunks/C7KraPli.js";import{p as he,o as Pe,l as p,h as ve,f as J,j as Ce,a as _e,b as V,c as $e,g as t,m as r,$ as be,d as q,v as w,u as j,s as y,k as o,r as H,q as Me}from"../chunks/cPTQ2Ibn.js";import{i as _,s as Te,a as De}from"../chunks/DqFqoVWr.js";import{g as k}from"../chunks/yWyZZHPR.js";import{P as Ee}from"../chunks/BtskFTeb.js";import{C as we}from"../chunks/BIkO7LkR.js";import{U as ke}from"../chunks/YJXtpdqO.js";import{D as Ae}from"../chunks/Cpm0auuQ.js";import{M as Ie}from"../chunks/ao5EljEX.js";import{D as Se,G as A,A as xe,L as Fe}from"../chunks/BIepGqC5.js";import{e as Ue,a as z}from"../chunks/C01HillC.js";import{t as u}from"../chunks/Bgbd8SZ5.js";import{e as $,h as Le}from"../chunks/Cr2hBuns.js";import{e as b}from"../chunks/BZiHL9L3.js";import{E as Ne}from"../chunks/CVL5tSYq.js";import{E as Re}from"../chunks/C6PRls9Y.js";import{S as Ge}from"../chunks/CMG1iQmM.js";import{P as Ve}from"../chunks/DXLlGL2Y.js";import"../chunks/BMOcKgHw.js";const B={};var qe=J('
'),je=J('
',1);function ct(K,O){he(O,!1);const[Q,W]=Te(),s=()=>De(Ue,"$eagerCache",Q),M=r(),c=r(),m=r(),I=r();let f=r([]),h=r(!0),S=r(""),P=r(""),n=r(1),d=r(25),v=r(!1),C=r(!1),g=r(!1),a=r(null),T=r(!1);async function X(e){try{u.success("Pool Created","Pool has been created successfully."),o(v,!1)}catch(l){const i=b(l);u.error("Pool Creation Failed",i)}}async function Y(e){if(t(a))try{await k.updatePool(t(a).id,e),o(C,!1),u.add({type:"success",title:"Pool Updated",message:`Pool ${t(a).id.slice(0,8)}... has been updated successfully.`}),o(a,null)}catch(l){const i=b(l);throw u.add({type:"error",title:"Update Failed",message:i}),l}}async function Z(){if(!t(a))return;const e=`Pool ${t(a).id.slice(0,8)}...`;try{await k.deletePool(t(a).id),o(g,!1),u.add({type:"success",title:"Pool Deleted",message:`${e} has been deleted successfully.`}),o(a,null)}catch(l){const i=b(l);u.add({type:"error",title:"Delete Failed",message:i})}o(g,!1),o(a,null)}function ee(){o(v,!0)}async function x(e){try{o(T,!0);const l=await k.getPool(e.id);o(a,l),o(C,!0)}catch(l){const i=b(l);u.error("Failed to Load Pool Details",i)}finally{o(T,!1)}}function F(e){o(a,e),o(g,!0)}Pe(async()=>{try{o(h,!0);const e=await z.getPools();e&&Array.isArray(e)&&o(f,e)}catch(e){B?.VITEST||console.error("Failed to load pools:",e),o(S,e instanceof Error?e.message:"Failed to load pools")}finally{o(h,!1)}});async function te(){try{await z.retryResource("pools")}catch(e){B?.VITEST||console.error("Retry failed:",e)}}const oe=[{key:"id",title:"ID",flexible:!0,cellComponent:Ne,cellProps:{entityType:"pool",showId:!0,fontMono:!0}},{key:"image",title:"Image",flexible:!0,cellComponent:A,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:A,cellProps:{field:"provider_name"}},{key:"flavor",title:"Flavor",cellComponent:A,cellProps:{field:"flavor"}},{key:"entity",title:"Entity",cellComponent:Ve},{key:"endpoint",title:"Endpoint",cellComponent:Re},{key:"status",title:"Status",cellComponent:Ge,cellProps:{statusType:"enabled"}},{key:"actions",title:"Actions",align:"right",cellComponent:xe}],ae={entityType:"pool",primaryText:{field:"id",isClickable:!0,href:"/pools/{id}",useId:!0,isMonospace:!0},secondaryText:{field:"entity_name",computedValue:e=>$(e,s())},badges:[{type:"custom",value:e=>({variant:e.enabled?"success":"error",text:e.enabled?"Enabled":"Disabled"})}],actions:[{type:"edit",handler:e=>x(e)},{type:"delete",handler:e=>F(e)}]};function le(e){o(P,e.detail.term),o(n,1)}function re(e){o(n,e.detail.page)}function se(e){o(d,e.detail.perPage),o(n,1)}function ne(e){x(e.detail.item)}function ie(e){F(e.detail.item)}p(()=>(t(f),s()),()=>{(!t(f).length||s().loaded.pools)&&o(f,s().pools)}),p(()=>s(),()=>{o(h,s().loading.pools)}),p(()=>s(),()=>{o(M,s().errorMessages.pools)}),p(()=>(t(f),t(P),s()),()=>{o(c,Le(t(f),t(P),e=>$(e,s())))}),p(()=>(t(c),t(d)),()=>{o(m,Math.ceil(t(c).length/t(d)))}),p(()=>(t(n),t(m)),()=>{t(n)>t(m)&&t(m)>0&&o(n,t(m))}),p(()=>(t(c),t(n),t(d)),()=>{o(I,t(c).slice((t(n)-1)*t(d),t(n)*t(d)))}),ve(),ye();var U=je();Ce(e=>{be.title="Pools - GARM"});var D=_e(U),L=q(D);Ee(L,{title:"Pools",description:"Manage runner pools across all entities",actionLabel:"Add Pool",$$events:{action:ee}});var ce=y(L,2);{let e=w(()=>t(M)||t(S)),l=w(()=>!!t(M));Se(ce,{get columns(){return oe},get data(){return t(I)},get loading(){return t(h)},get error(){return t(e)},get searchTerm(){return t(P)},searchPlaceholder:"Search by entity name...",get currentPage(){return t(n)},get perPage(){return t(d)},get totalPages(){return t(m)},get totalItems(){return t(c),j(()=>t(c).length)},itemName:"pools",emptyIconType:"cog",get showRetry(){return t(l)},get mobileCardConfig(){return ae},$$events:{search:le,pageChange:re,perPageChange:se,retry:te,edit:ne,delete:ie}})}H(D);var N=y(D,2);{var de=e=>{we(e,{$$events:{close:()=>o(v,!1),submit:X}})};_(N,e=>{t(v)&&e(de)})}var R=y(N,2);{var pe=e=>{ke(e,{get pool(){return t(a)},$$events:{close:()=>{o(C,!1),o(a,null)},submit:l=>Y(l.detail)}})};_(R,e=>{t(C)&&t(a)&&e(pe)})}var G=y(R,2);{var ue=e=>{{let l=w(()=>(t(a),Me($),s(),j(()=>`Pool ${t(a).id.slice(0,8)}... (${$(t(a),s())})`)));Ae(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(g,!1),o(a,null)},confirm:Z}})}};_(G,e=>{t(g)&&t(a)&&e(ue)})}var me=y(G,2);{var fe=e=>{Ie(e,{$$events:{close:()=>{}},children:(l,i)=>{var E=qe(),ge=q(E);Fe(ge,{message:"Loading pool details..."}),H(E),V(l,E)},$$slots:{default:!0}})};_(me,e=>{t(T)&&e(fe)})}V(K,U),$e(),W()}export{ct as component}; diff --git a/webapp/assets/_app/immutable/nodes/14.FP7fqeji.js b/webapp/assets/_app/immutable/nodes/14.D-PSVsY_.js similarity index 97% rename from webapp/assets/_app/immutable/nodes/14.FP7fqeji.js rename to webapp/assets/_app/immutable/nodes/14.D-PSVsY_.js index 0e667efa..33e30533 100644 --- a/webapp/assets/_app/immutable/nodes/14.FP7fqeji.js +++ b/webapp/assets/_app/immutable/nodes/14.D-PSVsY_.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as ze}from"../chunks/C7KraPli.js";import{p as He,o as Ve,A as We,l as Ke,h as Qe,f as _,j as Xe,a as F,t as b,b as u,c as Ye,u as i,q as g,e as n,g as t,m as k,d as r,s,k as v,$ as Ze,r as a,w as M,B as Qt,v as E}from"../chunks/cPTQ2Ibn.js";import{i as f}from"../chunks/DqFqoVWr.js";import{e as ta,i as ea}from"../chunks/CiWDXYQd.js";import{d as $,c as gt,g as C,s as aa}from"../chunks/DqbUkQgD.js";import{p as Xt}from"../chunks/BgSaD1r_.js";import{g as Yt}from"../chunks/CTvJf3dP.js";import{U as ra}from"../chunks/2Xl6sR6s.js";import{D as Zt}from"../chunks/91PQ6UtW.js";import{I as da}from"../chunks/DliFOxtc.js";import{D as sa}from"../chunks/oOdVuDuv.js";import{w as te}from"../chunks/BV_mDmfH.js";import{t as T}from"../chunks/Bgbd8SZ5.js";import{e as D,i as L,j as ee,b as O,g as ae}from"../chunks/DJsB5Z5V.js";import{e as G}from"../chunks/BZiHL9L3.js";var ia=_('

Loading pool...

'),oa=_('

'),la=_('
Runner Install Template
'),na=_('
GitHub Runner Group
'),va=_(' '),ma=_('
Tags
'),ca=_('

Extra Specifications

 
'),xa=_('

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),ua=_(' ',1);function Aa(re,de){He(de,!1);const J=k();let e=k(null),j=k(!0),A=k(""),U=k(!1),S=k(!1),B=k(!1),p=k(null),N=null;async function se(){if(t(J))try{v(j,!0),v(A,""),v(e,await C.getPool(t(J))),t(e).instances||M(e,t(e).instances=[])}catch(d){v(A,G(d))}finally{v(j,!1)}}async function ie(d){if(t(e))try{const o=await C.updatePool(t(e).id,d);v(e,o),v(U,!1),T.success("Pool Updated",`Pool ${t(e).id} has been updated successfully.`)}catch(o){const y=G(o);T.error("Update Failed",y)}}async function oe(){if(t(e)){try{await C.deletePool(t(e).id),Yt($("/pools"))}catch(d){const o=G(d);T.error("Delete Failed",o)}v(S,!1)}}async function le(){if(t(p)){try{await C.deleteInstance(t(p).name),T.success("Instance Deleted",`Instance ${t(p).name} has been deleted successfully.`)}catch(d){const o=G(d);T.error("Delete Failed",o)}v(B,!1),v(p,null)}}function ne(d){v(p,d),v(B,!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 me(d){if(d.operation==="update"){const o=d.payload;t(e)&&o.id===t(e).id&&v(e,o)}else if(d.operation==="delete"){const o=d.payload.id||d.payload;t(e)&&t(e).id===o&&Yt($("/pools"))}}function ce(d){if(!t(e))return;const o=d.payload;if(o.pool_id===t(e).id){if(t(e).instances||M(e,t(e).instances=[]),d.operation==="create")M(e,t(e).instances=[...t(e).instances,o]);else if(d.operation==="update")M(e,t(e).instances=t(e).instances.map(y=>y.id===o.id?o:y));else if(d.operation==="delete"){const y=o.id||o;M(e,t(e).instances=t(e).instances.filter(V=>V.id!==y))}v(e,t(e))}}Ve(()=>{se();const d=te.subscribeToEntity("pool",["update","delete"],me),o=te.subscribeToEntity("instance",["create","update","delete"],ce);N=()=>{d(),o()}}),We(()=>{N&&(N(),N=null)}),Ke(()=>Xt,()=>{v(J,Xt.params.id)}),Qe(),ze();var ft=ua();Xe(d=>{b(()=>Ze.title=`${t(e),i(()=>t(e)?`Pool ${t(e).id} - Pool Details`:"Pool Details")??""} - GARM`)});var q=F(ft),z=r(q),pt=r(z),H=r(pt),xe=r(H);a(H);var _t=s(H,2),yt=r(_t),ht=s(r(yt),2),ue=r(ht,!0);a(ht),a(yt),a(_t),a(pt),a(z);var ge=s(z,2);{var fe=d=>{var o=ia();u(d,o)},pe=d=>{var o=Qt(),y=F(o);{var V=I=>{var P=oa(),R=r(P),W=r(R,!0);a(R),a(P),b(()=>n(W,t(A))),u(I,P)},ke=I=>{var P=Qt(),R=F(P);{var W=K=>{var wt=xa(),It=F(wt);{let l=E(()=>(g(D),t(e),i(()=>D(t(e))))),m=E(()=>(g(L),t(e),i(()=>L(t(e))))),c=E(()=>(g(ae),t(e),i(()=>ae(t(e).endpoint?.endpoint_type||"unknown"))));sa(It,{get title(){return t(e),i(()=>t(e).id)},get subtitle(){return`Pool for ${t(l)??""} (${t(m)??""})`},get forgeIcon(){return t(c)},onEdit:()=>v(U,!0),onDelete:()=>v(S,!0)})}var Q=s(It,2),X=r(Q),Pt=r(X),$t=s(r(Pt),2),Y=r($t),Dt=s(r(Y),2),we=r(Dt,!0);a(Dt),a(Y);var Z=s(Y,2),Mt=s(r(Z),2),Ie=r(Mt,!0);a(Mt),a(Z);var tt=s(Z,2),Et=s(r(tt),2),Tt=r(Et),Pe=r(Tt,!0);a(Tt),a(Et),a(tt);var et=s(tt,2),At=s(r(et),2),$e=r(At,!0);a(At),a(et);var at=s(et,2),Ut=s(r(at),2),rt=r(Ut),De=r(rt,!0);a(rt),a(Ut),a(at);var dt=s(at,2),St=s(r(dt),2),Bt=r(St),st=r(Bt),Me=r(st,!0);a(st);var it=s(st,2),Ee=r(it,!0);a(it),a(Bt),a(St),a(dt);var ot=s(dt,2),Nt=s(r(ot),2),Te=r(Nt,!0);a(Nt),a(ot);var Rt=s(ot,2),Ft=s(r(Rt),2),Ae=r(Ft,!0);a(Ft),a(Rt),a($t),a(Pt),a(X);var Ct=s(X,2),Lt=r(Ct),Ot=s(r(Lt),2),lt=r(Ot),Gt=s(r(lt),2),Ue=r(Gt,!0);a(Gt),a(lt);var nt=s(lt,2),Jt=s(r(nt),2),Se=r(Jt,!0);a(Jt),a(nt);var vt=s(nt,2),jt=s(r(vt),2),Be=r(jt);a(jt),a(vt);var mt=s(vt,2),qt=s(r(mt),2),Ne=r(qt,!0);a(qt),a(mt);var ct=s(mt,2),zt=s(r(ct),2),Re=r(zt,!0);a(zt),a(ct);var xt=s(ct,2),Ht=s(r(xt),2),Fe=r(Ht);a(Ht),a(xt);var Vt=s(xt,2);{var Ce=l=>{var m=la(),c=s(r(m),2),x=r(c),w=r(x,!0);a(x),a(c),a(m),b(h=>{gt(x,"href",h),n(w,(t(e),i(()=>t(e).template_name)))},[()=>(g($),t(e),i(()=>$(`/templates/${t(e).template_id}`)))]),u(l,m)};f(Vt,l=>{t(e),i(()=>t(e).template_name)&&l(Ce)})}var Wt=s(Vt,2);{var Le=l=>{var m=na(),c=s(r(m),2),x=r(c,!0);a(c),a(m),b(()=>n(x,(t(e),i(()=>t(e)["github-runner-group"])))),u(l,m)};f(Wt,l=>{t(e),i(()=>t(e)["github-runner-group"])&&l(Le)})}var Oe=s(Wt,2);{var Ge=l=>{var m=ma(),c=s(r(m),2),x=r(c);ta(x,5,()=>(t(e),i(()=>t(e).tags)),ea,(w,h)=>{var ut=va(),qe=r(ut,!0);a(ut),b(()=>n(qe,(t(h),i(()=>typeof t(h)=="string"?t(h):t(h).name)))),u(w,ut)}),a(x),a(c),a(m),u(l,m)};f(Oe,l=>{t(e),i(()=>t(e).tags&&t(e).tags.length>0)&&l(Ge)})}a(Ot),a(Lt),a(Ct),a(Q);var Kt=s(Q,2);{var Je=l=>{var m=ca(),c=r(m),x=s(r(c),2),w=r(x,!0);a(x),a(c),a(m),b(h=>n(w,h),[()=>(t(e),i(()=>ve(t(e).extra_specs)))]),u(l,m)};f(Kt,l=>{t(e),i(()=>t(e).extra_specs)&&l(Je)})}var je=s(Kt,2);{let l=E(()=>(t(e),i(()=>t(e).instances||[])));da(je,{get instances(){return t(l)},entityType:"pool",onDeleteInstance:ne})}b((l,m,c,x,w)=>{n(we,(t(e),i(()=>t(e).id))),n(Ie,(t(e),i(()=>t(e).provider_name))),n(Pe,(t(e),i(()=>t(e).image))),n($e,(t(e),i(()=>t(e).flavor))),aa(rt,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")??""}`),n(De,(t(e),i(()=>t(e).enabled?"Enabled":"Disabled"))),n(Me,l),gt(it,"href",m),n(Ee,c),n(Te,x),n(Ae,w),n(Ue,(t(e),i(()=>t(e).max_runners))),n(Se,(t(e),i(()=>t(e).min_idle_runners))),n(Be,`${t(e),i(()=>t(e).runner_bootstrap_timeout)??""} minutes`),n(Ne,(t(e),i(()=>t(e).priority))),n(Re,(t(e),i(()=>t(e).runner_prefix||"garm"))),n(Fe,`${t(e),i(()=>t(e).os_type)??""} / ${t(e),i(()=>t(e).os_arch)??""}`)},[()=>(g(L),t(e),i(()=>L(t(e)))),()=>(g(ee),t(e),i(()=>ee(t(e)))),()=>(g(D),t(e),i(()=>D(t(e)))),()=>(g(O),t(e),i(()=>O(t(e).created_at||""))),()=>(g(O),t(e),i(()=>O(t(e).updated_at||"")))]),u(K,wt)};f(R,K=>{t(e)&&K(W)},!0)}u(I,P)};f(y,I=>{t(A)?I(V):I(ke,!1)},!0)}u(d,o)};f(ge,d=>{t(j)?d(fe):d(pe,!1)})}a(q);var bt=s(q,2);{var _e=d=>{ra(d,{get pool(){return t(e)},$$events:{close:()=>v(U,!1),submit:o=>ie(o.detail)}})};f(bt,d=>{t(U)&&t(e)&&d(_e)})}var kt=s(bt,2);{var ye=d=>{{let o=E(()=>(t(e),g(D),i(()=>`Pool ${t(e).id} (${D(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:()=>v(S,!1),confirm:oe}})}};f(kt,d=>{t(S)&&t(e)&&d(ye)})}var he=s(kt,2);{var be=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(p),i(()=>t(p).name)},$$events:{close:()=>{v(B,!1),v(p,null)},confirm:le}})};f(he,d=>{t(B)&&t(p)&&d(be)})}b(d=>{gt(xe,"href",d),n(ue,(t(e),i(()=>t(e)?t(e).id:"Loading...")))},[()=>(g($),i(()=>$("/pools")))]),u(re,ft),Ye()}export{Aa as component}; +import"../chunks/DsnmJJEf.js";import{i as ze}from"../chunks/C7KraPli.js";import{p as He,o as Ve,A as We,l as Ke,h as Qe,f as _,j as Xe,a as F,t as b,b as u,c as Ye,u as i,q as g,e as n,g as t,m as k,d as r,s,k as v,$ as Ze,r as a,w as M,B as Qt,v as E}from"../chunks/cPTQ2Ibn.js";import{i as f}from"../chunks/DqFqoVWr.js";import{e as ta,i as ea}from"../chunks/CiWDXYQd.js";import{d as $,c as gt,g as C,s as aa}from"../chunks/yWyZZHPR.js";import{p as Xt}from"../chunks/DMSCYqmZ.js";import{g as Yt}from"../chunks/Br47IbuU.js";import{U as ra}from"../chunks/YJXtpdqO.js";import{D as Zt}from"../chunks/Cpm0auuQ.js";import{I as da}from"../chunks/VkS8dDRx.js";import{D as sa}from"../chunks/CDgX_mkE.js";import{w as te}from"../chunks/BV_mDmfH.js";import{t as T}from"../chunks/Bgbd8SZ5.js";import{e as D,i as L,j as ee,b as O,g as ae}from"../chunks/Cr2hBuns.js";import{e as G}from"../chunks/BZiHL9L3.js";var ia=_('

Loading pool...

'),oa=_('

'),la=_('
Runner Install Template
'),na=_('
GitHub Runner Group
'),va=_(' '),ma=_('
Tags
'),ca=_('

Extra Specifications

 
'),xa=_('

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),ua=_(' ',1);function Aa(re,de){He(de,!1);const J=k();let e=k(null),j=k(!0),A=k(""),U=k(!1),S=k(!1),B=k(!1),p=k(null),N=null;async function se(){if(t(J))try{v(j,!0),v(A,""),v(e,await C.getPool(t(J))),t(e).instances||M(e,t(e).instances=[])}catch(d){v(A,G(d))}finally{v(j,!1)}}async function ie(d){if(t(e))try{const o=await C.updatePool(t(e).id,d);v(e,o),v(U,!1),T.success("Pool Updated",`Pool ${t(e).id} has been updated successfully.`)}catch(o){const y=G(o);T.error("Update Failed",y)}}async function oe(){if(t(e)){try{await C.deletePool(t(e).id),Yt($("/pools"))}catch(d){const o=G(d);T.error("Delete Failed",o)}v(S,!1)}}async function le(){if(t(p)){try{await C.deleteInstance(t(p).name),T.success("Instance Deleted",`Instance ${t(p).name} has been deleted successfully.`)}catch(d){const o=G(d);T.error("Delete Failed",o)}v(B,!1),v(p,null)}}function ne(d){v(p,d),v(B,!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 me(d){if(d.operation==="update"){const o=d.payload;t(e)&&o.id===t(e).id&&v(e,o)}else if(d.operation==="delete"){const o=d.payload.id||d.payload;t(e)&&t(e).id===o&&Yt($("/pools"))}}function ce(d){if(!t(e))return;const o=d.payload;if(o.pool_id===t(e).id){if(t(e).instances||M(e,t(e).instances=[]),d.operation==="create")M(e,t(e).instances=[...t(e).instances,o]);else if(d.operation==="update")M(e,t(e).instances=t(e).instances.map(y=>y.id===o.id?o:y));else if(d.operation==="delete"){const y=o.id||o;M(e,t(e).instances=t(e).instances.filter(V=>V.id!==y))}v(e,t(e))}}Ve(()=>{se();const d=te.subscribeToEntity("pool",["update","delete"],me),o=te.subscribeToEntity("instance",["create","update","delete"],ce);N=()=>{d(),o()}}),We(()=>{N&&(N(),N=null)}),Ke(()=>Xt,()=>{v(J,Xt.params.id)}),Qe(),ze();var ft=ua();Xe(d=>{b(()=>Ze.title=`${t(e),i(()=>t(e)?`Pool ${t(e).id} - Pool Details`:"Pool Details")??""} - GARM`)});var q=F(ft),z=r(q),pt=r(z),H=r(pt),xe=r(H);a(H);var _t=s(H,2),yt=r(_t),ht=s(r(yt),2),ue=r(ht,!0);a(ht),a(yt),a(_t),a(pt),a(z);var ge=s(z,2);{var fe=d=>{var o=ia();u(d,o)},pe=d=>{var o=Qt(),y=F(o);{var V=I=>{var P=oa(),R=r(P),W=r(R,!0);a(R),a(P),b(()=>n(W,t(A))),u(I,P)},ke=I=>{var P=Qt(),R=F(P);{var W=K=>{var wt=xa(),It=F(wt);{let l=E(()=>(g(D),t(e),i(()=>D(t(e))))),m=E(()=>(g(L),t(e),i(()=>L(t(e))))),c=E(()=>(g(ae),t(e),i(()=>ae(t(e).endpoint?.endpoint_type||"unknown"))));sa(It,{get title(){return t(e),i(()=>t(e).id)},get subtitle(){return`Pool for ${t(l)??""} (${t(m)??""})`},get forgeIcon(){return t(c)},onEdit:()=>v(U,!0),onDelete:()=>v(S,!0)})}var Q=s(It,2),X=r(Q),Pt=r(X),$t=s(r(Pt),2),Y=r($t),Dt=s(r(Y),2),we=r(Dt,!0);a(Dt),a(Y);var Z=s(Y,2),Mt=s(r(Z),2),Ie=r(Mt,!0);a(Mt),a(Z);var tt=s(Z,2),Et=s(r(tt),2),Tt=r(Et),Pe=r(Tt,!0);a(Tt),a(Et),a(tt);var et=s(tt,2),At=s(r(et),2),$e=r(At,!0);a(At),a(et);var at=s(et,2),Ut=s(r(at),2),rt=r(Ut),De=r(rt,!0);a(rt),a(Ut),a(at);var dt=s(at,2),St=s(r(dt),2),Bt=r(St),st=r(Bt),Me=r(st,!0);a(st);var it=s(st,2),Ee=r(it,!0);a(it),a(Bt),a(St),a(dt);var ot=s(dt,2),Nt=s(r(ot),2),Te=r(Nt,!0);a(Nt),a(ot);var Rt=s(ot,2),Ft=s(r(Rt),2),Ae=r(Ft,!0);a(Ft),a(Rt),a($t),a(Pt),a(X);var Ct=s(X,2),Lt=r(Ct),Ot=s(r(Lt),2),lt=r(Ot),Gt=s(r(lt),2),Ue=r(Gt,!0);a(Gt),a(lt);var nt=s(lt,2),Jt=s(r(nt),2),Se=r(Jt,!0);a(Jt),a(nt);var vt=s(nt,2),jt=s(r(vt),2),Be=r(jt);a(jt),a(vt);var mt=s(vt,2),qt=s(r(mt),2),Ne=r(qt,!0);a(qt),a(mt);var ct=s(mt,2),zt=s(r(ct),2),Re=r(zt,!0);a(zt),a(ct);var xt=s(ct,2),Ht=s(r(xt),2),Fe=r(Ht);a(Ht),a(xt);var Vt=s(xt,2);{var Ce=l=>{var m=la(),c=s(r(m),2),x=r(c),w=r(x,!0);a(x),a(c),a(m),b(h=>{gt(x,"href",h),n(w,(t(e),i(()=>t(e).template_name)))},[()=>(g($),t(e),i(()=>$(`/templates/${t(e).template_id}`)))]),u(l,m)};f(Vt,l=>{t(e),i(()=>t(e).template_name)&&l(Ce)})}var Wt=s(Vt,2);{var Le=l=>{var m=na(),c=s(r(m),2),x=r(c,!0);a(c),a(m),b(()=>n(x,(t(e),i(()=>t(e)["github-runner-group"])))),u(l,m)};f(Wt,l=>{t(e),i(()=>t(e)["github-runner-group"])&&l(Le)})}var Oe=s(Wt,2);{var Ge=l=>{var m=ma(),c=s(r(m),2),x=r(c);ta(x,5,()=>(t(e),i(()=>t(e).tags)),ea,(w,h)=>{var ut=va(),qe=r(ut,!0);a(ut),b(()=>n(qe,(t(h),i(()=>typeof t(h)=="string"?t(h):t(h).name)))),u(w,ut)}),a(x),a(c),a(m),u(l,m)};f(Oe,l=>{t(e),i(()=>t(e).tags&&t(e).tags.length>0)&&l(Ge)})}a(Ot),a(Lt),a(Ct),a(Q);var Kt=s(Q,2);{var Je=l=>{var m=ca(),c=r(m),x=s(r(c),2),w=r(x,!0);a(x),a(c),a(m),b(h=>n(w,h),[()=>(t(e),i(()=>ve(t(e).extra_specs)))]),u(l,m)};f(Kt,l=>{t(e),i(()=>t(e).extra_specs)&&l(Je)})}var je=s(Kt,2);{let l=E(()=>(t(e),i(()=>t(e).instances||[])));da(je,{get instances(){return t(l)},entityType:"pool",onDeleteInstance:ne})}b((l,m,c,x,w)=>{n(we,(t(e),i(()=>t(e).id))),n(Ie,(t(e),i(()=>t(e).provider_name))),n(Pe,(t(e),i(()=>t(e).image))),n($e,(t(e),i(()=>t(e).flavor))),aa(rt,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")??""}`),n(De,(t(e),i(()=>t(e).enabled?"Enabled":"Disabled"))),n(Me,l),gt(it,"href",m),n(Ee,c),n(Te,x),n(Ae,w),n(Ue,(t(e),i(()=>t(e).max_runners))),n(Se,(t(e),i(()=>t(e).min_idle_runners))),n(Be,`${t(e),i(()=>t(e).runner_bootstrap_timeout)??""} minutes`),n(Ne,(t(e),i(()=>t(e).priority))),n(Re,(t(e),i(()=>t(e).runner_prefix||"garm"))),n(Fe,`${t(e),i(()=>t(e).os_type)??""} / ${t(e),i(()=>t(e).os_arch)??""}`)},[()=>(g(L),t(e),i(()=>L(t(e)))),()=>(g(ee),t(e),i(()=>ee(t(e)))),()=>(g(D),t(e),i(()=>D(t(e)))),()=>(g(O),t(e),i(()=>O(t(e).created_at||""))),()=>(g(O),t(e),i(()=>O(t(e).updated_at||"")))]),u(K,wt)};f(R,K=>{t(e)&&K(W)},!0)}u(I,P)};f(y,I=>{t(A)?I(V):I(ke,!1)},!0)}u(d,o)};f(ge,d=>{t(j)?d(fe):d(pe,!1)})}a(q);var bt=s(q,2);{var _e=d=>{ra(d,{get pool(){return t(e)},$$events:{close:()=>v(U,!1),submit:o=>ie(o.detail)}})};f(bt,d=>{t(U)&&t(e)&&d(_e)})}var kt=s(bt,2);{var ye=d=>{{let o=E(()=>(t(e),g(D),i(()=>`Pool ${t(e).id} (${D(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:()=>v(S,!1),confirm:oe}})}};f(kt,d=>{t(S)&&t(e)&&d(ye)})}var he=s(kt,2);{var be=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(p),i(()=>t(p).name)},$$events:{close:()=>{v(B,!1),v(p,null)},confirm:le}})};f(he,d=>{t(B)&&t(p)&&d(be)})}b(d=>{gt(xe,"href",d),n(ue,(t(e),i(()=>t(e)?t(e).id:"Loading...")))},[()=>(g($),i(()=>$("/pools")))]),u(re,ft),Ye()}export{Aa as component}; diff --git a/webapp/assets/_app/immutable/nodes/15.1LkKX8Mu.js b/webapp/assets/_app/immutable/nodes/15.BMBRAtUe.js similarity index 95% rename from webapp/assets/_app/immutable/nodes/15.1LkKX8Mu.js rename to webapp/assets/_app/immutable/nodes/15.BMBRAtUe.js index abca1d94..18476848 100644 --- a/webapp/assets/_app/immutable/nodes/15.1LkKX8Mu.js +++ b/webapp/assets/_app/immutable/nodes/15.BMBRAtUe.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as Me}from"../chunks/C7KraPli.js";import{p as Te,E as Ne,o as De,l as w,k as r,m as a,g as e,w as T,h as Se,f as S,s as l,d as c,r as u,b as D,t as Q,e as fe,y as $e,u as j,z as Re,i as ye,c as Ae,j as ze,a as Be,$ as Oe,v as Ce}from"../chunks/cPTQ2Ibn.js";import{a as Fe,i as V,s as Ie}from"../chunks/DqFqoVWr.js";import{r as X,b as Pe,g as oe}from"../chunks/DqbUkQgD.js";import{e as He,i as Je}from"../chunks/CiWDXYQd.js";import{b as ve,a as Ee}from"../chunks/B-_QCM7E.js";import{p as Ve}from"../chunks/D4Caz1gY.js";import{M as Ye}from"../chunks/Bo3f8OIz.js";import{e as ae}from"../chunks/BZiHL9L3.js";import{F as Ke}from"../chunks/Cqnw7O8j.js";import{e as We,a as he}from"../chunks/JUkrBp3F.js";import{U as Qe}from"../chunks/B1V2wE0x.js";import{D as Xe}from"../chunks/91PQ6UtW.js";import{P as Ze}from"../chunks/U3V4g_hv.js";import{t as J}from"../chunks/Bgbd8SZ5.js";import{k as et,g as tt,c as rt,m as ot,p as at}from"../chunks/DJsB5Z5V.js";import{D as st,G as nt,A as it}from"../chunks/Du50aAe5.js";import{E as lt}from"../chunks/CPFytHjx.js";import{E as dt}from"../chunks/CYqkNFLz.js";import{S as ct}from"../chunks/BZ2WxPPD.js";import"../chunks/D7e9zx6w.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=()=>Fe(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"}),A=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(F=>F.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,F=>F.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(A),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,F)=>{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 q=mt(),Le=c(q);u(q);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)))&&(q.value=(q.__value=(e(m),j(()=>e(m).name)))??"")}),D(n,q)}),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),U=c($),_e=c(U);X(_e),Re(2),u(U);var Ue=l(U,2);{var qe=n=>{var m=gt();X(m),ve(m,()=>e(o).webhook_secret,q=>T(o,e(o).webhook_secret=q)),D(n,m)},je=n=>{var m=bt();D(n,m)};V(Ue,n=>{e(d)?n(je,!1):n(qe)})}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(A),n=>r(A,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}}),Ae(),le()}var ht=S('
',1);function Nt(se,ne){Te(ne,!1);const[ie,le]=Ie(),p=()=>Fe(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),A=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 F(t){r(f,t),r(A,!0)}function M(){r(b,!1),r(o,!1),r(A,!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(U){console.warn("Repository created but webhook installation failed:",U),J.error("Webhook Installation Failed",U instanceof Error?U.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=>F(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){F(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(A)&&e(f)&&t(te)})}D(se,L),Ae(),le()}export{Nt as component}; +import"../chunks/DsnmJJEf.js";import{i as Me}from"../chunks/C7KraPli.js";import{p as Te,E as Ne,o as De,l as w,k as r,m as a,g as e,w as T,h as Se,f as S,s as l,d as c,r as u,b as D,t as Q,e as fe,y as $e,u as j,z as Re,i as ye,c as Ae,j as ze,a as Be,$ as Oe,v as Ce}from"../chunks/cPTQ2Ibn.js";import{a as Fe,i as V,s as Ie}from"../chunks/DqFqoVWr.js";import{r as X,b as Pe,g as oe}from"../chunks/yWyZZHPR.js";import{e as He,i as Je}from"../chunks/CiWDXYQd.js";import{b as ve,a as Ee}from"../chunks/B-_QCM7E.js";import{p as Ve}from"../chunks/D4Caz1gY.js";import{M as Ye}from"../chunks/ao5EljEX.js";import{e as ae}from"../chunks/BZiHL9L3.js";import{F as Ke}from"../chunks/DDJerweA.js";import{e as We,a as he}from"../chunks/C01HillC.js";import{U as Qe}from"../chunks/MwmEfQpp.js";import{D as Xe}from"../chunks/Cpm0auuQ.js";import{P as Ze}from"../chunks/BtskFTeb.js";import{t as J}from"../chunks/Bgbd8SZ5.js";import{k as et,g as tt,c as rt,m as ot,p as at}from"../chunks/Cr2hBuns.js";import{D as st,G as nt,A as it}from"../chunks/BIepGqC5.js";import{E as lt}from"../chunks/CVL5tSYq.js";import{E as dt}from"../chunks/C6PRls9Y.js";import{S as ct}from"../chunks/CMG1iQmM.js";import"../chunks/BMOcKgHw.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=()=>Fe(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"}),A=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(F=>F.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,F=>F.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(A),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,F)=>{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 q=mt(),Le=c(q);u(q);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)))&&(q.value=(q.__value=(e(m),j(()=>e(m).name)))??"")}),D(n,q)}),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),U=c($),_e=c(U);X(_e),Re(2),u(U);var Ue=l(U,2);{var qe=n=>{var m=gt();X(m),ve(m,()=>e(o).webhook_secret,q=>T(o,e(o).webhook_secret=q)),D(n,m)},je=n=>{var m=bt();D(n,m)};V(Ue,n=>{e(d)?n(je,!1):n(qe)})}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(A),n=>r(A,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}}),Ae(),le()}var ht=S('
',1);function Nt(se,ne){Te(ne,!1);const[ie,le]=Ie(),p=()=>Fe(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),A=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 F(t){r(f,t),r(A,!0)}function M(){r(b,!1),r(o,!1),r(A,!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(U){console.warn("Repository created but webhook installation failed:",U),J.error("Webhook Installation Failed",U instanceof Error?U.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=>F(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){F(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(A)&&e(f)&&t(te)})}D(se,L),Ae(),le()}export{Nt as component}; diff --git a/webapp/assets/_app/immutable/nodes/16.Un1eDEkg.js b/webapp/assets/_app/immutable/nodes/16.wLKojKF5.js similarity index 93% rename from webapp/assets/_app/immutable/nodes/16.Un1eDEkg.js rename to webapp/assets/_app/immutable/nodes/16.wLKojKF5.js index 34da63c3..416a8f69 100644 --- a/webapp/assets/_app/immutable/nodes/16.Un1eDEkg.js +++ b/webapp/assets/_app/immutable/nodes/16.wLKojKF5.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as ze}from"../chunks/C7KraPli.js";import{p as He,o as je,A as Ge,l as Oe,h as Ve,f as B,j as Je,a as C,t as j,b as w,c as Ke,u as n,q as de,e as ce,g as e,m as l,d as u,s as d,k as r,$ as Qe,r as f,w as Xe,B as pe,v as m}from"../chunks/cPTQ2Ibn.js";import{i as g,s as Ye,a as Ze}from"../chunks/DqFqoVWr.js";import{d as A,c as et,g as h}from"../chunks/DqbUkQgD.js";import{p as tt}from"../chunks/DVsSf1wv.js";import{g as ue}from"../chunks/CTvJf3dP.js";import{U as ot}from"../chunks/B1V2wE0x.js";import{D as fe}from"../chunks/91PQ6UtW.js";import{E as at,P as rt,a as st}from"../chunks/WI-og7-I.js";import{D as nt}from"../chunks/oOdVuDuv.js";import{g as me}from"../chunks/DJsB5Z5V.js";import{e as S}from"../chunks/BZiHL9L3.js";import{I as it}from"../chunks/DliFOxtc.js";import{W as lt}from"../chunks/C7KJ549w.js";import{C as dt}from"../chunks/DPR9Z_fe.js";import{w as G}from"../chunks/BV_mDmfH.js";import{t as x}from"../chunks/Bgbd8SZ5.js";var ct=B('

Loading repository...

'),pt=B('

'),ut=B(" ",1),ft=B(' ',1);function Ct(ye,ve){He(ve,!1);const[ge,he]=Ye(),O=()=>Ze(tt,"$page",ge),I=l();let t=l(null),c=l([]),y=l([]),F=l(!0),E=l(""),D=l(!1),P=l(!1),R=l(!1),T=l(!1),p=l(null),M=null,_=l();async function V(){if(e(I))try{r(F,!0),r(E,"");const[o,a,s]=await Promise.all([h.getRepository(e(I)),h.listRepositoryPools(e(I)).catch(()=>[]),h.listRepositoryInstances(e(I)).catch(()=>[])]);r(t,o),r(c,a),r(y,s)}catch(o){r(E,S(o))}finally{r(F,!1)}}function _e(o,a){const{events:s}=o;return{...a,events:s}}async function $e(o){if(e(t))try{await h.updateRepository(e(t).id,o),await V(),x.success("Repository Updated",`Repository ${e(t).owner}/${e(t).name} has been updated successfully.`),r(D,!1)}catch(a){throw a}}async function be(){if(e(t)){try{await h.deleteRepository(e(t).id),ue(A("/repositories"))}catch(o){const a=S(o);x.error("Delete Failed",a)}r(P,!1)}}async function we(){if(e(p))try{await h.deleteInstance(e(p).name),x.success("Instance Deleted",`Instance ${e(p).name} has been deleted successfully.`),r(R,!1),r(p,null)}catch(o){const a=S(o);x.error("Delete Failed",a),r(R,!1),r(p,null)}}function xe(o){r(p,o),r(R,!0)}function Ie(){r(T,!0)}async function Re(o){try{if(!e(t))return;await h.createRepositoryPool(e(t).id,o.detail),x.success("Pool Created",`Pool has been created successfully for repository ${e(t).owner}/${e(t).name}.`),r(T,!1)}catch(a){const s=S(a);x.error("Pool Creation Failed",s)}}function J(){e(_)&&Xe(_,e(_).scrollTop=e(_).scrollHeight)}function Ee(o){if(o.operation==="update"){const a=o.payload;if(e(t)&&a.id===e(t).id){const s=e(t).events?.length||0,i=a.events?.length||0;r(t,_e(e(t),a)),i>s&&setTimeout(()=>{J()},100)}}else if(o.operation==="delete"){const a=o.payload.id||o.payload;e(t)&&e(t).id===a&&ue(A("/repositories"))}}function De(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(s=>s.id===a.id?a:s));else if(o.operation==="delete"){const s=a.id||a;r(c,e(c).filter(i=>i.id!==s))}}}function Pe(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(W=>W.id!==i))}}}je(()=>{V().then(()=>{e(t)?.events?.length&&setTimeout(()=>{J()},100)});const o=G.subscribeToEntity("repository",["update","delete"],Ee),a=G.subscribeToEntity("pool",["create","update","delete"],De),s=G.subscribeToEntity("instance",["create","update","delete"],Pe);M=()=>{o(),a(),s()}}),Ge(()=>{M&&(M(),M=null)}),Oe(()=>O(),()=>{r(I,O().params.id)}),Ve(),ze();var K=ft();Je(o=>{j(()=>Qe.title=`${e(t),n(()=>e(t)?`${e(t).name} - Repository Details`:"Repository Details")??""} - GARM`)});var U=C(K),L=u(U),Q=u(L),N=u(Q),Te=u(N);f(N);var X=d(N,2),Y=u(X),Z=d(u(Y),2),Me=u(Z,!0);f(Z),f(Y),f(X),f(Q),f(L);var ke=d(L,2);{var Ce=o=>{var a=ct();w(o,a)},Ae=o=>{var a=pe(),s=C(a);{var i=$=>{var b=pt(),k=u(b),q=u(k,!0);f(k),f(b),j(()=>ce(q,e(E))),w($,b)},W=$=>{var b=pe(),k=C(b);{var q=z=>{var ae=ut(),re=C(ae);{let v=m(()=>(e(t),n(()=>e(t).name||"Repository"))),H=m(()=>(e(t),n(()=>e(t).owner))),We=m(()=>(e(t),n(()=>e(t).endpoint?.name))),qe=m(()=>(de(me),e(t),n(()=>me(e(t).endpoint?.endpoint_type||"unknown"))));nt(re,{get title(){return e(v)},get subtitle(){return`Owner: ${e(H)??""} • Endpoint: ${e(We)??""}`},get forgeIcon(){return e(qe)},onEdit:()=>r(D,!0),onDelete:()=>r(P,!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),n(()=>e(t).id||"")));lt(ne,{entityType:"repository",get entityId(){return e(v)},get entityName(){return`${e(t),n(()=>e(t).owner)??""}/${e(t),n(()=>e(t).name)??""}`}})}var ie=d(ne,2);{let v=m(()=>(e(t),n(()=>e(t).id||"")));rt(ie,{get pools(){return e(c)},entityType:"repository",get entityId(){return e(v)},get entityName(){return`${e(t),n(()=>e(t).owner)??""}/${e(t),n(()=>e(t).name)??""}`},$$events:{addPool:Ie}})}var le=d(ie,2);it(le,{get instances(){return e(y)},entityType:"repository",onDeleteInstance:xe});var Ne=d(le,2);{let v=m(()=>(e(t),n(()=>e(t)?.events)));st(Ne,{get events(){return e(v)},get eventsContainer(){return e(_)},set eventsContainer(H){r(_,H)},$$legacy:!0})}w(z,ae)};g(k,z=>{e(t)&&z(q)},!0)}w($,b)};g(s,$=>{e(E)?$(i):$(W,!1)},!0)}w(o,a)};g(ke,o=>{e(F)?o(Ce):o(Ae,!1)})}f(U);var ee=d(U,2);{var Se=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(Se)})}var te=d(ee,2);{var Be=o=>{{let a=m(()=>(e(t),n(()=>`${e(t).owner}/${e(t).name}`)));fe(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(P,!1),confirm:be}})}};g(te,o=>{e(P)&&e(t)&&o(Be)})}var oe=d(te,2);{var Fe=o=>{fe(o,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(p),n(()=>e(p).name)},$$events:{close:()=>{r(R,!1),r(p,null)},confirm:we}})};g(oe,o=>{e(R)&&e(p)&&o(Fe)})}var Ue=d(oe,2);{var Le=o=>{{let a=m(()=>(e(t),n(()=>e(t).id||"")));dt(o,{initialEntityType:"repository",get initialEntityId(){return e(a)},$$events:{close:()=>r(T,!1),submit:Re}})}};g(Ue,o=>{e(T)&&e(t)&&o(Le)})}j(o=>{et(Te,"href",o),ce(Me,(e(t),n(()=>e(t)?e(t).name:"Loading...")))},[()=>(de(A),n(()=>A("/repositories")))]),w(ye,K),Ke(),he()}export{Ct as component}; +import"../chunks/DsnmJJEf.js";import{i as ze}from"../chunks/C7KraPli.js";import{p as He,o as je,A as Ge,l as Oe,h as Ve,f as B,j as Je,a as C,t as j,b as w,c as Ke,u as n,q as de,e as ce,g as e,m as l,d as u,s as d,k as r,$ as Qe,r as f,w as Xe,B as pe,v as m}from"../chunks/cPTQ2Ibn.js";import{i as g,s as Ye,a as Ze}from"../chunks/DqFqoVWr.js";import{d as A,c as et,g as h}from"../chunks/yWyZZHPR.js";import{p as tt}from"../chunks/Crr6XDlZ.js";import{g as ue}from"../chunks/Br47IbuU.js";import{U as ot}from"../chunks/MwmEfQpp.js";import{D as fe}from"../chunks/Cpm0auuQ.js";import{E as at,P as rt,a as st}from"../chunks/CSF6MBq7.js";import{D as nt}from"../chunks/CDgX_mkE.js";import{g as me}from"../chunks/Cr2hBuns.js";import{e as S}from"../chunks/BZiHL9L3.js";import{I as it}from"../chunks/VkS8dDRx.js";import{W as lt}from"../chunks/kPsHrhth.js";import{C as dt}from"../chunks/BIkO7LkR.js";import{w as G}from"../chunks/BV_mDmfH.js";import{t as x}from"../chunks/Bgbd8SZ5.js";var ct=B('

Loading repository...

'),pt=B('

'),ut=B(" ",1),ft=B(' ',1);function Ct(ye,ve){He(ve,!1);const[ge,he]=Ye(),O=()=>Ze(tt,"$page",ge),I=l();let t=l(null),c=l([]),y=l([]),F=l(!0),E=l(""),D=l(!1),P=l(!1),R=l(!1),T=l(!1),p=l(null),M=null,_=l();async function V(){if(e(I))try{r(F,!0),r(E,"");const[o,a,s]=await Promise.all([h.getRepository(e(I)),h.listRepositoryPools(e(I)).catch(()=>[]),h.listRepositoryInstances(e(I)).catch(()=>[])]);r(t,o),r(c,a),r(y,s)}catch(o){r(E,S(o))}finally{r(F,!1)}}function _e(o,a){const{events:s}=o;return{...a,events:s}}async function $e(o){if(e(t))try{await h.updateRepository(e(t).id,o),await V(),x.success("Repository Updated",`Repository ${e(t).owner}/${e(t).name} has been updated successfully.`),r(D,!1)}catch(a){throw a}}async function be(){if(e(t)){try{await h.deleteRepository(e(t).id),ue(A("/repositories"))}catch(o){const a=S(o);x.error("Delete Failed",a)}r(P,!1)}}async function we(){if(e(p))try{await h.deleteInstance(e(p).name),x.success("Instance Deleted",`Instance ${e(p).name} has been deleted successfully.`),r(R,!1),r(p,null)}catch(o){const a=S(o);x.error("Delete Failed",a),r(R,!1),r(p,null)}}function xe(o){r(p,o),r(R,!0)}function Ie(){r(T,!0)}async function Re(o){try{if(!e(t))return;await h.createRepositoryPool(e(t).id,o.detail),x.success("Pool Created",`Pool has been created successfully for repository ${e(t).owner}/${e(t).name}.`),r(T,!1)}catch(a){const s=S(a);x.error("Pool Creation Failed",s)}}function J(){e(_)&&Xe(_,e(_).scrollTop=e(_).scrollHeight)}function Ee(o){if(o.operation==="update"){const a=o.payload;if(e(t)&&a.id===e(t).id){const s=e(t).events?.length||0,i=a.events?.length||0;r(t,_e(e(t),a)),i>s&&setTimeout(()=>{J()},100)}}else if(o.operation==="delete"){const a=o.payload.id||o.payload;e(t)&&e(t).id===a&&ue(A("/repositories"))}}function De(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(s=>s.id===a.id?a:s));else if(o.operation==="delete"){const s=a.id||a;r(c,e(c).filter(i=>i.id!==s))}}}function Pe(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(W=>W.id!==i))}}}je(()=>{V().then(()=>{e(t)?.events?.length&&setTimeout(()=>{J()},100)});const o=G.subscribeToEntity("repository",["update","delete"],Ee),a=G.subscribeToEntity("pool",["create","update","delete"],De),s=G.subscribeToEntity("instance",["create","update","delete"],Pe);M=()=>{o(),a(),s()}}),Ge(()=>{M&&(M(),M=null)}),Oe(()=>O(),()=>{r(I,O().params.id)}),Ve(),ze();var K=ft();Je(o=>{j(()=>Qe.title=`${e(t),n(()=>e(t)?`${e(t).name} - Repository Details`:"Repository Details")??""} - GARM`)});var U=C(K),L=u(U),Q=u(L),N=u(Q),Te=u(N);f(N);var X=d(N,2),Y=u(X),Z=d(u(Y),2),Me=u(Z,!0);f(Z),f(Y),f(X),f(Q),f(L);var ke=d(L,2);{var Ce=o=>{var a=ct();w(o,a)},Ae=o=>{var a=pe(),s=C(a);{var i=$=>{var b=pt(),k=u(b),q=u(k,!0);f(k),f(b),j(()=>ce(q,e(E))),w($,b)},W=$=>{var b=pe(),k=C(b);{var q=z=>{var ae=ut(),re=C(ae);{let v=m(()=>(e(t),n(()=>e(t).name||"Repository"))),H=m(()=>(e(t),n(()=>e(t).owner))),We=m(()=>(e(t),n(()=>e(t).endpoint?.name))),qe=m(()=>(de(me),e(t),n(()=>me(e(t).endpoint?.endpoint_type||"unknown"))));nt(re,{get title(){return e(v)},get subtitle(){return`Owner: ${e(H)??""} • Endpoint: ${e(We)??""}`},get forgeIcon(){return e(qe)},onEdit:()=>r(D,!0),onDelete:()=>r(P,!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),n(()=>e(t).id||"")));lt(ne,{entityType:"repository",get entityId(){return e(v)},get entityName(){return`${e(t),n(()=>e(t).owner)??""}/${e(t),n(()=>e(t).name)??""}`}})}var ie=d(ne,2);{let v=m(()=>(e(t),n(()=>e(t).id||"")));rt(ie,{get pools(){return e(c)},entityType:"repository",get entityId(){return e(v)},get entityName(){return`${e(t),n(()=>e(t).owner)??""}/${e(t),n(()=>e(t).name)??""}`},$$events:{addPool:Ie}})}var le=d(ie,2);it(le,{get instances(){return e(y)},entityType:"repository",onDeleteInstance:xe});var Ne=d(le,2);{let v=m(()=>(e(t),n(()=>e(t)?.events)));st(Ne,{get events(){return e(v)},get eventsContainer(){return e(_)},set eventsContainer(H){r(_,H)},$$legacy:!0})}w(z,ae)};g(k,z=>{e(t)&&z(q)},!0)}w($,b)};g(s,$=>{e(E)?$(i):$(W,!1)},!0)}w(o,a)};g(ke,o=>{e(F)?o(Ce):o(Ae,!1)})}f(U);var ee=d(U,2);{var Se=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(Se)})}var te=d(ee,2);{var Be=o=>{{let a=m(()=>(e(t),n(()=>`${e(t).owner}/${e(t).name}`)));fe(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(P,!1),confirm:be}})}};g(te,o=>{e(P)&&e(t)&&o(Be)})}var oe=d(te,2);{var Fe=o=>{fe(o,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return e(p),n(()=>e(p).name)},$$events:{close:()=>{r(R,!1),r(p,null)},confirm:we}})};g(oe,o=>{e(R)&&e(p)&&o(Fe)})}var Ue=d(oe,2);{var Le=o=>{{let a=m(()=>(e(t),n(()=>e(t).id||"")));dt(o,{initialEntityType:"repository",get initialEntityId(){return e(a)},$$events:{close:()=>r(T,!1),submit:Re}})}};g(Ue,o=>{e(T)&&e(t)&&o(Le)})}j(o=>{et(Te,"href",o),ce(Me,(e(t),n(()=>e(t)?e(t).name:"Loading...")))},[()=>(de(A),n(()=>A("/repositories")))]),w(ye,K),Ke(),he()}export{Ct as component}; diff --git a/webapp/assets/_app/immutable/nodes/17.DCq-Dc1c.js b/webapp/assets/_app/immutable/nodes/17.DtdOzhy4.js similarity index 97% rename from webapp/assets/_app/immutable/nodes/17.DCq-Dc1c.js rename to webapp/assets/_app/immutable/nodes/17.DtdOzhy4.js index da616654..1a0a00e7 100644 --- a/webapp/assets/_app/immutable/nodes/17.DCq-Dc1c.js +++ b/webapp/assets/_app/immutable/nodes/17.DtdOzhy4.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as Gr}from"../chunks/C7KraPli.js";import{p as Hr,E as ot,o as Nr,l as F,k as r,g as e,m as d,h as Ur,f as k,s as a,d as l,r as o,t as _,i as ke,b,e as q,a as Pe,z as ir,y as we,u as p,D as Se,c as jr,B as Ir,q as qr,j as lt,$ as st,v as nr}from"../chunks/cPTQ2Ibn.js";import{i as M,s as dt,a as it}from"../chunks/DqFqoVWr.js";import{r as B,s as cr,b as $e,g as G,d as zr,c as nt}from"../chunks/DqbUkQgD.js";import{P as ct}from"../chunks/U3V4g_hv.js";import{e as ur,i as gr}from"../chunks/CiWDXYQd.js";import{b as Q,a as ut}from"../chunks/B-_QCM7E.js";import{p as gt}from"../chunks/D4Caz1gY.js";import{M as Fr}from"../chunks/Bo3f8OIz.js";import{J as vt}from"../chunks/D6f8Dk7c.js";import{e as V}from"../chunks/BZiHL9L3.js";import{U as bt}from"../chunks/BUaPampd.js";import{D as pt}from"../chunks/91PQ6UtW.js";import{D as mt,G as vr,A as ft,L as yt}from"../chunks/Du50aAe5.js";import{e as xt,a as Lr}from"../chunks/JUkrBp3F.js";import{t as ne}from"../chunks/Bgbd8SZ5.js";import{e as Ce,h as ht}from"../chunks/DJsB5Z5V.js";import{E as _t}from"../chunks/CPFytHjx.js";import{E as kt}from"../chunks/CYqkNFLz.js";import{S as wt}from"../chunks/BZ2WxPPD.js";import{P as St}from"../chunks/BM4Azg_w.js";import"../chunks/D7e9zx6w.js";var $t=k('

'),Ct=k('
'),Pt=k(""),Mt=k(''),Tt=k('
'),Et=k(""),Rt=k(''),Dt=k('
Loading templates...
'),At=k(""),It=k('

Templates define how the runner software is installed and configured.

',1),zt=k('

Create a template first or proceed without a template to use default behavior.

'),Lt=k('

Select an entity first to see available templates

'),Gt=k('

Entity & Provider Configuration

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
',1),Ht=k('
Creating...
'),Nt=k('

Create New Scale Set

Scale sets are only available for GitHub endpoints

Entity Level *
');function Ut(ze,Le){Hr(Le,!1);const ce=d(),ue=ot();let E=d(!1),A=d(""),u=d(""),C=d([]),re=d([]),x=d([]),J=d(!1),W=d(!1),K=d(!1),w=d(""),g=d(""),I=d(""),H=d(""),N=d(""),m=d(void 0),X=d(void 0),ge=d(void 0),ve=d("garm"),R=d("linux"),te=d("amd64"),ae=d(""),oe=d(!0),Y=d("{}"),z=d(void 0);async function Ge(){try{r(W,!0),r(re,await G.listProviders())}catch(i){r(A,V(i))}finally{r(W,!1)}}async function Me(){try{r(K,!0);const i=be();if(!i){r(x,[]);return}if(r(x,await G.listTemplates(e(R),void 0,i)),!e(z)||!e(x).find(f=>f.id===e(z))){const f=e(x).find(D=>D.owner_id==="system");f?r(z,f.id):e(x).length>0&&r(z,e(x)[0].id)}}catch(i){r(A,V(i))}finally{r(K,!1)}}function be(){if(!e(g)||!e(C))return null;const i=e(C).find(f=>f.id===e(g));if(!i)return null;if("forge_type"in i)return i.forge_type;if("endpoint"in i){const f=i.endpoint;if(f&&"endpoint_type"in f)return f.endpoint_type||null}return"github"}async function He(){if(e(u))try{switch(r(J,!0),r(C,[]),e(u)){case"repository":r(C,await G.listRepositories());break;case"organization":r(C,await G.listOrganizations());break;case"enterprise":r(C,await G.listEnterprises());break}}catch(i){r(A,V(i))}finally{r(J,!1)}}function pe(i){e(u)!==i&&(r(u,i),r(g,""),r(z,void 0),He())}async function Ne(){if(!e(ce)){r(A,"Please fill in all required fields");return}try{r(E,!0),r(A,"");let i={};if(e(Y).trim())try{i=JSON.parse(e(Y))}catch{throw new Error("Invalid JSON in extra specs")}const f={name:e(w),provider_name:e(I),image:e(H),flavor:e(N),max_runners:e(m)||10,min_idle_runners:e(X)||0,runner_bootstrap_timeout:e(ge)||20,runner_prefix:e(ve),os_type:e(R),os_arch:e(te),"github-runner-group":e(ae)||void 0,enabled:e(oe),extra_specs:e(Y).trim()?i:void 0,template_id:e(z)};let D;switch(e(u)){case"repository":D=await G.createRepositoryScaleSet(e(g),f);break;case"organization":D=await G.createOrganizationScaleSet(e(g),f);break;case"enterprise":D=await G.createEnterpriseScaleSet(e(g),f);break;default:throw new Error("Invalid entity level selected")}ue("submit",D)}catch(i){r(A,V(i))}finally{r(E,!1)}}Nr(()=>{Ge()}),F(()=>(e(E),e(w),e(u),e(g),e(I),e(H),e(N)),()=>{r(ce,!e(E)&&e(w).trim()!==""&&e(u)!==""&&e(g)!==""&&e(I)!==""&&e(H).trim()!==""&&e(N).trim()!=="")}),F(()=>(e(g),e(R)),()=>{e(g)&&e(R)&&Me()}),F(()=>(e(R),e(g)),()=>{e(R)&&e(g)&&Me()}),Ur(),Gr(),Fr(ze,{$$events:{close:()=>ue("close")},children:(i,f)=>{var D=Nt(),le=a(l(D),2),me=l(le);{var Ue=S=>{var U=$t(),ie=l(U),Ae=l(ie,!0);o(ie),o(U),_(()=>q(Ae,e(A))),b(S,U)};M(me,S=>{e(A)&&S(Ue)})}var se=a(me,2),Te=a(l(se),2);B(Te),o(se);var de=a(se,2),Ee=l(de),Re=a(l(Ee),2),fe=l(Re),t=a(fe,2),v=a(t,2);o(Re),o(Ee),o(de);var Z=a(de,2);{var ye=S=>{var U=Gt(),ie=Pe(U),Ae=a(l(ie),2),qe=l(Ae),Fe=l(qe),Jr=l(Fe);ir(),o(Fe);var Wr=a(Fe,2);{var Kr=s=>{var y=Ct();b(s,y)},Qr=s=>{var y=Mt();_(()=>{e(g),we(()=>{e(u),e(C)})});var L=l(y),xe=l(L);o(L),L.value=L.__value="";var ee=a(L);ur(ee,1,()=>e(C),gr,(h,n)=>{var T=Pt(),O=l(T);{var he=c=>{var P=Se();_(()=>q(P,`${e(n),p(()=>e(n).owner)??""}/${e(n),p(()=>e(n).name)??""} (${e(n),p(()=>e(n).endpoint?.name||"Unknown endpoint")??""})`)),b(c,P)},j=c=>{var P=Se();_(()=>q(P,`${e(n),p(()=>e(n).name)??""} (${e(n),p(()=>e(n).endpoint?.name||"Unknown endpoint")??""})`)),b(c,P)};M(O,c=>{e(u)==="repository"?c(he):c(j,!1)})}o(T);var $={};_(()=>{$!==($=(e(n),p(()=>e(n).id)))&&(T.value=(T.__value=(e(n),p(()=>e(n).id)))??"")}),b(h,T)}),o(y),_(()=>q(xe,`Select a ${e(u)??""}`)),$e(y,()=>e(g),h=>r(g,h)),b(s,y)};M(Wr,s=>{e(J)?s(Kr):s(Qr,!1)})}o(qe);var pr=a(qe,2),Xr=a(l(pr),2);{var Yr=s=>{var y=Tt();b(s,y)},Zr=s=>{var y=Rt();_(()=>{e(I),we(()=>{e(re)})});var L=l(y);L.value=L.__value="";var xe=a(L);ur(xe,1,()=>e(re),gr,(ee,h)=>{var n=Et(),T=l(n,!0);o(n);var O={};_(()=>{q(T,(e(h),p(()=>e(h).name))),O!==(O=(e(h),p(()=>e(h).name)))&&(n.value=(n.__value=(e(h),p(()=>e(h).name)))??"")}),b(ee,n)}),o(y),$e(y,()=>e(I),ee=>r(I,ee)),b(s,y)};M(Xr,s=>{e(W)?s(Yr):s(Zr,!1)})}o(pr),o(Ae),o(ie);var Oe=a(ie,2),Be=a(l(Oe),2),Ve=l(Be),mr=a(l(Ve),2);B(mr),o(Ve);var Je=a(Ve,2),fr=a(l(Je),2);B(fr),o(Je);var We=a(Je,2),Ke=a(l(We),2);_(()=>{e(R),we(()=>{})});var Qe=l(Ke);Qe.value=Qe.__value="linux";var yr=a(Qe);yr.value=yr.__value="windows",o(Ke),o(We);var xr=a(We,2),Xe=a(l(xr),2);_(()=>{e(te),we(()=>{})});var Ye=l(Xe);Ye.value=Ye.__value="amd64";var hr=a(Ye);hr.value=hr.__value="arm64",o(Xe),o(xr),o(Be);var _r=a(Be,2),et=a(l(_r),2);{var rt=s=>{var y=Dt();b(s,y)},tt=s=>{var y=Ir(),L=Pe(y);{var xe=h=>{var n=It(),T=Pe(n);_(()=>{e(z),we(()=>{e(x)})}),ur(T,5,()=>e(x),gr,($,c)=>{var P=At(),_e=l(P),lr=a(_e);{var sr=dr=>{var Ar=Se();_(()=>q(Ar,`- ${e(c),p(()=>e(c).description)??""}`)),b(dr,Ar)};M(lr,dr=>{e(c),p(()=>e(c).description)&&dr(sr)})}o(P);var Ie={};_(()=>{q(_e,`${e(c),p(()=>e(c).name)??""} ${e(c),p(()=>e(c).owner_id==="system"?"(System)":"")??""} `),Ie!==(Ie=(e(c),p(()=>e(c).id)))&&(P.value=(P.__value=(e(c),p(()=>e(c).id)))??"")}),b($,P)}),o(T);var O=a(T,2),he=a(l(O));{var j=$=>{var c=Se();_(P=>q(c,`Showing templates for ${P??""} ${e(R)??""}.`),[()=>p(be)]),b($,c)};M(he,$=>{e(g)&&$(j)})}o(O),$e(T,()=>e(z),$=>r(z,$)),b(h,n)},ee=h=>{var n=Ir(),T=Pe(n);{var O=j=>{var $=zt(),c=l($),P=l(c);o(c);var _e=a(c,2),lr=l(_e);ir(),o(_e),o($),_((sr,Ie)=>{q(P,`No templates found for ${sr??""} ${e(R)??""}.`),nt(lr,"href",Ie)},[()=>p(be),()=>(qr(zr),p(()=>zr("/templates")))]),b(j,$)},he=j=>{var $=Lt();b(j,$)};M(T,j=>{e(g)?j(O):j(he,!1)},!0)}b(h,n)};M(L,h=>{e(x),p(()=>e(x).length>0)?h(xe):h(ee,!1)},!0)}b(s,y)};M(et,s=>{e(K)?s(rt):s(tt,!1)})}o(_r),o(Oe);var Ze=a(Oe,2),kr=a(l(Ze),2),er=l(kr),wr=a(l(er),2);B(wr),o(er);var rr=a(er,2),Sr=a(l(rr),2);B(Sr),o(rr);var $r=a(rr,2),Cr=a(l($r),2);B(Cr),o($r),o(kr),o(Ze);var Pr=a(Ze,2),tr=a(l(Pr),2),ar=l(tr),Mr=a(l(ar),2);B(Mr),o(ar);var Tr=a(ar,2),Er=a(l(Tr),2);B(Er),o(Tr),o(tr);var or=a(tr,2),at=a(l(or),2);vt(at,{rows:4,placeholder:"{}",get value(){return e(Y)},set value(s){r(Y,s)},$$legacy:!0}),o(or);var Rr=a(or,2),Dr=l(Rr);B(Dr),ir(2),o(Rr),o(Pr),_(s=>q(Jr,`${s??""} `),[()=>(e(u),p(()=>e(u).charAt(0).toUpperCase()+e(u).slice(1)))]),Q(mr,()=>e(H),s=>r(H,s)),Q(fr,()=>e(N),s=>r(N,s)),$e(Ke,()=>e(R),s=>r(R,s)),$e(Xe,()=>e(te),s=>r(te,s)),Q(wr,()=>e(X),s=>r(X,s)),Q(Sr,()=>e(m),s=>r(m,s)),Q(Cr,()=>e(ge),s=>r(ge,s)),Q(Mr,()=>e(ve),s=>r(ve,s)),Q(Er,()=>e(ae),s=>r(ae,s)),ut(Dr,()=>e(oe),s=>r(oe,s)),b(S,U)};M(Z,S=>{e(u)&&S(ye)})}var De=a(Z,2),br=l(De),je=a(br,2),Or=l(je);{var Br=S=>{var U=Ht();b(S,U)},Vr=S=>{var U=Se("Create Scale Set");b(S,U)};M(Or,S=>{e(E)?S(Br):S(Vr,!1)})}o(je),o(De),o(le),o(D),_(()=>{cr(fe,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(u)==="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"}`),cr(t,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(u)==="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"}`),cr(v,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(u)==="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"}`),je.disabled=!e(ce)}),Q(Te,()=>e(w),S=>r(w,S)),ke("click",fe,()=>pe("repository")),ke("click",t,()=>pe("organization")),ke("click",v,()=>pe("enterprise")),ke("click",br,()=>ue("close")),ke("submit",le,gt(Ne)),b(i,D)},$$slots:{default:!0}}),jr()}const jt={};var qt=k('
'),Ft=k('
',1);function va(ze,Le){Hr(Le,!1);const[ce,ue]=dt(),E=()=>it(xt,"$eagerCache",ce),A=d(),u=d(),C=d(),re=d();let x=d([]),J=d(!0),W=d(""),K=d(""),w=d(1),g=d(25),I=d(!1),H=d(!1),N=d(!1),m=d(null),X=d(!1);async function ge(t){try{r(W,""),r(I,!1),ne.success("Scale Set Created","Scale set has been created successfully.")}catch(v){throw r(W,V(v)),v}}async function ve(t){if(e(m))try{await G.updateScaleSet(e(m).id,t),ne.success("Scale Set Updated",`Scale set ${e(m).name} has been updated successfully.`),r(H,!1),r(m,null)}catch(v){const Z=V(v);throw ne.error("Update Failed",Z),v}}async function R(){if(e(m))try{await G.deleteScaleSet(e(m).id),ne.success("Scale Set Deleted",`Scale set ${e(m).name} has been deleted successfully.`)}catch(t){const v=V(t);ne.error("Delete Failed",v)}finally{r(N,!1),r(m,null)}}function te(){r(I,!0)}async function ae(t){try{r(X,!0);const v=await G.getScaleSet(t.id);r(m,v),r(H,!0)}catch(v){const Z=V(v);ne.error("Failed to Load Scale Set Details",Z)}finally{r(X,!1)}}function oe(t){r(m,t),r(N,!0)}Nr(async()=>{try{r(J,!0);const t=await Lr.getScaleSets();t&&Array.isArray(t)&&r(x,t)}catch(t){jt?.VITEST||console.error("Failed to load scale sets:",t),r(W,V(t))}finally{r(J,!1)}});async function Y(){try{await Lr.retryResource("scalesets")}catch(t){console.error("Retry failed:",t)}}const z=[{key:"name",title:"Name",cellComponent:_t,cellProps:{entityType:"scaleset"}},{key:"image",title:"Image",cellComponent:vr,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:vr,cellProps:{field:"provider_name"}},{key:"flavor",title:"Flavor",cellComponent:vr,cellProps:{field:"flavor"}},{key:"entity",title:"Entity",cellComponent:St},{key:"endpoint",title:"Endpoint",cellComponent:kt},{key:"status",title:"Status",cellComponent:wt,cellProps:{statusType:"enabled"}},{key:"actions",title:"Actions",align:"right",cellComponent:ft}],Ge={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=>ae(t)},{type:"delete",handler:t=>oe(t)}]};function Me(t){r(K,t.detail.term),r(w,1)}function be(t){r(w,t.detail.page)}function He(t){r(g,t.detail.perPage),r(w,1)}function pe(t){ae(t.detail.item)}function Ne(t){oe(t.detail.item)}F(()=>(e(x),E()),()=>{(!e(x).length||E().loaded.scalesets)&&r(x,E().scalesets)}),F(()=>E(),()=>{r(J,E().loading.scalesets)}),F(()=>E(),()=>{r(A,E().errorMessages.scalesets)}),F(()=>(e(x),e(K),Ce),()=>{r(u,ht(e(x),e(K),t=>Ce(t)))}),F(()=>(e(u),e(g)),()=>{r(C,Math.ceil(e(u).length/e(g)))}),F(()=>(e(w),e(C)),()=>{e(w)>e(C)&&e(C)>0&&r(w,e(C))}),F(()=>(e(u),e(w),e(g)),()=>{r(re,e(u).slice((e(w)-1)*e(g),e(w)*e(g)))}),Ur(),Gr();var i=Ft();lt(t=>{st.title="Scale Sets - GARM"});var f=Pe(i),D=l(f);ct(D,{title:"Scale Sets",description:"Manage GitHub runner scale sets",actionLabel:"Add Scale Set",$$events:{action:te}});var le=a(D,2);{let t=nr(()=>e(A)||e(W)),v=nr(()=>!!e(A));mt(le,{get columns(){return z},get data(){return e(re)},get loading(){return e(J)},get error(){return e(t)},get searchTerm(){return e(K)},searchPlaceholder:"Search by entity name...",get currentPage(){return e(w)},get perPage(){return e(g)},get totalPages(){return e(C)},get totalItems(){return e(u),p(()=>e(u).length)},itemName:"scale sets",emptyIconType:"cog",get showRetry(){return e(v)},get mobileCardConfig(){return Ge},$$events:{search:Me,pageChange:be,perPageChange:He,retry:Y,edit:pe,delete:Ne}})}o(f);var me=a(f,2);{var Ue=t=>{Ut(t,{$$events:{close:()=>r(I,!1),submit:v=>ge(v.detail)}})};M(me,t=>{e(I)&&t(Ue)})}var se=a(me,2);{var Te=t=>{bt(t,{get scaleSet(){return e(m)},$$events:{close:()=>{r(H,!1),r(m,null)},submit:v=>ve(v.detail)}})};M(se,t=>{e(H)&&e(m)&&t(Te)})}var de=a(se,2);{var Ee=t=>{{let v=nr(()=>(e(m),qr(Ce),p(()=>`Scale Set ${e(m).name} (${Ce(e(m))})`)));pt(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(v)},$$events:{close:()=>{r(N,!1),r(m,null)},confirm:R}})}};M(de,t=>{e(N)&&e(m)&&t(Ee)})}var Re=a(de,2);{var fe=t=>{Fr(t,{$$events:{close:()=>{}},children:(v,Z)=>{var ye=qt(),De=l(ye);yt(De,{message:"Loading scale set details..."}),o(ye),b(v,ye)},$$slots:{default:!0}})};M(Re,t=>{e(X)&&t(fe)})}b(ze,i),jr(),ue()}export{va as component}; +import"../chunks/DsnmJJEf.js";import{i as Gr}from"../chunks/C7KraPli.js";import{p as Hr,E as ot,o as Nr,l as F,k as r,g as e,m as d,h as Ur,f as k,s as a,d as l,r as o,t as _,i as ke,b,e as q,a as Pe,z as ir,y as we,u as p,D as Se,c as jr,B as Ir,q as qr,j as lt,$ as st,v as nr}from"../chunks/cPTQ2Ibn.js";import{i as M,s as dt,a as it}from"../chunks/DqFqoVWr.js";import{r as B,s as cr,b as $e,g as G,d as zr,c as nt}from"../chunks/yWyZZHPR.js";import{P as ct}from"../chunks/BtskFTeb.js";import{e as ur,i as gr}from"../chunks/CiWDXYQd.js";import{b as Q,a as ut}from"../chunks/B-_QCM7E.js";import{p as gt}from"../chunks/D4Caz1gY.js";import{M as Fr}from"../chunks/ao5EljEX.js";import{J as vt}from"../chunks/BaxpdL59.js";import{e as V}from"../chunks/BZiHL9L3.js";import{U as bt}from"../chunks/DQv7wuIJ.js";import{D as pt}from"../chunks/Cpm0auuQ.js";import{D as mt,G as vr,A as ft,L as yt}from"../chunks/BIepGqC5.js";import{e as xt,a as Lr}from"../chunks/C01HillC.js";import{t as ne}from"../chunks/Bgbd8SZ5.js";import{e as Ce,h as ht}from"../chunks/Cr2hBuns.js";import{E as _t}from"../chunks/CVL5tSYq.js";import{E as kt}from"../chunks/C6PRls9Y.js";import{S as wt}from"../chunks/CMG1iQmM.js";import{P as St}from"../chunks/DXLlGL2Y.js";import"../chunks/BMOcKgHw.js";var $t=k('

'),Ct=k('
'),Pt=k(""),Mt=k(''),Tt=k('
'),Et=k(""),Rt=k(''),Dt=k('
Loading templates...
'),At=k(""),It=k('

Templates define how the runner software is installed and configured.

',1),zt=k('

Create a template first or proceed without a template to use default behavior.

'),Lt=k('

Select an entity first to see available templates

'),Gt=k('

Entity & Provider Configuration

Image & OS Configuration

Runner Limits & Timing

Advanced Settings

Extra Specs (JSON)
',1),Ht=k('
Creating...
'),Nt=k('

Create New Scale Set

Scale sets are only available for GitHub endpoints

Entity Level *
');function Ut(ze,Le){Hr(Le,!1);const ce=d(),ue=ot();let E=d(!1),A=d(""),u=d(""),C=d([]),re=d([]),x=d([]),J=d(!1),W=d(!1),K=d(!1),w=d(""),g=d(""),I=d(""),H=d(""),N=d(""),m=d(void 0),X=d(void 0),ge=d(void 0),ve=d("garm"),R=d("linux"),te=d("amd64"),ae=d(""),oe=d(!0),Y=d("{}"),z=d(void 0);async function Ge(){try{r(W,!0),r(re,await G.listProviders())}catch(i){r(A,V(i))}finally{r(W,!1)}}async function Me(){try{r(K,!0);const i=be();if(!i){r(x,[]);return}if(r(x,await G.listTemplates(e(R),void 0,i)),!e(z)||!e(x).find(f=>f.id===e(z))){const f=e(x).find(D=>D.owner_id==="system");f?r(z,f.id):e(x).length>0&&r(z,e(x)[0].id)}}catch(i){r(A,V(i))}finally{r(K,!1)}}function be(){if(!e(g)||!e(C))return null;const i=e(C).find(f=>f.id===e(g));if(!i)return null;if("forge_type"in i)return i.forge_type;if("endpoint"in i){const f=i.endpoint;if(f&&"endpoint_type"in f)return f.endpoint_type||null}return"github"}async function He(){if(e(u))try{switch(r(J,!0),r(C,[]),e(u)){case"repository":r(C,await G.listRepositories());break;case"organization":r(C,await G.listOrganizations());break;case"enterprise":r(C,await G.listEnterprises());break}}catch(i){r(A,V(i))}finally{r(J,!1)}}function pe(i){e(u)!==i&&(r(u,i),r(g,""),r(z,void 0),He())}async function Ne(){if(!e(ce)){r(A,"Please fill in all required fields");return}try{r(E,!0),r(A,"");let i={};if(e(Y).trim())try{i=JSON.parse(e(Y))}catch{throw new Error("Invalid JSON in extra specs")}const f={name:e(w),provider_name:e(I),image:e(H),flavor:e(N),max_runners:e(m)||10,min_idle_runners:e(X)||0,runner_bootstrap_timeout:e(ge)||20,runner_prefix:e(ve),os_type:e(R),os_arch:e(te),"github-runner-group":e(ae)||void 0,enabled:e(oe),extra_specs:e(Y).trim()?i:void 0,template_id:e(z)};let D;switch(e(u)){case"repository":D=await G.createRepositoryScaleSet(e(g),f);break;case"organization":D=await G.createOrganizationScaleSet(e(g),f);break;case"enterprise":D=await G.createEnterpriseScaleSet(e(g),f);break;default:throw new Error("Invalid entity level selected")}ue("submit",D)}catch(i){r(A,V(i))}finally{r(E,!1)}}Nr(()=>{Ge()}),F(()=>(e(E),e(w),e(u),e(g),e(I),e(H),e(N)),()=>{r(ce,!e(E)&&e(w).trim()!==""&&e(u)!==""&&e(g)!==""&&e(I)!==""&&e(H).trim()!==""&&e(N).trim()!=="")}),F(()=>(e(g),e(R)),()=>{e(g)&&e(R)&&Me()}),F(()=>(e(R),e(g)),()=>{e(R)&&e(g)&&Me()}),Ur(),Gr(),Fr(ze,{$$events:{close:()=>ue("close")},children:(i,f)=>{var D=Nt(),le=a(l(D),2),me=l(le);{var Ue=S=>{var U=$t(),ie=l(U),Ae=l(ie,!0);o(ie),o(U),_(()=>q(Ae,e(A))),b(S,U)};M(me,S=>{e(A)&&S(Ue)})}var se=a(me,2),Te=a(l(se),2);B(Te),o(se);var de=a(se,2),Ee=l(de),Re=a(l(Ee),2),fe=l(Re),t=a(fe,2),v=a(t,2);o(Re),o(Ee),o(de);var Z=a(de,2);{var ye=S=>{var U=Gt(),ie=Pe(U),Ae=a(l(ie),2),qe=l(Ae),Fe=l(qe),Jr=l(Fe);ir(),o(Fe);var Wr=a(Fe,2);{var Kr=s=>{var y=Ct();b(s,y)},Qr=s=>{var y=Mt();_(()=>{e(g),we(()=>{e(u),e(C)})});var L=l(y),xe=l(L);o(L),L.value=L.__value="";var ee=a(L);ur(ee,1,()=>e(C),gr,(h,n)=>{var T=Pt(),O=l(T);{var he=c=>{var P=Se();_(()=>q(P,`${e(n),p(()=>e(n).owner)??""}/${e(n),p(()=>e(n).name)??""} (${e(n),p(()=>e(n).endpoint?.name||"Unknown endpoint")??""})`)),b(c,P)},j=c=>{var P=Se();_(()=>q(P,`${e(n),p(()=>e(n).name)??""} (${e(n),p(()=>e(n).endpoint?.name||"Unknown endpoint")??""})`)),b(c,P)};M(O,c=>{e(u)==="repository"?c(he):c(j,!1)})}o(T);var $={};_(()=>{$!==($=(e(n),p(()=>e(n).id)))&&(T.value=(T.__value=(e(n),p(()=>e(n).id)))??"")}),b(h,T)}),o(y),_(()=>q(xe,`Select a ${e(u)??""}`)),$e(y,()=>e(g),h=>r(g,h)),b(s,y)};M(Wr,s=>{e(J)?s(Kr):s(Qr,!1)})}o(qe);var pr=a(qe,2),Xr=a(l(pr),2);{var Yr=s=>{var y=Tt();b(s,y)},Zr=s=>{var y=Rt();_(()=>{e(I),we(()=>{e(re)})});var L=l(y);L.value=L.__value="";var xe=a(L);ur(xe,1,()=>e(re),gr,(ee,h)=>{var n=Et(),T=l(n,!0);o(n);var O={};_(()=>{q(T,(e(h),p(()=>e(h).name))),O!==(O=(e(h),p(()=>e(h).name)))&&(n.value=(n.__value=(e(h),p(()=>e(h).name)))??"")}),b(ee,n)}),o(y),$e(y,()=>e(I),ee=>r(I,ee)),b(s,y)};M(Xr,s=>{e(W)?s(Yr):s(Zr,!1)})}o(pr),o(Ae),o(ie);var Oe=a(ie,2),Be=a(l(Oe),2),Ve=l(Be),mr=a(l(Ve),2);B(mr),o(Ve);var Je=a(Ve,2),fr=a(l(Je),2);B(fr),o(Je);var We=a(Je,2),Ke=a(l(We),2);_(()=>{e(R),we(()=>{})});var Qe=l(Ke);Qe.value=Qe.__value="linux";var yr=a(Qe);yr.value=yr.__value="windows",o(Ke),o(We);var xr=a(We,2),Xe=a(l(xr),2);_(()=>{e(te),we(()=>{})});var Ye=l(Xe);Ye.value=Ye.__value="amd64";var hr=a(Ye);hr.value=hr.__value="arm64",o(Xe),o(xr),o(Be);var _r=a(Be,2),et=a(l(_r),2);{var rt=s=>{var y=Dt();b(s,y)},tt=s=>{var y=Ir(),L=Pe(y);{var xe=h=>{var n=It(),T=Pe(n);_(()=>{e(z),we(()=>{e(x)})}),ur(T,5,()=>e(x),gr,($,c)=>{var P=At(),_e=l(P),lr=a(_e);{var sr=dr=>{var Ar=Se();_(()=>q(Ar,`- ${e(c),p(()=>e(c).description)??""}`)),b(dr,Ar)};M(lr,dr=>{e(c),p(()=>e(c).description)&&dr(sr)})}o(P);var Ie={};_(()=>{q(_e,`${e(c),p(()=>e(c).name)??""} ${e(c),p(()=>e(c).owner_id==="system"?"(System)":"")??""} `),Ie!==(Ie=(e(c),p(()=>e(c).id)))&&(P.value=(P.__value=(e(c),p(()=>e(c).id)))??"")}),b($,P)}),o(T);var O=a(T,2),he=a(l(O));{var j=$=>{var c=Se();_(P=>q(c,`Showing templates for ${P??""} ${e(R)??""}.`),[()=>p(be)]),b($,c)};M(he,$=>{e(g)&&$(j)})}o(O),$e(T,()=>e(z),$=>r(z,$)),b(h,n)},ee=h=>{var n=Ir(),T=Pe(n);{var O=j=>{var $=zt(),c=l($),P=l(c);o(c);var _e=a(c,2),lr=l(_e);ir(),o(_e),o($),_((sr,Ie)=>{q(P,`No templates found for ${sr??""} ${e(R)??""}.`),nt(lr,"href",Ie)},[()=>p(be),()=>(qr(zr),p(()=>zr("/templates")))]),b(j,$)},he=j=>{var $=Lt();b(j,$)};M(T,j=>{e(g)?j(O):j(he,!1)},!0)}b(h,n)};M(L,h=>{e(x),p(()=>e(x).length>0)?h(xe):h(ee,!1)},!0)}b(s,y)};M(et,s=>{e(K)?s(rt):s(tt,!1)})}o(_r),o(Oe);var Ze=a(Oe,2),kr=a(l(Ze),2),er=l(kr),wr=a(l(er),2);B(wr),o(er);var rr=a(er,2),Sr=a(l(rr),2);B(Sr),o(rr);var $r=a(rr,2),Cr=a(l($r),2);B(Cr),o($r),o(kr),o(Ze);var Pr=a(Ze,2),tr=a(l(Pr),2),ar=l(tr),Mr=a(l(ar),2);B(Mr),o(ar);var Tr=a(ar,2),Er=a(l(Tr),2);B(Er),o(Tr),o(tr);var or=a(tr,2),at=a(l(or),2);vt(at,{rows:4,placeholder:"{}",get value(){return e(Y)},set value(s){r(Y,s)},$$legacy:!0}),o(or);var Rr=a(or,2),Dr=l(Rr);B(Dr),ir(2),o(Rr),o(Pr),_(s=>q(Jr,`${s??""} `),[()=>(e(u),p(()=>e(u).charAt(0).toUpperCase()+e(u).slice(1)))]),Q(mr,()=>e(H),s=>r(H,s)),Q(fr,()=>e(N),s=>r(N,s)),$e(Ke,()=>e(R),s=>r(R,s)),$e(Xe,()=>e(te),s=>r(te,s)),Q(wr,()=>e(X),s=>r(X,s)),Q(Sr,()=>e(m),s=>r(m,s)),Q(Cr,()=>e(ge),s=>r(ge,s)),Q(Mr,()=>e(ve),s=>r(ve,s)),Q(Er,()=>e(ae),s=>r(ae,s)),ut(Dr,()=>e(oe),s=>r(oe,s)),b(S,U)};M(Z,S=>{e(u)&&S(ye)})}var De=a(Z,2),br=l(De),je=a(br,2),Or=l(je);{var Br=S=>{var U=Ht();b(S,U)},Vr=S=>{var U=Se("Create Scale Set");b(S,U)};M(Or,S=>{e(E)?S(Br):S(Vr,!1)})}o(je),o(De),o(le),o(D),_(()=>{cr(fe,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(u)==="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"}`),cr(t,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(u)==="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"}`),cr(v,1,`flex flex-col items-center justify-center p-4 border-2 rounded-lg transition-colors cursor-pointer ${e(u)==="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"}`),je.disabled=!e(ce)}),Q(Te,()=>e(w),S=>r(w,S)),ke("click",fe,()=>pe("repository")),ke("click",t,()=>pe("organization")),ke("click",v,()=>pe("enterprise")),ke("click",br,()=>ue("close")),ke("submit",le,gt(Ne)),b(i,D)},$$slots:{default:!0}}),jr()}const jt={};var qt=k('
'),Ft=k('
',1);function va(ze,Le){Hr(Le,!1);const[ce,ue]=dt(),E=()=>it(xt,"$eagerCache",ce),A=d(),u=d(),C=d(),re=d();let x=d([]),J=d(!0),W=d(""),K=d(""),w=d(1),g=d(25),I=d(!1),H=d(!1),N=d(!1),m=d(null),X=d(!1);async function ge(t){try{r(W,""),r(I,!1),ne.success("Scale Set Created","Scale set has been created successfully.")}catch(v){throw r(W,V(v)),v}}async function ve(t){if(e(m))try{await G.updateScaleSet(e(m).id,t),ne.success("Scale Set Updated",`Scale set ${e(m).name} has been updated successfully.`),r(H,!1),r(m,null)}catch(v){const Z=V(v);throw ne.error("Update Failed",Z),v}}async function R(){if(e(m))try{await G.deleteScaleSet(e(m).id),ne.success("Scale Set Deleted",`Scale set ${e(m).name} has been deleted successfully.`)}catch(t){const v=V(t);ne.error("Delete Failed",v)}finally{r(N,!1),r(m,null)}}function te(){r(I,!0)}async function ae(t){try{r(X,!0);const v=await G.getScaleSet(t.id);r(m,v),r(H,!0)}catch(v){const Z=V(v);ne.error("Failed to Load Scale Set Details",Z)}finally{r(X,!1)}}function oe(t){r(m,t),r(N,!0)}Nr(async()=>{try{r(J,!0);const t=await Lr.getScaleSets();t&&Array.isArray(t)&&r(x,t)}catch(t){jt?.VITEST||console.error("Failed to load scale sets:",t),r(W,V(t))}finally{r(J,!1)}});async function Y(){try{await Lr.retryResource("scalesets")}catch(t){console.error("Retry failed:",t)}}const z=[{key:"name",title:"Name",cellComponent:_t,cellProps:{entityType:"scaleset"}},{key:"image",title:"Image",cellComponent:vr,cellProps:{field:"image",type:"code",showTitle:!0}},{key:"provider",title:"Provider",cellComponent:vr,cellProps:{field:"provider_name"}},{key:"flavor",title:"Flavor",cellComponent:vr,cellProps:{field:"flavor"}},{key:"entity",title:"Entity",cellComponent:St},{key:"endpoint",title:"Endpoint",cellComponent:kt},{key:"status",title:"Status",cellComponent:wt,cellProps:{statusType:"enabled"}},{key:"actions",title:"Actions",align:"right",cellComponent:ft}],Ge={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=>ae(t)},{type:"delete",handler:t=>oe(t)}]};function Me(t){r(K,t.detail.term),r(w,1)}function be(t){r(w,t.detail.page)}function He(t){r(g,t.detail.perPage),r(w,1)}function pe(t){ae(t.detail.item)}function Ne(t){oe(t.detail.item)}F(()=>(e(x),E()),()=>{(!e(x).length||E().loaded.scalesets)&&r(x,E().scalesets)}),F(()=>E(),()=>{r(J,E().loading.scalesets)}),F(()=>E(),()=>{r(A,E().errorMessages.scalesets)}),F(()=>(e(x),e(K),Ce),()=>{r(u,ht(e(x),e(K),t=>Ce(t)))}),F(()=>(e(u),e(g)),()=>{r(C,Math.ceil(e(u).length/e(g)))}),F(()=>(e(w),e(C)),()=>{e(w)>e(C)&&e(C)>0&&r(w,e(C))}),F(()=>(e(u),e(w),e(g)),()=>{r(re,e(u).slice((e(w)-1)*e(g),e(w)*e(g)))}),Ur(),Gr();var i=Ft();lt(t=>{st.title="Scale Sets - GARM"});var f=Pe(i),D=l(f);ct(D,{title:"Scale Sets",description:"Manage GitHub runner scale sets",actionLabel:"Add Scale Set",$$events:{action:te}});var le=a(D,2);{let t=nr(()=>e(A)||e(W)),v=nr(()=>!!e(A));mt(le,{get columns(){return z},get data(){return e(re)},get loading(){return e(J)},get error(){return e(t)},get searchTerm(){return e(K)},searchPlaceholder:"Search by entity name...",get currentPage(){return e(w)},get perPage(){return e(g)},get totalPages(){return e(C)},get totalItems(){return e(u),p(()=>e(u).length)},itemName:"scale sets",emptyIconType:"cog",get showRetry(){return e(v)},get mobileCardConfig(){return Ge},$$events:{search:Me,pageChange:be,perPageChange:He,retry:Y,edit:pe,delete:Ne}})}o(f);var me=a(f,2);{var Ue=t=>{Ut(t,{$$events:{close:()=>r(I,!1),submit:v=>ge(v.detail)}})};M(me,t=>{e(I)&&t(Ue)})}var se=a(me,2);{var Te=t=>{bt(t,{get scaleSet(){return e(m)},$$events:{close:()=>{r(H,!1),r(m,null)},submit:v=>ve(v.detail)}})};M(se,t=>{e(H)&&e(m)&&t(Te)})}var de=a(se,2);{var Ee=t=>{{let v=nr(()=>(e(m),qr(Ce),p(()=>`Scale Set ${e(m).name} (${Ce(e(m))})`)));pt(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(v)},$$events:{close:()=>{r(N,!1),r(m,null)},confirm:R}})}};M(de,t=>{e(N)&&e(m)&&t(Ee)})}var Re=a(de,2);{var fe=t=>{Fr(t,{$$events:{close:()=>{}},children:(v,Z)=>{var ye=qt(),De=l(ye);yt(De,{message:"Loading scale set details..."}),o(ye),b(v,ye)},$$slots:{default:!0}})};M(Re,t=>{e(X)&&t(fe)})}b(ze,i),jr(),ue()}export{va as component}; diff --git a/webapp/assets/_app/immutable/nodes/18.xleZqgRD.js b/webapp/assets/_app/immutable/nodes/18.CjzIUFPa.js similarity index 96% rename from webapp/assets/_app/immutable/nodes/18.xleZqgRD.js rename to webapp/assets/_app/immutable/nodes/18.CjzIUFPa.js index 720c0ab7..1e039d14 100644 --- a/webapp/assets/_app/immutable/nodes/18.xleZqgRD.js +++ b/webapp/assets/_app/immutable/nodes/18.CjzIUFPa.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as Ve}from"../chunks/C7KraPli.js";import{p as We,o as Ke,A as Qe,l as Xe,h as Ye,f as _,j as Ze,a as T,t as h,b as u,c as ta,u as i,q as g,e as n,g as t,m as b,d as a,s,k as v,$ as ea,r,w as A,B as ft,v as $}from"../chunks/cPTQ2Ibn.js";import{i as f}from"../chunks/DqFqoVWr.js";import{d as k,c as L,g as O,s as aa}from"../chunks/DqbUkQgD.js";import{p as Xt}from"../chunks/BgSaD1r_.js";import{g as Yt}from"../chunks/CTvJf3dP.js";import{U as ra}from"../chunks/BUaPampd.js";import{D as Zt}from"../chunks/91PQ6UtW.js";import{I as da}from"../chunks/DliFOxtc.js";import{D as sa}from"../chunks/oOdVuDuv.js";import{w as te}from"../chunks/BV_mDmfH.js";import{t as H}from"../chunks/Bgbd8SZ5.js";import{e as ee}from"../chunks/BZiHL9L3.js";import{e as E,i as J,j as ae,b as P,g as re}from"../chunks/DJsB5Z5V.js";var ia=_('

Loading scale set...

'),la=_('

'),na=_(' '),oa=_(' '),va=_('Default system template'),ca=_('
GitHub Runner Group
'),ma=_('

Extra Specifications

 
'),xa=_('

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
Runner Install Template
',1),ua=_(' ',1);function Ta(de,se){We(se,!1);const N=b();let e=b(null),j=b(!0),R=b(""),U=b(!1),B=b(!1),F=b(!1),p=b(null),C=null;async function pt(){if(!(!t(N)||isNaN(t(N))))try{v(j,!0),v(R,""),v(e,await O.getScaleSet(t(N))),t(e).instances||A(e,t(e).instances=[])}catch(d){v(R,d instanceof Error?d.message:"Failed to load scale set")}finally{v(j,!1)}}async function ie(d){if(t(e))try{await O.updateScaleSet(t(e).id,d),await pt(),H.success("Scale Set Updated",`Scale Set ${t(e).name} has been updated successfully.`),v(U,!1)}catch(l){throw l}}async function le(){if(t(e)){try{await O.deleteScaleSet(t(e).id),Yt(k("/scalesets"))}catch(d){const l=ee(d);H.error("Delete Failed",l)}v(B,!1)}}async function ne(){if(t(p)){try{await O.deleteInstance(t(p).name),H.success("Instance Deleted",`Instance ${t(p).name} has been deleted successfully.`)}catch(d){const l=ee(d);H.error("Delete Failed",l)}v(F,!1),v(p,null)}}function oe(d){v(p,d),v(F,!0)}function ve(d){if(!d)return"{}";try{if(typeof d=="string"){const l=JSON.parse(d);return JSON.stringify(l,null,2)}return JSON.stringify(d,null,2)}catch{return d.toString()}}function ce(d){if(d.operation==="update"){const l=d.payload;t(e)&&l.id===t(e).id&&v(e,l)}else if(d.operation==="delete"){const l=d.payload.id||d.payload;t(e)&&t(e).id===l&&Yt(k("/scalesets"))}}function me(d){if(!t(e))return;const l=d.payload;if(l.scale_set_id===t(e).id){if(t(e).instances||A(e,t(e).instances=[]),d.operation==="create")A(e,t(e).instances=[...t(e).instances,l]);else if(d.operation==="update")A(e,t(e).instances=t(e).instances.map(S=>S.id===l.id?l:S));else if(d.operation==="delete"){const S=l.id||l;A(e,t(e).instances=t(e).instances.filter(W=>W.id!==S))}v(e,t(e))}}Ke(()=>{pt();const d=te.subscribeToEntity("scaleset",["update","delete"],ce),l=te.subscribeToEntity("instance",["create","update","delete"],me);C=()=>{d(),l()}}),Qe(()=>{C&&(C(),C=null)}),Xe(()=>Xt,()=>{v(N,parseInt(Xt.params.id||"0"))}),Ye(),Ve();var _t=ua();Ze(d=>{h(()=>ea.title=`${t(e),i(()=>t(e)?`${t(e).name} - Scale Set Details`:"Scale Set Details")??""} - GARM`)});var q=T(_t),z=a(q),yt=a(z),V=a(yt),xe=a(V);r(V);var ht=s(V,2),bt=a(ht),kt=s(a(bt),2),ue=a(kt,!0);r(kt),r(bt),r(ht),r(yt),r(z);var ge=s(z,2);{var fe=d=>{var l=ia();u(d,l)},pe=d=>{var l=ft(),S=T(l);{var W=w=>{var I=la(),G=a(I),K=a(G,!0);r(G),r(I),h(()=>n(K,t(R))),u(w,I)},ke=w=>{var I=ft(),G=T(I);{var K=Q=>{var It=xa(),Dt=T(It);{let o=$(()=>(t(e),i(()=>t(e).name||"Scale Set"))),c=$(()=>(g(E),t(e),i(()=>E(t(e))))),m=$(()=>(g(J),t(e),i(()=>J(t(e))))),x=$(()=>(g(re),i(()=>re("github"))));sa(Dt,{get title(){return t(o)},get subtitle(){return`Scale set for ${t(c)??""} (${t(m)??""}) • GitHub Runner Scale Set`},get forgeIcon(){return t(x)},onEdit:()=>v(U,!0),onDelete:()=>v(B,!0)})}var X=s(Dt,2),Y=a(X),$t=a(Y),Et=s(a($t),2),Z=a(Et),Mt=s(a(Z),2),Se=a(Mt,!0);r(Mt),r(Z);var tt=s(Z,2),Tt=s(a(tt),2),we=a(Tt,!0);r(Tt),r(tt);var et=s(tt,2),At=s(a(et),2),Ie=a(At,!0);r(At),r(et);var at=s(et,2),Nt=s(a(at),2),Rt=a(Nt),De=a(Rt,!0);r(Rt),r(Nt),r(at);var rt=s(at,2),Ut=s(a(rt),2),$e=a(Ut,!0);r(Ut),r(rt);var dt=s(rt,2),Bt=s(a(dt),2),st=a(Bt),Ee=a(st,!0);r(st),r(Bt),r(dt);var it=s(dt,2),Ft=s(a(it),2),Ct=a(Ft),lt=a(Ct),Me=a(lt,!0);r(lt);var nt=s(lt,2),Te=a(nt,!0);r(nt),r(Ct),r(Ft),r(it);var ot=s(it,2),Gt=s(a(ot),2),Ae=a(Gt,!0);r(Gt),r(ot);var Lt=s(ot,2),Ot=s(a(Lt),2),Ne=a(Ot,!0);r(Ot),r(Lt),r(Et),r($t),r(Y);var Ht=s(Y,2),Jt=a(Ht),Pt=s(a(Jt),2),vt=a(Pt),jt=s(a(vt),2),Re=a(jt,!0);r(jt),r(vt);var ct=s(vt,2),qt=s(a(ct),2),Ue=a(qt,!0);r(qt),r(ct);var mt=s(ct,2),zt=s(a(mt),2),Be=a(zt);r(zt),r(mt);var xt=s(mt,2),Vt=s(a(xt),2),Fe=a(Vt,!0);r(Vt),r(xt);var ut=s(xt,2),Wt=s(a(ut),2),Ce=a(Wt);r(Wt),r(ut);var gt=s(ut,2),Kt=s(a(gt),2),Ge=a(Kt);{var Le=o=>{var c=na(),m=a(c,!0);r(c),h(x=>{L(c,"href",x),n(m,(t(e),i(()=>t(e).template_name)))},[()=>(g(k),t(e),i(()=>k(`/templates/${t(e).template_id}`)))]),u(o,c)},Oe=o=>{var c=ft(),m=T(c);{var x=y=>{var D=oa(),qe=a(D);r(D),h(ze=>{L(D,"href",ze),n(qe,`Template ID: ${t(e),i(()=>t(e).template_id)??""}`)},[()=>(g(k),t(e),i(()=>k(`/templates/${t(e).template_id}`)))]),u(y,D)},M=y=>{var D=va();u(y,D)};f(m,y=>{t(e),i(()=>t(e).template_id)?y(x):y(M,!1)},!0)}u(o,c)};f(Ge,o=>{t(e),i(()=>t(e).template_name)?o(Le):o(Oe,!1)})}r(Kt),r(gt);var He=s(gt,2);{var Je=o=>{var c=ca(),m=s(a(c),2),x=a(m,!0);r(m),r(c),h(()=>n(x,(t(e),i(()=>t(e)["github-runner-group"])))),u(o,c)};f(He,o=>{t(e),i(()=>t(e)["github-runner-group"])&&o(Je)})}r(Pt),r(Jt),r(Ht),r(X);var Qt=s(X,2);{var Pe=o=>{var c=ma(),m=a(c),x=s(a(m),2),M=a(x,!0);r(x),r(m),r(c),h(y=>n(M,y),[()=>(t(e),i(()=>ve(t(e).extra_specs)))]),u(o,c)};f(Qt,o=>{t(e),i(()=>t(e).extra_specs)&&o(Pe)})}var je=s(Qt,2);{let o=$(()=>(t(e),i(()=>t(e).instances||[])));da(je,{get instances(){return t(o)},entityType:"scaleset",onDeleteInstance:oe})}h((o,c,m,x,M)=>{n(Se,(t(e),i(()=>t(e).id))),n(we,(t(e),i(()=>t(e).name))),n(Ie,(t(e),i(()=>t(e).provider_name))),n(De,(t(e),i(()=>t(e).image))),n($e,(t(e),i(()=>t(e).flavor))),aa(st,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")??""}`),n(Ee,(t(e),i(()=>t(e).enabled?"Enabled":"Disabled"))),n(Me,o),L(nt,"href",c),n(Te,m),n(Ae,x),n(Ne,M),n(Re,(t(e),i(()=>t(e).max_runners))),n(Ue,(t(e),i(()=>t(e).min_idle_runners))),n(Be,`${t(e),i(()=>t(e).runner_bootstrap_timeout)??""} minutes`),n(Fe,(t(e),i(()=>t(e).runner_prefix||"garm"))),n(Ce,`${t(e),i(()=>t(e).os_type)??""} / ${t(e),i(()=>t(e).os_arch)??""}`)},[()=>(g(J),t(e),i(()=>J(t(e)))),()=>(g(ae),t(e),i(()=>ae(t(e)))),()=>(g(E),t(e),i(()=>E(t(e)))),()=>(g(P),t(e),i(()=>P(t(e).created_at||""))),()=>(g(P),t(e),i(()=>P(t(e).updated_at||"")))]),u(Q,It)};f(G,Q=>{t(e)&&Q(K)},!0)}u(w,I)};f(S,w=>{t(R)?w(W):w(ke,!1)},!0)}u(d,l)};f(ge,d=>{t(j)?d(fe):d(pe,!1)})}r(q);var St=s(q,2);{var _e=d=>{ra(d,{get scaleSet(){return t(e)},$$events:{close:()=>v(U,!1),submit:l=>ie(l.detail)}})};f(St,d=>{t(U)&&t(e)&&d(_e)})}var wt=s(St,2);{var ye=d=>{{let l=$(()=>(t(e),g(E),i(()=>`Scale Set ${t(e).name} (${E(t(e))})`)));Zt(d,{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(l)},$$events:{close:()=>v(B,!1),confirm:le}})}};f(wt,d=>{t(B)&&t(e)&&d(ye)})}var he=s(wt,2);{var be=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(p),i(()=>t(p).name)},$$events:{close:()=>{v(F,!1),v(p,null)},confirm:ne}})};f(he,d=>{t(F)&&t(p)&&d(be)})}h(d=>{L(xe,"href",d),n(ue,(t(e),i(()=>t(e)?t(e).name:"Loading...")))},[()=>(g(k),i(()=>k("/scalesets")))]),u(de,_t),ta()}export{Ta as component}; +import"../chunks/DsnmJJEf.js";import{i as Ve}from"../chunks/C7KraPli.js";import{p as We,o as Ke,A as Qe,l as Xe,h as Ye,f as _,j as Ze,a as T,t as h,b as u,c as ta,u as i,q as g,e as n,g as t,m as b,d as a,s,k as v,$ as ea,r,w as A,B as ft,v as $}from"../chunks/cPTQ2Ibn.js";import{i as f}from"../chunks/DqFqoVWr.js";import{d as k,c as L,g as O,s as aa}from"../chunks/yWyZZHPR.js";import{p as Xt}from"../chunks/DMSCYqmZ.js";import{g as Yt}from"../chunks/Br47IbuU.js";import{U as ra}from"../chunks/DQv7wuIJ.js";import{D as Zt}from"../chunks/Cpm0auuQ.js";import{I as da}from"../chunks/VkS8dDRx.js";import{D as sa}from"../chunks/CDgX_mkE.js";import{w as te}from"../chunks/BV_mDmfH.js";import{t as H}from"../chunks/Bgbd8SZ5.js";import{e as ee}from"../chunks/BZiHL9L3.js";import{e as E,i as J,j as ae,b as P,g as re}from"../chunks/Cr2hBuns.js";var ia=_('

Loading scale set...

'),la=_('

'),na=_(' '),oa=_(' '),va=_('Default system template'),ca=_('
GitHub Runner Group
'),ma=_('

Extra Specifications

 
'),xa=_('

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
Runner Install Template
',1),ua=_(' ',1);function Ta(de,se){We(se,!1);const N=b();let e=b(null),j=b(!0),R=b(""),U=b(!1),B=b(!1),F=b(!1),p=b(null),C=null;async function pt(){if(!(!t(N)||isNaN(t(N))))try{v(j,!0),v(R,""),v(e,await O.getScaleSet(t(N))),t(e).instances||A(e,t(e).instances=[])}catch(d){v(R,d instanceof Error?d.message:"Failed to load scale set")}finally{v(j,!1)}}async function ie(d){if(t(e))try{await O.updateScaleSet(t(e).id,d),await pt(),H.success("Scale Set Updated",`Scale Set ${t(e).name} has been updated successfully.`),v(U,!1)}catch(l){throw l}}async function le(){if(t(e)){try{await O.deleteScaleSet(t(e).id),Yt(k("/scalesets"))}catch(d){const l=ee(d);H.error("Delete Failed",l)}v(B,!1)}}async function ne(){if(t(p)){try{await O.deleteInstance(t(p).name),H.success("Instance Deleted",`Instance ${t(p).name} has been deleted successfully.`)}catch(d){const l=ee(d);H.error("Delete Failed",l)}v(F,!1),v(p,null)}}function oe(d){v(p,d),v(F,!0)}function ve(d){if(!d)return"{}";try{if(typeof d=="string"){const l=JSON.parse(d);return JSON.stringify(l,null,2)}return JSON.stringify(d,null,2)}catch{return d.toString()}}function ce(d){if(d.operation==="update"){const l=d.payload;t(e)&&l.id===t(e).id&&v(e,l)}else if(d.operation==="delete"){const l=d.payload.id||d.payload;t(e)&&t(e).id===l&&Yt(k("/scalesets"))}}function me(d){if(!t(e))return;const l=d.payload;if(l.scale_set_id===t(e).id){if(t(e).instances||A(e,t(e).instances=[]),d.operation==="create")A(e,t(e).instances=[...t(e).instances,l]);else if(d.operation==="update")A(e,t(e).instances=t(e).instances.map(S=>S.id===l.id?l:S));else if(d.operation==="delete"){const S=l.id||l;A(e,t(e).instances=t(e).instances.filter(W=>W.id!==S))}v(e,t(e))}}Ke(()=>{pt();const d=te.subscribeToEntity("scaleset",["update","delete"],ce),l=te.subscribeToEntity("instance",["create","update","delete"],me);C=()=>{d(),l()}}),Qe(()=>{C&&(C(),C=null)}),Xe(()=>Xt,()=>{v(N,parseInt(Xt.params.id||"0"))}),Ye(),Ve();var _t=ua();Ze(d=>{h(()=>ea.title=`${t(e),i(()=>t(e)?`${t(e).name} - Scale Set Details`:"Scale Set Details")??""} - GARM`)});var q=T(_t),z=a(q),yt=a(z),V=a(yt),xe=a(V);r(V);var ht=s(V,2),bt=a(ht),kt=s(a(bt),2),ue=a(kt,!0);r(kt),r(bt),r(ht),r(yt),r(z);var ge=s(z,2);{var fe=d=>{var l=ia();u(d,l)},pe=d=>{var l=ft(),S=T(l);{var W=w=>{var I=la(),G=a(I),K=a(G,!0);r(G),r(I),h(()=>n(K,t(R))),u(w,I)},ke=w=>{var I=ft(),G=T(I);{var K=Q=>{var It=xa(),Dt=T(It);{let o=$(()=>(t(e),i(()=>t(e).name||"Scale Set"))),c=$(()=>(g(E),t(e),i(()=>E(t(e))))),m=$(()=>(g(J),t(e),i(()=>J(t(e))))),x=$(()=>(g(re),i(()=>re("github"))));sa(Dt,{get title(){return t(o)},get subtitle(){return`Scale set for ${t(c)??""} (${t(m)??""}) • GitHub Runner Scale Set`},get forgeIcon(){return t(x)},onEdit:()=>v(U,!0),onDelete:()=>v(B,!0)})}var X=s(Dt,2),Y=a(X),$t=a(Y),Et=s(a($t),2),Z=a(Et),Mt=s(a(Z),2),Se=a(Mt,!0);r(Mt),r(Z);var tt=s(Z,2),Tt=s(a(tt),2),we=a(Tt,!0);r(Tt),r(tt);var et=s(tt,2),At=s(a(et),2),Ie=a(At,!0);r(At),r(et);var at=s(et,2),Nt=s(a(at),2),Rt=a(Nt),De=a(Rt,!0);r(Rt),r(Nt),r(at);var rt=s(at,2),Ut=s(a(rt),2),$e=a(Ut,!0);r(Ut),r(rt);var dt=s(rt,2),Bt=s(a(dt),2),st=a(Bt),Ee=a(st,!0);r(st),r(Bt),r(dt);var it=s(dt,2),Ft=s(a(it),2),Ct=a(Ft),lt=a(Ct),Me=a(lt,!0);r(lt);var nt=s(lt,2),Te=a(nt,!0);r(nt),r(Ct),r(Ft),r(it);var ot=s(it,2),Gt=s(a(ot),2),Ae=a(Gt,!0);r(Gt),r(ot);var Lt=s(ot,2),Ot=s(a(Lt),2),Ne=a(Ot,!0);r(Ot),r(Lt),r(Et),r($t),r(Y);var Ht=s(Y,2),Jt=a(Ht),Pt=s(a(Jt),2),vt=a(Pt),jt=s(a(vt),2),Re=a(jt,!0);r(jt),r(vt);var ct=s(vt,2),qt=s(a(ct),2),Ue=a(qt,!0);r(qt),r(ct);var mt=s(ct,2),zt=s(a(mt),2),Be=a(zt);r(zt),r(mt);var xt=s(mt,2),Vt=s(a(xt),2),Fe=a(Vt,!0);r(Vt),r(xt);var ut=s(xt,2),Wt=s(a(ut),2),Ce=a(Wt);r(Wt),r(ut);var gt=s(ut,2),Kt=s(a(gt),2),Ge=a(Kt);{var Le=o=>{var c=na(),m=a(c,!0);r(c),h(x=>{L(c,"href",x),n(m,(t(e),i(()=>t(e).template_name)))},[()=>(g(k),t(e),i(()=>k(`/templates/${t(e).template_id}`)))]),u(o,c)},Oe=o=>{var c=ft(),m=T(c);{var x=y=>{var D=oa(),qe=a(D);r(D),h(ze=>{L(D,"href",ze),n(qe,`Template ID: ${t(e),i(()=>t(e).template_id)??""}`)},[()=>(g(k),t(e),i(()=>k(`/templates/${t(e).template_id}`)))]),u(y,D)},M=y=>{var D=va();u(y,D)};f(m,y=>{t(e),i(()=>t(e).template_id)?y(x):y(M,!1)},!0)}u(o,c)};f(Ge,o=>{t(e),i(()=>t(e).template_name)?o(Le):o(Oe,!1)})}r(Kt),r(gt);var He=s(gt,2);{var Je=o=>{var c=ca(),m=s(a(c),2),x=a(m,!0);r(m),r(c),h(()=>n(x,(t(e),i(()=>t(e)["github-runner-group"])))),u(o,c)};f(He,o=>{t(e),i(()=>t(e)["github-runner-group"])&&o(Je)})}r(Pt),r(Jt),r(Ht),r(X);var Qt=s(X,2);{var Pe=o=>{var c=ma(),m=a(c),x=s(a(m),2),M=a(x,!0);r(x),r(m),r(c),h(y=>n(M,y),[()=>(t(e),i(()=>ve(t(e).extra_specs)))]),u(o,c)};f(Qt,o=>{t(e),i(()=>t(e).extra_specs)&&o(Pe)})}var je=s(Qt,2);{let o=$(()=>(t(e),i(()=>t(e).instances||[])));da(je,{get instances(){return t(o)},entityType:"scaleset",onDeleteInstance:oe})}h((o,c,m,x,M)=>{n(Se,(t(e),i(()=>t(e).id))),n(we,(t(e),i(()=>t(e).name))),n(Ie,(t(e),i(()=>t(e).provider_name))),n(De,(t(e),i(()=>t(e).image))),n($e,(t(e),i(()=>t(e).flavor))),aa(st,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")??""}`),n(Ee,(t(e),i(()=>t(e).enabled?"Enabled":"Disabled"))),n(Me,o),L(nt,"href",c),n(Te,m),n(Ae,x),n(Ne,M),n(Re,(t(e),i(()=>t(e).max_runners))),n(Ue,(t(e),i(()=>t(e).min_idle_runners))),n(Be,`${t(e),i(()=>t(e).runner_bootstrap_timeout)??""} minutes`),n(Fe,(t(e),i(()=>t(e).runner_prefix||"garm"))),n(Ce,`${t(e),i(()=>t(e).os_type)??""} / ${t(e),i(()=>t(e).os_arch)??""}`)},[()=>(g(J),t(e),i(()=>J(t(e)))),()=>(g(ae),t(e),i(()=>ae(t(e)))),()=>(g(E),t(e),i(()=>E(t(e)))),()=>(g(P),t(e),i(()=>P(t(e).created_at||""))),()=>(g(P),t(e),i(()=>P(t(e).updated_at||"")))]),u(Q,It)};f(G,Q=>{t(e)&&Q(K)},!0)}u(w,I)};f(S,w=>{t(R)?w(W):w(ke,!1)},!0)}u(d,l)};f(ge,d=>{t(j)?d(fe):d(pe,!1)})}r(q);var St=s(q,2);{var _e=d=>{ra(d,{get scaleSet(){return t(e)},$$events:{close:()=>v(U,!1),submit:l=>ie(l.detail)}})};f(St,d=>{t(U)&&t(e)&&d(_e)})}var wt=s(St,2);{var ye=d=>{{let l=$(()=>(t(e),g(E),i(()=>`Scale Set ${t(e).name} (${E(t(e))})`)));Zt(d,{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(l)},$$events:{close:()=>v(B,!1),confirm:le}})}};f(wt,d=>{t(B)&&t(e)&&d(ye)})}var he=s(wt,2);{var be=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(p),i(()=>t(p).name)},$$events:{close:()=>{v(F,!1),v(p,null)},confirm:ne}})};f(he,d=>{t(F)&&t(p)&&d(be)})}h(d=>{L(xe,"href",d),n(ue,(t(e),i(()=>t(e)?t(e).name:"Loading...")))},[()=>(g(k),i(()=>k("/scalesets")))]),u(de,_t),ta()}export{Ta as component}; diff --git a/webapp/assets/_app/immutable/nodes/19.CWBEFCxV.js b/webapp/assets/_app/immutable/nodes/19.UQq6vp0O.js similarity index 92% rename from webapp/assets/_app/immutable/nodes/19.CWBEFCxV.js rename to webapp/assets/_app/immutable/nodes/19.UQq6vp0O.js index 7b1fddee..efbc649d 100644 --- a/webapp/assets/_app/immutable/nodes/19.CWBEFCxV.js +++ b/webapp/assets/_app/immutable/nodes/19.UQq6vp0O.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as we}from"../chunks/C7KraPli.js";import{p as be,o as Te,l as b,h as $e,f as se,j as ke,a as D,b as h,c as Le,g as e,m as l,$ as Pe,k as a,B as O,u as n,s as T,q as d,v as E,d as $,r as k,z as Ae,D as ee,t as te,e as ae}from"../chunks/cPTQ2Ibn.js";import{i as L,s as Me,a as De}from"../chunks/DqFqoVWr.js";import{g as B}from"../chunks/CTvJf3dP.js";import{d as I,g as Ee}from"../chunks/DqbUkQgD.js";import{P as Be}from"../chunks/U3V4g_hv.js";import{A as Ie}from"../chunks/C2rI8IaC.js";import{D as Se,G as S,A as Fe}from"../chunks/Du50aAe5.js";import{t as q}from"../chunks/Bgbd8SZ5.js";import{e as Ge}from"../chunks/BZiHL9L3.js";import{B as re}from"../chunks/DJsB5Z5V.js";import{D as Re}from"../chunks/91PQ6UtW.js";import{E as ze}from"../chunks/CPFytHjx.js";import{i as Ue}from"../chunks/C98nByjP.js";import{e as Ne,a as oe}from"../chunks/JUkrBp3F.js";var Oe=se('

Error loading templates

'),qe=se(" ",1);function lt(le,ne){be(ne,!1);const[ie,de]=Me(),g=()=>De(Ne,"$eagerCache",ie),F=l(),G=l(),f=l(),H=l();let y=l([]),P=l(""),m=l(""),i=l(1),v=l(25),x=l(1),A=l(!1),c=l(null);async function ce(){try{await oe.retryResource("templates")}catch(t){console.error("Retry failed:",t)}}async function me(){if(e(c)?.id)try{await Ee.deleteTemplate(e(c).id),q.add({type:"success",title:"Template deleted",message:`Template "${e(c).name}" has been deleted successfully.`}),a(A,!1),a(c,null)}catch(t){const r=Ge(t);q.add({type:"error",title:"Failed to delete template",message:r})}}function pe(){B(I("/templates/create"))}async function j(t){if(!t.id){q.add({type:"error",title:"Error",message:"Template ID is missing"});return}B(I(`/templates/create?clone=${t.id}`))}function W(t){a(c,t),a(A,!0)}function J(t){switch(t){case"github":return{color:"blue",text:"GitHub"};case"gitea":return{color:"green",text:"Gitea"};default:return{color:"gray",text:t||"Unknown"}}}function K(t){switch(t){case"linux":return{color:"blue",text:"Linux"};case"windows":return{color:"info",text:"Windows"};default:return{color:"gray",text:t||"Unknown"}}}const ue=[{key:"name",title:"Name",cellComponent:ze,cellProps:{entityType:"template"}},{key:"description",title:"Description",cellComponent:S,cellProps:{field:"description",type:"description"}},{key:"forge_type",title:"Forge Type",cellComponent:S,cellProps:{field:"forge_type"}},{key:"os_type",title:"OS Type",cellComponent:S,cellProps:{field:"os_type"}},{key:"owner_id",title:"Owner",cellComponent:S,cellProps:{field:"owner_id"}},{key:"actions",title:"Actions",align:"right",cellComponent:Fe,cellProps:t=>{const r=Ue(),s=t.owner_id==="system",o=[];return o.push({type:"copy",title:"Clone",ariaLabel:"Clone template",action:"clone"}),(r||!s)&&o.push({type:"edit",title:"Edit",ariaLabel:"Edit template",action:"edit"}),(r||!s)&&o.push({type:"delete",title:"Delete",ariaLabel:"Delete template",action:"delete"}),{actions:o}}}],ge={entityType:"template",primaryText:{field:"name",isClickable:!0,href:"/templates/{id}"},secondaryText:{field:"description"},badges:[{type:"custom",value:t=>{const r=J(t.forge_type);return{variant:r.color,text:r.text}}},{type:"custom",value:t=>{const r=K(t.os_type);return{variant:r.color,text:r.text}}}],actions:[{type:"clone",handler:t=>j(t)},{type:"edit",handler:t=>B(I(`/templates/${t.id}?edit=true`))},{type:"delete",handler:t=>W(t)}]};Te(async()=>{try{const t=await oe.getTemplates();t&&Array.isArray(t)&&a(y,t)}catch(t){console.error("Failed to load templates:",t),a(P,t instanceof Error?t.message:"Failed to load templates")}}),b(()=>(e(y),g()),()=>{(!e(y).length||g().loaded.templates)&&a(y,g().templates)}),b(()=>g(),()=>{a(F,g().loading.templates)}),b(()=>g(),()=>{a(G,g().errorMessages.templates)}),b(()=>(e(m),e(y)),()=>{a(f,e(m)?e(y).filter(t=>t.name?.toLowerCase().includes(e(m).toLowerCase())||t.description?.toLowerCase().includes(e(m).toLowerCase())||t.forge_type?.toLowerCase().includes(e(m).toLowerCase())||t.os_type?.toLowerCase().includes(e(m).toLowerCase())):e(y))}),b(()=>(e(x),e(f),e(v),e(i)),()=>{a(x,Math.ceil(e(f).length/e(v))),e(i)>e(x)&&e(x)>0&&a(i,e(x))}),b(()=>(e(f),e(i),e(v)),()=>{a(H,e(f).slice((e(i)-1)*e(v),e(i)*e(v)))}),$e(),we();var Q=qe();ke(t=>{Pe.title="Runner Install Templates - GARM"});var V=D(Q);Be(V,{title:"Runner Install Templates",description:"Manage templates for configuring runner software installation. These templates can be set on pools or scale sets.",actionLabel:"Create Template",showAction:!0,$$events:{action:pe}});var X=T(V,2);{var fe=t=>{var r=Oe(),s=$(r),o=T($(s),2),C=T($(o),2),R=$(C,!0);k(C);var M=T(C,2),z=$(M);Ie(z,{variant:"secondary",size:"sm",$$events:{click:ce},children:(p,u)=>{Ae();var U=ee("Try Again");h(p,U)},$$slots:{default:!0}}),k(M),k(o),k(s),k(r),te(()=>ae(R,e(P)||e(G))),h(t,r)};L(X,t=>{(e(P)||e(G))&&!e(F)&&t(fe)})}var Y=T(X,2);Se(Y,{get columns(){return ue},get data(){return e(H)},get loading(){return e(F)},get error(){return e(P)},get searchTerm(){return e(m)},searchPlaceholder:"Search templates by name, description, type...",get currentPage(){return e(i)},get perPage(){return e(v)},get totalPages(){return e(x)},get totalItems(){return e(f),n(()=>e(f).length)},get mobileCardConfig(){return ge},emptyMessage:"No templates found",$$events:{search:t=>{a(m,t.detail.term),a(i,1)},pageChange:t=>a(i,t.detail.page),perPageChange:t=>{a(v,t.detail.perPage),a(i,1)},clone:t=>j(t.detail.item),edit:t=>B(I(`/templates/${t.detail.item.id}?edit=true`)),delete:t=>W(t.detail.item)},$$slots:{cell:(t,r)=>{const s=E(()=>r.item),o=E(()=>r.column);var C=O(),R=D(C);{var M=p=>{const u=E(()=>(d(e(s)),n(()=>J(e(s).forge_type))));re(p,{get variant(){return d(e(u)),n(()=>e(u).color)},get text(){return d(e(u)),n(()=>e(u).text)}})},z=p=>{var u=O(),U=D(u);{var _e=w=>{const _=E(()=>(d(e(s)),n(()=>K(e(s).os_type))));re(w,{get variant(){return d(e(_)),n(()=>e(_).color)},get text(){return d(e(_)),n(()=>e(_).text)}})},he=w=>{var _=O(),xe=D(_);{var Ce=N=>{var Z=ee();te(()=>ae(Z,(d(e(s)),n(()=>e(s).owner_id==="system"?"System":e(s).owner_id||"Unknown")))),h(N,Z)};L(xe,N=>{d(e(o)),n(()=>e(o).key==="owner_id")&&N(Ce)},!0)}h(w,_)};L(U,w=>{d(e(o)),n(()=>e(o).key==="os_type")?w(_e):w(he,!1)},!0)}h(p,u)};L(R,p=>{d(e(o)),n(()=>e(o).key==="forge_type")?p(M):p(z,!1)})}h(t,C)}}});var ye=T(Y,2);{var ve=t=>{Re(t,{title:"Delete Template",message:"Are you sure you want to delete this template? This action cannot be undone.",get itemName(){return e(c),n(()=>e(c).name)},$$events:{close:()=>{a(A,!1),a(c,null)},confirm:me}})};L(ye,t=>{e(A)&&e(c)&&t(ve)})}h(le,Q),Le(),de()}export{lt as component}; +import"../chunks/DsnmJJEf.js";import{i as we}from"../chunks/C7KraPli.js";import{p as be,o as Te,l as b,h as $e,f as se,j as ke,a as D,b as h,c as Le,g as e,m as l,$ as Pe,k as a,B as O,u as n,s as T,q as d,v as E,d as $,r as k,z as Ae,D as ee,t as te,e as ae}from"../chunks/cPTQ2Ibn.js";import{i as L,s as Me,a as De}from"../chunks/DqFqoVWr.js";import{g as B}from"../chunks/Br47IbuU.js";import{d as I,g as Ee}from"../chunks/yWyZZHPR.js";import{P as Be}from"../chunks/BtskFTeb.js";import{A as Ie}from"../chunks/B_RLftTg.js";import{D as Se,G as S,A as Fe}from"../chunks/BIepGqC5.js";import{t as q}from"../chunks/Bgbd8SZ5.js";import{e as Ge}from"../chunks/BZiHL9L3.js";import{B as re}from"../chunks/Cr2hBuns.js";import{D as Re}from"../chunks/Cpm0auuQ.js";import{E as ze}from"../chunks/CVL5tSYq.js";import{i as Ue}from"../chunks/C98nByjP.js";import{e as Ne,a as oe}from"../chunks/C01HillC.js";var Oe=se('

Error loading templates

'),qe=se(" ",1);function lt(le,ne){be(ne,!1);const[ie,de]=Me(),g=()=>De(Ne,"$eagerCache",ie),F=l(),G=l(),f=l(),H=l();let y=l([]),P=l(""),m=l(""),i=l(1),v=l(25),x=l(1),A=l(!1),c=l(null);async function ce(){try{await oe.retryResource("templates")}catch(t){console.error("Retry failed:",t)}}async function me(){if(e(c)?.id)try{await Ee.deleteTemplate(e(c).id),q.add({type:"success",title:"Template deleted",message:`Template "${e(c).name}" has been deleted successfully.`}),a(A,!1),a(c,null)}catch(t){const r=Ge(t);q.add({type:"error",title:"Failed to delete template",message:r})}}function pe(){B(I("/templates/create"))}async function j(t){if(!t.id){q.add({type:"error",title:"Error",message:"Template ID is missing"});return}B(I(`/templates/create?clone=${t.id}`))}function W(t){a(c,t),a(A,!0)}function J(t){switch(t){case"github":return{color:"blue",text:"GitHub"};case"gitea":return{color:"green",text:"Gitea"};default:return{color:"gray",text:t||"Unknown"}}}function K(t){switch(t){case"linux":return{color:"blue",text:"Linux"};case"windows":return{color:"info",text:"Windows"};default:return{color:"gray",text:t||"Unknown"}}}const ue=[{key:"name",title:"Name",cellComponent:ze,cellProps:{entityType:"template"}},{key:"description",title:"Description",cellComponent:S,cellProps:{field:"description",type:"description"}},{key:"forge_type",title:"Forge Type",cellComponent:S,cellProps:{field:"forge_type"}},{key:"os_type",title:"OS Type",cellComponent:S,cellProps:{field:"os_type"}},{key:"owner_id",title:"Owner",cellComponent:S,cellProps:{field:"owner_id"}},{key:"actions",title:"Actions",align:"right",cellComponent:Fe,cellProps:t=>{const r=Ue(),s=t.owner_id==="system",o=[];return o.push({type:"copy",title:"Clone",ariaLabel:"Clone template",action:"clone"}),(r||!s)&&o.push({type:"edit",title:"Edit",ariaLabel:"Edit template",action:"edit"}),(r||!s)&&o.push({type:"delete",title:"Delete",ariaLabel:"Delete template",action:"delete"}),{actions:o}}}],ge={entityType:"template",primaryText:{field:"name",isClickable:!0,href:"/templates/{id}"},secondaryText:{field:"description"},badges:[{type:"custom",value:t=>{const r=J(t.forge_type);return{variant:r.color,text:r.text}}},{type:"custom",value:t=>{const r=K(t.os_type);return{variant:r.color,text:r.text}}}],actions:[{type:"clone",handler:t=>j(t)},{type:"edit",handler:t=>B(I(`/templates/${t.id}?edit=true`))},{type:"delete",handler:t=>W(t)}]};Te(async()=>{try{const t=await oe.getTemplates();t&&Array.isArray(t)&&a(y,t)}catch(t){console.error("Failed to load templates:",t),a(P,t instanceof Error?t.message:"Failed to load templates")}}),b(()=>(e(y),g()),()=>{(!e(y).length||g().loaded.templates)&&a(y,g().templates)}),b(()=>g(),()=>{a(F,g().loading.templates)}),b(()=>g(),()=>{a(G,g().errorMessages.templates)}),b(()=>(e(m),e(y)),()=>{a(f,e(m)?e(y).filter(t=>t.name?.toLowerCase().includes(e(m).toLowerCase())||t.description?.toLowerCase().includes(e(m).toLowerCase())||t.forge_type?.toLowerCase().includes(e(m).toLowerCase())||t.os_type?.toLowerCase().includes(e(m).toLowerCase())):e(y))}),b(()=>(e(x),e(f),e(v),e(i)),()=>{a(x,Math.ceil(e(f).length/e(v))),e(i)>e(x)&&e(x)>0&&a(i,e(x))}),b(()=>(e(f),e(i),e(v)),()=>{a(H,e(f).slice((e(i)-1)*e(v),e(i)*e(v)))}),$e(),we();var Q=qe();ke(t=>{Pe.title="Runner Install Templates - GARM"});var V=D(Q);Be(V,{title:"Runner Install Templates",description:"Manage templates for configuring runner software installation. These templates can be set on pools or scale sets.",actionLabel:"Create Template",showAction:!0,$$events:{action:pe}});var X=T(V,2);{var fe=t=>{var r=Oe(),s=$(r),o=T($(s),2),C=T($(o),2),R=$(C,!0);k(C);var M=T(C,2),z=$(M);Ie(z,{variant:"secondary",size:"sm",$$events:{click:ce},children:(p,u)=>{Ae();var U=ee("Try Again");h(p,U)},$$slots:{default:!0}}),k(M),k(o),k(s),k(r),te(()=>ae(R,e(P)||e(G))),h(t,r)};L(X,t=>{(e(P)||e(G))&&!e(F)&&t(fe)})}var Y=T(X,2);Se(Y,{get columns(){return ue},get data(){return e(H)},get loading(){return e(F)},get error(){return e(P)},get searchTerm(){return e(m)},searchPlaceholder:"Search templates by name, description, type...",get currentPage(){return e(i)},get perPage(){return e(v)},get totalPages(){return e(x)},get totalItems(){return e(f),n(()=>e(f).length)},get mobileCardConfig(){return ge},emptyMessage:"No templates found",$$events:{search:t=>{a(m,t.detail.term),a(i,1)},pageChange:t=>a(i,t.detail.page),perPageChange:t=>{a(v,t.detail.perPage),a(i,1)},clone:t=>j(t.detail.item),edit:t=>B(I(`/templates/${t.detail.item.id}?edit=true`)),delete:t=>W(t.detail.item)},$$slots:{cell:(t,r)=>{const s=E(()=>r.item),o=E(()=>r.column);var C=O(),R=D(C);{var M=p=>{const u=E(()=>(d(e(s)),n(()=>J(e(s).forge_type))));re(p,{get variant(){return d(e(u)),n(()=>e(u).color)},get text(){return d(e(u)),n(()=>e(u).text)}})},z=p=>{var u=O(),U=D(u);{var _e=w=>{const _=E(()=>(d(e(s)),n(()=>K(e(s).os_type))));re(w,{get variant(){return d(e(_)),n(()=>e(_).color)},get text(){return d(e(_)),n(()=>e(_).text)}})},he=w=>{var _=O(),xe=D(_);{var Ce=N=>{var Z=ee();te(()=>ae(Z,(d(e(s)),n(()=>e(s).owner_id==="system"?"System":e(s).owner_id||"Unknown")))),h(N,Z)};L(xe,N=>{d(e(o)),n(()=>e(o).key==="owner_id")&&N(Ce)},!0)}h(w,_)};L(U,w=>{d(e(o)),n(()=>e(o).key==="os_type")?w(_e):w(he,!1)},!0)}h(p,u)};L(R,p=>{d(e(o)),n(()=>e(o).key==="forge_type")?p(M):p(z,!1)})}h(t,C)}}});var ye=T(Y,2);{var ve=t=>{Re(t,{title:"Delete Template",message:"Are you sure you want to delete this template? This action cannot be undone.",get itemName(){return e(c),n(()=>e(c).name)},$$events:{close:()=>{a(A,!1),a(c,null)},confirm:me}})};L(ye,t=>{e(A)&&e(c)&&t(ve)})}h(le,Q),Le(),de()}export{lt as component}; diff --git a/webapp/assets/_app/immutable/nodes/2.C24-dbK7.js b/webapp/assets/_app/immutable/nodes/2.vfWjk2nO.js similarity index 99% rename from webapp/assets/_app/immutable/nodes/2.C24-dbK7.js rename to webapp/assets/_app/immutable/nodes/2.vfWjk2nO.js index eb3a8799..f69aab55 100644 --- a/webapp/assets/_app/immutable/nodes/2.C24-dbK7.js +++ b/webapp/assets/_app/immutable/nodes/2.vfWjk2nO.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as Fe}from"../chunks/C7KraPli.js";import{f as h,s as a,d as r,r as t,t as D,e as S,b as m,B as He,a as ze,p as Oe,E as vt,l as Le,k as v,m as I,g as e,h as Ne,C as ut,z as ve,q as _,u,c as Qe,i as Ge,o as mt,A as gt,j as bt,$ as pt,w as Q}from"../chunks/cPTQ2Ibn.js";import{p as fe,i as z,s as ft,a as xt}from"../chunks/DqFqoVWr.js";import{e as ht,i as kt}from"../chunks/CiWDXYQd.js";import{s as xe,B as yt,r as Me,g as Ke,d as q,c as ue}from"../chunks/DqbUkQgD.js";import{w as Ue}from"../chunks/BV_mDmfH.js";import{e as _t,a as Ce}from"../chunks/JUkrBp3F.js";import{b as Re}from"../chunks/B-_QCM7E.js";import{p as wt}from"../chunks/D4Caz1gY.js";import{M as Mt}from"../chunks/Bo3f8OIz.js";import{t as Je}from"../chunks/Bgbd8SZ5.js";import{e as Ut}from"../chunks/BZiHL9L3.js";var Ct=h('
'),Rt=h('
'),zt=h('
'),Lt=h('
'),St=h('
');function pe(me,V){let f=fe(V,"title",8),re=fe(V,"content",8),s=fe(V,"position",8,"top"),ae=fe(V,"width",8,"w-80");var l=St(),k=a(r(l),2),p=r(k),y=r(p,!0);t(p);var d=a(p,2),L=r(d,!0);t(d);var oe=a(d,2);{var ge=E=>{var P=Ct();m(E,P)},se=E=>{var P=He(),J=ze(P);{var F=j=>{var T=Rt();m(j,T)},K=j=>{var T=He(),ie=ze(T);{var le=$=>{var H=zt();m($,H)},ne=$=>{var H=He(),X=ze(H);{var de=i=>{var o=Lt();m(i,o)};z(X,i=>{s()==="right"&&i(de)},!0)}m($,H)};z(ie,$=>{s()==="left"?$(le):$(ne,!1)},!0)}m(j,T)};z(J,j=>{s()==="bottom"?j(F):j(K,!1)},!0)}m(E,P)};z(oe,E=>{s()==="top"?E(ge):E(se,!1)})}t(k),t(l),D(()=>{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`),S(y,f()),S(L,re())}),m(me,l)}var jt=ut(' Settings',1),$t=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

'),qt=h('

Please enter a valid URL

'),Pt=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,V){Oe(V,!1);const f=I(),re=I();let s=fe(V,"controllerInfo",12);const ae=vt();let l=I(!1),k=I(!1),p=I(""),y=I(""),d=I(""),L=I(null);function oe(){v(p,s().metadata_url||""),v(y,s().callback_url||""),v(d,s().webhook_url||""),v(L,s().minimum_job_age_backoff||null),v(l,!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(L)!==null&&e(L)>=0&&(n.minimum_job_age_backoff=e(L));const c=await Ke.updateController(n);Je.success("Settings Updated","Controller settings have been updated successfully."),v(l,!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(l,!1),v(p,""),v(y,""),v(d,""),v(L,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(L)),()=>{v(re,e(f)(e(p))&&e(f)(e(y))&&e(f)(e(d))&&(e(L)===null||e(L)>=0))}),Ne(),Fe();var E=Tt(),P=ze(E),J=r(P),F=r(J),K=r(F),j=a(r(K),2),T=a(r(j),2),ie=r(T),le=r(ie);t(ie),t(T),t(j),t(K);var ne=a(K,2);yt(ne,{variant:"secondary",size:"sm",$$events:{click:oe},children:(n,c)=>{var b=jt();ve(),m(n,b)},$$slots:{default:!0}}),t(F);var $=a(F,2),H=r($),X=r(H),de=a(r(X),2),i=r(de),o=a(r(i),2),w=r(o,!0);t(o),t(i);var M=a(i,2),x=a(r(M),2),U=r(x,!0);t(x),t(M);var A=a(M,2),W=r(A),Y=a(r(W),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(W);var O=a(W,2),N=r(O);t(O),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 Se=n=>{var c=$t(),b=r(c),C=a(r(b),2),G=r(C);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(C),t(b);var R=a(b,2),B=r(R,!0);t(R),t(c),D(()=>S(B,(_(s()),u(()=>s().metadata_url)))),m(n,c)};z(ke,n=>{_(s()),u(()=>s().metadata_url)&&n(Se)})}var qe=a(ke,2);{var Xe=n=>{var c=Bt(),b=r(c),C=a(r(b),2),G=r(C);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(C),t(b);var R=a(b,2),B=r(R,!0);t(R),t(c),D(()=>S(B,(_(s()),u(()=>s().callback_url)))),m(n,c)};z(qe,n=>{_(s()),u(()=>s().callback_url)&&n(Xe)})}var Pe=a(qe,2);{var Ye=n=>{var c=At(),b=r(c),C=a(r(b),2),G=r(C);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(C),t(b);var R=a(b,2),B=r(R,!0);t(R),t(c),D(()=>S(B,(_(s()),u(()=>s().webhook_url)))),m(n,c)};z(Pe,n=>{_(s()),u(()=>s().webhook_url)&&n(Ye)})}var Ze=a(Pe,2);{var et=n=>{var c=It(),b=a(r(c),4);t(c),Ge("click",b,oe),m(n,c)};z(Ze,n=>{_(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),C=a(r(b),2),G=r(C);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(C),t(b);var R=a(b,2),B=r(R),be=a(r(B),2),ye=r(be),je=r(ye,!0);t(ye),ve(2),t(be),t(B),t(R),t(c),D(()=>S(je,(_(s()),u(()=>s().controller_webhook_url)))),m(n,c)};z(tt,n=>{_(s()),u(()=>s().controller_webhook_url)&&n(rt)})}t(J),t(P);var at=a(P,2);{var ot=n=>{Mt(n,{$$events:{close:se},children:(c,b)=>{var C=Pt(),G=a(r(C),2),R=r(G),B=a(r(R),2);Me(B);let be;var ye=a(B,2);{var je=g=>{var te=Ht();m(g,te)};z(ye,g=>{e(f),e(p),u(()=>!e(f)(e(p)))&&g(je)})}ve(2),t(R);var $e=a(R,2),_e=a(r($e),2);Me(_e);let Te;var st=a(_e,2);{var it=g=>{var te=Gt();m(g,te)};z(st,g=>{e(f),e(y),u(()=>!e(f)(e(y)))&&g(it)})}ve(2),t($e);var Be=a($e,2),we=a(r(Be),2);Me(we);let De;var lt=a(we,2);{var nt=g=>{var te=qt();m(g,te)};z(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);Me(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(C),D((g,te,ct)=>{be=xe(B,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),S(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(B,()=>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(L),g=>v(L,g)),Ge("click",Ie,se),Ge("submit",G,wt(ge)),m(c,C)},$$slots:{default:!0}})};z(at,n=>{e(l)&&n(ot)})}D(n=>{S(le,`v${n??""}`),S(w,(_(s()),u(()=>s().controller_id))),S(U,(_(s()),u(()=>s().hostname||"Unknown"))),S(N,`${_(s()),u(()=>s().minimum_job_age_backoff||30)??""}s`)},[()=>(_(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,V){Oe(V,!1);const[f,re]=ft(),s=()=>xt(_t,"$eagerCache",f),ae=I();let l=I({repositories:0,organizations:0,pools:0,instances:0}),k=I(null),p=I(""),y=[];function d(i,o,w=1e3){const M=parseInt(i.textContent||"0"),x=(o-M)/(w/16);let U=M;const A=()=>{if(U+=x,x>0&&U>=o||x<0&&U<=o){i.textContent=o.toString();return}i.textContent=Math.floor(U).toString(),requestAnimationFrame(A)};M!==o&&requestAnimationFrame(A)}mt(async()=>{try{const[x,U,A,W,Y]=await Promise.all([Ce.getRepositories(),Ce.getOrganizations(),Ce.getPools(),Ke.listInstances(),Ce.getControllerInfo()]);setTimeout(()=>{const Z=document.querySelector('[data-stat="repositories"]'),O=document.querySelector('[data-stat="organizations"]'),N=document.querySelector('[data-stat="pools"]'),ee=document.querySelector('[data-stat="instances"]');Z&&d(Z,x.length),O&&d(O,U.length),N&&d(N,A.length),ee&&d(ee,W.length)},100),v(l,{repositories:x.length,organizations:U.length,pools:A.length,instances:W.length}),Y&&v(k,Y)}catch(x){v(p,Ut(x)),console.error("Dashboard error:",x)}const i=Ue.subscribeToEntity("repository",["create","delete"],L),o=Ue.subscribeToEntity("organization",["create","delete"],oe),w=Ue.subscribeToEntity("pool",["create","delete"],ge),M=Ue.subscribeToEntity("instance",["create","delete"],se);y=[i,o,w,M]}),gt(()=>{y.forEach(i=>i())});function L(i){const o=document.querySelector('[data-stat="repositories"]');i.operation==="create"?(Q(l,e(l).repositories++),o&&d(o,e(l).repositories,500)):i.operation==="delete"&&(Q(l,e(l).repositories=Math.max(0,e(l).repositories-1)),o&&d(o,e(l).repositories,500))}function oe(i){const o=document.querySelector('[data-stat="organizations"]');i.operation==="create"?(Q(l,e(l).organizations++),o&&d(o,e(l).organizations,500)):i.operation==="delete"&&(Q(l,e(l).organizations=Math.max(0,e(l).organizations-1)),o&&d(o,e(l).organizations,500))}function ge(i){const o=document.querySelector('[data-stat="pools"]');i.operation==="create"?(Q(l,e(l).pools++),o&&d(o,e(l).pools,500)):i.operation==="delete"&&(Q(l,e(l).pools=Math.max(0,e(l).pools-1)),o&&d(o,e(l).pools,500))}function se(i){const o=document.querySelector('[data-stat="instances"]');i.operation==="create"?(Q(l,e(l).instances++),o&&d(o,e(l).instances,500)):i.operation==="delete"&&(Q(l,e(l).instances=Math.max(0,e(l).instances-1)),o&&d(o,e(l).instances,500))}function E(i){v(k,i.detail)}function P(i){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"}[i]||"bg-gray-500 text-white"}Le(()=>(e(k),s()),()=>{(!e(k)||s().loaded.controllerInfo)&&v(k,s().controllerInfo)}),Le(()=>(e(l),q),()=>{v(ae,[{title:"Repositories",value:e(l).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(l).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(l).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(l).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 J=Jt();bt(i=>{pt.title="Dashboard - GARM"});var F=a(r(J),2);{var K=i=>{var o=Vt(),w=r(o),M=a(r(w),2),x=a(r(M),2),U=r(x,!0);t(x),t(M),t(w),t(o),D(()=>S(U,e(p))),m(i,o)};z(F,i=>{e(p)&&i(K)})}var j=a(F,2);ht(j,5,()=>e(ae),kt,(i,o)=>{var w=Wt(),M=r(w),x=r(M),U=r(x),A=r(U),W=r(A),Y=r(W);t(W),t(A),t(U);var Z=a(U,2),O=r(Z),N=r(O),ee=r(N,!0);t(N);var ce=a(N,2),he=r(ce,!0);t(ce),t(O),t(Z),t(x),t(M),t(w),D((ke,Se)=>{ue(w,"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))),S(ee,(e(o),u(()=>e(o).title))),ue(ce,"data-stat",Se),S(he,(e(o),u(()=>e(o).value)))},[()=>(e(o),u(()=>P(e(o).color))),()=>(e(o),u(()=>e(o).title.toLowerCase()))]),m(i,w)}),t(j);var T=a(j,2);{var ie=i=>{Dt(i,{get controllerInfo(){return e(k)},$$events:{updated:E}})};z(T,i=>{e(k)&&i(ie)})}var le=a(T,2),ne=r(le),$=a(r(ne),4),H=r($),X=a(H,2),de=a(X,2);t($),t(ne),t(le),t(J),D((i,o,w)=>{ue(H,"href",i),ue(X,"href",o),ue(de,"href",w)},[()=>(_(q),u(()=>q("/repositories"))),()=>(_(q),u(()=>q("/pools"))),()=>(_(q),u(()=>q("/instances")))]),m(me,J),Qe(),re()}export{sr as component}; +import"../chunks/DsnmJJEf.js";import{i as Fe}from"../chunks/C7KraPli.js";import{f as h,s as a,d as r,r as t,t as D,e as S,b as m,B as He,a as ze,p as Oe,E as vt,l as Le,k as v,m as I,g as e,h as Ne,C as ut,z as ve,q as _,u,c as Qe,i as Ge,o as mt,A as gt,j as bt,$ as pt,w as Q}from"../chunks/cPTQ2Ibn.js";import{p as fe,i as z,s as ft,a as xt}from"../chunks/DqFqoVWr.js";import{e as ht,i as kt}from"../chunks/CiWDXYQd.js";import{s as xe,B as yt,r as Me,g as Ke,d as q,c as ue}from"../chunks/yWyZZHPR.js";import{w as Ue}from"../chunks/BV_mDmfH.js";import{e as _t,a as Ce}from"../chunks/C01HillC.js";import{b as Re}from"../chunks/B-_QCM7E.js";import{p as wt}from"../chunks/D4Caz1gY.js";import{M as Mt}from"../chunks/ao5EljEX.js";import{t as Je}from"../chunks/Bgbd8SZ5.js";import{e as Ut}from"../chunks/BZiHL9L3.js";var Ct=h('
'),Rt=h('
'),zt=h('
'),Lt=h('
'),St=h('
');function pe(me,V){let f=fe(V,"title",8),re=fe(V,"content",8),s=fe(V,"position",8,"top"),ae=fe(V,"width",8,"w-80");var l=St(),k=a(r(l),2),p=r(k),y=r(p,!0);t(p);var d=a(p,2),L=r(d,!0);t(d);var oe=a(d,2);{var ge=E=>{var P=Ct();m(E,P)},se=E=>{var P=He(),J=ze(P);{var F=j=>{var T=Rt();m(j,T)},K=j=>{var T=He(),ie=ze(T);{var le=$=>{var H=zt();m($,H)},ne=$=>{var H=He(),X=ze(H);{var de=i=>{var o=Lt();m(i,o)};z(X,i=>{s()==="right"&&i(de)},!0)}m($,H)};z(ie,$=>{s()==="left"?$(le):$(ne,!1)},!0)}m(j,T)};z(J,j=>{s()==="bottom"?j(F):j(K,!1)},!0)}m(E,P)};z(oe,E=>{s()==="top"?E(ge):E(se,!1)})}t(k),t(l),D(()=>{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`),S(y,f()),S(L,re())}),m(me,l)}var jt=ut(' Settings',1),$t=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

'),qt=h('

Please enter a valid URL

'),Pt=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,V){Oe(V,!1);const f=I(),re=I();let s=fe(V,"controllerInfo",12);const ae=vt();let l=I(!1),k=I(!1),p=I(""),y=I(""),d=I(""),L=I(null);function oe(){v(p,s().metadata_url||""),v(y,s().callback_url||""),v(d,s().webhook_url||""),v(L,s().minimum_job_age_backoff||null),v(l,!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(L)!==null&&e(L)>=0&&(n.minimum_job_age_backoff=e(L));const c=await Ke.updateController(n);Je.success("Settings Updated","Controller settings have been updated successfully."),v(l,!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(l,!1),v(p,""),v(y,""),v(d,""),v(L,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(L)),()=>{v(re,e(f)(e(p))&&e(f)(e(y))&&e(f)(e(d))&&(e(L)===null||e(L)>=0))}),Ne(),Fe();var E=Tt(),P=ze(E),J=r(P),F=r(J),K=r(F),j=a(r(K),2),T=a(r(j),2),ie=r(T),le=r(ie);t(ie),t(T),t(j),t(K);var ne=a(K,2);yt(ne,{variant:"secondary",size:"sm",$$events:{click:oe},children:(n,c)=>{var b=jt();ve(),m(n,b)},$$slots:{default:!0}}),t(F);var $=a(F,2),H=r($),X=r(H),de=a(r(X),2),i=r(de),o=a(r(i),2),w=r(o,!0);t(o),t(i);var M=a(i,2),x=a(r(M),2),U=r(x,!0);t(x),t(M);var A=a(M,2),W=r(A),Y=a(r(W),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(W);var O=a(W,2),N=r(O);t(O),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 Se=n=>{var c=$t(),b=r(c),C=a(r(b),2),G=r(C);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(C),t(b);var R=a(b,2),B=r(R,!0);t(R),t(c),D(()=>S(B,(_(s()),u(()=>s().metadata_url)))),m(n,c)};z(ke,n=>{_(s()),u(()=>s().metadata_url)&&n(Se)})}var qe=a(ke,2);{var Xe=n=>{var c=Bt(),b=r(c),C=a(r(b),2),G=r(C);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(C),t(b);var R=a(b,2),B=r(R,!0);t(R),t(c),D(()=>S(B,(_(s()),u(()=>s().callback_url)))),m(n,c)};z(qe,n=>{_(s()),u(()=>s().callback_url)&&n(Xe)})}var Pe=a(qe,2);{var Ye=n=>{var c=At(),b=r(c),C=a(r(b),2),G=r(C);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(C),t(b);var R=a(b,2),B=r(R,!0);t(R),t(c),D(()=>S(B,(_(s()),u(()=>s().webhook_url)))),m(n,c)};z(Pe,n=>{_(s()),u(()=>s().webhook_url)&&n(Ye)})}var Ze=a(Pe,2);{var et=n=>{var c=It(),b=a(r(c),4);t(c),Ge("click",b,oe),m(n,c)};z(Ze,n=>{_(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),C=a(r(b),2),G=r(C);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(C),t(b);var R=a(b,2),B=r(R),be=a(r(B),2),ye=r(be),je=r(ye,!0);t(ye),ve(2),t(be),t(B),t(R),t(c),D(()=>S(je,(_(s()),u(()=>s().controller_webhook_url)))),m(n,c)};z(tt,n=>{_(s()),u(()=>s().controller_webhook_url)&&n(rt)})}t(J),t(P);var at=a(P,2);{var ot=n=>{Mt(n,{$$events:{close:se},children:(c,b)=>{var C=Pt(),G=a(r(C),2),R=r(G),B=a(r(R),2);Me(B);let be;var ye=a(B,2);{var je=g=>{var te=Ht();m(g,te)};z(ye,g=>{e(f),e(p),u(()=>!e(f)(e(p)))&&g(je)})}ve(2),t(R);var $e=a(R,2),_e=a(r($e),2);Me(_e);let Te;var st=a(_e,2);{var it=g=>{var te=Gt();m(g,te)};z(st,g=>{e(f),e(y),u(()=>!e(f)(e(y)))&&g(it)})}ve(2),t($e);var Be=a($e,2),we=a(r(Be),2);Me(we);let De;var lt=a(we,2);{var nt=g=>{var te=qt();m(g,te)};z(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);Me(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(C),D((g,te,ct)=>{be=xe(B,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),S(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(B,()=>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(L),g=>v(L,g)),Ge("click",Ie,se),Ge("submit",G,wt(ge)),m(c,C)},$$slots:{default:!0}})};z(at,n=>{e(l)&&n(ot)})}D(n=>{S(le,`v${n??""}`),S(w,(_(s()),u(()=>s().controller_id))),S(U,(_(s()),u(()=>s().hostname||"Unknown"))),S(N,`${_(s()),u(()=>s().minimum_job_age_backoff||30)??""}s`)},[()=>(_(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,V){Oe(V,!1);const[f,re]=ft(),s=()=>xt(_t,"$eagerCache",f),ae=I();let l=I({repositories:0,organizations:0,pools:0,instances:0}),k=I(null),p=I(""),y=[];function d(i,o,w=1e3){const M=parseInt(i.textContent||"0"),x=(o-M)/(w/16);let U=M;const A=()=>{if(U+=x,x>0&&U>=o||x<0&&U<=o){i.textContent=o.toString();return}i.textContent=Math.floor(U).toString(),requestAnimationFrame(A)};M!==o&&requestAnimationFrame(A)}mt(async()=>{try{const[x,U,A,W,Y]=await Promise.all([Ce.getRepositories(),Ce.getOrganizations(),Ce.getPools(),Ke.listInstances(),Ce.getControllerInfo()]);setTimeout(()=>{const Z=document.querySelector('[data-stat="repositories"]'),O=document.querySelector('[data-stat="organizations"]'),N=document.querySelector('[data-stat="pools"]'),ee=document.querySelector('[data-stat="instances"]');Z&&d(Z,x.length),O&&d(O,U.length),N&&d(N,A.length),ee&&d(ee,W.length)},100),v(l,{repositories:x.length,organizations:U.length,pools:A.length,instances:W.length}),Y&&v(k,Y)}catch(x){v(p,Ut(x)),console.error("Dashboard error:",x)}const i=Ue.subscribeToEntity("repository",["create","delete"],L),o=Ue.subscribeToEntity("organization",["create","delete"],oe),w=Ue.subscribeToEntity("pool",["create","delete"],ge),M=Ue.subscribeToEntity("instance",["create","delete"],se);y=[i,o,w,M]}),gt(()=>{y.forEach(i=>i())});function L(i){const o=document.querySelector('[data-stat="repositories"]');i.operation==="create"?(Q(l,e(l).repositories++),o&&d(o,e(l).repositories,500)):i.operation==="delete"&&(Q(l,e(l).repositories=Math.max(0,e(l).repositories-1)),o&&d(o,e(l).repositories,500))}function oe(i){const o=document.querySelector('[data-stat="organizations"]');i.operation==="create"?(Q(l,e(l).organizations++),o&&d(o,e(l).organizations,500)):i.operation==="delete"&&(Q(l,e(l).organizations=Math.max(0,e(l).organizations-1)),o&&d(o,e(l).organizations,500))}function ge(i){const o=document.querySelector('[data-stat="pools"]');i.operation==="create"?(Q(l,e(l).pools++),o&&d(o,e(l).pools,500)):i.operation==="delete"&&(Q(l,e(l).pools=Math.max(0,e(l).pools-1)),o&&d(o,e(l).pools,500))}function se(i){const o=document.querySelector('[data-stat="instances"]');i.operation==="create"?(Q(l,e(l).instances++),o&&d(o,e(l).instances,500)):i.operation==="delete"&&(Q(l,e(l).instances=Math.max(0,e(l).instances-1)),o&&d(o,e(l).instances,500))}function E(i){v(k,i.detail)}function P(i){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"}[i]||"bg-gray-500 text-white"}Le(()=>(e(k),s()),()=>{(!e(k)||s().loaded.controllerInfo)&&v(k,s().controllerInfo)}),Le(()=>(e(l),q),()=>{v(ae,[{title:"Repositories",value:e(l).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(l).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(l).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(l).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 J=Jt();bt(i=>{pt.title="Dashboard - GARM"});var F=a(r(J),2);{var K=i=>{var o=Vt(),w=r(o),M=a(r(w),2),x=a(r(M),2),U=r(x,!0);t(x),t(M),t(w),t(o),D(()=>S(U,e(p))),m(i,o)};z(F,i=>{e(p)&&i(K)})}var j=a(F,2);ht(j,5,()=>e(ae),kt,(i,o)=>{var w=Wt(),M=r(w),x=r(M),U=r(x),A=r(U),W=r(A),Y=r(W);t(W),t(A),t(U);var Z=a(U,2),O=r(Z),N=r(O),ee=r(N,!0);t(N);var ce=a(N,2),he=r(ce,!0);t(ce),t(O),t(Z),t(x),t(M),t(w),D((ke,Se)=>{ue(w,"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))),S(ee,(e(o),u(()=>e(o).title))),ue(ce,"data-stat",Se),S(he,(e(o),u(()=>e(o).value)))},[()=>(e(o),u(()=>P(e(o).color))),()=>(e(o),u(()=>e(o).title.toLowerCase()))]),m(i,w)}),t(j);var T=a(j,2);{var ie=i=>{Dt(i,{get controllerInfo(){return e(k)},$$events:{updated:E}})};z(T,i=>{e(k)&&i(ie)})}var le=a(T,2),ne=r(le),$=a(r(ne),4),H=r($),X=a(H,2),de=a(X,2);t($),t(ne),t(le),t(J),D((i,o,w)=>{ue(H,"href",i),ue(X,"href",o),ue(de,"href",w)},[()=>(_(q),u(()=>q("/repositories"))),()=>(_(q),u(()=>q("/pools"))),()=>(_(q),u(()=>q("/instances")))]),m(me,J),Qe(),re()}export{sr as component}; diff --git a/webapp/assets/_app/immutable/nodes/20.BcQWH_IW.js b/webapp/assets/_app/immutable/nodes/20.ydnVC7Nh.js similarity index 98% rename from webapp/assets/_app/immutable/nodes/20.BcQWH_IW.js rename to webapp/assets/_app/immutable/nodes/20.ydnVC7Nh.js index 2b496757..66024360 100644 --- a/webapp/assets/_app/immutable/nodes/20.BcQWH_IW.js +++ b/webapp/assets/_app/immutable/nodes/20.ydnVC7Nh.js @@ -1,2 +1,2 @@ -import"../chunks/DsnmJJEf.js";import{i as Dt}from"../chunks/C7KraPli.js";import{p as At,o as Lt,l as pe,h as Ut,f as D,j as Rt,a as se,b as x,c as It,g as e,m as w,t as G,k as s,u as l,$ as Mt,s as o,w as M,B as Je,d as r,r as d,z as H,D as ge,e as j,v,q as U,i as Le,y as Ft}from"../chunks/cPTQ2Ibn.js";import{i as T}from"../chunks/DqFqoVWr.js";import{d as le,g as Ue,r as Ke,b as Et}from"../chunks/DqbUkQgD.js";import{b as Qe}from"../chunks/B-_QCM7E.js";import{p as St}from"../chunks/D4Caz1gY.js";import{p as be}from"../chunks/BgSaD1r_.js";import{g as Re}from"../chunks/CTvJf3dP.js";import{A as xe}from"../chunks/C2rI8IaC.js";import{t as P}from"../chunks/Bgbd8SZ5.js";import{e as Ie}from"../chunks/BZiHL9L3.js";import{g as Xe,B as fe}from"../chunks/DJsB5Z5V.js";import{D as Bt}from"../chunks/oOdVuDuv.js";import{C as Ht,a as Ze}from"../chunks/R3ADTHgb.js";import{i as et}from"../chunks/C98nByjP.js";import{w as jt}from"../chunks/BV_mDmfH.js";var Pt=D('
Loading template...
'),zt=D('

Error loading template

'),Gt=D('
Forge Type

Cannot be changed

OS Type

Cannot be changed

'),Vt=D('
Created
'),Wt=D('
Last Updated
'),Nt=D('
Name
Description
Forge Type
OS Type
Owner
Template ID
'),Ot=D('
'),qt=D('

Available Template Variables

Your template can use the following variables using Go template syntax (e.g., ):

Runner Info
  • .RunnerName - Runner name
  • .RunnerLabels - Comma separated labels
  • .RunnerUsername - Runner service username
  • .RunnerGroup - Runner service group
  • .GitHubRunnerGroup - GitHub runner group
Download & Install
  • .FileName - Download file name
  • .DownloadURL - Runner download URL
  • .TempDownloadToken - Download token
  • .RepoURL - Repository URL
Configuration
  • .MetadataURL - Instance metadata URL
  • .CallbackURL - Status callback URL
  • .CallbackToken - Callback token
  • .CABundle - CA certificate bundle
  • .EnableBootDebug - Enable debug mode
  • .UseJITConfig - Use JIT configuration
  • .ExtraContext - Additional context map

💡 Tip: Use for conditional content, or to iterate over extra context.

'),Yt=D('

'),Jt=D('
',1),Kt=D('

Template Information

Template Content

',1),Qt=D('

Delete Template

Are you sure you want to delete the template " "? This action cannot be undone.

'),Xt=D(" ",1);function ba(tt,at){At(at,!1);const ne=w(),ye=w(),he=w();let ie=w(!0),t=w(null),O=w(""),h=w(!1),n=w({name:"",description:"",data:new Uint8Array}),u=w(""),X=w("text"),V=w(!1),$=w({name:"",description:""}),z=w(""),_e=w(!1),ce=w(!1);async function ke(){try{if(s(ie,!0),s(O,""),s(t,await Ue.getTemplate(e(ne))),!e(t))throw new Error("Template not found");if(M(n,e(n).name=e(t).name||""),M(n,e(n).description=e(t).description||""),M($,e($).name=e(t).name||""),M($,e($).description=e(t).description||""),e(t).data)try{if(Array.isArray(e(t).data)){const a=new Uint8Array(e(t).data);s(u,new TextDecoder().decode(a)),s(z,e(u))}else s(u,atob(e(t).data)),s(z,e(u))}catch(a){console.error("Failed to decode template data:",a),s(u,""),s(z,"")}else s(u,""),s(z,"")}catch(a){s(O,Ie(a)),P.add({type:"error",title:"Failed to load template",message:e(O)})}finally{s(ie,!1)}}async function Me(){if(!(!e(t)?.id||!e(he)))try{const a={name:e(n).name,description:e(n).description||void 0,data:Array.from(new TextEncoder().encode(e(u)))},p=await Ue.updateTemplate(e(t).id,a);s(t,p),P.add({type:"success",title:"Template updated",message:`Template "${e(n).name}" has been updated successfully.`}),M($,e($).name=e(n).name),M($,e($).description=e(n).description),s(z,e(u)),s(h,!1)}catch(a){const p=Ie(a);P.add({type:"error",title:"Failed to update template",message:p})}}async function rt(){if(e(t)?.id)try{await Ue.deleteTemplate(e(t).id),P.add({type:"success",title:"Template deleted",message:`Template "${e(t).name}" has been deleted successfully.`}),Re(le("/templates"))}catch(a){const p=Ie(a);P.add({type:"error",title:"Failed to delete template",message:p})}}function Fe(){s(h,!0),s(V,!1)}function dt(){return e(n).name!==e($).name||e(n).description!==e($).description||e(u)!==e(z)}function ot(){if(dt()){s(ce,!0);return}Ee()}function Ee(){if(s(h,!1),s(V,!1),be.url.searchParams.get("edit")==="true"){Re(le("/templates"));return}if(e(t))if(M(n,e(n).name=e(t).name||""),M(n,e(n).description=e(t).description||""),e(t).data)try{if(Array.isArray(e(t).data)){const a=new Uint8Array(e(t).data);s(u,new TextDecoder().decode(a))}else s(u,atob(e(t).data))}catch(a){console.error("Failed to decode template data:",a),s(u,"")}else s(u,"")}function st(){s(ce,!1),Ee()}function Se(a){switch(a){case"github":return{color:"blue",text:"GitHub"};case"gitea":return{color:"green",text:"Gitea"};default:return{color:"gray",text:a||"Unknown"}}}function Be(a){switch(a){case"linux":return{color:"blue",text:"Linux"};case"windows":return{color:"info",text:"Windows"};default:return{color:"gray",text:a||"Unknown"}}}function we(){if(!e(t)?.data)return"";try{if(Array.isArray(e(t).data)){const a=new Uint8Array(e(t).data);return new TextDecoder().decode(a)}else return atob(e(t).data)}catch(a){return console.error("Failed to decode template data:",a),"Error: Failed to decode template content"}}function He(a){const A=a.split(` +import"../chunks/DsnmJJEf.js";import{i as Dt}from"../chunks/C7KraPli.js";import{p as At,o as Lt,l as pe,h as Ut,f as D,j as Rt,a as se,b as x,c as It,g as e,m as w,t as G,k as s,u as l,$ as Mt,s as o,w as M,B as Je,d as r,r as d,z as H,D as ge,e as j,v,q as U,i as Le,y as Ft}from"../chunks/cPTQ2Ibn.js";import{i as T}from"../chunks/DqFqoVWr.js";import{d as le,g as Ue,r as Ke,b as Et}from"../chunks/yWyZZHPR.js";import{b as Qe}from"../chunks/B-_QCM7E.js";import{p as St}from"../chunks/D4Caz1gY.js";import{p as be}from"../chunks/DMSCYqmZ.js";import{g as Re}from"../chunks/Br47IbuU.js";import{A as xe}from"../chunks/B_RLftTg.js";import{t as P}from"../chunks/Bgbd8SZ5.js";import{e as Ie}from"../chunks/BZiHL9L3.js";import{g as Xe,B as fe}from"../chunks/Cr2hBuns.js";import{D as Bt}from"../chunks/CDgX_mkE.js";import{C as Ht,a as Ze}from"../chunks/5uRpB3Rp.js";import{i as et}from"../chunks/C98nByjP.js";import{w as jt}from"../chunks/BV_mDmfH.js";var Pt=D('
Loading template...
'),zt=D('

Error loading template

'),Gt=D('
Forge Type

Cannot be changed

OS Type

Cannot be changed

'),Vt=D('
Created
'),Wt=D('
Last Updated
'),Nt=D('
Name
Description
Forge Type
OS Type
Owner
Template ID
'),Ot=D('
'),qt=D('

Available Template Variables

Your template can use the following variables using Go template syntax (e.g., ):

Runner Info
  • .RunnerName - Runner name
  • .RunnerLabels - Comma separated labels
  • .RunnerUsername - Runner service username
  • .RunnerGroup - Runner service group
  • .GitHubRunnerGroup - GitHub runner group
Download & Install
  • .FileName - Download file name
  • .DownloadURL - Runner download URL
  • .TempDownloadToken - Download token
  • .RepoURL - Repository URL
Configuration
  • .MetadataURL - Instance metadata URL
  • .CallbackURL - Status callback URL
  • .CallbackToken - Callback token
  • .CABundle - CA certificate bundle
  • .EnableBootDebug - Enable debug mode
  • .UseJITConfig - Use JIT configuration
  • .ExtraContext - Additional context map

💡 Tip: Use for conditional content, or to iterate over extra context.

'),Yt=D('

'),Jt=D('
',1),Kt=D('

Template Information

Template Content

',1),Qt=D('

Delete Template

Are you sure you want to delete the template " "? This action cannot be undone.

'),Xt=D(" ",1);function ba(tt,at){At(at,!1);const ne=w(),ye=w(),he=w();let ie=w(!0),t=w(null),O=w(""),h=w(!1),n=w({name:"",description:"",data:new Uint8Array}),u=w(""),X=w("text"),V=w(!1),$=w({name:"",description:""}),z=w(""),_e=w(!1),ce=w(!1);async function ke(){try{if(s(ie,!0),s(O,""),s(t,await Ue.getTemplate(e(ne))),!e(t))throw new Error("Template not found");if(M(n,e(n).name=e(t).name||""),M(n,e(n).description=e(t).description||""),M($,e($).name=e(t).name||""),M($,e($).description=e(t).description||""),e(t).data)try{if(Array.isArray(e(t).data)){const a=new Uint8Array(e(t).data);s(u,new TextDecoder().decode(a)),s(z,e(u))}else s(u,atob(e(t).data)),s(z,e(u))}catch(a){console.error("Failed to decode template data:",a),s(u,""),s(z,"")}else s(u,""),s(z,"")}catch(a){s(O,Ie(a)),P.add({type:"error",title:"Failed to load template",message:e(O)})}finally{s(ie,!1)}}async function Me(){if(!(!e(t)?.id||!e(he)))try{const a={name:e(n).name,description:e(n).description||void 0,data:Array.from(new TextEncoder().encode(e(u)))},p=await Ue.updateTemplate(e(t).id,a);s(t,p),P.add({type:"success",title:"Template updated",message:`Template "${e(n).name}" has been updated successfully.`}),M($,e($).name=e(n).name),M($,e($).description=e(n).description),s(z,e(u)),s(h,!1)}catch(a){const p=Ie(a);P.add({type:"error",title:"Failed to update template",message:p})}}async function rt(){if(e(t)?.id)try{await Ue.deleteTemplate(e(t).id),P.add({type:"success",title:"Template deleted",message:`Template "${e(t).name}" has been deleted successfully.`}),Re(le("/templates"))}catch(a){const p=Ie(a);P.add({type:"error",title:"Failed to delete template",message:p})}}function Fe(){s(h,!0),s(V,!1)}function dt(){return e(n).name!==e($).name||e(n).description!==e($).description||e(u)!==e(z)}function ot(){if(dt()){s(ce,!0);return}Ee()}function Ee(){if(s(h,!1),s(V,!1),be.url.searchParams.get("edit")==="true"){Re(le("/templates"));return}if(e(t))if(M(n,e(n).name=e(t).name||""),M(n,e(n).description=e(t).description||""),e(t).data)try{if(Array.isArray(e(t).data)){const a=new Uint8Array(e(t).data);s(u,new TextDecoder().decode(a))}else s(u,atob(e(t).data))}catch(a){console.error("Failed to decode template data:",a),s(u,"")}else s(u,"")}function st(){s(ce,!1),Ee()}function Se(a){switch(a){case"github":return{color:"blue",text:"GitHub"};case"gitea":return{color:"green",text:"Gitea"};default:return{color:"gray",text:a||"Unknown"}}}function Be(a){switch(a){case"linux":return{color:"blue",text:"Linux"};case"windows":return{color:"info",text:"Windows"};default:return{color:"gray",text:a||"Unknown"}}}function we(){if(!e(t)?.data)return"";try{if(Array.isArray(e(t).data)){const a=new Uint8Array(e(t).data);return new TextDecoder().decode(a)}else return atob(e(t).data)}catch(a){return console.error("Failed to decode template data:",a),"Error: Failed to decode template content"}}function He(a){const A=a.split(` `)[0]?.trim()||"";return A.startsWith("#!/bin/bash")||A.startsWith("#!/bin/sh")?"bash":A.startsWith("#!/usr/bin/env pwsh")||A.includes("#ps1_sysnative")?"powershell":A.startsWith("#!/usr/bin/env python")||A.startsWith("#!/usr/bin/python")?"python":a.includes("param(")||a.includes("Write-Host")||a.includes("$_")?"powershell":a.includes("def ")||a.includes("import ")||a.includes("print(")?"python":a.includes("echo ")||a.includes("export ")||a.includes("if [")?"bash":"text"}async function lt(a){try{await navigator.clipboard.writeText(a),P.add({type:"success",title:"Copied to clipboard",message:"Template content has been copied to your clipboard."})}catch(p){console.error("Failed to copy to clipboard:",p),P.add({type:"error",title:"Copy failed",message:"Failed to copy content to clipboard. Please try again."})}}Lt(()=>{if(e(ne))return ke().then(()=>{be.url.searchParams.get("edit")==="true"&&Fe()}),jt.subscribeToEntity("template",["update","delete"],p=>{p.payload&&p.payload.id===e(ne)&&(p.operation==="update"?e(h)?P.add({type:"info",title:"Template updated",message:"This template has been updated externally. Your changes are preserved."}):ke():p.operation==="delete"&&(P.add({type:"info",title:"Template deleted",message:`Template "${e(t)?.name||"Unknown"}" has been deleted.`}),Re(le("/templates"))))});s(O,"Invalid template ID"),s(ie,!1)}),pe(()=>be,()=>{s(ne,parseInt(be.params.id||"0"))}),pe(()=>(e(u),e(V)),()=>{e(u)&&!e(V)&&s(X,He(e(u)))}),pe(()=>(e(n),e($),e(u),e(z)),()=>{s(ye,e(n).name!==e($).name||e(n).description!==e($).description||e(u)!==e(z))}),pe(()=>(e(ye),e(n),e(u)),()=>{s(he,e(ye)&&e(n).name.trim().length>0&&e(u).trim().length>0)}),Ut(),Dt();var je=Xt();Rt(a=>{G(()=>Mt.title=`${e(t),l(()=>e(t)?.name||"Template")??""} - GARM`)});var Pe=se(je);{var nt=a=>{var p=Pt();x(a,p)},it=a=>{var p=Je(),A=se(p);{var ue=F=>{var E=zt(),q=r(E),W=o(r(q),2),R=o(r(W),2),Y=r(R,!0);d(R);var S=o(R,2),J=r(S);xe(J,{variant:"secondary",size:"sm",$$events:{click:ke},children:(K,ee)=>{H();var te=ge("Try Again");x(K,te)},$$slots:{default:!0}});var N=o(J,2);{let K=v(()=>(U(le),l(()=>le("/templates"))));xe(N,{variant:"secondary",size:"sm",get href(){return e(K)},children:(ee,te)=>{H();var ae=ge("Back to Templates");x(ee,ae)},$$slots:{default:!0}})}d(S),d(W),d(q),d(E),G(()=>j(Y,e(O))),x(F,E)},Z=F=>{var E=Je(),q=se(E);{var W=R=>{const Y=v(()=>(U(et),l(et))),S=v(()=>(e(t),l(()=>e(t).owner_id==="system"))),J=v(()=>e(Y)||!e(S)),N=v(()=>e(Y)||!e(S));var K=Kt(),ee=se(K);{let m=v(()=>(e(t),l(()=>e(t).name||"Unnamed Template"))),i=v(()=>(U(Xe),e(t),l(()=>Xe(e(t).forge_type||"unknown")))),c=v(()=>e(h)?ot:e(J)?Fe:null),g=v(()=>e(h)?Me:e(N)?()=>s(_e,!0):null),f=v(()=>e(h)?"Close":"Edit"),b=v(()=>e(h)?"Save Changes":"Delete"),y=v(()=>(e(h),"secondary")),I=v(()=>e(h)?"primary":"danger"),B=v(()=>e(h)?!e(he):!1),Q=v(()=>e(h)?"":""),re=v(()=>e(h)?"":"");Bt(ee,{get title(){return e(m)},subtitle:"View and manage template details",get forgeIcon(){return e(i)},get onEdit(){return e(c)},get onDelete(){return e(g)},get editLabel(){return e(f)},get deleteLabel(){return e(b)},get editVariant(){return e(y)},get deleteVariant(){return e(I)},get deleteDisabled(){return e(B)},get editIcon(){return e(Q)},get deleteIcon(){return e(re)}})}var te=o(ee,2),ae=r(te),Ge=r(ae),vt=o(r(Ge),2);{var pt=m=>{var i=Gt(),c=r(i),g=r(c),f=o(r(g),2);Ke(f),d(g);var b=o(g,2),y=o(r(b),2);Ke(y),d(b),d(c);var I=o(c,2),B=r(I),Q=o(r(B),2);{var re=C=>{const L=v(()=>(e(t),l(()=>Se(e(t).forge_type))));fe(C,{get variant(){return U(e(L)),l(()=>e(L).color)},get text(){return U(e(L)),l(()=>e(L).text)}})};T(Q,C=>{e(t),l(()=>e(t).forge_type)&&C(re)})}H(2),d(B);var me=o(B,2),de=o(r(me),2);{var ve=C=>{const L=v(()=>(e(t),l(()=>Be(e(t).os_type))));fe(C,{get variant(){return U(e(L)),l(()=>e(L).color)},get text(){return U(e(L)),l(()=>e(L).text)}})};T(de,C=>{e(t),l(()=>e(t).os_type)&&C(ve)})}H(2),d(me),d(I),d(i),Qe(f,()=>e(n).name,C=>M(n,e(n).name=C)),Qe(y,()=>e(n).description,C=>M(n,e(n).description=C)),Le("submit",i,St(Me)),x(m,i)},gt=m=>{var i=Nt(),c=r(i),g=o(r(c),2),f=r(g,!0);d(g),d(c);var b=o(c,2),y=o(r(b),2),I=r(y,!0);d(y),d(b);var B=o(b,2),Q=o(r(B),2),re=r(Q);{var me=k=>{const _=v(()=>(e(t),l(()=>Se(e(t).forge_type))));fe(k,{get variant(){return U(e(_)),l(()=>e(_).color)},get text(){return U(e(_)),l(()=>e(_).text)}})};T(re,k=>{e(t),l(()=>e(t).forge_type)&&k(me)})}d(Q),d(B);var de=o(B,2),ve=o(r(de),2),C=r(ve);{var L=k=>{const _=v(()=>(e(t),l(()=>Be(e(t).os_type))));fe(k,{get variant(){return U(e(_)),l(()=>e(_).color)},get text(){return U(e(_)),l(()=>e(_).text)}})};T(C,k=>{e(t),l(()=>e(t).os_type)&&k(L)})}d(ve),d(de);var $e=o(de,2),Oe=o(r($e),2),kt=r(Oe,!0);d(Oe),d($e);var Ce=o($e,2),qe=o(r(Ce),2),wt=r(qe,!0);d(qe),d(Ce);var Ye=o(Ce,2);{var Tt=k=>{var _=Vt(),oe=o(r(_),2),De=r(oe,!0);d(oe),d(_),G(Ae=>j(De,Ae),[()=>(e(t),l(()=>new Date(e(t).created_at).toLocaleDateString()))]),x(k,_)};T(Ye,k=>{e(t),l(()=>e(t).created_at)&&k(Tt)})}var $t=o(Ye,2);{var Ct=k=>{var _=Wt(),oe=o(r(_),2),De=r(oe,!0);d(oe),d(_),G(Ae=>j(De,Ae),[()=>(e(t),l(()=>new Date(e(t).updated_at).toLocaleDateString()))]),x(k,_)};T($t,k=>{e(t),l(()=>e(t).updated_at)&&k(Ct)})}d(i),G(()=>{j(f,(e(t),l(()=>e(t).name||"Unnamed Template"))),j(I,(e(t),l(()=>e(t).description||"No description"))),j(kt,(e(t),l(()=>e(t).owner_id==="system"?"System":e(t).owner_id||"Unknown"))),j(wt,(e(t),l(()=>e(t).id)))}),x(m,i)};T(vt,m=>{e(h)?m(pt):m(gt,!1)})}d(Ge),d(ae);var Ve=o(ae,2),We=r(Ve),Te=r(We),bt=o(r(Te),2);{var xt=m=>{var i=Ot(),c=o(r(i),2);G(()=>{e(X),Ft(()=>{e(V)})});var g=r(c);g.value=g.__value="bash";var f=o(g);f.value=f.__value="powershell";var b=o(f);b.value=b.__value="python";var y=o(b);y.value=y.__value="text",d(c),d(i),Et(c,()=>e(X),I=>s(X,I)),Le("change",c,()=>s(V,!0)),x(m,i)};T(bt,m=>{e(h)&&m(xt)})}d(Te);var Ne=o(Te,2);{var ft=m=>{var i=qt(),c=o(r(i),2),g=o(r(c));g.textContent="{{ .RunnerName }}",H(),d(c);var f=o(c,4),b=o(r(f),3);b.textContent="{{if .CABundle}}...{{end}}";var y=o(b,2);y.textContent="{{range $key, $value := .ExtraContext}}{{$key}}: {{$value}}{{end}}",H(),d(f),d(i),x(m,i)};T(Ne,m=>{e(h)&&m(ft)})}var yt=o(Ne,2);{var ht=m=>{var i=Yt(),c=r(i);{let b=v(()=>!e(V));Ze(c,{get language(){return e(X)},get autoDetect(){return e(b)},enableTemplateCompletion:!0,minHeight:"400px",placeholder:"Enter your template script content here...",get value(){return e(u)},set value(y){s(u,y)},$$events:{change:y=>s(u,y.detail.value)},$$legacy:!0})}var g=o(c,2),f=r(g);d(g),d(i),G(()=>j(f,`Template content should be a ${e(t),l(()=>e(t).os_type==="windows"?"PowerShell":"bash")??""} script for runner installation and configuration on ${e(t),l(()=>e(t).os_type)??""}.`)),x(m,i)},_t=m=>{var i=Jt(),c=se(i),g=o(r(c),2);d(c);var f=o(c,2),b=r(f);{let y=v(()=>l(we)),I=v(()=>l(()=>He(we())));Ze(b,{get value(){return e(y)},get language(){return e(I)},readonly:!0,minHeight:"400px"})}d(f),Le("click",g,()=>lt(we())),x(m,i)};T(yt,m=>{e(h)?m(ht):m(_t,!1)})}d(We),d(Ve),d(te),x(R,K)};T(q,R=>{e(t)&&R(W)},!0)}x(F,E)};T(A,F=>{e(O)&&!e(t)?F(ue):F(Z,!1)},!0)}x(a,p)};T(Pe,a=>{e(ie)?a(nt):a(it,!1)})}var ze=o(Pe,2);{var ct=a=>{var p=Qt(),A=r(p),ue=r(A),Z=o(r(ue),4),F=r(Z),E=o(r(F)),q=r(E,!0);d(E),H(),d(F),d(Z);var W=o(Z,2),R=r(W);xe(R,{variant:"secondary",$$events:{click:()=>s(_e,!1)},children:(S,J)=>{H();var N=ge("Cancel");x(S,N)},$$slots:{default:!0}});var Y=o(R,2);xe(Y,{variant:"danger",$$events:{click:rt},children:(S,J)=>{H();var N=ge("Delete");x(S,N)},$$slots:{default:!0}}),d(W),d(ue),d(A),d(p),G(()=>j(q,(e(t),l(()=>e(t).name)))),x(a,p)};T(ze,a=>{e(_e)&&e(t)&&a(ct)})}var ut=o(ze,2);{var mt=a=>{Ht(a,{title:"Unsaved Changes",message:"You have unsaved changes. Are you sure you want to discard them?",confirmText:"Discard Changes",cancelText:"Stay on Page",variant:"warning",$$events:{close:()=>s(ce,!1),confirm:st}})};T(ut,a=>{e(ce)&&a(mt)})}x(tt,je),It()}export{ba as component}; diff --git a/webapp/assets/_app/immutable/nodes/21.Nj7C5iaJ.js b/webapp/assets/_app/immutable/nodes/21.BUQSdMH1.js similarity index 97% rename from webapp/assets/_app/immutable/nodes/21.Nj7C5iaJ.js rename to webapp/assets/_app/immutable/nodes/21.BUQSdMH1.js index 0e992d12..0aa91eb6 100644 --- a/webapp/assets/_app/immutable/nodes/21.Nj7C5iaJ.js +++ b/webapp/assets/_app/immutable/nodes/21.BUQSdMH1.js @@ -1,2 +1,2 @@ -import"../chunks/DsnmJJEf.js";import{i as Ye}from"../chunks/C7KraPli.js";import{p as Ke,o as Qe,l as Q,h as Xe,f as F,j as Ze,a as Te,b as w,c as et,g as e,m as p,t as C,k as l,u as U,$ as tt,s as r,w as f,v as X,d as o,r as s,y as Z,z as A,e as at,i as D,C as rt}from"../chunks/cPTQ2Ibn.js";import{i as ee}from"../chunks/DqFqoVWr.js";import{g as Le,d as te,r as Re,b as ae}from"../chunks/DqbUkQgD.js";import{b as $e}from"../chunks/B-_QCM7E.js";import{b as lt}from"../chunks/Cwu7L3Xf.js";import{p as ot}from"../chunks/D4Caz1gY.js";import{g as re}from"../chunks/CTvJf3dP.js";import{p as st}from"../chunks/BgSaD1r_.js";import{t as h}from"../chunks/Bgbd8SZ5.js";import{e as Ue}from"../chunks/BZiHL9L3.js";import{D as dt}from"../chunks/oOdVuDuv.js";import{a as nt,C as it}from"../chunks/R3ADTHgb.js";var ut=F('
Loading...
'),ct=F('
Uploading...',1),pt=rt(' Upload File',1),bt=F('

Template Information

Template Content

Available Template Variables

Your template can use the following variables using Go template syntax (e.g., ):

Runner Info
  • .RunnerName - Runner name
  • .RunnerLabels - Comma separated labels
  • .RunnerUsername - Runner service username
  • .RunnerGroup - Runner service group
  • .GitHubRunnerGroup - GitHub runner group
Download & Install
  • .FileName - Download file name
  • .DownloadURL - Runner download URL
  • .TempDownloadToken - Download token
  • .RepoURL - Repository URL
Configuration
  • .MetadataURL - Instance metadata URL
  • .CallbackURL - Status callback URL
  • .CallbackToken - Callback token
  • .CABundle - CA certificate bundle
  • .EnableBootDebug - Enable debug mode
  • .UseJITConfig - Use JIT configuration
  • .ExtraContext - Additional context map

💡 Tip: Use for conditional content, or to iterate over extra context.

',1),gt=F(" ",1);function Ut(Ae,De){Ke(De,!1);const le=p(),M=p();let _=p(!1),i=p(null),t=p({name:"",description:"",forge_type:"github",os_type:"linux",data:new Uint8Array}),u=p(""),v=p("text"),x=p(!1),I=p(),T=p(!1),L={name:"",description:"",forge_type:"github",os_type:"linux"},Fe="",R=p(!1);async function oe(){if(e(M))try{l(_,!0);const a={name:e(t).name,description:e(t).description||void 0,forge_type:e(t).forge_type,os_type:e(t).os_type,data:Array.from(new TextEncoder().encode(e(u)))};await Le.createTemplate(a),h.add({type:"success",title:"Template created",message:`Template "${e(t).name}" has been created successfully.`}),re(te("/templates"))}catch(a){const c=Ue(a);h.add({type:"error",title:"Failed to create template",message:c})}finally{l(_,!1)}}function Me(){return e(le)}function Ie(){if(Me()){l(R,!0);return}se()}function se(){re(te("/templates"))}function We(){l(R,!1),se()}function Ee(){e(I).click()}async function Se(a){const c=a.target,n=c.files?.[0];if(n){if(n.size>1024*1024){h.add({type:"error",title:"File too large",message:"Please select a file smaller than 1MB."});return}try{l(T,!0);const y=await n.text();l(u,y);const b=n.name.toLowerCase();let m="text";b.endsWith(".sh")||b.endsWith(".bash")?m="bash":b.endsWith(".ps1")||b.endsWith(".psm1")?m="powershell":b.endsWith(".py")?m="python":m=W(y),l(v,m),l(x,!1),h.add({type:"success",title:"File uploaded",message:`Successfully loaded content from "${n.name}".`})}catch{h.add({type:"error",title:"Failed to read file",message:"Unable to read the selected file. Please try again."})}finally{l(T,!1),c.value=""}}}function W(a){const n=a.split(` +import"../chunks/DsnmJJEf.js";import{i as Ye}from"../chunks/C7KraPli.js";import{p as Ke,o as Qe,l as Q,h as Xe,f as F,j as Ze,a as Te,b as w,c as et,g as e,m as p,t as C,k as l,u as U,$ as tt,s as r,w as f,v as X,d as o,r as s,y as Z,z as A,e as at,i as D,C as rt}from"../chunks/cPTQ2Ibn.js";import{i as ee}from"../chunks/DqFqoVWr.js";import{g as Le,d as te,r as Re,b as ae}from"../chunks/yWyZZHPR.js";import{b as $e}from"../chunks/B-_QCM7E.js";import{b as lt}from"../chunks/Cwu7L3Xf.js";import{p as ot}from"../chunks/D4Caz1gY.js";import{g as re}from"../chunks/Br47IbuU.js";import{p as st}from"../chunks/DMSCYqmZ.js";import{t as h}from"../chunks/Bgbd8SZ5.js";import{e as Ue}from"../chunks/BZiHL9L3.js";import{D as dt}from"../chunks/CDgX_mkE.js";import{a as nt,C as it}from"../chunks/5uRpB3Rp.js";var ut=F('
Loading...
'),ct=F('
Uploading...',1),pt=rt(' Upload File',1),bt=F('

Template Information

Template Content

Available Template Variables

Your template can use the following variables using Go template syntax (e.g., ):

Runner Info
  • .RunnerName - Runner name
  • .RunnerLabels - Comma separated labels
  • .RunnerUsername - Runner service username
  • .RunnerGroup - Runner service group
  • .GitHubRunnerGroup - GitHub runner group
Download & Install
  • .FileName - Download file name
  • .DownloadURL - Runner download URL
  • .TempDownloadToken - Download token
  • .RepoURL - Repository URL
Configuration
  • .MetadataURL - Instance metadata URL
  • .CallbackURL - Status callback URL
  • .CallbackToken - Callback token
  • .CABundle - CA certificate bundle
  • .EnableBootDebug - Enable debug mode
  • .UseJITConfig - Use JIT configuration
  • .ExtraContext - Additional context map

💡 Tip: Use for conditional content, or to iterate over extra context.

',1),gt=F(" ",1);function Ut(Ae,De){Ke(De,!1);const le=p(),M=p();let _=p(!1),i=p(null),t=p({name:"",description:"",forge_type:"github",os_type:"linux",data:new Uint8Array}),u=p(""),v=p("text"),x=p(!1),I=p(),T=p(!1),L={name:"",description:"",forge_type:"github",os_type:"linux"},Fe="",R=p(!1);async function oe(){if(e(M))try{l(_,!0);const a={name:e(t).name,description:e(t).description||void 0,forge_type:e(t).forge_type,os_type:e(t).os_type,data:Array.from(new TextEncoder().encode(e(u)))};await Le.createTemplate(a),h.add({type:"success",title:"Template created",message:`Template "${e(t).name}" has been created successfully.`}),re(te("/templates"))}catch(a){const c=Ue(a);h.add({type:"error",title:"Failed to create template",message:c})}finally{l(_,!1)}}function Me(){return e(le)}function Ie(){if(Me()){l(R,!0);return}se()}function se(){re(te("/templates"))}function We(){l(R,!1),se()}function Ee(){e(I).click()}async function Se(a){const c=a.target,n=c.files?.[0];if(n){if(n.size>1024*1024){h.add({type:"error",title:"File too large",message:"Please select a file smaller than 1MB."});return}try{l(T,!0);const y=await n.text();l(u,y);const b=n.name.toLowerCase();let m="text";b.endsWith(".sh")||b.endsWith(".bash")?m="bash":b.endsWith(".ps1")||b.endsWith(".psm1")?m="powershell":b.endsWith(".py")?m="python":m=W(y),l(v,m),l(x,!1),h.add({type:"success",title:"File uploaded",message:`Successfully loaded content from "${n.name}".`})}catch{h.add({type:"error",title:"Failed to read file",message:"Unable to read the selected file. Please try again."})}finally{l(T,!1),c.value=""}}}function W(a){const n=a.split(` `)[0]?.trim()||"";return n.startsWith("#!/bin/bash")||n.startsWith("#!/bin/sh")?"bash":n.startsWith("#!/usr/bin/env pwsh")||n.includes("#ps1_sysnative")?"powershell":n.startsWith("#!/usr/bin/env python")||n.startsWith("#!/usr/bin/python")?"python":a.includes("param(")||a.includes("Write-Host")||a.includes("$_")?"powershell":a.includes("def ")||a.includes("import ")||a.includes("print(")?"python":a.includes("echo ")||a.includes("export ")||a.includes("if [")?"bash":"text"}async function Ge(){const a=st.url.searchParams.get("clone");if(a)try{if(l(_,!0),l(i,await Le.getTemplate(parseInt(a))),!e(i))throw new Error("Template not found");if(f(t,e(t).name=`${e(i).name} (Copy)`),f(t,e(t).description=e(i).description||""),f(t,e(t).forge_type=e(i).forge_type||"github"),f(t,e(t).os_type=e(i).os_type||"linux"),e(i).data)try{if(Array.isArray(e(i).data)){const c=new Uint8Array(e(i).data);l(u,new TextDecoder().decode(c))}else l(u,atob(e(i).data));l(v,W(e(u)))}catch(c){console.error("Failed to decode template data:",c),l(u,"")}}catch(c){const n=Ue(c);h.add({type:"error",title:"Failed to load template",message:n}),re(te("/templates"))}finally{l(_,!1)}}Qe(()=>{Ge()}),Q(()=>(e(t),e(u)),()=>{l(le,e(t).name!==L.name||e(t).description!==L.description||e(t).forge_type!==L.forge_type||e(t).os_type!==L.os_type||e(u)!==Fe)}),Q(()=>(e(t),e(u)),()=>{l(M,e(t).name.trim().length>0&&e(u).trim().length>0)}),Q(()=>(e(u),e(x)),()=>{e(u)&&!e(x)&&l(v,W(e(u)))}),Xe(),Ye();var de=gt();Ze(a=>{C(()=>tt.title=`${e(i),U(()=>e(i)?`Clone ${e(i).name}`:"Create Template")??""} - GARM`)});var ne=Te(de);{var He=a=>{var c=ut();w(a,c)},Pe=a=>{var c=bt(),n=Te(c);{let d=X(()=>(e(i),U(()=>e(i)?`Clone Template: ${e(i).name}`:"Create New Template"))),g=X(()=>!e(M));dt(n,{get title(){return e(d)},subtitle:"Create a new runner install template",onEdit:Ie,onDelete:oe,editLabel:"Cancel",deleteLabel:"Create Template",editVariant:"secondary",deleteVariant:"primary",get deleteDisabled(){return e(g)},editIcon:"",deleteIcon:""})}var y=r(n,2),b=o(y),m=o(b),E=r(o(m),2),S=o(E),G=o(S),ie=r(o(G),2);Re(ie),s(G);var ue=r(G,2),ce=r(o(ue),2);Re(ce),s(ue),s(S);var pe=r(S,2),H=o(pe),P=r(o(H),2);C(()=>{e(t),Z(()=>{})});var j=o(P);j.value=j.__value="github";var be=r(j);be.value=be.__value="gitea",s(P),s(H);var ge=r(H,2),B=r(o(ge),2);C(()=>{e(t),Z(()=>{})});var N=o(B);N.value=N.__value="linux";var me=r(N);me.value=me.__value="windows",s(B),s(ge),s(pe),s(E),s(m),s(b);var fe=r(b,2),ve=o(fe),V=o(ve),xe=r(o(V),2),k=o(xe),Ne=o(k);{var Ve=d=>{var g=ct();A(),w(d,g)},qe=d=>{var g=pt();A(),w(d,g)};ee(Ne,d=>{e(T)?d(Ve):d(qe,!1)})}s(k);var $=r(k,4);C(()=>{e(v),Z(()=>{e(x)})});var q=o($);q.value=q.__value="bash";var z=r(q);z.value=z.__value="powershell";var J=r(z);J.value=J.__value="python";var ye=r(J);ye.value=ye.__value="text",s($),s(xe),s(V);var O=r(V,2);lt(O,d=>l(I,d),()=>e(I));var Y=r(O,2),K=r(o(Y),2),ze=r(o(K));ze.textContent="{{ .RunnerName }}",A(),s(K);var he=r(K,4),_e=r(o(he),3);_e.textContent="{{if .CABundle}}...{{end}}";var Je=r(_e,2);Je.textContent="{{range $key, $value := .ExtraContext}}{{$key}}: {{$value}}{{end}}",A(),s(he),s(Y);var ke=r(Y,2),we=o(ke);{let d=X(()=>!e(x));nt(we,{get language(){return e(v)},get autoDetect(){return e(d)},enableTemplateCompletion:!0,minHeight:"400px",placeholder:"Enter your template script content here...",get value(){return e(u)},set value(g){l(u,g)},$$events:{change:g=>l(u,g.detail.value)},$$legacy:!0})}var Ce=r(we,2),Oe=o(Ce);s(Ce),s(ke),s(ve),s(fe),s(y),C(()=>{k.disabled=e(T),at(Oe,`Template content should be a ${e(t),U(()=>e(t).os_type==="windows"?"PowerShell":"bash")??""} script for runner installation and configuration on ${e(t),U(()=>e(t).os_type)??""}.`)}),$e(ie,()=>e(t).name,d=>f(t,e(t).name=d)),$e(ce,()=>e(t).description,d=>f(t,e(t).description=d)),ae(P,()=>e(t).forge_type,d=>f(t,e(t).forge_type=d)),ae(B,()=>e(t).os_type,d=>f(t,e(t).os_type=d)),D("submit",E,ot(oe)),D("click",k,Ee),ae($,()=>e(v),d=>l(v,d)),D("change",$,()=>l(x,!0)),D("change",O,Se),w(a,c)};ee(ne,a=>{e(_)?a(He):a(Pe,!1)})}var je=r(ne,2);{var Be=a=>{it(a,{title:"Unsaved Changes",message:"You have unsaved changes. Are you sure you want to discard them?",confirmText:"Discard Changes",cancelText:"Stay on Page",variant:"danger",$$events:{close:()=>l(R,!1),confirm:We}})};ee(je,a=>{e(R)&&a(Be)})}w(Ae,de),et()}export{Ut as component}; diff --git a/webapp/assets/_app/immutable/nodes/3.CcPcfE5H.js b/webapp/assets/_app/immutable/nodes/3.Di2gNd2_.js similarity index 59% rename from webapp/assets/_app/immutable/nodes/3.CcPcfE5H.js rename to webapp/assets/_app/immutable/nodes/3.Di2gNd2_.js index d34f74d4..dbd4add9 100644 --- a/webapp/assets/_app/immutable/nodes/3.CcPcfE5H.js +++ b/webapp/assets/_app/immutable/nodes/3.Di2gNd2_.js @@ -1,7 +1,7 @@ -import"../chunks/DsnmJJEf.js";import{i as jt}from"../chunks/C7KraPli.js";import{p as Gt,g as e,o as Ut,l as J,h as zt,f as E,i as f,j as qt,a as Fe,b as $,c as Bt,$ as St,m as p,k as n,n as Lt,d as o,s as a,r as i,u,q as be,v as Ke,t as se,e as W,w as _,x as rt,y as Nt,z as X}from"../chunks/cPTQ2Ibn.js";import{i as G,s as Kt,a as Vt}from"../chunks/DqFqoVWr.js";import{e as Ht,i as Rt}from"../chunks/CiWDXYQd.js";import{h as Yt,r as L,s as je,b as Ot,a as Jt,g as fe}from"../chunks/DqbUkQgD.js";import{b as N,a as Qt}from"../chunks/B-_QCM7E.js";import{p as at}from"../chunks/D4Caz1gY.js";import{P as Wt}from"../chunks/U3V4g_hv.js";import{F as Xt}from"../chunks/Cqnw7O8j.js";import{A as ot}from"../chunks/C2rI8IaC.js";import{D as Zt,G as it,A as er}from"../chunks/Du50aAe5.js";import{e as tr,a as Ve}from"../chunks/JUkrBp3F.js";import{t as ke}from"../chunks/Bgbd8SZ5.js";import{f as rr,p as ar,g as He,B as nt,c as or}from"../chunks/DJsB5Z5V.js";import{e as Re}from"../chunks/BZiHL9L3.js";import"../chunks/D7e9zx6w.js";import{E as ir}from"../chunks/CYqkNFLz.js";import{S as nr}from"../chunks/BZ2WxPPD.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),fr=E(" ",1),vr=E(''),mr=E(''),xr=E('
',1);function Br(dt,st){Gt(st,!1);const[lt,ct]=Kt(),U=()=>Vt(tr,"$eagerCache",lt),Ge=p(),Z=p(),Ye=p(),Ue=p(),ze=p(),y={PAT:"pat",APP:"app"};let we=p(!0),le=p([]),Q=p([]),Ce=p(""),Pe=p(""),K=p(1),ce=p(25),ue=p(1),Ae=p(!1),Te=p(!1),$e=p(!1),D=p(y.PAT),g=p(null),M=p(null),r=p({name:"",description:"",endpoint:"",auth_type:y.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),Ee={...e(r)},ee=p(!1);function ut(t){t.key==="Escape"&&(e(Ae)||e(Te)||e($e))&&P()}Ut(async()=>{try{n(we,!0);const[t,d]=await Promise.all([Ve.getCredentials(),Ve.getEndpoints()]);t&&Array.isArray(t)&&n(le,t),d&&Array.isArray(d)&&n(Q,d)}catch(t){console.error("Failed to load credentials:",t),n(Ce,t instanceof Error?t.message:"Failed to load credentials")}finally{n(we,!1)}});async function pt(){try{await Ve.retryResource("credentials")}catch(t){console.error("Retry failed:",t)}}async function gt(){Se(),n(Ae,!0),n(x,"github"),_(r,e(r).auth_type=y.PAT)}let x=p("");function yt(t){n(x,t.detail),Se()}async function qe(t){n(g,t),n(r,{name:t.name||"",description:t.description||"",endpoint:t.endpoint?.name||"",auth_type:t["auth-type"]||y.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),n(D,t["auth-type"]||y.PAT),Ee={...e(r)},n(ee,!1),n(Te,!0)}function Be(t){n(M,t),n($e,!0)}function Se(){n(r,{name:"",description:"",endpoint:"",auth_type:y.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),Ee={...e(r)},n(D,y.PAT),n(ee,!1)}function P(){n(Ae,!1),n(Te,!1),n($e,!1),n(g,null),n(M,null),n(x,""),Se()}function Oe(t){n(D,t),_(r,e(r).auth_type=t)}function bt(){const t={};if(e(r).name!==Ee.name&&e(r).name.trim()!==""&&(t.name=e(r).name.trim()),e(r).description!==Ee.description&&e(r).description.trim()!==""&&(t.description=e(r).description.trim()),e(ee)&&e(g))if(e(g)["auth-type"]===y.PAT)e(r).oauth2_token.trim()!==""&&(t.pat={oauth2_token:e(r).oauth2_token.trim()});else{const d={};let b=!1;if(e(r).app_id.trim()!==""&&(d.app_id=parseInt(e(r).app_id.trim()),b=!0),e(r).installation_id.trim()!==""&&(d.installation_id=parseInt(e(r).installation_id.trim()),b=!0),e(r).private_key_bytes!=="")try{const v=atob(e(r).private_key_bytes);d.private_key_bytes=Array.from(v,l=>l.charCodeAt(0)),b=!0}catch{}b&&(t.app=d)}return t}async function ft(){try{if(e(x)==="github")await fe.createGithubCredentials(e(r));else if(e(x)==="gitea")await fe.createGiteaCredentials(e(r));else throw new Error("Please select a forge type");ke.success("Credentials Created",`Credentials ${e(r).name} have been created successfully.`),P()}catch(t){n(Ce,Re(t))}}async function vt(){if(!(!e(g)||!e(g).id))try{const t=bt();if(Object.keys(t).length===0){ke.info("No Changes","No fields were modified."),P();return}e(g).forge_type==="github"?await fe.updateGithubCredentials(e(g).id,t):await fe.updateGiteaCredentials(e(g).id,t),ke.success("Credentials Updated",`Credentials ${e(g)?.name||"Unknown"} have been updated successfully.`),P()}catch(t){n(Ce,Re(t))}}async function mt(){if(!(!e(M)||!e(M).id))try{e(M).forge_type==="github"?await fe.deleteGithubCredentials(e(M).id):await fe.deleteGiteaCredentials(e(M).id),ke.success("Credentials Deleted",`Credentials ${e(M)?.name||"Unknown"} have been deleted successfully.`)}catch(t){const d=Re(t);ke.error("Delete Failed",d)}finally{P()}}function Je(t){const b=t.target.files?.[0];if(!b){_(r,e(r).private_key_bytes="");return}const v=new FileReader;v.onload=l=>{const h=l.target?.result;_(r,e(r).private_key_bytes=btoa(h))},v.readAsText(b)}function Qe(){return e(r).name.trim()?e(ee)&&e(g)?e(g)["auth-type"]===y.PAT?!!e(r).oauth2_token.trim():!!e(r).app_id.trim()&&!!e(r).installation_id.trim()&&!!e(r).private_key_bytes:!0:!1}function xt(t){return e(Q).find(b=>b.name===t)?.endpoint_type||""}function _t(t){return xt(t)==="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:t=>He(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=>Be(t)}]};function wt(t){n(Pe,t.detail.term),n(K,1)}function Ct(t){n(K,t.detail.page)}function Pt(t){const d=or(t.detail.perPage);n(ce,d.newPerPage),n(K,d.newCurrentPage)}function At(t){qe(t.detail.item)}function Tt(t){Be(t.detail.item)}J(()=>(e(le),U()),()=>{(!e(le).length||U().loaded.credentials)&&n(le,U().credentials)}),J(()=>U(),()=>{n(we,U().loading.credentials)}),J(()=>U(),()=>{n(Ge,U().errorMessages.credentials)}),J(()=>(e(Q),U()),()=>{(!e(Q).length||U().loaded.endpoints)&&n(Q,U().endpoints)}),J(()=>(e(le),e(Pe)),()=>{n(Z,rr(e(le),e(Pe)))}),J(()=>(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))}),J(()=>(e(Z),e(K),e(ce)),()=>{n(Ye,ar(e(Z),e(K),e(ce)))}),J(()=>e(r),()=>{n(Ue,!e(r).name||!e(r).endpoint?!1:e(r).auth_type===y.PAT?!!e(r).oauth2_token:!!e(r).app_id&&!!e(r).installation_id&&!!e(r).private_key_bytes)}),J(()=>(e(x),e(Q)),()=>{n(ze,e(x)?e(Q).filter(t=>t.endpoint_type===e(x)):e(Q))}),zt(),jt();var We=xr();f("keydown",Lt,ut),qt(t=>{St.title="Credentials - GARM"});var Le=Fe(We),Xe=o(Le);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 t=Ke(()=>e(Ge)||e(Ce)),d=Ke(()=>!!e(Ge));Zt($t,{get columns(){return ht},get data(){return e(Ye)},get loading(){return e(we)},get error(){return e(t)},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,v)=>{const l=Ke(()=>v.item);var h=dr(),A=o(h),z=o(A),I=o(z),F=o(I,!0);i(I);var k=a(I,2),V=o(k,!0);i(k);var q=a(k,2),B=o(q),S=o(B);Yt(S,()=>(be(He),be(e(l)),u(()=>He(e(l).forge_type||"unknown"))));var te=a(S,2),re=o(te,!0);i(te),i(B),i(q),i(z),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:()=>Be(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(Le);var Ze=a(Le,2);{var Et=t=>{var d=gr(),b=o(d),v=a(b,2),l=o(v),h=a(o(l),2);i(l);var A=a(l,2),z=o(A);Xt(z,{get selectedForgeType(){return e(x)},set selectedForgeType(s){n(x,s)},$$events:{select:yt},$$legacy:!0});var I=a(z,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 q=a(k,2),B=a(o(q),2);se(()=>{e(r),Nt(()=>{e(ze)})});var S=o(B);S.value=S.__value="";var te=a(S);Ht(te,1,()=>e(ze),Rt,(s,c)=>{var m=sr(),C=o(m);i(m);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)))&&(m.value=(m.__value=(e(c),u(()=>e(c).name)))??"")}),$(s,m)}),i(B);var re=a(B,2);{var ae=s=>{var c=lr(),m=o(c);i(c),se(()=>W(m,`Showing only ${e(x)??""} endpoints`)),$(s,c)};G(re,s=>{e(x)&&s(ae)})}i(q);var H=a(q,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(),m=a(o(c),2);L(m),i(c),N(m,()=>e(r).oauth2_token,C=>_(r,e(r).oauth2_token=C)),$(s,c)};G(j,s=>{e(D),u(()=>e(D)===y.PAT)&&s(De)})}var ve=a(j,2);{var Me=s=>{var c=pr(),m=Fe(c),C=a(o(m),2);L(C),i(m);var T=a(m,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(r).app_id,ye=>_(r,e(r).app_id=ye)),N(O,()=>e(r).installation_id,ye=>_(r,e(r).installation_id=ye)),f("change",xe,Je),f("click",Ie,()=>document.getElementById("private_key")?.click()),$(s,c)};G(ve,s=>{e(D),u(()=>e(D)===y.APP)&&s(Me)})}var w=a(ve,2),ne=o(w),me=a(ne,2);i(w),i(A),i(v),i(d),se(s=>{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)===y.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")??""} +import"../chunks/DsnmJJEf.js";import{i as jt}from"../chunks/C7KraPli.js";import{p as Gt,g as e,o as Ut,l as J,h as zt,f as E,i as f,j as qt,a as Fe,b as $,c as Bt,$ as St,m as g,k as n,n as Lt,d as o,s as a,r as i,u,q as be,v as Ke,t as se,e as W,w as _,x as rt,y as Nt,z as X}from"../chunks/cPTQ2Ibn.js";import{i as G,s as Kt,a as Vt}from"../chunks/DqFqoVWr.js";import{e as Ht,i as Rt}from"../chunks/CiWDXYQd.js";import{h as Yt,r as L,s as je,b as Ot,a as Jt,g as fe}from"../chunks/yWyZZHPR.js";import{b as N,a as Qt}from"../chunks/B-_QCM7E.js";import{p as at}from"../chunks/D4Caz1gY.js";import{P as Wt}from"../chunks/BtskFTeb.js";import{F as Xt}from"../chunks/DDJerweA.js";import{A as ot}from"../chunks/B_RLftTg.js";import{D as Zt,G as it,A as er}from"../chunks/BIepGqC5.js";import{e as tr,a as Ve}from"../chunks/C01HillC.js";import{t as ke}from"../chunks/Bgbd8SZ5.js";import{f as rr,p as ar,g as He,B as nt,c as or}from"../chunks/Cr2hBuns.js";import{e as Re}from"../chunks/BZiHL9L3.js";import"../chunks/BMOcKgHw.js";import{E as ir}from"../chunks/C6PRls9Y.js";import{S as nr}from"../chunks/CMG1iQmM.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),fr=E(" ",1),vr=E(''),mr=E(''),xr=E('
',1);function Br(dt,st){Gt(st,!1);const[lt,ct]=Kt(),U=()=>Vt(tr,"$eagerCache",lt),Ge=g(),Z=g(),Ye=g(),Ue=g(),ze=g(),p={PAT:"pat",APP:"app"};let we=g(!0),le=g([]),Q=g([]),Ce=g(""),Pe=g(""),K=g(1),ce=g(25),ue=g(1),Ae=g(!1),Te=g(!1),$e=g(!1),D=g(p.PAT),y=g(null),M=g(null),t=g({name:"",description:"",endpoint:"",auth_type:p.PAT,oauth2_token:"",app_id:"",installation_id:"",private_key_bytes:""}),Ee={...e(t)},ee=g(!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([Ve.getCredentials(),Ve.getEndpoints()]);r&&Array.isArray(r)&&n(le,r),d&&Array.isArray(d)&&n(Q,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 Ve.retryResource("credentials")}catch(r){console.error("Retry failed:",r)}}async function gt(){Se(),n(Ae,!0),n(x,"github"),_(t,e(t).auth_type=p.PAT)}let x=g("");function yt(r){n(x,r.detail),Se()}async function qe(r){n(y,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 Be(r){n(M,r),n($e,!0)}function Se(){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(y,null),n(M,null),n(x,""),Se()}function Oe(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(y))if(e(y)["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 v=atob(e(t).private_key_bytes);d.private_key_bytes=Array.from(v,l=>l.charCodeAt(0)),b=!0}catch{}b&&(r.app=d)}return r}async function ft(){try{if(e(x)==="github"){const r={name:e(t).name.trim(),description:e(t).description.trim(),endpoint:e(t).endpoint.trim(),auth_type:e(t).auth_type};e(t).auth_type===p.PAT?(r.pat={oauth2_token:e(t).oauth2_token.trim()},r.app={}):(r.app={app_id:parseInt(e(t).app_id.trim()),installation_id:parseInt(e(t).installation_id.trim()),private_key_bytes:Array.from(atob(e(t).private_key_bytes),d=>d.charCodeAt(0))},r.pat={}),await fe.createGithubCredentials(r)}else if(e(x)==="gitea"){const r={name:e(t).name.trim(),description:e(t).description.trim(),endpoint:e(t).endpoint.trim(),auth_type:p.PAT,pat:{oauth2_token:e(t).oauth2_token.trim()},app:{}};await fe.createGiteaCredentials(r)}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,Re(r))}}async function vt(){if(!(!e(y)||!e(y).id))try{const r=bt();if(Object.keys(r).length===0){ke.info("No Changes","No fields were modified."),P();return}e(y).forge_type==="github"?await fe.updateGithubCredentials(e(y).id,r):await fe.updateGiteaCredentials(e(y).id,r),ke.success("Credentials Updated",`Credentials ${e(y)?.name||"Unknown"} have been updated successfully.`),P()}catch(r){n(Ce,Re(r))}}async function mt(){if(!(!e(M)||!e(M).id))try{e(M).forge_type==="github"?await fe.deleteGithubCredentials(e(M).id):await fe.deleteGiteaCredentials(e(M).id),ke.success("Credentials Deleted",`Credentials ${e(M)?.name||"Unknown"} have been deleted successfully.`)}catch(r){const d=Re(r);ke.error("Delete Failed",d)}finally{P()}}function Je(r){const b=r.target.files?.[0];if(!b){_(t,e(t).private_key_bytes="");return}const v=new FileReader;v.onload=l=>{const h=l.target?.result;_(t,e(t).private_key_bytes=btoa(h))},v.readAsText(b)}function Qe(){return e(t).name.trim()?e(ee)&&e(y)?e(y)["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:!1}function xt(r){return e(Q).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=>He(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=>Be(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){Be(r.detail.item)}J(()=>(e(le),U()),()=>{(!e(le).length||U().loaded.credentials)&&n(le,U().credentials)}),J(()=>U(),()=>{n(we,U().loading.credentials)}),J(()=>U(),()=>{n(Ge,U().errorMessages.credentials)}),J(()=>(e(Q),U()),()=>{(!e(Q).length||U().loaded.endpoints)&&n(Q,U().endpoints)}),J(()=>(e(le),e(Pe)),()=>{n(Z,rr(e(le),e(Pe)))}),J(()=>(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))}),J(()=>(e(Z),e(K),e(ce)),()=>{n(Ye,ar(e(Z),e(K),e(ce)))}),J(()=>e(t),()=>{n(Ue,!e(t).name||!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)}),J(()=>(e(x),e(Q)),()=>{n(ze,e(x)?e(Q).filter(r=>r.endpoint_type===e(x)):e(Q))}),zt(),jt();var We=xr();f("keydown",Lt,ut),qt(r=>{St.title="Credentials - GARM"});var Le=Fe(We),Xe=o(Le);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=Ke(()=>e(Ge)||e(Ce)),d=Ke(()=>!!e(Ge));Zt($t,{get columns(){return ht},get data(){return e(Ye)},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,v)=>{const l=Ke(()=>v.item);var h=dr(),A=o(h),z=o(A),I=o(z),F=o(I,!0);i(I);var k=a(I,2),V=o(k,!0);i(k);var q=a(k,2),B=o(q),S=o(B);Yt(S,()=>(be(He),be(e(l)),u(()=>He(e(l).forge_type||"unknown"))));var te=a(S,2),re=o(te,!0);i(te),i(B),i(q),i(z),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:()=>Be(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(Le);var Ze=a(Le,2);{var Et=r=>{var d=gr(),b=o(d),v=a(b,2),l=o(v),h=a(o(l),2);i(l);var A=a(l,2),z=o(A);Xt(z,{get selectedForgeType(){return e(x)},set selectedForgeType(s){n(x,s)},$$events:{select:yt},$$legacy:!0});var I=a(z,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 q=a(k,2),B=a(o(q),2);se(()=>{e(t),Nt(()=>{e(ze)})});var S=o(B);S.value=S.__value="";var te=a(S);Ht(te,1,()=>e(ze),Rt,(s,c)=>{var m=sr(),C=o(m);i(m);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)))&&(m.value=(m.__value=(e(c),u(()=>e(c).name)))??"")}),$(s,m)}),i(B);var re=a(B,2);{var ae=s=>{var c=lr(),m=o(c);i(c),se(()=>W(m,`Showing only ${e(x)??""} endpoints`)),$(s,c)};G(re,s=>{e(x)&&s(ae)})}i(q);var H=a(q,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(),m=a(o(c),2);L(m),i(c),N(m,()=>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 ve=a(j,2);{var Me=s=>{var c=pr(),m=Fe(c),C=a(o(m),2);L(C),i(m);var T=a(m,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,Je),f("click",Ie,()=>document.getElementById("private_key")?.click()),$(s,c)};G(ve,s=>{e(D),u(()=>e(D)===p.APP)&&s(Me)})}var w=a(ve,2),ne=o(w),me=a(ne,2);i(w),i(A),i(v),i(d),se(s=>{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)===y.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(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=!e(Ue),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 - ${e(Ue)?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed"}`)},[()=>(e(r),u(()=>(e(r).endpoint&&_t(e(r).endpoint),"")))]),f("click",b,P),f("click",h,P),N(F,()=>e(r).name,s=>_(r,e(r).name=s)),N(V,()=>e(r).description,s=>_(r,e(r).description=s)),Ot(B,()=>e(r).endpoint,s=>_(r,e(r).endpoint=s)),f("click",R,()=>Oe(y.PAT)),f("click",Y,()=>Oe(y.APP)),f("click",ne,P),f("submit",A,at(ft)),$(t,d)};G(Ze,t=>{e(Ae)&&t(Et)})}var et=a(Ze,2);{var Dt=t=>{var d=vr(),b=o(d),v=a(b,2),l=o(v),h=o(l),A=a(o(h),2),z=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 q=a(k,2),B=a(o(q),2);rt(B),i(q);var S=a(q,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=fr(),me=Fe(ne);{var s=C=>{var T=yr(),O=a(o(T),2);L(O),i(T),N(O,()=>e(r).oauth2_token,de=>_(r,e(r).oauth2_token=de)),$(C,T)};G(me,C=>{e(g),u(()=>e(g)["auth-type"]===y.PAT)&&C(s)})}var c=a(me,2);{var m=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(r).app_id,Ne=>_(r,e(r).app_id=Ne)),N(xe,()=>e(r).installation_id,Ne=>_(r,e(r).installation_id=Ne)),f("change",Ie,Je),f("click",Ft,()=>document.getElementById("edit_private_key")?.click()),$(C,T)};G(c,C=>{e(g),u(()=>e(g)["auth-type"]===y.APP)&&C(m)})}$(w,ne)};G(pe,w=>{e(ee)&&w(j)})}var De=a(pe,2),ve=o(De),Me=a(ve,2);i(De),i(F),i(v),i(d),se((w,ne)=>{W(z,`Update credentials for ${e(g),u(()=>e(g)?.name||"Unknown")??""}`),Jt(te,(e(r),u(()=>e(r).endpoint))),W(oe,(e(g),u(()=>(e(g)?.["auth-type"]||y.PAT)===y.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(r).name,w=>_(r,e(r).name=w)),N(B,()=>e(r).description,w=>_(r,e(r).description=w)),Qt(ie,()=>e(ee),w=>n(ee,w)),f("click",ve,P),f("submit",F,at(vt)),$(t,d)};G(et,t=>{e(Te)&&e(g)&&t(Dt)})}var Mt=a(et,2);{var It=t=>{var d=mr(),b=o(d),v=a(b,2),l=o(v),h=o(l),A=a(o(h),2),z=a(o(A),2),I=o(z);i(z),i(A),i(h),i(l);var F=a(l,2),k=o(F),V=a(k,2);i(F),i(v),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),$(t,d)};G(Mt,t=>{e($e)&&e(M)&&t(It)})}$(dt,We),Bt(),ct()}export{Br as component}; + ${e(Ue)?"bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 cursor-pointer":"bg-gray-400 cursor-not-allowed"}`)},[()=>(e(t),u(()=>(e(t).endpoint&&_t(e(t).endpoint),"")))]),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,()=>Oe(p.PAT)),f("click",Y,()=>Oe(p.APP)),f("click",ne,P),f("submit",A,at(ft)),$(r,d)};G(Ze,r=>{e(Ae)&&r(Et)})}var et=a(Ze,2);{var Dt=r=>{var d=vr(),b=o(d),v=a(b,2),l=o(v),h=o(l),A=a(o(h),2),z=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 q=a(k,2),B=a(o(q),2);rt(B),i(q);var S=a(q,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=fr(),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(y),u(()=>e(y)["auth-type"]===p.PAT)&&C(s)})}var c=a(me,2);{var m=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,Ne=>_(t,e(t).app_id=Ne)),N(xe,()=>e(t).installation_id,Ne=>_(t,e(t).installation_id=Ne)),f("change",Ie,Je),f("click",Ft,()=>document.getElementById("edit_private_key")?.click()),$(C,T)};G(c,C=>{e(y),u(()=>e(y)["auth-type"]===p.APP)&&C(m)})}$(w,ne)};G(pe,w=>{e(ee)&&w(j)})}var De=a(pe,2),ve=o(De),Me=a(ve,2);i(De),i(F),i(v),i(d),se((w,ne)=>{W(z,`Update credentials for ${e(y),u(()=>e(y)?.name||"Unknown")??""}`),Jt(te,(e(t),u(()=>e(t).endpoint))),W(oe,(e(y),u(()=>(e(y)?.["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",ve,P),f("submit",F,at(vt)),$(r,d)};G(et,r=>{e(Te)&&e(y)&&r(Dt)})}var Mt=a(et,2);{var It=r=>{var d=mr(),b=o(d),v=a(b,2),l=o(v),h=o(l),A=a(o(h),2),z=a(o(A),2),I=o(z);i(z),i(A),i(h),i(l);var F=a(l,2),k=o(F),V=a(k,2);i(F),i(v),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{Br as component}; diff --git a/webapp/assets/_app/immutable/nodes/4.CdHupLIu.js b/webapp/assets/_app/immutable/nodes/4.CqGHGl2O.js similarity index 98% rename from webapp/assets/_app/immutable/nodes/4.CdHupLIu.js rename to webapp/assets/_app/immutable/nodes/4.CqGHGl2O.js index 80bc853c..874d5dac 100644 --- a/webapp/assets/_app/immutable/nodes/4.CdHupLIu.js +++ b/webapp/assets/_app/immutable/nodes/4.CqGHGl2O.js @@ -1,3 +1,3 @@ -import"../chunks/DsnmJJEf.js";import{i as bt}from"../chunks/C7KraPli.js";import{p as gt,g as e,o as ft,l as V,h as _t,f as I,i as b,j as mt,a as Ee,b as F,c as yt,m as u,n as vt,$ as xt,d as o,v as Pe,s as a,t as ye,u as z,k as s,w as g,r as i,q as se,e as ne,x as Ie,z as O}from"../chunks/cPTQ2Ibn.js";import{i as le,s as ht,a as kt}from"../chunks/DqFqoVWr.js";import{h as wt,r as R,c as je,s as Ge,g as ee}from"../chunks/DqbUkQgD.js";import{b as w}from"../chunks/B-_QCM7E.js";import{p as ze}from"../chunks/D4Caz1gY.js";import{P as Ct}from"../chunks/U3V4g_hv.js";import{F as Et}from"../chunks/Cqnw7O8j.js";import{A as qe}from"../chunks/C2rI8IaC.js";import{e as Pt,a as He}from"../chunks/JUkrBp3F.js";import{t as de}from"../chunks/Bgbd8SZ5.js";import{g as $e,c as $t,a as At,p as Rt}from"../chunks/DJsB5Z5V.js";import{e as Ae}from"../chunks/BZiHL9L3.js";import{D as Bt,G as Re,A as Ut}from"../chunks/Du50aAe5.js";import"../chunks/D7e9zx6w.js";import{E as Lt}from"../chunks/CYqkNFLz.js";var Mt=I('

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

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

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

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

'),Gt=I(''),zt=I(''),qt=I('
',1);function ir(Ne,Se){gt(Se,!1);const[Ve,Oe]=ht(),q=()=>kt(Pt,"$eagerCache",Ve),ve=u(),H=u(),Be=u(),te=u();let ue=u(!0),K=u([]),ce=u(""),pe=u(""),B=u(1),J=u(25),Q=u(1),be=u(!1),ge=u(!1),fe=u(!1),j=u("github"),m=u(null),P=u(null),r=u({name:"",description:"",endpoint_type:"",base_url:"",api_base_url:"",upload_base_url:"",ca_cert_bundle:""}),h={...e(r)};ft(async()=>{try{s(ue,!0);const t=await He.getEndpoints();t&&Array.isArray(t)&&s(K,t)}catch(t){console.error("Failed to load endpoints:",t),s(ce,t instanceof Error?t.message:"Failed to load endpoints")}finally{s(ue,!1)}});async function Ke(){try{await He.retryResource("endpoints")}catch(t){console.error("Retry failed:",t)}}const Je=[{key:"name",title:"Name",cellComponent:Re,cellProps:{field:"name"}},{key:"description",title:"Description",cellComponent:Re,cellProps:{field:"description"}},{key:"api_url",title:"API URL",cellComponent:Re,cellProps:{field:"api_base_url",fallbackField:"base_url"}},{key:"forge_type",title:"Forge Type",cellComponent:Lt},{key:"actions",title:"Actions",align:"right",cellComponent:Ut}],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(pe,t.detail.term),s(B,1)}function Xe(t){s(B,t.detail.page)}function Ye(t){const n=$t(t.detail.perPage);s(J,n.newPerPage),s(B,n.newCurrentPage)}function Ze(t){xe(t.detail.item)}function et(t){he(t.detail.item)}function tt(){s(j,"github"),ke(),g(r,e(r).endpoint_type="github"),s(be,!0)}function rt(t){s(j,t.detail),ke(),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:""}),h={...e(r)},s(ge,!0)}function he(t){s(P,t),s(fe,!0)}function ke(){s(r,{name:"",description:"",endpoint_type:"",base_url:"",api_base_url:"",upload_base_url:"",ca_cert_bundle:""}),h={...e(r)}}function at(t){t.key==="Escape"&&(e(be)||e(ge)||e(fe))&&y()}function y(){s(be,!1),s(ge,!1),s(fe,!1),s(j,"github"),s(m,null),s(P,null),ke()}function ot(){const t={};if(e(r).description!==h.description&&(e(r).description.trim()!==""||h.description!=="")&&(t.description=e(r).description.trim()),e(r).base_url!==h.base_url&&e(r).base_url.trim()!==""&&(t.base_url=e(r).base_url.trim()),e(r).api_base_url!==h.api_base_url&&(e(r).api_base_url.trim()!==""||h.api_base_url!=="")&&(t.api_base_url=e(r).api_base_url.trim()),e(m)?.endpoint_type==="github"&&e(r).upload_base_url!==h.upload_base_url&&(e(r).upload_base_url.trim()!==""||h.upload_base_url!=="")&&(t.upload_base_url=e(r).upload_base_url.trim()),e(r).ca_cert_bundle!==h.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{h.ca_cert_bundle!==""&&(t.ca_cert_bundle=[])}else h.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(ce,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(ce,Ae(t))}}async function nt(){if(e(P)){try{e(P).endpoint_type==="github"?await ee.deleteGithubEndpoint(e(P).name):await ee.deleteGiteaEndpoint(e(P).name),de.success("Endpoint Deleted",`Endpoint ${e(P).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=l=>{const f=l.target?.result;g(r,e(r).ca_cert_bundle=btoa(f))},v.readAsText(c)}V(()=>(e(K),q()),()=>{(!e(K).length||q().loaded.endpoints)&&s(K,q().endpoints)}),V(()=>q(),()=>{s(ue,q().loading.endpoints)}),V(()=>q(),()=>{s(ve,q().errorMessages.endpoints)}),V(()=>(e(K),e(pe)),()=>{s(H,At(e(K),e(pe)))}),V(()=>(e(Q),e(H),e(J),e(B)),()=>{s(Q,Math.ceil(e(H).length/e(J))),e(B)>e(Q)&&e(Q)>0&&s(B,e(Q))}),V(()=>(e(H),e(B),e(J)),()=>{s(Be,Rt(e(H),e(B),e(J)))}),V(()=>e(r),()=>{s(te,!(!e(r).name||!e(r).base_url||e(r).endpoint_type==="github"&&!e(r).api_base_url))}),_t(),bt();var Le=qt();b("keydown",vt,at),mt(t=>{xt.title="Endpoints - GARM"});var we=Ee(Le),Me=o(we);Ct(Me,{title:"Endpoints",description:"Manage your GitHub and Gitea endpoints for runner management.",actionLabel:"Add Endpoint",$$events:{action:tt}});var lt=a(Me,2);{let t=Pe(()=>e(ve)||e(ce)),n=Pe(()=>!!e(ve));Bt(lt,{get columns(){return Je},get data(){return e(Be)},get loading(){return e(ue)},get error(){return e(t)},get searchTerm(){return e(pe)},searchPlaceholder:"Search endpoints by name, description, or URL...",get currentPage(){return e(B)},get perPage(){return e(J)},get totalPages(){return e(Q)},get totalItems(){return e(H),z(()=>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 l=Pe(()=>v.item);var f=Mt(),x=o(f),$=o(x),C=o($),k=o(C,!0);i(C);var _=a(C,2),U=o(_,!0);i(_);var A=a(_,2),L=o(A);wt(L,()=>(se($e),se(e(l)),z(()=>$e(e(l).endpoint_type||"","w-5 h-5"))));var M=a(L,2),W=o(M,!0);i(M),i(A),i($),i(x);var N=a(x,2),G=o(N);qe(G,{action:"edit",size:"sm",title:"Edit endpoint",ariaLabel:"Edit endpoint",$$events:{click:()=>xe(e(l))}});var X=a(G,2);qe(X,{action:"delete",size:"sm",title:"Delete endpoint",ariaLabel:"Delete endpoint",$$events:{click:()=>he(e(l))}}),i(N),i(f),ye(()=>{ne(k,(se(e(l)),z(()=>e(l).name))),ne(U,(se(e(l)),z(()=>e(l).description))),ne(W,(se(e(l)),z(()=>e(l).endpoint_type)))}),F(c,f)}}})}i(we);var Te=a(we,2);{var dt=t=>{var n=Ft(),c=o(n),v=a(c,2),l=o(v),f=a(o(l),2);i(l);var x=a(l,2),$=o(x);Et($,{get selectedForgeType(){return e(j)},set selectedForgeType(p){s(j,p)},$$events:{select:rt},$$legacy:!0});var C=a($,2),k=a(o(C),2);R(k),i(C);var _=a(C,2),U=a(o(_),2);Ie(U),i(_);var A=a(_,2),L=a(o(A),2);R(L),i(A);var M=a(A,2);{var W=p=>{var T=Tt(),d=Ee(T),E=a(o(d),2);R(E),i(d);var D=a(d,2),S=a(o(D),2);R(S),i(D),w(E,()=>e(r).api_base_url,Z=>g(r,e(r).api_base_url=Z)),w(S,()=>e(r).upload_base_url,Z=>g(r,e(r).upload_base_url=Z)),F(p,T)},N=p=>{var T=Dt(),d=a(o(T),2);R(d),O(2),i(T),w(d,()=>e(r).api_base_url,E=>g(r,e(r).api_base_url=E)),F(p,T)};le(M,p=>{e(j)==="github"?p(W):p(N,!1)})}var G=a(M,2),X=a(o(G),2),Y=o(X),re=a(Y,2),ae=a(o(re),2),_e=o(ae);O(),i(ae),O(2),i(re),i(X),i(G);var oe=a(G,2),me=o(oe),ie=a(me,2);i(oe),i(x),i(v),i(n),ye(()=>{je(k,"placeholder",e(j)==="github"?"e.g., github-enterprise or github-com":"e.g., gitea-main or my-gitea"),je(L,"placeholder",e(j)==="github"?"https://github.com or https://github.example.com":"https://gitea.example.com"),ie.disabled=!e(te),Ge(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 +import"../chunks/DsnmJJEf.js";import{i as bt}from"../chunks/C7KraPli.js";import{p as gt,g as e,o as ft,l as V,h as _t,f as I,i as b,j as mt,a as Ee,b as F,c as yt,m as u,n as vt,$ as xt,d as o,v as Pe,s as a,t as ye,u as z,k as s,w as g,r as i,q as se,e as ne,x as Ie,z as O}from"../chunks/cPTQ2Ibn.js";import{i as le,s as ht,a as kt}from"../chunks/DqFqoVWr.js";import{h as wt,r as R,c as je,s as Ge,g as ee}from"../chunks/yWyZZHPR.js";import{b as w}from"../chunks/B-_QCM7E.js";import{p as ze}from"../chunks/D4Caz1gY.js";import{P as Ct}from"../chunks/BtskFTeb.js";import{F as Et}from"../chunks/DDJerweA.js";import{A as qe}from"../chunks/B_RLftTg.js";import{e as Pt,a as He}from"../chunks/C01HillC.js";import{t as de}from"../chunks/Bgbd8SZ5.js";import{g as $e,c as $t,a as At,p as Rt}from"../chunks/Cr2hBuns.js";import{e as Ae}from"../chunks/BZiHL9L3.js";import{D as Bt,G as Re,A as Ut}from"../chunks/BIepGqC5.js";import"../chunks/BMOcKgHw.js";import{E as Lt}from"../chunks/C6PRls9Y.js";var Mt=I('

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

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

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

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

'),Gt=I(''),zt=I(''),qt=I('
',1);function ir(Ne,Se){gt(Se,!1);const[Ve,Oe]=ht(),q=()=>kt(Pt,"$eagerCache",Ve),ve=u(),H=u(),Be=u(),te=u();let ue=u(!0),K=u([]),ce=u(""),pe=u(""),B=u(1),J=u(25),Q=u(1),be=u(!1),ge=u(!1),fe=u(!1),j=u("github"),m=u(null),P=u(null),r=u({name:"",description:"",endpoint_type:"",base_url:"",api_base_url:"",upload_base_url:"",ca_cert_bundle:""}),h={...e(r)};ft(async()=>{try{s(ue,!0);const t=await He.getEndpoints();t&&Array.isArray(t)&&s(K,t)}catch(t){console.error("Failed to load endpoints:",t),s(ce,t instanceof Error?t.message:"Failed to load endpoints")}finally{s(ue,!1)}});async function Ke(){try{await He.retryResource("endpoints")}catch(t){console.error("Retry failed:",t)}}const Je=[{key:"name",title:"Name",cellComponent:Re,cellProps:{field:"name"}},{key:"description",title:"Description",cellComponent:Re,cellProps:{field:"description"}},{key:"api_url",title:"API URL",cellComponent:Re,cellProps:{field:"api_base_url",fallbackField:"base_url"}},{key:"forge_type",title:"Forge Type",cellComponent:Lt},{key:"actions",title:"Actions",align:"right",cellComponent:Ut}],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(pe,t.detail.term),s(B,1)}function Xe(t){s(B,t.detail.page)}function Ye(t){const n=$t(t.detail.perPage);s(J,n.newPerPage),s(B,n.newCurrentPage)}function Ze(t){xe(t.detail.item)}function et(t){he(t.detail.item)}function tt(){s(j,"github"),ke(),g(r,e(r).endpoint_type="github"),s(be,!0)}function rt(t){s(j,t.detail),ke(),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:""}),h={...e(r)},s(ge,!0)}function he(t){s(P,t),s(fe,!0)}function ke(){s(r,{name:"",description:"",endpoint_type:"",base_url:"",api_base_url:"",upload_base_url:"",ca_cert_bundle:""}),h={...e(r)}}function at(t){t.key==="Escape"&&(e(be)||e(ge)||e(fe))&&y()}function y(){s(be,!1),s(ge,!1),s(fe,!1),s(j,"github"),s(m,null),s(P,null),ke()}function ot(){const t={};if(e(r).description!==h.description&&(e(r).description.trim()!==""||h.description!=="")&&(t.description=e(r).description.trim()),e(r).base_url!==h.base_url&&e(r).base_url.trim()!==""&&(t.base_url=e(r).base_url.trim()),e(r).api_base_url!==h.api_base_url&&(e(r).api_base_url.trim()!==""||h.api_base_url!=="")&&(t.api_base_url=e(r).api_base_url.trim()),e(m)?.endpoint_type==="github"&&e(r).upload_base_url!==h.upload_base_url&&(e(r).upload_base_url.trim()!==""||h.upload_base_url!=="")&&(t.upload_base_url=e(r).upload_base_url.trim()),e(r).ca_cert_bundle!==h.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{h.ca_cert_bundle!==""&&(t.ca_cert_bundle=[])}else h.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(ce,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(ce,Ae(t))}}async function nt(){if(e(P)){try{e(P).endpoint_type==="github"?await ee.deleteGithubEndpoint(e(P).name):await ee.deleteGiteaEndpoint(e(P).name),de.success("Endpoint Deleted",`Endpoint ${e(P).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=l=>{const f=l.target?.result;g(r,e(r).ca_cert_bundle=btoa(f))},v.readAsText(c)}V(()=>(e(K),q()),()=>{(!e(K).length||q().loaded.endpoints)&&s(K,q().endpoints)}),V(()=>q(),()=>{s(ue,q().loading.endpoints)}),V(()=>q(),()=>{s(ve,q().errorMessages.endpoints)}),V(()=>(e(K),e(pe)),()=>{s(H,At(e(K),e(pe)))}),V(()=>(e(Q),e(H),e(J),e(B)),()=>{s(Q,Math.ceil(e(H).length/e(J))),e(B)>e(Q)&&e(Q)>0&&s(B,e(Q))}),V(()=>(e(H),e(B),e(J)),()=>{s(Be,Rt(e(H),e(B),e(J)))}),V(()=>e(r),()=>{s(te,!(!e(r).name||!e(r).base_url||e(r).endpoint_type==="github"&&!e(r).api_base_url))}),_t(),bt();var Le=qt();b("keydown",vt,at),mt(t=>{xt.title="Endpoints - GARM"});var we=Ee(Le),Me=o(we);Ct(Me,{title:"Endpoints",description:"Manage your GitHub and Gitea endpoints for runner management.",actionLabel:"Add Endpoint",$$events:{action:tt}});var lt=a(Me,2);{let t=Pe(()=>e(ve)||e(ce)),n=Pe(()=>!!e(ve));Bt(lt,{get columns(){return Je},get data(){return e(Be)},get loading(){return e(ue)},get error(){return e(t)},get searchTerm(){return e(pe)},searchPlaceholder:"Search endpoints by name, description, or URL...",get currentPage(){return e(B)},get perPage(){return e(J)},get totalPages(){return e(Q)},get totalItems(){return e(H),z(()=>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 l=Pe(()=>v.item);var f=Mt(),x=o(f),$=o(x),C=o($),k=o(C,!0);i(C);var _=a(C,2),U=o(_,!0);i(_);var A=a(_,2),L=o(A);wt(L,()=>(se($e),se(e(l)),z(()=>$e(e(l).endpoint_type||"","w-5 h-5"))));var M=a(L,2),W=o(M,!0);i(M),i(A),i($),i(x);var N=a(x,2),G=o(N);qe(G,{action:"edit",size:"sm",title:"Edit endpoint",ariaLabel:"Edit endpoint",$$events:{click:()=>xe(e(l))}});var X=a(G,2);qe(X,{action:"delete",size:"sm",title:"Delete endpoint",ariaLabel:"Delete endpoint",$$events:{click:()=>he(e(l))}}),i(N),i(f),ye(()=>{ne(k,(se(e(l)),z(()=>e(l).name))),ne(U,(se(e(l)),z(()=>e(l).description))),ne(W,(se(e(l)),z(()=>e(l).endpoint_type)))}),F(c,f)}}})}i(we);var Te=a(we,2);{var dt=t=>{var n=Ft(),c=o(n),v=a(c,2),l=o(v),f=a(o(l),2);i(l);var x=a(l,2),$=o(x);Et($,{get selectedForgeType(){return e(j)},set selectedForgeType(p){s(j,p)},$$events:{select:rt},$$legacy:!0});var C=a($,2),k=a(o(C),2);R(k),i(C);var _=a(C,2),U=a(o(_),2);Ie(U),i(_);var A=a(_,2),L=a(o(A),2);R(L),i(A);var M=a(A,2);{var W=p=>{var T=Tt(),d=Ee(T),E=a(o(d),2);R(E),i(d);var D=a(d,2),S=a(o(D),2);R(S),i(D),w(E,()=>e(r).api_base_url,Z=>g(r,e(r).api_base_url=Z)),w(S,()=>e(r).upload_base_url,Z=>g(r,e(r).upload_base_url=Z)),F(p,T)},N=p=>{var T=Dt(),d=a(o(T),2);R(d),O(2),i(T),w(d,()=>e(r).api_base_url,E=>g(r,e(r).api_base_url=E)),F(p,T)};le(M,p=>{e(j)==="github"?p(W):p(N,!1)})}var G=a(M,2),X=a(o(G),2),Y=o(X),re=a(Y,2),ae=a(o(re),2),_e=o(ae);O(),i(ae),O(2),i(re),i(X),i(G);var oe=a(G,2),me=o(oe),ie=a(me,2);i(oe),i(x),i(v),i(n),ye(()=>{je(k,"placeholder",e(j)==="github"?"e.g., github-enterprise or github-com":"e.g., gitea-main or my-gitea"),je(L,"placeholder",e(j)==="github"?"https://github.com or https://github.example.com":"https://gitea.example.com"),ie.disabled=!e(te),Ge(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(te)?"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),w(k,()=>e(r).name,p=>g(r,e(r).name=p)),w(U,()=>e(r).description,p=>g(r,e(r).description=p)),w(L,()=>e(r).base_url,p=>g(r,e(r).base_url=p)),b("change",Y,Ue),b("click",_e,()=>document.getElementById("ca_cert_file")?.click()),b("click",me,y),b("submit",x,ze(it)),F(t,n)};le(Te,t=>{e(be)&&t(dt)})}var De=a(Te,2);{var ut=t=>{var n=Gt(),c=o(n),v=a(c,2),l=o(v),f=o(l),x=o(f),$=o(x);i(x),O(2),i(f);var C=a(f,2);i(l);var k=a(l,2),_=o(k),U=a(o(_),2);R(U),i(_);var A=a(_,2),L=a(o(A),2);Ie(L),i(A);var M=a(A,2),W=a(o(M),2);R(W),i(M);var N=a(M,2);{var G=d=>{var E=It(),D=Ee(E),S=a(o(D),2);R(S),i(D);var Z=a(D,2),Fe=a(o(Z),2);R(Fe),i(Z),w(S,()=>e(r).api_base_url,Ce=>g(r,e(r).api_base_url=Ce)),w(Fe,()=>e(r).upload_base_url,Ce=>g(r,e(r).upload_base_url=Ce)),F(d,E)},X=d=>{var E=jt(),D=a(o(E),2);R(D),O(2),i(E),w(D,()=>e(r).api_base_url,S=>g(r,e(r).api_base_url=S)),F(d,E)};le(N,d=>{e(m),z(()=>e(m).endpoint_type==="github")?d(G):d(X,!1)})}var Y=a(N,2),re=a(o(Y),2),ae=o(re),_e=a(ae,2),oe=a(o(_e),2),me=o(oe);O(),i(oe),O(2),i(_e),i(re),i(Y);var ie=a(Y,2),p=o(ie),T=a(p,2);i(ie),i(k),i(v),i(n),ye(()=>{ne($,`Edit ${e(m),z(()=>e(m).endpoint_type==="github"?"GitHub":"Gitea")??""} Endpoint`),T.disabled=!e(te),Ge(T,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(te)?"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",C,y),w(U,()=>e(r).name,d=>g(r,e(r).name=d)),w(L,()=>e(r).description,d=>g(r,e(r).description=d)),w(W,()=>e(r).base_url,d=>g(r,e(r).base_url=d)),b("change",ae,Ue),b("click",me,()=>document.getElementById("edit_ca_cert_file")?.click()),b("click",p,y),b("submit",k,ze(st)),F(t,n)};le(De,t=>{e(ge)&&e(m)&&t(ut)})}var ct=a(De,2);{var pt=t=>{var n=zt(),c=o(n),v=a(c,2),l=o(v),f=o(l),x=a(o(f),2),$=a(o(x),2),C=o($);i($),i(x),i(f),i(l);var k=a(l,2),_=o(k),U=a(_,2);i(k),i(v),i(n),ye(()=>ne(C,`Are you sure you want to delete the endpoint "${e(P),z(()=>e(P).name)??""}"? This action cannot be undone.`)),b("click",c,y),b("click",_,y),b("click",U,nt),F(t,n)};le(ct,t=>{e(fe)&&e(P)&&t(pt)})}F(Ne,Le),yt(),Oe()}export{ir as component}; diff --git a/webapp/assets/_app/immutable/nodes/5.BZ5sZ9vU.js b/webapp/assets/_app/immutable/nodes/5.DSvy7UtH.js similarity index 94% rename from webapp/assets/_app/immutable/nodes/5.BZ5sZ9vU.js rename to webapp/assets/_app/immutable/nodes/5.DSvy7UtH.js index 4c150b69..4c89bdba 100644 --- a/webapp/assets/_app/immutable/nodes/5.BZ5sZ9vU.js +++ b/webapp/assets/_app/immutable/nodes/5.DSvy7UtH.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as Ge}from"../chunks/C7KraPli.js";import{p as Se,E as Je,o as Be,l as w,k as r,m as n,g as e,h as He,f as M,s as o,d as i,r as l,b as $,t as N,e as K,y as $e,u as b,z as Ve,w as Z,i as Ce,c as Re,B as We,a as Ue,j as Ye,$ as Ke,q as A,v as ee}from"../chunks/cPTQ2Ibn.js";import{a as Le,i as B,s as Ne}from"../chunks/DqFqoVWr.js";import{r as Pe,b as Me,d as De,c as Oe,g as be}from"../chunks/DqbUkQgD.js";import{P as Qe}from"../chunks/U3V4g_hv.js";import{e as Xe,i as Ze}from"../chunks/CiWDXYQd.js";import{b as Te}from"../chunks/B-_QCM7E.js";import{p as et}from"../chunks/D4Caz1gY.js";import{M as tt}from"../chunks/Bo3f8OIz.js";import{e as re}from"../chunks/BZiHL9L3.js";import{e as qe,a as he}from"../chunks/JUkrBp3F.js";import{U as rt}from"../chunks/B1V2wE0x.js";import{D as at}from"../chunks/91PQ6UtW.js";import{t as te}from"../chunks/Bgbd8SZ5.js";import{B as st,k as ye,l as ot}from"../chunks/DJsB5Z5V.js";import{D as nt,G as it,A as lt}from"../chunks/Du50aAe5.js";import{A as Ae}from"../chunks/C2rI8IaC.js";import{E as dt}from"../chunks/CPFytHjx.js";import{E as ct}from"../chunks/CYqkNFLz.js";import{S as ut}from"../chunks/BZ2WxPPD.js";var pt=M('

'),mt=M('

Loading...

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

Loading credentials...

'),vt=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.

`),yt=M('

Create Enterprise

Enterprises are only available for GitHub endpoints.

');function ht(ae,se){Se(se,!1);const[oe,ne]=Ne(),u=()=>Le(qe,"$eagerCache",oe),G=n(),h=n(),p=n(),H=n(),E=Je();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(),tt(ae,{$$events:{close:()=>E("close")},children:(m,q)=>{var D=yt(),d=o(i(D),4);{var ie=f=>{var g=pt(),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=mt();$(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);Xe(ue,1,()=>e(p),Ze,(s,c)=>{var P=ft(),v=i(P);l(P);var k={};N(()=>{K(v,`${e(c),b(()=>e(c).name)??""} (${e(c),b(()=>e(c).endpoint?.name||"Unknown endpoint")??""})`),k!==(k=(e(c),b(()=>e(c).name)))&&(P.value=(P.__value=(e(c),b(()=>e(c).name)))??"")}),$(s,P)}),l(U);var pe=o(U,2);{var me=s=>{var c=gt();$(s,c)},O=s=>{var c=We(),P=Ue(c);{var v=k=>{var Y=vt();$(k,Y)};B(P,k=>{e(p),b(()=>e(p).length===0)&&k(v)},!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),Ve(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),b(()=>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,et(C)),$(f,g)};B(le,f=>{e(x)?f(de):f(ce,!1)})}l(D),$(m,D)},$$slots:{default:!0}}),Re(),ne()}var _t=M(''),xt=M('
',1);function Ft(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 be.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 be.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 be.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:dt,cellProps:{entityType:"enterprise"}},{key:"endpoint",title:"Endpoint",cellComponent:ct},{key:"credentials",title:"Credentials",cellComponent:it,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:ut,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:lt}],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,ot(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=xt();Ye(t=>{Ke.title="Enterprises - GARM"});var S=Ue(O),L=i(S);Qe(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));nt(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),b(()=>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 v=ee(()=>P.item),k=ee(()=>(A(ye),A(e(v)),b(()=>ye(e(v)))));var Y=_t(),fe=i(Y),ge=i(fe),ve=i(ge),ze=i(ve,!0);l(ve);var _e=o(ve,2),je=i(_e,!0);l(_e),l(ge),l(fe);var xe=o(fe,2),ke=i(xe);st(ke,{get variant(){return A(e(k)),b(()=>e(k).variant)},get text(){return A(e(k)),b(()=>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(v))}});var Fe=o(Ee,2);Ae(Fe,{action:"delete",size:"sm",title:"Delete enterprise",ariaLabel:"Delete enterprise",$$events:{click:()=>g(e(v))}}),l(we),l(xe),l(Y),N(Ie=>{Oe(ge,"href",Ie),K(ze,(A(e(v)),b(()=>e(v).name))),K(je,(A(e(v)),b(()=>e(v).credentials_name)))},[()=>(A(De),A(e(v)),b(()=>De(`/enterprises/${e(v).id}`)))]),$(c,Y)}}})}l(S);var I=o(S,2);{var J=t=>{ht(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=>{rt(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=>{at(t,{title:"Delete Enterprise",message:"Are you sure you want to delete this enterprise? This action cannot be undone.",get itemName(){return e(d),b(()=>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{Ft as component}; +import"../chunks/DsnmJJEf.js";import{i as Ge}from"../chunks/C7KraPli.js";import{p as Se,E as Je,o as Be,l as w,k as r,m as n,g as e,h as He,f as M,s as o,d as i,r as l,b as $,t as N,e as K,y as $e,u as b,z as Ve,w as Z,i as Ce,c as Re,B as We,a as Ue,j as Ye,$ as Ke,q as A,v as ee}from"../chunks/cPTQ2Ibn.js";import{a as Le,i as B,s as Ne}from"../chunks/DqFqoVWr.js";import{r as Pe,b as Me,d as De,c as Oe,g as be}from"../chunks/yWyZZHPR.js";import{P as Qe}from"../chunks/BtskFTeb.js";import{e as Xe,i as Ze}from"../chunks/CiWDXYQd.js";import{b as Te}from"../chunks/B-_QCM7E.js";import{p as et}from"../chunks/D4Caz1gY.js";import{M as tt}from"../chunks/ao5EljEX.js";import{e as re}from"../chunks/BZiHL9L3.js";import{e as qe,a as he}from"../chunks/C01HillC.js";import{U as rt}from"../chunks/MwmEfQpp.js";import{D as at}from"../chunks/Cpm0auuQ.js";import{t as te}from"../chunks/Bgbd8SZ5.js";import{B as st,k as ye,l as ot}from"../chunks/Cr2hBuns.js";import{D as nt,G as it,A as lt}from"../chunks/BIepGqC5.js";import{A as Ae}from"../chunks/B_RLftTg.js";import{E as dt}from"../chunks/CVL5tSYq.js";import{E as ct}from"../chunks/C6PRls9Y.js";import{S as ut}from"../chunks/CMG1iQmM.js";var pt=M('

'),mt=M('

Loading...

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

Loading credentials...

'),vt=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.

`),yt=M('

Create Enterprise

Enterprises are only available for GitHub endpoints.

');function ht(ae,se){Se(se,!1);const[oe,ne]=Ne(),u=()=>Le(qe,"$eagerCache",oe),G=n(),h=n(),p=n(),H=n(),E=Je();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(),tt(ae,{$$events:{close:()=>E("close")},children:(m,q)=>{var D=yt(),d=o(i(D),4);{var ie=f=>{var g=pt(),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=mt();$(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);Xe(ue,1,()=>e(p),Ze,(s,c)=>{var P=ft(),v=i(P);l(P);var k={};N(()=>{K(v,`${e(c),b(()=>e(c).name)??""} (${e(c),b(()=>e(c).endpoint?.name||"Unknown endpoint")??""})`),k!==(k=(e(c),b(()=>e(c).name)))&&(P.value=(P.__value=(e(c),b(()=>e(c).name)))??"")}),$(s,P)}),l(U);var pe=o(U,2);{var me=s=>{var c=gt();$(s,c)},O=s=>{var c=We(),P=Ue(c);{var v=k=>{var Y=vt();$(k,Y)};B(P,k=>{e(p),b(()=>e(p).length===0)&&k(v)},!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),Ve(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),b(()=>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,et(C)),$(f,g)};B(le,f=>{e(x)?f(de):f(ce,!1)})}l(D),$(m,D)},$$slots:{default:!0}}),Re(),ne()}var _t=M(''),xt=M('
',1);function Ft(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 be.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 be.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 be.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:dt,cellProps:{entityType:"enterprise"}},{key:"endpoint",title:"Endpoint",cellComponent:ct},{key:"credentials",title:"Credentials",cellComponent:it,cellProps:{field:"credentials_name"}},{key:"status",title:"Status",cellComponent:ut,cellProps:{statusType:"entity"}},{key:"actions",title:"Actions",align:"right",cellComponent:lt}],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,ot(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=xt();Ye(t=>{Ke.title="Enterprises - GARM"});var S=Ue(O),L=i(S);Qe(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));nt(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),b(()=>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 v=ee(()=>P.item),k=ee(()=>(A(ye),A(e(v)),b(()=>ye(e(v)))));var Y=_t(),fe=i(Y),ge=i(fe),ve=i(ge),ze=i(ve,!0);l(ve);var _e=o(ve,2),je=i(_e,!0);l(_e),l(ge),l(fe);var xe=o(fe,2),ke=i(xe);st(ke,{get variant(){return A(e(k)),b(()=>e(k).variant)},get text(){return A(e(k)),b(()=>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(v))}});var Fe=o(Ee,2);Ae(Fe,{action:"delete",size:"sm",title:"Delete enterprise",ariaLabel:"Delete enterprise",$$events:{click:()=>g(e(v))}}),l(we),l(xe),l(Y),N(Ie=>{Oe(ge,"href",Ie),K(ze,(A(e(v)),b(()=>e(v).name))),K(je,(A(e(v)),b(()=>e(v).credentials_name)))},[()=>(A(De),A(e(v)),b(()=>De(`/enterprises/${e(v).id}`)))]),$(c,Y)}}})}l(S);var I=o(S,2);{var J=t=>{ht(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=>{rt(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=>{at(t,{title:"Delete Enterprise",message:"Are you sure you want to delete this enterprise? This action cannot be undone.",get itemName(){return e(d),b(()=>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{Ft as component}; diff --git a/webapp/assets/_app/immutable/nodes/6.CAXPtVkl.js b/webapp/assets/_app/immutable/nodes/6.BLiOuR3x.js similarity index 94% rename from webapp/assets/_app/immutable/nodes/6.CAXPtVkl.js rename to webapp/assets/_app/immutable/nodes/6.BLiOuR3x.js index 6d4331ea..d1309af3 100644 --- a/webapp/assets/_app/immutable/nodes/6.CAXPtVkl.js +++ b/webapp/assets/_app/immutable/nodes/6.BLiOuR3x.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as qe}from"../chunks/C7KraPli.js";import{p as ze,o as Ge,A as je,l as Re,h as Ve,f as S,j as We,a as F,t as j,b as E,c as Je,u as i,q as le,e as de,g as e,m as l,d as u,s as d,k as s,$ as Ke,r as f,w as Oe,B as ce,v}from"../chunks/cPTQ2Ibn.js";import{i as g,s as Qe,a as Xe}from"../chunks/DqFqoVWr.js";import{d as B,c as Ye,g as y}from"../chunks/DqbUkQgD.js";import{p as Ze}from"../chunks/DVsSf1wv.js";import{g as pe}from"../chunks/CTvJf3dP.js";import{U as et}from"../chunks/B1V2wE0x.js";import{D as ue}from"../chunks/91PQ6UtW.js";import{E as tt,P as rt,a as at}from"../chunks/WI-og7-I.js";import{D as st}from"../chunks/oOdVuDuv.js";import{I as nt}from"../chunks/DliFOxtc.js";import{g as fe}from"../chunks/DJsB5Z5V.js";import{w as R}from"../chunks/BV_mDmfH.js";import{t as x}from"../chunks/Bgbd8SZ5.js";import{C as ot}from"../chunks/DPR9Z_fe.js";import{e as V}from"../chunks/BZiHL9L3.js";var it=S('

Loading enterprise...

'),lt=S('

'),dt=S(" ",1),ct=S(' ',1);function Tt(me,ve){ze(ve,!1);const[ge,ye]=Qe(),W=()=>Xe(Ze,"$page",ge),$=l();let r=l(null),c=l([]),m=l([]),U=l(!0),P=l(""),T=l(!1),M=l(!1),I=l(!1),C=l(!1),p=l(null),k=null,h=l();async function J(){if(e($))try{s(U,!0),s(P,"");const[t,a,n]=await Promise.all([y.getEnterprise(e($)),y.listEnterprisePools(e($)).catch(()=>[]),y.listEnterpriseInstances(e($)).catch(()=>[])]);s(r,t),s(c,a),s(m,n)}catch(t){s(P,t instanceof Error?t.message:"Failed to load enterprise")}finally{s(U,!1)}}function he(t,a){const{events:n}=t;return{...a,events:n}}async function _e(t){if(e(r))try{await y.updateEnterprise(e(r).id,t),await J(),x.success("Enterprise Updated",`Enterprise ${e(r).name} has been updated successfully.`),s(T,!1)}catch(a){throw a}}async function be(){if(e(r)){try{await y.deleteEnterprise(e(r).id),pe(B("/enterprises"))}catch(t){const a=V(t);x.error("Delete Failed",a)}s(M,!1)}}async function Ee(){if(e(p))try{await y.deleteInstance(e(p).name),x.success("Instance Deleted",`Instance ${e(p).name} has been deleted successfully.`),s(I,!1),s(p,null)}catch(t){const a=V(t);x.error("Delete Failed",a),s(I,!1),s(p,null)}}function xe(t){s(p,t),s(I,!0)}function $e(){s(C,!0)}async function Ie(t){try{if(!e(r))return;await y.createEnterprisePool(e(r).id,t.detail),x.success("Pool Created",`Pool has been created successfully for enterprise ${e(r).name}.`),s(C,!1)}catch(a){const n=V(a);x.error("Pool Creation Failed",n)}}function K(){e(h)&&Oe(h,e(h).scrollTop=e(h).scrollHeight)}function we(t){if(t.operation==="update"){const a=t.payload;if(e(r)&&a.id===e(r).id){const n=e(r).events?.length||0,o=a.events?.length||0;s(r,he(e(r),a)),o>n&&setTimeout(()=>{K()},100)}}else if(t.operation==="delete"){const a=t.payload.id||t.payload;e(r)&&e(r).id===a&&pe(B("/enterprises"))}}function De(t){if(!e(r))return;const a=t.payload;if(a.enterprise_id===e(r).id){if(t.operation==="create")s(c,[...e(c),a]);else if(t.operation==="update")s(c,e(c).map(n=>n.id===a.id?a:n));else if(t.operation==="delete"){const n=a.id||a;s(c,e(c).filter(o=>o.id!==n))}}}function Pe(t){if(!e(r)||!e(c))return;const a=t.payload;if(e(c).some(o=>o.id===a.pool_id)){if(t.operation==="create")s(m,[...e(m),a]);else if(t.operation==="update")s(m,e(m).map(o=>o.id===a.id?a:o));else if(t.operation==="delete"){const o=a.id||a;s(m,e(m).filter(q=>q.id!==o))}}}Ge(()=>{J().then(()=>{e(r)?.events?.length&&setTimeout(()=>{K()},100)});const t=R.subscribeToEntity("enterprise",["update","delete"],we),a=R.subscribeToEntity("pool",["create","update","delete"],De),n=R.subscribeToEntity("instance",["create","update","delete"],Pe);k=()=>{t(),a(),n()}}),je(()=>{k&&(k(),k=null)}),Re(()=>W(),()=>{s($,W().params.id)}),Ve(),qe();var O=ct();We(t=>{j(()=>Ke.title=`${e(r),i(()=>e(r)?`${e(r).name} - Enterprise Details`:"Enterprise Details")??""} - GARM`)});var L=F(O),H=u(L),Q=u(H),N=u(Q),Te=u(N);f(N);var X=d(N,2),Y=u(X),Z=d(u(Y),2),Me=u(Z,!0);f(Z),f(Y),f(X),f(Q),f(H);var Ce=d(H,2);{var ke=t=>{var a=it();E(t,a)},Ae=t=>{var a=ce(),n=F(a);{var o=_=>{var b=lt(),A=u(b),z=u(A,!0);f(A),f(b),j(()=>de(z,e(P))),E(_,b)},q=_=>{var b=ce(),A=F(b);{var z=G=>{var ae=dt(),se=F(ae);{let w=v(()=>(e(r),i(()=>e(r).name||"Enterprise"))),D=v(()=>(e(r),i(()=>e(r).endpoint?.name))),Ne=v(()=>(le(fe),i(()=>fe("github"))));st(se,{get title(){return e(w)},get subtitle(){return`Endpoint: ${e(D)??""} • GitHub Enterprise`},get forgeIcon(){return e(Ne)},onEdit:()=>s(T,!0),onDelete:()=>s(M,!0)})}var ne=d(se,2);tt(ne,{get entity(){return e(r)},entityType:"enterprise"});var oe=d(ne,2);{let w=v(()=>(e(r),i(()=>e(r).id||""))),D=v(()=>(e(r),i(()=>e(r).name||"")));rt(oe,{get pools(){return e(c)},entityType:"enterprise",get entityId(){return e(w)},get entityName(){return e(D)},$$events:{addPool:$e}})}var ie=d(oe,2);nt(ie,{get instances(){return e(m)},entityType:"enterprise",onDeleteInstance:xe});var He=d(ie,2);{let w=v(()=>(e(r),i(()=>e(r)?.events)));at(He,{get events(){return e(w)},get eventsContainer(){return e(h)},set eventsContainer(D){s(h,D)},$$legacy:!0})}E(G,ae)};g(A,G=>{e(r)&&G(z)},!0)}E(_,b)};g(n,_=>{e(P)?_(o):_(q,!1)},!0)}E(t,a)};g(Ce,t=>{e(U)?t(ke):t(Ae,!1)})}f(L);var ee=d(L,2);{var Fe=t=>{et(t,{get entity(){return e(r)},entityType:"enterprise",$$events:{close:()=>s(T,!1),submit:a=>_e(a.detail)}})};g(ee,t=>{e(T)&&e(r)&&t(Fe)})}var te=d(ee,2);{var Be=t=>{ue(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(r),i(()=>e(r).name)},$$events:{close:()=>s(M,!1),confirm:be}})};g(te,t=>{e(M)&&e(r)&&t(Be)})}var re=d(te,2);{var Se=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(p),i(()=>e(p).name)},$$events:{close:()=>{s(I,!1),s(p,null)},confirm:Ee}})};g(re,t=>{e(I)&&e(p)&&t(Se)})}var Ue=d(re,2);{var Le=t=>{{let a=v(()=>(e(r),i(()=>e(r).id||"")));ot(t,{initialEntityType:"enterprise",get initialEntityId(){return e(a)},$$events:{close:()=>s(C,!1),submit:Ie}})}};g(Ue,t=>{e(C)&&e(r)&&t(Le)})}j(t=>{Ye(Te,"href",t),de(Me,(e(r),i(()=>e(r)?e(r).name:"Loading...")))},[()=>(le(B),i(()=>B("/enterprises")))]),E(me,O),Je(),ye()}export{Tt as component}; +import"../chunks/DsnmJJEf.js";import{i as qe}from"../chunks/C7KraPli.js";import{p as ze,o as Ge,A as je,l as Re,h as Ve,f as S,j as We,a as F,t as j,b as E,c as Je,u as i,q as le,e as de,g as e,m as l,d as u,s as d,k as s,$ as Ke,r as f,w as Oe,B as ce,v}from"../chunks/cPTQ2Ibn.js";import{i as g,s as Qe,a as Xe}from"../chunks/DqFqoVWr.js";import{d as B,c as Ye,g as y}from"../chunks/yWyZZHPR.js";import{p as Ze}from"../chunks/Crr6XDlZ.js";import{g as pe}from"../chunks/Br47IbuU.js";import{U as et}from"../chunks/MwmEfQpp.js";import{D as ue}from"../chunks/Cpm0auuQ.js";import{E as tt,P as rt,a as at}from"../chunks/CSF6MBq7.js";import{D as st}from"../chunks/CDgX_mkE.js";import{I as nt}from"../chunks/VkS8dDRx.js";import{g as fe}from"../chunks/Cr2hBuns.js";import{w as R}from"../chunks/BV_mDmfH.js";import{t as x}from"../chunks/Bgbd8SZ5.js";import{C as ot}from"../chunks/BIkO7LkR.js";import{e as V}from"../chunks/BZiHL9L3.js";var it=S('

Loading enterprise...

'),lt=S('

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

Username is required

'),xr=m('

Please enter a valid email address

'),hr=m('

Full name is required

'),yr=m('

Password must be at least 8 characters long

'),kr=m('

Passwords do not match

'),_r=sr(' Advanced Configuration (Optional)',1),wr=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
  • "),Ur=m("
  • Enter a valid email address
  • "),zr=m("
  • Enter your full name
  • "),Mr=m("
  • Enter a password with at least 8 characters
  • "),Rr=m("
  • Confirm your password
  • "),Ar=m('

    Please complete all required fields

    '),Pr=m('

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

    Username is required

    '),xr=m('

    Please enter a valid email address

    '),hr=m('

    Full name is required

    '),yr=m('

    Password must be at least 8 characters long

    '),kr=m('

    Passwords do not match

    '),_r=sr(' Advanced Configuration (Optional)',1),wr=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
  • "),Ur=m("
  • Enter a valid email address
  • "),zr=m("
  • Enter your full name
  • "),Mr=m("
  • Enter a password with at least 8 characters
  • "),Rr=m("
  • Confirm your password
  • "),Ar=m('

    Please complete all required fields

    '),Pr=m('

    '),qr=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(Re,Ae){Ze(Ae,!1);const[Pe,qe]=vr(),C=()=>mr(ur,"$authStore",Pe),_=i(),w=i(),$=i(),U=i(),z=i(),S=i();let f=i("admin"),b=i("admin@garm.local"),c=i(""),x=i(""),h=i("Administrator"),j=i(!1),H=i(""),T=i(!1),I=i(""),E=i(""),V=i("");async function Ce(){if(e(S))try{s(j,!0),s(H,""),await pr.initialize(e(f).trim(),e(b).trim(),e(c),e(h).trim(),{callbackUrl:e(I).trim()||void 0,metadataUrl:e(E).trim()||void 0,webhookUrl:e(V).trim()||void 0}),br.success("GARM Initialized","GARM has been successfully initialized. Welcome!"),W(y("/"))}catch(r){s(H,gr(r))}finally{s(j,!1)}}er(()=>{if(C().isAuthenticated){W(y("/"));return}!C().needsInitialization&&!C().loading&&W(y("/login"))}),A(()=>(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`)}}),A(()=>e(b),()=>{s(_,e(b).trim()!==""&&e(b).includes("@"))}),A(()=>e(c),()=>{s(w,e(c).length>=8)}),A(()=>(e(x),e(c)),()=>{s($,e(x).length>0&&e(c)===e(x))}),A(()=>e(f),()=>{s(U,e(f).trim()!=="")}),A(()=>e(h),()=>{s(z,e(h).trim()!=="")}),A(()=>(e(U),e(_),e(z),e(w),e($)),()=>{s(S,e(U)&&e(_)&&e(z)&&e(w)&&e($))}),A(()=>(C(),y),()=>{C().isAuthenticated?W(y("/")):!C().needsInitialization&&!C().loading&&W(y("/login"))}),rr(),Ye();var ae=qr();ar(r=>{lr.title="Initialize GARM - First Run Setup"});var te=a(ae),me=a(te),ce=a(me),Ge=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);P(O);var Le=d(O,2);{var Ie=r=>{var l=fr();n(r,l)};p(Le,r=>{e(U),e(f),u(()=>!e(U)&&e(f).length>0)&&r(Ie)})}t(be),t(le);var se=d(le,2),ge=d(a(se),2),J=a(ge);P(J);var Ee=d(J,2);{var Ve=r=>{var l=xr();n(r,l)};p(Ee,r=>{e(_),e(b),u(()=>!e(_)&&e(b).length>0)&&r(Ve)})}t(ge),t(se);var oe=d(se,2),fe=d(a(oe),2),K=a(fe);P(K);var Be=d(K,2);{var Ne=r=>{var l=hr();n(r,l)};p(Be,r=>{e(z),e(h),u(()=>!e(z)&&e(h).length>0)&&r(Ne)})}t(fe),t(oe);var ie=d(oe,2),xe=d(a(ie),2),Q=a(xe);P(Q);var Se=d(Q,2);{var je=r=>{var l=yr();n(r,l)};p(Se,r=>{e(w),e(c),u(()=>!e(w)&&e(c).length>0)&&r(je)})}t(xe),t(ie);var ne=d(ie,2),he=d(a(ne),2),X=a(he);P(X);var Fe=d(X,2);{var De=r=>{var l=kr();n(r,l)};p(Fe,r=>{e($),e(x),u(()=>!e($)&&e(x).length>0)&&r(De)})}t(he),t(ne);var ve=d(ne,2),ye=a(ve);ze(ye,{type:"button",variant:"ghost",size:"sm",$$events:{click:()=>s(T,!e(T))},children:(r,l)=>{var g=_r(),v=or(g);L(),re(()=>N(v,0,`w-4 h-4 mr-2 transition-transform ${e(T)?"rotate-90":""}`)),n(r,g)},$$slots:{default:!0}});var We=d(ye,2);{var He=r=>{var l=wr(),g=a(l),v=a(g),M=d(a(v),2),G=a(M);P(G),L(2),t(M),t(v);var B=d(v,2),Y=d(a(B),2),F=a(Y);P(F),L(2),t(Y),t(B);var Z=d(B,2),D=d(a(Z),2),ee=a(D);P(ee),L(2),t(D),t(Z),t(g),t(l),q(G,()=>e(E),R=>s(E,R)),q(F,()=>e(I),R=>s(I,R)),q(ee,()=>e(V),R=>s(V,R)),n(r,l)};p(We,r=>{e(T)&&r(He)})}t(ve);var ke=d(ve,2);{var Te=r=>{var l=Ar(),g=a(l),v=d(a(g),2),M=d(a(v),2),G=a(M),B=a(G);{var Y=o=>{var k=$r();n(o,k)};p(B,o=>{e(U)||o(Y)})}var F=d(B,2);{var Z=o=>{var k=Ur();n(o,k)};p(F,o=>{e(_)||o(Z)})}var D=d(F,2);{var ee=o=>{var k=zr();n(o,k)};p(D,o=>{e(z)||o(ee)})}var R=d(D,2);{var Ke=o=>{var k=Mr();n(o,k)};p(R,o=>{e(w)||o(Ke)})}var Qe=d(R,2);{var Xe=o=>{var k=Rr();n(o,k)};p(Qe,o=>{e($)||o(Xe)})}t(G),t(M),t(v),t(g),t(l),n(r,l)};p(ke,r=>{e(S),e(f),e(b),e(h),e(c),e(x),u(()=>!e(S)&&(e(f).length>0||e(b).length>0||e(h).length>0||e(c).length>0||e(x).length>0))&&r(Te)})}var _e=d(ke,2);{var Oe=r=>{var l=Pr(),g=a(l),v=d(a(g),2),M=a(v),G=a(M,!0);t(M),t(v),t(g),t(l),re(()=>Ue(G,e(H))),n(r,l)};p(_e,r=>{e(H)&&r(Oe)})}var we=d(_e,2),Je=a(we);{let r=nr(()=>!e(S)||e(j));ze(Je,{type:"submit",variant:"primary",size:"lg",fullWidth:!0,get loading(){return e(j)},get disabled(){return e(r)},children:(l,g)=>{L();var v=ir();re(()=>Ue(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((r,l)=>{Me(ce,"src",r),Me(Ge,"src",l),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(U),e(f),u(()=>!e(U)&&e(f).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(_),e(b),u(()=>!e(_)&&e(b).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(z),e(h),u(()=>!e(z)&&e(h).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(w),e(c),u(()=>!e(w)&&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($),e(x),u(()=>!e($)&&e(x).length>0?"border-red-300 dark:border-red-600":"")??""}`)},[()=>($e(y),u(()=>y("/assets/garm-light.svg"))),()=>($e(y),u(()=>y("/assets/garm-dark.svg")))]),q(O,()=>e(f),r=>s(f,r)),q(J,()=>e(b),r=>s(b,r)),q(K,()=>e(h),r=>s(h,r)),q(Q,()=>e(c),r=>s(c,r)),q(X,()=>e(x),r=>s(x,r)),tr("submit",de,cr(Ce)),n(Re,ae),dr(),qe()}export{Dr as component}; diff --git a/webapp/assets/_app/immutable/nodes/8.DVlwXnoT.js b/webapp/assets/_app/immutable/nodes/8.BMDTInDo.js similarity index 93% rename from webapp/assets/_app/immutable/nodes/8.DVlwXnoT.js rename to webapp/assets/_app/immutable/nodes/8.BMDTInDo.js index 4c2130da..6d7ac0f0 100644 --- a/webapp/assets/_app/immutable/nodes/8.DVlwXnoT.js +++ b/webapp/assets/_app/immutable/nodes/8.BMDTInDo.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as z}from"../chunks/C7KraPli.js";import{p as J,f as C,b as x,c as K,d as y,q as f,u as g,r as b,t as M,e as R,B as ce,a as O,o as de,A as ue,l as w,h as me,j as pe,g as e,m as u,$ as fe,v as ge,s as T,k as s}from"../chunks/cPTQ2Ibn.js";import{p as ve,i as A}from"../chunks/DqFqoVWr.js";import{d as D,c as $,g as H}from"../chunks/DqbUkQgD.js";import{D as he}from"../chunks/91PQ6UtW.js";import{P as _e}from"../chunks/U3V4g_hv.js";import{w as ye}from"../chunks/BV_mDmfH.js";import{t as be}from"../chunks/Bgbd8SZ5.js";import{D as xe,G as Ce,A as Pe}from"../chunks/Du50aAe5.js";import{e as ke}from"../chunks/BZiHL9L3.js";import{E as Ie}from"../chunks/CPFytHjx.js";import"../chunks/D7e9zx6w.js";import{S as W}from"../chunks/BZ2WxPPD.js";var Se=C(' '),we=C(' '),Te=C('-'),De=C('
    ');function $e(E,k){J(k,!1);let a=ve(k,"item",8);z();var m=De(),I=y(m);{var i=r=>{var p=Se(),h=y(p);b(p),M(n=>{$(p,"href",n),$(p,"title",`Pool: ${f(a()),g(()=>a().pool_id)??""}`),R(h,`Pool: ${f(a()),g(()=>a().pool_id)??""}`)},[()=>(f(D),f(a()),g(()=>D(`/pools/${a().pool_id}`)))]),x(r,p)},P=r=>{var p=ce(),h=O(p);{var n=l=>{var o=we(),c=y(o);b(o),M(S=>{$(o,"href",S),$(o,"title",`Scale Set: ${f(a()),g(()=>a().scale_set_id)??""}`),R(c,`Scale Set: ${f(a()),g(()=>a().scale_set_id)??""}`)},[()=>(f(D),f(a()),g(()=>D(`/scalesets/${a().scale_set_id}`)))]),x(l,o)},v=l=>{var o=Te();x(l,o)};A(h,l=>{f(a()),g(()=>a()?.scale_set_id)?l(n):l(v,!1)},!0)}x(r,p)};A(I,r=>{f(a()),g(()=>a()?.pool_id)?r(i):r(P,!1)})}b(m),x(E,m),K()}var Ae=C('

    Error

    '),Ee=C('
    ',1);function Oe(E,k){J(k,!1);const a=u(),m=u(),I=u();let i=u([]),P=u(!0),r=u(""),p="",h=null,n=u(1),v=u(25),l=u(""),o=u(!1),c=u(null);async function S(){try{s(P,!0),s(r,""),s(i,await H.listInstances())}catch(t){s(r,t instanceof Error?t.message:"Failed to load instances")}finally{s(P,!1)}}function F(t){s(c,t),s(o,!0)}async function Q(){if(e(c))try{await H.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:W,cellProps:{statusType:"instance",statusField:"status"}},{key:"runner_status",title:"Runner Status",cellComponent:W,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=>F(t)}]};function X(t){s(l,t.detail.term),s(n,1)}function Y(t){s(n,t.detail.page)}function Z(t){s(v,t.detail.perPage),s(n,1)}async function ee(){try{await S()}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 d=t.payload;s(i,[...e(i),d])}else if(t.operation==="update"){const d=t.payload;s(i,e(i).map(_=>_.name===d.name?d:_))}else if(t.operation==="delete"){const d=t.payload.name||t.payload;s(i,e(i).filter(_=>_.name!==d))}}de(()=>{S(),h=ye.subscribeToEntity("instance",["create","update","delete"],se)}),ue(()=>{h&&(h(),h=null)}),w(()=>(e(i),e(l)),()=>{s(a,e(i).filter(t=>(e(l)===""||t.name?.toLowerCase().includes(e(l).toLowerCase())||t.provider_id?.toLowerCase().includes(e(l).toLowerCase()))&&p===""))}),w(()=>(e(a),e(v)),()=>{s(m,Math.ceil(e(a).length/e(v)))}),w(()=>(e(n),e(m)),()=>{e(n)>e(m)&&e(m)>0&&s(n,e(m))}),w(()=>(e(a),e(n),e(v)),()=>{s(I,e(a).slice((e(n)-1)*e(v),e(n)*e(v)))}),me(),z();var N=Ee();pe(t=>{fe.title="Instances - GARM"});var L=O(N),G=y(L);_e(G,{title:"Runner Instances",description:"Monitor your running instances",showAction:!1});var q=T(G,2);{var re=t=>{var d=Ae(),_=y(d),j=y(_),B=T(y(j),2),ie=y(B,!0);b(B),b(j),b(_),b(d),M(()=>R(ie,e(r))),x(t,d)};A(q,t=>{e(r)&&t(re)})}var ne=T(q,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(l)},searchPlaceholder:"Search instances...",get currentPage(){return e(n)},get perPage(){return e(v)},get totalPages(){return e(m)},get totalItems(){return e(a),g(()=>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(L);var le=T(L,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),g(()=>e(c).name)},$$events:{close:()=>{s(o,!1),s(c,null)},confirm:Q}})};A(le,t=>{e(o)&&e(c)&&t(oe)})}x(E,N),K()}export{Oe as component}; +import"../chunks/DsnmJJEf.js";import{i as z}from"../chunks/C7KraPli.js";import{p as J,f as C,b as x,c as K,d as y,q as f,u as g,r as b,t as M,e as R,B as ce,a as O,o as de,A as ue,l as w,h as me,j as pe,g as e,m as u,$ as fe,v as ge,s as T,k as s}from"../chunks/cPTQ2Ibn.js";import{p as ve,i as A}from"../chunks/DqFqoVWr.js";import{d as D,c as $,g as H}from"../chunks/yWyZZHPR.js";import{D as he}from"../chunks/Cpm0auuQ.js";import{P as _e}from"../chunks/BtskFTeb.js";import{w as ye}from"../chunks/BV_mDmfH.js";import{t as be}from"../chunks/Bgbd8SZ5.js";import{D as xe,G as Ce,A as Pe}from"../chunks/BIepGqC5.js";import{e as ke}from"../chunks/BZiHL9L3.js";import{E as Ie}from"../chunks/CVL5tSYq.js";import"../chunks/BMOcKgHw.js";import{S as W}from"../chunks/CMG1iQmM.js";var Se=C(' '),we=C(' '),Te=C('-'),De=C('
    ');function $e(E,k){J(k,!1);let a=ve(k,"item",8);z();var m=De(),I=y(m);{var i=r=>{var p=Se(),h=y(p);b(p),M(n=>{$(p,"href",n),$(p,"title",`Pool: ${f(a()),g(()=>a().pool_id)??""}`),R(h,`Pool: ${f(a()),g(()=>a().pool_id)??""}`)},[()=>(f(D),f(a()),g(()=>D(`/pools/${a().pool_id}`)))]),x(r,p)},P=r=>{var p=ce(),h=O(p);{var n=l=>{var o=we(),c=y(o);b(o),M(S=>{$(o,"href",S),$(o,"title",`Scale Set: ${f(a()),g(()=>a().scale_set_id)??""}`),R(c,`Scale Set: ${f(a()),g(()=>a().scale_set_id)??""}`)},[()=>(f(D),f(a()),g(()=>D(`/scalesets/${a().scale_set_id}`)))]),x(l,o)},v=l=>{var o=Te();x(l,o)};A(h,l=>{f(a()),g(()=>a()?.scale_set_id)?l(n):l(v,!1)},!0)}x(r,p)};A(I,r=>{f(a()),g(()=>a()?.pool_id)?r(i):r(P,!1)})}b(m),x(E,m),K()}var Ae=C('

    Error

    '),Ee=C('
    ',1);function Oe(E,k){J(k,!1);const a=u(),m=u(),I=u();let i=u([]),P=u(!0),r=u(""),p="",h=null,n=u(1),v=u(25),l=u(""),o=u(!1),c=u(null);async function S(){try{s(P,!0),s(r,""),s(i,await H.listInstances())}catch(t){s(r,t instanceof Error?t.message:"Failed to load instances")}finally{s(P,!1)}}function F(t){s(c,t),s(o,!0)}async function Q(){if(e(c))try{await H.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:W,cellProps:{statusType:"instance",statusField:"status"}},{key:"runner_status",title:"Runner Status",cellComponent:W,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=>F(t)}]};function X(t){s(l,t.detail.term),s(n,1)}function Y(t){s(n,t.detail.page)}function Z(t){s(v,t.detail.perPage),s(n,1)}async function ee(){try{await S()}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 d=t.payload;s(i,[...e(i),d])}else if(t.operation==="update"){const d=t.payload;s(i,e(i).map(_=>_.name===d.name?d:_))}else if(t.operation==="delete"){const d=t.payload.name||t.payload;s(i,e(i).filter(_=>_.name!==d))}}de(()=>{S(),h=ye.subscribeToEntity("instance",["create","update","delete"],se)}),ue(()=>{h&&(h(),h=null)}),w(()=>(e(i),e(l)),()=>{s(a,e(i).filter(t=>(e(l)===""||t.name?.toLowerCase().includes(e(l).toLowerCase())||t.provider_id?.toLowerCase().includes(e(l).toLowerCase()))&&p===""))}),w(()=>(e(a),e(v)),()=>{s(m,Math.ceil(e(a).length/e(v)))}),w(()=>(e(n),e(m)),()=>{e(n)>e(m)&&e(m)>0&&s(n,e(m))}),w(()=>(e(a),e(n),e(v)),()=>{s(I,e(a).slice((e(n)-1)*e(v),e(n)*e(v)))}),me(),z();var N=Ee();pe(t=>{fe.title="Instances - GARM"});var L=O(N),G=y(L);_e(G,{title:"Runner Instances",description:"Monitor your running instances",showAction:!1});var q=T(G,2);{var re=t=>{var d=Ae(),_=y(d),j=y(_),B=T(y(j),2),ie=y(B,!0);b(B),b(j),b(_),b(d),M(()=>R(ie,e(r))),x(t,d)};A(q,t=>{e(r)&&t(re)})}var ne=T(q,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(l)},searchPlaceholder:"Search instances...",get currentPage(){return e(n)},get perPage(){return e(v)},get totalPages(){return e(m)},get totalItems(){return e(a),g(()=>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(L);var le=T(L,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),g(()=>e(c).name)},$$events:{close:()=>{s(o,!1),s(c,null)},confirm:Q}})};A(le,t=>{e(o)&&e(c)&&t(oe)})}x(E,N),K()}export{Oe as component}; diff --git a/webapp/assets/_app/immutable/nodes/9.el4sTgm4.js b/webapp/assets/_app/immutable/nodes/9.B0t4Xpa3.js similarity index 98% rename from webapp/assets/_app/immutable/nodes/9.el4sTgm4.js rename to webapp/assets/_app/immutable/nodes/9.B0t4Xpa3.js index a2253f7e..6ea8d62d 100644 --- a/webapp/assets/_app/immutable/nodes/9.el4sTgm4.js +++ b/webapp/assets/_app/immutable/nodes/9.B0t4Xpa3.js @@ -1 +1 @@ -import"../chunks/DsnmJJEf.js";import{i as $e}from"../chunks/C7KraPli.js";import{p as Ue,o as Le,A as Oe,l as Pe,h as Ve,f as u,j as ze,a as P,t as f,b as v,c as Re,u as r,q as p,e as m,g as t,m as A,d as s,s as d,k as h,$ as qe,r as a,B as Tt,i as Fe,v as $t,D as Ut}from"../chunks/cPTQ2Ibn.js";import{i as g,s as Ge,a as He}from"../chunks/DqFqoVWr.js";import{e as Lt,i as Ot}from"../chunks/CiWDXYQd.js";import{d as j,c as nt,g as Pt,s as Vt}from"../chunks/DqbUkQgD.js";import{b as We}from"../chunks/Cwu7L3Xf.js";import{p as Je}from"../chunks/DVsSf1wv.js";import{g as zt}from"../chunks/CTvJf3dP.js";import{D as Ke}from"../chunks/91PQ6UtW.js";import{w as Qe}from"../chunks/BV_mDmfH.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/DJsB5Z5V.js";import{e as Xe}from"../chunks/BZiHL9L3.js";var Ye=u('

    Error

    '),Ze=u('

    Loading instance details...

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

    '),ca=u('

    Status Messages

    '),ma=u('

    Status Messages

    No status messages available

    '),ua=u('

    Instance Information

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

    Status & Network

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

    Error

    '),Ze=u('

    Loading instance details...

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

    '),ca=u('

    Status Messages

    '),ma=u('

    Status Messages

    No status messages available

    '),ua=u('

    Instance Information

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

    Status & Network

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

    Loading...

    -{:else if requiresAuth && !$authStore.isAuthenticated} - -
    -
    -

    Redirecting to login...

    -
    -
    -{:else if isLoginPage || isInitPage} +{:else if shouldShowLoginPage || shouldShowInitPage} -{:else} +{:else if shouldShowMainLayout}
    @@ -83,6 +65,20 @@
    +{:else if shouldShowRedirect} + +
    +
    +
    +

    + {#if $authStore.needsInitialization} + Redirecting to initialization... + {:else} + Redirecting to login... + {/if} +

    +
    +
    {/if} diff --git a/webapp/src/routes/credentials/+page.svelte b/webapp/src/routes/credentials/+page.svelte index a393402d..8a730326 100644 --- a/webapp/src/routes/credentials/+page.svelte +++ b/webapp/src/routes/credentials/+page.svelte @@ -1,7 +1,7 @@ diff --git a/webapp/src/routes/init/page.integration.test.ts b/webapp/src/routes/init/page.integration.test.ts index 5f5ff885..25fa905b 100644 --- a/webapp/src/routes/init/page.integration.test.ts +++ b/webapp/src/routes/init/page.integration.test.ts @@ -456,13 +456,13 @@ describe('Comprehensive Integration Tests for Init Page', () => { // Submit form await fireEvent.click(submitButton); - // Should show toast and redirect + // Should show toast (redirect happens via layout reactive statements) await waitFor(() => { expect(toastStore.success).toHaveBeenCalledWith( 'GARM Initialized', 'GARM has been successfully initialized. Welcome!' ); - expect(goto).toHaveBeenCalledWith('/'); + // Note: redirect now happens via layout reactive statements, not direct goto() call }); }); @@ -838,9 +838,9 @@ describe('Comprehensive Integration Tests for Init Page', () => { // Submit form await fireEvent.click(submitButton); - // Should navigate to dashboard with resolved path + // Should call auth.initialize successfully (navigation happens via layout reactive statements) await waitFor(() => { - expect(goto).toHaveBeenCalledWith('/'); + expect(auth.initialize).toHaveBeenCalled(); }); }); diff --git a/webapp/src/routes/init/page.test.ts b/webapp/src/routes/init/page.test.ts index 35e1e5f8..5acf61c5 100644 --- a/webapp/src/routes/init/page.test.ts +++ b/webapp/src/routes/init/page.test.ts @@ -338,7 +338,7 @@ describe('Init Page - Unit Tests', () => { 'GARM Initialized', 'GARM has been successfully initialized. Welcome!' ); - expect(goto).toHaveBeenCalledWith('/'); + // Note: redirect now happens via layout reactive statements, not direct goto() call }); it('should handle initialization errors', async () => {