From bd8c39d8601c6a0b02dbf94ebd65a00db93eb804 Mon Sep 17 00:00:00 2001 From: Maximus7474 Date: Fri, 18 Sep 2026 19:18:52 +0200 Subject: [PATCH 1/3] feat(scripts/build): add Windows executable metadata to compile target --- scripts/build.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/build.ts b/scripts/build.ts index d7a254c6..0012768d 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -84,7 +84,7 @@ await Promise.all( const toBuild = targetArg === 'all' ? Object.entries(targets) - : [[targetArg, targets[targetArg as keyof typeof targets]]]; + : [[targetArg, targets[targetArg as keyof typeof targets]]] as [string, Build.CompileTarget][]; // plugin to remove DEV: labels const stripDevLabels = { @@ -112,13 +112,23 @@ for (const [platform, target] of toBuild) { compile: { target: target as Build.CompileTarget, outfile, + windows: platform === 'windows' + ? { + title: 'fxManager', + publisher: 'github:fxManagerProject', + description: 'A webpanel to maintain your fivem/redm server.', + icon: './.github/assets/fxmanager.ico', + version: `${version.replace(/[a-zA-Z]+/, '')}`, + copyright: 'https://github.com/fxManagerProject/fxManager/blob/main/LICENSE', + } + : undefined }, define: { 'process.env.NODE_ENV': JSON.stringify('production'), 'process.env.VERSION': JSON.stringify(version), }, plugins: [stripDevLabels], - }; + } satisfies Bun.BuildConfig; const result = await Bun.build(buildSettings); From a7b0faed9bbb84dba348ac50b2b163c42e22ff51 Mon Sep 17 00:00:00 2001 From: Maximus7474 Date: Fri, 18 Sep 2026 19:20:33 +0200 Subject: [PATCH 2/3] feat(assets): project logo as ico file --- .github/assets/fxmanager.ico | Bin 0 -> 269342 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/assets/fxmanager.ico diff --git a/.github/assets/fxmanager.ico b/.github/assets/fxmanager.ico new file mode 100644 index 0000000000000000000000000000000000000000..f13021f9a13a013144e76487d5eef8e31f4e6003 GIT binary patch literal 269342 zcmeI*d2m(b8OQOs)wNdbW@l_`>)2XbwYF-j(`Bapqpcz?)rwXaH$+86!3CsR#X_we zt%&>5Ds@FWRivY`g)Kk=ifma(AcU}*5QtgG{`7fH7DLG8o*Q%D``&ZEw{r?6At!m> z&+mQTbM86k&C1$G|Cc3M`v1pf9dyk8SzpP@$~r+e`*53X_VM7=vR~G`!?S{|{R8^{ z=gtr|YJdR@U;qOczyJm?fB_6(00S7n00uCC0SsUO0~o*n1~7mD3}65Q7{CAqFn|FJ zU;qOczyJm?fB_6(00S7n00uCC0SsUO0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm? zfB_6(00S7n00uCC0SsUO0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n z00uCC0SsUO0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uCC0SsUO z0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uCC0SsUO0~o*n1~7mD z3}65Q7{CAqFo1z185p47_nhgHb#}+5f8TfD4B7wunQYXc%Yd2a=_JeSoXeJ$HL$iD zFkKG2c($B)!$KMS@G2SoVzK=7jZ%5yf93Mr^i6Ekpv%DHYQk)cexXIKhH{H`2Byqb&<}7-;NNkP9@ig#ZH~M;Zwq66OwD|v zuNAO4f!R8KSWf$S0{Q@d`T(8t|Ma#z$;sc**XHHlQGrkuSfIwvRBN0Q@Z@+v$Nkes z=E|zFno#Y>7g2%FT7i}8YvigDa%2p{2i?lkY3jT5&Ah+g@1XgH z301%hn#JJSVb|keChkwi{sS+ZB`?j{l2AL@bsRYbJ7wf^MRMVU-0SAm*#xX$8S|;PaHUHN>mM={$;Tor)yjH%g^9A~5vLAYW z-Z95CJ7HdS4q&L7#FztP+BReKKHhNY7x|~YM;qMRos7PS@9EDq;Qibd`wpBL*a?$= zvp8mQG5PQ3Ht4m#*5lKM{<}U*vjksrr{2%ayx&2;?4s>m?n93Q%ud+XLvNLle;4he z`JXgxL)d1K5ziEoe;4f%wS8#*M?6y$+Sy~%%E`YA1D5}H$bYYMBNz40lzotYKacIm zzn|?AwSIy8`{|7Q``Iq!pZUKF1LU9lyKu(%@24~J?`ONX$fV1Ckbgg&k$*qi#bq{K z?2G*S>5TmQ*)A?J>2e?B-%n@c-_Le&nN1h_BL99mbD4j=*0}q+VZ7&_LDvzI|IE$5 z=KgaR%#xFCTqM67vozRF9KNvq9zyFAT#P^LBeiuV|EaBiEdR+K|Fzw}KYWoq`~F7R zw7o%^^*%$p*Kk9{F0nP@zI&an|Daz(9}w{xkbggoCo})r=4aiWC(G7;67#xmTUYGV z5sT>qV)f5a`8fH{to&to)=YI48jK9wK}UK>jl;|JvSnys#!_=6im^)`bq<8;Ht$m)~P|@8o~? zdidfaNyq>D44fh3r>yH4^O*lVc5(^#d-!4^89xX4&{Tz=T&`7!g}{S)?{z!i_^ zGvBo@iu5sXGIEtJ-;@0NX*)^dzvcgwn-@#j$Gf^mz1P35*;FSdT)$A?10esA?f=Ms zX60YUrTxyEDR;kA61?Z%Yw-1hyBb@AHAHx(XoS!G*&K!ZXI%cR&A*`U0siInb@K7f z#yz@#Eme&&_TMFP7;C=zX`?@nEy%y0ZJez6f2SR7cUvpu7o(TRclsGv7hnZ&+J>fBs>3|{eWHPuiO5b_aO5f{~g)m-Ok^eKilmy{`=Vn zxXM2{@U#70wF~+8v;E1xpY7r*m#+3h{{3`D{{3thSGjbxAM)>~GxG0eySU1wtNoCF zKb?_(KikDsE?w=1{QK#Q{QKE1u5#&WKjhy}XXM|{c5#(USNkFVemW!nezuFNT)Ns1 z`S;VA<)8Jx{cIao*>tfV^6#fH&Htkbtp9z>vqfC5>mn~v+lS`g?1X*Un8fp-99$Q! z`JeDcY1n3wKfkh;{6{UDE`A@)|GjD_>}&j#Qu6PjUGzHqk zv;3UPxTqKV=u_Jtq-M-cm{)6STX0V}84SF?THuRZJ zC*QP4%uLvqS^UYUJo4|N|JOD;>asa9Z`F>l%@cgx^3oc)`q9<$t!w7X=k?kBhw3vt z*r-9L0WE>dE3kD( zqx?)Qa_sMD?CSC!TPXfjO=@s{T_Y6aYGjbYj~~S7Jn_zXes5l>F)}ZZmSP0nJLcm z`JMZ&_R(v&ZGBF=j(hl1h4T9Rtx}|G_S*V=RW(gg*U%E&KV;W>u~7pvU?$9l87bOW zC$G=jD#M>F2n+>lz3Tk3%U6%_hL3w%8@)!rt`o5Pf4_0n{NTOXUyc1h&L97g{NZma z*r-950W)DX?EQSR65KQ1;fH*Cn(svVVe7v;+f$z*V(SR9QG?wKboyYdXReb--@@18 z1p^qs00uCC0SsUO0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uCC z0SsUO0~o*n1~7mD3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uA+-+(>eiH#cc zG(dLZXD1zNWY2Z8=l$u=e!vAY<lzN(Y}BC3fSE8G!LvTiikV4A>-@~^?bgw^ zA9B%bIZ2-bZfiB(|JpivZu&-n3a=mTqI_vYo181 z(xX4@$o)62oG&*$T^MA&ys|-BT3H{ozt_fy>i07%23y6(r3 zgR+A)!Iu_SOB<1oYDAs=UN&qjQA@VY{E?U1nx7mOczIl;?Q+8PIr5*JZPM7x8lcVs zk|8@XQ*Wv*Ge#fa-(27qqnAkDn(7SE$gi2I3gi`4%P-ZMmt$Zio}EgsGVe>3M!T zA2UVQ_T@zdQc(e0SGxV2pnu21kv~4s{9pT6KIi&U0iS&a6|i%H!yeCXe{V3=bKy+d zzh>XwlU-WE`97kU+6vfvgJ0KcO@iwKGAV|&9rrhBJI!8RCBvU8l=H`b#6}JFFmR*V$kuCt zEz^m->>QMtWDelqJcy3{#|>Q|>$cX1ZlbE1W*PhM68X{}=d}0Jc7F#OHRx$TZGHLj zxq+1(wauY@t=&=|nB=_xH~ByBFCR%=LrbXkv2lO&i^a0vd3tY`&K)9uUewh*EUNoa zBW7jH_x}_Nz=mj%OjpCB>z6Qr>{So=Ktnr zibCiAv1#Sx-$h$m{@)@0j5A4|Yij;SkbnQ?GvwdDHgVDKyWR)+_tP2q_p@DG=QG*+ zBmaInBmaK3OS1Fm`umfAKb?_(KikE1K9jva^6#fJ^6zK6Bs-6;zd!l+(;4~qvt3;0 zGuiti|9(0n|9-Yhvh(Qr`;&h^ow>@twtsLvmtE7KTrPsY-b1gKke3BnLK;5Y}?r= zyYx9Zwr#0u4AzG`Mb{GKKH?0R2a*5G%fGhyug88M#hYWVC9tZjHdt?fJ|N&bs+z zbD`uvv+}Rw(>*VTf3C>L=Ze~&pOZ zD6f<6T*o@_9RGhRh3Ee`dOs*xM3Ue5vA+CjEX#6J49k@lZXV|6lq zR>prneJ3&h_MZM>7tfZvCYQ+O?G2xH?j3(CuWSgO33 zAI=z+8>|EKqFx91!mQ1~8X`Z|>jL*3$T}jC&whskp8x0J95GpZ@@24~J?`OND zTfXD{yyV|cXXM|{c8Qm#bo)H{_tP2q_p@EnE#L8eUh?m!GxG0eyTr>=x_zGf`{|7Q z``Iq(mhX5!FZuV=8Tt3KUE<{_-9AtL{d8veXZ>$K+a}#IzPF#3{QGH4^Z#f9>wn*B z&*{*%%!q4N_vV?;C1ya)-12PE9`}I6`oP4g8@N8yg)zFGjgX>E(u74P=(sks$$kUq{119?rR)mvoK9=6?KMquHqYv$|4U@7QDe5|i`fbDvh^V@d2j{!Po&0u z{aS6C)Ac^wit2D}W9^r>rdm$b^?QQz0Q&C}83*`U2Yq^9E%f)lGaGu`f2ywgWM;y? zKGt<&Y|R+Pe+O2yeU7{|TV}7Q3fnxv*X3`hl^dQckni2FP`)rIJ6Oxh*7IVc24=ua zoTxU2tC528+JtP){AfGtLG*WDytnVC_u|`my+mJjoL0KEUX~PB%ff=4Y}BC3z*03) zx~*Q!NTRQMU*R0H(|NMa(|$54uh(aECE9j;Jr(#Y71*TDi92H?bAPA#*SW#|=g$;- z&y^PyNM!{cdAlsI=-PkA?@#9dKhWoO7j25YR%a?*u47-_WZHROx$zW-sH%;TXAeRTn!B7&Ez88k^&<+vyb`ewehaK%-uJa+jJj zd#;?bpBQrteLwI}eP;iJH%g_pp(Sli@q?#F1!{M-$oSXS1?IS~Bt|A(&k3{-I7r{a zz3zzu*{ExD@S+0As6cr|gACI(BJFwsvhPXuJNp{#18hyMUyWTV?|)dy@jx;HkfGnR zLFfDLeNY+L3f6s7Ys|+zt$|(}bkt>YWay-P$t|ju8lA84q5^%XKuvv%8rmt>Oj<2R zT{=g{e6Af&i+<1gXWhO!c&-c>w=6g}Fl+gCDco2moAmf#n_jP7srL`CQG-qcX2NWk z5wkL3N~xTq_W+rpV6M-YpMG;5YqO5~eU8xUyN@0+SB|}UzMOp1A~{{J*|O`l*r{Mmay)iEas=5W@oY}BBq0h`} Date: Fri, 18 Sep 2026 19:49:21 +0200 Subject: [PATCH 3/3] chore(scripts/build): formatted with biome --- scripts/build.ts | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/scripts/build.ts b/scripts/build.ts index 0012768d..ed2dafde 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -84,7 +84,10 @@ await Promise.all( const toBuild = targetArg === 'all' ? Object.entries(targets) - : [[targetArg, targets[targetArg as keyof typeof targets]]] as [string, Build.CompileTarget][]; + : ([[targetArg, targets[targetArg as keyof typeof targets]]] as [ + string, + Build.CompileTarget, + ][]); // plugin to remove DEV: labels const stripDevLabels = { @@ -112,16 +115,18 @@ for (const [platform, target] of toBuild) { compile: { target: target as Build.CompileTarget, outfile, - windows: platform === 'windows' - ? { - title: 'fxManager', - publisher: 'github:fxManagerProject', - description: 'A webpanel to maintain your fivem/redm server.', - icon: './.github/assets/fxmanager.ico', - version: `${version.replace(/[a-zA-Z]+/, '')}`, - copyright: 'https://github.com/fxManagerProject/fxManager/blob/main/LICENSE', - } - : undefined + windows: + platform === 'windows' + ? { + title: 'fxManager', + publisher: 'github:fxManagerProject', + description: 'A webpanel to maintain your fivem/redm server.', + icon: './.github/assets/fxmanager.ico', + version: `${version.replace(/[a-zA-Z]+/, '')}`, + copyright: + 'https://github.com/fxManagerProject/fxManager/blob/main/LICENSE', + } + : undefined, }, define: { 'process.env.NODE_ENV': JSON.stringify('production'),