From 80292d6ccea02e9c2fd29762707c5cb18724fe16 Mon Sep 17 00:00:00 2001 From: Juan Sebastian Montoya Date: Sun, 14 Jul 2024 02:24:26 -0500 Subject: [PATCH] feat(#3): simplify code --- .gitignore | 4 - README.md | 5 +- assets/cave.png | Bin 14384 -> 0 bytes assets/character.png | Bin 10952 -> 0 bytes assets/font.png | Bin 2471 -> 0 bytes assets/inner.png | Bin 17936 -> 0 bytes assets/log.png | Bin 4950 -> 0 bytes assets/npc_test.png | Bin 1447 -> 0 bytes assets/objects.png | Bin 24209 -> 0 bytes index.css | 21 + index.html | 64 +- index.js | 71 ++ modules/canvas-resizer.js | 41 + modules/utils.js | 4 + package.json | 18 +- resources/ocean.json | 345 ++++++ resources/overworld.json | 345 ++++++ {assets => resources}/overworld.png | Bin resources/overworld.tmx | 28 + rollup-plugins/bundle-size.mjs | 62 - rollup.config.mjs | 41 - src/canvas-windows.js | 113 -- src/index.js | 53 - src/level-loader.js | 22 - src/levels/overworld.json | 19 - yarn.lock | 1667 ++++++--------------------- 26 files changed, 1251 insertions(+), 1672 deletions(-) delete mode 100644 assets/cave.png delete mode 100644 assets/character.png delete mode 100644 assets/font.png delete mode 100644 assets/inner.png delete mode 100644 assets/log.png delete mode 100644 assets/npc_test.png delete mode 100644 assets/objects.png create mode 100644 index.css create mode 100644 index.js create mode 100644 modules/canvas-resizer.js create mode 100644 modules/utils.js create mode 100644 resources/ocean.json create mode 100644 resources/overworld.json rename {assets => resources}/overworld.png (100%) create mode 100644 resources/overworld.tmx delete mode 100644 rollup-plugins/bundle-size.mjs delete mode 100644 rollup.config.mjs delete mode 100644 src/canvas-windows.js delete mode 100644 src/index.js delete mode 100644 src/level-loader.js delete mode 100644 src/levels/overworld.json diff --git a/.gitignore b/.gitignore index cc3d535..c2658d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1 @@ node_modules/ -dist/ -.DS_Store -*.log -deploy \ No newline at end of file diff --git a/README.md b/README.md index 4b339ca..59d6187 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,14 @@ A WIP game for learning purpouses ## Libraries Used -- None at the moment, just rollup +- None at the moment, just serve ## Credits - Created by Juan Sebastián Montoya - Assets by: - - [ArMM1998](https://opengameart.org/content/zelda-like-tilesets-and-sprites) + - [ArMM1998](https://opengameart.org/content/zelda-like-tilesets-and-sprites) + ## License This project is licensed under the [MIT License](https://opensource.org/licenses/MIT). diff --git a/assets/cave.png b/assets/cave.png deleted file mode 100644 index 1df7b3efe658055888159ac11a5f24a4117c8f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14384 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%0A-%AM!B!OP-ba(kqmw}(Lw?u^J``zWS99VC z_ScZETfafqYCT{B^+WGiM;Z)555r*exIS9Cn--B=Ell>NCm{7CiKWS{_S4EYx~}@! zV`kKXu$82vM^!Rs%aV#_VTAG?v*4Fc0?5N_TbZ4-IkS~3xR&46*nqY3a<|Xz?*$*W zF1a&Q$fgpyZkB?bn6i@TyFXs9QZe5#r8%ZJQCGKO!hITp7{7oDD1rnsJrPARxAFcCdN zT`~fDlG&r8Z^L}?)U;6pk+P3>1JI}{Vz#6|NL0oKsJOJo2qJtcs;rBDhi7=!KCVr( z0k*z?h`Y|9SX6cjsxyao_npDP>IRFjU;?}gMzfLgLAlVvFx?{NCy)WRcMrrWe!?% z-?_O)k`+mBXc+uJa=vg$QTpsu^k%wCAEOBmziSDh1@|B-?~ry**|dBAucr;+kN%gD z763B#p`%Cny|33JwrAvDjTU}1^xWu--nbvGe=&nyVocxW3@lj+rDr}ynN@a^7{~pi z!8x{urCy&qHAfkK{)6ynWz%2a<_98bcE@J48FTmC(@{hv*}V@Ng;atws;XnHBq5l2 z>1w(heb%TK>>3>fdCb8-s`k?BoM{j#ele~6i9NzibFms(0=6Y&K55BfWe4Un@E`#_ z8D6DkRKRZ`o>flR(z>}fE$Uw&$_|Ox7gAZQ3^>^PF}1*X4aJWL(l=Y+Fp%Cg8g!D> z+4!4DKDzWT#-8;s69osuA1xFuT^n^1<&8|xUburwHM@8!88?Iv*yRngq8f7$tTv7$ zRTJa|B`Qm6sInR-1P@2JF7q@G?_-D7(^3MwD$bug?nJ#+a2hNs2{XV_$J8$pcZYbhVbFYN`C*`XvYzK!r`Yi%v@r`}#lZp?z`-VgGlu7#v{r}Pa` zp63pePBEu75%oedo#Fra3y$YE><7=Q+t(U-k1Zhxfhj`iw==HQ@a`3$_baZ1pJC*} zPiHq2z`bE$*6{KL+Rz#gN*5%L#5R6St&*<6{T&WmTD_|~Rk7>$m{4+YV|jH*F*DEO zA?;1}{NG|qyWLgA4_(FikM%&Dt>@>*?UhbqF*?1?nmeaFOHWZtK>&Ov(qx-WE8s0a!v+plUTd> zDF~W(^yVq4)#%-OUpjJJU0h>RB>uO5P>09b&IP7gjwD+|=t7&yvFm4HBUIDJmCFn8MgRbpat z*nT+N(Il9}u9123EB<&;sB$0JzM!fZJx^lx?c_9_S0g``m$jB}x!co!!*~w&7nB8g zKjXehifryeU4Ehpxo~*55^1D8j<)~t=_&CWMungXpim(ChdxxEeMsTj+^gJ?cRb+4 zlAadNSarepV`hTp{ubLIq?oWHn4bDqE?nxuayb{Gy8Js-TwWIGrI~uz*&PsF%p654 zu%s%HD(GH+7pLkEa2Whf+9tJtnKTdrY6IeWIdzcDW;S)*eD?w1MMm1Tad^NU1ujUd z|IluQPH=;rC9kc0g}?6p1gtOwCSPakg1$S^hCN;!_xE?E=xrN3G#L+vZ>DhIs|+ji zlFBm#BWCDwa-U_EhBvC?2+5aqwXFLz`2d4O4u!Zx3d_2uU}>XhB|j#iOFGCwjA$9L zY_h9VogG+Sp{Kt+V%b8L8y)*QdR+$0_7s>q7f`fZ&hQ>PPNd+|$6+U>L6qNnpSE5i z0je9}Y;HrUVlBBGr+DI^eSi;Dn&Q+kx?$&4@Kz%)_Ey6PB$ygqQ<;s3F94eVN}+OgDtW+xBI; zxng?1;T3-rlWfU33}?+1_~dDnTcJ+`vTc(1YC*7lrE|6EJ)>ch)$OLOdd;AbG-udH ztyLCQz*^STce=V%b!g02{DX;neSp(RxU<{26Y#f>#h&P-KwXv&kTh_c|c=?)i zR!}oE8-?4fONuXWX{G&rRy=Uoh>D4Hzpko<&JIfxby432`P|>4-0}4MgS-oJa;`{y zL7tr1BMHMnIMo0!GXCgsInpRCVni8)@W+8&r(z`Zs`!ViV zaaP??Qcms78|m(d37m^5tDAPa%%OK4Wp9o70wkY}19{A!Vg{kmQNUhP@c2Fed{V6) zO_Fq?g0Z%H*&CXbn*E_fR$XcT9`!T<>}PIK9w#c;f^uZ6v75)<^Sq-dP-QSDplb+5 z-Mf6TaupZi=!P&+K_eMZmP&uw61%uy>jZaM%6>6VU9XjjS$%l?2*Xm=rt3WMy8@F& z!yOi87!gUZ+u_1uUFI*&s={yG^6+1OSz8OjeT@-*|G4?kPPVQ1U0G1X^yQT!=hcK~ zoadyI;ZYjh)6e#%CtJkrtJfQZ5GO?&V(>Nq7&p`RuedgEPEbw5ZoB@W&+h;L!9PLE zVAO4v%?j z?_~z~j=A)n&K(B;H90}iJ_Hx7{aH{qp)t%C*PFKr1qO;;mGS(!U}j?})da@Pqa%Mjo5F9^oCyL>iCB8-q`?YNjTgxIJG`cYm@^bxM0GJeIQKuxjiga2DE_>}(59&(}FOs`{Lyub6E)Otq;;fo(M8T1uZM`35 zmdPN6ziZB9QLj@hd0v;?W$#3KTjx?QCuiFDzz(;KiA&w=&r0cDPIEOgDoW|bEut3r z4wk|29|!nAJ{ez#*L<4!8Mo^P9WptNU#jj`Uow7{%-d3;YX|k=hUI-&+;L}}e^00X z<%$Faz>4L2RCA>`*$k_enltDtc_)=?qv~t=k0iH(Qa-#Cnm@I9v!?rwTEI6WH;v_4 zb7={%>j(KaxL7AWY^pS>#}35$QGBVNU7bhQo9}gu9QrJy_I*;vRF0MY%l*f-&ypb0 zGDb6hK?KPHr(kBYuVcgD%?sM-Y#s-#`t?kRRib$p8g8BbV76-0}B|%$uN^HKRLJqw27L2*P;;Sjo)I7@NRug53{e z93J&9^jmM5<^WwyoIPN->E91tJ%O{1->UCfns|Ui>)dQm|A=-PTl!bzzH=Twf=%hR zlcuK}#z7ag&hQEUBQ@wYOB$ho*BlRe-aLp)Rvq>}5*H;ljHVQ3Tby5P%&4ExFkU^L z++L9K>S%1y`a*fqhiaqgJb_=`zeHoui)|mky74PMX2GgJC_Rg(+?HL1q{z(Vow8D_ z)Muy7l4ilZ&cIUMGEYV2PNp(k`UQQI5X3VurD{1NkkBsd;6zeaz{P;|`3;w=8q_0L z7PTR0_A748jQRi* zdQ;`^ZGZvBYp3MM++UYzlN_5y$QJs*nkArV@ZlB zvRb>NU{9YB8BmA#D|F;AGw*&wG?7#+d>wqP*CbLk?)mH6r3fE07O}-ep#s5DVyU_Rm diff --git a/assets/character.png b/assets/character.png deleted file mode 100644 index a50ceb040f5ad2821d1b4976c19ef2a849dd8fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10952 zcma)i2{e>%|MzVj`EI5%kFKR31Tk_Re<+|=IlSN|%wNwy8#YHt z!6CvbckOcmxFztw#KQlYx2LDGmp{0Kplc7E?fspdgo7UVy9!^|Gq~k+-Wdi#!jPVp zrb+PBdbqbM|MjX(@2eF*c^D&|+~gB;X0kOW%4D8ZSJ~rk%rPMJ*{EZ+yU%OxN1sD8 zN2J*WS+bW}3Q}$+@hFDq1Qp`Hzls%;2&PM*6I6L*2e<4kQ^ek(yqJ3>>yjX`NA%I6FcsK6J=*K@9T7SVNAxZB}{}V_004CBJ6KB z-F*{HV@&0m-DF8E>PZeD6#v-U{E26ex#osmiSC@;c~aVH$d(q>ciTvSWmf*2sx@!$ zLCEH}ZH&%u;TYyQ@JzxfjcMWsjs(&3Q2Czi3v$_BHb&A!?Q3$%ZHhmtQ|q*<5>%UC zHz+Fly)Q&+skTzexswC%vhL`!5q}S0&B+##YJ6P3FK}_^%za_8+b1=sbEPoaO%rQ5 z&+sBa8{gLdu7-mmRf7zVQNI;fxd@rLGC`6aj<30LJ5`nB)lGut7rym2cE($Vy0S?K z9Jl5)qsB}8`}HO-az2;QW7MtpW!{sM58vQ5gk+ z(d(YuE&(EreT6h)Z>!|&tzVuy;_=N_{4#3e@uHIaL|$1Mk%=4mff&K1Uu?{_(Fmrz z`Gi$Zm1phuoNG5vn5BSIwrw@?)79(bla3q1L~%&N8!d-N+p`t_S?BvHB5a8-2kUrZ z!5nAn6XqPaz3hbh)fXH`K27UAREqI~rTh&}&g`eQr}x>?Wn~fk)6#}#%gimTU8w9Y z=H$d)3m`}B>FmOPQ{lWV$=}1c_H)jPE!w_nipf8?!OJhxo{TOlU%ZF@O0<_}SHAQq z*?WXO0jok&^hgT)Iwo$*O;OTcY^@Spl1SD%OzX5#xYa7)+733hPD5F>1En(>|ADI0zR3HfMK zFiu@iv1$c92IHZ<2mi`?`$(222|`9zR!%?}_fTAx2k8Kt0%s(Avgnw;7S8KGsPN*-i$-lK9Gv5nP?w;IAqzMo=4Rd- zYJf2poxUDU-RqfvRlZo~JU@OKS#|J^`h6gq;8~GYULH4Wogd5XcJZ-`YAuyL*ZRWC zsiEMbVDB{>a<34gO-Po+0*27etwKzoxrS==9FZt|@n$m^J;@IAtPL0Mp|0`G4fkM7 zISN6PRE;T+@x7Np+NruAw7nUtRjK?Q$hiIGOE@!;6|3(M}?|b`hmO)G5vWh=}Rp?I9SR9KS#IbpfYU3gh=ua_+A?WYEk;7{H`8jNmC|6D~R1>Y=nL-5_+7IqQZGASDcx@l`H1Y{Y zou+xoB9TLaB<{*wc@zBpt}uqc=@O|ySeKM|?$JG^E?u_W+aY^C;#DGCOud=c&o-Rw zjVHwid=4*eoQUNUYFgcRPGy2ZLd|bpJAPCaDs)6YWewx0^ysrgcZ|4`O1JlooVD^CtClBF{zz|<5f!uqd7hk`Oe1YO|W7Np^^M35qs_b63qTHw1KNN;TY50LB=M}t__+S z*y}h)&Or&^KoBM@0xebuTz>`D1DCyvxrbQ-MGvxXf5kq2n7xN$A)Ji}{D$=D>|Lp& zMa+6QK%P67wphO+rN}R>*6DlRn|%!=r;^3?fYu|YooNWHz&WUNMg z0=GUFGK0t8%NHBy5n6ctkl&F~WQqYQFXx;^e^E-Bqj?>@`PnV>=iY~~w^kuGN)eWr z>o9lPf4g^ zhTsc~wtPVb)D+dGCs<6gqsL<#TxJMPp2dt8DGIRWrPq`q%J7M&uKgl95YMTuD#SlZ ze#0Iy<13wN2YIPmq0+>uuMb6rErqVE$)J^@5WU6qHK$D%|63tryQ-xfVi6{v^!I^6 z`k5y+0G5c;ikNT;e?ICTLI6-=)U~j;AEOw$gjB*C6bknw@ihu7f{jHm!lh$nZr)i= zVp$I2x3YJ~F7z7N_t(7>WzNMO-_tCOYus%Sxd;^nJGc2l4VP zo0%<-8xBThgzPuu#dhY+8BJ#*o;y;0X{7|MgeanMBJF)CmT*1gbi7V$@6Uk{WhBO5 zOReZm>AVh?wJ%jf=ylWL9trGCFAW}nNysVFqGQ}Xm@cppFaFvKc8TSh*otf zqU#DgB%!hKb|W1h{MT`TeB|g})NH>K_I_K*%Ju{5yp#Cy<|^cU17QI=i97t}CYbzE z(2Upf1m1o92PXjRU02HD6?*oQj%)LN;RW}esp*BmDB)^-h}Kir9pQ6QU|$fE+d+dH z7!4|At7K>j4rkL_hY@2-`1(=%R^J8_k^$eg2MCIa2yEPFHG-=Oy{dP3*m-*G6lm$3 zilHXcS1=W;q|bB~R)pSmhqoMW^@>xzU(Lsq%eoPrJjl)pIPn@~DR^4wzDI(@$qG?ZhbuO};0np=Ik!L#1ZG{?l2<2j_1C2Wm zQ*UEodCAuCM*z)agrCR<0o>-9({y=kh^6QFdU-HCUfSPcJ6>GFEaJ9Ct5(9GoP^nF zOB!UgDf`eFcD;0s%i)mlLt^Uyv;Ty5HaulZy`v%2r9E`})azi=ZfCY)<{bMPdp)^D z6%~2XUf>-)!5g1UKvTOw;gX2h>1-t&iR8l47ja4LAI zMQEolgE2BF@0DVte=d!D$IK@jBlf3#lP770At8$h`7neoNDfs}Gx@#kfjSb6xFc{4 z@SD6Em$v}Nw$JnC9pBROYATNfF=3T@)HkOU$yR@xghlbc-$jT2E3EmLJlH zM4ZC|e5)XrY?w-HZlc`m?Ed?vg*Ce**vdDU9v`e`3?TXgoTzgD(MwhAdw9v|> zz(+ej4w=Z8ef~GW)0+ZM+Q^o7n)o`+A_RTZDB3!26RW0I|7wonKewf-L}(JyD~x(% zBi^L!h(ADCQ_vS^3C877weMYsmwbTAfG6lsYnYHt@t)P=>r}apyxc|~9CXDa^t43G zg!KfPtf!QvA_LvYXX7587xpzYIfgiIsl@GJ#N*TdWlH=vxc!UjrE&n9;#Y~(PRJaZ znNKN6hs;F^_UyZ1^ z+G`^$d7csXx<#cU-aiyQEpRlx_`M?hBfk4Hvg^z9B&ySw75iRV(hey#ZM@t+E9+KO zQFogQXF_ONlT%&|)jGH}_$3-6`9hk_($maW>FJlFFOGm4u10y#h)i%xK~hKXzNz`q z4VI$mcuP%Ox-rH4u43>Xc*Kt5+@JL=t>p_6D4Kto@JnHc&xM zKIZK^a&1@^?Fo1VB@pnb=5&cXA(Y5&zZc>99&X1R)FQUatHV0f(4CB(jV8PcCEGZf zE|vRaKSAl>mTfd@cAQg=ZqztYynl7f#0u5%jhD`r?ZMZs009S(kiI!kkKQf#)GgkRulKou2?bQ%p$Ih)~Lk&0WwC69De0!_kQ`%+Qb_P0wo~1BOod0n2$7OjH z-|p^obZj>O89XFLw~Bbq8ol`u^IdGHKi34%gb@ZYsBtY_X6Mvt(C`tlA>c;HWPiV3 zm54i?KUE+0(|8?`!wO`)`IcID=zHxuUcbO=;4dge{6x?&!zZj~VTe-{uCx)k-J;WR zZN59CB+v9cTWwtfE}rr3T%CV98!!Om8{k(E(t26Fv%9LQD{7#n>g`T+Y=tS9aRfK@ zL3E(j7%lho-X8O{zna5ewr1i1|D4-a<+RB^0JINV?!vv1M?Q8S77RG3ln!=i|9IP5 zeOQK?U)0mze=|y%mm~xgJ=ghh;Yxh0zPK;t{hZi*k)Pn|VQG!0QQM1dCv|9USCi`> zWV%#*bTxmtBu~Frrem;0^h$vCaC%#c0cnPjuCsaS)qYwgezN8)MOV+D3tL3^H;bFO zNK0)oyc(*zXr8`=hRuj%QXRyQOESXYp{`Ys#s_~N@2{)GUV+%8M1UtXK~@~X3HCSVN`!dsfaL?!EB3_R+zH3e>cfD` zKR9T&B+9vW#%IJEEP9+5M59#dj@s6M`JjDHa$y)J_#iDqwcuC-R3iQT1E1c!w5m|t zNLB`zmmG0SaeHY1Q*f!kj=wyP5T3-+1)AGch{_Cp>M7}&?U-XVp^87e`sqFDov3c3me&xdPn9qHG}WSs#>QqBUvJ5br$X{DvJwBg=4Cyr?q$CJ+KGipX$(h z>-*GNrz1=bQ5}dcILA9NLGO`mG>!UmIEqx}QwSU9y{=ZF1^reu2z^qN55iKb8VVzl zL^ych5(L=}pHrl}jJh+zpDufTtoGKr+CEt}60RYy_5Y!JZ(Rdq5Qtle>kDjyZgj6_ zcm$TZ6%e5pd5D^&Y%3j;nF<@($XF;VHC-XK2C@pQ zsz5iZ+-!~#=}7NxW)Nd-3ZmGH1l7IZ`K}3j%7sl-%-ED;#Mi z#NL6-BF`98lCw*%_3fBn_9*z^4Ihqeip4vLV6r7T;;&Nao)bN3+A7~Wd3}_r>!4k0 zxH6+#74FDXZ^c(~4=Z8OY8;k4PVsiVccW9`3(rGbYQ}@#>wJ4O7iB#^GhzbIxY4Qs z{RS*o3(&3C(F?h@IVb#WZ*)Z>Rg#T$PifS$%D0ahWhLOWhGpzRmY1dJ8++2Y*m%r^ z9QY{d6TDyYbE{#vb(CLeG;a@VHh7P!NXppjccme>#Fi-j_69}pJtDnP4L(>WrS~CE zeT$shm)-6f#NEHa*wc;)od2UBbP&8TYuVDEAoRxhkzuI4&s9IsJ>#r`aqq*%-5Pp3 zdt-Gh@F~GRlPi%fgXh!IU5vfW1k)$WW{#a}n?V{LJA{&3pXZ#cv&~xsAuGyac3llM zTrjpxdU%|4$J#SN0p0p-@af4%z-sQ`-J#s?+_x#Vwn>qfD13zWiRk=6lDU;ld?HW8 zk%_9uO)>ForDJFZO8RW)vFa{0QT6!fmzu-aWnFw!?{k0K$ZO^s9jy3zfkMb8x+#SU z#)4Pr;H4S}-=M((9F%l=fqpp@K^mS`Uem$Jnn>vkB0PX$c5v$ToYms#rAA9iWUc<5 z#NcM*Hz#= zDaBsl@#N4A1n)9@)Q<^Td3-+Ui2MRaUZ4E?(;Y6W_=*fSYK$HB)-l-jGc-Eql;TeM zxb~Kdt__J_xHVWhqNW*Z>HEI^HxHMwXZon0vxCI{&WrsI1+}9GHE2~@Rra7g z=*)&h*CN!iFWkBdWi>Teb-f#DyE+arfY%fj7BVk4JvzESUpO8ytLRXAkLTr&291X? zSMU6oi=^}*hY1EhO3&7zf6Pq5DE5RA0;UWX3s^UV{mnWMv1R(uHlAn5P51E9vxN3+ zniewiPW0CyV9u^xsU$E6&w%KVh z;l@cgJ+I?s_i{0Ax%n5Rv0oF@<52Qf;uEV5ux0{xRoWcP0Roy}E=UIJT)gEW<2=H^ z+eER$Cu!4txH@V=#Jp^0Sx(_!j=uhAMQSnDbU<{$Sc3te^VpRl0}4@+XP1M@)b`#T52&D5)-bV{LGmR(g+|#Y#kF?8{*&c9n7D) zpDAqE`|!!eyL59=&Jk<=q&xwT1_B9*A;9^LY36ZKDbyvlE!s@jO<|tb5vbNG<(;j! zKlw*&!~PrT-NC4**)$r>$pee-piL!*}FI&m$R8EFP&nD})aHC20pJro|_ddP;N{ zWBzKqR}P}bSD16?xJ}Qocw$}%pGyY(jPTtqz-F(opQh**dh$Gg_sH*Tx~{f8ut&SA zlz{O#FSrCjGL_3z^b41hjpcTwCyy(TQIk=cb)8t^8N8zYRjqAC`G&@Noiepmq}D)8 z*>^RZ@hj!QF3~Mq&@Fic-cuKSikej=S6(Bvu``%Yy_fD4zM$v**}UOixWkjwZs$*)T(yPvI0Z zfEW({m<+HAqS%m&7&yC4rLwLvAW6%ytOyZz3K`251V0~z)V?cU<@`ktvbiT<=kG7J z2cWTYm0)8=8NGi4K@7sjX8~f6eG{!LMcBqv!+wJMT5zZ5~es!LC=^s zVxQ=K!N+4eiSh&V?)azA38}%UNHLbTIy6sZNNS9(M%J_x#DV=0xl_VO(!Bv;cd+&=M(h0dzMA)nlmxP z^Uyo(LQh;$fbX&V^AZ$4yJ2wknSxsSh2VSLa8mtdvT5A2kALv)^h>Yiyl6?=7+R2y zIL;FsXZO3@cDGy66%F02&t^FW3*te5Sx=288Gl5%t5;VZ>-xy~{p6GN^f zIXKijwyKN+p$Ls5hOItp=f2uV)5b-W0HZIC>hQ*q0Z&T${#BsTVd!%D1T$@kYqW)s z^Y+YQ+*Yp#-PY=f3k5{t&}g8qcPq=U)`XVY!#R1dwd?b^R-->Xw;8>NeXQieuQu#B zMw>={%317+)}Ng7&cw{d2%HygS^S(;^HkT)(kE^*j}L%W3cQCE<9N^c%E%T1gdQi^mLHm^K?W-3%Eavx5QCW0&*O8wtECXlocqW7?5@}^c&#HTkdhp+; zx<1jFWvQM4OvhGmis6frD_LFtYD8ghc|J|kqj{P#h{H&U4EH{CJtc zDaPQ_k>$@<e*V(^Rz%@_q;Qfp^k{ z4vXA`e`UnIlZ-hPdgP{BM`e2DJ9vR;u5xLpd{!Of)x6h^Z3@`%1IZ2$xk7sHH^!cF ze1dpl84p;<3upJ++#BZ)&Kl!rT(-or!VG(Q znUY@j49G+qCr5)&jBSpjn%#@^7PyIcYP|r1_*J(4G9l%a&zu-@8@t%gN(KAa-@K`k zyjd;tZ({c!nc#3wI)7S@8OA!yrE6@m_iBFk|X`yXeC#|Zp&NuZfHbLA%={~7Q-Im_7An_1HAV@YWySPY(Q79g@ztGXr$^Z~n z0O5PpR@hR{5ibJ^#EuHedslwrFiYP9U?9^+iack>j(ssy;$@(wkJ(lvf*kxoLZtS^ zXeqJMUHwPHp>A*S$)EW4NA-8lv^cp~g{1JJr1P&oh>&rV^*Y~%g&ndBOKfOBDoS}K{s?&uB z9$U|tACh$TvrD3B#I#hxoKG0gJddd>3VZj*j%7kvM(8CEU+~KtHXq|+VyMLo=4h$9 z6B4>=oa>oS$SG%Ogp@??B-Qs0aMRjEyp9q3sB86dU@@|noES+RU1=9R!(mfRL3$XS zShwck8yZ;295!~Edtw79S0D+G)2ue{6kdjD{)xLTzGZe0m?^;vFWl9LiWFhAA=T<1Xy0p*p2}AZ zc2jC~73?gplq90WcGtv&1mFMr6 z#TD_^ALms$bVMvHzcobbosRq^MqhEmV@va#b9d5B94 zi{yK$VK3q!ooL#d*)z~XcZr7$cE?VH74!SvuEZVC3_tr^uFc3StA z?@3pT@>zwe11-*If8LvQpv?H^NRVYn#-Kf5TK7<_z%7KpnV}9|cL_fK7o5!PK;kN= z4eg1ef+h5z-YAy`B#saKlE##Y8LMvE-*5oN>Jj!JZTwU2`q-guLRrhgp5|EG)R(s3 z-VY=8cE|C6S%uCdq-@jIIniv}FP=8EPbu|``O35e`X11pUsvP5gl_e?rRlN{+`MCh z5ZXG#&Bl4YGx2n#{!jAkIpUY2l=7AnWN;z{uqMF=(GN}+Od`$EWWFhc1?-rA4V|R(w13+IKO6F= zRlD97!&UD;FVew#4M7%bg!@*V@49IRj-8Y=k|n``sW1fQ>waHZ$SwI^Eq7P#LlgcPS%+%#2xGuhPps$Bh!it4UHDd6 zS$V6_?3Y`mRW-w(-)mCOdBz(W!ja~T2>xS0>`7WxU{~T@g!x$gh%>sG$itJgjj7!% z4VK}Wl%Po4X!sUPoFCsz8I5w)xp`hd^DbxF(84^cNX=6*b{?2E-xHkllwDMlp%xu= ze#17PAmJGHpd+{$>Gj!QpfQh4g4Dj4kES4#l9H9^*IQhB<;@t3KEXr-`4N>G1JJPT rwt*N%c~A(*HU9rpoH4&1lPRx!qQo<^V diff --git a/assets/font.png b/assets/font.png deleted file mode 100644 index 012815116d43a5d5bf8d5ccf68f9b0db2f460925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2471 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 diff --git a/assets/log.png b/assets/log.png deleted file mode 100644 index b952a9a145a4c76a3cfebbce2147729590653061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4950 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 mh384Z+*h+BgI diff --git a/assets/npc_test.png b/assets/npc_test.png deleted file mode 100644 index 4e3c1c9dfcb7f8f46cf8d38418a0ccce8b9c83be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1447 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 diff --git a/index.css b/index.css new file mode 100644 index 0000000..3f1fcd8 --- /dev/null +++ b/index.css @@ -0,0 +1,21 @@ +body { + margin: 0; + height: 100%; + width: 100%; +} +#container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + width: 100%; +} +#game { + border: 1px solid black; + image-rendering: crisp-edges; + image-rendering: pixelated; +} +#resources { + display: none; +} diff --git a/index.html b/index.html index b5009ed..b267df3 100644 --- a/index.html +++ b/index.html @@ -1,48 +1,24 @@ - - - - Evolver - - - - -
-
- -
- -
- - - + \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..ff015f7 --- /dev/null +++ b/index.js @@ -0,0 +1,71 @@ +import { CanvasResizer } from "./modules/canvas-resizer.js"; +import { getLevel } from "./modules/utils.js"; + +const TILE_SIZE = 16; +const canvasResizer = new CanvasResizer({ + canvas: document.getElementById("game"), + width: 320, + height: 240, + percentage: 0.9 +}); + +const cols = canvasResizer.width / TILE_SIZE; +const rows = canvasResizer.height / TILE_SIZE; +const ctx = canvasResizer.canvas.getContext("2d"); +let debug = false; + +async function drawLevel({ levelName, imageName }) { + const levelImage = document.getElementById(imageName); + const level = await getLevel(levelName); + const layer = level.layers[0]; + const data = layer.data; + + for (let row = 0; row < rows; row++) { + for (let col = 0; col < cols; col++) { + if (debug) { + ctx.strokeRect(col * TILE_SIZE, row * TILE_SIZE, TILE_SIZE, TILE_SIZE) + } + + const tile = data[row * cols + col] + ctx.drawImage( + levelImage, + ((tile - 1) * TILE_SIZE) % levelImage.width, + Math.floor((tile - 1) * TILE_SIZE / levelImage.width) * TILE_SIZE, + TILE_SIZE, + TILE_SIZE, + col * TILE_SIZE, + row * TILE_SIZE, + TILE_SIZE, + TILE_SIZE + ) + } + } +} + +async function run() { + await canvasResizer.load() + + let selectedLevel = { levelName: "overworld", imageName: "overworld" }; + + const debugButton = document.getElementById("debug"); + debugButton.addEventListener("click", async () => { + debug = !debug; + await drawLevel(selectedLevel); + }); + + const level1Button = document.getElementById("level1"); + level1Button.addEventListener("click", async () => { + selectedLevel = { levelName: "overworld", imageName: "overworld" } + await drawLevel(selectedLevel); + }); + + const level2Button = document.getElementById("level2"); + level2Button.addEventListener("click", async () => { + selectedLevel = { levelName: "ocean", imageName: "overworld" } + await drawLevel(selectedLevel); + }); + + await drawLevel(selectedLevel); +} + +run(); diff --git a/modules/canvas-resizer.js b/modules/canvas-resizer.js new file mode 100644 index 0000000..86e15a5 --- /dev/null +++ b/modules/canvas-resizer.js @@ -0,0 +1,41 @@ +export class CanvasResizer { + /** + * Creates a new instance of `CanvasResizer` class. + * @param {Object} config - The configuration options for the class. + * @param {HTMLCanvasElement} config.canvas - The canvas element to resize. + * @param {number} config.width - The native width. + * @param {number} config.height - The native height. + * @param {number} config.percentage - The percentage of the screen size to use for the canvas. + */ + constructor({ canvas, width, height, percentage }) { + this.canvas = canvas; + this.width = width; + this.height = height; + this.percentage = percentage; + + this.canvas.width = this.width; + this.canvas.height = this.height; + } + + load() { + return new Promise((resolve) => { + ["load", "resize"].map(item => window.addEventListener(item, () => { + this._resize(); + if (item === "load") { + resolve(); + } + })); + }) + } + + _resize() { + let canvasWidth = Math.floor(window.innerWidth * this.percentage); + let canvasHeight = Math.floor(canvasWidth / (this.width / this.height)); + if (canvasHeight >= window.innerHeight * this.percentage) { + canvasHeight = Math.floor(window.innerHeight * this.percentage); + canvasWidth = Math.floor(canvasHeight / (this.height / this.width)) + } + this.canvas.style.width = canvasWidth + 'px'; + this.canvas.style.height = canvasHeight + 'px'; + } +} diff --git a/modules/utils.js b/modules/utils.js new file mode 100644 index 0000000..e86375e --- /dev/null +++ b/modules/utils.js @@ -0,0 +1,4 @@ +export async function getLevel(name) { + const level = await fetch("/resources/" + name + ".json") + return await level.json() +} \ No newline at end of file diff --git a/package.json b/package.json index 9eec8c3..79624f0 100644 --- a/package.json +++ b/package.json @@ -3,25 +3,13 @@ "version": "1.0.0", "main": "src/index.js", "scripts": { - "clean": "del-cli dist", - "build": "yarn clean && rollup -c", - "serve": "yarn clean && rollup -c --watch" + "serve": "serve ." }, "repository": "git@git.jusemon.com:jusemon/evolver.git", "author": "Jusemon ", "license": "MIT", "dependencies": {}, "devDependencies": { - "@rollup/plugin-commonjs": "^26.0.1", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/plugin-terser": "^0.4.4", - "@web/rollup-plugin-html": "^2.3.0", - "chalk": "^5.2.0", - "del-cli": "^5.1.0", - "rollup": "^4.18.0", - "rollup-plugin-copy2": "^0.4.0", - "rollup-plugin-serve": "^1.1.1", - "rollup-plugin-zip": "^1.0.3" + "serve": "^14.2.3" } -} +} \ No newline at end of file diff --git a/resources/ocean.json b/resources/ocean.json new file mode 100644 index 0000000..a7bf655 --- /dev/null +++ b/resources/ocean.json @@ -0,0 +1,345 @@ +{ + "compressionlevel": -1, + "height": 15, + "infinite": false, + "layers": [ + { + "data": [ + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 259, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 299, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 339, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 379, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 124, + 284, + 284, + 284, + 165, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 166, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 125, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 284 + ], + "height": 15, + "id": 1, + "name": "Tile Layer 1", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 20, + "x": 0, + "y": 0 + } + ], + "nextlayerid": 2, + "nextobjectid": 1, + "orientation": "orthogonal", + "renderorder": "right-down", + "tiledversion": "1.11.0", + "tileheight": 16, + "tilesets": [ + { + "columns": 40, + "firstgid": 1, + "image": "overworld.png", + "imageheight": 576, + "imagewidth": 640, + "margin": 0, + "name": "overworld", + "spacing": 0, + "tilecount": 1440, + "tileheight": 16, + "tilewidth": 16 + } + ], + "tilewidth": 16, + "type": "map", + "version": "1.10", + "width": 20 +} \ No newline at end of file diff --git a/resources/overworld.json b/resources/overworld.json new file mode 100644 index 0000000..9046e20 --- /dev/null +++ b/resources/overworld.json @@ -0,0 +1,345 @@ +{ + "compressionlevel": -1, + "height": 15, + "infinite": false, + "layers": [ + { + "data": [ + 1, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 1, + 1179, + 445, + 446, + 446, + 446, + 690, + 259, + 260, + 261, + 1, + 406, + 406, + 406, + 406, + 406, + 406, + 406, + 406, + 406, + 1, + 1179, + 485, + 486, + 486, + 486, + 730, + 299, + 300, + 301, + 121, + 122, + 122, + 122, + 122, + 122, + 122, + 122, + 123, + 1, + 1, + 1179, + 525, + 526, + 526, + 526, + 770, + 339, + 340, + 341, + 161, + 162, + 162, + 162, + 162, + 162, + 162, + 162, + 163, + 1, + 1, + 1219, + 565, + 566, + 567, + 567, + 810, + 379, + 379, + 379, + 201, + 202, + 202, + 202, + 202, + 202, + 202, + 202, + 203, + 243, + 244, + 245, + 366, + 366, + 366, + 366, + 850, + 284, + 284, + 284, + 243, + 244, + 244, + 244, + 244, + 244, + 244, + 244, + 245, + 283, + 284, + 285, + 406, + 366, + 366, + 366, + 366, + 324, + 324, + 324, + 283, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 285, + 323, + 324, + 325, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 283, + 363, + 364, + 363, + 364, + 363, + 364, + 284, + 285, + 366, + 1175, + 1176, + 1177, + 366, + 1175, + 1176, + 1177, + 366, + 366, + 366, + 283, + 403, + 404, + 403, + 404, + 403, + 404, + 284, + 285, + 406, + 1215, + 1216, + 1217, + 366, + 1215, + 1216, + 1217, + 366, + 366, + 366, + 283, + 363, + 364, + 284, + 284, + 363, + 364, + 284, + 285, + 366, + 1255, + 1256, + 1257, + 366, + 1255, + 1256, + 1257, + 366, + 406, + 406, + 283, + 403, + 404, + 284, + 284, + 403, + 404, + 284, + 285, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 366, + 283, + 284, + 284, + 363, + 364, + 284, + 284, + 284, + 285, + 366, + 1175, + 1176, + 1177, + 406, + 1175, + 1176, + 1177, + 406, + 406, + 406, + 283, + 284, + 284, + 403, + 404, + 284, + 284, + 284, + 285, + 406, + 1215, + 1216, + 1217, + 366, + 1215, + 1216, + 1217, + 366, + 366, + 366, + 283, + 284, + 284, + 284, + 284, + 284, + 284, + 284, + 285, + 366, + 1255, + 1256, + 1257, + 366, + 1255, + 1256, + 1257, + 366, + 366, + 366, + 323, + 324, + 324, + 324, + 324, + 324, + 324, + 324, + 325, + 406, + 406, + 406, + 406, + 406, + 406, + 406, + 406, + 406, + 406, + 406 + ], + "height": 15, + "id": 1, + "name": "Tile Layer 1", + "opacity": 1, + "type": "tilelayer", + "visible": true, + "width": 20, + "x": 0, + "y": 0 + } + ], + "nextlayerid": 2, + "nextobjectid": 1, + "orientation": "orthogonal", + "renderorder": "right-down", + "tiledversion": "1.11.0", + "tileheight": 16, + "tilesets": [ + { + "columns": 40, + "firstgid": 1, + "image": "overworld.png", + "imageheight": 576, + "imagewidth": 640, + "margin": 0, + "name": "overworld", + "spacing": 0, + "tilecount": 1440, + "tileheight": 16, + "tilewidth": 16 + } + ], + "tilewidth": 16, + "type": "map", + "version": "1.10", + "width": 20 +} \ No newline at end of file diff --git a/assets/overworld.png b/resources/overworld.png similarity index 100% rename from assets/overworld.png rename to resources/overworld.png diff --git a/resources/overworld.tmx b/resources/overworld.tmx new file mode 100644 index 0000000..909fc88 --- /dev/null +++ b/resources/overworld.tmx @@ -0,0 +1,28 @@ + + + + + + + + + + +259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259, +299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299, +339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339, +379,379,379,379,379,379,379,379,379,379,379,379,379,379,379,379,379,379,379,379, +284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284, +284,284,284,284,284,284,284,284,284,284,125,284,284,284,284,284,284,284,284,284, +284,125,284,284,284,284,284,125,284,284,284,284,284,284,284,125,284,284,284,284, +284,284,284,284,284,124,284,284,284,165,284,284,284,284,284,284,284,284,284,284, +284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,166,284,284, +284,284,125,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284, +284,284,284,284,284,284,284,284,284,284,125,284,284,284,284,284,284,284,284,284, +284,284,284,125,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284, +284,284,284,284,284,284,125,284,284,284,284,284,284,284,125,284,284,284,284,284, +284,284,284,284,284,284,284,284,284,284,284,125,284,284,284,284,284,284,125,284, +284,284,284,284,284,125,284,284,284,284,284,284,284,284,284,284,284,284,284,284 + + + diff --git a/rollup-plugins/bundle-size.mjs b/rollup-plugins/bundle-size.mjs deleted file mode 100644 index fe3ac01..0000000 --- a/rollup-plugins/bundle-size.mjs +++ /dev/null @@ -1,62 +0,0 @@ -import path from "path"; -import fs from "fs"; -import chalk from "chalk"; - -export default function bundleSize({ file, maxSize = 13 }) { - return { - name: "rollup-plugin-bundle-size", - writeBundle: { - secuential: true, - order: "post", - async handler(options, bundle) { - let uncompressedSize = 0; - console.log( - chalk.green("Filename".padEnd(30, " ") + "\t Size (bytes).") - ); - for (const file in bundle) { - const { modules } = bundle[file]; - if (bundle[file].type === 'chunk') { - for (const moduleName in modules) { - const module = modules[moduleName]; - const name = path.basename(moduleName); - uncompressedSize += module.renderedLength; - console.log( - `${chalk.cyan(name.padEnd(30, " "))}\t ${chalk.cyan( - module.renderedLength - )}` - ); - } - } else if (bundle[file].type === 'asset') { - const { size } = fs.statSync(file); - uncompressedSize += size; - console.log( - `${chalk.cyan(file.padEnd(30, " "))}\t ${chalk.cyan( - size - )}` - ); - } - - } - - console.log( - chalk.green( - "Total before compression " + - chalk.bold(chalk.green(uncompressedSize)) - ) - ); - - const asset = path.join(options.dir, file); - const { size } = fs.statSync(asset); - const percent = parseInt((size / (maxSize * 1024)) * 100, 10); - const color = - percent < 50 ? chalk.green : percent < 80 ? chalk.yellow : chalk.red; - - console.log( - `Created bundle ${chalk.cyan(asset)}: ${chalk.bold( - chalk.cyan(size) - )} bytes, ${color(percent + "%")} of total game size used.` - ); - }, - }, - }; -}; diff --git a/rollup.config.mjs b/rollup.config.mjs deleted file mode 100644 index aae7b8e..0000000 --- a/rollup.config.mjs +++ /dev/null @@ -1,41 +0,0 @@ -import json from "@rollup/plugin-json"; -import terser from "@rollup/plugin-terser"; -import { rollupPluginHTML as html } from "@web/rollup-plugin-html"; -import zip from "rollup-plugin-zip"; -import serve from "rollup-plugin-serve"; -import { nodeResolve } from "@rollup/plugin-node-resolve"; -import commonjs from "@rollup/plugin-commonjs"; -import copy from "rollup-plugin-copy2"; -import bundleSize from "./rollup-plugins/bundle-size.mjs"; - -const zipPlug = zip({ file: "game.zip" }); -zipPlug.writeBundle.sequential = true; - -/** - * @type {import('rollup').RollupOptions} - */ -export default { - input: "index.html", - output: [ - { - inlineDynamicImports: true, - dir: "dist", - format: "iife", - }, - { - inlineDynamicImports: true, - dir: "dist/min", - format: "iife", - name: "version", - plugins: [terser(), zipPlug, bundleSize({ file: "game.zip", maxSize: 13 })], - }, - ], - plugins: [ - html({ minify: true }), - json(), - nodeResolve(), - commonjs(), - copy({ assets: ["assets/*"] }), - serve({ contentBase: "dist", port: 9000, verbose: true }), - ], -}; diff --git a/src/canvas-windows.js b/src/canvas-windows.js deleted file mode 100644 index fe83d7a..0000000 --- a/src/canvas-windows.js +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Represents a canvas window that resizes to fit the screen while maintaining a native aspect ratio. - */ -export default class CanvasWindow { - /** - * Creates a new instance of the `CanvasWindow` class. - * @param {Object} config - The configuration options for the canvas window. - * @param {number} config.nativeWidth - The width of the native game size. - * @param {number} config.nativeHeight - The height of the native game size. - * @param {number} config.maxMultiplier - The maximum allowed size multiplier for the canvas window. - * @param {number} config.windowPercentage - The percentage of the screen size to use for the canvas window. - * @param {HTMLCanvasElement} config.canvas - The canvas element to resize. - */ - constructor(config) { - /** - * The width of the native game size. - * - * @member {number} - */ - this.nativeWidth = config.nativeWidth ?? 320; - - /** - * The height of the native game size. - * - * @member {number} - */ - this.nativeHeight = config.nativeHeight ?? 240; - - /** - * The max multiplier. - * - * @member {number} - */ - this.maxMultiplier = config.maxMultiplier ?? 1; - - /** - * The percentage of the window size to use for the canvas size. - * - * @member {number} - */ - this.windowPercentage = config.windowPercentage ?? 1; - - /** - * The canvas element to resize. - * - * @member {HTMLCanvasElement} - */ - this.canvas = config.canvas; - - /** - * The maximum width of the canvas. - * - * @member {number} - */ - this.maxWidth = this.nativeWidth * this.maxMultiplier; - - /** - * The maximum width of the canvas. - * - * @member {number} - */ - this.maxHeight = this.nativeHeight * this.maxMultiplier; - - /** - * The maximum width of the canvas. - * - * @member {number} - */ - this.canvasWidth = this.nativeWidth; - - /** - * The maximum width of the canvas. - * - * @member {number} - */ - this.canvasHeight = this.nativeHeight; - - window.addEventListener("resize", () => this.resize()); - } - - async load() { - return new Promise((resolve) => { - window.addEventListener("load", () => { - this.canvas.width = this.canvasWidth; - this.canvas.height = this.canvasHeight; - this.resize(); - resolve(); - }); - }); - } - - /** - * Resizes the canvas window to fit the screen while maintaining the native aspect ratio. - */ - resize() { - this.canvasWidth = window.innerWidth; - this.canvasHeight = window.innerHeight; - const nativeRatio = this.nativeWidth / this.nativeHeight; - const browserWindowRatio = this.canvasWidth / this.canvasHeight; - if (browserWindowRatio > nativeRatio) { - this.canvasHeight = Math.floor(this.canvasHeight * this.windowPercentage); - if (this.canvasHeight > this.maxHeight) - this.canvasHeight = this.maxHeight; - this.canvasWidth = Math.floor(this.canvasHeight * nativeRatio); - } else { - this.canvasWidth = Math.floor(this.canvasWidth * this.windowPercentage); - if (this.canvasWidth > this.maxWidth) this.canvasWidth = this.maxWidth; - this.canvasHeight = Math.floor(this.canvasWidth / nativeRatio); - } - this.canvas.style.width = `${this.canvasWidth}px`; - this.canvas.style.height = `${this.canvasHeight}px`; - } -} diff --git a/src/index.js b/src/index.js deleted file mode 100644 index d4e1e1c..0000000 --- a/src/index.js +++ /dev/null @@ -1,53 +0,0 @@ -import CanvasWindow from "./canvas-windows"; -import LevelLoader from "./level-loader"; -import overworldLevel from "./levels/overworld.json"; - -const canvasWindow = new CanvasWindow({ - canvas: document.querySelector("canvas"), - maxMultiplier: 5, - windowPercentage: 0.9, -}); - -let debug = true; -const GAME_TILE = 16; -const ROWS = canvasWindow.nativeHeight / GAME_TILE; -const COLUMNS = canvasWindow.nativeWidth / GAME_TILE; - -function drawLevel(ctx, level) { - const levelCols = level.image.width / GAME_TILE; - for (let row = 0; row < ROWS; row++) { - for (let col = 0; col < COLUMNS; col++) { - const tile = level.layer[row * COLUMNS + col]; - if (tile !== 0) { - ctx.drawImage( - level.image, - ((tile - 1) * GAME_TILE) % level.image.width, - Math.floor((tile - 1) / levelCols) * GAME_TILE, - GAME_TILE, - GAME_TILE, - col * GAME_TILE, - row * GAME_TILE, - GAME_TILE, - GAME_TILE - ); - } - - debug && - ctx.strokeRect(col * GAME_TILE, row * GAME_TILE, GAME_TILE, GAME_TILE); - } - } -} - -(async () => { - await canvasWindow.load(); - const { canvas } = canvasWindow; - const ctx = canvas.getContext("2d"); - - const [overworld] = await Promise.all([overworldLevel].map(LevelLoader.load)); - drawLevel(ctx, overworld); - - document.getElementById("debug").addEventListener("click", () => { - debug = !debug; - drawLevel(ctx, overworld); - }); -})(); diff --git a/src/level-loader.js b/src/level-loader.js deleted file mode 100644 index edf510a..0000000 --- a/src/level-loader.js +++ /dev/null @@ -1,22 +0,0 @@ -class Level { - constructor({ image, layer }) { - this.image = image; - this.layer = layer; - } -} - -export default class LevelLoader { - /** - * Loads a level on memory from the specified source and layer. - * - * @return {Promise} A Promise that resolves with the loaded level. - */ - static load({ source, layer }) { - return new Promise((resolve, reject) => { - const image = new Image(); - image.src = source; - image.onload = () => resolve(new Level({ image, layer })); - image.onerror = reject; - }); - } -} diff --git a/src/levels/overworld.json b/src/levels/overworld.json deleted file mode 100644 index 68be0fc..0000000 --- a/src/levels/overworld.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "source": "assets/overworld.png", - "layer": [ - 243, 244, 244, 244, 245, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 283, - 284, 284, 284, 285, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 283, 284, - 284, 284, 285, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 323, 324, 324, - 324, 325, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 283, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 283, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , - 1, 1, 1, 1, 283, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 283, 245, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 283, 403, - 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 404 - ] -} diff --git a/yarn.lock b/yarn.lock index fb9df20..ffff1c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,293 +2,35 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== +"@zeit/schemas@2.36.0": + version "2.36.0" + resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.36.0.tgz#7a1b53f4091e18d0b404873ea3e3c83589c765f2" + integrity sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg== + +accepts@~1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - "@babel/highlight" "^7.24.7" - picocolors "^1.0.0" + mime-types "~2.1.34" + negotiator "0.6.3" -"@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== - -"@babel/highlight@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" - integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== +ajv@8.12.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: - "@babel/helper-validator-identifier" "^7.24.7" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== +ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@rollup/plugin-commonjs@^26.0.1": - version "26.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz#16d4d6e54fa63021249a292b50f27c0b0f1a30d8" - integrity sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ== - dependencies: - "@rollup/pluginutils" "^5.0.1" - commondir "^1.0.1" - estree-walker "^2.0.2" - glob "^10.4.1" - is-reference "1.2.1" - magic-string "^0.30.3" - -"@rollup/plugin-json@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-6.1.0.tgz#fbe784e29682e9bb6dee28ea75a1a83702e7b805" - integrity sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA== - dependencies: - "@rollup/pluginutils" "^5.1.0" - -"@rollup/plugin-node-resolve@^15.2.3": - version "15.2.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz#e5e0b059bd85ca57489492f295ce88c2d4b0daf9" - integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== - dependencies: - "@rollup/pluginutils" "^5.0.1" - "@types/resolve" "1.20.2" - deepmerge "^4.2.2" - is-builtin-module "^3.2.1" - is-module "^1.0.0" - resolve "^1.22.1" - -"@rollup/plugin-terser@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz#15dffdb3f73f121aa4fbb37e7ca6be9aeea91962" - integrity sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== - dependencies: - serialize-javascript "^6.0.1" - smob "^1.0.0" - terser "^5.17.4" - -"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" - integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^2.3.1" - -"@rollup/rollup-android-arm-eabi@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz#bbd0e616b2078cd2d68afc9824d1fadb2f2ffd27" - integrity sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ== - -"@rollup/rollup-android-arm64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz#97255ef6384c5f73f4800c0de91f5f6518e21203" - integrity sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA== - -"@rollup/rollup-darwin-arm64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz#b6dd74e117510dfe94541646067b0545b42ff096" - integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w== - -"@rollup/rollup-darwin-x64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz#e07d76de1cec987673e7f3d48ccb8e106d42c05c" - integrity sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA== - -"@rollup/rollup-linux-arm-gnueabihf@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz#9f1a6d218b560c9d75185af4b8bb42f9f24736b8" - integrity sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA== - -"@rollup/rollup-linux-arm-musleabihf@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz#53618b92e6ffb642c7b620e6e528446511330549" - integrity sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A== - -"@rollup/rollup-linux-arm64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz#99a7ba5e719d4f053761a698f7b52291cefba577" - integrity sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw== - -"@rollup/rollup-linux-arm64-musl@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz#f53db99a45d9bc00ce94db8a35efa7c3c144a58c" - integrity sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ== - -"@rollup/rollup-linux-powerpc64le-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz#cbb0837408fe081ce3435cf3730e090febafc9bf" - integrity sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA== - -"@rollup/rollup-linux-riscv64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz#8ed09c1d1262ada4c38d791a28ae0fea28b80cc9" - integrity sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg== - -"@rollup/rollup-linux-s390x-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz#938138d3c8e0c96f022252a28441dcfb17afd7ec" - integrity sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg== - -"@rollup/rollup-linux-x64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz#1a7481137a54740bee1ded4ae5752450f155d942" - integrity sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w== - -"@rollup/rollup-linux-x64-musl@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz#f1186afc601ac4f4fc25fac4ca15ecbee3a1874d" - integrity sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg== - -"@rollup/rollup-win32-arm64-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz#ed6603e93636a96203c6915be4117245c1bd2daf" - integrity sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA== - -"@rollup/rollup-win32-ia32-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz#14e0b404b1c25ebe6157a15edb9c46959ba74c54" - integrity sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg== - -"@rollup/rollup-win32-x64-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4" - integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== - -"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== - -"@types/minimist@^1.2.2": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" - integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== - -"@types/normalize-package-data@^2.4.0": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" - integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== - -"@types/parse5@^6.0.1": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" - integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== - -"@types/resolve@1.20.2": - version "1.20.2" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" - integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== - -"@web/parse5-utils@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@web/parse5-utils/-/parse5-utils-2.1.0.tgz#3d33aca62c66773492f2fba89d23a45f8b57ba4a" - integrity sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA== - dependencies: - "@types/parse5" "^6.0.1" - parse5 "^6.0.1" - -"@web/rollup-plugin-html@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@web/rollup-plugin-html/-/rollup-plugin-html-2.3.0.tgz#2cca0961b25c9031eb7fd7e3ec8cb29116d3ec00" - integrity sha512-ap4AisBacK6WwrTnVlPErupxlywWU1ELsjGIMZ4VpofvhbVTBIGErJo5VEj2mSJyEH3I1EbzUcWuhDCePrnWEw== - dependencies: - "@web/parse5-utils" "^2.1.0" - glob "^10.0.0" - html-minifier-terser "^7.1.0" - lightningcss "^1.24.0" - parse5 "^6.0.1" - picomatch "^2.2.2" - -acorn@^8.8.2: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - -aggregate-error@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" - integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== - dependencies: - clean-stack "^4.0.0" - indent-string "^5.0.0" + string-width "^4.1.0" ansi-regex@^5.0.1: version "5.0.1" @@ -300,14 +42,7 @@ ansi-regex@^6.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0: +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -319,16 +54,35 @@ ansi-styles@^6.1.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +arg@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +boxen@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.0.0.tgz#9e5f8c26e716793fc96edcf7cf754cdf5e3fbf32" + integrity sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.0" + chalk "^5.0.1" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.0.1" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -337,92 +91,54 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +camelcase@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + +chalk-template@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-0.4.0.tgz#692c034d0ed62436b9062c1707fadcd0f753204b" + integrity sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg== dependencies: - balanced-match "^1.0.0" + chalk "^4.1.2" -braces@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" +chalk@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" + integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -builtin-modules@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - -camel-case@^4.1.2: +chalk@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" + ansi-styles "^4.1.0" + supports-color "^7.1.0" -camelcase-keys@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" - integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== - dependencies: - camelcase "^6.3.0" - map-obj "^4.1.0" - quick-lru "^5.1.1" - type-fest "^1.2.1" - -camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^5.2.0: +chalk@^5.0.1: version "5.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -clean-css@~5.3.2: - version "5.3.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" - integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== - dependencies: - source-map "~0.6.0" +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== -clean-stack@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" - integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== +clipboardy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-3.0.0.tgz#f3876247404d334c9ed01b6f269c11d09a5e3092" + integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== dependencies: - escape-string-regexp "5.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" + arch "^2.2.0" + execa "^5.1.1" + is-wsl "^2.2.0" color-convert@^2.0.1: version "2.0.1" @@ -431,37 +147,42 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -commander@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== +compression@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -cross-spawn@^7.0.0: +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -470,70 +191,17 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" + ms "2.0.0" -decamelize@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" - integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -del-cli@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/del-cli/-/del-cli-5.1.0.tgz#740eca1c7a9eb13043e68d8a361cf0ff9a18d5c8" - integrity sha512-xwMeh2acluWeccsfzE7VLsG3yTr7nWikbfw+xhMnpRrF15pGSkw+3/vJZWlGoE4I86UiLRNHicmKt4tkIX9Jtg== - dependencies: - del "^7.1.0" - meow "^10.1.3" - -del@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/del/-/del-7.1.0.tgz#0de0044d556b649ff05387f1fa7c885e155fd1b6" - integrity sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg== - dependencies: - globby "^13.1.2" - graceful-fs "^4.2.10" - is-glob "^4.0.3" - is-path-cwd "^3.0.0" - is-path-inside "^4.0.0" - p-map "^5.5.0" - rimraf "^3.0.2" - slash "^4.0.0" - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== eastasianwidth@^0.2.0: version "0.2.0" @@ -550,754 +218,270 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -entities@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: - is-arrayish "^0.2.1" + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" -escape-string-regexp@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -fast-glob@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" + punycode "^1.3.2" -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -foreground-child@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" - integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^10.0.0, glob@^10.4.1: - version "10.4.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.3.tgz#e0ba2253dd21b3d0acdfb5d507c59a29f513fc7a" - integrity sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -glob@^10.2.2: - version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globby@^13.1.2: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.3.0" - ignore "^5.2.4" - merge2 "^1.4.1" - slash "^4.0.0" - -graceful-fs@^4.2.10: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -hard-rejection@^2.1.0: +human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -html-minifier-terser@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" - integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== - dependencies: - camel-case "^4.1.2" - clean-css "~5.3.2" - commander "^10.0.0" - entities "^4.4.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.15.1" - -ignore@^5.2.4: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== - -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-builtin-module@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" - integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== - dependencies: - builtin-modules "^3.3.0" - -is-core-module@^2.13.0, is-core-module@^2.5.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1" - integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A== - dependencies: - hasown "^2.0.2" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz#889b41e55c8588b1eb2a96a61d05740a674521c7" - integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA== - -is-path-inside@^4.0.0: +is-port-reachable@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" - integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== + resolved "https://registry.yarnpkg.com/is-port-reachable/-/is-port-reachable-4.0.0.tgz#dac044091ef15319c8ab2f34604d8794181f8c2d" + integrity sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig== -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-reference@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: - "@types/estree" "*" + is-docker "^2.0.0" isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jackspeak@^3.1.2: - version "3.4.1" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.1.tgz#145422416740568e9fc357bf60c844b3c1585f09" - integrity sha512-U23pQPDnmYybVkYjObcuYMk43VRlMLLqLI+RdZy8s8WV8WsxO9SnqSroKaluuvcNOdCAlauKszDwd+umbot5Mg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +"mime-db@>= 1.43.0 < 2": + version "1.53.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" + integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" + mime-db "~1.33.0" -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -lightningcss-darwin-arm64@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.25.1.tgz#f2943d6dc1a4d331de0ff9ad54cd03cf10e0ead3" - integrity sha512-G4Dcvv85bs5NLENcu/s1f7ehzE3D5ThnlWSDwE190tWXRQCQaqwcuHe+MGSVI/slm0XrxnaayXY+cNl3cSricw== - -lightningcss-darwin-x64@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.25.1.tgz#dc5d2d5c4372308b1a326a8c5efcc3e489b654c6" - integrity sha512-dYWuCzzfqRueDSmto6YU5SoGHvZTMU1Em9xvhcdROpmtOQLorurUZz8+xFxZ51lCO2LnYbfdjZ/gCqWEkwixNg== - -lightningcss-freebsd-x64@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.25.1.tgz#bb37f25c2d136ff33b25dd08bee5e167afacc49c" - integrity sha512-hXoy2s9A3KVNAIoKz+Fp6bNeY+h9c3tkcx1J3+pS48CqAt+5bI/R/YY4hxGL57fWAIquRjGKW50arltD6iRt/w== - -lightningcss-linux-arm-gnueabihf@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.25.1.tgz#b5395b55fb8a4cea87e2723c5c61a5124a0d4c42" - integrity sha512-tWyMgHFlHlp1e5iW3EpqvH5MvsgoN7ZkylBbG2R2LWxnvH3FuWCJOhtGcYx9Ks0Kv0eZOBud789odkYLhyf1ng== - -lightningcss-linux-arm64-gnu@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.25.1.tgz#4303c196d8d32b66b6a2f7c939c938bd0f138f75" - integrity sha512-Xjxsx286OT9/XSnVLIsFEDyDipqe4BcLeB4pXQ/FEA5+2uWCCuAEarUNQumRucnj7k6ftkAHUEph5r821KBccQ== - -lightningcss-linux-arm64-musl@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.25.1.tgz#f45d7c832bb9c73a13dfc59c8de4692f7e47040a" - integrity sha512-IhxVFJoTW8wq6yLvxdPvyHv4NjzcpN1B7gjxrY3uaykQNXPHNIpChLB52+wfH+yS58zm1PL4LemUp8u9Cfp6Bw== - -lightningcss-linux-x64-gnu@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.25.1.tgz#a0836d5d25601ea8ef23292a748ea9e52d5bc086" - integrity sha512-RXIaru79KrREPEd6WLXfKfIp4QzoppZvD3x7vuTKkDA64PwTzKJ2jaC43RZHRt8BmyIkRRlmywNhTRMbmkPYpA== - -lightningcss-linux-x64-musl@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.25.1.tgz#6f92021bae952645fe297bea10467c3cccba0138" - integrity sha512-TdcNqFsAENEEFr8fJWg0Y4fZ/nwuqTRsIr7W7t2wmDUlA8eSXVepeeONYcb+gtTj1RaXn/WgNLB45SFkz+XBZA== - -lightningcss-win32-x64-msvc@1.25.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.25.1.tgz#1431840070e5976d5c5b06e44e4304606a01fb05" - integrity sha512-9KZZkmmy9oGDSrnyHuxP6iMhbsgChUiu/NSgOx+U1I/wTngBStDf2i2aGRCHvFqj19HqqBEI4WuGVQBa2V6e0A== - -lightningcss@^1.24.0: - version "1.25.1" - resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.25.1.tgz#6136c166ac61891fbc1af7fba7b620c50f58fb2d" - integrity sha512-V0RMVZzK1+rCHpymRv4URK2lNhIRyO8g7U7zOFwVAhJuat74HtkjIQpQRKNCwFEYkRGpafOpmXXLoaoBcyVtBg== +mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - detect-libc "^1.0.3" - optionalDependencies: - lightningcss-darwin-arm64 "1.25.1" - lightningcss-darwin-x64 "1.25.1" - lightningcss-freebsd-x64 "1.25.1" - lightningcss-linux-arm-gnueabihf "1.25.1" - lightningcss-linux-arm64-gnu "1.25.1" - lightningcss-linux-arm64-musl "1.25.1" - lightningcss-linux-x64-gnu "1.25.1" - lightningcss-linux-x64-musl "1.25.1" - lightningcss-win32-x64-msvc "1.25.1" + mime-db "1.52.0" -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^10.2.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.0.tgz#cb29b4b2dd55b22e4a729cdb096093d7f85df02d" - integrity sha512-bfJaPTuEiTYBu+ulDaeQ0F+uLmlfFkMgXj4cbwfuMSjgObGMzb55FMMbDvbRU0fAHZ4sLGkz2mKwcMg8Dvm8Ww== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.30.3: - version "0.30.10" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -meow@^10.1.3: - version "10.1.5" - resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" - integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== - dependencies: - "@types/minimist" "^1.2.2" - camelcase-keys "^7.0.0" - decamelize "^5.0.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.2" - read-pkg-up "^8.0.0" - redent "^4.0.0" - trim-newlines "^4.0.2" - type-fest "^1.2.2" - yargs-parser "^20.2.9" - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" - integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime@^2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -min-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@^3.1.1: +minimatch@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== +minimist@^1.2.0: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: - brace-expansion "^2.0.1" + path-key "^3.0.0" -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" + mimic-fn "^2.1.0" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -opener@1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" - integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== - dependencies: - aggregate-error "^4.0.0" - -package-json-from-dist@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" - integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== - -picomatch@^2.2.2, picomatch@^2.3.1: +punycode@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -read-pkg-up@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" - integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== - dependencies: - find-up "^5.0.0" - read-pkg "^6.0.0" - type-fest "^1.0.1" - -read-pkg@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" - integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^1.0.1" - -redent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" - integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== - dependencies: - indent-string "^5.0.0" - strip-indent "^4.0.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -resolve@^1.22.1: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rollup-plugin-copy2@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-copy2/-/rollup-plugin-copy2-0.4.0.tgz#52e8cb0a900150f2050f2b2a2aaa62bc387a23f2" - integrity sha512-ZsJhj+gDwyWRTu6KwyYLmw0mGcdzZ/BuxpHxXYWmp8H9PVKgVVdWpM+W6vOjv6MjNBW9ORBadmBx83R51r+fsA== - dependencies: - glob "^10.2.2" - -rollup-plugin-serve@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-serve/-/rollup-plugin-serve-1.1.1.tgz#bc06363a23d0a207f61f9b2bed8100a539481cbd" - integrity sha512-H0VarZRtFR0lfiiC9/P8jzCDvtFf1liOX4oSdIeeYqUCKrmFA7vNiQ0rg2D+TuoP7leaa/LBR8XBts5viF6lnw== - dependencies: - mime "^2" - opener "1" - -rollup-plugin-zip@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-zip/-/rollup-plugin-zip-1.0.3.tgz#91183d7444fc5783987bee3d086ef5dfeb24f16e" - integrity sha512-HTF9I4VjJnDVXd37P/POZPi8p5Luq4mP7A3Lbaxk3wPxRg8DXbxLHDlWxP9X3I1wYYgbT+xHuw8WEwb8RKwpQw== - dependencies: - yazl "^2.5.1" - -rollup@^4.18.0: - version "4.18.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda" - integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg== - dependencies: - "@types/estree" "1.0.5" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.18.0" - "@rollup/rollup-android-arm64" "4.18.0" - "@rollup/rollup-darwin-arm64" "4.18.0" - "@rollup/rollup-darwin-x64" "4.18.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.18.0" - "@rollup/rollup-linux-arm-musleabihf" "4.18.0" - "@rollup/rollup-linux-arm64-gnu" "4.18.0" - "@rollup/rollup-linux-arm64-musl" "4.18.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.18.0" - "@rollup/rollup-linux-riscv64-gnu" "4.18.0" - "@rollup/rollup-linux-s390x-gnu" "4.18.0" - "@rollup/rollup-linux-x64-gnu" "4.18.0" - "@rollup/rollup-linux-x64-musl" "4.18.0" - "@rollup/rollup-win32-arm64-msvc" "4.18.0" - "@rollup/rollup-win32-ia32-msvc" "4.18.0" - "@rollup/rollup-win32-x64-msvc" "4.18.0" - fsevents "~2.3.2" - -run-parallel@^1.1.9: +range-parser@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== -safe-buffer@^5.1.0: +rc@^1.0.1, rc@^1.1.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +registry-auth-token@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA== + dependencies: + rc "^1.0.1" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -semver@^7.3.4: - version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - -serialize-javascript@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== +serve-handler@6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.5.tgz#a4a0964f5c55c7e37a02a633232b6f0d6f068375" + integrity sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg== dependencies: - randombytes "^2.1.0" + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.1.2" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve@^14.2.3: + version "14.2.3" + resolved "https://registry.yarnpkg.com/serve/-/serve-14.2.3.tgz#047ba2b349354255bc09e0332cd41a92787836c9" + integrity sha512-VqUFMC7K3LDGeGnJM9h56D3XGKb6KGgOw0cVNtA26yYXHCcpxf3xwCTUaQoWlVS7i8Jdh3GjQkOB23qsXyjoyQ== + dependencies: + "@zeit/schemas" "2.36.0" + ajv "8.12.0" + arg "5.0.2" + boxen "7.0.0" + chalk "5.0.1" + chalk-template "0.4.0" + clipboardy "3.0.0" + compression "1.7.4" + is-port-reachable "4.0.0" + serve-handler "6.1.5" + update-check "1.5.4" shebang-command@^2.0.0: version "2.0.0" @@ -1311,68 +495,10 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -smob@^1.0.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/smob/-/smob-1.5.0.tgz#85d79a1403abf128d24d3ebc1cdc5e1a9548d3ab" - integrity sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.18" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326" - integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" +signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== string-width@^4.1.0: version "4.2.3" @@ -1392,14 +518,7 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -1413,64 +532,47 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -strip-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" - integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: - min-indent "^1.0.1" + has-flag "^4.0.0" -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== +type-fest@^2.13.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +update-check@1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.4.tgz#5b508e259558f1ad7dbc8b4b0457d4c9d28c8743" + integrity sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ== dependencies: - has-flag "^3.0.0" + registry-auth-token "3.3.2" + registry-url "3.1.0" -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -terser@^5.15.1, terser@^5.17.4: - version "5.31.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4" - integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg== +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" + punycode "^2.1.0" -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -trim-newlines@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" - integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== - -tslib@^2.0.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== - -type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== which@^2.0.1: version "2.0.2" @@ -1479,16 +581,14 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + string-width "^5.0.1" -wrap-ansi@^8.1.0: +wrap-ansi@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== @@ -1496,30 +596,3 @@ wrap-ansi@^8.1.0: ansi-styles "^6.1.0" string-width "^5.0.1" strip-ansi "^7.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^20.2.9: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yazl@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" - integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== - dependencies: - buffer-crc32 "~0.2.3" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==