From 9597baf51a1df4724fde3b59fe91463e994f43f2 Mon Sep 17 00:00:00 2001 From: Oier Bravo Urtasun Date: Mon, 9 Jun 2025 18:51:15 +0200 Subject: [PATCH] amount from xlsx --- README.md | 16 +- auth.config.ts | 2 + example-data/.~lock.saldos.xlsx# | 1 + example-data/saldos.xlsx | Bin 0 -> 9320 bytes package-lock.json | 356 ++++++++++++++--------------- package.json | 9 +- src/api/index.ts | 62 +++++ src/components/KarKarCarAuth.astro | 19 ++ src/pages/index.astro | 20 +- 9 files changed, 295 insertions(+), 190 deletions(-) create mode 100644 example-data/.~lock.saldos.xlsx# create mode 100644 example-data/saldos.xlsx create mode 100644 src/api/index.ts create mode 100644 src/components/KarKarCarAuth.astro diff --git a/README.md b/README.md index b691769..fa19bc1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,14 @@ # How to: ## Start +- ``` +docker run --name keycloak \ + -e KEYCLOAK_ADMIN=admin \ + -e KEYCLOAK_ADMIN_PASSWORD=admin \ + --network=host \ + quay.io/keycloak/keycloak:24.0.0 \ + start-dev \ + --http-port=8180 +``` - `docker-compose up` - `docker-compose up -d` | Modo demonio - Keycloak: http://localhost:8180/ user/pass admin:admin @@ -28,4 +37,9 @@ KEYCLOAK_ISSUER=http://localhost:8180/realms/master ### OpenId info -- http://localhost:8180/realms/master/.well-known/openid-configuration \ No newline at end of file +- http://localhost:8180/realms/master/.well-known/openid-configuration + + +# ToDo: +- Service: saldo from mail | read csv,xlsx +- I+D: host astro server \ No newline at end of file diff --git a/auth.config.ts b/auth.config.ts index 6214195..9288f57 100644 --- a/auth.config.ts +++ b/auth.config.ts @@ -12,6 +12,8 @@ export default defineConfig({ clientId: import.meta.env.KEYCLOAK_CLIENT_ID, clientSecret: import.meta.env.KEYCLOAK_CLIENT_SECRET, issuer: import.meta.env.KEYCLOAK_ISSUER, + + }), ], diff --git a/example-data/.~lock.saldos.xlsx# b/example-data/.~lock.saldos.xlsx# new file mode 100644 index 0000000..f78c84b --- /dev/null +++ b/example-data/.~lock.saldos.xlsx# @@ -0,0 +1 @@ +,oier,XPS24,09.06.2025 18:50,file:///home/oier/.config/libreoffice/4; \ No newline at end of file diff --git a/example-data/saldos.xlsx b/example-data/saldos.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c58c574e107b653191777151cd5b76fded7dd92d GIT binary patch literal 9320 zcmaKS1zeQf@-XYtAq|28OH1z3-Q5j}lyrCJk}A3M($Z4WASEFJ5=(bVDk&hKBJeHm zd+*ij_rLG#Z=c^hbI#0}Gv_>W&Y3xyDnL{c6iiG^6t$=ihA6)Q4iYzYw{r9VbKX9y zlDgI3L2#pv0-{+j_?9Ix^Gn)P729Zesk<1Q?>D|E>h z>dd|ZVNx-9q4)U3oen08pwixFeYer}M#i5kk;$!G^lx#9?B8KMiQm1VdRSDE*L;Bv0lLO)}u- zSo*2cNA|H@^!Zpg1ENR3#X2`lV8_sZ)U0xh)%qjEjQW)kx%7d>`2j7}Fx)1wB21+U zWKCYPZ++(MH?a+~3;OcuZ5>wyL006^VtZKTV!pGaR?$?+wqnWrWfNBy&J%zc$JIm3 zlHid@bE=-6pZHOnDv9spcls$wyg}#;3g#|s{k1ZQexhFGz`f89qmxCTm8DzmL`T^z#sJ*+_m^Q-G$f zQ15oshE`h*v95Qe=EC>$UcJj|oeX`Q+VjX$?g4hGdT!`$BN^Xj=jVZg${YVdJkNfs zd?%IEKp!+cZ(%8HF&s8-rPvW^&8{WVM4A1kua>j7!34Nl%s*Z|m!5Oy)(oCNld8lz zpbRlaOs_y?)ft{i5kzosW*-;IU34fb*$dw=GP7_4bD-I2a35YeYl#(&LObp(`EXmR zc=V@la&X0C`;w(v)pRnA>Xf!WYfPld7>^};{^X$ip>&wPWNh2K19ut~8fe_u)G@s9 zp89D*Tw!`UbHb)DnXdpSD6YVNnmKrX&m0d=KSwK%+j(>FXxupqLK3uU@F>_clvi!` zg{D^y_kmUUjBY0HK{o)X9~b9Xs`lfotxpnKQkCXx$jS&_+Xy%m6KY}V`}nqrBDZgg%6V(Q|x^U*OtQQ zq?XUNRW2tfzM z>{u@M&zx3wwBKq1EWgy3M_e2Bq>tudY(oA`D~Kv=?D_?^LJo^72p1)Pxnnctani zM~g|?FX}(O8mk>ueP@o-0!~QGXFD~fT(5(c1jr2vL932c8T6jQCtJ+dy*X_vbI`K} z_0iY4-xe#;bK78PiX^VEQVDLk1Y&!imCXq8mgD&3*c7?gpXxowc*Vli+b@Tn`QgP4(%;&U{?nI3|I6ok*jib6dVv34sQ!B4 zy8V>?TCzqGYwdwt1hN4kk#pju^*F@CpR?(>-Y639<3I8Y@aaj?S9I|Be)$S(ZjH`r z@Ttuzu4=Psn1R6HdpF)1XG2XA4t!2^bVTX9A-4TXy$d<&V#C3GZLKqAGGM*pf}Qcc zDnRAk3-gZHY@l+g-vrhH8uLU})ADZMDD*nCEIvFm@WISW_0<>GJ=<=cX)E(4Ksi66 z{2k@NmG>%<=DCWvsGcUi%(|O#WVj!6EQEeiiu=8qr-{*w|0E>=ZuxG*Xpj>;S9$}u zHO!Br$Ls^hZqFdy%Ku)B?)`s;`DKz0V>OS(0m61B+ku-!sn+wkmk)0^C2w#?69fsi);vR&|qg;oP`mf50_2F;@P z#of3g+3CEXCa?#=3Eicor zYJSC!Vf*!A{g9(;cGmk*l*P@n^wQ->wf1_9ix#8wgJ$ZDuiNDs*9u~fQ}>!)g;b}V zw^yEc>CBCKf0sF~wY^z7%WKXnm)MV*O#r*R=EN6SHR4cFdFr#k>{Z*EdyRc`NQ-EN zi*HI;9ZzJp=kg{@4|T|WYd~bpMqKrUOl_S6wQ%guGzAMg{`5KHuAb?9%(}lMe6`jY zxwY>lV=OLe7<&|>7oa-7ohL!IXFg6gGDTwoO)6)XL)DpMIM4I=LmsFzuU6Qfx+PX~sI6TxAKgqJ#W#CL zydCY-(-7l$rqMR^(L*ojGryPL)gkYh!Z>03P@BpQ)Li((!OV_%!ZsrN?dp-R-Suo9 z(dGPctk(+-)6U$?%V5M@a*$b1-4}xvN1E!=GIF`#q_7w9yz|K?PsX*JwHB*Z56XOl zLO`7h^*`VGa?bF#DtNSxl&sP$ZJB+|VjHrZyjgT>L-?rqoZnR<*HC-nbhqYwXQ$SP zGloONQDU3v#$T*)%5l)?CS)>r524ZjRXmQ%WTMt%g|P75b3%cFqfnt6*zwZ=_U)Kd!1cEGkLf) zS2ZedJ-y|DaYVpXNC=6APh#@Kz9}Z`hOEcSN4$G}859vhL`X%?$>F1LCoZOI4rf#? zUkK2&g_%ilM@*h%;sLENezVK7rEvn{d%a)9(2~E1qH|IM!D0dl0J#KTT+FW|$BG`P z!BH7SQZV#<@^7|-%Uq#Mb>yy5>Z@XCX~)@7gV|9j_`PdElusv49LHanw5 zEjDW?8dgQBR;<>|cUwmXQeDHKtDw!bO7IXX40mB6@Nw*iYde}k$6qZLzhe3<+ZO#v3hncF1 zyFHO(J&;nbeJ`8^G*@E)2Q+?$JuQce0=~VlQC#kl&18t~V2Crj3IARgfSPy|DFvqv zMzujl)IG)J&u9gZ-<2F`?LLhCU?En$1Kdtx0ZD^Z<9mxJwv)=3*T-VQ3=SC`&=-n< zuIf}CN@}gNsq7;%U~@_tPIH?~TD=8Qfad*psyWN(M2O!{ULw`}4y4s^lIan@Q= z1sLuGPJX6+=Iyqo&Qqk^CW^81h~7Q7B+8rGM3S= z3ocV=fXd6QVRhcbd4Du}rPr_T!~a}}Ac_rx3IF?HdKq>*t_DBTt~mk!rb=5NWGd5w zM}(b`F_>;$UO$!SyArBVQe&jN!y6Jn%9p{`Yw2MgU0MD~*B%SIWf15ylQQpJ6U z7w@+8x^f#oWH<=T=>9#!`)j7x9!wep6yRtX)q6Z_`U&A-gGJE(W1l);yn+{9$c0v_ilN_V`+(_^&)oinbOch!rAeFN0YBEP` z(xx9Ql7{nGDyDdMo4u0hzw2Xd+fA?*7W%ERT z9124L)Hlv%Cj?C^ocFV7WeOT9&}BG;&TDvNDx#oEbs?wQ-3N=bJ_s1C)&g2+{^9+A z*^GQNDJaezPJAy4RhY(r`-7CXZCdmqfvX+YYI@!F}}cW^0)ijC1x zhXuaA!Ns(tAXwvuey|Aq@hHB%_^-D5$rrLe z5U;y9Wx#uV-J&Thj5@J2Hlk9>Bs6;ky-ySgy{>7!uT`ntmEH#FbWw0KC@=0~#47b$ zOT4s}=(W!K08~P!eogK&-$f$2zuzLbiqk`bFliNS%n6e0;N>r@hYDX3hy*a6R`C86aQ8}P|0+ZDtB5nx!$wwR zrU!U2L>jFe1hxhMz}eDVJ>rfbT0{>Eeq)fIVh*G!sa{GoTx^`6v&r~w8OM7bCo=7} z2g>*$hszn*an@XO)Ks&4m`UUU6SrmVRu>a@5fe8NbsW}o9*RwF7ibi!<3f(r$2!HY zPkZ_ZhGvOf zkLk=db$*xD<5Z&i+XdGpQzyW%)G@E4g3a>nLt<18ckGk-L^<7f#V#qv+^qRY?Xv2AqDU-0$yHYUqlg6ecJ9kBAlc27hEw`NX@)E6glu8YU`s@snT(}+ zq>u!6IXH<^R^3=og8Q{UG3>LwWUr_wqpf6R1%PWBsyGIHWB@cT2TTxC)V@aV)diYM z0nLr^o@bOkLdART#Rn>(B*390*t3^Zp<$$uk1r6hc z{4J=(TZH;?Ndngg2V9{7L!_s~O6VUVy<%?oQ zfJg8^SMPm=u(Z_U76^4=YbRd>6*WOrdGeo+A zm-z1p%F{|}V_s<6(L*=%>5`GCZ|M0JgozK0a=5EY9OuZ2m^5)tqs z{xsZTrWfTFe;iBL<>p|nf~*^8ep?rHePMJEySuUiB^23IF)6aCswQ@1&G9h8E-q|Z zPK8~Qhh~4(L~8ZqNCByeEQlqdZ7As9#LEx=AwK^3a}93dhKV$lPgugO0)BdaR*`0{ z?X)Q*JxO)W;qyqus6A5>3=7Ag_>mjjs zJP@i;P@`zL`zQ}YZ4~4s7Vf^t0|^?Hq|5_n^%vN>oFaFd{y&@8?6a;^JWl+z$t$jC zRI680ytUJ7&uflQBa%z>!`|{S9!gp!Dz4mmACED27 zc@e*@sj_KgvvweT>pWk`{a7=7=pqf*dZ@pL+T)3Y*S@~j_l||8@BSu^iv`!+Q^-Ts zqPvtt4dnJT5?~^c;=SfoTQ?tA?Vw+EVPkPqQssRI=CK| zCb+-hLsD5@z9k_XYa=Cbz|^)xebavuFn+_g+}FeQ`U0Q6dhlH5>~>Rsng64?dh*@d zBkjOfm*eTvL+6tgwO3{dV~C8_1`N0lyNQO6-tvs!yy4Vd;PKY%!AW(09Y=gN`(EIg zMJq@2nZJn>zjw&cNz=kz%#P*MWxCUAe5Me`$GUBGB0OWG&vR2Rb5R0*7_beUH+6vb zw)-{vM`+T9+IDDWyGQgIjjm^yYw9;P8-rR#->e1(1_{H1F14pke<%f?hTI-`)$!s} zs_vqokUsyXBQNFON8Y~!0KZ3J|BhNGsyX}>wZ0;izj&{NVG%3X5i3=F^$pOcwLaF% zpET2W6U=%43AWY#Sn}BH>08CKUEa9e=e;tx=;Z~dk=^gTF*`!94i7$3=#Lbvtl2Uq z)X)%Bv=h%k$(6u{^{0Z5In8@uBF04@l-0{-KeUD)Xn}`LlqRzQBcwW2Pk;^1Y?^Hz zJvTKLvv_w+3j^{X19(^??$n7q zkNk05uokN{gZFLZEC=4XwT#A>@BS0Welz}KWSZn}%Xrv6b+@wA@pQLy zw)rc}m}7tp1n?un(+0Ml30ozT)v=W%NuVfxCEsr!m3-$z6=kK>h&Ux%>zswQVG?6c z5`;F_9OAcV_Ii$s#JpyvLsK5^zkMHokK=lMGRB|$#43k>dH(BS^5kb(uhcTHW|1ti z@7wbllP~tH42JqVcOCspm%eVTXSH}-p~{H(@GoCnjl|3k>jg|J`Yf2Tn zZfMJBt5u$HuGU@Uuiq&xl^8ZGYx`WpEi;>^)_LP5Od))=_)_1LhJ9Ndyp0b6FU3_7 z+^-k3a+&r_{CVcLu39`2I0N41kvNf%CwGRW3GyeaIWe_Prl#Ss(7|4ZC_C$)0lD}T z(roF$^V~#T(Xn|r1CQ?P(A{56mJZnZVLBz%BoHTDrmBK%NO@TiQQV+Ejm}x6FMC&X z;gtDZ>N}I&Ys_KRW#ZJYimPH2EFmMOvuIyV3KVtF6MgCFnRBrftK%koy0`*jI-cJ2WpYj zyqavb436m2XVD~`N{{QX>r zchFb4f_7=}u5V-ih^!9QwhAwghAbIf%R{_`^oC*vZuWyAS>ozZy*KMh>M?QeQkc6= z=}ulMNu}^v%t6`%1l_d@cx02t$-o-lBEQ&gGDf$_YH+RgdgN{?qDc9e_rKRI&FG%~tWfiLjWb z`C=<+bQjC0$T4|R@vu_jX_vBj=Ri@rULzx7OfWL?@d5bF)znES=aGfs9sMD)FuRJ?vrM1Oq#(YTHo3#XdpBX{y7S)Tvb3v_MU~-oA2#B;jiUrLXIi>1Gf;VXC+j#!0kFP(y zcVWKHr>wi?%e=laq^t$kJHYtWNAr3Mdgydk!V#~Fn;J&2^JBk4ue2oI+?`VoNZQor zpCY214z1}}P*PNL>epxsePzdMi?J^_r%x-0+Dawi-8-kSAwQ?N>6;+7Wol~YK?8GU z&vB|+pb!P{+Y5}5oT}(cf7&GL_*vZj_=X{A_FI}8L+g+rgKE>8=S-D;G0H!ybex%64fFArpfH z?Wd%PM=z37#A_CG*T;!dVTP#d*4a+>iVudov(Ardllw?Mg)SZr`<`!o{;8STO`Wpc z2+wDT)XEb4@IRCC06S(f*`rrYo#(C1Zf%rP@on~0MFR#) zO64(iB=I&w`9Q`kxqcK&%hlu$RW>~D^%X+YXOH2y)k@sKS?i`pIZw%FSv_!4`(-}s zQhSCy;MFmr3>d0p3_;-smp%0MKBoBe<>|Dt=%%`%wo}^qxBGX$AB_7Ob^Sn;6QAde zJI{QGz_mz}?HL}eNI)~38S>`lTy>-|ECVVF@Wwy7e}dl!>#3{j?O5f&)LeRQlem|pdcBQmEKkZbDI4q-ug-(z@YFrOK^ijnwEEnvv~N4C?V-?gAV&0#&2of{M^$@cnxLA!BqqG9?I@y$&8-# zonq~IK5JIB57XrM78QBauMBi9&MdqI#!6{|p$hE}ZNP=Pbk&$|pXCfJ#>{$N>!z?E zfFYFK0#81JZywC5iHG3+1*p;8k2;yJ_`Ub>J4C%v4DcCMQ?Z#<$WV}BixEUY`N zH6Ka*oi0%5`|&Q{mC9Yq)uV4KF0=tog~2w90ate z)_v&*Y*O0K8UduNElo*3TpQ51QaEe@o9=?`bgFFlgQeo`FO|G8gpBpYTTGwr$qRI8 zxi5Z|E8{BY(+$(28D!8`Vnax82}9Z5hrCf~Mz~7Oh`lE1GyYj+rh6n{wUZT_{b( zNE*VyuP#vL^hqEr@rMN0chuVf8w%rRcSTM@ee~M_1Kc4&`E>>3_ge?IS1|q?e!GzI zC*$u)=i5sOzknIp)E`$A{$&0=?{=G){sm8wIcy~JuPpVStiNZbZWD9AAPd>Of3^Eh zX}UiJ{=VfUmpHX?%#dGtq1r8->84%{^jTX j6!808{cizdH2=22.0.0" + "node": "18.20.8 || ^20.3.0 || >=22.0.0" } }, "node_modules/@astrojs/telemetry": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.2.1.tgz", - "integrity": "sha512-SSVM820Jqc6wjsn7qYfV9qfeQvePtVc1nSofhyap7l0/iakUKywj3hfy3UJAOV4sGV4Q/u450RD4AaCaFvNPlg==", - "license": "MIT", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.0.tgz", + "integrity": "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==", "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", @@ -95,18 +92,17 @@ "which-pm-runs": "^1.1.0" }, "engines": { - "node": "^18.17.1 || ^20.3.0 || >=22.0.0" + "node": "18.20.8 || ^20.3.0 || >=22.0.0" } }, "node_modules/@auth/core": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.39.0.tgz", - "integrity": "sha512-jusviw/sUSfAh6S/wjY5tRmJOq0Itd3ImF+c/b4HB9DfmfChtcfVJTNJeqCeExeCG8oh4PBKRsMQJsn2W6NhFQ==", - "license": "ISC", + "version": "0.37.4", + "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.37.4.tgz", + "integrity": "sha512-HOXJwXWXQRhbBDHlMU0K/6FT1v+wjtzdKhsNg0ZN7/gne6XPsIrjZ4daMcFnbq0Z/vsAbYBinQhhua0d77v7qw==", "dependencies": { "@panva/hkdf": "^1.2.1", - "jose": "^6.0.6", - "oauth4webapi": "^3.3.0", + "jose": "^5.9.6", + "oauth4webapi": "^3.1.1", "preact": "10.24.3", "preact-render-to-string": "6.5.11" }, @@ -1265,61 +1261,55 @@ ] }, "node_modules/@shikijs/core": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.4.0.tgz", - "integrity": "sha512-0YOzTSRDn/IAfQWtK791gs1u8v87HNGToU6IwcA3K7nPoVOrS2Dh6X6A6YfXgPTSkTwR5y6myk0MnI0htjnwrA==", - "license": "MIT", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.6.0.tgz", + "integrity": "sha512-9By7Xb3olEX0o6UeJyPLI1PE1scC4d3wcVepvtv2xbuN9/IThYN4Wcwh24rcFeASzPam11MCq8yQpwwzCgSBRw==", "dependencies": { - "@shikijs/types": "3.4.0", + "@shikijs/types": "3.6.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "node_modules/@shikijs/engine-javascript": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.4.0.tgz", - "integrity": "sha512-1ywDoe+z/TPQKj9Jw0eU61B003J9DqUFRfH+DVSzdwPUFhR7yOmfyLzUrFz0yw8JxFg/NgzXoQyyykXgO21n5Q==", - "license": "MIT", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.6.0.tgz", + "integrity": "sha512-7YnLhZG/TU05IHMG14QaLvTW/9WiK8SEYafceccHUSXs2Qr5vJibUwsDfXDLmRi0zHdzsxrGKpSX6hnqe0k8nA==", "dependencies": { - "@shikijs/types": "3.4.0", + "@shikijs/types": "3.6.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.4.0.tgz", - "integrity": "sha512-zwcWlZ4OQuJ/+1t32ClTtyTU1AiDkK1lhtviRWoq/hFqPjCNyLj22bIg9rB7BfoZKOEOfrsGz7No33BPCf+WlQ==", - "license": "MIT", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.6.0.tgz", + "integrity": "sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==", "dependencies": { - "@shikijs/types": "3.4.0", + "@shikijs/types": "3.6.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.4.0.tgz", - "integrity": "sha512-bQkR+8LllaM2duU9BBRQU0GqFTx7TuF5kKlw/7uiGKoK140n1xlLAwCgXwSxAjJ7Htk9tXTFwnnsJTCU5nDPXQ==", - "license": "MIT", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.6.0.tgz", + "integrity": "sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==", "dependencies": { - "@shikijs/types": "3.4.0" + "@shikijs/types": "3.6.0" } }, "node_modules/@shikijs/themes": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.4.0.tgz", - "integrity": "sha512-YPP4PKNFcFGLxItpbU0ZW1Osyuk8AyZ24YEFaq04CFsuCbcqydMvMUTi40V2dkc0qs1U2uZFrnU6s5zI6IH+uA==", - "license": "MIT", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.6.0.tgz", + "integrity": "sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==", "dependencies": { - "@shikijs/types": "3.4.0" + "@shikijs/types": "3.6.0" } }, "node_modules/@shikijs/types": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.4.0.tgz", - "integrity": "sha512-EUT/0lGiE//7j5N/yTMNMT3eCWNcHJLrRKxT0NDXWIfdfSmFJKfPX7nMmRBrQnWboAzIsUziCThrYMMhjbMS1A==", - "license": "MIT", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.6.0.tgz", + "integrity": "sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==", "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" @@ -1328,8 +1318,7 @@ "node_modules/@shikijs/vscode-textmate": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", - "license": "MIT" + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==" }, "node_modules/@swc/helpers": { "version": "0.5.17", @@ -1344,7 +1333,6 @@ "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "license": "MIT", "dependencies": { "@types/ms": "*" } @@ -1385,14 +1373,12 @@ "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "license": "MIT" + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" }, "node_modules/@types/nlcst": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", - "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -1430,6 +1416,14 @@ "node": ">=0.4.0" } }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -1532,8 +1526,7 @@ "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==", - "license": "Python-2.0" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/aria-query": { "version": "5.3.2", @@ -1548,22 +1541,20 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/astro": { - "version": "5.7.12", - "resolved": "https://registry.npmjs.org/astro/-/astro-5.7.12.tgz", - "integrity": "sha512-UQOItiZz2hcv9PlHTQ6dNqFDIVNPnmwk6eyAjJqPE9O8EDHZK2JKtTRD0CBFN2Uqr0RE0TWP2gqDpLfsa5dJEA==", - "license": "MIT", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/astro/-/astro-5.9.2.tgz", + "integrity": "sha512-K/zZlQOWMpamfLDOls5jvG7lrsjH1gkk3ESRZyZDCkVBtKHMF4LbjwCicm/iBb3mX3V/PerqRYzLbOy3/4JLCQ==", "dependencies": { - "@astrojs/compiler": "^2.11.0", + "@astrojs/compiler": "^2.12.2", "@astrojs/internal-helpers": "0.6.1", - "@astrojs/markdown-remark": "6.3.1", - "@astrojs/telemetry": "3.2.1", + "@astrojs/markdown-remark": "6.3.2", + "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^2.4.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.1.4", @@ -1590,6 +1581,7 @@ "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.1.1", + "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "kleur": "^4.1.5", "magic-string": "^0.30.17", @@ -1625,7 +1617,7 @@ "astro": "astro.js" }, "engines": { - "node": "^18.17.1 || ^20.3.0 || >=22.0.0", + "node": "18.20.8 || ^20.3.0 || >=22.0.0", "npm": ">=9.6.5", "pnpm": ">=7.1.0" }, @@ -1771,6 +1763,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/chalk": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", @@ -1787,7 +1791,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1838,7 +1841,6 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], - "license": "MIT", "engines": { "node": ">=8" } @@ -1873,6 +1875,14 @@ "node": ">=6" } }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -1949,6 +1959,17 @@ "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", "license": "MIT" }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/cross-fetch": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", @@ -2013,7 +2034,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", - "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -2110,14 +2130,12 @@ "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT" + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/dset": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", - "license": "MIT", "engines": { "node": ">=4" } @@ -2208,7 +2226,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -2301,6 +2318,14 @@ "unicode-trie": "^2.0.0" } }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", @@ -2338,8 +2363,7 @@ "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "license": "ISC" + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" }, "node_modules/h3": { "version": "1.15.3", @@ -2400,7 +2424,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -2426,7 +2449,6 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", - "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -2474,7 +2496,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", @@ -2493,7 +2514,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2503,7 +2523,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", - "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -2586,7 +2605,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2617,7 +2635,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -2641,7 +2658,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -2671,7 +2687,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "license": "MIT", "dependencies": { "is-inside-container": "^1.0.0" }, @@ -2683,10 +2698,9 @@ } }, "node_modules/jose": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.11.tgz", - "integrity": "sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==", - "license": "MIT", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.10.0.tgz", + "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -2695,7 +2709,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2716,7 +2729,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2752,7 +2764,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2762,7 +2773,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -2777,7 +2787,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", @@ -2793,7 +2802,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -2817,7 +2825,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", @@ -2836,7 +2843,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", @@ -2853,7 +2859,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", @@ -2870,7 +2875,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -2885,7 +2889,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -2902,7 +2905,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -2918,7 +2920,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" @@ -2953,7 +2954,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -2974,7 +2974,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0" }, @@ -3003,7 +3002,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -3038,7 +3036,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", @@ -3062,7 +3059,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", @@ -3082,7 +3078,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", @@ -3098,7 +3093,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", @@ -3118,7 +3112,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -3136,7 +3129,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", - "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -3153,7 +3145,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -3166,7 +3157,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -3193,7 +3183,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -3214,7 +3203,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -3236,7 +3224,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -3256,7 +3243,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -3278,7 +3264,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -3320,7 +3305,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -3339,7 +3323,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -3360,7 +3343,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -3380,7 +3362,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -3399,7 +3380,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -3436,8 +3416,7 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "license": "MIT" + ] }, "node_modules/micromark-util-normalize-identifier": { "version": "2.0.1", @@ -3453,7 +3432,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -3472,7 +3450,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" } @@ -3512,7 +3489,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -3617,7 +3593,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", - "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0" }, @@ -3707,14 +3682,12 @@ "node_modules/oniguruma-parser": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", - "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", - "license": "MIT" + "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==" }, "node_modules/oniguruma-to-es": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.3.tgz", "integrity": "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==", - "license": "MIT", "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", @@ -3780,7 +3753,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", - "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "@types/unist": "^3.0.0", @@ -3875,7 +3847,6 @@ "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", - "license": "MIT", "engines": { "node": ">=6" } @@ -3943,7 +3914,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", - "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" } @@ -3952,7 +3922,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", - "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" } @@ -3960,8 +3929,7 @@ "node_modules/regex-utilities": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", - "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", - "license": "MIT" + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==" }, "node_modules/rehype": { "version": "13.0.2", @@ -3998,7 +3966,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", @@ -4028,7 +3995,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", @@ -4046,7 +4012,6 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -4062,7 +4027,6 @@ "version": "11.1.2", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", - "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -4079,7 +4043,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", - "license": "MIT", "dependencies": { "retext": "^9.0.0", "retext-smartypants": "^6.0.0", @@ -4094,7 +4057,6 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -4115,7 +4077,6 @@ "version": "9.0.0", "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", - "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "retext-latin": "^4.0.0", @@ -4131,7 +4092,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", - "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "parse-latin": "^7.0.0", @@ -4146,7 +4106,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", - "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", @@ -4161,7 +4120,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", - "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", @@ -4301,17 +4259,16 @@ } }, "node_modules/shiki": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.4.0.tgz", - "integrity": "sha512-Ni80XHcqhOEXv5mmDAvf5p6PAJqbUc/RzFeaOqk+zP5DLvTPS3j0ckvA+MI87qoxTQ5RGJDVTbdl/ENLSyyAnQ==", - "license": "MIT", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.6.0.tgz", + "integrity": "sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==", "dependencies": { - "@shikijs/core": "3.4.0", - "@shikijs/engine-javascript": "3.4.0", - "@shikijs/engine-oniguruma": "3.4.0", - "@shikijs/langs": "3.4.0", - "@shikijs/themes": "3.4.0", - "@shikijs/types": "3.4.0", + "@shikijs/core": "3.6.0", + "@shikijs/engine-javascript": "3.6.0", + "@shikijs/engine-oniguruma": "3.6.0", + "@shikijs/langs": "3.6.0", + "@shikijs/themes": "3.6.0", + "@shikijs/types": "3.6.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } @@ -4336,7 +4293,6 @@ "version": "1.3.4", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.4.tgz", "integrity": "sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==", - "license": "BSD-3-Clause", "engines": { "node": ">= 18" }, @@ -4363,6 +4319,17 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -4607,7 +4574,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", - "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -4634,7 +4600,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", - "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "array-iterate": "^2.0.0" @@ -4661,7 +4626,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" @@ -4703,7 +4667,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", - "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -4982,7 +4945,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", - "license": "MIT", "engines": { "node": ">=4" } @@ -5002,6 +4964,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/wrap-ansi": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", @@ -5019,6 +4997,26 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/xxhash-wasm": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", diff --git a/package.json b/package.json index 24aed8f..092a3a0 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,10 @@ "astro": "astro" }, "dependencies": { - "@astrojs/node": "^9.2.1", - "@auth/core": "^0.39.0", - "astro": "^5.7.12", - "auth-astro": "^4.2.0" + "@astrojs/node": "^9.2.2", + "@auth/core": "^0.37.3", + "astro": "^5.9.2", + "auth-astro": "^4.2.0", + "xlsx": "^0.18.5" } } diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..4c240ff --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,62 @@ +import { Auth } from '@auth/core' +import type { AuthAction, Session } from '@auth/core/types' +import authConfig from 'auth:config' +import * as fs from 'fs'; +//import { read, readFile } from "xlsx"; + +import pkg from 'xlsx'; +const {readFile, utils} = pkg; + +export interface KarKarCarSession extends Session { + userData?: UserAmount | null; +} + +/** + * Fetches the current session. + * @param req The request object. + * @returns The current session, or `null` if there is no session. + */ +export async function getUser(req: Request, options = authConfig): Promise { + // @ts-ignore + options.secret ??= import.meta.env.AUTH_SECRET + options.trustHost ??= true + + const url = new URL(`${options.prefix}/session`, req.url) + const response = await Auth(new Request(url, { headers: req.headers }), options) + const { status = 200 } = response + + const data = await response.json() + console.log("data", data) + if(data != null) + data.userData = await getUserAmount(data.user.email) + + if (!data || !Object.keys(data).length) return null + if (status === 200) return data + throw new Error(data.message) +} + + +export interface UserAmount { + amount?: String | null; +} + +async function getUserAmount(email: String | null | undefined): Promise { + + const file = readFile("./example-data/saldos.xlsx"); + let data = [] + + const sheets = file.SheetNames + + for(let i = 0; i < sheets.length; i++) + { + const temp = utils.sheet_to_json( + file.Sheets[file.SheetNames[i]]) + temp.forEach((res) => { + data.push(res) + }) + } + let userData = data.filter(data => data.Email == email) + console.log(userData) + + return {amount:userData[0]['Saldo Actual']}; +} diff --git a/src/components/KarKarCarAuth.astro b/src/components/KarKarCarAuth.astro new file mode 100644 index 0000000..83732df --- /dev/null +++ b/src/components/KarKarCarAuth.astro @@ -0,0 +1,19 @@ +--- +import type { KarKarCarSession } from "../api/index.ts" +import { getUser } from "../api/index" + +import type FullAuthConfig from 'auth-astro' +import config from 'auth:config' + +interface Props { + authConfig?: typeof config +} + +const { authConfig = config } = Astro.props as Props + +let session = await getUser(Astro.request, authConfig) +--- + +
+ +
diff --git a/src/pages/index.astro b/src/pages/index.astro index 24f7c60..4176bef 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -4,13 +4,18 @@ import type { Session } from '@auth/core/types'; import { getSession } from 'auth-astro/server'; import { Auth, SignIn, SignOut } from 'auth-astro/components'; +import KarKarCarAuth from "../components/KarKarCarAuth.astro" +// 1. Import any dependencies (Full support for JavaScript/TypeScript) + +import type { KarKarCarSession } from "../api/index.ts" + + + -const session = await getSession(Astro.request); -console.log(session); --- - - {(session: Session) => ( - console.log(session), + + {(session: KarKarCarSession) => ( + <> {session ? Logout @@ -18,8 +23,11 @@ console.log(session); Login }

+ {session ? `Logged in as ${session.user?.name}` : 'Not logged in'} + {session ? `Amount ${session.userData.amount}` : 'Not logged in'} +

)} -
\ No newline at end of file + \ No newline at end of file