From bfdf68c66d368a16f10e603abea772c76ab27f37 Mon Sep 17 00:00:00 2001 From: xxxhussein Date: Sat, 9 Dec 2023 21:24:18 +0300 Subject: [PATCH] init --- .gitignore | 10 ++++++++ .npmrc | 1 + README.md | 38 +++++++++++++++++++++++++++++ bun.lockb | Bin 0 -> 65067 bytes package.json | 31 ++++++++++++++++++++++++ src/app.d.ts | 12 ++++++++++ src/app.html | 12 ++++++++++ src/lib/index.ts | 1 + src/routes/+page.server.ts | 48 +++++++++++++++++++++++++++++++++++++ src/routes/+page.svelte | 33 +++++++++++++++++++++++++ static/favicon.png | Bin 0 -> 1571 bytes svelte.config.js | 18 ++++++++++++++ tsconfig.json | 18 ++++++++++++++ vite.config.ts | 6 +++++ 14 files changed, 228 insertions(+) create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 README.md create mode 100755 bun.lockb create mode 100644 package.json create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/lib/index.ts create mode 100644 src/routes/+page.server.ts create mode 100644 src/routes/+page.svelte create mode 100644 static/favicon.png create mode 100644 svelte.config.js create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6635cf5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c91169 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# create-svelte + +Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npm create svelte@latest + +# create a new project in my-app +npm create svelte@latest my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```bash +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..332e5451273e79615d6c5253ba0e6ae70a9c2805 GIT binary patch literal 65067 zcmeGF2{=_>`#+8!9GNne5@iYzGN+IsnKL9LN#=PTQ-)MTiOeeVkV49=RH8^iQAlM- zLWUAer1;$n`+4v0b3O0ptxx~!bA7+pzx(RtK5MV_dabqYwf5R;?{iLvn@hyU%TvVC z!Bxb@)tA%K$CVne#o5iu$=1QyW{a(xr;CO67GF_nQUZaX6kI2w)F>)TOV@cvtIkTZ z<8a(j0~;ODo8_{@r;g+~C;x;(V0nv2SzcqtuvdFchg+s4Zqz4o%V@N@_70M#%N z2*C#6*MQ#zo)Nq$8G%3#-rLLB!4k>|!tr&GP9-4_IKeYQniaf1q&I^92_ET~f!_dr z82noBJHfMqZ(B-pFQxB*N98HNqw=Fr2OIb%@EqVPz@zr0gJ%ZsW#i&&<4GW-Q4t96 zFZhUsv$F$qB_8r=AZ_L5>;~C{cxnP+C8S5e(}CXsnJE7?q~Tw182q6H@95@b1H}pI z02W9?TNjS|I(RP}xAn5|wQ=?K@^o`{_JKgTyLowAd3h0RKos#!z#~0Z3s*M>YXZT> z%hJce*_yB(g0~8eQ-WU&{xid3Ki_~y#~&}HZ-Gboc}vF=mX03-kK*RElr{j5`Y*q9 zTo63sF)!tlgGaiPFjy#_ufQYzL-43vDfoprF6EzI%J*4Hd->WpqaKUF;G+Jl0gvK$ z7(D7H<&s|q33U86G-f?`E;tTV2SZG@czfE|xLCVxv9|EGuyV7u+2Uzq4KF-hA*SD< zJQ@dU8xJ1~X9D3Pq)|Q3!K1j7!{Ecq;LGp_we#vynieJlO8dB4J6Jgo2&s^UCI|CC zJJ9&sIlEbU+V~N;VR9ioF9%OwsE*+6=52u{hKr|*gA4SlXDL4l8jt3+mxcAh__}z4 zD43J8jSrePHeN1U;DjVt+xS{I``8ey+}xZTpd<~{hvF~+d^Atd{IK;Q5FT+Y)>{i6 zwa41V(#H;TT)dDffshQxH^K3fz(ey-8jhj%i-1S%IH&?5LejWC-aCbjKAk0H~)UG+m zNA+56Ueq-JkH*8n)!xR_!Q0Eh)z;a;&ffd;lD>te61}!J#8$kQI8Kp9jIQ1C9fi}I4%~hM_@g+vPZE-=ha5Z zMO_uzmF+GSN7+03E;mQbC(rCYOrojxshhz)SN_Hc|FQJfwQJ@=y6oRNWM|RcShY$; zHN7W4i}}{{hV?TMgA(+eTtxbeK7-;n6Z?A-=rqfj%?X68 z=<4JV`R@@sxr3fv@TsWHDv??>c*%d<^5e>rd0FbNIm&ZR#GVh~;oX#K9w!>I=2}gL z26J?Y>)Bjr?pf@rnC)r1o$hsST4?(E!}nQvx6DVgPuTjd(HPuE8_P5Bu`bX(<$3e7 zsidM#)&Q<4`DD*%=3Sv-kLD*jFsM;|_q!2&f;sd< zc<&zPSL*bacE%jEc>HKwi}JW&N4961Q^`TE)9Q0&mv{oqbUAo7-s_BD;FjBUnBr5V zlvZ;^W^CC}N=A9X8zk|~55ER;1mqaT)egp7S>jzXVCdKxSJe16v*ch;D(ZgQ=$iUrJV9kmCnR z-lwll+Nz2rzN~e)x#NoD3YVdKgb!+)Mo1NDnUzPF{>?R_L=vsb=Va046T<%bk|l2qTh+#5^mx08uXTqn({GZqx-8z(5u{)b`Tiv%AMjNL&$(9Rdb{hhR52s!42_etC=u_gxZhw_+ zbH|o%+&81I$QPVfc=7F=byddO$qm!NG-Y?M9`7}mGzgO%2v@)4daa9N1;vrc@~&43 zw}Z?ztY|i#Hhf92t*(0??a`gQrgD@u^tMy~T+20nN!s(rnr#&*#VO^hdK`n;%RCZh z4!O{}lTl@b*6Fc zKvBb)TA1l%)MO|>nd;i{T>Jj_;%j13(s#JJD~;q%oHf0<`_b*6ne`MlCH)bnU&K9_ z7SWG;mh)Cj|2_Gbd`&uE(9Q9LtZZhB+hnH)Gds>7rTbbF!~I1;-#v|7x%2*ow|CcF zk2*<^>}P%SAg8RZqx|_fb&Z(vSG{c~-@B4#*>ZfI7adArJw!vlA}XCXSV%C`#!|qX zja%b+?NpG$6Az6ctz)*m_fMCUr!4k<_qwh78+>i#f?+^3r2M+{r-iTlM3T2|!O3y7%ym^NXW`kcEeg*4VSI_=c0T~~h6 zARx?mRY7nbZ` zlz>a`vJK-0!V9h6;5Pza=QsGwu-{hw4Zbt*6_)sL>0P#A{VxDMT>64hdIbPG{!c6@o{P*ThI`B_{f+tK z2z=NY2SXSLFck@KIxWkv^Y=3FWq^;?o?kJH-w%8#;4imctPYIN3^yP0z{k><$IAVk z$I2N3AFZFLesm0$!(|!9&j7w6@X`7QT_G%Y9mM$4z*h!7P#5aQj-&K{Gpw8%++3ml zqq3;&*m0EpZ-$i%1^$ku_M^6=I4s97el75ofRCkrwf|%*2?V(13r2Gfaep=b62M36 z7gj%A9liV&sk7WOdc^*RU z)2h4_KXeRh$8!0qz(?l~ruVD!=P2;e`Ge-|a=EB&SbY`1$F5(950`^w8OGnRfk4n) z>OboHulC;-_^M0&|DVL~{!;y@(Ww2)jRDsFjj(A)^`6U;G_LNia$)H zUp{}Y0$*;a|I3XXY8O`j2=HZqj~$~zFP32#e+!&&QcHYPKX&||B(QQ;z(?~BmH(f# zKOOk!{u9&t)$tn!K3ab;-g4W3)yDxJnn33t#>4z_`>zjtG=BfibG7mF78aKzkc{p+ z^HM{&|KIhn`lEr5&L5Qim1j5@|0VEI{80U94g2?Y{CmAv8sk%Q5(vUeeC!xj=D&HY z>~`Rb10SussP13AemVjl&A;Wg8>(0^to{tnzn)*AIe;BsEcN$)v2vZjN8^u5F1PKd zEXJqiTHHTid=!V}7{*rt{ywN5rGI4&$M|1?kF_7u_?7yVH!jX!#6f!p>^%A>4XplH z;G^{i^&4?X{)xDhkMWyj{lPe zR*s5yas5L5Ms5Gq_DgK~tNwqg6Q7UO9|(LDKdfHNx% zzQ4{tEC$Qb!1#K=SAhD_yhF#9+Xjpuy;MI+QviOs|G-Dr55z?pzdC=`@h{##VD(}i zr2ea6?KcNLcKt#zSgv9GXyD_o-`Meg(!t8r0Uxbj*tv%tUoM|^^WyUZ)Nh1e9Y1H_ zWBVsm=dZ@^3hfsSs6rv{YM<6NsC@A!?60# z;rMVXw`{}st-x1;`cd4lF&U$lS2($vc#Lm8~RI`9>NkHv49^ndX)m-x$_ zx0pUwe?Rb*pnk0Hn8(WfoyYh>TmH}Wj&0< zbPg=XFg`16{?Yn}(*KkBYXE$7{vj?hOm{K$_kXc+vA{>|N7o-@zZ(B;;41?k>-Vqn zH;XLxAFF?{761GfYrhrnvFi^SgI}#b3HWIJ!}boC?mx8vE7t*hbpB!EkB!4}`D@_f zi{g*;P}_gC{d&Mh`xnGR8o#=JW&;FITuzalktH4*q@qcyvrht#)kLmqt`^Dhq3wwToxW8I|D2~6}YcGlc z*4{h7N9XTy>;3omk-+3Ze5AMBxr?uVAMiDo_*k2;I{ur-%4Pr`iyx|gx&6TSUAX!Y zf4P0Y_*-G|(Si0aci!XsL<0$gwE(WA47^8e*$6V9291Y(p39KY5f7+q8vpuw7a3aM@n)aQRy>yhpKtWpQDS!RfJ3 z4yM_H;XTrY@GlthD28w^xUdevIk^xUJ@CkoN9Fed&=?y6ko_l*;_0-I`~Q}wg*N*E zQ2+b^sJ{UKWXPj*;F1plj|}fo+=J0UuwVdMPeK96kVpJeC;^5%N{0au?=%1z@+chv zK<$VEAVVINKZg=v$fI&GC;^7|h!?+b^uK$gm#|dsS3DJP(g28`zT`8&Bg+7wTAVVJU?=SfV@W_xy_2&w-@cH$=n=1DDgB>3%I{pt$9tsHwR9YLRPM!68hLU+F94N$4M6r9fXekR z`8P{`06a3hN9EoEkRJpfLmuf31JLnz0A$Fcb2yYHJam9YABBmF+ zooFjl3AP+4IJeqPKC_ZawRIawV%aWI`^v)CytFE9&_>Xs38MY@t@kMJhW<>TN?$W>vy;k-Soo+(+|GMp`puzHOn%RNoc%&h(S;)^qYs zJRG;0w09PfOcB>=Y;?WEL0kXsf*A;5x@d2M8IhnW#?dpdPJj4kVV1$lwV%pe_nc;I zH#Fd9pWQ}A{=r?JPI0VIp&_^L;nj`aJN@>(y77#-jbkuT_I{3Ko`fjcd!TVc`z#7f z6g-h?SRk0=UfS+^`}f-h^cjatp55XbLVm(l*Ym}1SeDcVtJ1=ym zvub?cbS_(<_MG<1%;#&vj^T9CUIH`X8n=yt`Hk1;lU|CSY^Cgvnk$(&t)CIBT&-%6 z6nWXU_h`4#Wb`Ih&+-@Lefe{Bd*}uBh)78rKYeQ`)tK=kUkZdsV8l>+(OQWav4ixL zbB{#j`>#h1ynbKtC5gt3G1onjQOHWa;Ec>WaVL|wM6Ncg1LK2s;z_NA5jS#xd^iji!eDw!ws(giv8wY0X;ln zcRrusdo-hJ($f*8vbJi~80{6Ffj}R>_3K~r%{)Q(4_JKBeh4$7T&`CC`CC6UWIOCv z`+g1*lzfrHTAL zg_0nI>8`{?!4p&SOzl%{gz{SKUq_7mw$tjd63I0t*}?L3_KThMv1PvgjA|`sUh8Z1 zoY4!J@eT~S{KN8`iSJI{K58zF4B@>$7j;Qdd{NsmBkJ&KxUv11iYGTedCb{2IVjEa%+AsV^l}@i#MvDOA!zS{ zE*&Nco|xUXeZ=NCO_uYDgG~J^hl>8!jx@RVn@fdTI+)c?VYt>E!k1Lr= z-EDt$C4S%IVBLm&5i+b!#E10go(CH@dc3aBqfLea?}HD0-pySw$q+?F&&*=bZ$@#e zo!0bYZSZ%SI>S}R_^v;@x~Z1oe4x*BB4>nP+D-n1Oc4vN(S7Shcj0tVEHES1ORYX7 z5Mr%*u=TUSH?4%SmPe~^x_6YMrbx;~^E4P&B|h{@d;L;Z=GlrS*RGUap8};LzBx|S zd>nE`G@Qf1)*wUzD?eO2drGvd!X&P3GF!rA0IiY>3PKT^j~{DL z$dOFPo2B*N+dsZ8=F9A-$t!*-)7bDtjwfj&_>&q2ojx%(= z&D|CrO481EMC@a!v9)$m*1_-H)apk$7j%gWYcCUC*GP)(-8i2f$JV0LeLZijJ}_U;Y;?vC5)yLz{~Hy@Ji{T3Z?|E=^HImgf>jc>*rlQPUB zT{K6pua%l~{kF?xx3Vkc?t%r~#rC3m8qA2#?rd4boE9Cqo7eim4v~EcB&>s))Y<`` z;@|GvP(Q6**52{CpH^AfzCW!raQIw$THz77 zW0&&?_r{0czjqLI2O&&%9VQB%xG5@?PlxmZ|A)r`R2o}G^agVePks*kJQ(Biy7qka z(Lw`i$LJdVAirDdq=SpB`g|fR4upmK5O@ZLW28GTmlao)OO8s@{D8sb7bDSa-6=a=g>5{0&yij~nJILq(#GI!sJYsf zahxtIURN*ZD(lGg>YR&*C^T7ibJ{qj=x=1Un|+~kQ%`sLitEPAb$290!VYKE4)l&* zO0d-YE^;-3;px14l)l~+IIZpU7yS@#(wLN8H3O|FD zYWKK#OoOn8K|uAzQ~9y6^HDhhtxbERhc;Zxl<3dx9{fpNuG9G%r@H~)-V)XhCn9;4 z^ozS!wFXo#Hw5QoNX!K$i~dY1U}#!9mr`21wk|Q5=7*@ENmb?Q4enJ9+6N;C4<%-dAK=V3=F6q%voq+yNoP7_}s4{ss<8-<3y6YyzWYks`ZLHPVvj1qO zl&}N8Ra#(BljN*Yf>Rz{;GOepCbp-L$x69Be>`O0a>Xy)Zxhk+-geKKpUqVh%E#4k zx*PGjF|+)d4_v~cFKkfaz8=!_dee6)8`q?}&!s*%@#zqqPiC9TnWWG$z2Cfbg(IWU z#smK4Tl7h)Sk=8d824yov2Vrca^rQ$wsz5-+A?6rOSyrDxh;;pe(I!oy;`8Qmta8C z`rBl5TY}lQ^_UfXXBO;W>Lc`dZFV``^;M3kZpYft`Tm1D(4GvNXFPaa5}$f|(tyUH zsR9{Visv6*#=Og(=`t!kKU zX0J#wD=z7x^_Lf~JIqQJcr0C{@+FD%%M&)|E)~1n<7k^G&lP=?zrnid?Usq#Z0p!> zkWaJizmPgTV4`*I!uMWnspmE=87UHp%zca3_Rh)I zDz0uhvS!VYr)bV|hS>=t6?%3nKJ9A(LWIj5uYMRnYc4^tSAKa=%6Uc<&i6(8A)&kJnXGnJ`G-S9R}Ao@hw8c`hgC*<2&i=(D0~rnb_Y zKdIPVr$f7Z1=;;}CsFO;-kl~bT*i#p@gw6}NK?Fj z)!6omkprvg=EYU1%GNZndp2#!9^fiYCHn#YHBIB~)ivBEr3QnB`l`LE^_3TfGF&&^ z4SQI@6A40?E_z=9GvW~*hum%STm^cZHRbx3_=4w|*EIhSBR{qCm5-R{p7GA$i(l>s zee!VqlF-Li@{Uhg@8Jo}ng-exCZVT}Pm=Jz1R+dU5EBJY^cXG995yI?P!d)lYZDad zQ*po9S|@^cXRt8+wT=2At6~klTu#w@L8|t!bFcm+iM1@r^p&?2>K9fG(2TH}k>o7s zF5YjV_dPHp#%wcFsmr4MyusnZ%nrBwgxdzX(!6P!mt2)p0hf{B7B9++!gvE?EC_cm#{9qI)A-IWP% z)_fhUH?7Keto>f=wiWl*p1QN+({8tW{Z}!LS;TQF6$B(a5_wu*FU1+hckRQ1E|Cxn zUKoHG(WjGKEo+Mo zqXUMLw5Og*XYs{VE9(Yc?3D*0wBJz#FM^4JCq_%vDH!ELU8E<5iGnAFzdtxTs5`cXWUqq@+r^b-ylnEuPgq**ld}Y6 z!^Qb0RSZ^TWt`Zw?+oMHbK6q46%Fn>e@*)}=Xn!b4(5TgW$!=(>7sqLI9^xpOjh1V zUPuyck)BY@<8P64wO_Z3Mmj!q5;{;T9B;5s^*|A!LTjL2;Bsc8lG&QVW28MTy4Q7* zXf0Xo2K>)GU({W=Z$W!Y%!sosmF-qSz2?LU_R~)L&$Jaf?>fpA_{i(hs)nhtl;Np_ zmBzgsSKbq1>sc<3JdR_O&G^KZA#(6)@8`;T@e&F{5Q6qD+y|h0In0R0LiVHVhuou# zID)8YZcE=8uoF=K&?l-Vq)cmd^ZJm}&Wok<;u1S4shlO8Zia~3?DkUikldWHzU^_w zLDiRz?I1(~vkb)nT{|!%?)REH!pFF^F<8p8HTGKYG2XVd)w|yHTos@q&$e(pF);nQ zTgsnv&}Ex(ZJ(;8ZUAk}9mNRs)6yzJo@(b-e?xn8ti9+S95dqKxI+%U2ieoTQot8%&B_rHdN7f9~F?;qp?Arz!U??KIYj{MhQ8 zRt`d#E_yzW88Ox8c3Ou1)zMu-)AUxa5@vtyI>*W|E<@7Q$DY}o|M8qrRhIt>&Xp@0 zex@HZmS}%%q7?AB>KfPGnh!0to94!%KnR`3C=S~(QSd~CutF2+s*QDrba!s$_u1Z7 zdbzpw9mk!QhtiL(eX^QMzVx&I?e*8o)V+(oZpkWky#La7@@2ksqh>HQg_(h~zt)28 z;`0Y-yzYxr)6PbJlR#VreyQfK>5;|RR>~sv%QTw^+mMW9Ov})&rbU_K7$7uf`_b*jw z@1@7)5A?|zq;EbydXA+inQny6x3*A#d6NEM<7U5mRQ0k^AG~Et*-6qjywQBhdq14V zLht)k-{;&b4bN^=`VrT-pu2eghSp5Xh;B@3CKo95k4fxy(AD}>a*JnZMkFn>v^`bA z+B=4W3<_Jqsu?!ZKt9wRSTM5sJ-Zq0wxNc_|d#4 zVW5$$=KJG)`+3a<(#jMg@*jtHo}igJm{31L@g}_LTkWZMb#yfCgr16BL1+`^Vl-CE_w3TkzXY!v>plcd>{(y9M;&qSl-_jCSI3s>$ zYkWHoQ6St^|9yDlA*xR?%8uvlzjOQa^y!lxa*b;2u_L{ke&<0r$s4s^^=K3JqS9Al{VWkdB|ev$ zenzi$^@x1h z9DlS^^@OJHyRu;x`Gz)Xxy9@8VjNWPx^t?Gb>>YbVvi}Rs_(VOE9p6vHyC(4GHV)~ z`^rs{<9S=Lq`$$LQZ6F)t<)B^j*CA}8v8hCqb0olU~Kx-PB_}?G~q1@hEIVUu=)psuOQNv-k#{6u)wXgf=qM zPEac^ckw;o#rC4TFlNLF7Kebf(f0GtM)n7YPSoXjC%)DA&e>LXTc!2PaNoFtaO;KYbqr*|0 zt_EIL!{zY3$F-4{PmiXxzT>V)eQ08?w$04*=z*JYTC(;N-1K<{7qqp`4{m>Tx-Z!6 zAx#SL{i79I!o{grh zwvM+C>Fi#|CXu2O5bG}+dFKRem_*dn)V%I&w;;L(W9`+(M8OkNTL=v@$6EK&2&p(H zhqcrc6^Xxc3sI69^WI|cd4p@x3p;=3r>n-Tt@2i1mXO+?I=(Sb{9xErWm0T1M^EUw z0i3Q5UN@>a>{j8ScfD)e6egb6G}PKs3#vZdUv+t)GL3fQIf|RNE3zq=JE^|gtH(JQ zmXBX3Jhvs4fBvl3_5ScU>er`F;B?Wo12f{&ZPiz%!WbTL-TACfskx21^ub7t1WEX& z=Bvf3n^vhyuNvt;eVA7xx%{FzoibGh**DVK7xF~L@m#XRP{Rkz=(>i*VGkw>p6Isg zb8+0GO2OOgYB3}q^IOB(Rbs0($5%#18XPn?cy)U-DbGhmQr?2JaOacNk6tKjk}MCX z^XVVHxu3yIKv?4)PFD}Ft9GwjZty~uX{lOcE{Er#&2-VqTqf`Rm_p5r5=(C9>thk?2R!P8>!BORN z-2rE1ne3=evpMyLb3dPTcW)WGt5BfO{Jbr&Q79@;*H6RU*3ZqQT=vq;>9*IU#f$sC z#d)TWiGnA_>vQwU)QkAdigX`uSiwPEm@}GR#3A%yui5hze(4kUJGBzUMZTG36Djs< zk6*qdV<(e%W+O{le6wtC=_&P(6`+B|*8s1(;l|$mZ`vXr&ph7Vy#D)~)K7jYH{tWP zpI4A@H3s(32KJs@;X-kLRM_uRA75%^-4V@JrIt9ac4p#q(Hr8|1-&0XrAGt)i6HYW`Q8^w>Fd&OxI^DgJnPKDB$2bgjY#j}4q*zru)^8Np5_BY!Pu1p0GrdM-@wWmQ zt+f^D0j~2o9!7QS?Ha*rG+IWS9^=}Jp8a7)yy0o?Mp#+XW;SFwURknMsB7y0n^MeZ zMttJD;9>iSF!#~I@Y{q<5?^<8s$Fkt`Ka*rYURj>GJ~$|_S+5{J1^cBF2?r&CJLT7 zph>Is#2~=+;tHoT4|HFLADKy|XEaiHy8DFS*men-`D0hMyxpAc)<34Iea~c-Sxch< z#kgMl`@W=(cY?#EY%f3qi?0b@SGH^D^Lk2p{kc}JtWSmx2fvfmpZqp)#(Mkh8cJ$$ zJ^F9bDt6v4ou6D?nHpI-%U#@Z(}ptFNn&D8p_53z*ziM~?m@h6@!ZC~o2^|%9&cPe zQdEn7A9|O2E%E15i9@vHEA7WEebo#LcRAIneMO;%DBMH^3%ZS{kCj@8Ub^ZKF0bnQ?4kF8 z`KP=>W=_YVj)=Z4^vo~VNxv=U(=0l7G2KIW-L6}aT6@%GHEu;`F;stQ*mj9H=3|v> z`SY3w(SG3KY3^6n*Gu;dQ8qKIbyuA0@s$XTV4K%CIb3d9MX&C$1Gsn3H(EM*yVKN+My8%Ppr>7OqKBE&;fdGk=y_IFJ(+{f%Oqkj8OGO4sRaN+k_GYw~EvnI%K@ZC7*UcT`oXQoNI@Vq*ye`#TLTvrHV%fxJCheaa6?#9r`u7+g zonam1pW6C!c-2LoHS6;$r?T~^SCCQPxzd=KQ`T@H;OWLz{e=v8| z$9>Ea2C8;nGd|jGGU_;>#U83-*L*g+X8r20^0Vi6u6Z3}$NqMkKRbV;Y@gsZao#<( zlDPKT;dPJR&@K;99-b>^Ntu^;o>XEftFX38On9JiN7ggvV{WY>f89KKeT&mSOWq%vr^ZLDF+(b&JEN>%w<^Io= zao1#Oy>|Q zFZw9g-MO`Ohicd>oURLA_wn{?b^#^c>)mrqU!Bun*lN1YbRvsi$8V72f}vDNf=e%% znA7*zV_u}U6Jl6Z)2Pa`j6&phHJYz^y>fS0#%nZI*m>cK*R8lYPIA_ukL776S%U(v z+?WwR^TxMf;RO1h61y&xT!<2vPCsEeOP{Cuc#V*xy~OsW-G(2!LhJ5+G5zvHQaBuc zzv+h8UDLIhd9935ev`GX?fGDnud5{=Buyy3jog0oQ`W&p_iDGUJeEOoQ+czgL;I<= zr+d~t`pPzVO}O{c>Bnc8;%H6q_bu*t-Ag_xg;%wnjw|jS({3fXOEisplouwe?PsU+ zdGEcT9Fwk_O!*%(f6&?FrIzzIps3$|FV4*!tQd~4$!_WWly=Y^~kS%%kiYi`I( zK0#MhQT59BDNffDuY399$Qzada#!1{ocXU_D2pCY=amb!t+UA*SN6J?=RA_6QW08O z$t(PXpZ^D0A46zk(nLoI*X{8UC3P)E12+7=&kL`ckfrbBX)Xdid06xATZ{3UGuo$hrZ+onCbL%05Xtd)*SFibxu{n8Y$fCB*_(zL;!TIW zD!Brv?#*6Hd%{F9*$Yp0{-x`K*X6sudzVXbA;HJ}xJJmg*JZcD-?8pf<-OJsIiYz^ zRPbA{#-r2qeRGr-3~qQc`UIZ%+!pHSSS^t4S!2(tvjP2=F#po^#q0JOI<63yJ@Dq_ z2FFLr((@f*m2uQY_7Z1Hcyymr9KDygZ}#CF-nUfB6f2QQV^+@*fxRh0mKl~+(P3b3myQht&Q$@x$DV%o@ z4qwk7C8A}xwsSbP%?*?tS{7xKdUsLDq6SHAl0 zJ1aqNuBw```#TTy7hHSMGY-s%B>O)0DEaz#j*dks)-AWw4q!r_-2 zxi_a(?~31U#xoXiu08!*qOO4`)6t^7Rk}MwXU_STlcHyF*gW&cM8Ol|J5L9ntJsym zsK~OxT`5eP?3}}4g9pCGs|;4#M6O(;C~U8p)~*}*XqxTG*YJm3Rd&xLWRu+5kMRvZ zdB9M0cowIN#t<`NQb^tpN#~lx{LK{hv`qodk z(zCZ6U?)H0aol9=z^QOtdynCDe+o?WzY=XE+ZhzDdRf7KJAO?IqiU^}?o9I~^_M9+1QOEMdsniZy%z6aLS$7S<>lg{3JsN3 z!08^x>&DGKa0pVc+*fI`<1F>(R%u^$PXE#E1$I}MU0cLppTp8j!^8j3xa)dI%DPyI z?gyGD$o(D}39h~26Lx`%I;|F`i=N3~MvUtT|9NLe!C8^D4a}6cMuTeaU6ZMw;7=;1 z3E%fcdAv``XjKQ>G*3*i{ct}G;-gs6OB_io^g%#tg}O> zY{w5l6Tg|sv-CLK5WFtaeBLBOfV87Z f%r86g5$u4%(-kiJB9X$P`m|Esu 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 0000000..53816c1 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "test", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/kit": "^1.27.4", + "svelte": "^4.2.7", + "svelte-check": "^3.6.0", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^4.4.2" + }, + "type": "module", + "trustedDependencies": [ + "sharp" + ], + "dependencies": { + "@faker-js/faker": "^8.3.1", + "@sveltejs/adapter-netlify": "^2.0.8", + "jose": "^5.1.3", + "sharp": "^0.33.0" + } +} diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..f59b884 --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,12 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface Platform {} + } +} + +export {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..77a5ff5 --- /dev/null +++ b/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/lib/index.ts b/src/lib/index.ts new file mode 100644 index 0000000..856f2b6 --- /dev/null +++ b/src/lib/index.ts @@ -0,0 +1 @@ +// place files you want to import through the `$lib` alias in this folder. diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts new file mode 100644 index 0000000..75c327f --- /dev/null +++ b/src/routes/+page.server.ts @@ -0,0 +1,48 @@ +import sharp from "sharp"; +import { faker } from "@faker-js/faker"; +import { EncryptJWT, jwtDecrypt } from "jose"; +import { SECRET } from "$env/static/private"; +import { fail } from "@sveltejs/kit"; + +const encodedSecret = new TextEncoder().encode(SECRET); + +export const actions = { + default: async (e) => { + const data = Object.fromEntries(await e.request.formData()); + + if (typeof data.jwt === "string" && typeof data.answer === "string") { + try { + const { payload } = await jwtDecrypt(data.jwt, encodedSecret); + + if (payload.answer === data.answer.trim()) { + return { success: true }; + } else { + return fail(400, { error: "You are wrong" }); + } + } catch { + return fail(400, { error: "Invalid JWT" }); + } + } + }, +}; + +export async function load() { + const answer = faker.word.noun(); + + const captcha = sharp({ + text: { text: answer, width: 640, height: 480 }, + }).png(); + + const jwt = await new EncryptJWT({ answer }) + .setProtectedHeader({ + enc: "A128CBC-HS256", + alg: "dir", + }) + .encrypt(encodedSecret); + + const buffer = await captcha.toBuffer(); + + const img = `data:image/png;base64,${buffer.toString("base64")}`; + + return { img, jwt }; +} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..a6ce7f7 --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,33 @@ + + + + Captcha Test + + +
What does this image say?
+{#if form?.success} +

You are right!

+{:else if form?.error} +

{form?.error}

+{/if} + +
+ + + +
+ + diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..825b9e65af7c104cfb07089bb28659393b4f2097 GIT binary patch literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH