From 753a98c67b3c8d50f740f18a5a7dcfc7b1a9b5dd Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Mon, 22 Dec 2025 10:53:15 +0000 Subject: [PATCH] initial --- .gitignore | 19 + .playwright-mcp/button-variants-styled.png | Bin 0 -> 60899 bytes .playwright-mcp/modal-after-css-fix.png | Bin 0 -> 51336 bytes .playwright-mcp/modal-background-issue.png | Bin 0 -> 50640 bytes .playwright-mcp/modal-open-with-styling.png | Bin 0 -> 53305 bytes html/index.html | 28 + html/index.ts | 10 + npmextra.json | 37 + package.json | 64 + pnpm-lock.yaml | 10770 ++++++++++++++++ readme.hints.md | 2 + ts_web/00_commitinfo_data.ts | 8 + ts_web/controllers/index.ts | 1 + ts_web/controllers/theme-controller.ts | 87 + ts_web/elements/00colors.ts | 80 + ts_web/elements/00componentstyles.ts | 84 + ts_web/elements/00demo-utils.ts | 24 + ts_web/elements/00fonts.ts | 35 + .../dees-mobile-input.demo.ts | 117 + .../dees-mobile-input/dees-mobile-input.ts | 228 + .../00group-input/dees-mobile-input/index.ts | 1 + ts_web/elements/00group-input/index.ts | 2 + .../dees-mobile-applayout.demo.ts | 85 + .../dees-mobile-applayout.ts | 351 + .../dees-mobile-applayout/index.ts | 1 + .../dees-mobile-navigation.demo.ts | 87 + .../dees-mobile-navigation.ts | 180 + .../dees-mobile-navigation/index.ts | 1 + .../dees-mobile-view/dees-mobile-view.ts | 156 + .../00group-layout/dees-mobile-view/index.ts | 1 + .../dees-mobile-viewstack.demo.ts | 622 + .../dees-mobile-viewstack.ts | 409 + .../dees-mobile-viewstack/index.ts | 1 + ts_web/elements/00group-layout/index.ts | 5 + .../dees-mobile-actionsheet.demo.ts | 98 + .../dees-mobile-actionsheet.ts | 223 + .../dees-mobile-actionsheet/index.ts | 1 + .../dees-mobile-button.demo.ts | 72 + .../dees-mobile-button/dees-mobile-button.ts | 224 + .../00group-ui/dees-mobile-button/index.ts | 1 + .../dees-mobile-header.demo.ts | 68 + .../dees-mobile-header/dees-mobile-header.ts | 171 + .../00group-ui/dees-mobile-header/index.ts | 1 + .../dees-mobile-icon/dees-mobile-icon.demo.ts | 100 + .../dees-mobile-icon/dees-mobile-icon.ts | 189 + .../00group-ui/dees-mobile-icon/index.ts | 1 + .../dees-mobile-modal.demo.ts | 74 + .../dees-mobile-modal/dees-mobile-modal.ts | 202 + .../00group-ui/dees-mobile-modal/index.ts | 1 + .../dees-mobile-toast.demo.ts | 103 + .../dees-mobile-toast/dees-mobile-toast.ts | 339 + .../00group-ui/dees-mobile-toast/index.ts | 1 + ts_web/elements/00group-ui/index.ts | 7 + ts_web/elements/00variables.ts | 149 + ts_web/elements/00zindex.ts | 31 + ts_web/elements/index.ts | 11 + ts_web/index.ts | 6 + ts_web/pages/component-showcase.ts | 202 + ts_web/pages/index.ts | 2 + ts_web/pages/mainpage.ts | 78 + ts_web/services/index.ts | 1 + ts_web/services/theme-service.ts | 112 + tsconfig.json | 12 + 63 files changed, 15976 insertions(+) create mode 100644 .gitignore create mode 100644 .playwright-mcp/button-variants-styled.png create mode 100644 .playwright-mcp/modal-after-css-fix.png create mode 100644 .playwright-mcp/modal-background-issue.png create mode 100644 .playwright-mcp/modal-open-with-styling.png create mode 100644 html/index.html create mode 100644 html/index.ts create mode 100644 npmextra.json create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 readme.hints.md create mode 100644 ts_web/00_commitinfo_data.ts create mode 100644 ts_web/controllers/index.ts create mode 100644 ts_web/controllers/theme-controller.ts create mode 100644 ts_web/elements/00colors.ts create mode 100644 ts_web/elements/00componentstyles.ts create mode 100644 ts_web/elements/00demo-utils.ts create mode 100644 ts_web/elements/00fonts.ts create mode 100644 ts_web/elements/00group-input/dees-mobile-input/dees-mobile-input.demo.ts create mode 100644 ts_web/elements/00group-input/dees-mobile-input/dees-mobile-input.ts create mode 100644 ts_web/elements/00group-input/dees-mobile-input/index.ts create mode 100644 ts_web/elements/00group-input/index.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.demo.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-applayout/index.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.demo.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-navigation/index.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-view/dees-mobile-view.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-view/index.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-viewstack/dees-mobile-viewstack.demo.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-viewstack/dees-mobile-viewstack.ts create mode 100644 ts_web/elements/00group-layout/dees-mobile-viewstack/index.ts create mode 100644 ts_web/elements/00group-layout/index.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.demo.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-actionsheet/index.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-button/dees-mobile-button.demo.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-button/dees-mobile-button.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-button/index.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-header/dees-mobile-header.demo.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-header/dees-mobile-header.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-header/index.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-icon/dees-mobile-icon.demo.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-icon/dees-mobile-icon.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-icon/index.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-modal/dees-mobile-modal.demo.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-modal/dees-mobile-modal.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-modal/index.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-toast/dees-mobile-toast.demo.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-toast/dees-mobile-toast.ts create mode 100644 ts_web/elements/00group-ui/dees-mobile-toast/index.ts create mode 100644 ts_web/elements/00group-ui/index.ts create mode 100644 ts_web/elements/00variables.ts create mode 100644 ts_web/elements/00zindex.ts create mode 100644 ts_web/elements/index.ts create mode 100644 ts_web/index.ts create mode 100644 ts_web/pages/component-showcase.ts create mode 100644 ts_web/pages/index.ts create mode 100644 ts_web/pages/mainpage.ts create mode 100644 ts_web/services/index.ts create mode 100644 ts_web/services/theme-service.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b85da07 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +.nogit/ + +# artifacts +coverage/ +public/ + +# installs +node_modules/ + +# caches +.yarn/ +.cache/ +.rpt2_cache + +# builds +dist/ +dist_*/ + +# custom diff --git a/.playwright-mcp/button-variants-styled.png b/.playwright-mcp/button-variants-styled.png new file mode 100644 index 0000000000000000000000000000000000000000..16780f26546dd8284b45ed108607c8caf1c05a61 GIT binary patch literal 60899 zcma&O1yEeg*7v({g1ZN|AVCt`Ew}`CcXxM9aCdhY+}&LhTmu9P?rz`YJm-7Qxwqb` zd#9#~sXaZrSNHB-{qNPk#difcabyGn1ONb#B_%`^0RRdK03c4_A;DL8(rwAXe;}L` z#f5>YDWU@aAO$2vg_PYhkJr7_G1VS9&pAdZ6M%OZq_jdo?<$3I@jfUVAT*ih5il+N zu3nL9UO80t`l-_nI<2~?n_q8ST~R$zTlDNz)wVb?`57)nuYLfT1cwu@wyR-2e@0GkUmt|H1L7(FUJ;6w%cXqx_XAoX=Kod<88iH`4P|80 z=@UB0#A^ff4vZki13Sh<3!DE}bAyF)As6Jxt`QzNy&XLc| zPmA?MGnaV=G9(U%52avn`S{~)K8vJ8jzRshk4{Ly{%LL=^DTft!Ki>|5zr?Qp^HEv z6(7t0$$ANV)4m=jw;u|4UI6&lw2=*h28CiwA?Pm6WImgZgR{fZ@X0%AVprtew!W}s zN4U|}0$)w;P;$EUrATps3br)3+no$RJ-+P26?w-he}(F#+v@C?<_h*Vug9_c5=zl0 zF92|1WMaEXgcz7EDiqz|2WecbPc_ux0N#;~qeQLZtD_t-%|ZLAJ211m#DE~%&WqW8 z89k}5=~tyW2$;#-X70J+AC4tU6oH3W*(1Gi6P>=?^!(6&z@~B z9=w4T-Z!ncLnS;M(jTVfcjBHBQ*fjEMlqYpx)gc+*_EmdU-hpwE0fTu+OLDJcbVJOM3pJ6BblWzfOtx4#(Z_{;gQ4q7%Od7w-2t(|0#F zMOTJFxc~L!kpK1M{2wAw(DxVc3Fz4xjeOK8ynV`!=1tgKfejY2{0uI|C`~V9|J^;? z?w^LVmDccg_`dtY^E&(#yAPzO{(CD|8@^Ya*%dz*IK#Y)~flrSipVL>BHEc zEp02=UjcJYp%MF2;*m1&e^PC4@Fe5as&!p_5S^E(lB9GfaDJ*C`sDpHO2Omo&k3_D zy=0#_-_sDid>b*s+|3H2S+vhv#4-xdbD42IW;Ja;j&k}^9c|6C#&mzMlsated%Dmj z{UBhxdoXd!g9zcj7jckdrcEBO`@zTaa7W>L4BThES)5Gn3ndrn{YF7pbQw-+(L|dT z#}lbf{o}a)ZB>k*TB!R`5nEGXMmCd_bfBX@C(4$~C%>+%VgiqEt@~=4KD5!MdlBxj zO-N@RlEJ~fFO^=rySnN_yEC7+c3ANToT<8m`Tcq}BU4zup2|&5SixVOY*-wmhEtGl zu=EkqR(^!h+Zf+>biICxrrHYsX8^7m9G~8Cy1Xpfb#rUmV)OGG9L|k8c=r4GSwQG} zj1PH2hDZ)QZnsHSF^qn4KU_PYsKWN`-v2hrbG*E7O4aJ;bAD}d=}IPha%QJ|yrXb8 zzH#;-&$f%p!gsNZ_tHDtxWji8fP}HctRVp$g?F7QF3+cK^~)xieBr4X*ebB2{y5n< zsQJm?UdDYhb+6}mY^+Uca=zr{%sk!VD~WXH@2x{yD8SoT+d5agM6DqGdT^eyW`K;0 zHI4b)yRoTQ#*1%mKbqk?8!zud`(;?fZmS16MPIuQ4KW0|{P@SL8P%M}yM2#eeFprm zM%j2IAMc7Q(f>NW0}52m_NdPmDpZStw610lz_{1-b_>hd8r6A9gibZ8@jH`kafRKI zF1~`Qc2fp{rwt?ANn+pZ3NP$$TiO%8vT8bubB-q|S7E5xbRD6rg=7$f?A(-SaHZ7@ zpV;*}l}&4)#s##gJJKi)=2vil?pzjr?HGTB?>s$hvdbz*Std(bRcVLX_!upceZw&q z2fUy1s`TipzypWm&MnLPz`ld`+k%$rY@UZp3?kHt&kHg0eq`9^*AN zEoimvrzto+YcFdjp@Ho%K|=OJG@D z1^>sI^-{~b*w%<_)Jwpszgi#Z_HOs^L%7^mSzyZz=!9Lo#M_6T#R=HqnSv zqP+nEc4}(5e6GB1`|Q3G;7;ar)uM`S4D{InN|@qzN!WmVNjj5Bv9D4opBtUsb>MwF zeGqu9L&95sLFvxgP;kMG&YWoiYD8nk*D?@5)f{mqUyhfD#arI;Ed(-0KHU#;#20D< zpxc4&?vIVGE9^9aZEdl^4 zJibj^Mg7Ht?s41ia@T~B&Ao;?Y8#6v7vmo~m15dCaby@mTWnW1>C{#YrA9G?yNBaY z$?ZRegJ1x`ION5N+qSwo5PCn<=`(guhe&o*OKiHHnp;7Jn^2>&&d6fyAazwUt05=u zcH73pHEp=(w>0#VeJkESt>%_8g#TGgV>lyGIjPHZeEToGtRr*6rmw22J&6GzJ!tSW zU9W<1QB(bEOpN`T*sSu!O&E3yl~*QxeEQA0&K z_W3kqi}@oi9AG7l=%Pk~JHL52PM8*Z**BTO`c-x?Ofkj+JjaJhpq_asb=Lg9nf1?G zgskh#+ApQ1a*h@$J(gp>z4ETECRo|DEkFXo%XkJcVN@&Z^q9vao;*j*ta#o0A~$Y z)5F<57o&SlG>*O&zxj#ju4)L=B@)Sy@lPSh3f9NRHGwq~vUmdknEBe*K|**8_}1mF zZkO|k8d2Kfj@y}!TW0LWtiO~E@-pN2uS;q2oaR*}mmLA>5Jr?Xvy;s7qm$WPbs*KZ zp6J0=IR5uM#jFK&8M6#5U#~NwmmDUy>p>`Z9B*utY5{jjygV;yHCx(%dDVyK*Y1+}MTO+gJsuuy zdapaPA5qLRvF_kOeOYn7x@E@s$_|N0{-9=SE`R-t`P_b;;x~jVR>?r&?KPNQ&=aj$pODOe=_yUKvRB|N~fWG_lAII$AM!FLItC7xp?Z{riY(i)|0bE&AT~&}- zct~IL)F8leyB*x+*SJB{gzh7}J=kz1vs~tojvTN-Tj3aEY2bBf`tSGnC9@vC13#5a zXq1P+=2u&Z(39{7OOdh%v#4fOro-Abvs9UQNU#wh z>psjgp}qPw>I{HBbE+$kNuy?aH-@SeXz~D>ozRGtgrVN=GqIxqYsu_^J?Dopu(@2B za9-y({V;=`6{w4Dgt-RBwach4E|E{8CcHks9{R%d*gmpx@QRNY^0zE6{SZc;5|E1h z*wWg{==b{Y5v7F;|0awt_izzY;J|=cNQ{k^VyjC>TCQZ)w%Lxem$92W^;6;PA^bwM zOQhNG68C4sb*mM`(Auw|bFxUV{RhqqbINW4B9H))+1)hKJD{VZ3r+)-A<5ru}bjsfTQuT!*#{c{x@zBggn6j&p%GW9_MFIXP|nSW$2PzOE#kNkL74K-TmHUb+`K_0gWkSGp>vy3bxq!|1;|-6TmGG&v?3u6~By<0gL2C9fUn<%*es-y!kHowxwluq9@(qrIT9{ zHW7!0ffxc+H{u;6*s)k*b&jAfUvJ6S6yf@r!-YkJVr>ty0#+-LyPq>l%xe9&uiRr} zV|2*dHtc_6C*$=i6`gYCgEvJ8(Io^G(n^LwPPZWV3Hr}uA6TS5LKbk-Y}+@r#q~WK z;g$qz$UNuj3rr}-WmIB+84UYg+ZKL&-LS2hVZ89$IJ;PilV7Uulf~ty7~|5&s?hBA z@XNnF4I4=s2ZunbB(@MR$54q4V1`iBVixR>H%U6ZN_d*?ixWWZf7BwPf>v+xcz&qN zh*75`mr6)e(X@ggom(#B`7DeGg9n`Njum}32oPqrsGC)a0lfn@AL%iY-hCAkj>x0r z*_MdT#;w;EGCzo3Z;c`i*XUsAjqfsPE=RwL(M$iGQ*YBf)|WCoDfR6g;*J&)mBzsV zmnZ!mRgARaQ0R9Ub`f7q%eFBI2+baC4&l;2EMps12k|>#Uf?mof>S%Qd$>H zG&Qf~wJY)?Nw1psQu?+`uiC$V3-I@93~6~>xsDQXAP?z6uV1y($6Ih=LQPmEdGdd3 zwS}GBvPUU9XHARj<>q{!r*rn~uxCz1KuAbHKphPF+T(|snFB$?5 z1!SwEBem**_x-!ygz_^9X?izx#S9zUh%RgzVOn zpJ8aGBhXzu3sth3OvJnL4kwcD*u5(o6^myS>nU~dDN?@Q<0+^XbS=yy4qsi>?-bjv zG_VzflVFoj_W}2gyB*MZ+&)+7$a*{K`SJTh@RKT*!nBAx5a)xA=<=k=PYw{6uw(9D zT#{fg2Ma016~XqY*MF!KM&qE@4ZNUYsf}+-SY4>l>~0rM%~f_c*u*Z5#KoTx(5^QS zj}{}w1lMw#PfFJtq)5_ z;jp7tus10%^Z?BISMIzMU*^iYezgiLN*FxnN_4knGN{;4{4AZEq^pGv4OigUq}UvT zg1rF65D)pQ_q{u?`Y5Z*ux8?i9g6nA(CUGUcvT&KFNVjM z8axb(2*9u}vIDu+C)2$^&lmLM48jlfKl_r;m#tk(#2^5Zc9+s4>n1^3BqXgS4@a%I zP;RveZekCP@~>HqT3I0%FT1s4g^9+N!>{GHG=Wi&NKlb9n*oE)^h^zC)QIvULEeqO ziW8*=NE;GOvClDo2Mq*}ljT*ieoY;SuwhAKXfD^&k_Pnif3)0lhNPkjE-@oT;t3iF zdD3Z>$#^iK%c#ICr!5yz2S|_-=hT^ck5y`>OG8`xi*IbR&pF4Dt-H0%KT*W_5yEX+G`RX87jBiJj@< z<>T0mn&@}ga!5W1tgl+>N%&Za4494}Zmz_-RK_06OJ?&zz<(I`lA#f2%uv>d1%ZNmFCEcPZgo#DN#d8R+IY;^ky-XQWrSwKzF_k}k#*J#c)u+5^+0|sk zRJA`9A(HhIq3Z+%%L?%~gSIN$FBD;a<^nRIX-W!jj{4`l{zPt7 zJ*2`A1~xh#3CUpy#G-)f&oQ?WNp*cF_84Tmp%l?UdQm)BaGf7L-Fyq-of_SiX%T3J zl@w^gW7NJe_uOAY(pL@o>@kyX^*&Q5(|JBOt^JkjzK*dTVlj8Tn9gT?XcnF5j zzJ!CaR!w@~PrcHo7RgaiA~|#URSeNcRZ*J*6pqn%SZVb}50*KV9kW7{qYprNeLlA= zPQ~NITx4)zA+}U4a45w(>x88G$Gfy%B`3p1o!M5j$(2cBY;80!=hDU zGFkT1;XuADhHd{zUyi=G56a-VLtWL3S1nldIBb*)uxk( z0<-a>Ubo|5e7j0r{!as#Ku_w!-gS{lRfbQg^yj23nYUgdRNw&{LZFHOa35uyI%MgUg94guu8MP-WU5X87T^^klTi>zd3tz8? zFU(kO{1A}T{lu(?#_Ql(fm%k-|FU%%`3c+0wHi+YWzi6Shgb?H)IqzhC zH(t(l9hQM}nBWFAXu5yASJHr{Bf7qtaUUy%{ zOLW7M+vMMm0{Wtzzg;e=nt;@8Y7c9T9>hE7&D!|aoXvLmPQT^dmluN9d^Bn}fO#Qb zjwXtc+xIf^ zW-C#?I!sUIXM3Fl&1zom?Oxr!UhImBDg05IO*tN+uyyl{W8->jJ|1lOkz0#C-Py6{ zU;eAH@%b$t+d-P$PM2K={o*n^(8(`@MYZ-kLo20P;H9LccKZ3k`K18K0Jp+K&vr%c zV`>ehj*9yu$R_8EKe>dv%{9K-^-a9pF{4M*=g%(M!L^NvDgb~?-y(X+n2Iga%TYUt zI0QOF=T37zsq(VkzT~8z(#~nSnm>s@As+Q=Ho1JUzwWDi)4jP&yqMX1$5h3u?0WR0 zxUPV3BNP2S5f)L#^WIQ_i5nIK_yq1rmb6Mz{WJec<@_+aEw5>I&87Nn?Yb8KO5KzC zueaOjI~AMN#H!XCEb^$3)nuw+SU4DYjh36R!;Flmkg#8RoP6A(1iS{185y=4Nf#w^ zCZn~z6ob8(y4p?ji{>y^%L@lA(yT|Lm)!z1gde)FjXiH{@Sc)-vnk1fu<|I}_LMgJ zvpK^dco)`Sp0U5m1RV~AnSF@8Y+|@cJv^!4oP7=$LlN}x`q5#$AN7p0H}??eCu1N| zbkmP%97NM)81U4vwce&Jdk~eh(XbFy|J(Yiu5uu(=mo@5HkkxV^9~6W2MPd;B!-wf ztCzd!o7_^{M|)F$k|Djotfmm`({g#u^14by_}qCMmcuzsIi>c!=cQa~rk2)J(+jQ8Qo8d7OdVEp)S>8 zPM5bIeXeGCuTDyOs)HDA&R-D;!~ScDW)&3)R>53Qr_%u zv;C5OcO|IW>2ZzXdSm{2BY*j^UmbG;eW^==Q@1zQB(fL#K(9u1pM0YC@|wp=58!>; z&^uqKV%-?nu+zSY%(Y(BLR2NLJZ18O(X#U8yjAiM>^mB5&WI9CQ1x;7Gp>^0ts~1% zso``yE^OPU1;UYI&RJ==+|G#v77j(|_4K-=k9eGRhe4+B2+d3yHIL?vR!=jH0$bA+ zkBh|*Mp45HjM|qb_#>uO>o%*SD-&4k?!_0OE6T z2fcXVDWR))YcKkqX72sG!OZ2nicibRKe1`>59d^xvddsMYtKU$I-j)MvYXiy?4Rkj z|9CTaa&Fsmv~6ilD*rU$vFJYp*_eetnuHD*M!xU&q)HFbI`LSvjZP=GES(fTNjU)+ zzFfZ-=V8*T@ku|jzHvrD?V;gN$}v{lrPQ7wTLYgc|HA^@=-VO~L|+1YdkpRRJjyaA z^AMZ23kL3W!7Q0DDLhz+KoSahHkSkEj)g%>FdIVVK~nUdxZhLOd6bXYy4~d4N+wYP z4j-4RqxEr1sYAE}B;fzp0cB=s9O3HMB}@h=$R(zmy|SIyw_eVNLJc=|N#=OJ#(d}k z#=dWRZ)|8)gUE_PGgcSnFJRma@|n2yV>W!XKHIHv0)X80?;Ap0#36(HT=KW|aB?WF zsEMbhZ;4E=`@?5qi2A=o@%jCP2;KpL@o1UX`;4_rwBXYVCCCY;F0IUxPx2QojdPMo z^b6f3XaJB}GB`HFDu=t+frh4EH8Kjih@o;tlbv>^)qDP208AbZ~4&k z(^^5k_E!msZ%omMqGXtc)b5b}wGp6^y^7Tq?jcOm=sBDz0gY0Ypo-VySD7m%tG9MW zs&9zQ6n$<}*EV{u3JI|ob0n-VGwQlVIM9)(Z3QBWPCNJC;+p-iWHetdR=6ly7cLZT zXIJWS$}2HjhHrDIXe!p5UZT)G_7tM^(vPm*z2!=#YUq`g;YP~qrn4$Rf67ja^=*&= zDBX+)mM*#=*SOgY`+{R%?Kgr5z$ijMd1e2&8z)YW>DZoE(v)4Z7bRvG4=zf>5-LeO zUjBJA?s=fNVJ}50C#Uxs-b=}Lg&F0~`_U$(Z;qK*%ue*-oOWzg3m! z(BWr|EYbSG!u^S{YHfSa$@&!+NG|~&jY)eu7}&8P7<_dhic!;ha4jZk+>;AtV^1)x8xe%>8yFR@0P|tGzNe^Wc1=e7jR$kD zSP($;6KoWgJ%m3!+IRaO>5_F_#We)pW}(n6r@cy)L?C z4yEDmyQ6yz&s5}sDE8@|<@yjV97IvW#&M5Ro<#IAto}@MfG25!UMj2HL%YM+M%)b- z$;bQkuI`i6=Nlf*cRlZXE&9D?Ay-1>9lQ&@^Wg#Rj8F2v8nd7=Y;AgYp4;j7I=VYA zS9ICF6%-H1>GD8PP^0+f$<*?;BhgYafy-fq2+A;R zvXZG=NU;FR^Fk&cqZ#f(XiC6eu=e^4M7@pz`w^jaKh-=-Zg~5GAvq(0bJ@D-@n5g4 z{h7=t>=rhS`1yx0f^O0Lrsd*9ORMroP^vNiWnN ze;SE%__RhrZ%Cf`HNM<a(4qxnXKB%wE%A)(Vygp7P+kxx^q9<@@rcB|N0Dv=Q)Xa^y zS-{HHaYu!F3jDUPGnGJrGg`nt(4K_fODE3)DWz0!UHRd+ z)zU|o*L6P|_pgrW{~<5J8lfH@JB;Y!@_vq-;_%cI7>o0#kC24#ZKS!&vEd*dxu1Q# z7FNXhB)K;_2m?t}aigk6Vx%NH%NIt>hZaCPfXk6F38^775uA!AhGvd1UfxctNte{b zx3XHZ+<8qnmBg38E2Q9S{`M9L^kBn?$$Y~)VrpV*WlS;aIB{wjlrtFNx^A1ZN|O? zEKO`GcxMtOxlU*r1T08hPMAD5C)}?tCvVFx9ZR~OBRekR@2^*iQZfe)Z`M=bo02>? zPuDvD7kH|IU6sGKWAb_gwQ%OP~0~>p6)WV!iK@KCe7r|RIp;FjP zNuZ6Xl>Y|;puIO>uX?2d|GlRe1*(R12qmoUD2vEj!){R_a}-@rw{iDJce=a$7KGBC z+^^c>&32|E!-60v`?}&k_ZP4^7D|CW7ye5g34?aTuScvMzNamrnGJly$Ul#a^n(1C z+;GIYJ1(lnUzG(o(kGVNw~2_KVhU@!ARstm-jrU}%txf3u93)IPL9E2PGo;Ec~DNt zyUk&^U3$b#H!9SL2c;CkmR)D_hogvpN(;7}tpHi4Y zibjpBqHR`lkl$&UO?97rcdJ=$tNmjZV;>Z+_Qrp;t5Pk$IFTwqLpIQSQ1U`@Mh7L7 zVwZJJl*8*M{J3Hxozfql2Ei8A)=>84XS-9%Uuz`}4nZ!Hd*B^BQ6->X z>(es%-0Q(3Fn2Pov_zC;vYfn!xyYTpt|{w#s{``Dx|@!8u!{-GHyQ|gNVKEnSR2-G z*c%FaKsmsQVT|zLPcr_AyofKS6L&LV^3A8$rz%lMoBA$k#YbfQ^#aFF%v`_|M$k?n zt3*yaq$GQ)BYB8HE(@X_fJ<*%qPO zeK<$e*S*7FE&SxoTPPIjUQXj}-gfcA%2gRY(eGE|Q|Ho0V(l@g1yj!!DF&1dq6$#(p5a^7~UkFC9ICEbjNy!$wRy#yf0>mc<hTR+5n{QNKZPP+dm*KK~q|)r%;U2Gau@T z^Ci^cY9E3+97y~+^FWyuh~^q#NZ|13%)L9Yx|%6s5PzU~jgT98dlRpH{b@WN%oZp+ zgtBa8_J7r%(qn4yU9{V4L`E=v__fP)HXq=8m^}E0YKw2*GqzcF{POyG=jwsO_PT(5 z8X|9&`PQX~7zV5m;AfmF7mw}i4mtBN^PsBk$0aBA9@}uBG@f7vSF-Y;Nlgp%+88e=Dre|={A=5qQJWjwzRA<*# z+yiB|pgm`lymOSlXG0i&saeu1LQP3Ujx)Ep8nO%6Rg^Z5MHD#C8onA^*r-usq`>p| zzYIsw?7^v5VgHsftDV^ncUDzi-dhJB0X6n5Z{9dRGIu3ilG}#K zfEkYg=O}I1T+`D=&||L_XOV}!oquAhMxdMknRp$EAe7~UrT&}LFDney656q7gNi1S zqQ5u@F#=}e=@B?G->Z*Ik-i>!9k4NSvMs)fz=Zt0c}3tR^@PKbC&=N+^h^#OOa&y2 zMxqpUz3qN!b%5`Le*3<~_%i@2Vf5fj{Ej^*kqq@?dsVwO`q5MzUMLrlvK1(*AHTFa zUPq?yFt>4jNS}FyMpDEqf58Xbk}QHm1JMmm2@-wQH0f-sL3OCEkhiWD>wT^7g;u>$ zD4;m!9>ZErqA7a$be6qM)Cj~W#|{FMJ$p_D91vkx!B8RGrZe}+Eu1;gZ+m8dR5D}z z6faT4HB+u+{j^3?3j(hyLoD_*ce}oC=i82aXbi^M1)unW&ID7H4Zfy`e5|b@YZ^w} zcDLW>oUU)Xs&#Z$%TXL{H>pIl9c#x%&o(SZ$4c3`%t%(!@uw~wAgb?^rf`odZq$oA z=I8mE&C=Aim|XDPlY9=A4L`W2-o99)jqW;v&!iSXO^ptmM3t4`gM3JR=c~lLp+*!^ z|5;nV&EWWc1Es`u(*oGu`$9REG$bS=7jqHe*s7lw*b^7{A1LSdRxVcyoxl@oS)qq-_GY!D2OFiP)erd{+lwG3A&VeL9|!^x^^YmbtL8sLT2F56a_7Q#unX~(?5O+&;!iEu#&It#9D zl(|0XjK+!!-n&cP)VJj&RYhE@rKa%Gji~0&U?d)u1n+2k74n5_nzUBfCz6|i|y_0 zPxtpNzSdTsEv2C~7*yTbR#&E6*gkL(p{TL{@QW{O63QwNk2!T9tAcMaoWa3goWtYK z5x`0gwCu*fISDEFhyD$si0oWVoyLHs!`gZKs7(&*X4-S5G%%2gOveZTczgV=xHyi# zW?cOY&BSb}>Zs^Fzd%vkRb|vY<9pATFlv27@FyzRpHebmbilCIm=*sd1ggg?xkzLW>BZQig>dUB@zVf~?(UdBO;@>VF_W#cK4(Dn@O7a!XqJK1xhAlWqWGN0>GkPT&c`A1Po0is%0?5aNUs#gD5QR zc06SR{dMBE$-Crh#&(scRKMpLthY>?Cl%7~U+K2{1Md||M!DmYi>QIC_+hFKM*Rbj z8Ds*CY&u}uF~z8-Rp=l+lFQ>OA}P2uA^nd?%9MvfP zhkoz2u;O-fX=ud=^i9IKmRYUuW?VODn2l1ScKr-*I73Vz5lkx4{o94TJ))C={V8wX z+tAz3&)4ZBX?0Re&I>f}xjhs`$R2Gzkkx(~!IX0|G=W~UaVo)6+{Vw%f8mgS{M)75 z45th2`lzB2OQ+{Ept( zTca3h&b@Y`+l^aUd(6%Pf?opGesQ;b+2DRz;vzYLym#we2FcC+J-(8-?gwR#y1}?< z{_p!|FXnbbA@q=gpL#jQl+}bTpY6;Zlgzwtaw2mG2dAlJ^~+T}hrhK)Gte?B9E8L? zDIdS;FUl{{hE>jsyk?Zfp#)M&<`1r{%!oE{`_n{c-WN7+Icr)DP0R9!fA3vzRB?%D z_g=6XGZ;M3^M247MV9;>Nvp80CN!c{@NRw()G=H#Aiy;iq`aR3jxFMl4AM{1H9>b@ zeXd2o9k0#QP8an#QhGc-$Q67hOPYmXw5jJ;1rO1*(?CTfV@7YrE@U7UnVEK8i z-53X{U}EwCM;!K@6FoPV;=KFtd-WTQb~n7=@rfTs4Fg)~1SnqYg(|WA>y&r*O0T1^ zc1*Ep_auWmv?Klk7qRIeo5I|$Ngk}u7Ma@WrPXz!ql4baBO%3o!f2x}_b%kEKMEJL z+=b%u+bY%{9={+EIL*5LdB8z{Ke@=#RI5W!CDfwD(T6cbTH+-}tw(PxuXZa3{7DG# z&8K8tvdYIMqBPM6MwHlYRgDxES6D-Dv!sHGM+<$XHJ{eti{QcMuTaw6((&$)#AuDl z8I1C(MmCIqKrAZGOXUJ>II|}6yBK6Z(4{puAc~xU12uQz3!+xv{zZp74yHkC>rX>+ zW_;9sZLxLkIc%K&fEEs5(4yi04`^{@${0M_hj~e=SK0hw7lQ?!u}A~vIryH`Ay-1e z93+!S8Yzz6ESC#kkPQGbSOmBvC1_U=@PwfO=uqYi67nYWNgvLr0?W!tc|K_&Lk7@t zdd%emn@ct|frX(O4_+&mLn&e~MLZAYMI!hBY+i)$ zN>_%|rO&}OvC_@Js)&~(c~dZbWQ{iijj?_0`J~01c0RQ>^#27^Xw6QT8VzpEt#b|e zGJoruRg;^YPn`o@v7JWr>Nn)fve?fSbRlo&rV#}7N&Lh4-U@bmZL{Yw{Wu?@H+pUb zFDYFuhP#jFjetAAA@2! z-CK5_Pfj(c9I_9?(AXP^`7ITOK3Oio{>*_49O&T9i$w(l|2Nt~UIyMLAQU&P6wLs< z9D8>x71FUN>a&#|-5YGfP}^iBF_+5bU-YI5>6pQU|G>g~F~r0oM`HfE^PEJ#KlXsN z7{V{kp0HZ` z&6C1NE`O(=oH=uwurBwfEIBEz0`F=TMZZ3go;`e-TGrRpGIRkUt65UxCanzrounjvq9Mdwl5z1qUPaH@ zwXmv>ZIeOo8k=9z$Le79QAU0x*j65Q*wGZsy)9^(@7VijoHwWt zpOu|#1qOAPOOf|TBUbcba*-?xG_2{^G$H&gm5WL)lj?EoGHHx6*p@BI2m<{lDt^Eq zF4&o_9)7kg_?{1xYN`}V9dl0@jtFFG&cG`h4MFJUvzo}(kxU!XPDn6SoWR*go&1Pb zv~OMO=@H~EzfypGB=~~b8jSg0P&HBu^X(Kp&{hv>cAx?a50Rk-iWPCclf2WeYT*At zt3P4`&JC1}7}Q!LmQ^E9S4OVG;k~)t?IfizqN2v3NPj}F-G*Z|~4O0t*eo9hE`wxfTT z;WtwFnbp7OH^gvt_pJ*yEH9P_xY)1Ic*;UlP8qP&{O?kvA}EsaDk>`AOlE+kFzCAY2Bv;1k0HsXXl0DjtHS)kAhVFM2YP)5@Use%iV=CC+C#SQS%vp7%USor+YKQL>9EU{Nez+JX z3E)qb&1tQ4I6}fShEO-Ks_HeO6D32WsvQ1DK%;=3UL4n(!|+BKg#_=CJk=yxHyfG*L)PtBikB;s!^lOo5HIxp*gBHk_%oxoHE^`o~N3-b*XI~;JI zSq2JwqoJ>EM4s>gY{|m!z)Zu0sG*_gb1hO^qY2~iH+k`t6IoG z*ftRp5?)KqHcGgIw9(op+hhJBfA#Wb+Sc7+7LFt}!vE=T*cY^&c0*HDxn{-|#Alb|FdE<+gla=%F^;;rV*rT-@bCPyaYK)~0(OkkC)a^QwX4zz z%Qt3`(#e=9np>Orj_VsRkRJ%^xEaxa+qftom5oBsWsajmV<8X_yhYb$E;)4v?w3DYd;`gNSqfjz{mJ$GyI(E;5rZ5ok|Fx;Bli^$Our zE@}cL+C>%-0F;a%`v>AYO`fn>-U={%vf-a2+(L=z0uh6yPeB-XWcXv~_Zm_!3$n$6 z`zDp~iCuU4Q}c=IAG%}Me14Oz-6G1E?+JV*lQ)ocY&H)`Q5v@&$4{W)++Nz@pgOZc zJN6J}cs$98wYP{PSEsVb2>k~SI{NPL1(*0JC3RaJL%M{rBBfId8kQi`H1v*+{fPV- zCBZSb>3xAe{;+NRoSXkn)s10|1g8_RlCtb1@X^3=I`3;bFCN1Ny@zIygGx(sp`ahP z>}mbEy#%Qr(!FzYD7t?UrDpoFHkU0>o0zr3qFZq2Ot6RAA&ILhgAtz&s$z6!X6qXSQy+mOSx|(;Yg^=jl$#|iM zEiK44cd{V7-cckQoesTwkkB^ z+c-HAma`%;U8RCG6p|*qLR&?MRAj85htM-}kU0FyMy!&D;acBO7A+b<^t9d|-=f6W zN#0vsl4mn9m*yFf$|J7?jpky+&yo)Py}hSv!_uO>R+cE zKL~P3uB{wmD}%-U?O1-tg~UbM@kCEckd^VfmA5fc{eBde@&5g8Q2lVgBl5?&U1 zd(AAy>4iq++UDi#O>BpQ6T*LlgHcDS^CndP_bNZ6lhv=Twx}F7Le1WDjde%uhEtW- zd#EkcD{r^* zdNor^37XC?3lxwy4OnhFyK{kycn|#ep%Ne`qAMM@%&4l*lLEfs53vw0dHPSFW7qoH zZ_WcTo;A^*qElYxX%`MjYJCdcL)FeAgA=;o{-&CtYQZiF{2oPD^X*cwvS~K?joHOe zlL1l|01%-bXRv(SFM_BuDMoQSdMQP#fnh& zb-BkTElcS~8Bx-}BJ4FposGlQS1SYk(rMqbL!&}kfBfe9_H`zaXLKC?f5{^m2ZK^7 z52R7XiHQjk5)xTiS(A^Oa5l1GE4KAhr8>1U78Y*^{mT*mRWV}mxxrz-m0cA^SlA2j zL&bi*EF8t+^GmtRV4y&DTglTV$aY|5z&K)oXjxWoGwrnhbAff0M%X3m9qJe!pI;c|llX zsQ$G(#HHjl<_6V`DO-)@bQ$LuRthh(7{~Cl5(?j_0V8t@3lW{%mj#w)p#w(3dV8#Y z=SyZ@woj9$U&N>>6qsfg{h;L>M?N?6c>VqrT@$6mFGLoC=NE?zKx>^gY#HzYvgVU< zU+)^*5SjTySwS9`lzPKp=i=T>^YQ02OA*tUpm*%AnI=q-oI}cDXvKZ*f(IXXTv#D5 z9R~0Hj=qpW1{u&Sr@*5dwVMz_5sZz^Q6<8M^m7t?GQb#RE_*7*@!trsN$Q_TOj`EK#u+A&K!(7kX_C?1Z~@1I|&uuC5ZuUJ)|j zEbDEcT?$qs1Z7(7>z%^J9$G5Hdgqj6ve0u1ivqgZ6$w|)qCbX}(4lC+s>?A0)t`-N zs^@xa3b4RG?*1Gns>3~-#joM<6}JrErqYokBcC>~IEVwWShm7Hr9W(b@a@+}O{*QZ z&o5}8gko)ACswGAghkIjv#MpLp<(4lVQZe2pOw&iI1bqi0%)YO!ZwFCVbFor)#uK5 zU<~`;X$(L2k+uVeNmKc}9~|@kl`abQk;ue)KG#AS2n~Y)C&^XakF=JYX`?Kb&=-KF zm#BNTUj)p@Tsl7N7(C`xIPeH?O%MV_&y*1SC_8^$;pslGK38T)rP_8!P|Sv=q@{rs zPGCwI13Cg;?Cv(8@;V{D_|LS}Mp+d!m&`OfWtU#FTbfHjH4+Y5{Cu$e0%U)vIiGJ9 z&!p(HE9LLX;Glr={%AxtjM&~n{)-OO>luQqVFwcWQcj@3 zOVrNbkXtZPMMxP5KHkYm<-&>In@es1u(r5S5LqgPx%4!eP`-b8^=I06ZkvWt3o{dk zpzF0L)y-DpSxn*`d#G{gk@%SyF6q&4k^1^0@5Av+IZe%oDOaM3gX&+DD69W2UIHdK zHa)WSDz|@r?xHXM2QziQD!DodhCL4PG+0IsZPeIkZI`j}hXnUfiUOA|oxt}mfBuwh znb0wpmeR9*w9z-v!k2$J$wKhw3(-qd)J8X+|1|B&8EOxaMEfJZxGl|rHNN??JIW$f zmD@?Fg7hUwS>tc}Z&gP&b$VQ%mn6_?cu*4;X12oJv6cr)}NPQ+VTA@`n{L>l$4sLb zQc79z|GPg(pHU3|)!y5`xv1YN}A)U zNbU|J+$8IK-BzpCy>3-Ua~gcT4$ff(HI2HKtOyIdF0(lw`iAZoYSwJR4BX@z?dlBC z|4doC?X3{WR-kJ7YHiB7U&Zgf=3VoB8VN%)F;NVlOju>{QHT%z&k>I;Q^>=z_0UVt zV=->{UpsE>Dq2-)O@LtWY)pMp>+m?J2qcSAx~6nVpW-|RdFjQAyjrg->L2nX)79o4 zbETecdT-A}{y2!f-0aliIWJt&GFCWgZn)17>a+e3?nU6y5GD?Up8P?FAYd#<#t z@V-Y|IrlYNxuTDGw0d=yqxG19kLj;B^<)=st`aqKg`egoia89p+VLCRO(B$zrSbth zP$~xwSy*3mHoFcT@Y|yGEFDs|X=_qn!kvfyKl1Heg}y`(QQj+Dqr(VIzSCpl zq*QYXj)=UdIhBHFyzH{+7sffsp6(7g_AIimEWW>)AIjlrE^BC+`6rt}G&3%b)5HMNGM zUFXBr+j#0lLJrTqDV^!^XELPsdtZ9|$ZujcR&ePLrOAN3vhA~81zgu#@kaE#ag!>S zxsys2Nt`253O{u9&N2z1k=9v)rQ3U2dT{yRRCYAQYq&CN>FhN&Pk< z?{wYs?H~fsgrUA+)tMy;qq;-(T$3`EuNYO6Jn!vyf~UoG6myApm# ztVka$*GXPY3GZUlG0^LGF+=TsOY$!pxC#$iX&N$!oDlF9Y2hgP*JLceRw7^Lt3>@B zC&--B!)icZEr6v#;s)W-Yp7*<)d#@>dMX3~?@r@GXEy#r9BC{JwjRzm7Os<+@E%RPwe5HLtMdg)b0H1Bm2QZC0KKF)Fir0R`GRbqb=7~$3N;h@AM@fhU-us6y{fh}r`l)rl);dc!U2s>)c5PHkR`?)cETa9)D~UVOO1i}q@g8f zmPOA7gdql8IkL~e03gbA2L0xcj#KaC+B%0h?_elD_BcJMZoivfIK>ajl$V2v6S}PN&wwO*e03Ra5ul5)PWNI~si;APIkJ z-y7WSpH0q;%$u!;3bU=R&Pe)wTZO;_ZzucYW*vU6t_9+z0>QEod==a-8;7daI^yQi z0`@L{oZ?HOUr~hMVgk%%d)b?U;8LOLpgtnC06mGNvz&oxby*|2{Xzvv!z?fVyk0cS&q zA<1hTNg6uHc8<>D?F3`krfeMH#d|ctMq7nr;T+7(M`06J0swFhM6^a*T9lF$6U!?G z>(;&Yz2NDnRf7g1kdgJdXYVBEhshFaZ7jCE2UIhfYq!crQ_3(`h3wv`#yLP2G8jEu zmR7#_HFw?a>Ja6DP}DNrDf&iM=7+R`#0yio-JN?I7zuvMQWH$IE+$% zBOA~pskXEJ0XP4Fala2fWg5d(|7pj&OZPm&N38)J@(>4?VYzT zWfs5Y`v0ffgkZOk!cJV99HAa}IufAvhACbgsuhCzpR?^k-$GxICzyfZk%NO|F6%+P z;vU22|16?DUNI1oT-7>*pa`@^%3mA_|JsC$7S7k-NS@>}HdLd~wKJuhCS{zDdT&~# zqddVDleT%wNXVy>Pp)CcA2dmkWy%9ttit4K#c1)j64hcML;16}nk8WA%X!Dj{NnAa zV>@xPz$F7*F*k zkyCkh0+=b$0K2pFZq~nx7VHZLZX@bEPPZ`*U!CLKbgst62G!~ociL)hL3-}8Q}V9) z#jYFKr)X%-&+JB5E-kws`I{vwlsVXH{)s`|<+H+>y-P`Qm}3?Zt2G32>CXxYv&RnU zr?$p*1MRgM=1oFBN=qu(`}@lkW`uwly!ZXvOzggeWrNJ6Q*%>OT!qzv-IFXyo4Jfs z|4e~ayq=Kt8Ox#${bAC*ssncyV@a#I_i(}(>>+(p&+R7UyGP}9RIJO&ft5E=ohcQ+ zPuz>=tvPFm1V)Ds0H9?|a{Rhpsw44ZZ6ri1KL5+Rg)FWYlqaF>sfJzkX8K(C1mOW_ zXh0QP-dzq|YCsJ>VFanEiBp+KqJ}E!#hVbfqI{891@#&}0R_=H*)Z{40xR5aw#7_c zo(;|PPEfhmT#E-bQQ4LY+R9O-vM}A_wrd}oXmj*GI5cDE4mC4|S>I<%YN-|-6NaG$ zKsI9HtcQjaeFmI!AAXr;`BIvSPC)Gz9P`BrmCNpn&#MEIT~)uE1k=$;*@9jBJWR?x zI*w_kv~uuxt*IP5ZfRL8V4o29&aM}UN5?=tgEJH!_Pwp`iF=LJ$UklhxL3btz?CE? zu}e;59HXJM9A(7jVJ|*EY&6oF5XHuZO6_y@6b0Y)65ftU*BH-6w44`2PGH5ZTYpME zyKk*<%xWthSuaRF!@&_ut5)i(saBhi0)WilOG^2b#4ekh(HgNj+U3yx>&X!&;Cn$u zg-qZ@ixG@$Z^?;Nx3*n3KbV~=yIrzR8*p>)pq$BAT=es^nc3j9Dp^os16E!}+h>GY zxxC2QT6TbJh+(dYZ(VbtxkK4>V{pOHFfPeAaH+^=N8Whh!2l;NJKvhL#@R{D^>zeo z>m#m`qGCG_rz;`w>8If1hB@MV!TibZD1FO0y=ab>qK|rS@5E$VD4g6(^^`Y9Wgb^6AiGHN(auv-j88F2FQ@`hG?`t;uSB>v;Nf#cRjk+9HRVI?4&EfQO( zkZ^W$K@w1oKeQ!V^+uc)xi)fG5L2Bg=RUOfe%c4lHH2Cb?OoU=LlxK=;CrV`YLY2y z=*6>FN+oiple=?ncoA8J+gIEzZ*)Mgax}*iu{&ppYG6Lam5}{zVa;%d(o74-ekVEf zO~5wm*157vuCgTXO*6UBwkCOxB)NPb6`WD1&LlfYYzoLx0E#4g3c%&Xq-w`t0tK9jAj&mYr?EREIJufL|#koFKL z#PQiUxlgR`=XJrP_E^)Pp>i;F`;6@ms~p!G!>fF-3K1U8*svcKjfq9qD? zryy$);2ANeSNmqN>D=F348rJfA_jP;*|m7x5}~^onJS4QjJ32N0KlD9VcYUzYI?Ha zlq92TR_a86qwxY-Er%=@6-~?3euNMYm)^^ z=DhmZnpq%pmf`dETT5suc4dHwlA>157!|=_eX7;>Jjo!vhI(^PYB>3v6z?zufI>x5 zt($M6ps%Ror+~@0FT~Qk>mYdl;$EC06hj<*Qp0EZ*S5)!Pg(S{=bAZavq}9VlaoeY z%%r8*FplzT#&%1<-d(!#xjMpeqHLgQFAOJ(o@sW2+`6~&d8Ew%;jm) zDk>h({lHAy`yG?4;BH^TR3Rh?2KceACfb!~3wsipDPKINo8VpvL`)1L*XQ`-+rmPM z%ghd?c{ngKe~;7d2h0t%&4yWq%E#wGLf2Cy8*++RWMLt!oB2(Tl~VB%t%pv&iuo~K z$7RpFHZI)5-~}^hYP5FWRH?SVq>K8z=e$jt{#z2#TEPJ98t2jEf;-eFNxj?@;L|!* zti{AHm~T=liWN$)>yt^9_D=uB$0RRx1RM+u9kLqy7iZA@>!5}@h}Z@p>hOM4Kud#fK+= z1Ta5Y<0yaAMXQQ_tD=-WG8b*jps#OwBlFW9$7zrM5U! z1!EO7A$*HwWzKOsd$sigQwc%CDQIB1W;>n#@L5kzohJ0f@yjVI;W3nFz9UvbGU!O~ zBUZ3Ned=q~b6;4Pg-po(3Nm$BzO9dZhV>y+WYin*`zX@}@>U#&U)yxa(BB$nCzVDG z-O>i~#EAQw_p{bwV*u6E}0c7a3pRy^b9Zc)SX>|Upw6nKPRvPMiA zpiu5`jXk?}-930n^J>|y%2~!jDl>B0nf$dQV+WzYazz-wORr86=JI;OTvVbSR;AKIxXq&lYF> z>CCq}cTrrN@A0lRNg5`NY?e3s8B~eg2O@jiC_o-4Fsk-RYe!IrQ zGyz`iSG1x}&(h}qFstIG)X1S=!#p0Bf3DY(YnT>(Tr+UanrB!37=XQFVCVWX-%&7{ zn@^Dp{o6nbDZ09q{_dS$T+oLSc%4TH*ZTBMb$@uE_O89}e(gLWJ6#i5>|j@Y1I~(R zZYw(e$UYoh{kQ%BmVcb@>i|)fk?n8qJ8d-AJl=-ic2>DVCBa_5q9B0&Y$yv;N7-O* z=wj=j363r^dg4qozr6~9U?EJdh<;R64b1-)U2fAF*7e>wr8FF;6~zAd0YS&?3MLph zJvOX7gSda4VRP--oJC{Xv#3XSK?Vxv+K`V+!@DL>78Zndg(KJq6O=N9+q#T9%m_3;cK_ol4<Fb#$%oL7J)}xSSBg1pk4a%`{GsyU!GyCUrdmQ z5}ax4G6C0gOA;R?{52j?#Wu4H>u+P}7mt7Riw5OB;KUWd3gZI6Hw1(kp<~>Z(x&(l zI&_>OjJjvA1Di8&n{XaP03{6#nUag5BkbAYauOe`HyQ8^!;cbSJeFT>2@xCGrG#-n zigv~9@;;a9u{v3>vi62UaSulTZXU6tU7QO=lu6DjiH|;`0OjW%d>P*T;}j`(G}k-H ze$r1-Wjo|IpNd(KzpC`lL#gj>-lKOZl&Xy6;~YrEx^;lM_P^@_V4VM8IJ$w+Vb4f& z`Nms--72`8b?UQ+QBlxwIq(v$B;OMSDPtYRE$U;a?F;yK0fH)mj{{UbQD3EH7sb8) zjJ<>deqs3K`#yNRU8{vedwG1lQg?SFe5)!;GKC~!(_YZ?4Gk7C{F=WEMM`QbD%+$b zs!Y>ITUqrx-z*oEbZ)RR@-swO1EpZw*Z1A4kmMKR+cTBIU!&wl9_es?0h2~!0yO06 zFE2~dIDu*f`h(74vW7fU(7Dz^C4@gf4`yR+}5S>C*r!YBLGzBufci?ol3V7ZiZ`lDliZ&Qh* zkucqw(A!}w4#~O=SURv4cf(h4fwQJ5T$Zrb0zJL=&vK-FKAK`HG?ui^z_g7K(DCqp zam1Un%C15mc0wSP!2y7eU%xWO*m~c`U)~M81_n}cM`}_mMXOZbb zfN>8o-j^T1eD&!3y83;)7Feca;~Df2?tlRCcbNTq+asy0L&UtVOv_1HA5S4ZNCN&w zEqajIQcM0~ofdxk9j$s>%0tALvh67Fu;p*~X&jr6TR-o5at;S@Ejnc zfIWJ)C+M+@tX`|0Ao3L$mWH>l(viTk7#@B_GxMIWz$lsTYal!Pa8KGkCO_UyiOBa< z26XE0q>rSlp2B=zt5M!Ner@H!s$+u(fY&}o=DM5RYP`i$a7|!=A}IZqK^s5O8O%3c zmMtG85wc7mZnzqH>V3K#mii`J>RV?u!Nh zXywP-GI)=_l1Ju~qXik*Ma`mQ|J%CtyM-D_`*|GHNJP<0(KK~eQkO))=S~ab)r#e5 zWW}JK^%qG+Z7S}2FsZ-*fE9FReA52zsve*JjSvrenrqIxDb3p~-~Ik+u_)z}(KL*U ztz=HwH;%#LO`01eh1^E?k9Q~ic?Er2tDFvwS`Ilk_5&+6fvBgpX$zG+O{cBRON7Rc z1Z&*Tf)L9*^ZojlYblr76x^%}z|EBY#%D4Cf=mfc}0Mkt`b7 zuvP%K;}I(W=Y*5YFEc2<&$9ihKNE4P1g~~IuD*WzVmto-n>#Y)HV3l=M+JLVy)Fj%*@YzSDq*vs;Ma6=zlaAA|&;RaeNd z%@>$jjWlsoR*{f3T90!N8@DpUpYleRoSm#V*}qn&+}|rIny8x994XTd=0QVu^PvtiZ_t6RYCi35lhD!|S$#p|yhQCL zR8<)>i@Z$y2d(jN>}C6GsKiTx`Zkg}vY&LXygm}~y0twrWzeHY3|iNt#p`ZHXIf9V z3N*g*wz%o}0N-*=g1c@i#b9p_@5&V&Slyc7J|O%hPvXzl0bE$$?Qy3x9MeHW5&ZEi zb)Wo5hwHBc#6HGS`Ar`}I0ojI%}%c9U}Uy3*S@OU_-ZpMRWp)7VG!niDtgm@a&~!c z85`ifSzgXV2G7G(_6*0J>{oLIY(tK|ac=cP>J&p!!_Q28mHeiS1f@s; z7XvTX-V2%A<63RbiloenJ4UnUW>VEjD~>wO22F?P#dg?Vl{IEFHE#;l!CEosm(PBeeoRa{q5RE}e{zF$NoQ`)WQ z4_tC7j#I+jFPK)cSSlrTqssivI5NUmZQW=Pzj08+z|7jBv@~-tpOnlbu=&NCmruN_ zinR89or+#^3avT!#YXaxynoe7alIyjCQI{5YlP?e^$0FklDd0DO{izF*HYn2k1hny zv(pik%*Wxp$1fI62OzroaT)w zN>&aBD#F=|W}TFm4S>w%y#QHT0q;&Cag3Aq{W2^szo|@A{>)^F zH*P^6Un5_@x@5^OpTfVs!-`A(JA7ChS*cxGTUu&e&K%$NBt&>lWUz-T*$UETjIkK8 z%6Tl?=5ubmKsURqg0gA2{GXwu#>i!PWC;&pTkp#)k{$ za>jlSpqAZR_7I}-p?ZH>8ctLyP~ZyZ!!+k{I@-4bM52BIToOuBwB}nD#x)z+)C5FD zRO0(@b}WC;p`Ft0;9hO|=dQfCJKH=+4`|-#_IRP&vgUR+no2B-d;e%_GulzFYZu*8 z-z!j~cedjD5IkjNO@ut&bXe^6ctJufR{OZ2lD0IzIO#NUxwY?m8&FSrwp@a#ru$OrMJ9jxyFF8lgKLt*X9Hj3&}VV@HaFX z1QFiQzYtz4>xn!B0k6;Bh|t40fN;}^wef`mxje$YQ^WhDpNiIno(6N%Tzg^il67Hz ztR(q-+RDnuQmi)WbAv=vgswtM_Q}cb?y;}c>nGBZODn3!FDsKqHYH*j_WQRssdj7F zA;MC>wx+W3@M_04@-VUCsZ!)j{N)qVpvFrb1{y{8@ZL0)C+rGU^`!@eNPP39vK%R( z_I}q9I`fggXsp{?{XG(#XI#C7L6Ov;S;}6dMi|sq*q*l%xRK!fqSXyZG>7kZh%P6Kx8u7 z{hW^-8jknR;DSQ?S&LIg>vGFWu^>3Vl$qyvHq zRh1$$_R9lyZ{i?U3tGi+fUadK7DHr$sCb`h_KC2ba zqow(mnG2|XAB%$4d90){I2$sxhLm=G6!-4wSz12JtI3A2M*@=L`?JtXu+;H%7{q3` z^6^S2QVf>iimxc$uqPNduDZH&9QH)6Yu~) zJxxh5g_fFZh=y*W;YC0%*YhLQ7pdPh)Dy_51xHZ|FPf`_Uy~Qeq>ftE-4hipOn1{b zs7b*BWK&piYg8Cyrq?+dCedx3000g+mho?73643bio5-1yQ(WaH++B}RYsd+mwMN} zvJ=6=HYKHcZTVQY+&P^pbfS0|dzT|92;V=ap6;FE>NTHWj1)qg%oAtr?Bo{ySzOa+ z&8_7u*6sCvCpWag*ycPeE;qiZq7;0c-2CL^&Fm}=NX%L=2JZeEtccesRUUO5+kPD= zgIdRGTs$6^D(GY`&?%WL8~0>P7;N()V) z`A^JV9~>FX7mc}D$?eMvC1Ee))ktAkJ_Z?e|8WD57G!2*Ued@_7WC2(Ucjd>q?@GO zmv!1gaB3=$=es~)#If6miSX!X>kEH z{aU4ag+N~QfWA}IT=4-%gS2!;KD%OrzZZ5|+)eKM&TqbJ-9rnGIjo1_l493rtINv= z#>$H@xPXMe^)66!?MS@2NdVXbQ2rb?r;#v2m6UkwBz<#&I}H^N(i z6sdvSmQ6e>)x)*D-{GH$xUNu$nS+^eGXLFu`zs+6&(HyuC<(}aV$pASc|$=~2o2K%4bsU{ANUka~?(QKUEiuwPG3iC=b-8tK7sG1U`4roSHT^e2 zA||F9EuMTGEC%#dxA&fb9p$#`QlOq?L3o51T>Bf$-G(H|f!} zV!YwSrjIQg$J1s0F%0#F#Ggc<*kcm0x5j0-MY2auXUt zE<3hOUtddamBJb%u&ZV>!Gy2ffbhOCK`ZZUKHjlVVmDR-!XZ19O>N5kat?es65D9s z?)kga!QrLdjB648^r6+`W!Jr6dF+ zCvwJK0+~?;7(7jC{>0@ z6OIw9uFOEz6a5GMCwjHb4+G*T70jKID5OQ3!IUFN)@q|E(?mfM=1__3-#+YREH4re zV3~SzH%UpjSnKFoEAASk-y$Jo!VQvvqD%S$q<&H`86WEuZ@+gZyKrgz+Sk+QwsKK{9j#RIXz4sgmCHlg`f0YwKA}F;~$(3}>!x*e583 zV~|ZDDbe#O3Lb_M1F8HFHw@)j9ogn8uP}^2I@c#u#%4^^XVlE{br$~0#wioC!sYk| z_JNizO^X>BxakcxUR@^R8Ku*Lq)wl}-_xF;Gv#j%6-V8;QIb^4Bt# zn~4^IJRg||#bKt9Jp1qoLe4Q`iwBO8DmFP*UvBd}Rp(r0*0&?#uLrO=h)5aJTsmGGV1b*54b<4xYEvWCCTP;3Z^^3S^09=qPJR&kb;-){+LgH#199j*frBJmP+aS+1@O*c1Uz^u4~bS{~UAnj_Qrh;g8ov z-qcM3{DoT=Xl$Rlr?BZrw9hdrJ?~xf#_BmX?EA;u!=C8xe=B(3dL2|y)1C>~J(8x8 z64@`zFnPS)?|n=~_ne(S``Uc*5OINu23t%Qx9RRNk@c8-vjq)5?n%dlk&Lo#NN=|3 z9P)odLwSi+OqQueI%RBAL+aD^9{oe5f$nlb{X?||e~!sHm*UIj1by?C<9bT>xwT7b zquzTh<2xb%BFXj}6MUoE8y=>4miM7|v-5oAszoCvndf`|J%Ex7OB^%nwZxU_HzAuo zTnb#cJRgWxX$FE*aFvn|;=k?H@;@5t^s$m6qFZGNUX<-fGgD^M`ob0aZZ1`6fFag8 zP8yk6^5|51R44$5a37mTO>5MeL+BhtC(~lj z5YmfJ_zh}sRjD(}Z~a2hO!N4Iys~PY-|gz!@-Fvep_kofP4lP8XMd^hwOq4c(A?fz zDN2#JmFA^goqM?vWUa~F;04*fu4=sXM|aG!?eZAvVXfZqU1CYEmEbx+4+2^Vb=3nA zqp`Lxk-z~MPa>wD{t$?m2!LT|`=Lt(_GkOl&BxaxT;gj(dF#0TnHd-dIx9T3`$t^; zn{I~wk0}X|do$D&zf#Ntm6|}?pUJJGJ9NQ7xlA<8Lf|G2{<=yQUbL?1+*BcXA zElr$X`tNqdi{e5CF^85|lC_M}_uU_j`G9D}uicfavi#jwMu)m$9)67w1zgXW(G5p}DK%FTbG82F1R=*NKoL>E0;V@5h z<&C`lkIr^%Hgc}5%0`#f&Y?zr038msf!{iZjU?_H@KaGOAmIKkyXQFoj6YKg7`>l) zZ&b#$d}F_L*Q>kpT0S2M_*(J-QGjRL?(&8K5z+PYNvIoD>}x5>Zk#%sVVhNy%>!M2 zo?S<9{c*mGkxr)J2(Ydy5?L^KRO5^^@Eh>{f7e7}46 z8^LbY* zMFD`H5cM^K1sRjtA5-m7L_#nCd}9+olRagKUZ7@-CY3ibZjDF`FDKKzvD#&rC9B&v zllcTlB+J8tU;AVE4NSM~P5++uZLnhSzM)5k@tKVbvxInHD`Hc|%^)HXz`1brld=E` z)nJM*)vRZmeUYdw1IAZ@e}rv#uXXfYWaPieR~W&ePTY9-@^9GP&hU9~buUPH|BjPc zL;{9c?|MTz$TF2%>TcQ|BU!49X{u(X_{R-(n#yUyX{qj8h;6RL5aaE9J<}y9V&Uol zL9$77$M5T)HKdmprHGu`g!>*1kH6`Npx18yhP3A_-2Gx`N?pB2M;3E2QDXBsYC8VS zo@W=FhDav+UMkEX8F~Y--Xp`e>T3eb ze{v}8RI6q6ncOV6FHD08`nPx0+Gaz)OG(Clbv375x`7)#psDx9mT9B?RWIDq z(#Hg;@}>?i7fa`91cS@hUp(H;Kf0&f^_LBxu}sdbJ|`AGUz0?h*uA-n=VLSmUnU7y z9VrC3YTwSk)Z1bX&-HRbZJ=_5z`$Fy?3sFMpSLozM@Q>!G1pYK*xd@geMe>5W1J7wx=ery_dKhBTlIulEmo;_r^qs6E}z zeYp}pc+$8pcU2F$$6uA8dR=rhGxgOOy?)YGHX|t)A$jqcW3M*HUNwhAXZ{TWK*YyLyRfhT2M0G|h2Y$zT{%NU@U|Wg zMBV@1T2lxaqK2a|o}1%!J-CNG;qm|chbY=_1Fh#N!A5=ji_Bm7HN!=Epw0m_dRW~t zqVnDbc{eyhS7`5%$g9?57oxF_m`#L-Gb<$)$-%3h@+sSlfGZI0zfx`3Sq&pQU5TF0 zVO0HMh;#b&S7tJV0_ zD>W$-Y_Ke&$BRCf%x=^I6!~Q*{!tvT%WNKJ7c1effaC58-1Na181K!S@>;K{cf8l{ z=?@l^&Yf>0>@4?@=`XviX=`|)ZsHB_0Ix?nr~9;R{m}OM&#M?t{N&S`^I(?THj zP=xhail)^v-vd)LeO6s6(9DgjsX~Z$pHcnTo*$mFfKYH2 zm8VVPQ_hrgHDJgble^%O2Oe)yk3bfV=_cMd#cUt;d9w>Ms9?Fbg%&KtHt`beZspHW zaF|Y^yF7jUy?aJdusp6nJ(Mg6uy=CmTR(}VM+WMOatXBon;R9!c}iHIkDhr*4wUIkcO~^|2uIb1@%dM;nyjN1R!QS*A=NL zIotldM;`tQYpnToV3F7<(#M^F96~n%@cqAHfUW7+bt){pBqL=FUr93Myt8!it<9~@cv6qH zI~y~YTfAx6SLd3!dlU5d;9?iWM$T=y+NANum`Zj}<9i-M2Ka!BH7t~=hb}NZrHb;9M^|Sz)s@+$J}LG50Ua|!IK;j zc|T={*go7j#9PQ}FAB%HyoBMIKW?*LY_YFj8BYrReVcpmK|iqJoz)lM%Y8?B%k|2B z@nm=*972K8SWEn2s3gIV;X~1Ng;vEo>e98s8A=^PEfqqu$KhFr3z5@?f~dp^(B<-r zqu@pOVWOK#JW#AW_!gqTpOz}}?Jbxa;%(3rsXSn~AJ1dqWK;qZI%v3ixV6=%QSBOT zZRFVLUedMpSo9(4Ok|M`IkMBgfFsUO4X~mGv-_xP13LooPwF9gP5qevHb3Cg!}`9q z7kD!JvSz;V?4h*bObR~~70nHX=Db_NiCQ1A#8H*|$7IZbCmS;dQV?x%5U=>;Tiy$^rwae zw7{`#&69LkcVyWx81Gnm6*g3M4vw|UThpYt-p_ce{r|SLVCrM0P?Yw~d5g}%sPp3I zdOgxLpp%{pTR>4AedPpaZc1+t@rSbYc&L&*L_0c_?tty3qr;iY=x83X`Mv|%MZ|qa zB1=0gfUeXw23;Mht#Z`lx||aS{DNcp8*dL}G2Rk|gV+DPZmX?*YKwl;Nz`JNyL8wC zO3412+F-JTK{kTbtEA*EXzM<>3Ez7@UNLgWma0`!xiYH9{9~5O{R~oWVQbkbBp0hh zYn9)NPW#(wvsY;o9L?`5kaH|ixuf_k{BJtK>H>}=#yUaHl=DUBd1Nb=8`A3Jmc4mQ zluufslH^HBLDSGW9T>K^gW+OG456nvx8Npn*}c@til9tN zb#s)AIDFZ1dnTdYD;--9kkrv#&qp!<$c{xnst0S^;n4qkerPky;kn>PLqdlbT)*sJ z^*Pq|56Fs%|2$f*%iqbPy;|6~NxHuwkr-dIqNSrPU6h?7GT8~@*f$k35mnYR$~>Mo zfeQZLxdBdd6jq7vM)M_d2uEHb>RKwDX;WFw~dw_k6p4S*_ZFy11E^VF5TC6!mgytSvB3gdKlmvotH|^pyOKVl#G>8 zgA)3i9^Y*M|F)A#iX#VFlZUr+Ii(g4^%(eu8lm3d|`le$m9)YRB{S{i+*fO$~pkzNAeKms% z6i4g%a8OG->}MbZ`~zdx|K9}>VL=V?PK?q0$_2?YZ_{_4aw>_Xu}+D=-NoSQjUyr4 zaEbM=Vy21wq%%wcnoqkGKPpRlO$=aAU7Jc=3zcWaQOK06-LAtdSDhScYb=;_19LBuKotq!uF8ww2yZB<>J+?TfIej9OUp#Z%(paoCz1)gN zm@V5c)RWKk{osDp^|lBC43|4h@khEbyURT{XN!>PbWjXb9A+&`RL8ge0AbB4%NB_* z$$pBsEeMn=SwRN|3V?5l86ORm+^u!G_5*KapV7hqIB{K{;hrG&`=d_~gtskj3HU23 z5-SqpiDvrjXKwRo(CYGo;w8c!huH5`XT5|lfa~D>!@iy1T4Ih8_`n|@KpEH(wD_5? zo0F$ioECNUR+ytQ;cTh{&-^GyJ(f2NK%w+ot$UyX5X6$o!D1i*zSAj!L-JX#{kvz& zm=%|oX6<8wp}QVUZ^90?|AJ0beIW(u&XP;zLR(Z-)Q;3dr?O;h!AIIP$9I;g;$|;X z@C7I%vJD3rb)ImzKV_&R9L0BtnY}19t#JIkM)XVv7~hh!l$120fQkA!SM7ADka$u? zDEVj7`0?1EA`D*j$W2wCFB}__!Q9-uys(eXzAC@VKCd>Ux*C5Ej7)(dc#+r^4|+>8 zR#pJ0;w}97RzXfM?UQ1G10ia(HO_K5!8`KWDi&cm?`&-4eGk(>s?p-~j>E&tO21)% zOmgf=*p3XC?^+m$X;6akv|goA007nVYLPlg=~OV^KgTpyUHZ3IiGG>kc=msId&{W0 zwk=zDqXB}uOK>N_-QC?GxI=Jvm*B2Jf(Ca_a7l1?cX#J4&bha4RlD`IR!`dZb1&F? z*_>mH-un>uzd%XL{!1N@zT9ui5!v^jD^+%Esli zYSeF%z(9VB3tIZxi-zYQzyFP_cV74$XY7pMCr;mUdpG>K|2Oj9;fVh|?>$>$Fl2ER z;$gFJmqvfNanX()@A23c6Ev4yDC~T35pjAf4Q3VDFa)(7Lu%e+8|^Xxe0zuG8#jzR%~%H-gAAVdlW{5*Ho2szKK z^QZstfS;q{0PNKBHWv#x*Ix{?oluyeC?LkTpt%tv!?^J*Obn2H@<9X6PY6K4JPH*s z$iQFU)!|?u1IC(t8!&!qP+ZQ`r83_b?k3L#1%4Z-A`>-Ndn;*1frp0h|4B_c?Um%U zBG0)bZRVzv$MQuUPQ5DHlPUoXE|{60KKP)w45AAUaeXap>{y>+mzkPCCgS}MIrs`` z#NRg}gz(U{B&tl1`gJC1zMrB|jPa}_weVXv4<4n34d|+8 zi06E8^S*)`a+W|SlDA5=dx$JRRGkKpELK+Zd_uA1%l=}f7{5cYGxcePUn61Fk=f(l z5)m=}fwO3f7@@w)F3vB$@9&k-R0@+Z18D!*br7|`)9_fc)()xt!NhmEz01hJZ%~t}<1h66Ab}$@7KhUp4fbK~y>281Pvv~e( zjvSOO2vl{TH(p7I#n!od|7$zgJb)_uK`@D`b@=fQKlG8SJwD+q(}Xn{Qf13?3}~qZ zqs`;1RXZ#nXkTi5M7C>vbUs8c^*}6nebxl6t36{76P3dhX34m-s*^?YZrXaiD(<<- zcgRSNSXc6RiEOX6=Oz4fJWah)uicr}+uEQeSn&P24}DTP@trcIYXS~|iqGv~O*!(f zl-gqApTI=)TCFBMavqy4Kv}~cUR_=;SD-R95G^mJ1D@ubW-7eV7Qqc!uBb?Cdzudu z^+I_QcUz^wl+}CeM{rCtWHp!?_P7aWa1_ukV!AD4MU+Tstf33=V1H;g+VW9Y!kW1s zlKbq|Kn0Gm8JcsM#c8R2QIJw4>{bk4DAUuisIcC<0ewzA2oZk17QjnuVy$33T+3C5j< zX)0+|TmUCEW1nNfBAv}nHW|q=yUh1^Wsl=dw(tKFv5Nt;|KwdC_d^e z?rHlS|5M3U_;rohC-ULEjj#U2n-OkCMoLd90c1wBHOq|=6nSM6_`rB zubWV%Muv^BbwQ*pL(5(nM>n4!|HX9oWa#GNY=UMqKau>4;;WN$NMgL;YnaWVA>(o3+m2=-RGlvRCf?C_%|y9czr$d7)MPWkcZWAIc?@a&>wy-9M7IQ_r+l zt)+A-MzRD}KT4-qX7Mv>1{Y`P10P(YU5#8)iF3#IMn|MyE#F@|%kJs(G`1Hk2(;g` z=HZ4-v3@1D7*uy9vyj~D%!vT^;}N|npm2Dw-m1atgCRrNzmeS#H|yGEEzpr~FF_m4 z!9r{llWt6?GyN6LZT*Z0=dOUHbEore7Ai@#Z}6VRXPCwpfw#R{LONID1`e zo9~na?je*gtZr!%Tt>$JkS7N=V9EU09MVW+{xDgv zyOJ|-SamB!@@hUFim(nA6$C|3Ju$olu|bRlyE@te4^`+~gJBVGYnMm_u?)8#eO

lZNkrV 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 literal 0 HcmV?d00001 diff --git a/.playwright-mcp/modal-after-css-fix.png b/.playwright-mcp/modal-after-css-fix.png new file mode 100644 index 0000000000000000000000000000000000000000..a24af47f6deafb725efabd68126e198bf566b725 GIT binary patch literal 51336 zcma&NWmp{R_U2tkfIyHCf@^48g9dkLG(dto1aCaJ26ulXa0snzR-_QtgkO=1F@v< z!w6XXKr_%SyT{;8u-0%S!*d{Ov|?|>eImP4Th-fQcOQ4L2uY=nPNLlGvZ*jQ>}Rab zeSug6>nld@jfFv~hPjIZ-bGp!fX9XF)g>7YNMCC_;NT~@KRhSQI5$aexek(+k%9Nc zrN9j0e_j|j165T`p@2X z+Z&AeXFtx%4F0pnNJ31ck1e(*8ozs^^{>lZhg`U{&}ku7uVy3F(`mhcUSQWFicSmW zg4xU!M1Do0rlv-xmB5~xmuGw|{Axo{4;Rl{&k)`}>h(2YZ>#_ZV>$LcDC2FHeuZ)) zviaEZ4?Wxy80fFK;^Mlvcoi~w-Jq8x-#0fm<4QX*$H`kDi_$6=;p4%|2A1Qq%D5^) zU(gNu_3CZGOOrgptZMsaKI#AbXCK7mMfq+=F8cE%D}taQq0?z1?CIvtxYgZ_XbBkr zOs=dIGD?LppmAMtx5JFCKXt%skjjiPF6v}r zDzT#D?puAh6fYw1iX_SBRwPZjTb4f_RgP_O0y%cH<#`pHt~Xqjuj>j;Y?i`EYuHs~ zSef(_1!8I{BxRb^<&uUuCg|^|y|u+JW7{9$2v~VTIS*c!nMrHuDO8nt=ylX7J3&K1 zX|u^@ONCvWIX~qwZj=zJ|FX8Wl}l9t4-1n%macYo5rtIBtd+sInxh;H29VSkQ=JZy z0!oS>`j9^t$BQsfc|KC{MA`f%Nmo*GHnW7Y=Rxh5fU=3ihH5u61aV!)t3{{jp)q3E7#f7uc zAQT^rke5AvWCnH#9X&-Z+!E#5ZN>)aEm2WXlAuogkq5R+igsoe{lw0C?PsTn!uTjk z{T>)Va5|UMb$WfCh;h8^1a)|kZF=tGxpomBG9XwUw3|OSOA>zzOm!Uv)koG!ax&wYPs`gK#laEM}zz?|I zsFY{|;(N)ZuAo}6~AY`V_8`H5wToqu{+l7c4yAO);6 zvXW>X62EZR_BKYtlF5x6pPK60Ip?&HOvFR}0mm4zwCJ&5Mx5{V-T_AkSA%|uI>+Qk zms|oTvY@q}J~2!-X`DoKHM15zvJe~F`jsz?7Xt=`0_fu;C|L7>J$SK{4bPT#dH_W< z@MkcGR1VCKtf$wGq{!`Zm=slDQZao8dd-tr&07CFxRaVhRF0~FX3y6CHHSnbj@M}Q zca2)^E4^ub*Y3Zhxzy<2Cw%A4_d>dD_O@>SV*2zWtIVqAXeJAMNhhi z)k?s(V?isJuQ-|y=938Dq=e(sZ+0t`JE=Ti(p1QiUuhJ66t6<@lH3%RfU6y~%u{c! zZo)n~RLRF#>y~zXm5>Bc z0EDhOjMG2nDPBmHU9C)&)Xk9qnH>|Qy;YuUE`To&8owHI))RC=cJZ7NK2DNxq?v&E8Ec!|qvhl51T%1`qQ)Z6@wDVI9>d)=Z5EkYhERuYjQl*fXRMwo|Fp~}Xn9!!0#PO9n;z_ZJ{Z;#CVyCO1Z}yBw zBqls|ci)`tY0v7kX7`3b4D_DLRa}YLh};6VKeI;ltmIvv4I;K>Abp>Sid_^3dA}0 zZ4LJD{%#spVM@7|UOTLXuPzlMayOz%O_I7RK{ziqmv<;!zQp!nhFJ%#6Qc=c{5=h1!TQO~Oz za(`W@L<5kWZAFOs*%pD@hj8;zAm#>Kr5ydI-na-Jf2 zK?<+GYWsxUc+bAb_SK1lpp#f6rd4;N)ODZMnobijjaqUC78sDGbi+7e(Er69(tK1=lRy=j*_zCoj^E!*4F+4b^bu}UVyvxs9CM$cbri)(FI%=zvr{J#TYY)%U z^WP=HMpv%70+q%(jMwMVR?Slq(kQK(wRQ7%_aSiS7m|Vp3Yjtp980o33tFIUbyRmf zUFj{&ycxa)TH%QB8|VTxinV%2A%~o;2&1|}77>ukx*ZD+dP^`rx2)GTM{?hALNcD* z0(4q@HL4Y;s%TnTh2Ss7)%vboWweh=;*u(Wq~5^*nZ)t{;Ph^wBtB#>9=ELcR}kN%oB@NYZwX{dCEpuy*5^vwW}}==R|l`rZP7||dyRR>?ALlh>J3b2CvZUYc+{V!QA}yo4*M9$ zJ{`_WI%?hge3P}ZwR^WgGFt8Gtk^;1nHFUc9NOq|cbMjNP(?@b^wi0YVw$ZV zTEEOVW`gB~L48fa^~wHzO0`yyI?giiF+` zT3K$47!pH=qUS2cfLgNHPs^90FoDw$+O!?3BQ5XE=4e8^x}7Q@Qj><$tcm->L;<-}CtrO9+g~8vYlXjdnc94eb*Of;S2%h1 z#dT0>hZn7hJT0;h!FAri#@`C{lvVrgM?r+#=!$1Ksk@m-$JLonVlVpW_r@{pX=ys- zN0$}=6JYr#!8C45uMf$eeleK5h=Z!bZ$MX0iFo1BSSjVOP zWtbBJDw<;LmyKc`AKe2L?Yk$>N9c)VOneCh=2DpwmTtcnpKo;p?gX9>Bm~Ni0#UhM zYCNCa>kvMd7tlqfJa1XKKMpM&FYo)#l1b%%v;ws+&G6&;XQO8J=UW}lsw@8JUj=~D z*$`9&2_(QIqTuvR2|IFRet-OMOWE!HWr8{aj38)@KG*B&dXGU5_!&$|04EB|0XPk( zK8Cb``_2F)MA(Wxuh#G4p3 zC(-@%tKMswHX7BeT~vH%C6kVrK?8u!!*9dGDSgs)6vFeFe0e15<)-WBX=%xvR+AYM zQ5dK|MwB3um&_{l7OXEKsu2!q1-FJK5J~@fMIL2gvh?-95dE};v~RoY+~nGc#2HJa z(gKjBwZm9@i3oUIp;xCg%)bS6t%jqyRN5Qz60qs@x}103P_n;@Fc+dZP4!uvV4+eAL8E1sY&*TCHmO zOO^0JBPQOT%#0QClcC3=zV>#tu~Z&s&(2$50QhYcXCs^L2U`j#)PEtrW{ugoa}{V9 zjZbL#{e@9>Z4V_X74#-*)Vrg!$VcmFF8$^%0i_atg`2aL6H(+s-w(SwdJ)bB?i_# z=MLbtM@xYJ!4iUYSU#<7x0JN@EXJBF>)WLO0Hz(pUum6PON`#SLI)X5|AI#GNt?x` zefsU!>xI4Z4gTn&AM+a4D$4wyXL;$%e)5?+e#KQ^&Y zd-v4s+Ci2Cc@@If#MT z#pJ#959L?Ts0y7w^!lMsI@@wVRIR4%&OMn985;3DHBw6SJ|42lJKpP_#@wf0#o&}) z`Dcr{)<)Kbz`=MqBR*h!8*yzr%YT;NN#Z~MsA2oIIe+9$@2kBGVM?n(FjetvzGPI4 zlu+e&yCpN)tm^%ub^nmCBOmX1hA0f91m4y*lc}TYZiNJMEWk@Lx+vt@+!h+|EE;gU z5{1b|-YVhsq8f;&s&x!YLWT2~$z5oI1K_vqRWlWle(96N>k}4in~iCi)r5<8>3vI$P17ou$Qs?0m7{ca zE&h}=Nid7v2ni$M988}YUb}sm6>3n-aZx!f9T<33U_Zh-Q&6I^C^PF(7a|i)^NGvP z@5SJKs~^)9zHF+WYE7Nsv-o+-1AQ)K*UYrhr5v$Tq(Zr8x>4%@XhHMWv2k14gu|Y& zK^-6AP~`k1qz6$7W%7jI1`7Z3>o25KY63k7vm4f=jrYl3oIma>FH1IuQi5%eI zPy4kZi%2EUPXe6*0c{!@Pi=Jsybn(RH6Mr{N?dtlX^yj1Q3SP|2H~LP)jmH>&!`rm zJ1(&@9fp~$eSjd#$ie(jlynB&j3hi;Z!@`jHz)znL40}N3zX;Fy0$$yY16&{o}SDT zo~$RF(2stbdyLq8G@lz0r zd-KuQCnh!~EMXHrhKFxUViaH`h5>GwXfNXT)9E+uq7Z>k?k23O=i^$wccW=eJL=RM zf|sl)7nKr7B_Cv>$9-yv{{lV-@omR*fM}ZA?Y`Cs|q*vtR z%%P#s?0UVF!XVmLxu&?7zHF|kwXbz`$0@7_`UC7gXVsez+|;AKM<=O+G9vXizikNq zqDIkr|2Iz(qNJcG`Gb$DLeIUgE-rrGKCts~dj6FxYR;|(I{N(!4gCdw65zPj9sa;3 z7jn#?__E(MPiR?)%-RO;|8-w~HNRmS2&G(_d)z-R#X*?Ab~&K@sfZ-pQsfVV<@m83jnuUlMRv`-&HvffW7h;E(D_3n zDwK#NmH*!5ID?sm&+wCxktw!+JL^?nUmsTrD~!ZP54{c@W&B%N85v!d>Q6Q{HWd~x z?I@u)#QzhBuVa z**EY(`wExj;O=2RJy+Kv4^rk)!CR9RJQ5O;Gnt1omLdaEy_|!}t5=8{8uX_O*t1*5 z6(_vJ;J4j9eN5894d2SXsr!{#HyZzor+MpX(thjFU$MfoD3I!?sMTz6c=V^q_54&0 zj-oJfB^m|76Si)aykoB@?OTUS-F|Vl}PE zO|c~meQEyvqBu^EDa7~Reb?LY0s8>f9M5$bJ8aaHZ9S*RalBDJY_uW=TRi88o{4Ed zX)xNPZp+0$#J$SqyHR28kiU$=TUv4=?y89J$D-=W%#Sp(`eMx-22%lF)vK7k7++2_ zhi|Z}%(d^)=Y?o>8;9SIj=mPG^Z8mqr@`sA$$iT$bL;H+St#l*tkp84V9^Ye z9s|O9^^#5~>p^3YCH;AI zLYS=mI{c{qY{($b$Mz+}Y}^6O7jWzCP1>N;i$uT#ZVJz=61Kh|cR2nB-(Mcxph^x9Qgpj;&FN@NPn$-KF-@{k$zgA~if8OsiTf0b zz4PVFrxp#Or4_?2nwu|$mT)o7>ozgvM~;YwXXC&j9MIZa z->ex!wSx%ZKH5W1F3I?Ei$UMb9ZHUXYd}PqHK7m{tQO^$SKZPzF9$*g+^F9l-*$U;lo$LVXEk%6fZ zxK1V_MsRiQr3>aZUGQqX-AUHrEa&q{@+HIvd>dg!#J=k<__Vo3674Yae4KhGAMnK$ z-ShowepUF`%9+{D=hV;jVs4L{Z4cW_j4r$^y-Mx{%m&LiXaVlt zes}iHjz(?r%97Z=4#qt#2KzX0}e;C@W&3?=N%9_^^C&wUoyM4Mp2w8kE**E)X+On#|L) zbxK#-+ zYhMl)^*!A-jh)DZK!gw(Mr64U%Da|}TlTm6{Rn>!Inw&5jBzFhh_u3JbvY+9>rmKh zFbEY$_3lW27QU`A*A9{z+!^{TTsN@~2iE3ao3wt~_Zs80u*koKtbFFV88((r;a%E8 zs{DWvT<%*5!t{d24(K8yZ-rTLrCK#}7zgPzD4AJJ?j!iScWoO%B$!!MzD2-Hyt}-( z_>d~s8>025%vvAg?}7$S?S7hz=r{hPxK65$_dN3Y6sKe+sb(>m?%|{~JLRNEf+C>W zSHN!nu)8D>INthmQ+V+JsdCc|JA~az0T7hPF)EA`^xK!w!Jg1;_c~a1h*&NhSKdm9y9tOQVMbaSx}p zw-U@^D`kSljce;o71KJA8&^6C_R(M60Fq$Kpj?nnFXC@8NlZde`|p`Xd}U|nnV~N~ zYc(MjCWrP^;AlghLXYw+v%>h*a1eI8kLS8SE*l@ij;(;r(BL36qDcJyUDq1v)QtG5 zQs$o(x%_hi$d8bcM=dv6!RUN5EID>lB{uhK+N_Iv`)j!zd5}(LL);_1Z_jH=8+}tC z5%f#ctyR)DrH*=ZIh9x>o1`2TjR4u z8tJ*ITU{i&vK9E}@w`4?*Q2`S8j&AzpN$0T$AKs)WIt=FeP*;HU}%k$%?rsNMBc&z zDAqpbzS>vEncDfjS;R&`%l|UgEy2hs^KdU8on?` zR%&`3`2eIgz>OnIqtbxRlyy-AsLm4E8Jae+Rg#3JD$O_YYwl8Vg7B(@*pVO|?fij+ zNDz=%yVG;x0m<_Xt#K4H!8b|YE7Z!I*p!wey)6trX}zd>Zb5u?lArJD^ zLCIxJm@>XsT3Nnxj9+9;MsDlH?_UXnU%RxnP0U*O&fEUmNvYp4_^Piv?yrDr-NQ2E&~6*WJ&3fviC)|YXnm{oH7pe`=&@2f;qymN?|_?2r4xCqYu zi1|$TIPsc{&cyt&Jl6o%WPE1Ec5tXjrzG08IiBvaX0Af^<)4bEgr>g!`eVFM&RgC_ zo8MEl-VKoVD8(+!)XqHLPFPfs9-`X(q`bXnk26`eP~%Z`@s zLh;5J=4?dgnpL{4la&9KJvuZp%qp{1SN=OPObH4CnJ&*Q*;XWYf5T|ZlBlJ6SjQlP zwdTt5Jc@|P>l4V8bCMBnv!y-D`!W;*0QpW~ymALgQkwOr_&xgv19i6gA_jnNlup5c z={$}XJ)6@nT+v=Aep1EO3okN7}Th-ZC zy_al(vPd5LoLwFF-@;m?tiP0DP~Xz`mWxu@QK^gVWQNg3q)gCTo|ryuvKehaBi0 zTpw}xrafe?e?v1qpNxxeH&MNZeN5J8(Doc|hae|cBeTOe5bP{Dklg-(XsMFHd01zm* zTrTg+y1_x!6E?6hZ@7#ylY(Oj;jB;tNF?-LwQr^1!g=j>f7FHTulK!u!teFZWRP3` zh?ZfI^=SJpJ;~&~=!#fOn4GXeN~EvALa)I>@*0;VYSitSlc`Qh3T&ObJ~em4GBa!i z$h4o3Z!cnQv)rRvz{AdLS)3Lv<B?U_pjk| zYVH3z22_o31NX)waOpd7-$ByEchMe*TsTSqr6wD1W&7yG%^pG{1@rqB-EtCAB0yKc zr@!+}IxZzz9ER&;mJipdo98F<?5z-#P~7wng7XLAmE@v$LI+!@ef}zwd@Q;5Af(!QQ??G85LmZILNy zZ=S&tu$=lTJ-JUH;u2jdd=2|RQMMZr-&-N_hO_yNu^z}`8V_ykII#YuQW4L1W{QEF zIXCa?zOTDHg&-|oH+lM}J|EM=WlSpUOP;0`!S|#WPRTH`tmmMFF4O3Qtp9M+un2iRas6)vxaxny7_DBMugO zJ#xa5GD$TjE3)2jKh`tFNa6;2u-M-h{=R8z#%9w&- z#Fs4FTAYH*CMJLVMm`z<8tE>$Xb##-efxwr8jp7?sy6N&Uf)-4jA;d>arCxDcHIR; z*{tN$u%&Nm(qo&?;_Ql?WySn^6+9jHj|!TLCbe%ud{oDLcU<)O(2VvjT~54l_RLr0 z+M=cksZ2OmO*p4Bm-A5gNZ87@8yaZ-%p2&O5-SO4zl zMP_~Id~V(CK3PS2w9GO0HfrfKz2m9Q%cCMhW7_-t5uNK_=*FqPD==#bLwLA;iY}$H zvU0n2CX44^?-|OlYM~OR?-lKIDa8J_pT2+ln=V=WEoY(x{{cn9=j~9D5x}3Uy+>P2 z;>JNlaN8!;`%LaT-UwAdsl!Bo1hAB9_;KlQhpj(YRH(YRxWqRa$je7e?P;d{i_t^1 zO5S=YFQAhemUxX&_0M%8tk5vvPk$yy9kU&Nc@Mp{X6=(MX149pe?E*jqxE6m9p~`s zT-$y;o%&@nB6?gM&s|No58b;#5ez*x${(UOuE@Z=472aKYW?fe>s0aske(_n&ld+7o4d|KfCX24yAV`R5HtnnB91t<)`vE zcezUMXiIdjua0h)cIBH0$%bRbE#QSdV!b6HDOP3(y6A>(@Er6jTAF`0LU1$) zT&WsVVFVhE#1J;&V!k@(!%vNQbvil2W3rMbzJsfTs8-UC^*MuOGK2MgcfL)Ejt)6) z5~SR1&dTAgn#X>x=%7q8a_~Xh?kg^08(g)9#2&aZB#U(j-j8~?MO(_5^+^RN>$=X4tk zaN_OlueRFDyIDu0_NZ+f99IZ;6*`oLR0b0jhc~9T8lBm&pwQ8xo71=P9%=7!mvU5q zXrSz_VJWinS9#wCSW;3o7kp6%S(=@i+PJn^t=Gzk*4YL>M(#9sIqod>4cPjDB zVf^>FW)2PM=-%a^E%`YS=96BF>YE$iP4)YQCWnyVH>Z$jbJNrcGli`qdb&9*+MJ)P zH6Bidt#;oL{s%MS{=>xdt*bUQz7Uq>d|nzDT#HE`I896v;QhSDB{N7Du52rV{VQCU zs}EuZ`Jh#1Hx7Vw6f_mIqp8SOC|5Q+RTci<=;%VoYH2e5_F+f@#SZ|E>DqW5xbttX zqO$#UX7NP;07Mb>(x(=NrR~ndrW+yAIZ@a;8UMg+6yF^X%-KqaOTeb}6Vi|{c-*6; z%d2nXt~<|+Ncc0Pl=hd zT$-&^^6^*|HM6tRdxUI}(W!A`2|LEN-{R3A&}&wqdr2*+X_qc!V2KkFEutF?#rJ4Q z)S*6W4J`ZJ)I;9?9>9lEBa>ef5crUu#x?TDhibM~Pu<_jb`zrZ^jP>rL_}dANsiUl z{nDGlU@M}<`P+`uMb^eB*`!Jaev$jYi&HE9tY(|-k;S_rk@e`o72cTA1SkNi<9=dl zyIn|5fOPhu@iHE{pQu=+9pH~G)g`YjxsXR@Fa8&LgwP%F**#15W_ih~_1T!twXXvX z&u1>Qi+*9WC8APe?V-(TwhonYOQ7}Z^bZ2q+Zazz$;HplO^*8lMDa&_4?RvEpPyKN3k{kT)TA_r>9;bqELT zm?Cqfs=Hesc-|=E6*X+vS()?n*$t*ga`7J_8=DNycn`I?RvlL+>ZrCFERVl$A8;+T zO+LQ}T1%O@-RyZ0~at7P-rsOkL)uO>KE(xTngk<`*Y^QTn+-tGeM)jvGksFnsXckMEq-B zaz!<#pQXsS*5a#1NeySxcuR?t<5XJC_A5M}j?a0f^fktXr0rrxxeu8+&C43OY{{q` zD*u1NCj3omN2$ZbJLLmwlletW*XG&AFMI5?}-1KhimwM44qqmu{Jg6Kk_V%-wdBFklVsvx*l@1KT4O8xJd zf%dUYk#X)Be6f2%A;nQW7+@TwHIhvD{#y*exVA(j#g5$vnv@?)I4PRA_V2&l1+f3S7*XOv4(>i)qM_(jV&`S`s zNulfMf&VvM+RNreJ4#;kzTzt82S_OzD3YSx@JQNm$iUW-K$psand;WoXQl-2CEJ>c zj0q$#IJzXRjIbyrJRICdrk8q+{imLDyih0|{cV->_tb}M%U(UZ_Kr)+RVOxA%ZKBp^PTzZnJLUa%TmqFmpL7(uE^q&Zb7FDw6a;fO zJ+^W@3rFQMAlzD_pOvZe0P5RPmMI?s~hz&ncWA4`vGDFtITW6l=Wh2*qW7b9r zp4w=REI#<^G5Z;^6{RF5GVj>Khed(MsdHL>)YrN;s)EsO&KZ+qo^2^s5$Z8{BftVd!qyyZ?8g z7FxlyiZ@2~>M2&YjBQ>wp_qO?tG?|Zxz}^FQUd;H{?X?p|6Xtr%T3ESFdt%a*w zW$_lHDQ=5$LFfb<=k61YW`kBw8s>)th5ibRi=bR5raSf@b~9wz^JmQNll&iJ7O!Go zypF8esYtK6SHJk|J<)&kS`>|p{j&J3!@Lavw1uQ{>psYTi@yIv;U>g?vLX;6ng)G* zT3T9MY5(KD3)5fi|D#S@FY~8P+pCUOR)Gr@<7$^ViuKz66@UL_E5PmD@_{A<=hpVn zI5vYFM&eIV8d^=o`;S=vpVnr~S3>7hL!qsG*)IzGk7vvrd8C1c3^iM=I7_#oiRF1}UgW9~&$!-CIljNQ}mv>aN zCX?Z1pZVgzFz~NV(jI>B(9`lNY9)!ogzm2K*z{siuH6%0G^ zG_?F@nc^&L_q$|M5>)0(5)Dh~w|yeX`o@AhR%{&mBeg<#RId)Rr!PVeiTuP0=V``8 zR90^x%$e_Ytm+Yg*xv@*JoTj$VT7vs)0yd>g+&jCzho?A2xmo<~Y5(2V zaV5wiDP(;C0&c9DJ=e2J+b`H*kuFpDPDk0%T{XU3 zvL+r^QLQ#?C%O`0LLD8CSTinXVaoT*aTZ%s&#F;fa6jO%-R+86%RHgBlgfs7;Kp}N zPIEYu&HyX_u!Yz{$k;Yz4DfRzy^zZQEhIRiIUj6rD2+{a(avzP#uOEsm`?I!u2B}D zJ=z5iY3vm*e{oXHk6ArU;wj4`s6-Ro*%b$k0nDxTwukb@;c$q?lljbS4n6R8=dKZq zAQ=1R`OalC#4iBSc~Sf6FIDvx@yAbR`yz##8tH4IQGuC{mJvI-4K+_Hv#mQ3ycwIa zIJQbw;Vb@Gf4ME#cmz~22Bej;F_n|&jLs($vG8m){5t_=eS(WAQ!G4dbwWMB;V$)bQw_(rvNxaQzy#8(qLBM*zJygTxw!ZD5;?zJ?sISx za_;UUcuKmq^6w5COfQ$K9j?(n^W}l_fOe~g`fZtLAMbI@G77mURO=c4pmPn4UQ(B$qAIQmo7+6O42U%cg}^>sS>R@j;7RA5D3N&=cO$`q7_U z-X*D*EJz@q2TQlF=xt$gf1=WJ+)34$r6iob3 zKT~>QcctU>Oo|yX5=o*EYkV{La(mB7*sfnRGO}+Q z5-Q5(;#>5jkxSUdcoVCmTI zs@E^&1zzDYvTJk!np@t+=}_JNDzn?&?MxfTwO_Gkvvs0Uwv^rrA2vV+KJ^?sve+e4 z>IG0;wUzn?2O$gU@USC@q!gL{e>hG~ruz|qr&aM18USh~@VMIhCPR#ezt4Mre9JgC z5|84aQuyr?3)}Px4nS(?Cy~Z5y4mq@X)nnx-V#zIcDiXF{r>BV6aOM^)ywQ?L_wZv zD)XcxZC83bEhi=^#fxE;5UAPWeq!KyiSKYYdXmWsjE{#G6pHq$65bV!({(9%5t-#WdyU;# z0|!dJZru3A6v)ZRqa=NM^iQ35Bl>)_LKEP-`UAI6HqJsV2}sUS(Rotk@|Fm+T@pYn zV9W-W2gI_6`q6g`G)js5yjMOd^7vdlgJ%?=$Y@?!{-T=gzOsj(s_x9s<>Epki#Yae zkH4;UxRj0KuoI|n9eI%{n5H)olEa^W$EkQO${cfPeiw&LRCdc&+~a#*MEAT=7x~yA z(i;R(yK_sN{`A+OA%yGMLGm8Q$CnY<*g@k_1E80g99ausIIlG`<}ovgOup@7ApqmZ zDf1IU2H=H7Eq!IW3E!UIu=Fcki#f4)(OowH1JK+i7##>G^!5-bLln$j)rcNJs5fQ) z5dVEMT3^f`AmyDtcr`)JF=Qx(>F_-TW>LU|00syW?)`FQCv<<`c;5vCEurx$M2^1j z8sUntT)ch3^@4f3a#18ovYQ|qhBTbKwN1n?WyPHs5LR~kVW`CN68PjIcUlS|$Qk%) zKYCtooz%8wf(o@9NTXvLoRYUR!W@X?YI(%p?h4`#41&YUKCY>PQ;OPP@oX%e_Ct0A9Q~PqNTv!NUcG_X!AzL<}-K!ruYalL=Lh+q4M~~ z{3=tjvw%mKZ70Im_EBrZKhm8wR&#@xXZt5F9wG>%43< z%JM-NH?6sqaHRDc3C~$Ip5UcUq+c~^GG%TG>DDaDV0vXykaAGnNYykko<;5f=!UTR z)g9+$3(~&znjt!KGT}C`Ow{i|xMFvlKe_BFh_)W|*jV0cA*j-x~l(le9emc{%60V8C#FkOO$UyKO-4lg1NyZDw14vs^P=%l$ES zloJD}f`#>rR-q!ZWPbmVR@$ywgs4eEvHsjTf>06Uj8#m8QWgnp%j(hNULNDNrm}R) z$KM)Z+fc(!B15jzK!dHNW5SRjF0D+Pt3*5=b;75u zE1pgOb|LrP1Sj!0{0%DCN?HR^iE*IltgwT}{fl=!4P#Hnah~}qYm>ei3=Te$dj0lt$)(9c+fJiMsKRD0nvntkLZ@DP`6f!gi|Ri@ zi4Tn~ye^cjnQLUyTKHtGLs5cPbqqdd6#64j{qqV-R*qR zh#j)6*ti-A4OR{c=RY6G^8}c($l6^5!h8KCGI2xmLI*xPfY4q7ugjJox7o)vRkJnL zj_Mlgl2K9&Gdh(78tV0rdKiW~{V`=L>hhG7=K!ysaT`x;S8DT{$^S1i%Pe(sFN-I`O?{< zJb(||*r}1~wYmN@9xkG;0+=4wixdf#R7xUGAcaj94iFl}N#=P656dVxe_|Uto=kaf zJ`o-t!MLxLZ6U9=N5n%OgT)yIi*!TeAdt!(cjlYoKFSPqyj21T=IgAP;eMM=`KA@n z+IWEBdzUOXQ@yCpq@!TSn*-W`*ArR}6&}&1KnHfU{tCofd!_vk3t`{m@#t}j%5QzY zum^1q)M2kgv*{Rm5m)dSx%KAybc`(5P&GBR-m6z>myfd!euYaG#D#*Czj|k+UKY9l zfg-D;--9f?rZwE%HAcCl^nbN$l|Ln1eZ3 zKnM7j9gJ@OJRcS;fYi{08cq$!({3`5Nkg3|iLhSzCAXReCrD6_3z@r;!Q77(a0t%f zMVGY7Km(vB-Id4@B2a6*v%ua!5I)z8k~MTdP!U}9CdpM0QCz$e zz(92tW&>!TPB}ol(5`9`Z?YYIfOs?*-TDE4$YSbMTJm)94WcuM(%2|&#a!BrzWO^_0+hi0W% z8K^;u%$n79vf(`8m0{)GsgIcHd5Z8~=0-$jt{kYPBPmJ-#*4J+LtRgy<5%~KM%jLH z)3zZ31dPqY{xqu(Yu~MK>qQUqs6u-12?$X9gj1Z!W3-z+U9Gg5=2q_}nABf#ybenx z37o!n96@EF8C}qtb|`dCGfkLHhE^yXn({n5nhIyAes)`=6jfJ_VorNVweE!F(`9Y2QZ)2+WZ^!|_zV)(=XNPOtddF4Z z_Q|y>-XEbfjo;>y4FD+0Zbp?c-&H`y(hhlf>M-oBSSCf6od8_)@OsIa+!Xsxv#?++ zt^%y#QGtTc$-=T=0!EHnbOe1aSh8V8XE)D@+$91eajjCQAL$*qlyS9eKsE>JU0Yzr zco9h(TW1-|3$Ep@XfdC*!2MmsF|tYokTSDbVamLGTiI=%rts79Qy>lSbATi0We5ZE zKxNqVqUk+j{`5EU8O@`HT#h16hpSV~(=5c+Vg=bT=GfPq#C^}reTEID6;0kvLKRvy z1}ffWU{)a*z&b8x%w5)PPt%}|ju1^^LDSUVW$svuD|6}GtHJwS&;FU2<+&dUWTn)E zUSxf6Iti|6Mkxjyy}q1R)BsUge6=l# zSgukbk_%whWn~YSg?sC$&yy5e?Y4fDmPYLEIEjo^KI@v?LCA5YKXJl9!{9P}Cr zfY+**p4O5SaB^nCkO_Z{n@elSX91nQzP=8ksND<14SJpav4yi5_b{@;KQhv#_Kht5kjelY3CNe{oh~@;pb)_Z9Rou{!22g=$-auMt%O#uuzwYOUqidJ z&tg6~hHgBarrKBkymOD6&pw+j>U}`U$fOpbJ-iw0JRN;)&loGd1MnFxftH>)g5iWv zw|>Nkm#_1+BDImBp`+sojA!^MPW(ins@*((xMt;d%m;7@&uhP9zK`8O^%jG+Nb?LA zYd4!u6euI{61jq{7h8C_+%@GzL_}@)VR(E#aJq*b9ad_1-sir8RT4SNQ$^~$@z2b} zPaNrLyu$j3jY11miZv>Yt0lTIp|_nR3e4WGesu>B3AJm+OfjD)Z|))&vt3&U%5XQeMM zb|fXu%8$uZ;jaPO@E-fwu(dB>em`NOArmY8(Np0Gr&eX`*erB9p6B1v|@gUn$7DyXlp%p zXLs|8sF5_s{-o&vyv6(%rzU3$Q~{*c(6KoFODh)OF09^F3l-s61d0bKfq{y5k;T`E zi}g*ueTa<_Eq5z-JDwWRmHD~3FMqo5UknbOd{DZpIHB#1@V*Xdz3Qcv7-Ak)xvl5D zj!u{M0M74$YqR9Z9I%oAF#F}oDJKmGq`W_NM?)Lw`rTfd+-}8xvgTBhles?rS)PIe zY5J+oiw3uy%0(^Ht3C)cJws3<1E(p^;PA}i+wbxAYe=B#<(fp*QQn>}vR&tSOM+uI zueKJ`pGi3(^|M+?uPt6K4p4i(+C7lH$Rq`4d+@n#RTg#RIW&`agLCyUwd%1L@$wey z?P)y@g(|FW&HF_2yw5&gKrg>;+(lJxGu(B4r(7Di+r8Qo{Sv8CvN2iW;vf%oF6}V6A2kA;2Lt+JA)@i+jw~3+EjB6xI_ZnNKCdtk6 z%{(rR-_1oVfiX~a()xS-+N-Zf3m8vefenK||?@YuNZ>D`gX zVp86%>7JwVXi^dX?eX4FE820(dEI1POP%fB*RW*q6j2~gy$^t)Sww9f-`VZk+#P(j zAO38AYT~^(>vWvPDxUrEZtFny(!d4AXrFbL-kH9$RZHT@Ca9C*ym97uuz0z7J$yH# z6w5w%B9h5_a5MUIcQVQ5W*B^OF|n`X+FAFg?I^l#nRmpos&j7dpfOjY*2^;pda+E) zoz|CBx*`lk(SbVc?+c3VHJm1=dEY=9Yu58;h{)`=+8l;!%ooqiEK)BroC$avj|&&; zD^_-8brx;UPJ<*xQ(_SsmC3J$8k}YETJ4=TDjT^=iXGByNfx*|e_*uo{Y*JNX{cS~ zhNb8gSe2yQy02Lr#(Qm>Pq)1xfP4RhH48+2amWx(c;0=Jl?Wd|e_MO!ad?X&%6AJ0 zhI!sE9B)piw=)-0Ibn_5{DWo3ni(}D{`Sc@ZR@U)*hdxl1=b za@GxMSoZR~qMuS$D5j;JtD%0;FzvR#S<2PqNx3j%k`CKxX>HX(`xu~A_(h|2@1oeP z!0>vT+@`lXoZY2+E01zN?qQ$d(U>fMYG>-{#EhnMb7l_8%(47Cvc}=G#*+^JL$0I# zZUGJ6DT^ZAo==Nw6=MTk5V1V`gZ&zTCNL zIWr#PK4`w{w3_LYB)Psc_X)Jt=9*KxE4tY_)w$7eA-NR)F`7E$o7`&MTsiFNJy%g$ zWjbcDkPHU8v<4fC*ZWe!J!}8bUC(t+s!3K%-K6Joajt{sA-5veQO}elyNB7v7A+WS zkM9PmHGI3}@55j<(~`G!LuJO z?C5wlG&K~CO>oGks)%6awgoA*%n0e#=C zbXY?V*zDGJEf|{j8!D`O2^OJ|p7~p0n4XGIdeSUco!%`u*yIL5+T3Sppu1;77}8rB z_Uoq>ET_S^iypT-ix7T^m^#OkHGkiYWdd!UpFJUN8IuOM%&Ouv6I|tTa~pi@lblI) zm+f2os|``7v*jol@frkaiyOg7F3lI~7S0W>wo@SpixC*|<2TLm+I%C$CDUi?1Dg3O zKk8df9z1(C34gop4Y~b+P_?z@dzIp*DzgjOl0Hir$ab6?P`G=OS`Q>;%5)EVc!Htl zzb5{2OMSzic+T%dU%KsSq*O?L+u5(DimkR5N@H_dGiSLWDtQfA8$6gyoH&`!ZAu>A zc&+3~I~lW%)R7;KQn&e(QUy36dw)zSx_!h!{rEu2$ zeXu`jrb!s?J^4cbd6E=35$qT3jwG=ck2$|X)CwtV@;p4B@HFynI@tH$p%;xFMvs(8 zPL22aKr{C_C*%;>#4t)#Gqt;TrF9~hA*oV12H9v~@3cu$HF`EGs_A5_gzlKa0XDKf z(}ZAEBarNcIwc6rIIrH1-`&to`gtrlRYESLYL@ERsn(pJrBEX<$JjlS;zT}d)#r8L z>j0I%%C*>ch|gbLdvQYb@Q?qhE zZKvMtbTqcEzijApW?`aEJQ-*-7{z9P&fdi;v%lr-MQ8bxDDnU@@ZZP}vmO25+ zm?oUdAC68_ibGcfIyDD`@KWd|1CRvBUp!sA$RFHudUlj7$!}6l0(*p5k^s(Im zxeBYD28V<6(}1dsa5SsS1)R$5Bj^p~fx3NawxRv?*F@-vmrL)lD8pC-gQ{h*DOJ7W z$>th$?Gre)j@^ z!%Q|3D=Se5DwGdh-)WlG+EmO5Gy4HF=@!A}-EJ;V)}ulte-xdXIrf=7&9p+u1%qVR ziP?{-)+@Rd>*(ykxiT52y-@^%!a5s&djFo}J|&If;AQqP+{LIvgtYe~B?AMwt|=Al z)4=zWC61yDdeuz6%4jz`Zf&R5UKV~IZ&WY}nX4&jgb7&e$WM_^#HSO41P6+xrqP| zv}ei%Qd{t`4m=DtLOdC)HC-;cG&f3$ZCt&g1&U`cuj6tLs#@mXq70p?4zpG}D|AP? zXj29H-M+DhIP3iETP;wYE$Y2}neTL0@n+0A9U_pbb>Y!H0xd3O{eoXpyu&xL+8|XG z9vC=2L%>!fdHZuS64Q(;E~aB-tY!xp#}c45Fh zu08{Vhu`ib3|FTCb`&0UKJ#d!1fw|Jot>aY8H@O4X~ZF>*=jMDhc#?bv-9T~QS6SE zXzN*V{L12V0Wgu(>})q!mD(_x7>zmT40+9*j?z!iGFbODI96@xNA0J)QIuyo`LHwZ zZ!t?tBpPu^=DwSCcc$+siI`92ww8IO-`!BWzID)A1^yM)eITlbeD^5Rl|-g+Vn~|yoDtrk(e`kgn?ZEJPA0SH ztl5wV*V-Q{nSX^JNWnwOIM7l$p?vPFxKlpG6}2N#v&#)T3W;^QZ@?s@`*AVp#)9kC z$C}j(f81zklc2zHx4D*MiH#x8UhS4mnt7%2mD8-bhU5jVJ8hRH{ju$G`6y*DLJf+5|AA^Tp#s=KLAa3h~5KY;-#gtpGc-rX$?{vfK_y=&hJ&q)fGRKNV;=j29izr=n zxsAQ^07-5fcbsS=E6<(IwVF@paJo6bGXE`Rx*nPMXcz&zLO#~;vBgwLSntZfkD<#5 zkth#x9$gNcRi`|GN1n|uJMuq(GN1{JI{9-(S^-5Q87`iYd%ynqT^=1=+6I=<2)1~iArnrB^fgJ8L=MJdAgu-5o=Te(nWDQQ5$?h3XCR4+fK!u@o+mspcdnF+2) zYHaZ#T)JGDE-@rjH6~I?;ssInHZ;}<_!eO;{Kh9>&t3Op7-WLn8nu@PGwQgL~sMfb8rVvb2$Pv4_&-N?K zg963EQ9eG@u5GmNFHJR0^PAHtu6aTs(er}siax0ye)y`_{0Db@Gr^bNsEXawP*i?afl zV$io1TPibBKZao)sr?5_bqs}Q)!YiYcRDyoZTMoS<$>AI0d8)r6b1jy$(TAX#Ps@w z$T3fK&f~xMv7R8D<0LX8j@`2=m`H)MYOLm?Vy~bv^?pKZ=R$c>KhM1qXK$rf{VZR% zf{Cgp*eX8-Kla?O2~X1lNp!EIj2KT`4d=-c3_Qmok)CPg5tIoBs4^EY31fTRKsJyy$+o)HqzegxrlCE|J{b)+-2X7UJ5+3iMI` z7UWcOrcNsyjn?GQBc9q=J}Pg`yzvR^s5;dWb&ca}eC`Acc^>^Odyz#^Vkshxw1R5$TU`Xp!n@>c`@^PkDYBK#9m%!9HtWO^` zit*^fgKoXi!beFMCb8tBUPX*Wc#^3@Nx^Ezjp)TzM?d7e+;Yg*`6~FoBuEg|U>JO5 z1_xsxT^dE3vbyu?`H4}@nyNhf5GXGT?s{R#TCHETr)D6=HeHbF6n-Ab>hz}txqZjB6oO zZM}%5I=L~gb-6b4%P+Dez;)@!^)o5$--OG83F5qzg8VAhuo;K1^0+@wTAF}3&_fWx zrh2u~A(pR)T@Fp3mlPGMHlQoLyi4E)!cc_9jwY(4ad65I2%kLNd)E@pq%8RIK}4R3 zoCNZj8&r$Ba*z%UJx9OUT2@vmDw8)Y{F4Y4O7ylwwLD#>b_6?KY_>paFD5#jF|TMB zqH*D?1LT&}$aPe%OrJ%}( z3pAe7>I37u+qds*{R`IZV1WFsb@Zs%wu7^zIY(HWY`4+q=1I@sDFS=M-AiYIETHw` z?KL>Hol73op&_CVH=x9Kx|ab*?`zrDsuKOgzL_(FJ@ z*#d5KX<$cN+u*Z7iziW?F7`^@brQE&mEp%`*DC2;F~G6nzAyzbgD6sF6OOm z(xqZRYeUY|!WqI2b0R>?$Uk)BZfuH4v`|C!%kregMM5G&E(0)*Z0YRVomSH5 z3l~dV1q-xX<=*Vyfe0EkMe(2^R^4pLyUbZGpKcr0l0NXK#PLsQe@FLG#_P^?s!Xu! zg~X0auyJauWcUEtsyWA4nS*jz8_k8Exgualu>6Qf9vFDd70!{WR_Su!9P-KT)0maV z(%d2)Yrc4flAt(szbj`Z)yR7WV@D2QzEvbB?_3V}(XE=7n_EU3x=ER`^{Pzt$?+nmKL!#!S+iR9 zMz*c0nBsETMgfq=Y!escJkHa~H?947iqThDC=o&o=qd0wc`vs@fkm<$qfUB#k znSC}-8?TzHci;ZbXDJKshRLXF`A9sEwqEOax;KQ0EPLKm)?M~k91)cg+oPdJ5^h=B zn2F;e$S+dks;*6Ye%2oD6->3F6vCh$T@?^UbZyGrPP&=kOd6MK+ubbs;{`ZNRD{a= z?Z=Sx+kWSMxv?|$r1zZj75O%|Q&ge-F0byY!7Ck6Nr;Y*m^7K_L*94YEkdU(ZzUaNUZZ+uklbEgwuCSE_-^Bbi0xuSmidnF2ula}Ll7*1_ggSEF) zxJdXr+v>;u*qLRu%oUZ!cX#U3*EKF4wW+W7w#_&A0zPC4EG9;$`bwsBt^=wA{0|VcNqJ9MAG6=JWGXX%?cO>1;ScP2J13$yH`3OWl2CknT1d{=m_sDW& z?My7PH~7rumhN0=exe;Yr z$OR~s4iS*4fYK6J|6TlYLz*sS#FWg*d-V6@UVp!0pX-2GeCvwZ-1@DD{qB56pw{HqVac6`6&u6t1d+>p0&dAftd`rvOZZ3D4k?maJ1 zIG`ZD-)FmTxH?dW{~->UHOPQSr{4kr;s9uTzZrT^qLfT45G=K(IMLP~sc$>Xq5u4p zXys(?TYaPS&FUq_A@yF88QY5>@7;qI4_?N+l{O4OYlDMR!^l0bURkemspgYSN4`C3 zrmYppo7O*Fam!4|Q`I3!QI93VI+$-9C?E%cIN8vixkC3#UbHwTx#3uQS1)jVKk}U< zHuLy2@Y-ftu_T3aem9IpvB|tv$eFd3AkEdIy`p)cy)jvfvAkt+dd9=NgPyr56&E(X zc1Fy9B4Z0X5TGi_X9!8NgdrOPBgShl6$#Bma)wePjZ@6^ zc%&f>I`i9iEzXFeC$gX}sJsah36^h3V0i31Hm(qnwxC~Yk!}6!;Yehpj#>|5B7{LS zAf(ETh5f}JR9d^X=#0XjHBNkq>}YXTZR9UNGs0hW><*tbPgWNb_Th8U6ditpp0jK> zWLmj>voV$zHhz&QOb{`Ue=@?6@m+h3suI6m?dzf)MY98F`LufigO?h)D~5884O zTcyf#m&Uo-MtDqfMdfBiO#JWh(^5%lU)l8@nr+XAg>OqFs}J`=<}_v8It1N1>7&oY zB!Oul8`EVn-d{6`M}9Edh4Ii4EB>n5UqiardynQC71E+lR=}?|>ba}Ce;}SO13|91}-jB#D>M1Dp2vpZMjbb>E%q&i?68D$K;!S|F zsmed|g923y8s1<9vn9p8eHm4P%Hdm_s}jT0i+@Jq{NxndDO`{h9o-CBSlHe~5h%~) z+dD0b;Xyf-0%>g4Sk4SsZch&>Q8~z@7}|!8ZpRgpfO&=>)cjzED(NHloCCZ?&<}nm z+q;bD2cAa7otYG%QM_)@5wV3Oj|YXm{di0w1z`}g+JNxFl)dfZtR0#JDk`)6I1SB)ezK4m#h&Mokiqmk25Zml?A%V4Ba+Vq2i4in zO`aux>@-CF=%RNB-VVO-3&~Gcclewx+w>`DEYsY#hv@P&lRK~zFgf+?%GOge@W`8d z2?c^~(DtdTue><^34{l|U4PO6n4oL$mw7YPK={aCIoT@rhiJ34T^jl6$o;RHh@jM! zrZ|COFP_zLU;9R3p}2FoU+9mx*0#xKY8CVIO<>0bu832F36#obHuFYhaOjAVB?O1r zm$6GIwuF%Dt(^e*O6Uw|aL}LJ(M1{_*|%0BPko(?nsp6*UK=^Sfl--5pCU4lx6EYb z=)SUk>6_f^jn?>C-UNR&TURq=ZppSqqo=l&Q$@nX4W@>%I4SJ>@WTnNPN$!6auQ1)a=jL1g8EKvpI%Jz2DC8oVZ2xlteWLG$|qLQ?L#p3P|Ts$JUdiaGDl%;V}s#@4kt3;>Mc0*?g#=d z@vU2MbM-931%(!zl2PTAX9~2L48VF5793GnAQ=lZv0&O~0HU^F1tS8`4_;a#N`b{0 zU(AZ8m}UwRL9!oAlVWY4)hq_i219(KsBo~UML4HlCX-}JXM^oct)94p^f{KT;>Ds`FGmZBX(U|T}jQ5TFsB4zA4r#NQ<||`Qp;gaxf$$ zAh$6M*yS5(d&nJHQgS9-4OcD!! z>|Ph_8L(~k2ok;rS5CtU9~NP{z^#(SGwcHWTVAd4Ag z3NI3Y$Z?+a6PytijCBd}o%O+Vea6A|ENBf5WI9**Lq9)?qh4}7j7w5Q<)kJ?{Agge zKU4(qwHJQk1{urITz855Sq%YBQiE7x?KHnZo5&qac7_P*Lt73sHJ%fnF=STXyLCdk zQV!}+D!bO=Ca03Pk`MN16#pX+Kw*-Y;1@ySBE*+u`;aLAB(ac#Z<5DB6n9U+4`L zfI{(eI1VlZbPi`Xe*TFGg!uX%Pyb|i{WN{RRfXigaq+_P$=QGU*?JIVn%X8c9WOv_ zHrqUAM;Vg}7X58wdn77sDW9SMfM2ghIcxYh6Ku+p{hKf5PX z)zsAL0CN`H8;ifKQvX7HYFPIsFrC&Gzy#(P)wkN#_VzOTiunT`v)~_m8$l-mAYdvi zEUd1T!^7nM&hxPsCa1fvx;S3^38`xgW9EMa0xJN0N^4cTZ22FISbzl#?_M>|{td1< z)1RP@07&^yTL7;ZV<+AS6n^)&#q9AtdWD1ghW{6CzyH;+ZO{o}n{p~XP}Xcps;~%FK+RAmJMP&Bm##VH@ zPK(RhqjxTdz)W_vih>LnPFn)XC1s{~oL0LPeWSECL_DUx;5j4EM z&yt3r+Sjk4K>A~u1CpENje=G8oWGW=yL4hkFsRi`al5)y(o#%L;d3X;N>8sfi_SNz zr{7A`@crN(v+vkF1AvQzloay2qkVdKz^-X0Sg>&DH*AF2Z+aeI&i^Kx2BtZ#cQyc3e{8qf3P*^X-C{fjwk3eQ-Wsi6*+QN={Vt&tn4^ z@810X2jD(kP(%V~CZx3YYF6V4Q)SjGL+%!z>vJsBUT`a(M)2p{t?_$xiz#`RWnWD% zo=o2wq$&$ddIs$71w4nqb4Ej#s2CW{mY1w$ArMs#0YN)y&m6R9hi}HbxJYhVuT6Xs zhm3*8uuVww8mSf&pdW>8MhiK82i1*&+`?Jeh@DaJh*+^HSd9pkk_TvCGoD4>gh}sb z5NZa=OaG!CNqtONbCHBHOtaJxAA`1*eVC`s&4v3MitO(6RONK!H>i{_(Ib20l*nAz z?#t`_Hc<_mM>fj&MLJ@d+n8JOjH1)pPtKyudlF3d)4e0Z8gMl>U0rcOCAqzLyDE6x zGNlROJ0#&B$H3cmBJwyzND~+h8p7v3;C8mXYggoxRu5Ce3Jl~3)8-!cGQBHYw1GwC zykntTH^&9MqtqJL!Wh)SDa)KF0OdFPsdtQ-N_^ypn`|IE?#@IaJZG9~I4+BaL@=xg za$QH6B9_h^@_)n@ev=FT5~h!S>fY4;g$(7AH!V{m>Q}p4 z$b*-bsFVrp_y*b$-f|LRdftuf##jJLBqok>3Ik&VGZF5iNZ@BJ3B=z52|^dxA@?3H zwxjjpP5fr&*N;4Slpo9=ml3f1TSkLOBw?Q?7u_vzqEUqURfhM(=nq zI1XUv2xI&)2u;n@d4qIdeU;=_+ZH4WQU<->%~lgwoNuHe4KP%{EY+3kL}-1AUKznE z9kVAJ<8>|8PPc(NY|^ffM!pKCC=v%%w^!5`6qIOKb4@TevX@SnV^LGkt{f{oF7^); zlgBU^%fzxH;>`nvEY%#`oP-M||qh{-_syY3skT3v{7!N6Wfmhn|mP-YC_;nf;fay1o&c}JSA z6k{H{>Z+c4G_7f1_DMCJK%}AYE09d#lm%7FOHkNkTi&vr-+rN(!l9bwkByRCAeA8r zIW0kTDDTJ7XEiIfFA#mOV_xnO>veY2j`m^QH|%XzLU9Rq?G&se*b`dGhCJUuoC}k7 z{hg`0e^4?-|8HT!9ER{iL3y)8;U8jDbj5E5yzW+$pOArWwJTJn0pwWs?rNwRMTa?` z(z*??zB_qAOn5$4$ptWm@GbS5h0=0U{wII)MTYt%CQ&h(=@EPvCvl~GyigI+ z!L%?Miky?H+KN>)f2MsN1Sgqsyx^*Jb9Q!n{d39XrbIExymuc^R99_lH*`d-{NKgPG$^@LorFq5O8q|6#P{ZPUGcZ~Y$04*QN~~9 zc;MGxR`y(oKfqy5B~bp2f9#QXAH4SiYWnFmFD*6o^}k8qr8)*__m%!l)&&B#cAG8d zT4}F&183)&mrs${v&a$uKv}w#do1-vk==UU^~X~lv_BY5t(oVTmFU720pztw!K`AI9lO!Ob$i|X zk-vtJ=yCp!&Sqlc_Zt^iw`<2dt+r$81%J^C!C{eo9eWe%aijbY^X1vxMO2SXl;?R! z5s{Jk+j-R4s~=$N6vHpKq$ZW6dRr{f|)6ukW+{UlVQ34P>aQR5|;LMCfsj zTvEgV^SZ02ol~dGNSCND?z|NdZ|AeT+SvgroTmdTifjL-*(&zcHP0HBmK2~JS6|Du zP1uieC%jyCj0-jo7}Wn9xQI(sIyX^IKoow2QOSpm;yOE&au8iNKYGc;cHgD}1B zd;L%TbLt9mpA1OeMUq> zN5m1eO6-Abf6uR*T>fImm9riPhn_dM)JYkN2CWW0^kQKO_c$Sna@vx~kLf=#%I_ zUSXvQvq-cs>qP?+b4okSHUdwcJ3Kk4Z)YFF!pb;<0UQ&2+Q7>zAM~YnOs}{U4Mls{ z6I1D)t#fkomG}F4a2R+>Fz9Z>9@$gpcGf%{dT4gz|l?rZ|dS0H0nd`QiS{MLU069!P)2JUE^#-XnZ$51ddv;);+k;oOLJHq&^H#mD{7VrY08UjbsO0 zk5~dV|0z~R6(u67a3sBj%c7qI+Gt?FIr-&$E86R-U$>0B?63`8O|CZP0%h$PM{k zl*Y?4$Q-J|@n=wc!0R169Z;@6z1WPFwYk_H8?$1;IM_+=o?zFGK5#w#toRjHE!a8{S8VQT-Lj=sRSTT#5UP zs6Qicc#H^rOj)7qCOdajzIHJ&E0PqtSF$hQXKzCMM($Ga$Ni>+i^>2BzE0CylUl>S zXI>8UG=Qdf4gIx4FWBe)^6x~&dk~^Zu=**W&v|>_o$gGj?^)&l#T^CO;RC)g;RGu{ zVf)Rv7|maC{YA9A4IKk?#h0gfTl^ zM1kKL?3hcfox^wdxR|HB2OyTDyAgRb$d3iY!ly?u_=q59nY?f|`!S zt|cFwB~}C=IN=6N|`m)+SD!JdW)SbbFYL+5ROZh7E@NyOijV3LGpCN2dWKXtzw{fSa_* z1+j_!0(*5vub9IaTFpy4?`zMn5Dq^t|`p3 zMecVOCuXEhEvBJx(=mU%03$ss_B5U>|2>ppFkVkUOSH!3@Lc?r&RicXP0x=*%TCxS z2f!GnKRqCtCbnuLR`cpMdBE{07aHV~JDfAi?PgSf1pTDq9M_r>{^6tGg=|#^_~god zjAKGTVB5ui!(~n*W!}&6g)LrHLw}$2iXeGjh_ePGD=83*9Op#z@rbz;uK&Mq!)Sc} z|GD<}#*Vgq`AZ=SER}P-?k`IS0t%ofn&P~3QU?! z@ptWsYz~pd{xdTbIo}Ud5o~gFlqVhc9l$^O1vevS0iYQpKL5k4AVLA~!zTo9>gU;L z{Jf9#Vp`{x*rG1qB^_gAa{qtkp>kwb1$3%UEL0I|k%7;jV<28U>|5e~L9L*)E`^^K zC?+08B(1)RD@1}GD`CWx2)Kujty}ol|11Z9jh2Er3ev3)LQ0oLB4a!h8@hF66TgJv zkm8=AlCLhQt@`YIq0o%70So9V*Halz~GoDQm@u`CY3nd zVCiYhQ0n!Q^IfW`7SSG1Z&WuZ#;dzY6PfTgLf zzG*%aU?PH8A!pXLPhTK#LVIvqZUz;ildvSnV`4HxRVjlpP|o#50u%wy(|2g4*1dmf zEj}Li8KE7#=9&m#j}ixio8*)4z$*7eflyw$JO(9?Zt4<}f z|AJHLw>#-0Hzx5f;mfmu>IFY#HrO*y#$GwR86nhzZgt1h>_8GNKWJ6#b3oy=%a=5N zcZRCeljk%nW~p-jPI@GKD#Eg~vEwe-x!2ZKzdliw)K!!B=hmE^m>BYW{z%xjg_)8Y z0lR|<*bx4{+hE9L9zMa4-eq3qmtN3!q#btt_KzmTe?p8#s&DvPl}d=f%WGYM>9@?o z(+)}8&##;?K;dTjlL-zt4Z0Emo?`g7oyX+YcJ=>c_d1f<3_m0=_V)I6XR1{8RI!Ug z=+E@5-*Ueb9|<0qdjT2%;6s@2?~o|;hipG4A_ZpeW(4Qjo0_s8fO>@XSTD&+mnMn~ zT4zTZD{;sZfk%S>2Mf5?;pH7zcakdUJph(+j!O~4J~K(K5olfK-~Wu0E}rhd0jn}y z>-oC!?}}>f6aoHtBoF@-kdOyRXzf0L@`c3fmt$gY3V5LYpr9bPV89zshnKctQieTm z@SlB_K$+&MpOIH~axdDopm&|4{qwedb7gR@X~X^f9sOMapU1X1!U+z307kCA#W=-Z z-ul(Gwbv(Dac>0Be!k#x`72U<`dw?kd`*C%>z6PD;4K_&Z*T9OQmDCD?eHlro?MNED{kBF+RH2xv>B0$*=ldmG^PxYqWBeoFPpC z4*Gs;JjUOM^1D;-&maJX!e5rMbq{9o)94+^uDmLX+!;f%+w#_{qtmW;s847`y}ess zKAoAFLE?=Ref?YYWPS%cVu9$4Lr;DMx?GNNs9H>6=lG=W2g72cy@g}&YZd-9%3wG5 z)6@1uWpTm7q2|US4G<{G;8Di=slENAC5ya7lO>qyPVuAH{HA-6JqYyxMZ&w*pV&DF zh}Yf!E6e=R!jy{QT%^n8`a7ZmX#&ZQWu=tIWbrxoTB^ZD@FkttnMG)LIMW5z+t5He z`d?iZ^dvO0&p=$oL|x);H$OGr3{z|s{7?!AOq9~FMny?2!bgS#*_U^)-IZmDP2LUf&v$XE5J&Qxa01^?l*&)Nc4Dw@mtY-1jb!0Zc&%Vw%Iqf>ls_Qte zlrSD+Cuc=pTGcf#3S(!h53si+7hy%GmY~~=c$ztpK#%N~8D>n57MMLeWDBn;T}%b2 zQTzP6&$el|3H{7LfT|K4ygCHHo6h}&`i9B0UE#-)W~ zj^Yp3z4w^sEA~)%e4^jUt73AWyYcp$02%m`*y`sYTw`;pnG5SARet^rny@=cB{5(i zL<}u6M2Y=xILt3o)On_{*MDV7~^MyM{X4NQFR&FQGF0C-Z+uN&Ukmq@hQQlP-z zae}yKMq%w8I(}ryG)+(<&;K{k=wL=7DBz}DPgoq;|DjMe`!hoH$nhQPvw(Y7RBaZw z5ze41JaA}F+w%Rkk3Y8XfH}Yx9y9|okjYw8v`b{+YPNH@X&+qS57hep1+ZT!lofaH z*>dQ-URjQ8bF1y;Pq@wC`LQR>X=VHhqjDBmUgzqQK0dd<4C&q79@JBbU?cI(H4+Oc z3ma)xJ32geh)4w~VT_2OJm%=z8i|L+6P_Q3{r~qK@1Z0~fpqh364u_Blh$ zraP~6kpz)=u$TADRAg#CosM1Go8pL0)Rf8x?+(%=7#{KQiNY(&_W_!p?ER^~A8=of zcSXH5)o2O!u{~xuG)@cQ84d}0he4|MT*=<2E)Smwnx;IHM_PTuy8ft=k^BvT;=^AT zTqPQx?2)=QRQpcqX+W~4ZSX@H3p`tCqne>#X%p(vfP;8FkBY5dnrd~2 zC*jjOjsscqA&D)=IagN8CssMH!es2~pb25G_jyOA&)z?R^U*hrlmx%|n4(AZQ}n_6 zC|dDX80a6GPSpfI8hIY5ho>FMq97Y3F>o;YL@{GMNO}79Yb=W`y8Pn@6iL3(k1w7; z>hj3ANV9WtigjAO^2eg^sSipSNfN@SKg=Xx{JPYAj&pEImdap@nb@DVhRYko#qN|5 z1zRv}VLe8BCbV~ZGw0|y>i02o^@8N~v()QH=pVmO1ulbsf`aw(Qk4@ekh6RD6Y2Ia zI%N66W<@Bx#e)f z4rU5uW?M}0HMGn}X`jA43dQcu?p<2y5=+RcS`!KLQ6Zp}m{>WCYC|IH{60`0d6QXp zcYCEesHmIS+Oy36?r<4eqV#5J4dktz3hg9i+Ts+ce&q*mJ>rDipkv1(44B&Pa)RA#>O}#L1^MG-37Y)ObmFU$QC%&!av{@2k1RI4w~Z0wZ$N_wC5dF}uCl>KvJ`_P}$={;emb%~A^S*QLo|x)CLZ7F1??m_VkPO)rn|8}We<3A%|mu8F-^)yl6PSHmt z0s9a|J%uw=<(+rfoZp`zb3by9Su76N?6m|M3`_bs93u$ALOMP(Y>5JO2F}(Gwhd^W zdm||5&}s7&sKf*cFm2H0haLOfGD`Airc1I`d@q`uzlc%HIa`4oDr z>1FFRfI4Jzp)J|Y%pYaK>=FyiUt+_a!j&sZXGZmwshKq67q@HmmnN~|7TizCMMY6&g#sigpzVimvlRg^)>nLKE-8yB209o0V z+@DV%zn?pBcV0#ZhLN5=n2GUW0I1WPgXwjr$8&>^HDF2R{<^uftVuk{m2&gH4XU}t zcH1U0^zV}22`Oyrwz})C(H@Xp1!ZJkKgO}F{j+M+a*vc#);%8La;9uL>YRC~ng2UE z!diw5D3z~@F-g2jZ9Ap}lmCAZ7^CDw$EHW%6A6m=L$1o_LQp&}X$tMaT zKR$`U>E!zdWf8en*T@1v>5%A1_8mE=Hy=MdCylE-2hyPeNC1yg8UA!xB~}^$1?OT} zHWNVt3U~-JSgefI1NIGtosdxof**fn)~=K=DPjODrFQSdgb6n9EuIMGLo*v}&SU$u zW0f^u=j9OJ9J+sf{&N4FzIEpVv!=hC+zRzHVOWjZpZej#hyElSFxOXL)kfQ|lg^2g zXJ4)4OkVu3k&pjn!X^-v6ub;2#+uiM6?)^76;q~?`QJu@m^w0VcTN}$-8@R@rmQgO zgL-zKE?xRWTGoTvkNW7xF0Xh_`lE1qCo-Woon9?1v{Kfvy1VM<7MvHHagd?tL((pO zMO@sCOaTz@b8P%Y??#kAk4n2J9h7UD8nro5ac`v&MT{fR*CL8TQT}A_^OU-xAn7rc z5^LNgCM_-+d?FfUycV-QBLCiSD?<(}8?$^dj~`z)0R8*AhmWou>Yp$Be<&TI-HSeh zhSU&~(X6@NA_4-1Z%S6fsM7-NuQPIeX<&Dqu&CY-^IjbHMQB5F?%UFP^F30vr+wR} z!88nM>fGJ9fN$2NuWC(WkpSOn2GbOaXlsc9AFZtWZlNE(%t2X+cJCl!f&0;LLExdO zixnY$3s7uA(e$D{z!E?`%D`pzTE5Qg8WP&s=>v2AS9`HSgB-k(?9sTJFljZC=3K|?KgCC2~#13aF_EN zK9@?rOWO*z4O+w9?cnAW$pOtQBcZerwzL2;Ng~8L*4tg`ET4`jPR~o5(J*p{H8`o& zYl3csq9~sVagh{cNdaoTFiQ3eJkyyf?3YdIb9AhjyzxW^4Tg+8h0aQ^$GNV@E?DT; zPZdPnwZS*EIcyy57c1a5JH=tjVcUse$&9Bg>y64f)p)`$wd9CXn&U#EMavox^Jv=V zps-zR_~++uUu3CWG^w_^DdRA6A~OrzLOlzyA(y-)g*ym)2StNV9O5^m-}mDl$;L}L zH9eOeNKNyocag)20z8E3W4Uaf{u*Bvco)8oz2xKKTW2k$ z1G=%m^y%QomRy$^{+UEQm<(8O&xgDh+yDJp1akEkm!j2U(UHV^8a;jFY|-`-~HWxU8sFP zOOdWn?t9!haRJ+{rqZjs40B|2{FGXDh=Z;_Z6pM_!Mmj^b+vsw&oJc^Shz88x*W5m z`uc_YWC{GdA-0Z#yL6B&yG%lgSIX>ma45( zoawP6{MTJX9y5Mxrws6s4J%=pt|c;=oVOi;`R_CSp#!Wy4|ifg*C%!OWJWk9z9-Em zrqRFYhq~5pAN%K36*z+ta1CCQ93KYy&K^D>RAOrY0L{GHNr{t|_2;XVS#$X-t^GLG3#L(0y12ex&sPvNJDox|H%iA*?lT3$ z9@Qmk%S|r$Q!ZcTvAvB%0EoZKbEK_(E;M~U@X1pqp^k>*G-WZ|`W+&VZUDUsW`8pg zT<9QDkaNBAnitR-BK5XLnuV`yt_2khfetp4ow>(oE0!nfuNyevB614D)TAYF5leNl z;$+8)ft_jVOQ$o7DV^DWHk(<*y~_s^Q=jkX%yXT08QfOYh-nk@->QQHj~-R$h1+Bv z_F}hvXcm#c&v7on88lDz^lq!Yu#ELvF}AmbBRhNpJq4MMPtFu%uKcPl??$t z6~T6etfX;k`dbj^e%ApC+%%k>K?L#Sv}d!c&(|8hlyKN9Qj~;F%TFI)A)Ptl2T^-E zRLfd{4tD1LS;EEF_n`drX9bl&bu`SK^Hqq~ZNf_4Uy*6|rNw!wrP zV!Sz+>s6S0kHOam5@?acz}%48L;$@oKl$nMdSinzdXPjoaw2r4F6m$Jzx7YC94=$I zA2Ou_={)y;nMQKW*>Wt#i8$&f5mO{4&ulQDR?%5_QqQ)HEU4W*3>T%y{d?Zt$&zM$1y)-t4MZ*G!GsDJL;KG>>ilJ9mwqbQ zifM{e>r`J7_+|Fwp;q@J6bqx$yI-aYTl{-SL{E=zI@YB$62JJ7h=oAM~vdHM{H zrTHmQAJJj<6)?$)iO=eHBq{-)cQSlI^JXd~roOmJ{kfy7tK^R2W}`42oA^;Xd7~#x zlwd+d;QY;hU6XkL|8kBXZ=@2AMdL<3RPXimQ)vtq!aN0fj;Eo4+TL{?P(rd-My<>` zMCJ88b)!Qx&x?)2__v>Z{qDRmB zgP%>SpM2kW;`izoN7L2uinQ&@jU$FEJkN_gJk^9@dJdsOIXLl;Z$I{!o_9WU69t`4 zuk$$9=Gr}$QtkLQ*_QI|5b zaWlV8!07R)44Ih1j|_V&hSz28OUyZcdELIQy2arYef);@lS$XjC>q~eyv3e1oP}GW zskrZJxPd`RN$7vCrIH+_iJvhchB6M&S2~@Pdf6;h{#JpuU0Pt6?a_F;3tTe*s zQ(lFx%W9VA{_^$^uxMj2JhYhx-kx?W1ywZbX)dqU3clpkH^7FpF zzV7L71X$rAU^V?~Yt%2g;h9nV)aAWYMMAP$n-hmBe2 z#$oC8S!}S=D@_BOkUj8qMigb2)KAqKnRD6ppFn_g*xFNR)(!W2?(15Jn1H39?f3SJ zs4Vapq1bgB__?AUoT>ANGU4G8DZ_19H?CZD-00^9U3hx;pWd-hPL^q{#ykSwd@@GRZw z`e>##fx`YW-lg*WVJXKYxyznn@b}CBHJ7TI!CDH(L&`7DzpJEke}3t?;(wTo@?=n@ zdYSc|)Z~Mv3$NBXMqZU1q+`g*IPdk1YJjk);R843r|U)@@p0F5S@5{CRQkGA{2NbzGT=>NonCK1ZMo{`p{?Ks6>dli;=%vf^FG}po6fEKc{I&V zC86WqCYI>V=<5C;RcUp>O0hbaIw;4G`tsG<=c*NC&Cp4V03QK)L6%_Vr-3VQ2|@fy^FG5eBFVZ-*L+6)BdVc0Ps4ElUaX zS){!NNGEv-AvQ?VC?Z2V&7*WY1(BlmBGgD7o5}cJejKm2qAZi6PYY+^E9&bF_)v=Y z{*xD~s9H10%Al)EEn{(D@ep>B!=VhU4`ZubG$~iEq=$gm=H$(_W$=Pvce0vz>$9%^ zwyCIU@vLY2ghS7T9>R5Mk`Y3bwZ9cTU_VMra^K2t9X6BY=&Z2@QA}2Ms5rOyXPFNF-Lda z`MbB3cEN58tKz9ulfws)sw{wi9Y&ga;!NWpEhMDU`e z-w5-A%_^RLJ%|zr9BPUX6%%&(i6#6uj`f0}MycmQOQ6c3d`(<{#lq%4w}Jr_{~T7R zMzH!N&CAZ=P*Ct%2JSxZjhnmIMH(6rw|1m+d(Z#{n52F431bgV@1zn`1G{sJtOkkj zzqS?Cu7axlYQKI){%U-rBlrH4=A`}-gGZK)!t7GkdSQ(Se|EE9O-*<>Zayzcco>f~ zn!4|qvLG~o8jIV(Q4>nMO6UkJ5<|ZeVc{0B{ zM3=cm;B}ol+fleq&9#v>`8fjDEB|?%;^KuQ0b}-_nQ?^{dIJEsHz7Sg=SeOjDnFeW zu2zAuT1ds!838iAlIidmL10)bcFd+cg0%u|4x%qRylh&KN&fVUFn^|9d5_nsONmvA)k51OQXWi`;1x6|((F-mJ`Q)l2DYpk@dWRDuMtHs6^`dHX#3)~b! zTiA9FcrzuPfEBAPs{oa34rWMB{O38VDJFDkLdeqNee?d_H_TTugXdxo5}5|5@6grN zaeJfw$Po6Z2vu;-6U!&8a_KM8Lvpa2x~-<*Sr0`^>sR}=0sQbFlpU@uKZ!h%RfoZL z;yQBJMTN!hFJY=)4t+&^rs#9HUauYGcux7@(9RyG6hk`-D&|T zi$;ox1bnyargI`hqAlCe!p)dR+j26Uo3EYcqm-)X`GgTmFYTJD^Cn;BH;fSuN?y1j zqS~`}1U1|j0&tu73_mlUuj#@_k}o}*xc&HXTQV_aChZ%`DjadNcGVHLSBms%aZiJ>Xr%abqK?)q)R5BkrQ^kx$L_y^pDtUZ z_+UQ)1qhLh7OWRP0w?#$3|Y0TWgaV*NjjUS|HhO8e!HqhR+T!h({TO!WTFa8=BM7> zuah}A0JlGP&^{k$)dg{BJFVSs8bn`T>t!2~BT=_S_NB?aAeZ7xSv-zAwWJ2T=rRh% z9Y2E}Zdj4b*wNr+3Zc}M$Ljjq?gC|g-aK*G!rCu~k9|V;>BGo+Q?sU%%OL1lYeUq4 z=k4Aaxm$pMZZkC7DyvG!8^or858y0X%SYrT)NjIjNn|t#vhMz*oBXH_)-CB8GI~Bx zfe6G<;sv(|LY+W0BJh zvN|a5xI|_Cg(;qFkv}~(vmI#-7O;7DHgt7Zl`8iRF_A9ZpLMk4LE3)R+j_TF=Y-r; z%%Hhy?2j|Z+l?T`Dyuwa`_s1)j$xLmVI=J90-IQ6r}Byq?~!}A-V2j$__CWh)$uzk zASLNG^(Z${G@~-6<45bO=H>JFv#rB!3hp_zzisWzcRnoa@Q)*e_;%R-`L&!B>`h5# zV-vW2`SoV9qB^19nO$)_m^r0&Bxr{!J7Bt(PE+@26_oVmTj)X)@;2SVW&n*VFFOGgrMT=}g0=K>a}tXOWUvEK}DPf??N8eSsbeN-LIvWP*e;0UjZcPwdJ@X#d6}2$No3a*fUA4x$lMh3=Z|AL6vF?QnGHdwo?FcT1^ZW;g>YbSkSnE*I6%b&NG<=kAygcCpSker&xBz+BvT( zJ#s#c<1>VMHn|0THGltr+^vk zXsN0DUJ)40T+VW-7<%s0*tqbZ-nw^7u}!B6^dRQk0NI1Qus&03X6WdqmTu8eeK%Zo ziXl^0{tQ_~09soCkc&8HAHOq1($L1I_vy?7psdU_K)zDqtc}&GepYNe`OptqkKL&~ z1FxF;rvisqln?jjrfcOeDn|X;jMY?|cvM&h_2F|c*Tw_@xPSD^Q7N(lPR_3_tcd7q zNWI+HFeZtjnMl)>cXNB)fm@a0LTy+bx53+cv^a{Ei|O&Snws%-LXro5wzj)Yxh9Rw zsalxGVMKGw&o5g_Z60w6isp7(^`?;=U%Oh~NCj;(4pnLfy(K9+oot-hiAz50&NKL3 z=}>ekl*x_$b3M@6C90RNimO91;iAa4VlY8@y%-r6qBU6 zk3uM+b7{JnubCkm0n4O@6i5Zi#s*I8n$z!KpqFDk^|)4-F(W!5iJgmsC8lFjHU@ew zR%FP#U+4USs0wxw(U1q$G8^(BX@Hwt1U?}fWMzI7ktB+^MhmdOk{zAD#ag``$| zd}A$bJAD?LxaYZDZ~F994*<}L8?M1WX;V?LID7@7K8dM)|z1F z683$%!PR3&Xd#{osNw6KXVpq|w`QHe6&Lk+^;8d8%%e}s`?R#f1weap=nSb=!TJyq z3gJ&59txj-4CmW{i`4^{(q1>zeDyjzw`j=`uZ| zC0mZ+xEaY~8+jvstQzK-L)&uoYl8DYlc`BMwof*f#W9xaTw zs~a>s$rVk`o8`25IxObTLJ-X;grVG8tNs}MU(3rmm%Ie zs$?&`sCf=mUt#Kk)FK`pyns!&c}^$vo;b+*?FHNze;ouaq}(^Ym0f!*gF4*4WaCp#lnPgP+P>2rVq3xeGRp(ulu|&W_lq)dM{gg?jtbAwDU=5yZm=ojd6N+OA;*KcPrvYbIN&c3toy% zNb1btSls1Bj&s!NoorIB_E)@#6ifUn=nB6cF%_3TNHd*-3|i zuYve&95R5$%%%B_Qw=AoU|$A9z~0BVSp0}qE$REG_B`KeXr;?PMnpvPM&>F8lJA=X z(b@Z(`(E*#2m#aBUK7LPCiR*e0UXCybQySr=V2Tb<#bUc~?9IW5$nOMiy3Qtb zA={hS-yaR|jMsrz&5#46kyNNEzS=6jEPhg~`UlA`DDX46&@i;QetD9FdbE|!v91%~ z1e_HxFkY$ig^a%&i@#YTS$PPJWr(!Vw+0P?ZP`t|f2^hV!Ml5`=|quq6%6Kya|xHOEgdIuu3W_UIk_ zrBpa6&eX+*yYL2z+@)`1RtLR`_8OU1-rf)X&w9cPH^KhBciCk%B()xGL5tQ6JNxbB zyUv0Co?qL@(|F&a5^|wrhi0&kZ(=7GD-=K0`u@)E7&U2FHNvN+=Ipm_mErz#p}yTJ zsVLVfgs84|_Gyf7_t@!sJKb?xNV}(8j>;dn+Jk+GI8c$Ybu>q1EqUvK?-vbVBAQl{ zNL$B2ATk?8mOf!YNU(L)T&--2tLr9k!M;(C{A`G{&^@yY_nWn|iIm%heDYbo`mv?D zfwZ-vL~@(Wc_C++XL`_YappAEJE;ei-k#tZH8Ztg0D8n+J~?mU$#aY7r@zQ z-+x{-d@PAim?Gs{Nx>T#nNr~nC%7O2)2c&I0j=HnMEEsz?}zt41CSL~`YZ#?aR-kX zq9+|ZtN`H}F8NZ&|86)^iLZPmG)t2aa4~wCD6|Dhr4d33(svHtYg|@ewmc?PWNgj{ z6eMr(=w|{lr+&?AnKG$lfRe%1Z+WJ8?8K(PY?@iU-{M}s>h$>q29dA?N;Z-I0kU)n);89NR>>#{iq&}uebmOu*)6vpUWqTY%GtNN`~Ww-%|v;J>g41NV>&OIi_aI{8+H2AIMD=(475aw4M0 z;<}nCw5*7Z^&X8vS7iL@n<%1wK`F!yjb7z2hasf?%He8D)|~XmhVpV>Eyq9>^ZCNtbx;eA#VIUElGQKZb1n2d>``@B=kda&3(Qm}@5FE%y>|lgI4%u1 zeMbGXCBharhLCSVRPI{cq_P^{!IAw+5`Dpt?a-YCj}UDohh6G2_mP43m(+$K5OF*d zdK}4Mpi-ODZxHqls!*A;{At7Sln4tzqVkK!Ts7+HQ4`Yz-M`}HRnE+4J$_bm~j;7`*&ENtuGR=7s$p*jI`H! zW$yOG)zzZ|{#SnQkbLizRyMAqal@L@y@NVF z+*;%J@OcC)t`FOFZxh5B__*jHhkP&WfmSSED`H8Y2UqmADrZxT5MKH$E#xp*=9W0# zF-Z#qL{>QW$JB&S|9gtx83Upn>3lSP9A-cWIRZIf$kDjC>mrR^v9FHZWqb?_x29bQ z%x3&nrC)CY9m8I&sH?9>kpP6q)78z`>%$@PuQS3zThG%4dIBTuL~Mu;zg2T!u>O_#7QycsbgA{z*lY21YT?P0d5JEwR##CKI2rOt+`z7P2me6l zN<}rJe8guYi;aFN0rGE;7P>U^?8y7-MH4(kH8X?V1bLQCD(CM>*ZDsbEu$paF4d3I zHBs7sv5wWtv{^Rca>?W^qOMxjabZ{{W37Y+x0Q40t72ysAM|!?kFX6RCv3+pVsqDM zs$~#P2e&!)s_H`Ew^@bGWS^4SsiJ%JyRWQc%lYO>_(P9|u;}=$fD68_sbP=0BQBvs zkXvS1YiB%&{|SZbVHAytgLRf^g`nPbc&0BIG5O!haqvw@VLbt&uv&dJ{$&$oAe09W zGP~_XA@cVJjIuV|$ca@mMn%_GKOrUhP|yeoKrQ_)e5llx+&HR^SpSm*V}i6Z zcD2+*))ccxi;2v4N;x@4i(P;?r_5}CH}QUElEr@oR`ME>)S1cO4&d+i&-1Q7_6v3L3j{XJA zw$tI_WYjj&EW(5%YI|?Bt$BDF-++3`LRR=a%uBnq$}E@Hh5r!ETH9FG4q0M-0@gXB z)$s0V^H!K5=VK~06ikz-eSpiKPwBO-;yMd>PxP?F&GLBd3}jcC0P<5KB65oh(H`@8 zXLVe57a-LnVb%jPZyM7C;+qQ70nn-illmM-yFEn>7FpQHGRv0t@ZY}o+IqDe#X7>l zD}7U~bsBw60#oFuUNXkkMPuuS#j!gYErqvgQu5U`l|Z&br$(N3iJ23%Wes&;qdzW2 zTNQ05EtKQ}^rAWHYdtdKpTLl|;RB{hAe=k*cO(KC4slNrGPz33mu<4c z^*wO`a3I^%k+XFCuA@NGR?Y27r^}#M++rlC&(_HsMF2212QSogo|!Vi3F*FSGBh^F z?zTRfnAasv<%KmM4{1Rp_Zk;g%<;O-8%Yn88e-XmX%!1*=?yyDCU+=s&ATTjO&Us! zN*a7nj2YM6;g~)Y)g)i*^+$LCM`|b_xZA}s7}Lz!sH~R}+xJMNyu7K}Ux+FEs}qq@ zfh#tfEwXk#R5%VTo-yj$z9;@J8L^y;*jNFNqiBW+DP0OJgaHx&29bOFw=>4f(^45?$!ovx+ug7bJd)1H!Qc+XN8q{PE#xdOyFx`^Bo1?#lkSaolp-G{?|wNAPe^RVzH%|LN#e8P9nKM~6GS zdPjtHP(J%E#dGvz1{Wtek766`7eu`yR`e|vf?0uXQQ_=ZxC%0_`Z6U9C!)5k(jbG`h(W;m++8@BvY~E-LH7HR4OwhTQ-+mPt_Kt zsP@oIOawsaD&zVAYUrHyVQJZ4xNssojrk8DGOUK{08<}nySY_gJzLLs3(c1~p&0Pv zcX(REz-a+G;D6>8l&Dg({y#|j*H6#^Ip2KZ=nw=v05A)BLyeuPA~Y7SC5d6zH<>C%rmI-T#8qX#%oyHX=^~N;h&~C z!tWneBD)lD>Zya&%>6}l7w6|&UCdmQY!{X3X;!8e5-WGU@Cuun*3l`nvV`L9H|9S|`N*Qyh{#cm85TS#V{?XVGs_Rmq`iDbL=>~=r6*w;b ze&%?+>!Tc_u{=;Q_xUf*&Hd?0gOOkW;81Zu@Q*5ai4b5kpnw_!fXI6bFL@Fh&t;i15K=?TG#NU+Cl|j>zqZlt&d|g0EOh zoKW=tKKhRs#Pt)&IXi*FjNBVc$S@rK`+G-AR4L~PSX-u!GC2XcbVcmbc~gFT3^6n)lAb%VQfd^Ku!6mD zh(&4Ovo5MqVhql_-@9z^T2~LcN4X^hED(4dpLcZK^G42yqgQcmgcN#n!s}B2Xm<+I z5?YOZbE<_;)i%!s#kMUpnHvW60wpCskAJ{|R=pCreHXoV&Wsr?F~+mvL|&}+rZ!6rIvF7L6%5P!!mXn4{eCh=hGLh;pGimH+QA;LIWvp>tLnv$qVm8@&o(pQ z$C;8UwA%&zqPH~R=_Jf04NVX_n$+YD^KC2xHe@_;S;WtXi8C0F7X7~~wCS2W952f4O+eVL%WHOXQanke7&YRNw1&bW7W-xY z%+|`K?#5;T8SsR$xb{B_PrKdAEHDAu-Ts9YwOW;Q3T?^gykIErx~YM2Gb|G0U--woWJ7| zqUnCw9a_#cCr46Ay^6wQi#E?-``Y?Q(~yi8U7$#?3G;k2tM%5G6>Av0m43TNCVE|{ zDt1UkLXN2TQS5=Dtey-1$@gZZQ#F7F0^imEi-BQg*wq{o;85sd#;9WMB;s@ZhlYoB zS-q#iw}Dh2pM=-~n(vmq90AhnszE1Rd?yyg+YmKUpQi=>{?E%wIo%O-5aCMq`{Brn zl;EKyvW1zT4`JU*L%W8}VE1U*|Aq$LQE_cXfPQ?V(baYg81T-qk*R{T) z4$q0hsvlcLt&dG=4tyo~ZQgzB2ISHFx7j_DINCUH_3g-4BV1TabvybiHs+Us7$C+a zYl@trZw$tyMR7yQ7k8Wq0-cT?&T4+Qpio`8qrgWa63ia@1@`3YgZMj}edKASfEPD4 z9G;$_fEz8!L7jRt;Db1-s^STq*URxwF-~QgpKujBwuN7qHgIZ9@=xmjkez_9UcZo^ zXu^}b|BqhSaQ318uOcY+Ov^Oit?0ttjmEuIN(^{JCTTah;*>~dd6tQHjaE{FoiJ7> zd$$xAMw6FhjLB}5D*aNaG_$ZKye2{&&!L_^I}gjj!ZJ2@tHyc*S-Rt#n{pk>rVH|% zJipw2>a)Mkk8ywv_k6^f`(qR!`|_}g-t+Wu<@$Y?r?o1`h|78qYdz2D_|%o2GLJ1- zk>)z?i^3R-g_doNc#q=s!Lm7TTfQw)>3UvD& zvVC-_Mo3aipP9+RLLofyFjzKdYbPI=frl9k9nl-Y*p5muY=_?8i)12VSBZ!a(2I0b z>#t07=u&0gXz%o6dH~nv7iSiBNJHA|?gYcS)lnSw?0uJ=fE-w8UxTr2Dwz-g55dlRIG8v9Nf-={PjwP(&v=?1!3^ zwWQNc{K0u-#Uc)~<#=-81+zDC%Z{(32Y)215tlnCA}`nWpyBWcl-3#4$D_hcq9n%> zDK-T^$ZeXw$iUzJ4DV(AeXJML=q3;F+195Q_9=1A^OxO)yV1!32y`;);oT?{@E8FA zNJ10Wz(Bk~=&HJ9gC7a~DL|PL{R=&nb>BZ@`}m=XBg5-mi~!V{rJvpc-$)SvsAc_~ zbmrN-KpW!8JOY4RuO`D)Bz0of1|QM`tccj2%!SbWMtT8gwPpMtKzGRK0rw0cleK6P zokCWz^xDah;9uh`Bk7mdXH`)lk$dP??9SuM*TcU=Zy`T~DlH4P2wf$D17UXj#K?fX zChlY#kJXs8?z>hYAwlE6`Bj6GSu6*p)kOLU9UZIiphqBq7Q}gwiroeMjG-q2kEe&Z zz9<((Fk|?dBoc@-c(aDSe;lZ<8jNts#T=KFR+RV%qR}1F?)5^8hB>o;=HIrOnVehD zFy}o9Xo28dE(r>Pf{(}QEZ!szZ!6`5N2HZKEy0Tr&8s?DKHD~oRCNY8q#5UjYx`*^ bJU-tl|2DALo)Ll*xB&_>D$>=GW}*KBQ!DHU literal 0 HcmV?d00001 diff --git a/.playwright-mcp/modal-background-issue.png b/.playwright-mcp/modal-background-issue.png new file mode 100644 index 0000000000000000000000000000000000000000..2c3bfabda8c4042014dd16306fe3aab715e9d06d GIT binary patch literal 50640 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 BSL6Ty literal 0 HcmV?d00001 diff --git a/.playwright-mcp/modal-open-with-styling.png b/.playwright-mcp/modal-open-with-styling.png new file mode 100644 index 0000000000000000000000000000000000000000..96ff07dc514edfa72a81928b4874e33166d33877 GIT binary patch literal 53305 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∈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 literal 0 HcmV?d00001 diff --git a/html/index.html b/html/index.html new file mode 100644 index 0000000..5d13c30 --- /dev/null +++ b/html/index.html @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/html/index.ts b/html/index.ts new file mode 100644 index 0000000..7b1101a --- /dev/null +++ b/html/index.ts @@ -0,0 +1,10 @@ +// dees tools +import * as deesWccTools from '@design.estate/dees-wcctools'; +import * as deesDomTools from '@design.estate/dees-domtools'; + +// elements and pages +import * as elements from '../ts_web/elements/index.js'; +import * as pages from '../ts_web/pages/index.js'; + +deesWccTools.setupWccTools(elements as any, pages); +deesDomTools.elementBasic.setup(); diff --git a/npmextra.json b/npmextra.json new file mode 100644 index 0000000..9b270eb --- /dev/null +++ b/npmextra.json @@ -0,0 +1,37 @@ +{ + "@git.zone/cli": { + "projectType": "wcc", + "module": { + "githost": "code.foss.global", + "gitscope": "design.estate", + "gitrepo": "dees-catalog-mobile", + "description": "A mobile-optimized component catalog for building cross-platform business applications with touch-first UI components.", + "npmPackagename": "@design.estate/dees-catalog-mobile", + "license": "MIT", + "projectDomain": "design.estate", + "keywords": [ + "Mobile Components", + "Web Components", + "Touch UI", + "Cross-Platform", + "PWA Components", + "Mobile-First", + "TypeScript", + "Business Apps", + "iOS", + "Android", + "Touch Gestures", + "Bottom Navigation", + "Action Sheet", + "Mobile Forms" + ] + }, + "release": { + "registries": [ + "https://verdaccio.lossless.digital", + "https://registry.npmjs.org" + ], + "accessLevel": "public" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..02bcfd0 --- /dev/null +++ b/package.json @@ -0,0 +1,64 @@ +{ + "name": "@design.estate/dees-catalog-mobile", + "version": "1.0.0", + "private": false, + "description": "A mobile-optimized component catalog for building cross-platform business applications with touch-first UI components.", + "main": "dist_ts_web/index.js", + "typings": "dist_ts_web/index.d.ts", + "type": "module", + "scripts": { + "test": "tstest test/ --web --verbose --timeout 30 --logfile", + "build": "tsbuild tsfolders --allowimplicitany && tsbundle element --production --bundler esbuild", + "watch": "tswatch element", + "buildDocs": "tsdoc" + }, + "author": "Lossless GmbH", + "license": "MIT", + "dependencies": { + "@design.estate/dees-domtools": "^2.3.6", + "@design.estate/dees-element": "^2.1.3", + "@push.rocks/smartpromise": "^4.2.0", + "lit": "^3.3.1", + "lucide": "^0.562.0" + }, + "devDependencies": { + "@design.estate/dees-wcctools": "^3.2.0", + "@git.zone/tsbuild": "^4.0.2", + "@git.zone/tsbundle": "^2.6.3", + "@git.zone/tstest": "^3.1.3", + "@git.zone/tswatch": "^2.3.13", + "@push.rocks/tapbundle": "^6.0.3", + "@types/node": "^25.0.3" + }, + "files": [ + "ts/**/*", + "ts_web/**/*", + "dist/**/*", + "dist_*/**/*", + "dist_ts/**/*", + "dist_ts_web/**/*", + "assets/**/*", + "npmextra.json", + "readme.md" + ], + "browserslist": [ + "last 1 chrome versions" + ], + "keywords": [ + "Mobile Components", + "Web Components", + "Touch UI", + "Cross-Platform", + "PWA Components", + "Mobile-First", + "TypeScript", + "Business Apps", + "iOS", + "Android", + "Touch Gestures", + "Bottom Navigation", + "Action Sheet", + "Mobile Forms" + ], + "packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..4b2199e --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,10770 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@design.estate/dees-domtools': + specifier: ^2.3.6 + version: 2.3.6 + '@design.estate/dees-element': + specifier: ^2.1.3 + version: 2.1.3 + '@push.rocks/smartpromise': + specifier: ^4.2.0 + version: 4.2.3 + lit: + specifier: ^3.3.1 + version: 3.3.1 + lucide: + specifier: ^0.562.0 + version: 0.562.0 + devDependencies: + '@design.estate/dees-wcctools': + specifier: ^3.2.0 + version: 3.2.0 + '@git.zone/tsbuild': + specifier: ^4.0.2 + version: 4.0.2 + '@git.zone/tsbundle': + specifier: ^2.6.3 + version: 2.6.3 + '@git.zone/tstest': + specifier: ^3.1.3 + version: 3.1.3(@push.rocks/smartserve@1.4.0)(socks@2.8.7)(typescript@5.9.3) + '@git.zone/tswatch': + specifier: ^2.3.13 + version: 2.3.13(@tiptap/pm@2.27.1) + '@push.rocks/tapbundle': + specifier: ^6.0.3 + version: 6.0.3(socks@2.8.7) + '@types/node': + specifier: ^25.0.3 + version: 25.0.3 + +packages: + + '@api.global/typedrequest-interfaces@2.0.2': + resolution: {integrity: sha512-D+mkr4IiUZ/eUgrdp5jXjBKOW/iuMcl0z2ZLQsLLypKX/psFGD3viZJ58FNRa+/1OSM38JS5wFyoWl8oPEFLrw==} + + '@api.global/typedrequest-interfaces@3.0.19': + resolution: {integrity: sha512-uuHUXJeOy/inWSDrwD0Cwax2rovpxYllDhM2RWh+6mVpQuNmZ3uw6IVg6dA2G1rOe24Ebs+Y9SzEogo+jYN7vw==} + + '@api.global/typedrequest@3.2.5': + resolution: {integrity: sha512-LM/sUTuYnU5xY4gNZrN6ERMiKr+SpDZuSxJkAZz1YazC7ymGfo6uQ8sCnN8eNNQNFqIOkC+BtfYRayfbGwYLLg==} + + '@api.global/typedserver@3.0.80': + resolution: {integrity: sha512-dcp0oXsjBL+XdFg1wUUP08uJQid5bQ0Yv3V3Y3lnI2QCbat0FU+Tsb0TZRnZ4+P150Vj/ITBqJUgDzFsF34grA==} + + '@api.global/typedserver@7.11.1': + resolution: {integrity: sha512-1vQUJ2/DszDFHVkCmqqBy/qNiIP/jltFN3KxHtoNLxjbdBZYfw1Zd1Odjs6YSPalAD0p8wQ/alJblJEAewNQVg==} + + '@api.global/typedsocket@3.1.1': + resolution: {integrity: sha512-Wkz3NlhmfdZMKqXXI2c2dMtGGmSmhdOegZiziL+9b2mqPYdc7Gd8AZRdEOKvbSoIvc9G22/5BEadIWHrfq66TA==} + peerDependencies: + '@push.rocks/smartserve': '>=1.0.0' + peerDependenciesMeta: + '@push.rocks/smartserve': + optional: true + + '@api.global/typedsocket@4.1.0': + resolution: {integrity: sha512-ttmoU5BNHmLAkAF/o+Ta8F5O4F7CUmkFo6LK7NKHQvuYJvodPMYWdhJ6yCINTF4pfCgljkMDUqoVKobm6ea4mQ==} + peerDependencies: + '@push.rocks/smartserve': '>=1.1.0' + + '@aws-crypto/crc32@5.2.0': + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/crc32c@5.2.0': + resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + + '@aws-crypto/sha1-browser@5.2.0': + resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + + '@aws-sdk/client-s3@3.956.0': + resolution: {integrity: sha512-O+Z7PSY9TjaqJcZSDMvVmXBuV/jmFRJIu7ga+9XgWv4+qfjhAX2N2s4kgsRnIdjIO4xgkN3O/BugTCyjIRrIDQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-sso@3.956.0': + resolution: {integrity: sha512-TCxCa9B1IMILvk/7sig0fRQzff+M2zBQVZGWOJL8SAZq/gfElIMAf/nYjQwMhXjyq8PFDRGm4GN8ZhNKPeNleQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/core@3.956.0': + resolution: {integrity: sha512-BMOCXZNz5z4cR3/SaNHUfeoZQUG/y39bLscdLUgg3RL6mDOhuINIqMc0qc6G3kpwDTLVdXikF4nmx2UrRK9y5A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-env@3.956.0': + resolution: {integrity: sha512-aLJavJMPVTvhmggJ0pcdCKEWJk3sL9QkJkUIEoTzOou7HnxWS66N4sC5e8y27AF2nlnYfIxq3hkEiZlGi/vlfA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-http@3.956.0': + resolution: {integrity: sha512-VsKzBNhwT6XJdW3HQX6o4KOHj1MAzSwA8/zCsT9mOGecozw1yeCcQPtlWDSlfsfygKVCXz7fiJzU03yl11NKMA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-ini@3.956.0': + resolution: {integrity: sha512-TlDy+IGr0JIRBwnPdV31J1kWXEcfsR3OzcNVWQrguQdHeTw2lU5eft16kdizo6OruqcZRF/LvHBDwAWx4u51ww==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-login@3.956.0': + resolution: {integrity: sha512-p2Y62mdIlUpiyi5tvn8cKTja5kq1e3Rm5gm4wpNQ9caTayfkIEXyKrbP07iepTv60Coaylq9Fx6b5En/siAeGA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-node@3.956.0': + resolution: {integrity: sha512-ITjp7uAQh17ljUsCWkPRmLjyFfupGlJVUfTLHnZJ+c7G0P0PDRquaM+fBSh0y33tauHsBa5fGnCCLRo5hy9sGQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-process@3.956.0': + resolution: {integrity: sha512-wpAex+/LGVWkHPchsn9FWy1ahFualIeSYq3ADFc262ljJjrltOWGh3+cu3OK3gTMkX6VEsl+lFvy1P7Bk7cgXA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-sso@3.956.0': + resolution: {integrity: sha512-IRFSDF32x8TpOEYSGMcGQVJUiYuJaFkek0aCjW0klNIZHBF1YpflVpUarK9DJe4v4ryfVq3c0bqR/JFui8QFmw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.956.0': + resolution: {integrity: sha512-4YkmjwZC+qoUKlVOY9xNx7BTKRdJ1R1/Zjk2QSW5aWtwkk2e07ZUQvUpbW4vGpAxGm1K4EgRcowuSpOsDTh44Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-bucket-endpoint@3.956.0': + resolution: {integrity: sha512-+iHH9cnkNZgKkTBnPP9rbapHliKDrOuj7MDz6+wL0NV4N/XGB5tbrd+uDP608FXVeMHcWIIZtWkANADUmAI49w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-expect-continue@3.956.0': + resolution: {integrity: sha512-97rmalK9x09Darcl6AbShZRXYxWiyCeO8ll1C9rx1xyZMs2DeIKAZ/xuAJ/bywB3l25ls6VqXO4/EuDFJHL8eA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-flexible-checksums@3.956.0': + resolution: {integrity: sha512-Rd/VeVKuw+lQ1oJmJOyXV0flIkp9ouMGAS9QT28ogdQVxXriaheNo754N4z0+8+R6uTcmeojN7dN4jzt51WV2g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-host-header@3.956.0': + resolution: {integrity: sha512-JujNJDp/dj1DbsI0ntzhrz2uJ4jpumcKtr743eMpEhdboYjuu/UzY8/7n1h5JbgU9TNXgqE9lgQNa5QPG0Tvsg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-location-constraint@3.956.0': + resolution: {integrity: sha512-eANhYRFcVO/lI9tliitSW0DK5H1d9J7BK/9RrRz86bd5zPWteVqqzQRbMUdErVi1nwSbSIAa6YGv/ItYPswe0w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-logger@3.956.0': + resolution: {integrity: sha512-Qff39yEOPYgRsm4SrkHOvS0nSoxXILYnC8Akp0uMRi2lOcZVyXL3WCWqIOtI830qVI4GPa796sleKguxx50RHg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.956.0': + resolution: {integrity: sha512-/f4JxL2kSCYhy63wovqts6SJkpalSLvuFe78ozt3ClrGoHGyr69o7tPRYx5U7azLgvrIGjsWUyTayeAk3YHIVQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.956.0': + resolution: {integrity: sha512-U/+jYb4iowqqpLjB6cSYan0goAMOlh2xg2CPIdSy550o8mYnJtuajBUQ20A9AA9PYKLlEAoCNEysNZkn4o/63g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-ssec@3.956.0': + resolution: {integrity: sha512-1Et0vPoIzfhkUAdNRzu0pC25ZawFqXo5T8xpvbwkfDgfIkeVj+sm9t01iXO3pCOK52OSuLRAy7fiAo/AoHjOYg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-user-agent@3.956.0': + resolution: {integrity: sha512-azH8OJ0AIe3NafaTNvJorG/ALaLNTYwVKtyaSeQKOvaL8TNuBVuDnM5iHCiWryIaRgZotomqycwyfNKLw2D3JQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/nested-clients@3.956.0': + resolution: {integrity: sha512-GHDQMkxoWpi3eTrhWGmghw0gsZJ5rM1ERHfBFhlhduCdtV3TyhKVmDgFG84KhU8v18dcVpSp3Pu3KwH7j1tgIg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/region-config-resolver@3.956.0': + resolution: {integrity: sha512-byU5XYekW7+rZ3e067y038wlrpnPkdI4fMxcHCHrv+TAfzl8CCk5xLyzerQtXZR8cVPVOXuaYWe1zKW0uCnXUA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.956.0': + resolution: {integrity: sha512-gejlXPmor08VydGC8bx0Bv4/tPT92eK0WLe2pUPR0AaMXL+5ycDpThAi1vLWjWr0aUjCA7lXx0pMENWlJlYK3A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/token-providers@3.956.0': + resolution: {integrity: sha512-I01Q9yDeG9oXge14u/bubtSdBpok/rTsPp2AQwy5xj/5PatRTHPbUTP6tef3AH/lFCAqkI0nncIcgx6zikDdUQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/types@3.956.0': + resolution: {integrity: sha512-DMRU/p9wAlAJxEjegnLwduCA8YP2pcT/sIJ+17KSF38c5cC6CbBhykwbZLECTo+zYzoFrOqeLbqE6paH8Gx3ug==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-arn-parser@3.953.0': + resolution: {integrity: sha512-9hqdKkn4OvYzzaLryq2xnwcrPc8ziY34i9szUdgBfSqEC6pBxbY9/lLXmrgzfwMSL2Z7/v2go4Od0p5eukKLMQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-endpoints@3.956.0': + resolution: {integrity: sha512-xZ5CBoubS4rs9JkFniKNShDtfqxaMUnwaebYMoybZm070q9+omFkQkJYXl7kopTViEgZgQl1sAsAkrawBM8qEQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-locate-window@3.953.0': + resolution: {integrity: sha512-mPxK+I1LcrgC/RSa3G5AMAn8eN2Ay0VOgw8lSRmV1jCtO+iYvNeCqOdxoJUjOW6I5BA4niIRWqVORuRP07776Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-user-agent-browser@3.956.0': + resolution: {integrity: sha512-s8KwYR3HqiGNni7a1DN2P3RUog64QoBQ6VCSzJkHBWb6++8KSOpqeeDkfmEz+22y1LOne+bRrpDGKa0aqOc3rQ==} + + '@aws-sdk/util-user-agent-node@3.956.0': + resolution: {integrity: sha512-H0r6ol3Rr63/3xvrUsLqHps+cA7VkM7uCU5NtuTHnMbv3uYYTKf9M2XFHAdVewmmRgssTzvqemrARc8Ji3SNvg==} + engines: {node: '>=18.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/xml-builder@3.956.0': + resolution: {integrity: sha512-x/IvXUeQYNUEQojpRIQpFt4X7XGxqzjUlXFRdwaTCtTz3q1droXVJvYOhnX3KiMgzeHGlBJfY4Nmq3oZNEUGFw==} + engines: {node: '>=18.0.0'} + + '@aws/lambda-invoke-store@0.2.2': + resolution: {integrity: sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==} + engines: {node: '>=18.0.0'} + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + engines: {node: '>=6.9.0'} + + '@borewit/text-codec@0.1.1': + resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} + + '@cfworker/json-schema@4.1.1': + resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==} + + '@cloudflare/workers-types@4.20251221.0': + resolution: {integrity: sha512-VVTEhY29TtwIwjBjpRrdT51Oqu0JlXijc5TiEKFCjwouUSn+5VhzoTSaz7UBjVOu4vfvcQmjqt/dzwBUR7c95w==} + + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@configvault.io/interfaces@1.0.17': + resolution: {integrity: sha512-bEcCUR2VBDJsTin8HQh8Uw/mlYl2v8A3jMIaQ+MTB9Hrqd6CZL2dL7iJdWyFl/3EIX+LDxWFR+Oq7liIq7w+1Q==} + + '@dabh/diagnostics@2.0.8': + resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} + + '@design.estate/dees-catalog@3.4.0': + resolution: {integrity: sha512-Xl9govx7ls779uykabv8bNaIOVL1YRWaFfyLOEZ8RzQmN7zhHWe+g47vUsv93nh7DIPyKTqzusep6spHcVAGgA==} + + '@design.estate/dees-comms@1.0.30': + resolution: {integrity: sha512-KchMlklJfKAjQiJiR0xmofXtQ27VgZtBIxcMwPE9d+h3jJRv+lPZxzBQVOM0eyM0uS44S5vJMZ11IeV4uDXSHg==} + + '@design.estate/dees-domtools@2.3.6': + resolution: {integrity: sha512-cKaPNtSpp/ZuuXVx2dXO3K2FU3/HjC4ZkqtXb8Kl6yy9rNDbgtjcI4PuOk9Ux1SJzw7FgcxqVh7OSEV60htbmg==} + + '@design.estate/dees-element@2.1.3': + resolution: {integrity: sha512-TjXWxVcdSPaT1IOk31ckfxvAZnJLuTxhFGsNCKoh63/UE2FVf6slp8//UFvN+ADigiA9ZsY0azkY99XbJCwDDA==} + + '@design.estate/dees-wcctools@3.2.0': + resolution: {integrity: sha512-tBh4RJFsQFIXDLzrksFK/M1i/34bMcDLFhYO/MWW5ArgH3mDyRlg+10RMAmbjI9ijOnegbbEtWanHoDx9EKgUA==} + + '@emnapi/core@1.7.1': + resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} + + '@emnapi/runtime@1.7.1': + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} + + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + + '@esbuild/aix-ppc64@0.27.2': + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.2': + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.2': + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.2': + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.2': + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.2': + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.2': + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.2': + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.2': + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.2': + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.2': + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.2': + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.2': + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.2': + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.2': + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.2': + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.2': + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.2': + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.2': + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.2': + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.2': + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.2': + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.2': + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.2': + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.2': + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.2': + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esm-bundle/chai@4.3.4-fix.0': + resolution: {integrity: sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==} + + '@fortawesome/fontawesome-common-types@7.1.0': + resolution: {integrity: sha512-l/BQM7fYntsCI//du+6sEnHOP6a74UixFyOYUyz2DLMXKx+6DEhfR3F2NYGE45XH1JJuIamacb4IZs9S0ZOWLA==} + engines: {node: '>=6'} + + '@fortawesome/fontawesome-svg-core@7.1.0': + resolution: {integrity: sha512-fNxRUk1KhjSbnbuBxlWSnBLKLBNun52ZBTcs22H/xEEzM6Ap81ZFTQ4bZBxVQGQgVY0xugKGoRcCbaKjLQ3XZA==} + engines: {node: '>=6'} + + '@fortawesome/free-brands-svg-icons@7.1.0': + resolution: {integrity: sha512-9byUd9bgNfthsZAjBl6GxOu1VPHgBuRUP9juI7ZoM98h8xNPTCTagfwUFyYscdZq4Hr7gD1azMfM9s5tIWKZZA==} + engines: {node: '>=6'} + + '@fortawesome/free-regular-svg-icons@7.1.0': + resolution: {integrity: sha512-0e2fdEyB4AR+e6kU4yxwA/MonnYcw/CsMEP9lH82ORFi9svA6/RhDyhxIv5mlJaldmaHLLYVTb+3iEr+PDSZuQ==} + engines: {node: '>=6'} + + '@fortawesome/free-solid-svg-icons@7.1.0': + resolution: {integrity: sha512-Udu3K7SzAo9N013qt7qmm22/wo2hADdheXtBfxFTecp+ogsc0caQNRKEb7pkvvagUGOpG9wJC1ViH6WXs8oXIA==} + engines: {node: '>=6'} + + '@git.zone/tsbuild@4.0.2': + resolution: {integrity: sha512-LcRlFnDbcUe53Pdoob585iXq9TAT90TyEaYl/wml/etFoPeBX+oQLm6GryejUPXrUP7i1opyTonadkQN1OyXOA==} + hasBin: true + + '@git.zone/tsbundle@2.6.3': + resolution: {integrity: sha512-YD1qMYA/4eOuF57V0ccR+xo6ww1+QOYFA2K5gBPFBDNh9VdfvWxxDhOUybja8lT9PVMoli8PHG5WA5tKJkdXIQ==} + hasBin: true + + '@git.zone/tspublish@1.11.0': + resolution: {integrity: sha512-dkgaDBTzZJ53lAV72r7OW/W7l/KqpkncFuPojr11JO35OKAbjjDhZbAwPv4oGX9NplyXrhC5VJRPNX/orqNTHA==} + hasBin: true + + '@git.zone/tsrun@2.0.1': + resolution: {integrity: sha512-NEcnsjvlC1o3Z6SS3VhKCf6Ev+Sh4EAinmggslrIR/ppMrvjDbXNFXoyr3PB+GLeSAR0JRZ1fGvVYjpEzjBdIg==} + hasBin: true + + '@git.zone/tstest@3.1.3': + resolution: {integrity: sha512-t+/cKV21JHK8X7NGAmihs5M/eMm+V+jn4R5rzfwGG97WJFAcP5qE1Os9VYtyZw3tx/NZXA2yA4abo/ELluTuRA==} + hasBin: true + + '@git.zone/tswatch@2.3.13': + resolution: {integrity: sha512-43995OlWl8UzCA+cX3ehYba/ksm6CqHbMljHKjosrDRpx8EU+LY4bWTc8JT/Ldgwsw3iW9vur2bBqpgMmdeJJw==} + hasBin: true + + '@hapi/bourne@3.0.0': + resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} + + '@happy-dom/global-registrator@15.11.7': + resolution: {integrity: sha512-mfOoUlIw8VBiJYPrl5RZfMzkXC/z7gbSpi2ecycrj/gRWLq2CMV+Q+0G+JPjeOmuNFgg0skEIzkVFzVYFP6URw==} + engines: {node: '>=18.0.0'} + + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@koa/router@9.4.0': + resolution: {integrity: sha512-dOOXgzqaDoHu5qqMEPLKEgLz5CeIA7q8+1W62mCvFVCOqeC71UoTGJ4u1xUSOpIl2J1x2pqrNULkFteUeZW3/A==} + engines: {node: '>= 8.0.0'} + + '@leichtgewicht/ip-codec@2.0.5': + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + + '@lit-labs/ssr-dom-shim@1.4.0': + resolution: {integrity: sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==} + + '@lit/reactive-element@2.1.1': + resolution: {integrity: sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==} + + '@mixmark-io/domino@2.2.0': + resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} + + '@module-federation/error-codes@0.21.6': + resolution: {integrity: sha512-MLJUCQ05KnoVl8xd6xs9a5g2/8U+eWmVxg7xiBMeR0+7OjdWUbHwcwgVFatRIwSZvFgKHfWEiI7wsU1q1XbTRQ==} + + '@module-federation/runtime-core@0.21.6': + resolution: {integrity: sha512-5Hd1Y5qp5lU/aTiK66lidMlM/4ji2gr3EXAtJdreJzkY+bKcI5+21GRcliZ4RAkICmvdxQU5PHPL71XmNc7Lsw==} + + '@module-federation/runtime-tools@0.21.6': + resolution: {integrity: sha512-fnP+ZOZTFeBGiTAnxve+axGmiYn2D60h86nUISXjXClK3LUY1krUfPgf6MaD4YDJ4i51OGXZWPekeMe16pkd8Q==} + + '@module-federation/runtime@0.21.6': + resolution: {integrity: sha512-+caXwaQqwTNh+CQqyb4mZmXq7iEemRDrTZQGD+zyeH454JAYnJ3s/3oDFizdH6245pk+NiqDyOOkHzzFQorKhQ==} + + '@module-federation/sdk@0.21.6': + resolution: {integrity: sha512-x6hARETb8iqHVhEsQBysuWpznNZViUh84qV2yE7AD+g7uIzHKiYdoWqj10posbo5XKf/147qgWDzKZoKoEP2dw==} + + '@module-federation/webpack-bundler-runtime@0.21.6': + resolution: {integrity: sha512-7zIp3LrcWbhGuFDTUMLJ2FJvcwjlddqhWGxi/MW3ur1a+HaO8v5tF2nl+vElKmbG1DFLU/52l3PElVcWf/YcsQ==} + + '@mongodb-js/saslprep@1.4.4': + resolution: {integrity: sha512-p7X/ytJDIdwUfFL/CLOhKgdfJe1Fa8uw9seJYvdOmnP9JBWGWHW69HkOixXS6Wy9yvGf1MbhcS6lVmrhy4jm2g==} + + '@napi-rs/canvas-android-arm64@0.1.86': + resolution: {integrity: sha512-IjkZFKUr6GzMzzrawJaN3v+yY3Fvpa71e0DcbePfxWelFKnESIir+XUcdAbim29JOd0JE0/hQJdfUCb5t/Fjrw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/canvas-darwin-arm64@0.1.86': + resolution: {integrity: sha512-PUCxDq0wSSJbtaOqoKj3+t5tyDbtxWumziOTykdn3T839hu6koMaBFpGk9lXpsGaPNgyFpPqjxhtsPljBGnDHg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/canvas-darwin-x64@0.1.86': + resolution: {integrity: sha512-rlCFLv4Rrg45qFZq7mysrKnsUbMhwdNg3YPuVfo9u4RkOqm7ooAJvdyDFxiqfSsJJTqupYqa9VQCUt8WKxKhNQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.86': + resolution: {integrity: sha512-6xWwyMc9BlDBt+9XHN/GzUo3MozHta/2fxQHMb80x0K2zpZuAdDKUYHmYzx9dFWDY3SbPYnx6iRlQl6wxnwS1w==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/canvas-linux-arm64-gnu@0.1.86': + resolution: {integrity: sha512-r2OX3w50xHxrToTovOSQWwkVfSq752CUzH9dzlVXyr8UDKFV8dMjfa9hePXvAJhN3NBp4TkHcGx15QCdaCIwnA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/canvas-linux-arm64-musl@0.1.86': + resolution: {integrity: sha512-jbXuh8zVFUPw6a9SGpgc6EC+fRbGGyP1NFfeQiVqGLs6bN93ROtPLPL6MH9Bp6yt0CXUFallk2vgKdWDbmW+bw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@napi-rs/canvas-linux-riscv64-gnu@0.1.86': + resolution: {integrity: sha512-9IwHR2qbq2HceM9fgwyL7x37Jy3ptt1uxvikQEuWR0FisIx9QEdt7F3huljCky76aoouF2vSd0R2fHo3ESRoPw==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + + '@napi-rs/canvas-linux-x64-gnu@0.1.86': + resolution: {integrity: sha512-Jor+rhRN6ubix+D2QkNn9XlPPVAYl+2qFrkZ4oZN9UgtqIUZ+n+HljxhlkkDFRaX1mlxXOXPQjxaZg17zDSFcQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/canvas-linux-x64-musl@0.1.86': + resolution: {integrity: sha512-A28VTy91DbclopSGZ2tIon3p8hcVI1JhnNpDpJ5N9rYlUnVz1WQo4waEMh+FICTZF07O3coxBNZc4Vu4doFw7A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@napi-rs/canvas-win32-arm64-msvc@0.1.86': + resolution: {integrity: sha512-q6G1YXUt3gBCAS2bcDMCaBL4y20di8eVVBi1XhjUqZSVyZZxxwIuRQHy31NlPJUCMiyNiMuc6zeI0uqgkWwAmA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/canvas-win32-x64-msvc@0.1.86': + resolution: {integrity: sha512-X0g46uRVgnvCM1cOjRXAOSFSG63ktUFIf/TIfbKCUc7QpmYUcHmSP9iR6DGOYfk+SggLsXoJCIhPTotYeZEAmg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/canvas@0.1.86': + resolution: {integrity: sha512-hOkywnrkdFdVpsuaNsZWfEY7kc96eROV2DuMTTvGF15AZfwobzdG2w0eDlU5UBx3Lg/XlWUnqVT5zLUWyo5h6A==} + engines: {node: '>= 10'} + + '@napi-rs/wasm-runtime@1.0.7': + resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + + '@napi-rs/wasm-runtime@1.1.0': + resolution: {integrity: sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@open-wc/dedupe-mixin@2.0.1': + resolution: {integrity: sha512-+R4VxvceUxHAUJXJQipkkoV9fy10vNo+OnUnGKZnVmcwxMl460KLzytnUM4S35SI073R0yZQp9ra0MbPUwVcEA==} + + '@open-wc/scoped-elements@3.0.6': + resolution: {integrity: sha512-w1ayJaUUmBw8tALtqQ6cBueld+op+bufujzbrOdH0uCTXnSQkONYZzOH+9jyQ8auVgKLqcxZ8oU6SzfqQhQkPg==} + + '@open-wc/semantic-dom-diff@0.20.1': + resolution: {integrity: sha512-mPF/RPT2TU7Dw41LEDdaeP6eyTOWBD4z0+AHP4/d0SbgcfJZVRymlIB6DQmtz0fd2CImIS9kszaMmwMt92HBPA==} + + '@open-wc/testing-helpers@3.0.1': + resolution: {integrity: sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==} + + '@open-wc/testing@4.0.0': + resolution: {integrity: sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==} + + '@oxc-project/types@0.99.0': + resolution: {integrity: sha512-LLDEhXB7g1m5J+woRSgfKsFPS3LhR9xRhTeIoEBm5WrkwMxn6eZ0Ld0c0K5eHB57ChZX6I3uSmmLjZ8pcjlRcw==} + + '@pdf-lib/standard-fonts@1.0.0': + resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==} + + '@pdf-lib/upng@1.0.1': + resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} + + '@peculiar/asn1-cms@2.6.0': + resolution: {integrity: sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==} + + '@peculiar/asn1-csr@2.6.0': + resolution: {integrity: sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==} + + '@peculiar/asn1-ecc@2.6.0': + resolution: {integrity: sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==} + + '@peculiar/asn1-pfx@2.6.0': + resolution: {integrity: sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==} + + '@peculiar/asn1-pkcs8@2.6.0': + resolution: {integrity: sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==} + + '@peculiar/asn1-pkcs9@2.6.0': + resolution: {integrity: sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==} + + '@peculiar/asn1-rsa@2.6.0': + resolution: {integrity: sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==} + + '@peculiar/asn1-schema@2.6.0': + resolution: {integrity: sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==} + + '@peculiar/asn1-x509-attr@2.6.0': + resolution: {integrity: sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==} + + '@peculiar/asn1-x509@2.6.0': + resolution: {integrity: sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==} + + '@peculiar/x509@1.14.2': + resolution: {integrity: sha512-r2w1Hg6pODDs0zfAKHkSS5HLkOLSeburtcgwvlLLWWCixw+MmW3U6kD5ddyvc2Y2YdbGuVwCF2S2ASoU1cFAag==} + engines: {node: '>=22.0.0'} + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + engines: {node: '>=12'} + + '@puppeteer/browsers@2.11.0': + resolution: {integrity: sha512-n6oQX6mYkG8TRPuPXmbPidkUbsSRalhmaaVAQxvH1IkQy63cwsH+kOjB3e4cpCDHg0aSvsiX9bQ4s2VB6mGWUQ==} + engines: {node: '>=18'} + hasBin: true + + '@push.rocks/consolecolor@2.0.3': + resolution: {integrity: sha512-hA+m0BMqEwZNSAS7c2aQFfoPkpX/dNdsHzkdLdeERUOy7BLacb9ItTUofGtjtginP0yDj4NSpqSjNYyX3Y8Y/w==} + + '@push.rocks/early@4.0.4': + resolution: {integrity: sha512-ak6/vqZ1PlFV08fSFQ6UwiBrr+K6IsfieZWWzT7eex1Ls6GvWEi8wZ3REFDPJq/qckNLWSgEy0EsqzRtltkaCA==} + + '@push.rocks/isohash@2.0.1': + resolution: {integrity: sha512-UulhEui8O9Ei9fSqTldsB73TUmAFNqEBk82tHsJSLLpNK9gJZQE82iaSNsQUakoUQ2c9KueueMfwC3IoDaYRrQ==} + + '@push.rocks/isounique@1.0.5': + resolution: {integrity: sha512-Z0BVqZZOCif1THTbIKWMgg0wxCzt9CyBtBBqQJiZ+jJ0KlQFrQHNHrPt81/LXe/L4x0cxWsn0bpL6W5DNSvNLw==} + + '@push.rocks/levelcache@3.2.0': + resolution: {integrity: sha512-Ch0Oguta2I0SVi704kHghhBcgfyfS92ua1elRu9d8X1/9LMRYuqvvBAnyXyFxQzI3S8q8QC6EkRdd8CAAYSzRg==} + + '@push.rocks/lik@6.2.2': + resolution: {integrity: sha512-j64FFPPyMXeeUorjKJVF6PWaJUfiIrF3pc41iJH4lOh0UUpBAHpcNzHVxTR58orwbVA/h3Hz+DQd4b1Rq0dFDQ==} + + '@push.rocks/mongodump@1.1.0': + resolution: {integrity: sha512-kW0ZUGyf1e4nwloVwBQjNId+MzgTcNS834C+RxH21i1NqyOubbpWZtJtPP+K+s35nSJRyCTy3ICfBMdDBTAm2w==} + + '@push.rocks/npmextra@5.3.3': + resolution: {integrity: sha512-snLpSHwaQ5OXlZzF1KX/FY71W5LwajjBzor82Vue0smjEPnSeUPY5/JcVdMwtdprdJe13pc/EQQuIiL/zw4/yg==} + + '@push.rocks/qenv@6.1.3': + resolution: {integrity: sha512-+z2hsAU/7CIgpYLFqvda8cn9rUBMHqLdQLjsFfRn5jPoD7dJ5rFlpkbhfM4Ws8mHMniwWaxGKo+q/YBhtzRBLg==} + + '@push.rocks/smartarchive@4.2.4': + resolution: {integrity: sha512-uiqVAXPxmr8G5rv3uZvZFMOCt8l7cZC3nzvsy4YQqKf/VkPhKIEX+b7LkAeNlxPSYUiBQUkNRoawg9+5BaMcHg==} + + '@push.rocks/smartbrowser@2.0.8': + resolution: {integrity: sha512-0KWRZj3TuKo/sNwgPbiSE6WL+TMeR19t1JmXBZWh9n8iA2mpc4HhMrQAndEUdRCkx5ofSaHWojIRVFzGChj0Dg==} + + '@push.rocks/smartbucket@3.3.10': + resolution: {integrity: sha512-0H2MioALspC8Aj0Q1FPCs2w4k2u9oJg7Q5yM8+1TZo7aRfrdxgM5HQ7z3apUaqC3ZEDewW6vSlttjHFHhMEC3A==} + + '@push.rocks/smartbucket@4.3.0': + resolution: {integrity: sha512-4nstzEduCKou4R5ekKH6kUjDZXWfrtjA1hIQ4MJmTbtncmm2+4+ixjaFThS2nS8Aa+fHcBgOtKkBv8wTsgvK/Q==} + + '@push.rocks/smartbuffer@3.0.5': + resolution: {integrity: sha512-pWYF08Mn8s/KF/9nHRk7pZPzuMjmYVQay2c5gGexdayxn1W4eCSYYhWH73vR2JBfGeGq/izbRNuUuEaIEeTIKA==} + + '@push.rocks/smartcache@1.0.18': + resolution: {integrity: sha512-3+cmLu9chbnmi4yD4kjlFP/Tn4NReaZIoicEcGTtwbcokTrSDMs3YPdJzIpDZkAs83PW7OcVSHa3Ak5KU5OWzA==} + + '@push.rocks/smartchok@1.2.0': + resolution: {integrity: sha512-I5fR++k6nR1wiMQUwcTYzO0g8FwD6gN+3HwfIzpQlolrM91i6Q5TaoMlt3aysbvKCSNvkL3FlJLOfUHNGWoWkA==} + deprecated: This package has been renamed. Please use @push.rocks/smartwatch instead. + + '@push.rocks/smartcli@4.0.19': + resolution: {integrity: sha512-s1jZSgDZWi/az26AY4TJ2HPuG1qZzGC5R9fKWaECLmwnSpk6y9JXL5dnJAUohcdu50kdXCWEcRmLfYxOt81vEA==} + + '@push.rocks/smartclickhouse@2.0.17': + resolution: {integrity: sha512-IYO8Obor/Ruam2KQ2B/+5uQ+rL0exU5KZoSgOc3jkkrfjn+zZenN2xoV8lVqavAtxZVfG7MfxFrcv6I7I9ZMmA==} + + '@push.rocks/smartcrypto@2.0.4': + resolution: {integrity: sha512-1+/5bsjyataf5uUkUNnnVXGRAt+gHVk1KDzozjTqgqJxHvQk1d9fVDohL6CxUhUucTPtu5VR5xNBiV8YCDuGyw==} + + '@push.rocks/smartdata@5.16.7': + resolution: {integrity: sha512-bu/YSIjQcwxWXkAsuhqE6zs7eT+bTIKV8+/H7TbbjpzeioLCyB3dZ/41cLZk37c/EYt4d4GHgZ0ww80OiKOUMg==} + + '@push.rocks/smartdelay@3.0.5': + resolution: {integrity: sha512-mUuI7kj2f7ztjpic96FvRIlf2RsKBa5arw81AHNsndbxO6asRcxuWL8dTVxouEIK8YsBUlj0AsrCkHhMbLQdHw==} + + '@push.rocks/smartdns@7.6.1': + resolution: {integrity: sha512-nnP5+A2GOt0WsHrYhtKERmjdEHUchc+QbCCBEqlyeQTn+mNfx2WZvKVI1DFRJt8lamvzxP6Hr/BSe3WHdh4Snw==} + + '@push.rocks/smartenv@5.0.13': + resolution: {integrity: sha512-ACXmUcHZHl2CF2jnVuRw9saRRrZvJblCRs2d+K5aLR1DfkYFX3eA21kcMlKeLisI3aGNbIj9vz/rowN5qkRkfA==} + + '@push.rocks/smartenv@6.0.0': + resolution: {integrity: sha512-ktW5MqOFs0492sB4vrvl4lgRFQ/sQ4AyREgB+sCIzGqszHWGVvGXR95Y2a3z66jkLPYML2CUWHzmMlfv8fkG+A==} + + '@push.rocks/smarterror@2.0.1': + resolution: {integrity: sha512-iCcH1D8tlDJgMFsaJ6lhdOTKhbU0KoprNv9MRP9o7691QOx4JEDXiHtr/lNtxVo8BUtdb9CF6kazaknO9KuORA==} + + '@push.rocks/smartexit@1.1.0': + resolution: {integrity: sha512-GD8VLIbxQuwvhPXwK4eH162XAYSj+M3wGKWGNO3i1iY4bj8P3BARcgsWx6/ntN3aCo5ygWtrevrfD5iecYY2Ng==} + + '@push.rocks/smartexpect@2.5.0': + resolution: {integrity: sha512-yoyuCoQ3tTiAriuvF+/09fNbVfFnacudL2SwHSzPhX/ugaE7VTSWXQ9A34eKOWvil0MPyDcOY36fVZDxvrPd8A==} + + '@push.rocks/smartfeed@1.4.0': + resolution: {integrity: sha512-bvj/3cGQI6TbbjbqrgC1uufcqprd/VthefuIsS8KHiHyCqYD5Z6RTjrbQY9WOCsmub/dcuMavfXQZqe9g2+OrQ==} + + '@push.rocks/smartfile-interfaces@1.0.7': + resolution: {integrity: sha512-MeOl/200UOvSO4Pgq/DVFiBVZpL9gjOBQM+4XYNjSxda8c6VBvchHAntaFLQUlO8U1ckNaP9i+nMO4O4/0ymyw==} + + '@push.rocks/smartfile@11.2.7': + resolution: {integrity: sha512-8Yp7/sAgPpWJBHohV92ogHWKzRomI5MEbSG6b5W2n18tqwfAmjMed0rQvsvGrSBlnEWCKgoOrYIIZbLO61+J0Q==} + + '@push.rocks/smartfile@13.1.2': + resolution: {integrity: sha512-DaEhwmnGEpX4coeeToaw4cZe3pNBhH7CY1iGr+d3pIXihozREvzzAR9/0i2r7bUXXL5+Lgy8YYIk5ZS+fwxMKA==} + + '@push.rocks/smartfs@1.3.1': + resolution: {integrity: sha512-ZSduVS8tM+/erbyCTvRRvc9gLWwbpqN5xdIIkMr+gub7fowSeJb7tR2rnGwySa63DyimU0q2KTp79VV9YqGLeg==} + + '@push.rocks/smartguard@3.1.0': + resolution: {integrity: sha512-J23q84f1O+TwFGmd4lrO9XLHUh2DaLXo9PN/9VmTWYzTkQDv5JehmifXVI0esophXcCIfbdIu6hbt7/aHlDF4A==} + + '@push.rocks/smarthash@3.2.6': + resolution: {integrity: sha512-Mq/WNX0Tjjes3X1gHd/ZBwOOKSrAG/Z3Xoc0OcCm3P20WKpniihkMpsnlE7wGjvpHLi/ZRe/XkB3KC3d5r9X4g==} + + '@push.rocks/smarti18n@1.0.4': + resolution: {integrity: sha512-bHIi9Iuzp2cbux9q79ZK5jOQYPsYJ9zDDS4p/xEPQH31gr0mcFRosLSQb1kvDQDVmUhI0ADlQMqr2ui9zEXQHA==} + + '@push.rocks/smartjson@5.2.0': + resolution: {integrity: sha512-710e8UwovRfPgUtaBHcd6unaODUjV5fjxtGcGCqtaTcmvOV6VpasdVfT66xMDzQmWH2E9ZfHDJeso9HdDQzNQA==} + + '@push.rocks/smartlog-destination-devtools@1.0.12': + resolution: {integrity: sha512-zvsIkrqByc0JRaBgIyhh+PSz2SY/e/bmhZdUcr/OW6pudgAcqe2sso68EzrKux0w9OMl1P9ZnzF3FpCZPFWD/A==} + + '@push.rocks/smartlog-destination-local@9.0.2': + resolution: {integrity: sha512-htzIY+4+hU61Z2J4Oz+IHnAB3RGe+fpS0VKCKnAoppZqzMWnJ3UOgYIyr4djDBy2WtgpXV/16KdisKrOmwuuvw==} + + '@push.rocks/smartlog-interfaces@3.0.2': + resolution: {integrity: sha512-8hGRTJehbsFSJxLhCQkA018mZtXVPxPTblbg9VaE/EqISRzUw+eosJ2EJV7M4Qu0eiTJZjnWnNLn8CkD77ziWw==} + + '@push.rocks/smartlog@3.1.10': + resolution: {integrity: sha512-5pf5JyzOE2WTCUislNIW4EHePo1a7hiXB+jbil38+N5hW71AEwcPFe6oGxbp5w9ALlz66hV2+E+25R0SsxN+fQ==} + + '@push.rocks/smartmanifest@2.0.2': + resolution: {integrity: sha512-QGc5C9vunjfUbYsPGz5bynV/mVmPHkrQDkWp8ZO8VJtK1GZe+njgbrNyxn2SUHR0IhSAbSXl1j4JvBqYf5eTVg==} + + '@push.rocks/smartmarkdown@3.0.3': + resolution: {integrity: sha512-9KhKZxDQKPk4P/2CYdVqJa5dpGfTA8w1cxqoVZL3e8RPA7EGxbdYEqMp0n2d9mth0btk/m0KHHV+G09LfCVeBw==} + + '@push.rocks/smartmatch@2.0.0': + resolution: {integrity: sha512-MBzP++1yNIBeox71X6VxpIgZ8m4bXnJpZJ4nWVH6IWpmO38MXTu4X0QF8tQnyT4LFcwvc9iiWaD15cstHa7Mmw==} + + '@push.rocks/smartmime@2.0.4': + resolution: {integrity: sha512-mG6lRBLr5nF+GLZmgCcdjhdDsmTtJWBFZDCa1eJ8Au9TvUzbPW0fY5aqJBb3UwfyZzH6St8Th9cJSXjagOQkYA==} + + '@push.rocks/smartmongo@2.0.14': + resolution: {integrity: sha512-fvfPeCDDy5JaDBpVnsMKednsOoRzuYC0OszO8OoLOX/RaR755zIbRppCCK8Cez0hqd6eNkJGQeWdX/vXlJOPBA==} + + '@push.rocks/smartnetwork@4.4.0': + resolution: {integrity: sha512-OvFtz41cvQ7lcXwaIOhghNUUlNoMxvwKDctbDvMyuZyEH08SpLjhyv2FuKbKL/mgwA/WxakTbohoC8SW7t+kiw==} + + '@push.rocks/smartnpm@2.0.6': + resolution: {integrity: sha512-7anKDOjX6gXWs1IAc+YWz9ZZ8gDsTwaLh+CxRnGHjAawOmK788NrrgVCg2Fb3qojrPnoxecc46F8Ivp1BT7Izw==} + + '@push.rocks/smartntml@2.0.8': + resolution: {integrity: sha512-LIYeOQbmav2m2kZQz4pGS74xvWAm4YAGQnbPkofA2oas4RW9SGR1JTRpFd9pxGCOXd6djYdNGsZZ/xz+k/vRPQ==} + + '@push.rocks/smartobject@1.0.12': + resolution: {integrity: sha512-xSMiqXiZXXUOixT3QIPsOUKOWjL3YA/1h9/YTiCzqs5C0D3tyfTbojnfcp6YbKZoBzans2I5LghaDHsGid2DKQ==} + + '@push.rocks/smartopen@2.0.0': + resolution: {integrity: sha512-eVT0GhtQ2drb95j/kktYst/Toh1zCwCqjTJFYtaYFUnnBnBUajPtBZDFnPQo01DN8JxoeCTo8jggq+PCvzcfww==} + + '@push.rocks/smartpath@5.1.0': + resolution: {integrity: sha512-pJ4UGATHV/C6Dw5DU0D3MJaPMASlKAgeS+Hl9dkhD2ceYArn86Ky3Z/g7LNj40Oz6cUe77/AP1chztmJZISrpw==} + + '@push.rocks/smartpath@6.0.0': + resolution: {integrity: sha512-r94u1MbBaIOSy+517PZp2P7SuZPSe9LkwJ8l3dXQKHeIOri/zDxk/RQPiFM+j4N9301ztkRyhvRj7xgUDroOsg==} + + '@push.rocks/smartpdf@3.3.0': + resolution: {integrity: sha512-k4mBZAIl/TVBHDYQXaBZAgC8DdmHXsIZ3hRrLY3ysLr143YJ1VkwqQ2poqWh3A2SZQDrVfpKRYliUtjFRFrYVw==} + + '@push.rocks/smartping@1.0.8': + resolution: {integrity: sha512-Fvx1Db6hSsDOI6pdiCuS9GjtOX8ugx865YQrPg5vK2iw6Qj/srwyXcWLFYt+19WVKtvtWDJIAKbW+q3bXFsCeA==} + + '@push.rocks/smartpromise@4.2.3': + resolution: {integrity: sha512-Ycg/TJR+tMt+S3wSFurOpEoW6nXv12QBtKXgBcjMZ4RsdO28geN46U09osPn9N9WuwQy1PkmTV5J/V4F9U8qEw==} + + '@push.rocks/smartpuppeteer@2.0.5': + resolution: {integrity: sha512-yK/qSeWVHIGWRp3c8S5tfdGP6WCKllZC4DR8d8CQlEjszOSBmHtlTdyyqOMBZ/BA4kd+eU5f3A1r4K2tGYty1g==} + + '@push.rocks/smartrequest@2.1.0': + resolution: {integrity: sha512-3eHLTRInHA+u+W98TqJwgTES7rRimBAsJC4JxVNQC3UUezmblAhM5/TIQsEBQTsbjAY8SeQKy6NHzW6iTiaD8w==} + + '@push.rocks/smartrequest@4.4.2': + resolution: {integrity: sha512-Om4y1Ce4YdSu8VoXREz2SgFz9pDxcFEm0+SC1YYa3RXd0AH2Mknaj/1XfvfMqojnK9L7N2z1fY4xX8tO1IwqFQ==} + + '@push.rocks/smartrequest@5.0.1': + resolution: {integrity: sha512-gZQQF6HVt3LwTBxaPh6hHObd4VF76PUYQcs5pHD7f0VXaEewmrNAQSnccoinOY7fi45+0dOf04PJOXu9MibPzQ==} + + '@push.rocks/smartrouter@1.3.3': + resolution: {integrity: sha512-1+xZEnWlhzqLWAaJ1zFNhQ0zgbfCWQl1DBT72LygLxTs+P0K8AwJKgqo/IX6CT55kGCFnPAZIYSbVJlGsgrB0w==} + + '@push.rocks/smartrx@3.0.10': + resolution: {integrity: sha512-USjIYcsSfzn14cwOsxgq/bBmWDTTzy3ouWAnW5NdMyRRzEbmeNrvmy6TRqNeDlJ2PsYNTt1rr/zGUqvIy72ITg==} + + '@push.rocks/smarts3@2.2.7': + resolution: {integrity: sha512-9ZXGMlmUL2Wd+YJO0xOB8KyqPf4V++fWJvTq4s76bnqEuaCr9OLfq6czhban+i4cD3ZdIjehfuHqctzjuLw8Jw==} + + '@push.rocks/smarts3@3.0.3': + resolution: {integrity: sha512-Y9nXMwurthJ9Z7yi0RwjhPFUC58aY8Mhia8kFo6Xj1tBM4LE8Oxg/ydejF7otHqQGr3QyqV5C4YrDEG17rUuzg==} + + '@push.rocks/smartserve@1.4.0': + resolution: {integrity: sha512-cEoXZQSBX3pOv9AyhxRPkrMAWzs2XQhTBmW95BFtTSNzZdji0XgqUu92p7iuF+NVuTFX1QZ8+dbCClLCoRRW7g==} + + '@push.rocks/smartshell@3.3.0': + resolution: {integrity: sha512-m0w618H6YBs+vXGz1CgS4nPi5CUAnqRtckcS9/koGwfcIx1IpjqmiP47BoCTbdgcv0IPUxQVBG1IXTHPuZ8Z5g==} + + '@push.rocks/smartsitemap@2.0.4': + resolution: {integrity: sha512-76dYWG/o/EjV4vYCK7ZKM35T9xgrI+oHEiiIE6E2MDaFIU6QnSfciTfbscH5nc0vxx8Ah+I0HPEJO94BM2S39w==} + + '@push.rocks/smartsocket@2.1.0': + resolution: {integrity: sha512-etOGyfiDFQz/1WJnD3jFL2N7ykujTjiudAz6qZTz82xE5oabKuKX+Cn8SdM9dOwzyWmBUKbUdll8QhovAXjn+g==} + + '@push.rocks/smartspawn@3.0.3': + resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==} + + '@push.rocks/smartstate@2.0.27': + resolution: {integrity: sha512-q4UKir7GV3hakJWXQR4DoA4tUVwT5GRkJ/MtanHYF0wZLHfS19+nGmyO9y974zk3eT9hmy3+Lq5cKtU2W6+Y3w==} + + '@push.rocks/smartstream@3.2.5': + resolution: {integrity: sha512-PLGGIFDy8JLNVUnnntMSIYN4W081YSbNC7Y/sWpvUT8PAXtbEXXUiDFgK5o3gcI0ptpKQxHAwxhzNlPj0sbFVg==} + + '@push.rocks/smartstring@4.1.0': + resolution: {integrity: sha512-Q4py/Nm3KTDhQ9EiC75yBtSTLR0KLMwhKM+8gGcutgKotZT6wJ3gncjmtD8LKFfNhb4lSaFMgPJgLrCHTOH6Iw==} + + '@push.rocks/smarttime@4.1.1': + resolution: {integrity: sha512-Ha/3J/G+zfTl4ahpZgF6oUOZnUjpLhrBja0OQ2cloFxF9sKT8I1COaSqIfBGDtoK2Nly4UD4aTJ3JcJNOg/kgA==} + + '@push.rocks/smartunique@3.0.9': + resolution: {integrity: sha512-q6DYQgT7/dqdWi9HusvtWCjdsFzLFXY9LTtaZV6IYNJt6teZOonoygxTdNt9XLn6niBSbLYrHSKvJNTRH/uK+g==} + + '@push.rocks/smarturl@3.1.0': + resolution: {integrity: sha512-ij73Q4GERojdPSHxAvYKvspimcpAJC6GGQCWsC4b+1sAiOSByjfmkUHK8yiEEOPRU9AeGuyaIVqK6ZzKLEZ3vA==} + + '@push.rocks/smartversion@3.0.5': + resolution: {integrity: sha512-8MZSo1yqyaKxKq0Q5N188l4un++9GFWVbhCAX5mXJwewZHn97ujffTeL+eOQYpWFTEpUhaq1QhL4NhqObBCt1Q==} + + '@push.rocks/smartwatch@6.3.0': + resolution: {integrity: sha512-TeZ1PGBoBMpC4/CK8StIj5InEiFfKp7xWJSm3aYMjB/uaoeRP0vXqv1ORIC/TKYGJuEDuAXUsit8tZVjn0qT1Q==} + engines: {node: '>=20.0.0'} + + '@push.rocks/smartxml@2.0.0': + resolution: {integrity: sha512-1d06zYJX4Zt8s5w5qFOUg2LAEz9ykrh9d6CQPK4WAgOBIefb1xzVEWHc7yoxicc2OkzNgC3IBCEg3s6BncZKWw==} + + '@push.rocks/smartyaml@2.0.5': + resolution: {integrity: sha512-tBcf+HaOIfeEsTMwgUZDtZERCxXQyRsWO8Ar5DjBdiSRchbhVGZQEBzXswMS0W5ZoRenjgPK+4tPW3JQGRTfbg==} + + '@push.rocks/smartyaml@3.0.4': + resolution: {integrity: sha512-1JRt+hnoc2zHw3AW+vXKlCdSVwqOmY/01fu+2HBviS0UDjoZCa+/rp6E3GaQb5lEEafKi8ENbffAfjXXp3N2xQ==} + + '@push.rocks/tapbundle@6.0.3': + resolution: {integrity: sha512-SuP14V6TPdtd1y1CYTvwTKJdpHa7EzY55NfaaEMxW4oRKvHgJiOiPEiR/IrtL9tSiDMSfrx12waTMgZheYaBug==} + + '@push.rocks/taskbuffer@3.5.0': + resolution: {integrity: sha512-Y9WwIEIyp6oVFdj06j84tfrZIvjhbMb3DF52rYxlTeYLk3W7RPhSg1bGPCbtkXWeKdBrSe37V90BkOG7Qq8Pqg==} + + '@push.rocks/webrequest@3.0.37': + resolution: {integrity: sha512-fLN7kP6GeHFxE4UH4r9C9pjcQb0QkJxHeAMwXvbOqB9hh0MFNKhtGU7GoaTn8SVRGRMPc9UqZVNwo6u5l8Wn0A==} + + '@push.rocks/webrequest@4.0.1': + resolution: {integrity: sha512-I60XZZLVf8W5I7YdmUVVu4G92teE3rg3/aKaV00BRg8vJ3VXx3wc59Qj4em7zxQ5o0HvL8m1Aezw3RFMDPyVgA==} + + '@push.rocks/websetup@3.0.19': + resolution: {integrity: sha512-iKJDwXdMmQdu5siOIgziPRxM51lN1AU9HOr+yMteu1YMDkZT7HKCyisDAr4gC9WZ9a7FzsG8zgthm4dMeA8NTw==} + + '@push.rocks/webstore@2.0.20': + resolution: {integrity: sha512-Z3L4OHGcw/Gs9aXpMUwebEPTh0nK/C7R6YwPfCLcGVu9yd/ZShaQ8QZEYE243Cu9J1Mn+CEtz4jpPLnHiizHQA==} + + '@push.rocks/webstream@1.0.10': + resolution: {integrity: sha512-45CcR0I4/9v0qSjLvz2dYTGMkR0YP3x66ItpStdad5hidJm86t1lfHF06d0oiEvJTpvQkeyIX/8YKAumf21d/Q==} + + '@pushrocks/isounique@1.0.5': + resolution: {integrity: sha512-XYeoKGkmIdsWX64NlPA1fuA41n/1bQ7LdYXytlU/QqYeW7ojgA0ARRhBSh/2phL6o0Jpw6K/7gJ8jc7ab/Tc+w==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/isounique + + '@pushrocks/smartdelay@3.0.1': + resolution: {integrity: sha512-I+i/QhC6kLsXsWyW19UgD1vH2r1YWVxK19VMxt2CEuvxMyC6tuCd0vqud9vv5JxaxsJwxWlOsrURkgL4tXeILQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartdelay + + '@pushrocks/smartenv@5.0.5': + resolution: {integrity: sha512-VWON1OJ4qV2/9hzJbgRquRekaO9am3b8W82tgCwgO6LBg23ea2tanfd+gESVMbRFduxHVoFLvlhSBcDGM5zsLA==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartenv + + '@pushrocks/smarthash@3.0.2': + resolution: {integrity: sha512-jXW4f8k6iqOQRvkCmXMID1C+qXyNvUMKm7apPETxnO+L172VlzxP1dml0Ey1+vjfpU2luKCteJWX7W95sOdLDg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smarthash + + '@pushrocks/smartjson@5.0.6': + resolution: {integrity: sha512-9OJbnRgLTaCRQz+pqu5tB3ZCqRs5Zh0hnBe7t7URE+TgwIZ8aiELUIbWRkgn4mSGVzHyL6pqTyIowP6AjUCG3w==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartjson + + '@pushrocks/smartpromise@3.1.10': + resolution: {integrity: sha512-VeTurbZ1+ZMxBDJk1Y1LV8SN9xLI+oDXKVeCFw41FAGEKOUEqordqFpi6t+7Vhe/TXUZzCVpZ5bXxAxrGf8yTQ==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise + + '@pushrocks/smartpromise@4.0.2': + resolution: {integrity: sha512-bqorOaGXPOuiOSV81luTKrTghg4O4NBRD0zyv7TIqmrMGf4a0uoozaUMp1X8vQdZW+y0gTzUJP9wkzAE6Cci0g==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise + + '@pushrocks/smartstring@4.0.7': + resolution: {integrity: sha512-TxHSar7Cj29E+GOcIj4DeZKWCNVzHKdqnrBRqcBqLqmeYZvzFosLXpFKoaCJDq7MSxuPoCvu5woSdp9YmPXyog==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartstring + + '@remirror/core-constants@3.0.0': + resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} + + '@rolldown/binding-android-arm64@1.0.0-beta.52': + resolution: {integrity: sha512-MBGIgysimZPqTDcLXI+i9VveijkP5C3EAncEogXhqfax6YXj1Tr2LY3DVuEOMIjWfMPMhtQSPup4fSTAmgjqIw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.0-beta.52': + resolution: {integrity: sha512-MmKeoLnKu1d9j6r19K8B+prJnIZ7u+zQ+zGQ3YHXGnr41rzE3eqQLovlkvoZnRoxDGPA4ps0pGiwXy6YE3lJyg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-beta.52': + resolution: {integrity: sha512-qpHedvQBmIjT8zdnjN3nWPR2qjQyJttbXniCEKKdHeAbZG9HyNPBUzQF7AZZGwmS9coQKL+hWg9FhWzh2dZ2IA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-beta.52': + resolution: {integrity: sha512-dDp7WbPapj/NVW0LSiH/CLwMhmLwwKb3R7mh2kWX+QW85X1DGVnIEyKh9PmNJjB/+suG1dJygdtdNPVXK1hylg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.52': + resolution: {integrity: sha512-9e4l6vy5qNSliDPqNfR6CkBOAx6PH7iDV4OJiEJzajajGrVy8gc/IKKJUsoE52G8ud8MX6r3PMl97NfwgOzB7g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.52': + resolution: {integrity: sha512-V48oDR84feRU2KRuzpALp594Uqlx27+zFsT6+BgTcXOtu7dWy350J1G28ydoCwKB+oxwsRPx2e7aeQnmd3YJbQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.52': + resolution: {integrity: sha512-ENLmSQCWqSA/+YN45V2FqTIemg7QspaiTjlm327eUAMeOLdqmSOVVyrQexJGNTQ5M8sDYCgVAig2Kk01Ggmqaw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.52': + resolution: {integrity: sha512-klahlb2EIFltSUubn/VLjuc3qxp1E7th8ukayPfdkcKvvYcQ5rJztgx8JsJSuAKVzKtNTqUGOhy4On71BuyV8g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.52': + resolution: {integrity: sha512-UuA+JqQIgqtkgGN2c/AQ5wi8M6mJHrahz/wciENPTeI6zEIbbLGoth5XN+sQe2pJDejEVofN9aOAp0kaazwnVg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-openharmony-arm64@1.0.0-beta.52': + resolution: {integrity: sha512-1BNQW8u4ro8bsN1+tgKENJiqmvc+WfuaUhXzMImOVSMw28pkBKdfZtX2qJPADV3terx+vNJtlsgSGeb3+W6Jiw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.52': + resolution: {integrity: sha512-K/p7clhCqJOQpXGykrFaBX2Dp9AUVIDHGc+PtFGBwg7V+mvBTv/tsm3LC3aUmH02H2y3gz4y+nUTQ0MLpofEEg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.52': + resolution: {integrity: sha512-a4EkXBtnYYsKipjS7QOhEBM4bU5IlR9N1hU+JcVEVeuTiaslIyhWVKsvf7K2YkQHyVAJ+7/A9BtrGqORFcTgng==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.52': + resolution: {integrity: sha512-5ZXcYyd4GxPA6QfbGrNcQjmjbuLGvfz6728pZMsQvGHI+06LT06M6TPtXvFvLgXtexc+OqvFe1yAIXJU1gob/w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.52': + resolution: {integrity: sha512-tzpnRQXJrSzb8Z9sm97UD3cY0toKOImx+xRKsDLX4zHaAlRXWh7jbaKBePJXEN7gNw7Nm03PBNwphdtA8KSUYQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-beta.52': + resolution: {integrity: sha512-/L0htLJZbaZFL1g9OHOblTxbCYIGefErJjtYOwgl9ZqNx27P3L0SDfjhhHIss32gu5NWgnxuT2a2Hnnv6QGHKA==} + + '@rspack/binding-darwin-arm64@1.6.8': + resolution: {integrity: sha512-e8CTQtzaeGnf+BIzR7wRMUwKfIg0jd/sxMRc1Vd0bCMHBhSN9EsGoMuJJaKeRrSmy2nwMCNWHIG+TvT1CEKg+A==} + cpu: [arm64] + os: [darwin] + + '@rspack/binding-darwin-x64@1.6.8': + resolution: {integrity: sha512-ku1XpTEPt6Za11zhpFWhfwrTQogcgi9RJrOUVC4FESiPO9aKyd4hJ+JiPgLY0MZOqsptK6vEAgOip+uDVXrCpg==} + cpu: [x64] + os: [darwin] + + '@rspack/binding-linux-arm64-gnu@1.6.8': + resolution: {integrity: sha512-fvZX6xZPvBT8qipSpvkKMX5M7yd2BSpZNCZXcefw6gA3uC7LI3gu+er0LrDXY1PtPzVuHTyDx+abwWpagV3PiQ==} + cpu: [arm64] + os: [linux] + + '@rspack/binding-linux-arm64-musl@1.6.8': + resolution: {integrity: sha512-++XMKcMNrt59HcFBLnRaJcn70k3X0GwkAegZBVpel8xYIAgvoXT5+L8P1ExId/yTFxqedaz8DbcxQnNmMozviw==} + cpu: [arm64] + os: [linux] + + '@rspack/binding-linux-x64-gnu@1.6.8': + resolution: {integrity: sha512-tv3BWkTE1TndfX+DsE1rSTg8fBevCxujNZ3MlfZ22Wfy9x1FMXTJlWG8VIOXmaaJ1wUHzv8S7cE2YUUJ2LuiCg==} + cpu: [x64] + os: [linux] + + '@rspack/binding-linux-x64-musl@1.6.8': + resolution: {integrity: sha512-DCGgZ5/in1O3FjHWqXnDsncRy+48cMhfuUAAUyl0yDj1NpsZu9pP+xfGLvGcQTiYrVl7IH9Aojf1eShP/77WGA==} + cpu: [x64] + os: [linux] + + '@rspack/binding-wasm32-wasi@1.6.8': + resolution: {integrity: sha512-VUwdhl/lI4m6o1OGCZ9JwtMjTV/yLY5VZTQdEPKb40JMTlmZ5MBlr5xk7ByaXXYHr6I+qnqEm73iMKQvg6iknw==} + cpu: [wasm32] + + '@rspack/binding-win32-arm64-msvc@1.6.8': + resolution: {integrity: sha512-23YX7zlOZlub+nPGDBUzktb4D5D6ETUAluKjXEeHIZ9m7fSlEYBnGL66YE+3t1DHXGd0OqsdwlvrNGcyo6EXDQ==} + cpu: [arm64] + os: [win32] + + '@rspack/binding-win32-ia32-msvc@1.6.8': + resolution: {integrity: sha512-cFgRE3APxrY4AEdooVk2LtipwNNT/9mrnjdC5lVbsIsz+SxvGbZR231bxDJEqP15+RJOaD07FO1sIjINFqXMEg==} + cpu: [ia32] + os: [win32] + + '@rspack/binding-win32-x64-msvc@1.6.8': + resolution: {integrity: sha512-cIuhVsZYd3o3Neo1JSAhJYw6BDvlxaBoqvgwRkG1rs0ExFmEmgYyG7ip9pFKnKNWph/tmW3rDYypmEfjs1is7g==} + cpu: [x64] + os: [win32] + + '@rspack/binding@1.6.8': + resolution: {integrity: sha512-lUeL4mbwGo+nqRKqFDCm9vH2jv9FNMVt1X8jqayWRcOCPlj/2UVMEFgqjR7Pp2vlvnTKq//31KbDBJmDZq31RQ==} + + '@rspack/core@1.6.8': + resolution: {integrity: sha512-FolcIAH5FW4J2FET+qwjd1kNeFbCkd0VLuIHO0thyolEjaPSxw5qxG67DA7BZGm6PVcoiSgPLks1DL6eZ8c+fA==} + engines: {node: '>=18.12.0'} + peerDependencies: + '@swc/helpers': '>=0.5.1' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@rspack/lite-tapable@1.1.0': + resolution: {integrity: sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==} + + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@smithy/abort-controller@4.2.7': + resolution: {integrity: sha512-rzMY6CaKx2qxrbYbqjXWS0plqEy7LOdKHS0bg4ixJ6aoGDPNUcLWk/FRNuCILh7GKLG9TFUXYYeQQldMBBwuyw==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader-native@4.2.1': + resolution: {integrity: sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader@5.2.0': + resolution: {integrity: sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==} + engines: {node: '>=18.0.0'} + + '@smithy/config-resolver@4.4.5': + resolution: {integrity: sha512-HAGoUAFYsUkoSckuKbCPayECeMim8pOu+yLy1zOxt1sifzEbrsRpYa+mKcMdiHKMeiqOibyPG0sFJnmaV/OGEg==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.20.0': + resolution: {integrity: sha512-WsSHCPq/neD5G/MkK4csLI5Y5Pkd9c1NMfpYEKeghSGaD4Ja1qLIohRQf2D5c1Uy5aXp76DeKHkzWZ9KAlHroQ==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.2.7': + resolution: {integrity: sha512-CmduWdCiILCRNbQWFR0OcZlUPVtyE49Sr8yYL0rZQ4D/wKxiNzBNS/YHemvnbkIWj623fplgkexUd/c9CAKdoA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.2.7': + resolution: {integrity: sha512-DrpkEoM3j9cBBWhufqBwnbbn+3nf1N9FP6xuVJ+e220jbactKuQgaZwjwP5CP1t+O94brm2JgVMD2atMGX3xIQ==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-browser@4.2.7': + resolution: {integrity: sha512-ujzPk8seYoDBmABDE5YqlhQZAXLOrtxtJLrbhHMKjBoG5b4dK4i6/mEU+6/7yXIAkqOO8sJ6YxZl+h0QQ1IJ7g==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-config-resolver@4.3.7': + resolution: {integrity: sha512-x7BtAiIPSaNaWuzm24Q/mtSkv+BrISO/fmheiJ39PKRNH3RmH2Hph/bUKSOBOBC9unqfIYDhKTHwpyZycLGPVQ==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-node@4.2.7': + resolution: {integrity: sha512-roySCtHC5+pQq5lK4be1fZ/WR6s/AxnPaLfCODIPArtN2du8s5Ot4mKVK3pPtijL/L654ws592JHJ1PbZFF6+A==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-universal@4.2.7': + resolution: {integrity: sha512-QVD+g3+icFkThoy4r8wVFZMsIP08taHVKjE6Jpmz8h5CgX/kk6pTODq5cht0OMtcapUx+xrPzUTQdA+TmO0m1g==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.3.8': + resolution: {integrity: sha512-h/Fi+o7mti4n8wx1SR6UHWLaakwHRx29sizvp8OOm7iqwKGFneT06GCSFhml6Bha5BT6ot5pj3CYZnCHhGC2Rg==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-blob-browser@4.2.8': + resolution: {integrity: sha512-07InZontqsM1ggTCPSRgI7d8DirqRrnpL7nIACT4PW0AWrgDiHhjGZzbAE5UtRSiU0NISGUYe7/rri9ZeWyDpw==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.2.7': + resolution: {integrity: sha512-PU/JWLTBCV1c8FtB8tEFnY4eV1tSfBc7bDBADHfn1K+uRbPgSJ9jnJp0hyjiFN2PMdPzxsf1Fdu0eo9fJ760Xw==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-stream-node@4.2.7': + resolution: {integrity: sha512-ZQVoAwNYnFMIbd4DUc517HuwNelJUY6YOzwqrbcAgCnVn+79/OK7UjwA93SPpdTOpKDVkLIzavWm/Ck7SmnDPQ==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@4.2.7': + resolution: {integrity: sha512-ncvgCr9a15nPlkhIUx3CU4d7E7WEuVJOV7fS7nnK2hLtPK9tYRBkMHQbhXU1VvvKeBm/O0x26OEoBq+ngFpOEQ==} + engines: {node: '>=18.0.0'} + + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} + + '@smithy/is-array-buffer@4.2.0': + resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==} + engines: {node: '>=18.0.0'} + + '@smithy/md5-js@4.2.7': + resolution: {integrity: sha512-Wv6JcUxtOLTnxvNjDnAiATUsk8gvA6EeS8zzHig07dotpByYsLot+m0AaQEniUBjx97AC41MQR4hW0baraD1Xw==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.2.7': + resolution: {integrity: sha512-GszfBfCcvt7kIbJ41LuNa5f0wvQCHhnGx/aDaZJCCT05Ld6x6U2s0xsc/0mBFONBZjQJp2U/0uSJ178OXOwbhg==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.4.1': + resolution: {integrity: sha512-gpLspUAoe6f1M6H0u4cVuFzxZBrsGZmjx2O9SigurTx4PbntYa4AJ+o0G0oGm1L2oSX6oBhcGHwrfJHup2JnJg==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.4.17': + resolution: {integrity: sha512-MqbXK6Y9uq17h+4r0ogu/sBT6V/rdV+5NvYL7ZV444BKfQygYe8wAhDrVXagVebN6w2RE0Fm245l69mOsPGZzg==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.2.8': + resolution: {integrity: sha512-8rDGYen5m5+NV9eHv9ry0sqm2gI6W7mc1VSFMtn6Igo25S507/HaOX9LTHAS2/J32VXD0xSzrY0H5FJtOMS4/w==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@4.2.7': + resolution: {integrity: sha512-bsOT0rJ+HHlZd9crHoS37mt8qRRN/h9jRve1SXUhVbkRzu0QaNYZp1i1jha4n098tsvROjcwfLlfvcFuJSXEsw==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@4.3.7': + resolution: {integrity: sha512-7r58wq8sdOcrwWe+klL9y3bc4GW1gnlfnFOuL7CXa7UzfhzhxKuzNdtqgzmTV+53lEp9NXh5hY/S4UgjLOzPfw==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.4.7': + resolution: {integrity: sha512-NELpdmBOO6EpZtWgQiHjoShs1kmweaiNuETUpuup+cmm/xJYjT4eUjfhrXRP4jCOaAsS3c3yPsP3B+K+/fyPCQ==} + engines: {node: '>=18.0.0'} + + '@smithy/property-provider@4.2.7': + resolution: {integrity: sha512-jmNYKe9MGGPoSl/D7JDDs1C8b3dC8f/w78LbaVfoTtWy4xAd5dfjaFG9c9PWPihY4ggMQNQSMtzU77CNgAJwmA==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@5.3.7': + resolution: {integrity: sha512-1r07pb994I20dD/c2seaZhoCuNYm0rWrvBxhCQ70brNh11M5Ml2ew6qJVo0lclB3jMIXirD4s2XRXRe7QEi0xA==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@4.2.7': + resolution: {integrity: sha512-eKONSywHZxK4tBxe2lXEysh8wbBdvDWiA+RIuaxZSgCMmA0zMgoDpGLJhnyj+c0leOQprVnXOmcB4m+W9Rw7sg==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-parser@4.2.7': + resolution: {integrity: sha512-3X5ZvzUHmlSTHAXFlswrS6EGt8fMSIxX/c3Rm1Pni3+wYWB6cjGocmRIoqcQF9nU5OgGmL0u7l9m44tSUpfj9w==} + engines: {node: '>=18.0.0'} + + '@smithy/service-error-classification@4.2.7': + resolution: {integrity: sha512-YB7oCbukqEb2Dlh3340/8g8vNGbs/QsNNRms+gv3N2AtZz9/1vSBx6/6tpwQpZMEJFs7Uq8h4mmOn48ZZ72MkA==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.4.2': + resolution: {integrity: sha512-M7iUUff/KwfNunmrgtqBfvZSzh3bmFgv/j/t1Y1dQ+8dNo34br1cqVEqy6v0mYEgi0DkGO7Xig0AnuOaEGVlcg==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.3.7': + resolution: {integrity: sha512-9oNUlqBlFZFOSdxgImA6X5GFuzE7V2H7VG/7E70cdLhidFbdtvxxt81EHgykGK5vq5D3FafH//X+Oy31j3CKOg==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.10.2': + resolution: {integrity: sha512-D5z79xQWpgrGpAHb054Fn2CCTQZpog7JELbVQ6XAvXs5MNKWf28U9gzSBlJkOyMl9LA1TZEjRtwvGXfP0Sl90g==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.11.0': + resolution: {integrity: sha512-mlrmL0DRDVe3mNrjTcVcZEgkFmufITfUAPBEA+AHYiIeYyJebso/He1qLbP3PssRe22KUzLRpQSdBPbXdgZ2VA==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@4.2.7': + resolution: {integrity: sha512-/RLtVsRV4uY3qPWhBDsjwahAtt3x2IsMGnP5W1b2VZIe+qgCqkLxI1UOHDZp1Q1QSOrdOR32MF3Ph2JfWT1VHg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-base64@4.3.0': + resolution: {integrity: sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-browser@4.2.0': + resolution: {integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-node@4.2.1': + resolution: {integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-buffer-from@4.2.0': + resolution: {integrity: sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==} + engines: {node: '>=18.0.0'} + + '@smithy/util-config-provider@4.2.0': + resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-browser@4.3.16': + resolution: {integrity: sha512-/eiSP3mzY3TsvUOYMeL4EqUX6fgUOj2eUOU4rMMgVbq67TiRLyxT7Xsjxq0bW3OwuzK009qOwF0L2OgJqperAQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-node@4.2.19': + resolution: {integrity: sha512-3a4+4mhf6VycEJyHIQLypRbiwG6aJvbQAeRAVXydMmfweEPnLLabRbdyo/Pjw8Rew9vjsh5WCdhmDaHkQnhhhA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.2.7': + resolution: {integrity: sha512-s4ILhyAvVqhMDYREeTS68R43B1V5aenV5q/V1QpRQJkCXib5BPRo4s7uNdzGtIKxaPHCfU/8YkvPAEvTpxgspg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-hex-encoding@4.2.0': + resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@4.2.7': + resolution: {integrity: sha512-i1IkpbOae6NvIKsEeLLM9/2q4X+M90KV3oCFgWQI4q0Qz+yUZvsr+gZPdAEAtFhWQhAHpTsJO8DRJPuwVyln+w==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@4.2.7': + resolution: {integrity: sha512-SvDdsQyF5CIASa4EYVT02LukPHVzAgUA4kMAuZ97QJc2BpAqZfA4PINB8/KOoCXEw9tsuv/jQjMeaHFvxdLNGg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.5.8': + resolution: {integrity: sha512-ZnnBhTapjM0YPGUSmOs0Mcg/Gg87k503qG4zU2v/+Js2Gu+daKOJMeqcQns8ajepY8tgzzfYxl6kQyZKml6O2w==} + engines: {node: '>=18.0.0'} + + '@smithy/util-uri-escape@4.2.0': + resolution: {integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@4.2.0': + resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-waiter@4.2.7': + resolution: {integrity: sha512-vHJFXi9b7kUEpHWUCY3Twl+9NPOZvQ0SAi+Ewtn48mbiJk4JY9MZmKQjGB4SCvVb9WPiSphZJYY6RIbs+grrzw==} + engines: {node: '>=18.0.0'} + + '@smithy/uuid@1.1.0': + resolution: {integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==} + engines: {node: '>=18.0.0'} + + '@so-ric/colorspace@1.1.6': + resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + + '@svgdotjs/svg.draggable.js@3.0.6': + resolution: {integrity: sha512-7iJFm9lL3C40HQcqzEfezK2l+dW2CpoVY3b77KQGqc8GXWa6LhhmX5Ckv7alQfUXBuZbjpICZ+Dvq1czlGx7gA==} + peerDependencies: + '@svgdotjs/svg.js': ^3.2.4 + + '@svgdotjs/svg.filter.js@3.0.9': + resolution: {integrity: sha512-/69XMRCDoam2HgC4ldHIaDgeQf1ViHIsa0Ld4uWgiXtZ+E24DWHe/9Ib6kbNiZ7WRIdlVokUDR1Fg0kjIpkfbw==} + engines: {node: '>= 0.8.0'} + + '@svgdotjs/svg.js@3.2.5': + resolution: {integrity: sha512-/VNHWYhNu+BS7ktbYoVGrCmsXDh+chFMaONMwGNdIBcFHrWqk2jY8fNyr3DLdtQUIalvkPfM554ZSFa3dm3nxQ==} + + '@svgdotjs/svg.resize.js@2.0.5': + resolution: {integrity: sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==} + engines: {node: '>= 14.18'} + peerDependencies: + '@svgdotjs/svg.js': ^3.2.4 + '@svgdotjs/svg.select.js': ^4.0.1 + + '@svgdotjs/svg.select.js@4.0.3': + resolution: {integrity: sha512-qkMgso1sd2hXKd1FZ1weO7ANq12sNmQJeGDjs46QwDVsxSRcHmvWKL2NDF7Yimpwf3sl5esOLkPqtV2bQ3v/Jg==} + engines: {node: '>= 14.18'} + peerDependencies: + '@svgdotjs/svg.js': ^3.2.4 + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@tempfix/idb@8.0.3': + resolution: {integrity: sha512-hPJQKO7+oAIY+pDNImrZ9QAINbz9KmwT+yO4iRVwdPanok2YKpaUxdJzIvCUwY0YgAawlvYdffbLvRLV5hbs2g==} + + '@tiptap/core@2.27.1': + resolution: {integrity: sha512-nkerkl8syHj44ZzAB7oA2GPmmZINKBKCa79FuNvmGJrJ4qyZwlkDzszud23YteFZEytbc87kVd/fP76ROS6sLg==} + peerDependencies: + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-blockquote@2.27.1': + resolution: {integrity: sha512-QrUX3muElDrNjKM3nqCSAtm3H3pT33c6ON8kwRiQboOAjT/9D57Cs7XEVY7r6rMaJPeKztrRUrNVF9w/w/6B0A==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-bold@2.27.1': + resolution: {integrity: sha512-g4l4p892x/r7mhea8syp3fNYODxsDrimgouQ+q4DKXIgQmm5+uNhyuEPexP3I8TFNXqQ4DlMNFoM9yCqk97etQ==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-bullet-list@2.27.1': + resolution: {integrity: sha512-5FmnfXkJ76wN4EbJNzBhAlmQxho8yEMIJLchTGmXdsD/n/tsyVVtewnQYaIOj/Z7naaGySTGDmjVtLgTuQ+Sxw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-code-block@2.27.1': + resolution: {integrity: sha512-wCI5VIOfSAdkenCWFvh4m8FFCJ51EOK+CUmOC/PWUjyo2Dgn8QC8HMi015q8XF7886T0KvYVVoqxmxJSUDAYNg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-code@2.27.1': + resolution: {integrity: sha512-i65wUGJevzBTIIUBHBc1ggVa27bgemvGl/tY1/89fEuS/0Xmre+OQjw8rCtSLevoHSiYYLgLRlvjtUSUhE4kgg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-document@2.27.1': + resolution: {integrity: sha512-NtJzJY7Q/6XWjpOm5OXKrnEaofrcc1XOTYlo/SaTwl8k2bZo918Vl0IDBWhPVDsUN7kx767uHwbtuQZ+9I82hA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-dropcursor@2.27.1': + resolution: {integrity: sha512-3MBQRGHHZ0by3OT0CWbLKS7J3PH9PpobrXjmIR7kr0nde7+bHqxXiVNuuIf501oKU9rnEUSedipSHkLYGkmfsA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-gapcursor@2.27.1': + resolution: {integrity: sha512-A9e1jr+jGhDWzNSXtIO6PYVYhf5j/udjbZwMja+wCE/3KvZU9V3IrnGKz1xNW+2Q2BDOe1QO7j5uVL9ElR6nTA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-hard-break@2.27.1': + resolution: {integrity: sha512-W4hHa4Io6QCTwpyTlN6UAvqMIQ7t56kIUByZhyY9EWrg/+JpbfpxE1kXFLPB4ZGgwBknFOw+e4bJ1j3oAbTJFw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-heading@2.27.1': + resolution: {integrity: sha512-6xoC7igZlW1EmnQ5WVH9IL7P1nCQb3bBUaIDLvk7LbweEogcTUECI4Xg1vxMOVmj9tlDe1I4BsgfcKpB5KEsZw==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-history@2.27.1': + resolution: {integrity: sha512-K8PHC9gegSAt0wzSlsd4aUpoEyIJYOmVVeyniHr1P1mIblW1KYEDbRGbDlrLALTyUEfMcBhdIm8zrB9X2Nihvg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-horizontal-rule@2.27.1': + resolution: {integrity: sha512-WxXWGEEsqDmGIF2o9av+3r9Qje4CKrqrpeQY6aRO5bxvWX9AabQCfasepayBok6uwtvNzh3Xpsn9zbbSk09dNA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-italic@2.27.1': + resolution: {integrity: sha512-rcm0GyniWW0UhcNI9+1eIK64GqWQLyIIrWGINslvqSUoBc+WkfocLvv4CMpRkzKlfsAxwVIBuH2eLxHKDtAREA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-link@2.27.1': + resolution: {integrity: sha512-cCwWPZsnVh9MXnGOqSIRXPPuUixRDK8eMN2TvqwbxUBb1TU7b/HtNvfMU4tAOqAuMRJ0aJkFuf3eB0Gi8LVb1g==} + peerDependencies: + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 + + '@tiptap/extension-list-item@2.27.1': + resolution: {integrity: sha512-dtsxvtzxfwOJP6dKGf0vb2MJAoDF2NxoiWzpq0XTvo7NGGYUHfuHjX07Zp0dYqb4seaDXjwsi5BIQUOp3+WMFQ==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-ordered-list@2.27.1': + resolution: {integrity: sha512-U1/sWxc2TciozQsZjH35temyidYUjvroHj3PUPzPyh19w2fwKh1NSbFybWuoYs6jS3XnMSwnM2vF52tOwvfEmA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-paragraph@2.27.1': + resolution: {integrity: sha512-R3QdrHcUdFAsdsn2UAIvhY0yWyHjqGyP/Rv8RRdN0OyFiTKtwTPqreKMHKJOflgX4sMJl/OpHTpNG1Kaf7Lo2A==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-strike@2.27.1': + resolution: {integrity: sha512-S9I//K8KPgfFTC5I5lorClzXk0g4lrAv9y5qHzHO5EOWt7AFl0YTg2oN8NKSIBK4bHRnPIrjJJKv+dDFnUp5jQ==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-text-align@2.27.1': + resolution: {integrity: sha512-D7dLPk7y5mDn9ZNANQ4K2gCq4vy+Emm5AdeWOGzNeqJsYrBotiQYXd9rb1QYjdup2kzAoKduMTUXV92ujo5cEg==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-text-style@2.27.1': + resolution: {integrity: sha512-NagQ9qLk0Ril83gfrk+C65SvTqPjL3WVnLF2arsEVnCrxcx3uDOvdJW67f/K5HEwEHsoqJ4Zq9Irco/koXrOXA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-text@2.27.1': + resolution: {integrity: sha512-a4GCT+GZ9tUwl82F4CEum9/+WsuW0/De9Be/NqrMmi7eNfAwbUTbLCTFU0gEvv25WMHCoUzaeNk/qGmzeVPJ1Q==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-typography@2.27.1': + resolution: {integrity: sha512-jAZU5IuWH9CtZlolQ1gRhV+bT75s19SXjadQwkk18gMMiapcaIVVTxUDWY6ycv9ge4cjRoaP3lqBviW3cGqhOA==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/extension-underline@2.27.1': + resolution: {integrity: sha512-fPTmfJFAQWg1O/os1pYSPVdtvly6eW/w5sDofG7pre+bdQUN+8s1cZYelSuj/ltNVioRaB2Ws7tvNgnHL0aAJQ==} + peerDependencies: + '@tiptap/core': ^2.7.0 + + '@tiptap/pm@2.27.1': + resolution: {integrity: sha512-ijKo3+kIjALthYsnBmkRXAuw2Tswd9gd7BUR5OMfIcjGp8v576vKxOxrRfuYiUM78GPt//P0sVc1WV82H5N0PQ==} + + '@tiptap/starter-kit@2.27.1': + resolution: {integrity: sha512-uQQlP0Nmn9eq19qm8YoOeloEfmcGbPpB1cujq54Q6nPgxaBozR7rE7tXbFTinxRW2+Hr7XyNWhpjB7DMNkdU2Q==} + + '@tokenizer/inflate@0.4.1': + resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} + engines: {node: '>=18'} + + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + + '@tootallnate/quickjs-emscripten@0.23.0': + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + + '@tsclass/tsclass@4.4.4': + resolution: {integrity: sha512-YZOAF+u+r4u5rCev2uUd1KBTBdfyFdtDmcv4wuN+864lMccbdfRICR3SlJwCfYS1lbeV3QNLYGD30wjRXgvCJA==} + + '@tsclass/tsclass@9.3.0': + resolution: {integrity: sha512-KD3oTUN3RGu67tgjNHgWWZGsdYipr1RUDxQ9MMKSgIJ6oNZ4q5m2rg0ibrgyHWkAjTPlHVa6kHP3uVOY+8bnHw==} + + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + + '@types/accepts@1.3.7': + resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + + '@types/babel__code-frame@7.0.6': + resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} + + '@types/bn.js@5.2.0': + resolution: {integrity: sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==} + + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + + '@types/buffer-json@2.0.3': + resolution: {integrity: sha512-ItD4UfF3Q5jA+PEV6ZUWEHvlWaXJbd0rpuBKOIrEebM053FHaJddKsgUf0vy7nLSTs44nqFj3Mh8J3TiT0xv4g==} + + '@types/chai-dom@1.11.3': + resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==} + + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + + '@types/clean-css@4.2.11': + resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} + + '@types/co-body@6.1.3': + resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/content-disposition@0.5.9': + resolution: {integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==} + + '@types/convert-source-map@2.0.3': + resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==} + + '@types/cookies@0.9.2': + resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} + + '@types/cors@2.8.19': + resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + + '@types/debounce@1.2.4': + resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + + '@types/dns-packet@5.6.5': + resolution: {integrity: sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==} + + '@types/elliptic@6.4.18': + resolution: {integrity: sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw==} + + '@types/express-serve-static-core@5.1.0': + resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} + + '@types/express@5.0.6': + resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/html-minifier@4.0.6': + resolution: {integrity: sha512-1Dcf38DkVMYo8SIOkUka7GxI+0BztCVsnfiG2Sxb6G8ShHDQTWQb1WKps/eb3O074HNDCn8wU7LMl5N99nNG+Q==} + + '@types/http-assert@1.5.6': + resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/js-yaml@3.12.10': + resolution: {integrity: sha512-/Mtaq/wf+HxXpvhzFYzrzCqNRcA958sW++7JOFC8nPrZcvfi/TrzOaaGbvt27ltJB2NQbHVAg5a1wUCsyMH7NA==} + + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/keygrip@1.0.6': + resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + + '@types/koa-compose@3.2.9': + resolution: {integrity: sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==} + + '@types/koa@2.15.0': + resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/mime-types@2.1.4': + resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node-forge@1.3.14': + resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} + + '@types/node@25.0.3': + resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==} + + '@types/parse5@6.0.3': + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + + '@types/ping@0.4.4': + resolution: {integrity: sha512-ifvo6w2f5eJYlXm+HiVx67iJe8WZp87sfa683nlqED5Vnt9Z93onkokNoWqOG21EaE8fMxyKPobE+mkPEyxsdw==} + + '@types/qs@6.14.0': + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + + '@types/randomatic@3.1.5': + resolution: {integrity: sha512-VCwCTw6qh1pRRw+5rNTAwqPmf6A+hdrkdM7dBpZVmhl7g+em3ONXlYK/bWPVKqVGMWgP0d1bog8Vc/X6zRwRRQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/relateurl@0.2.33': + resolution: {integrity: sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==} + + '@types/s3rver@3.7.4': + resolution: {integrity: sha512-CMCmdNszxS2FsIznWvBMVCl6fpvr5ueaFCaY0iSoH7Ud5maGcLghukpDvsXBnIcp92cv2HeVnVqI1p8yPcab9Q==} + + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + + '@types/sinon-chai@3.2.12': + resolution: {integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==} + + '@types/sinon@21.0.0': + resolution: {integrity: sha512-+oHKZ0lTI+WVLxx1IbJDNmReQaIsQJjN2e7UUrJHEeByG7bFeKJYsv1E75JxTQ9QKJDp21bAa/0W2Xo4srsDnw==} + + '@types/sinonjs__fake-timers@15.0.1': + resolution: {integrity: sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/symbol-tree@3.2.5': + resolution: {integrity: sha512-zXnnyENt1TYQcS21MkPaJCVjfcPq7p7yc5mo5JACuumXp6sly5jnlS0IokHd+xmmuCbx6V7JqkMBpswR+nZAcw==} + + '@types/tar-stream@3.1.4': + resolution: {integrity: sha512-921gW0+g29mCJX0fRvqeHzBlE/XclDaAG0Ousy1LCghsOhvaKacDeRGEVzQP9IPfKn8Vysy7FEXAIxycpc/CMg==} + + '@types/through2@2.0.41': + resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/turndown@5.0.6': + resolution: {integrity: sha512-ru00MoyeeouE5BX4gRL+6m/BsDfbRayOskWqUvh7CLGW+UXxHQItqALa38kKnOiZPqJrtzJUgAC2+F0rL1S4Pg==} + + '@types/uglify-js@3.17.5': + resolution: {integrity: sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/webidl-conversions@7.0.3': + resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} + + '@types/whatwg-url@11.0.5': + resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==} + + '@types/which@3.0.4': + resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@web/browser-logs@0.4.1': + resolution: {integrity: sha512-ypmMG+72ERm+LvP+loj9A64MTXvWMXHUOu773cPO4L1SV/VWg6xA9Pv7vkvkXQX+ItJtCJt+KQ+U6ui2HhSFUw==} + engines: {node: '>=18.0.0'} + + '@web/dev-server-core@0.7.5': + resolution: {integrity: sha512-Da65zsiN6iZPMRuj4Oa6YPwvsmZmo5gtPWhW2lx3GTUf5CAEapjVpZVlUXnKPL7M7zRuk72jSsIl8lo+XpTCtw==} + engines: {node: '>=18.0.0'} + + '@web/parse5-utils@2.1.0': + resolution: {integrity: sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==} + engines: {node: '>=18.0.0'} + + '@web/test-runner-commands@0.9.0': + resolution: {integrity: sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==} + engines: {node: '>=18.0.0'} + + '@web/test-runner-core@0.13.4': + resolution: {integrity: sha512-84E1025aUSjvZU1j17eCTwV7m5Zg3cZHErV3+CaJM9JPCesZwLraIa0ONIQ9w4KLgcDgJFw9UnJ0LbFf42h6tg==} + engines: {node: '>=18.0.0'} + + '@webcontainer/api@1.2.0': + resolution: {integrity: sha512-tzoKBd4lLdhHy5GHFpUkl+ndoSba8JqmB7x0ZQFnWfjbcbQOvKQfxA8MEMUYhgqjWHnbrWdAfnBEHz5f5lYG5A==} + + '@yr/monotone-cubic-spline@1.0.3': + resolution: {integrity: sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + + acme-client@5.4.0: + resolution: {integrity: sha512-mORqg60S8iML6XSmVjqjGHJkINrCGLMj2QvDmFzI9vIlv1RGlyjmw3nrzaINJjkNsYXC41XhhD5pfy7CtuGcbA==} + engines: {node: '>= 16'} + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + ansi-256-colors@1.1.0: + resolution: {integrity: sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=} + engines: {node: '>=0.10.0'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + apexcharts@5.3.6: + resolution: {integrity: sha512-sVEPw+J0Gp0IHQabKu8cfdsxlfME0e36Wid7RIaPclGM2OUt+O7O4+6mfAmTUYhy5bDk8cNHzEhPfVtLCIXEJA==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + asn1js@3.0.7: + resolution: {integrity: sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==} + engines: {node: '>=12.0.0'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-mutex@0.5.0: + resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} + + axe-core@4.11.0: + resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==} + engines: {node: '>=4'} + + axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} + + b4a@1.7.3: + resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bare-events@2.8.2: + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.5.2: + resolution: {integrity: sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.6.2: + resolution: {integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.7.0: + resolution: {integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==} + peerDependencies: + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.3.2: + resolution: {integrity: sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + + basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + + bn.js@4.12.2: + resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} + + body-parser@2.2.1: + resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==} + engines: {node: '>=18'} + + bowser@2.13.1: + resolution: {integrity: sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + broadcast-channel@7.2.0: + resolution: {integrity: sha512-JgraikEriG/TxBUi2W/w2O0jhHjXZUtXAvCZH0Yr3whjxYVgAg0hSe6r/teM+I5H5Q/q6RhyuKdC2pHNlFyepQ==} + + brorand@1.1.0: + resolution: {integrity: sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=} + + bson@6.10.4: + resolution: {integrity: sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==} + engines: {node: '>=16.20.1'} + + buffer-crc32@0.2.13: + resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} + + buffer-json@2.0.0: + resolution: {integrity: sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + busboy@0.3.1: + resolution: {integrity: sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==} + engines: {node: '>=4.5.0'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cache-content-type@1.0.1: + resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + engines: {node: '>= 6.0.0'} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@3.0.0: + resolution: {integrity: sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai-a11y-axe@1.5.0: + resolution: {integrity: sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + chromium-bidi@12.0.1: + resolution: {integrity: sha512-fGg+6jr0xjQhzpy5N4ErZxQ4wF7KLEvhGZXD6EgvZKDhu7iOhZXnZhcDxPJDcwTcrD48NPzOCo84RP2lv3Z+Cg==} + peerDependencies: + devtools-protocol: '*' + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + clean-css@4.2.4: + resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} + engines: {node: '>= 4.0'} + + clean-stack@1.3.0: + resolution: {integrity: sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=} + engines: {node: '>=4'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone@2.1.2: + resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} + engines: {node: '>=0.8'} + + co-body@6.2.0: + resolution: {integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==} + engines: {node: '>=8.0.0'} + + co@4.6.0: + resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-convert@3.1.3: + resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} + engines: {node: '>=14.6'} + + color-name@1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-name@2.1.0: + resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} + engines: {node: '>=12.20'} + + color-string@2.1.4: + resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} + engines: {node: '>=18'} + + color@5.0.3: + resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} + engines: {node: '>=18'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commondir@1.0.1: + resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} + + concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-disposition@1.0.1: + resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} + engines: {node: '>=18'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + cookies@0.9.1: + resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + engines: {node: '>= 0.8'} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + + croner@9.1.0: + resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} + engines: {node: '>=18.0'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-random-string@5.0.0: + resolution: {integrity: sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==} + engines: {node: '>=14.16'} + + data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} + + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + + dayjs@1.11.19: + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-equal@1.0.1: + resolution: {integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + + delayed-stream@1.0.0: + resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=} + + depd@1.1.2: + resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dependency-graph@0.11.0: + resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} + engines: {node: '>= 0.6.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + devtools-protocol@0.0.1534754: + resolution: {integrity: sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==} + + dicer@0.3.0: + resolution: {integrity: sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==} + engines: {node: '>=4.5.0'} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} + + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + + encodeurl@1.0.2: + resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + engine.io-client@6.6.3: + resolution: {integrity: sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + engine.io@6.6.4: + resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} + engines: {node: '>=10.2.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + errorstacks@2.4.1: + resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + esbuild@0.27.2: + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + esm@3.2.25: + resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} + engines: {node: '>=6'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} + engines: {node: '>= 0.6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + express-force-ssl@0.3.2: + resolution: {integrity: sha1-AbK0mK5v0uQRUrIrV6Phc3c69n4=} + engines: {node: '>=0.2.2'} + + express@5.2.1: + resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + engines: {node: '>= 18'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + fake-indexeddb@5.0.2: + resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} + engines: {node: '>=18'} + + fake-indexeddb@6.2.5: + resolution: {integrity: sha512-CGnyrvbhPlWYMngksqrSSUT1BAVP49dZocrHuK0SvtR0D5TMs5wP0o3j7jexDJW01KSadjBp1M/71o/KR3nD1w==} + engines: {node: '>=18'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-xml-parser@3.21.1: + resolution: {integrity: sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==} + hasBin: true + + fast-xml-parser@4.5.3: + resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} + hasBin: true + + fast-xml-parser@5.2.5: + resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} + hasBin: true + + fast-xml-parser@5.3.3: + resolution: {integrity: sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA==} + hasBin: true + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + + fd-slicer@1.1.0: + resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=} + + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + + file-type@19.6.0: + resolution: {integrity: sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==} + engines: {node: '>=18'} + + file-type@21.1.1: + resolution: {integrity: sha512-ifJXo8zUqbQ/bLbl9sFoqHNTNWbnPY1COImFfM6CCy7z+E+jC1eY9YfOKkx0fckIg+VljAy2/87T61fp0+eEkg==} + engines: {node: '>=20'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@2.1.1: + resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + engines: {node: '>= 18.0.0'} + + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + format@0.2.2: + resolution: {integrity: sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=} + engines: {node: '>=0.4.x'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@0.5.2: + resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + fs-extra@11.3.3: + resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + engines: {node: '>=14.14'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + + get-tsconfig@4.13.0: + resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} + + get-uri@6.0.5: + resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} + engines: {node: '>= 14'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} + engines: {node: 20 || >=22} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + happy-dom@15.11.7: + resolution: {integrity: sha512-KyrFvnl+J9US63TEzwoiJOQzZBJY7KgBushJA8X61DMbNsH+2ONkDuLDnCnwUiPTF42tLoEmrPyoqbenVA5zrg==} + engines: {node: '>=18.0.0'} + + has-flag@3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-sanitize@5.0.2: + resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + highlight.js@11.11.1: + resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} + engines: {node: '>=12.0.0'} + + hmac-drbg@1.0.1: + resolution: {integrity: sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier@4.0.0: + resolution: {integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==} + engines: {node: '>=6'} + hasBin: true + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + http-errors@1.6.3: + resolution: {integrity: sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=} + engines: {node: '>= 0.6'} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=} + + humanize-number@0.0.2: + resolution: {integrity: sha1-EcCvakcWQ2M1iFiASPF5lUFInBg=} + + ibantools@4.5.1: + resolution: {integrity: sha512-DfKQpLlFq9yEUIEnFuCJzss3XavD7iHZTU5PyqXiAJ+rmaMp+NFP3hboumHKuK8nZjuOJg93WemTzcQ5b9jOZA==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.7.1: + resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + inflation@2.1.0: + resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} + engines: {node: '>= 0.8.0'} + + inflight@1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + + inherits@2.0.3: + resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + internal-ip@6.2.0: + resolution: {integrity: sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==} + engines: {node: '>=10'} + + ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + engines: {node: '>= 12'} + + ip-regex@4.3.0: + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} + engines: {node: '>=8'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-arrayish@0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-ip@3.1.0: + resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==} + engines: {node: '>=8'} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-number@4.0.0: + resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-observable@2.1.0: + resolution: {integrity: sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw==} + engines: {node: '>=8'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isbinaryfile@5.0.7: + resolution: {integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + isopen@1.3.0: + resolution: {integrity: sha512-AN6Q9J0UlqHFl1fN/2xJCHCBLCBCFDjZhpGBO1gh3wzgRPsFSFBUL36I2Lbfd9qkuoj58axmE7j83iejTQsk8Q==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + js-base64@3.7.8: + resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + jsonfile@4.0.0: + resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + + keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + + koa-convert@2.0.0: + resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} + engines: {node: '>= 10'} + + koa-etag@4.0.0: + resolution: {integrity: sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==} + + koa-logger@3.2.1: + resolution: {integrity: sha512-MjlznhLLKy9+kG8nAXKJLM0/ClsQp/Or2vI3a5rbSQmgl8IJBQO0KI5FA70BvW+hqjtxjp49SpH2E7okS6NmHg==} + engines: {node: '>= 7.6.0'} + + koa-send@5.0.1: + resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} + engines: {node: '>= 8'} + + koa-static@5.0.0: + resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} + engines: {node: '>= 7.6.0'} + + koa@2.16.3: + resolution: {integrity: sha512-zPPuIt+ku1iCpFBRwseMcPYQ1cJL8l60rSmKeOuGfOXyE6YnTBmf2aEFNL2HQGrD0cPcLO/t+v9RTgC+fwEh/g==} + engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + lenis@1.3.16: + resolution: {integrity: sha512-KULpna+5TgRCDMSPx4SzJwtsjlz7EeoFCp4IDCXrlM73rLBAj34Egcl7GCLz/6+hXFOYt3DTBeTtJvTu45dJNA==} + peerDependencies: + '@nuxt/kit': '>=3.0.0' + react: '>=17.0.0' + vue: '>=3.0.0' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + react: + optional: true + vue: + optional: true + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + linkifyjs@4.3.2: + resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} + + lit-element@4.2.1: + resolution: {integrity: sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==} + + lit-html@3.3.1: + resolution: {integrity: sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==} + + lit@3.3.1: + resolution: {integrity: sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lodash._baseassign@3.2.0: + resolution: {integrity: sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=} + + lodash._basecopy@3.0.1: + resolution: {integrity: sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=} + + lodash._bindcallback@3.0.1: + resolution: {integrity: sha1-5THCdkTPi1epnhftlbNcdIeJOS4=} + + lodash._createassigner@3.1.1: + resolution: {integrity: sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=} + + lodash._getnative@3.9.1: + resolution: {integrity: sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=} + + lodash._isiterateecall@3.0.9: + resolution: {integrity: sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=} + + lodash.assign@3.2.0: + resolution: {integrity: sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=} + + lodash.clonedeep@4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} + + lodash.isarguments@3.1.0: + resolution: {integrity: sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=} + + lodash.isarray@3.0.4: + resolution: {integrity: sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=} + + lodash.keys@3.1.2: + resolution: {integrity: sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=} + + lodash.restparam@3.6.1: + resolution: {integrity: sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + + logform@2.7.0: + resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} + engines: {node: '>= 12.0.0'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lower-case@1.1.4: + resolution: {integrity: sha1-miyr0bno4K6ZOkv31YdcOcQujqw=} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lru-cache@11.2.4: + resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + engines: {node: 20 || >=22} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} + engines: {node: '>=16.14'} + + lucide@0.562.0: + resolution: {integrity: sha512-k1Fb8ZMnRQovWRlea7Jr0b9UKA29IM7/cu79+mJrhVohvA2YC/Ti3Sk+G+h/SIu3IlrKT4RAbWMHUBBQd1O6XA==} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error-cause@2.3.0: + resolution: {integrity: sha512-etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + matcher@5.0.0: + resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + math-random@1.0.4: + resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + media-typer@0.3.0: + resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} + engines: {node: '>= 0.6'} + + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + + memory-pager@1.5.0: + resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=} + engines: {node: '>= 0.6'} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + + mime@4.1.0: + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=} + + minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + monaco-editor@0.52.2: + resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==} + + mongodb-connection-string-url@3.0.2: + resolution: {integrity: sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==} + + mongodb-memory-server-core@10.4.2: + resolution: {integrity: sha512-/w7SWH+f/bpzmQlYu0lRWF33GLOo0GwZrflP1gkDhc6PCuLo5T1mnME/W+mrFmsowLGzthdJnezGBpOnIYNALw==} + engines: {node: '>=16.20.1'} + + mongodb-memory-server@10.4.2: + resolution: {integrity: sha512-r2swgOhmhGfx80TJIALb7t4hlrRtdl+uqc0qrGe+nqmjZQn3prd0SOioxxuLb5LjtmQrx3CPQqJf+PmH5hg+5A==} + engines: {node: '>=16.20.1'} + + mongodb@6.21.0: + resolution: {integrity: sha512-URyb/VXMjJ4da46OeSXg+puO39XH9DeQpWCslifrRn9JWugy0D+DvvBvkm2WxmHe61O/H19JM66p1z7RHVkZ6A==} + engines: {node: '>=16.20.1'} + peerDependencies: + '@aws-sdk/credential-providers': ^3.188.0 + '@mongodb-js/zstd': ^1.1.0 || ^2.0.0 + gcp-metadata: ^5.2.0 + kerberos: ^2.0.1 + mongodb-client-encryption: '>=6.0.0 <7' + snappy: ^7.3.2 + socks: ^2.7.1 + peerDependenciesMeta: + '@aws-sdk/credential-providers': + optional: true + '@mongodb-js/zstd': + optional: true + gcp-metadata: + optional: true + kerberos: + optional: true + mongodb-client-encryption: + optional: true + snappy: + optional: true + socks: + optional: true + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanocolors@0.2.13: + resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + + new-find-package-json@2.0.0: + resolution: {integrity: sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==} + engines: {node: '>=12.22.0'} + + no-case@2.3.2: + resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + + node-forge@1.3.3: + resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} + engines: {node: '>= 6.13.0'} + + normalize-newline@4.1.0: + resolution: {integrity: sha512-ff4jKqMI8Xl50/4Mms/9jPobzAV/UK+kXG2XJ/7AqOmxIx8mqfqTIHYxuAnEgJ2AQeBbLnlbmZ5+38Y9A0w/YA==} + engines: {node: '>=12'} + + normalize-url@8.1.0: + resolution: {integrity: sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==} + engines: {node: '>=14.16'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + object-assign@4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + oblivious-set@2.0.0: + resolution: {integrity: sha512-QOUH5Xrsced9fKXaQTjWoDGKeS/Or7E2jB0FN63N4mkAO4qJdB7WR7e6qWAOHM5nk25FJ8TGjhP7DH4l6vFVLg==} + engines: {node: '>=16'} + + observable-fns@0.6.1: + resolution: {integrity: sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + only@0.0.2: + resolution: {integrity: sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + orderedmap@2.1.1: + resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-event@4.2.0: + resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} + engines: {node: '>=8'} + + p-finally@1.0.0: + resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + pac-proxy-agent@7.2.0: + resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} + engines: {node: '>= 14'} + + pac-resolver@7.0.1: + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + param-case@2.1.1: + resolution: {integrity: sha1-35T9jPZTHs915r75oIWPvHK+Ikc=} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + passthrough-counter@1.0.0: + resolution: {integrity: sha1-GWfZ5m2lcrXAI8eH2xEqOHqxZvo=} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pdf-lib@1.17.1: + resolution: {integrity: sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==} + + pdf2json@3.2.0: + resolution: {integrity: sha512-5RJYU5zWFXTQ5iRXAo75vlhK5ybZOyqEyg/szw2VtHc6ZOPcC7ruX4nnXk1OqqlY56Z7XT+WCFhV+/XPj4QwtQ==} + engines: {node: '>=20.18.0'} + hasBin: true + bundledDependencies: [] + + pdfjs-dist@4.10.38: + resolution: {integrity: sha512-/Y3fcFrXEAsMjJXeL9J8+ZG9U01LbuWaYypvDW2ycW1jL269L3js3DVBjDJ0Up9Np1uqDXsDrRihHANhZOlwdQ==} + engines: {node: '>=20'} + + peek-readable@5.4.2: + resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==} + engines: {node: '>=14.16'} + + pend@1.2.0: + resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + ping@0.4.4: + resolution: {integrity: sha512-56ZMC0j7SCsMMLdOoUg12VZCfj/+ZO+yfOSjaNCRrmZZr6GLbN2X/Ui56T15dI8NhiHckaw5X2pvyfAomanwqQ==} + engines: {node: '>=4.0.0'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + pretty-ms@9.3.0: + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} + engines: {node: '>=18'} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + + prosemirror-changeset@2.3.1: + resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==} + + prosemirror-collab@1.3.1: + resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} + + prosemirror-commands@1.7.1: + resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + + prosemirror-dropcursor@1.8.2: + resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} + + prosemirror-gapcursor@1.4.0: + resolution: {integrity: sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==} + + prosemirror-history@1.5.0: + resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==} + + prosemirror-inputrules@1.5.1: + resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==} + + prosemirror-keymap@1.2.3: + resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} + + prosemirror-markdown@1.13.2: + resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==} + + prosemirror-menu@1.2.5: + resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==} + + prosemirror-model@1.25.4: + resolution: {integrity: sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==} + + prosemirror-schema-basic@1.2.4: + resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==} + + prosemirror-schema-list@1.5.1: + resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + + prosemirror-state@1.4.4: + resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==} + + prosemirror-tables@1.8.3: + resolution: {integrity: sha512-wbqCR/RlRPRe41a4LFtmhKElzBEfBTdtAYWNIGHM6X2e24NN/MTNUKyXjjphfAfdQce37Kh/5yf765mLPYDe7Q==} + + prosemirror-trailing-node@3.0.0: + resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} + peerDependencies: + prosemirror-model: ^1.22.1 + prosemirror-state: ^1.4.2 + prosemirror-view: ^1.33.8 + + prosemirror-transform@1.10.5: + resolution: {integrity: sha512-RPDQCxIDhIBb1o36xxwsaeAvivO8VLJcgBtzmOwQ64bMtsVFh5SSuJ6dWSxO1UsHTiTXPCgQm3PDJt7p6IOLbw==} + + prosemirror-view@1.41.4: + resolution: {integrity: sha512-WkKgnyjNncri03Gjaz3IFWvCAE94XoiEgvtr0/r2Xw7R8/IjK3sKLSiDoCHWcsXSAinVaKlGRZDvMCsF1kbzjA==} + + proto-list@1.2.4: + resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-agent@6.5.0: + resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} + engines: {node: '>= 14'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pump@3.0.3: + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@1.4.1: + resolution: {integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4=} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + puppeteer-core@24.34.0: + resolution: {integrity: sha512-24evawO+mUGW4mvS2a2ivwLdX3gk8zRLZr9HP+7+VT2vBQnm0oh9jJEZmUE3ePJhRkYlZ93i7OMpdcoi2qNCLg==} + engines: {node: '>=18'} + + puppeteer@24.34.0: + resolution: {integrity: sha512-Sdpl/zsYOsagZ4ICoZJPGZw8d9gZmK5DcxVal11dXi/1/t2eIXHjCf5NfmhDg5XnG9Nye+yo/LqMzIxie2rHTw==} + engines: {node: '>=18'} + hasBin: true + + pvtsutils@1.3.6: + resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} + + pvutils@1.1.5: + resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} + engines: {node: '>=16.0.0'} + + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + randomatic@3.1.1: + resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} + engines: {node: '>= 0.10.0'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} + engines: {node: '>= 0.8'} + + raw-body@3.0.2: + resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + engines: {node: '>= 0.10'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + + registry-auth-token@5.1.0: + resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + relateurl@0.2.7: + resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=} + engines: {node: '>= 0.10'} + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-html@16.0.1: + resolution: {integrity: sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + replace-buffer@1.2.1: + resolution: {integrity: sha512-ly3OKwKu+3T55DjP5PjIMzxgz9lFx6dQnBmAIxryZyRKl8f22juy12ShOyuq8WrQE5UlFOseZgQZDua0iF9DHw==} + engines: {node: '>=4'} + + require-directory@2.1.1: + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + engines: {node: '>=0.10.0'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-path@1.4.0: + resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} + engines: {node: '>= 0.8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rolldown@1.0.0-beta.52: + resolution: {integrity: sha512-Hbnpljue+JhMJrlOjQ1ixp9me7sUec7OjFvS+A1Qm8k8Xyxmw3ZhxFu7LlSXW1s9AX3POE9W9o2oqCEeR5uDmg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + rope-sequence@1.3.4: + resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + s3rver@3.7.1: + resolution: {integrity: sha512-H9KIX6n8NqcfoE4ziFNbQASBQfjcNJgb+3wbT9L5iotEqfOncFO1c38cfJSFSo7xXTu1zM9HA6t2u9xKNlYRaA==} + engines: {node: '>=8.3.0'} + hasBin: true + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + + socket.io-client@4.8.1: + resolution: {integrity: sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + socket.io@4.8.1: + resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} + engines: {node: '>=10.2.0'} + + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + + socks@2.8.7: + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + sparse-bitfield@3.0.3: + resolution: {integrity: sha1-/0rm5oZWBWuks+eSqzM004JzyhE=} + + spawn-wrap@2.0.0: + resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} + engines: {node: '>=8'} + + sprintf-js@1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + + stack-trace@0.0.10: + resolution: {integrity: sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + statuses@1.5.0: + resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} + engines: {node: '>= 0.6'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + streamsearch@0.1.2: + resolution: {integrity: sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=} + engines: {node: '>=0.8.0'} + + streamx@2.23.0: + resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-indent@4.1.1: + resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} + engines: {node: '>=0.10.0'} + + strnum@1.1.2: + resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} + + strnum@2.1.2: + resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} + + strtok3@10.3.4: + resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==} + engines: {node: '>=18'} + + strtok3@9.1.1: + resolution: {integrity: sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==} + engines: {node: '>=16'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + sweet-scroll@4.0.0: + resolution: {integrity: sha512-mR6fRsAQANtm3zpzhUE73KAOt2aT4ZsWzNSggiEsSqdO6Zh4gM7ioJG81EngrZEl0XAc3ZvzEfhxggOoEBc8jA==} + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + systeminformation@5.27.14: + resolution: {integrity: sha512-3DoNDYSZBLxBwaJtQGWNpq0fonga/VZ47HY1+7/G3YoIPaPz93Df6egSzzTKbEMmlzUpy3eQ0nR9REuYIycXGg==} + engines: {node: '>=8.0.0'} + os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] + hasBin: true + + tar-fs@3.1.1: + resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==} + + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + threads@1.7.0: + resolution: {integrity: sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + tiny-worker@2.3.0: + resolution: {integrity: sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + token-types@6.1.1: + resolution: {integrity: sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==} + engines: {node: '>=14.16'} + + tr46@5.1.1: + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + engines: {node: '>=18'} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + + tsyringe@4.10.0: + resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} + engines: {node: '>= 6.0.0'} + + turndown-plugin-gfm@1.0.2: + resolution: {integrity: sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==} + + turndown@7.2.2: + resolution: {integrity: sha512-1F7db8BiExOKxjSMU2b7if62D/XOyQyZbPKq/nUwopfgnHlqXHqQ0lvfUTeUIr1lZJzOPFn43dODyMSIfvWRKQ==} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + + typed-query-selector@2.12.0: + resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} + engines: {node: '>=18'} + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unload@2.4.1: + resolution: {integrity: sha512-IViSAm8Z3sRBYA+9wc0fLQmU9Nrxb16rcDmIiR6Y9LJSZzI7QY5QsDhqPpKOjAn0O9/kfK1TfNEMMAGPTIraPw==} + + unpipe@1.0.0: + resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} + engines: {node: '>= 0.8'} + + upper-case@1.1.3: + resolution: {integrity: sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=} + + url@0.11.4: + resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} + engines: {node: '>= 0.4'} + + util-deprecate@1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + vary@1.1.2: + resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} + engines: {node: '>= 0.8'} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + + webdriver-bidi-protocol@0.3.10: + resolution: {integrity: sha512-5LAE43jAVLOhB/QqX4bwSiv0Hg1HBfMmOuwBSXHdvg4GMGu9Y0lIq7p4R/yySu6w74WmaR4GM4H9t2IwLW7hgw==} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@14.2.0: + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + engines: {node: '>=18'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + winston-transport@4.9.0: + resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} + engines: {node: '>= 12.0.0'} + + winston@3.19.0: + resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==} + engines: {node: '>= 12.0.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + 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 + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + 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 + + xmlhttprequest-ssl@2.1.2: + resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} + engines: {node: '>=0.4.0'} + + xterm-addon-fit@0.8.0: + resolution: {integrity: sha512-yj3Np7XlvxxhYF/EJ7p3KHaMt6OdwQ+HDu573Vx1lRXsVxOcnVJs51RgjZOouIZOczTsskaS+CpXspK81/DLqw==} + peerDependencies: + xterm: ^5.0.0 + + xterm@5.3.0: + resolution: {integrity: sha512-8QqjlekLUFTrU6x7xck1MsPzPA571K5zNqWm0M0oroYEWVOptZ0+ubQSkQ3uxIEhcIHRujJy6emDWX4A7qyFzg==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} + + yauzl@3.2.0: + resolution: {integrity: sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==} + engines: {node: '>=12'} + + ylru@1.4.0: + resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} + engines: {node: '>= 4.0.0'} + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@api.global/typedrequest-interfaces@2.0.2': {} + + '@api.global/typedrequest-interfaces@3.0.19': {} + + '@api.global/typedrequest@3.2.5': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/isounique': 1.0.5 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartbuffer': 3.0.5 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartguard': 3.1.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/webrequest': 3.0.37 + '@push.rocks/webstream': 1.0.10 + + '@api.global/typedserver@3.0.80(@push.rocks/smartserve@1.4.0)': + dependencies: + '@api.global/typedrequest': 3.2.5 + '@api.global/typedrequest-interfaces': 3.0.19 + '@api.global/typedsocket': 3.1.1(@push.rocks/smartserve@1.4.0) + '@cloudflare/workers-types': 4.20251221.0 + '@design.estate/dees-comms': 1.0.30 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartchok': 1.2.0 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartfeed': 1.4.0 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartlog-destination-devtools': 1.0.12 + '@push.rocks/smartlog-interfaces': 3.0.2 + '@push.rocks/smartmanifest': 2.0.2 + '@push.rocks/smartmatch': 2.0.0 + '@push.rocks/smartmime': 2.0.4 + '@push.rocks/smartntml': 2.0.8 + '@push.rocks/smartopen': 2.0.0 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 4.4.2 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartsitemap': 2.0.4 + '@push.rocks/smartstream': 3.2.5 + '@push.rocks/smarttime': 4.1.1 + '@push.rocks/taskbuffer': 3.5.0 + '@push.rocks/webrequest': 3.0.37 + '@push.rocks/webstore': 2.0.20 + '@tsclass/tsclass': 9.3.0 + '@types/express': 5.0.6 + body-parser: 2.2.1 + cors: 2.8.5 + express: 5.2.1 + express-force-ssl: 0.3.2 + lit: 3.3.1 + transitivePeerDependencies: + - '@nuxt/kit' + - '@push.rocks/smartserve' + - bufferutil + - react + - supports-color + - utf-8-validate + - vue + + '@api.global/typedserver@7.11.1(@tiptap/pm@2.27.1)': + dependencies: + '@api.global/typedrequest': 3.2.5 + '@api.global/typedrequest-interfaces': 3.0.19 + '@api.global/typedsocket': 4.1.0(@push.rocks/smartserve@1.4.0) + '@cloudflare/workers-types': 4.20251221.0 + '@design.estate/dees-catalog': 3.4.0(@tiptap/pm@2.27.1) + '@design.estate/dees-comms': 1.0.30 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 6.0.0 + '@push.rocks/smartfeed': 1.4.0 + '@push.rocks/smartfile': 13.1.2 + '@push.rocks/smartfs': 1.3.1 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartlog-destination-devtools': 1.0.12 + '@push.rocks/smartlog-interfaces': 3.0.2 + '@push.rocks/smartmanifest': 2.0.2 + '@push.rocks/smartmatch': 2.0.0 + '@push.rocks/smartmime': 2.0.4 + '@push.rocks/smartntml': 2.0.8 + '@push.rocks/smartopen': 2.0.0 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 5.0.1 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartserve': 1.4.0 + '@push.rocks/smartsitemap': 2.0.4 + '@push.rocks/smartstream': 3.2.5 + '@push.rocks/smarttime': 4.1.1 + '@push.rocks/smartwatch': 6.3.0 + '@push.rocks/taskbuffer': 3.5.0 + '@push.rocks/webrequest': 4.0.1 + '@push.rocks/webstore': 2.0.20 + '@tsclass/tsclass': 9.3.0 + lit: 3.3.1 + transitivePeerDependencies: + - '@nuxt/kit' + - '@tiptap/pm' + - bufferutil + - react + - supports-color + - utf-8-validate + - vue + + '@api.global/typedsocket@3.1.1(@push.rocks/smartserve@1.4.0)': + dependencies: + '@api.global/typedrequest': 3.2.5 + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/isohash': 2.0.1 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartsocket': 2.1.0 + '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smarturl': 3.1.0 + optionalDependencies: + '@push.rocks/smartserve': 1.4.0 + transitivePeerDependencies: + - '@nuxt/kit' + - bufferutil + - react + - supports-color + - utf-8-validate + - vue + + '@api.global/typedsocket@4.1.0(@push.rocks/smartserve@1.4.0)': + dependencies: + '@api.global/typedrequest': 3.2.5 + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/isohash': 2.0.1 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartserve': 1.4.0 + '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smarturl': 3.1.0 + + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.956.0 + tslib: 2.8.1 + + '@aws-crypto/crc32c@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.956.0 + tslib: 2.8.1 + + '@aws-crypto/sha1-browser@5.2.0': + dependencies: + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.956.0 + '@aws-sdk/util-locate-window': 3.953.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.956.0 + '@aws-sdk/util-locate-window': 3.953.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.956.0 + tslib: 2.8.1 + + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.8.1 + + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + + '@aws-sdk/client-s3@3.956.0': + dependencies: + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.956.0 + '@aws-sdk/credential-provider-node': 3.956.0 + '@aws-sdk/middleware-bucket-endpoint': 3.956.0 + '@aws-sdk/middleware-expect-continue': 3.956.0 + '@aws-sdk/middleware-flexible-checksums': 3.956.0 + '@aws-sdk/middleware-host-header': 3.956.0 + '@aws-sdk/middleware-location-constraint': 3.956.0 + '@aws-sdk/middleware-logger': 3.956.0 + '@aws-sdk/middleware-recursion-detection': 3.956.0 + '@aws-sdk/middleware-sdk-s3': 3.956.0 + '@aws-sdk/middleware-ssec': 3.956.0 + '@aws-sdk/middleware-user-agent': 3.956.0 + '@aws-sdk/region-config-resolver': 3.956.0 + '@aws-sdk/signature-v4-multi-region': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@aws-sdk/util-endpoints': 3.956.0 + '@aws-sdk/util-user-agent-browser': 3.956.0 + '@aws-sdk/util-user-agent-node': 3.956.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/eventstream-serde-browser': 4.2.7 + '@smithy/eventstream-serde-config-resolver': 4.3.7 + '@smithy/eventstream-serde-node': 4.2.7 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-blob-browser': 4.2.8 + '@smithy/hash-node': 4.2.7 + '@smithy/hash-stream-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/md5-js': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-stream': 4.5.8 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.7 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.956.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.956.0 + '@aws-sdk/middleware-host-header': 3.956.0 + '@aws-sdk/middleware-logger': 3.956.0 + '@aws-sdk/middleware-recursion-detection': 3.956.0 + '@aws-sdk/middleware-user-agent': 3.956.0 + '@aws-sdk/region-config-resolver': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@aws-sdk/util-endpoints': 3.956.0 + '@aws-sdk/util-user-agent-browser': 3.956.0 + '@aws-sdk/util-user-agent-node': 3.956.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@aws-sdk/xml-builder': 3.956.0 + '@smithy/core': 3.20.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/property-provider': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/signature-v4': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-env@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/property-provider': 4.2.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/node-http-handler': 4.4.7 + '@smithy/property-provider': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/util-stream': 4.5.8 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/credential-provider-env': 3.956.0 + '@aws-sdk/credential-provider-http': 3.956.0 + '@aws-sdk/credential-provider-login': 3.956.0 + '@aws-sdk/credential-provider-process': 3.956.0 + '@aws-sdk/credential-provider-sso': 3.956.0 + '@aws-sdk/credential-provider-web-identity': 3.956.0 + '@aws-sdk/nested-clients': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/credential-provider-imds': 4.2.7 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-login@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/nested-clients': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/property-provider': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.956.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.956.0 + '@aws-sdk/credential-provider-http': 3.956.0 + '@aws-sdk/credential-provider-ini': 3.956.0 + '@aws-sdk/credential-provider-process': 3.956.0 + '@aws-sdk/credential-provider-sso': 3.956.0 + '@aws-sdk/credential-provider-web-identity': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/credential-provider-imds': 4.2.7 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-process@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-sso@3.956.0': + dependencies: + '@aws-sdk/client-sso': 3.956.0 + '@aws-sdk/core': 3.956.0 + '@aws-sdk/token-providers': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-web-identity@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/nested-clients': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/middleware-bucket-endpoint@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@aws-sdk/util-arn-parser': 3.953.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-config-provider': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-expect-continue@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-flexible-checksums@3.956.0': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/is-array-buffer': 4.2.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-stream': 4.5.8 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-host-header@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-location-constraint@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@aws/lambda-invoke-store': 0.2.2 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-s3@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@aws-sdk/util-arn-parser': 3.953.0 + '@smithy/core': 3.20.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/signature-v4': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-stream': 4.5.8 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-ssec@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@aws-sdk/util-endpoints': 3.956.0 + '@smithy/core': 3.20.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/nested-clients@3.956.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.956.0 + '@aws-sdk/middleware-host-header': 3.956.0 + '@aws-sdk/middleware-logger': 3.956.0 + '@aws-sdk/middleware-recursion-detection': 3.956.0 + '@aws-sdk/middleware-user-agent': 3.956.0 + '@aws-sdk/region-config-resolver': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@aws-sdk/util-endpoints': 3.956.0 + '@aws-sdk/util-user-agent-browser': 3.956.0 + '@aws-sdk/util-user-agent-node': 3.956.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/region-config-resolver@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/node-config-provider': 4.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.956.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/signature-v4': 5.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.956.0': + dependencies: + '@aws-sdk/core': 3.956.0 + '@aws-sdk/nested-clients': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/types@3.956.0': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/util-arn-parser@3.953.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-endpoints': 3.2.7 + tslib: 2.8.1 + + '@aws-sdk/util-locate-window@3.953.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.956.0': + dependencies: + '@aws-sdk/types': 3.956.0 + '@smithy/types': 4.11.0 + bowser: 2.13.1 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.956.0': + dependencies: + '@aws-sdk/middleware-user-agent': 3.956.0 + '@aws-sdk/types': 3.956.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.956.0': + dependencies: + '@smithy/types': 4.11.0 + fast-xml-parser: 5.2.5 + tslib: 2.8.1 + + '@aws/lambda-invoke-store@0.2.2': {} + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/runtime@7.28.4': {} + + '@borewit/text-codec@0.1.1': {} + + '@cfworker/json-schema@4.1.1': {} + + '@cloudflare/workers-types@4.20251221.0': {} + + '@colors/colors@1.6.0': {} + + '@configvault.io/interfaces@1.0.17': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + + '@dabh/diagnostics@2.0.8': + dependencies: + '@so-ric/colorspace': 1.1.6 + enabled: 2.0.0 + kuler: 2.0.0 + + '@design.estate/dees-catalog@3.4.0(@tiptap/pm@2.27.1)': + dependencies: + '@design.estate/dees-domtools': 2.3.6 + '@design.estate/dees-element': 2.1.3 + '@design.estate/dees-wcctools': 3.2.0 + '@fortawesome/fontawesome-svg-core': 7.1.0 + '@fortawesome/free-brands-svg-icons': 7.1.0 + '@fortawesome/free-regular-svg-icons': 7.1.0 + '@fortawesome/free-solid-svg-icons': 7.1.0 + '@push.rocks/smarti18n': 1.0.4 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartstring': 4.1.0 + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/extension-link': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) + '@tiptap/extension-text-align': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-typography': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-underline': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/starter-kit': 2.27.1 + '@tsclass/tsclass': 9.3.0 + '@webcontainer/api': 1.2.0 + apexcharts: 5.3.6 + highlight.js: 11.11.1 + ibantools: 4.5.1 + lit: 3.3.1 + lucide: 0.562.0 + monaco-editor: 0.52.2 + pdfjs-dist: 4.10.38 + xterm: 5.3.0 + xterm-addon-fit: 0.8.0(xterm@5.3.0) + transitivePeerDependencies: + - '@nuxt/kit' + - '@tiptap/pm' + - react + - supports-color + - vue + + '@design.estate/dees-comms@1.0.30': + dependencies: + '@api.global/typedrequest': 3.2.5 + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/smartdelay': 3.0.5 + broadcast-channel: 7.2.0 + + '@design.estate/dees-domtools@2.3.6': + dependencies: + '@api.global/typedrequest': 3.2.5 + '@design.estate/dees-comms': 1.0.30 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartmarkdown': 3.0.3 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrouter': 1.3.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartstate': 2.0.27 + '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smarturl': 3.1.0 + '@push.rocks/webrequest': 3.0.37 + '@push.rocks/websetup': 3.0.19 + '@push.rocks/webstore': 2.0.20 + lenis: 1.3.16 + lit: 3.3.1 + sweet-scroll: 4.0.0 + transitivePeerDependencies: + - '@nuxt/kit' + - react + - supports-color + - vue + + '@design.estate/dees-element@2.1.3': + dependencies: + '@design.estate/dees-domtools': 2.3.6 + '@push.rocks/isounique': 1.0.5 + '@push.rocks/smartrx': 3.0.10 + lit: 3.3.1 + transitivePeerDependencies: + - '@nuxt/kit' + - react + - supports-color + - vue + + '@design.estate/dees-wcctools@3.2.0': + dependencies: + '@design.estate/dees-domtools': 2.3.6 + '@design.estate/dees-element': 2.1.3 + '@push.rocks/smartdelay': 3.0.5 + lit: 3.3.1 + transitivePeerDependencies: + - '@nuxt/kit' + - react + - supports-color + - vue + + '@emnapi/core@1.7.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.7.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.27.2': + optional: true + + '@esbuild/android-arm64@0.27.2': + optional: true + + '@esbuild/android-arm@0.27.2': + optional: true + + '@esbuild/android-x64@0.27.2': + optional: true + + '@esbuild/darwin-arm64@0.27.2': + optional: true + + '@esbuild/darwin-x64@0.27.2': + optional: true + + '@esbuild/freebsd-arm64@0.27.2': + optional: true + + '@esbuild/freebsd-x64@0.27.2': + optional: true + + '@esbuild/linux-arm64@0.27.2': + optional: true + + '@esbuild/linux-arm@0.27.2': + optional: true + + '@esbuild/linux-ia32@0.27.2': + optional: true + + '@esbuild/linux-loong64@0.27.2': + optional: true + + '@esbuild/linux-mips64el@0.27.2': + optional: true + + '@esbuild/linux-ppc64@0.27.2': + optional: true + + '@esbuild/linux-riscv64@0.27.2': + optional: true + + '@esbuild/linux-s390x@0.27.2': + optional: true + + '@esbuild/linux-x64@0.27.2': + optional: true + + '@esbuild/netbsd-arm64@0.27.2': + optional: true + + '@esbuild/netbsd-x64@0.27.2': + optional: true + + '@esbuild/openbsd-arm64@0.27.2': + optional: true + + '@esbuild/openbsd-x64@0.27.2': + optional: true + + '@esbuild/openharmony-arm64@0.27.2': + optional: true + + '@esbuild/sunos-x64@0.27.2': + optional: true + + '@esbuild/win32-arm64@0.27.2': + optional: true + + '@esbuild/win32-ia32@0.27.2': + optional: true + + '@esbuild/win32-x64@0.27.2': + optional: true + + '@esm-bundle/chai@4.3.4-fix.0': + dependencies: + '@types/chai': 4.3.20 + + '@fortawesome/fontawesome-common-types@7.1.0': {} + + '@fortawesome/fontawesome-svg-core@7.1.0': + dependencies: + '@fortawesome/fontawesome-common-types': 7.1.0 + + '@fortawesome/free-brands-svg-icons@7.1.0': + dependencies: + '@fortawesome/fontawesome-common-types': 7.1.0 + + '@fortawesome/free-regular-svg-icons@7.1.0': + dependencies: + '@fortawesome/fontawesome-common-types': 7.1.0 + + '@fortawesome/free-solid-svg-icons@7.1.0': + dependencies: + '@fortawesome/fontawesome-common-types': 7.1.0 + + '@git.zone/tsbuild@4.0.2': + dependencies: + '@git.zone/tspublish': 1.11.0 + '@push.rocks/early': 4.0.4 + '@push.rocks/smartcli': 4.0.19 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 13.1.2 + '@push.rocks/smartfs': 1.3.1 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + typescript: 5.9.3 + transitivePeerDependencies: + - '@nuxt/kit' + - aws-crt + - bare-abort-controller + - react + - react-native-b4a + - supports-color + - vue + + '@git.zone/tsbundle@2.6.3': + dependencies: + '@push.rocks/early': 4.0.4 + '@push.rocks/smartcli': 4.0.19 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfs': 1.3.1 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartlog-destination-local': 9.0.2 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartspawn': 3.0.3 + '@rspack/core': 1.6.8 + '@types/html-minifier': 4.0.6 + esbuild: 0.27.2 + html-minifier: 4.0.0 + rolldown: 1.0.0-beta.52 + typescript: 5.9.3 + transitivePeerDependencies: + - '@swc/helpers' + - supports-color + + '@git.zone/tspublish@1.11.0': + dependencies: + '@push.rocks/consolecolor': 2.0.3 + '@push.rocks/npmextra': 5.3.3 + '@push.rocks/smartcli': 4.0.19 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 13.1.2 + '@push.rocks/smartfs': 1.3.1 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartnpm': 2.0.6 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartrequest': 5.0.1 + '@push.rocks/smartshell': 3.3.0 + transitivePeerDependencies: + - '@nuxt/kit' + - aws-crt + - bare-abort-controller + - react + - react-native-b4a + - supports-color + - vue + + '@git.zone/tsrun@2.0.1': + dependencies: + '@push.rocks/smartfile': 13.1.2 + '@push.rocks/smartshell': 3.3.0 + tsx: 4.21.0 + + '@git.zone/tstest@3.1.3(@push.rocks/smartserve@1.4.0)(socks@2.8.7)(typescript@5.9.3)': + dependencies: + '@api.global/typedserver': 3.0.80(@push.rocks/smartserve@1.4.0) + '@git.zone/tsbundle': 2.6.3 + '@git.zone/tsrun': 2.0.1 + '@push.rocks/consolecolor': 2.0.3 + '@push.rocks/qenv': 6.1.3 + '@push.rocks/smartbrowser': 2.0.8(typescript@5.9.3) + '@push.rocks/smartchok': 1.2.0 + '@push.rocks/smartcrypto': 2.0.4 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 6.0.0 + '@push.rocks/smartexpect': 2.5.0 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartmongo': 2.0.14(socks@2.8.7) + '@push.rocks/smartnetwork': 4.4.0 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 5.0.1 + '@push.rocks/smarts3': 3.0.3 + '@push.rocks/smartshell': 3.3.0 + '@push.rocks/smarttime': 4.1.1 + '@types/ws': 8.18.1 + figures: 6.1.0 + ws: 8.18.3 + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - '@nuxt/kit' + - '@push.rocks/smartserve' + - '@swc/helpers' + - aws-crt + - bare-abort-controller + - bare-buffer + - bufferutil + - gcp-metadata + - kerberos + - mongodb-client-encryption + - react + - react-native-b4a + - snappy + - socks + - supports-color + - typescript + - utf-8-validate + - vue + + '@git.zone/tswatch@2.3.13(@tiptap/pm@2.27.1)': + dependencies: + '@api.global/typedserver': 7.11.1(@tiptap/pm@2.27.1) + '@git.zone/tsbundle': 2.6.3 + '@git.zone/tsrun': 2.0.1 + '@push.rocks/early': 4.0.4 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartcli': 4.0.19 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfs': 1.3.1 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartlog-destination-local': 9.0.2 + '@push.rocks/smartshell': 3.3.0 + '@push.rocks/smartwatch': 6.3.0 + '@push.rocks/taskbuffer': 3.5.0 + transitivePeerDependencies: + - '@nuxt/kit' + - '@swc/helpers' + - '@tiptap/pm' + - bufferutil + - react + - supports-color + - utf-8-validate + - vue + + '@hapi/bourne@3.0.0': {} + + '@happy-dom/global-registrator@15.11.7': + dependencies: + happy-dom: 15.11.7 + + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 25.0.3 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@koa/router@9.4.0': + dependencies: + debug: 4.4.3 + http-errors: 1.8.1 + koa-compose: 4.1.0 + methods: 1.1.2 + path-to-regexp: 6.3.0 + transitivePeerDependencies: + - supports-color + + '@leichtgewicht/ip-codec@2.0.5': {} + + '@lit-labs/ssr-dom-shim@1.4.0': {} + + '@lit/reactive-element@2.1.1': + dependencies: + '@lit-labs/ssr-dom-shim': 1.4.0 + + '@mixmark-io/domino@2.2.0': {} + + '@module-federation/error-codes@0.21.6': {} + + '@module-federation/runtime-core@0.21.6': + dependencies: + '@module-federation/error-codes': 0.21.6 + '@module-federation/sdk': 0.21.6 + + '@module-federation/runtime-tools@0.21.6': + dependencies: + '@module-federation/runtime': 0.21.6 + '@module-federation/webpack-bundler-runtime': 0.21.6 + + '@module-federation/runtime@0.21.6': + dependencies: + '@module-federation/error-codes': 0.21.6 + '@module-federation/runtime-core': 0.21.6 + '@module-federation/sdk': 0.21.6 + + '@module-federation/sdk@0.21.6': {} + + '@module-federation/webpack-bundler-runtime@0.21.6': + dependencies: + '@module-federation/runtime': 0.21.6 + '@module-federation/sdk': 0.21.6 + + '@mongodb-js/saslprep@1.4.4': + dependencies: + sparse-bitfield: 3.0.3 + + '@napi-rs/canvas-android-arm64@0.1.86': + optional: true + + '@napi-rs/canvas-darwin-arm64@0.1.86': + optional: true + + '@napi-rs/canvas-darwin-x64@0.1.86': + optional: true + + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.86': + optional: true + + '@napi-rs/canvas-linux-arm64-gnu@0.1.86': + optional: true + + '@napi-rs/canvas-linux-arm64-musl@0.1.86': + optional: true + + '@napi-rs/canvas-linux-riscv64-gnu@0.1.86': + optional: true + + '@napi-rs/canvas-linux-x64-gnu@0.1.86': + optional: true + + '@napi-rs/canvas-linux-x64-musl@0.1.86': + optional: true + + '@napi-rs/canvas-win32-arm64-msvc@0.1.86': + optional: true + + '@napi-rs/canvas-win32-x64-msvc@0.1.86': + optional: true + + '@napi-rs/canvas@0.1.86': + optionalDependencies: + '@napi-rs/canvas-android-arm64': 0.1.86 + '@napi-rs/canvas-darwin-arm64': 0.1.86 + '@napi-rs/canvas-darwin-x64': 0.1.86 + '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.86 + '@napi-rs/canvas-linux-arm64-gnu': 0.1.86 + '@napi-rs/canvas-linux-arm64-musl': 0.1.86 + '@napi-rs/canvas-linux-riscv64-gnu': 0.1.86 + '@napi-rs/canvas-linux-x64-gnu': 0.1.86 + '@napi-rs/canvas-linux-x64-musl': 0.1.86 + '@napi-rs/canvas-win32-arm64-msvc': 0.1.86 + '@napi-rs/canvas-win32-x64-msvc': 0.1.86 + optional: true + + '@napi-rs/wasm-runtime@1.0.7': + dependencies: + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@napi-rs/wasm-runtime@1.1.0': + dependencies: + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@open-wc/dedupe-mixin@2.0.1': {} + + '@open-wc/scoped-elements@3.0.6': + dependencies: + '@open-wc/dedupe-mixin': 2.0.1 + lit: 3.3.1 + + '@open-wc/semantic-dom-diff@0.20.1': + dependencies: + '@types/chai': 4.3.20 + '@web/test-runner-commands': 0.9.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@open-wc/testing-helpers@3.0.1': + dependencies: + '@open-wc/scoped-elements': 3.0.6 + lit: 3.3.1 + lit-html: 3.3.1 + + '@open-wc/testing@4.0.0': + dependencies: + '@esm-bundle/chai': 4.3.4-fix.0 + '@open-wc/semantic-dom-diff': 0.20.1 + '@open-wc/testing-helpers': 3.0.1 + '@types/chai-dom': 1.11.3 + '@types/sinon-chai': 3.2.12 + chai-a11y-axe: 1.5.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@oxc-project/types@0.99.0': {} + + '@pdf-lib/standard-fonts@1.0.0': + dependencies: + pako: 1.0.11 + + '@pdf-lib/upng@1.0.1': + dependencies: + pako: 1.0.11 + + '@peculiar/asn1-cms@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + '@peculiar/asn1-x509-attr': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-csr@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-ecc@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pfx@2.6.0': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-pkcs8': 2.6.0 + '@peculiar/asn1-rsa': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pkcs8@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pkcs9@2.6.0': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-pfx': 2.6.0 + '@peculiar/asn1-pkcs8': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + '@peculiar/asn1-x509-attr': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-rsa@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-schema@2.6.0': + dependencies: + asn1js: 3.0.7 + pvtsutils: 1.3.6 + tslib: 2.8.1 + + '@peculiar/asn1-x509-attr@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-x509@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + asn1js: 3.0.7 + pvtsutils: 1.3.6 + tslib: 2.8.1 + + '@peculiar/x509@1.14.2': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-csr': 2.6.0 + '@peculiar/asn1-ecc': 2.6.0 + '@peculiar/asn1-pkcs9': 2.6.0 + '@peculiar/asn1-rsa': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + pvtsutils: 1.3.6 + reflect-metadata: 0.2.2 + tslib: 2.8.1 + tsyringe: 4.10.0 + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@puppeteer/browsers@2.11.0': + dependencies: + debug: 4.4.3 + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.5.0 + semver: 7.7.3 + tar-fs: 3.1.1 + yargs: 17.7.2 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color + + '@push.rocks/consolecolor@2.0.3': + dependencies: + ansi-256-colors: 1.1.0 + + '@push.rocks/early@4.0.4': + dependencies: + '@push.rocks/consolecolor': 2.0.3 + '@push.rocks/smartpromise': 4.2.3 + + '@push.rocks/isohash@2.0.1': + dependencies: + '@pushrocks/smartenv': 5.0.5 + '@pushrocks/smarthash': 3.0.2 + + '@push.rocks/isounique@1.0.5': {} + + '@push.rocks/levelcache@3.2.0': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartbucket': 3.3.10 + '@push.rocks/smartcache': 1.0.18 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartexit': 1.1.0 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smartunique': 3.0.9 + '@push.rocks/taskbuffer': 3.5.0 + '@tsclass/tsclass': 9.3.0 + transitivePeerDependencies: + - '@nuxt/kit' + - aws-crt + - react + - supports-color + - vue + + '@push.rocks/lik@6.2.2': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartmatch': 2.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smarttime': 4.1.1 + '@types/minimatch': 5.1.2 + '@types/symbol-tree': 3.2.5 + symbol-tree: 3.2.4 + + '@push.rocks/mongodump@1.1.0(socks@2.8.7)': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@tsclass/tsclass': 9.3.0 + mongodb: 6.21.0(socks@2.8.7) + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - gcp-metadata + - kerberos + - mongodb-client-encryption + - snappy + - socks + + '@push.rocks/npmextra@5.3.3': + dependencies: + '@push.rocks/qenv': 6.1.3 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/taskbuffer': 3.5.0 + '@tsclass/tsclass': 9.3.0 + transitivePeerDependencies: + - '@nuxt/kit' + - react + - supports-color + - vue + + '@push.rocks/qenv@6.1.3': + dependencies: + '@api.global/typedrequest': 3.2.5 + '@configvault.io/interfaces': 1.0.17 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartpath': 6.0.0 + + '@push.rocks/smartarchive@4.2.4': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 13.1.2 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 4.4.2 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartstream': 3.2.5 + '@push.rocks/smartunique': 3.0.9 + '@push.rocks/smarturl': 3.1.0 + '@types/tar-stream': 3.1.4 + fflate: 0.8.2 + file-type: 21.1.1 + tar-stream: 3.1.7 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + - supports-color + + '@push.rocks/smartbrowser@2.0.8(typescript@5.9.3)': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpdf': 3.3.0(typescript@5.9.3) + '@push.rocks/smartpuppeteer': 2.0.5(typescript@5.9.3) + '@push.rocks/smartunique': 3.0.9 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - bufferutil + - react-native-b4a + - supports-color + - typescript + - utf-8-validate + + '@push.rocks/smartbucket@3.3.10': + dependencies: + '@aws-sdk/client-s3': 3.956.0 + '@push.rocks/smartmime': 2.0.4 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartstream': 3.2.5 + '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smartunique': 3.0.9 + '@tsclass/tsclass': 9.3.0 + transitivePeerDependencies: + - aws-crt + + '@push.rocks/smartbucket@4.3.0': + dependencies: + '@aws-sdk/client-s3': 3.956.0 + '@push.rocks/smartmime': 2.0.4 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartstream': 3.2.5 + '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smartunique': 3.0.9 + '@tsclass/tsclass': 9.3.0 + minimatch: 10.1.1 + transitivePeerDependencies: + - aws-crt + + '@push.rocks/smartbuffer@3.0.5': + dependencies: + uint8array-extras: 1.5.0 + + '@push.rocks/smartcache@1.0.18': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smarterror': 2.0.1 + '@push.rocks/smarthash': 3.2.6 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smarttime': 4.1.1 + + '@push.rocks/smartchok@1.2.0': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + chokidar: 5.0.0 + picomatch: 4.0.3 + + '@push.rocks/smartcli@4.0.19': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartobject': 1.0.12 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + yargs-parser: 22.0.0 + + '@push.rocks/smartclickhouse@2.0.17': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartobject': 1.0.12 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smarturl': 3.1.0 + '@push.rocks/webrequest': 3.0.37 + + '@push.rocks/smartcrypto@2.0.4': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + '@types/node-forge': 1.3.14 + node-forge: 1.3.3 + + '@push.rocks/smartdata@5.16.7(socks@2.8.7)': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartmongo': 2.0.14(socks@2.8.7) + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smartstring': 4.1.0 + '@push.rocks/smarttime': 4.1.1 + '@push.rocks/smartunique': 3.0.9 + '@push.rocks/taskbuffer': 3.5.0 + '@tsclass/tsclass': 9.3.0 + mongodb: 6.21.0(socks@2.8.7) + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - '@nuxt/kit' + - bare-abort-controller + - gcp-metadata + - kerberos + - mongodb-client-encryption + - react + - react-native-b4a + - snappy + - socks + - supports-color + - vue + + '@push.rocks/smartdelay@3.0.5': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + + '@push.rocks/smartdns@7.6.1': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 2.1.0 + '@tsclass/tsclass': 9.3.0 + '@types/dns-packet': 5.6.5 + '@types/elliptic': 6.4.18 + acme-client: 5.4.0 + dns-packet: 5.6.1 + elliptic: 6.6.1 + minimatch: 10.1.1 + transitivePeerDependencies: + - supports-color + + '@push.rocks/smartenv@5.0.13': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + + '@push.rocks/smartenv@6.0.0': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + + '@push.rocks/smarterror@2.0.1': + dependencies: + clean-stack: 1.3.0 + make-error-cause: 2.3.0 + + '@push.rocks/smartexit@1.1.0': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpromise': 4.2.3 + tree-kill: 1.2.2 + + '@push.rocks/smartexpect@2.5.0': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpromise': 4.2.3 + fast-deep-equal: 3.1.3 + + '@push.rocks/smartfeed@1.4.0': + dependencies: + '@tsclass/tsclass': 9.3.0 + fast-xml-parser: 4.5.3 + + '@push.rocks/smartfile-interfaces@1.0.7': {} + + '@push.rocks/smartfile@11.2.7': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile-interfaces': 1.0.7 + '@push.rocks/smarthash': 3.2.6 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartmime': 2.0.4 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 4.4.2 + '@push.rocks/smartstream': 3.2.5 + '@types/fs-extra': 11.0.4 + '@types/js-yaml': 4.0.9 + fs-extra: 11.3.3 + glob: 11.1.0 + js-yaml: 4.1.1 + + '@push.rocks/smartfile@13.1.2': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile-interfaces': 1.0.7 + '@push.rocks/smartfs': 1.3.1 + '@push.rocks/smarthash': 3.2.6 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartmime': 2.0.4 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 4.4.2 + '@push.rocks/smartstream': 3.2.5 + '@types/js-yaml': 4.0.9 + glob: 11.1.0 + js-yaml: 4.1.1 + + '@push.rocks/smartfs@1.3.1': + dependencies: + '@push.rocks/smartpath': 6.0.0 + + '@push.rocks/smartguard@3.1.0': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 2.1.0 + + '@push.rocks/smarthash@3.2.6': + dependencies: + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartpromise': 4.2.3 + '@types/through2': 2.0.41 + through2: 4.0.2 + + '@push.rocks/smarti18n@1.0.4': {} + + '@push.rocks/smartjson@5.2.0': + dependencies: + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartstring': 4.1.0 + fast-json-stable-stringify: 2.1.0 + lodash.clonedeep: 4.5.0 + + '@push.rocks/smartlog-destination-devtools@1.0.12': + dependencies: + '@push.rocks/smartlog-interfaces': 3.0.2 + + '@push.rocks/smartlog-destination-local@9.0.2': + dependencies: + '@push.rocks/consolecolor': 2.0.3 + '@push.rocks/smartlog-interfaces': 3.0.2 + '@push.rocks/smartpromise': 4.2.3 + + '@push.rocks/smartlog-interfaces@3.0.2': + dependencies: + '@api.global/typedrequest-interfaces': 2.0.2 + '@tsclass/tsclass': 4.4.4 + + '@push.rocks/smartlog@3.1.10': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/consolecolor': 2.0.3 + '@push.rocks/isounique': 1.0.5 + '@push.rocks/smartclickhouse': 2.0.17 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smarthash': 3.2.6 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smarttime': 4.1.1 + '@push.rocks/webrequest': 3.0.37 + '@tsclass/tsclass': 9.3.0 + + '@push.rocks/smartmanifest@2.0.2': {} + + '@push.rocks/smartmarkdown@3.0.3': + dependencies: + '@push.rocks/smartyaml': 2.0.5 + '@types/turndown': 5.0.6 + remark-frontmatter: 5.0.0 + remark-gfm: 4.0.1 + remark-html: 16.0.1 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + turndown: 7.2.2 + turndown-plugin-gfm: 1.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + '@push.rocks/smartmatch@2.0.0': + dependencies: + matcher: 5.0.0 + + '@push.rocks/smartmime@2.0.4': + dependencies: + '@types/mime-types': 2.1.4 + file-type: 19.6.0 + mime: 4.1.0 + + '@push.rocks/smartmongo@2.0.14(socks@2.8.7)': + dependencies: + '@push.rocks/mongodump': 1.1.0(socks@2.8.7) + '@push.rocks/smartdata': 5.16.7(socks@2.8.7) + '@push.rocks/smartpath': 5.1.0 + '@push.rocks/smartpromise': 4.2.3 + mongodb-memory-server: 10.4.2(socks@2.8.7) + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - '@nuxt/kit' + - bare-abort-controller + - gcp-metadata + - kerberos + - mongodb-client-encryption + - react + - react-native-b4a + - snappy + - socks + - supports-color + - vue + + '@push.rocks/smartnetwork@4.4.0': + dependencies: + '@push.rocks/smartdns': 7.6.1 + '@push.rocks/smartping': 1.0.8 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartstring': 4.1.0 + isopen: 1.3.0 + systeminformation: 5.27.14 + transitivePeerDependencies: + - supports-color + + '@push.rocks/smartnpm@2.0.6': + dependencies: + '@push.rocks/consolecolor': 2.0.3 + '@push.rocks/levelcache': 3.2.0 + '@push.rocks/smartarchive': 4.2.4 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 4.4.2 + '@push.rocks/smarttime': 4.1.1 + '@push.rocks/smartversion': 3.0.5 + package-json: 8.1.1 + transitivePeerDependencies: + - '@nuxt/kit' + - aws-crt + - bare-abort-controller + - react + - react-native-b4a + - supports-color + - vue + + '@push.rocks/smartntml@2.0.8': + dependencies: + '@design.estate/dees-element': 2.1.3 + '@happy-dom/global-registrator': 15.11.7 + '@push.rocks/smartpromise': 4.2.3 + fake-indexeddb: 6.2.5 + transitivePeerDependencies: + - '@nuxt/kit' + - react + - supports-color + - vue + + '@push.rocks/smartobject@1.0.12': + dependencies: + fast-deep-equal: 3.1.3 + minimatch: 9.0.5 + + '@push.rocks/smartopen@2.0.0': + dependencies: + open: 8.4.2 + + '@push.rocks/smartpath@5.1.0': {} + + '@push.rocks/smartpath@6.0.0': {} + + '@push.rocks/smartpdf@3.3.0(typescript@5.9.3)': + dependencies: + '@push.rocks/smartbuffer': 3.0.5 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartnetwork': 4.4.0 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartpuppeteer': 2.0.5(typescript@5.9.3) + '@push.rocks/smartunique': 3.0.9 + '@tsclass/tsclass': 9.3.0 + '@types/express': 5.0.6 + express: 5.2.1 + pdf-lib: 1.17.1 + pdf2json: 3.2.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - bufferutil + - react-native-b4a + - supports-color + - typescript + - utf-8-validate + + '@push.rocks/smartping@1.0.8': + dependencies: + '@types/ping': 0.4.4 + ping: 0.4.4 + + '@push.rocks/smartpromise@4.2.3': {} + + '@push.rocks/smartpuppeteer@2.0.5(typescript@5.9.3)': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartshell': 3.3.0 + puppeteer: 24.34.0(typescript@5.9.3) + tree-kill: 1.2.2 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - bufferutil + - react-native-b4a + - supports-color + - typescript + - utf-8-validate + + '@push.rocks/smartrequest@2.1.0': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smarturl': 3.1.0 + agentkeepalive: 4.6.0 + form-data: 4.0.5 + + '@push.rocks/smartrequest@4.4.2': + dependencies: + '@push.rocks/smartenv': 6.0.0 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smarturl': 3.1.0 + agentkeepalive: 4.6.0 + form-data: 4.0.5 + + '@push.rocks/smartrequest@5.0.1': + dependencies: + '@push.rocks/smartenv': 6.0.0 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smarturl': 3.1.0 + agentkeepalive: 4.6.0 + form-data: 4.0.5 + + '@push.rocks/smartrouter@1.3.3': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartrx': 3.0.10 + path-to-regexp: 8.3.0 + + '@push.rocks/smartrx@3.0.10': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + rxjs: 7.8.2 + + '@push.rocks/smarts3@2.2.7': + dependencies: + '@push.rocks/smartbucket': 3.3.10 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartpath': 6.0.0 + '@tsclass/tsclass': 9.3.0 + '@types/s3rver': 3.7.4 + s3rver: 3.7.1 + transitivePeerDependencies: + - aws-crt + - supports-color + + '@push.rocks/smarts3@3.0.3': + dependencies: + '@push.rocks/smartbucket': 4.3.0 + '@push.rocks/smartfs': 1.3.1 + '@push.rocks/smartpath': 6.0.0 + '@push.rocks/smartxml': 2.0.0 + '@tsclass/tsclass': 9.3.0 + transitivePeerDependencies: + - aws-crt + + '@push.rocks/smartserve@1.4.0': + dependencies: + '@api.global/typedrequest': 3.2.5 + '@cfworker/json-schema': 4.1.1 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartenv': 6.0.0 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartpath': 6.0.0 + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@push.rocks/smartshell@3.3.0': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartexit': 1.1.0 + '@push.rocks/smartpromise': 4.2.3 + '@types/which': 3.0.4 + tree-kill: 1.2.2 + which: 5.0.0 + + '@push.rocks/smartsitemap@2.0.4': + dependencies: + '@push.rocks/smartcache': 1.0.18 + '@push.rocks/smartfeed': 1.4.0 + '@push.rocks/smartxml': 2.0.0 + '@push.rocks/smartyaml': 3.0.4 + '@push.rocks/webrequest': 4.0.1 + '@tsclass/tsclass': 9.3.0 + + '@push.rocks/smartsocket@2.1.0': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + '@api.global/typedserver': 3.0.80(@push.rocks/smartserve@1.4.0) + '@push.rocks/isohash': 2.0.1 + '@push.rocks/isounique': 1.0.5 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smarttime': 4.1.1 + engine.io: 6.6.4 + socket.io: 4.8.1 + socket.io-client: 4.8.1 + transitivePeerDependencies: + - '@nuxt/kit' + - bufferutil + - react + - supports-color + - utf-8-validate + - vue + + '@push.rocks/smartspawn@3.0.3': + dependencies: + '@push.rocks/smartpromise': 4.2.3 + spawn-wrap: 2.0.0 + threads: 1.7.0 + tiny-worker: 2.3.0 + transitivePeerDependencies: + - supports-color + + '@push.rocks/smartstate@2.0.27': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smarthash': 3.2.6 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/webstore': 2.0.20 + + '@push.rocks/smartstream@3.2.5': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + + '@push.rocks/smartstring@4.1.0': + dependencies: + '@push.rocks/isounique': 1.0.5 + + '@push.rocks/smarttime@4.1.1': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartpromise': 4.2.3 + croner: 9.1.0 + date-fns: 4.1.0 + dayjs: 1.11.19 + is-nan: 1.3.2 + pretty-ms: 9.3.0 + + '@push.rocks/smartunique@3.0.9': + dependencies: + '@types/uuid': 9.0.8 + nanoid: 4.0.2 + uuid: 9.0.1 + + '@push.rocks/smarturl@3.1.0': {} + + '@push.rocks/smartversion@3.0.5': + dependencies: + '@types/semver': 7.7.1 + semver: 7.7.3 + + '@push.rocks/smartwatch@6.3.0': + dependencies: + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartenv': 6.0.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + chokidar: 5.0.0 + picomatch: 4.0.3 + + '@push.rocks/smartxml@2.0.0': + dependencies: + fast-xml-parser: 5.3.3 + + '@push.rocks/smartyaml@2.0.5': + dependencies: + '@types/js-yaml': 3.12.10 + js-yaml: 3.14.2 + + '@push.rocks/smartyaml@3.0.4': + dependencies: + yaml: 2.8.2 + + '@push.rocks/tapbundle@6.0.3(socks@2.8.7)': + dependencies: + '@open-wc/testing': 4.0.0 + '@push.rocks/consolecolor': 2.0.3 + '@push.rocks/qenv': 6.1.3 + '@push.rocks/smartcrypto': 2.0.4 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartexpect': 2.5.0 + '@push.rocks/smartfile': 11.2.7 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartmongo': 2.0.14(socks@2.8.7) + '@push.rocks/smartpath': 5.1.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrequest': 2.1.0 + '@push.rocks/smarts3': 2.2.7 + '@push.rocks/smartshell': 3.3.0 + '@push.rocks/smarttime': 4.1.1 + expect: 29.7.0 + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - aws-crt + - bare-abort-controller + - bufferutil + - gcp-metadata + - kerberos + - mongodb-client-encryption + - react-native-b4a + - snappy + - socks + - supports-color + - utf-8-validate + + '@push.rocks/taskbuffer@3.5.0': + dependencies: + '@design.estate/dees-element': 2.1.3 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartlog': 3.1.10 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@push.rocks/smarttime': 4.1.1 + '@push.rocks/smartunique': 3.0.9 + transitivePeerDependencies: + - '@nuxt/kit' + - react + - supports-color + - vue + + '@push.rocks/webrequest@3.0.37': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/webstore': 2.0.20 + + '@push.rocks/webrequest@4.0.1': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/webstore': 2.0.20 + + '@push.rocks/websetup@3.0.19': + dependencies: + '@pushrocks/smartdelay': 3.0.1 + '@pushrocks/smartpromise': 4.0.2 + '@tsclass/tsclass': 4.4.4 + + '@push.rocks/webstore@2.0.20': + dependencies: + '@api.global/typedrequest-interfaces': 3.0.19 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartenv': 5.0.13 + '@push.rocks/smartjson': 5.2.0 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smartrx': 3.0.10 + '@tempfix/idb': 8.0.3 + fake-indexeddb: 5.0.2 + + '@push.rocks/webstream@1.0.10': + dependencies: + '@push.rocks/smartenv': 5.0.13 + + '@pushrocks/isounique@1.0.5': {} + + '@pushrocks/smartdelay@3.0.1': + dependencies: + '@pushrocks/smartpromise': 4.0.2 + + '@pushrocks/smartenv@5.0.5': + dependencies: + '@pushrocks/smartpromise': 3.1.10 + + '@pushrocks/smarthash@3.0.2': + dependencies: + '@pushrocks/smartjson': 5.0.6 + '@pushrocks/smartpromise': 3.1.10 + '@types/through2': 2.0.41 + through2: 4.0.2 + + '@pushrocks/smartjson@5.0.6': + dependencies: + '@pushrocks/smartstring': 4.0.7 + '@types/buffer-json': 2.0.3 + buffer-json: 2.0.0 + fast-json-stable-stringify: 2.1.0 + lodash.clonedeep: 4.5.0 + + '@pushrocks/smartpromise@3.1.10': {} + + '@pushrocks/smartpromise@4.0.2': {} + + '@pushrocks/smartstring@4.0.7': + dependencies: + '@pushrocks/isounique': 1.0.5 + '@pushrocks/smartenv': 5.0.5 + '@types/randomatic': 3.1.5 + buffer: 6.0.3 + crypto-random-string: 5.0.0 + js-base64: 3.7.8 + normalize-newline: 4.1.0 + randomatic: 3.1.1 + strip-indent: 4.1.1 + url: 0.11.4 + + '@remirror/core-constants@3.0.0': {} + + '@rolldown/binding-android-arm64@1.0.0-beta.52': + optional: true + + '@rolldown/binding-darwin-arm64@1.0.0-beta.52': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-beta.52': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-beta.52': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.52': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.52': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.52': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.52': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.52': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.0-beta.52': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.52': + dependencies: + '@napi-rs/wasm-runtime': 1.1.0 + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.52': + optional: true + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.52': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.52': + optional: true + + '@rolldown/pluginutils@1.0.0-beta.52': {} + + '@rspack/binding-darwin-arm64@1.6.8': + optional: true + + '@rspack/binding-darwin-x64@1.6.8': + optional: true + + '@rspack/binding-linux-arm64-gnu@1.6.8': + optional: true + + '@rspack/binding-linux-arm64-musl@1.6.8': + optional: true + + '@rspack/binding-linux-x64-gnu@1.6.8': + optional: true + + '@rspack/binding-linux-x64-musl@1.6.8': + optional: true + + '@rspack/binding-wasm32-wasi@1.6.8': + dependencies: + '@napi-rs/wasm-runtime': 1.0.7 + optional: true + + '@rspack/binding-win32-arm64-msvc@1.6.8': + optional: true + + '@rspack/binding-win32-ia32-msvc@1.6.8': + optional: true + + '@rspack/binding-win32-x64-msvc@1.6.8': + optional: true + + '@rspack/binding@1.6.8': + optionalDependencies: + '@rspack/binding-darwin-arm64': 1.6.8 + '@rspack/binding-darwin-x64': 1.6.8 + '@rspack/binding-linux-arm64-gnu': 1.6.8 + '@rspack/binding-linux-arm64-musl': 1.6.8 + '@rspack/binding-linux-x64-gnu': 1.6.8 + '@rspack/binding-linux-x64-musl': 1.6.8 + '@rspack/binding-wasm32-wasi': 1.6.8 + '@rspack/binding-win32-arm64-msvc': 1.6.8 + '@rspack/binding-win32-ia32-msvc': 1.6.8 + '@rspack/binding-win32-x64-msvc': 1.6.8 + + '@rspack/core@1.6.8': + dependencies: + '@module-federation/runtime-tools': 0.21.6 + '@rspack/binding': 1.6.8 + '@rspack/lite-tapable': 1.1.0 + + '@rspack/lite-tapable@1.1.0': {} + + '@sec-ant/readable-stream@0.4.1': {} + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/is@5.6.0': {} + + '@smithy/abort-controller@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader-native@4.2.1': + dependencies: + '@smithy/util-base64': 4.3.0 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader@5.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/config-resolver@4.4.5': + dependencies: + '@smithy/node-config-provider': 4.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + tslib: 2.8.1 + + '@smithy/core@3.20.0': + dependencies: + '@smithy/middleware-serde': 4.2.8 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-stream': 4.5.8 + '@smithy/util-utf8': 4.2.0 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.2.7': + dependencies: + '@smithy/node-config-provider': 4.3.7 + '@smithy/property-provider': 4.2.7 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.2.7': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.11.0 + '@smithy/util-hex-encoding': 4.2.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.2.7': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-config-resolver@4.3.7': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-node@4.2.7': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-universal@4.2.7': + dependencies: + '@smithy/eventstream-codec': 4.2.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.3.8': + dependencies: + '@smithy/protocol-http': 5.3.7 + '@smithy/querystring-builder': 4.2.7 + '@smithy/types': 4.11.0 + '@smithy/util-base64': 4.3.0 + tslib: 2.8.1 + + '@smithy/hash-blob-browser@4.2.8': + dependencies: + '@smithy/chunked-blob-reader': 5.2.0 + '@smithy/chunked-blob-reader-native': 4.2.1 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/hash-node@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/hash-stream-node@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/is-array-buffer@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/is-array-buffer@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/md5-js@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.2.7': + dependencies: + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.4.1': + dependencies: + '@smithy/core': 3.20.0 + '@smithy/middleware-serde': 4.2.8 + '@smithy/node-config-provider': 4.3.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-middleware': 4.2.7 + tslib: 2.8.1 + + '@smithy/middleware-retry@4.4.17': + dependencies: + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/service-error-classification': 4.2.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + + '@smithy/middleware-serde@4.2.8': + dependencies: + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.3.7': + dependencies: + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.4.7': + dependencies: + '@smithy/abort-controller': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/querystring-builder': 4.2.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/property-provider@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/protocol-http@5.3.7': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + '@smithy/util-uri-escape': 4.2.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/service-error-classification@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + + '@smithy/shared-ini-file-loader@4.4.2': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/signature-v4@5.3.7': + dependencies: + '@smithy/is-array-buffer': 4.2.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-uri-escape': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/smithy-client@4.10.2': + dependencies: + '@smithy/core': 3.20.0 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-stack': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-stream': 4.5.8 + tslib: 2.8.1 + + '@smithy/types@4.11.0': + dependencies: + tslib: 2.8.1 + + '@smithy/url-parser@4.2.7': + dependencies: + '@smithy/querystring-parser': 4.2.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/util-base64@4.3.0': + dependencies: + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-body-length-browser@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-node@4.2.1': + dependencies: + tslib: 2.8.1 + + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-buffer-from@4.2.0': + dependencies: + '@smithy/is-array-buffer': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-config-provider@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.3.16': + dependencies: + '@smithy/property-provider': 4.2.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@4.2.19': + dependencies: + '@smithy/config-resolver': 4.4.5 + '@smithy/credential-provider-imds': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/property-provider': 4.2.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.2.7': + dependencies: + '@smithy/node-config-provider': 4.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/util-hex-encoding@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-middleware@4.2.7': + dependencies: + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/util-retry@4.2.7': + dependencies: + '@smithy/service-error-classification': 4.2.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/util-stream@4.5.8': + dependencies: + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/node-http-handler': 4.4.7 + '@smithy/types': 4.11.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-uri-escape@4.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-utf8@4.2.0': + dependencies: + '@smithy/util-buffer-from': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-waiter@4.2.7': + dependencies: + '@smithy/abort-controller': 4.2.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@smithy/uuid@1.1.0': + dependencies: + tslib: 2.8.1 + + '@so-ric/colorspace@1.1.6': + dependencies: + color: 5.0.3 + text-hex: 1.0.0 + + '@socket.io/component-emitter@3.1.2': {} + + '@svgdotjs/svg.draggable.js@3.0.6(@svgdotjs/svg.js@3.2.5)': + dependencies: + '@svgdotjs/svg.js': 3.2.5 + + '@svgdotjs/svg.filter.js@3.0.9': + dependencies: + '@svgdotjs/svg.js': 3.2.5 + + '@svgdotjs/svg.js@3.2.5': {} + + '@svgdotjs/svg.resize.js@2.0.5(@svgdotjs/svg.js@3.2.5)(@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5))': + dependencies: + '@svgdotjs/svg.js': 3.2.5 + '@svgdotjs/svg.select.js': 4.0.3(@svgdotjs/svg.js@3.2.5) + + '@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5)': + dependencies: + '@svgdotjs/svg.js': 3.2.5 + + '@szmarczak/http-timer@5.0.1': + dependencies: + defer-to-connect: 2.0.1 + + '@tempfix/idb@8.0.3': {} + + '@tiptap/core@2.27.1(@tiptap/pm@2.27.1)': + dependencies: + '@tiptap/pm': 2.27.1 + + '@tiptap/extension-blockquote@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-bold@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-bullet-list@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-code-block@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/pm': 2.27.1 + + '@tiptap/extension-code@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-document@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-dropcursor@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/pm': 2.27.1 + + '@tiptap/extension-gapcursor@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/pm': 2.27.1 + + '@tiptap/extension-hard-break@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-heading@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-history@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/pm': 2.27.1 + + '@tiptap/extension-horizontal-rule@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/pm': 2.27.1 + + '@tiptap/extension-italic@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-link@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1)': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/pm': 2.27.1 + linkifyjs: 4.3.2 + + '@tiptap/extension-list-item@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-ordered-list@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-paragraph@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-strike@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-text-align@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-text-style@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-text@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-typography@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/extension-underline@2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + + '@tiptap/pm@2.27.1': + dependencies: + prosemirror-changeset: 2.3.1 + prosemirror-collab: 1.3.1 + prosemirror-commands: 1.7.1 + prosemirror-dropcursor: 1.8.2 + prosemirror-gapcursor: 1.4.0 + prosemirror-history: 1.5.0 + prosemirror-inputrules: 1.5.1 + prosemirror-keymap: 1.2.3 + prosemirror-markdown: 1.13.2 + prosemirror-menu: 1.2.5 + prosemirror-model: 1.25.4 + prosemirror-schema-basic: 1.2.4 + prosemirror-schema-list: 1.5.1 + prosemirror-state: 1.4.4 + prosemirror-tables: 1.8.3 + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4) + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.4 + + '@tiptap/starter-kit@2.27.1': + dependencies: + '@tiptap/core': 2.27.1(@tiptap/pm@2.27.1) + '@tiptap/extension-blockquote': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-bold': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-bullet-list': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-code': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-code-block': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) + '@tiptap/extension-document': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-dropcursor': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) + '@tiptap/extension-gapcursor': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) + '@tiptap/extension-hard-break': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-heading': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-history': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) + '@tiptap/extension-horizontal-rule': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1))(@tiptap/pm@2.27.1) + '@tiptap/extension-italic': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-list-item': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-ordered-list': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-paragraph': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-strike': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-text': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/extension-text-style': 2.27.1(@tiptap/core@2.27.1(@tiptap/pm@2.27.1)) + '@tiptap/pm': 2.27.1 + + '@tokenizer/inflate@0.4.1': + dependencies: + debug: 4.4.3 + token-types: 6.1.1 + transitivePeerDependencies: + - supports-color + + '@tokenizer/token@0.3.0': {} + + '@tootallnate/quickjs-emscripten@0.23.0': {} + + '@tsclass/tsclass@4.4.4': + dependencies: + type-fest: 4.41.0 + + '@tsclass/tsclass@9.3.0': + dependencies: + type-fest: 4.41.0 + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/accepts@1.3.7': + dependencies: + '@types/node': 25.0.3 + + '@types/babel__code-frame@7.0.6': {} + + '@types/bn.js@5.2.0': + dependencies: + '@types/node': 25.0.3 + + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 25.0.3 + + '@types/buffer-json@2.0.3': {} + + '@types/chai-dom@1.11.3': + dependencies: + '@types/chai': 5.2.3 + + '@types/chai@4.3.20': {} + + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + + '@types/clean-css@4.2.11': + dependencies: + '@types/node': 25.0.3 + source-map: 0.6.1 + + '@types/co-body@6.1.3': + dependencies: + '@types/node': 25.0.3 + '@types/qs': 6.14.0 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 25.0.3 + + '@types/content-disposition@0.5.9': {} + + '@types/convert-source-map@2.0.3': {} + + '@types/cookies@0.9.2': + dependencies: + '@types/connect': 3.4.38 + '@types/express': 5.0.6 + '@types/keygrip': 1.0.6 + '@types/node': 25.0.3 + + '@types/cors@2.8.19': + dependencies: + '@types/node': 25.0.3 + + '@types/debounce@1.2.4': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/deep-eql@4.0.2': {} + + '@types/dns-packet@5.6.5': + dependencies: + '@types/node': 25.0.3 + + '@types/elliptic@6.4.18': + dependencies: + '@types/bn.js': 5.2.0 + + '@types/express-serve-static-core@5.1.0': + dependencies: + '@types/node': 25.0.3 + '@types/qs': 6.14.0 + '@types/range-parser': 1.2.7 + '@types/send': 1.2.1 + + '@types/express@5.0.6': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 5.1.0 + '@types/serve-static': 2.2.0 + + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 25.0.3 + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/html-minifier@4.0.6': + dependencies: + '@types/clean-css': 4.2.11 + '@types/relateurl': 0.2.33 + '@types/uglify-js': 3.17.5 + + '@types/http-assert@1.5.6': {} + + '@types/http-cache-semantics@4.0.4': {} + + '@types/http-errors@2.0.5': {} + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/js-yaml@3.12.10': {} + + '@types/js-yaml@4.0.9': {} + + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 25.0.3 + + '@types/keygrip@1.0.6': {} + + '@types/koa-compose@3.2.9': + dependencies: + '@types/koa': 2.15.0 + + '@types/koa@2.15.0': + dependencies: + '@types/accepts': 1.3.7 + '@types/content-disposition': 0.5.9 + '@types/cookies': 0.9.2 + '@types/http-assert': 1.5.6 + '@types/http-errors': 2.0.5 + '@types/keygrip': 1.0.6 + '@types/koa-compose': 3.2.9 + '@types/node': 25.0.3 + + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdurl@2.0.0': {} + + '@types/mime-types@2.1.4': {} + + '@types/minimatch@5.1.2': {} + + '@types/ms@2.1.0': {} + + '@types/node-forge@1.3.14': + dependencies: + '@types/node': 25.0.3 + + '@types/node@25.0.3': + dependencies: + undici-types: 7.16.0 + + '@types/parse5@6.0.3': {} + + '@types/ping@0.4.4': {} + + '@types/qs@6.14.0': {} + + '@types/randomatic@3.1.5': {} + + '@types/range-parser@1.2.7': {} + + '@types/relateurl@0.2.33': {} + + '@types/s3rver@3.7.4': + dependencies: + '@types/node': 25.0.3 + + '@types/semver@7.7.1': {} + + '@types/send@1.2.1': + dependencies: + '@types/node': 25.0.3 + + '@types/serve-static@2.2.0': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 25.0.3 + + '@types/sinon-chai@3.2.12': + dependencies: + '@types/chai': 5.2.3 + '@types/sinon': 21.0.0 + + '@types/sinon@21.0.0': + dependencies: + '@types/sinonjs__fake-timers': 15.0.1 + + '@types/sinonjs__fake-timers@15.0.1': {} + + '@types/stack-utils@2.0.3': {} + + '@types/symbol-tree@3.2.5': {} + + '@types/tar-stream@3.1.4': + dependencies: + '@types/node': 25.0.3 + + '@types/through2@2.0.41': + dependencies: + '@types/node': 25.0.3 + + '@types/triple-beam@1.3.5': {} + + '@types/trusted-types@2.0.7': {} + + '@types/turndown@5.0.6': {} + + '@types/uglify-js@3.17.5': + dependencies: + source-map: 0.6.1 + + '@types/unist@3.0.3': {} + + '@types/uuid@9.0.8': {} + + '@types/webidl-conversions@7.0.3': {} + + '@types/whatwg-url@11.0.5': + dependencies: + '@types/webidl-conversions': 7.0.3 + + '@types/which@3.0.4': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 25.0.3 + + '@types/ws@8.18.1': + dependencies: + '@types/node': 25.0.3 + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.35': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 25.0.3 + optional: true + + '@ungap/structured-clone@1.3.0': {} + + '@web/browser-logs@0.4.1': + dependencies: + errorstacks: 2.4.1 + + '@web/dev-server-core@0.7.5': + dependencies: + '@types/koa': 2.15.0 + '@types/ws': 7.4.7 + '@web/parse5-utils': 2.1.0 + chokidar: 4.0.3 + clone: 2.1.2 + es-module-lexer: 1.7.0 + get-stream: 6.0.1 + is-stream: 2.0.1 + isbinaryfile: 5.0.7 + koa: 2.16.3 + koa-etag: 4.0.0 + koa-send: 5.0.1 + koa-static: 5.0.0 + lru-cache: 8.0.5 + mime-types: 2.1.35 + parse5: 6.0.1 + picomatch: 2.3.1 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@web/parse5-utils@2.1.0': + dependencies: + '@types/parse5': 6.0.3 + parse5: 6.0.1 + + '@web/test-runner-commands@0.9.0': + dependencies: + '@web/test-runner-core': 0.13.4 + mkdirp: 1.0.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@web/test-runner-core@0.13.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@types/babel__code-frame': 7.0.6 + '@types/co-body': 6.1.3 + '@types/convert-source-map': 2.0.3 + '@types/debounce': 1.2.4 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@web/browser-logs': 0.4.1 + '@web/dev-server-core': 0.7.5 + chokidar: 4.0.3 + cli-cursor: 3.1.0 + co-body: 6.2.0 + convert-source-map: 2.0.0 + debounce: 1.2.1 + dependency-graph: 0.11.0 + globby: 11.1.0 + internal-ip: 6.2.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + log-update: 4.0.0 + nanocolors: 0.2.13 + nanoid: 3.3.11 + open: 8.4.2 + picomatch: 2.3.1 + source-map: 0.7.6 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@webcontainer/api@1.2.0': {} + + '@yr/monotone-cubic-spline@1.0.3': {} + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + accepts@2.0.0: + dependencies: + mime-types: 3.0.2 + negotiator: 1.0.0 + + acme-client@5.4.0: + dependencies: + '@peculiar/x509': 1.14.2 + asn1js: 3.0.7 + axios: 1.13.2(debug@4.4.3) + debug: 4.4.3 + node-forge: 1.3.3 + transitivePeerDependencies: + - supports-color + + agent-base@7.1.4: {} + + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + + ansi-256-colors@1.1.0: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.3: {} + + apexcharts@5.3.6: + dependencies: + '@svgdotjs/svg.draggable.js': 3.0.6(@svgdotjs/svg.js@3.2.5) + '@svgdotjs/svg.filter.js': 3.0.9 + '@svgdotjs/svg.js': 3.2.5 + '@svgdotjs/svg.resize.js': 2.0.5(@svgdotjs/svg.js@3.2.5)(@svgdotjs/svg.select.js@4.0.3(@svgdotjs/svg.js@3.2.5)) + '@svgdotjs/svg.select.js': 4.0.3(@svgdotjs/svg.js@3.2.5) + '@yr/monotone-cubic-spline': 1.0.3 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-union@2.1.0: {} + + asn1js@3.0.7: + dependencies: + pvtsutils: 1.3.6 + pvutils: 1.1.5 + tslib: 2.8.1 + + assertion-error@2.0.1: {} + + ast-types@0.13.4: + dependencies: + tslib: 2.8.1 + + astral-regex@2.0.0: {} + + async-mutex@0.5.0: + dependencies: + tslib: 2.8.1 + + async@3.2.6: {} + + asynckit@0.4.0: {} + + axe-core@4.11.0: {} + + axios@1.13.2(debug@4.4.3): + dependencies: + follow-redirects: 1.15.11(debug@4.4.3) + form-data: 4.0.5 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + b4a@1.7.3: {} + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + bare-events@2.8.2: {} + + bare-fs@4.5.2: + dependencies: + bare-events: 2.8.2 + bare-path: 3.0.0 + bare-stream: 2.7.0(bare-events@2.8.2) + bare-url: 2.3.2 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + optional: true + + bare-os@3.6.2: + optional: true + + bare-path@3.0.0: + dependencies: + bare-os: 3.6.2 + optional: true + + bare-stream@2.7.0(bare-events@2.8.2): + dependencies: + streamx: 2.23.0 + optionalDependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + optional: true + + bare-url@2.3.2: + dependencies: + bare-path: 3.0.0 + optional: true + + base64-js@1.5.1: {} + + base64id@2.0.0: {} + + basic-ftp@5.0.5: {} + + bn.js@4.12.2: {} + + body-parser@2.2.1: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.3 + http-errors: 2.0.1 + iconv-lite: 0.7.1 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.2 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + + bowser@2.13.1: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + broadcast-channel@7.2.0: + dependencies: + '@babel/runtime': 7.28.4 + oblivious-set: 2.0.0 + p-queue: 6.6.2 + unload: 2.4.1 + + brorand@1.1.0: {} + + bson@6.10.4: {} + + buffer-crc32@0.2.13: {} + + buffer-json@2.0.0: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + busboy@0.3.1: + dependencies: + dicer: 0.3.0 + + bytes@3.1.2: {} + + cache-content-type@1.0.1: + dependencies: + mime-types: 2.1.35 + ylru: 1.4.0 + + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: + dependencies: + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 + http-cache-semantics: 4.2.0 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.1.0 + responselike: 3.0.0 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camel-case@3.0.0: + dependencies: + no-case: 2.3.2 + upper-case: 1.1.3 + + camelcase@6.3.0: {} + + ccount@2.0.1: {} + + chai-a11y-axe@1.5.0: + dependencies: + axe-core: 4.11.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + chromium-bidi@12.0.1(devtools-protocol@0.0.1534754): + dependencies: + devtools-protocol: 0.0.1534754 + mitt: 3.0.1 + zod: 3.25.76 + + ci-info@3.9.0: {} + + clean-css@4.2.4: + dependencies: + source-map: 0.6.1 + + clean-stack@1.3.0: {} + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@2.1.2: {} + + co-body@6.2.0: + dependencies: + '@hapi/bourne': 3.0.0 + inflation: 2.1.0 + qs: 6.14.0 + raw-body: 2.5.3 + type-is: 1.6.18 + + co@4.6.0: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-convert@3.1.3: + dependencies: + color-name: 2.1.0 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-name@2.1.0: {} + + color-string@2.1.4: + dependencies: + color-name: 2.1.0 + + color@5.0.3: + dependencies: + color-convert: 3.1.3 + color-string: 2.1.4 + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + + commander@2.20.3: {} + + commander@5.1.0: {} + + commondir@1.0.1: {} + + concat-map@0.0.1: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-disposition@1.0.1: {} + + content-type@1.0.5: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.2.2: {} + + cookie@0.7.2: {} + + cookies@0.9.1: + dependencies: + depd: 2.0.0 + keygrip: 1.1.0 + + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + cosmiconfig@9.0.0(typescript@5.9.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.9.3 + + crelt@1.0.6: {} + + croner@9.1.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-random-string@5.0.0: + dependencies: + type-fest: 2.19.0 + + data-uri-to-buffer@6.0.2: {} + + date-fns@4.1.0: {} + + dayjs@1.11.19: {} + + debounce@1.2.1: {} + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.2.0: + dependencies: + character-entities: 2.0.2 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-equal@1.0.1: {} + + deep-extend@0.6.0: {} + + default-gateway@6.0.3: + dependencies: + execa: 5.1.1 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-lazy-prop@2.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + degenerator@5.0.1: + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + + delayed-stream@1.0.0: {} + + delegates@1.0.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + dependency-graph@0.11.0: {} + + dequal@2.0.3: {} + + destroy@1.2.0: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + devtools-protocol@0.0.1534754: {} + + dicer@0.3.0: + dependencies: + streamsearch: 0.1.2 + + diff-sequences@29.6.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dns-packet@5.6.1: + dependencies: + '@leichtgewicht/ip-codec': 2.0.5 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + + elliptic@6.6.1: + dependencies: + bn.js: 4.12.2 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enabled@2.0.0: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + engine.io-client@6.6.3: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + xmlhttprequest-ssl: 2.1.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.3: {} + + engine.io@6.6.4: + dependencies: + '@types/cors': 2.8.19 + '@types/node': 25.0.3 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.7.2 + cors: 2.8.5 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + entities@4.5.0: {} + + env-paths@2.2.1: {} + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + errorstacks@2.4.1: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@1.7.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + esbuild@0.27.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.2 + '@esbuild/android-arm': 0.27.2 + '@esbuild/android-arm64': 0.27.2 + '@esbuild/android-x64': 0.27.2 + '@esbuild/darwin-arm64': 0.27.2 + '@esbuild/darwin-x64': 0.27.2 + '@esbuild/freebsd-arm64': 0.27.2 + '@esbuild/freebsd-x64': 0.27.2 + '@esbuild/linux-arm': 0.27.2 + '@esbuild/linux-arm64': 0.27.2 + '@esbuild/linux-ia32': 0.27.2 + '@esbuild/linux-loong64': 0.27.2 + '@esbuild/linux-mips64el': 0.27.2 + '@esbuild/linux-ppc64': 0.27.2 + '@esbuild/linux-riscv64': 0.27.2 + '@esbuild/linux-s390x': 0.27.2 + '@esbuild/linux-x64': 0.27.2 + '@esbuild/netbsd-arm64': 0.27.2 + '@esbuild/netbsd-x64': 0.27.2 + '@esbuild/openbsd-arm64': 0.27.2 + '@esbuild/openbsd-x64': 0.27.2 + '@esbuild/openharmony-arm64': 0.27.2 + '@esbuild/sunos-x64': 0.27.2 + '@esbuild/win32-arm64': 0.27.2 + '@esbuild/win32-ia32': 0.27.2 + '@esbuild/win32-x64': 0.27.2 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + esm@3.2.25: {} + + esprima@4.0.1: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + eventemitter3@4.0.7: {} + + events-universal@1.0.1: + dependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + + express-force-ssl@0.3.2: + dependencies: + lodash.assign: 3.2.0 + + express@5.2.1: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.1 + content-disposition: 1.0.1 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.3 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.1 + fresh: 2.0.0 + http-errors: 2.0.1 + merge-descriptors: 2.0.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.14.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.1 + serve-static: 2.2.1 + statuses: 2.0.2 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + extend@3.0.2: {} + + extract-zip@2.0.1: + dependencies: + debug: 4.4.3 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + fake-indexeddb@5.0.2: {} + + fake-indexeddb@6.2.5: {} + + fast-deep-equal@3.1.3: {} + + fast-fifo@1.3.2: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-xml-parser@3.21.1: + dependencies: + strnum: 1.1.2 + + fast-xml-parser@4.5.3: + dependencies: + strnum: 1.1.2 + + fast-xml-parser@5.2.5: + dependencies: + strnum: 2.1.2 + + fast-xml-parser@5.3.3: + dependencies: + strnum: 2.1.2 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fault@2.0.1: + dependencies: + format: 0.2.2 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fecha@4.2.3: {} + + fflate@0.8.2: {} + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + + file-type@19.6.0: + dependencies: + get-stream: 9.0.1 + strtok3: 9.1.1 + token-types: 6.1.1 + uint8array-extras: 1.5.0 + + file-type@21.1.1: + dependencies: + '@tokenizer/inflate': 0.4.1 + strtok3: 10.3.4 + token-types: 6.1.1 + uint8array-extras: 1.5.0 + transitivePeerDependencies: + - supports-color + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@2.1.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + find-cache-dir@3.3.2: + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + fn.name@1.1.0: {} + + follow-redirects@1.15.11(debug@4.4.3): + optionalDependencies: + debug: 4.4.3 + + foreground-child@2.0.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 3.0.7 + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data-encoder@2.1.4: {} + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + format@0.2.2: {} + + forwarded@0.2.0: {} + + fresh@0.5.2: {} + + fresh@2.0.0: {} + + fs-extra@11.3.3: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + generator-function@2.0.1: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@5.2.0: + dependencies: + pump: 3.0.3 + + get-stream@6.0.1: {} + + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + + get-tsconfig@4.13.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + get-uri@6.0.5: + dependencies: + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@11.1.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.1.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.2.0: {} + + got@12.6.1: + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + + graceful-fs@4.2.10: {} + + graceful-fs@4.2.11: {} + + happy-dom@15.11.7: + dependencies: + entities: 4.5.0 + webidl-conversions: 7.0.0 + whatwg-mimetype: 3.0.0 + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-sanitize@5.0.2: + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.3.0 + unist-util-position: 5.0.0 + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + he@1.2.0: {} + + highlight.js@11.11.1: {} + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + html-escaper@2.0.2: {} + + html-minifier@4.0.0: + dependencies: + camel-case: 3.0.0 + clean-css: 4.2.4 + commander: 2.20.3 + he: 1.2.0 + param-case: 2.1.1 + relateurl: 0.2.7 + uglify-js: 3.19.3 + + html-void-elements@3.0.0: {} + + http-assert@1.5.0: + dependencies: + deep-equal: 1.0.1 + http-errors: 1.8.1 + + http-cache-semantics@4.2.0: {} + + http-errors@1.6.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + + http-errors@1.8.1: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + http2-wrapper@2.2.1: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + humanize-number@0.0.2: {} + + ibantools@4.5.1: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.7.1: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + inflation@2.1.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + ini@1.3.8: {} + + internal-ip@6.2.0: + dependencies: + default-gateway: 6.0.3 + ipaddr.js: 1.9.1 + is-ip: 3.1.0 + p-event: 4.2.0 + + ip-address@10.1.0: {} + + ip-regex@4.3.0: {} + + ipaddr.js@1.9.1: {} + + is-arrayish@0.2.1: {} + + is-docker@2.2.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-ip@3.1.0: + dependencies: + ip-regex: 4.3.0 + + is-nan@1.3.2: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + is-number@4.0.0: {} + + is-number@7.0.0: {} + + is-observable@2.1.0: {} + + is-plain-obj@4.1.0: {} + + is-promise@4.0.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-stream@2.0.1: {} + + is-stream@4.0.1: {} + + is-unicode-supported@2.1.0: {} + + is-windows@1.0.2: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isbinaryfile@5.0.7: {} + + isexe@2.0.0: {} + + isexe@3.1.1: {} + + isopen@1.3.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 25.0.3 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + js-base64@3.7.8: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keygrip@1.1.0: + dependencies: + tsscmp: 1.0.6 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + koa-compose@4.1.0: {} + + koa-convert@2.0.0: + dependencies: + co: 4.6.0 + koa-compose: 4.1.0 + + koa-etag@4.0.0: + dependencies: + etag: 1.8.1 + + koa-logger@3.2.1: + dependencies: + bytes: 3.1.2 + chalk: 2.4.2 + humanize-number: 0.0.2 + passthrough-counter: 1.0.0 + + koa-send@5.0.1: + dependencies: + debug: 4.4.3 + http-errors: 1.8.1 + resolve-path: 1.4.0 + transitivePeerDependencies: + - supports-color + + koa-static@5.0.0: + dependencies: + debug: 3.2.7 + koa-send: 5.0.1 + transitivePeerDependencies: + - supports-color + + koa@2.16.3: + dependencies: + accepts: 1.3.8 + cache-content-type: 1.0.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.9.1 + debug: 4.4.3 + delegates: 1.0.0 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 1.8.1 + is-generator-function: 1.1.2 + koa-compose: 4.1.0 + koa-convert: 2.0.0 + on-finished: 2.4.1 + only: 0.0.2 + parseurl: 1.3.3 + statuses: 1.5.0 + type-is: 1.6.18 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + kuler@2.0.0: {} + + lenis@1.3.16: {} + + lines-and-columns@1.2.4: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + linkifyjs@4.3.2: {} + + lit-element@4.2.1: + dependencies: + '@lit-labs/ssr-dom-shim': 1.4.0 + '@lit/reactive-element': 2.1.1 + lit-html: 3.3.1 + + lit-html@3.3.1: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.3.1: + dependencies: + '@lit/reactive-element': 2.1.1 + lit-element: 4.2.1 + lit-html: 3.3.1 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + lodash._baseassign@3.2.0: + dependencies: + lodash._basecopy: 3.0.1 + lodash.keys: 3.1.2 + + lodash._basecopy@3.0.1: {} + + lodash._bindcallback@3.0.1: {} + + lodash._createassigner@3.1.1: + dependencies: + lodash._bindcallback: 3.0.1 + lodash._isiterateecall: 3.0.9 + lodash.restparam: 3.6.1 + + lodash._getnative@3.9.1: {} + + lodash._isiterateecall@3.0.9: {} + + lodash.assign@3.2.0: + dependencies: + lodash._baseassign: 3.2.0 + lodash._createassigner: 3.1.1 + lodash.keys: 3.1.2 + + lodash.clonedeep@4.5.0: {} + + lodash.isarguments@3.1.0: {} + + lodash.isarray@3.0.4: {} + + lodash.keys@3.1.2: + dependencies: + lodash._getnative: 3.9.1 + lodash.isarguments: 3.1.0 + lodash.isarray: 3.0.4 + + lodash.restparam@3.6.1: {} + + lodash@4.17.21: {} + + log-update@4.0.0: + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + + logform@2.7.0: + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.5.0 + triple-beam: 1.4.1 + + longest-streak@3.1.0: {} + + lower-case@1.1.4: {} + + lowercase-keys@3.0.0: {} + + lru-cache@11.2.4: {} + + lru-cache@7.18.3: {} + + lru-cache@8.0.5: {} + + lucide@0.562.0: {} + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + make-dir@4.0.0: + dependencies: + semver: 7.7.3 + + make-error-cause@2.3.0: + dependencies: + make-error: 1.3.6 + + make-error@1.3.6: {} + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + markdown-table@3.0.4: {} + + matcher@5.0.0: + dependencies: + escape-string-regexp: 5.0.0 + + math-intrinsics@1.1.0: {} + + math-random@1.0.4: {} + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdurl@2.0.0: {} + + media-typer@0.3.0: {} + + media-typer@1.1.0: {} + + memory-pager@1.5.0: {} + + merge-descriptors@2.0.0: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.2.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + + mime@4.1.0: {} + + mimic-fn@2.1.0: {} + + mimic-response@3.1.0: {} + + mimic-response@4.0.0: {} + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + minimatch@10.1.1: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mitt@3.0.1: {} + + mkdirp@1.0.4: {} + + monaco-editor@0.52.2: {} + + mongodb-connection-string-url@3.0.2: + dependencies: + '@types/whatwg-url': 11.0.5 + whatwg-url: 14.2.0 + + mongodb-memory-server-core@10.4.2(socks@2.8.7): + dependencies: + async-mutex: 0.5.0 + camelcase: 6.3.0 + debug: 4.4.3 + find-cache-dir: 3.3.2 + follow-redirects: 1.15.11(debug@4.4.3) + https-proxy-agent: 7.0.6 + mongodb: 6.21.0(socks@2.8.7) + new-find-package-json: 2.0.0 + semver: 7.7.3 + tar-stream: 3.1.7 + tslib: 2.8.1 + yauzl: 3.2.0 + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - bare-abort-controller + - gcp-metadata + - kerberos + - mongodb-client-encryption + - react-native-b4a + - snappy + - socks + - supports-color + + mongodb-memory-server@10.4.2(socks@2.8.7): + dependencies: + mongodb-memory-server-core: 10.4.2(socks@2.8.7) + tslib: 2.8.1 + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - bare-abort-controller + - gcp-metadata + - kerberos + - mongodb-client-encryption + - react-native-b4a + - snappy + - socks + - supports-color + + mongodb@6.21.0(socks@2.8.7): + dependencies: + '@mongodb-js/saslprep': 1.4.4 + bson: 6.10.4 + mongodb-connection-string-url: 3.0.2 + optionalDependencies: + socks: 2.8.7 + + ms@2.1.3: {} + + nanocolors@0.2.13: {} + + nanoid@3.3.11: {} + + nanoid@4.0.2: {} + + negotiator@0.6.3: {} + + negotiator@1.0.0: {} + + netmask@2.0.2: {} + + new-find-package-json@2.0.0: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + no-case@2.3.2: + dependencies: + lower-case: 1.1.4 + + node-forge@1.3.3: {} + + normalize-newline@4.1.0: + dependencies: + replace-buffer: 1.2.1 + + normalize-url@8.1.0: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + oblivious-set@2.0.0: {} + + observable-fns@0.6.1: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + one-time@1.0.0: + dependencies: + fn.name: 1.1.0 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + only@0.0.2: {} + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + orderedmap@2.1.1: {} + + p-cancelable@3.0.0: {} + + p-event@4.2.0: + dependencies: + p-timeout: 3.2.0 + + p-finally@1.0.0: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + p-try@2.2.0: {} + + pac-proxy-agent@7.2.0: + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.4 + debug: 4.4.3 + get-uri: 6.0.5 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + pac-resolver: 7.0.1 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + pac-resolver@7.0.1: + dependencies: + degenerator: 5.0.1 + netmask: 2.0.2 + + package-json-from-dist@1.0.1: {} + + package-json@8.1.1: + dependencies: + got: 12.6.1 + registry-auth-token: 5.1.0 + registry-url: 6.0.1 + semver: 7.7.3 + + pako@1.0.11: {} + + param-case@2.1.1: + dependencies: + no-case: 2.3.2 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-ms@4.0.0: {} + + parse5@6.0.1: {} + + parseurl@1.3.3: {} + + passthrough-counter@1.0.0: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-scurry@2.0.1: + dependencies: + lru-cache: 11.2.4 + minipass: 7.1.2 + + path-to-regexp@6.3.0: {} + + path-to-regexp@8.3.0: {} + + path-type@4.0.0: {} + + pdf-lib@1.17.1: + dependencies: + '@pdf-lib/standard-fonts': 1.0.0 + '@pdf-lib/upng': 1.0.1 + pako: 1.0.11 + tslib: 1.14.1 + + pdf2json@3.2.0: {} + + pdfjs-dist@4.10.38: + optionalDependencies: + '@napi-rs/canvas': 0.1.86 + + peek-readable@5.4.2: {} + + pend@1.2.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + ping@0.4.4: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + pretty-ms@9.3.0: + dependencies: + parse-ms: 4.0.0 + + progress@2.0.3: {} + + property-information@7.1.0: {} + + prosemirror-changeset@2.3.1: + dependencies: + prosemirror-transform: 1.10.5 + + prosemirror-collab@1.3.1: + dependencies: + prosemirror-state: 1.4.4 + + prosemirror-commands@1.7.1: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + + prosemirror-dropcursor@1.8.2: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.4 + + prosemirror-gapcursor@1.4.0: + dependencies: + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-view: 1.41.4 + + prosemirror-history@1.5.0: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.4 + rope-sequence: 1.3.4 + + prosemirror-inputrules@1.5.1: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + + prosemirror-keymap@1.2.3: + dependencies: + prosemirror-state: 1.4.4 + w3c-keyname: 2.2.8 + + prosemirror-markdown@1.13.2: + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + prosemirror-model: 1.25.4 + + prosemirror-menu@1.2.5: + dependencies: + crelt: 1.0.6 + prosemirror-commands: 1.7.1 + prosemirror-history: 1.5.0 + prosemirror-state: 1.4.4 + + prosemirror-model@1.25.4: + dependencies: + orderedmap: 2.1.1 + + prosemirror-schema-basic@1.2.4: + dependencies: + prosemirror-model: 1.25.4 + + prosemirror-schema-list@1.5.1: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + + prosemirror-state@1.4.4: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.4 + + prosemirror-tables@1.8.3: + dependencies: + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + prosemirror-view: 1.41.4 + + prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.4): + dependencies: + '@remirror/core-constants': 3.0.0 + escape-string-regexp: 4.0.0 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-view: 1.41.4 + + prosemirror-transform@1.10.5: + dependencies: + prosemirror-model: 1.25.4 + + prosemirror-view@1.41.4: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.10.5 + + proto-list@1.2.4: {} + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-agent@6.5.0: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 7.18.3 + pac-proxy-agent: 7.2.0 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + proxy-from-env@1.1.0: {} + + pump@3.0.3: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + punycode.js@2.3.1: {} + + punycode@1.4.1: {} + + punycode@2.3.1: {} + + puppeteer-core@24.34.0: + dependencies: + '@puppeteer/browsers': 2.11.0 + chromium-bidi: 12.0.1(devtools-protocol@0.0.1534754) + debug: 4.4.3 + devtools-protocol: 0.0.1534754 + typed-query-selector: 2.12.0 + webdriver-bidi-protocol: 0.3.10 + ws: 8.18.3 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - bufferutil + - react-native-b4a + - supports-color + - utf-8-validate + + puppeteer@24.34.0(typescript@5.9.3): + dependencies: + '@puppeteer/browsers': 2.11.0 + chromium-bidi: 12.0.1(devtools-protocol@0.0.1534754) + cosmiconfig: 9.0.0(typescript@5.9.3) + devtools-protocol: 0.0.1534754 + puppeteer-core: 24.34.0 + typed-query-selector: 2.12.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - bufferutil + - react-native-b4a + - supports-color + - typescript + - utf-8-validate + + pvtsutils@1.3.6: + dependencies: + tslib: 2.8.1 + + pvutils@1.1.5: {} + + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + + queue-microtask@1.2.3: {} + + quick-lru@5.1.1: {} + + randomatic@3.1.1: + dependencies: + is-number: 4.0.0 + kind-of: 6.0.3 + math-random: 1.0.4 + + range-parser@1.2.1: {} + + raw-body@2.5.3: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + raw-body@3.0.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.7.1 + unpipe: 1.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-is@18.3.1: {} + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@4.1.2: {} + + readdirp@5.0.0: {} + + reflect-metadata@0.2.2: {} + + registry-auth-token@5.1.0: + dependencies: + '@pnpm/npm-conf': 2.3.1 + + registry-url@6.0.1: + dependencies: + rc: 1.2.8 + + relateurl@0.2.7: {} + + remark-frontmatter@5.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-frontmatter: 2.0.1 + micromark-extension-frontmatter: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-html@16.0.1: + dependencies: + '@types/mdast': 4.0.4 + hast-util-sanitize: 5.0.2 + hast-util-to-html: 9.0.5 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + replace-buffer@1.2.1: {} + + require-directory@2.1.1: {} + + resolve-alpn@1.2.1: {} + + resolve-from@4.0.0: {} + + resolve-path@1.4.0: + dependencies: + http-errors: 1.6.3 + path-is-absolute: 1.0.1 + + resolve-pkg-maps@1.0.0: {} + + responselike@3.0.0: + dependencies: + lowercase-keys: 3.0.0 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + reusify@1.1.0: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rolldown@1.0.0-beta.52: + dependencies: + '@oxc-project/types': 0.99.0 + '@rolldown/pluginutils': 1.0.0-beta.52 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-beta.52 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.52 + '@rolldown/binding-darwin-x64': 1.0.0-beta.52 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.52 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.52 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.52 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.52 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.52 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.52 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.52 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.52 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.52 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.52 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.52 + + rope-sequence@1.3.4: {} + + router@2.2.0: + dependencies: + debug: 4.4.3 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.3.0 + transitivePeerDependencies: + - supports-color + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + + s3rver@3.7.1: + dependencies: + '@koa/router': 9.4.0 + busboy: 0.3.1 + commander: 5.1.0 + fast-xml-parser: 3.21.1 + fs-extra: 8.1.0 + he: 1.2.0 + koa: 2.16.3 + koa-logger: 3.2.1 + lodash: 4.17.21 + statuses: 2.0.2 + winston: 3.19.0 + transitivePeerDependencies: + - supports-color + + safe-buffer@5.2.1: {} + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-stable-stringify@2.5.0: {} + + safer-buffer@2.1.2: {} + + semver@6.3.1: {} + + semver@7.7.3: {} + + send@1.2.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serve-static@2.2.1: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + setprototypeof@1.1.0: {} + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + smart-buffer@4.2.0: {} + + socket.io-adapter@2.5.5: + dependencies: + debug: 4.3.7 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-client@4.8.1: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-client: 6.6.3 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + socket.io@4.8.1: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.7 + engine.io: 6.6.4 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + socks: 2.8.7 + transitivePeerDependencies: + - supports-color + + socks@2.8.7: + dependencies: + ip-address: 10.1.0 + smart-buffer: 4.2.0 + + source-map@0.6.1: {} + + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + + sparse-bitfield@3.0.3: + dependencies: + memory-pager: 1.5.0 + + spawn-wrap@2.0.0: + dependencies: + foreground-child: 2.0.0 + is-windows: 1.0.2 + make-dir: 3.1.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + which: 2.0.2 + + sprintf-js@1.0.3: {} + + stack-trace@0.0.10: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + statuses@1.5.0: {} + + statuses@2.0.2: {} + + streamsearch@0.1.2: {} + + streamx@2.23.0: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-final-newline@2.0.0: {} + + strip-indent@4.1.1: {} + + strip-json-comments@2.0.1: {} + + strnum@1.1.2: {} + + strnum@2.1.2: {} + + strtok3@10.3.4: + dependencies: + '@tokenizer/token': 0.3.0 + + strtok3@9.1.1: + dependencies: + '@tokenizer/token': 0.3.0 + peek-readable: 5.4.2 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + sweet-scroll@4.0.0: {} + + symbol-tree@3.2.4: {} + + systeminformation@5.27.14: {} + + tar-fs@3.1.1: + dependencies: + pump: 3.0.3 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 4.5.2 + bare-path: 3.0.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + tar-stream@3.1.7: + dependencies: + b4a: 1.7.3 + fast-fifo: 1.3.2 + streamx: 2.23.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + text-decoder@1.2.3: + dependencies: + b4a: 1.7.3 + transitivePeerDependencies: + - react-native-b4a + + text-hex@1.0.0: {} + + threads@1.7.0: + dependencies: + callsites: 3.1.0 + debug: 4.4.3 + is-observable: 2.1.0 + observable-fns: 0.6.1 + optionalDependencies: + tiny-worker: 2.3.0 + transitivePeerDependencies: + - supports-color + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + + tiny-worker@2.3.0: + dependencies: + esm: 3.2.25 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + token-types@6.1.1: + dependencies: + '@borewit/text-codec': 0.1.1 + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + + tr46@5.1.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + trim-lines@3.0.1: {} + + triple-beam@1.4.1: {} + + trough@2.2.0: {} + + tslib@1.14.1: {} + + tslib@2.8.1: {} + + tsscmp@1.0.6: {} + + tsx@4.21.0: + dependencies: + esbuild: 0.27.2 + get-tsconfig: 4.13.0 + optionalDependencies: + fsevents: 2.3.3 + + tsyringe@4.10.0: + dependencies: + tslib: 1.14.1 + + turndown-plugin-gfm@1.0.2: {} + + turndown@7.2.2: + dependencies: + '@mixmark-io/domino': 2.2.0 + + type-fest@0.21.3: {} + + type-fest@2.19.0: {} + + type-fest@4.41.0: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.2 + + typed-query-selector@2.12.0: {} + + typescript@5.9.3: {} + + uc.micro@2.1.0: {} + + uglify-js@3.19.3: {} + + uint8array-extras@1.5.0: {} + + undici-types@7.16.0: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unload@2.4.1: {} + + unpipe@1.0.0: {} + + upper-case@1.1.3: {} + + url@0.11.4: + dependencies: + punycode: 1.4.1 + qs: 6.14.0 + + util-deprecate@1.0.2: {} + + uuid@9.0.1: {} + + vary@1.1.2: {} + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + w3c-keyname@2.2.8: {} + + webdriver-bidi-protocol@0.3.10: {} + + webidl-conversions@7.0.0: {} + + whatwg-mimetype@3.0.0: {} + + whatwg-url@14.2.0: + dependencies: + tr46: 5.1.1 + webidl-conversions: 7.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@5.0.0: + dependencies: + isexe: 3.1.1 + + winston-transport@4.9.0: + dependencies: + logform: 2.7.0 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + + winston@3.19.0: + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.8 + async: 3.2.6 + is-stream: 2.0.1 + logform: 2.7.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.5.0 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.9.0 + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + + wrappy@1.0.2: {} + + ws@7.5.10: {} + + ws@8.17.1: {} + + ws@8.18.3: {} + + xmlhttprequest-ssl@2.1.2: {} + + xterm-addon-fit@0.8.0(xterm@5.3.0): + dependencies: + xterm: 5.3.0 + + xterm@5.3.0: {} + + y18n@5.0.8: {} + + yaml@2.8.2: {} + + yargs-parser@21.1.1: {} + + yargs-parser@22.0.0: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yauzl@3.2.0: + dependencies: + buffer-crc32: 0.2.13 + pend: 1.2.0 + + ylru@1.4.0: {} + + zod@3.25.76: {} + + zwitch@2.0.4: {} diff --git a/readme.hints.md b/readme.hints.md new file mode 100644 index 0000000..eee7a8e --- /dev/null +++ b/readme.hints.md @@ -0,0 +1,2 @@ +1. dees-catalog: /mnt/data/lossless/design.estate/dees-catalog +2. shared_shoppinglist: /mnt/data/test/shared_shoppinglist \ No newline at end of file diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts new file mode 100644 index 0000000..b2ee344 --- /dev/null +++ b/ts_web/00_commitinfo_data.ts @@ -0,0 +1,8 @@ +/** + * This file contains commit information for the package + */ +export const commitinfo = { + name: '@design.estate/dees-catalog-mobile', + version: '1.0.0', + description: 'A mobile-optimized component catalog for cross-platform business applications', +}; diff --git a/ts_web/controllers/index.ts b/ts_web/controllers/index.ts new file mode 100644 index 0000000..812385a --- /dev/null +++ b/ts_web/controllers/index.ts @@ -0,0 +1 @@ +export * from './theme-controller.js'; diff --git a/ts_web/controllers/theme-controller.ts b/ts_web/controllers/theme-controller.ts new file mode 100644 index 0000000..19b3618 --- /dev/null +++ b/ts_web/controllers/theme-controller.ts @@ -0,0 +1,87 @@ +import type { ReactiveController, ReactiveControllerHost } from 'lit'; +import { themeService, type Theme } from '../services/theme-service.js'; + +export type { Theme }; + +/** + * Lit reactive controller for theme management + * Automatically updates the host component when theme changes + * + * Usage: + * ```typescript + * class MyComponent extends LitElement { + * private theme = new ThemeController(this); + * + * render() { + * return html` + *
+ * Current theme: ${this.theme.theme} + *
+ * `; + * } + * } + * ``` + */ +export class ThemeController implements ReactiveController { + private host: ReactiveControllerHost; + private unsubscribe?: () => void; + + /** + * Whether dark mode is currently active + */ + isDark = false; + + private _theme: Theme = 'system'; + + constructor(host: ReactiveControllerHost) { + this.host = host; + this.host.addController(this); + } + + hostConnected() { + this.unsubscribe = themeService.subscribe((theme, isDark) => { + this._theme = theme; + this.isDark = isDark; + this.host.requestUpdate(); + }); + } + + hostDisconnected() { + this.unsubscribe?.(); + } + + /** + * Get the current theme setting (light/dark/system) + */ + get theme(): Theme { + return this._theme; + } + + /** + * Get the resolved theme (light or dark, never system) + */ + get resolvedTheme(): 'light' | 'dark' { + return this.isDark ? 'dark' : 'light'; + } + + /** + * Get the current theme from the service + */ + getTheme(): Theme { + return themeService.getTheme(); + } + + /** + * Set the theme + */ + setTheme(theme: Theme) { + themeService.setTheme(theme); + } + + /** + * Toggle through themes + */ + toggleTheme() { + themeService.toggleTheme(); + } +} diff --git a/ts_web/elements/00colors.ts b/ts_web/elements/00colors.ts new file mode 100644 index 0000000..3247287 --- /dev/null +++ b/ts_web/elements/00colors.ts @@ -0,0 +1,80 @@ +/** + * Color definitions for light and dark themes + */ +export const dark = { + // Primary colors + primary: '#3b82f6', + primaryDark: '#2563eb', + primaryForeground: '#ffffff', + + // Secondary colors + secondary: '#27272a', + secondaryForeground: '#fafafa', + + // Background colors + background: '#09090b', + card: '#18181b', + surface: '#27272a', + + // Text colors + foreground: '#fafafa', + mutedForeground: '#a1a1aa', + + // Border and input + border: '#27272a', + input: '#27272a', + ring: '#3b82f6', + + // Semantic colors + success: '#22c55e', + warning: '#f59e0b', + danger: '#ef4444', + destructive: '#dc2626', + destructiveForeground: '#ffffff', + + // Accent + accent: '#27272a', + accentForeground: '#fafafa', + + // Muted + muted: '#27272a', +}; + +export const light = { + // Primary colors + primary: '#3b82f6', + primaryDark: '#2563eb', + primaryForeground: '#ffffff', + + // Secondary colors + secondary: '#f4f4f5', + secondaryForeground: '#18181b', + + // Background colors + background: '#ffffff', + card: '#ffffff', + surface: '#f4f4f5', + + // Text colors + foreground: '#09090b', + mutedForeground: '#71717a', + + // Border and input + border: '#e4e4e7', + input: '#e4e4e7', + ring: '#3b82f6', + + // Semantic colors + success: '#22c55e', + warning: '#f59e0b', + danger: '#ef4444', + destructive: '#dc2626', + destructiveForeground: '#ffffff', + + // Accent + accent: '#f4f4f5', + accentForeground: '#18181b', + + // Muted + muted: '#f4f4f5', +}; diff --git a/ts_web/elements/00componentstyles.ts b/ts_web/elements/00componentstyles.ts new file mode 100644 index 0000000..d00db41 --- /dev/null +++ b/ts_web/elements/00componentstyles.ts @@ -0,0 +1,84 @@ +import { css } from '@design.estate/dees-element'; + +/** + * Global component styles for mobile-optimized components + * Include this in all component static styles arrays + */ +export const mobileComponentStyles = css` + /* Box sizing reset */ + *, + *::before, + *::after { + box-sizing: border-box; + } + + /* Prevent text selection on interactive elements */ + button, + a, + [role="button"], + [role="tab"], + [draggable="true"] { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-touch-callout: none; + } + + /* Remove default button styles */ + button { + background: none; + border: none; + padding: 0; + font: inherit; + color: inherit; + cursor: pointer; + } + + /* Smooth scrolling for containers */ + .scrollable { + -webkit-overflow-scrolling: touch; + overflow-scrolling: touch; + } + + /* Remove tap highlight on mobile */ + a, + button, + [role="button"], + [role="tab"] { + -webkit-tap-highlight-color: transparent; + } + + /* Focus styles */ + :focus { + outline: none; + } + + :focus-visible { + outline: 2px solid var(--dees-ring, #3b82f6); + outline-offset: 2px; + } + + /* Prevent layout shift from scrollbars */ + .scroll-stable { + scrollbar-gutter: stable; + } + + /* Common transition for interactive elements */ + .interactive { + transition: all var(--dees-transition-fast, 150ms ease); + } + + /* Touch-friendly minimum sizes */ + .touch-target { + min-width: 44px; + min-height: 44px; + } + + /* Prevent iOS zoom on inputs (16px minimum) */ + input, + textarea, + select { + font-size: 16px; + } +`; diff --git a/ts_web/elements/00demo-utils.ts b/ts_web/elements/00demo-utils.ts new file mode 100644 index 0000000..7c5bf61 --- /dev/null +++ b/ts_web/elements/00demo-utils.ts @@ -0,0 +1,24 @@ +import { html, type TemplateResult } from '@design.estate/dees-element'; +import { injectCssVariables } from './00variables.js'; + +/** + * Wraps a demo template with CSS variable injection + * Ensures design system variables are available for component styling + */ +export function wrapDemo(templateFn: () => TemplateResult): () => TemplateResult { + return () => { + // Inject CSS variables into the document + injectCssVariables(); + return templateFn(); + }; +} + +/** + * Helper to create demo with automatic CSS injection + */ +export function createDemo(template: TemplateResult): () => TemplateResult { + return () => { + injectCssVariables(); + return template; + }; +} diff --git a/ts_web/elements/00fonts.ts b/ts_web/elements/00fonts.ts new file mode 100644 index 0000000..0508e79 --- /dev/null +++ b/ts_web/elements/00fonts.ts @@ -0,0 +1,35 @@ +/** + * Font definitions for the mobile catalog + */ + +// System font stack optimized for mobile +export const systemFontStack = `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif`; + +// Mono font stack +export const monoFontStack = `ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace`; + +// Font sizes (following mobile-first approach) +export const fontSizes = { + xs: '0.75rem', // 12px + sm: '0.875rem', // 14px + base: '1rem', // 16px (prevents iOS zoom on inputs) + lg: '1.125rem', // 18px + xl: '1.25rem', // 20px + '2xl': '1.5rem', // 24px + '3xl': '1.875rem', // 30px +}; + +// Font weights +export const fontWeights = { + normal: '400', + medium: '500', + semibold: '600', + bold: '700', +}; + +// Line heights +export const lineHeights = { + tight: '1.2', + normal: '1.5', + relaxed: '1.75', +}; diff --git a/ts_web/elements/00group-input/dees-mobile-input/dees-mobile-input.demo.ts b/ts_web/elements/00group-input/dees-mobile-input/dees-mobile-input.demo.ts new file mode 100644 index 0000000..aebe96b --- /dev/null +++ b/ts_web/elements/00group-input/dees-mobile-input/dees-mobile-input.demo.ts @@ -0,0 +1,117 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

Basic Inputs

+
+ + + + + +
+
+ +
+

Input Types

+
+ + + + + +
+
+ +
+

States

+
+ + + + + +
+
+ +
+

Autocomplete

+
+ + + +
+
+`; +}; diff --git a/ts_web/elements/00group-input/dees-mobile-input/dees-mobile-input.ts b/ts_web/elements/00group-input/dees-mobile-input/dees-mobile-input.ts new file mode 100644 index 0000000..622e0c0 --- /dev/null +++ b/ts_web/elements/00group-input/dees-mobile-input/dees-mobile-input.ts @@ -0,0 +1,228 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import { demoFunc } from './dees-mobile-input.demo.js'; + +export type InputType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search'; + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-input': DeesMobileInput; + } +} + +@customElement('dees-mobile-input') +export class DeesMobileInput extends DeesElement { + public static demo = demoFunc; + + @property({ type: String }) + accessor type: InputType = 'text'; + + @property({ type: String }) + accessor placeholder: string = ''; + + @property({ type: String }) + accessor value: string = ''; + + @property({ type: Boolean }) + accessor disabled: boolean = false; + + @property({ type: String }) + accessor id: string = ''; + + @property({ type: String }) + accessor name: string = ''; + + @property({ type: String }) + accessor label: string = ''; + + @property({ type: String }) + accessor error: string = ''; + + @property({ type: Boolean }) + accessor required: boolean = false; + + @property({ type: String }) + accessor autocomplete: string = ''; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + display: block; + } + + .input-wrapper { + display: flex; + flex-direction: column; + gap: 0.375rem; + } + + label { + font-size: 0.875rem; + font-weight: 500; + color: var(--dees-foreground); + } + + label .required { + color: var(--dees-danger); + margin-left: 0.25rem; + } + + input { + width: 100%; + height: 2.5rem; + padding: 0 0.75rem; + /* 16px minimum to prevent iOS zoom */ + font-size: 1rem; + line-height: 1.25rem; + color: var(--dees-foreground); + background: var(--dees-background); + border: 1px solid var(--dees-input); + border-radius: calc(var(--dees-radius) - 2px); + outline: none; + transition: all var(--dees-transition-fast); + box-sizing: border-box; + -webkit-appearance: none; + font-family: inherit; + } + + input:focus { + outline: 2px solid transparent; + outline-offset: 2px; + border-color: var(--dees-ring); + box-shadow: 0 0 0 2px var(--dees-background), 0 0 0 4px var(--dees-ring); + } + + input:disabled { + opacity: 0.5; + cursor: not-allowed; + background: var(--dees-muted); + } + + input::placeholder { + color: var(--dees-muted-foreground); + } + + /* Remove number input spinners */ + input::-webkit-outer-spin-button, + input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; + } + + input[type=number] { + -moz-appearance: textfield; + } + + /* Error state */ + :host([error]) input, + input.error { + border-color: var(--dees-danger); + } + + :host([error]) input:focus, + input.error:focus { + box-shadow: 0 0 0 2px var(--dees-background), 0 0 0 4px var(--dees-danger); + } + + .error-message { + font-size: 0.75rem; + color: var(--dees-danger); + margin-top: 0.25rem; + } + `, + ]; + + private handleInput(e: Event) { + const input = e.target as HTMLInputElement; + this.value = input.value; + this.dispatchEvent(new CustomEvent('input', { + detail: { value: input.value }, + bubbles: true, + composed: true + })); + } + + private handleChange(e: Event) { + const input = e.target as HTMLInputElement; + this.value = input.value; + this.dispatchEvent(new CustomEvent('change', { + detail: { value: input.value }, + bubbles: true, + composed: true + })); + } + + private handleFocus() { + // Emit input-focus for keyboard detection + this.dispatchEvent(new CustomEvent('input-focus', { + bubbles: true, + composed: true + })); + } + + private handleBlur() { + // Emit input-blur for keyboard detection + this.dispatchEvent(new CustomEvent('input-blur', { + bubbles: true, + composed: true + })); + } + + public render(): TemplateResult { + return html` +
+ ${this.label ? html` + + ` : ''} + + ${this.error ? html` +
${this.error}
+ ` : ''} +
+ `; + } + + /** + * Focus the input programmatically + */ + public focus() { + const input = this.shadowRoot?.querySelector('input'); + input?.focus(); + } + + /** + * Blur the input programmatically + */ + public blur() { + const input = this.shadowRoot?.querySelector('input'); + input?.blur(); + } +} diff --git a/ts_web/elements/00group-input/dees-mobile-input/index.ts b/ts_web/elements/00group-input/dees-mobile-input/index.ts new file mode 100644 index 0000000..219abc1 --- /dev/null +++ b/ts_web/elements/00group-input/dees-mobile-input/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-input.js'; diff --git a/ts_web/elements/00group-input/index.ts b/ts_web/elements/00group-input/index.ts new file mode 100644 index 0000000..2c028dd --- /dev/null +++ b/ts_web/elements/00group-input/index.ts @@ -0,0 +1,2 @@ +// Input Components +export * from './dees-mobile-input/index.js'; diff --git a/ts_web/elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.demo.ts b/ts_web/elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.demo.ts new file mode 100644 index 0000000..2cb3d47 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.demo.ts @@ -0,0 +1,85 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

App Layout with Navigation

+
+ + + + + + + +
+
+

Welcome

+

+ This is a demo of the app layout component with header and bottom navigation. +

+
+
+

Features

+
    +
  • iOS keyboard handling
  • +
  • View transitions
  • +
  • Safe area support
  • +
+
+
+ + +
+
+

+ The app layout provides a grid structure with content area and bottom navigation. + It automatically hides navigation when keyboard is visible on mobile. +

+
+`; +}; diff --git a/ts_web/elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.ts b/ts_web/elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.ts new file mode 100644 index 0000000..5a42331 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.ts @@ -0,0 +1,351 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + state, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import { demoFunc } from './dees-mobile-applayout.demo.js'; + +export type TNavigationDirection = 'forward' | 'back' | 'none'; + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-applayout': DeesMobileApplayout; + } +} + +@customElement('dees-mobile-applayout') +export class DeesMobileApplayout extends DeesElement { + public static demo = demoFunc; + + @property({ type: Boolean, reflect: true, attribute: 'keyboard-visible' }) + accessor keyboardVisible: boolean = false; + + @property({ type: Boolean }) + accessor showNavigation: boolean = true; + + @property({ type: Boolean }) + accessor isIOS: boolean = false; + + @property({ type: Boolean }) + accessor isPWA: boolean = false; + + @state() + accessor navigationDirection: TNavigationDirection = 'none'; + + @state() + accessor isTransitioning: boolean = false; + + private keyboardBlurTimeout?: number; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + display: flex; + flex-direction: column; + min-height: 100vh; + background: var(--dees-background); + } + + .app-layout { + display: grid; + grid-template-rows: auto 1fr auto; + grid-template-areas: + "spacer" + "content" + "navigation"; + height: 100vh; + overflow: hidden; + } + + .ios-keyboard-spacer { + grid-area: spacer; + height: 0; + transition: height 300ms ease-out; + background: var(--dees-background); + } + + .ios-keyboard-spacer.active { + height: 340px; + } + + /* Mobile-first: smooth scrolling behavior for keyboard visibility */ + :host([keyboard-visible]) .main-content { + overflow-y: auto; + -webkit-overflow-scrolling: touch; + } + + /* Main content area */ + .main-content { + grid-area: content; + overflow: hidden; + position: relative; + } + + /* View transition container */ + .view-container { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; + } + + .view-wrapper { + position: absolute; + inset: 0; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + will-change: transform, opacity; + } + + /* Forward navigation: entering view slides from right */ + .view-wrapper.entering.forward { + animation: slideInFromRight 300ms ease-out forwards; + } + + /* Forward navigation: exiting view slides to left with fade */ + .view-wrapper.exiting.forward { + animation: slideOutToLeft 300ms ease-out forwards; + } + + /* Back navigation: entering view slides from left */ + .view-wrapper.entering.back { + animation: slideInFromLeft 300ms ease-out forwards; + } + + /* Back navigation: exiting view slides to right */ + .view-wrapper.exiting.back { + animation: slideOutToRight 300ms ease-out forwards; + } + + /* No animation */ + .view-wrapper.entering.none { + opacity: 1; + transform: none; + } + + @keyframes slideInFromRight { + from { + transform: translateX(100%); + } + to { + transform: translateX(0); + } + } + + @keyframes slideOutToLeft { + from { + transform: translateX(0); + opacity: 1; + } + to { + transform: translateX(-30%); + opacity: 0; + } + } + + @keyframes slideInFromLeft { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0); + } + } + + @keyframes slideOutToRight { + from { + transform: translateX(0); + } + to { + transform: translateX(100%); + } + } + + /* Bottom navigation */ + .navigation-slot { + grid-area: navigation; + z-index: var(--dees-z-sticky, 200); + } + + /* Mobile-first: hide bottom navigation when keyboard is visible */ + :host([keyboard-visible]) .navigation-slot { + display: none; + } + + /* Desktop: show navigation even with keyboard */ + @media (min-width: 641px) { + :host([keyboard-visible]) .navigation-slot { + display: block; + } + } + + /* Mobile-first: allow overflow during drag */ + :host-context(body.dragging) .app-layout { + overflow: visible !important; + } + + :host-context(body.dragging) .main-content { + overflow: visible !important; + } + + /* Desktop: maintain normal overflow behavior during drag */ + @media (min-width: 641px) { + :host-context(body.dragging) .app-layout { + overflow: hidden; + } + + :host-context(body.dragging) .main-content { + overflow-y: auto; + } + } + + .loading { + display: flex; + align-items: center; + justify-content: center; + min-height: 300px; + color: var(--dees-muted-foreground); + } + + .spinner { + width: 3rem; + height: 3rem; + border: 3px solid var(--dees-border); + border-top-color: var(--dees-primary); + border-radius: 50%; + animation: spin 0.8s linear infinite; + } + + @keyframes spin { + to { transform: rotate(360deg); } + } + `, + ]; + + async connectedCallback() { + await super.connectedCallback(); + + // Listen for keyboard events + this.addEventListener('input-focus', this.handleInputFocus as EventListener); + this.addEventListener('input-blur', this.handleInputBlur as EventListener); + + // Detect iOS PWA + this.detectEnvironment(); + + // Listen for viewport changes to detect keyboard (iOS PWA only) + if (this.isIOS && this.isPWA && 'visualViewport' in window) { + window.visualViewport?.addEventListener('resize', this.handleViewportResize); + this.handleViewportResize(); + } + } + + async disconnectedCallback() { + await super.disconnectedCallback(); + this.removeEventListener('input-focus', this.handleInputFocus as EventListener); + this.removeEventListener('input-blur', this.handleInputBlur as EventListener); + + if (this.isIOS && this.isPWA && 'visualViewport' in window) { + window.visualViewport?.removeEventListener('resize', this.handleViewportResize); + } + } + + private detectEnvironment() { + // Detect iOS + const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) || + (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1); + + // Detect PWA mode + const isPWA = window.matchMedia('(display-mode: standalone)').matches || + (window.navigator as any).standalone === true; + + this.isIOS = isIOS; + this.isPWA = isPWA; + } + + private handleInputFocus = () => { + if (this.keyboardBlurTimeout) { + clearTimeout(this.keyboardBlurTimeout); + this.keyboardBlurTimeout = undefined; + } + + if (window.innerWidth <= 640) { + this.keyboardVisible = true; + } + }; + + private handleInputBlur = () => { + if (this.keyboardBlurTimeout) { + clearTimeout(this.keyboardBlurTimeout); + } + + if (window.innerWidth <= 640) { + this.keyboardBlurTimeout = window.setTimeout(() => { + this.keyboardVisible = false; + this.keyboardBlurTimeout = undefined; + }, 150); + } + }; + + private handleViewportResize = () => { + if (window.visualViewport) { + const viewport = window.visualViewport; + const keyboardHeight = window.innerHeight - viewport.height; + + if (keyboardHeight > 50) { + this.keyboardVisible = true; + } else { + this.keyboardVisible = false; + } + } + }; + + /** + * Navigate with animation transition + * Call this method when changing views + */ + public navigateWithTransition(direction: TNavigationDirection) { + if (this.isTransitioning) return; + + this.navigationDirection = direction; + this.isTransitioning = true; + + // Clear transition state after animation + setTimeout(() => { + this.isTransitioning = false; + this.navigationDirection = 'none'; + }, 300); + } + + public render(): TemplateResult { + const showKeyboardSpacer = this.keyboardVisible && this.isIOS && this.isPWA; + + return html` +
+
+ +
+
+
+ +
+
+
+ + ${this.showNavigation ? html` + + ` : ''} +
+ `; + } +} diff --git a/ts_web/elements/00group-layout/dees-mobile-applayout/index.ts b/ts_web/elements/00group-layout/dees-mobile-applayout/index.ts new file mode 100644 index 0000000..b9cb5e6 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-applayout/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-applayout.js'; diff --git a/ts_web/elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.demo.ts b/ts_web/elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.demo.ts new file mode 100644 index 0000000..3d55f77 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.demo.ts @@ -0,0 +1,87 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

Bottom Navigation

+ +

Click tabs to switch between them.

+
+ +
+

Navigation with Badges

+ +
+ +
+

Three Tab Navigation

+ +
+`; +}; diff --git a/ts_web/elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.ts b/ts_web/elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.ts new file mode 100644 index 0000000..dfe7738 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.ts @@ -0,0 +1,180 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import '../../00group-ui/dees-mobile-icon/dees-mobile-icon.js'; +import { demoFunc } from './dees-mobile-navigation.demo.js'; + +export interface INavigationTab { + id: string; + icon: string; + label: string; + badge?: number | string; +} + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-navigation': DeesMobileNavigation; + } +} + +@customElement('dees-mobile-navigation') +export class DeesMobileNavigation extends DeesElement { + public static demo = demoFunc; + + @property({ type: String }) + accessor activeTab: string = ''; + + @property({ type: Array }) + accessor tabs: INavigationTab[] = []; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + display: block; + } + + .container { + border-top: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')}; + /* Mobile-first defaults */ + padding: 0.375rem 0; + padding-bottom: calc(0.375rem + var(--safe-area-inset-bottom, 0px)); + background: ${cssManager.bdTheme('#ffffff', '#09090b')}; + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + .container { + padding: 0.5rem 0; + padding-bottom: 0.5rem; + } + } + + .tabs { + display: flex; + justify-content: space-around; + align-items: center; + max-width: 400px; + margin: 0 auto; + } + + .tab { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 0.25rem; + padding: 0.25rem 0.5rem; + border: none; + background: none; + color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; + cursor: pointer; + transition: all 150ms ease; + text-decoration: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + -webkit-user-select: none; + user-select: none; + position: relative; + /* Mobile-first: 44px touch target */ + min-height: 44px; + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + .tab { + min-height: auto; + } + } + + .tab:active { + transform: scale(0.95); + } + + .tab.active { + color: #3b82f6; + } + + .tab-icon { + width: 24px; + height: 24px; + display: flex; + align-items: center; + justify-content: center; + position: relative; + } + + .tab-label { + font-size: 0.75rem; + font-weight: 500; + line-height: 1; + color: inherit; + } + + .badge { + position: absolute; + top: -4px; + right: -8px; + background: #ef4444; + color: white; + font-size: 0.625rem; + font-weight: 600; + padding: 0.125rem 0.375rem; + border-radius: 999px; + min-width: 16px; + text-align: center; + line-height: 1; + } + + /* Hover effect */ + @media (hover: hover) { + .tab:hover:not(.active) { + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; + } + } + `, + ]; + + private handleTabClick(tabId: string) { + this.dispatchEvent(new CustomEvent('tab-change', { + detail: { tab: tabId }, + bubbles: true, + composed: true + })); + } + + public render(): TemplateResult { + return html` +
+ +
+ `; + } +} diff --git a/ts_web/elements/00group-layout/dees-mobile-navigation/index.ts b/ts_web/elements/00group-layout/dees-mobile-navigation/index.ts new file mode 100644 index 0000000..633b943 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-navigation/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-navigation.js'; diff --git a/ts_web/elements/00group-layout/dees-mobile-view/dees-mobile-view.ts b/ts_web/elements/00group-layout/dees-mobile-view/dees-mobile-view.ts new file mode 100644 index 0000000..e82003a --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-view/dees-mobile-view.ts @@ -0,0 +1,156 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-view': DeesMobileView; + } +} + +/** + * A view container component that works with dees-mobile-viewstack. + * Each view has a unique ID and is shown/hidden based on the viewstack's current state. + */ +@customElement('dees-mobile-view') +export class DeesMobileView extends DeesElement { + @property({ type: String, attribute: 'view-id' }) + accessor viewId: string = ''; + + @property({ type: Boolean, reflect: true }) + accessor active: boolean = false; + + @property({ type: String }) + accessor animationState: 'none' | 'entering' | 'leaving' = 'none'; + + @property({ type: String }) + accessor animationDirection: 'forward' | 'back' = 'forward'; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + display: none; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; + background: ${cssManager.bdTheme('#ffffff', '#09090b')}; + } + + :host([active]) { + display: block; + } + + .view-content { + width: 100%; + height: 100%; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + } + + /* Forward animations (new view slides in from right) */ + :host(.entering-forward) { + display: block; + animation: slideInFromRight 300ms ease-out forwards; + } + + :host(.leaving-forward) { + display: block; + animation: slideOutToLeft 300ms ease-out forwards; + } + + /* Back animations (returning to previous view) */ + :host(.entering-back) { + display: block; + animation: slideInFromLeft 300ms ease-out forwards; + } + + :host(.leaving-back) { + display: block; + animation: slideOutToRight 300ms ease-out forwards; + } + + @keyframes slideInFromRight { + from { + transform: translateX(100%); + } + to { + transform: translateX(0); + } + } + + @keyframes slideOutToLeft { + from { + transform: translateX(0); + opacity: 1; + } + to { + transform: translateX(-30%); + opacity: 0; + } + } + + @keyframes slideInFromLeft { + from { + transform: translateX(-30%); + opacity: 0; + } + to { + transform: translateX(0); + opacity: 1; + } + } + + @keyframes slideOutToRight { + from { + transform: translateX(0); + } + to { + transform: translateX(100%); + } + } + `, + ]; + + /** + * Start an animation on this view + */ + public startAnimation(type: 'entering' | 'leaving', direction: 'forward' | 'back'): void { + this.animationState = type; + this.animationDirection = direction; + this.classList.add(`${type}-${direction}`); + } + + /** + * End the current animation + */ + public endAnimation(): void { + this.classList.remove( + 'entering-forward', + 'leaving-forward', + 'entering-back', + 'leaving-back' + ); + this.animationState = 'none'; + } + + public render(): TemplateResult { + return html` +
+ +
+ `; + } +} diff --git a/ts_web/elements/00group-layout/dees-mobile-view/index.ts b/ts_web/elements/00group-layout/dees-mobile-view/index.ts new file mode 100644 index 0000000..5ec0498 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-view/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-view.js'; diff --git a/ts_web/elements/00group-layout/dees-mobile-viewstack/dees-mobile-viewstack.demo.ts b/ts_web/elements/00group-layout/dees-mobile-viewstack/dees-mobile-viewstack.demo.ts new file mode 100644 index 0000000..d6189f2 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-viewstack/dees-mobile-viewstack.demo.ts @@ -0,0 +1,622 @@ +import { html, css, cssManager } from '@design.estate/dees-element'; +import '@design.estate/dees-wcctools/demotools'; +import { injectCssVariables } from '../../00variables.js'; +import type { DeesMobileViewstack } from './dees-mobile-viewstack.js'; + +// Shared styles for demos +const sharedStyles = html` + +`; + +// Helper functions +const handleListClick = (viewstack: DeesMobileViewstack, listName: string) => { + const listView = viewstack.querySelector('[view-id="list"]'); + if (listView) { + (listView as HTMLElement).dataset.listName = listName; + } + viewstack.pushView('list'); +}; + +const handleItemClick = (viewstack: DeesMobileViewstack, itemName: string) => { + const itemView = viewstack.querySelector('[view-id="item"]'); + if (itemView) { + (itemView as HTMLElement).dataset.itemName = itemName; + } + viewstack.pushView('item'); +}; + +const handleBack = (viewstack: DeesMobileViewstack) => { + viewstack.popView(); +}; + +/** + * Demo 1: Mobile Phone Layout + * Simulates a typical mobile app navigation pattern + */ +const mobileDemo = () => { + injectCssVariables(); + + return html` + ${sharedStyles} + + +

Mobile Phone Layout (375x667)

+

+ Simulates iPhone SE dimensions. Tap items to navigate forward, use back button to return. +

+ +
+
+ { + const target = e.target as HTMLElement; + const status = target?.closest('.demo-container')?.querySelector('.status-bar'); + if (status) { + status.textContent = `${e.detail.currentView} (depth: ${e.detail.stackDepth})`; + } + }} + > + +
+

My Lists

+
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + if (viewstack) handleListClick(viewstack, 'Shopping'); + }}> +
+
Shopping List
+
12 items
+
+ › +
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + if (viewstack) handleListClick(viewstack, 'Todo'); + }}> +
+
Todo List
+
5 items
+
+ › +
+
+ + +
+ +

Items

+
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + if (viewstack) handleItemClick(viewstack, 'Milk'); + }}> +
Milk
+ › +
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + if (viewstack) handleItemClick(viewstack, 'Bread'); + }}> +
Bread
+ › +
+
+ + +
+ +

Details

+
+
+

Item Details

+

Full item information would appear here.

+
+
+
+ +
lists (depth: 1)
+
+
+ `; +}; + +/** + * Demo 2: Desktop/Tablet Layout + * Wider layout suitable for tablets and desktop embedded views + */ +const desktopDemo = () => { + injectCssVariables(); + + return html` + ${sharedStyles} + +

Desktop/Tablet Layout

+

+ Wider container suitable for tablet or embedded desktop use. Same navigation behavior. +

+ +
+ { + const target = e.target as HTMLElement; + const status = target?.closest('.demo-container')?.querySelector('.status-bar'); + if (status) { + status.textContent = `View: ${e.detail.currentView} | Stack: ${e.detail.stackDepth} | Direction: ${e.detail.direction}`; + } + }} + > + +
+

Categories

+
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + viewstack?.pushView('products'); + }}> +
+
Electronics
+
248 products
+
+ › +
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + viewstack?.pushView('products'); + }}> +
+
Clothing
+
512 products
+
+ › +
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + viewstack?.pushView('products'); + }}> +
+
Home & Garden
+
189 products
+
+ › +
+
+ + +
+ +

Products

+
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + viewstack?.pushView('product-detail'); + }}> +
+
Wireless Headphones
+
$149.99
+
+ › +
+
{ + const target = e.target as HTMLElement; + const viewstack = target?.closest('dees-mobile-viewstack') as DeesMobileViewstack; + viewstack?.pushView('product-detail'); + }}> +
+
Smart Watch
+
$299.99
+
+ › +
+
+ + +
+ +

Product Details

+
+
+

Wireless Headphones

+

Premium noise-cancelling headphones with 30-hour battery life.

+

$149.99

+
+
+
+ +
View: categories | Stack: 1 | Direction: none
+
+ `; +}; + +/** + * Demo 3: Programmatic Control + * Demonstrates API methods for controlling navigation + * Uses dees-demowrapper for proper scoped element access in wcctools + */ +const programmaticDemo = () => { + injectCssVariables(); + + return html` + ${sharedStyles} + +

Programmatic Control

+

+ Use the control panel to navigate programmatically via the viewstack API. +

+ + { + const viewstack = wrapper.querySelector('dees-mobile-viewstack') as DeesMobileViewstack; + const backBtn = wrapper.querySelector('.btn-back') as HTMLButtonElement; + const rootBtn = wrapper.querySelector('.btn-root') as HTMLButtonElement; + const statusBar = wrapper.querySelector('.status-bar') as HTMLElement; + const pushABtn = wrapper.querySelector('.btn-push-a') as HTMLButtonElement; + const pushBBtn = wrapper.querySelector('.btn-push-b') as HTMLButtonElement; + const pushCBtn = wrapper.querySelector('.btn-push-c') as HTMLButtonElement; + + if (!viewstack) return; + + const updateButtons = () => { + if (backBtn) backBtn.disabled = !viewstack.canGoBack; + if (rootBtn) rootBtn.disabled = viewstack.stackDepth <= 1; + }; + + const updateStatus = () => { + if (statusBar) { + statusBar.textContent = `Current: ${viewstack.currentView} | Stack: [${viewstack.viewStack.join(' → ')}] | canGoBack: ${viewstack.canGoBack}`; + } + }; + + // Set up button click handlers + pushABtn?.addEventListener('click', () => viewstack.pushView('view-a')); + pushBBtn?.addEventListener('click', () => viewstack.pushView('view-b')); + pushCBtn?.addEventListener('click', () => viewstack.pushView('view-c')); + backBtn?.addEventListener('click', () => viewstack.popView()); + rootBtn?.addEventListener('click', () => viewstack.goToRoot(false)); + + // Listen for view changes to update UI + viewstack.addEventListener('view-changed', () => { + updateButtons(); + updateStatus(); + }); + + // Initial state + updateButtons(); + updateStatus(); + }}> +
+
+ + + + + +
+ + + +
+

Home View

+

This is the root view. Use the buttons above to push views onto the stack.

+
+
+ + +
+

View A

+

You navigated to View A

+
+
+ + +
+

View B

+

You navigated to View B

+
+
+ + +
+

View C

+

You navigated to View C

+
+
+
+ +
Current: home | Stack: [home] | canGoBack: false
+
+
+ `; +}; + +/** + * Demo 4: Deep Navigation (4+ levels) + * Shows handling of deeply nested navigation + */ +const deepNavigationDemo = () => { + injectCssVariables(); + + return html` + ${sharedStyles} + +

Deep Navigation (5 Levels)

+

+ Navigate through 5 levels deep: Region → Country → City → District → Location +

+ +
+ { + const target = e.target as HTMLElement; + const status = target?.closest('.demo-container')?.querySelector('.status-bar'); + if (status) { + const depth = e.detail.stackDepth; + const levels = ['Regions', 'Country', 'City', 'District', 'Location']; + status.textContent = `Level ${depth}/5: ${levels[depth - 1] || 'Unknown'}`; + } + }} + > + +
+

Regions

+
+
{ + const target = e.target as HTMLElement; + (target?.closest('dees-mobile-viewstack') as DeesMobileViewstack)?.pushView('country'); + }}> +
Europe
44 countries
+ › +
+
+ + +
+ +

Germany

+
+
{ + ((e.target as HTMLElement)?.closest('dees-mobile-viewstack') as DeesMobileViewstack)?.pushView('city'); + }}> +
Berlin
12 districts
+ › +
+
+ + +
+ +

Berlin

+
+
{ + ((e.target as HTMLElement)?.closest('dees-mobile-viewstack') as DeesMobileViewstack)?.pushView('district'); + }}> +
Mitte
Central district
+ › +
+
+ + +
+ +

Mitte

+
+
{ + ((e.target as HTMLElement)?.closest('dees-mobile-viewstack') as DeesMobileViewstack)?.pushView('location'); + }}> +
Brandenburg Gate
Historic landmark
+ › +
+
+ + +
+ +

Brandenburg Gate

+
+
+

Brandenburg Gate

+

An 18th-century neoclassical monument in Berlin. One of the best-known landmarks of Germany.

+

+ You've reached the deepest level!
+ Use the back button to navigate up through the hierarchy. +

+
+
+
+ +
Level 1/5: Regions
+
+ `; +}; + +// Export array of demo functions +export const demoFunc = [ + mobileDemo, + desktopDemo, + programmaticDemo, + deepNavigationDemo, +]; diff --git a/ts_web/elements/00group-layout/dees-mobile-viewstack/dees-mobile-viewstack.ts b/ts_web/elements/00group-layout/dees-mobile-viewstack/dees-mobile-viewstack.ts new file mode 100644 index 0000000..1173e2e --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-viewstack/dees-mobile-viewstack.ts @@ -0,0 +1,409 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + state, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import '../dees-mobile-view/dees-mobile-view.js'; +import type { DeesMobileView } from '../dees-mobile-view/dees-mobile-view.js'; +import { demoFunc } from './dees-mobile-viewstack.demo.js'; + +export interface IViewChangeEvent { + currentView: string; + previousView: string | null; + direction: 'forward' | 'back' | 'none'; + stackDepth: number; +} + +export interface IRouterConfig { + [route: string]: string; +} + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-viewstack': DeesMobileViewstack; + } +} + +/** + * A programmatic view stack component for managing nested navigation with sliding transitions. + * + * @example + * ```html + * + * + * + * + * + * + * + * + * + * + * + * ``` + * + * @fires view-changed - Fired when navigation completes + * @fires transition-start - Fired when animation begins + * @fires transition-end - Fired when animation completes + */ +@customElement('dees-mobile-viewstack') +export class DeesMobileViewstack extends DeesElement { + public static demo = demoFunc; + + @property({ type: String, attribute: 'initial-view' }) + accessor initialView: string = ''; + + @state() + accessor viewStack: string[] = []; + + @state() + accessor navigationDirection: 'forward' | 'back' | 'none' = 'none'; + + @state() + accessor isTransitioning: boolean = false; + + @state() + accessor currentView: string | null = null; + + @state() + accessor previousView: string | null = null; + + private viewRegistry: Map = new Map(); + private animationDuration = 300; + private connectedRouter: any = null; + private routerConfig: IRouterConfig = {}; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + display: block; + position: relative; + width: 100%; + height: 100%; + overflow: hidden; + background: ${cssManager.bdTheme('#ffffff', '#09090b')}; + } + + .viewstack-container { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; + } + + ::slotted(dees-mobile-view) { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + `, + ]; + + async connectedCallback(): Promise { + await super.connectedCallback(); + + // Wait for slot content to be available + await this.updateComplete; + + // Register child views + this.registerChildViews(); + + // Set initial view + if (this.initialView && !this.currentView) { + this.viewStack = [this.initialView]; + this.currentView = this.initialView; + this.activateView(this.initialView); + } + } + + private registerChildViews(): void { + const slot = this.shadowRoot?.querySelector('slot'); + if (!slot) return; + + const views = slot.assignedElements().filter( + (el): el is DeesMobileView => el.tagName.toLowerCase() === 'dees-mobile-view' + ); + + this.viewRegistry.clear(); + for (const view of views) { + if (view.viewId) { + this.viewRegistry.set(view.viewId, view); + view.active = false; + } + } + } + + private activateView(viewId: string): void { + const view = this.viewRegistry.get(viewId); + if (view) { + view.active = true; + } + } + + private deactivateView(viewId: string): void { + const view = this.viewRegistry.get(viewId); + if (view) { + view.active = false; + view.endAnimation(); + } + } + + /** + * Get the current stack depth + */ + public get stackDepth(): number { + return this.viewStack.length; + } + + /** + * Check if navigation back is possible + */ + public get canGoBack(): boolean { + return this.viewStack.length > 1; + } + + /** + * Push a new view onto the stack (slide forward animation) + */ + public async pushView(viewId: string): Promise { + if (this.isTransitioning) return; + if (!this.viewRegistry.has(viewId)) { + console.warn(`View "${viewId}" not found in viewstack`); + return; + } + if (this.currentView === viewId) return; + + this.isTransitioning = true; + this.navigationDirection = 'forward'; + this.previousView = this.currentView; + + this.dispatchEvent(new CustomEvent('transition-start', { + bubbles: true, + composed: true, + detail: { direction: 'forward', from: this.currentView, to: viewId } + })); + + // Get view elements + const currentViewEl = this.previousView ? this.viewRegistry.get(this.previousView) : null; + const newViewEl = this.viewRegistry.get(viewId); + + // Start animations + if (currentViewEl) { + currentViewEl.startAnimation('leaving', 'forward'); + } + if (newViewEl) { + newViewEl.active = true; + newViewEl.startAnimation('entering', 'forward'); + } + + // Update stack + this.viewStack = [...this.viewStack, viewId]; + this.currentView = viewId; + + // Wait for animation + await this.waitForAnimation(); + + // Cleanup + if (currentViewEl) { + currentViewEl.active = false; + currentViewEl.endAnimation(); + } + if (newViewEl) { + newViewEl.endAnimation(); + } + + this.isTransitioning = false; + this.navigationDirection = 'none'; + + this.dispatchViewChangedEvent(); + this.dispatchEvent(new CustomEvent('transition-end', { + bubbles: true, + composed: true + })); + } + + /** + * Pop the current view and return to previous (slide back animation) + */ + public async popView(): Promise { + if (this.isTransitioning) return; + if (!this.canGoBack) return; + + this.isTransitioning = true; + this.navigationDirection = 'back'; + this.previousView = this.currentView; + + const previousViewId = this.viewStack[this.viewStack.length - 2]; + + this.dispatchEvent(new CustomEvent('transition-start', { + bubbles: true, + composed: true, + detail: { direction: 'back', from: this.currentView, to: previousViewId } + })); + + // Get view elements + const currentViewEl = this.currentView ? this.viewRegistry.get(this.currentView) : null; + const previousViewEl = this.viewRegistry.get(previousViewId); + + // Start animations + if (currentViewEl) { + currentViewEl.startAnimation('leaving', 'back'); + } + if (previousViewEl) { + previousViewEl.active = true; + previousViewEl.startAnimation('entering', 'back'); + } + + // Update stack + this.viewStack = this.viewStack.slice(0, -1); + this.currentView = previousViewId; + + // Wait for animation + await this.waitForAnimation(); + + // Cleanup + if (currentViewEl) { + currentViewEl.active = false; + currentViewEl.endAnimation(); + } + if (previousViewEl) { + previousViewEl.endAnimation(); + } + + this.isTransitioning = false; + this.navigationDirection = 'none'; + + this.dispatchViewChangedEvent(); + this.dispatchEvent(new CustomEvent('transition-end', { + bubbles: true, + composed: true + })); + + // Emit navigate-back for header integration + this.dispatchEvent(new CustomEvent('navigate-back', { + bubbles: true, + composed: true, + detail: { canGoBack: this.canGoBack } + })); + } + + /** + * Replace current view without animation + */ + public replaceView(viewId: string): void { + if (!this.viewRegistry.has(viewId)) { + console.warn(`View "${viewId}" not found in viewstack`); + return; + } + + // Deactivate current view + if (this.currentView) { + this.deactivateView(this.currentView); + } + + // Update stack (replace last item) + if (this.viewStack.length > 0) { + this.viewStack = [...this.viewStack.slice(0, -1), viewId]; + } else { + this.viewStack = [viewId]; + } + + this.previousView = this.currentView; + this.currentView = viewId; + this.activateView(viewId); + + this.dispatchViewChangedEvent(); + } + + /** + * Go to root view (first in stack) + */ + public async goToRoot(animate: boolean = true): Promise { + if (this.viewStack.length <= 1) return; + + const rootViewId = this.viewStack[0]; + + if (animate) { + // Animate back to root + while (this.viewStack.length > 1) { + await this.popView(); + } + } else { + // Instant navigation to root + if (this.currentView) { + this.deactivateView(this.currentView); + } + + this.previousView = this.currentView; + this.viewStack = [rootViewId]; + this.currentView = rootViewId; + this.activateView(rootViewId); + + this.dispatchViewChangedEvent(); + } + } + + /** + * Connect an optional router for URL-based navigation + */ + public connectRouter(router: any, config: IRouterConfig): void { + this.connectedRouter = router; + this.routerConfig = config; + + // Listen for route changes + if (router && typeof router.on === 'function') { + router.on('routeChange', (route: string) => { + const viewId = this.routerConfig[route]; + if (viewId && viewId !== this.currentView) { + this.pushView(viewId); + } + }); + } + } + + /** + * Disconnect the router + */ + public disconnectRouter(): void { + this.connectedRouter = null; + this.routerConfig = {}; + } + + private async waitForAnimation(): Promise { + return new Promise((resolve) => setTimeout(resolve, this.animationDuration)); + } + + private dispatchViewChangedEvent(): void { + const event: IViewChangeEvent = { + currentView: this.currentView || '', + previousView: this.previousView, + direction: this.navigationDirection, + stackDepth: this.stackDepth + }; + + this.dispatchEvent(new CustomEvent('view-changed', { + bubbles: true, + composed: true, + detail: event + })); + } + + public render(): TemplateResult { + return html` +
+ +
+ `; + } +} diff --git a/ts_web/elements/00group-layout/dees-mobile-viewstack/index.ts b/ts_web/elements/00group-layout/dees-mobile-viewstack/index.ts new file mode 100644 index 0000000..829f8a3 --- /dev/null +++ b/ts_web/elements/00group-layout/dees-mobile-viewstack/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-viewstack.js'; diff --git a/ts_web/elements/00group-layout/index.ts b/ts_web/elements/00group-layout/index.ts new file mode 100644 index 0000000..249f7d6 --- /dev/null +++ b/ts_web/elements/00group-layout/index.ts @@ -0,0 +1,5 @@ +// Layout Components +export * from './dees-mobile-navigation/index.js'; +export * from './dees-mobile-applayout/index.js'; +export * from './dees-mobile-view/index.js'; +export * from './dees-mobile-viewstack/index.js'; diff --git a/ts_web/elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.demo.ts b/ts_web/elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.demo.ts new file mode 100644 index 0000000..dd352f1 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.demo.ts @@ -0,0 +1,98 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

Action Sheet

+ { + const container = (e.target as HTMLElement).parentElement; + const existing = container?.querySelector('dees-mobile-actionsheet'); + if (existing) existing.remove(); + + const sheet = document.createElement('dees-mobile-actionsheet'); + (sheet as any).title = 'Add Photo'; + (sheet as any).options = [ + { + id: 'camera', + icon: 'camera', + iconColor: 'var(--dees-primary)', + iconBackground: 'rgba(59, 130, 246, 0.1)', + title: 'Take Photo', + subtitle: 'Use camera to capture a new photo' + }, + { + id: 'gallery', + icon: 'image', + iconColor: '#16a34a', + iconBackground: '#dcfce7', + title: 'Choose from Gallery', + subtitle: 'Select an existing photo' + } + ]; + sheet.addEventListener('close', () => sheet.remove()); + sheet.addEventListener('select', (ev: any) => { + console.log('Selected:', ev.detail); + sheet.remove(); + }); + document.body.appendChild(sheet); + }} + >Show Photo Options +

Opens an iOS-style action sheet from the bottom of the screen.

+
+ +
+

Share Options

+ { + const sheet = document.createElement('dees-mobile-actionsheet'); + (sheet as any).title = 'Share'; + (sheet as any).options = [ + { + id: 'copy', + icon: 'copy', + title: 'Copy Link' + }, + { + id: 'email', + icon: 'mail', + title: 'Send via Email' + }, + { + id: 'message', + icon: 'message-circle', + title: 'Send Message' + } + ]; + sheet.addEventListener('close', () => sheet.remove()); + sheet.addEventListener('select', (ev: any) => { + console.log('Share via:', ev.detail); + sheet.remove(); + }); + document.body.appendChild(sheet); + }} + >Share Options +
+`; +}; diff --git a/ts_web/elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.ts b/ts_web/elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.ts new file mode 100644 index 0000000..fdbce1d --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.ts @@ -0,0 +1,223 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import '../dees-mobile-icon/dees-mobile-icon.js'; +import { demoFunc } from './dees-mobile-actionsheet.demo.js'; + +export interface IActionSheetOption { + id: string; + icon?: string; + iconColor?: string; + iconBackground?: string; + title: string; + subtitle?: string; +} + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-actionsheet': DeesMobileActionsheet; + } +} + +@customElement('dees-mobile-actionsheet') +export class DeesMobileActionsheet extends DeesElement { + public static demo = demoFunc; + + @property({ type: String }) + accessor title: string = ''; + + @property({ type: Array }) + accessor options: IActionSheetOption[] = []; + + @property({ type: String }) + accessor cancelText: string = 'Cancel'; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + position: fixed; + inset: 0; + z-index: var(--dees-z-modal, 500); + display: flex; + flex-direction: column; + justify-content: flex-end; + } + + .backdrop { + position: absolute; + inset: 0; + background: rgba(0, 0, 0, 0); + animation: fadeInBackdrop 0.2s ease-out forwards; + } + + @keyframes fadeInBackdrop { + to { + background: rgba(0, 0, 0, 0.5); + } + } + + .sheet { + position: relative; + background: var(--dees-card); + border-radius: var(--dees-radius-lg) var(--dees-radius-lg) 0 0; + padding: var(--dees-space-md); + padding-bottom: calc(var(--dees-space-md) + env(safe-area-inset-bottom, 0px)); + transform: translateY(100%); + animation: slideUp 0.3s ease-out forwards; + } + + @keyframes slideUp { + to { + transform: translateY(0); + } + } + + .sheet-title { + text-align: center; + font-size: 0.875rem; + color: var(--dees-muted-foreground); + margin-bottom: var(--dees-space-md); + padding-bottom: var(--dees-space-sm); + border-bottom: 1px solid var(--dees-border); + } + + .options { + display: flex; + flex-direction: column; + gap: var(--dees-space-xs); + } + + .option { + display: flex; + align-items: center; + gap: var(--dees-space-md); + padding: var(--dees-space-md); + border: none; + background: var(--dees-background); + border-radius: var(--dees-radius-md); + cursor: pointer; + color: var(--dees-foreground); + font-size: 1rem; + font-weight: 500; + text-align: left; + transition: background var(--dees-transition-fast); + } + + .option:hover { + background: var(--dees-muted); + } + + .option:active { + background: var(--dees-accent); + } + + .option-icon { + width: 44px; + height: 44px; + display: flex; + align-items: center; + justify-content: center; + border-radius: var(--dees-radius-full); + flex-shrink: 0; + background: var(--dees-accent); + color: var(--dees-primary); + } + + .option-text { + flex: 1; + } + + .option-title { + font-weight: 500; + } + + .option-subtitle { + font-size: 0.75rem; + color: var(--dees-muted-foreground); + font-weight: normal; + margin-top: 2px; + } + + .cancel { + margin-top: var(--dees-space-sm); + padding: var(--dees-space-md); + border: none; + background: var(--dees-background); + border-radius: var(--dees-radius-md); + cursor: pointer; + color: var(--dees-danger); + font-size: 1rem; + font-weight: 500; + width: 100%; + transition: background var(--dees-transition-fast); + } + + .cancel:hover { + background: rgba(220, 38, 38, 0.1); + } + `, + ]; + + private handleSelect(option: IActionSheetOption) { + this.dispatchEvent(new CustomEvent('select', { + detail: option, + bubbles: true, + composed: true, + })); + } + + private handleClose() { + this.dispatchEvent(new CustomEvent('close', { + bubbles: true, + composed: true, + })); + } + + public render(): TemplateResult { + return html` +
+
+ ${this.title ? html`
${this.title}
` : ''} + +
+ ${this.options.map(option => html` + + `)} +
+ + +
+ `; + } +} diff --git a/ts_web/elements/00group-ui/dees-mobile-actionsheet/index.ts b/ts_web/elements/00group-ui/dees-mobile-actionsheet/index.ts new file mode 100644 index 0000000..f5002ee --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-actionsheet/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-actionsheet.js'; diff --git a/ts_web/elements/00group-ui/dees-mobile-button/dees-mobile-button.demo.ts b/ts_web/elements/00group-ui/dees-mobile-button/dees-mobile-button.demo.ts new file mode 100644 index 0000000..9b775b1 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-button/dees-mobile-button.demo.ts @@ -0,0 +1,72 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

Variants

+
+ Default + Primary + Secondary + Outline + Ghost + Destructive + Link +
+
+ +
+

Sizes

+
+ Small + Medium + Large +
+
+ +
+

States

+
+ Normal + Disabled + Loading +
+
+ +
+

Icon Buttons

+
+ + + + + + + + + +
+
+`; +}; diff --git a/ts_web/elements/00group-ui/dees-mobile-button/dees-mobile-button.ts b/ts_web/elements/00group-ui/dees-mobile-button/dees-mobile-button.ts new file mode 100644 index 0000000..d589d74 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-button/dees-mobile-button.ts @@ -0,0 +1,224 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import { demoFunc } from './dees-mobile-button.demo.js'; + +export type ButtonVariant = 'default' | 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link'; +export type ButtonSize = 'sm' | 'md' | 'lg'; + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-button': DeesMobileButton; + } +} + +@customElement('dees-mobile-button') +export class DeesMobileButton extends DeesElement { + public static demo = demoFunc; + + @property({ type: String }) + accessor variant: ButtonVariant = 'default'; + + @property({ type: String }) + accessor size: ButtonSize = 'md'; + + @property({ type: Boolean }) + accessor disabled: boolean = false; + + @property({ type: Boolean }) + accessor loading: boolean = false; + + @property({ type: Boolean, reflect: true }) + accessor icon: boolean = false; + + @property({ type: String }) + accessor type: 'button' | 'submit' | 'reset' = 'button'; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + display: inline-block; + } + + button { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + font-family: inherit; + font-weight: 500; + border: none; + border-radius: calc(var(--dees-radius, 0.5rem) - 2px); + cursor: pointer; + transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1); + outline: none; + position: relative; + white-space: nowrap; + text-decoration: none; + } + + button:focus-visible { + outline: 2px solid var(--dees-primary); + outline-offset: 2px; + } + + button:active:not(:disabled) { + transform: scale(0.98); + } + + button:disabled { + opacity: 0.5; + cursor: not-allowed; + pointer-events: none; + } + + /* Sizes */ + button.sm { + height: 2rem; + padding: 0 0.75rem; + font-size: 0.75rem; + border-radius: calc(var(--dees-radius, 0.5rem) - 4px); + } + + button.md { + height: 2.25rem; + padding: 0 1rem; + font-size: 0.875rem; + } + + button.lg { + height: 2.75rem; + padding: 0 2rem; + font-size: 0.875rem; + } + + /* Variants - using bdTheme for bright/dark support */ + button.default, + button.primary { + background: #3b82f6; + color: #ffffff; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); + } + + button.default:not(:disabled):hover, + button.primary:not(:disabled):hover { + background: #2563eb; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + } + + button.secondary { + background: ${cssManager.bdTheme('#f4f4f5', '#27272a')}; + color: ${cssManager.bdTheme('#18181b', '#fafafa')}; + } + + button.secondary:not(:disabled):hover { + background: ${cssManager.bdTheme('#e4e4e7', '#3f3f46')}; + } + + button.outline { + background: transparent; + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; + border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#3f3f46')}; + } + + button.outline:not(:disabled):hover { + background: ${cssManager.bdTheme('#f4f4f5', '#27272a')}; + border-color: ${cssManager.bdTheme('#d4d4d8', '#52525b')}; + } + + button.ghost { + background-color: transparent; + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; + } + + button.ghost:not(:disabled):hover { + background: ${cssManager.bdTheme('#f4f4f5', '#27272a')}; + } + + button.destructive { + background: #dc2626; + color: #ffffff; + } + + button.destructive:not(:disabled):hover { + background: #b91c1c; + } + + button.link { + background: transparent; + color: #3b82f6; + text-decoration: underline; + text-underline-offset: 4px; + padding: 0; + height: auto; + } + + button.link:not(:disabled):hover { + text-decoration: underline; + } + + /* Loading state */ + .spinner { + width: 1em; + height: 1em; + border: 2px solid transparent; + border-top-color: currentColor; + border-radius: 50%; + animation: spin 0.8s linear infinite; + } + + @keyframes spin { + to { transform: rotate(360deg); } + } + + /* Icon-only button */ + :host([icon]) button { + width: 2.25rem; + height: 2.25rem; + padding: 0; + } + + :host([icon]) button.sm { + width: 2rem; + height: 2rem; + } + + :host([icon]) button.lg { + width: 2.75rem; + height: 2.75rem; + } + `, + ]; + + private handleClick(e: MouseEvent) { + if (this.disabled || this.loading) { + e.preventDefault(); + e.stopPropagation(); + return; + } + } + + public render(): TemplateResult { + return html` + + `; + } +} diff --git a/ts_web/elements/00group-ui/dees-mobile-button/index.ts b/ts_web/elements/00group-ui/dees-mobile-button/index.ts new file mode 100644 index 0000000..92d2885 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-button/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-button.js'; diff --git a/ts_web/elements/00group-ui/dees-mobile-header/dees-mobile-header.demo.ts b/ts_web/elements/00group-ui/dees-mobile-header/dees-mobile-header.demo.ts new file mode 100644 index 0000000..c646835 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-header/dees-mobile-header.demo.ts @@ -0,0 +1,68 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

Basic Header

+
+ +
+
+ +
+

Header with Subtitle

+
+ +
+
+ +
+

Header with Back Action

+
+ + + + + +
+
+ +
+

Header with Actions

+
+ + + + + + + + + + + +
+
+`; +}; diff --git a/ts_web/elements/00group-ui/dees-mobile-header/dees-mobile-header.ts b/ts_web/elements/00group-ui/dees-mobile-header/dees-mobile-header.ts new file mode 100644 index 0000000..bcdfc58 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-header/dees-mobile-header.ts @@ -0,0 +1,171 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import { demoFunc } from './dees-mobile-header.demo.js'; + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-header': DeesMobileHeader; + } +} + +@customElement('dees-mobile-header') +export class DeesMobileHeader extends DeesElement { + public static demo = demoFunc; + + @property({ type: String }) + accessor title: string = ''; + + @property({ type: String }) + accessor subtitle: string = ''; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + display: block; + background: ${cssManager.bdTheme('#ffffff', '#09090b')}; + border-bottom: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')}; + position: relative; + } + + .header { + /* Mobile-first defaults */ + height: 4rem; + padding: 0 1rem; + display: flex; + align-items: center; + gap: 0.75rem; + max-width: 768px; + margin: 0 auto; + box-sizing: border-box; + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + .header { + height: 5rem; + padding: 0 1.25rem; + gap: 1rem; + } + } + + .left-action { + flex-shrink: 0; + margin-left: -0.5rem; + } + + .left-action:empty { + display: none; + } + + .left-action ::slotted(*) { + width: 2.5rem; + height: 2.5rem; + } + + .content { + flex: 1; + min-width: 0; + } + + .middle { + flex-shrink: 0; + display: flex; + align-items: center; + } + + .middle:empty { + display: none; + } + + h1 { + /* Mobile-first defaults */ + font-size: 1rem; + font-weight: 600; + margin: 0; + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + line-height: 1.2; + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + h1 { + font-size: 1.125rem; + } + } + + .subtitle { + /* Mobile-first defaults */ + font-size: 0.8125rem; + margin: 0.125rem 0 0; + color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; + line-height: 1.3; + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + .subtitle { + font-size: 0.875rem; + margin: 0.25rem 0 0; + } + } + + .actions { + display: flex; + align-items: center; + gap: 8px; + flex-shrink: 0; + } + + ::slotted([slot="actions"]) { + width: 2.5rem; + height: 2.5rem; + color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; + display: block; + } + + ::slotted([slot="actions"]:hover) { + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; + background: ${cssManager.bdTheme('#f4f4f5', '#27272a')}; + border-radius: 4px; + } + `, + ]; + + public render(): TemplateResult { + return html` +
+
+ +
+
+ +

${this.title}

+ ${this.subtitle ? html`
${this.subtitle}
` : ''} +
+
+ +
+ +
+ +
+ +
+
+ `; + } +} diff --git a/ts_web/elements/00group-ui/dees-mobile-header/index.ts b/ts_web/elements/00group-ui/dees-mobile-header/index.ts new file mode 100644 index 0000000..e9b0e84 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-header/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-header.js'; diff --git a/ts_web/elements/00group-ui/dees-mobile-icon/dees-mobile-icon.demo.ts b/ts_web/elements/00group-ui/dees-mobile-icon/dees-mobile-icon.demo.ts new file mode 100644 index 0000000..f930c2c --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-icon/dees-mobile-icon.demo.ts @@ -0,0 +1,100 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

Common Icons

+
+
+ + home +
+
+ + settings +
+
+ + user +
+
+ + search +
+
+ + menu +
+
+ + x +
+
+
+ +
+

Sizes

+
+ + + + + +
+
+ +
+

Colors

+
+ + + + +
+
+ +
+

Stroke Width

+
+ + + +
+
+`; +}; diff --git a/ts_web/elements/00group-ui/dees-mobile-icon/dees-mobile-icon.ts b/ts_web/elements/00group-ui/dees-mobile-icon/dees-mobile-icon.ts new file mode 100644 index 0000000..f647b29 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-icon/dees-mobile-icon.ts @@ -0,0 +1,189 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import * as lucideIcons from 'lucide'; +import { createElement } from 'lucide'; +import { demoFunc } from './dees-mobile-icon.demo.js'; + +// Create a type-safe icon name type +export type LucideIconName = keyof typeof lucideIcons; + +// Cache for rendered icons to improve performance +const iconCache = new Map(); +const MAX_CACHE_SIZE = 500; + +function limitCacheSize() { + if (iconCache.size > MAX_CACHE_SIZE) { + const keysToDelete = Array.from(iconCache.keys()).slice(0, MAX_CACHE_SIZE / 5); + keysToDelete.forEach(key => iconCache.delete(key)); + } +} + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-icon': DeesMobileIcon; + } +} + +@customElement('dees-mobile-icon') +export class DeesMobileIcon extends DeesElement { + public static demo = demoFunc; + + @property({ type: String }) + accessor icon: string = ''; + + @property({ type: Number }) + accessor size: number = 20; + + @property({ type: String }) + accessor color: string = 'currentColor'; + + @property({ type: Number }) + accessor strokeWidth: number = 2; + + private lastIcon: string | null = null; + private lastSize: number | null = null; + private lastColor: string | null = null; + private lastStrokeWidth: number | null = null; + + public static styles = [ + cssManager.defaultStyles, + css` + :host { + display: inline-flex; + align-items: center; + justify-content: center; + line-height: 1; + vertical-align: middle; + } + + #iconContainer { + display: flex; + align-items: center; + justify-content: center; + } + + #iconContainer svg { + display: block; + height: 100%; + width: 100%; + } + `, + ]; + + private renderLucideIcon(iconName: string): string { + const cacheKey = `${iconName}:${this.size}:${this.color}:${this.strokeWidth}`; + + if (iconCache.has(cacheKey)) { + return iconCache.get(cacheKey) || ''; + } + + try { + // Convert kebab-case to PascalCase (e.g., "chevron-down" -> "ChevronDown") + const pascalCaseName = iconName + .split('-') + .map(part => part.charAt(0).toUpperCase() + part.slice(1)) + .join(''); + + if (!(lucideIcons as any)[pascalCaseName]) { + console.warn(`Lucide icon '${pascalCaseName}' not found`); + return ''; + } + + const svgElement = createElement((lucideIcons as any)[pascalCaseName], { + color: this.color, + size: this.size, + strokeWidth: this.strokeWidth + }); + + if (!svgElement) { + console.warn(`createElement returned empty result for ${pascalCaseName}`); + return ''; + } + + const result = svgElement.outerHTML; + iconCache.set(cacheKey, result); + limitCacheSize(); + + return result; + } catch (error) { + console.error(`Error rendering Lucide icon ${iconName}:`, error); + return ''; + } + } + + public render(): TemplateResult { + return html` + +
+ `; + } + + updated() { + // Check if we actually need to update the icon + if (this.lastIcon === this.icon && + this.lastSize === this.size && + this.lastColor === this.color && + this.lastStrokeWidth === this.strokeWidth) { + return; + } + + this.lastIcon = this.icon || null; + this.lastSize = this.size; + this.lastColor = this.color; + this.lastStrokeWidth = this.strokeWidth; + + const container = this.shadowRoot?.querySelector('#iconContainer'); + if (!container || !this.icon) return; + + container.innerHTML = ''; + + try { + const pascalCaseName = this.icon + .split('-') + .map(part => part.charAt(0).toUpperCase() + part.slice(1)) + .join(''); + + if ((lucideIcons as any)[pascalCaseName]) { + const svgElement = createElement((lucideIcons as any)[pascalCaseName], { + color: this.color, + size: this.size, + strokeWidth: this.strokeWidth + }); + + if (svgElement) { + container.appendChild(svgElement); + return; + } + } + + // Fall back to string-based approach + const iconHtml = this.renderLucideIcon(this.icon); + if (iconHtml) { + container.innerHTML = iconHtml; + } + } catch (error) { + console.error(`Error updating icon ${this.icon}:`, error); + } + } + + async disconnectedCallback() { + await super.disconnectedCallback(); + this.lastIcon = null; + this.lastSize = null; + this.lastColor = null; + this.lastStrokeWidth = null; + } +} diff --git a/ts_web/elements/00group-ui/dees-mobile-icon/index.ts b/ts_web/elements/00group-ui/dees-mobile-icon/index.ts new file mode 100644 index 0000000..879c0c7 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-icon/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-icon.js'; diff --git a/ts_web/elements/00group-ui/dees-mobile-modal/dees-mobile-modal.demo.ts b/ts_web/elements/00group-ui/dees-mobile-modal/dees-mobile-modal.demo.ts new file mode 100644 index 0000000..4866602 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-modal/dees-mobile-modal.demo.ts @@ -0,0 +1,74 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

Modal (click button to open)

+ { + const modal = (e.target as HTMLElement).parentElement?.querySelector('dees-mobile-modal'); + if (modal) (modal as any).open = true; + }} + >Open Modal + + { + (e.target as any).open = false; + }} + > + +
+ Cancel + Confirm +
+
+
+ +
+

Modal without Close Button

+ { + const modal = (e.target as HTMLElement).parentElement?.querySelector('dees-mobile-modal'); + if (modal) (modal as any).open = true; + }} + >Open Required Modal + + { + (e.target as any).open = false; + }} + > + +
+ I Accept +
+
+
+`; +}; diff --git a/ts_web/elements/00group-ui/dees-mobile-modal/dees-mobile-modal.ts b/ts_web/elements/00group-ui/dees-mobile-modal/dees-mobile-modal.ts new file mode 100644 index 0000000..32898be --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-modal/dees-mobile-modal.ts @@ -0,0 +1,202 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import '../dees-mobile-icon/dees-mobile-icon.js'; +import { demoFunc } from './dees-mobile-modal.demo.js'; + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-modal': DeesMobileModal; + } +} + +@customElement('dees-mobile-modal') +export class DeesMobileModal extends DeesElement { + public static demo = demoFunc; + + @property({ type: Boolean }) + accessor open: boolean = false; + + @property({ type: String }) + accessor title: string = ''; + + @property({ type: Boolean }) + accessor showCloseButton: boolean = true; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + .modal-backdrop { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: var(--dees-z-modal, 500); + padding: 1rem; + animation: fadeIn 200ms ease-out; + } + + @keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } + } + + .modal { + background: ${cssManager.bdTheme('#ffffff', '#18181b')}; + border-radius: 0.75rem; + box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + /* Mobile-first defaults */ + max-width: 100%; + width: 100%; + max-height: 90vh; + display: flex; + flex-direction: column; + animation: slideUp 200ms ease-out; + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + .modal { + max-width: 500px; + } + } + + @keyframes slideUp { + from { + transform: translateY(20px); + opacity: 0; + } + to { + transform: translateY(0); + opacity: 1; + } + } + + .modal-header { + display: flex; + align-items: center; + justify-content: space-between; + /* Mobile-first defaults */ + padding: 1rem; + border-bottom: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')}; + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + .modal-header { + padding: 1.5rem; + } + } + + .modal-title { + font-size: 1.125rem; + font-weight: 600; + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; + margin: 0; + } + + .close-button { + display: flex; + align-items: center; + justify-content: center; + width: 2rem; + height: 2rem; + border: none; + background: transparent; + border-radius: 0.25rem; + color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; + cursor: pointer; + transition: all 150ms ease; + } + + .close-button:hover { + background: ${cssManager.bdTheme('#f4f4f5', '#27272a')}; + color: ${cssManager.bdTheme('#09090b', '#fafafa')}; + } + + .modal-content { + overflow-y: auto; + -webkit-overflow-scrolling: touch; + padding: 1rem; + } + + @media (min-width: 641px) { + .modal-content { + padding: 1.5rem; + } + } + + .modal-footer { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 0.5rem; + padding: 1rem; + border-top: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')}; + } + + @media (min-width: 641px) { + .modal-footer { + padding: 1.5rem; + } + } + + .modal-footer:empty { + display: none; + } + `, + ]; + + private handleBackdropClick(e: MouseEvent) { + if (e.target === e.currentTarget) { + this.handleClose(); + } + } + + private handleClose() { + this.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true })); + } + + public render(): TemplateResult { + if (!this.open) return html``; + + return html` + + `; + } +} diff --git a/ts_web/elements/00group-ui/dees-mobile-modal/index.ts b/ts_web/elements/00group-ui/dees-mobile-modal/index.ts new file mode 100644 index 0000000..455c8f9 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-modal/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-modal.js'; diff --git a/ts_web/elements/00group-ui/dees-mobile-toast/dees-mobile-toast.demo.ts b/ts_web/elements/00group-ui/dees-mobile-toast/dees-mobile-toast.demo.ts new file mode 100644 index 0000000..14b0703 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-toast/dees-mobile-toast.demo.ts @@ -0,0 +1,103 @@ +import { html } from '@design.estate/dees-element'; +import { injectCssVariables } from '../../00variables.js'; + +export const demoFunc = () => { + injectCssVariables(); + return html` + + +
+

Toast Types

+
+ { + const toast = document.createElement('dees-mobile-toast'); + (toast as any).type = 'success'; + (toast as any).message = 'Item saved successfully!'; + toast.addEventListener('close', () => toast.remove()); + document.body.appendChild(toast); + }} + >Success Toast + + { + const toast = document.createElement('dees-mobile-toast'); + (toast as any).type = 'error'; + (toast as any).message = 'Failed to save item. Please try again.'; + toast.addEventListener('close', () => toast.remove()); + document.body.appendChild(toast); + }} + >Error Toast + + { + const toast = document.createElement('dees-mobile-toast'); + (toast as any).type = 'warning'; + (toast as any).message = 'Your session will expire in 5 minutes.'; + toast.addEventListener('close', () => toast.remove()); + document.body.appendChild(toast); + }} + >Warning Toast + + { + const toast = document.createElement('dees-mobile-toast'); + (toast as any).type = 'info'; + (toast as any).message = 'New updates are available.'; + toast.addEventListener('close', () => toast.remove()); + document.body.appendChild(toast); + }} + >Info Toast +
+
+ +
+

Custom Duration

+
+ { + const toast = document.createElement('dees-mobile-toast'); + (toast as any).type = 'info'; + (toast as any).message = 'This toast stays for 10 seconds.'; + (toast as any).duration = 10000; + toast.addEventListener('close', () => toast.remove()); + document.body.appendChild(toast); + }} + >Long Duration (10s) + + { + const toast = document.createElement('dees-mobile-toast'); + (toast as any).type = 'success'; + (toast as any).message = 'Quick notification!'; + (toast as any).duration = 1500; + toast.addEventListener('close', () => toast.remove()); + document.body.appendChild(toast); + }} + >Short Duration (1.5s) +
+
+`; +}; diff --git a/ts_web/elements/00group-ui/dees-mobile-toast/dees-mobile-toast.ts b/ts_web/elements/00group-ui/dees-mobile-toast/dees-mobile-toast.ts new file mode 100644 index 0000000..b9c8293 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-toast/dees-mobile-toast.ts @@ -0,0 +1,339 @@ +import { + DeesElement, + css, + cssManager, + customElement, + html, + property, + type TemplateResult, +} from '@design.estate/dees-element'; + +import { mobileComponentStyles } from '../../00componentstyles.js'; +import '../dees-mobile-icon/dees-mobile-icon.js'; +import { demoFunc } from './dees-mobile-toast.demo.js'; + +export type ToastType = 'success' | 'error' | 'info' | 'warning'; + +declare global { + interface HTMLElementTagNameMap { + 'dees-mobile-toast': DeesMobileToast; + } +} + +@customElement('dees-mobile-toast') +export class DeesMobileToast extends DeesElement { + public static demo = demoFunc; + + @property({ type: String }) + accessor message: string = ''; + + @property({ type: String }) + accessor type: ToastType = 'info'; + + @property({ type: Number }) + accessor duration: number = 0; // 0 means use default + + private timeoutId?: number; + + public static styles = [ + cssManager.defaultStyles, + mobileComponentStyles, + css` + :host { + display: block; + position: fixed; + /* Mobile-first defaults */ + bottom: 1rem; + left: 1rem; + right: 1rem; + transform: none; + z-index: var(--dees-z-notification, 900); + animation: slideUp 200ms var(--dees-spring); + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + :host { + bottom: 2rem; + left: 50%; + right: auto; + transform: translateX(-50%); + } + } + + /* Mobile-first animations */ + @keyframes slideUp { + from { + transform: translateY(100%) scale(0.95); + opacity: 0; + } + to { + transform: translateY(0) scale(1); + opacity: 1; + } + } + + @keyframes slideDown { + from { + transform: translateY(0) scale(1); + opacity: 1; + } + to { + transform: translateY(100%) scale(0.95); + opacity: 0; + } + } + + /* Desktop-specific animations that include X translation */ + @media (min-width: 641px) { + @keyframes slideUp { + from { + transform: translate(-50%, 100%) scale(0.95); + opacity: 0; + } + to { + transform: translate(-50%, 0) scale(1); + opacity: 1; + } + } + + @keyframes slideDown { + from { + transform: translate(-50%, 0) scale(1); + opacity: 1; + } + to { + transform: translate(-50%, 100%) scale(0.95); + opacity: 0; + } + } + } + + :host(.closing) { + animation: slideDown 200ms var(--dees-ease-in); + } + + .toast { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 1rem 1.5rem; + border-radius: var(--dees-radius); + box-shadow: var(--dees-shadow-lg); + /* Mobile-first defaults */ + width: 100%; + min-width: auto; + max-width: none; + position: relative; + overflow: hidden; + } + + /* Desktop enhancements */ + @media (min-width: 641px) { + .toast { + width: auto; + min-width: 300px; + max-width: 500px; + } + } + + /* Type-specific styles */ + .toast.success { + background: var(--dees-card); + color: var(--dees-foreground); + border: 1px solid var(--dees-border); + } + + .toast.error { + background: var(--dees-danger); + color: white; + border: 1px solid var(--dees-danger); + } + + .toast.warning { + background: var(--dees-warning); + color: white; + border: 1px solid var(--dees-warning); + } + + .toast.info { + background: var(--dees-primary); + color: white; + border: 1px solid var(--dees-primary); + } + + .icon { + flex-shrink: 0; + width: 1.25rem; + height: 1.25rem; + position: relative; + z-index: 1; + } + + .icon.success { + color: var(--dees-success); + } + + .icon.error, + .icon.warning, + .icon.info { + color: currentColor; + } + + .message { + flex: 1; + font-size: 0.875rem; + font-weight: 500; + position: relative; + z-index: 1; + } + + .close { + flex-shrink: 0; + width: 2rem; + height: 2rem; + padding: 0.375rem; + margin: -0.375rem; + background: none; + border: none; + cursor: pointer; + transition: all var(--dees-transition-fast); + opacity: 0.8; + position: relative; + z-index: 2; + pointer-events: auto; + display: flex; + align-items: center; + justify-content: center; + } + + .close.success { + color: var(--dees-muted-foreground); + } + + .close.error, + .close.warning, + .close.info { + color: currentColor; + } + + .close:hover { + opacity: 1; + transform: scale(1.1); + } + + /* Progress bar */ + .progress-bar { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 3px; + background: currentColor; + opacity: 0.3; + transform-origin: left; + animation: progress linear forwards; + pointer-events: none; + transform: scaleX(1); + } + + .toast.success .progress-bar { + background: var(--dees-success); + } + + .toast.error .progress-bar, + .toast.warning .progress-bar, + .toast.info .progress-bar { + background: rgba(255, 255, 255, 0.5); + } + + @keyframes progress { + from { + transform: scaleX(1); + } + to { + transform: scaleX(0); + } + } + `, + ]; + + private get defaultDuration(): number { + switch (this.type) { + case 'success': return 3000; + case 'error': return 5000; + case 'warning': return 4000; + case 'info': return 4000; + } + } + + async connectedCallback() { + await super.connectedCallback(); + // Auto-dismiss after duration + const duration = this.duration || this.defaultDuration; + this.timeoutId = window.setTimeout(() => { + this.handleClose(); + }, duration); + } + + async disconnectedCallback() { + await super.disconnectedCallback(); + // Clear the timeout when the element is removed + if (this.timeoutId) { + clearTimeout(this.timeoutId); + } + } + + private handleClose() { + // Cancel the auto-dismiss timer + if (this.timeoutId) { + clearTimeout(this.timeoutId); + this.timeoutId = undefined; + } + + // Prevent double-triggering + if (this.classList.contains('closing')) return; + + // Add closing animation + this.classList.add('closing'); + + // Wait for closing animation to complete + setTimeout(() => { + this.dispatchEvent(new CustomEvent('close', { + bubbles: true, + composed: true, + })); + }, 200); + } + + private getIcon(): string { + switch (this.type) { + case 'success': return 'check-circle'; + case 'error': return 'alert-circle'; + case 'warning': return 'alert-triangle'; + case 'info': return 'info'; + } + } + + public render(): TemplateResult { + const duration = this.duration || this.defaultDuration; + + return html` +
+
+ +
+ ${this.message} + +
+
+ `; + } +} diff --git a/ts_web/elements/00group-ui/dees-mobile-toast/index.ts b/ts_web/elements/00group-ui/dees-mobile-toast/index.ts new file mode 100644 index 0000000..728d9e2 --- /dev/null +++ b/ts_web/elements/00group-ui/dees-mobile-toast/index.ts @@ -0,0 +1 @@ +export * from './dees-mobile-toast.js'; diff --git a/ts_web/elements/00group-ui/index.ts b/ts_web/elements/00group-ui/index.ts new file mode 100644 index 0000000..046f290 --- /dev/null +++ b/ts_web/elements/00group-ui/index.ts @@ -0,0 +1,7 @@ +// Core UI Components +export * from './dees-mobile-button/index.js'; +export * from './dees-mobile-icon/index.js'; +export * from './dees-mobile-header/index.js'; +export * from './dees-mobile-modal/index.js'; +export * from './dees-mobile-actionsheet/index.js'; +export * from './dees-mobile-toast/index.js'; diff --git a/ts_web/elements/00variables.ts b/ts_web/elements/00variables.ts new file mode 100644 index 0000000..bd1086d --- /dev/null +++ b/ts_web/elements/00variables.ts @@ -0,0 +1,149 @@ +import { css } from '@design.estate/dees-element'; + +/** + * CSS custom properties (variables) for the design system + * Using --dees-* prefix for consistency with dees-catalog + */ +export const cssVariables = css` + :root { + /* Primary colors */ + --dees-primary: #3b82f6; + --dees-primary-dark: #2563eb; + --dees-primary-foreground: #ffffff; + + /* Secondary colors */ + --dees-secondary: #f4f4f5; + --dees-secondary-foreground: #18181b; + --dees-secondary-dark: #e4e4e7; + + /* Background */ + --dees-background: #ffffff; + --dees-card: #ffffff; + --dees-surface: #f4f4f5; + + /* Text */ + --dees-foreground: #09090b; + --dees-muted-foreground: #71717a; + + /* Borders */ + --dees-border: #e4e4e7; + --dees-input: #e4e4e7; + --dees-ring: #3b82f6; + + /* Semantic colors */ + --dees-success: #22c55e; + --dees-warning: #f59e0b; + --dees-danger: #ef4444; + --dees-danger-dark: #dc2626; + --dees-destructive: #dc2626; + --dees-destructive-foreground: #ffffff; + + /* Accent */ + --dees-accent: #f4f4f5; + --dees-accent-foreground: #18181b; + + /* Muted */ + --dees-muted: #f4f4f5; + + /* Border radius */ + --dees-radius: 0.5rem; + --dees-radius-sm: 0.25rem; + --dees-radius-md: 0.375rem; + --dees-radius-lg: 0.75rem; + --dees-radius-xl: 1rem; + --dees-radius-full: 9999px; + + /* Shadows */ + --dees-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --dees-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --dees-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + + /* Transitions */ + --dees-transition-fast: 150ms ease; + --dees-transition-normal: 300ms ease; + --dees-transition-slow: 500ms ease; + --dees-spring: cubic-bezier(0.4, 0, 0.2, 1); + --dees-ease-in: cubic-bezier(0.4, 0, 1, 1); + --dees-ease-out: cubic-bezier(0, 0, 0.2, 1); + + /* Spacing */ + --dees-space-xs: 0.25rem; + --dees-space-sm: 0.5rem; + --dees-space-md: 1rem; + --dees-space-lg: 1.5rem; + --dees-space-xl: 2rem; + + /* Mobile-specific */ + --dees-safe-area-inset-top: env(safe-area-inset-top, 0px); + --dees-safe-area-inset-bottom: env(safe-area-inset-bottom, 0px); + --dees-safe-area-inset-left: env(safe-area-inset-left, 0px); + --dees-safe-area-inset-right: env(safe-area-inset-right, 0px); + --safe-area-inset-bottom: env(safe-area-inset-bottom, 0px); + + /* Page padding */ + --dees-padding-page: 1rem; + + /* Z-index scale */ + --dees-z-base: 0; + --dees-z-dropdown: 100; + --dees-z-sticky: 200; + --dees-z-fixed: 300; + --dees-z-overlay: 400; + --dees-z-modal: 500; + --dees-z-popover: 600; + --dees-z-toast: 700; + --dees-z-tooltip: 800; + --dees-z-notification: 900; + --dees-z-max: 9999; + } + + /* Dark theme */ + :root[data-theme="dark"] { + /* Primary colors (same) */ + --dees-primary: #3b82f6; + --dees-primary-dark: #2563eb; + --dees-primary-foreground: #ffffff; + + /* Secondary colors */ + --dees-secondary: #27272a; + --dees-secondary-foreground: #fafafa; + --dees-secondary-dark: #18181b; + + /* Background */ + --dees-background: #09090b; + --dees-card: #18181b; + --dees-surface: #27272a; + + /* Text */ + --dees-foreground: #fafafa; + --dees-muted-foreground: #a1a1aa; + + /* Borders */ + --dees-border: #27272a; + --dees-input: #27272a; + --dees-ring: #3b82f6; + + /* Accent */ + --dees-accent: #27272a; + --dees-accent-foreground: #fafafa; + + /* Muted */ + --dees-muted: #27272a; + } +`; + +/** + * Inject CSS variables into the document + * Call this once at app initialization + */ +export function injectCssVariables(): void { + if (typeof document === 'undefined') return; + + const styleId = 'dees-mobile-variables'; + if (document.getElementById(styleId)) return; + + const style = document.createElement('style'); + style.id = styleId; + style.textContent = cssVariables.cssText; + document.head.appendChild(style); +} diff --git a/ts_web/elements/00zindex.ts b/ts_web/elements/00zindex.ts new file mode 100644 index 0000000..0461852 --- /dev/null +++ b/ts_web/elements/00zindex.ts @@ -0,0 +1,31 @@ +/** + * Z-index scale for consistent layering + */ +export const zIndex = { + base: 0, + dropdown: 100, + sticky: 200, + fixed: 300, + overlay: 400, + modal: 500, + popover: 600, + toast: 700, + tooltip: 800, + notification: 900, + max: 9999, +}; + +// CSS custom property values +export const zIndexVars = ` + --dees-z-base: ${zIndex.base}; + --dees-z-dropdown: ${zIndex.dropdown}; + --dees-z-sticky: ${zIndex.sticky}; + --dees-z-fixed: ${zIndex.fixed}; + --dees-z-overlay: ${zIndex.overlay}; + --dees-z-modal: ${zIndex.modal}; + --dees-z-popover: ${zIndex.popover}; + --dees-z-toast: ${zIndex.toast}; + --dees-z-tooltip: ${zIndex.tooltip}; + --dees-z-notification: ${zIndex.notification}; + --dees-z-max: ${zIndex.max}; +`; diff --git a/ts_web/elements/index.ts b/ts_web/elements/index.ts new file mode 100644 index 0000000..db9ef4a --- /dev/null +++ b/ts_web/elements/index.ts @@ -0,0 +1,11 @@ +// Design System +export * from './00colors.js'; +export * from './00fonts.js'; +export * from './00zindex.js'; +export * from './00variables.js'; +export * from './00componentstyles.js'; + +// Component Groups +export * from './00group-ui/index.js'; +export * from './00group-layout/index.js'; +export * from './00group-input/index.js'; diff --git a/ts_web/index.ts b/ts_web/index.ts new file mode 100644 index 0000000..682e316 --- /dev/null +++ b/ts_web/index.ts @@ -0,0 +1,6 @@ +export * from './elements/index.js'; +export * from './services/index.js'; +export * from './controllers/index.js'; +import * as colors from './elements/00colors.js'; +export { colors }; +export { commitinfo } from './00_commitinfo_data.js'; diff --git a/ts_web/pages/component-showcase.ts b/ts_web/pages/component-showcase.ts new file mode 100644 index 0000000..e685d07 --- /dev/null +++ b/ts_web/pages/component-showcase.ts @@ -0,0 +1,202 @@ +import { html, css, DeesElement, customElement, state } from '@design.estate/dees-element'; + +// Import all components +import '../elements/index.js'; + +// Import demo functions +import { demoFunc as buttonDemo } from '../elements/00group-ui/dees-mobile-button/dees-mobile-button.demo.js'; +import { demoFunc as iconDemo } from '../elements/00group-ui/dees-mobile-icon/dees-mobile-icon.demo.js'; +import { demoFunc as headerDemo } from '../elements/00group-ui/dees-mobile-header/dees-mobile-header.demo.js'; +import { demoFunc as modalDemo } from '../elements/00group-ui/dees-mobile-modal/dees-mobile-modal.demo.js'; +import { demoFunc as actionsheetDemo } from '../elements/00group-ui/dees-mobile-actionsheet/dees-mobile-actionsheet.demo.js'; +import { demoFunc as toastDemo } from '../elements/00group-ui/dees-mobile-toast/dees-mobile-toast.demo.js'; +import { demoFunc as navigationDemo } from '../elements/00group-layout/dees-mobile-navigation/dees-mobile-navigation.demo.js'; +import { demoFunc as applayoutDemo } from '../elements/00group-layout/dees-mobile-applayout/dees-mobile-applayout.demo.js'; +import { demoFunc as inputDemo } from '../elements/00group-input/dees-mobile-input/dees-mobile-input.demo.js'; + +interface IComponentDemo { + name: string; + tag: string; + category: string; + demo: () => ReturnType; +} + +const components: IComponentDemo[] = [ + { name: 'Button', tag: 'dees-mobile-button', category: 'UI', demo: buttonDemo }, + { name: 'Icon', tag: 'dees-mobile-icon', category: 'UI', demo: iconDemo }, + { name: 'Header', tag: 'dees-mobile-header', category: 'UI', demo: headerDemo }, + { name: 'Modal', tag: 'dees-mobile-modal', category: 'UI', demo: modalDemo }, + { name: 'Action Sheet', tag: 'dees-mobile-actionsheet', category: 'UI', demo: actionsheetDemo }, + { name: 'Toast', tag: 'dees-mobile-toast', category: 'UI', demo: toastDemo }, + { name: 'Navigation', tag: 'dees-mobile-navigation', category: 'Layout', demo: navigationDemo }, + { name: 'App Layout', tag: 'dees-mobile-applayout', category: 'Layout', demo: applayoutDemo }, + { name: 'Input', tag: 'dees-mobile-input', category: 'Input', demo: inputDemo }, +]; + +@customElement('component-showcase') +export class ComponentShowcase extends DeesElement { + @state() + accessor selectedComponent: string = 'dees-mobile-button'; + + public static styles = [ + css` + :host { + display: block; + min-height: 100vh; + background: var(--dees-background); + } + + .showcase { + display: grid; + grid-template-columns: 250px 1fr; + min-height: 100vh; + } + + @media (max-width: 768px) { + .showcase { + grid-template-columns: 1fr; + } + .sidebar { + display: none; + } + } + + .sidebar { + background: var(--dees-surface); + border-right: 1px solid var(--dees-border); + padding: 1.5rem; + overflow-y: auto; + } + + .sidebar h1 { + font-size: 1.125rem; + font-weight: 700; + margin: 0 0 1.5rem 0; + color: var(--dees-foreground); + } + + .category { + margin-bottom: 1.5rem; + } + + .category-title { + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--dees-muted-foreground); + margin-bottom: 0.5rem; + } + + .component-list { + display: flex; + flex-direction: column; + gap: 0.25rem; + } + + .component-item { + padding: 0.5rem 0.75rem; + border-radius: var(--dees-radius-sm); + font-size: 0.875rem; + color: var(--dees-foreground); + cursor: pointer; + transition: background 150ms; + } + + .component-item:hover { + background: var(--dees-accent); + } + + .component-item.active { + background: var(--dees-primary); + color: var(--dees-primary-foreground); + } + + .main-content { + padding: 2rem; + overflow-y: auto; + } + + .component-header { + margin-bottom: 2rem; + padding-bottom: 1rem; + border-bottom: 1px solid var(--dees-border); + } + + .component-header h2 { + font-size: 1.5rem; + font-weight: 700; + margin: 0 0 0.25rem 0; + color: var(--dees-foreground); + } + + .component-tag { + font-family: ui-monospace, monospace; + font-size: 0.875rem; + color: var(--dees-muted-foreground); + } + + .demo-container { + background: var(--dees-card); + border: 1px solid var(--dees-border); + border-radius: var(--dees-radius-lg); + padding: 2rem; + } + `, + ]; + + private getCategories(): string[] { + return [...new Set(components.map(c => c.category))]; + } + + private getComponentsByCategory(category: string): IComponentDemo[] { + return components.filter(c => c.category === category); + } + + private getSelectedComponent(): IComponentDemo | undefined { + return components.find(c => c.tag === this.selectedComponent); + } + + public render() { + const selected = this.getSelectedComponent(); + + return html` +
+ + +
+ ${selected ? html` +
+

${selected.name}

+ <${selected.tag}> +
+
+ ${selected.demo()} +
+ ` : html` +

Select a component from the sidebar

+ `} +
+
+ `; + } +} + +export const componentShowcase = () => html``; diff --git a/ts_web/pages/index.ts b/ts_web/pages/index.ts new file mode 100644 index 0000000..2307680 --- /dev/null +++ b/ts_web/pages/index.ts @@ -0,0 +1,2 @@ +export * from './mainpage.js'; +export * from './component-showcase.js'; diff --git a/ts_web/pages/mainpage.ts b/ts_web/pages/mainpage.ts new file mode 100644 index 0000000..812f355 --- /dev/null +++ b/ts_web/pages/mainpage.ts @@ -0,0 +1,78 @@ +import { html } from '@design.estate/dees-element'; + +// Import all components to register them +import '../elements/index.js'; + +export const mainPage = () => html` + + +
+
+

dees-catalog-mobile

+

Mobile-optimized components for cross-platform apps

+
+ +
+

Quick Start

+
+ + + + + + Get Started + +
+
+ +
+

Components

+
+ + + View All Components + +
+
+
+`; diff --git a/ts_web/services/index.ts b/ts_web/services/index.ts new file mode 100644 index 0000000..ab64f26 --- /dev/null +++ b/ts_web/services/index.ts @@ -0,0 +1 @@ +export * from './theme-service.js'; diff --git a/ts_web/services/theme-service.ts b/ts_web/services/theme-service.ts new file mode 100644 index 0000000..5e2cdba --- /dev/null +++ b/ts_web/services/theme-service.ts @@ -0,0 +1,112 @@ +/** + * Theme types + */ +export type Theme = 'light' | 'dark' | 'system'; + +/** + * Theme service for managing light/dark mode + * Singleton pattern with subscription support + */ +class ThemeService { + private static instance: ThemeService; + private currentTheme: Theme = 'system'; + private listeners: Set<(theme: Theme, isDark: boolean) => void> = new Set(); + private mediaQuery: MediaQueryList; + private storageKey = 'dees-theme'; + + private constructor() { + this.mediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); + this.loadTheme(); + this.mediaQuery.addEventListener('change', () => this.applyTheme()); + } + + /** + * Get the singleton instance + */ + static getInstance(): ThemeService { + if (!ThemeService.instance) { + ThemeService.instance = new ThemeService(); + } + return ThemeService.instance; + } + + /** + * Load theme from localStorage + */ + private loadTheme() { + const saved = localStorage.getItem(this.storageKey) as Theme; + this.currentTheme = saved || 'system'; + this.applyTheme(); + } + + /** + * Apply the current theme to the document + */ + private applyTheme() { + const isDark = this.isDark(); + if (isDark) { + document.documentElement.setAttribute('data-theme', 'dark'); + } else { + document.documentElement.removeAttribute('data-theme'); + } + this.notifyListeners(); + } + + /** + * Check if dark mode is currently active + */ + isDark(): boolean { + if (this.currentTheme === 'dark') return true; + if (this.currentTheme === 'light') return false; + return this.mediaQuery.matches; + } + + /** + * Get the current theme setting + */ + getTheme(): Theme { + return this.currentTheme; + } + + /** + * Set the theme + */ + setTheme(theme: Theme) { + this.currentTheme = theme; + localStorage.setItem(this.storageKey, theme); + this.applyTheme(); + } + + /** + * Toggle through themes: light -> dark -> system -> light + */ + toggleTheme() { + const themes: Theme[] = ['light', 'dark', 'system']; + const currentIndex = themes.indexOf(this.currentTheme); + const nextIndex = (currentIndex + 1) % themes.length; + this.setTheme(themes[nextIndex]); + } + + /** + * Subscribe to theme changes + * Returns unsubscribe function + */ + subscribe(callback: (theme: Theme, isDark: boolean) => void): () => void { + this.listeners.add(callback); + // Call immediately with current state + callback(this.currentTheme, this.isDark()); + return () => this.listeners.delete(callback); + } + + /** + * Notify all listeners of theme change + */ + private notifyListeners() { + this.listeners.forEach(callback => callback(this.currentTheme, this.isDark())); + } +} + +/** + * Singleton theme service instance + */ +export const themeService = ThemeService.getInstance(); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..70d3f34 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "esModuleInterop": true, + "verbatimModuleSyntax": true + }, + "exclude": [ + "dist_*/**/*.d.ts" + ] +}