From 180b49b8ea661332f64e8ca0c131a1a14f341285 Mon Sep 17 00:00:00 2001 From: Matthew DeAngelo <34804024+MFDeAngelo@users.noreply.github.com> Date: Sat, 26 Oct 2024 07:09:00 -0400 Subject: [PATCH 1/7] Koreader progress sync interface (#3025) Co-authored-by: Joe Milazzo --- API.Benchmark/API.Benchmark.csproj | 5 + API.Benchmark/Data/AesopsFables.epub | Bin 0 -> 308180 bytes API.Benchmark/KoreaderHashBenchmark.cs | 44 + API.Tests/API.Tests.csproj | 10 +- API.Tests/Data/AesopsFables.epub | Bin 0 -> 308180 bytes API.Tests/Helpers/KoreaderHelperTests.cs | 60 + API/API.csproj | 46 +- API/Controllers/KoreaderController.cs | 99 + API/DTOs/Koreader/KoreaderBookDto.cs | 33 + .../20240914041512_KoreaderHash.Designer.cs | 3148 ++++ .../Migrations/20240914041512_KoreaderHash.cs | 28 + .../Migrations/DataContextModelSnapshot.cs | 3 + API/Data/Repositories/MangaFileRepository.cs | 10 +- API/Entities/MangaFile.cs | 7 +- .../ApplicationServiceExtensions.cs | 3 +- API/Helpers/Builders/MangaFileBuilder.cs | 14 +- API/Helpers/KoreaderHelper.cs | 107 + API/Services/KoreaderService.cs | 60 + API/Services/Tasks/Scanner/ProcessSeries.cs | 3 +- Kavita.Common/Kavita.Common.csproj | 8 +- UI/Web/angular.json | 9 +- UI/Web/package-lock.json | 12536 ++++------------ UI/Web/package.json | 73 +- .../app/_interceptors/error.interceptor.ts | 7 +- .../src/app/_interceptors/jwt.interceptor.ts | 7 +- UI/Web/src/app/_services/chapter.service.ts | 2 +- .../app/_services/collection-tag.service.ts | 2 +- UI/Web/src/app/_services/dashboard.service.ts | 2 +- .../app/_services/external-source.service.ts | 2 +- UI/Web/src/app/_services/filter.service.ts | 2 +- .../src/app/_services/localization.service.ts | 2 +- UI/Web/src/app/_services/metadata.service.ts | 2 +- UI/Web/src/app/_services/nav.service.ts | 2 +- UI/Web/src/app/_services/person.service.ts | 2 +- .../src/app/_services/scrobbling.service.ts | 2 +- UI/Web/src/app/_services/theme.service.ts | 2 +- UI/Web/src/app/_services/volume.service.ts | 2 +- UI/Web/src/app/app.component.ts | 22 +- .../manga-reader/manga-reader.component.ts | 2 +- .../pdf-reader/pdf-reader.component.html | 1 - UI/Web/src/app/shared/_models/download.ts | 8 +- .../_services/filter-utilities.service.ts | 2 +- UI/Web/src/httpLoader.ts | 2 +- UI/Web/src/main.ts | 2 +- UI/Web/tsconfig.json | 3 +- 45 files changed, 6961 insertions(+), 9425 deletions(-) create mode 100644 API.Benchmark/Data/AesopsFables.epub create mode 100644 API.Benchmark/KoreaderHashBenchmark.cs create mode 100644 API.Tests/Data/AesopsFables.epub create mode 100644 API.Tests/Helpers/KoreaderHelperTests.cs create mode 100644 API/Controllers/KoreaderController.cs create mode 100644 API/DTOs/Koreader/KoreaderBookDto.cs create mode 100644 API/Data/Migrations/20240914041512_KoreaderHash.Designer.cs create mode 100644 API/Data/Migrations/20240914041512_KoreaderHash.cs create mode 100644 API/Helpers/KoreaderHelper.cs create mode 100644 API/Services/KoreaderService.cs diff --git a/API.Benchmark/API.Benchmark.csproj b/API.Benchmark/API.Benchmark.csproj index 2dcf08f32..de44f1fda 100644 --- a/API.Benchmark/API.Benchmark.csproj +++ b/API.Benchmark/API.Benchmark.csproj @@ -26,5 +26,10 @@ Always + + + PreserveNewest + + diff --git a/API.Benchmark/Data/AesopsFables.epub b/API.Benchmark/Data/AesopsFables.epub new file mode 100644 index 0000000000000000000000000000000000000000..d2ab9a8b210befa57285f12445dc36e7d95b96c9 GIT binary patch literal 308180 zcmbTdcRXBA_&>U9m(`+0S<&r^E>=k_t0ln_y$cD^NrF`pJ*+OPEFp**ov0y5LiE*F z5JX9^dan^RKcDaKmVfRa_ul8sb6&4`otg8R_spE<%skI~^dEr0%z*#o00p#ge^M^? zU+zDpywc|`&mFw|JRF{Qcsz5ld*bcl?sm(;!^c+C-^D}!|ENj%KQ*`A+01LMYMfsw z>y_%L8LNtG>Z;$eb9eK8;^OAuDdGG4nNGYa9afV0{&D8}waAFj^&uH%rt1?KzSxIK zlarUfhiwo4u(F0P!KHU}MuVE|c+%br7%!D7rP2=TyJL)(G9%ZmUOfK}Z7&dS@ATx! zUpNR)@~$&@|A)arDv8WS&+$))W~FS?;NRuBpKa6F8b^MuFdv4ub^XuMvdXc#x4PUX z`Y-rcwIj!wDTYvoreTZ zJt7CajlI`Efd3SB1yWD#uD;Q&+qdr^5w~y4A?2j*NJ&e|$RH%G?c85nA$Ij}`ZxJ+ z4#1$LuBi?H0s#Qv)dl!B4Y&sYk&*qEt^|CQ$SKLm!C-P~2!w)?mYSB9hMI=v8XXhE zH9AH*8X5*x2FB~mEG#Uv^lVU8W+)Rg3-f<30fMgTfXS)I$*GvH(OhHx|1AGn0gRNO zRWck1$PXZ61cDfW|2hFYSM4MR{*PRN{2u|5UA2({LPfylt1|5|-j zI_T;-0L)0v#D`F&xNh(S!jEB=3dQG9!tU0zu^4{eg-hFdVyUQE*`Vw<1a1ln35&?c z-o7J;l)rahOi++Ti}4B<85j%#L;k}BBzt+KAVx4bAA*8O)d2DYbDdu* zl#=-_KCh;Y3MOs1%VO*KothOcGcU0BAGH5L_WuqT_Wu{M{|ngvjcW=(3j$sZ9*7a3 z3^(*?tgNLO&i(4609x8v%R1F}v@>$CefQKm1{mL9E z12&=i?Qlku0Tk`9RvrmoQnJ?O;PL0s)=gpBaJ7%Hu{rN^XGb%AbT{uSQ9pJxRxjw;J7cO^>a2l>Z$Ov28TEOu=g8p$2-bh>v* z+c+P&4XaPf`^UJ@cp77MSJyp%IxU0manrqG6x+qa)MTZC;vo<(+?k>L60mz%4{%`k zj3%TX3zLP##1!72(lTk}^(G!9h8v!zermiDG zEHm(MM614>K7p1DmvdP!`_hfmdk*Jah)98xL}yN8!MFWruH}B}S~5<$yHdf>n!r)> zMt#n~gQ}Ofrt?z3gAOn>tYLr#8uSo3ZPWe3V9()nVaxvjH{4TI0W0vsas~!U5%neH zNt1PPv#gU)y9uw7=8&>pAyw>VgpJr=IK3f(EMu(>=iTkMW8@d$F=9{A3-HMsy@qYg z^x-5g#>~XaPPW!Y@ys5T7DSh8{1$BtLjD6#v!XOo+SoT{cy^0F1KQ#Z%x!KNDz#+S zRo?6g%uHeo1=wd}^BfkrJ^W2_sc`_!p%?prq7@jL{&lRnIyf3UVt)-mcOku@hyit9-d5oi4A=b%m;PcQRl*(kZ`9+h#VyM zC@&OD22xVW=OG!?VkwZ;Mr|^ojHTVWkS6}@-pKY(^V2xT>?f`FvWuaIG9viKBp^?r zLOe;^Qc_RwEPn*A{s&-_^EjFVX8z}>2T@{8PntImDe^N?3QG59$5un==+@`I5x3AwZB(zvbQQ`+a3B|R#L zT23U?H^0MYOB<(~!Mv^FzSP8r8<}WAaG}{3BE2)JC?3q{Kfr`RxFI3)R;5s*7Xt}* zcwBV2@#}*~+N^n{$_m)th-{Hb?nrqgtFMXe9$tm0R4=T(uK~d982SZJih&U9psCjp zJtmr$)^Rc+bRvEChdPD8q@05dZG?~9Nq|!`8x#IU2~>HR6OI3R_Pqf|iha{fr~5L1+Bd;(Efs_x2C5MT zV&^qig#i%wo)OBDA@f3U4Sc^53eNVBH)_0jzwD(QJ98tlXUp`qgL%nXn{u2?X8;z! zlO-C3U@B!-1YS7XXmCkS6`A)qQhyneK0Ge=3(!R*UYWZ03(KMr&_6p{s*mNMgbh=H z1o)iIN@y&tLZs>tp!fa!fJ#Vmw;oRl(*7TS%++1cH7pa~?^!0GJbT=vBv zXJ?{nHe^6g#Y^in+4FPdXix8@ae=)PcdP$c9+g0~F=KbY*mr(uNgwymemotk!RhZw z?uPHH`jeEf5jZ@4;@1aCY?GlXSI^aGs<(c5K*m}Ti3`HN?iHS(Mfa z-qpNhoXSB2c2e;S$jK4?S7pTSJ{8r3>3vzgKB^dDCl%MM0th51x^_xcYeQ5ZWy>Ek zj7;s~G#~@7^9P*2pBHdM0<>{y(mB82wxmbUU;t{0+}t*^cPh448QTH|$Ty?k8;G&o#W}2RPv5fveIWtyMxI z6Y_EX5@`KtX!4)*JvgJrwYd27=kAOH58yh|#mKYH1Z!=xl%q@{QMrn=5*0V*Q9ATVK(TLjHY?ZSzGgao^DpGt z%<+->aw{5!fF5@S55}G6yg8rY29S_9o2xE0-UW8?Sa#3f(Am!5p4&r`En{Z!B9bumLolHyaL3r~|rEU^hvYyG9} z>wDOe)fThym0bFtN*5nky{g(Pzklpv`)MiB8boZ)+&erjb3c<@Pt|+2RcQgn-^c0+ zH}-{LrQ3Sj4rLe3f^Uv(e{Bd--|VBHjq~CYJUS$;J(}o9h^p9=pelH6ojo3a`Mkgu zSIA3;Q*zT##raf}5!j=`N-Y_Z{sAE8*X3WCRR~afXZ-_oy3Yg;>A3Av?CGYlNIlq^ zlE&}vcVst9kEA>7K5b*@kU9O<`Az{!f{STV`rS~Sc5RY7t`uA#gkJsZ7YM_nM$b)` zna!GRiofP);PcPiRV6liiVmcMcY0?-GiiM)V~sa{U^6PG{MVSjDWn@`i5OzM>mNV+ zQ?=zDro>j0ym_i#yzofRh4I}_${5Q;&wLxMXyrR3i8YmeC)XgLPz zL$%u)FHv-g@hZz-ONPFfGf8O-%<8Du(y8#=vZ6bx^DzDgSR#4-16=<$|NflzvB=Xo zEv4x3aoLM|)?br$48J7p+rApt?uua-Oi(4NTDW!lX|{n6>bxQ6LcH%I1q1wjS_`8^ zOX2fxadafXjO|zh)7V-h$MXZlepACKRmBez!ha$xfT@%AZYut6TiNNHvGMySZd42^ z{GZGmO@_>cQDgz6P?LAgRuMMJ;rPtVv1Kv1RpKU<`9UIbXU&w4cq^lCCsfkJq!lVc zfjpiw20QBK)p`WGYu(;)^T_qoYo?Ac&)mx-$%G>*q3diYyV9cl0p{e*rk-5;8hGH( zZba*Ge&PUQEt34p4YCfdyV+d{kEeCCp!||5P;O{-FOOCr!|P(;ax8dz#Gbwiu(Dg& z6e(0-A88~Hd=vEUrT-q0=W$ReE*wy%F>8nj@eHn8jw`T1q(bND07vgp;a*`$a<=mH zT6oNj-GWL?FX3xlG_bs@8H-=a3Q^e;{{9VZdT z(LLP1N77P{1@{Zg?b32rLWfkL1!@?+DU;uBo__xTH?zwuz?QLUUj!B7g>Q#K;h9b$ z%?W=oXfys9b#+ZK`JFtUTcBLeD;{eP>&-&*OP{%;1bGB0T7|kgRZ|i z9Ye{f0LZI#DT1wE`PX}E!Nnr9TbV5MxYPb9Yhg{O$e3x3##WMN^eOEzHE}bbYFY)K zq7xe_2s;#9vaVWc!CA)F&GE)y@@#m0L$q`b3xvI22+{WJ?8gER5`@^mz)KmTki<9` zVVBj34_h;34r3p>%We7PPAPLY?$e9;j|YBFTd$1OL$oGd#2vuY&w%3odX=>eDF)kQ zlVyke14KMNL%2v@4*+HgQd0yUH15LuR!aWU7s=JUhP8h{qmiW2BPiYmI5QC9 z$m#_nkbIb&-QtM-YG0#S1$@Fmm&F5*Iff>iCN)?IsX{b<2~MWYZJPv`XP(1f=v-qz zs1EZ3;70*or$54RumwSGo0S1hy9`vakW`W>=gNzj%u}PrZ8LPXHbdtjM@%c1@9D6< zpIuAv0-e{V_gy2bGTpZI&FkZK)#%ayAS_I6SsE>H2* zW06}zcZ51akamQ5)7F9epB5ud%l6Ivhrgc~hKc!^vNK}UA;%?+mGIm6zNX)c9obc5 zIr}1Fc3hEiR*PX9W)FW%)<&3m>vM31G%DX&(wA+-rxj_19uIl0oc}4%**3;&$0h3O z(ax%o8)yO?R96FjbT{xN0$wJkB(Q@vv~t_ze4+XIi+%nu|A5gOj=}9bi-6m@daiHo z#)ia)+tTGc`;S9hR{b*gX%)>v2B}G=9bYRRjpT13!*Tjq+Zfr)v*u1^E zn?-4Vd+wXAkjTBo(BveD@+}qz<`_>H6B0mzQtcS3fqI!g{G5dBK(jRo?yeFFGlh{B zQd$w};D)@zQq5~gc9VJvkjhsnTF)QrYy3Wqrl z?ek#3fgPn=u>qFQ1sLwAXGQ6U+Y~RJw#Gb$+*AJGQbYDmVsB$Dxu^PMf&%2Yd9_LW zqukvWgiHoiUjHCx#0kz^l9$sy6I@>CfY0n!#W&%r5jY?28OJ;{4p##E{R11(hPiMS zikP1Y-EEihFvmHq8A54tspWI<5Ht3j9W%EIE~hwf;cQbJQ28?{?@%Vk36N^L!SJk~ zKLm~BI`cxCiP)|1g{Fjncz2O&M@351DcV~^a6;OdNfVz!H8ZcR?!Y0>uhY>ai5Ckayk=u`0D44jE%9OYC*p%VtoP7#`-MotV?l)*E*Ou62QR6ISsOalWJEOpG(b}O@r zXVPs(H?aeS)Dc-}soa0Tv=h`oskuem1O*3OmPTw@^KpRn`_;FVn}_S;btcsAvk$EA zjMZ)>QOt09uLF;Y%4{fLFgcWCrbi#T9p`;iB-+F5HJXUXIHZ@QssoGpu@kt66&iO8 zy5+WhWfPm|Jm@?Dt0MmZQFSgT)hctB8th{~Q{`O6SEXg12D*CoF3i)lN?8{fbu8ae zqAR~!E3W-Kv#;Rgz5n{yqPd!CWxU0EZz3kA>r#B&$BFm#yC?@f4>J33=wT~aOY+|w z3{O-G-S3uc3kToveky$U5EZc+N*Zs`Z8eYA>`@j1@lNzFZcL9=#HH@Pc>Ma*8nfjn zZWw`*TCME4dIuPYJDnI){%9KJp7&SetkVp)SKlGOpYI$gN$0hZc>$CPJb#wjl#j=dt0r+Y515dK}mHNj479#o`f=;(v z<{jQlmx_G)Yqk(rvk>ICLg1Dd_iB^`k~yVlt~EDGKWDDNoB*>!$Z4&CSP6ZWjA#m`(2}Y4GV; z(P9!F){xaIJnKxrN}8cC#PQG8Q7vR&_x=H*jkN1eRJosh#DuH%o(BMDCJN5A_mon0 zyPsN9|CRbFc8izq=$auqrIJ0G!_04pj;aR=ION)>t&~7~sNS_2b-jH31t~o2Rj{Es zCAxQr(t2R_sOY{g!``wy=k-fjMxYrSNCb_v{McR2vs<7KeMv=nCH41qI!3H}-b72M zWea)JsMUzxw^(kOnj`QUN7kdB7AO1Nw;hwfB$NKs;g;LQtM+GWgPfwLq zVRdTYkT0#qD=pR3Xa+e>`{QDkeUd>48n$#)WswOoh&7|yD@#WEVJ(9%`C zX2hl_BmRI+4|5z;W|D9Wo(mnWS>gVz6>0QEPM`8@=BPLcRq0{w0javOB9Z*6DRGI| zve|?Z<-Ve1?k9c>WV$nSzmBZ5h;>-)FhPv$ldZ)*R&3 zj!}WTc)mE)e)>3|`lu*XswXzL21czYzjr#KQ>{hK6y+|63RC$mDpl>s?gHHf&fO{= ze=l)|%+har)>FB=IGV2xtbWhEdovS9N(dHVq(OaUF_~?(8=XAW7bs`u%1xxkBE|HG zTe`MdA#@7wvsIaY%!~kl#N8?f<#|2E<=M7%`hnlGsIgEEKE_3WCUSPvyNs z(f7~i0A`}Sw$d3EFb<$~|(Pz>r4$8O~Izz!%|9dL=NoQ#Ju)8^wU3{2+L2AK=e zL|HzGvOF_CE)^7=|Jj9zWPbmPYaxW?Ko4J3fHe5)Mhir4=R7{#7>ib;;q4SNFR$I#-OkY- zon+)59^{~v{s>ymrjs81y`jyUYGRO+1BBWn*ln4n40G7F>3@Qxeq~mO=UCHZkV>cU z;{GwnGlQngrqA+em_dR8oL<>Ex-NU_H7eniW2PM?Zq`L~ z3h`c=QYn%rxzgn+_JFyw(Z&lJ1YD<@j6WQZm&Ta9iau7>3hQ^d6Bo*ki5~OJUKxHl zsEfaowvi*-zV!1Q%<1o$u?J78ISGKx{SeOJ0Qwtrdif@16`uJ1J=5k06KVtku)`__ z*MrOSwaP5=?E1EqmE`YyyIJ`)_(_9M2t*mK!E=j?zW)BnqWWySHI!;oksJ^mjaZ6i z8VpTNG?wrWa;a@KqL8|8CkB6V{15Q6v=|`;jbk0(9gi*8_e~$*n?g?No60<2NSRXV>P~g^M4j)yCo+^M;o#z;*@(R>&GUYi*tNb z_!8M_Kp%@>LQ-xBB5YzJ!`sjDqDwgdcP*1L{?|8MuPsxDaH<5pmG+o-Zs5RI z^xwENn8%`7To}(A$5>uC{sUOHEe0HN>Prc?-k}Xoq#|>nA+w(GztI#}qfW48vr1-? znlH4Xv;37KP!^IbR$mKR;Ao}qthh?w8U=>NytP{I+=Zs zzuoA@;O(j2!iI?27t+8Rp;?6COIh!Hs6~iFI0FxA=_6s@pxp2GS5NRyVEg%dNyGs) zL#z>#$@c}oN;oIj)qrM5+tuPxq=Q_0Xneir!Yl)N_(8LYYHH9=I!dMHGmPncI)@IU zRr|HCAn&J*k%^4QUca+lV#Kw}pSmm2#F&e8-AL@obYtJx(L?lTsiU91(Zf$JMr
  • ozM*cR!tz-r%pk;bf>7ZHaYS?riEi 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 z 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

    41N`7$66wIz1rC5S{H~=#-Ly6iXxgabI4_w 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 M92|ZUa88H&f4_?JNdN!< literal 0 HcmV?d00001 diff --git a/API.Benchmark/KoreaderHashBenchmark.cs b/API.Benchmark/KoreaderHashBenchmark.cs new file mode 100644 index 000000000..eb6e96040 --- /dev/null +++ b/API.Benchmark/KoreaderHashBenchmark.cs @@ -0,0 +1,44 @@ +using API.Helpers.Builders; +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Order; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using API.Entities.Enums; + +namespace API.Benchmark +{ + [StopOnFirstError] + [MemoryDiagnoser] + [RankColumn] + [Orderer(SummaryOrderPolicy.FastestToSlowest)] + [SimpleJob(launchCount: 1, warmupCount: 5, invocationCount: 20)] + public class KoreaderHashBenchmark + { + private const string sourceEpub = "./Data/AesopsFables.epub"; + + [Benchmark(Baseline = true)] + public void TestBuildManga_baseline() + { + var file = new MangaFileBuilder(sourceEpub, MangaFormat.Epub) + .Build(); + if (file == null) + { + throw new Exception("Failed to build manga file"); + } + } + + [Benchmark] + public void TestBuildManga_withHash() + { + var file = new MangaFileBuilder(sourceEpub, MangaFormat.Epub) + .WithHash() + .Build(); + if (file == null) + { + throw new Exception("Failed to build manga file"); + } + } + } +} diff --git a/API.Tests/API.Tests.csproj b/API.Tests/API.Tests.csproj index 6aefef830..a338dec98 100644 --- a/API.Tests/API.Tests.csproj +++ b/API.Tests/API.Tests.csproj @@ -6,12 +6,12 @@ - + - + runtime; build; native; contentfiles; analyzers; buildtransitive all @@ -35,4 +35,10 @@ + + + PreserveNewest + + + diff --git a/API.Tests/Data/AesopsFables.epub b/API.Tests/Data/AesopsFables.epub new file mode 100644 index 0000000000000000000000000000000000000000..d2ab9a8b210befa57285f12445dc36e7d95b96c9 GIT binary patch literal 308180 zcmbTdcRXBA_&>U9m(`+0S<&r^E>=k_t0ln_y$cD^NrF`pJ*+OPEFp**ov0y5LiE*F z5JX9^dan^RKcDaKmVfRa_ul8sb6&4`otg8R_spE<%skI~^dEr0%z*#o00p#ge^M^? zU+zDpywc|`&mFw|JRF{Qcsz5ld*bcl?sm(;!^c+C-^D}!|ENj%KQ*`A+01LMYMfsw z>y_%L8LNtG>Z;$eb9eK8;^OAuDdGG4nNGYa9afV0{&D8}waAFj^&uH%rt1?KzSxIK zlarUfhiwo4u(F0P!KHU}MuVE|c+%br7%!D7rP2=TyJL)(G9%ZmUOfK}Z7&dS@ATx! zUpNR)@~$&@|A)arDv8WS&+$))W~FS?;NRuBpKa6F8b^MuFdv4ub^XuMvdXc#x4PUX z`Y-rcwIj!wDTYvoreTZ zJt7CajlI`Efd3SB1yWD#uD;Q&+qdr^5w~y4A?2j*NJ&e|$RH%G?c85nA$Ij}`ZxJ+ z4#1$LuBi?H0s#Qv)dl!B4Y&sYk&*qEt^|CQ$SKLm!C-P~2!w)?mYSB9hMI=v8XXhE zH9AH*8X5*x2FB~mEG#Uv^lVU8W+)Rg3-f<30fMgTfXS)I$*GvH(OhHx|1AGn0gRNO zRWck1$PXZ61cDfW|2hFYSM4MR{*PRN{2u|5UA2({LPfylt1|5|-j zI_T;-0L)0v#D`F&xNh(S!jEB=3dQG9!tU0zu^4{eg-hFdVyUQE*`Vw<1a1ln35&?c z-o7J;l)rahOi++Ti}4B<85j%#L;k}BBzt+KAVx4bAA*8O)d2DYbDdu* zl#=-_KCh;Y3MOs1%VO*KothOcGcU0BAGH5L_WuqT_Wu{M{|ngvjcW=(3j$sZ9*7a3 z3^(*?tgNLO&i(4609x8v%R1F}v@>$CefQKm1{mL9E z12&=i?Qlku0Tk`9RvrmoQnJ?O;PL0s)=gpBaJ7%Hu{rN^XGb%AbT{uSQ9pJxRxjw;J7cO^>a2l>Z$Ov28TEOu=g8p$2-bh>v* z+c+P&4XaPf`^UJ@cp77MSJyp%IxU0manrqG6x+qa)MTZC;vo<(+?k>L60mz%4{%`k zj3%TX3zLP##1!72(lTk}^(G!9h8v!zermiDG zEHm(MM614>K7p1DmvdP!`_hfmdk*Jah)98xL}yN8!MFWruH}B}S~5<$yHdf>n!r)> zMt#n~gQ}Ofrt?z3gAOn>tYLr#8uSo3ZPWe3V9()nVaxvjH{4TI0W0vsas~!U5%neH zNt1PPv#gU)y9uw7=8&>pAyw>VgpJr=IK3f(EMu(>=iTkMW8@d$F=9{A3-HMsy@qYg z^x-5g#>~XaPPW!Y@ys5T7DSh8{1$BtLjD6#v!XOo+SoT{cy^0F1KQ#Z%x!KNDz#+S zRo?6g%uHeo1=wd}^BfkrJ^W2_sc`_!p%?prq7@jL{&lRnIyf3UVt)-mcOku@hyit9-d5oi4A=b%m;PcQRl*(kZ`9+h#VyM zC@&OD22xVW=OG!?VkwZ;Mr|^ojHTVWkS6}@-pKY(^V2xT>?f`FvWuaIG9viKBp^?r zLOe;^Qc_RwEPn*A{s&-_^EjFVX8z}>2T@{8PntImDe^N?3QG59$5un==+@`I5x3AwZB(zvbQQ`+a3B|R#L zT23U?H^0MYOB<(~!Mv^FzSP8r8<}WAaG}{3BE2)JC?3q{Kfr`RxFI3)R;5s*7Xt}* zcwBV2@#}*~+N^n{$_m)th-{Hb?nrqgtFMXe9$tm0R4=T(uK~d982SZJih&U9psCjp zJtmr$)^Rc+bRvEChdPD8q@05dZG?~9Nq|!`8x#IU2~>HR6OI3R_Pqf|iha{fr~5L1+Bd;(Efs_x2C5MT zV&^qig#i%wo)OBDA@f3U4Sc^53eNVBH)_0jzwD(QJ98tlXUp`qgL%nXn{u2?X8;z! zlO-C3U@B!-1YS7XXmCkS6`A)qQhyneK0Ge=3(!R*UYWZ03(KMr&_6p{s*mNMgbh=H z1o)iIN@y&tLZs>tp!fa!fJ#Vmw;oRl(*7TS%++1cH7pa~?^!0GJbT=vBv zXJ?{nHe^6g#Y^in+4FPdXix8@ae=)PcdP$c9+g0~F=KbY*mr(uNgwymemotk!RhZw z?uPHH`jeEf5jZ@4;@1aCY?GlXSI^aGs<(c5K*m}Ti3`HN?iHS(Mfa z-qpNhoXSB2c2e;S$jK4?S7pTSJ{8r3>3vzgKB^dDCl%MM0th51x^_xcYeQ5ZWy>Ek zj7;s~G#~@7^9P*2pBHdM0<>{y(mB82wxmbUU;t{0+}t*^cPh448QTH|$Ty?k8;G&o#W}2RPv5fveIWtyMxI z6Y_EX5@`KtX!4)*JvgJrwYd27=kAOH58yh|#mKYH1Z!=xl%q@{QMrn=5*0V*Q9ATVK(TLjHY?ZSzGgao^DpGt z%<+->aw{5!fF5@S55}G6yg8rY29S_9o2xE0-UW8?Sa#3f(Am!5p4&r`En{Z!B9bumLolHyaL3r~|rEU^hvYyG9} z>wDOe)fThym0bFtN*5nky{g(Pzklpv`)MiB8boZ)+&erjb3c<@Pt|+2RcQgn-^c0+ zH}-{LrQ3Sj4rLe3f^Uv(e{Bd--|VBHjq~CYJUS$;J(}o9h^p9=pelH6ojo3a`Mkgu zSIA3;Q*zT##raf}5!j=`N-Y_Z{sAE8*X3WCRR~afXZ-_oy3Yg;>A3Av?CGYlNIlq^ zlE&}vcVst9kEA>7K5b*@kU9O<`Az{!f{STV`rS~Sc5RY7t`uA#gkJsZ7YM_nM$b)` zna!GRiofP);PcPiRV6liiVmcMcY0?-GiiM)V~sa{U^6PG{MVSjDWn@`i5OzM>mNV+ zQ?=zDro>j0ym_i#yzofRh4I}_${5Q;&wLxMXyrR3i8YmeC)XgLPz zL$%u)FHv-g@hZz-ONPFfGf8O-%<8Du(y8#=vZ6bx^DzDgSR#4-16=<$|NflzvB=Xo zEv4x3aoLM|)?br$48J7p+rApt?uua-Oi(4NTDW!lX|{n6>bxQ6LcH%I1q1wjS_`8^ zOX2fxadafXjO|zh)7V-h$MXZlepACKRmBez!ha$xfT@%AZYut6TiNNHvGMySZd42^ z{GZGmO@_>cQDgz6P?LAgRuMMJ;rPtVv1Kv1RpKU<`9UIbXU&w4cq^lCCsfkJq!lVc zfjpiw20QBK)p`WGYu(;)^T_qoYo?Ac&)mx-$%G>*q3diYyV9cl0p{e*rk-5;8hGH( zZba*Ge&PUQEt34p4YCfdyV+d{kEeCCp!||5P;O{-FOOCr!|P(;ax8dz#Gbwiu(Dg& z6e(0-A88~Hd=vEUrT-q0=W$ReE*wy%F>8nj@eHn8jw`T1q(bND07vgp;a*`$a<=mH zT6oNj-GWL?FX3xlG_bs@8H-=a3Q^e;{{9VZdT z(LLP1N77P{1@{Zg?b32rLWfkL1!@?+DU;uBo__xTH?zwuz?QLUUj!B7g>Q#K;h9b$ z%?W=oXfys9b#+ZK`JFtUTcBLeD;{eP>&-&*OP{%;1bGB0T7|kgRZ|i z9Ye{f0LZI#DT1wE`PX}E!Nnr9TbV5MxYPb9Yhg{O$e3x3##WMN^eOEzHE}bbYFY)K zq7xe_2s;#9vaVWc!CA)F&GE)y@@#m0L$q`b3xvI22+{WJ?8gER5`@^mz)KmTki<9` zVVBj34_h;34r3p>%We7PPAPLY?$e9;j|YBFTd$1OL$oGd#2vuY&w%3odX=>eDF)kQ zlVyke14KMNL%2v@4*+HgQd0yUH15LuR!aWU7s=JUhP8h{qmiW2BPiYmI5QC9 z$m#_nkbIb&-QtM-YG0#S1$@Fmm&F5*Iff>iCN)?IsX{b<2~MWYZJPv`XP(1f=v-qz zs1EZ3;70*or$54RumwSGo0S1hy9`vakW`W>=gNzj%u}PrZ8LPXHbdtjM@%c1@9D6< zpIuAv0-e{V_gy2bGTpZI&FkZK)#%ayAS_I6SsE>H2* zW06}zcZ51akamQ5)7F9epB5ud%l6Ivhrgc~hKc!^vNK}UA;%?+mGIm6zNX)c9obc5 zIr}1Fc3hEiR*PX9W)FW%)<&3m>vM31G%DX&(wA+-rxj_19uIl0oc}4%**3;&$0h3O z(ax%o8)yO?R96FjbT{xN0$wJkB(Q@vv~t_ze4+XIi+%nu|A5gOj=}9bi-6m@daiHo z#)ia)+tTGc`;S9hR{b*gX%)>v2B}G=9bYRRjpT13!*Tjq+Zfr)v*u1^E zn?-4Vd+wXAkjTBo(BveD@+}qz<`_>H6B0mzQtcS3fqI!g{G5dBK(jRo?yeFFGlh{B zQd$w};D)@zQq5~gc9VJvkjhsnTF)QrYy3Wqrl z?ek#3fgPn=u>qFQ1sLwAXGQ6U+Y~RJw#Gb$+*AJGQbYDmVsB$Dxu^PMf&%2Yd9_LW zqukvWgiHoiUjHCx#0kz^l9$sy6I@>CfY0n!#W&%r5jY?28OJ;{4p##E{R11(hPiMS zikP1Y-EEihFvmHq8A54tspWI<5Ht3j9W%EIE~hwf;cQbJQ28?{?@%Vk36N^L!SJk~ zKLm~BI`cxCiP)|1g{Fjncz2O&M@351DcV~^a6;OdNfVz!H8ZcR?!Y0>uhY>ai5Ckayk=u`0D44jE%9OYC*p%VtoP7#`-MotV?l)*E*Ou62QR6ISsOalWJEOpG(b}O@r zXVPs(H?aeS)Dc-}soa0Tv=h`oskuem1O*3OmPTw@^KpRn`_;FVn}_S;btcsAvk$EA zjMZ)>QOt09uLF;Y%4{fLFgcWCrbi#T9p`;iB-+F5HJXUXIHZ@QssoGpu@kt66&iO8 zy5+WhWfPm|Jm@?Dt0MmZQFSgT)hctB8th{~Q{`O6SEXg12D*CoF3i)lN?8{fbu8ae zqAR~!E3W-Kv#;Rgz5n{yqPd!CWxU0EZz3kA>r#B&$BFm#yC?@f4>J33=wT~aOY+|w z3{O-G-S3uc3kToveky$U5EZc+N*Zs`Z8eYA>`@j1@lNzFZcL9=#HH@Pc>Ma*8nfjn zZWw`*TCME4dIuPYJDnI){%9KJp7&SetkVp)SKlGOpYI$gN$0hZc>$CPJb#wjl#j=dt0r+Y515dK}mHNj479#o`f=;(v z<{jQlmx_G)Yqk(rvk>ICLg1Dd_iB^`k~yVlt~EDGKWDDNoB*>!$Z4&CSP6ZWjA#m`(2}Y4GV; z(P9!F){xaIJnKxrN}8cC#PQG8Q7vR&_x=H*jkN1eRJosh#DuH%o(BMDCJN5A_mon0 zyPsN9|CRbFc8izq=$auqrIJ0G!_04pj;aR=ION)>t&~7~sNS_2b-jH31t~o2Rj{Es zCAxQr(t2R_sOY{g!``wy=k-fjMxYrSNCb_v{McR2vs<7KeMv=nCH41qI!3H}-b72M zWea)JsMUzxw^(kOnj`QUN7kdB7AO1Nw;hwfB$NKs;g;LQtM+GWgPfwLq zVRdTYkT0#qD=pR3Xa+e>`{QDkeUd>48n$#)WswOoh&7|yD@#WEVJ(9%`C zX2hl_BmRI+4|5z;W|D9Wo(mnWS>gVz6>0QEPM`8@=BPLcRq0{w0javOB9Z*6DRGI| zve|?Z<-Ve1?k9c>WV$nSzmBZ5h;>-)FhPv$ldZ)*R&3 zj!}WTc)mE)e)>3|`lu*XswXzL21czYzjr#KQ>{hK6y+|63RC$mDpl>s?gHHf&fO{= ze=l)|%+har)>FB=IGV2xtbWhEdovS9N(dHVq(OaUF_~?(8=XAW7bs`u%1xxkBE|HG zTe`MdA#@7wvsIaY%!~kl#N8?f<#|2E<=M7%`hnlGsIgEEKE_3WCUSPvyNs z(f7~i0A`}Sw$d3EFb<$~|(Pz>r4$8O~Izz!%|9dL=NoQ#Ju)8^wU3{2+L2AK=e zL|HzGvOF_CE)^7=|Jj9zWPbmPYaxW?Ko4J3fHe5)Mhir4=R7{#7>ib;;q4SNFR$I#-OkY- zon+)59^{~v{s>ymrjs81y`jyUYGRO+1BBWn*ln4n40G7F>3@Qxeq~mO=UCHZkV>cU z;{GwnGlQngrqA+em_dR8oL<>Ex-NU_H7eniW2PM?Zq`L~ z3h`c=QYn%rxzgn+_JFyw(Z&lJ1YD<@j6WQZm&Ta9iau7>3hQ^d6Bo*ki5~OJUKxHl zsEfaowvi*-zV!1Q%<1o$u?J78ISGKx{SeOJ0Qwtrdif@16`uJ1J=5k06KVtku)`__ z*MrOSwaP5=?E1EqmE`YyyIJ`)_(_9M2t*mK!E=j?zW)BnqWWySHI!;oksJ^mjaZ6i z8VpTNG?wrWa;a@KqL8|8CkB6V{15Q6v=|`;jbk0(9gi*8_e~$*n?g?No60<2NSRXV>P~g^M4j)yCo+^M;o#z;*@(R>&GUYi*tNb z_!8M_Kp%@>LQ-xBB5YzJ!`sjDqDwgdcP*1L{?|8MuPsxDaH<5pmG+o-Zs5RI z^xwENn8%`7To}(A$5>uC{sUOHEe0HN>Prc?-k}Xoq#|>nA+w(GztI#}qfW48vr1-? znlH4Xv;37KP!^IbR$mKR;Ao}qthh?w8U=>NytP{I+=Zs zzuoA@;O(j2!iI?27t+8Rp;?6COIh!Hs6~iFI0FxA=_6s@pxp2GS5NRyVEg%dNyGs) zL#z>#$@c}oN;oIj)qrM5+tuPxq=Q_0Xneir!Yl)N_(8LYYHH9=I!dMHGmPncI)@IU zRr|HCAn&J*k%^4QUca+lV#Kw}pSmm2#F&e8-AL@obYtJx(L?lTsiU91(Zf$JMr

  • ozM*cR!tz-r%pk;bf>7ZHaYS?riEi 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 z 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

    +/// The endpoint to interface with Koreader's Progress Sync plugin. +/// +/// +/// Koreader uses a different form of athentication. It stores the user name +/// and password in headers. +/// +/// +[AllowAnonymous] +public class KoreaderController : BaseApiController +{ + + private readonly IUnitOfWork _unitOfWork; + private readonly ILocalizationService _localizationService; + private readonly IKoreaderService _koreaderService; + private readonly ILogger _logger; + + public KoreaderController(IUnitOfWork unitOfWork, ILocalizationService localizationService, + IKoreaderService koreaderService, ILogger logger) + { + _unitOfWork = unitOfWork; + _localizationService = localizationService; + _koreaderService = koreaderService; + _logger = logger; + } + + // We won't allow users to be created from Koreader. Rather, they + // must already have an account. + /* + [HttpPost("/users/create")] + public IActionResult CreateUser(CreateUserRequest request) + { + } + */ + + [HttpGet("{apiKey}/users/auth")] + public async Task Authenticate(string apiKey) + { + var userId = await GetUserId(apiKey); + var user = await _unitOfWork.UserRepository.GetUserByIdAsync(userId); + + return Ok(new { username = user.UserName }); + } + + + [HttpPut("{apiKey}/syncs/progress")] + public async Task UpdateProgress(string apiKey, KoreaderBookDto request) + { + _logger.LogDebug("Koreader sync progress: {Progress}", request.Progress); + var userId = await GetUserId(apiKey); + await _koreaderService.SaveProgress(request, userId); + + return Ok(new { document = request.Document, timestamp = DateTime.UtcNow }); + } + + [HttpGet("{apiKey}/syncs/progress/{ebookHash}")] + public async Task GetProgress(string apiKey, string ebookHash) + { + var userId = await GetUserId(apiKey); + var response = await _koreaderService.GetProgress(ebookHash, userId); + _logger.LogDebug("Koreader response progress: {Progress}", response.Progress); + + return Ok(response); + } + + + /// + /// Gets the user from the API key + /// + /// The user's Id + private async Task GetUserId(string apiKey) + { + try + { + return await _unitOfWork.UserRepository.GetUserIdByApiKeyAsync(apiKey); + } + catch + { + throw new KavitaException(await _localizationService.Get("en", "user-doesnt-exist")); + } + } +} diff --git a/API/DTOs/Koreader/KoreaderBookDto.cs b/API/DTOs/Koreader/KoreaderBookDto.cs new file mode 100644 index 000000000..b66b7da3a --- /dev/null +++ b/API/DTOs/Koreader/KoreaderBookDto.cs @@ -0,0 +1,33 @@ +using API.DTOs.Progress; + +namespace API.DTOs.Koreader; + +/// +/// This is the interface for receiving and sending updates to Koreader. The only fields +/// that are actually used are the Document and Progress fields. +/// +public class KoreaderBookDto +{ + /// + /// This is the Koreader hash of the book. It is used to identify the book. + /// + public string Document { get; set; } + /// + /// A randomly generated id from the koreader device. Only used to maintain the Koreader interface. + /// + public string Device_id { get; set; } + /// + /// The Koreader device name. Only used to maintain the Koreader interface. + /// + public string Device { get; set; } + /// + /// Percent progress of the book. Only used to maintain the Koreader interface. + /// + public float Percentage { get; set; } + /// + /// An XPath string read by Koreader to determine the location within the epub. + /// Essentially, it is Koreader's equivalent to ProgressDto.BookScrollId. + /// + /// + public string Progress { get; set; } +} diff --git a/API/Data/Migrations/20240914041512_KoreaderHash.Designer.cs b/API/Data/Migrations/20240914041512_KoreaderHash.Designer.cs new file mode 100644 index 000000000..be1880176 --- /dev/null +++ b/API/Data/Migrations/20240914041512_KoreaderHash.Designer.cs @@ -0,0 +1,3148 @@ +// +using System; +using API.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace API.Data.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20240914041512_KoreaderHash")] + partial class KoreaderHash + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "8.0.8"); + + modelBuilder.Entity("API.Entities.AppRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("TEXT"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("API.Entities.AppUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AccessFailedCount") + .HasColumnType("INTEGER"); + + b.Property("AgeRestriction") + .HasColumnType("INTEGER"); + + b.Property("AgeRestrictionIncludeUnknowns") + .HasColumnType("INTEGER"); + + b.Property("AniListAccessToken") + .HasColumnType("TEXT"); + + b.Property("ApiKey") + .HasColumnType("TEXT"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("TEXT"); + + b.Property("ConfirmationToken") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("EmailConfirmed") + .HasColumnType("INTEGER"); + + b.Property("LastActive") + .HasColumnType("TEXT"); + + b.Property("LastActiveUtc") + .HasColumnType("TEXT"); + + b.Property("LockoutEnabled") + .HasColumnType("INTEGER"); + + b.Property("LockoutEnd") + .HasColumnType("TEXT"); + + b.Property("MalAccessToken") + .HasColumnType("TEXT"); + + b.Property("MalUserName") + .HasColumnType("TEXT"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("PasswordHash") + .HasColumnType("TEXT"); + + b.Property("PhoneNumber") + .HasColumnType("TEXT"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("INTEGER"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .HasColumnType("INTEGER"); + + b.Property("SecurityStamp") + .HasColumnType("TEXT"); + + b.Property("TwoFactorEnabled") + .HasColumnType("INTEGER"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex"); + + b.ToTable("AspNetUsers", (string)null); + }); + + modelBuilder.Entity("API.Entities.AppUserBookmark", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("FileName") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("Page") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserBookmark"); + }); + + modelBuilder.Entity("API.Entities.AppUserCollection", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRating") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LastSyncUtc") + .HasColumnType("TEXT"); + + b.Property("MissingSeriesFromSource") + .HasColumnType("TEXT"); + + b.Property("NormalizedTitle") + .HasColumnType("TEXT"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("Promoted") + .HasColumnType("INTEGER"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("Source") + .HasColumnType("INTEGER"); + + b.Property("SourceUrl") + .HasColumnType("TEXT"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("TotalSourceCount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserCollection"); + }); + + modelBuilder.Entity("API.Entities.AppUserDashboardStream", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("IsProvided") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Order") + .HasColumnType("INTEGER"); + + b.Property("SmartFilterId") + .HasColumnType("INTEGER"); + + b.Property("StreamType") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(4); + + b.Property("Visible") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SmartFilterId"); + + b.HasIndex("Visible"); + + b.ToTable("AppUserDashboardStream"); + }); + + modelBuilder.Entity("API.Entities.AppUserExternalSource", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ApiKey") + .HasColumnType("TEXT"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Host") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserExternalSource"); + }); + + modelBuilder.Entity("API.Entities.AppUserOnDeckRemoval", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserOnDeckRemoval"); + }); + + modelBuilder.Entity("API.Entities.AppUserPreferences", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("AutoCloseMenu") + .HasColumnType("INTEGER"); + + b.Property("BackgroundColor") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("#000000"); + + b.Property("BlurUnreadSummaries") + .HasColumnType("INTEGER"); + + b.Property("BookReaderFontFamily") + .HasColumnType("TEXT"); + + b.Property("BookReaderFontSize") + .HasColumnType("INTEGER"); + + b.Property("BookReaderImmersiveMode") + .HasColumnType("INTEGER"); + + b.Property("BookReaderLayoutMode") + .HasColumnType("INTEGER"); + + b.Property("BookReaderLineSpacing") + .HasColumnType("INTEGER"); + + b.Property("BookReaderMargin") + .HasColumnType("INTEGER"); + + b.Property("BookReaderReadingDirection") + .HasColumnType("INTEGER"); + + b.Property("BookReaderTapToPaginate") + .HasColumnType("INTEGER"); + + b.Property("BookReaderWritingStyle") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property("BookThemeName") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("Dark"); + + b.Property("CollapseSeriesRelationships") + .HasColumnType("INTEGER"); + + b.Property("EmulateBook") + .HasColumnType("INTEGER"); + + b.Property("GlobalPageLayoutMode") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property("LayoutMode") + .HasColumnType("INTEGER"); + + b.Property("Locale") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("en"); + + b.Property("NoTransitions") + .HasColumnType("INTEGER"); + + b.Property("PageSplitOption") + .HasColumnType("INTEGER"); + + b.Property("PdfScrollMode") + .HasColumnType("INTEGER"); + + b.Property("PdfSpreadMode") + .HasColumnType("INTEGER"); + + b.Property("PdfTheme") + .HasColumnType("INTEGER"); + + b.Property("PromptForDownloadSize") + .HasColumnType("INTEGER"); + + b.Property("ReaderMode") + .HasColumnType("INTEGER"); + + b.Property("ReadingDirection") + .HasColumnType("INTEGER"); + + b.Property("ScalingOption") + .HasColumnType("INTEGER"); + + b.Property("ShareReviews") + .HasColumnType("INTEGER"); + + b.Property("ShowScreenHints") + .HasColumnType("INTEGER"); + + b.Property("SwipeToPaginate") + .HasColumnType("INTEGER"); + + b.Property("ThemeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId") + .IsUnique(); + + b.HasIndex("ThemeId"); + + b.ToTable("AppUserPreferences"); + }); + + modelBuilder.Entity("API.Entities.AppUserProgress", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("BookScrollId") + .HasColumnType("TEXT"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("PagesRead") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("ChapterId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserProgresses"); + }); + + modelBuilder.Entity("API.Entities.AppUserRating", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("HasBeenRated") + .HasColumnType("INTEGER"); + + b.Property("Rating") + .HasColumnType("REAL"); + + b.Property("Review") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("Tagline") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserRating"); + }); + + modelBuilder.Entity("API.Entities.AppUserRole", b => + { + b.Property("UserId") + .HasColumnType("INTEGER"); + + b.Property("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("API.Entities.AppUserSideNavStream", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("ExternalSourceId") + .HasColumnType("INTEGER"); + + b.Property("IsProvided") + .HasColumnType("INTEGER"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Order") + .HasColumnType("INTEGER"); + + b.Property("SmartFilterId") + .HasColumnType("INTEGER"); + + b.Property("StreamType") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(5); + + b.Property("Visible") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SmartFilterId"); + + b.HasIndex("Visible"); + + b.ToTable("AppUserSideNavStream"); + }); + + modelBuilder.Entity("API.Entities.AppUserSmartFilter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Filter") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserSmartFilter"); + }); + + modelBuilder.Entity("API.Entities.AppUserTableOfContent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("BookScrollId") + .HasColumnType("TEXT"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("PageNumber") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("ChapterId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserTableOfContent"); + }); + + modelBuilder.Entity("API.Entities.AppUserWantToRead", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserWantToRead"); + }); + + modelBuilder.Entity("API.Entities.Chapter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRating") + .HasColumnType("INTEGER"); + + b.Property("AgeRatingLocked") + .HasColumnType("INTEGER"); + + b.Property("AlternateCount") + .HasColumnType("INTEGER"); + + b.Property("AlternateNumber") + .HasColumnType("TEXT"); + + b.Property("AlternateSeries") + .HasColumnType("TEXT"); + + b.Property("AvgHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("CharacterLocked") + .HasColumnType("INTEGER"); + + b.Property("ColoristLocked") + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("CoverArtistLocked") + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("EditorLocked") + .HasColumnType("INTEGER"); + + b.Property("GenresLocked") + .HasColumnType("INTEGER"); + + b.Property("ISBN") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue(""); + + b.Property("ISBNLocked") + .HasColumnType("INTEGER"); + + b.Property("ImprintLocked") + .HasColumnType("INTEGER"); + + b.Property("InkerLocked") + .HasColumnType("INTEGER"); + + b.Property("IsSpecial") + .HasColumnType("INTEGER"); + + b.Property("Language") + .HasColumnType("TEXT"); + + b.Property("LanguageLocked") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LettererLocked") + .HasColumnType("INTEGER"); + + b.Property("LocationLocked") + .HasColumnType("INTEGER"); + + b.Property("MaxHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MaxNumber") + .HasColumnType("REAL"); + + b.Property("MinHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MinNumber") + .HasColumnType("REAL"); + + b.Property("Number") + .HasColumnType("TEXT"); + + b.Property("Pages") + .HasColumnType("INTEGER"); + + b.Property("PencillerLocked") + .HasColumnType("INTEGER"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("PublisherLocked") + .HasColumnType("INTEGER"); + + b.Property("Range") + .HasColumnType("TEXT"); + + b.Property("ReleaseDate") + .HasColumnType("TEXT"); + + b.Property("ReleaseDateLocked") + .HasColumnType("INTEGER"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("SeriesGroup") + .HasColumnType("TEXT"); + + b.Property("SortOrder") + .HasColumnType("REAL"); + + b.Property("SortOrderLocked") + .HasColumnType("INTEGER"); + + b.Property("StoryArc") + .HasColumnType("TEXT"); + + b.Property("StoryArcNumber") + .HasColumnType("TEXT"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("SummaryLocked") + .HasColumnType("INTEGER"); + + b.Property("TagsLocked") + .HasColumnType("INTEGER"); + + b.Property("TeamLocked") + .HasColumnType("INTEGER"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("TitleName") + .HasColumnType("TEXT"); + + b.Property("TitleNameLocked") + .HasColumnType("INTEGER"); + + b.Property("TotalCount") + .HasColumnType("INTEGER"); + + b.Property("TranslatorLocked") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.Property("WebLinks") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue(""); + + b.Property("WordCount") + .HasColumnType("INTEGER"); + + b.Property("WriterLocked") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("VolumeId"); + + b.ToTable("Chapter"); + }); + + modelBuilder.Entity("API.Entities.CollectionTag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("NormalizedTitle") + .HasColumnType("TEXT"); + + b.Property("Promoted") + .HasColumnType("INTEGER"); + + b.Property("RowVersion") + .HasColumnType("INTEGER"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Id", "Promoted") + .IsUnique(); + + b.ToTable("CollectionTag"); + }); + + modelBuilder.Entity("API.Entities.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("EmailAddress") + .HasColumnType("TEXT"); + + b.Property("IpAddress") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LastUsed") + .HasColumnType("TEXT"); + + b.Property("LastUsedUtc") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Platform") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("Device"); + }); + + modelBuilder.Entity("API.Entities.FolderPath", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LastScanned") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("Path") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("FolderPath"); + }); + + modelBuilder.Entity("API.Entities.Genre", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("NormalizedTitle") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedTitle") + .IsUnique(); + + b.ToTable("Genre"); + }); + + modelBuilder.Entity("API.Entities.Library", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AllowScrobbling") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("FolderWatching") + .HasColumnType("INTEGER"); + + b.Property("IncludeInDashboard") + .HasColumnType("INTEGER"); + + b.Property("IncludeInRecommended") + .HasColumnType("INTEGER"); + + b.Property("IncludeInSearch") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LastScanned") + .HasColumnType("TEXT"); + + b.Property("ManageCollections") + .HasColumnType("INTEGER"); + + b.Property("ManageReadingLists") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Library"); + }); + + modelBuilder.Entity("API.Entities.LibraryExcludePattern", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("Pattern") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("LibraryExcludePattern"); + }); + + modelBuilder.Entity("API.Entities.LibraryFileTypeGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("FileTypeGroup") + .HasColumnType("INTEGER"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("LibraryFileTypeGroup"); + }); + + modelBuilder.Entity("API.Entities.MangaFile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Bytes") + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Extension") + .HasColumnType("TEXT"); + + b.Property("FileName") + .HasColumnType("TEXT"); + + b.Property("FilePath") + .HasColumnType("TEXT"); + + b.Property("Format") + .HasColumnType("INTEGER"); + + b.Property("KoreaderHash") + .HasColumnType("TEXT"); + + b.Property("LastFileAnalysis") + .HasColumnType("TEXT"); + + b.Property("LastFileAnalysisUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("Pages") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChapterId"); + + b.ToTable("MangaFile"); + }); + + modelBuilder.Entity("API.Entities.ManualMigrationHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("ProductVersion") + .HasColumnType("TEXT"); + + b.Property("RanAt") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("ManualMigrationHistory"); + }); + + modelBuilder.Entity("API.Entities.MediaError", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Comment") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Details") + .HasColumnType("TEXT"); + + b.Property("Extension") + .HasColumnType("TEXT"); + + b.Property("FilePath") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("MediaError"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalRating", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AverageScore") + .HasColumnType("INTEGER"); + + b.Property("FavoriteCount") + .HasColumnType("INTEGER"); + + b.Property("Provider") + .HasColumnType("INTEGER"); + + b.Property("ProviderUrl") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("ExternalRating"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalRecommendation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AniListId") + .HasColumnType("INTEGER"); + + b.Property("CoverUrl") + .HasColumnType("TEXT"); + + b.Property("MalId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Provider") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("Url") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId"); + + b.ToTable("ExternalRecommendation"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalReview", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Body") + .HasColumnType("TEXT"); + + b.Property("BodyJustText") + .HasColumnType("TEXT"); + + b.Property("Provider") + .HasColumnType("INTEGER"); + + b.Property("Rating") + .HasColumnType("INTEGER"); + + b.Property("RawBody") + .HasColumnType("TEXT"); + + b.Property("Score") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("SiteUrl") + .HasColumnType("TEXT"); + + b.Property("Tagline") + .HasColumnType("TEXT"); + + b.Property("TotalVotes") + .HasColumnType("INTEGER"); + + b.Property("Username") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("ExternalReview"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalSeriesMetadata", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AniListId") + .HasColumnType("INTEGER"); + + b.Property("AverageExternalRating") + .HasColumnType("INTEGER"); + + b.Property("GoogleBooksId") + .HasColumnType("TEXT"); + + b.Property("MalId") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("ValidUntilUtc") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId") + .IsUnique(); + + b.ToTable("ExternalSeriesMetadata"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesBlacklist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LastChecked") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId"); + + b.ToTable("SeriesBlacklist"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRating") + .HasColumnType("INTEGER"); + + b.Property("AgeRatingLocked") + .HasColumnType("INTEGER"); + + b.Property("CharacterLocked") + .HasColumnType("INTEGER"); + + b.Property("ColoristLocked") + .HasColumnType("INTEGER"); + + b.Property("CoverArtistLocked") + .HasColumnType("INTEGER"); + + b.Property("EditorLocked") + .HasColumnType("INTEGER"); + + b.Property("GenresLocked") + .HasColumnType("INTEGER"); + + b.Property("ImprintLocked") + .HasColumnType("INTEGER"); + + b.Property("InkerLocked") + .HasColumnType("INTEGER"); + + b.Property("Language") + .HasColumnType("TEXT"); + + b.Property("LanguageLocked") + .HasColumnType("INTEGER"); + + b.Property("LettererLocked") + .HasColumnType("INTEGER"); + + b.Property("LocationLocked") + .HasColumnType("INTEGER"); + + b.Property("MaxCount") + .HasColumnType("INTEGER"); + + b.Property("PencillerLocked") + .HasColumnType("INTEGER"); + + b.Property("PublicationStatus") + .HasColumnType("INTEGER"); + + b.Property("PublicationStatusLocked") + .HasColumnType("INTEGER"); + + b.Property("PublisherLocked") + .HasColumnType("INTEGER"); + + b.Property("ReleaseYear") + .HasColumnType("INTEGER"); + + b.Property("ReleaseYearLocked") + .HasColumnType("INTEGER"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("SummaryLocked") + .HasColumnType("INTEGER"); + + b.Property("TagsLocked") + .HasColumnType("INTEGER"); + + b.Property("TeamLocked") + .HasColumnType("INTEGER"); + + b.Property("TotalCount") + .HasColumnType("INTEGER"); + + b.Property("TranslatorLocked") + .HasColumnType("INTEGER"); + + b.Property("WebLinks") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue(""); + + b.Property("WriterLocked") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId") + .IsUnique(); + + b.HasIndex("Id", "SeriesId") + .IsUnique(); + + b.ToTable("SeriesMetadata"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesRelation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("RelationKind") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("TargetSeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId"); + + b.HasIndex("TargetSeriesId"); + + b.ToTable("SeriesRelation"); + }); + + modelBuilder.Entity("API.Entities.Person", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasColumnType("TEXT"); + + b.Property("Role") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Person"); + }); + + modelBuilder.Entity("API.Entities.ReadingList", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRating") + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("EndingMonth") + .HasColumnType("INTEGER"); + + b.Property("EndingYear") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("NormalizedTitle") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("Promoted") + .HasColumnType("INTEGER"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("StartingMonth") + .HasColumnType("INTEGER"); + + b.Property("StartingYear") + .HasColumnType("INTEGER"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("Title") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("ReadingList"); + }); + + modelBuilder.Entity("API.Entities.ReadingListItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Order") + .HasColumnType("INTEGER"); + + b.Property("ReadingListId") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChapterId"); + + b.HasIndex("ReadingListId"); + + b.HasIndex("SeriesId"); + + b.HasIndex("VolumeId"); + + b.ToTable("ReadingListItem"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleError", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Comment") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Details") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("ScrobbleEventId") + .HasColumnType("INTEGER"); + + b.Property("ScrobbleEventId1") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ScrobbleEventId1"); + + b.HasIndex("SeriesId"); + + b.ToTable("ScrobbleError"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleEvent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AniListId") + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("ChapterNumber") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("ErrorDetails") + .HasColumnType("TEXT"); + + b.Property("Format") + .HasColumnType("INTEGER"); + + b.Property("IsErrored") + .HasColumnType("INTEGER"); + + b.Property("IsProcessed") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("MalId") + .HasColumnType("INTEGER"); + + b.Property("ProcessDateUtc") + .HasColumnType("TEXT"); + + b.Property("Rating") + .HasColumnType("REAL"); + + b.Property("ReviewBody") + .HasColumnType("TEXT"); + + b.Property("ReviewTitle") + .HasColumnType("TEXT"); + + b.Property("ScrobbleEventType") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeNumber") + .HasColumnType("REAL"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("LibraryId"); + + b.HasIndex("SeriesId"); + + b.ToTable("ScrobbleEvent"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleHold", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SeriesId"); + + b.ToTable("ScrobbleHold"); + }); + + modelBuilder.Entity("API.Entities.Series", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AvgHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("FolderPath") + .HasColumnType("TEXT"); + + b.Property("Format") + .HasColumnType("INTEGER"); + + b.Property("LastChapterAdded") + .HasColumnType("TEXT"); + + b.Property("LastChapterAddedUtc") + .HasColumnType("TEXT"); + + b.Property("LastFolderScanned") + .HasColumnType("TEXT"); + + b.Property("LastFolderScannedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("LocalizedName") + .HasColumnType("TEXT"); + + b.Property("LocalizedNameLocked") + .HasColumnType("INTEGER"); + + b.Property("LowestFolderPath") + .HasColumnType("TEXT"); + + b.Property("MaxHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MinHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("NormalizedLocalizedName") + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasColumnType("TEXT"); + + b.Property("OriginalName") + .HasColumnType("TEXT"); + + b.Property("Pages") + .HasColumnType("INTEGER"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("SortName") + .HasColumnType("TEXT"); + + b.Property("SortNameLocked") + .HasColumnType("INTEGER"); + + b.Property("WordCount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("Series"); + }); + + modelBuilder.Entity("API.Entities.ServerSetting", b => + { + b.Property("Key") + .HasColumnType("INTEGER"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .HasColumnType("INTEGER"); + + b.Property("Value") + .HasColumnType("TEXT"); + + b.HasKey("Key"); + + b.ToTable("ServerSetting"); + }); + + modelBuilder.Entity("API.Entities.ServerStatistics", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ChapterCount") + .HasColumnType("INTEGER"); + + b.Property("FileCount") + .HasColumnType("INTEGER"); + + b.Property("GenreCount") + .HasColumnType("INTEGER"); + + b.Property("PersonCount") + .HasColumnType("INTEGER"); + + b.Property("SeriesCount") + .HasColumnType("INTEGER"); + + b.Property("TagCount") + .HasColumnType("INTEGER"); + + b.Property("UserCount") + .HasColumnType("INTEGER"); + + b.Property("VolumeCount") + .HasColumnType("INTEGER"); + + b.Property("Year") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("ServerStatistics"); + }); + + modelBuilder.Entity("API.Entities.SiteTheme", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Author") + .HasColumnType("TEXT"); + + b.Property("CompatibleVersion") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Description") + .HasColumnType("TEXT"); + + b.Property("FileName") + .HasColumnType("TEXT"); + + b.Property("GitHubPath") + .HasColumnType("TEXT"); + + b.Property("IsDefault") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasColumnType("TEXT"); + + b.Property("PreviewUrls") + .HasColumnType("TEXT"); + + b.Property("Provider") + .HasColumnType("INTEGER"); + + b.Property("ShaHash") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("SiteTheme"); + }); + + modelBuilder.Entity("API.Entities.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("NormalizedTitle") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedTitle") + .IsUnique(); + + b.ToTable("Tag"); + }); + + modelBuilder.Entity("API.Entities.Volume", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AvgHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LookupName") + .HasColumnType("TEXT"); + + b.Property("MaxHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MaxNumber") + .HasColumnType("REAL"); + + b.Property("MinHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MinNumber") + .HasColumnType("REAL"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Number") + .HasColumnType("INTEGER"); + + b.Property("Pages") + .HasColumnType("INTEGER"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("WordCount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId"); + + b.ToTable("Volume"); + }); + + modelBuilder.Entity("AppUserCollectionSeries", b => + { + b.Property("CollectionsId") + .HasColumnType("INTEGER"); + + b.Property("ItemsId") + .HasColumnType("INTEGER"); + + b.HasKey("CollectionsId", "ItemsId"); + + b.HasIndex("ItemsId"); + + b.ToTable("AppUserCollectionSeries"); + }); + + modelBuilder.Entity("AppUserLibrary", b => + { + b.Property("AppUsersId") + .HasColumnType("INTEGER"); + + b.Property("LibrariesId") + .HasColumnType("INTEGER"); + + b.HasKey("AppUsersId", "LibrariesId"); + + b.HasIndex("LibrariesId"); + + b.ToTable("AppUserLibrary"); + }); + + modelBuilder.Entity("ChapterGenre", b => + { + b.Property("ChaptersId") + .HasColumnType("INTEGER"); + + b.Property("GenresId") + .HasColumnType("INTEGER"); + + b.HasKey("ChaptersId", "GenresId"); + + b.HasIndex("GenresId"); + + b.ToTable("ChapterGenre"); + }); + + modelBuilder.Entity("ChapterPerson", b => + { + b.Property("ChapterMetadatasId") + .HasColumnType("INTEGER"); + + b.Property("PeopleId") + .HasColumnType("INTEGER"); + + b.HasKey("ChapterMetadatasId", "PeopleId"); + + b.HasIndex("PeopleId"); + + b.ToTable("ChapterPerson"); + }); + + modelBuilder.Entity("ChapterTag", b => + { + b.Property("ChaptersId") + .HasColumnType("INTEGER"); + + b.Property("TagsId") + .HasColumnType("INTEGER"); + + b.HasKey("ChaptersId", "TagsId"); + + b.HasIndex("TagsId"); + + b.ToTable("ChapterTag"); + }); + + modelBuilder.Entity("CollectionTagSeriesMetadata", b => + { + b.Property("CollectionTagsId") + .HasColumnType("INTEGER"); + + b.Property("SeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("CollectionTagsId", "SeriesMetadatasId"); + + b.HasIndex("SeriesMetadatasId"); + + b.ToTable("CollectionTagSeriesMetadata"); + }); + + modelBuilder.Entity("ExternalRatingExternalSeriesMetadata", b => + { + b.Property("ExternalRatingsId") + .HasColumnType("INTEGER"); + + b.Property("ExternalSeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("ExternalRatingsId", "ExternalSeriesMetadatasId"); + + b.HasIndex("ExternalSeriesMetadatasId"); + + b.ToTable("ExternalRatingExternalSeriesMetadata"); + }); + + modelBuilder.Entity("ExternalRecommendationExternalSeriesMetadata", b => + { + b.Property("ExternalRecommendationsId") + .HasColumnType("INTEGER"); + + b.Property("ExternalSeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("ExternalRecommendationsId", "ExternalSeriesMetadatasId"); + + b.HasIndex("ExternalSeriesMetadatasId"); + + b.ToTable("ExternalRecommendationExternalSeriesMetadata"); + }); + + modelBuilder.Entity("ExternalReviewExternalSeriesMetadata", b => + { + b.Property("ExternalReviewsId") + .HasColumnType("INTEGER"); + + b.Property("ExternalSeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("ExternalReviewsId", "ExternalSeriesMetadatasId"); + + b.HasIndex("ExternalSeriesMetadatasId"); + + b.ToTable("ExternalReviewExternalSeriesMetadata"); + }); + + modelBuilder.Entity("GenreSeriesMetadata", b => + { + b.Property("GenresId") + .HasColumnType("INTEGER"); + + b.Property("SeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("GenresId", "SeriesMetadatasId"); + + b.HasIndex("SeriesMetadatasId"); + + b.ToTable("GenreSeriesMetadata"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ClaimType") + .HasColumnType("TEXT"); + + b.Property("ClaimValue") + .HasColumnType("TEXT"); + + b.Property("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ClaimType") + .HasColumnType("TEXT"); + + b.Property("ClaimValue") + .HasColumnType("TEXT"); + + b.Property("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("TEXT"); + + b.Property("ProviderKey") + .HasColumnType("TEXT"); + + b.Property("ProviderDisplayName") + .HasColumnType("TEXT"); + + b.Property("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("INTEGER"); + + b.Property("LoginProvider") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Value") + .HasColumnType("TEXT"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("PersonSeriesMetadata", b => + { + b.Property("PeopleId") + .HasColumnType("INTEGER"); + + b.Property("SeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("PeopleId", "SeriesMetadatasId"); + + b.HasIndex("SeriesMetadatasId"); + + b.ToTable("PersonSeriesMetadata"); + }); + + modelBuilder.Entity("SeriesMetadataTag", b => + { + b.Property("SeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.Property("TagsId") + .HasColumnType("INTEGER"); + + b.HasKey("SeriesMetadatasId", "TagsId"); + + b.HasIndex("TagsId"); + + b.ToTable("SeriesMetadataTag"); + }); + + modelBuilder.Entity("API.Entities.AppUserBookmark", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Bookmarks") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserCollection", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Collections") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserDashboardStream", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("DashboardStreams") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.AppUserSmartFilter", "SmartFilter") + .WithMany() + .HasForeignKey("SmartFilterId"); + + b.Navigation("AppUser"); + + b.Navigation("SmartFilter"); + }); + + modelBuilder.Entity("API.Entities.AppUserExternalSource", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("ExternalSources") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserOnDeckRemoval", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany() + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.AppUserPreferences", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithOne("UserPreferences") + .HasForeignKey("API.Entities.AppUserPreferences", "AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.SiteTheme", "Theme") + .WithMany() + .HasForeignKey("ThemeId"); + + b.Navigation("AppUser"); + + b.Navigation("Theme"); + }); + + modelBuilder.Entity("API.Entities.AppUserProgress", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Progresses") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Chapter", null) + .WithMany("UserProgress") + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", null) + .WithMany("Progress") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserRating", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Ratings") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany("Ratings") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.AppUserRole", b => + { + b.HasOne("API.Entities.AppRole", "Role") + .WithMany("UserRoles") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.AppUser", "User") + .WithMany("UserRoles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Role"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("API.Entities.AppUserSideNavStream", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("SideNavStreams") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.AppUserSmartFilter", "SmartFilter") + .WithMany() + .HasForeignKey("SmartFilterId"); + + b.Navigation("AppUser"); + + b.Navigation("SmartFilter"); + }); + + modelBuilder.Entity("API.Entities.AppUserSmartFilter", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("SmartFilters") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserTableOfContent", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("TableOfContents") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany() + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Chapter"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.AppUserWantToRead", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("WantToRead") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Chapter", b => + { + b.HasOne("API.Entities.Volume", "Volume") + .WithMany("Chapters") + .HasForeignKey("VolumeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Volume"); + }); + + modelBuilder.Entity("API.Entities.Device", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Devices") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.FolderPath", b => + { + b.HasOne("API.Entities.Library", "Library") + .WithMany("Folders") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("API.Entities.LibraryExcludePattern", b => + { + b.HasOne("API.Entities.Library", "Library") + .WithMany("LibraryExcludePatterns") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("API.Entities.LibraryFileTypeGroup", b => + { + b.HasOne("API.Entities.Library", "Library") + .WithMany("LibraryFileTypes") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("API.Entities.MangaFile", b => + { + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany("Files") + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Chapter"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalSeriesMetadata", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithOne("ExternalSeriesMetadata") + .HasForeignKey("API.Entities.Metadata.ExternalSeriesMetadata", "SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesBlacklist", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithOne("Metadata") + .HasForeignKey("API.Entities.Metadata.SeriesMetadata", "SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesRelation", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithMany("Relations") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "TargetSeries") + .WithMany("RelationOf") + .HasForeignKey("TargetSeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + + b.Navigation("TargetSeries"); + }); + + modelBuilder.Entity("API.Entities.ReadingList", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("ReadingLists") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.ReadingListItem", b => + { + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany() + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.ReadingList", "ReadingList") + .WithMany("Items") + .HasForeignKey("ReadingListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Volume", "Volume") + .WithMany() + .HasForeignKey("VolumeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Chapter"); + + b.Navigation("ReadingList"); + + b.Navigation("Series"); + + b.Navigation("Volume"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleError", b => + { + b.HasOne("API.Entities.Scrobble.ScrobbleEvent", "ScrobbleEvent") + .WithMany() + .HasForeignKey("ScrobbleEventId1"); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ScrobbleEvent"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleEvent", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany() + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Library", "Library") + .WithMany() + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Library"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleHold", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("ScrobbleHolds") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Series", b => + { + b.HasOne("API.Entities.Library", "Library") + .WithMany("Series") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("API.Entities.Volume", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithMany("Volumes") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("AppUserCollectionSeries", b => + { + b.HasOne("API.Entities.AppUserCollection", null) + .WithMany() + .HasForeignKey("CollectionsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", null) + .WithMany() + .HasForeignKey("ItemsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AppUserLibrary", b => + { + b.HasOne("API.Entities.AppUser", null) + .WithMany() + .HasForeignKey("AppUsersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Library", null) + .WithMany() + .HasForeignKey("LibrariesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ChapterGenre", b => + { + b.HasOne("API.Entities.Chapter", null) + .WithMany() + .HasForeignKey("ChaptersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Genre", null) + .WithMany() + .HasForeignKey("GenresId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ChapterPerson", b => + { + b.HasOne("API.Entities.Chapter", null) + .WithMany() + .HasForeignKey("ChapterMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Person", null) + .WithMany() + .HasForeignKey("PeopleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ChapterTag", b => + { + b.HasOne("API.Entities.Chapter", null) + .WithMany() + .HasForeignKey("ChaptersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Tag", null) + .WithMany() + .HasForeignKey("TagsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("CollectionTagSeriesMetadata", b => + { + b.HasOne("API.Entities.CollectionTag", null) + .WithMany() + .HasForeignKey("CollectionTagsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.SeriesMetadata", null) + .WithMany() + .HasForeignKey("SeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ExternalRatingExternalSeriesMetadata", b => + { + b.HasOne("API.Entities.Metadata.ExternalRating", null) + .WithMany() + .HasForeignKey("ExternalRatingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) + .WithMany() + .HasForeignKey("ExternalSeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ExternalRecommendationExternalSeriesMetadata", b => + { + b.HasOne("API.Entities.Metadata.ExternalRecommendation", null) + .WithMany() + .HasForeignKey("ExternalRecommendationsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) + .WithMany() + .HasForeignKey("ExternalSeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ExternalReviewExternalSeriesMetadata", b => + { + b.HasOne("API.Entities.Metadata.ExternalReview", null) + .WithMany() + .HasForeignKey("ExternalReviewsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) + .WithMany() + .HasForeignKey("ExternalSeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("GenreSeriesMetadata", b => + { + b.HasOne("API.Entities.Genre", null) + .WithMany() + .HasForeignKey("GenresId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.SeriesMetadata", null) + .WithMany() + .HasForeignKey("SeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("API.Entities.AppRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("API.Entities.AppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("API.Entities.AppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("API.Entities.AppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("PersonSeriesMetadata", b => + { + b.HasOne("API.Entities.Person", null) + .WithMany() + .HasForeignKey("PeopleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.SeriesMetadata", null) + .WithMany() + .HasForeignKey("SeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("SeriesMetadataTag", b => + { + b.HasOne("API.Entities.Metadata.SeriesMetadata", null) + .WithMany() + .HasForeignKey("SeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Tag", null) + .WithMany() + .HasForeignKey("TagsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("API.Entities.AppRole", b => + { + b.Navigation("UserRoles"); + }); + + modelBuilder.Entity("API.Entities.AppUser", b => + { + b.Navigation("Bookmarks"); + + b.Navigation("Collections"); + + b.Navigation("DashboardStreams"); + + b.Navigation("Devices"); + + b.Navigation("ExternalSources"); + + b.Navigation("Progresses"); + + b.Navigation("Ratings"); + + b.Navigation("ReadingLists"); + + b.Navigation("ScrobbleHolds"); + + b.Navigation("SideNavStreams"); + + b.Navigation("SmartFilters"); + + b.Navigation("TableOfContents"); + + b.Navigation("UserPreferences"); + + b.Navigation("UserRoles"); + + b.Navigation("WantToRead"); + }); + + modelBuilder.Entity("API.Entities.Chapter", b => + { + b.Navigation("Files"); + + b.Navigation("UserProgress"); + }); + + modelBuilder.Entity("API.Entities.Library", b => + { + b.Navigation("Folders"); + + b.Navigation("LibraryExcludePatterns"); + + b.Navigation("LibraryFileTypes"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.ReadingList", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("API.Entities.Series", b => + { + b.Navigation("ExternalSeriesMetadata"); + + b.Navigation("Metadata"); + + b.Navigation("Progress"); + + b.Navigation("Ratings"); + + b.Navigation("RelationOf"); + + b.Navigation("Relations"); + + b.Navigation("Volumes"); + }); + + modelBuilder.Entity("API.Entities.Volume", b => + { + b.Navigation("Chapters"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/API/Data/Migrations/20240914041512_KoreaderHash.cs b/API/Data/Migrations/20240914041512_KoreaderHash.cs new file mode 100644 index 000000000..006070b72 --- /dev/null +++ b/API/Data/Migrations/20240914041512_KoreaderHash.cs @@ -0,0 +1,28 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace API.Data.Migrations +{ + /// + public partial class KoreaderHash : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "KoreaderHash", + table: "MangaFile", + type: "TEXT", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "KoreaderHash", + table: "MangaFile"); + } + } +} diff --git a/API/Data/Migrations/DataContextModelSnapshot.cs b/API/Data/Migrations/DataContextModelSnapshot.cs index ddcfeb10e..767351207 100644 --- a/API/Data/Migrations/DataContextModelSnapshot.cs +++ b/API/Data/Migrations/DataContextModelSnapshot.cs @@ -1174,6 +1174,9 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Format") .HasColumnType("INTEGER"); + b.Property("KoreaderHash") + .HasColumnType("TEXT"); + b.Property("LastFileAnalysis") .HasColumnType("TEXT"); diff --git a/API/Data/Repositories/MangaFileRepository.cs b/API/Data/Repositories/MangaFileRepository.cs index debd52199..bfd59aafb 100644 --- a/API/Data/Repositories/MangaFileRepository.cs +++ b/API/Data/Repositories/MangaFileRepository.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using API.Entities; @@ -10,6 +11,7 @@ public interface IMangaFileRepository { void Update(MangaFile file); Task> GetAllWithMissingExtension(); + Task GetByKoreaderHash(string hash); } public class MangaFileRepository : IMangaFileRepository @@ -32,4 +34,10 @@ public async Task> GetAllWithMissingExtension() .Where(f => string.IsNullOrEmpty(f.Extension)) .ToListAsync(); } + + public Task GetByKoreaderHash(string hash) + { + return _context.MangaFile + .FirstOrDefaultAsync(f => f.KoreaderHash == hash.ToUpper()); + } } diff --git a/API/Entities/MangaFile.cs b/API/Entities/MangaFile.cs index f104f4c72..74eb3bda6 100644 --- a/API/Entities/MangaFile.cs +++ b/API/Entities/MangaFile.cs @@ -1,4 +1,4 @@ - + using System; using System.IO; using API.Entities.Enums; @@ -21,6 +21,11 @@ public class MangaFile : IEntityDate /// public required string FilePath { get; set; } /// + /// A hash of the document using Koreader's unique hashing algorithm + /// KoreaderHash is only available for epub types + /// + public string? KoreaderHash { get; set; } + /// /// Number of pages for the given file /// public int Pages { get; set; } diff --git a/API/Extensions/ApplicationServiceExtensions.cs b/API/Extensions/ApplicationServiceExtensions.cs index 4b5c73af7..e10de3294 100644 --- a/API/Extensions/ApplicationServiceExtensions.cs +++ b/API/Extensions/ApplicationServiceExtensions.cs @@ -1,4 +1,4 @@ -using System.IO.Abstractions; +using System.IO.Abstractions; using API.Constants; using API.Data; using API.Helpers; @@ -54,6 +54,7 @@ public static void AddApplicationServices(this IServiceCollection services, ICon services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddScoped(); services.AddScoped(); diff --git a/API/Helpers/Builders/MangaFileBuilder.cs b/API/Helpers/Builders/MangaFileBuilder.cs index 5387a3349..b4f065fc9 100644 --- a/API/Helpers/Builders/MangaFileBuilder.cs +++ b/API/Helpers/Builders/MangaFileBuilder.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.IO; using API.Entities; using API.Entities.Enums; @@ -20,7 +20,7 @@ public MangaFileBuilder(string filePath, MangaFormat format, int pages = 0) Pages = pages, LastModified = File.GetLastWriteTime(filePath), LastModifiedUtc = File.GetLastWriteTimeUtc(filePath), - FileName = Parser.RemoveExtensionIfSupported(filePath) + FileName = Parser.RemoveExtensionIfSupported(filePath), }; } @@ -60,4 +60,14 @@ public MangaFileBuilder WithId(int id) _mangaFile.Id = Math.Max(id, 0); return this; } + + public MangaFileBuilder WithHash() + { + if (_mangaFile.Format == MangaFormat.Epub) + { + _mangaFile.KoreaderHash = KoreaderHelper.HashContents(_mangaFile.FilePath); + } + + return this; + } } diff --git a/API/Helpers/KoreaderHelper.cs b/API/Helpers/KoreaderHelper.cs new file mode 100644 index 000000000..22c882cfb --- /dev/null +++ b/API/Helpers/KoreaderHelper.cs @@ -0,0 +1,107 @@ +using API.DTOs.Koreader; +using API.DTOs.Progress; +using API.Services; +using System; +using System.IO; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Text.RegularExpressions; + +namespace API.Helpers; + +public static class KoreaderHelper +{ + /// + /// Hashes the document according to a custom Koreader hashing algorithm. + /// Look at the util.partialMD5 method in the attached link. + /// + /// The hashing algorithm is relatively quick as it only hashes ~10,000 bytes for the biggest of files. + /// + /// The path to the file to hash + public static string HashContents(string filePath) + { + if (string.IsNullOrEmpty(filePath)) + { + return null; + } + + using var file = File.OpenRead(filePath); + + var step = 1024; + var size = 1024; + MD5 md5 = MD5.Create(); + byte[] buffer = new byte[size]; + + for (var i = -1; i < 10; i++) + { + file.Position = step << 2 * i; + var bytesRead = file.Read(buffer, 0, size); + if (bytesRead > 0) + { + md5.TransformBlock(buffer, 0, bytesRead, buffer, 0); + } + else + { + break; + } + } + + file.Close(); + md5.TransformFinalBlock(new byte[0], 0, 0); + + return BitConverter.ToString(md5.Hash).Replace("-", string.Empty).ToUpper(); + + } + + /// + /// Koreader can identitfy documents based on contents or title. + /// For now we only support by contents. + /// + public static string HashTitle(string filePath) + { + var fileName = Path.GetFileName(filePath); + var fileNameBytes = Encoding.ASCII.GetBytes(fileName); + var bytes = MD5.HashData(fileNameBytes); + + return BitConverter.ToString(bytes).Replace("-", string.Empty); + } + + public static void UpdateProgressDto(string koreaderPosition, ProgressDto progress) + { + var path = koreaderPosition.Split('/'); + if (path.Length < 6) + { + return; + } + var docNumber = path[2].Replace("DocFragment[", string.Empty).Replace("]", string.Empty); + progress.PageNum = Int32.Parse(docNumber) - 1; + var lastTag = path[5].ToUpper(); + if (lastTag == "A") + { + progress.BookScrollId = null; + } + else + { + // The format that Kavita accpets as a progress string. It tells Kavita where Koreader last left off. + progress.BookScrollId = $"//html[1]/BODY/APP-ROOT[1]/DIV[1]/DIV[1]/DIV[1]/APP-BOOK-READER[1]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/{lastTag}"; + } + } + + + public static string GetKoreaderPosition(ProgressDto progressDto) + { + string lastTag; + var koreaderPageNumber = progressDto.PageNum + 1; + if (string.IsNullOrEmpty(progressDto.BookScrollId)) + { + lastTag = "a"; + } + else + { + lastTag = progressDto.BookScrollId.Split('/').Last().ToLower(); + } + // The format that Koreader accepts as a progress string. It tells Koreader where Kavita last left off. + return $"/body/DocFragment[{koreaderPageNumber}]/body/div/{lastTag}"; + } +} diff --git a/API/Services/KoreaderService.cs b/API/Services/KoreaderService.cs new file mode 100644 index 000000000..0b60b2f32 --- /dev/null +++ b/API/Services/KoreaderService.cs @@ -0,0 +1,60 @@ +using System.Threading.Tasks; +using API.Data; +using API.DTOs.Koreader; +using API.Helpers; +using Microsoft.Extensions.Logging; + +namespace API.Services; + +#nullable enable + +public interface IKoreaderService +{ + Task SaveProgress(KoreaderBookDto koreaderBookDto, int userId); + Task GetProgress(string bookHash, int userId); +} + +public class KoreaderService : IKoreaderService +{ + private IReaderService _readerService; + private IUnitOfWork _unitOfWork; + private ILogger _logger; + + public KoreaderService(IReaderService readerService, IUnitOfWork unitOfWork, + ILogger logger) + { + _readerService = readerService; + _unitOfWork = unitOfWork; + _logger = logger; + } + + public async Task SaveProgress(KoreaderBookDto koreaderBookDto, int userId) + { + var file = await _unitOfWork.MangaFileRepository.GetByKoreaderHash(koreaderBookDto.Document); + var userProgressDto = await _unitOfWork.AppUserProgressRepository.GetUserProgressDtoAsync(file.ChapterId, userId); + + _logger.LogInformation("Saving Koreader progress to Kavita: {KoreaderProgress}", koreaderBookDto.Progress); + KoreaderHelper.UpdateProgressDto(koreaderBookDto.Progress, userProgressDto); + await _readerService.SaveReadingProgress(userProgressDto, userId); + + await _unitOfWork.CommitAsync(); + } + + public async Task GetProgress(string bookHash, int userId) + { + var file = await _unitOfWork.MangaFileRepository.GetByKoreaderHash(bookHash); + var progressDto = await _unitOfWork.AppUserProgressRepository.GetUserProgressDtoAsync(file.ChapterId, userId); + _logger.LogInformation("Transmitting Kavita progress to Koreader: {KoreaderProgress}", progressDto.BookScrollId); + var koreaderProgress = KoreaderHelper.GetKoreaderPosition(progressDto); + var settingsDto = await _unitOfWork.SettingsRepository.GetSettingsDtoAsync(); + + return new KoreaderBookDto + { + Document = bookHash, + Device_id = settingsDto.InstallId, + Device = "Kavita", + Progress = koreaderProgress, + Percentage = progressDto.PageNum / (float) file.Pages + }; + } +} diff --git a/API/Services/Tasks/Scanner/ProcessSeries.cs b/API/Services/Tasks/Scanner/ProcessSeries.cs index dfc8dcda7..5f148a248 100644 --- a/API/Services/Tasks/Scanner/ProcessSeries.cs +++ b/API/Services/Tasks/Scanner/ProcessSeries.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; @@ -816,6 +816,7 @@ private void AddOrUpdateFileForChapter(Chapter chapter, ParserInfo info, bool fo var file = new MangaFileBuilder(info.FullFilePath, info.Format, _readingItemService.GetNumberOfPages(info.FullFilePath, info.Format)) .WithExtension(fileInfo.Extension) .WithBytes(fileInfo.Length) + .WithHash() .Build(); chapter.Files.Add(file); } diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj index c360c4fb3..e21332bed 100644 --- a/Kavita.Common/Kavita.Common.csproj +++ b/Kavita.Common/Kavita.Common.csproj @@ -3,7 +3,7 @@ net8.0 kavitareader.com Kavita - 0.8.3.17 + 0.8.3.18 en true @@ -13,11 +13,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - \ No newline at end of file + diff --git a/UI/Web/angular.json b/UI/Web/angular.json index 60fc909a9..a45f8d9bf 100644 --- a/UI/Web/angular.json +++ b/UI/Web/angular.json @@ -24,13 +24,14 @@ "prefix": "app", "architect": { "build": { - "builder": "@angular-devkit/build-angular:application", + "builder": "@angular/build:application", "options": { "outputPath": "dist", "index": "src/index.html", "browser": "src/main.ts", "polyfills": [ - "zone.js" + "@angular/localize/init", + "zone.js" ], "inlineStyleLanguage": "scss", "tsConfig": "tsconfig.app.json", @@ -87,7 +88,7 @@ "defaultConfiguration": "" }, "serve": { - "builder": "@angular-devkit/build-angular:dev-server", + "builder": "@angular/build:dev-server", "options": { "sslKey": "./ssl/server.key", "sslCert": "./ssl/server.crt", @@ -101,7 +102,7 @@ } }, "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", + "builder": "@angular/build:extract-i18n", "options": { "buildTarget": "kavita-webui:build" } diff --git a/UI/Web/package-lock.json b/UI/Web/package-lock.json index 09af58f19..b39a12843 100644 --- a/UI/Web/package-lock.json +++ b/UI/Web/package-lock.json @@ -8,70 +8,69 @@ "name": "kavita-webui", "version": "0.7.12.1", "dependencies": { - "@angular/animations": "^17.3.4", - "@angular/cdk": "^17.3.4", - "@angular/common": "^17.3.4", - "@angular/compiler": "^17.3.4", - "@angular/core": "^17.3.4", - "@angular/forms": "^17.3.4", - "@angular/localize": "^17.3.4", - "@angular/platform-browser": "^17.3.4", - "@angular/platform-browser-dynamic": "^17.3.4", - "@angular/router": "^17.3.4", - "@fortawesome/fontawesome-free": "^6.5.2", + "@angular-slider/ngx-slider": "^18.0.0", + "@angular/animations": "^18.2.9", + "@angular/cdk": "^18.2.10", + "@angular/common": "^18.2.9", + "@angular/compiler": "^18.2.9", + "@angular/core": "^18.2.9", + "@angular/forms": "^18.2.9", + "@angular/localize": "^18.2.9", + "@angular/platform-browser": "^18.2.9", + "@angular/platform-browser-dynamic": "^18.2.9", + "@angular/router": "^18.2.9", + "@fortawesome/fontawesome-free": "^6.6.0", "@iharbeck/ngx-virtual-scroller": "^17.0.2", - "@iplab/ngx-file-upload": "^17.1.0", - "@jsverse/transloco": "^7.4.3", + "@iplab/ngx-file-upload": "^18.0.0", + "@jsverse/transloco": "^7.5.0", "@jsverse/transloco-locale": "^7.0.1", - "@jsverse/transloco-persist-lang": "^7.0.1", + "@jsverse/transloco-persist-lang": "^7.0.2", "@jsverse/transloco-persist-translations": "^7.0.1", "@jsverse/transloco-preload-langs": "^7.0.1", - "@microsoft/signalr": "^7.0.14", - "@ng-bootstrap/ng-bootstrap": "^16.0.0", + "@microsoft/signalr": "^8.0.7", + "@ng-bootstrap/ng-bootstrap": "^17.0.1", "@popperjs/core": "^2.11.7", "@swimlane/ngx-charts": "^20.5.0", - "@tweenjs/tween.js": "^23.1.1", + "@tweenjs/tween.js": "^23.1.3", "bootstrap": "^5.3.2", "charts.css": "^1.1.0", "file-saver": "^2.0.5", - "luxon": "^3.4.4", + "luxon": "^3.5.0", "ng-circle-progress": "^1.7.1", "ng-lazyload-image": "^9.1.3", "ng-select2-component": "^14.0.1", - "ngx-color-picker": "^16.0.0", - "ngx-extended-pdf-viewer": "^18.1.9", + "ngx-color-picker": "^17.0.0", + "ngx-extended-pdf-viewer": "^21.4.6", "ngx-file-drop": "^16.0.0", - "ngx-slider-v2": "^17.0.0", "ngx-stars": "^1.6.5", - "ngx-toaster": "^1.0.1", - "ngx-toastr": "^18.0.0", + "ngx-toastr": "^19.0.0", "nosleep.js": "^0.12.0", "rxjs": "^7.8.0", "screenfull": "^6.0.2", "swiper": "^8.4.6", - "tslib": "^2.6.2", - "zone.js": "^0.14.3" + "tslib": "^2.8.0", + "zone.js": "^0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.3.4", - "@angular-eslint/builder": "^17.3.0", - "@angular-eslint/eslint-plugin": "^17.3.0", - "@angular-eslint/eslint-plugin-template": "^17.3.0", - "@angular-eslint/schematics": "^17.3.0", - "@angular-eslint/template-parser": "^17.3.0", - "@angular/cli": "^17.3.4", - "@angular/compiler-cli": "^17.3.4", + "@angular-eslint/builder": "^18.4.0", + "@angular-eslint/eslint-plugin": "^18.4.0", + "@angular-eslint/eslint-plugin-template": "^18.4.0", + "@angular-eslint/schematics": "^18.4.0", + "@angular-eslint/template-parser": "^18.4.0", + "@angular/build": "^18.2.10", + "@angular/cli": "^18.2.10", + "@angular/compiler-cli": "^18.2.9", "@types/d3": "^7.4.3", "@types/file-saver": "^2.0.7", "@types/luxon": "^3.4.0", - "@types/node": "^20.10.0", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", + "@types/node": "^22.8.0", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.11.0", "eslint": "^8.57.0", "jsonminify": "^0.4.2", "karma-coverage": "~2.2.0", "ts-node": "~10.9.1", - "typescript": "^5.2.2", + "typescript": "^5.5.4", "webpack-bundle-analyzer": "^4.10.2" } }, @@ -97,329 +96,291 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1703.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.4.tgz", - "integrity": "sha512-o+XCMOiMh8tmQGEwcxjAj2/lmUVT7CGSUAM31ydDomVOFFw4CnBvsoyKqQNRC+/AUXvovb2dCegQl/lTAnrwOg==", + "version": "0.1802.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.10.tgz", + "integrity": "sha512-/xudcHK2s4J/GcL6qyobmGaWMHQcYLSMqCaWMT+nK6I6tu9VEAj/p3R83Tzx8B/eKi31Pz499uHw9pmqdtbafg==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.3.4", + "@angular-devkit/core": "18.2.10", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/build-angular": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.4.tgz", - "integrity": "sha512-8KieoPrsJcFPoza0gLQ6yebtIb3WdH3j/V1TnAihk4tVpgtdch8tOBE3FP1TnSW3RF+iCsA0I5NO9/4YbEsWtw==", + "node_modules/@angular-devkit/core": { + "version": "18.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.10.tgz", + "integrity": "sha512-LFqiNdraBujg8e1lhuB0bkFVAoIbVbeXXwfoeROKH60OPbP8tHdgV6sFTqU7UGBKA+b+bYye70KFTG2Ys8QzKQ==", "dev": true, "dependencies": { - "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.4", - "@angular-devkit/build-webpack": "0.1703.4", - "@angular-devkit/core": "17.3.4", - "@babel/core": "7.24.0", - "@babel/generator": "7.23.6", - "@babel/helper-annotate-as-pure": "7.22.5", - "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-transform-async-generator-functions": "7.23.9", - "@babel/plugin-transform-async-to-generator": "7.23.3", - "@babel/plugin-transform-runtime": "7.24.0", - "@babel/preset-env": "7.24.0", - "@babel/runtime": "7.24.0", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.4", - "@vitejs/plugin-basic-ssl": "1.1.0", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.18", - "babel-loader": "9.1.3", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "^4.21.5", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.22", - "css-loader": "6.10.0", - "esbuild-wasm": "0.20.1", - "fast-glob": "3.3.2", - "http-proxy-middleware": "2.0.6", - "https-proxy-agent": "7.0.4", - "inquirer": "9.2.15", - "jsonc-parser": "3.2.1", - "karma-source-map-support": "1.4.0", - "less": "4.2.0", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.8", - "mini-css-extract-plugin": "2.8.1", - "mrmime": "2.0.0", - "open": "8.4.2", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "4.0.1", - "piscina": "4.4.0", - "postcss": "8.4.35", - "postcss-loader": "8.1.1", - "resolve-url-loader": "5.0.0", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", "rxjs": "7.8.1", - "sass": "1.71.1", - "sass-loader": "14.1.1", - "semver": "7.6.0", - "source-map-loader": "5.0.0", - "source-map-support": "0.5.21", - "terser": "5.29.1", - "tree-kill": "1.2.2", - "tslib": "2.6.2", - "undici": "6.11.1", - "vite": "5.1.7", - "watchpack": "2.4.0", - "webpack": "5.90.3", - "webpack-dev-middleware": "6.1.2", - "webpack-dev-server": "4.15.1", - "webpack-merge": "5.10.0", - "webpack-subresource-integrity": "5.1.0" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, - "optionalDependencies": { - "esbuild": "0.20.1" - }, "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "@angular/localize": "^17.0.0", - "@angular/platform-server": "^17.0.0", - "@angular/service-worker": "^17.0.0", - "@web/test-runner": "^0.18.0", - "browser-sync": "^3.0.2", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", - "karma": "^6.3.0", - "ng-packagr": "^17.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.2 <5.5" + "chokidar": "^3.5.2" }, "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "@web/test-runner": { - "optional": true - }, - "browser-sync": { - "optional": true - }, - "jest": { - "optional": true - }, - "jest-environment-jsdom": { - "optional": true - }, - "karma": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "protractor": { - "optional": true - }, - "tailwindcss": { + "chokidar": { "optional": true } } }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1703.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.4.tgz", - "integrity": "sha512-9Vsl6rfIH8kF02W7i3tW/aMOT2Ld1zpcok7n7JdL3Pb7oW0SOjt73FN6Ykm/hVig12gsOGJtEsDfQRsnCddmfQ==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1703.4", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" - } - }, - "node_modules/@angular-devkit/core": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.4.tgz", - "integrity": "sha512-vE69/Db555NTRPh+LUFO3rAQBbv7QGrK59F7chRggDZKamtCq/FfhEg2O+0BXQnUitOQN6WgQ79+payFYWyCCg==", + "node_modules/@angular-devkit/core/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dev": true, "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.1", - "picomatch": "4.0.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "ajv": "^8.0.0" }, "peerDependencies": { - "chokidar": "^3.5.2" + "ajv": "^8.0.0" }, "peerDependenciesMeta": { - "chokidar": { + "ajv": { "optional": true } } }, "node_modules/@angular-devkit/schematics": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.4.tgz", - "integrity": "sha512-Z6801QhIwrMTcKPzdo9si+ZtJkPz8fys0ftOTfTM66+tDECasU7pvk8Dr54WkDY29mdSHzPxpSxAsooEwfxvQQ==", + "version": "18.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.10.tgz", + "integrity": "sha512-EIm/yCYg3ZYPsPYJxXRX5F6PofJCbNQ5rZEuQEY09vy+ZRTqGezH0qoUP5WxlYeJrjiRLYqADI9WtVNzDyaD4w==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.3.4", - "jsonc-parser": "3.2.1", - "magic-string": "0.30.8", + "@angular-devkit/core": "18.2.10", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", "ora": "5.4.1", "rxjs": "7.8.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-eslint/builder": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.3.0.tgz", - "integrity": "sha512-JXSZE7+KA3UGU6jwc0v9lwOIMptosrvLIOXGlXqrhHWEXfkfu3ENPq1Lm3K8jLndQ57XueEhC+Nab/AuUiWA/Q==", + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.4.0.tgz", + "integrity": "sha512-FOzGHX/nHSV1wSduSsabsx3aqC1nfde0opEpEDSOJhxExDxKCwoS1XPy1aERGyKip4ZVA6phC3dLtoBH3QMkVQ==", "dev": true, - "dependencies": { - "@nx/devkit": "^17.2.8 || ^18.0.0", - "nx": "^17.2.8 || ^18.0.0" - }, "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.3.0.tgz", - "integrity": "sha512-ejfNzRuBeHUV8m2fkgs+M809rj5STuCuQo4fdfc6ccQpzXDI6Ha7BKpTznWfg5g529q/wrkoGSGgFxU9Yc2/dQ==", + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.0.tgz", + "integrity": "sha512-HlFHt2qgdd+jqyVIkCXmrjHauXo/XY3Rp0UNabk83ejGi/raM/6lEFI7iFWzHxLyiAKk4OgGI5W26giSQw991A==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.3.0.tgz", - "integrity": "sha512-81cQbOEPoQupFX8WmpqZn+y8VA7JdVRGBtt+uJNKBXcJknTpPWdLBZRFlgVakmC24iEZ0Fint/N3NBBQI3mz2A==", + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.0.tgz", + "integrity": "sha512-Saz9lkWPN3da7ZKW17UsOSN7DeY+TPh+wz/6GCNZCh67Uw2wvMC9agb+4hgpZNXYCP5+u7erqzxQmBoWnS/A+A==", "dev": true, "dependencies": { - "@angular-eslint/utils": "17.3.0", - "@typescript-eslint/utils": "7.2.0" + "@angular-eslint/bundled-angular-compiler": "18.4.0", + "@angular-eslint/utils": "18.4.0" }, "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.3.0.tgz", - "integrity": "sha512-9l/aRfpE9MCRVDWRb+rSB9Zei0paep1vqV6M/87VUnzBnzqeMRnVuPvQowilh2zweVSGKBF25Vp4HkwOL6ExDQ==", + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.0.tgz", + "integrity": "sha512-n3uZFCy76DnggPqjSVFV3gYD1ik7jCG28o2/HO4kobcMNKnwW8XAlFUagQ4TipNQh7fQiAefsEqvv2quMsYDVw==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.3.0", - "@angular-eslint/utils": "17.3.0", - "@typescript-eslint/type-utils": "7.2.0", - "@typescript-eslint/utils": "7.2.0", - "aria-query": "5.3.0", - "axobject-query": "4.0.0" + "@angular-eslint/bundled-angular-compiler": "18.4.0", + "@angular-eslint/utils": "18.4.0", + "aria-query": "5.3.2", + "axobject-query": "4.1.0" }, "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", + "@typescript-eslint/types": "^7.11.0 || ^8.0.0", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, - "node_modules/@angular-eslint/schematics": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-17.3.0.tgz", - "integrity": "sha512-5yssd5EOomxlKt9vN/OXXCTCuI3Pmfj16pkjBDoW0wzC8/M2l5zlXIEfoKumHYv2wtF553LhaMXVYVU35e0lTw==", + "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@angular-eslint/utils": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.0.tgz", + "integrity": "sha512-At1yS8GRviGBoaupiQwEOL4/IcZJCE/+2vpXdItMWPGB1HWetxlKAUZTMmIBX/r5Z7CoXxl+LbqpGhrhyzIQAg==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "17.3.0", - "@angular-eslint/eslint-plugin-template": "17.3.0", - "@nx/devkit": "^17.2.8 || ^18.0.0", - "ignore": "5.3.1", - "nx": "^17.2.8 || ^18.0.0", - "strip-json-comments": "3.1.1", - "tmp": "0.2.3" + "@angular-eslint/bundled-angular-compiler": "18.4.0" }, "peerDependencies": { - "@angular/cli": ">= 17.0.0 < 18.0.0" + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" } }, - "node_modules/@angular-eslint/template-parser": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.3.0.tgz", - "integrity": "sha512-m+UzAnWgtjeS0x6skSmR0eXltD/p7HZA+c8pPyAkiHQzkxE7ohhfyZc03yWGuYJvWQUqQAKKdO/nQop14TP0bg==", + "node_modules/@angular-eslint/eslint-plugin/node_modules/@angular-eslint/utils": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.0.tgz", + "integrity": "sha512-At1yS8GRviGBoaupiQwEOL4/IcZJCE/+2vpXdItMWPGB1HWetxlKAUZTMmIBX/r5Z7CoXxl+LbqpGhrhyzIQAg==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.3.0", - "eslint-scope": "^8.0.0" + "@angular-eslint/bundled-angular-compiler": "18.4.0" }, "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, - "node_modules/@angular-eslint/utils": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.3.0.tgz", - "integrity": "sha512-PJT9pxWqpvI9OXO+7L5SIVhvMW+RFjeafC7PYjtvSbNFpz+kF644BiAcfMJ0YqBnkrw3JXt+RAX25CT4mXIoXw==", + "node_modules/@angular-eslint/schematics": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.4.0.tgz", + "integrity": "sha512-ssqe+0YCfekbWIXNdCrHfoPK/bPZAWybs0Bn/b99dfd8h8uyXkERo9AzIOx4Uyj/08SkP9aPL/0uOOEHDsRGwQ==", + "dev": true, + "dependencies": { + "@angular-eslint/eslint-plugin": "18.4.0", + "@angular-eslint/eslint-plugin-template": "18.4.0", + "ignore": "5.3.2", + "semver": "7.6.3", + "strip-json-comments": "3.1.1" + }, + "peerDependencies": { + "@angular-devkit/core": ">= 18.0.0 < 19.0.0", + "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" + } + }, + "node_modules/@angular-eslint/template-parser": { + "version": "18.4.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.4.0.tgz", + "integrity": "sha512-VTep3Xd3IOaRIPL+JN/TV4/2DqUPbjtF3TNY15diD/llnrEhqFnmsvMihexbQyTqzOG+zU554oK44YfvAtHOrw==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.3.0", - "@typescript-eslint/utils": "7.2.0" + "@angular-eslint/bundled-angular-compiler": "18.4.0", + "eslint-scope": "^8.0.2" }, "peerDependencies": { - "eslint": "^7.20.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, + "node_modules/@angular-slider/ngx-slider": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@angular-slider/ngx-slider/-/ngx-slider-18.0.0.tgz", + "integrity": "sha512-QR5zP3B++cLCqUkfg7j65y+4wrt5xPrua6mANoClj2iaoHaAzf3qi+/ANgYTeZ9StoFu22r35uy5Qg0GigjhxQ==", + "dependencies": { + "detect-passive-events": "^2.0.3", + "rxjs": "^7.8.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^18.0.0", + "@angular/core": "^18.0.0", + "@angular/forms": "^18.0.0" + } + }, "node_modules/@angular/animations": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.4.tgz", - "integrity": "sha512-2nBgXRdTSVPZMueV6ZJjajDRucwJBLxwiVhGafk/nI5MJF0Yss/Jfp2Kfzk5Xw2AqGhz0rd00IyNNUQIzO2mlw==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.9.tgz", + "integrity": "sha512-GAsTKENoTRVKgXX4ACBMMTp8SW4rW8u637uLag+ttJV2XBzC3YJlw5m6b/W4cdrmqZjztoEwUjR6CUTjBqMujQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.9" + } + }, + "node_modules/@angular/build": { + "version": "18.2.10", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.10.tgz", + "integrity": "sha512-YFBKvAyC5sH17yRYcx7VHCtJ4KUg7xCjCQ4Pe16kiTvW6vuYsgU6Btyti0Qgewd7XaWpTM8hk8N6hE4Z0hpflw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.10", + "@babel/core": "7.25.2", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-syntax-import-attributes": "7.24.7", + "@inquirer/confirm": "3.1.22", + "@vitejs/plugin-basic-ssl": "1.1.0", + "browserslist": "^4.23.0", + "critters": "0.0.24", + "esbuild": "0.23.0", + "fast-glob": "3.3.2", + "https-proxy-agent": "7.0.5", + "listr2": "8.2.4", + "lmdb": "3.0.13", + "magic-string": "0.30.11", + "mrmime": "2.0.0", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "rollup": "4.22.4", + "sass": "1.77.6", + "semver": "7.6.3", + "vite": "5.4.6", + "watchpack": "2.4.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/core": "17.3.4" + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "less": "^4.2.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } } }, "node_modules/@angular/cdk": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.3.4.tgz", - "integrity": "sha512-/wbKUbc0YC3HGE2TCgW7D07Q99PZ/5uoRvMyWw0/wHa8VLNavXZPecbvtyLs//3HnqoCMSUFE7E2Mrd7jAWfcA==", + "version": "18.2.10", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.10.tgz", + "integrity": "sha512-Weh0slrfWNp5N6UO4m3tXzs2QBFexNsnJf1dq0oaLDBgfkuqUmxdCkurSv5+lWZRkTPLYmd/hQeJpvrhxMCleg==", "dependencies": { "tslib": "^2.3.0" }, @@ -427,33 +388,32 @@ "parse5": "^7.1.2" }, "peerDependencies": { - "@angular/common": "^17.0.0 || ^18.0.0", - "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/cli": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.4.tgz", - "integrity": "sha512-o4oIA2stUwXOur/T/kP3Zr8ZUCB4VYmvjACbsQ3tpzVCFYPeaW9psQagBNJfaBVVDSYL+EacVYBYJR9ZImvcGw==", + "version": "18.2.10", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.10.tgz", + "integrity": "sha512-qW/F3XVZMzzenFzbn+7FGpw8GOt9qW8UxBtYya7gUNdWlcsgGUk+ZaGC2OLbfI5gX6pchW4TOPMsDSMeaCEI2Q==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1703.4", - "@angular-devkit/core": "17.3.4", - "@angular-devkit/schematics": "17.3.4", - "@schematics/angular": "17.3.4", + "@angular-devkit/architect": "0.1802.10", + "@angular-devkit/core": "18.2.10", + "@angular-devkit/schematics": "18.2.10", + "@inquirer/prompts": "5.3.8", + "@listr2/prompt-adapter-inquirer": "2.0.15", + "@schematics/angular": "18.2.10", "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "4.1.2", - "inquirer": "9.2.15", - "jsonc-parser": "3.2.1", - "npm-package-arg": "11.0.1", - "npm-pick-manifest": "9.0.0", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "17.0.6", + "ini": "4.1.3", + "jsonc-parser": "3.3.1", + "listr2": "8.2.4", + "npm-package-arg": "11.0.3", + "npm-pick-manifest": "9.1.0", + "pacote": "18.0.6", "resolve": "1.22.8", - "semver": "7.6.0", + "semver": "7.6.3", "symbol-observable": "4.0.0", "yargs": "17.7.2" }, @@ -461,38 +421,38 @@ "ng": "bin/ng.js" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/common": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.4.tgz", - "integrity": "sha512-rEsmtwUMJaNvaimh9hwaHdDLXaOIrjEnYdhmJUvDaKPQaFfSbH3CGGVz9brUyzVJyiWJYkYM0ssxavczeiEe8g==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.9.tgz", + "integrity": "sha512-Opi6DVaU0aGyJqLk5jPmeYx559fp3afj4wuxM5aDzV4KEVGDVbNCpO0hMuwHZ6rtCjHhv1fQthgS48qoiQ6LKw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "17.3.4", + "@angular/core": "18.2.9", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.3.4.tgz", - "integrity": "sha512-YrDClIzgj6nQwiYHrfV6AkT1C5LCDgJh+LICus/2EY1w80j1Qf48Zh4asictReePdVE2Tarq6dnpDh4RW6LenQ==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.9.tgz", + "integrity": "sha512-fchbcbsyTOd/qHGy+yPEmE1p10OTNEjGrWHQzUbf3xdlm23EvxHTitHh8i6EBdwYnM5zz0IIBhltP8tt89oeYw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "17.3.4" + "@angular/core": "18.2.9" }, "peerDependenciesMeta": { "@angular/core": { @@ -501,14 +461,13 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.3.4.tgz", - "integrity": "sha512-TVWjpZSI/GIXTYsmVgEKYjBckcW8Aj62DcxLNehRFR+c7UB95OY3ZFjU8U4jL0XvWPgTkkVWQVq+P6N4KCBsyw==", - "dev": true, + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.9.tgz", + "integrity": "sha512-4iMoRvyMmq/fdI/4Gob9HKjL/jvTlCjbS4kouAYHuGO9w9dmUhi1pY1z+mALtCEl9/Q8CzU2W8e5cU2xtV4nVg==", "dependencies": { - "@babel/core": "7.23.9", + "@babel/core": "7.25.2", "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", + "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", "reflect-metadata": "^0.2.0", "semver": "^7.0.0", @@ -521,96 +480,77 @@ "ngcc": "bundles/ngcc/index.js" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "17.3.4", - "typescript": ">=5.2 <5.5" + "@angular/compiler": "18.2.9", + "typescript": ">=5.4 <5.6" } }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", - "dev": true, + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "readdirp": "^4.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14.16.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/@angular/core": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.3.4.tgz", - "integrity": "sha512-fvhBkfa/DDBzp1UcNzSxHj+Z9DebSS/o9pZpZlbu/0uEiu9hScmScnhaty5E0EbutzHB0SVUCz7zZuDeAywvWg==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.9.tgz", + "integrity": "sha512-h9/Bzo/7LTPzzh9I/1Gk8TWOXPGeHt3jLlnYrCh2KbrWbTErNtW0V3ad5I3Zv+K2Z7RSl9Z3D3Y6ILH796N4ZA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.0" + "zone.js": "~0.14.10" } }, "node_modules/@angular/forms": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.3.4.tgz", - "integrity": "sha512-XWA/FAs0r7VRdztMIfGU9EE0Chj+1U/sDnzJK3ZPO0n8F8oDAEWGJyiw8GIyWTLs+mz43thVIED3DhbRNsXbWw==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.9.tgz", + "integrity": "sha512-yyN5dG60CXH6MRte8rv4aGUTeNOMz/pUV7rVxittpjN7tPHfGEL9Xz89Or90Aa1QiHuBmHFk+9A39s03aO1rDQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.3.4", - "@angular/core": "17.3.4", - "@angular/platform-browser": "17.3.4", + "@angular/common": "18.2.9", + "@angular/core": "18.2.9", + "@angular/platform-browser": "18.2.9", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/localize": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-17.3.4.tgz", - "integrity": "sha512-sNViKDiu/sdeaeyOYSdaifigdj1hjwcivxEoqw2k/GI4hlVtEtOZrqZUfgT4PycGpE4mizdwgRYX+NvKY0D5uQ==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.2.9.tgz", + "integrity": "sha512-CcqyVqV/GyyBe6Cndm2WRM5dyJwjDQ0F7QRGwO3jYWFSYF0h/f0ZjZVH4ra1IX+AwEEicOXW1ig3FBbeOqHPug==", "dependencies": { - "@babel/core": "7.23.9", + "@babel/core": "7.25.2", "@types/babel__core": "7.20.5", "fast-glob": "3.3.2", "yargs": "^17.2.1" @@ -621,69 +561,27 @@ "localize-translate": "tools/bundles/src/translate/cli.js" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "17.3.4", - "@angular/compiler-cli": "17.3.4" - } - }, - "node_modules/@angular/localize/node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/localize/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "node_modules/@angular/localize/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "@angular/compiler": "18.2.9", + "@angular/compiler-cli": "18.2.9" } }, "node_modules/@angular/platform-browser": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.3.4.tgz", - "integrity": "sha512-W2nH9WSQJfdNG4HH9B1Cvj5CTmy9gF3321I+65Tnb8jFmpeljYDBC/VVUhTZUCRpg8udMWeMHEQHuSb8CbozmQ==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.9.tgz", + "integrity": "sha512-UNu6XjK0SV35FFe55yd1yefZI8tzflVKzev/RzC31XngrczhlH0+WCbae4rG1XJULzJwJ1R1p7gqq4+ktEczRQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "17.3.4", - "@angular/common": "17.3.4", - "@angular/core": "17.3.4" + "@angular/animations": "18.2.9", + "@angular/common": "18.2.9", + "@angular/core": "18.2.9" }, "peerDependenciesMeta": { "@angular/animations": { @@ -692,45 +590,46 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.3.4.tgz", - "integrity": "sha512-S53jPyQtInVYkjdGEFt4dxM1NrHNkWCvXGRsCO7Uh+laDf1OpIDp9YHf49OZohYLajJradN6y4QfdZL6IUwXKA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.9.tgz", + "integrity": "sha512-cUTB8Jc3I/fu2UKv/PJmNGQGvKyyTo8ln4GUX3EJ4wUHzgkrU0s4x7DNok0Ql8FZKs5dLR8C0xVbG7Dv/ViPdw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.3.4", - "@angular/compiler": "17.3.4", - "@angular/core": "17.3.4", - "@angular/platform-browser": "17.3.4" + "@angular/common": "18.2.9", + "@angular/compiler": "18.2.9", + "@angular/core": "18.2.9", + "@angular/platform-browser": "18.2.9" } }, "node_modules/@angular/router": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.3.4.tgz", - "integrity": "sha512-B1zjUYyhN66dp47zdF96NRwo0dEdM5In4Ob8HN64PAbnaK3y1EPp31aN6EGernPvKum1ibgwSZw+Uwnbkuv7Ww==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.9.tgz", + "integrity": "sha512-D0rSrMf/sbhr5yQgz+LNBxdv1BR3S4pYDj1Exq6yVRKX8HSbjc5hxe/44VaOEKBh8StJ6GRiNOMoIcDt73Jang==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^18.13.0 || >=20.9.0" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "17.3.4", - "@angular/core": "17.3.4", - "@angular/platform-browser": "17.3.4", + "@angular/common": "18.2.9", + "@angular/core": "18.2.9", + "@angular/platform-browser": "18.2.9", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.0.tgz", + "integrity": "sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -738,29 +637,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.0.tgz", + "integrity": "sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", - "dev": true, + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -791,13 +689,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -805,37 +703,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -851,47 +737,26 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", - "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", - "dev": true, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -900,2626 +765,1559 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/types": "^7.24.7" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "node_modules/@babel/parser": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.0.tgz", + "integrity": "sha512-aP8x5pIw3xvYr/sXT+SEUwyhrXT8rUJRZltK/qN3Db80dcKpTett8cJxHyjk+xYSVXvNnl2SfcJVjbwxpOSscA==", "dependencies": { - "@babel/types": "^7.24.0" + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.0.tgz", + "integrity": "sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/parser": "^7.26.0", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=6" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=10.0.0" } }, - "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==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "node_modules/@esbuild/android-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "node_modules/@esbuild/android-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", - "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" - }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "bin": { - "parser": "bin/babel-parser.js" - }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", - "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", - "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.24.1" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", - "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "node_modules/@esbuild/linux-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "cpu": [ + "loong64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", - "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", - "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "node_modules/@esbuild/linux-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@esbuild/win32-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", - "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "node_modules/@eslint/eslintrc/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 + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", - "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "node_modules/@eslint/eslintrc/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, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "argparse": "^2.0.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", - "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "*" } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", - "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" - }, "engines": { - "node": ">=6.9.0" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", - "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.4", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", - "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.6.0.tgz", + "integrity": "sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow==", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", - "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/template": "^7.24.0" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=10.10.0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", - "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", - "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "*" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", - "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "engines": { - "node": ">=6.9.0" + "node": ">=12.22" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", - "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", - "dev": true, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@iharbeck/ngx-virtual-scroller": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/@iharbeck/ngx-virtual-scroller/-/ngx-virtual-scroller-17.0.2.tgz", + "integrity": "sha512-ixB4NZ4kwboYC/prWNkO7MohTx9pEilcBMQOmSxBn92P4GGbu5+HjiCDe+v5fj31bGIDiya2xXWouWkcuG/Y+w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.3.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@tweenjs/tween.js": "^23.1.1" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", - "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "node_modules/@inquirer/checkbox": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz", + "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", - "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", - "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "node_modules/@inquirer/core": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", + "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.5", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", - "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "node_modules/@inquirer/core/node_modules/@inquirer/type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", + "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0" + "mute-stream": "^1.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", - "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "node_modules/@inquirer/editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.2.0.tgz", + "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "external-editor": "^3.1.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", - "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "node_modules/@inquirer/expand": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.3.0.tgz", + "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", - "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "node_modules/@inquirer/figures": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz", + "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", - "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "node_modules/@inquirer/input": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", + "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", - "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "node_modules/@inquirer/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.1.0.tgz", + "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "node_modules/@inquirer/password": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.2.0.tgz", + "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", - "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "node_modules/@inquirer/prompts": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", + "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-identifier": "^7.22.20" + "@inquirer/checkbox": "^2.4.7", + "@inquirer/confirm": "^3.1.22", + "@inquirer/editor": "^2.1.22", + "@inquirer/expand": "^2.1.22", + "@inquirer/input": "^2.2.9", + "@inquirer/number": "^1.0.10", + "@inquirer/password": "^2.1.22", + "@inquirer/rawlist": "^2.2.4", + "@inquirer/search": "^1.0.7", + "@inquirer/select": "^2.4.7" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", - "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "node_modules/@inquirer/rawlist": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.3.0.tgz", + "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "node_modules/@inquirer/search": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.1.0.tgz", + "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", - "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "node_modules/@inquirer/select": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.5.0.tgz", + "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", - "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "mute-stream": "^1.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", - "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", - "dev": true, + "node_modules/@iplab/ngx-file-upload": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@iplab/ngx-file-upload/-/ngx-file-upload-18.0.0.tgz", + "integrity": "sha512-Uz+011ZOGtVeFAPuOcFHBB/hyLZrV3RNOqT21J13YMqWr5jadba0t67towrQ7VTHLMYt1Du/UHDmv5wV/h7/sg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.3.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/animations": "^18.0.0", + "@angular/common": "^18.0.0", + "@angular/core": "^18.0.0", + "@angular/forms": "^18.0.0", + "rxjs": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", - "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", - "dev": true, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.1" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", - "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1" - }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { - "node": ">=6.9.0" + "node": ">=12" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", - "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { - "node": ">=6.9.0" + "node": ">=12" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", - "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", - "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", - "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", - "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", - "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", - "dev": true, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", - "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "regenerator-transform": "^0.15.2" - }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", - "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", - "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", - "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", - "dev": true, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", - "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", - "dev": true, + "node_modules/@jsverse/transloco": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@jsverse/transloco/-/transloco-7.5.0.tgz", + "integrity": "sha512-OnK8y84TWxWeNH+Qw0kHPECpmLOrwMRP+NMcUXm3lEqRrd13qe9XkhbAysAHGJ6kfZqgIiAMS9rqnFf6JTSc5g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@jsverse/transloco-utils": "^7.0.0", + "flat": "6.0.1", + "fs-extra": "^11.0.0", + "glob": "^10.0.0", + "lodash.kebabcase": "^4.1.1", + "ora": "^5.4.1", + "replace-in-file": "^7.0.1", + "tslib": "^2.2.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/core": ">=16.0.0" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", - "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", - "dev": true, + "node_modules/@jsverse/transloco-locale": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@jsverse/transloco-locale/-/transloco-locale-7.0.1.tgz", + "integrity": "sha512-mx43h2FKMKxx+Er18qArBJMxmGGW2+EShkH+xueAp+VC/ivBNQDyXWpg8hOsfNFqFQAjzlCAie1mXpbGmbM0uw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.2.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/core": ">=16.0.0", + "@jsverse/transloco": ">=7.0.0", + "rxjs": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", - "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", - "dev": true, + "node_modules/@jsverse/transloco-persist-lang": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@jsverse/transloco-persist-lang/-/transloco-persist-lang-7.0.2.tgz", + "integrity": "sha512-VPB/IbukOS64RUM0NQk2rS/wmezo8JYucYerC/94nyF50LM5tR59SyJTPHSFHBTBqXykOQSXUxLRRwzt8UrfPg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.2.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/core": ">=16.0.0", + "@jsverse/transloco": ">=7.0.0" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", - "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", - "dev": true, + "node_modules/@jsverse/transloco-persist-translations": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@jsverse/transloco-persist-translations/-/transloco-persist-translations-7.0.1.tgz", + "integrity": "sha512-BUGpcD4MrIBUbo7/G06yGdkWuVTKXVESyAJp107yUbE34Ami0+4BEK7vfLTl09ARwhBQsNKIzZgTAIpzrlK98A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.2.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/core": ">=16.0.0", + "@jsverse/transloco": ">=7.0.0" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", - "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", - "dev": true, + "node_modules/@jsverse/transloco-preload-langs": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@jsverse/transloco-preload-langs/-/transloco-preload-langs-7.0.1.tgz", + "integrity": "sha512-J9G+r9g8UnLWsEdf0XTUhSIX/CFoKEPP6bEfyXQ7f36FFVu3raPRoEXnqE8gQGCPiyFPG0J8YSf7lyJtUHIgHA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.2.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@angular/core": ">=16.0.0", + "@jsverse/transloco": ">=7.0.0" } }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", - "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", - "dev": true, + "node_modules/@jsverse/transloco-utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@jsverse/transloco-utils/-/transloco-utils-7.0.2.tgz", + "integrity": "sha512-zud1M68mMC/Pu6irEba+Z2SzmwmmPzUPnBzMKlcGdIhzUe1z41cqQutK1M0QaQpY4h4yhumXcNaY/Ot6piv6QQ==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "cosmiconfig": "^8.1.3", + "tslib": "^2.3.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=16" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", - "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", + "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@inquirer/type": "^1.5.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=18.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@inquirer/prompts": ">= 3 < 6" } }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", - "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", + "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@babel/preset-env": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", - "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.24.0", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", + "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", + "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", + "cpu": [ + "arm" + ], "dev": true, - "bin": { - "semver": "bin/semver.js" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", + "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", + "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", + "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "node_modules/@microsoft/signalr": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-8.0.7.tgz", + "integrity": "sha512-PHcdMv8v5hJlBkRHAuKG5trGViQEkPYee36LnJQx4xHOQ5LL4X0nEWIxOp5cCtZ7tu+30quz5V3k0b1YNuc6lw==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "abort-controller": "^3.0.0", + "eventsource": "^2.0.2", + "fetch-cookie": "^2.0.3", + "node-fetch": "^2.6.7", + "ws": "^7.4.5" } }, - "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", - "dependencies": { - "@babel/types": "^7.24.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", - "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, "optional": true, "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } + "darwin" + ] }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", - "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", "cpu": [ - "arm" + "x64" ], "dev": true, "optional": true, "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "darwin" + ] }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", - "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", "cpu": [ - "arm64" + "arm" ], "dev": true, "optional": true, "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "linux" + ] }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", - "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", "cpu": [ - "x64" + "arm64" ], "dev": true, "optional": true, "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "linux" + ] }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", - "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", "cpu": [ - "arm64" + "x64" ], "dev": true, "optional": true, "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } + "linux" + ] }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", - "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "win32" + ] + }, + "node_modules/@ng-bootstrap/ng-bootstrap": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-17.0.1.tgz", + "integrity": "sha512-utbm8OXIoqVVYGVzQkOS773ymbjc+UMkXv8lyi7hTqLhCQs0rZ0yA74peqVZRuOGXLHgcSTA7fnJhA80iQOblw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^18.0.0", + "@angular/core": "^18.0.0", + "@angular/forms": "^18.0.0", + "@angular/localize": "^18.0.0", + "@popperjs/core": "^2.11.8", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", - "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", - "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", - "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", - "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", - "cpu": [ - "arm64" - ], + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, "engines": { - "node": ">=12" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", - "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", - "cpu": [ - "ia32" - ], + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "semver": "^7.3.5" + }, "engines": { - "node": ">=12" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", - "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", - "cpu": [ - "loong64" - ], + "node_modules/@npmcli/git": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "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", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", - "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", - "cpu": [ - "mips64el" - ], + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">=16" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", - "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", - "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", - "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", - "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", - "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", - "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", - "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", - "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", - "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", - "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/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 - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/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, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@fortawesome/fontawesome-free": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz", - "integrity": "sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q==", - "hasInstallScript": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "node_modules/@iharbeck/ngx-virtual-scroller": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/@iharbeck/ngx-virtual-scroller/-/ngx-virtual-scroller-17.0.2.tgz", - "integrity": "sha512-ixB4NZ4kwboYC/prWNkO7MohTx9pEilcBMQOmSxBn92P4GGbu5+HjiCDe+v5fj31bGIDiya2xXWouWkcuG/Y+w==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@tweenjs/tween.js": "^23.1.1" - } - }, - "node_modules/@iplab/ngx-file-upload": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@iplab/ngx-file-upload/-/ngx-file-upload-17.1.0.tgz", - "integrity": "sha512-5YBhPra6ZJ0oYQBYUCPdGd+yoWW08QfuHI31MoCETil/9RG92btEfX5PcSVFY8IkOJAu9sgk83Y4WI5TEBM6lw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/animations": "^17.0.0", - "@angular/common": "^17.0.0", - "@angular/core": "^17.0.0", - "@angular/forms": "^17.0.0", - "rxjs": "^7.0.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsverse/transloco": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@jsverse/transloco/-/transloco-7.4.3.tgz", - "integrity": "sha512-QVzpbsfMN4oB01OfiGBz0f9/cw6nczF2EHIlhJG0455bMjiaR/tQTVGFmAGnm267iQFPtOL36yQyaHznXxPaqw==", - "dependencies": { - "@jsverse/transloco-utils": "^7.0.0", - "flat": "6.0.1", - "fs-extra": "^11.0.0", - "glob": "^10.0.0", - "lodash.kebabcase": "^4.1.1", - "ora": "^5.4.1", - "replace-in-file": "^7.0.1", - "tslib": "^2.2.0" - }, - "peerDependencies": { - "@angular/core": ">=16.0.0" - } - }, - "node_modules/@jsverse/transloco-locale": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@jsverse/transloco-locale/-/transloco-locale-7.0.1.tgz", - "integrity": "sha512-mx43h2FKMKxx+Er18qArBJMxmGGW2+EShkH+xueAp+VC/ivBNQDyXWpg8hOsfNFqFQAjzlCAie1mXpbGmbM0uw==", - "dependencies": { - "tslib": "^2.2.0" - }, - "peerDependencies": { - "@angular/core": ">=16.0.0", - "@jsverse/transloco": ">=7.0.0", - "rxjs": ">=6.0.0" - } - }, - "node_modules/@jsverse/transloco-persist-lang": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@jsverse/transloco-persist-lang/-/transloco-persist-lang-7.0.1.tgz", - "integrity": "sha512-bCH5aECb6d/NbS3/oiTqgbWrMIzo1kJzJTOVF2uazZeMa8M4xcx1Am+cX/Fo4gxAFrrTLmI4yC2dde8JB/qdCA==", - "dependencies": { - "tslib": "^2.2.0" - }, - "peerDependencies": { - "@angular/core": ">=16.0.0", - "@jsverse/transloco": ">=7.0.0" - } - }, - "node_modules/@jsverse/transloco-persist-translations": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@jsverse/transloco-persist-translations/-/transloco-persist-translations-7.0.1.tgz", - "integrity": "sha512-BUGpcD4MrIBUbo7/G06yGdkWuVTKXVESyAJp107yUbE34Ami0+4BEK7vfLTl09ARwhBQsNKIzZgTAIpzrlK98A==", - "dependencies": { - "tslib": "^2.2.0" - }, - "peerDependencies": { - "@angular/core": ">=16.0.0", - "@jsverse/transloco": ">=7.0.0" - } - }, - "node_modules/@jsverse/transloco-preload-langs": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@jsverse/transloco-preload-langs/-/transloco-preload-langs-7.0.1.tgz", - "integrity": "sha512-J9G+r9g8UnLWsEdf0XTUhSIX/CFoKEPP6bEfyXQ7f36FFVu3raPRoEXnqE8gQGCPiyFPG0J8YSf7lyJtUHIgHA==", - "dependencies": { - "tslib": "^2.2.0" - }, - "peerDependencies": { - "@angular/core": ">=16.0.0", - "@jsverse/transloco": ">=7.0.0" - } - }, - "node_modules/@jsverse/transloco-utils": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@jsverse/transloco-utils/-/transloco-utils-7.0.2.tgz", - "integrity": "sha512-zud1M68mMC/Pu6irEba+Z2SzmwmmPzUPnBzMKlcGdIhzUe1z41cqQutK1M0QaQpY4h4yhumXcNaY/Ot6piv6QQ==", - "dependencies": { - "cosmiconfig": "^8.1.3", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true - }, - "node_modules/@ljharb/through": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", - "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@microsoft/signalr": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@microsoft/signalr/-/signalr-7.0.14.tgz", - "integrity": "sha512-dnS7gSJF5LxByZwJaj82+F1K755ya7ttPT+JnSeCBef3sL8p8FBkHePXphK8NSuOquIb7vsphXWa28A+L2SPpw==", - "dependencies": { - "abort-controller": "^3.0.0", - "eventsource": "^2.0.2", - "fetch-cookie": "^2.0.3", - "node-fetch": "^2.6.7", - "ws": "^7.4.5" - } - }, - "node_modules/@ng-bootstrap/ng-bootstrap": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-16.0.0.tgz", - "integrity": "sha512-+FJ3e6cX9DW2t7021Ji3oz433rk3+4jLfqzU+Jyx6/vJz1dIOaML3EAY6lYuW4TLiXgMPOMvs6KzPFALGh4Lag==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": "^17.0.0", - "@angular/core": "^17.0.0", - "@angular/forms": "^17.0.0", - "@angular/localize": "^17.0.0", - "@popperjs/core": "^2.11.8", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@ngtools/webpack": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.4.tgz", - "integrity": "sha512-3uNX4tRTKPm91mSQcnmQtqDMMKLGDevJERSPJU7hlOXZZ05QrT4et1mwvXNYYMpXqi2OkC7D4ryIS2YxAiItBA==", - "dev": true, - "engines": { - "node": "^18.13.0 || >=20.9.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^17.0.0", - "typescript": ">=5.2 <5.5", - "webpack": "^5.54.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/agent/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==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.6.tgz", - "integrity": "sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@npmcli/git/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==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@npmcli/git/node_modules/proc-log": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.0.0.tgz", - "integrity": "sha512-v1lzmYxGDs2+OZnmYtYZK3DG8zogt+CbQ+o/iqqtTfpyCmGWulCTEQu5GIbivf7OjgIkH2Nr8SH8UxAGugZNbg==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/@npmcli/git/node_modules/which": { "version": "4.0.0", @@ -3537,16 +2335,16 @@ } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", "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" @@ -3562,9 +2360,9 @@ } }, "node_modules/@npmcli/package-json": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.3.tgz", - "integrity": "sha512-cgsjCvld2wMqkUqvY+SZI+1ZJ7umGBYc9IAKfqJRKJCcs7hCQYxScUgdsyrRINk3VmdCYf9TXiLBHQ6ECTxhtg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -3579,19 +2377,10 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/package-json/node_modules/proc-log": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.0.0.tgz", - "integrity": "sha512-v1lzmYxGDs2+OZnmYtYZK3DG8zogt+CbQ+o/iqqtTfpyCmGWulCTEQu5GIbivf7OjgIkH2Nr8SH8UxAGugZNbg==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", - "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, "dependencies": { "which": "^4.0.0" @@ -3625,24 +2414,25 @@ } }, "node_modules/@npmcli/redact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz", - "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", - "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", "@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": { @@ -3673,207 +2463,6 @@ "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@nrwl/devkit": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-18.2.4.tgz", - "integrity": "sha512-dLK8MMb3eEFWlhtI1kNDNbWIT1Xbrgg3eAQ+Ix/N5JDbxJkJhE28WsIJgQb1NTwe/N87O5JtOpxz4/TsSLJCsQ==", - "dev": true, - "dependencies": { - "@nx/devkit": "18.2.4" - } - }, - "node_modules/@nrwl/tao": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-18.2.4.tgz", - "integrity": "sha512-kgJwZ26F+AzvFXaW5eh1g4HLntPcJ6+EE7JyEvrdRzpw7KxTqWy6Ql7dYys6zGlpP4c3PbsXwdc7tGM3Df2PNg==", - "dev": true, - "dependencies": { - "nx": "18.2.4", - "tslib": "^2.3.0" - }, - "bin": { - "tao": "index.js" - } - }, - "node_modules/@nx/devkit": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-18.2.4.tgz", - "integrity": "sha512-Ws3BcA/aeXuwsCQ5e7PYy2H7DswareTOEfgs7izxNyGugpydktVH9DZZTOFNDsc06yzgvyTucDbDQ+JsrJ9PcQ==", - "dev": true, - "dependencies": { - "@nrwl/devkit": "18.2.4", - "ejs": "^3.1.7", - "enquirer": "~2.3.6", - "ignore": "^5.0.4", - "semver": "^7.5.3", - "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" - }, - "peerDependencies": { - "nx": ">= 16 <= 18" - } - }, - "node_modules/@nx/nx-darwin-arm64": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-18.2.4.tgz", - "integrity": "sha512-RYhMImghdyHmwnbNoR2CkLz4Opj9EmuHY3lMfsorg+T4wIOql/iXACrqjnreN7Hy9myJDo1EIbYZ4x8VSxFWtA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-darwin-x64": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-18.2.4.tgz", - "integrity": "sha512-2mXMslSRD/ZoI/oaX+0Mh9J/hucXtNgdwC4YFbp1u8UKquAaQ6hf4uo0s4i+AfLX0F7roMtkFPaG/+MQUJE1Rw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-18.2.4.tgz", - "integrity": "sha512-QUiYLvyUT0PS7D8erf49xa1Jyw4Gfev5gtYfME34Twmn/JPx/99ZkBG4wHbzLqRGwlO5K6m6P4qs30Pzfwtw7A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-18.2.4.tgz", - "integrity": "sha512-+fjFciSUhvDV8dPa97Brwb83k3Xa4gHPI2Un8wlpp28Cv4horeGruRZrrifR1VmD2wp2UBIMl5n7YsDP8KvYhQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-18.2.4.tgz", - "integrity": "sha512-lfaTc+AvV56Uv5mXROiRwh2REiI/7IsqeRDfL+prcuuvJ5Oxi2wYVgnmqcHL+ryQnk0Qn7/d+j/BmYHX5Ve5jQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-18.2.4.tgz", - "integrity": "sha512-U6eoLTQmbxUWU9kZxx6hsYN4zmmOrsDDeW+i3aj5aeahfYlmyz6TsT0V3FSB70WGJC5aMVgEi4RkntQMKkm5vQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-18.2.4.tgz", - "integrity": "sha512-q8WcJhmcRNORkKjax6WcUwMJe/1mQs+RYlUkGqmi7tD7lfcLSqdLPJVjqVmQAwmy1Wh/MHPsbqRwSerUnCxB1A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-18.2.4.tgz", - "integrity": "sha512-0MDuoPgHa6kkBrjg7hwZ2qQivhJbh3lk7r3q4osDrqZcGxq5XVJqeAmYFyChQy4dbQfUm4hhYkEfzpU8M2lnvQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-18.2.4.tgz", - "integrity": "sha512-uLhSRtfnXzN000Qf27GOjEPXzd4/jBWqv2x419IMh+AEtKHuCEpQNBUAyLvBbQ79SMr+FmCXHB8AeeJ7bEUiRw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-18.2.4.tgz", - "integrity": "sha512-Y52Afz02Ub1kRZXd6NUTwPMjKQqBKZ35e5dUEpl14na2fWvdgdMz4bYOBPUcmQrovlxBGhmFXtFzxkdW3zyRbQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -3899,9 +2488,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.2.tgz", - "integrity": "sha512-ahxSgCkAEk+P/AVO0vYr7DxOD3CwAQrT0Go9BJyGQ9Ef0QxVOfjDZMiF4Y2s3mLyPrjonchIMH/tbWHucJMykQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", "cpu": [ "arm" ], @@ -3912,9 +2501,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.2.tgz", - "integrity": "sha512-lAarIdxZWbFSHFSDao9+I/F5jDaKyCqAPMq5HqnfpBw8dKDiCaaqM0lq5h1pQTLeIqueeay4PieGR5jGZMWprw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", "cpu": [ "arm64" ], @@ -3925,9 +2514,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.2.tgz", - "integrity": "sha512-SWsr8zEUk82KSqquIMgZEg2GE5mCSfr9sE/thDROkX6pb3QQWPp8Vw8zOq2GyxZ2t0XoSIUlvHDkrf5Gmf7x3Q==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", "cpu": [ "arm64" ], @@ -3938,9 +2527,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.2.tgz", - "integrity": "sha512-o/HAIrQq0jIxJAhgtIvV5FWviYK4WB0WwV91SLUnsliw1lSAoLsmgEEgRWzDguAFeUEUUoIWXiJrPqU7vGiVkA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", "cpu": [ "x64" ], @@ -3951,9 +2540,22 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.2.tgz", - "integrity": "sha512-nwlJ65UY9eGq91cBi6VyDfArUJSKOYt5dJQBq8xyLhvS23qO+4Nr/RreibFHjP6t+5ap2ohZrUJcHv5zk5ju/g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", "cpu": [ "arm" ], @@ -3964,9 +2566,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.2.tgz", - "integrity": "sha512-Pg5TxxO2IVlMj79+c/9G0LREC9SY3HM+pfAwX7zj5/cAuwrbfj2Wv9JbMHIdPCfQpYsI4g9mE+2Bw/3aeSs2rQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", "cpu": [ "arm64" ], @@ -3977,9 +2579,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.2.tgz", - "integrity": "sha512-cAOTjGNm84gc6tS02D1EXtG7tDRsVSDTBVXOLbj31DkwfZwgTPYZ6aafSU7rD/4R2a34JOwlF9fQayuTSkoclA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", "cpu": [ "arm64" ], @@ -3990,9 +2592,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.2.tgz", - "integrity": "sha512-4RyT6v1kXb7C0fn6zV33rvaX05P0zHoNzaXI/5oFHklfKm602j+N4mn2YvoezQViRLPnxP8M1NaY4s/5kXO5cw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", "cpu": [ "ppc64" ], @@ -4003,9 +2605,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.2.tgz", - "integrity": "sha512-KNUH6jC/vRGAKSorySTyc/yRYlCwN/5pnMjXylfBniwtJx5O7X17KG/0efj8XM3TZU7raYRXJFFReOzNmL1n1w==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", "cpu": [ "riscv64" ], @@ -4016,9 +2618,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.2.tgz", - "integrity": "sha512-xPV4y73IBEXToNPa3h5lbgXOi/v0NcvKxU0xejiFw6DtIYQqOTMhZ2DN18/HrrP0PmiL3rGtRG9gz1QE8vFKXQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", "cpu": [ "s390x" ], @@ -4029,9 +2631,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.2.tgz", - "integrity": "sha512-QBhtr07iFGmF9egrPOWyO5wciwgtzKkYPNLVCFZTmr4TWmY0oY2Dm/bmhHjKRwZoGiaKdNcKhFtUMBKvlchH+Q==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", "cpu": [ "x64" ], @@ -4042,9 +2644,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.2.tgz", - "integrity": "sha512-8zfsQRQGH23O6qazZSFY5jP5gt4cFvRuKTpuBsC1ZnSWxV8ZKQpPqOZIUtdfMOugCcBvFGRa1pDC/tkf19EgBw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", "cpu": [ "x64" ], @@ -4055,9 +2657,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.2.tgz", - "integrity": "sha512-H4s8UjgkPnlChl6JF5empNvFHp77Jx+Wfy2EtmYPe9G22XV+PMuCinZVHurNe8ggtwoaohxARJZbaH/3xjB/FA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", "cpu": [ "arm64" ], @@ -4068,9 +2670,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.2.tgz", - "integrity": "sha512-djqpAjm/i8erWYF0K6UY4kRO3X5+T4TypIqw60Q8MTqSBaQNpNXDhxdjpZ3ikgb+wn99svA7jxcXpiyg9MUsdw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", "cpu": [ "ia32" ], @@ -4081,9 +2683,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.2.tgz", - "integrity": "sha512-teAqzLT0yTYZa8ZP7zhFKEx4cotS8Tkk5XiqNMJhD4CpaWB1BHARE4Qy+RzwnXvSAYv+Q3jAqCVBS+PS+Yee8Q==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", "cpu": [ "x64" ], @@ -4094,28 +2696,28 @@ ] }, "node_modules/@schematics/angular": { - "version": "17.3.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.4.tgz", - "integrity": "sha512-Rqhp5l76Ej6BOZCHPrvHlA2SBkjv1aHFWAfW9gREke826j46D+fuA0eDAdgeVTz0Fx9e7XM3LdtWsz7CBlV4Ug==", + "version": "18.2.10", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.10.tgz", + "integrity": "sha512-2pDHT4aSzfs8Up4RQmHHuFd5FeuUebS1ZJwyt46MfXzRMFtzUZV/JKsIvDqyMwnkvFfLvgJyTCkl8JGw5jQObg==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.3.4", - "@angular-devkit/schematics": "17.3.4", - "jsonc-parser": "3.2.1" + "@angular-devkit/core": "18.2.10", + "@angular-devkit/schematics": "18.2.10", + "jsonc-parser": "3.3.1" }, "engines": { - "node": "^18.13.0 || >=20.9.0", + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@sigstore/bundle": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", - "integrity": "sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4131,62 +2733,58 @@ } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz", - "integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.0.tgz", - "integrity": "sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.3.0", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "make-fetch-happen": "^13.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "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/@sigstore/tuf": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.2.tgz", - "integrity": "sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0", - "tuf-js": "^2.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/verify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.0.tgz", - "integrity": "sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, "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" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, "node_modules/@swimlane/ngx-charts": { "version": "20.5.0", "resolved": "https://registry.npmjs.org/@swimlane/ngx-charts/-/ngx-charts-20.5.0.tgz", @@ -4253,22 +2851,22 @@ } }, "node_modules/@tufjs/models": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", - "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tweenjs/tween.js": { - "version": "23.1.1", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.1.tgz", - "integrity": "sha512-ZpboH7pCPPeyBWKf8c7TJswtCEQObFo3bOBYalm99NzZarATALYCo5OhbCa/n4RQyJyHfhkdx+hNrdL5ByFYDw==" + "version": "23.1.3", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", + "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==" }, "node_modules/@types/babel__core": { "version": "7.20.5", @@ -4307,44 +2905,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, "node_modules/@types/d3": { "version": "7.4.3", "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", @@ -4598,56 +3158,12 @@ "@types/d3-selection": "*" } }, - "node_modules/@types/eslint": { - "version": "8.56.9", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz", - "integrity": "sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", - "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, "node_modules/@types/file-saver": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz", @@ -4657,187 +3173,65 @@ "node_modules/@types/geojson": { "version": "7946.0.14", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", - "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", - "dev": true - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/luxon": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz", - "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/qs": { - "version": "6.9.14", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", - "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", "dev": true }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "node_modules/@types/luxon": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz", + "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==", "dev": true }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", "dev": true, "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "node_modules/@types/node": { + "version": "22.8.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.0.tgz", + "integrity": "sha512-84rafSBHC/z1i1E3p0cJwKA+CfYDNSXX9WSZBRopjIzLET8oNt6ht2tei4C7izwDeEiLLfdeSVBv1egOH916hg==", "dev": true, "dependencies": { - "@types/node": "*" + "undici-types": "~6.19.8" } }, - "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", - "dev": true, - "dependencies": { - "@types/node": "*" - } + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz", - "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz", + "integrity": "sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/type-utils": "7.6.0", - "@typescript-eslint/utils": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", - "debug": "^4.3.4", + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/type-utils": "8.11.0", + "@typescript-eslint/utils": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz", - "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "7.6.0", - "@typescript-eslint/utils": "7.6.0", - "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -4845,52 +3239,27 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz", - "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/typescript-estree": "7.6.0", - "semver": "^7.6.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.6.0.tgz", - "integrity": "sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.11.0.tgz", + "integrity": "sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/typescript-estree": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/typescript-estree": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -4899,16 +3268,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", - "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz", + "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0" + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -4916,62 +3285,18 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz", - "integrity": "sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/utils": "7.2.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz", + "integrity": "sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/typescript-estree": "8.11.0", + "@typescript-eslint/utils": "8.11.0", "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -4983,45 +3308,13 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/types": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", - "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", + "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", "dev": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -5029,22 +3322,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", - "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", + "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -5057,131 +3350,38 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", - "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", + "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "semver": "^7.5.4" + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/typescript-estree": "8.11.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", - "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", + "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/types": "8.11.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -5189,216 +3389,27 @@ } }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", - "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", - "dev": true, - "engines": { - "node": ">=14.6.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.46", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz", - "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==", + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", "dev": true, - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, "engines": { - "node": ">=14.15.0" - } - }, - "node_modules/@zkochan/js-yaml": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", - "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" + "node": ">=14.6.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/@zkochan/js-yaml/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==", + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, "node_modules/abbrev": { @@ -5421,19 +3432,6 @@ "node": ">=6.5" } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -5446,15 +3444,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -5473,33 +3462,6 @@ "node": ">=0.4.0" } }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", @@ -5526,59 +3488,21 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -5594,18 +3518,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -5615,14 +3527,17 @@ } }, "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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -5656,219 +3571,22 @@ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/autoprefixer": { - "version": "10.4.18", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", - "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001591", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "node": ">= 0.4" } }, "node_modules/axobject-query": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", - "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", - "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "node": ">= 0.4" } }, "node_modules/balanced-match": { @@ -5895,21 +3613,6 @@ } ] }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -5932,64 +3635,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/bonjour-service": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -6023,20 +3668,20 @@ } }, "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==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -6052,10 +3697,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -6091,30 +3736,14 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, - "engines": { - "node": ">= 0.8" - } + "optional": true, + "peer": true }, "node_modules/cacache": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", - "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", @@ -6135,32 +3764,10 @@ } }, "node_modules/cacache/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==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "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" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/callsites": { "version": "3.1.0", @@ -6170,19 +3777,10 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001609", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz", - "integrity": "sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==", + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "funding": [ { "type": "opencollective", @@ -6199,16 +3797,18 @@ ] }, "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==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chardet": { @@ -6255,15 +3855,6 @@ "node": ">=10" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -6295,6 +3886,72 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/cli-width": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", @@ -6317,36 +3974,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -6371,32 +3998,21 @@ "node": ">=0.8" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "color-name": "1.1.3" + "node": ">=7.0.0" } }, "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==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/colorette": { "version": "2.0.20", @@ -6404,236 +4020,40 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/compression/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/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "dependencies": { - "is-what": "^3.14.1" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "peer": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, - "node_modules/core-js-compat": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", - "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "browserslist": "^4.23.0" + "is-what": "^3.14.1" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, "node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -6682,9 +4102,9 @@ "dev": true }, "node_modules/critters": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.22.tgz", - "integrity": "sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==", + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.24.tgz", + "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -6696,76 +4116,6 @@ "postcss-media-query-parser": "^0.2.3" } }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/critters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/critters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/critters/node_modules/color-name": { - "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 - }, - "node_modules/critters/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -6779,41 +4129,6 @@ "node": ">= 8" } }, - "node_modules/css-loader": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", - "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.4", - "postcss-modules-scope": "^3.1.1", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -6842,18 +4157,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/d3-array": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", @@ -7093,11 +4396,11 @@ "dev": true }, "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==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -7114,18 +4417,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -7137,79 +4428,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/detect-it": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/detect-it/-/detect-it-4.0.1.tgz", "integrity": "sha512-dg5YBTJYvogK1+dA2mBUDKzOWfYZtHVba89SyZUhc4+e3i2tzgjANFg5lDRCd3UOtRcw00vUTMK8LELcMdicug==" }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/detect-passive-events": { "version": "2.0.3", @@ -7228,39 +4459,6 @@ "node": ">=0.3.1" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "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, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -7336,27 +4534,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/dotenv": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.2.tgz", - "integrity": "sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -7368,55 +4545,16 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/electron-to-chromium": { - "version": "1.4.736", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz", - "integrity": "sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==" + "version": "1.5.46", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.46.tgz", + "integrity": "sha512-1XDk0Z8/YRgB2t5GeEg8DPK592DLjVmd/5uwAu6c/S4Z0CUwV/RwYqe5GWxQqcoN3bJ5U7hYMiMRPZzpCzSBhQ==" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", @@ -7440,40 +4578,6 @@ "node": ">=0.10.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -7495,6 +4599,18 @@ "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, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -7507,6 +4623,7 @@ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, + "peer": true, "dependencies": { "prr": "~1.0.1" }, @@ -7522,106 +4639,53 @@ "is-arrayish": "^0.2.1" } }, - "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-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true - }, "node_modules/esbuild": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", - "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "dev": true, "hasInstallScript": true, - "optional": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.1", - "@esbuild/android-arm": "0.20.1", - "@esbuild/android-arm64": "0.20.1", - "@esbuild/android-x64": "0.20.1", - "@esbuild/darwin-arm64": "0.20.1", - "@esbuild/darwin-x64": "0.20.1", - "@esbuild/freebsd-arm64": "0.20.1", - "@esbuild/freebsd-x64": "0.20.1", - "@esbuild/linux-arm": "0.20.1", - "@esbuild/linux-arm64": "0.20.1", - "@esbuild/linux-ia32": "0.20.1", - "@esbuild/linux-loong64": "0.20.1", - "@esbuild/linux-mips64el": "0.20.1", - "@esbuild/linux-ppc64": "0.20.1", - "@esbuild/linux-riscv64": "0.20.1", - "@esbuild/linux-s390x": "0.20.1", - "@esbuild/linux-x64": "0.20.1", - "@esbuild/netbsd-x64": "0.20.1", - "@esbuild/openbsd-x64": "0.20.1", - "@esbuild/sunos-x64": "0.20.1", - "@esbuild/win32-arm64": "0.20.1", - "@esbuild/win32-ia32": "0.20.1", - "@esbuild/win32-x64": "0.20.1" - } - }, - "node_modules/esbuild-wasm": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz", - "integrity": "sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A==", - "dev": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" } }, "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==", "engines": { "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/eslint": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", @@ -7678,9 +4742,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", - "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -7721,21 +4785,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -7752,40 +4801,6 @@ "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "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 - }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -7857,15 +4872,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/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, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -7941,18 +4947,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -7982,19 +4976,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", @@ -8037,15 +5018,6 @@ "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", @@ -8054,21 +5026,6 @@ "node": ">=6" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/eventsource": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", @@ -8077,98 +5034,12 @@ "node": ">=12.0.0" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/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 - }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", "dev": true }, - "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -8228,6 +5099,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -8236,18 +5113,6 @@ "reusify": "^1.0.4" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/fetch-cookie": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-2.2.0.tgz", @@ -8257,21 +5122,6 @@ "tough-cookie": "^4.0.0" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -8289,31 +5139,10 @@ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "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==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8321,68 +5150,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "dev": true, - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/flat": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/flat/-/flat-6.0.1.tgz", @@ -8410,96 +5177,25 @@ }, "node_modules/flatted": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, "engines": { - "node": "*" + "node": ">=14" }, "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "node_modules/fs-extra": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", @@ -8525,12 +5221,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", - "dev": true - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8575,41 +5265,13 @@ "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-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "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==", + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8661,38 +5323,6 @@ "node": ">=4" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "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", @@ -8719,54 +5349,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, "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==", - "engines": { - "node": ">=4" - } - }, - "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, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/hasown": { @@ -8782,9 +5370,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" @@ -8794,72 +5382,11 @@ } }, "node_modules/hosted-git-info/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==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/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==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -8891,48 +5418,6 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", @@ -8946,34 +5431,10 @@ "node": ">= 14" } }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, "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, "dependencies": { "agent-base": "^7.0.2", @@ -8983,15 +5444,6 @@ "node": ">= 14" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -9004,18 +5456,6 @@ "node": ">=0.10.0" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -9036,18 +5476,18 @@ ] }, "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, "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", - "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, "dependencies": { "minimatch": "^9.0.0" @@ -9062,6 +5502,7 @@ "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, "optional": true, + "peer": true, "bin": { "image-size": "bin/image-size.js" }, @@ -9131,52 +5572,14 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", - "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/inquirer": { - "version": "9.2.15", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", - "integrity": "sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==", - "dev": true, - "dependencies": { - "@ljharb/through": "^2.3.12", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^3.2.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", @@ -9204,15 +5607,6 @@ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, - "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -9242,21 +5636,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -9297,58 +5676,22 @@ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true - }, - "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==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, + }, + "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==", "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, - "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==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-unicode-supported": { @@ -9366,40 +5709,15 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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 + "optional": true, + "peer": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -9448,27 +5766,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -9522,275 +5819,11 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "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 - }, - "node_modules/jake/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "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 - }, - "node_modules/jest-diff/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/jsbn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", @@ -9815,9 +5848,9 @@ "dev": true }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9847,9 +5880,9 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true }, "node_modules/jsonfile": { @@ -9921,15 +5954,6 @@ "node": "*" } }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "dependencies": { - "source-map-support": "^0.5.5" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -9939,39 +5963,13 @@ "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, "node_modules/less": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -9993,32 +5991,13 @@ "source-map": "~0.6.0" } }, - "node_modules/less-loader": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", - "dev": true, - "dependencies": { - "klona": "^2.0.4" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, "node_modules/less/node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "optional": true, + "peer": true, "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -10033,6 +6012,7 @@ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "optional": true, + "peer": true, "bin": { "semver": "bin/semver" } @@ -10043,6 +6023,7 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -10060,1587 +6041,1262 @@ "node": ">= 0.8.0" } }, - "node_modules/license-webpack-plugin": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", - "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", - "dev": true, - "dependencies": { - "webpack-sources": "^3.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { - "optional": true - } - } - }, - "node_modules/lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.deburr": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==" - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/log-symbols/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/luxon": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", - "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", - "dev": true, - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dev": true, - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/merge-stream": { - "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 - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=8.6" + "node": ">=18.0.0" } }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "bin": { - "mime": "cli.js" - }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "dependencies": { - "mime-db": "1.52.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/mini-css-extract-plugin": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", - "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lmdb": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.13.tgz", + "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "msgpackr": "^1.10.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" }, - "peerDependencies": { - "webpack": "^5.0.0" + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.0.13", + "@lmdb/lmdb-darwin-x64": "3.0.13", + "@lmdb/lmdb-linux-arm": "3.0.13", + "@lmdb/lmdb-linux-arm64": "3.0.13", + "@lmdb/lmdb-linux-x64": "3.0.13", + "@lmdb/lmdb-win32-x64": "3.0.13" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dependencies": { - "brace-expansion": "^2.0.1" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "node_modules/log-update/node_modules/ansi-escapes": { + "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, "dependencies": { - "minipass": "^7.0.3" + "environment": "^1.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, "engines": { - "node": ">= 8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/log-update/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/log-update/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-json-stream/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/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/log-update/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/minipass-pipeline/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/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/minipass-sized/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/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "yallist": "^3.0.2" } }, - "node_modules/minizlib/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/luxon": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "engines": { + "node": ">=12" + } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==" + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "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" }, - "bin": { - "multicast-dns": "cli.js" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "dev": true, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=8.6" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, + "peer": true, "bin": { - "needle": "bin/needle" + "mime": "cli.js" }, "engines": { - "node": ">= 4.4.x" + "node": ">=4" } }, - "node_modules/needle/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "dev": true, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "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 - }, - "node_modules/ng-circle-progress": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/ng-circle-progress/-/ng-circle-progress-1.7.1.tgz", - "integrity": "sha512-XAsd/FRWC4lqO7pUakwniO1c+ew3zr+Un/pZ58aqdE1aq3iS7kquxDmzOOCZ2XoUhU/6vC31e/DSYHvlHhITkA==", - "dependencies": { - "tslib": "^2.0.0" + "node": ">=18" }, - "peerDependencies": { - "@angular/common": ">=14.0.0", - "@angular/core": ">=14.0.0", - "rxjs": ">=6.4.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ng-lazyload-image": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/ng-lazyload-image/-/ng-lazyload-image-9.1.3.tgz", - "integrity": "sha512-GlajmzbKhQCvg9pcrASq4fe/MNv9KoifGe6N+xRbseaBrNj2uwU4Vwic041NlmAQFEkpDM1H2EJCAjjmJeF7Hg==", + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { - "tslib": "^2.3.0" + "brace-expansion": "^2.0.1" }, - "peerDependencies": { - "@angular/common": ">=11.0.0", - "@angular/core": ">=11.0.0", - "rxjs": ">=6.0.0" - } - }, - "node_modules/ng-select2-component": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/ng-select2-component/-/ng-select2-component-14.0.1.tgz", - "integrity": "sha512-eynfQXr2rtAfi6ex9E6LWOrPeG2YjoU7nzBpa0XFbxGgapXRInA+HJyASwjHN95kLY4UJs+lkG2LfBAoDXk1qg==", - "dependencies": { - "ngx-infinite-scroll": ">=17.0.0", - "tslib": "^2.3.0" + "engines": { + "node": ">=16 || 14 >=14.17" }, - "peerDependencies": { - "@angular/cdk": ">=17.0.0", - "@angular/common": ">=17.0.0", - "@angular/core": ">=17.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ngx-color-picker": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-16.0.0.tgz", - "integrity": "sha512-Dk2FvcbebD6STZSVzkI5oFHOlTrrNC5bOHh+YVaFgaWuWrVUdVIJm68ocUvTgr/qxTEJjrfcnRnS4wi7BJ2hKg==", - "dependencies": { - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/common": ">=9.0.0", - "@angular/core": ">=9.0.0", - "@angular/forms": ">=9.0.0" + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/ngx-extended-pdf-viewer": { - "version": "18.1.14", - "resolved": "https://registry.npmjs.org/ngx-extended-pdf-viewer/-/ngx-extended-pdf-viewer-18.1.14.tgz", - "integrity": "sha512-8nz0sQWPn3BrN8rLy0vHrORZ3FJWPKDBt2eOJANxTmEKr0mkVECHqOoK47EfZMrc/+zwCzJkzTskA9w3CzJM/A==", + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, "dependencies": { - "lodash.deburr": "^4.1.0", - "tslib": "^2.3.0" + "minipass": "^7.0.3" }, - "peerDependencies": { - "@angular/common": ">=12.0.0 <18.0.0", - "@angular/core": ">=12.0.0 <18.0.0" + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/ngx-file-drop": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/ngx-file-drop/-/ngx-file-drop-16.0.0.tgz", - "integrity": "sha512-33RPoZBAiMkV110Rzu3iOrzGcG5M20S4sAiwLzNylfJobu9qVw5XR83FhUelSeqJRoaDxXBRKAozYCSnUf2CNw==", + "node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "dev": true, "dependencies": { - "tslib": "^2.3.0" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" }, "engines": { - "node": ">= 14.5.0", - "npm": ">= 6.9.0" - }, - "peerDependencies": { - "@angular/common": ">=14.0.0", - "@angular/core": ">=14.0.0" - } - }, - "node_modules/ngx-infinite-scroll": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-17.0.0.tgz", - "integrity": "sha512-pQXLuRiuhRuDKD3nmgyW1V08JVNBepmk6nb8qjHc5hgsWNts01+R/p33rYcRDzcut6/PWqGyrZ9o9i8swzMYMA==", - "dependencies": { - "tslib": "^2.3.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, - "peerDependencies": { - "@angular/common": ">=17.0.0 <18.0.0", - "@angular/core": ">=17.0.0 <18.0.0" + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/ngx-slider-v2": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/ngx-slider-v2/-/ngx-slider-v2-17.0.0.tgz", - "integrity": "sha512-226pb8TeZWhmMiQQnPVBZmos2qZua2NgMsuwumxatIBy7UwOGg8xkcUl8HvXVg+rO5w733uvPMN/yz//7rReJw==", - "deprecated": "This fork was merged into the main repo. Please use @angular-slider/ngx-slider", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, "dependencies": { - "detect-passive-events": "^2.0.3", - "rxjs": "^7.8.1", - "tslib": "^2.3.0" + "minipass": "^3.0.0" }, - "peerDependencies": { - "@angular/common": "^17.0.3", - "@angular/core": "^17.0.3", - "@angular/forms": "^17.0.3" + "engines": { + "node": ">= 8" } }, - "node_modules/ngx-stars": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/ngx-stars/-/ngx-stars-1.6.5.tgz", - "integrity": "sha512-ZJ2R1XgIkBj5TsHSP8tl3QvbRBCi1awLO03Aod7ffDNG1i785ODw9gYlOAvsIrUmnY9ha1h21tTs5pBWXqA+5Q==", + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, "dependencies": { - "tslib": "^2.3.0" + "yallist": "^4.0.0" }, - "peerDependencies": { - "@angular/common": ">=2.0.0", - "@angular/core": ">=2.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/ngx-toaster": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ngx-toaster/-/ngx-toaster-1.0.1.tgz", - "integrity": "sha512-2XxTCT7+EWffb8wDpMLiFhwwZJ4B36Y1RM4m3rgG2cCt/8edsj3UzvqZjapF5wKwB+Jz8lVuVYJ94Hztcj83Cg==", - "peerDependencies": { - "@angular/common": ">=4.3.0 || >5.0.0", - "@angular/compiler": ">=4.3.0 || >5.0.0", - "@angular/core": ">=4.3.0 || >5.0.0", - "@angular/forms": ">=4.3.0 || >5.0.0", - "rxjs": ">=5.4.3", - "typescript": ">=2.3.0" - } + "node_modules/minipass-flush/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/ngx-toastr": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-18.0.0.tgz", - "integrity": "sha512-jZ3rOG6kygl8ittY8OltIMSo47P1VStuS01igm3MZXK6InJwHVvxU7wDHI/HGMlXSyNvWncyOuFHnnMEAifsew==", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, "dependencies": { - "tslib": "^2.3.0" + "minipass": "^3.0.0" }, - "peerDependencies": { - "@angular/common": ">=16.0.0-0", - "@angular/core": ">=16.0.0-0", - "@angular/platform-browser": ">=16.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/nice-napi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "!win32" - ], "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true + "node_modules/minipass-pipeline/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/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "minipass": "^3.0.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=8" } }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">= 6.13.0" + "node": ">=8" } }, - "node_modules/node-gyp": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", - "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", + "node_modules/minipass-sized/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/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "node": ">= 8" } }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=16" + "node": ">=8" } }, - "node_modules/node-gyp/node_modules/which": { + "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, "bin": { - "node-which": "bin/which.js" + "mkdirp": "bin/cmd.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/node-machine-id": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", - "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", - "dev": true + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "node_modules/msgpackr": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", + "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", "dev": true, - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" } }, - "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==", + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", "dev": true, + "hasInstallScript": true, + "optional": true, "dependencies": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" + "node-gyp-build-optional-packages": "5.2.2" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nosleep.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", - "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==" + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, - "node_modules/npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 4.4.x" } }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "semver": "^7.1.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.6" } }, - "node_modules/npm-package-arg": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", - "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", - "dev": true, + "node_modules/ng-circle-progress": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ng-circle-progress/-/ng-circle-progress-1.7.1.tgz", + "integrity": "sha512-XAsd/FRWC4lqO7pUakwniO1c+ew3zr+Un/pZ58aqdE1aq3iS7kquxDmzOOCZ2XoUhU/6vC31e/DSYHvlHhITkA==", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "tslib": "^2.0.0" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "peerDependencies": { + "@angular/common": ">=14.0.0", + "@angular/core": ">=14.0.0", + "rxjs": ">=6.4.0" } }, - "node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", - "dev": true, + "node_modules/ng-lazyload-image": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/ng-lazyload-image/-/ng-lazyload-image-9.1.3.tgz", + "integrity": "sha512-GlajmzbKhQCvg9pcrASq4fe/MNv9KoifGe6N+xRbseaBrNj2uwU4Vwic041NlmAQFEkpDM1H2EJCAjjmJeF7Hg==", "dependencies": { - "ignore-walk": "^6.0.4" + "tslib": "^2.3.0" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "peerDependencies": { + "@angular/common": ">=11.0.0", + "@angular/core": ">=11.0.0", + "rxjs": ">=6.0.0" } }, - "node_modules/npm-pick-manifest": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", - "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", - "dev": true, + "node_modules/ng-select2-component": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/ng-select2-component/-/ng-select2-component-14.0.1.tgz", + "integrity": "sha512-eynfQXr2rtAfi6ex9E6LWOrPeG2YjoU7nzBpa0XFbxGgapXRInA+HJyASwjHN95kLY4UJs+lkG2LfBAoDXk1qg==", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" + "ngx-infinite-scroll": ">=17.0.0", + "tslib": "^2.3.0" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "peerDependencies": { + "@angular/cdk": ">=17.0.0", + "@angular/common": ">=17.0.0", + "@angular/core": ">=17.0.0" } }, - "node_modules/npm-registry-fetch": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", - "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", - "dev": true, + "node_modules/ngx-color-picker": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-17.0.0.tgz", + "integrity": "sha512-kHuhW4vErpb0LlBlgTnf1+cYWdaq0gOvDwiX9LeaFKNvhV5li+YEyk7tC3o1Sbhqd4lsFKb8zHyqi1teLWN4Zg==", "dependencies": { - "@npmcli/redact": "^1.1.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": "^4.0.0" + "tslib": "^2.3.0" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "peerDependencies": { + "@angular/common": ">=9.0.0", + "@angular/core": ">=9.0.0", + "@angular/forms": ">=9.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/proc-log": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.0.0.tgz", - "integrity": "sha512-v1lzmYxGDs2+OZnmYtYZK3DG8zogt+CbQ+o/iqqtTfpyCmGWulCTEQu5GIbivf7OjgIkH2Nr8SH8UxAGugZNbg==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node_modules/ngx-extended-pdf-viewer": { + "version": "21.4.6", + "resolved": "https://registry.npmjs.org/ngx-extended-pdf-viewer/-/ngx-extended-pdf-viewer-21.4.6.tgz", + "integrity": "sha512-+YlRznVS4tXdYYrWNRGCVY+9wJOi98giBxhYMMYFHt8FTLYPP+Fn1x3ovPnFngFYC47QEe1To3HqBVrF0Q/vZQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=16.0.0 <19.0.0 || ~18.1.0-rc.0", + "@angular/core": ">=16.0.0 <19.0.0 || ~18.1.0-rc.0" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, + "node_modules/ngx-file-drop": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/ngx-file-drop/-/ngx-file-drop-16.0.0.tgz", + "integrity": "sha512-33RPoZBAiMkV110Rzu3iOrzGcG5M20S4sAiwLzNylfJobu9qVw5XR83FhUelSeqJRoaDxXBRKAozYCSnUf2CNw==", "dependencies": { - "path-key": "^3.0.0" + "tslib": "^2.3.0" }, "engines": { - "node": ">=8" + "node": ">= 14.5.0", + "npm": ">= 6.9.0" + }, + "peerDependencies": { + "@angular/common": ">=14.0.0", + "@angular/core": ">=14.0.0" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, + "node_modules/ngx-infinite-scroll": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-18.0.0.tgz", + "integrity": "sha512-D183TDwpsd9Zl56UmItsl3RzHdN25srAISfg6lc3A8mEKkEgOq0s7ZzRAYcx8DHsAkMgtZqjIPEvMifD3DOB/g==", "dependencies": { - "boolbase": "^1.0.0" + "tslib": "^2.3.0" }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "peerDependencies": { + "@angular/common": ">=18.0.0 <19.0.0", + "@angular/core": ">=18.0.0 <19.0.0" } }, - "node_modules/nx": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/nx/-/nx-18.2.4.tgz", - "integrity": "sha512-GxqJcDOhfLa9jsPmip0jG73CZKA96wCryss2DhixCiCU66I3GLYF4+585ObO8Tx7Z1GqhT92RaNGjCxjMIwaPg==", - "dev": true, - "hasInstallScript": true, + "node_modules/ngx-stars": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/ngx-stars/-/ngx-stars-1.6.5.tgz", + "integrity": "sha512-ZJ2R1XgIkBj5TsHSP8tl3QvbRBCi1awLO03Aod7ffDNG1i785ODw9gYlOAvsIrUmnY9ha1h21tTs5pBWXqA+5Q==", "dependencies": { - "@nrwl/tao": "18.2.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "3.0.0-rc.46", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.6.0", - "chalk": "^4.1.0", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^8.0.1", - "dotenv": "~16.3.1", - "dotenv-expand": "~10.0.0", - "enquirer": "~2.3.6", - "figures": "3.2.0", - "flat": "^5.0.2", - "fs-extra": "^11.1.0", - "ignore": "^5.0.4", - "jest-diff": "^29.4.1", - "js-yaml": "4.1.0", - "jsonc-parser": "3.2.0", - "lines-and-columns": "~2.0.3", - "minimatch": "9.0.3", - "node-machine-id": "1.1.12", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "ora": "5.3.0", - "semver": "^7.5.3", - "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" - }, - "bin": { - "nx": "bin/nx.js", - "nx-cloud": "bin/nx-cloud.js" - }, - "optionalDependencies": { - "@nx/nx-darwin-arm64": "18.2.4", - "@nx/nx-darwin-x64": "18.2.4", - "@nx/nx-freebsd-x64": "18.2.4", - "@nx/nx-linux-arm-gnueabihf": "18.2.4", - "@nx/nx-linux-arm64-gnu": "18.2.4", - "@nx/nx-linux-arm64-musl": "18.2.4", - "@nx/nx-linux-x64-gnu": "18.2.4", - "@nx/nx-linux-x64-musl": "18.2.4", - "@nx/nx-win32-arm64-msvc": "18.2.4", - "@nx/nx-win32-x64-msvc": "18.2.4" + "tslib": "^2.3.0" }, "peerDependencies": { - "@swc-node/register": "^1.8.0", - "@swc/core": "^1.3.85" + "@angular/common": ">=2.0.0", + "@angular/core": ">=2.0.0" + } + }, + "node_modules/ngx-toastr": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-19.0.0.tgz", + "integrity": "sha512-6pTnktwwWD+kx342wuMOWB4+bkyX9221pAgGz3SHOJH0/MI9erLucS8PeeJDFwbUYyh75nQ6AzVtolgHxi52dQ==", + "dependencies": { + "tslib": "^2.3.0" }, - "peerDependenciesMeta": { - "@swc-node/register": { - "optional": true - }, - "@swc/core": { - "optional": true - } + "peerDependencies": { + "@angular/common": ">=16.0.0-0", + "@angular/core": ">=16.0.0-0", + "@angular/platform-browser": ">=16.0.0-0" } }, - "node_modules/nx/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" } }, - "node_modules/nx/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==", + "node_modules/nice-napi/node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", "dev": true }, - "node_modules/nx/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "4.x || >=6.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/nx/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/node-gyp": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">=7.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/nx/node_modules/color-name": { - "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 - }, - "node_modules/nx/node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", "dev": true, + "optional": true, "bin": { - "flat": "cli.js" - } - }, - "node_modules/nx/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, - "engines": { - "node": ">=8" + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "node_modules/nx/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==", + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "detect-libc": "^2.0.1" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" } }, - "node_modules/nx/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/nx/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, - "node_modules/nx/node_modules/ora": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", - "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "bl": "^4.0.3", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "isexe": "^3.1.1" }, - "engines": { - "node": ">=10" + "bin": { + "node-which": "bin/which.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/nx/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": ">=8" - } - }, - "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": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/normalize-package-data": { + "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, "dependencies": { - "ee-first": "1.1.1" + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": ">= 0.8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "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==", - "dependencies": { - "wrappy": "1" - } + "node_modules/nosleep.js": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", + "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==" }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/npm-bundled": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dev": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "semver": "^7.1.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, - "bin": { - "opener": "bin/opener-bin.js" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "dev": true, "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "ignore-walk": "^6.0.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/npm-pick-manifest": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/npm-registry-fetch": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" + "boolbase": "^1.0.0" }, - "engines": { - "node": ">=7.0.0" + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/ora/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==", - "engines": { - "node": ">=8" + "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==", + "dependencies": { + "wrappy": "1" } }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dependencies": { - "has-flag": "^4.0.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dependencies": { - "p-try": "^2.0.0" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/ordered-binary": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.2.tgz", + "integrity": "sha512-JTo+4+4Fw7FreyAvlSLjb1BBVaxEQAacmjD3jjuyPZclpbEghTvQZbXBb2qPd2LeIMxiHwXBZUcpmG2Gl/mDEA==", + "dev": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/p-map": { @@ -11658,64 +7314,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/pacote": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", - "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", "dev": true, "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" @@ -11764,6 +7388,8 @@ "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.10" } @@ -11806,15 +7432,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -11863,345 +7480,90 @@ } }, "node_modules/path-scurry/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==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", - "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/piscina": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.4.0.tgz", - "integrity": "sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==", - "dev": true, - "optionalDependencies": { - "nice-napi": "^1.0.2" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/pkg-dir/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-loader": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", - "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", - "dev": true, - "dependencies": { - "cosmiconfig": "^9.0.0", - "jiti": "^1.20.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/postcss-loader/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 - }, - "node_modules/postcss-loader/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/postcss-loader/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, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" } }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=8" } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">=12" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, + "optional": true, + "peer": true, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=6" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/piscina": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", + "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "optionalDependencies": { + "nice-napi": "^1.0.2" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { - "node": ">=4" + "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true }, "node_modules/prelude-ls": { @@ -12213,47 +7575,15 @@ "node": ">= 0.8.0" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/process-nextick-args": { - "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 - }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -12273,40 +7603,13 @@ "node": ">=10" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "node_modules/psl": { "version": "1.9.0", @@ -12321,21 +7624,6 @@ "node": ">=6" } }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -12360,82 +7648,6 @@ } ] }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/read-package-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", - "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", - "dev": true, - "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/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -12479,83 +7691,6 @@ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "dev": true }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", - "dev": true - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/replace-in-file": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-7.1.0.tgz", @@ -12572,51 +7707,6 @@ "node": ">=10" } }, - "node_modules/replace-in-file/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/replace-in-file/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/replace-in-file/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/replace-in-file/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -12629,18 +7719,10 @@ "once": "^1.3.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/replace-in-file/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==", - "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/replace-in-file/node_modules/minimatch": { @@ -12654,17 +7736,6 @@ "node": ">=10" } }, - "node_modules/replace-in-file/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -12704,54 +7775,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -12788,9 +7811,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, "node_modules/rimraf": { "version": "3.0.2", @@ -12839,405 +7862,151 @@ }, "node_modules/rimraf/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/rollup": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.2.tgz", - "integrity": "sha512-WkeoTWvuBoFjFAhsEOHKRoZ3r9GfTyhh7Vff1zwebEFLEFjT1lG3784xEgKiTa7E+e70vsC81roVL2MP4tgEEQ==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.14.2", - "@rollup/rollup-android-arm64": "4.14.2", - "@rollup/rollup-darwin-arm64": "4.14.2", - "@rollup/rollup-darwin-x64": "4.14.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.2", - "@rollup/rollup-linux-arm64-gnu": "4.14.2", - "@rollup/rollup-linux-arm64-musl": "4.14.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.2", - "@rollup/rollup-linux-riscv64-gnu": "4.14.2", - "@rollup/rollup-linux-s390x-gnu": "4.14.2", - "@rollup/rollup-linux-x64-gnu": "4.14.2", - "@rollup/rollup-linux-x64-musl": "4.14.2", - "@rollup/rollup-win32-arm64-msvc": "4.14.2", - "@rollup/rollup-win32-ia32-msvc": "4.14.2", - "@rollup/rollup-win32-x64-msvc": "4.14.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.71.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", - "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-loader": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", - "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", - "dev": true, - "dependencies": { - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true, - "optional": true - }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/screenfull": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-6.0.2.tgz", - "integrity": "sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==", - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "dev": true, - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/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/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "randombytes": "^2.1.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "node_modules/rollup": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", "dev": true, "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">= 0.8.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", + "fsevents": "~2.3.2" } }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "ms": "2.0.0" + "queue-microtask": "^1.2.2" } }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, "engines": { - "node": ">= 0.6" + "node": ">=14.0.0" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", "dev": true, + "optional": true, + "peer": true + }, + "node_modules/screenfull": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-6.0.2.tgz", + "integrity": "sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==", "engines": { - "node": ">= 0.6" + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" } }, "node_modules/set-cookie-parser": { @@ -13245,41 +8014,6 @@ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" }, - "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/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -13299,33 +8033,6 @@ "node": ">=8" } }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -13338,17 +8045,17 @@ } }, "node_modules/sigstore": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.0.tgz", - "integrity": "sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, "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" @@ -13368,13 +8075,44 @@ "node": ">= 10" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/smart-buffer": { @@ -13387,17 +8125,6 @@ "npm": ">= 3.0.0" } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, "node_modules/socks": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", @@ -13413,14 +8140,14 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, "dependencies": { "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -13436,42 +8163,10 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", - "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" - } - }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, "engines": { "node": ">=0.10.0" } @@ -13481,6 +8176,8 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -13491,6 +8188,8 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -13522,45 +8221,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==", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "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 }, "node_modules/ssr-window": { @@ -13569,9 +8232,9 @@ "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==" }, "node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, "dependencies": { "minipass": "^7.0.3" @@ -13580,15 +8243,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -13647,24 +8301,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -13674,35 +8310,18 @@ "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - }, - "bin": { - "sl-log-transformer": "bin/sl-log-transformer.js" - }, - "engines": { - "node": ">=4" + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -13749,15 +8368,6 @@ "node": ">=0.10" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", @@ -13775,22 +8385,6 @@ "node": ">=10" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -13831,10 +8425,12 @@ "dev": true }, "node_modules/terser": { - "version": "5.29.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", - "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -13848,180 +8444,12 @@ "node": ">=10" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -14033,15 +8461,6 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", @@ -14078,15 +8497,6 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", @@ -14142,34 +8552,20 @@ } } }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==" }, "node_modules/tuf-js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", - "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, "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" @@ -14199,30 +8595,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true - }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -14231,61 +8607,12 @@ "node": ">=14.17" } }, - "node_modules/undici": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", - "integrity": "sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==", - "dev": true, - "engines": { - "node": ">=18.0" - } - }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/unique-filename": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", @@ -14318,19 +8645,10 @@ "node": ">= 10.0.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -14346,8 +8664,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -14379,24 +8697,6 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -14414,35 +8714,23 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/vite": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", - "integrity": "sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", "dev": true, "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.35", - "rollup": "^4.2.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -14461,6 +8749,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -14478,6 +8767,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -14490,9 +8782,9 @@ } }, "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -14506,9 +8798,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -14522,9 +8814,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -14538,9 +8830,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -14554,9 +8846,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -14570,9 +8862,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -14586,9 +8878,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -14602,9 +8894,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -14618,9 +8910,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -14634,9 +8926,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -14650,9 +8942,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -14666,9 +8958,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -14682,9 +8974,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -14698,9 +8990,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -14714,9 +9006,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -14730,9 +9022,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -14746,9 +9038,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -14762,9 +9054,9 @@ } }, "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -14778,9 +9070,9 @@ } }, "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -14794,9 +9086,9 @@ } }, "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -14810,9 +9102,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -14826,9 +9118,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -14842,9 +9134,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -14858,47 +9150,75 @@ } }, "node_modules/vite/node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -14908,15 +9228,6 @@ "node": ">=10.13.0" } }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -14925,58 +9236,17 @@ "defaults": "^1.0.3" } }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, "node_modules/webpack-bundle-analyzer": { "version": "4.10.2", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", @@ -15024,290 +9294,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack-dev-middleware": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.2.tgz", - "integrity": "sha512-Wu+EHmX326YPYUpQLKmKbTyZZJIB8/n6R09pTmB03kJmnMsVPTo9COzHZFr01txwaCAuZvfBJE4ZCHRcKs5JaQ==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-merge/node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", - "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", - "dev": true, - "dependencies": { - "typed-assert": "^1.0.8" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/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 - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -15331,12 +9317,6 @@ "node": ">= 8" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -15368,69 +9348,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "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 - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -15515,13 +9432,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zone.js": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.4.tgz", - "integrity": "sha512-NtTUvIlNELez7Q1DzKVIFZBzNb646boQMgpATo9z3Ftuu/gWvzxCW7jdjcUDoRGxRikrhVHB/zLXh1hxeJawvw==", - "dependencies": { - "tslib": "^2.3.0" + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zone.js": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", + "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==" } } } diff --git a/UI/Web/package.json b/UI/Web/package.json index ec2df9657..07261704c 100644 --- a/UI/Web/package.json +++ b/UI/Web/package.json @@ -16,70 +16,69 @@ }, "private": true, "dependencies": { - "@angular/animations": "^17.3.4", - "@angular/cdk": "^17.3.4", - "@angular/common": "^17.3.4", - "@angular/compiler": "^17.3.4", - "@angular/core": "^17.3.4", - "@angular/forms": "^17.3.4", - "@angular/localize": "^17.3.4", - "@angular/platform-browser": "^17.3.4", - "@angular/platform-browser-dynamic": "^17.3.4", - "@angular/router": "^17.3.4", - "@fortawesome/fontawesome-free": "^6.5.2", + "@angular-slider/ngx-slider": "^18.0.0", + "@angular/animations": "^18.2.9", + "@angular/cdk": "^18.2.10", + "@angular/common": "^18.2.9", + "@angular/compiler": "^18.2.9", + "@angular/core": "^18.2.9", + "@angular/forms": "^18.2.9", + "@angular/localize": "^18.2.9", + "@angular/platform-browser": "^18.2.9", + "@angular/platform-browser-dynamic": "^18.2.9", + "@angular/router": "^18.2.9", + "@fortawesome/fontawesome-free": "^6.6.0", "@iharbeck/ngx-virtual-scroller": "^17.0.2", - "@iplab/ngx-file-upload": "^17.1.0", - "@jsverse/transloco": "^7.4.3", + "@iplab/ngx-file-upload": "^18.0.0", + "@jsverse/transloco": "^7.5.0", "@jsverse/transloco-locale": "^7.0.1", - "@jsverse/transloco-persist-lang": "^7.0.1", + "@jsverse/transloco-persist-lang": "^7.0.2", "@jsverse/transloco-persist-translations": "^7.0.1", "@jsverse/transloco-preload-langs": "^7.0.1", - "@microsoft/signalr": "^7.0.14", - "@ng-bootstrap/ng-bootstrap": "^16.0.0", + "@microsoft/signalr": "^8.0.7", + "@ng-bootstrap/ng-bootstrap": "^17.0.1", "@popperjs/core": "^2.11.7", "@swimlane/ngx-charts": "^20.5.0", - "@tweenjs/tween.js": "^23.1.1", + "@tweenjs/tween.js": "^23.1.3", "bootstrap": "^5.3.2", "charts.css": "^1.1.0", "file-saver": "^2.0.5", - "luxon": "^3.4.4", + "luxon": "^3.5.0", "ng-circle-progress": "^1.7.1", "ng-lazyload-image": "^9.1.3", "ng-select2-component": "^14.0.1", - "ngx-color-picker": "^16.0.0", - "ngx-extended-pdf-viewer": "^18.1.9", + "ngx-color-picker": "^17.0.0", + "ngx-extended-pdf-viewer": "^21.4.6", "ngx-file-drop": "^16.0.0", - "ngx-slider-v2": "^17.0.0", "ngx-stars": "^1.6.5", - "ngx-toaster": "^1.0.1", - "ngx-toastr": "^18.0.0", + "ngx-toastr": "^19.0.0", "nosleep.js": "^0.12.0", "rxjs": "^7.8.0", "screenfull": "^6.0.2", "swiper": "^8.4.6", - "tslib": "^2.6.2", - "zone.js": "^0.14.3" + "tslib": "^2.8.0", + "zone.js": "^0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.3.4", - "@angular-eslint/builder": "^17.3.0", - "@angular-eslint/eslint-plugin": "^17.3.0", - "@angular-eslint/eslint-plugin-template": "^17.3.0", - "@angular-eslint/schematics": "^17.3.0", - "@angular-eslint/template-parser": "^17.3.0", - "@angular/cli": "^17.3.4", - "@angular/compiler-cli": "^17.3.4", + "@angular-eslint/builder": "^18.4.0", + "@angular-eslint/eslint-plugin": "^18.4.0", + "@angular-eslint/eslint-plugin-template": "^18.4.0", + "@angular-eslint/schematics": "^18.4.0", + "@angular-eslint/template-parser": "^18.4.0", + "@angular/build": "^18.2.10", + "@angular/cli": "^18.2.10", + "@angular/compiler-cli": "^18.2.9", "@types/d3": "^7.4.3", "@types/file-saver": "^2.0.7", "@types/luxon": "^3.4.0", - "@types/node": "^20.10.0", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", + "@types/node": "^22.8.0", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.11.0", "eslint": "^8.57.0", "jsonminify": "^0.4.2", "karma-coverage": "~2.2.0", "ts-node": "~10.9.1", - "typescript": "^5.2.2", + "typescript": "^5.5.4", "webpack-bundle-analyzer": "^4.10.2" } } diff --git a/UI/Web/src/app/_interceptors/error.interceptor.ts b/UI/Web/src/app/_interceptors/error.interceptor.ts index 39b123562..503ca4516 100644 --- a/UI/Web/src/app/_interceptors/error.interceptor.ts +++ b/UI/Web/src/app/_interceptors/error.interceptor.ts @@ -1,10 +1,5 @@ import {Injectable} from '@angular/core'; -import { - HttpRequest, - HttpHandler, - HttpEvent, - HttpInterceptor -} from '@angular/common/http'; +import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http'; import { Observable, throwError } from 'rxjs'; import { Router } from '@angular/router'; import { ToastrService } from 'ngx-toastr'; diff --git a/UI/Web/src/app/_interceptors/jwt.interceptor.ts b/UI/Web/src/app/_interceptors/jwt.interceptor.ts index c81a784e6..711b8ee11 100644 --- a/UI/Web/src/app/_interceptors/jwt.interceptor.ts +++ b/UI/Web/src/app/_interceptors/jwt.interceptor.ts @@ -1,10 +1,5 @@ import {Injectable} from '@angular/core'; -import { - HttpRequest, - HttpHandler, - HttpEvent, - HttpInterceptor -} from '@angular/common/http'; +import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http'; import {Observable, switchMap} from 'rxjs'; import { AccountService } from '../_services/account.service'; import { take } from 'rxjs/operators'; diff --git a/UI/Web/src/app/_services/chapter.service.ts b/UI/Web/src/app/_services/chapter.service.ts index e373b9096..7a91eb0cf 100644 --- a/UI/Web/src/app/_services/chapter.service.ts +++ b/UI/Web/src/app/_services/chapter.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import {environment} from "../../environments/environment"; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {Chapter} from "../_models/chapter"; import {TextResonse} from "../_types/text-response"; diff --git a/UI/Web/src/app/_services/collection-tag.service.ts b/UI/Web/src/app/_services/collection-tag.service.ts index a256c43e9..df668f13a 100644 --- a/UI/Web/src/app/_services/collection-tag.service.ts +++ b/UI/Web/src/app/_services/collection-tag.service.ts @@ -1,4 +1,4 @@ -import {HttpClient} from '@angular/common/http'; +import { HttpClient } from '@angular/common/http'; import {Injectable} from '@angular/core'; import {environment} from 'src/environments/environment'; import {UserCollection} from '../_models/collection-tag'; diff --git a/UI/Web/src/app/_services/dashboard.service.ts b/UI/Web/src/app/_services/dashboard.service.ts index 9d9deeffb..7ece274bb 100644 --- a/UI/Web/src/app/_services/dashboard.service.ts +++ b/UI/Web/src/app/_services/dashboard.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import {TextResonse} from "../_types/text-response"; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {environment} from "../../environments/environment"; import {DashboardStream} from "../_models/dashboard/dashboard-stream"; diff --git a/UI/Web/src/app/_services/external-source.service.ts b/UI/Web/src/app/_services/external-source.service.ts index 0fd726fa6..5fbc5a397 100644 --- a/UI/Web/src/app/_services/external-source.service.ts +++ b/UI/Web/src/app/_services/external-source.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import {environment} from "../../environments/environment"; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {ExternalSource} from "../_models/sidenav/external-source"; import {TextResonse} from "../_types/text-response"; import {map} from "rxjs/operators"; diff --git a/UI/Web/src/app/_services/filter.service.ts b/UI/Web/src/app/_services/filter.service.ts index 7d2648072..2c47ff95d 100644 --- a/UI/Web/src/app/_services/filter.service.ts +++ b/UI/Web/src/app/_services/filter.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import {SeriesFilterV2} from "../_models/metadata/v2/series-filter-v2"; import {environment} from "../../environments/environment"; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {JumpKey} from "../_models/jumpbar/jump-key"; import {SmartFilter} from "../_models/metadata/v2/smart-filter"; diff --git a/UI/Web/src/app/_services/localization.service.ts b/UI/Web/src/app/_services/localization.service.ts index 23ba213b6..0c4e2bdbf 100644 --- a/UI/Web/src/app/_services/localization.service.ts +++ b/UI/Web/src/app/_services/localization.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import {environment} from "../../environments/environment"; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {Language} from "../_models/metadata/language"; @Injectable({ diff --git a/UI/Web/src/app/_services/metadata.service.ts b/UI/Web/src/app/_services/metadata.service.ts index 1fe171f66..d6280900d 100644 --- a/UI/Web/src/app/_services/metadata.service.ts +++ b/UI/Web/src/app/_services/metadata.service.ts @@ -1,4 +1,4 @@ -import {HttpClient} from '@angular/common/http'; +import { HttpClient } from '@angular/common/http'; import {Injectable} from '@angular/core'; import {tap} from 'rxjs/operators'; import {of} from 'rxjs'; diff --git a/UI/Web/src/app/_services/nav.service.ts b/UI/Web/src/app/_services/nav.service.ts index 2bec44706..7b1e4dd8c 100644 --- a/UI/Web/src/app/_services/nav.service.ts +++ b/UI/Web/src/app/_services/nav.service.ts @@ -1,7 +1,7 @@ import {DOCUMENT} from '@angular/common'; import {DestroyRef, inject, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2} from '@angular/core'; import {distinctUntilChanged, filter, ReplaySubject, take} from 'rxjs'; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {environment} from "../../environments/environment"; import {SideNavStream} from "../_models/sidenav/sidenav-stream"; import {TextResonse} from "../_types/text-response"; diff --git a/UI/Web/src/app/_services/person.service.ts b/UI/Web/src/app/_services/person.service.ts index 006909d3e..c91b71691 100644 --- a/UI/Web/src/app/_services/person.service.ts +++ b/UI/Web/src/app/_services/person.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import {HttpClient, HttpParams} from "@angular/common/http"; +import { HttpClient, HttpParams } from "@angular/common/http"; import {environment} from "../../environments/environment"; import {Person, PersonRole} from "../_models/metadata/person"; import {SeriesFilterV2} from "../_models/metadata/v2/series-filter-v2"; diff --git a/UI/Web/src/app/_services/scrobbling.service.ts b/UI/Web/src/app/_services/scrobbling.service.ts index c77a66ba3..fa2942ce8 100644 --- a/UI/Web/src/app/_services/scrobbling.service.ts +++ b/UI/Web/src/app/_services/scrobbling.service.ts @@ -1,4 +1,4 @@ -import {HttpClient, HttpParams} from '@angular/common/http'; +import { HttpClient, HttpParams } from '@angular/common/http'; import {Injectable} from '@angular/core'; import { map } from 'rxjs/operators'; import { environment } from 'src/environments/environment'; diff --git a/UI/Web/src/app/_services/theme.service.ts b/UI/Web/src/app/_services/theme.service.ts index 9390f25fb..26f1e46d9 100644 --- a/UI/Web/src/app/_services/theme.service.ts +++ b/UI/Web/src/app/_services/theme.service.ts @@ -1,5 +1,5 @@ import {DOCUMENT} from '@angular/common'; -import {HttpClient} from '@angular/common/http'; +import { HttpClient } from '@angular/common/http'; import { DestroyRef, inject, diff --git a/UI/Web/src/app/_services/volume.service.ts b/UI/Web/src/app/_services/volume.service.ts index c72d45aaa..16857b3d2 100644 --- a/UI/Web/src/app/_services/volume.service.ts +++ b/UI/Web/src/app/_services/volume.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import {environment} from "../../environments/environment"; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {Volume} from "../_models/volume"; import {TextResonse} from "../_types/text-response"; diff --git a/UI/Web/src/app/app.component.ts b/UI/Web/src/app/app.component.ts index c74c9f0fc..ba9c46a49 100644 --- a/UI/Web/src/app/app.component.ts +++ b/UI/Web/src/app/app.component.ts @@ -121,18 +121,18 @@ export class AppComponent implements OnInit { this.libraryService.getLibraryNames().pipe(take(1), shareReplay({refCount: true, bufferSize: 1})).subscribe(); // Get the server version, compare vs localStorage, and if different bust locale cache + const versionKey = 'kavita--version'; this.serverService.getVersion(user.apiKey).subscribe(version => { - const cachedVersion = localStorage.getItem('kavita--version'); + const cachedVersion = localStorage.getItem(versionKey); + console.log('Kavita version: ', version, ' Running version: ', cachedVersion); + if (cachedVersion == null || cachedVersion != version) { // Bust locale cache - localStorage.removeItem('@transloco/translations/timestamp'); - localStorage.removeItem('@transloco/translations'); - (this.translocoService as any).cache.delete(localStorage.getItem('kavita-locale') || 'en'); - (this.translocoService as any).cache.clear(); - localStorage.setItem('kavita--version', version); + this.bustLocaleCache(); + localStorage.setItem(versionKey, version); location.reload(); } - localStorage.setItem('kavita--version', version); + localStorage.setItem(versionKey, version); }); // Every hour, have the UI check for an update. People seriously stay out of date @@ -153,4 +153,12 @@ export class AppComponent implements OnInit { ) .subscribe(); } + + private bustLocaleCache() { + localStorage.removeItem('@transloco/translations/timestamp'); + localStorage.removeItem('@transloco/translations'); + localStorage.removeItem('translocoLang'); + (this.translocoService as any).cache.delete(localStorage.getItem('kavita-locale') || 'en'); + (this.translocoService as any).cache.clear(); + } } diff --git a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts index 38cef975e..0095c5052 100644 --- a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts +++ b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts @@ -30,7 +30,7 @@ import { take, tap } from 'rxjs'; -import {ChangeContext, LabelType, NgxSliderModule, Options} from 'ngx-slider-v2'; +import {ChangeContext, LabelType, NgxSliderModule, Options} from '@angular-slider/ngx-slider'; import {animate, state, style, transition, trigger} from '@angular/animations'; import {FormBuilder, FormControl, FormGroup, ReactiveFormsModule} from '@angular/forms'; import {NgbModal, NgbProgressbar} from '@ng-bootstrap/ng-bootstrap'; diff --git a/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.html b/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.html index f61035cf0..32dd053d0 100644 --- a/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.html +++ b/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.html @@ -21,7 +21,6 @@ height="100vh" [(page)]="currentPage" [textLayer]="true" - [useBrowserLocale]="true" [showHandToolButton]="true" [showOpenFileButton]="false" [showPrintButton]="false" diff --git a/UI/Web/src/app/shared/_models/download.ts b/UI/Web/src/app/shared/_models/download.ts index 035b3e70b..fd7f0fc32 100644 --- a/UI/Web/src/app/shared/_models/download.ts +++ b/UI/Web/src/app/shared/_models/download.ts @@ -1,10 +1,4 @@ -import { - HttpEvent, - HttpEventType, - HttpHeaders, - HttpProgressEvent, - HttpResponse - } from "@angular/common/http"; +import { HttpEvent, HttpEventType, HttpHeaders, HttpProgressEvent, HttpResponse } from "@angular/common/http"; import { Observable } from "rxjs"; import { scan } from "rxjs/operators"; diff --git a/UI/Web/src/app/shared/_services/filter-utilities.service.ts b/UI/Web/src/app/shared/_services/filter-utilities.service.ts index 1cb7c70c1..a8c615149 100644 --- a/UI/Web/src/app/shared/_services/filter-utilities.service.ts +++ b/UI/Web/src/app/shared/_services/filter-utilities.service.ts @@ -7,7 +7,7 @@ import {FilterStatement} from "../../_models/metadata/v2/filter-statement"; import {FilterCombination} from "../../_models/metadata/v2/filter-combination"; import {FilterField} from "../../_models/metadata/v2/filter-field"; import {FilterComparison} from "../../_models/metadata/v2/filter-comparison"; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {TextResonse} from "../../_types/text-response"; import {environment} from "../../../environments/environment"; import {map, tap} from "rxjs/operators"; diff --git a/UI/Web/src/httpLoader.ts b/UI/Web/src/httpLoader.ts index 3f93a21d5..a8ed882a3 100644 --- a/UI/Web/src/httpLoader.ts +++ b/UI/Web/src/httpLoader.ts @@ -1,5 +1,5 @@ import {Injectable} from "@angular/core"; -import {HttpClient} from "@angular/common/http"; +import { HttpClient } from "@angular/common/http"; import {Translation, TranslocoLoader} from "@jsverse/transloco"; import cacheBusting from 'i18n-cache-busting.json'; // allowSyntheticDefaultImports must be true diff --git a/UI/Web/src/main.ts b/UI/Web/src/main.ts index b6914a3d3..bc532b8a7 100644 --- a/UI/Web/src/main.ts +++ b/UI/Web/src/main.ts @@ -12,7 +12,7 @@ import { AppRoutingModule } from './app/app-routing.module'; import { Title, BrowserModule, bootstrapApplication } from '@angular/platform-browser'; import { JwtInterceptor } from './app/_interceptors/jwt.interceptor'; import { ErrorInterceptor } from './app/_interceptors/error.interceptor'; -import {HTTP_INTERCEPTORS, withInterceptorsFromDi, provideHttpClient} from '@angular/common/http'; +import { HTTP_INTERCEPTORS, withInterceptorsFromDi, provideHttpClient } from '@angular/common/http'; import { provideTransloco, TranslocoConfig, TranslocoService diff --git a/UI/Web/tsconfig.json b/UI/Web/tsconfig.json index 66fe74ab0..967e87723 100644 --- a/UI/Web/tsconfig.json +++ b/UI/Web/tsconfig.json @@ -6,20 +6,19 @@ "outDir": "./dist/out-tsc", "removeComments": true, "forceConsistentCasingInFileNames": true, + "esModuleInterop": true, "strict": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "sourceMap": true, "resolveJsonModule": true, "declaration": false, - "downlevelIteration": true, "experimentalDecorators": true, "moduleResolution": "node", "importHelpers": true, "target": "ES2022", "module": "ES2022", "useDefineForClassFields": false, - "allowSyntheticDefaultImports": true, "lib": [ "ES2022", "dom" From 87b1a807ea0fb6c1e1244549a3c05a5fd231e1d8 Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Sat, 26 Oct 2024 06:19:42 -0500 Subject: [PATCH 2/7] Cleanup code and merge conflict left in PR. --- API/API.csproj | 4 +- API/Entities/MangaFile.cs | 2 +- API/Helpers/Builders/MangaFileBuilder.cs | 13 +- API/Helpers/KoreaderHelper.cs | 32 +- openapi.json | 1623 +++++++++++++++++++--- 5 files changed, 1451 insertions(+), 223 deletions(-) diff --git a/API/API.csproj b/API/API.csproj index b109d3d4a..3dcb7d92a 100644 --- a/API/API.csproj +++ b/API/API.csproj @@ -16,9 +16,7 @@ - -======= ->>>>>>> fc7f84f2bffadf9a0127d35fa01166c847b20dc0 + false ../favicon.ico diff --git a/API/Entities/MangaFile.cs b/API/Entities/MangaFile.cs index 74eb3bda6..80ece3a97 100644 --- a/API/Entities/MangaFile.cs +++ b/API/Entities/MangaFile.cs @@ -22,8 +22,8 @@ public class MangaFile : IEntityDate public required string FilePath { get; set; } /// /// A hash of the document using Koreader's unique hashing algorithm - /// KoreaderHash is only available for epub types /// + /// KoreaderHash is only available for epub types public string? KoreaderHash { get; set; } /// /// Number of pages for the given file diff --git a/API/Helpers/Builders/MangaFileBuilder.cs b/API/Helpers/Builders/MangaFileBuilder.cs index b4f065fc9..6c628f378 100644 --- a/API/Helpers/Builders/MangaFileBuilder.cs +++ b/API/Helpers/Builders/MangaFileBuilder.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.IO; using API.Entities; using API.Entities.Enums; @@ -61,12 +61,15 @@ public MangaFileBuilder WithId(int id) return this; } + /// + /// Generate the Hash on the underlying file + /// + /// Only applicable to Epubs public MangaFileBuilder WithHash() { - if (_mangaFile.Format == MangaFormat.Epub) - { - _mangaFile.KoreaderHash = KoreaderHelper.HashContents(_mangaFile.FilePath); - } + if (_mangaFile.Format != MangaFormat.Epub) return this; + + _mangaFile.KoreaderHash = KoreaderHelper.HashContents(_mangaFile.FilePath); return this; } diff --git a/API/Helpers/KoreaderHelper.cs b/API/Helpers/KoreaderHelper.cs index 22c882cfb..ad016188e 100644 --- a/API/Helpers/KoreaderHelper.cs +++ b/API/Helpers/KoreaderHelper.cs @@ -1,12 +1,8 @@ -using API.DTOs.Koreader; using API.DTOs.Progress; -using API.Services; using System; using System.IO; -using System.Linq; using System.Security.Cryptography; using System.Text; -using System.Text.RegularExpressions; namespace API.Helpers; @@ -21,17 +17,17 @@ public static class KoreaderHelper /// The path to the file to hash public static string HashContents(string filePath) { - if (string.IsNullOrEmpty(filePath)) + if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath)) { return null; } using var file = File.OpenRead(filePath); - var step = 1024; - var size = 1024; - MD5 md5 = MD5.Create(); - byte[] buffer = new byte[size]; + const int step = 1024; + const int size = 1024; + var md5 = MD5.Create(); + var buffer = new byte[size]; for (var i = -1; i < 10; i++) { @@ -48,15 +44,14 @@ public static string HashContents(string filePath) } file.Close(); - md5.TransformFinalBlock(new byte[0], 0, 0); - - return BitConverter.ToString(md5.Hash).Replace("-", string.Empty).ToUpper(); + md5.TransformFinalBlock(Array.Empty(), 0, 0); + return md5.Hash == null ? null : BitConverter.ToString(md5.Hash).Replace("-", string.Empty).ToUpper(); } /// - /// Koreader can identitfy documents based on contents or title. - /// For now we only support by contents. + /// Koreader can identify documents based on contents or title. + /// For now, we only support by contents. /// public static string HashTitle(string filePath) { @@ -74,16 +69,18 @@ public static void UpdateProgressDto(string koreaderPosition, ProgressDto progre { return; } + var docNumber = path[2].Replace("DocFragment[", string.Empty).Replace("]", string.Empty); - progress.PageNum = Int32.Parse(docNumber) - 1; + progress.PageNum = int.Parse(docNumber) - 1; var lastTag = path[5].ToUpper(); + if (lastTag == "A") { progress.BookScrollId = null; } else { - // The format that Kavita accpets as a progress string. It tells Kavita where Koreader last left off. + // The format that Kavita accepts as a progress string. It tells Kavita where Koreader last left off. progress.BookScrollId = $"//html[1]/BODY/APP-ROOT[1]/DIV[1]/DIV[1]/DIV[1]/APP-BOOK-READER[1]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/{lastTag}"; } } @@ -99,7 +96,8 @@ public static string GetKoreaderPosition(ProgressDto progressDto) } else { - lastTag = progressDto.BookScrollId.Split('/').Last().ToLower(); + var tokens = progressDto.BookScrollId.Split('/'); + lastTag = tokens[^1].ToLower(); } // The format that Koreader accepts as a progress string. It tells Koreader where Kavita last left off. return $"/body/DocFragment[{koreaderPageNumber}]/body/div/{lastTag}"; diff --git a/openapi.json b/openapi.json index 7071cdaff..f1a8eb1e5 100644 --- a/openapi.json +++ b/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.0.1", "info": { "title": "Kavita", - "description": "Kavita provides a set of APIs that are authenticated by JWT. JWT token can be copied from local storage. Assume all fields of a payload are required. Built against v0.8.3.2", + "description": "Kavita provides a set of APIs that are authenticated by JWT. JWT token can be copied from local storage. Assume all fields of a payload are required. Built against v0.8.3.18", "license": { "name": "GPL-3.0", "url": "https://github.com/Kareadita/Kavita/blob/develop/LICENSE" @@ -2758,6 +2758,67 @@ } } }, + "/api/Image/person-cover": { + "get": { + "tags": [ + "Image" + ], + "summary": "Returns cover image for Person", + "parameters": [ + { + "name": "personId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "apiKey", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Image/person-cover-by-name": { + "get": { + "tags": [ + "Image" + ], + "summary": "Returns cover image for Person", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "apiKey", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/api/Image/cover-upload": { "get": { "tags": [ @@ -2788,6 +2849,99 @@ } } }, + "/api/Koreader/{apiKey}/users/auth": { + "get": { + "tags": [ + "Koreader" + ], + "parameters": [ + { + "name": "apiKey", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Koreader/{apiKey}/syncs/progress": { + "put": { + "tags": [ + "Koreader" + ], + "parameters": [ + { + "name": "apiKey", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KoreaderBookDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/KoreaderBookDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/KoreaderBookDto" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Koreader/{apiKey}/syncs/progress/{ebookHash}": { + "get": { + "tags": [ + "Koreader" + ], + "parameters": [ + { + "name": "apiKey", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ebookHash", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/api/Library/create": { "post": { "tags": [ @@ -5136,28 +5290,15 @@ } } }, - "/api/Plugin/authenticate": { - "post": { + "/api/Person": { + "get": { "tags": [ - "Plugin" + "Person" ], - "summary": "Authenticate with the Server given an apiKey. This will log you in by returning the user object and the JWT token.", - "description": "This API is not fully built out and may require more information in later releases", "parameters": [ { - "name": "apiKey", - "in": "query", - "description": "API key which will be used to authenticate and return a valid user token back", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pluginName", + "name": "name", "in": "query", - "description": "Name of the Plugin", - "required": true, "schema": { "type": "string" } @@ -5169,17 +5310,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/UserDto" + "$ref": "#/components/schemas/PersonDto" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/UserDto" + "$ref": "#/components/schemas/PersonDto" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/UserDto" + "$ref": "#/components/schemas/PersonDto" } } } @@ -5187,19 +5328,15 @@ } } }, - "/api/Plugin/version": { + "/api/Person/roles": { "get": { "tags": [ - "Plugin" + "Person" ], - "summary": "Returns the version of the Kavita install", - "description": "This will log unauthorized requests to Security log", "parameters": [ { - "name": "apiKey", + "name": "name", "in": "query", - "description": "Required for authenticating to get result", - "required": true, "schema": { "type": "string" } @@ -5211,17 +5348,77 @@ "content": { "text/plain": { "schema": { - "type": "string" + "type": "array", + "items": { + "enum": [ + 1, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "type": "integer", + "format": "int32" + } } }, "application/json": { "schema": { - "type": "string" + "type": "array", + "items": { + "enum": [ + 1, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "type": "integer", + "format": "int32" + } } }, "text/json": { "schema": { - "type": "string" + "type": "array", + "items": { + "enum": [ + 1, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "type": "integer", + "format": "int32" + } } } } @@ -5229,15 +5426,24 @@ } } }, - "/api/Rating/overall": { - "get": { + "/api/Person/all": { + "post": { "tags": [ - "Rating" + "Person" ], "parameters": [ { - "name": "seriesId", + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", "in": "query", + "description": "If set to 0, will set as MaxInt", "schema": { "type": "integer", "format": "int32" @@ -5250,17 +5456,26 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/RatingDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/BrowsePersonDto" + } } }, "application/json": { "schema": { - "$ref": "#/components/schemas/RatingDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/BrowsePersonDto" + } } }, "text/json": { "schema": { - "$ref": "#/components/schemas/RatingDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/BrowsePersonDto" + } } } } @@ -5268,25 +5483,329 @@ } } }, - "/api/Reader/pdf": { + "/api/Person/update": { + "post": { + "tags": [ + "Person" + ], + "summary": "Updates the Person", + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePersonDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePersonDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpdatePersonDto" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/PersonDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/PersonDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/PersonDto" + } + } + } + } + } + } + }, + "/api/Person/series-known-for": { "get": { "tags": [ - "Reader" + "Person" ], - "summary": "Returns the PDF for the chapterId.", + "summary": "Returns the top 20 series that the \"person\" is known for. This will use Average Rating when applicable (Kavita+ field), else it's a random sort", "parameters": [ { - "name": "chapterId", + "name": "personId", "in": "query", "description": "", "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "apiKey", - "in": "query", + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesDto" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesDto" + } + } + } + } + } + } + } + }, + "/api/Person/chapters-by-role": { + "get": { + "tags": [ + "Person" + ], + "parameters": [ + { + "name": "personId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "role", + "in": "query", + "schema": { + "enum": [ + 1, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandaloneChapterDto" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandaloneChapterDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandaloneChapterDto" + } + } + } + } + } + } + } + }, + "/api/Plugin/authenticate": { + "post": { + "tags": [ + "Plugin" + ], + "summary": "Authenticate with the Server given an apiKey. This will log you in by returning the user object and the JWT token.", + "description": "This API is not fully built out and may require more information in later releases", + "parameters": [ + { + "name": "apiKey", + "in": "query", + "description": "API key which will be used to authenticate and return a valid user token back", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pluginName", + "in": "query", + "description": "Name of the Plugin", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + } + } + }, + "/api/Plugin/version": { + "get": { + "tags": [ + "Plugin" + ], + "summary": "Returns the version of the Kavita install", + "description": "This will log unauthorized requests to Security log", + "parameters": [ + { + "name": "apiKey", + "in": "query", + "description": "Required for authenticating to get result", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/Rating/overall": { + "get": { + "tags": [ + "Rating" + ], + "parameters": [ + { + "name": "seriesId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/RatingDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RatingDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/RatingDto" + } + } + } + } + } + } + }, + "/api/Reader/pdf": { + "get": { + "tags": [ + "Reader" + ], + "summary": "Returns the PDF for the chapterId.", + "parameters": [ + { + "name": "chapterId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "apiKey", + "in": "query", "schema": { "type": "string" } @@ -10274,12 +10793,12 @@ } } }, - "/api/Server/backup-db": { + "/api/Server/cleanup": { "post": { "tags": [ "Server" ], - "summary": "Performs an ad-hoc backup of the Database", + "summary": "Performs the nightly maintenance work on the Server. Can be heavy.", "responses": { "200": { "description": "OK" @@ -10287,7 +10806,20 @@ } } }, - "/api/Server/analyze-files": { + "/api/Server/backup-db": { + "post": { + "tags": [ + "Server" + ], + "summary": "Performs an ad-hoc backup of the Database", + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/Server/analyze-files": { "post": { "tags": [ "Server" @@ -12634,7 +13166,6 @@ ], "summary": "Uploads a new theme file", "requestBody": { - "description": "", "content": { "multipart/form-data": { "schema": { @@ -12642,6 +13173,7 @@ "properties": { "formFile": { "type": "string", + "description": "", "format": "binary" } } @@ -12962,6 +13494,39 @@ "deprecated": true } }, + "/api/Upload/person": { + "post": { + "tags": [ + "Upload" + ], + "summary": "Replaces person tag cover image and locks it with a base64 encoded image", + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UploadFileDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/UploadFileDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UploadFileDto" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/api/Users/delete-user": { "delete": { "tags": [ @@ -14730,7 +15295,8 @@ 5, 6, 7, - 8 + 8, + 9 ], "type": "integer", "description": "For system provided", @@ -15102,6 +15668,73 @@ }, "additionalProperties": false }, + "BrowsePersonDto": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "coverImageLocked": { + "type": "boolean" + }, + "primaryColor": { + "type": "string", + "nullable": true + }, + "secondaryColor": { + "type": "string", + "nullable": true + }, + "coverImage": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "asin": { + "type": "string", + "description": "ASIN for person", + "nullable": true + }, + "aniListId": { + "type": "integer", + "description": "https://anilist.co/staff/{AniListId}/", + "format": "int32" + }, + "malId": { + "type": "integer", + "description": "https://myanimelist.net/people/{MalId}/\r\nhttps://myanimelist.net/character/{MalId}/CharacterName", + "format": "int64" + }, + "hardcoverId": { + "type": "string", + "description": "https://hardcover.app/authors/{HardcoverId}", + "nullable": true + }, + "seriesCount": { + "type": "integer", + "description": "Number of Series this Person is the Writer for", + "format": "int32" + }, + "issueCount": { + "type": "integer", + "description": "Number or Issues this Person is the Writer for", + "format": "int32" + } + }, + "additionalProperties": false, + "description": "Used to browse writers and click in to see their series" + }, "BulkActionDto": { "type": "object", "properties": { @@ -15420,7 +16053,7 @@ "people": { "type": "array", "items": { - "$ref": "#/components/schemas/Person" + "$ref": "#/components/schemas/ChapterPeople" }, "description": "All people attached at a Chapter level. Usually Comics will have different people per issue.", "nullable": true @@ -16135,6 +16768,49 @@ "additionalProperties": false, "description": "Exclusively metadata about a given chapter" }, + "ChapterPeople": { + "required": [ + "role" + ], + "type": "object", + "properties": { + "chapterId": { + "type": "integer", + "format": "int32" + }, + "chapter": { + "$ref": "#/components/schemas/Chapter" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "person": { + "$ref": "#/components/schemas/Person" + }, + "role": { + "enum": [ + 1, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, "CollectionTag": { "required": [ "normalizedTitle", @@ -17831,6 +18507,38 @@ "additionalProperties": false, "description": "Represents an individual button in a Jump Bar" }, + "KoreaderBookDto": { + "type": "object", + "properties": { + "document": { + "type": "string", + "description": "This is the Koreader hash of the book. It is used to identify the book.", + "nullable": true + }, + "device_id": { + "type": "string", + "description": "A randomly generated id from the koreader device. Only used to maintain the Koreader interface.", + "nullable": true + }, + "device": { + "type": "string", + "description": "The Koreader device name. Only used to maintain the Koreader interface.", + "nullable": true + }, + "percentage": { + "type": "number", + "description": "Percent progress of the book. Only used to maintain the Koreader interface.", + "format": "float" + }, + "progress": { + "type": "string", + "description": "An XPath string read by Koreader to determine the location within the epub.\r\nEssentially, it is Koreader's equivalent to ProgressDto.BookScrollId.", + "nullable": true + } + }, + "additionalProperties": false, + "description": "This is the interface for receiving and sending updates to Koreader. The only fields\r\nthat are actually used are the Document and Progress fields." + }, "LanguageDto": { "required": [ "isoCode", @@ -18238,6 +18946,11 @@ "description": "Absolute path to the archive file", "nullable": true }, + "koreaderHash": { + "type": "string", + "description": "A hash of the document using Koreader's unique hashing algorithm", + "nullable": true + }, "pages": { "type": "integer", "description": "Number of pages for the given file", @@ -18555,8 +19268,7 @@ "Person": { "required": [ "name", - "normalizedName", - "role" + "normalizedName" ], "type": "object", "properties": { @@ -18572,37 +19284,57 @@ "type": "string", "nullable": true }, - "role": { - "enum": [ - 1, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], + "coverImage": { + "type": "string", + "nullable": true + }, + "coverImageLocked": { + "type": "boolean" + }, + "primaryColor": { + "type": "string", + "nullable": true + }, + "secondaryColor": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "asin": { + "type": "string", + "description": "ASIN for person", + "nullable": true + }, + "aniListId": { "type": "integer", + "description": "https://anilist.co/staff/{AniListId}/", "format": "int32" }, - "seriesMetadatas": { + "malId": { + "type": "integer", + "description": "https://myanimelist.net/people/{MalId}/\r\nhttps://myanimelist.net/character/{MalId}/CharacterName", + "format": "int64" + }, + "hardcoverId": { + "type": "string", + "description": "https://hardcover.app/authors/{HardcoverId}", + "nullable": true + }, + "chapterPeople": { "type": "array", "items": { - "$ref": "#/components/schemas/SeriesMetadata" + "$ref": "#/components/schemas/ChapterPeople" }, + "description": "https://metron.cloud/creator/{slug}/", "nullable": true }, - "chapterMetadatas": { + "seriesMetadataPeople": { "type": "array", "items": { - "$ref": "#/components/schemas/Chapter" + "$ref": "#/components/schemas/SeriesMetadataPeople" }, "nullable": true } @@ -18623,42 +19355,61 @@ "type": "string", "nullable": true }, - "role": { - "enum": [ - 1, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ], - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "PersonalToCDto": { - "required": [ - "chapterId", - "pageNumber", - "title" - ], - "type": "object", - "properties": { - "chapterId": { - "type": "integer", - "format": "int32" + "coverImageLocked": { + "type": "boolean" }, - "pageNumber": { + "primaryColor": { + "type": "string", + "nullable": true + }, + "secondaryColor": { + "type": "string", + "nullable": true + }, + "coverImage": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "asin": { + "type": "string", + "description": "ASIN for person", + "nullable": true + }, + "aniListId": { + "type": "integer", + "description": "https://anilist.co/staff/{AniListId}/", + "format": "int32" + }, + "malId": { + "type": "integer", + "description": "https://myanimelist.net/people/{MalId}/\r\nhttps://myanimelist.net/character/{MalId}/CharacterName", + "format": "int64" + }, + "hardcoverId": { + "type": "string", + "description": "https://hardcover.app/authors/{HardcoverId}", + "nullable": true + } + }, + "additionalProperties": false + }, + "PersonalToCDto": { + "required": [ + "chapterId", + "pageNumber", + "title" + ], + "type": "object", + "properties": { + "chapterId": { + "type": "integer", + "format": "int32" + }, + "pageNumber": { "type": "integer", "format": "int32" }, @@ -20285,36 +21036,6 @@ "type": "string", "nullable": true }, - "collectionTags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CollectionTag" - }, - "nullable": true, - "deprecated": true - }, - "genres": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Genre" - }, - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - }, - "nullable": true - }, - "people": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Person" - }, - "description": "All people attached at a Series level.", - "nullable": true - }, "ageRating": { "enum": [ 0, @@ -20436,13 +21157,43 @@ "releaseYearLocked": { "type": "boolean" }, - "series": { - "$ref": "#/components/schemas/Series" + "collectionTags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CollectionTag" + }, + "nullable": true, + "deprecated": true + }, + "genres": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Genre" + }, + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + }, + "nullable": true + }, + "people": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesMetadataPeople" + }, + "description": "All people attached at a Series level.", + "nullable": true }, "seriesId": { "type": "integer", "format": "int32" }, + "series": { + "$ref": "#/components/schemas/Series" + }, "rowVersion": { "type": "integer", "format": "int32", @@ -20698,6 +21449,49 @@ }, "additionalProperties": false }, + "SeriesMetadataPeople": { + "required": [ + "role" + ], + "type": "object", + "properties": { + "seriesMetadataId": { + "type": "integer", + "format": "int32" + }, + "seriesMetadata": { + "$ref": "#/components/schemas/SeriesMetadata" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "person": { + "$ref": "#/components/schemas/Person" + }, + "role": { + "enum": [ + 1, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, "SeriesRelation": { "type": "object", "properties": { @@ -21233,7 +22027,8 @@ 5, 6, 7, - 8 + 8, + 9 ], "type": "integer", "description": "For system provided", @@ -21515,88 +22310,479 @@ "additionalProperties": false, "description": "Sorting Options for a query" }, - "Tag": { - "required": [ - "normalizedTitle", - "title" - ], + "StandaloneChapterDto": { "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, - "title": { + "range": { "type": "string", + "description": "Range of chapters. Chapter 2-4 -> \"2-4\". Chapter 2 -> \"2\". If special, will be special name.", "nullable": true }, - "normalizedTitle": { + "number": { "type": "string", - "nullable": true + "description": "Smallest number of the Range.", + "nullable": true, + "deprecated": true }, - "seriesMetadatas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeriesMetadata" - }, + "minNumber": { + "type": "number", + "description": "This may be 0 under the circumstance that the Issue is \"Alpha\" or other non-standard numbers.", + "format": "float" + }, + "maxNumber": { + "type": "number", + "format": "float" + }, + "sortOrder": { + "type": "number", + "description": "The sorting order of the Chapter. Inherits from MinNumber, but can be overridden.", + "format": "float" + }, + "pages": { + "type": "integer", + "description": "Total number of pages in all MangaFiles", + "format": "int32" + }, + "isSpecial": { + "type": "boolean", + "description": "If this Chapter contains files that could only be identified as Series or has Special Identifier from filename" + }, + "title": { + "type": "string", + "description": "Used for books/specials to display custom title. For non-specials/books, will be set to API.DTOs.ChapterDto.Range", "nullable": true }, - "chapters": { + "files": { "type": "array", "items": { - "$ref": "#/components/schemas/Chapter" + "$ref": "#/components/schemas/MangaFileDto" }, + "description": "The files that represent this Chapter", "nullable": true - } - }, - "additionalProperties": false - }, - "TagDto": { - "required": [ - "title" - ], - "type": "object", - "properties": { - "id": { + }, + "pagesRead": { "type": "integer", + "description": "Calculated at API time. Number of pages read for this Chapter for logged in user.", "format": "int32" }, - "title": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "TokenRequestDto": { - "type": "object", - "properties": { - "token": { + "lastReadingProgressUtc": { "type": "string", - "nullable": true + "description": "The last time a chapter was read by current authenticated user", + "format": "date-time" }, - "refreshToken": { + "lastReadingProgress": { "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "TopReadDto": { - "type": "object", - "properties": { - "userId": { + "description": "The last time a chapter was read by current authenticated user", + "format": "date-time" + }, + "coverImageLocked": { + "type": "boolean", + "description": "If the Cover Image is locked for this entity" + }, + "volumeId": { "type": "integer", + "description": "Volume Id this Chapter belongs to", "format": "int32" }, - "username": { + "createdUtc": { "type": "string", - "nullable": true + "description": "When chapter was created", + "format": "date-time" }, - "comicsTime": { - "type": "number", - "description": "Amount of time read on Comic libraries", - "format": "float" + "lastModifiedUtc": { + "type": "string", + "format": "date-time" + }, + "created": { + "type": "string", + "description": "When chapter was created in local server time", + "format": "date-time" + }, + "releaseDate": { + "type": "string", + "description": "When the chapter was released.", + "format": "date-time" + }, + "titleName": { + "type": "string", + "description": "Title of the Chapter/Issue", + "nullable": true + }, + "summary": { + "type": "string", + "description": "Summary of the Chapter", + "nullable": true + }, + "ageRating": { + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + -1 + ], + "type": "integer", + "description": "Age Rating for the issue/chapter", + "format": "int32" + }, + "wordCount": { + "type": "integer", + "description": "Total words in a Chapter (books only)", + "format": "int64" + }, + "minHoursToRead": { + "type": "integer", + "format": "int32" + }, + "maxHoursToRead": { + "type": "integer", + "format": "int32" + }, + "avgHoursToRead": { + "type": "number", + "format": "float" + }, + "webLinks": { + "type": "string", + "description": "Comma-separated link of urls to external services that have some relation to the Chapter", + "nullable": true + }, + "isbn": { + "type": "string", + "description": "ISBN-13 (usually) of the Chapter", + "nullable": true + }, + "writers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "coverArtists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "publishers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "characters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "pencillers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "inkers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "imprints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "colorists": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "letterers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "editors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "translators": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "locations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonDto" + }, + "nullable": true + }, + "genres": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenreTagDto" + }, + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + }, + "description": "Collection of all Tags from underlying chapters for a Series", + "nullable": true + }, + "publicationStatus": { + "enum": [ + 0, + 1, + 2, + 3, + 4 + ], + "type": "integer", + "format": "int32" + }, + "language": { + "type": "string", + "description": "Language for the Chapter/Issue", + "nullable": true + }, + "count": { + "type": "integer", + "description": "Number in the TotalCount of issues", + "format": "int32" + }, + "totalCount": { + "type": "integer", + "description": "Total number of issues for the series", + "format": "int32" + }, + "languageLocked": { + "type": "boolean" + }, + "summaryLocked": { + "type": "boolean" + }, + "ageRatingLocked": { + "type": "boolean", + "description": "Locked by user so metadata updates from scan loop will not override AgeRating" + }, + "publicationStatusLocked": { + "type": "boolean", + "description": "Locked by user so metadata updates from scan loop will not override PublicationStatus" + }, + "genresLocked": { + "type": "boolean" + }, + "tagsLocked": { + "type": "boolean" + }, + "writerLocked": { + "type": "boolean" + }, + "characterLocked": { + "type": "boolean" + }, + "coloristLocked": { + "type": "boolean" + }, + "editorLocked": { + "type": "boolean" + }, + "inkerLocked": { + "type": "boolean" + }, + "imprintLocked": { + "type": "boolean" + }, + "lettererLocked": { + "type": "boolean" + }, + "pencillerLocked": { + "type": "boolean" + }, + "publisherLocked": { + "type": "boolean" + }, + "translatorLocked": { + "type": "boolean" + }, + "teamLocked": { + "type": "boolean" + }, + "locationLocked": { + "type": "boolean" + }, + "coverArtistLocked": { + "type": "boolean" + }, + "releaseYearLocked": { + "type": "boolean" + }, + "coverImage": { + "type": "string", + "nullable": true + }, + "primaryColor": { + "type": "string", + "nullable": true + }, + "secondaryColor": { + "type": "string", + "nullable": true + }, + "seriesId": { + "type": "integer", + "format": "int32" + }, + "libraryId": { + "type": "integer", + "format": "int32" + }, + "libraryType": { + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "type": "integer", + "format": "int32" + }, + "volumeTitle": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "Used on Person Profile page" + }, + "Tag": { + "required": [ + "normalizedTitle", + "title" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "normalizedTitle": { + "type": "string", + "nullable": true + }, + "seriesMetadatas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesMetadata" + }, + "nullable": true + }, + "chapters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Chapter" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "TagDto": { + "required": [ + "title" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TokenRequestDto": { + "type": "object", + "properties": { + "token": { + "type": "string", + "nullable": true + }, + "refreshToken": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TopReadDto": { + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int32" + }, + "username": { + "type": "string", + "nullable": true + }, + "comicsTime": { + "type": "number", + "description": "Amount of time read on Comic libraries", + "format": "float" }, "booksTime": { "type": "number", @@ -22143,6 +23329,45 @@ "additionalProperties": false, "description": "Update Notification denoting a new release available for user to update to" }, + "UpdatePersonDto": { + "required": [ + "coverImageLocked", + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "coverImageLocked": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true + }, + "aniListId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "malId": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "hardcoverId": { + "type": "string", + "nullable": true + }, + "asin": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, "UpdateReadingListByChapterDto": { "type": "object", "properties": { @@ -23283,6 +24508,10 @@ "name": "Image", "description": "Responsible for servicing up images stored in Kavita for entities" }, + { + "name": "Koreader", + "description": "The endpoint to interface with Koreader's Progress Sync plugin." + }, { "name": "Panels", "description": "For the Panels app explicitly" From 87b0d6a769697a2b965960593576f3da44ced711 Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Sat, 26 Oct 2024 06:20:43 -0500 Subject: [PATCH 3/7] Add a credit in case future needs require reaching out. --- API/Helpers/KoreaderHelper.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/API/Helpers/KoreaderHelper.cs b/API/Helpers/KoreaderHelper.cs index ad016188e..1f95aaf8f 100644 --- a/API/Helpers/KoreaderHelper.cs +++ b/API/Helpers/KoreaderHelper.cs @@ -6,6 +6,10 @@ namespace API.Helpers; +/// +/// All things related to Koreader +/// +/// Original developer: https://github.com/MFDeAngelo public static class KoreaderHelper { /// From 4073ffef663e3e780e30af65db4fb6422de4656d Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Sat, 26 Oct 2024 06:40:41 -0500 Subject: [PATCH 4/7] Need comments, dedicated dtos, and redo migration order. --- API/Controllers/KoreaderController.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/API/Controllers/KoreaderController.cs b/API/Controllers/KoreaderController.cs index 5fec418cb..7c46ec1f3 100644 --- a/API/Controllers/KoreaderController.cs +++ b/API/Controllers/KoreaderController.cs @@ -19,8 +19,7 @@ namespace API.Controllers; /// The endpoint to interface with Koreader's Progress Sync plugin. /// /// -/// Koreader uses a different form of athentication. It stores the user name -/// and password in headers. +/// Koreader uses a different form of authentication. It stores the username and password in headers. /// /// [AllowAnonymous] @@ -55,6 +54,7 @@ public async Task Authenticate(string apiKey) { var userId = await GetUserId(apiKey); var user = await _unitOfWork.UserRepository.GetUserByIdAsync(userId); + if (user == null) return Unauthorized(); return Ok(new { username = user.UserName }); } @@ -66,12 +66,12 @@ public async Task UpdateProgress(string apiKey, KoreaderBookDto r _logger.LogDebug("Koreader sync progress: {Progress}", request.Progress); var userId = await GetUserId(apiKey); await _koreaderService.SaveProgress(request, userId); - + return Ok(new { document = request.Document, timestamp = DateTime.UtcNow }); } [HttpGet("{apiKey}/syncs/progress/{ebookHash}")] - public async Task GetProgress(string apiKey, string ebookHash) + public async Task> GetProgress(string apiKey, string ebookHash) { var userId = await GetUserId(apiKey); var response = await _koreaderService.GetProgress(ebookHash, userId); From 9893c9f473fbe6ac9e56fa32677b48ed6a0bfb5b Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Sat, 26 Oct 2024 06:54:31 -0500 Subject: [PATCH 5/7] Redid the migration order to align with person migrations. --- ...> 20241026114311_KoreaderHash.Designer.cs} | 192 +++++++++++------- ...Hash.cs => 20241026114311_KoreaderHash.cs} | 0 .../Migrations/DataContextModelSnapshot.cs | 2 +- openapi.json | 19 +- 4 files changed, 141 insertions(+), 72 deletions(-) rename API/Data/Migrations/{20240914041512_KoreaderHash.Designer.cs => 20241026114311_KoreaderHash.Designer.cs} (96%) rename API/Data/Migrations/{20240914041512_KoreaderHash.cs => 20241026114311_KoreaderHash.cs} (100%) diff --git a/API/Data/Migrations/20240914041512_KoreaderHash.Designer.cs b/API/Data/Migrations/20241026114311_KoreaderHash.Designer.cs similarity index 96% rename from API/Data/Migrations/20240914041512_KoreaderHash.Designer.cs rename to API/Data/Migrations/20241026114311_KoreaderHash.Designer.cs index be1880176..1fbc03964 100644 --- a/API/Data/Migrations/20240914041512_KoreaderHash.Designer.cs +++ b/API/Data/Migrations/20241026114311_KoreaderHash.Designer.cs @@ -11,14 +11,14 @@ namespace API.Data.Migrations { [DbContext(typeof(DataContext))] - [Migration("20240914041512_KoreaderHash")] + [Migration("20241026114311_KoreaderHash")] partial class KoreaderHash { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "8.0.8"); + modelBuilder.HasAnnotation("ProductVersion", "8.0.10"); modelBuilder.Entity("API.Entities.AppRole", b => { @@ -734,8 +734,8 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("AlternateSeries") .HasColumnType("TEXT"); - b.Property("AvgHoursToRead") - .HasColumnType("INTEGER"); + b.Property("AvgHoursToRead") + .HasColumnType("REAL"); b.Property("CharacterLocked") .HasColumnType("INTEGER"); @@ -904,6 +904,24 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("Chapter"); }); + modelBuilder.Entity("API.Entities.ChapterPeople", b => + { + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("PersonId") + .HasColumnType("INTEGER"); + + b.Property("Role") + .HasColumnType("INTEGER"); + + b.HasKey("ChapterId", "PersonId", "Role"); + + b.HasIndex("PersonId"); + + b.ToTable("ChapterPeople"); + }); + modelBuilder.Entity("API.Entities.CollectionTag", b => { b.Property("Id") @@ -1537,14 +1555,38 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); + b.Property("AniListId") + .HasColumnType("INTEGER"); + + b.Property("Asin") + .HasColumnType("TEXT"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Description") + .HasColumnType("TEXT"); + + b.Property("HardcoverId") + .HasColumnType("TEXT"); + + b.Property("MalId") + .HasColumnType("INTEGER"); + b.Property("Name") .HasColumnType("TEXT"); b.Property("NormalizedName") .HasColumnType("TEXT"); - b.Property("Role") - .HasColumnType("INTEGER"); + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); b.HasKey("Id"); @@ -1815,8 +1857,8 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("AvgHoursToRead") - .HasColumnType("INTEGER"); + b.Property("AvgHoursToRead") + .HasColumnType("REAL"); b.Property("CoverImage") .HasColumnType("TEXT"); @@ -1909,6 +1951,24 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("Series"); }); + modelBuilder.Entity("API.Entities.SeriesMetadataPeople", b => + { + b.Property("SeriesMetadataId") + .HasColumnType("INTEGER"); + + b.Property("PersonId") + .HasColumnType("INTEGER"); + + b.Property("Role") + .HasColumnType("INTEGER"); + + b.HasKey("SeriesMetadataId", "PersonId", "Role"); + + b.HasIndex("PersonId"); + + b.ToTable("SeriesMetadataPeople"); + }); + modelBuilder.Entity("API.Entities.ServerSetting", b => { b.Property("Key") @@ -2046,8 +2106,8 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("AvgHoursToRead") - .HasColumnType("INTEGER"); + b.Property("AvgHoursToRead") + .HasColumnType("REAL"); b.Property("CoverImage") .HasColumnType("TEXT"); @@ -2155,21 +2215,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("ChapterGenre"); }); - modelBuilder.Entity("ChapterPerson", b => - { - b.Property("ChapterMetadatasId") - .HasColumnType("INTEGER"); - - b.Property("PeopleId") - .HasColumnType("INTEGER"); - - b.HasKey("ChapterMetadatasId", "PeopleId"); - - b.HasIndex("PeopleId"); - - b.ToTable("ChapterPerson"); - }); - modelBuilder.Entity("ChapterTag", b => { b.Property("ChaptersId") @@ -2344,21 +2389,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("AspNetUserTokens", (string)null); }); - modelBuilder.Entity("PersonSeriesMetadata", b => - { - b.Property("PeopleId") - .HasColumnType("INTEGER"); - - b.Property("SeriesMetadatasId") - .HasColumnType("INTEGER"); - - b.HasKey("PeopleId", "SeriesMetadatasId"); - - b.HasIndex("SeriesMetadatasId"); - - b.ToTable("PersonSeriesMetadata"); - }); - modelBuilder.Entity("SeriesMetadataTag", b => { b.Property("SeriesMetadatasId") @@ -2606,6 +2636,25 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Volume"); }); + modelBuilder.Entity("API.Entities.ChapterPeople", b => + { + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany("People") + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Person", "Person") + .WithMany("ChapterPeople") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Chapter"); + + b.Navigation("Person"); + }); + modelBuilder.Entity("API.Entities.Device", b => { b.HasOne("API.Entities.AppUser", "AppUser") @@ -2833,6 +2882,25 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Library"); }); + modelBuilder.Entity("API.Entities.SeriesMetadataPeople", b => + { + b.HasOne("API.Entities.Person", "Person") + .WithMany("SeriesMetadataPeople") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.SeriesMetadata", "SeriesMetadata") + .WithMany("People") + .HasForeignKey("SeriesMetadataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Person"); + + b.Navigation("SeriesMetadata"); + }); + modelBuilder.Entity("API.Entities.Volume", b => { b.HasOne("API.Entities.Series", "Series") @@ -2889,21 +2957,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .IsRequired(); }); - modelBuilder.Entity("ChapterPerson", b => - { - b.HasOne("API.Entities.Chapter", null) - .WithMany() - .HasForeignKey("ChapterMetadatasId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("API.Entities.Person", null) - .WithMany() - .HasForeignKey("PeopleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - modelBuilder.Entity("ChapterTag", b => { b.HasOne("API.Entities.Chapter", null) @@ -3030,21 +3083,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .IsRequired(); }); - modelBuilder.Entity("PersonSeriesMetadata", b => - { - b.HasOne("API.Entities.Person", null) - .WithMany() - .HasForeignKey("PeopleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("API.Entities.Metadata.SeriesMetadata", null) - .WithMany() - .HasForeignKey("SeriesMetadatasId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - modelBuilder.Entity("SeriesMetadataTag", b => { b.HasOne("API.Entities.Metadata.SeriesMetadata", null) @@ -3102,6 +3140,8 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) { b.Navigation("Files"); + b.Navigation("People"); + b.Navigation("UserProgress"); }); @@ -3116,6 +3156,18 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Series"); }); + modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b => + { + b.Navigation("People"); + }); + + modelBuilder.Entity("API.Entities.Person", b => + { + b.Navigation("ChapterPeople"); + + b.Navigation("SeriesMetadataPeople"); + }); + modelBuilder.Entity("API.Entities.ReadingList", b => { b.Navigation("Items"); diff --git a/API/Data/Migrations/20240914041512_KoreaderHash.cs b/API/Data/Migrations/20241026114311_KoreaderHash.cs similarity index 100% rename from API/Data/Migrations/20240914041512_KoreaderHash.cs rename to API/Data/Migrations/20241026114311_KoreaderHash.cs diff --git a/API/Data/Migrations/DataContextModelSnapshot.cs b/API/Data/Migrations/DataContextModelSnapshot.cs index 767351207..750cf77c3 100644 --- a/API/Data/Migrations/DataContextModelSnapshot.cs +++ b/API/Data/Migrations/DataContextModelSnapshot.cs @@ -15,7 +15,7 @@ partial class DataContextModelSnapshot : ModelSnapshot protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "8.0.8"); + modelBuilder.HasAnnotation("ProductVersion", "8.0.10"); modelBuilder.Entity("API.Entities.AppRole", b => { diff --git a/openapi.json b/openapi.json index f1a8eb1e5..ab9a495d4 100644 --- a/openapi.json +++ b/openapi.json @@ -2937,7 +2937,24 @@ ], "responses": { "200": { - "description": "OK" + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/KoreaderBookDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/KoreaderBookDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/KoreaderBookDto" + } + } + } } } } From 231db28a5e8716a346709c69d0c43de898f52df1 Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Sat, 26 Oct 2024 07:21:56 -0500 Subject: [PATCH 6/7] More cleanup, handling edge cases, and todos for original creator. --- API.Tests/Helpers/KoreaderHelperTests.cs | 2 +- API/Controllers/KoreaderController.cs | 22 +++---- .../Koreader/KoreaderProgressUpdateDto.cs | 9 +++ API/Data/Repositories/MangaFileRepository.cs | 14 +++-- .../Builders/KoreaderBookDtoBuilder.cs | 42 +++++++++++++ API/Helpers/KoreaderHelper.cs | 4 +- API/Services/KoreaderService.cs | 60 +++++++++++++------ 7 files changed, 115 insertions(+), 38 deletions(-) create mode 100644 API/DTOs/Koreader/KoreaderProgressUpdateDto.cs create mode 100644 API/Helpers/Builders/KoreaderBookDtoBuilder.cs diff --git a/API.Tests/Helpers/KoreaderHelperTests.cs b/API.Tests/Helpers/KoreaderHelperTests.cs index cebcd47ab..66d287a5d 100644 --- a/API.Tests/Helpers/KoreaderHelperTests.cs +++ b/API.Tests/Helpers/KoreaderHelperTests.cs @@ -21,7 +21,7 @@ public void GetEpubPositionDto(string koreaderPosition, int page, int? pNumber) expected.PageNum = page; var actual = EmptyProgressDto(); - KoreaderHelper.UpdateProgressDto(koreaderPosition, actual); + KoreaderHelper.UpdateProgressDto(actual, koreaderPosition); Assert.Equal(expected.BookScrollId, actual.BookScrollId); Assert.Equal(expected.PageNum, actual.PageNum); } diff --git a/API/Controllers/KoreaderController.cs b/API/Controllers/KoreaderController.cs index 7c46ec1f3..ec87f83f1 100644 --- a/API/Controllers/KoreaderController.cs +++ b/API/Controllers/KoreaderController.cs @@ -13,15 +13,15 @@ using static System.Net.WebRequestMethods; namespace API.Controllers; - #nullable enable + /// /// The endpoint to interface with Koreader's Progress Sync plugin. /// /// /// Koreader uses a different form of authentication. It stores the username and password in headers. +/// https://github.com/koreader/koreader/blob/master/plugins/kosync.koplugin/KOSyncClient.lua /// -/// [AllowAnonymous] public class KoreaderController : BaseApiController { @@ -59,17 +59,22 @@ public async Task Authenticate(string apiKey) return Ok(new { username = user.UserName }); } - + /// + /// Syncs book progress with Kavita. Will attempt to save the underlying reader position if possible. + /// + /// + /// + /// [HttpPut("{apiKey}/syncs/progress")] - public async Task UpdateProgress(string apiKey, KoreaderBookDto request) + public async Task> UpdateProgress(string apiKey, KoreaderBookDto request) { - _logger.LogDebug("Koreader sync progress: {Progress}", request.Progress); var userId = await GetUserId(apiKey); await _koreaderService.SaveProgress(request, userId); - return Ok(new { document = request.Document, timestamp = DateTime.UtcNow }); + return Ok(new KoreaderProgressUpdateDto{ Document = request.Document, Timestamp = DateTime.UtcNow }); } + [HttpGet("{apiKey}/syncs/progress/{ebookHash}")] public async Task> GetProgress(string apiKey, string ebookHash) { @@ -80,11 +85,6 @@ public async Task> GetProgress(string apiKey, stri return Ok(response); } - - /// - /// Gets the user from the API key - /// - /// The user's Id private async Task GetUserId(string apiKey) { try diff --git a/API/DTOs/Koreader/KoreaderProgressUpdateDto.cs b/API/DTOs/Koreader/KoreaderProgressUpdateDto.cs new file mode 100644 index 000000000..156100ea5 --- /dev/null +++ b/API/DTOs/Koreader/KoreaderProgressUpdateDto.cs @@ -0,0 +1,9 @@ +using System; + +namespace API.DTOs.Koreader; + +public class KoreaderProgressUpdateDto +{ + public string Document { get; set; } + public DateTime Timestamp { get; set; } +} diff --git a/API/Data/Repositories/MangaFileRepository.cs b/API/Data/Repositories/MangaFileRepository.cs index bfd59aafb..ca40bae42 100644 --- a/API/Data/Repositories/MangaFileRepository.cs +++ b/API/Data/Repositories/MangaFileRepository.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using API.Entities; @@ -11,7 +10,7 @@ public interface IMangaFileRepository { void Update(MangaFile file); Task> GetAllWithMissingExtension(); - Task GetByKoreaderHash(string hash); + Task GetByKoreaderHash(string hash); } public class MangaFileRepository : IMangaFileRepository @@ -35,9 +34,12 @@ public async Task> GetAllWithMissingExtension() .ToListAsync(); } - public Task GetByKoreaderHash(string hash) + public async Task GetByKoreaderHash(string hash) { - return _context.MangaFile - .FirstOrDefaultAsync(f => f.KoreaderHash == hash.ToUpper()); + if (string.IsNullOrEmpty(hash)) return null; + + return await _context.MangaFile + .FirstOrDefaultAsync(f => !string.IsNullOrEmpty(f.KoreaderHash) + && f.KoreaderHash.Equals(hash, System.StringComparison.CurrentCultureIgnoreCase)); } } diff --git a/API/Helpers/Builders/KoreaderBookDtoBuilder.cs b/API/Helpers/Builders/KoreaderBookDtoBuilder.cs new file mode 100644 index 000000000..368750ea3 --- /dev/null +++ b/API/Helpers/Builders/KoreaderBookDtoBuilder.cs @@ -0,0 +1,42 @@ +using API.DTOs.Koreader; + +namespace API.Helpers.Builders; + +public class KoreaderBookDtoBuilder : IEntityBuilder +{ + private readonly KoreaderBookDto _dto; + public KoreaderBookDto Build() => _dto; + + public KoreaderBookDtoBuilder(string documentHash) + { + _dto = new KoreaderBookDto() + { + Document = documentHash, + Device = "Kavita" + }; + } + + public KoreaderBookDtoBuilder WithDocument(string documentHash) + { + _dto.Document = documentHash; + return this; + } + + public KoreaderBookDtoBuilder WithProgress(string progress) + { + _dto.Progress = progress; + return this; + } + + public KoreaderBookDtoBuilder WithPercentage(int? pageNum, int pages) + { + _dto.Percentage = (pageNum ?? 0) / (float) pages; + return this; + } + + public KoreaderBookDtoBuilder WithDeviceId(string installId, int userId) + { + _dto.Device_id = installId; + return this; + } +} diff --git a/API/Helpers/KoreaderHelper.cs b/API/Helpers/KoreaderHelper.cs index 1f95aaf8f..7912edf74 100644 --- a/API/Helpers/KoreaderHelper.cs +++ b/API/Helpers/KoreaderHelper.cs @@ -66,7 +66,7 @@ public static string HashTitle(string filePath) return BitConverter.ToString(bytes).Replace("-", string.Empty); } - public static void UpdateProgressDto(string koreaderPosition, ProgressDto progress) + public static void UpdateProgressDto(ProgressDto progress, string koreaderPosition) { var path = koreaderPosition.Split('/'); if (path.Length < 6) @@ -94,6 +94,7 @@ public static string GetKoreaderPosition(ProgressDto progressDto) { string lastTag; var koreaderPageNumber = progressDto.PageNum + 1; + if (string.IsNullOrEmpty(progressDto.BookScrollId)) { lastTag = "a"; @@ -103,6 +104,7 @@ public static string GetKoreaderPosition(ProgressDto progressDto) var tokens = progressDto.BookScrollId.Split('/'); lastTag = tokens[^1].ToLower(); } + // The format that Koreader accepts as a progress string. It tells Koreader where Kavita last left off. return $"/body/DocFragment[{koreaderPageNumber}]/body/div/{lastTag}"; } diff --git a/API/Services/KoreaderService.cs b/API/Services/KoreaderService.cs index 0b60b2f32..1ed5ebbe5 100644 --- a/API/Services/KoreaderService.cs +++ b/API/Services/KoreaderService.cs @@ -1,7 +1,9 @@ using System.Threading.Tasks; using API.Data; using API.DTOs.Koreader; +using API.DTOs.Progress; using API.Helpers; +using API.Helpers.Builders; using Microsoft.Extensions.Logging; namespace API.Services; @@ -16,45 +18,65 @@ public interface IKoreaderService public class KoreaderService : IKoreaderService { - private IReaderService _readerService; - private IUnitOfWork _unitOfWork; - private ILogger _logger; + private readonly IReaderService _readerService; + private readonly IUnitOfWork _unitOfWork; + private readonly ILogger _logger; - public KoreaderService(IReaderService readerService, IUnitOfWork unitOfWork, - ILogger logger) + public KoreaderService(IReaderService readerService, IUnitOfWork unitOfWork, ILogger logger) { _readerService = readerService; _unitOfWork = unitOfWork; _logger = logger; } + /// + /// Given a Koreader hash, locate the underlying file and generate/update a progress event. + /// + /// + /// public async Task SaveProgress(KoreaderBookDto koreaderBookDto, int userId) { + _logger.LogDebug("Saving Koreader progress for {UserId}: {KoreaderProgress}", userId, koreaderBookDto.Progress); var file = await _unitOfWork.MangaFileRepository.GetByKoreaderHash(koreaderBookDto.Document); + if (file == null) return; + var userProgressDto = await _unitOfWork.AppUserProgressRepository.GetUserProgressDtoAsync(file.ChapterId, userId); + if (userProgressDto == null) + { + // TODO: Handle this case + userProgressDto = new ProgressDto() + { + ChapterId = file.ChapterId, + }; + } + // Update the bookScrollId if possible + KoreaderHelper.UpdateProgressDto(userProgressDto, koreaderBookDto.Progress); - _logger.LogInformation("Saving Koreader progress to Kavita: {KoreaderProgress}", koreaderBookDto.Progress); - KoreaderHelper.UpdateProgressDto(koreaderBookDto.Progress, userProgressDto); await _readerService.SaveReadingProgress(userProgressDto, userId); - - await _unitOfWork.CommitAsync(); } + /// + /// Returns a Koreader Dto representing current book and the progress within + /// + /// + /// + /// public async Task GetProgress(string bookHash, int userId) { + var settingsDto = await _unitOfWork.SettingsRepository.GetSettingsDtoAsync(); + var builder = new KoreaderBookDtoBuilder(bookHash); + var file = await _unitOfWork.MangaFileRepository.GetByKoreaderHash(bookHash); + + // TODO: How do we handle when file isn't found by hash? + if (file == null) return builder.Build(); + var progressDto = await _unitOfWork.AppUserProgressRepository.GetUserProgressDtoAsync(file.ChapterId, userId); - _logger.LogInformation("Transmitting Kavita progress to Koreader: {KoreaderProgress}", progressDto.BookScrollId); var koreaderProgress = KoreaderHelper.GetKoreaderPosition(progressDto); - var settingsDto = await _unitOfWork.SettingsRepository.GetSettingsDtoAsync(); - return new KoreaderBookDto - { - Document = bookHash, - Device_id = settingsDto.InstallId, - Device = "Kavita", - Progress = koreaderProgress, - Percentage = progressDto.PageNum / (float) file.Pages - }; + return builder.WithProgress(koreaderProgress) + .WithPercentage(progressDto?.PageNum, file.Pages) + .WithDeviceId(settingsDto.InstallId, userId) // TODO: Should we generate a hash for UserId + InstallId so that this DeviceId is unique to the user on the server? + .Build(); } } From 3b61fd25368fee209fffb1b7e7aec890b1319197 Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Sun, 27 Oct 2024 09:49:35 -0500 Subject: [PATCH 7/7] Fixed a bug in KoreaderHash lookup --- API/Data/Repositories/MangaFileRepository.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/API/Data/Repositories/MangaFileRepository.cs b/API/Data/Repositories/MangaFileRepository.cs index ca40bae42..3aca45bfe 100644 --- a/API/Data/Repositories/MangaFileRepository.cs +++ b/API/Data/Repositories/MangaFileRepository.cs @@ -39,7 +39,6 @@ public async Task> GetAllWithMissingExtension() if (string.IsNullOrEmpty(hash)) return null; return await _context.MangaFile - .FirstOrDefaultAsync(f => !string.IsNullOrEmpty(f.KoreaderHash) - && f.KoreaderHash.Equals(hash, System.StringComparison.CurrentCultureIgnoreCase)); + .FirstOrDefaultAsync(f => f.KoreaderHash != null && f.KoreaderHash.Equals(hash, System.StringComparison.CurrentCultureIgnoreCase)); } }

    41N`7$66wIz1rC5S{H~=#-Ly6iXxgabI4_w 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 M92|ZUa88H&f4_?JNdN!< literal 0 HcmV?d00001 diff --git a/API.Tests/Helpers/KoreaderHelperTests.cs b/API.Tests/Helpers/KoreaderHelperTests.cs new file mode 100644 index 000000000..cebcd47ab --- /dev/null +++ b/API.Tests/Helpers/KoreaderHelperTests.cs @@ -0,0 +1,60 @@ +using API.DTOs.Koreader; +using API.DTOs.Progress; +using API.Helpers; +using System.Runtime.CompilerServices; +using Xunit; + +namespace API.Tests.Helpers; + + +public class KoreaderHelperTests +{ + + [Theory] + [InlineData("/body/DocFragment[11]/body/div/a", 10, null)] + [InlineData("/body/DocFragment[1]/body/div/p[40]", 0, 40)] + [InlineData("/body/DocFragment[8]/body/div/p[28]/text().264", 7, 28)] + public void GetEpubPositionDto(string koreaderPosition, int page, int? pNumber) + { + var expected = EmptyProgressDto(); + expected.BookScrollId = pNumber.HasValue ? $"//html[1]/BODY/APP-ROOT[1]/DIV[1]/DIV[1]/DIV[1]/APP-BOOK-READER[1]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/P[{pNumber}]" : null; + expected.PageNum = page; + var actual = EmptyProgressDto(); + + KoreaderHelper.UpdateProgressDto(koreaderPosition, actual); + Assert.Equal(expected.BookScrollId, actual.BookScrollId); + Assert.Equal(expected.PageNum, actual.PageNum); + } + + + [Theory] + [InlineData("//html[1]/BODY/APP-ROOT[1]/DIV[1]/DIV[1]/DIV[1]/APP-BOOK-READER[1]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/P[20]", 5, "/body/DocFragment[6]/body/div/p[20]")] + [InlineData(null, 10, "/body/DocFragment[11]/body/div/a")] + public void GetKoreaderPosition(string scrollId, int page, string koreaderPosition) + { + var given = EmptyProgressDto(); + given.BookScrollId = scrollId; + given.PageNum = page; + + Assert.Equal(koreaderPosition, KoreaderHelper.GetKoreaderPosition(given)); + } + + [Theory] + [InlineData("./Data/AesopsFables.epub", "8795ACA4BF264B57C1EEDF06A0CEE688")] + public void GetKoreaderHash(string filePath, string hash) + { + Assert.Equal(KoreaderHelper.HashContents(filePath), hash); + } + + private ProgressDto EmptyProgressDto() + { + return new ProgressDto + { + ChapterId = 0, + PageNum = 0, + VolumeId = 0, + SeriesId = 0, + LibraryId = 0 + }; + } +} diff --git a/API/API.csproj b/API/API.csproj index 266d87192..b109d3d4a 100644 --- a/API/API.csproj +++ b/API/API.csproj @@ -12,11 +12,13 @@ latestmajor - - - - + + + + +======= +>>>>>>> fc7f84f2bffadf9a0127d35fa01166c847b20dc0 false ../favicon.ico @@ -55,41 +57,41 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + - + - + - - - - - + + + + + - + - - + + - + @@ -100,11 +102,11 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + - + diff --git a/API/Controllers/KoreaderController.cs b/API/Controllers/KoreaderController.cs new file mode 100644 index 000000000..5fec418cb --- /dev/null +++ b/API/Controllers/KoreaderController.cs @@ -0,0 +1,99 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Threading.Tasks; +using API.Data; +using API.Data.Repositories; +using API.DTOs.Koreader; +using API.Entities; +using API.Services; +using Kavita.Common; +using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.Logging; +using static System.Net.WebRequestMethods; + +namespace API.Controllers; + +#nullable enable +///