From 8624a507b3a7ada1cd81665c327c98e2ef95373c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 10 Jan 2025 21:06:32 +0100 Subject: [PATCH] Example setup --- bun.lockb | Bin 4048 -> 90664 bytes package.json | 3 ++ packages/example/.gitignore | 24 +++++++++ packages/example/README.md | 50 +++++++++++++++++++ packages/example/eslint.config.js | 28 +++++++++++ packages/example/index.html | 13 +++++ packages/example/package.json | 27 ++++++++++ packages/example/public/vite.svg | 1 + packages/example/src/App.css | 42 ++++++++++++++++ packages/example/src/App.tsx | 35 +++++++++++++ packages/example/src/assets/react.svg | 1 + packages/example/src/index.css | 68 ++++++++++++++++++++++++++ packages/example/src/main.tsx | 10 ++++ packages/example/src/vite-env.d.ts | 1 + packages/example/tsconfig.app.json | 26 ++++++++++ packages/example/tsconfig.json | 7 +++ packages/example/tsconfig.node.json | 24 +++++++++ packages/example/vite.config.ts | 7 +++ 18 files changed, 367 insertions(+) create mode 100644 packages/example/.gitignore create mode 100644 packages/example/README.md create mode 100644 packages/example/eslint.config.js create mode 100644 packages/example/index.html create mode 100644 packages/example/package.json create mode 100644 packages/example/public/vite.svg create mode 100644 packages/example/src/App.css create mode 100644 packages/example/src/App.tsx create mode 100644 packages/example/src/assets/react.svg create mode 100644 packages/example/src/index.css create mode 100644 packages/example/src/main.tsx create mode 100644 packages/example/src/vite-env.d.ts create mode 100644 packages/example/tsconfig.app.json create mode 100644 packages/example/tsconfig.json create mode 100644 packages/example/tsconfig.node.json create mode 100644 packages/example/vite.config.ts diff --git a/bun.lockb b/bun.lockb index 407e203207f760871d19b874c21db119fac7397f..1f746d8a0b5c7e352219469e1d85dd87b073a803 100755 GIT binary patch literal 90664 zcmeFZcT^Qi+dX(BD;dc_vJxbNibzh9ktj(dgOY>fC`kcPK@da*QBa~F83hGYKv7YN zl941)Ku}ScDmZr_VPvK%P3?Tmk;2wav0J#9h z0AvGbgUu^r>p1{&f^rN%4uHd;o2&pEuy`9F)QJTM?Kxq~wXk_nfJ~sA8z3n_cQ-F@ z8!s=+F!5%-3*atL?rP=g=46Y(*m+s|I62#5-jQK2RG|DZz})}~08#@?$CgK9^X>p? zLAeD$*zPDm8h{4?LOusT$Rhy=+kFL2!2B>kI)E<#!tyGBkbfIne;FX;hhX!L0AV{r zfUun$Kxk(_ww@MSkAuxGkZkgqz<|SXqXY>1Y3JqaVXSk9ss!k zI(Z2=IJ;S6M!_J#cJ`nggg(s4!PU(Z%p@~x-rmX8Rsc*SMlh(bo*awraLQYG11FrF zT%5cy!T2_Sa@apB8#hlF7#2_t`!mI{S-unG;W*mbS^GGEdKWM7 z2c%zMP@!M+U{XVSE&#!hgt=RJI|=}&d>x%^96>uLFFQYY1KBuQIiCht41xsX=4j<5 zVDD_@a2w>Ij_=-0{xg8Ee^#e9x`ol%w|QSl0fc_|csdE30zSC=xcb|;+1kwjKj8f7 z1_0k%iBJ(i|e1`r14(fLUyoAl`No?Bf2MEX6-pb3{1H{bJ&d1Bi-XG&- z=W@o*6NBjm{=t6S00`H`!=OLV?{gpz{Xy~yQsR4E$#?B9bR3P6bwYjdu0)%miJ+irOx&VayN>C152+P7^GC(+9HvpdppbJ1a z@2X@m7;p=O*~)E>iylCzuL2P2X31~r*m>DlIa}Gm^867x)E^S<%} zao7v$?}IXE|29C_AFy|L`@7r0vd#U_-rf!ln4-q!d^!&h_7_xdB&7ke`KuPzsZWg; zA3xM?J;j6PM4`I#yIA!oku9NbrUNObLuibacuvXXl6 z+i`hrqA!X{Og@|XguE!<*%&6p~{B&p`P=|~nru_joo`vva)NTUrx3n zYu6JNjdvVNpPQ4*Z2wihKC`%sv6Z`)nwH8UF)c#o1kS_v^F)K@RO9bJF-37 zPnVi|ojdxg><(9ur4B0>M?+^E1*f#4FX2+<0nL{cS(nQKh$vJ{gcx7Ir^Rm<~H@rdn+8_jCZqF`y_nbOHuakB7~-IsCeUdX9ABJQ^z&f2Sp zr1U;-BG!@xlO^?cDsk_}#&Rb8^0?{0F3?dOlOv#vG>3oNF%`<3mC z`h8Do^~ZkIUk>6QR?8P7;?`2rG&_GNMIf2Ik*eiEOXy_SllnRQjDcC6mV_WOI-Cwa<74l&EEZdaUB5|w)jFle zWW;#1o%QpB7T-wwaX}p)iCx!+dm{-)#e~R-tXVHT`1DEdSxdKF&Z!&GwTgFtlI4(% zJCQM#AM;WT+MQ*6VmR06*b8kdin8ZjoJRil4- z^|hnJb6(3Z-(h?5_RPWeMHQ@hza}}BSG{S{TzL0b=OtU~Ff?D<*&lU3-;ZyIDd=&N zYp2+kNzw;AcBiG2V?EyWJ+4oH9Z<d_7 zAX&ch^eyqYbzqXf6Qtft^R(ef#fT^d0%I;Fo-@g`_$DmcEN5HnLZ*B@O@?!I3fp~W zyBH)c^u&>W%PzpdA)o6oY8ZGnP?1k=qjx8B=BstTqFzDKQdO_Q)O5Jzx} z3f5H#Dv0vDMRW()8K`zili_Ieg>y<1ep4Hc{oq}q-Ad&3&@jIUhx{`V|K^vkJ~8T^ z5VY@+Ej1K4G1x4DDP zQZi1vG+jGBaqNZR$(i-<7p+zvQ+E^8G)}NeFFh`4rI2vMJ1%O_Mv(WEPw426uV&PX z%Q;jTIG61&BJ;6+|FvEzLwfZ#60P^9<@3C8w#g+Ads_x$2zhU4WtZkku^v4Ua9LgB z%!v9sVeJG9axP^9*(>|aY1GDyNH24Zy6#!3@95@|yj0oP=)@rsOQ;>_>&`o;&}1UK zx+}gS5xFk|>7~9q#TeLMoai24xY(4eH=1)g*}B*WiQo6j%Nb@AyAb zBw~XEY_)POQ9Oyj1O-K_$!KIR$Nprwr0!~yndD2mdt8$z_UMyw-2hxI!?a57r#brj zm`>qIKO^GNCwg8^a#`7cGO}BhTv6o%x%BLzy==4xS%VDw%f9XDy%=_*N<1jx>S9po zz;wRdof~g&Ry2N{SrF9DWIV_C z)n)dc2FH2z^7Wws^C82@yXVO}I|WH&4-;>JflZ-kCGmMDa4trXkkfzV~4SuK}CiNty|HT7Vb=gyDXJcz~-qQQF z?`NdprVQuQe<``*O+xISbSZLR3U^)7m)VkSFgg6?(@Jj!(XsC;WVPH;&+pW;y{_AV zY@C0I;4yC_X@kF-U>^o&2@KQ(XOk_Zqu5sL0O7vBB@(I;V*em8Dh&7p*g8T~n}7R= z@b3XWI0A;jJb3ioxc-fY)FJ!@zz64~`!|1O9gUPYYg6Ic&rK zV8FNA27d(bEw{m!2M+<;;b#K=cH;LF@V9gS8G(oY?f72~_}j5h1|C9acH8Y%)Sw~!G29N;Tp?ZYy}kKaikd|~jg2_D%u z{D<5>||9QaI0QV0OSpUFK{_*}-0bX*${SzGHG4R<7 z?t@!N$o{ns_!58*j#2PE@0Jt7Zvu-pv=50;0}p=KLPGcg;AJpz@#NFQMR?-IgiX2M`pvGyS!94EJw5Pl%wBjX2&P-80z z;a38_64pNCA?3f*K-#SVz8v7gxWl=Nly8+U#SFenL)rgR{|f;hjz2Q)e|rDV0zQl% z^c&j#Q~SK&%RcZ`QW)$n>~Au zeMZ**`}iaEze9w79Pr`#5BI-6NeDj=@ZtPL;{T`fcO3AM{{PMVV`kgjf1rIh28bWO z>kHz)G2p}bgWR`&>i-qMhwC>oeu&Oi?SBA#*nh;IKjl-hZ}Oqve=>&=d&dADjvsRW z|ITlu9^oedK0LpG*DxFF2U7n#MEEZNA3ndpaYM>}$A$GsTLzBJ{TuNgDgT`Y((Vl4 zivjy^{)1NuTTTf79^lJi`AFGTM3A zY4-^5m9XQ7l>KiUbUD&?$KK8OLHmD_5WXbf!}$aGe=>#$KN9d203XT!>G-_?e7Jrh zW53mYAofW1VK72~PXPQU0T;xrB!uq-_~uyux9U68NBBHpuvpOx?bynlgx!iOE%LPGj)1Nf5I{=+lG zRujU{0Q~K|KWPViIba|59nsv14@g^K{>}3X61zVg|9HTM=f6Lhd(c0`egohm_YW-p zQ~TcmUk=-U*oUnq#J)b*{N=FzZJdJ@ zz~=W)e{%MN8VFwp@L~L6*-mi%ssAy6uZHFS&HXzD`09WU{eias^!^hP+_VqpAKZWb z)PFy~*8}z;|4-&H62CFP*9LqzevrS_If(GZz~*TL_(XvFH}RtaFE5X7gP#KUC$_== z3HS!v;2#s&-2eWz|EYj42kay91Yz7#LfUr$KD__n+=uB;=N~0__<;L2qW7os&lvEL z`ybAoKb=3dfRBEE0pqxpg!l^|9-)1hhqnLJ|HFU}-@hS#BltTX5c__B5B-PdA87ke z?Kc3v65u1__NRPu;5_UygAJP9EBKBqgAKrgR z?EZBAiGsrmm_i$Ts^1w!)g$)p03V)zpnaI&9N0=i_;&#r&L24c;Iq@8`rilmMu7jf z>!&FA@rv#?_z{2)ug_xWV8b1$<~5&i$><0mS|~;41pvVju$OKrA^ai0SH^!}SAMf44*i>ImNo@ZtFd#t#{T-x^2pQvn~IU*LU@X#5HP1>m0q{J*__ zRFyXOpTC{|S%5Exvj3;|-!R~VfB*Q8#PxSEK-vi^Z;l_{?+E`c{qM>4cSUU?3;nbLl5xb+}WyasE_aq0Uy5qLFNup{yQI#cB@!EY!5a5bpJI1 zHy@DL@E>aa>HTvD@WCVaKmJ2MwvrJ4y8vGf@c(xH(t*Ph+<%CHQTYCAs|m5M1NgB2 zFc0Im)r9b`0KO)czf~@5hwz61A3p!W{=@xes|n$=f|rlr2(dAKXs)%Lx0N6mm~+?J zKTm#9lS9|R&j{Zh@ZtEuJiN9V1B8DS@Zs|p;{R6f0favX_^w#~-|XM!;O0>Pd}QB3 zbYUO=Eg|i006yG55dK!zA%x!z_~`v(tMLQF{!aqW9AW=tw)g?DPo}Z?{Ry=DH}8M7 z03XgD$fpArqWe2HkakIc593Dw2wPn{5N&7^i5EmtaKYy<_$SpY=Qq;-gm8W%=cE5WAiUQNH@mxmoZzz`xZqp}!IndWb0rL1aDIe?3#NZV*e(KG zkQWIqnEnl6`>2gp|1-k+XmCNjSZq6pu>2er&towTAWRTpeLT1z?*h1Bf(XkKVFslC z31R)kjoM9w^CAhGhY0JFv3ZD4KLuQ{JQZ9pL4^6MFar`qsB;Zmusj1?Frg8aU*9O* zM5uccT(CS7Trg#V3+A)1cncs*5b?m312Z6@5w_3WDE)VY_U>WZp%IqngA3{uVCy07 z1XnpW4-wW^VDk_muL_%o2AzMV1fwSPhxQji=P0(ghtqI8eEV+i^X|>FhPX% z3oru`M40~!Ga#W6@|VB`@3(JQTn7jf8ezK~P~?9>ScL=rK*R-qpx#cH!6NK08MdAr zAk>5ZKO&gW2#ct&_0#}io(7wz14s_?djUc{epvY*2_)K$c`hY0;R3J|ta$CjfJw%5XzqY;+tV#^^yz8*FY5#|lB`Tq%F zy%DH~O^mU49NQiu^xqs?Zh^%U*m_X4(GTbYOc4LOZ~lL4UxoATzxyVfz5n<96Hf8} z?wcE7+1N+nI`Q9qb2A=r|Ah17zx(E9Jka~+fA>xB9S)cr|GsbjBL9WjLpP(i&A&iz z2WC?jEsb}r<8HRKzlG7Yc4LY=anp)NJqEdAJFTw8di$@YWlYw5`Juiv`9+HbUJ@352Xv&fd9u5N*6glKy5rFsi5LtpPmo;wXfs5k6>8e zy))uE9YK}OZ(W{{(C&y&S)j~x?af@Lbzrw!b_$b9zcbGn-zA&IOY$jCPOT`xvn7lJ zj6b}Pgg3#68ytF5sIqs5WN(CB;++zg2G;iZ@*LsTJZ9UPj{@@#S?Kpv;eTa0o_77~ zsF`MB+V=si16_7)nHgd!bc2eZ^GJN*o{1#9bUnWa!?F*mudAwR$rNRi2Lsc>85kV$ z2m;0u#k?b4Jrj6w%F~KmS|4Izx=U4ek3*BokuF>x;@nzTaU2(vy}I|LjBgp19{WAUsN3> z@s5WXMKP0)*8K43eU**Ug=bDA;pue~xRnuvyEjWspSpX)(T+0azUZsZyiU8%vgf5p z3z~YxrMHNFZ=Jf7RYGxD$Nrk#n^SCbsb+T)$y1;4C!cM=>JkA#cp(Yz{Sy|(JT|#X z<{WzCap#D=xzQ4lZJxG^r}jx}+>h?N>RuJ*xv$iF{PQ&jCXO~@D_L_V<2@gJ0}ghK z-VOiEQH<3M1A_1w2uXP4dD$f%8Fkd7^=d@JUyhV(gp*jl_n)XzGhF*(+(vrFbUJcy zr;A>S%6Eqc<+-(kDLFQtHdlPoPK7oL?V~$<3#$v~!Y)JL>Fs-3pJ zo4Pn~+=$V-3|7voWvh+nv%Q#U#w4E|di|p5vsS@clWxtDe zWQ#aRdY(|S4?3_^Ql~TOh0-NML;>Oj;hEE2J+PX;&r+S3QQ1SrxgemAI>~vQ;RNdIa7Za$+h`N4DV?ri81VZwkGd{#peUM}Th z{c*R!ZjECHb>)0$SbmYO$yLn@^`xBV-;*)Z!~IevH_X&3Ge(#_Xv&M)W8uPAo=fd= zk%Ba9_i#E5j)iXM;%vkLjvbQl2%F4XW#x=3>?ll&2`{=jyIMHiiMCnqa z{f)lkSv_2WBi)CW_n0#}in%-_Mqz&JIIaC_1>IBmUDB-fJ#wUmJ|~xMC1$d_7s=fW zZn7wFAgMm*Lv-6SL~A!z7p^%pXkC`bF?MV(Nm${oa_ca|y@yA$#KSdoY{HKglr;-x41-?-F+>Lg?3-s-AfW|$85&h z$B9@q_dUzKjKdV$@NFXJpdsONN+n)To-+Qq<6;RfY+Y}tr@y3qAn9&xvfRI+yLo^!TZChnahyG*}K{_)5zr3#!o zcb)EWF&#|B`@Ul;<40<|Ps!%`u&ImwP6_W2w@${{YY)zzS<%!_6dlxic;WJjQvN5) zMe(O^k004x8>u}OgFC&J=quZlb}R47*9ooQ_to}xUv^yzvekZAn}PC|32_!6-Z7te zKB`ww^sddj5$U}rx1{UVpDys-JF8b(zc?JZz(rD5rJYN>M8eG3PNXOFfWoV``F>2k?gWN>Pdi{s89GW?-`>>j8G!4W zTA5I)n=0F`n7G(itNepUGu~r#*s~FDNTR``X8)oK*Ux zW}3sezfy0C925*9SNovnRU&C?RA-E1e2$u~+U4qn#M08SAN0F+b5*716YQeYdWX{8 zgVtT^%DheUkkkF_nAgDDknms`%ch5)i*%Rr_bK=1k1)+U#F;1(FBJ>>irkeqd^hq~ z;!?G$(NhtJ_eB!Uz9ec7H8*VUl+?<6PD|s*xOQfeaW}k!^vl&hpGP$N+MF0)khhlTZb&)$KK^8>X1>chyIe6> zQ|;u!CyQCjrVU-Zjs1chtt-f*q2V)@$h61i`hX#l1DYIY-Kc}kX0D^28cKB; zq|8?iIp9YzYOb_V8N61b@zOVT`RpW?{apRwRM%B#1yFq207;yp1x`#o}d zk@Fk=Vu;v)CMR0=JKNjo!&+il`}T1cw?7~duubvzNciF1OSjm?;;|4QQeY%>_g3bh zFk4c<1LY<)l0gC*cTHPAySBV$^A%3U&2tGJ2I_L5b*%_SMsJ6E4&34k6pP~TPx*BA z8pS!>(YX(8nEH-bqCSeNFAe8B+gVaa6^}5l#ixb;4&J(%-vxNaSkxke)+ZY$i{2g~i4=OBoCovT_4K``9aUU*GJjJhs-?W!46YrE!fd#GI?K9^(NJgP&<`;6$F}b; zUZ=YLDb+Xsb{BcF{0ZOw;Svnz4oq9=>aOoJ!Eem2X>96l?8m%l-QkZ>rasbp=mI`} zDW5#Kta%?vaOZ$VU9QivgFDn36SHbjy8F?(M1ykn z^;}fGDz_pl#{>1VF29p2X}ZuMKOWMb`pjG_i6`Sm!_MWx!r0R~n9?evYPEW1Rp8s~*s(RD3H}{U zr!qnw$@QHkSUB<_oQ;4*iMW}BuE*%hR6*=2GkNma4c*OilptDn#{V&Sq0|sfRe#*P zo|Ww2WtPLa-J8mn#J>bC|ZlBLEkd&<7Z)r&~Qi9Ks;`DngUT zoO_;QqCC!wO2U4O`Do@l`EXN?lR=yDC4%QDVYIIHm)gfVKbBW$zs3|(T2b9N2w!Z=}7D>M_n6o973-jb}m; zw65+T;Rz|Vw>mEqa~`c-t66hM>sC^nQFZAcKWfkBf9xWW_qPt7!vu2<`UZ}wTrrX9 zC(8DArKhocif;W<+)M}m=gQz85nLg_Z$th`cqSk7uaOWsej`=AwAvCg*+6UVS{0pl zUbHr-dEF!Wwk4)T)w$@wvgNI!tC7!eJ1(?xnAUlu>Ek}DXIcohdCs<>i?{KPKo3%mK>O?db|@e- z&-iIca8tA7$k#)}dROarCNu_I(=q1QHQC`<>wZGur%3N{m0G_#1<|uR&KxF`JQP}w z_v%+dlCr1hs}0@F&Heydx5Alwgvxg3lImk!-wfJ^uMI^9`Al*dOM=D8+_4R_X0$56@= zco8d>T=K_xaj^B#y^?Xx8_J`J(m$B5oVCB`M0VSy;lt#yk6F*W6qwCNNWAa!ikGGB z!ZUA-+|b=TPaZ=1yFdHALaLI8{tZ5}n7Eefa}S9tr&>vluCLP?P#ueSAIKLP}Jko6WQHbH+%lY{0bm=JV#Jzu>ni z|0KMCH9Lt`wX+ip0xcc<#Efyzo1O(^(|^t2uiB^Aqg5+aN4svusSljn8ktdpP8F^HFvxv;RmuJ$O&(>oeXYMViK z#3AafZO2{fD0aUuq=Y0{(iIxs+U^gp{(879ZJ*-MS!!y3eFdcpe#`w&!Xx3Hn~WL0 z*Rp^1fVz#x=iH#0ysO8@I84&Z>K0d%`$5>$U4+yH5$ubWTb=ILLB$+L(=0nroS{3Ul4dZdQShlN?~EB2&03w)+^+d|cLPznvS{5p zRa}`elWYS9f$DEcC5buYomV3dkLS^v(h=~ke;E5@cUdLhQti>}R;Qi$e(CyodQa~) zf4CYp+o8(W&9c919HlFV*2U|uAWTgcZjjb}VN>AXe>OGZPtxr<1zhmKRaC|$56MR;g>qp%%M|>4ubfdFK26?hl^TEnz^)4t~ z1+=cDjpFCYN~3oQD|etgyr5{A2l<_@vpS+NIfdCRC_b~py?j`^B&=5 z)27j}C|zZ=?oYn?;Sa(sxbh*fD!HgMzDXtZyj zZn8_rl%n+LwYVvK-`COG?89ZM9Q6Bj6}0X^%Pgex#w+I zS0TFV>6Zt1p%$WLkBY7+D3MGyI?jAgnZNHDPvp3R;t1vU*Y5{p`1GrHx|l*(pD=^jPv;&)EIm)bpQ zwZ5-A@N#_h5*muG9Lga`CVn`>Q((mR9qq3gTKDOc-f8ydgE=R6R~SVfuf5~)HL|lU zwK2Q?@|AQ2#Ssb%@<6N42S2W?Fy4P4ljd{5p3*iv6*!$+jCXo?N)P^q0(tIMN9(GU zUc>Z|PHT0<#Wvahk`@?K6Ack%B4%pK;3-fSrQ$EV-#@_}V3%yd*WJ!DJj9PCMHl7fxbPlUGdNvVrO0Kc6H*Dy5nlZ0ZZ9gXu+Ne2J4#mz zt!v3lw4j(}NJN`^_pH$Dhqv{ILt_GVggj8w_Gek}Yk3n{?b+pZ$=qtR=)3>3koQ%Z zN9WcpPFF^plNMuh`BprH($z-m&cA+bA?==A+8BPM@j)$Tez(_ajV|(;iM5BKw^gfx zy+w98*x&nHK(Q>6&URTYp*P+zxT9RJbjhV4+1l*hvl}Q~9klK#9o-knQVG#3W`uiQ zTym--J)cP^Ya6R^^uc8UTl-er8K#{yM*XaIg?vTt#J;;0atjj%Cm*5p4&C9APmOcBQM(Qd`Tex_rFudnd`a`}E}k5V_BE-z_M?3`ZZD;7MLZcAl3rR3 zFj%UHNbJjZFbLAWX`_nI)}fEmJ%-j5$hIk`NybmCd%4G9_maCu9!aY~V$#PtTQ7O= z!rQq)^QPeS)&M!ifv#UYq4MV|HDe+_1*ztwOm>%)rk7Ns?+ZP&uGZP~jJ5?PT$Pff zGad%rM|LfY-VnL&_btyZs-uKw$152RoypXaD={@J0bi%y>#Lp_?(56ZbT@W=s%`9* ze@+?YuRdD0&}4sIOWV%3p|>bArs>HWIfDY|BAzwJiM5ne>CFDJxpFu4zRYNOI>(fz zH-`#dD^X>M(Ahm0L(_;4QhRJndQiFsXk82M_mBBUN{Sqv8da3m^@2Ve$9qE(_fh9D zrM;_>65WHq2Rpju1?%m;NvSc549VE^v9EL)kt(-JkSLNGt|(kb=_0>Zf%15vmCV$O zm1-WUxh(#=;iXD9pK=olRONWLnI-gpf07+O!SBoXqC?3{DWG`;pIHDCao6?YkJbx? z6_ppqarvTOpmdGU{^IN>;CfB({w_VMHYcKIXf0c{>Qh7?*~>V}6QsE>`$Nsy6=j|( zPikDT3}3%+o`OEmh4ops<|^kC^NjZLn_oAd12*?JW3+BIjp{}3P>R$QqK*kOY7Mh{ znKKy?J5>qZNGUN|uXuLwykF8kAFQLt8&bSpRh-0YgsBe+w!QE&FkQSTJ}-9jy~d{Q zakTDmxj+8$ne^N@nrU^$*L0-2e%W8kij8|$h4DYz!d&Q;c1L_&k%UJ1r00`h$5(ZC zs7CvpgWMg{?3Z10I8U>xq2geI)(s7~xDqM4A{`b(0DAaX}z3o5Wa%I2ph)T;<(#ED%s;2nc$+;a;2kFbw zBcJvKuapEh67Ex_9QTm#d!0{FiqbVl>k2=YQyEiIJd~g{qPTE~B+t=Z)k0pGybo{v zo?s`7n&e<#1KH=#Ct}YkxdeZ=duJD{vxeKX8m@V0nPpPp#R48m*8;8EPJr|IQ5B2* zkyqjlq@v$d*au1P)7~un-M{E8d&vksx=??d$6@{w z)Ss14a;!{?M@;-4ap+enKY|)%Kg@~E_i~%_%o43zRP6jU$tqLMgO6oG2@A*o|%xMzuixX>Sit ze%5OoFOsWH$a|vCzgB47BmPFmKG&oy^$qgB{zyiCkWHh*jrF1gv#0fe_g4hhhtJzG z68>~`{WOgy;lqF2z_~T58pF*=?TDe-R^QI=m(TA0LG7hwG!&B@kEAn?lBEuLr!Uz7J8l4rtwrL8m_)aI)^QFX%r-c6i!y#ix+Pmg({5?>l+< zk5&2m7oT{!*Imm>>!gvD=2&5laMzEt+#EsD3v1RNJ{(lFCqd~tqIKuzuhTM_KM(#k zFl3tlxKZ`2YZF}|p>VAoZdRH&QHBT0R9U`7cjOD74ZOfjc2WhrtI=C?sHL7E01hSSI6)?b@3;=#G6N)QM#wmx=KNsf;a6l zvYxRp41L*QrNqf}l8`1RvLnqrPWNTC3X|O8H zHgAYq^iXD=^5WdDH?H50mT3p>m)?~uK7G9EDoWP{t($i->=8q7>4yt@R?nA)Jip#> ztnQb0=PgF}f;Y+Yzl2E4S7-S?;4IdM4b}~c{}7w#O}{|UU_r*mW^Nn&b$Vg*cNLrK zq$^r?H}6iJWeGm_bE_a8I!tqMJ&tx zspgJ%B!Z-e!|NSr4pM#7lt%gMhSqJnA6&p8r(^oz0=J@@<0+nFZ6_a|tk5An#%$6T z?N06yaG=l3A{pm~_pSHUB45KMqu!0tUa$CoFSkGTgl#g_=J#)#{<@=el__y#n%B#6 zOm$}#H~Kw{2U^#Arml}TrN8jLM1?BHD8rqDZ1Jb#^w+|L)~L{G6&tfe;vk!wVx z-?MEHzOux$z>3oKM(aMUXkblMu+r9FsKkqA%9`;ETJV`O3n<_`BmQz+nRi8rrPV0b zM|L0c$7whDqG#8B*>JEBTd(4huf38~TCLptjsE7i`Ji>@N|Rp*tSXvkthVaD7v3w_ zN7tpJJS)m-YFKX7d&JbjI?mw6o_#lBxzR*arnUaAo;Tp+x4?eBkE|_4>>(#&FFHxFC z)+yVRf63CG;5AY%|Nf8`rR$53Scb={Z-jH80;QKH|kGbsJ80 zbUv?((hWlEaxvRdGH2er@AkvKZH(!M-ibIPwYO^*ou=q^ULp!Mrmb zZgpppsBlqn2u15^&>f1--QTG+_m%^9K$U^irDacH`h3Z&<#im{96a35POP3|pOu?> z>wio!|2%oQHEs5%#)tPG#}eWNQ&Z*g2T{6VXx)eh*#_@|Wc_URh7PbPJ?$c4={nhe zbBAK~zCF5^yRCY7-F8)GRMicC&)39FcwXL!sktNMQubJ=orSGlUQ`zSJCJa+?$lD> zw>=y&yAme{dpUmI?8GHp)W1@0OL!}@s=4UyQ3=DW7dbf38}cOSZrr^p$`JoVXq>`x zYSuU_rTYgne9+p<$i%+m8`O^`xW1db|1tT-zDv1Gqig1_9v!;W)p(3^$IZMCD@_EXjdh<|H@}D6 zTqh&Zx{t=`qX_EA4R-KL&PU0Ac6;9Y%ydC7$k|Vr3Fn67jF#~J?z=q?F7x?ylkMjG z78{md=uz+_OF_rl!bFnp5QP}Z-zc>1o%)y7b~9x=MN23>7Oy67nyFB~C!!{uzo_*r zKU@&kSozbAsrBh0`+OYwlza6;r2XVo*(L6E`H9>uJ+ri;=zS;}t;;|fX~L*${Ce^$ z$r0;(OS_~&37Rx(l@V_p+wmH^Ulf&f?a%Q)=XA%6e7bYxTPrT3`g`7sBD*~&E7O=u z7_89m`(n_#vX5N>8vbBEA;^zP{j>bT2l)E%*RA61S&woeF=$!FE9 z`Q|*%zbLL~Ub*M+Q=B*bx94`(?sr1PAr`HhbyuZslt4j$;TM1NN%{`;@~~j*CjlDO z6-iA!ONoL)DJ-kaCbe0;Z?a>!*fn>*480^BFG4t^pQ9B^|D^POIZF2&T9q&^@lz^X;m&BT09|j9^s_X&FX}lH}Cm zrIfaTkxG$U*ZdhMYew*P?9m$ZJl&ZxK57wq1m$lWS~pu|_?hRAl|AxKbNYjp`)I?x zn1rtGzFHsV#B+p*D^0>e>Gnu{KoFO2u?%Og*e>qO+@|w;W3Ck7+{@9t$53a1(v3&! z675wWxpuvZRa;Nq*2bDGC&@%q;0`_!Zg0WD33-mwCo;lk@0~v&>*V)nl0!3Z=;clS zmNWVt@5$5)F3~+%Y->a5CZKg6cvU{hGAMW&B>Sb8Zaq!=y73ox6EmYK!hxO};`rS; zw2rzfxDBP$O#CIw*;I}b{gf$~xZ)JwB72tx-NI4yx_$wz+mI?F;Cri;r=aPZ(k0FJ zpI$6#7*Dg!zC26+CAhCv#*O~$A;Hru34KQO-4N@8_JpI*m)6`ntE!2;}YCYi1!T+<8Lt5m&>CMo@qNKgFDVg z8_>Jn#P`{fX)GXNu7=%}cQyO`wNKw;rP7bAy2)3#m?smXbT6TGFX+5;z>D8&Zg(Ic z>xDdzuYMcV!tFa3;?2jJep-*Y8U>uISnU-^35*MGjYzCF_C6$C;(vdBgm$L?TX_ek z@Mo0nWwdUnWVZg}82(qj#w*2E7lo?L3j31>9}gTadv-T&?5E8;%!+FI@%Dy65sFo* zMay5$6X(<}_MPuM@lKK@E8z1J^mAbnT9=DPRk&)6P_Mk+Lb4+zUKFQun0&Nw?i76? zUgI4$OX*{Ito2PlIy&xDFX_j>Q~n-1u~=+0@Qoy8;X!h!r965*B%^hk_(L^^n7=B< zXc)e}!P7YS(GTM7kPa@?EpGRF@v&E~H9aC98MTgiO-$54#&@R6uY z0nrDP7H>|8G*-W@k6f1(*{R4xfB$F{QQiUc`^hx4F1OaKpLg2@s{;n?QLo02PzE)S zn&aJNN&mb?R8MfZ%unw4r9FoIjvbgEZ@3SCOI5P)j&tD`6vDB&$Yykpni~DP*L1XQ z3qe=d{42F9irsM>f~J#eC4*C>K@{n&M>SY7U$*)!rh4`dJ(T4UXuRkh|Ewnc8?9_4 z={%d%HxDmeub@^B^!uG_XkF_k_X2%l_7^i)3kn=RbYP#rfD7|VVSq3>!!U8 zkJn!u$mLAk%i{WGNv;;2U(YTPo=y3c7094SHR zUPtSW>fQ=DdN{CY@d}?s`QZ}+`h1Vrl#In^%L1E}WWIKNa&UM|TCXKO)TA-$z3Ygi z`j;og2W}+T*&7fTJ+p}SKz~nm1FgGQ)Io*2(<~yW{CS705Zk+V=86OsZab9n=;}?< zcsLJDtb0ErC)VB>XUs%#Q0j%wt5h)}wxRmb71@lk_RHFbQU2aU>taUO)G#-4IF3L5 z`B=rHWbKNB_G}D(jF+>`*RhcW@Fw&n%e-x6seivSakqm@W5()oz8I&Z(lY-==dVse zCg}Su6Rn$hGDM%@q)9WyWfGnR2RtUioGcNSK0UH8Ilayd=}h>|nN(?CZ5Q7reOXEw zU?h8y!V@aN{?^#;@dFcwR{_lGD1Woix^;zB1ci&&E;T8*B=GR9wzw}Oyqed3vO9`m z;_~&g{JlOkx7xpo%oVw{NgfvGaeaQ$M=Bs)-Cp`-YmT5W-S=LU?k%*g%26Ge>ko=D zAIp)i#CJQq>LSN6`#$Vz#c`u|{(>KFx)A4m*Ccv@nWt;jeVE#yq4x)QrM389`xtiY zOV3+5^cAI>jn*AMLDP~PG+7ave8fa+Pxjq<47JwfH{lw>KWlbW%?Rk?Hu+i+u8K2g z5UvUQJhpJFzi(+_O1J7;u47VsrpO!geS90Odtf|4t>|X*?Qh(-uPTZw^Omu&Hc=*AdtlTbdMt78w4Ze2$Cdk3v6m(?Zh z!cN|NNLOjOf1mc5sU`KejO77Lm9Mkq(>4z&!PhfasUteXqrRs0#b9=`$0|sZKH8}z z%3G_s<6DBRB1$(0t*hVjeCb(b@aut#>^`YF?`8FPO8H|GxrXN`+${77t?|u+PR}k4 zbVW?A=#Dh{U65yTs{J)1>R7HnwK7YLxA+>Rn~T=XGQKTqysIoRLR0FwNw|Ug3upeH z;teP9Lix@Ib;+r?33lNcM)5FO-aq0SCCFh&G&X-IR+B9HRgZL}eVdNKBue)#T6bFE zCr@0$I{n`JXT5HDWeAIhFWx*5GhmfT_m-ezPAYax)gV~NT<@}-2_GiWaHW{ca3p#U zMyb0in&l*;XTvN?_a0hT<;KUA;VatHU0YNz9*jQay6cMebYR zd4Yk-?09bH1e4t2GdIm0<9S0h1Bck|w3yRcKRx8{GZ4}u8fxgVMxT=2=yJ*&rJIk| zrFwfmbMAH%$Is()9_O#dXr<}BWT-t}_WeWIC*rj$%Ke0VryfcK-Ej3f-gJ0J+(UuS zA3F=xTg^GIIGR3sZo-B>_Z6UZqYqMbI$GB9RGGLDnRdUPt!XT9$*4Nun#9*#xVI?F zBjGFy)%?Ldvf8~q=XSO{;h)IVJ|?EqR=V$2Y(oFHFZn2c3(>kmcK-K0RNCj4F*0;( zT%}VA76TG?ot)0%zD`d4e32NnE;Dxx?{@@&d-58J3Uc=!$c&^JjvE-6GT?Dyn|%|E z(k(*k8b7AFVbjdUlXBZ(eA0SpCu`?N!xx^Eler1BBR)^kdXzjSeLme!SePf4aH@9Q zV|*;sCuC3SZSs`%LnM5TyEp&)x6S94Vzh3Pp=+&$P0WnBRH-(`T1(R3VrjXL!n1ye zr?84<&#^kId@7B^PQieacs1W1g_Hlv!S4<(6TG{V!+O4GHhjN0%HR8F-NQ5B$VM>|PDOJlQ01CXX&{kwRgkP>G)LPwZ6?z<+MTgq`O_Jn zGuiZ9$32hIEkWy+nw=>6Nzfgzk31PsJLvGdxEUDw9$#O@CC z+Ig*O`#x)*Gjk5(FoWFR|NH*G_hs&VJhAp#d+oJr?S1y%j9dG?%f*7_)hj`rj&G?-{tD<8RpNdJ6UbGSt32SNxfYSyj?yIOwlF?4EblEc8yz6l9dWez=36_Wk& zZvWh?abbHe&YIqPziXGBGg3uzQ^j%}SIwSl*0}bfl+oSK=iT}=eASby1DcN=-uUc} z`O}3@o>_$Lsr{f0ZiIp=ON__6M5o5zm8f7t1YtXKSZr zC)Ck@_u`7AU@@hxV*uIW#*`rYNo)P7G=Y4B6-8}c#)v6sc9eS49 zeEWXV^_e#FCFk097wNl0Ecc%Eh5Y+I)<}(?xT~#GuN$@8Bg~$pehvHSRwLB%M(JCv zC;d!cHfq#J+oXx|7D;o47xmeFrh3KWE>R<7B?qUdUzZih-6@v)XP0*gJGN{aGqLh< z_g3`}D$JfdNp*Z)e~XRvj2jJ~ryf(S)i{@NYUnto+%%UWUz}QZO)nL_-_m^9Gue_8 zYv!B@7RlWumOJ`gXNCQ!zglm!96MN6HZ;9x`I}!R5C69EK-uE1p4~>;OmyG6+pCq` z{qDJ3w)YDzUjDJy$y>+ASv`MS{mmS&b%}38a(9d6wkQ%eVa&{?%VNIAdbdt$`YtJ@ zZ1J?2MfYsbRJRDcdo{?$CV!0mlYx^PoGuqzZ2ra%z7uj;jX2x+dBVP`7CTNU!bNiT zh~<8%mD281aGz4$_Dy;@~;@tYfAS7LYZ{X2VC`&obQ z%buU=f4{ONzv|=cIjxVcpVhQqf=KROvD|T;$Ho0Q;?(tXw>JIEf66-FpNAj4sye!R zJv+0SBOeSd`M6|it04pbdNH!zs|)LYR!XtG^v?S1^pNuDFQWVU1kEk7O(b`pSZ>8Z zn-)%~vLwC5#)B5yJH!_`K6OdY^0Qwm&sA&qxuE~f{9~kJ#>N(L_kU|v@1&+htL^LK zJwkTWYL{h;mG2AfB& zx?9ug(`--KPumky4knGc`Kr~Q?dta3aU;dTsYdis@x1*ZvD^mVR+&eJ?QQ?H*U?6| z%A~}fxKY1s#q~FGHM{q0YFpp%A0sv$AAO-(+LC7L!hE9NZ2p>i%*!j=$}jGtm}&FX z&)K@ENZ-R^x!s$8T-~cjql?=|q&$0gdQa&(B}z4z|F(9kcWw{I&ay1vbz3JC8Q%e4<;=MThrB*4Z~+B=?9|?y;gXs_k!?>Qw86hgdF+)bie{ zfPx);ZQbsse3m5_uXt!ymFChPw_5Z_nLDOf`HGbr4SD>1!RPiDK3;wy()YMnZmns) zev&$s3;dYiu*&*uutAVAI`-?q1{qnj`iBEG1MHMI?u;W_YUKNri z-AGte`Q+)#E7n?etMQLW?g_En@TA-gmrbg$Ft~0^sd;AG2Iafe(4o@3K6ToDKe5Qd zd$YW;dC(q@gS%}fpK{nR+PhV*cH3iXFFmukambAsUz;ZVEuLRb6U)t2{_<|8Kgzyd zebc5%j}y+V7M&>CW6J!!hmN_|UXuIkrK&4ie43Z1gnhEv{7z&xqwVnccixnFWmsmKb|^QOQH|iw~RKcgSvw z@(uGnonYHzbi(WqKc6No9rI1@9;N6~rqx4-h%WU8%>DMFr^l{o9v>_F`HSS970dOz z&^e*2!+a&MToi)STo==^n{M4+@n0jHe@@=brYflDt3 z@E!*go4$Q}Gq2y7@ihx{xBGZ-&4W_?>^uvamsU=d#a>G(qd7M`sCD1n(!GPME#}_J zy(Q&b;<9G}GLhU1V!6Y=U-w&5q*LsJ26+o@+CHr5;u*esS8wm7NgrX|^V^}n)de=T z`8daBc*MsuPnP>R)W5d0+TgQxhlj7R8~WglS4#cTBDojEawCcqNvu@aC&Fjz)~Q~B zmg5%KbbjBxXlV!Q>n$7~<~`DA-GPq2?{aNzyY0jHlkQFYpIox*lQTCy9->&1%_Fn9fd`98f<+Z2XvTh=|m&J0M9WUVL(I;(woiydypG)q~{Jwij z$f%;8{jaQB`npY8=^)?A{=IjS$gj)pvhTGjEHX6Kt;Tc{4O%V#>+5$|sMVT;=z1PO%l+(%Q8E zdD0iwtgt$I+mW(u=l81HCp|e-B=@RV?tABT+h$MNJ-%Vo_w@(=2)%t{%%@jVmL%q? z>$oh>i^i*md3d!S`8M`R*<;-uW*%%<b+3_=e+KTb>z8kKrwM!7Vl>DLYyWZzE& zAAYoXz?5ntxi`gfw{CBAj?n!%AD0`>r@2TSva9+Rz^j2X#8qzFo-=X#?U^?qvh=UM^EEc92Co7m*$A zishb6Ti-;#l!l*G@M!-|_5_f9=NgZ*5BL z@u=FS7i$u3u6tlpWuj-X3%6{=a_@=ds(X6BbV&+z>u_{Wrz6Mm_6^^)@y!agrvH>) z!z%iEOs}O{SuvqeqEq8H!$xd-;e0vTr}vh!4L>}HX+OwiUHp%b{33nR#d2@GvKf1@ zaloF)HjPV{Ei`L$-pO*?yEHdu()4L%Ub{nxi5eg6^(vkcAM zd-Q@?E4nWB>{8zOz%kXOmq)%Vf7Ze(W=f}C>t_#bQX_Q9yembIJ{w(mZOXj!Yn!~8 zaWwr=^xgTPi5H%`j(Z~Z&mM~9j$XL6euKMtrH6-Z?YU(|uYJ2;Y`Sc7!1rOmA4T`p znZ9AN{f18k7H)Bk*lE3GZ+J@Ef@@lyt#`N1flSv=EO29*N~f_|G}`rSzf_ zHCL=nUR}C^T}qw}-3(5=kQ6>;EX6DoUx0iIzxcuY+|a z;q>`(p8q>6K=~Ufi;PkPNhHdG?C+W-(mT02AV#4KlB~zO%*w`pM+$Sa{7+hd+7&Id za=G%NR77Gy@Y@pXjO;`$E$5nJf&W`AK;>Q*7^R|p5fPQxxt@vtjcKKHysyH}4^8}m zt4&TH|KFI6nd(gW8>W`V%OaGLgxXvmpK0J6LXHLg3oSrpTrH0nAjc-ExgP&BJ_z|e zc>%iS{C?j8G-S2#X6M@`{yum1IjC$j^<{sHC^1l}a0tVOIC{6ZAv+US_b&S}{5#J7 zFUsz})9^pbP3a9&%hiFn&TIDnuiwP!5*6tVU3#_Pe4zhqYX5giqq_J%`}?1d;eS^D z9O*e0$gx0<1#&EqV}TqCajVTnS37Ho@9wT5IhO(2vfDAi4$69iShb??CTpe??D#esneiy~_pk z0_b-Spm(_e`g=6=O9$vS51>6y=RWQ!PTI4fJyYc`+*7!G0G)?I;VJF(E-$}9f6-Gs z;FrHajH`<`(wb?iIX;Sm&TpYJ_UJr?o&cqbbS51s4$^_*Bzs{?wZsa*UV2Gagr&1a z={zes+cp{02vSf(3<)nKn?^0AwVdg0K$N9 zKnX+uv~MvAz}9|Ae*jx&B-k1u!8Tq=3@`xr33LQH0PTUI0QLt;3Ijy|I?ul{P!X^L z=)9yVKskWU1}qOy9+d$q0k%LXfX?TkGg%4&bhdm!fX)xx2y6oAY{}KYN?;kV6j%bx z2NnRc0XlDc7BCZ-4*UU32BrYxfKk9`U?eaMhzEuMaljy8AaD#g0vrYQ0|$Up0F|LS zfG1EFs0Y*s8US7Zwy{Wj0AHXX&S?1H*w4z-6E%cv}I@0Xi3n&XJG;bcQ>f zgR&iA76TK3F~B__9e4oz1vnziSX^HK&w+=)Bj6?Q26zm-2A%*niOQIeqm>39#=3{bvPd8Bf=0ay>L1J(jmHY|Yh zfGv;KfIt!hj864OjtWhk`%>AU}`~$P45Fas%an zvOpPt$}p8JDq~dEsGLxFp>jp##1Wt}Bn9jNDqB>BY64X5ssmK!sO(XBtPE(&s2%Pr z0IPw?z$Ad|MfGI@Fdm@%9Rnl+WLv6#0|BawaR8-17El37AQ%V&0s$G&2j~s-1bP77 zfzCi%pbgL(Xa%$Yngh*%#y}&0>MLb}53UUXUx4bZ7eMux-qSN(n*dD#KcFQ*^4bIK zfDS-MpcCK^bOpKq-GE*|KcFu_y3&0BK<^21APi6dAwVb)4nzSFKqL?i^ao-9N}mQ$ z0|S7;z#t$2AicG=A{&uik^!>8NMJZXX&(lR07d~xz-WN@#sS1fVI~5USH!ypm=2K5 zC@;qYtAMG%NZl*hzB4bal2i0DLH0g&xx0)GG`R~x=A?#V{i-8n?_?8080c{+l1I0<{5bH*CDwC8R@%umVydI!567~Xj zfjz)hU<+UYqyoEvUBFIY8$j=N0NeR{Z5X=V0Z10%d81A3!|EfrG#SU_WpSI0_sA4grUOvH*oS0g${?0O>^WQ+)J}^ti@9Q#vSaZMB)zu6NR*P zlH`SX^Fi96QuV(mMt2StD1|{G8!W7vXkR-?9#F$9!QH{b!G-hJ$kqqdi?(0&X?+nq zo(|5QAZbsHs$r?HX_oIx94H=$#$7lw$fmMa`dB= z)_I44;)(RQ)zzIX)n0kCx%IM!Q$PWOE3^()%Lm9KHR|n?hnGxxm3+t2EWrg9bw!&7 ztqVZ6DULlRRNLxRx0qQ7-jv6iFoi||6G+C)yVBLNOTqoc%)Gsv9bB9poRo4zkKddI z7oMaQvUr0dWa$yV$>62jPS_r!KJIzhr5NnSSR`s0$J6m~qp^jjgvJRxbjood@RXck zAAft@_h$k{t%+C0ASRy$GFL0_BxsmM8YfZ_s+BIl}_ zbGmu=G2eaZb>6$?W=Ot+2f}7zQSi8chsxWoVkL_7o-}*7r5OsZ6UEa86toSATYtWI zo8LCAsz6bIQUR0>b6&mjU3C73KuP9#uDI;_IpJ+rGl8-c6w0UEnhQb7Gw;j=%0XV* z=Bk#xot`8W6)5RE#q-Uec2+i{&kGc4m@7frxJlpVrB*KdOrTT(r7|d=`piyno0s-e zp!k788a!%PHSdSUO%4l`Kv1fH()&bzza}k*To5RuL9qj+PW5%3E?>_z6(}oso~gsi zc25}ap@u*?$;Z?A&c4N?-w(4DC{ID5TJMvmL$E6OM36u+w`9IsV!46s%pMNDoG4H# zfMN@t;jI>iKVOx(WYyg2x072G5-8g9zWTPSP^Hqr zE8|e-P_G>7p!G(zqV_;NrumO8%c=|p1x+QDgLF`+#Mi!@qBk7p_3KS1eC_Rs7Xx=XN`M67R{M4Cew(a{k2o(K(+s14h z!WKqY{a(|?Y#u03E71)ZO0A1}xBr^;=GK36y&3iB9YG-t(vxp$HnvU6%P7uNfx_9T)xm`* z`d*E>8Sm6c=7NWELESpszhC3wNlY4gRE%dqL6J-BF}mWwx?4XU;WY3-pRp4ZN>4rK zR-J8!-CYX`btbUrHBdb5p!!<`r4fxG44 z>@Jao4M6`Sk$h-3-OBe?%Z8wMIKVn?lE6@zG8~k%4~99lF45~6DDZVCr9U8zynyxz z%H6j%ZYJGG8sZ6(2gJ}=YvKrrTe@x9QN{!Nzzah0Agw1Z-sJy%$XS0uS~*b2)^lf9 z+1qB?iua(v*`au9f4DTy5! z{K%nQj5{cNF7yXaRm9W9w)y!Ae{Vhk3SUBIfI=3H{9N}_o3M^$7!UI;mw-b4Xa)28 zeLB2)6%7id6uPYeg=|pVX5+4blOks^X^079E>NgvvK!EHgQ{4|{h&BG)Ftcu>hozm zE~;?Ev-!l(sf|L`R%OyypA{sRM@toI$@R*otB!2`!k0;7w$2Y8(rv%h<5kTz2T=`% zX5`%#<)wMfkWR07s0gK$d~)cfln;oc((9VHYMU0VdyeHPs0-!5Lpc|><3pWX^;%G# zQf{M+X0F?>@g(r^WX@9v&KudS`@UDX=G}Q&gK6zdJ$fK0)G~GLaH&o2w%Tt;SF1k3N4{NLVvJ)-E2L_o&ezkIgJW27RM}dbgy`U%}6dK8g-tEVK zSEtni1=Wg5h&5bJipOz<_x?vo0YgBcGKzQ>fkIjztJya(Ha*xH6h5ACc|2=gemtr4 z{vS>8*^J^&*EWs=?5pR28ly`WC-C ztKPo6ls{DBL5To`dYSxByO#4=H2w?YVHAa09)|`=veLfmjZQ_LT@`qiqG_SrZtHk( zN$Iph#XvzHL(={Ph03+xp}@e?)!(T=pRc~#J-ONs@1DtI9X5K$Y$7O>gCl(|m1%kIcr#uDXdN9B86OxGB(LcmFs6=G zuHKBo(qpivWw|}GCYPQI1s(+qnkGHK;$aStLC*nwlarCQDm%S%<~^<9zL5%#{tO1R zraA)MGVhrR*XH_?JKNS+2X5{pxa;gLjUCLZug!diI>H*HrAbi74e?W~0crv&3IVtCpx4Jc~vR9tZEtm%I z9WwQ5pj+lCHPE_XPKxUGuikB%12+d?Fc)AS%&ItY={elp>7V@Lw@qR;pyo|76%?|; znc~eGE`1;NglWxEnt6|I#9N1FhmKRvS0-@_5KlQ!rlcM^q^RVaEO_g?K%v}aimG&H4&tIFLzetDDMM?qS4(v!K?+S3$^w|Lm4(9|jqkf(JpH;C9X z_X6I7N+sUeXKB^JBMRGshh`SgZyPA1+?1-3vXdRVWj;1DP#35rhsK%5^Q$y(FPeaJ zlNj*0_?9Abk829-U<2!n3!1)h_l*;nnPaUB-Y(`T`|Ri5sPA8@B`D-|qMjP?Y0k{s9l=oPWO;Kfg?tp;SRPR_h}{C23yo_HRtHaSsKBO`zl32q@GCTXu8l zd^-1P8aI;vhL$2XN$G9K0*WKwp(6D-4D!+;ks;C{=CPHiVp59rL5 zw=a-Z6w*!?Y;&o{*4H)7&B#GPlPKwkf2iFVou}r4HYuA{Fdk>}-+r|O%xiGwH7oPhGV?a^KU?cF zFYyLvFjyO(c{}=_)h!<7l*&%W2g}2!2mILu`2)`%1xup;g~J9Vg!{trYs=^Dg<6Wb z{VOFMrK1VtN7Und%PpVF-3{0rgBq|J9MORD6RI9r-l=+- zFiTDYvQ9E6G#~${{XmO0{mL{`${+pQM%kg+A}6Vn!FtN#2~%_Dg4R<7^zkaS2G&8F$XaCseWM50T879Y)$x&m zl76=B>dfm>;Iz3}DIYG!GSk{AlRTx8SQWg~!Zy3F^s99sbq8lrqPT)WtyrUW{_WaK zn6_82bt9f)`zhk(s#cZ83X~3@Q2+BhY|yBD^*j~|(qy0%2BqcJpZD(cy5}!YRG?6~ ze*R?6oKB91T7yCjDQeb8P>O>h3Eq47<>dai7=`txvq7lgCI|2X77!iJo`$)J5=64~QP4DJWE`qGp}7PDpM&6BJY{ zYOFefLRud!TlB~Lr`9yyW_8EnueS-*QtR656oXQ#M~?d zZ>X*%;#!P&>dRy&T-wrjj%M@fxJst;AyP{nxpnT`kH0`+UO-*l*~0B#FJ95(_+YLt zVOrzdTbWW8B>$#7^u0~bxW3?_u?#Gl`PUcyl-igTXvA419_us}YK`RW%nes;2Unz? zmU?vb=9!m++Gzghn^B+ZZyee#vK<2+Z9UDj24_}(umZ(k-KIRvTmyr3j(Hn~Mu#*M zcgiFls`Un23f3NEUQ05o3z&;W88uWFTqITfIGaCNIoA5hmE1IMNq$vkImalOw~5*l zke_#K>HYk#j?aahGi*`gDP0ZSs3o6UJoTAv((Z6bqp4{4ItM_Z(Nz53Td&>p*`2^s zT-+r!n{qt;S_BrTG{*l1(}1;nzMzx=&*#GO@E>lcX~qn*A?URv4V!VbKK;k(^)=iI z&0-Wb63>jsDN_yHGRadaJBIU=D2DTgD8Fxm%rr3G!e*zJSt{XL7wwu7!FR#B2u*yn zTvGR=reJ~iX|w`@ufh5}+I1Ul5_xd2JWzvGXLfg|4?A@v6%^DS$_9NONz3CT(I3lz zf;NnN|HiF24_{N-<>8m6R=b!6ScBm#84C*eVpWrlE!$^zmUD%XFfMvdha_{#vj zFWL?37~Ja9YPd<%Z;bSGKV=qY_2b|2`|>s@)K6;*TEpaQXbBTbN3<+3Toxi%JF1Y6 zF>1N5CRCx6#l}Z!U+4nx>zX2?Bcy?$^1yI>>j}byIrq1@9J#aXLp7Rcbv;M$hM*%* z#XBH$nA#yq72@~{pQH5GcT#>ml!GQ@pfBexJBF!!sZ5fFSX3mwmj*>e_>$uqrgn^0 z#)K#$r7R4`C>6hwhDJq&RIxC;Ocmkbrbm)R2C4AJ+zisd$s(mO!Uy;Ohb@#gF(2oDP%~XfuwO!D5Ihxu?8zJ)WeOU zG8l(L3Udh*wLXZ3}A`(?W{YXTle-VLRJD?wl9ywbP=`}|}6ncbg z3Fq<@t-n-g4uu#DQU7H$sF+-%YbX{SF8E2w61N4j7S^ zAsl38c!oaonZtxWx;RNC-2-^(Kk$+l%B}Zx2sEk-7YI_g8!5T6o>~d~h{H%yv||#o zCi~05QcOb8_ciE%Q3ZSDC{x5qqse&^-U#lhp?3yCk{hIzC(e5Pm*Q|4s*En6_N_Ri zu2s;5(!CMI%e^CKQ!g0nI(`Wlp@>#{xXG1zfiqfylgW2*dLdcAuJ=x?b);M)IPO~G z@Gr&TqN3%IzXsI46^B&EL`JEl;y0qEL8pn(nd!X(qmi=mYhV;RP8JwN1t;q=C@*wE z*eF0Kep#2IZD~bm{Y`Cjc7rmy``?ry$`42pJ!MmlHdR_lT*Lo+_7MsbR1zM3QzLOX z735?`AFj5bv_OpR{x`MZ_*mW2N#Q)`-?L4InyZtfbyc$?i?s|oN$e?GY11}5I#Jpe z*^Wj-(=Uo z9p0Z4HqExitT1~5@q-^_wynl>LNvHEju}fAJ zFAbDIJbgZuBJ1%=5fP)p|5y$k%Ehjc1t2gN8J0OoV-=dvs2B}~C{dAkRz?LOr~_M8 z7NLk#M94IOp^-98j7p{?vy;@QXpJHY@1j&jN`nvx87VxVM%2YOL>efmoy>X(S^3pomWY73Snk59(%BqT^a0$s z6kS;YzwRExOB&vSlPyVI_Ve~k(ctIYv1SPx>XOBRKK1kn>BHr=}E`5dHnMlXcrC9C&F494$#1vh`k`exHy zY$q+_Vs~hn=nFrRPSdtBEbCAkD>gzPCPK@>YP_jJ!|h>We6-P5%5CnYsM+2;I8Jd! z)5{!IvGc}6{qh!>NnQ%X8j+@p5i)f5Lc7Inwq$NRTh_|%Sb-)No-vpbt`p4dSu~-K z*i99Z#k^KjBtAWIwMrfsV=9CAFiZ-650g;AG;R_@-ZK;Ot5eNtr73xAQ6dDeD>$;? z+NcpcLd`lXQw3S%_Jc|EBxSqSDXr>Id4LQ90UE_%IBF!r^g=?Q-Wyi8Sc0_#HoC}y zNES{ckUg_z!j%13M}*c1%-UPlFtFB;Mo&_1x{Zxmytcse&ICYr`~YUB$(?idl3F(71Se1VKMUC*_Abb^S3dFrNy zA2<|(k`gumjtSN_vQKlI^UB82Qf*t#IwOvtH^eoP$jq4#XXZpCpL}`a4U-`yA=S`p zI4`Eho7^5`NZ@W*(`3rU(C#M&m-ZIA)2Pe1?!V4g=xI)^6;2#8A%#tv=;le-ObFz# zYnGC%HM;&@fG z)gQ?1|-9ipF?XA#e8cB)R2H+JxLU+Ci=Vtb#T;YecqLc&VFk4iF5y9eM5G;Po zQqPhhP6){GEYv$}YEfdE5;>UpdSqP~h|%4%oH1op8gAp*L-6r;Qtr%vY?bvaR8(CZ z5vGkvXVEOOsK#q2jiUm>uqvOQ<~3plgW(}Q13&9&vRIc{P2pz6xk=<`NaOFQ(3)OH z!mA__#92Vfrq>}&{3vulhK3!q^Ae4Tk@WMjvM@4YhZUI0W8v$A_S**^0oO1J%JU7S z@Hr&}GtZckhdZQ}%AyrqVhwyUVRO8heP|IU!vHTgB!WMW75^&k+$LdgCY33pLuE#d zWk4iqAU??;UEGcF??cQw283j=8m%!ml3`h4hdRHA6lum>DyqA`7me7sh(Y`)68?KK znVMR4vnEAcK8RCPTv+37s`=8*dxKebj}8?3gH4ofy(w<+>%GZR=c2Pd_;vTJTVcai zU-E>MiU4e7aKK-F(1@R7asFC_0^?OSlWxS)LLin%EeGpk*g`T|o@PpjE(~Po?vX^( zt`Rc}br9SQ630(PW1debRbgChtb_}J$U-^}4B7apXv|P@BVkjLG6saSj4#+^DRaUx z`yCmBjV8uMl)5mGqq}Dl1|~}!I~@XS+%Xa8r%jJDM046;6g@#{epqZI|Md$EM4&iP z@j>J++*(3$7<~JT3{n_Ny@Al2P@YxjB2_Vw^wkqCh}`I22fcF6OGAlgwa8Rm6vqNq z@gqwj%M&(_EoGHKBU6VPF_>ORNYs17gqoUHqUzkA5<*vSuuV_KM*#de7nB6<#0#*| zI22su9P^v^jII{t!axFdgCa@$-;GCWpcl!|Ig&K`>W%Moth3Bo(`-O0HSjveMR>@z zJgpDJu33|!^DK}k-95}~dQMU3M8PUNpbDC{ux>*gSatVO?u-n|99n=tD;A7ZI>x8t z7kG^nWSv;B>F#MPN}srlmkHjR2P1zcZPKEI7aMkX#XV?<7w89 z)o9-US%6&0CMoz^J{+dcBGtiBSnkGg;A@6dEmsC-ArxEQ&Q&~o>4x~eeQ7phU*VArkQ zTmIWq#kTlZ^h%)A=w!Da>@g)e-=(7@Xh5HD?qUV!id@hQ&gD&OV4Qa<` zv*`k2tlF~*4Sh|95m`55*6^IHi!`l^cl@V?U4kR<!m6qO9q(kY3&qL3(h5+&4#6minQFMh;u6Wfkh9mA0& z7y>#uIXQcHdSbAlz)=f0S6CyLE0OCe%C;!1ImF0T5fj0_1z=sGT!s@1xKkFS8RP~T zo4GK|0M!f=$W2G@h<3o+%MJ=dQ6s6<9vB31+FOinO@B(vkR&i?c;==JOf|oTEJbP< zFd))|CBvrtJ#jWbkob`eLb&XzYw9zvt`b0o?wpUdATcjj{a_G54uK{aY1S+do2>_BLx(SJzT$ zn`TH5+G$P(%YA%((L{x_Rlu2^Z=wqWA-a1u;bf{D@@nXM3<%KOixT1+rcwlj$YbS7 zCDCaGDeEUhuaSIit0xhR)MBxy3_P3(1sQO2QM)o8wvMy5bdlHaqQ$Su(K;mpGiycK05CQf>-OwWUba27$&0&G2I0i^l}ip&f{TI ztERO7)q8@7Uth8=#gwcJEfY=Ga*ZHsefV{KMl6rAL8mK%jlW}^hSp`I2AO8DO`eNH zUzgn>gk7OF%`b!3NW>Y`)*fc0ofqQUaj^?5YC}v*HRg3=Kn_JsgveSU;zudmm>Q=p zL9XtenO}SAMS)DuP3{2b&@$l7@eZ;_QR-my7 zRv{2X2oDg0!_8P)qhqji1OC0SwRXBN5Td)MB}wouQE1qSUic@rovM|(y{vI_{t&Qk z!eL+@Zr*mDy3@dflh3q&$58uM3m5S$5}EcKG4UVc=BH)5z~#q~1AmsA5d z@jrUw#Ovp)(=#TsB(iw5>C>h+ndh6O<2R7bPW+j1LMlan36e`rMOq%W>lJ#QSzsdPd(x7xbLR05IR!bR#5cLsbgsqrah%$zmNfczXg~U zG8U=9n1?ao_xeJZ`-g`7lx)c3R$vS#N6HcBWAp`sp|KG^qKr+fZYlShMvvY$N2;qP z{pVsEE33t^<(Yx9wV7!0<>OFs{nuZnPVE!(uVeD(eg$x`j?7~At4TzK+>g|f}NO83acHC1l4(9SGQZC8Jz@rYk z>K>v--eR`Jbva?o8F>!63Z3lVNVQyaifVK+ii9-;WFt)epMBJFBX0Brc=bX%A5VyU z#gosI7rH^o_u?MN;nxx#Q1NyA=JKXFw*V}qOW|T_9-Z}ohJT!O^B-CZzcpv!wF@)c zRc49n1PY4`WvivE8gq| zP9(*pm4U)gK)=meZ?o1hD@faVD3W^gU=-&?Onog&_!0<>&`gQ_bQsOj}NNe3tCk+q4taQT$Ch0{f zsILz|k15lKu~B#6Ot9D6;m~GAoLVM{UN~mR%6&>MEMWn6XOzYVp-^D1Fv-OH-szMGynhq diff --git a/package.json b/package.json index 8781544..a53b02d 100644 --- a/package.json +++ b/package.json @@ -5,5 +5,8 @@ "clean:cache": "rm -f tsconfig.tsbuildinfo", "clean:dist": "rm -rf dist", "clean:node": "rm -rf node_modules" + }, + "devDependencies": { + "npm-check-updates": "^17.1.13" } } diff --git a/packages/example/.gitignore b/packages/example/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/packages/example/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/packages/example/README.md b/packages/example/README.md new file mode 100644 index 0000000..74872fd --- /dev/null +++ b/packages/example/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/packages/example/eslint.config.js b/packages/example/eslint.config.js new file mode 100644 index 0000000..092408a --- /dev/null +++ b/packages/example/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/packages/example/index.html b/packages/example/index.html new file mode 100644 index 0000000..e4b78ea --- /dev/null +++ b/packages/example/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/packages/example/package.json b/packages/example/package.json new file mode 100644 index 0000000..c814829 --- /dev/null +++ b/packages/example/package.json @@ -0,0 +1,27 @@ +{ + "name": "example", + "version": "0.0.0", + "type": "module", + "private": true, + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/react": "^19.0.4", + "@types/react-dom": "^19.0.2", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.2", + "vite": "^6.0.5" + } +} diff --git a/packages/example/public/vite.svg b/packages/example/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/packages/example/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/example/src/App.css b/packages/example/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/packages/example/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/packages/example/src/App.tsx b/packages/example/src/App.tsx new file mode 100644 index 0000000..3d7ded3 --- /dev/null +++ b/packages/example/src/App.tsx @@ -0,0 +1,35 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> + +

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/packages/example/src/assets/react.svg b/packages/example/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/packages/example/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/example/src/index.css b/packages/example/src/index.css new file mode 100644 index 0000000..6119ad9 --- /dev/null +++ b/packages/example/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/packages/example/src/main.tsx b/packages/example/src/main.tsx new file mode 100644 index 0000000..bef5202 --- /dev/null +++ b/packages/example/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/packages/example/src/vite-env.d.ts b/packages/example/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/example/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/example/tsconfig.app.json b/packages/example/tsconfig.app.json new file mode 100644 index 0000000..358ca9b --- /dev/null +++ b/packages/example/tsconfig.app.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/packages/example/tsconfig.json b/packages/example/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/packages/example/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/packages/example/tsconfig.node.json b/packages/example/tsconfig.node.json new file mode 100644 index 0000000..db0becc --- /dev/null +++ b/packages/example/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/example/vite.config.ts b/packages/example/vite.config.ts new file mode 100644 index 0000000..8b0f57b --- /dev/null +++ b/packages/example/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +})