From 9148bdcd3d3e798b1049b68a595f8040e4aa5185 Mon Sep 17 00:00:00 2001 From: zumbiepig <121742281+zumbiepig@users.noreply.github.com> Date: Thu, 12 Sep 2024 15:06:20 -0700 Subject: [PATCH] . --- bun.lockb | Bin 116433 -> 116131 bytes package.json | 3 +-- server.ts | 39 +++++++++++++++++++-------------------- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/bun.lockb b/bun.lockb index ce99cf40220dfe59e85408c78aef9ff629a89bbd..645719cc2f73ee0c5be07b0f89552e8e9fda4abc 100755 GIT binary patch delta 16310 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 delta 15995 zcmeHudstP~*7uqlwz55S#1+N=;@>#^OAnq)xO_YYc8epR?m6f@B6d$IM!Id zF~=Np%rVEjtSxKfiuNZ~wSOw6|Ey>Fe{}DOZKRu5?G2Rx3v&-p{jGP^K5qJ*arAouYICuXdLgQk(yj*lcJw zFf|yDR!Fb3yu@8qT2uY3lncIth1Cim6{SbvD`_vNHvD&^3e`G}8?|--ocdDYs;;=d zTv6NrgqPq(^{T+h&YRF9zC-eFQQ053qO+oO2fqm16}-5jlDw`}W}u)O1g&s{;&IK- zFz}h=Cm|;X%G@<26@}HxJHTClw}PXMx`pMHrIl_)c?=j;>Iy0<=9L03k>w@eZc2Y*dbJzXR`4xqW^B32+sq<5yNIi2E6u2vEs+GzBqr!AKnq~u&WyI$4 zE?!}^X+Y%G=^#bv3BDiP2JWt&Us_(HC>eIcN~+|4kvvZFq7cLV`R+xCuAJ1TbI+r5WERa6<-9WxP?H0;&dxmQTl*i0w;NCb#(Fk zihQLK-je=V$SFRh#pM-Mh~G(xi%QE2qZd{xo5GFqM#(Fq=T{WCYT(WM(z4Qo8l^G9 zP&j~!G!W6f48!x>ix*LkHUd)vMe|)XHSR*?RqpZ*%KV_Wq2;cwta78-Ce)_knham5 zzpjFcDhkLN$f+BPA`SUcU`m@pcmBd+lrQ4@y@S-neT^VY;H}<4gZ=s&T}94Dqt#+7 zFnRDXIE`@M0Y=-dxw?bOc3_yTYvgg(pxPolQa_4Z)in#yLX~@Ab!pLJC48Xa;g{g# zQChUo=6PV!pDH~|1jiWEMSxSrcL%3H`+)258D!X*TOGaFRW@I7RTWpds;b@Lki%|m zU2d$=z&LPn_fv2R2@RWTezkHF`9&f4Q=Fn8N9(GQ5|nZu;zkXdp{xW(lL>WDhwV`&uTD<@-YO}HC3hM#SbWd zA7V6E22PV;1~`TIaH=712B(1@4>^UpvZ?}(Rx5G9!N7gNsi&^0DjHE`=`cfoAvi_C z4bDfk@0N8l&G4+C#8u@kFHj1q7FS|2D?!rmJ>cZInVnXNzZz^f=ACYo-xzMJ4j1_5 z_F=Vej4)8tNJFcrqAJ?$Dkym!nA{Ek4+PI1Ww^T)`V`l-;1rI>!O6`j;M96chG8#d zv{4^ZyWE9IqoKSD%FQ`+3SNa%X1#_78VGao`K3jNCS_@vOX-SnpbT7=X*9S*@&(`& z$MTBk0#~(LsT*hD5=>;e%y5)Q{n@%cGHc^_L-BhkQBSXdQ;*JoQ%WD7VDxzWM8nYw z;It}y3{DX`D*5Y^jCu>fNgfKh3Z5eMU!QCwMkFvLNcI%it;NGJG~^3@5S%LRmUxTg zk7pU>Yk|q3)Tu@$MM-X#{1KE>h_j~|`dh%Mq4g4%pqx@Y8=N|T04T}S(_l!*QwIc8 zAsU=Qc|ywnwTA&YJHJ$ORKF`DT^|M1>}|@Zx;N~Fywr#I6#wOH1^4)C>|<{0rm;Zo z#C;NPz`c%px@qcmi=qsKX$ueU=3tk&GeBdZyaD%#+=F`)w*_kIIWI*?ffm!Xf_Ouq z#-?!(?oV=Ckj9R3XOL$3(VMReO0z~;6(yFh4@zY-xUD;>IJ;}=r;sMXM0?&8;9xfH zfh+{46|7riHprn)0K$|4Y7KO-$9aQIQ$Lh4g@;4djoX4Xmc^aHnsvDkT;eT(scawj zK@Q1Ma)H$F5m#B9Lk1jhcoK4!>jnLEaFe>x4iDB}4f7z*K7t#ygp} z1gEk>-Vmy>)!Y-RS@%JTa@hD5PvoPOH`yI5g*Wuj*aGgs{VcbIX{;A_hH2`f$R6se zg*OE{)Hi`J*^FLVzXyUpy@q;Y)(+tZM?dh<50$GsSjWUqdq9yg(TU< zoqaX+YseCHSt~+5kbC;l0NeU$>>zjc)70;XqWt(`dt+w}v>> z2Y|?eKFQTxK$OFJ`|Kun4${qAr3vv{KZ8c7h`#~9xZx>tEX*bvYb`euCrXb7J*D3y6} zXQHMi;{-|R3oqeUEf9?c`~rFdXo^{rsoa^Qsi}PpU)$?(eh!F|PoMYJ4+zn!VQtqB zUhC_J6Hgy)eNcYS7DbNU7 z39WGh&~F|Zk&2n#kfK@N1D?s(2c)WzQHJk&UaE_LXi6dac89tJ$e5&vFgwpZgEf}O zZ9_D*7&`;S7rBY}t_RBCv%05RZ{umWzDiEywp2~!*q}7%VH|op)V~6y1EDP~#U}=H zPB%dVT>>;pFQSxq5$Nv3YXzdv8_6?#kTFa~Xc~dY5p+MmVf`zRzVxddkTpgf8lVD+ zj38|UqEPGGiFyUdm{`PjFoW~^F=fQ-(x zMmyB5I6zW9d2tuAx&X)sA#&XMAE*@1Tl`b4+wg?h8jxzaGK8-SOj8G>-dPASCY9Va zMq_{F&M}&L4{TGq>&FB(fqPK0hTFz!>QR);M2WrtsQrhTZlH(Ol|YI5wAhCyY`K^Q zxA7!%3^7Q9QA$+A4pILD5cES+t%vXw!$Sj8EkC63>EqH=2a+4nLq<1Y=*obQ2@-7p z8Vh8k*=Il$7h}H&M_bgKF&r*DqK|c0htR=BZks^cyc73K-Y`K^SHqW)DEH;ALzCdS~-}LH%!#nd)x!*5U622L4wrbiDHcn6PxG(-Y`kCGK~4XyrpNVT7f4D zkG_|yM}TMq;prF$^WzPZHMIZ&@=!n6SvF=+cdb_-97h|LIubjRj68;NDUgvf$VT-w zAet{Q9^kP2IGRt-N>k&ote22N; zOJtk{{{ci1H};2+Ok*nR6Pq>ghH0Am0b~?ujL9U2dJjAyTgDDI4v1=7$g=fuDx+1= zdI(PgY28x4#1oALG%)?5#~Zf1xhu?}76XwjV~u`EB18>4&JCb@QKnL-*%KT;K!lfrX^XJa#`f+}`riv`HN3D@qgMknr zieGOB8_%6HG`5O2;C_sIaPPuxGc`3ILq$`i;5#>odbYdzy&7HF~ zOOG7BZgv{W{rY!!7&I|x`qh?OAi)sm7jd$SQ0v#vaf%m$P)qNVO1`0|bE;SXqAr$5`Tq}2 zc1uCjaGA7QMuSWZRe?yMS{D2oC;i`n+VNGcAU%FdfxJM=Koo~ZL3I5)oU&t;uKnwr zyn6!F3A7GG_-TqCU3k#@wLwRU(w37$O;S#r@J5M=lLK2oWN<5puAk%7!EK<9pf^D6 zKzo&WiqZ=Y=RtH4Cqowq;37_nmk8h@P7eGNM0%G&bp0A9y)Qr(-aJ2yzdyfwf2whf zZn)ZV(!36$7H)tPURDrfBk5O!a1keb3j})wL6i~7w{*kRmXp?Zy42v*{o4`~r}7^q zCQfZK2uW_Co8?Mn9Dp59oYLVNflh?oz!iCy^dE$yM+OsYje1dr3^3n&~4kae9oDxGkq3 z_Lp+-0f2^p3`EHS;y%C$;3Q8XIrpsy(#Jg+hy)JFQ^09P4g)7`jS6|Q+lciDLb%#; z5{;DF8Q>JlOmMO?i3)##2SM(Z<;3Z+NaD7fyeMIEX5vA=evMPZWm50o;S|M6ssGD- zhS4x7kVjRr0&z01P~u;+lSmXl}`Zp8m2%YTkj(PrGp zv8_^%I6b~7<=Z5F8Jxnhlc9Zj*iBlJlYuv+;+sgy}h#DJ}Ga@Nwi;< zzaz`v8HEQj^k-RcNEQ$$gNLR3U5Ss#@}F?-TN;EPc@*WS)c$YDk5Mf?tTf0))lSl_ z4X5V_NipnAU@MJN(DlB60F?6;$cKJk9;2tsipIi>w?M-hsKek7sE`J;{u zPP6~FqX>e~2a%!RM9Sr>EvFp95k$Yhe>;lMnML2>|D7WUg^lzmiobjW(SwWf-;N@b zXulmr{vVGbz7)kfN0FVLsx$7|J#|gaQ=`x9cx~+aqxL+xFRC>s@?-b5&C}l6{mHhO z+b3lPr=02i!|-;cBR(3P`~BM!{_Oo)(aFJ`Y6fgu_V)B4DY^94z?9paZ-bkw0cEXs zW5omZg_|#Jinmzi+P3yeNxohB-r>ue%hGx;c)$9i#vhK>t=dz*+RHZj_WjT0d~REG zu8J+5+wZYIesO&h>p%VvEno48p6=Y&GoD3prze;Doc86-K+#-1oy%VbDmy)%4dQPA zm3-pMLq8eM;&|yNpRqGLv(6N^v#!Rm%y(z~wJ0zCtbZr`bmZ-8{z1aGeej>)eE-E_ zUAi2HD7@Fz{Q=w$6%s5YR?WYUd17bt#Z4BQ1wS_XL5uc=FmyHm&*LDo!Om`~fYt|J zuC>pO5PhJBUV4QEKAEt!OrkPVcvWG%gYc=>wtrNbn9OfBkid@uo^gZd!D@ zOIe7lNAh4P3x$ky=w#YM%6dXZw&a-yG<(eE~KAi9ugwR*$!+ZTQ?*RLq4cn?rAhqBpqMpY}y{>pZj%Vs*oRs-f|2IHDSG*K8Zm-*(65mw&PC3oM#>D{;tWP;PppY!(=2~e#OHA=*!Db%X?Q1trhu|Q z(?Iu%(0Dc|y%3LdB7G6`5@;jnzd)Nne*$d=HG!T3#eygUXuuOd__bO|5vyQ^Wr*f@ z7F0U{68e#YUcO!iZ3pcDy#k`O^F0u~-qAZIjoz~$I@8c3=mDaM9S)+Oa=L>2L9}Rg z2Kj+}Kq|-!ne&;vo7F zVG-zl(CBSST)22=(r2UURRh*1if3z`Qi0=Yq%pz-uZO}R$7^)hHX=vB}b&>uh? zMESH9R0t{t<%5=i9s!kr@<5Y8Z<8I+9?&jOFA&Xan(+akKoI>d)&1U5dDNmKRjLm(dPXm=qbl9O8g2aR)Q9Q{txI8$d-X<0;GX7&~Q*X=v|ag z1{5vlnHajsUE+#Hs$rhgs zV>UY_M<^6Bc6J@Ud;6isp^zLC7Z;PDJR&-$Fh4Ay~b;?HR;A<5i7H{@Tw>>7On^L6%M^di=n&E!Lp zbLuUHr8gD;7b+*;4kPXdre}oJeN@ zA~v0+Bt3-aVY#n6P~351|NQc^7WN={j#bM1JNvid&bRuF@X=5LM`EyctrhFj(S&Yh zBAX(@Mj(3TpNS8A@6_d&j{9d=SX@lJ9s=_Z$y-LIpJ~bZcC&>cs4J<}!K7n^KK#E)TsJ6wGdZIFPY;#JackXZTv!Y;-FDLn8IuB0Lj%=7$5JAwSgCZ~5$9 zT~BXeiP$g}oiOy+Mezk$|4C)DE%PITYrB^})!_4Kif$vGMt_E=KqLR7R&yo{SBUFW zCJh^I!=g6suFz;rtQ^OJ?dAswOKyHRxOQu09t{+74C8-I>>u~9(U!w2W{zix#@JnA zS4G@J*p_Kv#5~dbPQiZPjrwIX0;kCQ#B?>jP*Cc=@r`&bVED7wEG!xGnidCfc03Cf zffF(AKe1`wkFya?gF%do*+*PA^=W{$AyKImwG-i^o})JL{zO({|K*vXPYD~FD@rG^ zD0Mf^Ni=0Qi}jN*VEcoNKQk}#Xs={Pr+jK*DVPTohtuN3BxJPt=iCRKv9~&`-1VeB z8i}NlC&DHp0EJ@5G%&*+s}_5wuz)aH1I#}Ruit&(KxstW^1G%tizcdhShUQ>BzSxZ z>l$$p$FeSP>tFrxW8a_z|LVl>*@#e{@I@W8*2V&>6bq)Xs9vTG^H1ih_hfI~X6bw# zE+-m;t9xflGXK{8Y`Cp!hhg_vpnx1rfzRfj^Sd9sbbpnzbrVXE+BIFN-PF2z}rR`DmAUdjI9_s6nzkMwnN zjp#BJ>P_N$4ni?%Dw||~70R8VY&%@9wmhg=eotf8Pt;BalOq@>jzDNPziA1LXzjI6 zjd%n0l8r?oL;Q#a?dHcW(^=yuqi=1fgaR^#=4YmucrP5ACYIg{vopohgo?y5LV6hq z&PUR z->ZL-{$T_*iIdrgd7}tNELpTj&0!Pm=7%a}{d?qZS)D)G!V=_?_kq}$LkZr;_}lG2 zt{#5ygV*!A>)lD9Ekz%cDD`hpz>w4}5*zYi_XDBj-eICD7c0VIu_+f#O~4_BrdEeb zxuM##E5C&$Y73rOMdv)!@e}>?5Rs3?EJA(7{e)f>TY>D21B?{$ERVdMHeIY z-zO1<5q%^`Z=w*rcC)Dlo8>PB1%lX+^ zSFX_T4~9K#opM3==@e}eWi!!;6efx$LOJ3sVsd=Xi>p9(^AnxD1D`&fn%#XI3}d&Z z^U6ulYZg3g5V^$8i50V;ZhogS?8d$w@A)N_K;1!mE&g{-?1cimB0Qx26L-u-L|?h& zlBKU6rib>QT|D%3HI^&6*r?`W^O}g7gT_vYj5%zn-TYLf=;2rH`-k5%75e_KkD^ty zlHMBe9hkid3FVLQezt9KeeU@MwEnDzl)_V)M^$_6FV%@ z=V7-;v)KM2u$!OET>1OUSLS3sx)3py8N5_@<)fW`!jX?mH@~E5I6vY1n&kJB^ldIK zCK<0=Z6}HS!f@l~on7BnUKkX4r~?ft*3-C{lpEp;OeVW`x-t2x8pC^xxVTIo^Mn}W zlcI_60yH>9WEY@8^CKC*8xQ*hMOL6e}XLNnvAa1}u>Q!FV$Y^RBr3F%9+ zO`I>n_F5!{&LIiTD7%`hvIqeRpe!;n=p6vONSaTLgIepWPV z`sg`j7iZ#x1ux=hSzjht2^L=S`=b9&tp51s>D5>CZt4^Gu$T-5woyD>f}E9y+vB3k zd^8d&%1Xf^MHpDpolk?JY98wJa?d#yhGkU0%#V$t#yqh)WPGx52#9mUBqT@+N5z7< zF!Zr#B6}CaTVQtc)1!4)>kd3q_0~@E$*^ar+s$v3)QX{pKF?bB7BU|%Y=f~~{KTH! z{8nl6&aSWTKNeAR*D56CfQ`NkuET)biKUrP}*I%VRu=%|=O3O^H7 zEL+LgR19A`=s(q9Aoi7uUGv#+@%4Nbi zm`=|ZY91=}E6n`lBrq+x&(E8&qG(Kd$Tj-)2iM?3;+- { +app.use((_req: Request, res: Response, next: NextFunction) => { res.status(404).sendFile(join(BASE_DIR, '404.html')); next(); }); -app.use(async (err, req, res, next) => { +app.use((err: Error, _req: Request, res: Response, next: NextFunction) => { console.error(err.stack); res.status(500).send('500 Internal Server Error'); next(); }); -// push for the update dev + app - .listen(PORT, async () => { - debugLogger('Server started.'); - console.log(chalk.green(`Server is running on port ${PORT}`)); - }) - .on('error', (error) => { + .listen(PORT, () => + console.log(chalk.green(`Server is running on port ${PORT}`)), + ) + .on('error', (error: NodeJS.ErrnoException) => { if (error.code === 'EADDRINUSE') { console.error( chalk.red('EADDRINUSE') +