From 6558aafbf1337333fde884ed1876579fa9bcb49c Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Fri, 5 Apr 2024 21:17:42 +0200 Subject: [PATCH 01/41] chore: Fix spelling mistake --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index f2f0ed2..06d0202 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,7 +19,7 @@ repositories { mavenLocal() google() maven { - // A repository must be speficied for some reason. "registry" is a dummy. + // A repository must be specified for some reason. "registry" is a dummy. url = uri("https://maven.pkg.github.com/revanced/registry") credentials { username = project.findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR") From 3bec9b5f28c59748a8641e02fdcface1b48cf39d Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 26 May 2024 00:43:40 +0200 Subject: [PATCH 02/41] docs: Improve issue templates --- .github/ISSUE_TEMPLATE/bug_report.yml | 4 ++-- .github/ISSUE_TEMPLATE/feature_request.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 11ffe93..6569675 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -70,7 +70,7 @@ body: Before creating a new bug report, please keep the following in mind: - - **Do not submit a duplicate bug report**: You can review existing bug reports [here](https://github.com/ReVanced/revanced-cli/labels/Bug%20report). + - **Do not submit a duplicate bug report**: Search for existing bug reports [here](https://github.com/ReVanced/revanced-cli/issues?q=label%3A%22Bug+report%22). - **Review the contribution guidelines**: Make sure your bug report adheres to it. You can find the guidelines [here](https://github.com/ReVanced/revanced-cli/blob/main/CONTRIBUTING.md). - **Do not use the issue page for support**: If you need help or have questions, check out other platforms on [revanced.app](https://revanced.app). - type: textarea @@ -102,7 +102,7 @@ body: label: Acknowledgements description: Your bug report will be closed if you don't follow the checklist below. options: - - label: This issue is not a duplicate of an existing bug report. + - label: I have checked all open and closed bug reports and this is not a duplicate. required: true - label: I have chosen an appropriate title. required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index b497314..7e1b32a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -70,8 +70,8 @@ body: Before creating a new feature request, please keep the following in mind: - - **Do not submit a duplicate feature request**: You can review existing feature requests [here](https://github.com/ReVanced/revanced-cli//labels/Feature%20request). - - **Review the contribution guidelines**: Make sure your bug report adheres to it. You can find the guidelines [here](https://github.com/ReVanced/revanced-cli//blob/main/CONTRIBUTING.md). + - **Do not submit a duplicate feature request**: Search for existing feature requests [here](https://github.com/ReVanced/revanced-cli/issues?q=label%3A%22Feature+request%22). + - **Review the contribution guidelines**: Make sure your feature request adheres to it. You can find the guidelines [here](https://github.com/ReVanced/revanced-cli//blob/main/CONTRIBUTING.md). - **Do not use the issue page for support**: If you need help or have questions, check out other platforms on [revanced.app](https://revanced.app). - type: textarea attributes: @@ -98,7 +98,7 @@ body: label: Acknowledgements description: Your feature request will be closed if you don't follow the checklist below. options: - - label: This issue is not a duplicate of an existing feature request. + - label: I have checked all open and closed feature requests and this is not a duplicate. required: true - label: I have chosen an appropriate title. required: true From e65143851d1417802bd8ce5d042de6ab662d8f93 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 26 May 2024 01:02:09 +0200 Subject: [PATCH 03/41] build: Bump dependencies --- gradle/libs.versions.toml | 6 +- gradle/wrapper/gradle-wrapper.jar | Bin 63375 -> 43462 bytes gradle/wrapper/gradle-wrapper.properties | 8 +- gradlew | 17 +- gradlew.bat | 20 +- package-lock.json | 3059 +++++++++++++++------- package.json | 2 +- 7 files changed, 2199 insertions(+), 913 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c3b1bd4..d61b0dd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] shadow = "8.1.1" -kotlin = "1.9.22" -kotlinx-coroutines-core = "1.7.3" +kotlin = "2.0.0" +kotlinx-coroutines-core = "1.8.0" picocli = "4.7.5" revanced-patcher = "19.3.1" revanced-library = "2.3.0" @@ -15,4 +15,4 @@ revanced-library = { module = "app.revanced:revanced-library", version.ref = "re [plugins] shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } -kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } \ No newline at end of file +kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 033e24c4cdf41af1ab109bc7f253b2b887023340..d64cd4917707c1f8861d8cb53dd15194d4248596 100644 GIT binary patch literal 43462 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

l-wUqma}v2c(1Oi^~*7`Q^d3B zN9%e+InQHDlq^-wsPwt)37;w=^3Ev9Y<8Mh<9hxseU)oEy%USKD(y7&6qYa9ha7AeTgD7vXzxg@ecC9|wBNT+-mrNm&Pih6jw!K{zXL)nAMZwAtW@fL`3Lb7XyBwwLr|Bks-*e#1b5HFh z+^oO6ei-On3&_Y3uF?~gbtumL{_;@Vst|1*mNQQ8B0pO3mMKbmmIm#;!2C=+f9CHT z*Q^l34UzGpRy}VTI6b#dSy+=G_4H)=(q6m5%{McG4=l`H(rvnG!nJ94tfx3>PWsU% z5OnLhIW7V7MYk8iXpB46t zzj2quVwXVi{f8}X$)EpG{7qdb^wp7z!cm6~STe*WZ1{FNyi=ggJZ6SL_W}-8A)FQJR#q)lEib%k-C<#GY8`95wj5bn?e35Bs^wrCm;L zI-;Xu{GZSE?R)Rpp7mFHB==5Oo3XO?k=iqzHLfh#zq@sl7W%)CJG7%dXVEz?_U`%F zx>9qOJ^j4a?S7c?^sbxV(=J^-sx8c&CS>Gh5?RyWdR26~!Q7oG>nGk*u2``2iONx} z6&;pAAN!ZaDSe;+adnf&*D%Y^ChGoIE2E|?Upld1URc=GXDdJM_>^>4BleR(ZW0%N z@YQ{Ww`5+fIDL7VVAfjx^{ce^czR>J*(cS%shJa^@dr3tABTCTdt82)t^Ax&+-2~=h64{ z8FI`oCrnx{eEjEQyQNzCN0yv2lww`yAS-S6S?8Mk$;-*dPqLe^o~k^w{L7PM_r?ef5R`4 z>nu0kvA;ZCe$k2He?RLRsbyV;zampw>gu#OOdQ%mJl+O>{<8Y9iT?$m{oQ-c@``1& z-(fnH>$vymbD71{mF&v>ujaeID6g!t^sg7J_IG|^^Y^bsWp~r9oIT%q`1RMf%{f<^ zwe?l=uDIRLw@$W8->Ma_tg<#tH_&;NYnZNLw(;jI4h1_?7N*1Leh2-kG&isB3SMOV zDU=~YOrkRFWA$8rwqTw9P1h{lwl{wkT({!X)5>q0-=0F=cNKF>KXbac7Js!+vVrTAcjty}+E&X?irQVtJuZJk%~ZJ%(Ax|md7 z@OFN_9hOhlbS2pe6-C;tnU*hPm$-k;RC_P(mfH`{PJI3~fi2M3=a@u(PetWrj`*rm z|0-wx_^Gh{&F7-q8rvVQxg4VF#I0o6__)}yj;pHjxkmZ94c5n_3Y)q(&L+6*xmH>E zoujQ8?<4fl!rsjNTzdiknQgD*38p8ou&;b}BioIUq>A@|FtZMXHeiX_^6 zWtq<)`r@h=)2#E7Mf``|HzX}(eQ8^&SbkyouRBda0RmPB`Fk%5B`S6}E^M0ho2A}P z=u+2}J9g<29V{R$3Op2_tgLYC9QVvWalpb%C2u>Vb87a*P7?bKc4Tt=E1L2TZwi(G#WG`0)BdSnzMNhB=axaHb*APsSIYanx<6fdBzV$ZOZWIm#`RmY^i31C zD+!fVEbZR4_fpoH_$E_a#>tb55@cTp79|N9yyP%2g|p zC5~(7ZteMedC!%1Q_HxtcYBBI(~7uq&0?1S>yKWtWqx10cB>^EXS`#~@J2)+?qye~ z@}+sflP%V<9}gF^oTqd$^k^x!F+1cr;(o1-Jj}5 zolk!ve&llK%cvKp1b2q*l3MdT>U!1dohPp**+$1i$Fj|PyKckRJ%>sURDIjQ^SZM6 zwc67noBX1?X$S8=+!bsy_4HKPYnz>K=GyL_GUMx;@H`QJ6T`qi*Bz|a9!pd9+%j8c z%ls6h3m=Z0bal?C&T~2ZS?3499 zM{n8tOQeq9&zSjU!P8An+D|M?7RI=0KV@KjQnhO8^-EfnwpUO3hUmw;I{p+eJrS5S zC4X7>lm3fYl{2oL_DhBUvCnLrrd!{4j-K;9aPsO&vtqMX9xYYhy6c{M?z-oht1o%oo)Vq8`;%x^c-#`% zQ>QP8J}Z6Ut#ll+#(4F6D~10e3=F-R_-0|0u#c~L<`tJD=Hy^3EA9>Fu8B?+{a^2S zxw?9`?X7jUFYVow*Ss$G*4`*LiT<_Bnp2Ff^-jtS%A0)qTb^g$&Yh9waY{-`T}(~4 z8Z}mglyIHV(-o0ekZ0f!7$WBv*YtonFeK!_+2VaFvA0rp{HuGp^ZD<6pY85jKEGZ6 zp|PD&M{qT3Sxn*4TTiElmA!hX>t+)qxrV1a^jcWk+KBa%S7k4Eu_uKcSx|brL#pb~ zg0phAf*ju^9_n_c=mbi>xwM#b@wQFdtpzSuGpl{>(COC6i@4;O{`P6)uXQOVUfi8> zwi{*yDBsIH#(UW8@!c)Eu5J)k>Ap7oy6)O&xekeFZT)aXmMv!5neDyCXI3a0T;8<% z_3m6-A=6jCbM|h(zTx%k$DHo{ZqN0@0u&4?H}4Bw-~a04yI;lD=F*AojtdXy?3`6{ zCZqO7SNr5`xku*yQd7EYy||5OD#!L$7k>t7uW>h@u{SeQI9g?9=2hdmNe+hdJ7;jF zZ_VVMl4^MSjnAg#*KS`7T(slimG$wreOy#)dX|*Uyz3cV6_SwXE$4je@&?WC8W+W_ zY}1ndDH++x2Og`k+kU8L_BlH)xdoKi>iNCz( z!?OJ~aXtrJ{>^%LRK@4n`begCTFbN#%kXmjVPbt!_38eURjs;@lRd6g7WW1i#3wjy zf4JtN<%E|RzUPF}biY2bkXfI|xQb<&Y}(Cd1?Sd!&AQl;sJ-G^z~M)tN!M2$@A)XT zq+fV5!>bvQww1GL1^PKyR`uCbsN}kdY>enp)ydVAj8D%Eyr{6iD(u%3arF%iQaa)@ zrkgh1Z`S=f!Sky=tcK;|AD)~?PR{$X zk3~wIJ93lhxV-YjrecrVUk)0tm9Tse<98x#jbyOet!?Tu%F7aTE6;6s88^Lu)!w!( zB_83<{S(<P4$=eF~emcHiHbwL7bOUjPBbUqqmYz5qa8S)_S6p02 zkgLY|>0TmFxGyez_;^RhA&G@dZzhP&eQD69S*g+E8)!RGK`?nznBF8Vwp~BUN}rcU z?K{2ZfJ$o7>Zs`ceM=T@)Rp|4#2vjwvc!9Ar`QV^{`drg(mT@(V z%S9en)lBS4j?uf*QMso;_@`l3X}PpYhTA^tD@x{`x6bZZ+9C5lbyJn;a{i@L?I-Dq z)``YHHM(>#HNCyz{fapvciiSFPK>*A?)d(;^^=cZ=G3fCJh?+8A^vWowdITZOCHUg z?H^Y&d-uV#J5$%bn&}hxL3Y)vzO9?quH0!EEwcY~>C3#Dej6|2rkh)9w_X+RkE&Xt zY23hJ@?@vg@gV#C{qh^?z6Y48Kb}5gukM{c{nO4aZWDZ1d*f(}y^ncs$=^G3uNk{$ zmvUAnhwum|Nr$9v59(ZDQ?>rYJrRAm102Pb6V{ydik+eDmMsu-u!aPnNC{$y_+|O!x7dGi)oI4hZ)}aYj{6 zy8T7Y#?|vuit1v)`a4B`Vr%~XowC-pPK$ktul>@JGn1WfPSC7qvzc^Zch6U|(3v+w zA9Ee8$p6E1KI?~No#ncVY3m=mo85{p_On-4conk8;n>8JoZ50Ks`ZoCGE6Fp?a%$X zwEe*SqU{EAd;-5eO8s`oyP~yZn^0-tEZ&ekZfB<@=S8Q?a87-`BUy^kW9jveZEklT zf4_Ne@;aG0MJm5^8L$7^cF}IqX7?%eN9K2ZVEkwR!u^l(rS2Wvof0=+vOl7hQ}n-r|HT!rUZl-A^`a-{_N=Os-Dh`LWF9&E^7UW2 ze@DOkS6g2?>!Z(^&^`JFe+@(}yV_eXX1;dzTPas1xWd9i^l3{Qo7CQu26-t}ce-XT zS-&UXkSe>-!)HOeK58&e_>l2q{eqwOoMZ2o?Z|mPYnEW$r0^AsI{dRr-1}~XwM>s) zF#DWj%#O^etZ!YNNt4vnI!;b`f7AQ2%zNLos`6*&I)k#9msFnP^POdxoNvIN z-_vxGgU;(e6Uq-f$uzD1r0Fi@lnqK^0hQ5wN_w*ExjWZu^3Ji@UQCl;mT~Ua z@s1~REPIvixV%r3y1G+kyIS(xw!M9}E?dt!E6Y}j%{!_3=N1!3mGOkQD4|Q%-cD81 zFM8j1eSX@Y_1@*x9IMrSIW=uw?L6D;Cs$c=*4aFt^>=%_4&wh+vXXvTw>RjUAS!55fM;mzN)p?mGNY(ZuswoSJ`S z&Q;7AX@9x`0`9tR;@kT+*u5ZCV+HTS$^7PGyQTL&z4z&nwc+vQ)2gSpGzl-cbky#w zd;I*o{kOE)`1U@!+_cJnul#&rkNP_b7y6g}`KsFJenQo;_sf4S>m$ocr+njo7-nSr zwp(PMVNd>6ewnJKFWNFk9Js8R?NTMaZ%S%TImQr|qpz>Ehq=1;l$}kKwts6=SIY7Y z&A}2$@9)ij`XeAfc4AQNDu3=2Cqa+-F;j{sJ#yfaJUH)y+Omo%Tci*5w{OsI{p)Dj zy1X_kK+-|`_sSE;xvR6BBb}%8U79~p@$ipOuJhCPS!DT^#lO|CRp6~HE%9cV+T^x% z&xz8&6&qiaZCnv^xA4QFoF^~MgN<&_6s}*zu|<|ktRTj_-n_@W{NY=Xe{sLgi~PIn zFL-$Jr6B(WUzj(!ZRvZkf8n9_4}Ka?K9{uIS=xS!>r_j|XA`kyE{>In?zbld1TC5o zq^j!mYh!C~zN}!XqP(t;w2)}Z-;NocznzoBcIMezR_U**X-!S?3(&3L@Y0BQ@=Y`M z$*o0GX1F(6U$AO8`DJy2*yoqYSqTv#%UJ^Vd(F^FOwfP!i)+)qk0nz&e-%asM8{4R z^1k&nwNt=iy=lSwjtH?wXXJ%=tAAL_9ycm%T2i~uXU+^xmAA=)dztbC#XBZvaP5yi zG}q*?k<5|5LUwJnLhqJ0_B`yah&*)tLt9J!Ls`!I;!TQQBYY2WCe3OQO^fCC z_jPUIs+RYiQ`bqyntRVte7t?fFV%AsKHiQg2l1?9zkAG4e7rkmH%L(Ny0B3Ci66o1 z(m_1&7=6zijg>mmS z+b=FUM@&N!^P9SMuSlxn=*{RlnpNRyuGS%;woA(3WT~0j?rRH=Y-L=!jyv#Kk-^bg zty6c?6IWI9F57uMdDm~IA9rRik=efH(YycP{f8zGr}!M^W?JjB)~5>nOkbPL^~tF1=KJhF8of93 zA1yh*;)?#C^2iMDrMuhwPDV)@8kT-~T{KaAdumpNzpB=K@ra0j*&pQNc8X}|u8*-Q zFbH&%3}siAkUc7p#iu2qy(+WuAak9n$qvoW=Xn-{1;kwCYTNvvz~J0#o$}8bg$!4( zu3jzfv(7eo)xVyZ>I?d({SsU14_ZkxS>-K579#`0bG*y26!7-+&?0bY1b0pF^HO_u z&uKM+{I?~P zoZqrG<=#1|8Rb257Vc&fb1yZYDQRl7{EpMT+?R6Kiq~DdXJj_%%phfaF!oaG_@dB-knaPv8BAahyj;G4|Dg@t0z%1d(I-k5ksYI*cLEK7J|DQ? zsr;CAW#3A@^!^?RzRR;hdjD!}-7#5n%GUD{meJ>p)~-IfWA`4OYgdom^jY^{*7B)w zwljMk?)qKg9lpHe+O0k52YCg;%hzYlyr;L!J$d_u57Vr!M%k>WUTnKA`$>DzjeFk= zChK4ORxo4QrJ~-ZD+i|hiO-Z;qShN0;5_5dmL>C;wix*+uA097_Ms&glYU0=PJfwo zz0G&FnPKmhJwZ1!t%FY`F1xGQKGpqHZSy>Zkv-*=v6KeAEEe9n2%Wwu`$+;+coT-JMEv8n0G`7L(ergelcnk={& z=Vkaa_A{q*<1%}n-!B_xyjOTs;rMy#+GmF>%1r*(Z@sH1!?~sV`0v}#qE&p_Uv{ie zQk-wx?(~K4Am^9d)rmcEx4$h|X19&Mi??dmW65)EXC1AUT`W8pb312tL{(f+v%2O| zwm$jEll=_d)@HMu{J2XweD1NJEywikgr`S!3MKOOhYQ8U@BC+wySj1G_A;de`yT=R zMW?sDRcvCut|4~)gow;#>GyZqzqIyjzb#{^;^8JxVX)n)dn)7aXHx0Y{su&|`6OTR z>~(u7a(PwO+h1!pHn9t~&EpS>+jKbRsdvR@(@hy`CdqCv%a-oylaD{a(0F5GT;n2l z*4`Ma-VCjt)KY#c_KjEW>pwboX-CED%h)e@ z5C6XFx)y5wPIt!6H6g9Lcp@#eTmwkTI-m`hB?PmdN*$ws%_A4%a zzs&Es(=Go&Z`;fEmkmcg^e1>NNP1Y8om~65e7b1kgzuO7JN4c>r$*m!=6>_1;Y|%& z>XFUbyViAF4f%TfrSqZRi7Tbv>n!-qdD->khTSiflN`Qy%H{mJ7*td@EmLyCW#cEe zb~dGZ`0`yYR!X$}tMd89VWw>3#ZhZl*v4oxEIMp8VZz?cSF^TWdeN5k>B-lRFILpu z>fn=X6aD(d#!0&JNzcpPvMo`y+e~w;ey%WIRsF+ok@RYF{=QcnEeDOP->utsR#5%AY;I}vTCY9s!DT1imcD#x6Zz74cW7SYj12!{&Hm4H zTV5=`u>EYs=YWHs&g^N-J1!x-)A83#OV*OGL-Q}ZV675t-SZ?)CyaY z&mIJq$TH?irtkf9=#Ik7bq@P|_A9;F-*v{;|FvyEv5m)mzFtA8-+=*#zI3%5Nq=$m zrtiv5n@15<>w*s~le%@dPp_YKZ^#zaqkq(XS%%ApEmYk!w{pOW;Q+rvUs{fk&zyXqo7kv*%<{I2%d9=bd8+pG84UsOMOrySdS zl_xdhZ=+lM5_^~YWnO2#Xvqm}49UG5s%N~L?}1&tPrcH*zrhttuQfXUGCuH@=aewd zKk*>ee{=R}+54Z=OR4vD40O^JUlzY4UZ~}t=&vnyyCynmhlByWBbkee!WRq@w#ugYLME1Oq0(!VG+ ze&6qGcw<>iz~L|RnWp|<@PCzFJNqi8pY;d&<%Ig(4xjGP6N#AiuvE_S%6g`3&Li?J z_crahWL;djCf6^$`M06M!EP3DhRg-YJiS33%nbM6tx6Gpq_C?qde4=n82%gFas3u* zm)~x*ymdydt}ypImOR3SO%$Z75Kb2pt)Fn6jwZ&#!dT6*zP5*Pcr z2Wh>tE1tf|U8!)NtwZUjx9&!-^9m|gEPtn8Q^+)3f6?Ml_C%%+HZQNn8ea}}Fm-sO z`}EVydz*^xx3(w-{V3b#tkd{BTKU6F%_kSG$rSP~PiGN2e1|C{q0)Aa{$@{8*+*ailSKMHI;`)xi zc#`$2g~94stmic4ZO=aJ_q0AXyR!Sl4K7J9N!#dW9G|yc5(>J!>PC~{dFz(vau&rd zb00puw=#(PsP#ps#EFF8 zu8=EPV}IhkUZ2jXwv3bNPj?mwRkaARAJo$KIXua}^G^Bd{joVWa(Q02&Iy;4pR-x^ z`S;Ip8y_=VKKH+Ufx>&|v#YnLRlKZV-JUNZZW{7@Px<4mlX{&7I%di zSWb44th{_bJ$)k2^rb$hZ^WPAmpqp!=sG)4wCTgPeyJz#?SEuV*#A#MYMJT+#{&tP zy3XfpIxo6?`0aT8$mQeeD?duD_2BmjD*mIj)+=VI$M4Xn;>d%`=UuzB>ylcXK=dmI zarH;8yFO=3G>cQo?V7|aTvETtWA-dz{^*a7C9g!IrtNrF-}g#*pRVwe=i#gSC1#Z$5i;#CX6y7n;Bsd92kG{`uM-|O zZ{g@SmY>_U@gBFfefLeyi2tQOp3XLS?)%|taNDNT#n%#JZNBgP7JjmRXJJKG(eL#W zr@s59uJ&>+@9CGp3*R{$(HFCxd@t_1j;We5V|;P!#CdZXw!UOOTiUJHd2|1yo*&&M z>pbo^|9!r(e$u>ex%?*VldjKS-j`CGkj;G8#@zM2XL<7H{zv<|mH$1R-Sy?)VuAjZ z{BpMP4bJ;6=oRTL`7ZuaUC&{u%Px=U58gZvb~N<*Rk8iPxcnD&Hs-g@r6&&_o8R}t zTdYcv_xGPSyi1SrMl6^acG>Jsj_#?=7tH?T&E9rBsDLG5{r7`$>mTlpyY=44s(Rxi z=DTv?|Gb+1H0{W2e!p)k=bf~*6=w4ycC+@)U36Mp^Fj5?KT0qDv03Qv4Pn!pwRBVO z_UVfs|I98ioqLbnwA=O9k_YeF9=x-$tLtT)d49?F?vxpJkxTB+Sae?VLCrrV-O1j6 z-(BpSJ%9d!>1z3qV}@C>&w)<`sVt+{dP{Lwfg%6A&+D?Ht>SH{Sk%H7T3uSVoYr<7%h`vpDM?-$}+ zgG(GPI+w&;d|bkGP4!Y{#Kpi(qPiEVMW)6-thTR>xHu`^Dam8 zlmxr*+u$$Pr(gd4_@%ap;1X3ole*eT|HL>L+ob->*}r}IzWxaRf{-Qknw!=9P5#YJ z`uqOnRB4Ou2lK5`@=u1{cWPN7EY7%K(#{`V)i!ILDis1#;$ONX>^`yK3H$6F>r}jU zzPfbrljB?USr#pmmsMm=l-9CZb5sAB+q0zkJ0|b`dq*}vXSIOHqpR;0>=0%6xv65x zb}&UEFDZW*eEc|9ok9HnGwzyug0jEa|2^XxH8ngS0;_^w@Csx(wR{7pLjhL}%^zdB;KJ#@qP{+kJMgzc~A)nw`x__dFG) zgB}W%t@3$~${+j^y`jk8CX}?w;!Ne67pW=lbD1~!zG2&K_HpqB4Iw6TlaHJ=YF9*XqRdy;yL6%|Y$_Bl!U>ZZA~$H?Dk<{2_PVxm6njBhUX^2S>!}~Ezh+2rPyKlO5dGRU-$Xe*tvCExZ0gdIHTpQt8{-mcnrhaSz+6J zJ_d$;()h+OCevJkKfO@ z=Aej$omExv-zDZtxB54(UH|&px_yhH7v3+kow);a61uNU{|RMDVgGF@IT5;>zCFIu z|MhF^%cENsZI?YfJ@;^^~r!S)>Zw>s~bKlptpSjRmN>ncB!4Ag2Cv1G~{F+@i zyB}Y@dVF>0;bqQ$KXbG=EE8Nd(N#aTpXJ%%6NYm=ZpqD*SGt)OoN~?i_(G4v3l1Ea zXESA)I`i?Gt9O*OFB<3=)XLQ!bV)e9%w5WjrHwCWx)9?=WrIIwc<(&fc_5*1`4(M+ z0G-_QiATTkm^|5ZA|Xe_`NZcQaVsX{qrWQexh?t@7<{MI)Wq%>=TE7$8Jxl2X1-L& z%h;Dzdq~7{|FomLXL^&wJ~IW|vPf|;MMbmjQRsH{N#D>Ay(gt|mu#cE`1MT}Cj~b1 z1##)Dn)+(5S-h~pdM7>IBFn1PS&gI^ky~;6R%KbfBM)$iF|D8{oQ{C*odB-u{6I1U0 zKjQL`U2VUUZKY4*uGN|)raM2C`^YJO<~5)0U+~*!M~iiA;!5o^8 zcv?4Of5OB=@5(o(@)R*Iv%0b4keHZ%z#bmHIZaFd)wK$*i8=N|$Y50s`#*4sd^LN+ zO&cZ#206Uv$EaaXkpYP%8IHxpskuoxspu!hg!Z2Yos)Si-S_{IDA)N8H-oi(omaO8 zxC$Jcyg=j2zMDRibIoUOn0>7od`u>%Tn&S~*PITyIjui`)croI^ZV!5e~b*tH46sK) zaAk2xYHmPLenDzcNoH!XM`B(IW>oZsco%~X)XID8vM$HVgM)FqNOH!j>5tSLURzyY zH!;zxyddG>D*q*F-!#{hlgcMKeU|zBXNxR3J#DJZgPEINtm}UFOZu1ota+~|9H}gc zIv;WA=efu8j+eiCU%&s4=m8Tcp4tBMbi~brLi5&eEuW^fw5LjIzR{hu)0-+2cJ^H> z$!;p}ztQx&X$tSVY&U0#)pfgHF83ixTYi88s?IzyGR>ZFJjh(q}(%SGlAJ=cs zoz1ZS;8snc*5s%@fq747w5;PizkD-?zF*udoh;Lh(|&1k9a|7~XIpy5>}k3Zo7Sa^ z`Sf4U35@t&v08PH)6Uu7hTPs)+YfPw@EG>Y zQnGk)v_R4J{^o6Wnrw2^HtTL zGrA=1C3Sp19%A6LY})=Pk(ErAaYvQt$gi%A(#b5UOZ0 z7oD?k3!mD3??<_!oO=!nY>bUdw%D6~<@x>1wc^j87<#rj9xkgDboZJz;Q*^wMX1fX z4hOkQ_l29%9#!xQU;0?vmi#+}%ZMjXTR@IKrvKp;yZfKA=P*5)(67kdoA_iyoMWS- z;y&FjcSo6EiQb3IKEbYhj8`_zT~VvNY{v9L*ITt7k}P_mo-)=MyL%_)3d*kz2uSMq zxqHrxo=30jzU9o;UckA!?!evy@f(?L&D;3p;f$hH^B)$A&VOWecy`_HSNr`Ebz<#| z+Vu^z*X9SU&%MPhIpaiNUov0n${$@R!F~x!wL9)8TO0JVT26BzMp& zf;I2?*ymU8=B`?`gS&ZM|6SFnSF7iXSrs+s?K)A(BQ*a>e_OxCUrC=y{|*RbHk{27 zH>};){8;grncX22{KLR4ovDz2dQqTGe~blnsuN=@Z_cl>V{v`?RaP z7e4dy`~mMOty<&vVGc6`gC85dRsoKg4d{MS=ls01%=FTtM9^8BXanQ5lXLxr9R-f3 zFT4=ce@RSWiB?fZZ9`DB+?oare=W|gOjc$^#oPD3RTb|`tm`;B$wFOh z_0(C5f`V6Oo%9M#vRH3CHLy8xgHLbD#xq^d-S#GRXsfQ0%JExs@+8+d8ZZh_M@+jLF0#e`+X`Wzuyu3y=_)1)8ef28knWb}GGJO<_u-K5om1U+j(xj#?xka$dik%S|5y9?kFkC@+{^f)nUks6 zZ{?4FJo0zM95ytSvvNe-vt?}4@fT6xP<(e+T!H8Cooa`K6A910O}*5b6rO$D{An}e zI)4F)Y3pCDW$HQdDDS9@*_|VcH|FL3*NNhQ`yFux(lwh3w zlm5Bie)fKA6x}#&qw+O{mWkJ8-yWTp*zD|9enj~8)Am^oFFx%0rrax@aOg+>5n=0R znKscsZYlIW|MZCaxcHIiCb@^-7pAh_=DTHgW*fXd z@?0VFxO2u&rrOSYfuBk3&lR7xxy$@nsBQQ1L1uZ)rGv)nek^L%-}$(kZ{M3Pf6E`r z2y z3%}VxwQA<0tGe$&o3!y}DGltkDl|*ER-`7EmS7%*7xuGUI8@}{Jm1*@hb{$_U65eC zWs-SAcQzO6mP@^CU7AdOlc%S=NCDk7E_N{1u`u2-CQ!gt*K4_`OWg;Vx)1%ID(?GS zQptVwaL$}NmGAGq*SlZ)e&6@=`_2C|Z4lcosW->&?(Hfg3k6lSowIoI_|$?978oo{ zE#9OwbJH@nO;M9B?>Q%`CpkyVc#@!JN=4Fz6Y0GVo=sUIVIy;9sdA*I_{7%UC%>M| z;>~9F2+!Aj6kO@LkW*RN_1c9At1}~?#!SCza+a^~u0p)Y{ac&XEj69=#Q9*boB>T{ymv#N(~wuDjjQN(Fr(_5Us`Z&iZ|m7QGuEDn2m@vL4g zw$SF0laH49;@{P`HJ53GRbOl}%0sb}(!njN&s-CKDqWIE61)icC6ZTj9S zO_7}}^kU+f9(L>HY6@aCH{PmzI1-Y7u4;GkSItk+d8X4QUdy{7aXQ`hMM8wh$uCD% z@yGW4&1>`h?&A61WX>DWIbSAeCr5?vZtlu^Q0>=JA(HzU-8yBRA>2IMEBj1 zEB=?=ZhkT5`xhX2Px1W;mU|Cfiasz4SEO6Le6Z5x>yo=i&nEiH-%(HBInDg7@~wBy zQj!amjdw`hK6)gKr|V2c|8?nLN2gA&)lR}IWDW~$x}&aH6lC;sN${g)y>s=l7iU+ixo&dMVo_u_+J;N6OezrwvPZ=Mucn=kWbMvZoey}tfqQT@0> zt9cgwzn}QqXqTA|Z@}+@UteCw%{e5!<)gP&YUaGuh=_Z|x30$AQ&}8yYS+iGmF*(Y zlafE@>YsZk`)bwIJWlg_%9~h|xAc2|Fgm?$D*uOt;_n|XPD+`ol~;2pV0M7X##DRZ z>1UT)`1|TbMuzg+rAI`r4Gpo6kLQ>kZEf=o`FnqG?hjCGUzK0W@5ZvH>io{0`z{>&!&^2uUw#qk zdOLZ_t`=FR#I#ukF9iA$?{IV12fV!fBGYy0s|C|T!tJaNe63BgPU4*#Xm0x-%(HdOBRD7&zfe)`z0~19fjTlr9|h`c z{qUeNrmIEi<4XHOt;auZXg%h~o%kyzJ8|*;scg}Q+;wcy7M|VT?dC7$R{dwL$tzCz zl^X>%UwB?WtBswzyZ!I^OB#U^OLb(nPT2Zk4(sJZ8(JraZ&>qL%O3$$5CFbdvbH3HN+1&11iDCuulN|>v(w4&zxmlIhb8pxDykfw|K+`^_SY}A_otQg zioap!npoLUdix2>qP``;WxLq8Zs{)3UG%Yi+OPfhjr&$FRAw^ii(emFF)K5l^LX$+ zu5VU}`63(5)swS1qtlbWi*5Lw8RK0vJ7M8WkBm7GP#$z!i|(b5BbJ2)WXEyfUvCu^4n*mYllz`k2S?G92`<9(2NW!7YP`Sd^-;4<|0s(K=4;f z!iGZZv{b3Wvi`GtbktvLhPkG=+S_Dk%S#e3V{+%P}mLgwd0J@_B z5_%xg*Ac~1*qMGr-B^Kc3-W2~pi2=z=0mWPGgez*S0bpmkaR@?y1mF}Pn)0w>0>wi z_68K?<3ITw-74gR5*1Ob%Jsr)6@m1Jd@dhq`qK`KP1F(5V4M!gO1K+>8&pHORwZsFAvS5>{)V v2@&6@GP)he9T?ES8pInQ^4C;+cHkIh3-D%T18G)dP-I}?Wnfq{2gCyaHw0Fa literal 63375 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 UvVnA3Fjz3m5oTbx`xwLn08)%*Q2+n{ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3f203e9..381baa9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,8 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip -distributionSha256Sum=9631d53cf3e74bfa726893aee1f8994fee4e060c401335946dba2156f440f24c +distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dist \ No newline at end of file +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index fcb6fca..1aa94a4 100755 --- a/gradlew +++ b/gradlew @@ -83,7 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -201,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/gradlew.bat b/gradlew.bat index 93e3f59..25da30d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/package-lock.json b/package-lock.json index a0077b9..3e4236e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,102 +9,41 @@ "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "gradle-semantic-release-plugin": "^1.9.1", - "semantic-release": "^23.0.2" + "semantic-release": "^23.0.8" } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.6", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -218,149 +157,147 @@ } }, "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", + "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", "dev": true, "engines": { "node": ">= 18" } }, "node_modules/@octokit/core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz", - "integrity": "sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", + "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", "dev": true, "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.0.0", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.0.0", + "@octokit/request": "^9.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.0.0", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/endpoint": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz", - "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", + "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", "dev": true, "dependencies": { - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.2" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/graphql": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", - "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", + "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", "dev": true, "dependencies": { - "@octokit/request": "^8.0.1", - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/request": "^9.0.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/openapi-types": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz", - "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz", - "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.0.tgz", + "integrity": "sha512-n4znWfRinnUQF6TPyxs7EctSAA3yVSP4qlJP2YgI3g9d4Ae2n5F3XDOjbUluKRxPU3rfsgpOboI4O4VtPc6Ilg==", "dev": true, "dependencies": { - "@octokit/types": "^12.4.0" + "@octokit/types": "^13.5.0" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": ">=6" } }, "node_modules/@octokit/plugin-retry": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", - "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.1.tgz", + "integrity": "sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==", "dev": true, "dependencies": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/request-error": "^6.0.0", + "@octokit/types": "^13.0.0", "bottleneck": "^2.15.3" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": ">=6" } }, "node_modules/@octokit/plugin-throttling": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.1.3.tgz", - "integrity": "sha512-pfyqaqpc0EXh5Cn4HX9lWYsZ4gGbjnSmUILeu4u2gnuM50K/wIk9s1Pxt3lVeVwekmITgN/nJdoh43Ka+vye8A==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.0.tgz", + "integrity": "sha512-B5YTToSRTzNSeEyssnrT7WwGhpIdbpV9NKIs3KyTWHX6PhpYn7gqF/+lL3BvsASBM3Sg5BAUYk7KZx5p/Ec77w==", "dev": true, "dependencies": { - "@octokit/types": "^12.2.0", + "@octokit/types": "^13.0.0", "bottleneck": "^2.15.3" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": "^5.0.0" + "@octokit/core": "^6.0.0" } }, "node_modules/@octokit/request": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz", - "integrity": "sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.1.tgz", + "integrity": "sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw==", "dev": true, "dependencies": { - "@octokit/endpoint": "^9.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/endpoint": "^10.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^7.0.2" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/request-error": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz", - "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.1.tgz", + "integrity": "sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg==", "dev": true, "dependencies": { - "@octokit/types": "^12.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@octokit/types": "^13.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/types": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.4.0.tgz", - "integrity": "sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==", + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^19.1.0" + "@octokit/openapi-types": "^22.2.0" } }, "node_modules/@pnpm/config.env-replace": { @@ -418,6 +355,375 @@ "semantic-release": "^22.0.7" } }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "dev": true, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "dev": true, + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dev": true, + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "dev": true, + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", + "dev": true + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-paginate-rest": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", + "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "dev": true, + "dependencies": { + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-retry": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", + "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "dev": true, + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-retry/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-throttling": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz", + "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==", + "dev": true, + "dependencies": { + "@octokit/types": "^12.2.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^5.0.0" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^20.0.0" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dev": true, + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dev": true, + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/commit-analyzer": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-11.1.0.tgz", + "integrity": "sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", + "debug": "^4.0.0", + "import-from-esm": "^1.0.3", + "lodash-es": "^4.17.21", + "micromatch": "^4.0.2" + }, + "engines": { + "node": "^18.17 || >=20.6.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/github": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.2.6.tgz", + "integrity": "sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==", + "dev": true, + "dependencies": { + "@octokit/core": "^5.0.0", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-retry": "^6.0.0", + "@octokit/plugin-throttling": "^8.0.0", + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "debug": "^4.3.4", + "dir-glob": "^3.0.1", + "globby": "^14.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "issue-parser": "^6.0.0", + "lodash-es": "^4.17.21", + "mime": "^4.0.0", + "p-filter": "^4.0.0", + "url-join": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/github/node_modules/@semantic-release/error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", + "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/github/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "dev": true, + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.3.tgz", + "integrity": "sha512-KUsozQGhRBAnoVg4UMZj9ep436VEGwT536/jwSqB7vcEfA6oncCUU7UIYTRdLx7GvTtqn0kBjnkfLVkcnBa2YQ==", + "dev": true, + "dependencies": { + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "execa": "^8.0.0", + "fs-extra": "^11.0.0", + "lodash-es": "^4.17.21", + "nerf-dart": "^1.0.0", + "normalize-url": "^8.0.0", + "npm": "^10.5.0", + "rc": "^1.2.8", + "read-pkg": "^9.0.0", + "registry-auth-token": "^5.0.0", + "semver": "^7.1.2", + "tempy": "^3.0.0" + }, + "engines": { + "node": "^18.17 || >=20" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/@semantic-release/error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", + "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "dev": true, + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/npm/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/release-notes-generator": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-12.1.0.tgz", + "integrity": "sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^7.0.0", + "conventional-changelog-writer": "^7.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", + "debug": "^4.0.0", + "get-stream": "^7.0.0", + "import-from-esm": "^1.0.3", + "into-stream": "^7.0.0", + "lodash-es": "^4.17.21", + "read-pkg-up": "^11.0.0" + }, + "engines": { + "node": "^18.17 || >=20.6.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", + "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true + }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/clean-stack": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", @@ -519,6 +825,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/find-versions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", + "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", + "dev": true, + "dependencies": { + "semver-regex": "^4.0.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -552,6 +873,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/issue-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", + "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "dev": true, + "dependencies": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + }, + "engines": { + "node": ">=10.13" + } + }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/marked": { "version": "9.1.6", "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", @@ -597,9 +934,9 @@ } }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -777,6 +1114,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "dev": true + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true + }, "node_modules/@semantic-release/changelog": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", @@ -796,9 +1145,9 @@ } }, "node_modules/@semantic-release/commit-analyzer": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-11.1.0.tgz", - "integrity": "sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-12.0.0.tgz", + "integrity": "sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==", "dev": true, "dependencies": { "conventional-changelog-angular": "^7.0.0", @@ -810,7 +1159,7 @@ "micromatch": "^4.0.2" }, "engines": { - "node": "^18.17 || >=20.6.1" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" @@ -848,15 +1197,15 @@ } }, "node_modules/@semantic-release/github": { - "version": "9.2.6", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.2.6.tgz", - "integrity": "sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.0.5.tgz", + "integrity": "sha512-hmuCDkfru/Uc9+ZBNOSremAupu6BCslvOVDiG0wYcL8TQodCycp6uvwDyeym1H0M4l3ob9c0s0xMBiZjjXQ2yA==", "dev": true, "dependencies": { - "@octokit/core": "^5.0.0", - "@octokit/plugin-paginate-rest": "^9.0.0", - "@octokit/plugin-retry": "^6.0.0", - "@octokit/plugin-throttling": "^8.0.0", + "@octokit/core": "^6.0.0", + "@octokit/plugin-paginate-rest": "^11.0.0", + "@octokit/plugin-retry": "^7.0.0", + "@octokit/plugin-throttling": "^9.0.0", "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", "debug": "^4.3.4", @@ -864,14 +1213,14 @@ "globby": "^14.0.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", - "issue-parser": "^6.0.0", + "issue-parser": "^7.0.0", "lodash-es": "^4.17.21", "mime": "^4.0.0", "p-filter": "^4.0.0", "url-join": "^5.0.0" }, "engines": { - "node": ">=18" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" @@ -942,19 +1291,19 @@ } }, "node_modules/@semantic-release/npm": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.2.tgz", - "integrity": "sha512-owtf3RjyPvRE63iUKZ5/xO4uqjRpVQDUB9+nnXj0xwfIeM9pRl+cG+zGDzdftR4m3f2s4Wyf3SexW+kF5DFtWA==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", + "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", "dev": true, "dependencies": { "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", - "execa": "^8.0.0", + "execa": "^9.0.0", "fs-extra": "^11.0.0", "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", "normalize-url": "^8.0.0", - "npm": "^10.0.0", + "npm": "^10.5.0", "rc": "^1.2.8", "read-pkg": "^9.0.0", "registry-auth-token": "^5.0.0", @@ -962,7 +1311,7 @@ "tempy": "^3.0.0" }, "engines": { - "node": "^18.17 || >=20" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" @@ -977,6 +1326,18 @@ "node": ">=18" } }, + "node_modules/@semantic-release/npm/node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@semantic-release/npm/node_modules/aggregate-error": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", @@ -1021,47 +1382,54 @@ } }, "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.1.0.tgz", + "integrity": "sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==", "dev": true, "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^7.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" }, "engines": { - "node": ">=16.17" + "node": ">=18" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/@semantic-release/npm/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", + "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", "dev": true, "engines": { - "node": ">=16.17.0" + "node": ">=18.18.0" } }, "node_modules/@semantic-release/npm/node_modules/indent-string": { @@ -1077,33 +1445,21 @@ } }, "node_modules/@semantic-release/npm/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -1115,21 +1471,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@semantic-release/npm/node_modules/path-key": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", @@ -1155,21 +1496,21 @@ } }, "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/release-notes-generator": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-12.1.0.tgz", - "integrity": "sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz", + "integrity": "sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==", "dev": true, "dependencies": { "conventional-changelog-angular": "^7.0.0", @@ -1184,7 +1525,7 @@ "read-pkg-up": "^11.0.0" }, "engines": { - "node": "^18.17 || >=20.6.1" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" @@ -1215,9 +1556,9 @@ } }, "node_modules/@sindresorhus/merge-streams": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.2.0.tgz", - "integrity": "sha512-UTce8mUwUW0RikMb/eseJ7ys0BRkZVFB86orHzrfW12ZmFtym5zua8joZ4L7okH2dDFHkcFjqnZ5GocWBXOFtA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, "engines": { "node": ">=18" @@ -1233,9 +1574,9 @@ "dev": true }, "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" @@ -1258,13 +1599,10 @@ } }, "node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", "dev": true, - "dependencies": { - "type-fest": "^3.0.0" - }, "engines": { "node": ">=14.16" }, @@ -1320,16 +1658,69 @@ "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", "dev": true }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", + "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", "dev": true }, "node_modules/bottleneck": { @@ -1339,17 +1730,36 @@ "dev": true }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1478,9 +1888,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, "dependencies": { "string-width": "^4.2.0" @@ -1603,6 +2013,18 @@ "node": ">=16" } }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -1676,6 +2098,57 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1702,6 +2175,40 @@ "node": ">=4.0.0" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", @@ -1835,9 +2342,9 @@ } }, "node_modules/env-ci/node_modules/npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -1918,6 +2425,130 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -1998,9 +2629,9 @@ } }, "node_modules/figures": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/figures/-/figures-6.0.1.tgz", - "integrity": "sha512-0oY/olScYD4IhQ8u//gCPA4F3mlTn2dacYmiDm/mbDQvpmLjV4uH+zhsQ5IyXRyvqkvtUkXkNdGvg5OFJTCsuQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, "dependencies": { "is-unicode-supported": "^2.0.0" @@ -2013,9 +2644,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -2049,20 +2680,30 @@ } }, "node_modules/find-versions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", - "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz", + "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==", "dev": true, "dependencies": { - "semver-regex": "^4.0.5" + "semver-regex": "^4.0.5", + "super-regex": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -2096,6 +2737,45 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function-timeout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", + "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -2105,6 +2785,25 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -2117,6 +2816,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/git-log-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", @@ -2152,6 +2868,22 @@ "node": ">= 6" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", @@ -2184,6 +2916,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2233,6 +2977,15 @@ "uglify-js": "^3.1.4" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2242,10 +2995,61 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -2276,9 +3080,9 @@ } }, "node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "dependencies": { "lru-cache": "^10.0.1" @@ -2288,9 +3092,9 @@ } }, "node_modules/http-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz", - "integrity": "sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -2301,9 +3105,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz", - "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -2357,9 +3161,9 @@ } }, "node_modules/import-from-esm": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.3.tgz", - "integrity": "sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.4.tgz", + "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -2370,9 +3174,9 @@ } }, "node_modules/import-meta-resolve": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", - "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", "dev": true, "funding": { "type": "github", @@ -2412,6 +3216,20 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/into-stream": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", @@ -2428,12 +3246,68 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -2446,6 +3320,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2476,6 +3380,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2485,6 +3401,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -2494,6 +3425,49 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -2506,6 +3480,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-text-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", @@ -2518,6 +3522,21 @@ "node": ">=8" } }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-unicode-supported": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", @@ -2530,6 +3549,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -2543,9 +3574,9 @@ "dev": true }, "node_modules/issue-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", - "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.0.tgz", + "integrity": "sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==", "dev": true, "dependencies": { "lodash.capitalize": "^4.2.1", @@ -2555,7 +3586,7 @@ "lodash.uniqby": "^4.7.0" }, "engines": { - "node": ">=10.13" + "node": "^18.17 || >=20.6.1" } }, "node_modules/java-properties": { @@ -2730,18 +3761,18 @@ "dev": true }, "node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" } }, "node_modules/marked": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.0.tgz", - "integrity": "sha512-Vkwtq9rLqXryZnWaQc86+FHLC6tr/fycMfYAhiOIXkrNmeGAyhSxjqu0Rs1i0bBqw5u0S7+lV9fdH2ZSVaoa0w==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -2798,12 +3829,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -2811,9 +3842,9 @@ } }, "node_modules/mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.3.tgz", + "integrity": "sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ==", "dev": true, "funding": [ "https://github.com/sponsors/broofa" @@ -2888,9 +3919,9 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", + "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", @@ -2903,9 +3934,9 @@ } }, "node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", "dev": true, "engines": { "node": ">=14.16" @@ -2915,9 +3946,9 @@ } }, "node_modules/npm": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.4.0.tgz", - "integrity": "sha512-RS7Mx0OVfXlOcQLRePuDIYdFCVBPCNapWHplDK+mh7GDdP/Tvor4ocuybRRPSvfcRb2vjRJt1fHCqw3cr8qACQ==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.0.tgz", + "integrity": "sha512-wh93uRczgp7HDnPMiLXcCkv2hagdJS0zJ9KT/31d0FoXP02+qgN2AOwpaW85fxRWkinl2rELfPw+CjBXW48/jQ==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -2926,6 +3957,7 @@ "@npmcli/map-workspaces", "@npmcli/package-json", "@npmcli/promise-spawn", + "@npmcli/redact", "@npmcli/run-script", "@sigstore/tuf", "abbrev", @@ -2934,8 +3966,6 @@ "chalk", "ci-info", "cli-columns", - "cli-table3", - "columnify", "fastest-levenshtein", "fs-minipass", "glob", @@ -2971,7 +4001,6 @@ "npm-profile", "npm-registry-fetch", "npm-user-validate", - "npmlog", "p-map", "pacote", "parse-conflict-json", @@ -2991,75 +4020,80 @@ "write-file-atomic" ], "dev": true, + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^7.2.1", - "@npmcli/config": "^8.0.2", - "@npmcli/fs": "^3.1.0", - "@npmcli/map-workspaces": "^3.0.4", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.1", - "@npmcli/run-script": "^7.0.4", - "@sigstore/tuf": "^2.3.0", + "@npmcli/arborist": "^7.5.2", + "@npmcli/config": "^8.3.2", + "@npmcli/fs": "^3.1.1", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.2", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "@sigstore/tuf": "^2.3.3", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^18.0.2", + "cacache": "^18.0.3", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", - "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^10.3.10", + "glob": "^10.3.15", "graceful-fs": "^4.2.11", - "hosted-git-info": "^7.0.1", - "ini": "^4.1.1", - "init-package-json": "^6.0.0", - "is-cidr": "^5.0.3", - "json-parse-even-better-errors": "^3.0.1", - "libnpmaccess": "^8.0.1", - "libnpmdiff": "^6.0.3", - "libnpmexec": "^7.0.4", - "libnpmfund": "^5.0.1", - "libnpmhook": "^10.0.0", - "libnpmorg": "^6.0.1", - "libnpmpack": "^6.0.3", - "libnpmpublish": "^9.0.2", - "libnpmsearch": "^7.0.0", - "libnpmteam": "^6.0.0", - "libnpmversion": "^5.0.1", - "make-fetch-happen": "^13.0.0", - "minimatch": "^9.0.3", - "minipass": "^7.0.4", + "hosted-git-info": "^7.0.2", + "ini": "^4.1.2", + "init-package-json": "^6.0.3", + "is-cidr": "^5.0.5", + "json-parse-even-better-errors": "^3.0.2", + "libnpmaccess": "^8.0.6", + "libnpmdiff": "^6.1.2", + "libnpmexec": "^8.1.1", + "libnpmfund": "^5.0.10", + "libnpmhook": "^10.0.5", + "libnpmorg": "^6.0.6", + "libnpmpack": "^7.0.2", + "libnpmpublish": "^9.0.8", + "libnpmsearch": "^7.0.5", + "libnpmteam": "^6.0.5", + "libnpmversion": "^6.0.2", + "make-fetch-happen": "^13.0.1", + "minimatch": "^9.0.4", + "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^10.0.1", - "nopt": "^7.2.0", - "normalize-package-data": "^6.0.0", + "node-gyp": "^10.1.0", + "nopt": "^7.2.1", + "normalize-package-data": "^6.0.1", "npm-audit-report": "^5.0.0", "npm-install-checks": "^6.3.0", - "npm-package-arg": "^11.0.1", - "npm-pick-manifest": "^9.0.0", - "npm-profile": "^9.0.0", - "npm-registry-fetch": "^16.1.0", - "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-profile": "^10.0.0", + "npm-registry-fetch": "^17.0.1", + "npm-user-validate": "^2.0.1", "p-map": "^4.0.0", - "pacote": "^17.0.6", + "pacote": "^18.0.6", "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", "qrcode-terminal": "^0.12.0", - "read": "^2.1.0", - "semver": "^7.5.4", - "spdx-expression-parse": "^3.0.1", - "ssri": "^10.0.5", + "read": "^3.0.1", + "semver": "^7.6.2", + "spdx-expression-parse": "^4.0.0", + "ssri": "^10.0.6", "supports-color": "^9.4.0", - "tar": "^6.2.0", + "tar": "^6.2.1", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.0", + "validate-npm-package-name": "^5.0.1", "which": "^4.0.0", "write-file-atomic": "^5.0.1" }, @@ -3083,16 +4117,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/@colors/colors": { - "version": "1.5.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", "dev": true, @@ -3167,7 +4191,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { - "version": "2.2.0", + "version": "2.2.2", "dev": true, "inBundle": true, "license": "ISC", @@ -3176,49 +4200,51 @@ "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" + "socks-proxy-agent": "^8.0.3" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.3.1", + "version": "7.5.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/fs": "^3.1.1", + "@npmcli/installed-package-contents": "^2.1.0", "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.0.0", + "@npmcli/metavuln-calculator": "^7.1.1", "@npmcli/name-from-folder": "^2.0.0", "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/query": "^3.0.1", - "@npmcli/run-script": "^7.0.2", - "bin-links": "^4.0.1", - "cacache": "^18.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "bin-links": "^4.0.4", + "cacache": "^18.0.3", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.1", - "json-parse-even-better-errors": "^3.0.0", + "hosted-git-info": "^7.0.2", + "json-parse-even-better-errors": "^3.0.2", "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", - "nopt": "^7.0.0", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^7.2.1", "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.1", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-registry-fetch": "^17.0.1", + "pacote": "^18.0.6", "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", - "ssri": "^10.0.5", + "ssri": "^10.0.6", "treeverse": "^3.0.0", "walk-up-path": "^3.0.1" }, @@ -3230,16 +4256,16 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.1.0", + "version": "8.3.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", "ci-info": "^4.0.0", - "ini": "^4.1.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "ini": "^4.1.2", + "nopt": "^7.2.1", + "proc-log": "^4.2.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", "walk-up-path": "^3.0.1" @@ -3248,35 +4274,8 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ansi-styles": "^4.3.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/disparity-colors/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/npm/node_modules/@npmcli/fs": { - "version": "3.1.0", + "version": "3.1.1", "dev": true, "inBundle": true, "license": "ISC", @@ -3288,7 +4287,7 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.4", + "version": "5.0.7", "dev": true, "inBundle": true, "license": "ISC", @@ -3296,7 +4295,7 @@ "@npmcli/promise-spawn": "^7.0.0", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", @@ -3307,7 +4306,7 @@ } }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", + "version": "2.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -3316,14 +4315,14 @@ "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.4", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -3338,14 +4337,15 @@ } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "7.0.0", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "cacache": "^18.0.0", "json-parse-even-better-errors": "^3.0.0", - "pacote": "^17.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5" }, "engines": { @@ -3371,7 +4371,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.0.0", + "version": "5.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -3381,7 +4381,7 @@ "hosted-git-info": "^7.0.0", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^6.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.5.3" }, "engines": { @@ -3389,7 +4389,7 @@ } }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -3401,7 +4401,7 @@ } }, "node_modules/npm/node_modules/@npmcli/query": { - "version": "3.0.1", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -3412,8 +4412,17 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "7.0.4", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -3422,6 +4431,7 @@ "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", "which": "^4.0.0" }, "engines": { @@ -3439,19 +4449,19 @@ } }, "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "2.1.1", + "version": "2.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/core": { - "version": "0.2.0", + "version": "1.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -3460,51 +4470,53 @@ } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", + "version": "0.3.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.2.1", + "version": "2.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1", - "make-fetch-happen": "^13.0.0" + "@sigstore/bundle": "^2.3.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.3.0", + "version": "2.3.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.2.0" + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/verify": { - "version": "0.1.0", + "version": "1.2.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -3520,13 +4532,13 @@ } }, "node_modules/npm/node_modules/@tufjs/models": { - "version": "2.0.0", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -3542,7 +4554,7 @@ } }, "node_modules/npm/node_modules/agent-base": { - "version": "7.1.0", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "MIT", @@ -3599,15 +4611,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", "dev": true, @@ -3615,7 +4618,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { - "version": "4.0.3", + "version": "4.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -3630,12 +4633,15 @@ } }, "node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/brace-expansion": { @@ -3647,17 +4653,8 @@ "balanced-match": "^1.0.0" } }, - "node_modules/npm/node_modules/builtins": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/npm/node_modules/cacache": { - "version": "18.0.2", + "version": "18.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -3716,7 +4713,7 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "4.0.3", + "version": "4.0.5", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -3749,32 +4746,8 @@ "node": ">= 10" } }, - "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.2", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -3800,40 +4773,12 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/npm/node_modules/columnify": { - "version": "1.6.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", "dev": true, "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.3", "dev": true, @@ -3898,20 +4843,8 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/defaults": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm/node_modules/diff": { - "version": "5.1.0", + "version": "5.2.0", "dev": true, "inBundle": true, "license": "BSD-3-Clause", @@ -4008,42 +4941,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm/node_modules/gauge": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/glob": { - "version": "10.3.10", + "version": "10.3.15", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4055,14 +4969,8 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/hasown": { - "version": "2.0.0", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -4074,7 +4982,7 @@ } }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "7.0.1", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -4092,7 +5000,7 @@ "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { - "version": "7.0.0", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -4105,7 +5013,7 @@ } }, "node_modules/npm/node_modules/https-proxy-agent": { - "version": "7.0.2", + "version": "7.0.4", "dev": true, "inBundle": true, "license": "MIT", @@ -4131,7 +5039,7 @@ } }, "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.4", + "version": "6.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -4161,7 +5069,7 @@ } }, "node_modules/npm/node_modules/ini": { - "version": "4.1.1", + "version": "4.1.2", "dev": true, "inBundle": true, "license": "ISC", @@ -4170,15 +5078,15 @@ } }, "node_modules/npm/node_modules/init-package-json": { - "version": "6.0.0", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@npmcli/package-json": "^5.0.0", "npm-package-arg": "^11.0.0", "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^7.0.0", + "read": "^3.0.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^5.0.0" @@ -4187,11 +5095,18 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/ip": { - "version": "2.0.0", + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } }, "node_modules/npm/node_modules/ip-regex": { "version": "5.0.0", @@ -4206,12 +5121,12 @@ } }, "node_modules/npm/node_modules/is-cidr": { - "version": "5.0.3", + "version": "5.0.5", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "4.0.3" + "cidr-regex": "^4.0.4" }, "engines": { "node": ">=14" @@ -4268,8 +5183,14 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.1", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -4308,52 +5229,50 @@ "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.2", + "version": "8.0.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.0.0" + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.6", + "version": "6.1.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.2.1", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", + "@npmcli/arborist": "^7.5.2", + "@npmcli/installed-package-contents": "^2.1.0", + "binary-extensions": "^2.3.0", "diff": "^5.1.0", - "minimatch": "^9.0.0", - "npm-package-arg": "^11.0.1", - "pacote": "^17.0.4", - "tar": "^6.2.0" + "minimatch": "^9.0.4", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "tar": "^6.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.7", + "version": "8.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.2.1", - "@npmcli/run-script": "^7.0.2", + "@npmcli/arborist": "^7.5.2", + "@npmcli/run-script": "^8.1.0", "ci-info": "^4.0.0", - "npm-package-arg": "^11.0.1", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", - "proc-log": "^3.0.0", - "read": "^2.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "proc-log": "^4.2.0", + "read": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "walk-up-path": "^3.0.1" @@ -4363,112 +5282,112 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.4", + "version": "5.0.10", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.2.1" + "@npmcli/arborist": "^7.5.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.1", + "version": "10.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^17.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.2", + "version": "6.0.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^17.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.6", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.2.1", - "@npmcli/run-script": "^7.0.2", - "npm-package-arg": "^11.0.1", - "pacote": "^17.0.4" + "@npmcli/arborist": "^7.5.2", + "@npmcli/run-script": "^8.1.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.4", + "version": "9.0.8", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "ci-info": "^4.0.0", - "normalize-package-data": "^6.0.0", - "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", + "normalize-package-data": "^6.0.1", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.2.0", "semver": "^7.3.7", "sigstore": "^2.2.0", - "ssri": "^10.0.5" + "ssri": "^10.0.6" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.1", + "version": "7.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^17.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.1", + "version": "6.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^17.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "5.0.2", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.3", - "@npmcli/run-script": "^7.0.2", - "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", + "@npmcli/git": "^5.0.7", + "@npmcli/run-script": "^8.1.0", + "json-parse-even-better-errors": "^3.0.2", + "proc-log": "^4.2.0", "semver": "^7.3.7" }, "engines": { @@ -4476,7 +5395,7 @@ } }, "node_modules/npm/node_modules/lru-cache": { - "version": "10.1.0", + "version": "10.2.2", "dev": true, "inBundle": true, "license": "ISC", @@ -4485,7 +5404,7 @@ } }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "13.0.0", + "version": "13.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -4499,6 +5418,7 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", + "proc-log": "^4.2.0", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, @@ -4507,7 +5427,7 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "9.0.3", + "version": "9.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -4522,7 +5442,7 @@ } }, "node_modules/npm/node_modules/minipass": { - "version": "7.0.4", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "ISC", @@ -4543,7 +5463,7 @@ } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.4", + "version": "3.0.5", "dev": true, "inBundle": true, "license": "MIT", @@ -4715,7 +5635,7 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "10.0.1", + "version": "10.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -4738,8 +5658,17 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/nopt": { - "version": "7.2.0", + "version": "7.2.1", "dev": true, "inBundle": true, "license": "ISC", @@ -4754,7 +5683,7 @@ } }, "node_modules/npm/node_modules/normalize-package-data": { - "version": "6.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -4778,7 +5707,7 @@ } }, "node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -4811,13 +5740,13 @@ } }, "node_modules/npm/node_modules/npm-package-arg": { - "version": "11.0.1", + "version": "11.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, @@ -4838,7 +5767,7 @@ } }, "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "9.0.0", + "version": "9.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -4853,38 +5782,39 @@ } }, "node_modules/npm/node_modules/npm-profile": { - "version": "9.0.0", + "version": "10.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0" + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18.0.0" } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "16.1.0", + "version": "17.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@npmcli/redact": "^2.0.0", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" + "proc-log": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-user-validate": { - "version": "2.0.0", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -4892,21 +5822,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npmlog": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", "dev": true, @@ -4923,32 +5838,31 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "17.0.6", + "version": "18.0.6", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", + "@npmcli/run-script": "^8.0.0", "cacache": "^18.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", "npm-package-arg": "^11.0.0", "npm-packlist": "^8.0.0", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, "bin": { - "pacote": "lib/bin.js" + "pacote": "bin/index.js" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4978,23 +5892,23 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.10.1", + "version": "1.11.1", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.15", + "version": "6.0.16", "dev": true, "inBundle": true, "license": "MIT", @@ -5007,7 +5921,16 @@ } }, "node_modules/npm/node_modules/proc-log": { - "version": "3.0.0", + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -5053,12 +5976,12 @@ } }, "node_modules/npm/node_modules/promzard": { - "version": "1.0.0", + "version": "1.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "read": "^2.0.0" + "read": "^3.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -5073,12 +5996,12 @@ } }, "node_modules/npm/node_modules/read": { - "version": "2.1.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "mute-stream": "~1.0.0" + "mute-stream": "^1.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -5093,21 +6016,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/read-package-json": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/read-package-json-fast": { "version": "3.0.2", "dev": true, @@ -5138,13 +6046,10 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.5.4", + "version": "7.6.2", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -5152,24 +6057,6 @@ "node": ">=10" } }, - "node_modules/npm/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", "dev": true, @@ -5204,17 +6091,17 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "2.2.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.1", - "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^0.1.0" + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/sign": "^2.3.0", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -5231,26 +6118,26 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.7.1", + "version": "2.8.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.2", + "version": "8.0.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.1", "debug": "^4.3.4", "socks": "^2.7.1" }, @@ -5268,13 +6155,7 @@ "spdx-license-ids": "^3.0.0" } }, - "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "inBundle": true, - "license": "CC-BY-3.0" - }, - "node_modules/npm/node_modules/spdx-expression-parse": { + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", "dev": true, "inBundle": true, @@ -5284,14 +6165,36 @@ "spdx-license-ids": "^3.0.0" } }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.16", + "version": "3.0.17", "dev": true, "inBundle": true, "license": "CC0-1.0" }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, "node_modules/npm/node_modules/ssri": { - "version": "10.0.5", + "version": "10.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -5369,7 +6272,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "6.2.0", + "version": "6.2.1", "dev": true, "inBundle": true, "license": "ISC", @@ -5440,14 +6343,14 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "2.2.0", + "version": "2.2.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tufjs/models": "2.0.0", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" + "make-fetch-happen": "^13.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -5493,14 +6396,21 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "5.0.0", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -5511,15 +6421,6 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/npm/node_modules/which": { "version": "4.0.0", "dev": true, @@ -5544,15 +6445,6 @@ "node": ">=16" } }, - "node_modules/npm/node_modules/wide-align": { - "version": "1.1.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", "dev": true, @@ -5681,6 +6573,42 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -5766,9 +6694,9 @@ } }, "node_modules/p-map": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.1.tgz", - "integrity": "sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", + "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", "dev": true, "engines": { "node": ">=18" @@ -5825,6 +6753,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", @@ -5879,6 +6819,12 @@ "node": ">=8" } }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -5913,6 +6859,30 @@ "node": ">=4" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/pretty-ms": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.0.0.tgz", + "integrity": "sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==", + "dev": true, + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -5973,6 +6943,23 @@ "rc": "cli.js" } }, + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "dev": true, + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/read-pkg": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", @@ -6010,18 +6997,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz", - "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/read-pkg/node_modules/parse-json": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", @@ -6039,18 +7014,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz", - "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -6075,6 +7038,24 @@ "esprima": "~4.0.0" } }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/registry-auth-token": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", @@ -6138,30 +7119,71 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/semantic-release": { - "version": "23.0.2", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-23.0.2.tgz", - "integrity": "sha512-OnVYJ6Xgzwe1x8MKswba7RU9+5djS1MWRTrTn5qsq3xZYpslroZkV9Pt0dA2YcIuieeuSZWJhn+yUWoBUHO5Fw==", + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "@semantic-release/commit-analyzer": "^11.0.0", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semantic-release": { + "version": "23.1.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-23.1.1.tgz", + "integrity": "sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA==", + "dev": true, + "dependencies": { + "@semantic-release/commit-analyzer": "^12.0.0", "@semantic-release/error": "^4.0.0", - "@semantic-release/github": "^9.0.0", - "@semantic-release/npm": "^11.0.0", - "@semantic-release/release-notes-generator": "^12.0.0", + "@semantic-release/github": "^10.0.0", + "@semantic-release/npm": "^12.0.0", + "@semantic-release/release-notes-generator": "^13.0.0", "aggregate-error": "^5.0.0", "cosmiconfig": "^9.0.0", "debug": "^4.0.0", "env-ci": "^11.0.0", - "execa": "^8.0.0", + "execa": "^9.0.0", "figures": "^6.0.0", - "find-versions": "^5.1.0", + "find-versions": "^6.0.0", "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^3.0.0", @@ -6173,7 +7195,7 @@ "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", - "read-pkg-up": "^11.0.0", + "read-package-up": "^11.0.0", "resolve-from": "^5.0.0", "semver": "^7.3.2", "semver-diff": "^4.0.0", @@ -6196,6 +7218,18 @@ "node": ">=18" } }, + "node_modules/semantic-release/node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/semantic-release/node_modules/aggregate-error": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", @@ -6240,47 +7274,54 @@ } }, "node_modules/semantic-release/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.1.0.tgz", + "integrity": "sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==", "dev": true, "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^7.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" }, "engines": { - "node": ">=16.17" + "node": ">=18" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/semantic-release/node_modules/execa/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semantic-release/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", + "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", "dev": true, "engines": { - "node": ">=16.17.0" + "node": ">=18.18.0" } }, "node_modules/semantic-release/node_modules/indent-string": { @@ -6296,33 +7337,21 @@ } }, "node_modules/semantic-release/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semantic-release/node_modules/npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -6334,21 +7363,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/p-reduce": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", @@ -6386,25 +7400,22 @@ } }, "node_modules/semantic-release/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -6439,16 +7450,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/shebang-command": { @@ -6472,6 +7503,24 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -6616,9 +7665,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", - "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -6632,9 +7681,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", "dev": true }, "node_modules/split2": { @@ -6679,6 +7728,55 @@ "node": ">=8" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -6718,6 +7816,22 @@ "node": ">=0.10.0" } }, + "node_modules/super-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz", + "integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==", + "dev": true, + "dependencies": { + "function-timeout": "^1.0.1", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6843,6 +7957,21 @@ "xtend": "~4.0.1" } }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "dev": true, + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6856,10 +7985,15 @@ } }, "node_modules/traverse": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", - "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz", + "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==", "dev": true, + "dependencies": { + "gopd": "^1.0.1", + "typedarray.prototype.slice": "^1.0.3", + "which-typed-array": "^1.1.15" + }, "engines": { "node": ">= 0.4" }, @@ -6868,17 +8002,110 @@ } }, "node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "version": "4.18.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.18.3.tgz", + "integrity": "sha512-Q08/0IrpvM+NMY9PA2rti9Jb+JejTddwmwmVQGskAlhtcrw1wsRzoR6ode6mR+OAabNa75w/dxedSUY2mlphaQ==", "dev": true, "engines": { - "node": ">=14.16" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", + "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-offset": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -6892,6 +8119,21 @@ "node": ">=0.8.0" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unicode-emoji-modifier-base": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", @@ -6929,9 +8171,9 @@ } }, "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", + "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==", "dev": true }, "node_modules/universalify": { @@ -6983,6 +8225,41 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -7030,12 +8307,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -7062,6 +8333,18 @@ "engines": { "node": ">=12" } + }, + "node_modules/yoctocolors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.0.2.tgz", + "integrity": "sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 6376266..8873414 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,6 @@ "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "gradle-semantic-release-plugin": "^1.9.1", - "semantic-release": "^23.0.2" + "semantic-release": "^23.0.8" } } From 40279e0369f0b58d771aad1676be4769d48bbeda Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Thu, 30 May 2024 23:31:24 +0200 Subject: [PATCH 04/41] docs: Fix invalid option name --- docs/1_usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1_usage.md b/docs/1_usage.md index 0310ad6..dfb7679 100644 --- a/docs/1_usage.md +++ b/docs/1_usage.md @@ -126,4 +126,4 @@ ReVanced CLI is divided into the following fundamental commands: > **💡 Tip** > You can mount an APK file - > by supplying the app's package name to mount the supplied APK file over the option `-mount`. + > by supplying the app's package name to mount the supplied APK file over the option `--mount`. From 832badef4aa9fd943f16e754b599949e9ea918e9 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sat, 13 Jul 2024 00:45:05 +0200 Subject: [PATCH 05/41] ci: Correct usage of repository variable --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2cb2b20..574ee8c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,7 +42,7 @@ jobs: with: gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} passphrase: ${{ secrets.GPG_PASSPHRASE }} - fingerprint: ${{ env.GPG_FINGERPRINT }} + fingerprint: ${{ vars.GPG_FINGERPRINT }} - name: Release env: From 0a2e99c1c0c5d2a67d01bffb411cb721afc414f4 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Fri, 26 Jul 2024 02:03:51 +0200 Subject: [PATCH 06/41] build: Remove local Maven repo and unnecessary build configuration --- build.gradle.kts | 1 - settings.gradle.kts | 6 ------ 2 files changed, 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 06d0202..faf82e5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,6 @@ application { repositories { mavenCentral() - mavenLocal() google() maven { // A repository must be specified for some reason. "registry" is a dummy. diff --git a/settings.gradle.kts b/settings.gradle.kts index 47f5152..97e6f04 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,7 +1 @@ rootProject.name = "revanced-cli" - -buildCache { - local { - isEnabled = "CI" !in System.getenv() - } -} From 54ae01cd768125efc1046915df70542ff588972c Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 13 Aug 2024 00:05:47 +0400 Subject: [PATCH 07/41] build: Bump ReVanced Patcher (#335) --- .gitignore | 2 +- docs/1_usage.md | 175 ++++++++---------- gradle/libs.versions.toml | 12 +- gradle/wrapper/gradle-wrapper.properties | 4 +- .../cli/command/ListCompatibleVersions.kt | 10 +- .../cli/command/ListPatchesCommand.kt | 20 +- .../revanced/cli/command/OptionsCommand.kt | 6 +- .../app/revanced/cli/command/PatchCommand.kt | 116 ++++++------ .../cli/command/utility/InstallCommand.kt | 31 +++- .../cli/command/utility/UninstallCommand.kt | 30 ++- 10 files changed, 210 insertions(+), 196 deletions(-) diff --git a/.gitignore b/.gitignore index 716cab9..a1c73c7 100644 --- a/.gitignore +++ b/.gitignore @@ -121,5 +121,5 @@ node_modules/ revanced-cache/ options.toml -# Generated by an Android project (such as ReVanced Integrations) +# Generated by Android projects local.properties \ No newline at end of file diff --git a/docs/1_usage.md b/docs/1_usage.md index dfb7679..31ee72a 100644 --- a/docs/1_usage.md +++ b/docs/1_usage.md @@ -1,129 +1,100 @@ # 🛠️ Using ReVanced CLI Learn how to use ReVanced CLI. +The following examples will show you how to perform basic operations. +You can list patches, patch an app, uninstall, and install an app. -## 🔨 Usage +## 🚀 Show all commands -ReVanced CLI is divided into the following fundamental commands: +```bash +java -jar revanced-cli.jar -h +``` -- ### 🚀 Show all available options for ReVanced CLI +## 📃 List patches - ```bash - java -jar revanced-cli.jar -h - ``` +```bash +java -jar revanced-cli.jar list-patches --with-descriptions --with-packages --with-versions --with-options --with-universal-patches revanced-patches.rvp +``` -- ### 📃 List patches +## 💉 Patch an app with the default list of patches - ```bash - java -jar revanced-cli.jar list-patches \ - --with-packages \ - --with-versions \ - --with-options \ - revanced-patches.jar [ ...] - ``` +```bash +java -jar revanced-cli.jar patch -b revanced-patches.rvp input.apk +``` -- ### ⚙️ Generate options +You can also use multiple patch bundles: - This will generate an `options.json` file for the patches from a list of supplied patch bundles. - The file can be supplied to ReVanced CLI later on. +```bash +java -jar revanced-cli.jar patch -b revanced-patches.rvp -b another-patches.rvp input.apk +``` - ```bash - java -jar revanced-cli.jar options \ - --path options.json \ - --overwrite \ - revanced-patches.jar [ ...] - ``` +To manually include or exclude patches, use the options `-i` and `-e`. +Keep in mind the name of the patch must be an exact match. +You can also use the options `--ii` and `--ie` to include or exclude patches by their index +if two patches have the same name. +To know the indices of patches, use the option `--with-indices` when listing patches: - > **ℹ️ Note** - > A default `options.json` file will be automatically created if it does not exist - > without any need for intervention when using the `patch` command. +```bash +java -jar revanced-cli.jar list-patches --with-indices revanced-patches.rvp +``` -- ### 💉 Patch an app +Then you can use the indices to include or exclude patches: - You can patch apps by supplying patch bundles and the app to patch. - After patching, ReVanced CLI can install the patched app on your device using two methods: +```bash +java -jar revanced-cli.jar patch -b revanced-patches.rvp --ii 123 --ie 456 input.apk +``` - > **💡 Tip** - > For ReVanced CLI to be able to install the patched app on your device, make sure ADB is working: - > - > ```bash - > adb shell exit - > ``` - > - > If you want to mount the patched app on top of the un-patched app, make sure you have root permissions: - > - > ```bash - > adb shell su -c exit - > ``` +> [!TIP] +> You can use the option `-d` to automatically install the patched app after patching. +> Make sure ADB is working: +> +> ```bash +> adb shell exit +> ``` - > **⚠️ Warning** - > Some patches may require integrations - > such as [ReVanced Integrations](https://github.com/revanced/revanced-integrations). - > Supply them with the option `--merge`. ReVanced Patcher will automatically determine if they are necessary. - - #### 👾 Patch an app and install it on your device regularly +> [!TIP] +> You can use the option `--mount` to mount the patched app on top of the un-patched app. +> Make sure you have root permissions and the same app you are patching and mounting over is installed on your device: +> +> ```bash +> adb shell su -c exit +> adb install input.apk +> ``` - ```bash - java -jar revanced-cli.jar patch \ - --patch-bundle revanced-patches.jar \ - -d \ - input.apk - ``` +## 📦 Install an app manually - - #### 👾 Patch an app and mount it on top of the un-patched app with root permissions +```bash +java -jar revanced-cli.jar utility install -a input.apk +``` - > **❗ Caution** - > Ensure that the same app you are patching and mounting over is installed on your device: - > - > ```bash - > adb install app.apk - > ``` +> [!TIP] +> You can use the option `--mount` to mount the patched app on top of the un-patched app. +> Make sure you have root permissions and the same app you are patching and mounting over is installed on your device: +> +> ```bash +> adb shell su -c exit +> adb install input.apk +> ``` - ```bash - java -jar revanced-cli.jar patch \ - --patch-bundle revanced-patches.jar \ - --include "Some patch" \ - --ii 123 \ - --exclude "Some other patch" \ - -d \ - --mount \ - app.apk - ``` +## 🗑️ Uninstall an app manually - > **💡 Tip** - > You can use the option `--ii` to include or `--ie` to exclude - > patches by their index in relation to supplied patch bundles, - > similarly to the option `--include` and `--exclude`. - > - > This is useful in case two patches have the same name, and you must include or exclude one. - > The patch index is calculated by the position of the patch in the list of patches - > from patch bundles supplied using the option `--patch-bundle`. - > - > You can list all patches with their indices using the command `list-patches`. - > - > Keep in mind that the indices can change based on the order of the patch bundles supplied, - > as well if the patch bundles are updated because patches can be added or removed. +Here `` is the package name of the app you want to uninstall: -- ### 🗑️ Uninstall an app +```bash +java -jar revanced-cli.jar utility uninstall --package-name +``` - ```bash - java -jar revanced-cli.jar utility uninstall \ - --package-name \ - [] - ``` +If the app is mounted, you need to unmount it by using the option `--unmount`: - > **💡 Tip** - > You can unmount an APK file - > by adding the option `--unmount`. +```bash +java -jar revanced-cli.jar utility uninstall --package-name --unmount +``` -- ### ️ 📦 Install an app - - ```bash - java -jar revanced-cli.jar utility install \ - -a input.apk \ - [] - ``` - - > **💡 Tip** - > You can mount an APK file - > by supplying the app's package name to mount the supplied APK file over the option `--mount`. +> [!TIP] +> By default, the app is installed or uninstalled to the first connected device. +> You can append one or more devices by their serial to install or uninstall an app on your selected choice of devices: +> +> ```bash +> java -jar revanced-cli.jar utility uninstall --package-name [ ...] +> ``` diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d61b0dd..726f9ca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,17 +1,17 @@ [versions] shadow = "8.1.1" kotlin = "2.0.0" -kotlinx-coroutines-core = "1.8.0" -picocli = "4.7.5" -revanced-patcher = "19.3.1" -revanced-library = "2.3.0" +kotlinx = "1.8.1" +picocli = "4.7.6" +revanced-patcher = "20.0.0" +revanced-library = "3.0.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } -kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines-core" } +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx" } picocli = { module = "info.picocli:picocli", version.ref = "picocli" } revanced-patcher = { module = "app.revanced:revanced-patcher", version.ref = "revanced-patcher" } -revanced-library = { module = "app.revanced:revanced-library", version.ref = "revanced-library" } +revanced-library = { module = "app.revanced:revanced-library-jvm", version.ref = "revanced-library" } [plugins] shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 381baa9..68e8816 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionSha256Sum=d725d707bfabd4dfdc958c624003b3c80accc03f7037b5122c4b1d0ef15cecab +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt b/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt index ab21eee..31f5cfa 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt @@ -3,7 +3,7 @@ package app.revanced.cli.command import app.revanced.library.PackageName import app.revanced.library.PatchUtils import app.revanced.library.VersionMap -import app.revanced.patcher.PatchBundleLoader +import app.revanced.patcher.patch.loadPatchesFromJar import picocli.CommandLine import java.io.File import java.util.logging.Logger @@ -12,7 +12,7 @@ import java.util.logging.Logger name = "list-versions", description = [ "List the most common compatible versions of apps that are compatible " + - "with the patches in the supplied patch bundles.", + "with the patches in the supplied patch bundles.", ], ) internal class ListCompatibleVersions : Runnable { @@ -22,7 +22,7 @@ internal class ListCompatibleVersions : Runnable { description = ["Paths to patch bundles."], arity = "1..*", ) - private lateinit var patchBundles: Array + private lateinit var patchBundles: Set @CommandLine.Option( names = ["-f", "--filter-package-names"], @@ -38,8 +38,6 @@ internal class ListCompatibleVersions : Runnable { private var countUnusedPatches: Boolean = false override fun run() { - val patches = PatchBundleLoader.Jar(*patchBundles) - fun VersionMap.buildVersionsString(): String { if (isEmpty()) return "Any" @@ -58,6 +56,8 @@ internal class ListCompatibleVersions : Runnable { appendLine(versions.buildVersionsString().prependIndent("\t")) } + val patches = loadPatchesFromJar(patchBundles) + PatchUtils.getMostCommonCompatibleVersions( patches, packageNames, diff --git a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt index 1886613..d3c66a1 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt @@ -1,12 +1,13 @@ package app.revanced.cli.command -import app.revanced.patcher.PatchBundleLoader +import app.revanced.patcher.patch.Package import app.revanced.patcher.patch.Patch -import app.revanced.patcher.patch.options.PatchOption +import app.revanced.patcher.patch.loadPatchesFromJar import picocli.CommandLine.* import picocli.CommandLine.Help.Visibility.ALWAYS import java.io.File import java.util.logging.Logger +import app.revanced.patcher.patch.Option as PatchOption @Command( name = "list-patches", @@ -19,7 +20,7 @@ internal object ListPatchesCommand : Runnable { description = ["Paths to patch bundles."], arity = "1..*", ) - private lateinit var patchBundles: Array + private lateinit var patchBundles: Set @Option( names = ["-d", "--with-descriptions"], @@ -70,16 +71,19 @@ internal object ListPatchesCommand : Runnable { private var packageName: String? = null override fun run() { - fun Patch.CompatiblePackage.buildString() = - buildString { + fun Package.buildString(): String { + val (name, versions) = this + + return buildString { if (withVersions && versions != null) { appendLine("Package name: $name") appendLine("Compatible versions:") - append(versions!!.joinToString("\n") { version -> version }.prependIndent("\t")) + append(versions.joinToString("\n") { version -> version }.prependIndent("\t")) } else { append("Package name: $name") } } + } fun PatchOption<*>.buildString() = buildString { @@ -126,10 +130,10 @@ internal object ListPatchesCommand : Runnable { } fun Patch<*>.filterCompatiblePackages(name: String) = - compatiblePackages?.any { it.name == name } + compatiblePackages?.any { (compatiblePackageName, _) -> compatiblePackageName == name } ?: withUniversalPatches - val patches = PatchBundleLoader.Jar(*patchBundles).withIndex().toList() + val patches = loadPatchesFromJar(patchBundles).withIndex().toList() val filtered = packageName?.let { patches.filter { (_, patch) -> patch.filterCompatiblePackages(it) } } ?: patches diff --git a/src/main/kotlin/app/revanced/cli/command/OptionsCommand.kt b/src/main/kotlin/app/revanced/cli/command/OptionsCommand.kt index 72d4240..dbc1ada 100644 --- a/src/main/kotlin/app/revanced/cli/command/OptionsCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/OptionsCommand.kt @@ -2,7 +2,7 @@ package app.revanced.cli.command import app.revanced.library.Options import app.revanced.library.Options.setOptions -import app.revanced.patcher.PatchBundleLoader +import app.revanced.patcher.patch.loadPatchesFromJar import picocli.CommandLine import picocli.CommandLine.Help.Visibility.ALWAYS import java.io.File @@ -19,7 +19,7 @@ internal object OptionsCommand : Runnable { description = ["Paths to patch bundles."], arity = "1..*", ) - private lateinit var patchBundles: Array + private lateinit var patchBundles: Set @CommandLine.Option( names = ["-p", "--path"], @@ -44,7 +44,7 @@ internal object OptionsCommand : Runnable { override fun run() = try { - PatchBundleLoader.Jar(*patchBundles).let { patches -> + loadPatchesFromJar(patchBundles).let { patches -> val exists = filePath.exists() if (!exists || overwrite) { if (exists && update) patches.setOptions(filePath) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index 05238c2..69f24f1 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -4,11 +4,11 @@ import app.revanced.library.ApkUtils import app.revanced.library.ApkUtils.applyTo import app.revanced.library.Options import app.revanced.library.Options.setOptions -import app.revanced.library.adb.AdbManager -import app.revanced.patcher.PatchBundleLoader -import app.revanced.patcher.PatchSet +import app.revanced.library.installation.installer.* import app.revanced.patcher.Patcher import app.revanced.patcher.PatcherConfig +import app.revanced.patcher.patch.Patch +import app.revanced.patcher.patch.loadPatchesFromJar import kotlinx.coroutines.runBlocking import picocli.CommandLine import picocli.CommandLine.Help.Visibility.ALWAYS @@ -31,8 +31,6 @@ internal object PatchCommand : Runnable { private lateinit var apk: File - private var integrations = setOf() - private var patchBundles = emptySet() @CommandLine.Option( @@ -121,16 +119,6 @@ internal object PatchCommand : Runnable { ) private var keyStorePassword: String? = null // Empty password by default - @CommandLine.Option( - names = ["--alias"], - description = ["The alias of the keystore entry to sign the patched APK file with."], - showDefaultValue = ALWAYS, - ) - private fun setKeyStoreEntryAlias(alias: String = "ReVanced Key") { - logger.warning("The --alias option is deprecated. Use --keystore-entry-alias instead.") - keyStoreEntryAlias = alias - } - @CommandLine.Option( names = ["--keystore-entry-alias"], description = ["The alias of the keystore entry to sign the patched APK file with."], @@ -193,11 +181,8 @@ internal object PatchCommand : Runnable { description = ["One or more DEX files or containers to merge into the APK."], ) @Suppress("unused") - private fun setIntegrations(integrations: Array) { - integrations.firstOrNull { !it.exists() }?.let { - throw CommandLine.ParameterException(spec.commandLine(), "Integrations file ${it.path} does not exist.") - } - this.integrations += integrations + private fun setIntegrations(integrations: Set) { + logger.warning("The --merge option is not used anymore.") } @CommandLine.Option( @@ -256,7 +241,7 @@ internal object PatchCommand : Runnable { logger.info("Loading patches") - val patches = PatchBundleLoader.Jar(*patchBundles.toTypedArray()) + val patches = loadPatchesFromJar(patchBundles) // Warn if a patch can not be found in the supplied patch bundles. if (warn) { @@ -271,6 +256,7 @@ internal object PatchCommand : Runnable { } // endregion + val patcherTemporaryFilesPath = temporaryFilesPath.resolve("patcher") val (packageName, patcherResult) = Patcher( PatcherConfig( @@ -292,28 +278,27 @@ internal object PatchCommand : Runnable { } } - // region Patch + patcher += filteredPatches - patcher.context.packageMetadata.packageName to patcher.apply { - acceptIntegrations(integrations) - acceptPatches(filteredPatches) + // Execute patches. + runBlocking { + patcher().collect { patchResult -> + val exception = patchResult.exception + ?: return@collect logger.info("\"${patchResult.patch}\" succeeded") - // Execute patches. - runBlocking { - apply(false).collect { patchResult -> - patchResult.exception?.let { - StringWriter().use { writer -> - it.printStackTrace(PrintWriter(writer)) - logger.severe("${patchResult.patch.name} failed:\n$writer") - } - } ?: logger.info("${patchResult.patch.name} succeeded") + StringWriter().use { writer -> + exception.printStackTrace(PrintWriter(writer)) + + logger.severe("\"${patchResult.patch}\" failed:\n$writer") } } - }.get() - // endregion + } + + patcher.context.packageMetadata.packageName to patcher.get() } // region Save + apk.copyTo(temporaryFilesPath.resolve(apk.name), overwrite = true).apply { patcherResult.applyTo(this) }.let { patchedApkFile -> @@ -340,9 +325,23 @@ internal object PatchCommand : Runnable { // region Install - deviceSerial?.let { serial -> - AdbManager.getAdbManager(deviceSerial = serial.ifEmpty { null }, mount) - }?.install(AdbManager.Apk(outputFilePath, packageName)) + deviceSerial?.let { it -> + val deviceSerial = it.ifEmpty { null } + + runBlocking { + val result = if (mount) { + AdbRootInstaller(deviceSerial) + } else { + AdbInstaller(deviceSerial) + }.install(Installer.Apk(outputFilePath, packageName)) + + when (result) { + RootInstallerResult.FAILURE -> logger.severe("Failed to mount the patched APK file") + is AdbInstallerResult.Failure -> logger.severe(result.exception.toString()) + else -> logger.info("Installed the patched APK file") + } + } + } // endregion @@ -358,7 +357,7 @@ internal object PatchCommand : Runnable { * @param patches The patches to filter. * @return The filtered patches. */ - private fun Patcher.filterPatchSelection(patches: PatchSet): PatchSet = + private fun Patcher.filterPatchSelection(patches: Set>): Set> = buildSet { val packageName = context.packageMetadata.packageName val packageVersion = context.packageMetadata.packageVersion @@ -367,33 +366,36 @@ internal object PatchCommand : Runnable { val patchName = patch.name!! val explicitlyExcluded = excludedPatches.contains(patchName) || excludedPatchesByIndex.contains(i) - if (explicitlyExcluded) return@patch logger.info("Excluding $patchName") + if (explicitlyExcluded) return@patch logger.info("\"$patchName\" excluded manually") // Make sure the patch is compatible with the supplied APK files package name and version. patch.compatiblePackages?.let { packages -> - packages.singleOrNull { it.name == packageName }?.let { `package` -> - val matchesVersion = - force || `package`.versions?.let { - it.any { version -> version == packageVersion } - } ?: true + packages.singleOrNull { (name, _) -> name == packageName }?.let { (_, versions) -> + if (versions?.isEmpty() == true) { + return@patch logger.warning("\"$patchName\" incompatible with \"$packageName\"") + } + + val matchesVersion = force || + versions?.let { it.any { version -> version == packageVersion } } + ?: true if (!matchesVersion) { return@patch logger.warning( - "$patchName is incompatible with version $packageVersion. " + - "This patch is only compatible with version " + - packages.joinToString(";") { pkg -> - pkg.versions!!.joinToString(", ") + "\"$patchName\" incompatible with $packageName $packageVersion " + + "but compatible with " + + packages.joinToString("; ") { (packageName, versions) -> + packageName + " " + versions!!.joinToString(", ") }, ) } } ?: return@patch logger.fine( - "$patchName is incompatible with $packageName. " + - "This patch is only compatible with " + - packages.joinToString(", ") { `package` -> `package`.name }, + "\"$patchName\" incompatible with $packageName. " + + "It is only compatible with " + + packages.joinToString(", ") { (name, _) -> name }, ) return@let - } ?: logger.fine("$patchName has no constraint on packages.") + } ?: logger.fine("\"$patchName\" has no package constraints") // If the patch is implicitly used, it will be only included if [exclusive] is false. val implicitlyIncluded = !exclusive && patch.use @@ -401,11 +403,11 @@ internal object PatchCommand : Runnable { val explicitlyIncluded = includedPatches.contains(patchName) || includedPatchesByIndex.contains(i) val included = implicitlyIncluded || explicitlyIncluded - if (!included) return@patch logger.info("$patchName excluded") // Case 1. - - logger.fine("Adding $patchName") + if (!included) return@patch logger.info("\"$patchName\" excluded") // Case 1. add(patch) + + logger.fine("\"$patchName\" added") } } diff --git a/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt b/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt index 508bf1c..573205e 100644 --- a/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt @@ -1,6 +1,9 @@ package app.revanced.cli.command.utility -import app.revanced.library.adb.AdbManager +import app.revanced.library.installation.installer.* +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.runBlocking import picocli.CommandLine.* import java.io.File import java.util.logging.Logger @@ -32,13 +35,29 @@ internal object InstallCommand : Runnable { private var packageName: String? = null override fun run() { - fun install(deviceSerial: String? = null) = - try { - AdbManager.getAdbManager(deviceSerial, packageName != null).install(AdbManager.Apk(apk, packageName)) - } catch (e: AdbManager.DeviceNotFoundException) { + suspend fun install(deviceSerial: String? = null) { + val result = try { + if (packageName != null) { + AdbRootInstaller(deviceSerial) + } else { + AdbInstaller(deviceSerial) + }.install(Installer.Apk(apk, packageName)) + } catch (e: Exception) { logger.severe(e.toString()) } - deviceSerials?.forEach(::install) ?: install() + when (result) { + RootInstallerResult.FAILURE -> + logger.severe("Failed to mount the APK file") + is AdbInstallerResult.Failure -> + logger.severe(result.exception.toString()) + else -> + logger.info("Installed the APK file") + } + } + + runBlocking { + deviceSerials?.map { async { install(it) } }?.awaitAll() ?: install() + } } } diff --git a/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt b/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt index 49a36f2..e446e00 100644 --- a/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt @@ -1,6 +1,9 @@ package app.revanced.cli.command.utility -import app.revanced.library.adb.AdbManager +import app.revanced.library.installation.installer.* +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.runBlocking import picocli.CommandLine.* import picocli.CommandLine.Help.Visibility.ALWAYS import java.util.logging.Logger @@ -33,13 +36,28 @@ internal object UninstallCommand : Runnable { private var unmount: Boolean = false override fun run() { - fun uninstall(deviceSerial: String? = null) = - try { - AdbManager.getAdbManager(deviceSerial, unmount).uninstall(packageName) - } catch (e: AdbManager.DeviceNotFoundException) { + suspend fun uninstall(deviceSerial: String? = null) { + val result = try { + if (unmount) { + AdbRootInstaller(deviceSerial) + } else { + AdbInstaller(deviceSerial) + }.uninstall(packageName) + } catch (e: Exception) { logger.severe(e.toString()) } - deviceSerials?.forEach { uninstall(it) } ?: uninstall() + when (result) { + RootInstallerResult.FAILURE -> + logger.severe("Failed to unmount the patched APK file") + is AdbInstallerResult.Failure -> + logger.severe(result.exception.toString()) + else -> logger.info("Uninstalled the patched APK file") + } + } + + runBlocking { + deviceSerials?.map { async { uninstall(it) } }?.awaitAll() ?: uninstall() + } } } From 23002434b2d51c2a3b30b33dd0526261432d90ce Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 13 Aug 2024 00:12:45 +0400 Subject: [PATCH 08/41] feat: Set patch options via CLI (#336) BREAKING CHANGE: This commit changes various CLI options and removes the `options.json` file. Instead, patch options can now be passed via CLI options --- docs/1_usage.md | 91 ++++++- .../app/revanced/cli/command/CommandUtils.kt | 105 ++++++++ .../cli/command/ListCompatibleVersions.kt | 9 +- .../cli/command/ListPatchesCommand.kt | 6 +- .../app/revanced/cli/command/MainCommand.kt | 1 - .../revanced/cli/command/OptionsCommand.kt | 62 ----- .../app/revanced/cli/command/PatchCommand.kt | 251 +++++++++--------- .../cli/command/utility/InstallCommand.kt | 2 +- .../cli/command/utility/UninstallCommand.kt | 7 +- .../cli/command/OptionValueConverterTest.kt | 78 ++++++ 10 files changed, 409 insertions(+), 203 deletions(-) create mode 100644 src/main/kotlin/app/revanced/cli/command/CommandUtils.kt delete mode 100644 src/main/kotlin/app/revanced/cli/command/OptionsCommand.kt create mode 100644 src/test/kotlin/app/revanced/cli/command/OptionValueConverterTest.kt diff --git a/docs/1_usage.md b/docs/1_usage.md index 31ee72a..7e51542 100644 --- a/docs/1_usage.md +++ b/docs/1_usage.md @@ -13,10 +13,12 @@ java -jar revanced-cli.jar -h ## 📃 List patches ```bash -java -jar revanced-cli.jar list-patches --with-descriptions --with-packages --with-versions --with-options --with-universal-patches revanced-patches.rvp +java -jar revanced-cli.jar list-patches --with-packages --with-versions --with-options revanced-patches.rvp ``` -## 💉 Patch an app with the default list of patches +## 💉 Patch an app + +To patch an app using the default list of patches, use the `patch` command: ```bash java -jar revanced-cli.jar patch -b revanced-patches.rvp input.apk @@ -28,22 +30,37 @@ You can also use multiple patch bundles: java -jar revanced-cli.jar patch -b revanced-patches.rvp -b another-patches.rvp input.apk ``` -To manually include or exclude patches, use the options `-i` and `-e`. -Keep in mind the name of the patch must be an exact match. -You can also use the options `--ii` and `--ie` to include or exclude patches by their index -if two patches have the same name. -To know the indices of patches, use the option `--with-indices` when listing patches: +To change the default set of used patches, use the option `-i` or `-e` to use or disuse specific patches. +You can use the `list-patches` command to see which patches are used by default. + +To only use specific patches, you can use the option `--exclusive` combined with `-i`. +Remember that the options `-i` and `-e` match the patch's name exactly. Here is an example: ```bash -java -jar revanced-cli.jar list-patches --with-indices revanced-patches.rvp +java -jar revanced-cli.jar patch -b revanced-patches.rvp --exclusive -i "Patch name" -i "Another patch name" input.apk ``` -Then you can use the indices to include or exclude patches: +You can also use the options `--ii` and `--ie` to use or disuse patches by their index. +This is useful, if two patches happen to have the same name. +To know the indices of patches, use the command `list-patches`: + +```bash +java -jar revanced-cli.jar list-patches revanced-patches.rvp +``` + +Then you can use the indices to use or disuse patches: ```bash java -jar revanced-cli.jar patch -b revanced-patches.rvp --ii 123 --ie 456 input.apk ``` +You can combine the option `-i`, `-e`, `--ii`, `--ie` and `--exclusive`. Here is an example: + +```bash +java -jar revanced-cli.jar patch -b revanced-patches.rvp --exclusive -i "Patch name" --ii 123 input.apk +``` + + > [!TIP] > You can use the option `-d` to automatically install the patched app after patching. > Make sure ADB is working: @@ -62,7 +79,61 @@ java -jar revanced-cli.jar patch -b revanced-patches.rvp --ii 123 --ie 456 input > adb install input.apk > ``` -## 📦 Install an app manually +Patches can have options you can set using the option `-O` alongside the option to include the patch by name or index. +To know the options of a patch, use the option `--with-options` when listing patches: + +```bash +java -jar revanced-cli.jar list-patches --with-options revanced-patches.rvp +``` + +Each patch can have multiple options. You can set them using the option `-O`. +For example, to set the options for the patch with the name `Patch name` +with the key `key1` and `key2` to `value1` and `value2` respectively, use the following command: + +```bash +java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1=value1 -Okey2=value2 input.apk +``` + +If you want to set a value to `null`, you can omit the value: + +```bash +java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1 input.apk +``` + +> [!WARNING] +> Option values are usually typed. If you set a value with the wrong type, the patch can fail. +> Option value types can be seen when listing patches with the option `--with-options`. +> +> Example option values: +> +> - String: `string` +> - Boolean: `true`, `false` +> - Integer: `123` +> - Double: `1.0` +> - Float: `1.0f` +> - Long: `1234567890`, `1L` +> - List: `[item1,item2,item3]` +> - List of type `Any`: `[item1,123,true,1.0]` +> - Empty list of type `Any`: `[]` +> - Typed empty list: `int[]` +> - Typed and nested empty list: `[int[]]` +> - List with null value and two empty strings: `[null,\'\',\"\"]` +> +> Quotes and commas escaped in strings (`\"`, `\'`, `\,`) are parsed as part of the string. +> List items are recursively parsed, so you can escape values in lists: +> +> - Escaped integer as a string: `[\'123\']` +> - Escaped boolean as a string: `[\'true\']` +> - Escaped list as a string: `[\'[item1,item2]\']` +> - Escaped null value as a string: `[\'null\']` +> - List with an integer, an integer as a string and a string with a comma, and an escaped list: [`123,\'123\',str\,ing`,`\'[]\'`] +> +> Example command with an escaped integer as a string: +> +> ```bash +> java -jar revanced-cli.jar -b revanced-patches.rvp -i "Patch name" -OstringKey=\'1\' input.apk +> ``` +## 📦 Install an app manually ```bash java -jar revanced-cli.jar utility install -a input.apk diff --git a/src/main/kotlin/app/revanced/cli/command/CommandUtils.kt b/src/main/kotlin/app/revanced/cli/command/CommandUtils.kt new file mode 100644 index 0000000..afb365b --- /dev/null +++ b/src/main/kotlin/app/revanced/cli/command/CommandUtils.kt @@ -0,0 +1,105 @@ +package app.revanced.cli.command + +import picocli.CommandLine + +class OptionKeyConverter : CommandLine.ITypeConverter { + override fun convert(value: String): String = value +} + +class OptionValueConverter : CommandLine.ITypeConverter { + override fun convert(value: String?): Any? { + value ?: return null + + return when { + value.startsWith("[") && value.endsWith("]") -> { + val innerValue = value.substring(1, value.length - 1) + + buildList { + var nestLevel = 0 + var insideQuote = false + var escaped = false + + val item = buildString { + for (char in innerValue) { + when (char) { + '\\' -> { + if (escaped || nestLevel != 0) { + append(char) + } + + escaped = !escaped + } + + '"', '\'' -> { + if (!escaped) { + insideQuote = !insideQuote + } else { + escaped = false + } + + append(char) + } + + '[' -> { + if (!insideQuote) { + nestLevel++ + } + + append(char) + } + + ']' -> { + if (!insideQuote) { + nestLevel-- + + if (nestLevel == -1) { + return value + } + } + + append(char) + } + + ',' -> if (nestLevel == 0) { + if (insideQuote) { + append(char) + } else { + add(convert(toString())) + setLength(0) + } + } else { + append(char) + } + + else -> append(char) + } + } + } + + if (item.isNotEmpty()) { + add(convert(item)) + } + } + } + + value.startsWith("\"") && value.endsWith("\"") -> value.substring(1, value.length - 1) + value.startsWith("'") && value.endsWith("'") -> value.substring(1, value.length - 1) + value.endsWith("f") -> value.dropLast(1).toFloat() + value.endsWith("L") -> value.dropLast(1).toLong() + value.equals("true", ignoreCase = true) -> true + value.equals("false", ignoreCase = true) -> false + value.toIntOrNull() != null -> value.toInt() + value.toLongOrNull() != null -> value.toLong() + value.toDoubleOrNull() != null -> value.toDouble() + value.toFloatOrNull() != null -> value.toFloat() + value == "null" -> null + value == "int[]" -> emptyList() + value == "long[]" -> emptyList() + value == "double[]" -> emptyList() + value == "float[]" -> emptyList() + value == "boolean[]" -> emptyList() + value == "string[]" -> emptyList() + else -> value + } + } +} diff --git a/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt b/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt index 31f5cfa..ba993c7 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt @@ -1,8 +1,8 @@ package app.revanced.cli.command import app.revanced.library.PackageName -import app.revanced.library.PatchUtils import app.revanced.library.VersionMap +import app.revanced.library.mostCommonCompatibleVersions import app.revanced.patcher.patch.loadPatchesFromJar import picocli.CommandLine import java.io.File @@ -12,11 +12,11 @@ import java.util.logging.Logger name = "list-versions", description = [ "List the most common compatible versions of apps that are compatible " + - "with the patches in the supplied patch bundles.", + "with the patches in the supplied patch bundles.", ], ) internal class ListCompatibleVersions : Runnable { - private val logger = Logger.getLogger(ListCompatibleVersions::class.java.name) + private val logger = Logger.getLogger(this::class.java.name) @CommandLine.Parameters( description = ["Paths to patch bundles."], @@ -58,8 +58,7 @@ internal class ListCompatibleVersions : Runnable { val patches = loadPatchesFromJar(patchBundles) - PatchUtils.getMostCommonCompatibleVersions( - patches, + patches.mostCommonCompatibleVersions( packageNames, countUnusedPatches, ).entries.joinToString("\n", transform = ::buildString).let(logger::info) diff --git a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt index d3c66a1..fcdb3a5 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt @@ -14,7 +14,7 @@ import app.revanced.patcher.patch.Option as PatchOption description = ["List patches from supplied patch bundles."], ) internal object ListPatchesCommand : Runnable { - private val logger = Logger.getLogger(ListPatchesCommand::class.java.name) + private val logger = Logger.getLogger(this::class.java.name) @Parameters( description = ["Paths to patch bundles."], @@ -95,9 +95,11 @@ internal object ListPatchesCommand : Runnable { } ?: append("Key: $key") values?.let { values -> - appendLine("\nValid values:") + appendLine("\nPossible values:") append(values.map { "${it.value} (${it.key})" }.joinToString("\n").prependIndent("\t")) } + + append("\nType: $type") } fun IndexedValue>.buildString() = diff --git a/src/main/kotlin/app/revanced/cli/command/MainCommand.kt b/src/main/kotlin/app/revanced/cli/command/MainCommand.kt index 4d33a4d..5ceeef1 100644 --- a/src/main/kotlin/app/revanced/cli/command/MainCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/MainCommand.kt @@ -34,7 +34,6 @@ private object CLIVersionProvider : IVersionProvider { versionProvider = CLIVersionProvider::class, subcommands = [ PatchCommand::class, - OptionsCommand::class, ListPatchesCommand::class, ListCompatibleVersions::class, UtilityCommand::class, diff --git a/src/main/kotlin/app/revanced/cli/command/OptionsCommand.kt b/src/main/kotlin/app/revanced/cli/command/OptionsCommand.kt deleted file mode 100644 index dbc1ada..0000000 --- a/src/main/kotlin/app/revanced/cli/command/OptionsCommand.kt +++ /dev/null @@ -1,62 +0,0 @@ -package app.revanced.cli.command - -import app.revanced.library.Options -import app.revanced.library.Options.setOptions -import app.revanced.patcher.patch.loadPatchesFromJar -import picocli.CommandLine -import picocli.CommandLine.Help.Visibility.ALWAYS -import java.io.File -import java.util.logging.Logger - -@CommandLine.Command( - name = "options", - description = ["Generate options file from patches."], -) -internal object OptionsCommand : Runnable { - private val logger = Logger.getLogger(OptionsCommand::class.java.name) - - @CommandLine.Parameters( - description = ["Paths to patch bundles."], - arity = "1..*", - ) - private lateinit var patchBundles: Set - - @CommandLine.Option( - names = ["-p", "--path"], - description = ["Path to patch options JSON file."], - showDefaultValue = ALWAYS, - ) - private var filePath: File = File("options.json") - - @CommandLine.Option( - names = ["-o", "--overwrite"], - description = ["Overwrite existing options file."], - showDefaultValue = ALWAYS, - ) - private var overwrite: Boolean = false - - @CommandLine.Option( - names = ["-u", "--update"], - description = ["Update existing options by adding missing and removing non-existent options."], - showDefaultValue = ALWAYS, - ) - private var update: Boolean = false - - override fun run() = - try { - loadPatchesFromJar(patchBundles).let { patches -> - val exists = filePath.exists() - if (!exists || overwrite) { - if (exists && update) patches.setOptions(filePath) - - Options.serialize(patches, prettyPrint = true).let(filePath::writeText) - } else { - throw OptionsFileAlreadyExistsException() - } - } - } catch (ex: OptionsFileAlreadyExistsException) { - logger.severe("Options file already exists, use --overwrite to override it") - } - - class OptionsFileAlreadyExistsException : Exception() -} diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index 69f24f1..96d8d7c 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -2,15 +2,15 @@ package app.revanced.cli.command import app.revanced.library.ApkUtils import app.revanced.library.ApkUtils.applyTo -import app.revanced.library.Options -import app.revanced.library.Options.setOptions import app.revanced.library.installation.installer.* +import app.revanced.library.setOptions import app.revanced.patcher.Patcher import app.revanced.patcher.PatcherConfig import app.revanced.patcher.patch.Patch import app.revanced.patcher.patch.loadPatchesFromJar import kotlinx.coroutines.runBlocking import picocli.CommandLine +import picocli.CommandLine.ArgGroup import picocli.CommandLine.Help.Visibility.ALWAYS import picocli.CommandLine.Model.CommandSpec import picocli.CommandLine.Spec @@ -24,44 +24,71 @@ import java.util.logging.Logger description = ["Patch an APK file."], ) internal object PatchCommand : Runnable { - private val logger = Logger.getLogger(PatchCommand::class.java.name) + private val logger = Logger.getLogger(this::class.java.name) @Spec - lateinit var spec: CommandSpec // injected by picocli + private lateinit var spec: CommandSpec - private lateinit var apk: File + @ArgGroup(multiplicity = "0..*") + private lateinit var selection: Set - private var patchBundles = emptySet() + internal class Selection { + @ArgGroup(exclusive = false, multiplicity = "1") + internal var include: IncludeSelection? = null - @CommandLine.Option( - names = ["-i", "--include"], - description = ["List of patches to include."], - ) - private var includedPatches = hashSetOf() + internal class IncludeSelection { + @ArgGroup(multiplicity = "1") + internal lateinit var selector: IncludeSelector - @CommandLine.Option( - names = ["--ii"], - description = ["List of patches to include by their index in relation to the supplied patch bundles."], - ) - private var includedPatchesByIndex = arrayOf() + internal class IncludeSelector { + @CommandLine.Option( + names = ["-i", "--include"], + description = ["The name of the patch."], + required = true, + ) + internal var name: String? = null - @CommandLine.Option( - names = ["-e", "--exclude"], - description = ["List of patches to exclude."], - ) - private var excludedPatches = hashSetOf() + @CommandLine.Option( + names = ["--ii"], + description = ["The index of the patch in the combined list of all supplied patch bundles."], + required = true, + ) + internal var index: Int? = null + } - @CommandLine.Option( - names = ["--ei"], - description = ["List of patches to exclude by their index in relation to the supplied patch bundles."], - ) - private var excludedPatchesByIndex = arrayOf() + @CommandLine.Option( + names = ["-O", "--options"], + description = ["The option values keyed by the option keys."], + mapFallbackValue = CommandLine.Option.NULL_VALUE, + converter = [OptionKeyConverter::class, OptionValueConverter::class], + ) + internal var options = mutableMapOf() + } - @CommandLine.Option( - names = ["--options"], - description = ["Path to patch options JSON file."], - ) - private var optionsFile: File? = null + @ArgGroup(exclusive = false, multiplicity = "1") + internal var exclude: ExcludeSelection? = null + + internal class ExcludeSelection { + @ArgGroup(multiplicity = "1") + internal lateinit var selector: ExcludeSelector + + internal class ExcludeSelector { + @CommandLine.Option( + names = ["-e", "--exclude"], + description = ["The name of the patch."], + required = true, + ) + internal var name: String? = null + + @CommandLine.Option( + names = ["--ie"], + description = ["The index of the patch in the combined list of all supplied patch bundles."], + required = true, + ) + internal var index: Int? = null + } + } + } @CommandLine.Option( names = ["--exclusive"], @@ -141,7 +168,7 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["-t", "--temporary-files-path"], - description = ["Path to temporary files directory."], + description = ["Path to store temporary files."], ) private var temporaryFilesPath: File? = null @@ -154,13 +181,6 @@ internal object PatchCommand : Runnable { ) private var purge: Boolean = false - @CommandLine.Option( - names = ["-w", "--warn"], - description = ["Warn if a patch can not be found in the supplied patch bundles."], - showDefaultValue = ALWAYS, - ) - private var warn: Boolean = false - @CommandLine.Parameters( description = ["APK file to be patched."], arity = "1..1", @@ -176,14 +196,7 @@ internal object PatchCommand : Runnable { this.apk = apk } - @CommandLine.Option( - names = ["-m", "--merge"], - description = ["One or more DEX files or containers to merge into the APK."], - ) - @Suppress("unused") - private fun setIntegrations(integrations: Set) { - logger.warning("The --merge option is not used anymore.") - } + private lateinit var apk: File @CommandLine.Option( names = ["-b", "--patch-bundle"], @@ -198,6 +211,8 @@ internal object PatchCommand : Runnable { this.patchBundles = patchBundles } + private var patchBundles = emptySet() + @CommandLine.Option( names = ["--custom-aapt2-binary"], description = ["Path to a custom AAPT binary to compile resources with."], @@ -226,11 +241,6 @@ internal object PatchCommand : Runnable { "${outputFilePath.nameWithoutExtension}-temporary-files", ) - val optionsFile = - optionsFile ?: outputFilePath.parentFile.resolve( - "${outputFilePath.nameWithoutExtension}-options.json", - ) - val keystoreFilePath = keystoreFilePath ?: outputFilePath.parentFile .resolve("${outputFilePath.nameWithoutExtension}.keystore") @@ -243,21 +253,10 @@ internal object PatchCommand : Runnable { val patches = loadPatchesFromJar(patchBundles) - // Warn if a patch can not be found in the supplied patch bundles. - if (warn) { - patches.map { it.name }.toHashSet().let { availableNames -> - (includedPatches + excludedPatches).filter { name -> - !availableNames.contains(name) - } - }.let { unknownPatches -> - if (unknownPatches.isEmpty()) return@let - logger.warning("Unknown input of patches:\n${unknownPatches.joinToString("\n")}") - } - } - // endregion val patcherTemporaryFilesPath = temporaryFilesPath.resolve("patcher") + val (packageName, patcherResult) = Patcher( PatcherConfig( apk, @@ -267,16 +266,20 @@ internal object PatchCommand : Runnable { true, ), ).use { patcher -> - val filteredPatches = - patcher.filterPatchSelection(patches).also { patches -> - logger.info("Setting patch options") + val packageName = patcher.context.packageMetadata.packageName + val packageVersion = patcher.context.packageMetadata.packageVersion - if (optionsFile.exists()) { - patches.setOptions(optionsFile) - } else { - Options.serialize(patches, prettyPrint = true).let(optionsFile::writeText) - } - } + val filteredPatches = patches.filterPatchSelection(packageName, packageVersion) + + logger.info("Setting patch options") + + val patchesList = patches.toList() + selection.filter { it.include != null }.associate { + val includeSelection = it.include!! + + (includeSelection.selector.name ?: patchesList[includeSelection.selector.index!!].name!!) to + includeSelection.options + }.let(filteredPatches::setOptions) patcher += filteredPatches @@ -297,7 +300,7 @@ internal object PatchCommand : Runnable { patcher.context.packageMetadata.packageName to patcher.get() } - // region Save + // region Save. apk.copyTo(temporaryFilesPath.resolve(apk.name), overwrite = true).apply { patcherResult.applyTo(this) @@ -323,9 +326,9 @@ internal object PatchCommand : Runnable { // endregion - // region Install + // region Install. - deviceSerial?.let { it -> + deviceSerial?.let { val deviceSerial = it.ifEmpty { null } runBlocking { @@ -352,64 +355,72 @@ internal object PatchCommand : Runnable { } /** - * Filter the patches to be added to the patcher. The filter is based on the following: + * Filter the patches based on the selection. * - * @param patches The patches to filter. + * @param packageName The package name of the APK file to be patched. + * @param packageVersion The version of the APK file to be patched. * @return The filtered patches. */ - private fun Patcher.filterPatchSelection(patches: Set>): Set> = - buildSet { - val packageName = context.packageMetadata.packageName - val packageVersion = context.packageMetadata.packageVersion + private fun Set>.filterPatchSelection( + packageName: String, + packageVersion: String, + ): Set> = buildSet { + val includedPatchesByName = + selection.asSequence().mapNotNull { it.include?.selector?.name }.toSet() + val includedPatchesByIndex = + selection.asSequence().mapNotNull { it.include?.selector?.index }.toSet() - patches.withIndex().forEach patch@{ (i, patch) -> - val patchName = patch.name!! + val excludedPatches = + selection.asSequence().mapNotNull { it.exclude?.selector?.name }.toSet() + val excludedPatchesByIndex = + selection.asSequence().mapNotNull { it.exclude?.selector?.index }.toSet() - val explicitlyExcluded = excludedPatches.contains(patchName) || excludedPatchesByIndex.contains(i) - if (explicitlyExcluded) return@patch logger.info("\"$patchName\" excluded manually") + this@filterPatchSelection.withIndex().forEach patchLoop@{ (i, patch) -> + val patchName = patch.name!! - // Make sure the patch is compatible with the supplied APK files package name and version. - patch.compatiblePackages?.let { packages -> - packages.singleOrNull { (name, _) -> name == packageName }?.let { (_, versions) -> - if (versions?.isEmpty() == true) { - return@patch logger.warning("\"$patchName\" incompatible with \"$packageName\"") - } + val isManuallyExcluded = patchName in excludedPatches || i in excludedPatchesByIndex + if (isManuallyExcluded) return@patchLoop logger.info("\"$patchName\" excluded manually") - val matchesVersion = force || - versions?.let { it.any { version -> version == packageVersion } } - ?: true + // Make sure the patch is compatible with the supplied APK files package name and version. + patch.compatiblePackages?.let { packages -> + packages.singleOrNull { (name, _) -> name == packageName }?.let { (_, versions) -> + if (versions?.isEmpty() == true) { + return@patchLoop logger.warning("\"$patchName\" incompatible with \"$packageName\"") + } - if (!matchesVersion) { - return@patch logger.warning( - "\"$patchName\" incompatible with $packageName $packageVersion " + - "but compatible with " + - packages.joinToString("; ") { (packageName, versions) -> - packageName + " " + versions!!.joinToString(", ") - }, - ) - } - } ?: return@patch logger.fine( - "\"$patchName\" incompatible with $packageName. " + - "It is only compatible with " + - packages.joinToString(", ") { (name, _) -> name }, - ) + val matchesVersion = + force || versions?.let { it.any { version -> version == packageVersion } } ?: true - return@let - } ?: logger.fine("\"$patchName\" has no package constraints") + if (!matchesVersion) { + return@patchLoop logger.warning( + "\"$patchName\" incompatible with $packageName $packageVersion " + + "but compatible with " + + packages.joinToString("; ") { (packageName, versions) -> + packageName + " " + versions!!.joinToString(", ") + }, + ) + } + } ?: return@patchLoop logger.fine( + "\"$patchName\" incompatible with $packageName. " + + "It is only compatible with " + + packages.joinToString(", ") { (name, _) -> name }, + ) - // If the patch is implicitly used, it will be only included if [exclusive] is false. - val implicitlyIncluded = !exclusive && patch.use - // If the patch is explicitly used, it will be included even if [exclusive] is false. - val explicitlyIncluded = includedPatches.contains(patchName) || includedPatchesByIndex.contains(i) + return@let + } ?: logger.fine("\"$patchName\" has no package constraints") - val included = implicitlyIncluded || explicitlyIncluded - if (!included) return@patch logger.info("\"$patchName\" excluded") // Case 1. + val isIncluded = !exclusive && patch.use + val isManuallyIncluded = patchName in includedPatchesByName || i in includedPatchesByIndex - add(patch) - - logger.fine("\"$patchName\" added") + if (!(isIncluded || isManuallyIncluded)) { + return@patchLoop logger.info("\"$patchName\" excluded") } + + add(patch) + + logger.fine("\"$patchName\" added") } + } private fun purge(resourceCachePath: File) { val result = diff --git a/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt b/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt index 573205e..6fbb546 100644 --- a/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt @@ -13,7 +13,7 @@ import java.util.logging.Logger description = ["Install an APK file to devices with the supplied ADB device serials"], ) internal object InstallCommand : Runnable { - private val logger = Logger.getLogger(InstallCommand::class.java.name) + private val logger = Logger.getLogger(this::class.java.name) @Parameters( description = ["ADB device serials. If not supplied, the first connected device will be used."], diff --git a/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt b/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt index e446e00..6f825c6 100644 --- a/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt @@ -1,6 +1,9 @@ package app.revanced.cli.command.utility -import app.revanced.library.installation.installer.* +import app.revanced.library.installation.installer.AdbInstaller +import app.revanced.library.installation.installer.AdbInstallerResult +import app.revanced.library.installation.installer.AdbRootInstaller +import app.revanced.library.installation.installer.RootInstallerResult import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.runBlocking @@ -13,7 +16,7 @@ import java.util.logging.Logger description = ["Uninstall a patched app from the devices with the supplied ADB device serials"], ) internal object UninstallCommand : Runnable { - private val logger = Logger.getLogger(UninstallCommand::class.java.name) + private val logger = Logger.getLogger(this::class.java.name) @Parameters( description = ["ADB device serials. If not supplied, the first connected device will be used."], diff --git a/src/test/kotlin/app/revanced/cli/command/OptionValueConverterTest.kt b/src/test/kotlin/app/revanced/cli/command/OptionValueConverterTest.kt new file mode 100644 index 0000000..c03358c --- /dev/null +++ b/src/test/kotlin/app/revanced/cli/command/OptionValueConverterTest.kt @@ -0,0 +1,78 @@ +package app.revanced.cli.command + +import kotlin.test.Test + +class OptionValueConverterTest { + @Test + fun `converts to string`() { + "string" convertsTo "string" because "Strings should remain the same" + } + + @Test + fun `converts to null`() { + "null" convertsTo null because "null should convert to null" + "\"null\"" convertsTo "null" because "Escaped null should convert to a string" + } + + @Test + fun `converts to boolean`() { + "true" convertsTo true because "true should convert to a boolean true" + "True" convertsTo true because "Casing should not matter" + "\"true\"" convertsTo "true" because "Escaped booleans should be converted to strings" + "\'True\'" convertsTo "True" because "Casing in escaped booleans should not matter" + "tr ue" convertsTo "tr ue" because "Malformed booleans should be converted to strings" + } + + @Test + fun `converts to numbers`() { + "1" convertsTo 1 because "Integers should convert to integers" + "1.0" convertsTo 1.0 because "Doubles should convert to doubles" + "1.0f" convertsTo 1.0f because "The suffix f should convert to a float" + Long.MAX_VALUE.toString() convertsTo Long.MAX_VALUE because "Values that are too large for an integer should convert to longs" + "1L" convertsTo 1L because "The suffix L should convert to a long" + } + + @Test + fun `converts escaped numbers to string`() { + "\"1\"" convertsTo "1" because "Escaped numbers should convert to strings" + "\"1.0\"" convertsTo "1.0" because "Escaped doubles should convert to strings" + "\"1L\"" convertsTo "1L" because "Escaped longs should convert to strings" + "\'1\'" convertsTo "1" because "Single quotes should not be treated as escape symbols" + "\'.0\'" convertsTo ".0" because "Single quotes should not be treated as escape symbols" + "\'1L\'" convertsTo "1L" because "Single quotes should not be treated as escape symbols" + } + + @Test + fun `trims escape symbols once`() { + "\"\"\"1\"\"\"" convertsTo "\"\"1\"\"" because "The escape symbols should be trimmed once" + "\'\'\'1\'\'\'" convertsTo "''1''" because "Single quotes should not be treated as escape symbols" + } + + @Test + fun `converts lists`() { + "1,2" convertsTo "1,2" because "Lists without square brackets should not be converted to lists" + "[1,2" convertsTo "[1,2" because "Invalid lists should not be converted to lists" + "\"[1,2]\"" convertsTo "[1,2]" because "Lists with escaped square brackets should not be converted to lists" + + "[]" convertsTo emptyList() because "Empty untyped lists should convert to empty lists of any" + "int[]" convertsTo emptyList() because "Empty typed lists should convert to lists of the specified type" + "[[int[]]]" convertsTo listOf(listOf(emptyList())) because "Nested typed lists should convert to nested lists of the specified type" + "[\"int[]\"]" convertsTo listOf("int[]") because "Lists of escaped empty typed lists should not be converted to lists" + + "[1,2,3]" convertsTo listOf(1, 2, 3) because "Lists of integers should convert to lists of integers" + "[[1]]" convertsTo listOf(listOf(1)) because "Nested lists with one element should convert to nested lists" + "[[1,2],[3,4]]" convertsTo listOf(listOf(1, 2), listOf(3, 4)) because "Nested lists should convert to nested lists" + + "[\"1,2\"]" convertsTo listOf("1,2") because "Values in lists should not be split by commas in strings" + "[[\"1,2\"]]" convertsTo listOf(listOf("1,2")) because "Values in nested lists should not be split by commas in strings" + + "[\"\\\"\"]" convertsTo listOf("\"") because "Escaped quotes in strings should be converted to quotes" + "[[\"\\\"\"]]" convertsTo listOf(listOf("\"")) because "Escaped quotes in strings nested in lists should be converted to quotes" + "[.1,.2f,,true,FALSE]" convertsTo listOf(.1, .2f, "", true, false) because "Values in lists should be converted to the correct type" + } + + private val convert = OptionValueConverter()::convert + + private infix fun String.convertsTo(to: Any?) = convert(this) to to + private infix fun Pair.because(reason: String) = assert(this.first == this.second) { reason } +} From 6306b1abfe019d8680b4892f2669d6b1051343b8 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 12 Aug 2024 20:14:37 +0000 Subject: [PATCH 09/41] chore(release): 5.0.0-dev.1 [skip ci] # [5.0.0-dev.1](https://github.com/ReVanced/revanced-cli/compare/v4.6.0...v5.0.0-dev.1) (2024-08-12) ### Features * Set patch options via CLI ([#336](https://github.com/ReVanced/revanced-cli/issues/336)) ([2300243](https://github.com/ReVanced/revanced-cli/commit/23002434b2d51c2a3b30b33dd0526261432d90ce)) ### BREAKING CHANGES * This commit changes various CLI options and removes the `options.json` file. Instead, patch options can now be passed via CLI options --- CHANGELOG.md | 12 ++++++++++++ gradle.properties | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80235ff..c08efc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [5.0.0-dev.1](https://github.com/ReVanced/revanced-cli/compare/v4.6.0...v5.0.0-dev.1) (2024-08-12) + + +### Features + +* Set patch options via CLI ([#336](https://github.com/ReVanced/revanced-cli/issues/336)) ([2300243](https://github.com/ReVanced/revanced-cli/commit/23002434b2d51c2a3b30b33dd0526261432d90ce)) + + +### BREAKING CHANGES + +* This commit changes various CLI options and removes the `options.json` file. Instead, patch options can now be passed via CLI options + # [4.6.0](https://github.com/ReVanced/revanced-cli/compare/v4.5.0...v4.6.0) (2024-04-01) diff --git a/gradle.properties b/gradle.properties index 0de6d25..1edefd0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 4.6.0 +version = 5.0.0-dev.1 From 6e7797a3f0525a8f48af7182157da0d045600ac2 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 14 Aug 2024 16:06:58 +0400 Subject: [PATCH 10/41] feat: Simplify command and option names and descriptions (#338) BREAKING CHANGE: Options have been renamed. --- docs/1_usage.md | 44 +++---- .../cli/command/ListCompatibleVersions.kt | 8 +- .../cli/command/ListPatchesCommand.kt | 12 +- .../app/revanced/cli/command/PatchCommand.kt | 118 +++++++++--------- .../cli/command/utility/InstallCommand.kt | 8 +- .../cli/command/utility/UninstallCommand.kt | 8 +- 6 files changed, 100 insertions(+), 98 deletions(-) diff --git a/docs/1_usage.md b/docs/1_usage.md index 7e51542..1e5b2de 100644 --- a/docs/1_usage.md +++ b/docs/1_usage.md @@ -13,7 +13,7 @@ java -jar revanced-cli.jar -h ## 📃 List patches ```bash -java -jar revanced-cli.jar list-patches --with-packages --with-versions --with-options revanced-patches.rvp +java -jar revanced-cli.jar list-patches --with-packages --with-versions --with-options patches.rvp ``` ## 💉 Patch an app @@ -21,48 +21,48 @@ java -jar revanced-cli.jar list-patches --with-packages --with-versions --with-o To patch an app using the default list of patches, use the `patch` command: ```bash -java -jar revanced-cli.jar patch -b revanced-patches.rvp input.apk +java -jar revanced-cli.jar patch -p patches.rvp input.apk ``` -You can also use multiple patch bundles: +You can also use multiple files containing patches: ```bash -java -jar revanced-cli.jar patch -b revanced-patches.rvp -b another-patches.rvp input.apk +java -jar revanced-cli.jar patch -p patches.rvp -b another-patches.rvp input.apk ``` -To change the default set of used patches, use the option `-i` or `-e` to use or disuse specific patches. -You can use the `list-patches` command to see which patches are used by default. +To change the default set of enabled or disabled patches, use the option `-e` or `-d` to enable or disable specific patches. +You can use the `list-patches` command to see which patches are enabled by default. -To only use specific patches, you can use the option `--exclusive` combined with `-i`. -Remember that the options `-i` and `-e` match the patch's name exactly. Here is an example: +To only enable specific patches, you can use the option `--exclusive` combined with `-e`. +Remember that the options `-e` and `-d` match the patch's name exactly. Here is an example: ```bash -java -jar revanced-cli.jar patch -b revanced-patches.rvp --exclusive -i "Patch name" -i "Another patch name" input.apk +java -jar revanced-cli.jar patch -p patches.rvp --exclusive -e "Patch name" -e "Another patch name" input.apk ``` -You can also use the options `--ii` and `--ie` to use or disuse patches by their index. -This is useful, if two patches happen to have the same name. +You can also use the options `--ei` or `--di` to enable or disable patches by their index. +This is useful, if two patches happen to have the same name, or if typing the names is too cumbersome. To know the indices of patches, use the command `list-patches`: ```bash -java -jar revanced-cli.jar list-patches revanced-patches.rvp +java -jar revanced-cli.jar list-patches patches.rvp ``` -Then you can use the indices to use or disuse patches: +Then you can use the indices to enable or disable patches: ```bash -java -jar revanced-cli.jar patch -b revanced-patches.rvp --ii 123 --ie 456 input.apk +java -jar revanced-cli.jar patch -b patches.rvp --ei 123 --di 456 input.apk ``` -You can combine the option `-i`, `-e`, `--ii`, `--ie` and `--exclusive`. Here is an example: +You can combine the option `-e`, `-d`, `--ei`, `--di` and `--exclusive`. Here is an example: ```bash -java -jar revanced-cli.jar patch -b revanced-patches.rvp --exclusive -i "Patch name" --ii 123 input.apk +java -jar revanced-cli.jar patch -p patches.rvp --exclusive -i "Patch name" --ei 123 input.apk ``` > [!TIP] -> You can use the option `-d` to automatically install the patched app after patching. +> You can use the option `-i` to automatically install the patched app after patching. > Make sure ADB is working: > > ```bash @@ -83,7 +83,7 @@ Patches can have options you can set using the option `-O` alongside the option To know the options of a patch, use the option `--with-options` when listing patches: ```bash -java -jar revanced-cli.jar list-patches --with-options revanced-patches.rvp +java -jar revanced-cli.jar list-patches --with-options patches.rvp ``` Each patch can have multiple options. You can set them using the option `-O`. @@ -91,10 +91,10 @@ For example, to set the options for the patch with the name `Patch name` with the key `key1` and `key2` to `value1` and `value2` respectively, use the following command: ```bash -java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1=value1 -Okey2=value2 input.apk +java -jar revanced-cli.jar patch -b patches.rvp -e "Patch name" -Okey1=value1 -Okey2=value2 input.apk ``` -If you want to set a value to `null`, you can omit the value: +If you want to set the option value to `null`, you can omit the value: ```bash java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1 input.apk @@ -102,7 +102,7 @@ java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1 > [!WARNING] > Option values are usually typed. If you set a value with the wrong type, the patch can fail. -> Option value types can be seen when listing patches with the option `--with-options`. +> The value types can be seen when listing patches with the option `--with-options`. > > Example option values: > @@ -131,7 +131,7 @@ java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1 > Example command with an escaped integer as a string: > > ```bash -> java -jar revanced-cli.jar -b revanced-patches.rvp -i "Patch name" -OstringKey=\'1\' input.apk +> java -jar revanced-cli.jar -p patches.rvp -e "Patch name" -OstringKey=\'1\' input.apk > ``` ## 📦 Install an app manually diff --git a/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt b/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt index ba993c7..a72a0cd 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt @@ -12,17 +12,17 @@ import java.util.logging.Logger name = "list-versions", description = [ "List the most common compatible versions of apps that are compatible " + - "with the patches in the supplied patch bundles.", + "with the patches in the supplied files containing patches.", ], ) internal class ListCompatibleVersions : Runnable { private val logger = Logger.getLogger(this::class.java.name) @CommandLine.Parameters( - description = ["Paths to patch bundles."], + description = ["One or more paths to files containing patches."], arity = "1..*", ) - private lateinit var patchBundles: Set + private lateinit var patchesFiles: Set @CommandLine.Option( names = ["-f", "--filter-package-names"], @@ -56,7 +56,7 @@ internal class ListCompatibleVersions : Runnable { appendLine(versions.buildVersionsString().prependIndent("\t")) } - val patches = loadPatchesFromJar(patchBundles) + val patches = loadPatchesFromJar(patchesFiles) patches.mostCommonCompatibleVersions( packageNames, diff --git a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt index fcdb3a5..8dac2ad 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt @@ -11,16 +11,16 @@ import app.revanced.patcher.patch.Option as PatchOption @Command( name = "list-patches", - description = ["List patches from supplied patch bundles."], + description = ["List patches from supplied files containing patches."], ) internal object ListPatchesCommand : Runnable { private val logger = Logger.getLogger(this::class.java.name) @Parameters( - description = ["Paths to patch bundles."], + description = ["One or more paths to files containing patches."], arity = "1..*", ) - private lateinit var patchBundles: Set + private lateinit var patchesFiles: Set @Option( names = ["-d", "--with-descriptions"], @@ -59,7 +59,7 @@ internal object ListPatchesCommand : Runnable { @Option( names = ["-i", "--index"], - description = ["List the index of each patch in relation to the supplied patch bundles."], + description = ["List the index of each patch in relation to the supplied files containing patches."], showDefaultValue = ALWAYS, ) private var withIndex: Boolean = true @@ -111,6 +111,8 @@ internal object ListPatchesCommand : Runnable { if (withDescriptions) append("\nDescription: ${patch.description}") + append("Enabled: ${patch.use}") + if (withOptions && patch.options.isNotEmpty()) { appendLine("\nOptions:") append( @@ -135,7 +137,7 @@ internal object ListPatchesCommand : Runnable { compatiblePackages?.any { (compatiblePackageName, _) -> compatiblePackageName == name } ?: withUniversalPatches - val patches = loadPatchesFromJar(patchBundles).withIndex().toList() + val patches = loadPatchesFromJar(patchesFiles).withIndex().toList() val filtered = packageName?.let { patches.filter { (_, patch) -> patch.filterCompatiblePackages(it) } } ?: patches diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index 96d8d7c..b441f3a 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -34,23 +34,23 @@ internal object PatchCommand : Runnable { internal class Selection { @ArgGroup(exclusive = false, multiplicity = "1") - internal var include: IncludeSelection? = null + internal var enabled: EnableSelection? = null - internal class IncludeSelection { + internal class EnableSelection { @ArgGroup(multiplicity = "1") - internal lateinit var selector: IncludeSelector + internal lateinit var selector: EnableSelector - internal class IncludeSelector { + internal class EnableSelector { @CommandLine.Option( - names = ["-i", "--include"], - description = ["The name of the patch."], + names = ["-e", "--enable"], + description = ["Name of the patch."], required = true, ) internal var name: String? = null @CommandLine.Option( - names = ["--ii"], - description = ["The index of the patch in the combined list of all supplied patch bundles."], + names = ["--ei"], + description = ["Index of the patch in the combined list of all supplied files containing patches."], required = true, ) internal var index: Int? = null @@ -58,7 +58,7 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["-O", "--options"], - description = ["The option values keyed by the option keys."], + description = ["Option values keyed by option keys."], mapFallbackValue = CommandLine.Option.NULL_VALUE, converter = [OptionKeyConverter::class, OptionValueConverter::class], ) @@ -66,23 +66,23 @@ internal object PatchCommand : Runnable { } @ArgGroup(exclusive = false, multiplicity = "1") - internal var exclude: ExcludeSelection? = null + internal var disable: DisableSelection? = null - internal class ExcludeSelection { + internal class DisableSelection { @ArgGroup(multiplicity = "1") - internal lateinit var selector: ExcludeSelector + internal lateinit var selector: DisableSelector - internal class ExcludeSelector { + internal class DisableSelector { @CommandLine.Option( - names = ["-e", "--exclude"], - description = ["The name of the patch."], + names = ["-d", "--disable"], + description = ["Name of the patch."], required = true, ) internal var name: String? = null @CommandLine.Option( - names = ["--ie"], - description = ["The index of the patch in the combined list of all supplied patch bundles."], + names = ["--di"], + description = ["Index of the patch in the combined list of all supplied files containing patches."], required = true, ) internal var index: Int? = null @@ -92,14 +92,14 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["--exclusive"], - description = ["Only include patches that are explicitly specified to be included."], + description = ["Disable all patches except the ones enabled."], showDefaultValue = ALWAYS, ) private var exclusive = false @CommandLine.Option( names = ["-f", "--force"], - description = ["Bypass compatibility checks for the supplied APK's version."], + description = ["Don't check for compatibility with the supplied APK's version."], showDefaultValue = ALWAYS, ) private var force: Boolean = false @@ -108,7 +108,7 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["-o", "--out"], - description = ["Path to save the patched APK file to. Defaults to the same directory as the supplied APK file."], + description = ["Path to save the patched APK file to. Defaults to the same path as the supplied APK file."], ) @Suppress("unused") private fun setOutputFilePath(outputFilePath: File?) { @@ -116,8 +116,8 @@ internal object PatchCommand : Runnable { } @CommandLine.Option( - names = ["-d", "--device-serial"], - description = ["ADB device serial to install to. If not supplied, the first connected device will be used."], + names = ["-i", "--install"], + description = ["Serial of the ADB device to install to. If not specified, the first connected device will be used."], // Empty string to indicate that the first connected device should be used. fallbackValue = "", arity = "0..1", @@ -126,7 +126,7 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["--mount"], - description = ["Install by mounting the patched APK file."], + description = ["Install the patched APK file by mounting."], showDefaultValue = ALWAYS, ) private var mount: Boolean = false @@ -134,28 +134,28 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["--keystore"], description = [ - "Path to the keystore to sign the patched APK file with. " + + "Path to the keystore file containing a private key and certificate pair to sign the patched APK file with. " + "Defaults to the same directory as the supplied APK file.", ], ) - private var keystoreFilePath: File? = null + private var keyStoreFilePath: File? = null @CommandLine.Option( names = ["--keystore-password"], - description = ["The password of the keystore to sign the patched APK file with. Empty password by default."], + description = ["Password of the keystore. Empty password by default."], ) private var keyStorePassword: String? = null // Empty password by default @CommandLine.Option( names = ["--keystore-entry-alias"], - description = ["The alias of the keystore entry to sign the patched APK file with."], + description = ["Alias of the private key and certificate pair keystore entry."], showDefaultValue = ALWAYS, ) private var keyStoreEntryAlias = "ReVanced Key" @CommandLine.Option( names = ["--keystore-entry-password"], - description = ["The password of the entry from the keystore for the key to sign the patched APK file with."], + description = ["Password of the keystore entry."], ) private var keyStoreEntryPassword = "" // Empty password by default @@ -175,15 +175,15 @@ internal object PatchCommand : Runnable { private var aaptBinaryPath: File? = null @CommandLine.Option( - names = ["-p", "--purge"], - description = ["Purge the temporary resource cache directory after patching."], + names = ["--purge"], + description = ["Purge temporary files directory after patching."], showDefaultValue = ALWAYS, ) private var purge: Boolean = false @CommandLine.Parameters( - description = ["APK file to be patched."], - arity = "1..1", + description = ["APK file to patch."], + arity = "1", ) @Suppress("unused") private fun setApk(apk: File) { @@ -199,19 +199,19 @@ internal object PatchCommand : Runnable { private lateinit var apk: File @CommandLine.Option( - names = ["-b", "--patch-bundle"], - description = ["One or more bundles of patches."], + names = ["-p", "--patches"], + description = ["One or more path to files containing patches."], required = true, ) @Suppress("unused") - private fun setPatchBundles(patchBundles: Set) { - patchBundles.firstOrNull { !it.exists() }?.let { - throw CommandLine.ParameterException(spec.commandLine(), "Patch bundle ${it.name} does not exist") + private fun setPatchesFile(patchesFiles: Set) { + patchesFiles.firstOrNull { !it.exists() }?.let { + throw CommandLine.ParameterException(spec.commandLine(), "${it.name} can't be found") } - this.patchBundles = patchBundles + this.patchesFiles = patchesFiles } - private var patchBundles = emptySet() + private var patchesFiles = emptySet() @CommandLine.Option( names = ["--custom-aapt2-binary"], @@ -242,7 +242,7 @@ internal object PatchCommand : Runnable { ) val keystoreFilePath = - keystoreFilePath ?: outputFilePath.parentFile + keyStoreFilePath ?: outputFilePath.parentFile .resolve("${outputFilePath.nameWithoutExtension}.keystore") // endregion @@ -251,7 +251,7 @@ internal object PatchCommand : Runnable { logger.info("Loading patches") - val patches = loadPatchesFromJar(patchBundles) + val patches = loadPatchesFromJar(patchesFiles) // endregion @@ -274,11 +274,11 @@ internal object PatchCommand : Runnable { logger.info("Setting patch options") val patchesList = patches.toList() - selection.filter { it.include != null }.associate { - val includeSelection = it.include!! + selection.filter { it.enabled != null }.associate { + val enabledSelection = it.enabled!! - (includeSelection.selector.name ?: patchesList[includeSelection.selector.index!!].name!!) to - includeSelection.options + (enabledSelection.selector.name ?: patchesList[enabledSelection.selector.index!!].name!!) to + enabledSelection.options }.let(filteredPatches::setOptions) patcher += filteredPatches @@ -365,21 +365,21 @@ internal object PatchCommand : Runnable { packageName: String, packageVersion: String, ): Set> = buildSet { - val includedPatchesByName = - selection.asSequence().mapNotNull { it.include?.selector?.name }.toSet() - val includedPatchesByIndex = - selection.asSequence().mapNotNull { it.include?.selector?.index }.toSet() + val enabledPatchesByName = + selection.asSequence().mapNotNull { it.enabled?.selector?.name }.toSet() + val enabledPatchesByIndex = + selection.asSequence().mapNotNull { it.enabled?.selector?.index }.toSet() - val excludedPatches = - selection.asSequence().mapNotNull { it.exclude?.selector?.name }.toSet() - val excludedPatchesByIndex = - selection.asSequence().mapNotNull { it.exclude?.selector?.index }.toSet() + val disabledPatches = + selection.asSequence().mapNotNull { it.disable?.selector?.name }.toSet() + val disabledPatchesByIndex = + selection.asSequence().mapNotNull { it.disable?.selector?.index }.toSet() this@filterPatchSelection.withIndex().forEach patchLoop@{ (i, patch) -> val patchName = patch.name!! - val isManuallyExcluded = patchName in excludedPatches || i in excludedPatchesByIndex - if (isManuallyExcluded) return@patchLoop logger.info("\"$patchName\" excluded manually") + val isManuallyDisabled = patchName in disabledPatches || i in disabledPatchesByIndex + if (isManuallyDisabled) return@patchLoop logger.info("\"$patchName\" disabled manually") // Make sure the patch is compatible with the supplied APK files package name and version. patch.compatiblePackages?.let { packages -> @@ -409,11 +409,11 @@ internal object PatchCommand : Runnable { return@let } ?: logger.fine("\"$patchName\" has no package constraints") - val isIncluded = !exclusive && patch.use - val isManuallyIncluded = patchName in includedPatchesByName || i in includedPatchesByIndex + val isEnabled = !exclusive && patch.use + val isManuallyEnabled = patchName in enabledPatchesByName || i in enabledPatchesByIndex - if (!(isIncluded || isManuallyIncluded)) { - return@patchLoop logger.info("\"$patchName\" excluded") + if (!(isEnabled || isManuallyEnabled)) { + return@patchLoop logger.info("\"$patchName\" disabled") } add(patch) diff --git a/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt b/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt index 6fbb546..7ecddee 100644 --- a/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/utility/InstallCommand.kt @@ -10,27 +10,27 @@ import java.util.logging.Logger @Command( name = "install", - description = ["Install an APK file to devices with the supplied ADB device serials"], + description = ["Install an APK file."], ) internal object InstallCommand : Runnable { private val logger = Logger.getLogger(this::class.java.name) @Parameters( - description = ["ADB device serials. If not supplied, the first connected device will be used."], + description = ["Serial of ADB devices. If not supplied, the first connected device will be used."], arity = "0..*", ) private var deviceSerials: Array? = null @Option( names = ["-a", "--apk"], - description = ["APK file to be installed"], + description = ["APK file to be installed."], required = true, ) private lateinit var apk: File @Option( names = ["-m", "--mount"], - description = ["Mount the supplied APK file over the app with the supplied package name"], + description = ["Mount the supplied APK file over the app with the supplied package name."], ) private var packageName: String? = null diff --git a/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt b/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt index 6f825c6..3477e8a 100644 --- a/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/utility/UninstallCommand.kt @@ -13,27 +13,27 @@ import java.util.logging.Logger @Command( name = "uninstall", - description = ["Uninstall a patched app from the devices with the supplied ADB device serials"], + description = ["Uninstall a patched app."], ) internal object UninstallCommand : Runnable { private val logger = Logger.getLogger(this::class.java.name) @Parameters( - description = ["ADB device serials. If not supplied, the first connected device will be used."], + description = ["Serial of ADB devices. If not supplied, the first connected device will be used."], arity = "0..*", ) private var deviceSerials: Array? = null @Option( names = ["-p", "--package-name"], - description = ["Package name of the app to uninstall"], + description = ["Package name of the app to uninstall."], required = true, ) private lateinit var packageName: String @Option( names = ["-u", "--unmount"], - description = ["Uninstall by unmounting the patched APK file"], + description = ["Uninstall the patched APK file by unmounting."], showDefaultValue = ALWAYS, ) private var unmount: Boolean = false From 9b0396368770a9e3d5be6387b2cb193fed965584 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 14 Aug 2024 12:08:47 +0000 Subject: [PATCH 11/41] chore(release): 5.0.0-dev.2 [skip ci] # [5.0.0-dev.2](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.1...v5.0.0-dev.2) (2024-08-14) ### Features * Simplify command and option names and descriptions ([#338](https://github.com/ReVanced/revanced-cli/issues/338)) ([6e7797a](https://github.com/ReVanced/revanced-cli/commit/6e7797a3f0525a8f48af7182157da0d045600ac2)) ### BREAKING CHANGES * Options have been renamed. --- CHANGELOG.md | 12 ++++++++++++ gradle.properties | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c08efc0..0113e49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [5.0.0-dev.2](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.1...v5.0.0-dev.2) (2024-08-14) + + +### Features + +* Simplify command and option names and descriptions ([#338](https://github.com/ReVanced/revanced-cli/issues/338)) ([6e7797a](https://github.com/ReVanced/revanced-cli/commit/6e7797a3f0525a8f48af7182157da0d045600ac2)) + + +### BREAKING CHANGES + +* Options have been renamed. + # [5.0.0-dev.1](https://github.com/ReVanced/revanced-cli/compare/v4.6.0...v5.0.0-dev.1) (2024-08-12) diff --git a/gradle.properties b/gradle.properties index 1edefd0..fc94434 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.1 +version = 5.0.0-dev.2 From 45c998b335b65ac233fece8b804dc7410142691c Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 14 Aug 2024 15:33:17 +0200 Subject: [PATCH 12/41] feat: Simplify option descriptions --- docs/1_usage.md | 6 +++--- .../app/revanced/cli/command/ListCompatibleVersions.kt | 4 ++-- .../kotlin/app/revanced/cli/command/ListPatchesCommand.kt | 6 +++--- src/main/kotlin/app/revanced/cli/command/PatchCommand.kt | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/1_usage.md b/docs/1_usage.md index 1e5b2de..2ca9822 100644 --- a/docs/1_usage.md +++ b/docs/1_usage.md @@ -24,7 +24,7 @@ To patch an app using the default list of patches, use the `patch` command: java -jar revanced-cli.jar patch -p patches.rvp input.apk ``` -You can also use multiple files containing patches: +You can also use multiple RVP files: ```bash java -jar revanced-cli.jar patch -p patches.rvp -b another-patches.rvp input.apk @@ -91,13 +91,13 @@ For example, to set the options for the patch with the name `Patch name` with the key `key1` and `key2` to `value1` and `value2` respectively, use the following command: ```bash -java -jar revanced-cli.jar patch -b patches.rvp -e "Patch name" -Okey1=value1 -Okey2=value2 input.apk +java -jar revanced-cli.jar patch -p patches.rvp -e "Patch name" -Okey1=value1 -Okey2=value2 input.apk ``` If you want to set the option value to `null`, you can omit the value: ```bash -java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1 input.apk +java -jar revanced-cli.jar patch -p patches.rvp -i "Patch name" -Okey1 input.apk ``` > [!WARNING] diff --git a/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt b/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt index a72a0cd..aed66e9 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListCompatibleVersions.kt @@ -12,14 +12,14 @@ import java.util.logging.Logger name = "list-versions", description = [ "List the most common compatible versions of apps that are compatible " + - "with the patches in the supplied files containing patches.", + "with the patches from RVP files.", ], ) internal class ListCompatibleVersions : Runnable { private val logger = Logger.getLogger(this::class.java.name) @CommandLine.Parameters( - description = ["One or more paths to files containing patches."], + description = ["Paths to RVP files."], arity = "1..*", ) private lateinit var patchesFiles: Set diff --git a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt index 8dac2ad..d82185a 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt @@ -11,13 +11,13 @@ import app.revanced.patcher.patch.Option as PatchOption @Command( name = "list-patches", - description = ["List patches from supplied files containing patches."], + description = ["List patches from supplied RVP files."], ) internal object ListPatchesCommand : Runnable { private val logger = Logger.getLogger(this::class.java.name) @Parameters( - description = ["One or more paths to files containing patches."], + description = ["Paths to RVP files."], arity = "1..*", ) private lateinit var patchesFiles: Set @@ -59,7 +59,7 @@ internal object ListPatchesCommand : Runnable { @Option( names = ["-i", "--index"], - description = ["List the index of each patch in relation to the supplied files containing patches."], + description = ["List the index of each patch in relation to the supplied RVP files."], showDefaultValue = ALWAYS, ) private var withIndex: Boolean = true diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index b441f3a..a179fc9 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -50,7 +50,7 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["--ei"], - description = ["Index of the patch in the combined list of all supplied files containing patches."], + description = ["Index of the patch in the combined list of the supplied RVP files."], required = true, ) internal var index: Int? = null @@ -82,7 +82,7 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["--di"], - description = ["Index of the patch in the combined list of all supplied files containing patches."], + description = ["Index of the patch in the combined list of the supplied RVP files."], required = true, ) internal var index: Int? = null @@ -200,7 +200,7 @@ internal object PatchCommand : Runnable { @CommandLine.Option( names = ["-p", "--patches"], - description = ["One or more path to files containing patches."], + description = ["One or more path to RVP files."], required = true, ) @Suppress("unused") From 7b4af46c948eaeb9639826fe41cd922fed82a000 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 14 Aug 2024 13:36:05 +0000 Subject: [PATCH 13/41] chore(release): 5.0.0-dev.3 [skip ci] # [5.0.0-dev.3](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.2...v5.0.0-dev.3) (2024-08-14) ### Features * Simplify option descriptions ([45c998b](https://github.com/ReVanced/revanced-cli/commit/45c998b335b65ac233fece8b804dc7410142691c)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0113e49..5bee455 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.0.0-dev.3](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.2...v5.0.0-dev.3) (2024-08-14) + + +### Features + +* Simplify option descriptions ([45c998b](https://github.com/ReVanced/revanced-cli/commit/45c998b335b65ac233fece8b804dc7410142691c)) + # [5.0.0-dev.2](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.1...v5.0.0-dev.2) (2024-08-14) diff --git a/gradle.properties b/gradle.properties index fc94434..1e0b79b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.2 +version = 5.0.0-dev.3 From 7e8fb5722a03309a383f8988931d9e07df60b570 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Fri, 23 Aug 2024 13:21:27 +0400 Subject: [PATCH 14/41] docs: Link to JRE downloads instead of JDK --- docs/0_prerequisites.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/0_prerequisites.md b/docs/0_prerequisites.md index c9d1f16..190fe5f 100644 --- a/docs/0_prerequisites.md +++ b/docs/0_prerequisites.md @@ -4,7 +4,7 @@ To use ReVanced CLI, you will need to fulfill specific requirements. ## 🤝 Requirements -- Java Runtime Environment 11 ([Azul Zulu JRE](https://www.azul.com/downloads/?version=java-11-lts&package=jdk#zulu) or [OpenJDK](https://jdk.java.net/archive/)) +- Java Runtime Environment 11 ([Azul Zulu JRE](https://www.azul.com/downloads/?version=java-11-lts&package=jre#zulu) or [OpenJDK](https://jdk.java.net/archive/)) - [Android Debug Bridge (ADB)](https://developer.android.com/studio/command-line/adb) if you want to install the patched APK file on your device - An ABI other than ARMv7 such as x86 or x86-64 (or a custom AAPT binary that supports ARMv7) From 74ff94037eb20ee1ef9c3b7d7214b2356176abc3 Mon Sep 17 00:00:00 2001 From: kitadai31 <90122968+kitadai31@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:36:34 +0900 Subject: [PATCH 15/41] docs: List supported ABIs correctly and add a mention how to use other ones Co-authored-by: oSumAtrIX --- docs/0_prerequisites.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/0_prerequisites.md b/docs/0_prerequisites.md index 190fe5f..c3f5746 100644 --- a/docs/0_prerequisites.md +++ b/docs/0_prerequisites.md @@ -6,7 +6,7 @@ To use ReVanced CLI, you will need to fulfill specific requirements. - Java Runtime Environment 11 ([Azul Zulu JRE](https://www.azul.com/downloads/?version=java-11-lts&package=jre#zulu) or [OpenJDK](https://jdk.java.net/archive/)) - [Android Debug Bridge (ADB)](https://developer.android.com/studio/command-line/adb) if you want to install the patched APK file on your device -- An ABI other than ARMv7 such as x86 or x86-64 (or a custom AAPT binary that supports ARMv7) +- x86 or x86-64 (For [other architectures](https://github.com/ReVanced/revanced-manager/tree/main/android/app/src/main/jniLibs) use the `--custom-aapt2-binary` option) ## ⏭️ Whats next From ba159a35a9a99d18a4c1e04128b08ae336a49b3e Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Thu, 5 Sep 2024 22:54:09 +0400 Subject: [PATCH 16/41] fix: Make the patch command work without specifying any selection --- .../kotlin/app/revanced/cli/command/PatchCommand.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index a179fc9..4a0df0d 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -30,7 +30,7 @@ internal object PatchCommand : Runnable { private lateinit var spec: CommandSpec @ArgGroup(multiplicity = "0..*") - private lateinit var selection: Set + private var selection = emptySet() internal class Selection { @ArgGroup(exclusive = false, multiplicity = "1") @@ -366,14 +366,14 @@ internal object PatchCommand : Runnable { packageVersion: String, ): Set> = buildSet { val enabledPatchesByName = - selection.asSequence().mapNotNull { it.enabled?.selector?.name }.toSet() + selection.mapNotNull { it.enabled?.selector?.name }.toSet() val enabledPatchesByIndex = - selection.asSequence().mapNotNull { it.enabled?.selector?.index }.toSet() + selection.mapNotNull { it.enabled?.selector?.index }.toSet() val disabledPatches = - selection.asSequence().mapNotNull { it.disable?.selector?.name }.toSet() + selection.mapNotNull { it.disable?.selector?.name }.toSet() val disabledPatchesByIndex = - selection.asSequence().mapNotNull { it.disable?.selector?.index }.toSet() + selection.mapNotNull { it.disable?.selector?.index }.toSet() this@filterPatchSelection.withIndex().forEach patchLoop@{ (i, patch) -> val patchName = patch.name!! From 3300e6b4333ed1c4e6785cb82eca9016fc6d4a20 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Thu, 5 Sep 2024 23:00:22 +0400 Subject: [PATCH 17/41] feat: Show error about no installation device found at the beginning --- .../app/revanced/cli/command/PatchCommand.kt | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index 4a0df0d..494a767 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -245,6 +245,32 @@ internal object PatchCommand : Runnable { keyStoreFilePath ?: outputFilePath.parentFile .resolve("${outputFilePath.nameWithoutExtension}.keystore") + val installer = if (deviceSerial != null) { + try { + if (mount) { + AdbRootInstaller(deviceSerial) + } else { + AdbInstaller(deviceSerial) + } + } catch (e: DeviceNotFoundException) { + if (deviceSerial!!.isNotEmpty()) { + logger.severe( + "Device with serial $deviceSerial not found to install to. " + + "Ensure the device is connected and the serial is correct when using the --install option.", + ) + } else { + logger.severe( + "No device has been found to install to. " + + "Ensure a device is connected when using the --install option.", + ) + } + + return + } + } else { + null + } + // endregion // region Load patches @@ -332,13 +358,7 @@ internal object PatchCommand : Runnable { val deviceSerial = it.ifEmpty { null } runBlocking { - val result = if (mount) { - AdbRootInstaller(deviceSerial) - } else { - AdbInstaller(deviceSerial) - }.install(Installer.Apk(outputFilePath, packageName)) - - when (result) { + when (val result = installer!!.install(Installer.Apk(outputFilePath, packageName))) { RootInstallerResult.FAILURE -> logger.severe("Failed to mount the patched APK file") is AdbInstallerResult.Failure -> logger.severe(result.exception.toString()) else -> logger.info("Installed the patched APK file") From 751fa1d889f40c51b291116029fd84f2b051f2f0 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Thu, 5 Sep 2024 23:08:18 +0400 Subject: [PATCH 18/41] fix: Make patches selectable by using a mutable collection for the selection option --- src/main/kotlin/app/revanced/cli/command/PatchCommand.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index 494a767..08db791 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -30,7 +30,7 @@ internal object PatchCommand : Runnable { private lateinit var spec: CommandSpec @ArgGroup(multiplicity = "0..*") - private var selection = emptySet() + private var selection = mutableSetOf() internal class Selection { @ArgGroup(exclusive = false, multiplicity = "1") From 9440dc769efa7fc22d137dc552e81d60e590d0f5 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 17 Sep 2024 23:18:07 +0000 Subject: [PATCH 19/41] chore(release): 5.0.0-dev.4 [skip ci] # [5.0.0-dev.4](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.3...v5.0.0-dev.4) (2024-09-17) ### Bug Fixes * Make patches selectable by using a mutable collection for the selection option ([751fa1d](https://github.com/ReVanced/revanced-cli/commit/751fa1d889f40c51b291116029fd84f2b051f2f0)) * Make the patch command work without specifying any selection ([ba159a3](https://github.com/ReVanced/revanced-cli/commit/ba159a35a9a99d18a4c1e04128b08ae336a49b3e)) ### Features * Show error about no installation device found at the beginning ([3300e6b](https://github.com/ReVanced/revanced-cli/commit/3300e6b4333ed1c4e6785cb82eca9016fc6d4a20)) --- CHANGELOG.md | 13 +++++++++++++ gradle.properties | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bee455..1e4574b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# [5.0.0-dev.4](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.3...v5.0.0-dev.4) (2024-09-17) + + +### Bug Fixes + +* Make patches selectable by using a mutable collection for the selection option ([751fa1d](https://github.com/ReVanced/revanced-cli/commit/751fa1d889f40c51b291116029fd84f2b051f2f0)) +* Make the patch command work without specifying any selection ([ba159a3](https://github.com/ReVanced/revanced-cli/commit/ba159a35a9a99d18a4c1e04128b08ae336a49b3e)) + + +### Features + +* Show error about no installation device found at the beginning ([3300e6b](https://github.com/ReVanced/revanced-cli/commit/3300e6b4333ed1c4e6785cb82eca9016fc6d4a20)) + # [5.0.0-dev.3](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.2...v5.0.0-dev.3) (2024-08-14) diff --git a/gradle.properties b/gradle.properties index 1e0b79b..26487fd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.3 +version = 5.0.0-dev.4 From a7af611ef0e5836812b0edee39431f7b67f834c9 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sat, 21 Sep 2024 23:08:32 +0200 Subject: [PATCH 20/41] docs: Use correct option keys in command examples [skip ci] --- docs/1_usage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/1_usage.md b/docs/1_usage.md index 2ca9822..54176eb 100644 --- a/docs/1_usage.md +++ b/docs/1_usage.md @@ -27,7 +27,7 @@ java -jar revanced-cli.jar patch -p patches.rvp input.apk You can also use multiple RVP files: ```bash -java -jar revanced-cli.jar patch -p patches.rvp -b another-patches.rvp input.apk +java -jar revanced-cli.jar patch -p patches.rvp -p another-patches.rvp input.apk ``` To change the default set of enabled or disabled patches, use the option `-e` or `-d` to enable or disable specific patches. @@ -51,7 +51,7 @@ java -jar revanced-cli.jar list-patches patches.rvp Then you can use the indices to enable or disable patches: ```bash -java -jar revanced-cli.jar patch -b patches.rvp --ei 123 --di 456 input.apk +java -jar revanced-cli.jar patch -p patches.rvp --ei 123 --di 456 input.apk ``` You can combine the option `-e`, `-d`, `--ei`, `--di` and `--exclusive`. Here is an example: From 7ee4f15ab9f60f063d9c589847715f4adc6a314a Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Mon, 30 Sep 2024 22:24:18 +0200 Subject: [PATCH 21/41] ci: Use permissions and regular GitHub token instead of PAT --- .github/workflows/release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 574ee8c..ce715b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,6 +10,8 @@ on: jobs: release: name: Release + permissions: + contents: write runs-on: ubuntu-latest steps: - name: Checkout @@ -46,5 +48,5 @@ jobs: - name: Release env: - GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npm exec semantic-release From 32e6aae1329b5ce86954d0bac88122e5c280c319 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Mon, 30 Sep 2024 22:24:40 +0200 Subject: [PATCH 22/41] ci: Adjust release commit message --- .releaserc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.releaserc b/.releaserc index 308430b..3d0f2d1 100644 --- a/.releaserc +++ b/.releaserc @@ -23,7 +23,8 @@ "assets": [ "CHANGELOG.md", "gradle.properties" - ] + ], + "message": "chore: Release ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" } ], [ From 04b178b701b62b38649de45b52a969b874e4d704 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Mon, 30 Sep 2024 22:24:50 +0200 Subject: [PATCH 23/41] build(Needs bump): Update dependencies --- package-lock.json | 2387 +++++++++++++++++---------------------------- package.json | 4 +- 2 files changed, 917 insertions(+), 1474 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e4236e..4ac59bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,17 +8,18 @@ "@saithodev/semantic-release-backmerge": "^4.0.1", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", - "gradle-semantic-release-plugin": "^1.9.1", - "semantic-release": "^23.0.8" + "gradle-semantic-release-plugin": "^1.10.1", + "semantic-release": "^24.1.2" } }, "node_modules/@babel/code-frame": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", - "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.6", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { @@ -26,21 +27,23 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", - "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", - "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -54,6 +57,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -66,6 +70,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -80,6 +85,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -88,13 +94,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -104,6 +112,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -116,6 +125,7 @@ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -126,6 +136,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -139,6 +150,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -148,6 +160,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -161,6 +174,7 @@ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18" } @@ -170,6 +184,7 @@ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/auth-token": "^5.0.0", "@octokit/graphql": "^8.0.0", @@ -188,6 +203,7 @@ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.0.0", "universal-user-agent": "^7.0.2" @@ -201,6 +217,7 @@ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/request": "^9.0.0", "@octokit/types": "^13.0.0", @@ -214,15 +231,17 @@ "version": "22.2.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.0.tgz", - "integrity": "sha512-n4znWfRinnUQF6TPyxs7EctSAA3yVSP4qlJP2YgI3g9d4Ae2n5F3XDOjbUluKRxPU3rfsgpOboI4O4VtPc6Ilg==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.5.tgz", + "integrity": "sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/types": "^13.5.0" + "@octokit/types": "^13.6.0" }, "engines": { "node": ">= 18" @@ -232,10 +251,11 @@ } }, "node_modules/@octokit/plugin-retry": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.1.tgz", - "integrity": "sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz", + "integrity": "sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/request-error": "^6.0.0", "@octokit/types": "^13.0.0", @@ -249,10 +269,11 @@ } }, "node_modules/@octokit/plugin-throttling": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.0.tgz", - "integrity": "sha512-B5YTToSRTzNSeEyssnrT7WwGhpIdbpV9NKIs3KyTWHX6PhpYn7gqF/+lL3BvsASBM3Sg5BAUYk7KZx5p/Ec77w==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz", + "integrity": "sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.0.0", "bottleneck": "^2.15.3" @@ -265,10 +286,11 @@ } }, "node_modules/@octokit/request": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.1.tgz", - "integrity": "sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", + "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/endpoint": "^10.0.0", "@octokit/request-error": "^6.0.1", @@ -280,10 +302,11 @@ } }, "node_modules/@octokit/request-error": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.1.tgz", - "integrity": "sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.5.tgz", + "integrity": "sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.0.0" }, @@ -292,10 +315,11 @@ } }, "node_modules/@octokit/types": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", - "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.0.tgz", + "integrity": "sha512-CrooV/vKCXqwLa+osmHLIMUb87brpgUqlqkPGc6iE2wCkUvTrHiXFMhAKoDDaAAYJrtKtrFTgSQTg5nObBEaew==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^22.2.0" } @@ -305,6 +329,7 @@ "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.22.0" } @@ -314,6 +339,7 @@ "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -325,13 +351,15 @@ "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", "dev": true, + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -346,6 +374,7 @@ "resolved": "https://registry.npmjs.org/@saithodev/semantic-release-backmerge/-/semantic-release-backmerge-4.0.1.tgz", "integrity": "sha512-WDsU28YrXSLx0xny7FgFlEk8DCKGcj6OOhA+4Q9k3te1jJD1GZuqY8sbIkVQaw9cqJ7CT+fCZUN6QDad8JW4Dg==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/error": "^3.0.0", "aggregate-error": "^3.1.0", @@ -360,6 +389,7 @@ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18" } @@ -369,6 +399,7 @@ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -387,6 +418,7 @@ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" @@ -400,6 +432,7 @@ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/request": "^8.3.0", "@octokit/types": "^13.0.0", @@ -413,13 +446,15 @@ "version": "20.0.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/@octokit/plugin-paginate-rest": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^12.6.0" }, @@ -435,6 +470,7 @@ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^20.0.0" } @@ -444,6 +480,7 @@ "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/request-error": "^5.0.0", "@octokit/types": "^12.0.0", @@ -461,6 +498,7 @@ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^20.0.0" } @@ -470,6 +508,7 @@ "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz", "integrity": "sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^12.2.0", "bottleneck": "^2.15.3" @@ -486,6 +525,7 @@ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/openapi-types": "^20.0.0" } @@ -495,6 +535,7 @@ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/endpoint": "^9.0.1", "@octokit/request-error": "^5.1.0", @@ -510,6 +551,7 @@ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/types": "^13.1.0", "deprecation": "^2.0.0", @@ -524,6 +566,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-11.1.0.tgz", "integrity": "sha512-cXNTbv3nXR2hlzHjAMgbuiQVtvWHTlwwISt60B+4NZv01y/QRY7p2HcJm8Eh2StzcTJoNnflvKjHH/cjFS7d5g==", "dev": true, + "license": "MIT", "dependencies": { "conventional-changelog-angular": "^7.0.0", "conventional-commits-filter": "^4.0.0", @@ -545,6 +588,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.2.6.tgz", "integrity": "sha512-shi+Lrf6exeNZF+sBhK+P011LSbhmIAoUEgEY6SsxF8irJ+J2stwI5jkyDQ+4gzYyDImzV6LCKdYB9FXnQRWKA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/core": "^5.0.0", "@octokit/plugin-paginate-rest": "^9.0.0", @@ -575,6 +619,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -584,6 +629,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^5.2.0", "indent-string": "^5.0.0" @@ -600,6 +646,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.3.tgz", "integrity": "sha512-KUsozQGhRBAnoVg4UMZj9ep436VEGwT536/jwSqB7vcEfA6oncCUU7UIYTRdLx7GvTtqn0kBjnkfLVkcnBa2YQ==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", @@ -627,6 +674,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -636,6 +684,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^5.2.0", "indent-string": "^5.0.0" @@ -652,6 +701,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -675,6 +725,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -687,6 +738,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-12.1.0.tgz", "integrity": "sha512-g6M9AjUKAZUZnxaJZnouNBeDNTCUrJ5Ltj+VJ60gJeDaRRahcHsry9HW8yKrnKkKNkx5lbWiEP1FPMqVNQz8Kg==", "dev": true, + "license": "MIT", "dependencies": { "conventional-changelog-angular": "^7.0.0", "conventional-changelog-writer": "^7.0.0", @@ -711,6 +763,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -718,17 +771,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/ansi-escapes": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/clean-stack": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -739,11 +807,75 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-changelog-writer": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", + "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^4.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "meow": "^12.0.1", + "semver": "^7.5.2", + "split2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-commits-filter": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", + "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, + "license": "MIT", "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -770,6 +902,7 @@ "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-10.0.0.tgz", "integrity": "sha512-U4xcd/utDYFgMh0yWj07R1H6L5fwhVbmxBCpnL0DbVSDZVnsC82HONw0wxtxNkIAcua3KtbomQvIk5xFZGAQJw==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^8.0.0", "java-properties": "^1.0.2" @@ -783,6 +916,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -806,6 +940,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -818,6 +953,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -830,6 +966,7 @@ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", "dev": true, + "license": "MIT", "dependencies": { "semver-regex": "^4.0.5" }, @@ -840,11 +977,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } @@ -854,6 +1005,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -866,6 +1018,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -878,6 +1031,7 @@ "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", "dev": true, + "license": "MIT", "dependencies": { "lodash.capitalize": "^4.2.1", "lodash.escaperegexp": "^4.1.2", @@ -894,6 +1048,7 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz", "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==", "dev": true, + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -906,6 +1061,7 @@ "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-6.2.0.tgz", "integrity": "sha512-ubWhwcBFHnXsjYNsu+Wndpg0zhY4CahSpPlA70PlO0rR9r2sZpkyU+rkCsOWH+KMEkx847UpALON+HWgxowFtw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^6.2.0", "cardinal": "^2.1.1", @@ -921,11 +1077,25 @@ "marked": ">=1 <12" } }, + "node_modules/@saithodev/semantic-release-backmerge/node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@saithodev/semantic-release-backmerge/node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -938,6 +1108,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -953,6 +1124,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -968,6 +1140,7 @@ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -980,6 +1153,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -992,6 +1166,7 @@ "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-22.0.12.tgz", "integrity": "sha512-0mhiCR/4sZb00RVFJIUlMuiBkW3NMpVIW2Gse7noqEMoFGkvfPPAImEQbkBV8xga4KOPP4FdTRYuLLy32R1fPw==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/commit-analyzer": "^11.0.0", "@semantic-release/error": "^4.0.0", @@ -1035,6 +1210,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -1044,6 +1220,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^5.2.0", "indent-string": "^5.0.0" @@ -1060,6 +1237,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -1083,6 +1261,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -1095,6 +1274,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -1107,6 +1287,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1118,19 +1299,22 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@sec-ant/readable-stream": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@semantic-release/changelog": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/error": "^3.0.0", "aggregate-error": "^3.0.0", @@ -1145,14 +1329,16 @@ } }, "node_modules/@semantic-release/commit-analyzer": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-12.0.0.tgz", - "integrity": "sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.0.tgz", + "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==", "dev": true, + "license": "MIT", "dependencies": { - "conventional-changelog-angular": "^7.0.0", - "conventional-commits-filter": "^4.0.0", - "conventional-commits-parser": "^5.0.0", + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", "debug": "^4.0.0", "import-from-esm": "^1.0.3", "lodash-es": "^4.17.21", @@ -1170,6 +1356,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.17" } @@ -1179,6 +1366,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/error": "^3.0.0", "aggregate-error": "^3.0.0", @@ -1197,10 +1385,11 @@ } }, "node_modules/@semantic-release/github": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.0.5.tgz", - "integrity": "sha512-hmuCDkfru/Uc9+ZBNOSremAupu6BCslvOVDiG0wYcL8TQodCycp6uvwDyeym1H0M4l3ob9c0s0xMBiZjjXQ2yA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-11.0.0.tgz", + "integrity": "sha512-Uon6G6gJD8U1JNvPm7X0j46yxNRJ8Ui6SgK4Zw5Ktu8RgjEft3BGn+l/RX1TTzhhO3/uUcKuqM+/9/ETFxWS/Q==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/core": "^6.0.0", "@octokit/plugin-paginate-rest": "^11.0.0", @@ -1223,7 +1412,7 @@ "node": ">=20.8.1" }, "peerDependencies": { - "semantic-release": ">=20.1.0" + "semantic-release": ">=24.1.0" } }, "node_modules/@semantic-release/github/node_modules/@semantic-release/error": { @@ -1231,6 +1420,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -1240,6 +1430,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^5.2.0", "indent-string": "^5.0.0" @@ -1256,6 +1447,7 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -1271,6 +1463,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1283,6 +1476,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1295,6 +1489,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", @@ -1322,6 +1517,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -1331,6 +1527,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -1343,6 +1540,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^5.2.0", "indent-string": "^5.0.0" @@ -1359,6 +1557,7 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -1374,6 +1573,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1382,26 +1582,27 @@ } }, "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.1.0.tgz", - "integrity": "sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", + "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", "figures": "^6.1.0", "get-stream": "^9.0.0", - "human-signals": "^7.0.0", + "human-signals": "^8.0.0", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", - "npm-run-path": "^5.2.0", + "npm-run-path": "^6.0.0", "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", "yoctocolors": "^2.0.0" }, "engines": { - "node": ">=18" + "node": "^18.19.0 || >=20.5.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -1412,6 +1613,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "license": "MIT", "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" @@ -1424,10 +1626,11 @@ } }, "node_modules/@semantic-release/npm/node_modules/human-signals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", - "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", + "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -1437,6 +1640,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1449,6 +1653,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -1457,15 +1662,17 @@ } }, "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1476,6 +1683,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1488,6 +1696,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -1500,6 +1709,20 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -1508,21 +1731,22 @@ } }, "node_modules/@semantic-release/release-notes-generator": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz", - "integrity": "sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz", + "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==", "dev": true, + "license": "MIT", "dependencies": { - "conventional-changelog-angular": "^7.0.0", - "conventional-changelog-writer": "^7.0.0", - "conventional-commits-filter": "^4.0.0", - "conventional-commits-parser": "^5.0.0", + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", "debug": "^4.0.0", "get-stream": "^7.0.0", "import-from-esm": "^1.0.3", "into-stream": "^7.0.0", "lodash-es": "^4.17.21", - "read-pkg-up": "^11.0.0" + "read-package-up": "^11.0.0" }, "engines": { "node": ">=20.8.1" @@ -1536,6 +1760,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -1548,6 +1773,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1560,6 +1786,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -1571,13 +1798,22 @@ "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" }, "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -1590,6 +1826,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -1599,12 +1836,16 @@ } }, "node_modules/ansi-escapes": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", - "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1615,6 +1856,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1624,6 +1866,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1638,102 +1881,57 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/argv-formatter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", - "dev": true - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/before-after-hook": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -1741,30 +1939,12 @@ "node": ">=8" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1774,6 +1954,7 @@ "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", "dev": true, + "license": "MIT", "dependencies": { "ansicolors": "~0.3.2", "redeyed": "~2.1.0" @@ -1787,6 +1968,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -1799,6 +1981,7 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -1808,6 +1991,7 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1817,6 +2001,7 @@ "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", "dev": true, + "license": "ISC", "dependencies": { "chalk": "^4.0.0", "highlight.js": "^10.7.1", @@ -1838,6 +2023,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1854,6 +2040,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -1865,6 +2052,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -1883,6 +2071,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -1892,6 +2081,7 @@ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -1907,6 +2097,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -1921,6 +2112,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1932,13 +2124,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" @@ -1949,68 +2143,69 @@ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", + "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/conventional-changelog-writer": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", - "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", + "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", "dev": true, + "license": "MIT", "dependencies": { - "conventional-commits-filter": "^4.0.0", + "@types/semver": "^7.5.5", + "conventional-commits-filter": "^5.0.0", "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^12.0.1", - "semver": "^7.5.2", - "split2": "^4.0.0" + "meow": "^13.0.0", + "semver": "^7.5.2" }, "bin": { - "conventional-changelog-writer": "cli.mjs" + "conventional-changelog-writer": "dist/cli/index.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/conventional-commits-filter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", - "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", + "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", + "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", "dev": true, + "license": "MIT", "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" + "meow": "^13.0.0" }, "bin": { - "conventional-commits-parser": "cli.mjs" + "conventional-commits-parser": "dist/cli/index.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/convert-hrtime": { @@ -2018,6 +2213,7 @@ "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2029,13 +2225,15 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -2062,6 +2260,7 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2076,6 +2275,7 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -2091,6 +2291,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2098,64 +2299,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -2171,55 +2322,24 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -2232,6 +2352,7 @@ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -2244,6 +2365,7 @@ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "readable-stream": "^2.0.2" } @@ -2252,19 +2374,22 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emojilib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/env-ci": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.0.0.tgz", - "integrity": "sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.0.tgz", + "integrity": "sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^8.0.0", "java-properties": "^1.0.2" @@ -2278,6 +2403,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -2301,6 +2427,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -2313,6 +2440,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } @@ -2322,6 +2450,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -2334,6 +2463,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2346,6 +2476,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -2361,6 +2492,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -2376,6 +2508,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2388,6 +2521,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -2400,6 +2534,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2412,148 +2547,40 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2563,6 +2590,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -2572,6 +2600,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -2585,6 +2614,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -2608,6 +2638,7 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2624,6 +2655,7 @@ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -2633,6 +2665,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, + "license": "MIT", "dependencies": { "is-unicode-supported": "^2.0.0" }, @@ -2648,6 +2681,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2660,6 +2694,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -2672,6 +2707,7 @@ "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -2684,6 +2720,7 @@ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz", "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==", "dev": true, + "license": "MIT", "dependencies": { "semver-regex": "^4.0.5", "super-regex": "^1.0.0" @@ -2695,20 +2732,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -2719,6 +2748,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -2728,20 +2758,12 @@ "node": ">=14.14" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/function-timeout": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -2749,66 +2771,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2816,35 +2794,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/git-log-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", - "integrity": "sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", + "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", "dev": true, + "license": "MIT", "dependencies": { "argv-formatter": "~1.0.0", "spawn-error-forwarder": "~1.0.0", "split2": "~1.0.0", "stream-combiner2": "~1.1.1", "through2": "~2.0.0", - "traverse": "~0.6.6" + "traverse": "0.6.8" } }, "node_modules/git-log-parser/node_modules/split2": { @@ -2852,6 +2814,7 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", "dev": true, + "license": "ISC", "dependencies": { "through2": "~2.0.0" } @@ -2861,6 +2824,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2868,27 +2832,12 @@ "node": ">= 6" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", @@ -2909,6 +2858,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2916,28 +2866,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/gradle-semantic-release-plugin": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.9.1.tgz", - "integrity": "sha512-lCrw22itszP/FLSL3N61E40vH1+CU95/4LG9ZF+Fxr8tcx7EPthh2eqVPAq67udFlM8ZgO2LETnn8LSDRq1J2w==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/gradle-semantic-release-plugin/-/gradle-semantic-release-plugin-1.10.1.tgz", + "integrity": "sha512-Q4dLAFICjPouUyRRHEKK8cXNB75nraXoioYZDZlVQOg4sYKudnTDZ3ohLmV3k4cPGiiMCh1ckXETkx9JnuyKmA==", "dev": true, "funding": [ { @@ -2945,6 +2884,7 @@ "url": "https://github.com/sponsors/KengoTODA" } ], + "license": "MIT", "dependencies": { "promisified-properties": "^3.0.0", "split2": "^4.1.0" @@ -2953,7 +2893,7 @@ "node": ">=18" }, "peerDependencies": { - "semantic-release": "^23.0.0" + "semantic-release": "^24.0.0" } }, "node_modules/handlebars": { @@ -2961,6 +2901,7 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -2977,92 +2918,22 @@ "uglify-js": "^3.1.4" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -3072,6 +2943,7 @@ "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -3080,15 +2952,16 @@ } }, "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz", + "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/http-proxy-agent": { @@ -3096,6 +2969,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -3105,10 +2979,11 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -3122,15 +2997,17 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -3140,6 +3017,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3156,6 +3034,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -3165,6 +3044,7 @@ "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.4.tgz", "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "import-meta-resolve": "^4.0.0" @@ -3178,6 +3058,7 @@ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -3188,6 +3069,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3197,6 +3079,7 @@ "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -3208,33 +3091,22 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } + "license": "ISC" }, "node_modules/into-stream": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", "integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==", "dev": true, + "license": "MIT", "dependencies": { "from2": "^2.3.0", "p-is-promise": "^3.0.0" @@ -3246,115 +3118,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "dev": true, - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3364,6 +3140,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3373,6 +3150,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -3380,47 +3158,22 @@ "node": ">=0.10.0" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3430,6 +3183,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3437,42 +3191,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -3480,41 +3204,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-text-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, + "license": "MIT", "dependencies": { "text-extensions": "^2.0.0" }, @@ -3522,26 +3217,12 @@ "node": ">=8" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-unicode-supported": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", - "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -3549,35 +3230,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/issue-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.0.tgz", - "integrity": "sha512-jgAw78HO3gs9UrKqJNQvfDj9Ouy8Mhu40fbEJ8yXff4MW8+/Fcn9iFjyWUQ6SKbX8ipPk3X5A3AyfYHRu6uVLw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz", + "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==", "dev": true, + "license": "MIT", "dependencies": { "lodash.capitalize": "^4.2.1", "lodash.escaperegexp": "^4.1.2", @@ -3594,6 +3266,7 @@ "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -3602,13 +3275,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3620,25 +3295,29 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -3653,13 +3332,15 @@ "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -3675,13 +3356,15 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -3697,6 +3380,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -3710,6 +3394,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -3722,58 +3407,64 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.capitalize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/marked": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", "dev": true, + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -3782,15 +3473,16 @@ } }, "node_modules/marked-terminal": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.0.0.tgz", - "integrity": "sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.1.0.tgz", + "integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-escapes": "^6.2.0", + "ansi-escapes": "^7.0.0", "chalk": "^5.3.0", "cli-highlight": "^2.1.11", - "cli-table3": "^0.6.3", + "cli-table3": "^0.6.5", "node-emoji": "^2.1.3", "supports-hyperlinks": "^3.0.0" }, @@ -3798,16 +3490,17 @@ "node": ">=16.0.0" }, "peerDependencies": { - "marked": ">=1 <13" + "marked": ">=1 <14" } }, "node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16.10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3817,22 +3510,25 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -3842,13 +3538,14 @@ } }, "node_modules/mime": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.3.tgz", - "integrity": "sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz", + "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==", "dev": true, "funding": [ "https://github.com/sponsors/broofa" ], + "license": "MIT", "bin": { "mime": "bin/cli.js" }, @@ -3861,6 +3558,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3870,21 +3568,24 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -3895,19 +3596,22 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nerf-dart": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-emoji": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.6.0", "char-regex": "^1.0.2", @@ -3919,13 +3623,13 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", - "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, @@ -3933,11 +3637,25 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/normalize-url": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -3946,9 +3664,9 @@ } }, "node_modules/npm": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.0.tgz", - "integrity": "sha512-wh93uRczgp7HDnPMiLXcCkv2hagdJS0zJ9KT/31d0FoXP02+qgN2AOwpaW85fxRWkinl2rELfPw+CjBXW48/jQ==", + "version": "10.8.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.3.tgz", + "integrity": "sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -4020,6 +3738,7 @@ "write-file-atomic" ], "dev": true, + "license": "Artistic-2.0", "workspaces": [ "docs", "smoke-tests", @@ -4029,55 +3748,55 @@ ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^7.5.2", - "@npmcli/config": "^8.3.2", + "@npmcli/arborist": "^7.5.4", + "@npmcli/config": "^8.3.4", "@npmcli/fs": "^3.1.1", "@npmcli/map-workspaces": "^3.0.6", - "@npmcli/package-json": "^5.1.0", + "@npmcli/package-json": "^5.2.0", "@npmcli/promise-spawn": "^7.0.2", - "@npmcli/redact": "^2.0.0", + "@npmcli/redact": "^2.0.1", "@npmcli/run-script": "^8.1.0", - "@sigstore/tuf": "^2.3.3", + "@sigstore/tuf": "^2.3.4", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^18.0.3", + "cacache": "^18.0.4", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^10.3.15", + "glob": "^10.4.5", "graceful-fs": "^4.2.11", "hosted-git-info": "^7.0.2", - "ini": "^4.1.2", + "ini": "^4.1.3", "init-package-json": "^6.0.3", - "is-cidr": "^5.0.5", + "is-cidr": "^5.1.0", "json-parse-even-better-errors": "^3.0.2", "libnpmaccess": "^8.0.6", - "libnpmdiff": "^6.1.2", - "libnpmexec": "^8.1.1", - "libnpmfund": "^5.0.10", + "libnpmdiff": "^6.1.4", + "libnpmexec": "^8.1.4", + "libnpmfund": "^5.0.12", "libnpmhook": "^10.0.5", "libnpmorg": "^6.0.6", - "libnpmpack": "^7.0.2", - "libnpmpublish": "^9.0.8", - "libnpmsearch": "^7.0.5", + "libnpmpack": "^7.0.4", + "libnpmpublish": "^9.0.9", + "libnpmsearch": "^7.0.6", "libnpmteam": "^6.0.5", - "libnpmversion": "^6.0.2", + "libnpmversion": "^6.0.3", "make-fetch-happen": "^13.0.1", - "minimatch": "^9.0.4", + "minimatch": "^9.0.5", "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^10.1.0", + "node-gyp": "^10.2.0", "nopt": "^7.2.1", - "normalize-package-data": "^6.0.1", + "normalize-package-data": "^6.0.2", "npm-audit-report": "^5.0.0", "npm-install-checks": "^6.3.0", - "npm-package-arg": "^11.0.2", - "npm-pick-manifest": "^9.0.1", + "npm-package-arg": "^11.0.3", + "npm-pick-manifest": "^9.1.0", "npm-profile": "^10.0.0", - "npm-registry-fetch": "^17.0.1", + "npm-registry-fetch": "^17.1.0", "npm-user-validate": "^2.0.1", "p-map": "^4.0.0", "pacote": "^18.0.6", @@ -4085,7 +3804,7 @@ "proc-log": "^4.2.0", "qrcode-terminal": "^0.12.0", "read": "^3.0.1", - "semver": "^7.6.2", + "semver": "^7.6.3", "spdx-expression-parse": "^4.0.0", "ssri": "^10.0.6", "supports-color": "^9.4.0", @@ -4110,6 +3829,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -4207,7 +3927,7 @@ } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.5.2", + "version": "7.5.4", "dev": true, "inBundle": true, "license": "ISC", @@ -4256,17 +3976,17 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "8.3.2", + "version": "8.3.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/package-json": "^5.1.1", "ci-info": "^4.0.0", "ini": "^4.1.2", "nopt": "^7.2.1", "proc-log": "^4.2.0", - "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", "walk-up-path": "^3.0.1" }, @@ -4287,12 +4007,13 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.7", + "version": "5.0.8", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", "proc-log": "^4.0.0", @@ -4371,7 +4092,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.1.0", + "version": "5.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4413,7 +4134,7 @@ } }, "node_modules/npm/node_modules/@npmcli/redact": { - "version": "2.0.0", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -4449,12 +4170,12 @@ } }, "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "2.3.1", + "version": "2.3.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4479,14 +4200,14 @@ } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.3.1", + "version": "2.3.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.0", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/protobuf-specs": "^0.3.2", "make-fetch-happen": "^13.0.1", "proc-log": "^4.2.0", "promise-retry": "^2.0.1" @@ -4496,12 +4217,12 @@ } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.3.3", + "version": "2.3.4", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/protobuf-specs": "^0.3.2", "tuf-js": "^2.2.1" }, "engines": { @@ -4509,14 +4230,14 @@ } }, "node_modules/npm/node_modules/@sigstore/verify": { - "version": "1.2.0", + "version": "1.2.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4654,7 +4375,7 @@ } }, "node_modules/npm/node_modules/cacache": { - "version": "18.0.3", + "version": "18.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -4713,7 +4434,7 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "4.0.5", + "version": "4.1.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -4821,7 +4542,7 @@ } }, "node_modules/npm/node_modules/debug": { - "version": "4.3.4", + "version": "4.3.6", "dev": true, "inBundle": true, "license": "MIT", @@ -4905,7 +4626,7 @@ } }, "node_modules/npm/node_modules/foreground-child": { - "version": "3.1.1", + "version": "3.3.0", "dev": true, "inBundle": true, "license": "ISC", @@ -4932,33 +4653,22 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/function-bind": { - "version": "1.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/npm/node_modules/glob": { - "version": "10.3.15", + "version": "10.4.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.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" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -4969,18 +4679,6 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/hasown": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/npm/node_modules/hosted-git-info": { "version": "7.0.2", "dev": true, @@ -5013,7 +4711,7 @@ } }, "node_modules/npm/node_modules/https-proxy-agent": { - "version": "7.0.4", + "version": "7.0.5", "dev": true, "inBundle": true, "license": "MIT", @@ -5069,7 +4767,7 @@ } }, "node_modules/npm/node_modules/ini": { - "version": "4.1.2", + "version": "4.1.3", "dev": true, "inBundle": true, "license": "ISC", @@ -5121,29 +4819,17 @@ } }, "node_modules/npm/node_modules/is-cidr": { - "version": "5.0.5", + "version": "5.1.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "^4.0.4" + "cidr-regex": "^4.1.1" }, "engines": { "node": ">=14" } }, - "node_modules/npm/node_modules/is-core-module": { - "version": "2.13.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/npm/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "dev": true, @@ -5166,16 +4852,13 @@ "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { - "version": "2.3.6", + "version": "3.4.3", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -5242,12 +4925,12 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.1.2", + "version": "6.1.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.2", + "@npmcli/arborist": "^7.5.4", "@npmcli/installed-package-contents": "^2.1.0", "binary-extensions": "^2.3.0", "diff": "^5.1.0", @@ -5261,12 +4944,12 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "8.1.1", + "version": "8.1.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.2", + "@npmcli/arborist": "^7.5.4", "@npmcli/run-script": "^8.1.0", "ci-info": "^4.0.0", "npm-package-arg": "^11.0.2", @@ -5282,12 +4965,12 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.10", + "version": "5.0.12", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.2" + "@npmcli/arborist": "^7.5.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -5320,12 +5003,12 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "7.0.2", + "version": "7.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.5.2", + "@npmcli/arborist": "^7.5.4", "@npmcli/run-script": "^8.1.0", "npm-package-arg": "^11.0.2", "pacote": "^18.0.6" @@ -5335,7 +5018,7 @@ } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.8", + "version": "9.0.9", "dev": true, "inBundle": true, "license": "ISC", @@ -5354,7 +5037,7 @@ } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.5", + "version": "7.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -5379,7 +5062,7 @@ } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "6.0.2", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -5395,13 +5078,10 @@ } }, "node_modules/npm/node_modules/lru-cache": { - "version": "10.2.2", + "version": "10.4.3", "dev": true, "inBundle": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/npm/node_modules/make-fetch-happen": { "version": "13.0.1", @@ -5427,7 +5107,7 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "9.0.4", + "version": "9.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -5442,7 +5122,7 @@ } }, "node_modules/npm/node_modules/minipass": { - "version": "7.1.1", + "version": "7.1.2", "dev": true, "inBundle": true, "license": "ISC", @@ -5503,28 +5183,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", "dev": true, @@ -5635,7 +5293,7 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "10.1.0", + "version": "10.2.0", "dev": true, "inBundle": true, "license": "MIT", @@ -5646,9 +5304,9 @@ "graceful-fs": "^4.2.6", "make-fetch-happen": "^13.0.0", "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", + "tar": "^6.2.1", "which": "^4.0.0" }, "bin": { @@ -5658,15 +5316,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/nopt": { "version": "7.2.1", "dev": true, @@ -5683,13 +5332,12 @@ } }, "node_modules/npm/node_modules/normalize-package-data": { - "version": "6.0.1", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, @@ -5740,7 +5388,7 @@ } }, "node_modules/npm/node_modules/npm-package-arg": { - "version": "11.0.2", + "version": "11.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -5767,7 +5415,7 @@ } }, "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "9.0.1", + "version": "9.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -5795,16 +5443,16 @@ } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "17.0.1", + "version": "17.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", "proc-log": "^4.0.0" @@ -5837,6 +5485,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0" + }, "node_modules/npm/node_modules/pacote": { "version": "18.0.6", "dev": true, @@ -5908,7 +5562,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.16", + "version": "6.1.2", "dev": true, "inBundle": true, "license": "MIT", @@ -6046,7 +5700,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.6.2", + "version": "7.6.3", "dev": true, "inBundle": true, "license": "ISC", @@ -6091,17 +5745,17 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "2.3.0", + "version": "2.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "@sigstore/sign": "^2.3.0", - "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -6132,14 +5786,14 @@ } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.3", + "version": "8.0.4", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -6182,7 +5836,7 @@ } }, "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.17", + "version": "3.0.18", "dev": true, "inBundle": true, "license": "CC0-1.0" @@ -6569,51 +6223,17 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -6623,6 +6243,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -6638,6 +6259,7 @@ "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6650,6 +6272,7 @@ "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", "dev": true, + "license": "MIT", "dependencies": { "p-map": "^7.0.1" }, @@ -6665,6 +6288,7 @@ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6674,6 +6298,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -6686,6 +6311,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -6698,6 +6324,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -6710,6 +6337,7 @@ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6719,6 +6347,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -6728,6 +6357,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -6740,6 +6370,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -6758,6 +6389,7 @@ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -6769,13 +6401,15 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, + "license": "MIT", "dependencies": { "parse5": "^6.0.1" } @@ -6784,19 +6418,22 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parsimmon": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.1.tgz", "integrity": "sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -6806,6 +6443,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6815,21 +6453,24 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -6842,6 +6483,7 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -6851,6 +6493,7 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "load-json-file": "^4.0.0" @@ -6859,20 +6502,12 @@ "node": ">=4" } }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/pretty-ms": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.0.0.tgz", - "integrity": "sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", + "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", "dev": true, + "license": "MIT", "dependencies": { "parse-ms": "^4.0.0" }, @@ -6887,13 +6522,15 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/promisified-properties": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/promisified-properties/-/promisified-properties-3.0.0.tgz", "integrity": "sha512-ARteuBuUpPg/+spsMhcKHvdtOW/q8btyyVYYxxegGgx+7u9ix9at8DjP2KM2t8+4SuI8wBLt+3X876FMQx91yQ==", "dev": true, + "license": "MIT", "dependencies": { "parsimmon": "^1.13.0" }, @@ -6906,7 +6543,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -6926,13 +6564,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -6948,6 +6588,7 @@ "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up-simple": "^1.0.0", "read-pkg": "^9.0.0", @@ -6965,6 +6606,7 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", "dev": true, + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.3", "normalize-package-data": "^6.0.0", @@ -6985,6 +6627,7 @@ "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==", "deprecated": "Renamed to read-package-up", "dev": true, + "license": "MIT", "dependencies": { "find-up-simple": "^1.0.0", "read-pkg": "^9.0.0", @@ -7002,6 +6645,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "index-to-position": "^0.1.2", @@ -7019,6 +6663,7 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7034,33 +6679,17 @@ "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", "dev": true, + "license": "MIT", "dependencies": { "esprima": "~4.0.0" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/registry-auth-token": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", "dev": true, + "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^2.1.0" }, @@ -7073,6 +6702,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7082,6 +6712,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -7091,6 +6722,7 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -7115,68 +6747,30 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "node_modules/semantic-release": { - "version": "23.1.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-23.1.1.tgz", - "integrity": "sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA==", + "version": "24.1.2", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.1.2.tgz", + "integrity": "sha512-hvEJ7yI97pzJuLsDZCYzJgmRxF8kiEJvNZhf0oiZQcexw+Ycjy4wbdsn/sVMURgNCu8rwbAXJdBRyIxM4pe32g==", "dev": true, + "license": "MIT", "dependencies": { - "@semantic-release/commit-analyzer": "^12.0.0", + "@semantic-release/commit-analyzer": "^13.0.0-beta.1", "@semantic-release/error": "^4.0.0", - "@semantic-release/github": "^10.0.0", + "@semantic-release/github": "^11.0.0", "@semantic-release/npm": "^12.0.0", - "@semantic-release/release-notes-generator": "^13.0.0", + "@semantic-release/release-notes-generator": "^14.0.0-beta.1", "aggregate-error": "^5.0.0", "cosmiconfig": "^9.0.0", "debug": "^4.0.0", @@ -7187,7 +6781,7 @@ "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^3.0.0", - "hosted-git-info": "^7.0.0", + "hosted-git-info": "^8.0.0", "import-from-esm": "^1.3.1", "lodash-es": "^4.17.21", "marked": "^12.0.0", @@ -7214,6 +6808,7 @@ "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } @@ -7223,6 +6818,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -7235,6 +6831,7 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^5.2.0", "indent-string": "^5.0.0" @@ -7251,6 +6848,7 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -7266,6 +6864,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7274,26 +6873,27 @@ } }, "node_modules/semantic-release/node_modules/execa": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.1.0.tgz", - "integrity": "sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", + "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", "figures": "^6.1.0", "get-stream": "^9.0.0", - "human-signals": "^7.0.0", + "human-signals": "^8.0.0", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", - "npm-run-path": "^5.2.0", + "npm-run-path": "^6.0.0", "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", "yoctocolors": "^2.0.0" }, "engines": { - "node": ">=18" + "node": "^18.19.0 || >=20.5.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -7304,6 +6904,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "license": "MIT", "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" @@ -7316,10 +6917,11 @@ } }, "node_modules/semantic-release/node_modules/human-signals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", - "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", + "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -7329,6 +6931,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7341,6 +6944,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -7349,15 +6953,17 @@ } }, "node_modules/semantic-release/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7368,6 +6974,7 @@ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7380,6 +6987,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7392,6 +7000,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -7404,6 +7013,20 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -7412,10 +7035,11 @@ } }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -7428,6 +7052,7 @@ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -7443,6 +7068,7 @@ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7450,43 +7076,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -7499,39 +7094,24 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/signale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^2.3.2", "figures": "^2.0.0", @@ -7546,6 +7126,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -7558,6 +7139,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -7572,6 +7154,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -7580,13 +7163,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/signale/node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -7599,6 +7184,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -7608,6 +7194,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -7620,6 +7207,7 @@ "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", "dev": true, + "license": "MIT", "dependencies": { "unicode-emoji-modifier-base": "^1.0.0" }, @@ -7632,6 +7220,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -7644,6 +7233,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -7652,13 +7242,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -7668,29 +7260,33 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", - "dev": true + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 10.x" } @@ -7700,6 +7296,7 @@ "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, + "license": "MIT", "dependencies": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" @@ -7710,6 +7307,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -7719,6 +7317,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7728,60 +7327,12 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7794,6 +7345,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -7803,6 +7355,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7812,6 +7365,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7821,6 +7375,7 @@ "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz", "integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==", "dev": true, + "license": "MIT", "dependencies": { "function-timeout": "^1.0.1", "time-span": "^5.1.0" @@ -7837,6 +7392,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7845,16 +7401,20 @@ } }, "node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/temp-dir": { @@ -7862,6 +7422,7 @@ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" } @@ -7871,6 +7432,7 @@ "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", "dev": true, + "license": "MIT", "dependencies": { "is-stream": "^3.0.0", "temp-dir": "^3.0.0", @@ -7889,6 +7451,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7901,6 +7464,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -7913,6 +7477,7 @@ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7925,6 +7490,7 @@ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -7934,6 +7500,7 @@ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -7945,13 +7512,15 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -7962,6 +7531,7 @@ "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", "dev": true, + "license": "MIT", "dependencies": { "convert-hrtime": "^5.0.0" }, @@ -7977,6 +7547,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -7985,15 +7556,11 @@ } }, "node_modules/traverse": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz", - "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", "dev": true, - "dependencies": { - "gopd": "^1.0.1", - "typedarray.prototype.slice": "^1.0.3", - "which-typed-array": "^1.1.15" - }, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8002,10 +7569,11 @@ } }, "node_modules/type-fest": { - "version": "4.18.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.18.3.tgz", - "integrity": "sha512-Q08/0IrpvM+NMY9PA2rti9Jb+JejTddwmwmVQGskAlhtcrw1wsRzoR6ode6mR+OAabNa75w/dxedSUY2mlphaQ==", + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" }, @@ -8013,104 +7581,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", - "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-errors": "^1.3.0", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-offset": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, + "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -8119,26 +7595,12 @@ "node": ">=0.8.0" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/unicode-emoji-modifier-base": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8148,6 +7610,7 @@ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -8160,6 +7623,7 @@ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -8174,13 +7638,15 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -8190,6 +7656,7 @@ "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -8198,13 +7665,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -8215,6 +7684,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -8225,52 +7695,19 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8287,13 +7724,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } @@ -8303,6 +7742,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -8312,6 +7752,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -8330,15 +7771,17 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yoctocolors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.0.2.tgz", - "integrity": "sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, diff --git a/package.json b/package.json index 8873414..105a5ca 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "@saithodev/semantic-release-backmerge": "^4.0.1", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", - "gradle-semantic-release-plugin": "^1.9.1", - "semantic-release": "^23.0.8" + "gradle-semantic-release-plugin": "^1.10.1", + "semantic-release": "^24.1.2" } } From bb6bc1ba9a7d15311e2f7b53a26e487f665fe56f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 30 Sep 2024 20:27:43 +0000 Subject: [PATCH 24/41] chore: Release 5.0.0-dev.5 [skip ci] # [5.0.0-dev.5](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.4...v5.0.0-dev.5) (2024-09-30) --- CHANGELOG.md | 2 ++ gradle.properties | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e4574b..7b297c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +# [5.0.0-dev.5](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.4...v5.0.0-dev.5) (2024-09-30) + # [5.0.0-dev.4](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.3...v5.0.0-dev.4) (2024-09-17) diff --git a/gradle.properties b/gradle.properties index 26487fd..5ec0aef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.4 +version = 5.0.0-dev.5 From 280ded2281686c9f3fcd78545cd80b1f4cea80c0 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Mon, 30 Sep 2024 22:33:55 +0200 Subject: [PATCH 25/41] ci: Adjust release commit message --- .releaserc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.releaserc b/.releaserc index 3d0f2d1..cbfa3a7 100644 --- a/.releaserc +++ b/.releaserc @@ -24,7 +24,7 @@ "CHANGELOG.md", "gradle.properties" ], - "message": "chore: Release ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" + "message": "chore: Release v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" } ], [ From 5f952f35f5cb388b6509b2b4d905b8143ebc7996 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Thu, 10 Oct 2024 23:03:20 +0200 Subject: [PATCH 26/41] fix: Use the first connected device when no ADB device is specified --- src/main/kotlin/app/revanced/cli/command/PatchCommand.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index 08db791..49b87df 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -246,6 +246,8 @@ internal object PatchCommand : Runnable { .resolve("${outputFilePath.nameWithoutExtension}.keystore") val installer = if (deviceSerial != null) { + val deviceSerial = deviceSerial!!.ifEmpty { null } + try { if (mount) { AdbRootInstaller(deviceSerial) From a9f25388278ffbd8f771359d93d46068c9fd4d04 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 10 Oct 2024 21:05:17 +0000 Subject: [PATCH 27/41] chore: Release v5.0.0-dev.6 [skip ci] # [5.0.0-dev.6](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.5...v5.0.0-dev.6) (2024-10-10) ### Bug Fixes * Use the first connected device when no ADB device is specified ([5f952f3](https://github.com/ReVanced/revanced-cli/commit/5f952f35f5cb388b6509b2b4d905b8143ebc7996)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b297c3..c89fb6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.0.0-dev.6](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.5...v5.0.0-dev.6) (2024-10-10) + + +### Bug Fixes + +* Use the first connected device when no ADB device is specified ([5f952f3](https://github.com/ReVanced/revanced-cli/commit/5f952f35f5cb388b6509b2b4d905b8143ebc7996)) + # [5.0.0-dev.5](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.4...v5.0.0-dev.5) (2024-09-30) # [5.0.0-dev.4](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.3...v5.0.0-dev.4) (2024-09-17) diff --git a/gradle.properties b/gradle.properties index 5ec0aef..f77d9ac 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.5 +version = 5.0.0-dev.6 From 1da8ae9e46000dd3c4eecd793c559e75012cf535 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 16 Oct 2024 04:55:52 +0200 Subject: [PATCH 28/41] fix: Check for null when no device serial was specified --- src/main/kotlin/app/revanced/cli/command/PatchCommand.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index 49b87df..05f5280 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -255,7 +255,7 @@ internal object PatchCommand : Runnable { AdbInstaller(deviceSerial) } } catch (e: DeviceNotFoundException) { - if (deviceSerial!!.isNotEmpty()) { + if (deviceSerial?.isNotEmpty() == true) { logger.severe( "Device with serial $deviceSerial not found to install to. " + "Ensure the device is connected and the serial is correct when using the --install option.", From e60a61b098bc726f1da39360e3cbe73df555868a Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 16 Oct 2024 02:57:57 +0000 Subject: [PATCH 29/41] chore: Release v5.0.0-dev.7 [skip ci] # [5.0.0-dev.7](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.6...v5.0.0-dev.7) (2024-10-16) ### Bug Fixes * Check for null when no device serial was specified ([1da8ae9](https://github.com/ReVanced/revanced-cli/commit/1da8ae9e46000dd3c4eecd793c559e75012cf535)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c89fb6a..da507b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.0.0-dev.7](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.6...v5.0.0-dev.7) (2024-10-16) + + +### Bug Fixes + +* Check for null when no device serial was specified ([1da8ae9](https://github.com/ReVanced/revanced-cli/commit/1da8ae9e46000dd3c4eecd793c559e75012cf535)) + # [5.0.0-dev.6](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.5...v5.0.0-dev.6) (2024-10-10) diff --git a/gradle.properties b/gradle.properties index f77d9ac..3a14111 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.6 +version = 5.0.0-dev.7 From 292b93b609c8584c4cd4f458bd7a5cfa05cc4bfd Mon Sep 17 00:00:00 2001 From: cyberboh <99109969+cyberboh@users.noreply.github.com> Date: Wed, 16 Oct 2024 20:27:58 +0700 Subject: [PATCH 30/41] docs: Use correct option name in command example (#342) --- docs/1_usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1_usage.md b/docs/1_usage.md index 54176eb..57e36f5 100644 --- a/docs/1_usage.md +++ b/docs/1_usage.md @@ -57,7 +57,7 @@ java -jar revanced-cli.jar patch -p patches.rvp --ei 123 --di 456 input.apk You can combine the option `-e`, `-d`, `--ei`, `--di` and `--exclusive`. Here is an example: ```bash -java -jar revanced-cli.jar patch -p patches.rvp --exclusive -i "Patch name" --ei 123 input.apk +java -jar revanced-cli.jar patch -p patches.rvp --exclusive -e "Patch name" --ei 123 input.apk ``` From f58b101636c6a1ed2963e205818adacbb75ca4e9 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Thu, 17 Oct 2024 20:02:26 +0200 Subject: [PATCH 31/41] build(Needs bump): Bump ReVanced Patcher --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 726f9ca..d851fbe 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] shadow = "8.1.1" -kotlin = "2.0.0" +kotlin = "2.0.20" kotlinx = "1.8.1" picocli = "4.7.6" -revanced-patcher = "20.0.0" +revanced-patcher = "20.0.2" revanced-library = "3.0.0" [libraries] From 504c6c1ea520beb3a134d903b4223f03053b25c1 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 17 Oct 2024 18:06:32 +0000 Subject: [PATCH 32/41] chore: Release v5.0.0-dev.8 [skip ci] # [5.0.0-dev.8](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.7...v5.0.0-dev.8) (2024-10-17) --- CHANGELOG.md | 2 ++ gradle.properties | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da507b3..b733526 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +# [5.0.0-dev.8](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.7...v5.0.0-dev.8) (2024-10-17) + # [5.0.0-dev.7](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.6...v5.0.0-dev.7) (2024-10-16) diff --git a/gradle.properties b/gradle.properties index 3a14111..bbe78e2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.7 +version = 5.0.0-dev.8 From b54308b0e230f61c70e33f744174cde877ba52e4 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 23 Oct 2024 21:08:49 +0200 Subject: [PATCH 33/41] docs: Fix spelling mistakes [skip ci] --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6a71dc2..897638e 100644 --- a/README.md +++ b/README.md @@ -63,11 +63,11 @@ ![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/ReVanced/revanced-cli/release.yml) ![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg) -Command line application to use ReVanced. +Command-line application to use ReVanced. ## ❓ About -ReVanced CLI is a command line application that uses [ReVanced Patcher](https://github.com/revanced/revanced-patcher) to patch Android apps. +ReVanced CLI is a command-line application that uses [ReVanced Patcher](https://github.com/revanced/revanced-patcher) to patch Android apps. ## 💪 Features @@ -75,7 +75,7 @@ Some of the features ReVanced CLI provides are: - 💉 **Patch apps**: Harness ReVanced Patcher to patch Android apps - 💾 **Install and uninstall apps**: Install and uninstall Apps via ADB, - using the Android package manager, or by mounting using root permissions + using the Android package manager or by mounting using root permissions - 📃 **List patches from patch bundles**: List available patches, compatible packages, and versions - 💪 **Flexibility and functionality**: Apply any combination of patches to any version of Android apps From 3d0c8c1526d340f2aeb1edc93f6b1ccb48e92575 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 27 Oct 2024 05:13:31 +0100 Subject: [PATCH 34/41] chore: Remove unused variable --- src/main/kotlin/app/revanced/cli/command/PatchCommand.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index 05f5280..c59bfd3 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -357,8 +357,6 @@ internal object PatchCommand : Runnable { // region Install. deviceSerial?.let { - val deviceSerial = it.ifEmpty { null } - runBlocking { when (val result = installer!!.install(Installer.Apk(outputFilePath, packageName))) { RootInstallerResult.FAILURE -> logger.severe("Failed to mount the patched APK file") From c2dc9d76be33c98284741e23c406500483c47753 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 5 Nov 2024 16:53:03 +0100 Subject: [PATCH 35/41] fix: Print in new line correctly --- src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt index d82185a..4de799d 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt @@ -111,7 +111,7 @@ internal object ListPatchesCommand : Runnable { if (withDescriptions) append("\nDescription: ${patch.description}") - append("Enabled: ${patch.use}") + append("\nEnabled: ${patch.use}") if (withOptions && patch.options.isNotEmpty()) { appendLine("\nOptions:") From 94b9e2bc6c68c28475845efe2dd2a14cf53e36e0 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 5 Nov 2024 15:55:05 +0000 Subject: [PATCH 36/41] chore: Release v5.0.0-dev.9 [skip ci] # [5.0.0-dev.9](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.8...v5.0.0-dev.9) (2024-11-05) ### Bug Fixes * Print in new line correctly ([c2dc9d7](https://github.com/ReVanced/revanced-cli/commit/c2dc9d76be33c98284741e23c406500483c47753)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b733526..b4ff5fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.0.0-dev.9](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.8...v5.0.0-dev.9) (2024-11-05) + + +### Bug Fixes + +* Print in new line correctly ([c2dc9d7](https://github.com/ReVanced/revanced-cli/commit/c2dc9d76be33c98284741e23c406500483c47753)) + # [5.0.0-dev.8](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.7...v5.0.0-dev.8) (2024-10-17) # [5.0.0-dev.7](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.6...v5.0.0-dev.7) (2024-10-16) diff --git a/gradle.properties b/gradle.properties index bbe78e2..12645c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.8 +version = 5.0.0-dev.9 From 18e56e6ff4c504417361df835001d1bc054d0037 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 5 Nov 2024 19:58:21 +0100 Subject: [PATCH 37/41] build(Needs bump): Bump dependencies --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d851fbe..6ef48b4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,8 +3,8 @@ shadow = "8.1.1" kotlin = "2.0.20" kotlinx = "1.8.1" picocli = "4.7.6" -revanced-patcher = "20.0.2" -revanced-library = "3.0.0" +revanced-patcher = "21.0.0" +revanced-library = "3.0.2" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } From 1bb0d13726fd5790c59cb6d28df3618c7606710d Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 5 Nov 2024 19:59:09 +0100 Subject: [PATCH 38/41] fix: Make CLI ArgGroup non-exclusive to be able to disable and enable patches at the same time --- src/main/kotlin/app/revanced/cli/command/PatchCommand.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index c59bfd3..efbc755 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -29,11 +29,11 @@ internal object PatchCommand : Runnable { @Spec private lateinit var spec: CommandSpec - @ArgGroup(multiplicity = "0..*") + @ArgGroup(exclusive = false, multiplicity = "0..*") private var selection = mutableSetOf() internal class Selection { - @ArgGroup(exclusive = false, multiplicity = "1") + @ArgGroup(exclusive = false) internal var enabled: EnableSelection? = null internal class EnableSelection { @@ -65,7 +65,7 @@ internal object PatchCommand : Runnable { internal var options = mutableMapOf() } - @ArgGroup(exclusive = false, multiplicity = "1") + @ArgGroup(exclusive = false) internal var disable: DisableSelection? = null internal class DisableSelection { @@ -291,7 +291,6 @@ internal object PatchCommand : Runnable { patcherTemporaryFilesPath, aaptBinaryPath?.path, patcherTemporaryFilesPath.absolutePath, - true, ), ).use { patcher -> val packageName = patcher.context.packageMetadata.packageName From 77be717de02ee2d020940f33353d556221aacc4b Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 5 Nov 2024 19:01:23 +0000 Subject: [PATCH 39/41] chore: Release v5.0.0-dev.10 [skip ci] # [5.0.0-dev.10](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.9...v5.0.0-dev.10) (2024-11-05) ### Bug Fixes * Make CLI ArgGroup non-exclusive to be able to disable and enable patches at the same time ([1bb0d13](https://github.com/ReVanced/revanced-cli/commit/1bb0d13726fd5790c59cb6d28df3618c7606710d)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4ff5fe..664b90d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.0.0-dev.10](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.9...v5.0.0-dev.10) (2024-11-05) + + +### Bug Fixes + +* Make CLI ArgGroup non-exclusive to be able to disable and enable patches at the same time ([1bb0d13](https://github.com/ReVanced/revanced-cli/commit/1bb0d13726fd5790c59cb6d28df3618c7606710d)) + # [5.0.0-dev.9](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.8...v5.0.0-dev.9) (2024-11-05) diff --git a/gradle.properties b/gradle.properties index 12645c2..8e40df3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.9 +version = 5.0.0-dev.10 From 98ff0c34fa71c3b3ecd96157d45a30ee2b8979c6 Mon Sep 17 00:00:00 2001 From: decipher <84389932+decipher3114@users.noreply.github.com> Date: Sun, 10 Nov 2024 20:17:55 +0530 Subject: [PATCH 40/41] fix: List if patch option is required (#346) --- src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt index 4de799d..a2220e6 100644 --- a/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/ListPatchesCommand.kt @@ -89,6 +89,7 @@ internal object ListPatchesCommand : Runnable { buildString { appendLine("Title: $title") description?.let { appendLine("Description: $it") } + appendLine("Required: $required") default?.let { appendLine("Key: $key") append("Default: $it") From dbbc00706db33c041183d0d45515284f70878950 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 10 Nov 2024 14:49:46 +0000 Subject: [PATCH 41/41] chore: Release v5.0.0-dev.11 [skip ci] # [5.0.0-dev.11](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.10...v5.0.0-dev.11) (2024-11-10) ### Bug Fixes * List if patch option is required ([#346](https://github.com/ReVanced/revanced-cli/issues/346)) ([98ff0c3](https://github.com/ReVanced/revanced-cli/commit/98ff0c34fa71c3b3ecd96157d45a30ee2b8979c6)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 664b90d..f695647 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.0.0-dev.11](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.10...v5.0.0-dev.11) (2024-11-10) + + +### Bug Fixes + +* List if patch option is required ([#346](https://github.com/ReVanced/revanced-cli/issues/346)) ([98ff0c3](https://github.com/ReVanced/revanced-cli/commit/98ff0c34fa71c3b3ecd96157d45a30ee2b8979c6)) + # [5.0.0-dev.10](https://github.com/ReVanced/revanced-cli/compare/v5.0.0-dev.9...v5.0.0-dev.10) (2024-11-05) diff --git a/gradle.properties b/gradle.properties index 8e40df3..e0b7c4e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 5.0.0-dev.10 +version = 5.0.0-dev.11