From c0ebd0614a1318742753b5b0fa27236d8cb79fe3 Mon Sep 17 00:00:00 2001 From: syhner <71605633+syhner@users.noreply.github.com> Date: Sun, 24 Mar 2024 03:18:05 +0100 Subject: [PATCH 1/7] test CI --- .vscode/settings.json | 4 ++ bun.lockb | Bin 156472 -> 157630 bytes package.json | 11 ++-- src/app/index.tsx | 4 +- src/app/todos/components.tsx | 43 +++++++-------- src/app/todos/index.tsx | 6 +- src/components/Layout.tsx | 39 +++++-------- src/components/auth.tsx | 10 ++-- src/hooks/isAuthenticated.ts | 2 +- src/index.test.ts | 8 +++ src/index.ts | 4 ++ src/util/elysia.ts | 9 ++- tsconfig.json | 13 +++-- types/htmx.d.ts | 103 +++++++++++++---------------------- 14 files changed, 120 insertions(+), 136 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/index.test.ts diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..fae8e3d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true +} diff --git a/bun.lockb b/bun.lockb index 00e8bd9c3620ecf965caa43773dc57d25365fe6a..ff7e2dff60de132a2713d23497595b811d63e168 100755 GIT binary patch delta 33998 zcmeIbcU%?6_dmS5a+PZZMd?++3QD~wdcod7V((t?Dkwz(YZOqU(P)e~>O`yFOzcJ2PjbS5`VC zr{32}*Wp@svvt#=s@XlM_=ClM~Z3KxFw) zwqJD2`VCpBlu?$XBq#-cc%{xL3re}(p>b5{7ogOrxWttHi75lq4?{?HOzngeFyyBP zr~_zu^q3Q9HYj!8E!;>SSW&5Ua$>U8zkgho-~#~_@EVk=ZAl-M5xwxA*B7!`aDa;j(=c%lha6hHAvsVP<= zOAz|2EeJ+F=(7F6Q$a3{%4o!=r)P{BViiVN(gu?6#b_3d(x|}j6e?<#%4Z>VDBmHK zCV;|4c5hH>$OPC?g)%^?!PfM6OH!7lzcoH7aabZ8&2?2;a2=E~__`?rn*mCWGt!e1 z<6sw`U`ZMb>fx^RSb`CI^cOa*hrdU!^6Z;E7W5}t8Olrg2J(Y^h0?nex z8IoqT#Al#(5KzkorKTh7QII+TNX~`i_8ryz; zO4l6(r5@P|N->j|G9W2&U_!=D*pa`6@I&^#pfm&{YbZ0jHz+zc`!*=aTh+)?x+cw< zo|-h=DumR+JcFVZC>7uaN(G>csXjtNZKa~?eG~_X4Gg0oECEk;LsHW-AQO(%QS6c- zCqLRyd;y+%Y?LKAiTpLrf`Do|Q8k<#pky2Yo*dSzt2h`!{e{a7JWa1S=&7ZhRJ%56 z{>}9ie{pG+c=WtbJ5b3#6qNiO0HyK~Lo&dUo-q^-(yYVMscxl0l$IR@r5JJuRfZ}|weO!aoXQibsujg5HaM}rB`a+} zx^=iUB_ka%*uQ^b+K@Jw)l}26CM6auDWj4t8Ho9`fwF^2a6r-h033}af;S^0(VBK1 zJWXFKW=RTy`Ei8Opt~xa-%!byWF4MDj%I={jrhw>l@k~fP)ybA{#NS{|HO3R0y5G( z)q?LRcxu^Kpop{VLFxYTFrs2ZENSW1*^pDkKLe$qNgSAxnr0P*ap0*ZshcfH>B5UB zg&%;G)IV$35Me}PB}0-*hxjL@#$)1uV!_T3lA0*`p>RYke+Qm|DlIWN%`!j`wAnJ) zI!f;2%S{z~tO*$z*8V~q@+k|>u#7}hz?wdEm^E#bVA~wyPmZkV=tR^s28NZukB5S4 zY>7`zqrPeiIko)j7K*$scnZS)sqqRys0(tJgclFchYgg0p4b-Q555pQ)jA)P zxS=nn<#au;@JxMjl zQ04tpc^gogAYm%+3F-*msLJ1TQ5@d^rO`bLN*nDim0u281v~?#3S@#-rU^6%3Chq3 zvd9)y6pdIuQ0$#^(@@1>IZjWqq_cKq%4WGE`pLmc7*N40kiiRd zG#nDOqHuEb6DU>i3Mh4LD^P6K+5KSW0@@msdO+J=1`kqN+!K^~2oS1*mQ7MBk_QSu zS=m`gU|r1a59$i~Zg5dh(VFuNJQbXX>FfvE4wMQG1SR{3A&UJU$;zUu4Vl)n+9QTG z^YxD?!FV>o%%rh83rAGb8)-_9*r5P#@V8L`k`Ge$OW`7$Qr0tTVTRHVGeFBjI~0^U zK4G|0t#+U^Ea+O;(UhMDO8p)Ie|REd z)ysK%-MdnA@U4b(D%mxiyyoPAB@Qd5Jhu8-YP4kMmwq4E@v-5ngmO|;=}YBIrrRaY z)`+vW{pszHKOC23BwHJveHY_*GSRiQ*G~z(TKDmbo}InOH@i;liPpGhPUqe}YVmkU z{Wlq9%Zy?<%+Arv&fTZ5>OP~-jvnItYb}0WG=$Z23}-_eoNQYxy0L1ByCRDHrFlExXK_1t&p!2^L8^C zJC+oLD9wwwkac&DG+u{{JWFIDy0EM6kzyuu_J|a3v+lT8V{>s&U{`Tp%$z-CIqp7e zu4km-Bh01{*4rb(I0>mb@MFUYT}Pq2-2na81|(*9hY>q@p1&NjZ%o;-#7FhstZtuKGk8 zzkrM^BX8ONdqL>HdiQL|=2nk1{s@lBEY9m$jRTW_f(mswf2*m<40B4qT8@9D4dTxCXLSBvwT# z3%UJF5_e=S^~}ce5K_HM$XUxcDZPvKx|ocO!39HS&+>YijBCI(23J`Q*T>+fs+a;b zOh$LC_*5~BN`T2Y1st^(!C(%zRT*Wjl)(z!1u8khj23V-IJRP7z#+6}p>@L%>n#a?lx9f}`?8hMLuQ0j?==nCr!_wD&bEh%tmJ~ zrC(8f50lj0i@DS_8$W}PW~9Kp{Y=I^;7oFDutrF)y;uQE>Ub-iU}S|=!$ogaP|qw~ z^ky!BX6cC!>j5&TD$51=wkj(KG#j2*#R9<=)Qm7jRa0^zNZ{_XYAiR%Y}iLawg4;1 zd!(p8(GyTd`LZ6tX6Z9umK$s~-1MbsMXP}ywnyqAgi#HXlVWvGLKJ!qkQt5lk9_7uGwsCg4q-XA)4W9GL8pF1u4^c4>+n4`p&~-_#IpW zwjd}%>JrQfA`#PAXGkrtV1}dMBIVt|C4}WhnT_pHEAosmLB%G3qb@;L)-o9{fQwRe zXnIw=GSjkwVZ=(52rg2#q{glUhu)+CN2gx`NA-hcJq!rkD+`Rp+hpvfa;STt$vERr z9p;4bC^+f}3|(rt4W?cjcEi1)EfPw8^1TQgm4xP?zNf&^%4v`nlkza@15RL;Y9`}% z_5aL=KC?lec7o1GOPOSCzaDk@NRDYzl)(ZXz8gR0ZR18NZ%ZVLuONAsg| zxNRfNoOYsqDkpFA()>m&x24%|AHp!^?iyimL#MZ33$TI3Aw?sKDCrt*3x@g>(+{I{ z9bB3`v3sF2(R|1$Y-fU_He+8)3AY79-GVvqYciBaZp>t?1?`Z+2vJuAn+)0DFz}cp zJEK@`8?*FV6f0m|F!kQi=(>r9a(g|uZox|of5Z3Q6~Y9%~hK!|{^ z-cH-~s1@npqG5vSM26d{D)c-imP`9T!xRsLJ;13?qev;Sj6$Vb?OAR&c!iUX;0Ha0 zxwRmgxpX&6wPIM0?q*~E7_9?nZ`v8d3Ltz3Aw?P{YJkZQiZ+GIds8w}6myUVn~Yz9 zt0!~b(I&%raENcjLRB=YA?sZ|LQ05b1ukZ32}n<~@q3cPUXC537ivTc1(u|mh?9?4 zZZEST6T({Zd|QbWImf!^ZZcc}7e&sEP8|gS3kOvp%w!x3j+(24{Wfq^00y&OxY&{P z=wmj7Vo_0Y4nrzPw)JilZVQG?6YA&ZLb{7Oi))T3gvTO-biuQ*; zwe@-kLVH;|7AYmiVWeVYS>>LZHV!FxL8(Y6W-pLZ+?fz^iYyx`#oZ~Slwuuv3qo7j zU0!2rB#^wq)>&iWFG`r-5)#x`+X`Zs;_X9^wP@aw!f**^92Oy(D=@Ji#0t{PQq~~ml5RF!8bt4YHv;hh zJ6PE|0uH6pYKP^dW)gGBFdH`|DQ{EqnrZk0+(33CIYJtc%nCBhhCRvH^O<`_ zgz<|MrJ?8qf0KBf%^emgIj6FMVP?apsaPD@jf@ECE(FNcW(egXH&chOg5hT4Z3w8( zP)a{Mqzu)b!6+iTfKz&q*6HcsI>1ty%QwMM58_DS%DGD)p3=CfB_^glWX7~iDrffk*Lt7+*l*&{$8KexXL2?UsBNYNUf&~we z&%voy0Vb*HFjg?yZ0t8od-p8tj`agV1l~gkE#yI(FkEi_wc&!$lbUY`8zBf*N*OOB zMYY0yk5IQCsqOdll-_bAa~W$Eud?oABaNm}%8M9wp>UHldK4>w>Lhc{j5JglEeL(( zZcQ7_ax=~1c6K#0BFkNnKfuFXp`}2p$(%w(qOds`RTYRw2h*o!^Z+7| zA8e8GMbrks4pmVwAn_4U0ziZd0!yCe=uL?(0A<6{DpM?@@Z_Ksu-q%d=Vuc zQ7ZQq0!yX{2w9F%mJ7s?$`?`chjEmz(Q5g{1d4+(P*cxjDt02S zHieSoy+9S2;;<%`qukcX;re@aj~3^!lUo~nXq zN$?hxCn~YsGaZc(%HLcOnERyaRDWTBYV+SvG99Se6QxQfsytCj4pQl0l_rr87g0(k z<3`~!L`3|MU?^@>*%6?`kEGlGK*?m3YDbhDj!}7{lpL$_M5&_GS`uZe@@x_DL+Np< zV!Wy#N)9Kg@=2Gi($%2kex1tG_s-}dO3C#qPn5!a3n=;9rpk#@etd6Dnc%x1Al+`& zfGB0ytMWuC!*`$*-p4^nb%JgxCHqt0sh{#ei9fIEi&Lu5705|-l?I3muYsd=^tqbh z|2Hc4|Nln?Q^Q`WEq$dnj3~+9sFX#`abWG{*k(~wh@?>|*-I*4oRYkRDkn<3jY}Y~Qik3t-w%|kZz16al;m-$ zK3>%mrBVl|d~r(QJV=!jtpI)$^%q@8{4FJiW1y#g9S=$cPf+P6pwu5zRQ@wix`|G20(8Dw7>oP2Jr720L_g5?p1~6&cAN} z)LZ|)0Vpf$|GhT=dJ)0(=c@th{$(#wWLv-NihKFFj*TBKXg+Dc;H4eHFYcVYYuSS< z2A>&;H7d_^vakB^QpGA06N7rSeOSvg^Fqq`9W{RGF!ihQKhbjN*{%r2k6ohT@7 z=}kquY&!1lbu4W8PWL9w&MsOypuyJ9cX8KK`<`!idGv>Ux7+yhkkjw#&T25sWzdCp zqXK%D4|ekSp{Dzm6`Phk%No+=%<8%$MCLKiv9Z|3GH=3*pKh(Xw}*8+kp23Tej^9| zIR4Paf=Q|UHa9tZbHT6i-^Vm{yAwHX=Rv1>aV_tzKlX9fty)bU&y9arNNLZoa?vbeL=Wp&8#V zt9d8mvCXAUTifif`?CLApNT=uOGV`t3s3D`mqOHLTc_Zj#_#VOJ<)xs(01Ra*>^IV zmAdaSzj=>=rXMG=DVDRDr|Nw_t{i2)R$16H5kBAF!Y_hmb@Yx14e!JDM(iOjvEjtY8QT1^8yr!=1sCtJsXB=yJ^Oxj+!wKeoC#u~J-nM7# z?w-}&ADr4cZ(R1(S?irXIy$h-beH4j%8c0%^!B1pf1eHYzZp5N@xh+S*D~uIIEN_N z=-5uMO}_B(M2_vI>Wi8N@2*v{Wk9|J4rr(y{ zoww~cH)Y7f{Pznp?w*VF3<(|3s95i{XW}+mGXgd_W_?zo%%Ve0)|CCK%AGCY52cwk z*8QAg_iM$yWo|D2Dl#)T^yfJT0&>`1X<7cED;-CAhDiAhF3o&DyV;Zd^=qB^&Ahgl z+nD054(>T)#<4MLrM;W#y{dC1d3D7K0bee6Nv#v^=J4dBA4<=f7vpC-b}!VW^XYrH zm%cq^uJcFL4Q`pyPtFBw-!y*y`VuWgc5{;>Pd12A$_s?jv#|o-X%O3@^3yjva`%#Y zZAXC*Dk*EtTO8Tz3%ZrEGi!X2TK!~;BR};)#;yW)DJ5rIxYd!5Ev0wcUEs$RZS*!r z?r*Et_7wPNTRHE0Xm3DUe0}cC#{Ed8uG{X&?)|7!^<{w%NY!VDBY#|4pUuKX{Xn|% zJ001LA9UH`SxwpFo}Gx<{I(}b`>#DWD{<=XXZ7FB1a8Pjh!-MgqpVT*-t zT>5XHh1KI*$98L7Hjmu@qw{?0?!4&Ob6YC@fp6xwn$R%+ZQKa&^~WBUn3++w+w`8R zTm3q5)3xwfUxvMQ_;vp8J|}y&o@leP>->I`i&bwR%h^O7;;{<@yGhp}iLCKvQk{ls z*=C(;FncbmGIu+&&RcYIu@ z=PY(VsRE8+Q1q%VnD`y3ZbD`KPM0f(ZID&dk7K+J=v0hZ4p1)h35=IsHJjNVB-InB zh8@)9;%vXHT6hxUbx5b0%Z47JT+yd6UV7C$=6#q{@1dG_SeI)7%a>K_PGh`|=v0f? zxFeLS&l!xDUX{lJkCLkVS&Y|FU9PWK;n8-*m!PGr{xO|k8Ou3FnN#vHY{zt&SFpy% zN#$`4!**P!`kFnLRi~lqd_t#M&GJrAuFUfowv#&5S{8efQ~?(-Y2hsg8)Vh=ix{@kI@Km-IZe6DmoRL4)fQ%dhEz|W8g@pPYa81ys}^3yu$|SZcCevm z|Lh+6U|}aaRwSTj>~EQOKKXrr1*4a*%eqRGBw1HhR@5CSD;`z%7i;6T(sbLRnS*J_hBMPIZ^%+@f52pn9!W-D8b! zlPcv0jMr^lt{>QQS>^E~#;Z`Ldcg7uDc5PJ40m*@hb;CEsWKm6y!5KaOuS2~fS)j4 zcXhd*vJJB8CRCNb*QuT}%lDLP`a_JDUiFgM-y@az5ytDDF4t?eUsgSV%J;rb^)nlK zpK>jHjPcT|-ZF3bi6;69y7z%D*Ke#)eh_*ORr8;8s&_2sCvv#%DY{p$`hzuoNUA>1 z(7g|JPl=Gect{V4<)5Q}AL(=@M7HD+>GnWpc&yVIME22R(xtpW59@WML?%5UoySXb z@e^G>qsTVOy3^2AeyY=z5n0?*%9r^HovhcD6IsP)qzibBUVf%)c?Gur88z=FRKCx3 zDtk8cIjN?gEA%R77Wj%( z(Qh$quXMRwS>dZc7fxCy-B|tCI)OXO(F;7-1HHhLHGZSZ;>G6b1>WqrUf{!8|E$YW zmF4LL)!19Tz?a4TqRZmPzSaw>Gx4p?q6X`(2?X10>$Ji zWkC=-rU~S~-xh+I_d8vd5H?B^*veT#S-vK)kp*F_=6f}ZBnwPzoF))#>3ap??5ZZP zk?UTc1^%IxVoTd*12#ny*vKEyN3cRofE|Ie-kYRtUPhlcmgkg_wbRQ&`}zZIN8Y%stTmT|c3D|{-p>5FqJ2Wz&gJylt~{@t zoOfY)Xbt7{+U`8IysV9`0PU6!v^}|4LDs$}t+j$aZ*RUq(XO+Dwz8dG+m~DHVLml+m!F-&9oHw&FwD&&HCiB3`vNoU!w6iPg^QQ7bMSGL9&8z6OLwQaW zIq!5wXkUMzP3MgrWv$r>+GURVyu&@JB8;f+S8;B_0(&p@^PMW z-b^oO?|q>CoCkWz+5m58XM5@Me!&YB?M>1)_ttB3c#gN6ce)R>uRqW--q=UhnyW&) z%txPhHh&In@pWbnZ(UVv$Gkl2v3j0fe~I?^R4bR~RTC?*>Yg?K(&X>5DsoTO!NrEp z@)I4HuV-!5L1hx!rCXDSThs8mgs-3BpYqcP|LpCrEBSYMqFf9j{wBtw67ClK?84vK z{ZH~J7aO_4+7Em+@%W!B>>}@AwDHl_rd^aSi@)#t-_*rPu7ma?W(75sU!lR@Ko&WR zaxuzA+Ao%s$5*>b7w_2^7lWPFijVx2-(%5v_@}Nwcgo(ipA{<^^cPk5CkOwjvnPk) zL)2gQ+E`!t{TTYM*7E?qMVkF9WYh$bX}|i_t-=4?|M-m!gPr#4UD1*MbyMA`MtpNH z;`Q$WKFXzn+z;9>XZg2Keg@}*j+8ywdA3sOUlSBhU;mpRS7ysmbU+z6m=*nJX*J|( zc;jPpBNVGZ|Cc2cO)G7TwI8H<*ZKeT7#BG&KK>}kon`|)krtmJG|uvGKJmb&_(7B6 zS^n>(9cUF4j^M9+D*yLG;w<;J_S;5B@P$C?br$I2K#FP~u4dGbLFuU}p`a(cKbVKb zo1%8Pc!K9O5i5xY_;U~*)f7MAP~5DZr_;8iref#z#ijI(az<^zvNDICm?1`1e*cGZ zk?dorNNdZzbHqxOQD6DezH?9C(ksVX=ZMu~T~!r*hnjNGH(j-F^k%Cv`Y+uk)GS=u zxA19!nZNtg0jzVfBrd_^QoQA?yCx}eHFQ(f7E|5}wzQ|&5(AFQ_Eb5%xPiA`2z)788V zkj+6F3s06XLp4OG2xNdsDCDRz`kwn`fGRLkl{q5a44{j~2LI@H!36qdGhMS(nKRP8 zAfrmnhKxqT1^5&)sucZQ0ez{Te!ELZB`>(A)8NeLbZ<&;W=4=nL+ifEVBm_yARbYJe}`2h;#c0;PbrDEwF8 zH{f^R9Ss6~I`Idv0HA)Pexoj-E}$k;6RAnmgcU#-K*3)hpn#768UpmcsF6Tppb5|v zXa+O~S^zD9RzPc@4bT>7M_-(bL81c?3w#801UdoTfbKvKU@uy~57-ZU2OI!s`Wyjh z`#1(12TlMdfm6U~;0$mUplL<>E=?u+bGq%o4qzwB7rq5{0W_y30TX~vfWbgAfIXT1 zwpk7giZCz08=x=R)10F@mI9;#LxBunI4}aBpKVS65`lI=dmtK!0qD;N>|5d18c2Y{ zHXL1Rw(R=O-`tjag!KzJ8AAmh}+)Bj7Rc1b7NO z1I_~%fQ!IoARjmftOnKq^dHsq$2&BAIY4VlWuOW`YZI+SwD!;{I02v~Z!C}ri~>dj zNfb)-Ma%?X06_mUZ3Qeq9MB8s4fF#RpmDCCZh!~i4fp^RfQo<-pugt(9Vmgc4Il#V z!9NFH055?nz*V3CxJE0>79=JE*#3l6U=R=dQmmcT0?C#DtyAnY}{1((#L`sRMYKSz@`) z)O9o_G&yKu&_w7AbOPD{)U5}hr={&XU_X!!&=}KLQ`Zgw1_CtJZGl$2<~*^gb15WC z0tUbaC;`x;l3|-=p7^nt)l!vFRVg%xwgI96suJ-QpdZiyAh|Y@q^E)D0dxnnLHh`4 z8s)A)7oZc+8K42BGz}z$CipB_&<6~~Ckf*Kidic_h0}l#rA3hDEzRF#APJyVm?kAP zXpl<($%gFq!EP_G1K3Wph1Prur8U4R;A?>(!_rPOhEbcbDr|7bp)juoDGZz#sMUA0zLz1_4*W; zqNb;Vehy3nz5r$bGl7Z#Rg5ak0jm6LfEqOypk5%|d?1Swi-CmzwS@RZz%pPdupC$c ztOQmA)I(c=^}sj4I)HkLs6|`FwF69W! z$ShjwXsxF;UIGN*4-hK%SHJ?i0$u>mfoH%I;34o6@FVa8a38n@Tm@)^F9Vl=i@*hd z>T({)2hIXVfipB7r;#`X90oc8hk)b2N#F!<3?Snp0Lh6bnhl%-t^n770^mAu1Gov? z2JQiOfkNO8@Ch&hZ~&-WM~Vjuh3|m}z+>PMK&_+nQ-I_IYUNAdE$}n&8h8Wz0#NJU z1Mh&}fZqYyEveT~gxr&q{t2L-pR09D{1&>HC`Kw}^Zpr^YU zKy|fIc4R2Ydv+BhVM<3UmXy08~X99FoyM5!K{9=viYGgtdU~P|zyS2ecQk7BU+8 zbwE$>^f0Dnrb$Qz^#?3~=1`kNG)FX_ouQ`+(BzE=;(($`BBscY45-HBjA~4kAsId7 zBmkIw^3x(!a3<0ffeDb01BL?hKt#_D;FkmK-1Iz$= zpo}>b$z-V2G(!JYwo|`+X~6P%j`fAP~L8Q(+LA3j=2u47eJ(v9o{pJs5-qnCM4WX?HL}^YNpB zrzTf?=wmD4NBpfgmqpmccO$EKlwV#Z28-u;ndKl4c;s@?ImQOHEQ4HaemRz8c=}Z* z_zOmjf|Vtt5;Q{%quN@YUs@>FwO)WpS$rr@gVtYU3wLK;wv|w{eEIYJa4MSkHIS^v z@Ld^pPRozFetOsWs6>qk4hT|$ygW48FIGbn7=VT<(||PE&tt0^dWBf0 zBvryB@Ea>c*DQMVBd?wdq}w4CH~)Yk}Fq;dJe zFK^70g|R#B#CRJeCRT$|>7VW0VR!BN-H8sOxeYrx$7R_$ex46aV3B@r-EZ+g2eybNRznC{Q~*DB?OgMq8BZDYm)QG-N*PBYsGO&9%u1Bue}Z)y70b4nsNr>svW{~ z@~)eyQ;D|rYG$$uG%R|Gu|v)ywknJco+ns z0|SGEY(8#1>TrQS-T-ooZ&{D#XooVzjHtCJH2<6TYIDMAmoBjZ2HI&&4kI&Nt1Z4g zUlKEECdloL-GGMH=ZnZrJC*6H6JL&6H0WF+9ED>k#9FBo=sFr}3r*^?p$?t8Uw>7K zVwPrGkT98hZ=_*?0Y%)U~kU$RlG=w)u?Mdb%+r#ops)DLSc zya7Rc@kY_1lV+uy{e;C{{TY8r38URfwJYvbvj-1kt50Gnt zJq8a;AJoDQ-9?*Eu%MkH%Z0^39grs+HRpXViSAN{6VJRPI=N|QPA@6$6bju?c@bXN{i?7H;PUk+URQkKdPO{03T=;-?u_^@Us&` zJ(NYqq>iiGv^i6^qL$=#E$*^JHz@#NPxfzI;e zZ%F<>*tvbU-`k1Xz2*NI$gbqWf8C4{s`~I&Tj0sxhmY9;&tX1%&K9wqTVo$(FB$2U zc(!nIA6ghG08qC!KKwl_!?Y8n#+2+muhFz+DX^d!0E;-}rJd=sv_ZRjw|Q{5NR#Zt z+igW@BYb%FR`{3*OB#OHud{Bg`(X>-O)*~bXnX-pC1_&a9@w(WCN8%~v&4s=MqX*X z5C3s1YU*26eyzx!S9#k{E)#bRhNb%4(XcA-unna(ugX8!221U@v7ch&KkhKKMy6~T z7*HQCO4azIZ5Vs)e6f$FTw3SRtxf5oQbVh8ukB*3(wWtiuvc?PJAHY|cJ$*RU%qQQ z$~x`KpKV9Wv=hj>?|ovJfAet-c%s>Xg;qO@tZVFr_Pt*mE0i^Iza8}B<{j|Wss^97 z1GUjkA$x0Y9sEAz)LhvT@mxF6^^`$$l8)5jb-u+w zH1^>wz7+>ZlLPp=Z?Q6HM~^L=vbbuk=p|-2ra?ue>ec1He=BB7o9pq+U8ufx=vbqd z`!*c63#HwfCNw6ab_|(Kx1dg^O0GHtjk+!z2;?V`R~i|_@9z?W!nAY4ruLt;VOPPi zTd<@Fjm5DA)<8Ri(B3-p3L-i?wSk5fVn`9>(Yw(=gz|Wzr9$}D-3XBX^hK_)Z3;(2 zxW^up>JZAq_mHI;;tMBz+jQl-^2@QU$=e5}M;Kqc2R=Lb@C#(A9kkZD-=jZ%ond(+ z*AG((VPxVB_hKOaej=fthQJ~$3HvEN&B*?}iqv^!+`*KhhpB96JfYd0_g&D}omRan z(ku$+dnoU>u<(V&jpXi+CQWE)DYCc?4ff3Jg*lzq#wTCxR-}0y&dcsY&B|kHxWdAw zAZg^`?-wN%S=6l0qhJwch6Uzd_R+aM-UnY6_AIinK;s3?)0nOa9VR@*M+Vxn+_ZS5I4CExZQsE($3u~oO~@~L-cW5^i&8vdf)?;2FgfUGarmd>t47*?n8_v zKJ#h7`%qr(?5{@ALq@qz{H`G^5J#ACf!gU{4FcPCav67P4K(xs0Iw~A`I`NR=V}rB zSI{u+%%bUe8#})ndj{X+)Z$h<*KFS0YJ1wV6|bN%DI0K11RwLAIKV9~LjGUnZ0Dmn z#v2pYuZ9IpM8w+A2>$*%!~k!<|Y{(lN0zbbYPa$5>JGm)G;0f8`bNpv{ zAE=0@#>{#FnA3RqmOVI0{rvbP#p`6?O2!_HIrnFjRRT#h}$WinY8_3+46u>lVDIA zb4R^7xY4Z1L(gBQD$;WnstBL6jv`d;TJhhHB2=`4=}JH7>K?gx+OM$G_P)Ok1XOHp z>p92Kx=pRQ%W<@JVq2bY9DR);oqt@+l?Jxs;U^THhS*IztuAJ5{)oqyokQg!=$!pAof>;d@S^{@yXX>?!C`f4@_ZBLck6 zq27PLy}gRz(@%+;rE;;n*=gi(j^(*$#d_uGZ%L(Y?-*2R4r)US zFv7VYmfwbj1k3ERq7$!pM%*ev*dZUxtTSRo?sZ!93J(p|PR~2_{z}c=Uu>maO?9E2 zuQ$$r>5Zp(o#?fVo)gg2K^=KJICaxbDONaKROfO8|i#A>PKJu;|P#9O`cVh)l zhc`tQ+7X67%*l9>7y0JfBF&_(y!-{^)eb#m5s#`4`aE}Xk%e|F;{JO%D=Rs+{JBW8 zw=3_3yl&b_injLV+S|ohCyOlZcjYt4yLKXB^q!58!?WJk#F*0OYFIh6vkNPiZ`~t4 z;c^2x4&+bpX7uGZFJPSt>?eOJn?1)ayK!*uby`4(OUuWkIt z%VLN$BA$C(5uIGMa}CR`I(xQ(&3xt4l0aJ6SMb;?c*{S+y|2nI``=v017Ha&UwlPu zX7sTt+p(gRl;zY(HCC;Hc*<2VTB<&P-^NDe`k$|`=0+j%+PacIzbXbxc>nM#zzXX= zkWViVKXB$GZEwJ@lUS*j)GC47(f+5Mmsl$L;}Jt@K4~I}>c^vkQde!e4N`Z^Agw|U zAAYiGCyq_vWv`1)rM1@Ku_OSzt9AzC(FY-GhONK(2)!;pqy`B;aSOUdt&^^=n*Z5H zx47JO)&%Z!15;Y<58nTVSnZ;6%h z=}5SsoeJslOY-Bd+xmQ_*@g;blla1$Xopi0KL_fjog?XcXnDu#u7hk8%OI>~SxMaM z7P>DlNeS=94yzMgzUlHYENDT-)cAw%y^V6^;wv|xk6N`uAb*};p>Wdn=r(^F#{B)ijCYN zh$$5@gipJTsiNviglaXE9XOQ;g(CWU1mRg;u22mAs}BnBaW_rJx)HorAv|I74KKt~ z(O-P%fY(my1MN7>{BEnxwtltfo+Q#+A~rm=|Elm;g`%5ygWKPsPd}9k{KG3RUJU!) z!RMOl!Ijy*P4bzSVZ4%Qtrv2w^Pm#f2hZ3@ylx}ts7jk}AY%Z?n zH|~lN{~J%*xP<+E_-N;Y_PP2jAbPROl%o124CnJPrfz>9K58JleK>*eDV+N0lNvBe zFj0iKYUhU@cB}M$!Gj9)>?wCxePJz+y@#Mb!3PuhjZeHMws+Nz9}S)vKYIUy#bYIL z%1C8FU&0^5&Q&|Fbeq$m>u1lt{~rEm5(Nee2e|irET8H-d6;(4Y3i3}Dr8P>$L+*` zQOd)^-+WAh7*sz@D82nB5pjqA>VC)%-xs5z{2Y~0-&SSWTK|cI0z<&l$2ye?d#~-X z%j`8WJ>4Hi)2B4L)@x;-z2-h2>bdO?Vm)c9BX977=;3q1TY0$V?}M8pt#4cL!v*Vv zHy;hVCP&ma>ua4qUfOlFm-9LBwDgU0>|Fj2hme~$!P|j9RKIV>$l(nx(^nu!A2WGt z+Q4%&7g;R40DfF7*b)PPN>J&cyfw;FiJ))TcG6s&0N>5CQPqHMY)y)_+ z#2S}6Qa+X3iu1QKtZBh~&qLAKj?O&ym(R{lr*p3d^30#a!F)&+$%b1ViZ%J%T9T{6 ze)kanKad(O8Jsi^b^Yt=JwEf0e0eWPs>t(y6MeYTBhk|a^QS&<{7m%R*8P!~V{fF| z1yk*K>Gxs=Kl4s3?UrH5NQ{TKbUEQqCP8G9lG@+OJ>Q7l&Xn?xx5Ot{VOGTWhw_|S zQnj*4sVSt8KLh7q)Iu%#{2^AU{imZSwF{~L^xfD$F+BtM61kU;22UyFF+0P zf1~`CBn{+0{2@Bb4wS0R_LQpdi_VhQwk|ECs-ls)bBMnsC7lPBk=%H{XQB<~9#ZDE zSuLflVi_nB{nIl>C0WzC_)K)=^SVne+}~f?!C4zAh%e|Sl{eC3xZDvurH-_WpGIGK z(m10+MC6VNl}Fl|G%7ujf`ohgCVG=)nUD+|Kc5U!)C39HxSl_qgGo8mkAD?GTw+RH z<#S-U8~D}=5fJBVnb7p1}mRI@ESA74t`pmhf-E!`^ckXP+Wb;Ao`d!+|zV#+7 z`utL_HO&@k#*RxkIiY3a$a=O%*XJ#d@vd3z{^?$gzFr(B3G|sdrMrieKY7YX3 z^+xS5&B;g$3ZZdaLPJ%-7eY=A3`>_sCk#Z#sNo|}!X#${s3T}rH6>g{HWN_qxl!oJ#Ss3E6{k`2izrUXIw z7(7KR%aD|a0Se8*Q%A?Eb|2JL{IbDQeS!59|5OSWJ|6YVN@$HRppkZ04Lhh6tgEk7 z7?);5P-<|HDZ@k+n$msbXpd;9*oCR}`hk*Nk}++7F+dP3@-}84 zWls7V(ldsjf;3}hI(4p$uQIazpp;aOjg(aqrrIYY4yE>l+GV^N=IVx(NtVh`35?roTatbmMf$DdZDDX{t;El2g*Kyxsv%p{2MR64Qk- z5enZQ8yS{&Jcc44Kh#>MdHIIO3%|wNoj`uf?!!b zgN<2o%=_z=iuxxSGBS(_f)ReSij3)*876eVm_8)an3g5*NTnWQI%0~Bc7Yuwt3y+z zgNFE&v}EL;&=Lw7d1#cP2mp`GEGHo)J|oSPY)ml5WzuXVApz-A2YMRGuz{xdf#6N) z#^I=6nAc3{NZK3fYB6LC^g*vN+lhmr4{5GM5X;X8ogdHud=;vw2nAY(9a<WG5)i z*9O>ALd*fBdRL-{)EPA&%F5dl#kFla_Jdt*@9OOpzh)hj_Qr!!J;wB4ALH;0p;R;r z*VZ<$9ThVMO5J=Hl)8}(N_GPc$%9O2`g|uve+bkba?7k+(lflB zI=u9_OjBZlVE?9a8+z7NnbjMhRVbg2qd@nkZHgf08`WTrDxaXr(?My0^;P-SptOkw zsB#a`%HYd_qT-yVU6gvSf)alal>9e>lHC`eRq1}lRD)5ffl1{pySODC{4pX5pbIE9 zoYYH+NG>Q%WH(Tf_w21SyaSXXm;!zhss+)H-nDU+t;U_YgUg?$ui$=|!+X$miaQax$I2c^SY z$iP+=9fv|+r>`g+et4HZ<~gKq&>25|sOtKPYb2Ic-2| zf=)5Awq@PT?_m=l^Gcx9o&(gLpdd0mh{Z{6Z=y-+S2NH`perG-4%!xWw1NUbDWI0S z-7yT30=N^D0uBf@K!*-i;#W3NuE(5n69U{?a|%FRK?i_Za+J2bp5UqBqe-|SfUX6l zhG&72{h}1b-UOZkZpi>kKrI`BW#gfZp)Bl_eIc-9V+c=GdfF;YiAXjo^nzhqbbv-M zNV$Crk!(ge53^l{5{E*}4u$_Ts0ZkgOr=|EL1_ocgPdx4@hBQROo@Zfa3#|{LCeFg z94N(20Hwrpgq=I629)By2=!GJ1g0zR<@t2Ai=&mKO0B6sBRTBq$$Ep&H=b6x z;v3_?KCpdZl~0G4mqMrPs~YlK!?;bgI_E19j){LPuG(60u~f0T z_r)4pwcfcs#o4D@KAD%gYGCF0B5PXFiFsCZT4h&tyu{Yqd$Jq$p=`2aUAva^&VIGf zal_B6);l(nA}J9BVR&ChjR;!tQg{+kKS4Mt*$6`ZgRj#**4PRcE-G@erH`Z#;Tsm_ z66tUbF4(biNN5WdlvaM=2DO0y_8ou)C` zZpt>fMu_jRtm={4o#2C@m1J$H(t^;KHEGkBg}FzHds!B)iE$n<8ciED&*5=zmK+meU&7C0Ie{5^G|FMH}8sU41V zBMbB%p1Z(>vR}O;q@r>xuZCXR5ZS4RT3}Hjp)9Osq_~`A)r{2Mg`8roR9pvZfjW!k zJ#?Br;9ApwG>cG*=7zdrAVpaFBiNR5TVnT6J1lpq84Y(q&9x&nTOeu8ns`KrrCDz6 zNU}X-@TM z{VHQPutW}E_ybk03QejwpXJtz)Lw&(0;iD!6ofU{-cqwR2ONbP-nDcXcW(Viu@rlX zYX}Q#5UCx371>nQN4e|R`UcIl9l_ZkGc_!~o}5$;@8W(&qa-OtFYL19tY!ykD2>XO z#STj2fm%R3Ys;S6o~jh1^wX991RRZoR*j9NcI^R3Dek41=&F+>Czcnem!h3mVW3{S z$w?5pL5IHh>LgERmK~&*;+$DtkX}0-w}__DNi5%8C!KU=;lX;X)JX_8X`(v|57le7laOt4kI;(PX`9Jj)TK8( zSYfDMn&`p8!}OYq&>?q_^7T9|*^ysYC#89^!Z5w|Foe``j14uH_hQ-ZdTnPfHKuG# zpiVOZoL%Md+nMZ&nzg*LJ|YjdTbBHUaG)WVY&JTcT-I_+?9G%_XFd9_%$Uaxhn zt;`21NAh+A*BmBD5R8D;W`%ma<^+VzI>~K` z;GTk`Oi=o*t6#k5U=$<3DQ%633$+77aYj?2I&C31+D1#UF{mW8fnta)7aQ=~;Arp~ zCN>JS14C|5dFZ4n4Ow_|y|zWe;*3H($AP0}BqsI>wF5)_v89SNzkv&9O+q82w|rQ3 z3%z!tkD^B1NZkG4BIOORx-ScFsn>SGEK#b8Oho_R1xN8f9P8_}C&1A%f(~7--ALKp zFr~gaO(M8R*2FJDy96Z|(p0Mna0x}iN}7e9-$qCl2QZJz7QO>rICYp2warRQU4qQ1R)ljz{b?nX?F$|`ypVZ z5&1Wv)5a{i)H+5Bzhu2i)$RB}21Q!FVQZFvYsofY6Mu*j&9}VCX&Zzo zF-KlwHV1=Cqh+tTjZz3};u)d!f-yxz$>6uZHJ80O$5v9sF&W4V1*s^+MSS7zm!{q14cnL$hSIeN0n16~%ZlYraO8(|fK_JO z#L_Zx&B0NmlweK+2V>Rp2)L4kV2j2mjHM~7v>_^IBj?KyaMTyHfJyj9&%(RvwO1jb zn`|jcH%)^`3d^Qi5gLPBYEnBwy8tC>4tECZ{%0du_M3Xir76pMQ?DI}d`47A7pRkV zHf7;4dhO2;Ql4YQA!nnIQe=Y78(B31Tql{MU1~o#ih#2AOJO5H(vcO01TdD){{B6Cn@VKGN_Hhe=F5att{864DV3;E#G_S~@ZfK%F|7Mf$)Y357I z={p`pvQ*}6D>!Oh8ADktX{uAs7)^I@joBuz2#K{|**)~y2N2MN*f6nus2yTU^~kqQ zZEtWidL_xf2G?7u2fL+RD?x~%+?4vXVuf$%wfi9G47HN=uC3)o)(L4qvBk(cgxZ0L z27~b7esYUctjXZUc5RAt9>=S(;FQx{0ZKFza)wEEZCQA4Y*=may$pmH8n(w>ZCPG# zz0|cGD}-)hyW&tHVJ^30*?sid+U=DQVGKb!O)PQpZEzY&%6i1=&>jG%Ea#}MI?Xe1 zSSv`Y_8ll%qv|xaLxDOYpT4F29awf>y|z3?qhvPiPHn)^?u4DNo=!Uq9My`=vYq|z)?GxK_8vu)`=Aw^qN@A zjN&>MB}xn!`{}ed!I3d~3a%EWgw_iZ11U5Z9CgZ0u67nUY6J^9OeY=d%<|&(l7AOg z7_ZlOVZUs_evOaN^hc?cTw01!8@cqjSQ`;TvQY_*ZBS6m_M@b@R_tbRcnhTtvg_x? zvim4?WTQ-tZMs{OAE2aEas(x%E!Q5F>iVJ7hBX<`*aiiqw#O*7VolKeTY}I|ZeTo0 zisxaJ6f^gps!TfoB^ons1z5BTz)|Gny+V6b)ya2dseCV%JxH(3>Sf7J%&KNDIQbB- zb-+?Uf+9OhTDR1TVF!3BdW%fvRJcKwykDADQ& zE)*(EmtIy;)5>nS4=NfFdX2SaHvsz@IHk2d&vBuoD(Q$}pdjGhNgFVpz-JF+d1-p> zB?z%tRd0Wj<#0_VBTOtiT`%1w&@_todw5p?PPG+50!0Aa}wMDy4y=^Fw4u( zYpW+JPj2WUwn!5=sIwc3i7Y!)uc@1a)M1-4BD7CYqER9MK{~M|3mY0KjZJ3RL-m@6 z$=JQwsLTkdLyGLRI)%JOB}Yh)AQ-0CwoSFnUVgkzI}#k_05%6Kl&#>D@KLh;46YM& z$`;dlh!Q`X@~Yzu368P_)7lPqK5)urM7L|3G(mWSjT#oA?SxYC3~1g5mq2~f+*2%) zBedb^mfl3w!Fdy0m^{Qf8OrSnXA2ywdw~l;Yq($GF>qoA%N~I{5ro*msSAB{QngGu z@nSLs!9X=gcOgL3S_~D0UNnBqe3Xn-(nbwax`ja_@kf9QK|S*FkyZ?2d872=8|>+* zNbQ2*7>V3&lwK!Y8P2jt>+#&2J33M`DoYUh%5goD#lp>c(VJzNBg}4s{M{L@3bh6G zmbu@jB6KxW{qt0UtQJriz>EmQBa-yJ8g29f`C%o=AEGt@?u!9}1_ex-Pzu1}l0QVr z0o%F!d7g^w*AE??$r{_J+zj?U`6E*{D#yc2+J1^qrc{?f<%v?`Sd;SSWt9A|3gy0F zk;xP*N&dWqnu`sn0xUN9LzFs(RU&_g5|4bBhk=xoDN;(7WA^0+G28NoDAk84mOsBo zDeBqy?q05Fq-yv)C4<+8?=P5OO1R#1;)f1)qj;TCR z;!gln&-Z{lu}Z-rP$*^nIoZIPQUw=OIZ?8^0#L(O0s6d*lK*wtN}(cKI<~Zyyl(;` zOPcIxChoRsLzMVCfChL7(1$3=e*mb?pH%)4D1C^M{0TsIKLhl68MPw=QBHNaAUlfi zrV1pwsFW(UQTgX-1;{I@a-vkMj7u%hP*qNpieV~Gl+q|tM2`DkoZsE&bS$o%z_wOr8T& z3;O3f^dU+`lS&7va-x*+$*Md>mA{Nq&(l=9=cyL*5teL2K_0>=)sQF^N2~nvlscRP zc{$JzRlA8Qodik^PEq-fLFq%3icIB+(sG(EvX4KhB;Nz)Ktxr~10}2ZbWthE7pgo_ zYGM&6t(c{tq*_K7m6H8(@D!`npv13L_0Lo4!Ul=~={Bl{n?Y%({!Vpx{gm!Ouem{r zz;O(S#&kj*7*Ud+q7_Gl)2ib4D5c94=u3m%R_&grG$r>``KwT}e+YY`Eq+oRiBj>A z%0Ev@^jMWYPf7Fy7m?ka;Ap0WUIdPYqg)h9-7XCwS=)hJCa7S6j7vo>C??kkq{!1v$I@K*=^hb$FgqMd6Us`03wb(&zVR8OU3y`sXQixHaTN z+klcuJIPh4Fj^IK0;LAJf{M)NgF14ibyKBpfzs!BN-L(1Dko|WK2hagMyZt)*il?F zL8)6qRXPlm;xm%sLyA!l(1$2BI0lp|ct@4L3RO+%XX!FPWJ(?ICI+AXq!>SSpoXlr zrc_}qpfV5&5dR7f1@g#V`I&%5`|m>mf4+YG5MsHDI zLucUo8dfmFF-l*-d-{9xTpUg}izXdBmajt#jYKiwYag}^Lp(Y z-9JMlMWM)^9!=>{$nvqVUofjl{Yl?vRt-08h?%}OeO9yEZ4<&`>ddC}b&REn((K~Q z_UQS!S&mU#do3&PG3mPtHYekLTJnw8vBs+pJA`{XdhgntRqC_vu2%deEb98!*-aV_ z9^1{n!;a9LFLJl^o7wYe%Sr2(2ObSw878oh*%XCI^7Wd0)z2ZxH2Hc@zP6l8lDYEr zv3!l5N0QIwYmt2IHlHNRtp#E{S`?* zm#;i{obQ-4f5W5)IILY72|IVYTL~4u-n>uWwSdR z+F$+1p3JfReAgHJxYt770P$`HeE^{41|2i)j!{xQ22>$0%?xoID7 zc`mKmSke~MX6>prMZdH+jx9Ux$Kls5-MUz}Q@iq!?KU=Rzw%h%)en#7j$5>LON?)b z%fuMZfp;G~JNm(d1oP2T1L8Ua_|K0VbfWc2Ovy?|^U+U(>I^y2tkx6T275hs?LQme zz2JI!)5Cl8F+nw}4LtpGy@$u1ImORN4)EF&`{||b^Bu&-wks%$M&(7&Mb=s<_uqALyi-I!O&kaj-K!$s0= zuDQ~qNlZ&=Vsx8DD^{j@&s$u1^puF71*Tu+Xm&i2xAo!D`1@sob~KH77HfC$yQ4pL z?6KpWpzqf&D(#b-G3d*~_Pz4fm05YZ6-yiu9ooxw_CEhzp?gz8w#J_DU8Ve3Kw01&ml9{|>)JwEyrrBbp z>drcEAyw=;N4CaV^%h&Oic}TWJGQSm|HCIi=Nm_S^ktbj&Xc>fZascYUE}yK#cCCL z->xy`#|Xpa5x?BdyizLY_`sVnUw-R!YhLV#tuEsFFP$INDYMI&zLl|zt``%xQnj1c zJ2K-|tIqUcD`Zu2t|P0OZ>8$X4Ef~cp6AGRTB{7qVH>Fmpvv54+H#@Sc)~Y1t zzl&7&pqjeN$}5FklvQ)LIIB-J^n z#vQcsn!pars!4k=Ux%zzAFwfp$VK;^64_kSC#4gIJx%)6*N32v+ z*pwsW6}=zxWvyZ?>L{s-pjvd)%4;fnD65toz1WLORIz}LSc}+@Q{?P>1k-lP%J~cC^*yQ1K{f7sE7h0mu&kPN6w`Lv zO0|TIIZa;r?=WrFs-?{T45{uxHT8^@*Ej5n`)LgCl9ei-87`4m0aQD!Roj`vWm1hkgNeOt<+YRL z%PQZqScq4wRJ+-bE97+!s$sV1Gnj9#_!+RqNlD*buP=rt?Vw`|Nc^127r zRcqBj=6{`3b1z^LN4TC9eXgc3P`0GlzSm8hst}b2Dzc?pvwuvLW}$>mF3ctX21!*8@_`y^RVVSb05UhhzY6RJS(p3(Y4FHO_nW{LJ|aK&hscA+R>Kon z=f^bi0;twltMI!JPe?WT2jsyMD=!UOA*+0UL>~NXr7Fz~KaXH43!R$h+mqO6L2ia9H?QaQ6JMdVeX5L0GR33fS16;~GZ zo4Rq@2_$f1Gb{odSx}ulvwaRD{5bcNU8! z5=p%Imn9PV9b=&e7bS~Ljx4Fk-zt{KzlSW;;wxT|)aKe!7B4&5s}465OKfCGU7lMk zkz`3d?qFl_671;b)b+WkSYjjp2)qH$FO~>)bPsOGoi!FO8~Ga}A3mg50w>&-efi#E z349=F#Jy}SUihL35-ch5I*4r ziH=`e98-waDMXzNd%87W9`+L&w%9l4XBC8zFOVxd5K+d=uQwX%iCT-KA)R}1B+^;Vv( zM7B>>o`aJAT1K>5E^T<5vLe{ajS18)(^3YbTV6E-S4HabHBGT@BK^wyz>}Bn;3eaZS zTl;qB`HD8y9@<(Jt+j9QAr)oc3KgL}_JXz-_i~W6n@Ky)!P>VEKdfkz9iR=aWUcMX z$5fJi-77(R^#!eg`&X8=1*Dx?+1fXrUsSZCD?{6&inZ3rr&N)BeXBtG=mqTn9#vJ= zo+Is|s@A?H{!r0QstRpPHEZo)zMz`ytFH#F#?e}v#5+66+Iys3^MW>oi%zn3t|PQY zCu`p!e1)Qoc7nF5v$Zyz8=Pg|BGT@BL7T}PTx9JsXJ|8BtbK>^d_^1U0&Oi=%weJM}P|;5Egf_;@ zTKfTC;3fO&y`a^2TWcrs&fc>29%yI8U#uGZ_EN6XbO@thP(>{~v~bsQJ~F$!m*(@{UM)vZ4>s=hy6Cl~FwwSn4C5 zp7N~QK>Ytx_z%ix{w+O3@gMID?LRsHi-y&9&3}2s@(o6P8R=R4OXsrcKrAmPeKncc zD7>2C%k8K$mKU5l)K=c5M^XKMWtjh*S2BbhHDY-?YD^vFy=&zA-^k4Wjq~5&YZm^l zk^HsJ;GK%U7eWfP<-M=kh9$}Mx691x%Vl3{BQI&g{J&~gZPzS^|8EcLOGa!xV6*aW zUyG3DJym^6?wUa5XihTvEmi!oRL-xE;a64UrD%D3Zm*z{GsK^kng1K-zrmO8KX|LH z@*d#-Y9ue|jJ%rESN@(2E7`d48ep^h9^e;*|DX)x$FGy-P!udLCH_Y{gKhkk8s@V@ zL?=E!M6B|sE@sP%jxCRQG!^p8i9t6uRo?W8;_H%`|8yhN!DY>qRkj|K9*(Jle@&)t z?|;qtziC+YHUDiR`D>jq|MwyMYYnUID%<<(4nO70N`Q`lo7$En^-B6h#s3sq%gDJc z{!JZz^E2lts3qb47Mc0)uJBLRCvWe6%SirY!w4!x)%<$G`pTWb`2Wm&QZ5+Pmw?yq zQgZD3%QA}pUv~Z*e9iPa^S@;zf2}k46CmpT{lAF<;{U&CSZ&w*8pCgcDWM-M5`BJ( zpO={};eTHE56aB{Zx8=WXJ~m^UKn5Ujq=N6xc|SJ;cK!}zTSRW4_{Nm@>l41?aZGG z*Wcb5^Zz#d@}DgD(@FC;M!}5t&(Xo+btNJFxX?dY`O7@dw_%Z)e^2-i%H;FMOMCcw zJA?MCz7T#(XkOMZZ8Vm@ci@kuL{kXSf5^!0#c%Hw-<0HF=nBkuQw4orfHIs_;Xf#o zkQRaOP%)c`d%S(Ra{p%+@pAIqzu=oL%! zo*MdCUJvDna!1IhQ}l``ngAyto8FQ|y_%+0=!|j)lav{0=c{%RE;VdVnEks@U?TDo>QjnPl@- zJ1>;qgp3+npvt^arh4c@zqn3C{Cq~}f&w-6sVb|9GWk+lpDD7kg3~8tE(l-GNS_83@oHainYv0dxSpfT$th1NZ{;2BS&<{ZYp%Kvkd`;0QPY&VVcM6m1mp zr_+(}IVe&RQ_@mGQvOlCQ8H6LQU1ISR0b%Ss{xe2PJlDu0=NP0fCu0Scmdu(4WK4a z3#bj$0qO$vfQEn%y^_lpg+_oM;12`?A%G5`_omDNXd%o4<^v0W&wxe1=fD@hV&F^Q zD_{xmHLw(*g|Qr<#qbF*6_^HaU^*~^z8`rPh4+9lz}tWc7z~60_^wu-TFM)mI+`j^ zfL@tItBF>R0f++;v`#2Y_#Z0^lHU z2sjKJ0geJ|fpx%oAP-m#tO02K(|V`%O&i28AR9;len78(1O}s=2qXdh00T{G916Vv z{Gzt}dc7W?ZGjd*OQ1P$3(jwVMgmQNa3BKE1EB!DE#)cj3s4072HXMe1J{5Pz$xGY za1l5MoCXT$uaz7`;SjI}SPQHJ)&m~{6M%PsL?8(m2+$j#B6x?HVgs``inL+T>#T+Y zSwJc<1lSARKHvZ_0HC)CXo2#;K=kaeQB(v}s#y0=)nO z5C`-D`U0(hwm?gu2L>@p!ipG;0`0^(Kn1{rMot0W0}Fsz0PUz>0E>Yyfv*61o8S{v z6a(5CxPkH!U?VUZ7!ITX{eX5r2cRQBn`Il|Cd%1pUl;+<16&4>33LNG1H*u!z*|61 zU@V*hfp1WL9~g|z(jUI<4_Pjd1q=b20fo@t1C9Z!fYkuqgR+4U0NLz-EH)pP1c2@* zbPMPV(6*1)n#uPGGJ0N4TR6RVjkb47IR^YZ@Kh<4PtHUEp9i1GyLxBJ70cAdqTCfA z|HiJ88o(!ePIJphUxMY1iAnIqPyYKtPhcEARpTi|c_lwLPw zjyOUzw+2tMO|mvBr3q-SmZL#C0o?(LcMR|*&=sKAlV2B=zRZT~zJlGCz^A}MU;&+M zI11B%PXGqI155-y1U>+A0Lqg0fN{Xv0HrS_10_K$Kxs_rJOJnq7=V5NrE&sb1mb{r zl}`pu0;>}VZpgcA71wg_{961qbeum;Nz$4%%;0NF#K<(ZEt^pT- zbHG{P4Dda00yqwQ2OI^C0Q-TR0L}1rU>lGRYz3$w$H^8h{*D0VF4$D9zwzU2L_j zW56lkBtRpi@@atN1RCjizG5NnuUAmK30wzm0JnhK00rU!a38n}+yj0DD1elG6jUl7 z2PjAspeFzYhGOv;cnbUs6av(ZWdPk4g80DHhzfW6?lF|oWMJx)4u@}B^SQnGqHxbF2r?!+CVL!CQt+L2D|`Izyojx zssnC-E1&~{fe?UVMQ4g|APk_)?g$zUv03$+HC04)KWSIqKZjSUfW}C(OEQ{iq851%lxf-2r(LBx z7}`*JgZ2bC6!`${3vYq%1z4PEJySz*KwrR8p=CYNa;pzeopjfs4$wYeK)E0Ad?(3n z8QPb7OqEfO$&s7}fc6KlkmXYs?EET<4?bCmSWX*Y%t9C_(ST@ zR9^NgkommUS7Jk3KMW%vkbiVUbo2;7cj#%HYWA2TT?neQ`nuxp=Nlx{eRfAzY z((r<%Vt{DJ#bv0s8h2eL4#1)tyG#sp^|MtLhg*#w3qJGjHV|$!mmK~3%Xd*8sK2j4(sDZdY)>xR-wek}|<9zAc-Q(ehSjpQ|!i(_1S zz<@fs|E{J-RP8MxFbG6Y(c(eAWjQK}1BZ&;ms_XXx$ky0;B^CW)}6HiS2L-<9aQoaD!`rMvkIM2MC^Fn+L8&Zwsp^$@1y`=~?pz9WkM* zQ0#tKGip`wd=_d97=m1*y<}kevfm2rmzXMwu?QRuVFNU@e_H-NGHM7y4LW{cwdlsB zHDXm~npRy_HD#e${(iEAgyoypi%t;|+-Y&P0Hxj1@)wj*6XiUH)mgQ${EcO30?~Rf zp8eN|)gt7y!M~8s$VxQ|mcP3!+xXKi)&Q%K`tJ7Ow6x~2_uI+a0&*9RM^4-~S8Oj$ zcH$#*#Q<=)bjSHRZ;Koz8i&Z_aPj`nACGSYvKC_y9xF}hT9E^;pYoq8S zrMgYaN0nVRiY`*N8&8HTWIViR{H|Y`&o8^a21j1YY<~<5^||BI?Q1sL#LXyr;4$ytU&v&MVAW=#jbnj?>hAPVeiF~{_OVT4Y!Ex zL)v*OoAAY=ZDMN{ ztoMYN?_m+BOy3{*1_>TD`7`*s`P5YAXY6w0!TMnxbJccrIIP#?ep@lR!L@h-sJMZD zdr@?zNm;oSgI6ZoZC`CAo(+zDns#{b%HFC!)=G0X9+WTkmp-V=XXm3Hk9zzN(nAWY z$8Y6}InuiNJaHR(;M+jyL6aZ1uGm*Gm^N=5iD*B_Xu#)_#V%OTs;=Lt^|POQRiX4G z3uNAihWxv2Vn9fkkFryKknqWhjoG9~Z};&R7w> z&khm7zD?Qi9W)i8F^;}DEbXm}U&yhOqkScax8IFX-h&18v`KVoR`qe)8p8s4gwvV7 zHkjwYLTcl~XYR&))CuM{K-~f`trXKq3s%PbI_hAI+?t$OErWTdJ@DufJgq>i%JKbu zXE!6P>89_zXNvahxaCV=P3sI}%n0Up_F%r1T{S>@Cz#hiFE-L(VkZXk@q3|~9?Ulq z{XCdI0Cn4s%4nNOej4_3he2Ij<)(2;#aAXCT)z)Zp9to$=P|5nu%s>2b78 zm4_8Z%{~a`71xVZ!w{W9)hOoF#Rio;+R@1g`A=(PB<_0T-cy`?y5*C3sn7%~>#Hb) zZ{3Hk&|d?ln6Ga-ub`c<@ewQ#S8BjZ$1CiIMFUt+?1$$*(rLom(8y^~pk}2GCpRxx zP%EL+d_M8oUI_<|(Kt?1`>KT$@5#SHUDB8cer`X8^-F}Zdb)MqA8n|(dN=CCk&QfT z8}mvBFiXEQ=KT&J5Fa+-*$1#=Jh$(*{T4N;`>tDmy;4(BJ@>e;K8foniF8XxPy`;y zSHjZGp{cTiO#h_mj_=m@aFSynKbOe!TfgQ)7`RaPqZC8KHm{wnraMz8g75%?PNAyk z0(3^DJf}d6mgY6%hYHZsv^Ti>K`0wE=dn14NFmMn@bzNAprYo=?ie?uW|O96?L*bL zp=%vlDDgVne}#fhcRC}VL`j_?Q)*ZW#6t9Ap6Sm)g_oWJ&Zf&!nVr#vu&rWstxC=ogTjW zvkX|mj^EG(4KfZrf zZ_h6r5m!qg9r(1P@MzY7-#I4w*#w1*@4$CdUu!IM>pgV$?F-u?Y|QXq*Bq`?HKOP*&UTSzAZXgZ_`I>=`N|(@h&uUo*3iv z+1dLG-lQi5I-6jutRtU$41J#i3yNFZwTJC{w@5oITgZnir4=W&&okX#)>G<-lXR#P z-*_B#p6{geeBtfv1{uA7d=GWfY@yZX)`^W^+}7YGrL67x+_0NzI|aqeXn1sZlL(V8fvHzlFaYpOPC@ zqM6W@H#|j?1q3vxqx222GqfzQp3V>YIOc%Hqn7 zt)7%DfhWQ-6QP&$A5EGlZp1p5?vz>&{U0=Bg1)2O4c4F0do`z_Ht>2e7g@vTv)HLV~oF_de@_^`IKP81@j^3%6ol+5R;fVANTa8gnNzjp>Pc;}2*N&8`fa&J^jlmmm4>Y!TYNK=eF z^(-3lQXe4a)yiquV4N|IzUT>(@6(m|r)R}L$Ew_~e@C7@@I%VDV?Iv&k@sg;1pC}w0z|X+Y(pB|D5}+O`0xTV>@{XX~`z>EQ zRur!f;G1#mC}SBHPG%Rt2R9q2q}QICL0@MsKX*rsJf0=rgocu4?$C`srX!j(S%WhM z&bt2@y%xm*Q-i7Yln*+C2~p$3t6dZ;)wJ|rr%8$MjO~W|le(Nle{ag7|TB<(` z48Rh(IhaqrDpo7yA6%B-rUp!W$Q2N|xvJrK01wVi!VwJ4PiEU+e0Tl6i6zdnprLB_ zRV%Do#{S{463yBqo_raZb`%zPHp{VJQuKA^%$gM}79oN>5N8QJ^}CM8_3ti=K`K+t zMjimfR9ck6^;eKWiea@<0?p4I5s5$Qq-t9lnKy(BOL`EvH32IUq=T4)k2M`60~aW{=vVWBdAQLMjqcv zwz)30z+UvxbumJE1y42NA%C0~Ycu749hDP%>Va?ce3uC&{X3G$qcK}vs7!;{Wgb*uBnw~%e>wDlXyx)iKLp?6<;}+`#yTxmcK5QG>HYfCk z(!cp}T)Kl@Chd-R-8R8zU`A3RkGU)2`S`B5#_|)4PWQyB-u(^f89qZYjcHlw8EK~E z0ZGQB6jPchJtN7OHoz2bG9>d^_r$?fi`hm#jf%^BYZIxKYq5*0Qr&$JXWt+m^+5FC zksgwUm%T66<%jCP?R!wtSH&?T9Q<^lI}lj`4lh7O}21SoY66*;Dft2{tpY~ zhUStNPmv_2O7hpVRENF^+QyeI0sL?)sX8g`xKAmmoI6VV>X39EG^aG)oi3H8v4>$rvxP0Myke3m6E*H?Jgrtl=!MrQoJ*b zR+%bPQNo~(4h-NmrgX(n^k%$=C;9LMIy2(=$_3Q_?chxkqCfy;d5@>)T03*DVc}Ql0pH8%eWn rf{o-Z%0pTgZ7Z!6`2<_ZbzSvn$yemR+DQTYe0|AwUFVKclGFbIyB9~~ diff --git a/package.json b/package.json index 8b03689..30b6c6b 100644 --- a/package.json +++ b/package.json @@ -25,18 +25,20 @@ "dependencies": { "@auth/core": "^0.14.0", "@auth/drizzle-adapter": "^0.3.2", - "@elysiajs/html": "^0.6.5", - "@elysiajs/static": "^0.6.0", - "@elysiajs/swagger": "^0.6.2", + "@elysiajs/eden": "^1.0.5", + "@elysiajs/html": "^1.0.2", + "@elysiajs/static": "^1.0.2", + "@elysiajs/swagger": "^1.0.3", "@libsql/client": "^0.3.4", "better-sqlite3": "^8.6.0", "drizzle-orm": "^0.28.6", "drizzle-typebox": "^0.1.1", - "elysia": "^0.6.23", + "elysia": "^1.0.7", "zod": "^3.22.2" }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "^4.1.0", + "@kitajs/ts-html-plugin": "^1.3.4", "@tailwindcss/typography": "^0.5.10", "@total-typescript/ts-reset": "^0.5.1", "@typescript-eslint/eslint-plugin": "^6.7.0", @@ -51,7 +53,6 @@ "tailwindcss": "^3.3.3", "tailwindcss-animate": "^1.0.7", "ts-toolbelt": "^9.6.0", - "typed-html": "^3.0.1", "typescript": "^5.2.2" } } diff --git a/src/app/index.tsx b/src/app/index.tsx index b392db7..47d2b82 100644 --- a/src/app/index.tsx +++ b/src/app/index.tsx @@ -26,9 +26,9 @@ export const app = createElysia()
{session ? ( - + ) : ( - + Sign in to modify todos )}
diff --git a/src/app/todos/components.tsx b/src/app/todos/components.tsx index 712634d..29a1565 100644 --- a/src/app/todos/components.tsx +++ b/src/app/todos/components.tsx @@ -1,49 +1,45 @@ import { Todo } from '~/db/schemas/todo'; -export function TodoItem({ todo, enabled }: { todo: Todo; enabled: boolean }) { +type TodoItemProps = { todo: Todo; enabled: boolean }; +export const TodoItem: Html.Component = (props) => { return (
-

{todo.task}

+

{props.todo.task}

); -} +}; -export function TodoList({ - todos, - enabled, -}: { - todos: Todo[]; - enabled: boolean; -}) { +type TodoListProps = { todos: Todo[]; enabled: boolean }; +export const TodoList: Html.Component = (props) => { return (
- {todos.toReversed().map((todo) => ( - + {props.todos.toReversed().map((todo) => ( + ))}
); -} +}; -export function TodoForm({ enabled }: { enabled: boolean }) { +type TodoFormProps = { enabled: boolean }; +export const TodoForm: Html.Component = (props) => { return (
- @@ -64,11 +60,10 @@ export function TodoForm({ enabled }: { enabled: boolean }) {
); -} +}; diff --git a/src/app/todos/index.tsx b/src/app/todos/index.tsx index 2e7ec7a..1253f95 100644 --- a/src/app/todos/index.tsx +++ b/src/app/todos/index.tsx @@ -26,7 +26,7 @@ export const routes = createElysia({ prefix: '/todos' }) }, { body: insertTodoSchema, - beforeHandle: [isAuthenticated], + // beforeHandle: [isAuthenticated], } ) .patch( @@ -43,7 +43,7 @@ export const routes = createElysia({ prefix: '/todos' }) { body: patchTodoSchema, params: idParamsSchema, - beforeHandle: [isAuthenticated], + // beforeHandle: [isAuthenticated], } ) .delete( @@ -53,6 +53,6 @@ export const routes = createElysia({ prefix: '/todos' }) }, { params: idParamsSchema, - beforeHandle: [isAuthenticated], + // beforeHandle: [isAuthenticated], } ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index f0dc6e8..1890ed8 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -1,33 +1,20 @@ -import type * as elements from 'typed-html'; - type LayoutProps = { title?: string; }; -export const Layout = (props: LayoutProps & elements.Children) => { - const { title = 'elysia-kickstart' } = props; +export const Layout: Html.Component = ({ title, children }) => { return ( - '' + - ( - - - - - - {title} - - - + +