From c8eae3330a07a0e604626a123165f58946965abb Mon Sep 17 00:00:00 2001 From: Rainnny7 Date: Wed, 18 Sep 2024 21:44:14 -0400 Subject: [PATCH] use lossless-json for api calls --- bun.lockb | Bin 168903 -> 197035 bytes package.json | 6 ++++++ src/lib/api.ts | 7 ++++--- src/lib/json.ts | 11 +++++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 src/lib/json.ts diff --git a/bun.lockb b/bun.lockb index f577256d9da48926676aa92d86f8588ab1e892e6..2574444cc801531092ce7c0eae7bd9ff9b9cb131 100644 GIT binary patch delta 46940 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 Onnq&pnM!o$`TqlHome*j delta 30769 zcmeHwd3a4%+y34=Ipl-{k&r|piK&T5WIh>BVvZq^AS5A)kdPom5_3ruEmg|9u|!QB z-oBJ-l@@KasuL~R>Od5w>Md2O)fR2>yYD@aD*e9ix_*ClU+(j)=U&sZp7pG?hjZ*~ zn$!6G|2QuR4YCh-cN7iCH=Jp|*X;rIf=yK<9_yD5 z@l)16v2?0`^;lVwnoCkm9Oy=nnGTZF67mg5SICi-mBp1KCCLt*<#wY5E9A7ovTlHE~X~@%%%zw{l!1Ta&=;X_aD@GSb zNRrv{vuK?j8C6(WH4%nZ6i=$8&7;v6Js8+TlF(#L6=V}fBvzade{Tej%UbDD`UaP#Ysw8A=@wE3)nyn2&1ZYDm9bZ~rSXsFnJauPJy=bSPN})nR+7+mO*wRUyXG)-IHx8TI%cnCJ9Lbp zrn{l9F!V5^{B)yy9weMqV~4EfdJ95=7P&#v6P3kflR3hM&^Z+&Cybi_RjTQvkMIB_ zJ<&Qu&rgRZ7(>a142EPqPe_LO_~NN_kmMGo59C^BU4GRW{>QY|ya$4E3nWLr!jRRF zG^iAkBg}&2$a_O_-Gmu(SER1Dht7^$K{94$MCrO4bWVl2BaN6;Iby;zNtzoC|FfZ8 zp?ZPFu$cNSSj*@gIj(XlE&mpvVWxf*dK2h-A!*naNE%ict53;t=p0aHoGxpi)5B$u z^hh2gSII!t>f~3QVV5MtKurWBC(zxHPbKN4uR}6qQ&aTT?_Ps3UG(7=6_1$2SS_o> z2aZ#yM=SP2(v2@e(#n59vUlfhTD?{^6{Terg`*_N+$!Eg1`BNOrtWnLt-2ClB@d%wV@QpkFtVzmbbN7f<)o@ojC54#_@as*kCGnHnbX&9(x3mhD?U1SPqv#6~&{Ar%ndX@}-r96%~ckq~XvxkXz$) zKDSIC;6U*7Sam!Sv?vUc(eD7s3RhqNNAxWugYKYV&>l!uJUc<>ABE0(RgkQg0m+ed zfuv!16ZQ5xL+1c5V?Z?gOI=pie24@)S_;YFm2rE!nBJic<+wWLP1f5v14#qZrs(=PNNxT1nW~Q<#gK4iWic9sEGsORq)$M`RB*|-`Ru1L^T zKS8p>e5?YF=X(3RnGt*o@NY7DMcq9sW(Pw7XD@K*0o8##VLCIzV@>}cO9TE@dyl@G4sohM!UcNT(6<0rFkDdysSZ0 z_R_RYpP!1}>f9)@&G?w5j;lNPZ0(r4ZBL7p4dn%DPU~dlOIcmj+Ace*b*+=-NvfA$ zvRtC(_$4a`9Mn~QcB{9eBt_9s^~nJ?YdW-aXpZWWem3iBXz^NJp`T6p!ckr2Z+kP?E5?Yh-q5`2<>`dZKlL?4sthO|}le-3$#!TLG0M6)J3 z%4wHu?SgsD0Ov?ctV^NME`2zkL$lx3nqz{fHDJqfrdr!RSzfBvwNF+KI;-9t?A8|W zJUdg=fDSe}TdnPotgLCI9z)gS<^N(AcMi)vTML(P<4iI_1BO zRqsH%wGEaVNrirphpDxJ$;vA(>M>+}hb&rUQ87X}P|XQSmZz(=LCMPVuIjNMyK=@= z_3mi5Mj_5qP)^o7K1Z$Xn5^t?q8{sLmz`9v;AA;n&B5oxOk3Z;wm_4#{w&S0=K834 z?GofXHK$Xu@_I9MRVTX~tJZZ&MwoboBr9*asktF`t1E(>#>i?wu+5qcEe4u{dKv>; zd^@kOoy~dx8hr(~x3|fzYHcV3t1dLzdfHu*QngwvmyGq#7Evz1W}Rtha1I>z4YUa4 zX;W=!fh{INT{9rTl8RJMrmRmO#a{I3JOM3M)7Ynn>J^^M5rrpPS7Kc;ry-qa{TLd( zZBqQkWY{ZPAtLCxx`J*4mQg zV6_gPGgYtHWa}9}L<#a8=tE10zcvQ}3Gytp4!JKt4@Iu57Iv~(PZ*j-TS|@8+PGv( z{{Soz^@J_KItM9im^E%%+XneJeAY(IO|V-ox09rP zYFtx)|&-N(ol^Xhg61E?scRJG_F;U$&E!y=RQD6t7~o15p{JdI@&A~q2+0{ z4k1;jr8)KxAQVl>5ld+w1KztuK!8v2g@^W=dFR(|F-r$w7#Y$+tj)q$p|H{p2^mC5e*Cv zSlh`aOKL5+WNfYsaf`O2J_}7B4|mjWphe$q$xE&6m2Axb0b1XvEK8uJsB8KsIw8Rr z$Bxy}hLc`xYO*pVM)mG(w|pEUNnz@V_6b(WhPXf>^dDlgWJ3$%W~0ovsot4(<&aIy z&9qxuVL$1qo(M>=Y(i?VmXhPNsK`o`B&og~ z6O?D;)!baW zGoX#lx&<1-4b{1>k3s9L<(-bOS=(ak<%DXB%~}C1L(Aiiwig^LW@$@ z_$64bBZUczPp}5z(t<5xB)x6cB4}*OK^x^$&@kh)2>l#|2G4Mm(b%c6fOJ3NJYrR$ zv7~;6+7C^)f%eJ0^m_0(_U&9l!)(9(AOjUD> z?8>rKbrr-%sp_#JyR|X=%nEvu(%x!rv0Yi+TU}Lbw_ZoyFyz79g|SZ9l<9Zu@PRhV zzoB6(?37@=fE4?H-QfMO)?(EY9TF@p_s5Q=DN#aB&3Ja#l2Z ztv#UW6%fIe+0@iE0SU_PbTxO3-Fg)Sov*d7g!Jc%u#7;^#cLy2jTC1?Kc{{MjfM44 zcZO4_!GV~K!O&=?J~zt@4QD>&9frnM^peh4Ev$#gz)baprVo$W0wYhq{&^FczEXHq zaSK{^)WbO$G2RW!l5Oh!&44yWZ!^WF^dHCzVP)w+_1Jj3^)z-*J>qFg&>($HA;u$Y z%G5#XstI=Mb0E3wU?2kj3N&MwxM&W_Qgh4g)~VPOxG(6vrwx`Q1e~FL3@z`r7J^-# z8@67u1{#9j(B6f{Aka1}t0h~XXsdQ6N`{8*v!;>emuhJAi*^NR-3=`kn!dJfLem3; zBZ|$@y`<047-)Cwd=naX5L}n#$2#TKGexP$RdcKC%FbMM6~vWX^;nhNnu)V2N*O_V z7TWDoj}kjfT{X$B%pIm4n`F1Vg8}Di+je}unmgI9q!g;FCfhBm3bp9>OR%0oiX*_@ zf>qvngdUaJYPF<8>#D8^O|ULOieu4BeQ;ajLU0_Zj~c;=tKmdwMtc)%mg&&qdD~)n zAE|V1@0OqxQl37Uv)|Twp{eSbU3lnSxr@g-CIU>m|O0hBb@bEo~Gp z7nnMX6nemgOykjJUpbK&mSWVe{{3Q>5`~?rgiI$9Qdj;S3;Uv;ng|hn9-M`p)4y!CVF0x$~gW zI_w8QHp|n{x@sQ&@lGk6f5OYzGH0UaQeY>wU1a-ueQ0SVTzNO6mRlX0qh z0U9Sj@AP+Q*d+`Xrd604O;`tw=IN)BZ=vPuC1HAxO4FmKN5ncoF`9&X&sVCs58IV) zRqCpT?bg**xaj=cO3Y-{d%oQ&CYuq% z{q8z6-Ge;;7EEDeFov%om8!+apsD)at`Bg@9SyY)K#RIPcxl>gt#_Ky4sH>LPts7?7x8&w*)qAO3$$3c4U23n#AY*uy zp;+gs$5gwLK2P;t7GE78Y0uRqN67X74@w#60JH$$c}W4VDQHK1$$D6{+Ho(*dffpB zpqEzaPZCZuGT0CYONsl zD@|g5(hf>CgzZFX2w;_IM}0|0Bl5L+h8=4Q$;sr(q zCG|%Qy}o1vj~RS@$?}T;%Ed-LCCe`{bjk+63V{9AGA>wQ6~Kd%8EdHEs4rP=EkL;r z;6cgqPXXkg26#}Cf0hc4`^jo%u;50P!a+%kH&Mayf03;BJizu|1ZdD!L%sybgOdC< z0BbH^+K&W}`jQ1c04P5Mcu-P5Km`XS^@CJ!P*Oic1qY?99(=YX?$b|bpS~+ws*e9@ zN|#HY0yOt?Lmq)-?V|t>O6DH}$bV_*Cm=bzQ-BBX3&7+5AobPucNN(2Rjt`SOY+wZ zzP_YEe*m)TyP;(>ntK!AMx#(s(>D02t81OAS*`&Xw&MiJCE;R7H%R=Gnj6yHkRBv) z)R&E+2Y~MY*~`eUFWG)?gQsM_{ba5+J)w1!h71<$Zxp0tGQ-gSPO?ZQKG^UeNa|Vm zXaG5s$~`6eXNUaR2MvnCt)e4Hsm9QoKF%5C6f#A!FmfB86+O#hanq53h1O(8nV{Nr(|-KA)kO`Lu*Lh zC0(FD2cD7fA|y{gJB{+M8s%S=5gAOsh7Zcu@xcmvsTh*Uw++3%WXJD<=UVyzk{uj2 z%GH;g@Xx_B>kC63G0GjG|C=G>93&h34l)$d6ABylg=E>*%rqo*KO?`L!Pl3}Z*TCF zY^Nh62Nnj&{BT27M<789qYWYkk_RP2G9Ho*BpdlDhU{X7;lr*pik_MF+`dCQ(lgbQ!A{88z+FCN?G=rxk zKhw}DwVi2}mVhZn1|$k+mNo1pFq;ZUqJF2>I5V= z?(>jr=OQHjNk8C2+nJf*QD4%4%it-0G~`c4xxbU_;8&ykRY*7JR#?rdjST4m$^Es3 zgR%Zwg1~jE)De;m@aLyI?j>nZXCt4I$q0OqkA$Qr;z$~j?e>FC1JWVsiCjn)$#cN? znHbIwLozuMA9P^}BpVzL$qpt!vZ0BPJnBp4R~S6=0t|3K?MdLEWVsH2cHcq&vq3w+ zqrPOtt{Qu9$$H%Z_IZyR53MG7w$m42xpaVsDXW>FMgRYAJoJHOu{Ru)GTKf$*T@iTs~Ck$>() z{<#zR>zzo(|L;4IZO68riB~-?_EnuOx~MK!`^wL&Iai0MJE84{_JV4?HbgDCiL6<`uT5t0+ zcL^^G^rO&cTA;rs_EVq#lZyyx0DZTZ)&P3!6&G=W`kNxCA@p<57d3?bmZ+n?@@E&3 z>Mt(hBK3DgoE7>t=xeNUU*&yCd}oyhs~diG5oyjK_Df=wGl=Y~F5(7> z4<*s35eTPiF5>w{AP!36HxfHRZC5eu1AkKkUFK`Q)sSUvRdV{$Nzj%WQYzXEcnd@*& zD=C0xXH5<5xcwE@vYY-|IfqzMR@wji2`oVFl5n}XO)qPeiP1F?@pSvwFOVi$?2 z%|Q6J2hmcLwg(aD2I3$IFX7bz#8DD6JAh~<_LG?397MD8ZN-8h5UDLdTqMz6#B~I5jl`OcARZ9sNo;5dA}tt1kf;p? zk?jfM28m$NyAuc}FA&dn0udsvlh{cjF9bwqu`vWhi8lzBP!QoFClrKdD-gR$L<(zX z5c^1!bp{bFc9EFs1Hv~9giVx&fe7>kagaou@CpZUl*G(%5D8*GiTSNTghYTy64N3; z#QK3aK_XcMMS?g-Vo@ZBE~1XaN`DYZQ6RdB1yLYU13+9P(L=;VgSbXwO*DvJ;yj5B zZ9t^Ofaoo1V?boL1#yE!U(wqJ!l@mI=WQU;#B~xoN#w>vt79f_5}Ad-?nj1&u!L8Nv9agju^h)V%+ zjl`N15TnI;5*tE5q;&yNDr&oc$PNW@gTz?TyDJE%&LE!e3ZhJ0C$W=6UN;aE#KvwQ zO2R<6bO$j};+O6s5J`PN%n=Lv zfJn80xJY82h~r#bBe4c^FFzvAlh_aoBCQ{Y1){bei0n8JH%KfLz0*KA#e;Z04a6dG zoy1NOdFdb?7aP+-l;A&%2$%jKmWrJIAUqR6>?WZKYX*pYB+4>CEEl^-Oicpen+ZaQ z(o7J6b`S?i)C#WwAdZrlIRL~HVn2!b$sj@of>(r$W{E9CAU;FT04rGsj`#uQ-d9svgE@Ka<+IYNABhFfrtK|gg%38x&vk3R9M(* z{@3bCaeA1HHx&fv|2JslxYAIOnI(_j5tb{@lv&ip{0~bX1>;LccDF<8&VRV(&C%d zTl&HD66CW;Qz|%2o%cHK8Y4+djWT@f>Y=wM{R@&hAIY{bxa9`Nny!NehE+x@Qd&^KwF?4&>rXj zJOBg&K|n_!80Z9q0HHuJpo1=qYFQPkURk|z#C`;QI(q&m4m znka$n2TTWM0JDHv@biF&fkyy7!zuzs1H+*g0(|1v7r-}3)lxhrI{`=p_{NkJpbO9q z=nnJ%dIG(HJ^;VY@&dd8F2DewJrD@+o8M!=m%wr01aK1g8aNC57x)5TSZ)TM=U3ER zom^Z`1OEmd0~Q0^Vz{OBgT-k;1yBi00wx1ffT_SJU^Gw)j04I5e&Lb_3K_|uZB-2Hw9_bz$A3M5SRz>Cmrd)0`T*JQl!TKMM#eTGLaqt za7*FWm2UuV0(*eBfW5$2c&7|_AL)I-2f&9w^#Obw1P%co0Ura~fP54#00sd=fNUTK z;J1juKqnvs;MbA-PIU}03&wCjvw??ztuW|A-~hlqk{j={;Qs?`0H(1xevGMoUo`Z*Vs^^^DxOdLn3=MalKb zpy>d#2igH{KwF><&3jiY_1mMr_-UPVD_W|z%dw@59-N5Sr^JyTBVrOpw zZv&aYJHUIuhrkzHY}_yo00#kXAfEsq1FZNFa0noO*udwI9Jx8-Q%G~vUjiH@>m3D- z0Vjatz)9dV@C|SVpn*)ENB`OgzlHoS@Evd&_`$$c$m_s0fV&*s{WCzGIwf7r>xNqt zkPKG`fNcx~8X(;eXbRA1SIEXdN2IHrk+1@sBjXBEn_Di-M&Mlly6Y*R3DRtUqh&tl zvIRI!j~^tbqBW#Dz>_$qfbqjRJn5T!b0ZHt-napUjnM#J5wJnCFx|v7<2wW3)d4#X z2E38x2zd3-3NY)iGqyp4%#PT80Caz&9AkwBHs{%kR&tackZu6=ZUE2Y;{l%2X8|*T z2Z0&DNaRm|Yyrs=3D4u4_tB93fCm7!lL{FKi~@=Q8xR2$0V9DCY&;t14D$Qr{>VV-ARUEEfsH0A_h|#(=7|!X(T} z%!mc(rWAmk#RJKJ9Y_K=x&(lEG>Bk%O4ec8G?>QG6KwOZ1H$~91@2Xe9Ia*pOmjXt zP2@NtP6=IGKhI2a-dWacBh5&g#&XcXod5nt1{-I?nSkl80Z6kGvr&%N?2w#k7#m|< z#>G%bvs3b%f3{7}*5{e7W(F-C0C4Vx19UB|WMxV=YF1>R-7n23XP((64PqM%QU)dS zn66i*T60k;$nn59fKfUYFbkP3G#f2Lo@tQDu?#z6T$uGZC>p>OWdH;>DIZd0L%gCMs~{1=vsF65Wv_l*E!>$z5(W7D9ygA*&s*EMokOp zMm9JP$OV=FoSw%4P7#fE0Tu&ofW`o)ggYp=adRhJ1fEm*81M+d9dRM#qrd`SKJOT* zn3i$Qcs8rAcLvA#EdyvoEkFZS0yJO(z%v~U7=tuB7m%X?cD@`~2G9r<_!n?zYwmpS z&ghj+06jwwWB`nZp`!4z+;Z>=BuyJ>o0+Elw3oKt&6#6(0(onI)xbL7@+|P1aE1sWRQEp4IaJ{kUZ~)3h zghq!(!1vyR3Msj4k z6*25r4Cy^Ze>Aq$rS&%p7HtgCER0~oA1h)BO2n8i`K(-!dUN}~+dZh22xA-H7s z?uRGuy|2k>_cI#hy zRBe#%{$Zg}xc6wLofc}I@YwO4_q^A~!pty4AR2NO-EN?v=3>eXInAe?oAw;8=DW<1 zGcpzi&eF<-hsNQm*G-(dfmkx%f;wQq7h76q_i;uEBibB9^P6(8b3d%K#_*LgDD(Zcy7MpP@vg zz8eIIf?%bEBSIuf+_;ILd(A^c+(Lvb7S*@p;I?L8<{MTozcaIZ^^pUgqJ?nG8Dh&> z9K0oa#h9;H9g_K3THa6lPqP4wK*Q!sR@XlFuL~_a4$nhQEOOwkYo5z}6wesrEvq#* z#>p?1x9NTi1&oRL54JFd%C+BSlgAx(*K1wiT zl_L{tM3;zQtwrt3Gq{aj_uPg@n|$#_0}QAq7|t*1K8L#aLi>aR`f?M^9O0=T5e(7F z-WGRcDAeth-%ot<`npO-nSq6MDCLO)7BF8K`~FimKOXwuv(M-SxB;vXPc*>fZEq{K zIAXBoyJ$ausbt9;Pn@^kY3Wj1k={TX?C)&Rd>QSf`SXuE^_uvQql^U}$vvgJ=xkBE zqRqG2{IAFm5%(wIQog(+iymGwhof03nU(o;#Y$|BKVhrbR25h)Q z);;t$F4TP-eg8?gf56uW--hs&`EKM-vY-37_s{FjY5}3GE%Oz<4c!aeXPoc)f*wrV z8Cr|64V7TO=ke6W86LU&lA@`s<%o|ODjv$s5OJWP;@K`cRKGC!Yhg2ISEz7uQaW1p zqNG)?{9&j_cT(b`&6n?P*>L5N0jsv|SLE<0tQ1_gn6K$op1u6RsFIzCXKqedLQ;FN z+X>?{-|ze3;1vfCfA&y;f?$c(&OhcGfFu7ka{60q*3VSrL|ioDBv+Fq8d(u%<|~8O zX2*Y_ygjlt0@CQUS|p=DjQNh?C6_lG=sEd7+dBo!w-DF;e)T=)i)ZHD$$77{SZq~1 zqrXC5*y?IVFPik}V@peF?vyZJZJheB)Th&bvei2|ZsJQT7GNjQ#2E`PQ3N?_OFs{y zmHGbSp3mLd=(DwJ6K%G_d8If*Y;snDan*3dSqX@~|HaikuTQiy!CVp2NC~#|i{Vw| zNA8NJnAAw|^SOH}-LZf1+z}?d8Y5n8g#Flj*YUuUL(dF7QPW6~x!YnpmI_6PC$3>W z_EtJ6Gh;o0V-Z`c z6U6vH#dD1LI$1Zl_wk>1jD8v=;BdMeZ=BWMWI4F@o0=v*Yd749SM%k#qw11h$_k0a zayyN(*pzR-t#)wLrD-|0Jlw(MiRJoufQu&d6Gz4Ewb8ZKUN8SXAlcEoAjBS~MpEi5^{>ArKYq+&y( zZ7gBFx!8YlpBF3K`|Ls8uu$!u!#vHJ?>Nq?J00xi*LS*Bf>#@ocEN%jPQM!WF<*+@ zxrx&Vzopy0(+Y<3>|jq4TX4pXF<+}Z{(9WCv@ru(p+r<@3^y6`#mnvskA0nW;9Xo@ z;Hn54J#MIy#2=`uR3?eXVjv$%5@DUt)_pEe5mn~fsw2j2yYj(DC8N=nak73YNz7v1 zm*Eaxb}WAKrK}q>Kg!bV&_dOG^Yu$!etq9+-nJofjLY^@N#X$N`k3$5PD(GI<~wh1 zB1+&=0lQF?yM09n8aH3c9UtCzkoWAbHfv32R}ZT%&DV7o?hSai*GjKnP$EjdKONIgghn8mOu0Ty+=MQsM=0Jt=1aQw zxPH5_*S4Y`QH?=>OO9=6;>8FwtiR_QZ^7R6i_H?>dlO1FStQB^^D1>68iE(68dC`9Ug zZr>4I{sZ+3M-SKDxg$%C#G`IhsEr=zG*EocUgjqV|7bWcZlH*dhMAuX6!RhF_Tuws zWp>Q{x1@tvdeetIQoB6!^O$pJn%9t+HFJg6Wr_57G>sLv2P@vkd;|E>9dEx~+9rIy zBHOgP9o%gU7E5d>88TS7+F+EDD7r%WnC~86`ekqVrB8-Ga=#j$%4Yl!G(qVh%4|wQ z(KJ>`XKW9Tg>&w2=l|Tg9I~_hlk9PAR#!(<68%YQ7Qu&^NowS1$fV zzZutN_?K*PAP%1RyPj9XW8n8U+H@)gToSMJ^D$qazIO8KA*F{c6_^IhFT-hguJ{=4 zkGX$m=ARp=d_8N^7NrT-N0c7h`b3y+{nN7zu{Hr`|4l>1fds7Kx?$o{0y;S}OuuLJ z@LbcWg>ul2rnoC%7dPK@eX+~X?CAdPaax>cclJ(sA~6xO-6BtvCt_uo@60~m;LwGZ z%^y6hl?-DW`c0W)%M)*)f{*!@??GQq4-EE+<ml~Uv7oQ)S^Ok3eLqFoGR%;8hXekh#dZ4YA1tKFI(!W5I_lE3TAWorXOqT+E zWEYFRIsfbY8U3`H+U=D z-*~h@tRBQ|G+FUhmKBJT-O=Ud0`VfMDK8g@{JzM1rkm2zg2H=;K1PNvXrdi~UeyAWHC#Ag15+;LvqH z;F1e*9nSa|K3rsUf!8LZL^G6_8WMcr!H(Yg=A}Kix__iRGF+@>-PNe;iMr(}4{q91 zo#1L%j4<7f96TDS@$B$zz{w@6+TO`IG+ca-x<02+f{$9nH*GpaCa{>b4|<;#s*jww0(TbfZ96VSO(j7MGNuDBDgc2%O3 zg@xiWGmTmE8I6FUbH0Be=}GsOvjVkdv|A1%#Ed7E#&mmF5T^BJ+*>(bAog@agLg%y zSFeXDrt>~p_DRbQBUuW=GJT>5E-NBQ0+_!F&_ybGK$Nc*YjlNF!uCKb(2rO=; zyGDtyo+#mk>EmN~_s<^d_QtaxUNqW3VC^3z{QILr#4S3Ug~D`vQ!JC)vYvHjmS&}C zx2HZ|<|;G8-W;4h$t@hC?%rPRUCr2g{x;K`f!j;WsH9*M+>-&*&CSM`DIfDMV0`Yg z=lHu9S9}$8*;tg&~#u7BQzQ43|cMqNO#i?w?y#c>$Fnco{g_t)w7RUNvnoSfj6s~1{!1en|;o(M|h{#^9t;|tA*QMfDw8X z5B96O-1GK;_4TZ6+veZn@aZ{w^0}jm-<|o@kt~Ku3 z;T7W|;r5C#cP?|8nAZjKCX3cs06vqkd*1t`YmOJjX-may;ml;Qo=eAEv-dYP{I;>? z08Q)Crik*v=>7heLq-fMo2H02P%`E|s{qkr{*{-|l>tHDb!o#33!c6)EuT&ijfY?k z^ox`TT$JkHnEdr@b8d=QjLR6sIBAPLLzE~V^Uuqy|6p{}i?2H3d8he&pwCp%G`n7C zn8W+?4yf%x_n`i|>|@M7g)?NR?DN{m9dnE^U}G@<22IuBSKs$(+`-#00^`O~46V0t z{6Lw1m!{d}6^lls;Qx8h720J4EPN1!eY8JegOg>`D|4E*>@XqPD1noOzUVxayout2 z95_v1mk~bZAHSI`$2``)Yajiq745q1f4H*462g^TO)mUo?5cl10f$)9JfTKPcZZd( z-^-_d+J1h&3n(*eeIFD%hvHt^SYx8~FvUB@`~yCNpM7~rT!ZDW-0}M!gZ zVZjY5o*UTna67AgV;%XIo24T&^$YC84jaOoc3twMVGk~CuuuJriptrUA}}9Ma<0r2 zgYuPlWyCD8Bp-c^oh6>j{~vZD(Xrt6slxO2^}(MuTXWwrw?Axfi;ECZ_jkjE8u3Q~ zO5Fcu(_yv<8xGU-dr0kp(JbiqxR-1-TmJ&hxQFx!hR*wqs~bl2n_K6n-z90cw&vZX z`PZg`Tb8TC22Q(VOahiv+-wn52uF3BEru5={yrIKi{BqS_14$ZI()jAYeM^SI$SE9 zEmotXa}7!aq6Aj%|8O6Achvr^3yp08r!JN_i*#4)pjxpcxbH$6+Ubu`zy&f}`9;Y%f;2HmfQu9XADkysy{L!yPUK zZ+&2_u#Qsv@ShrkAlfX)`HYWTzs#EP%#cm~UhARri`v;Ovs`bvN1fc7x@!yAH?f&87)MflX-*cmsCBpAz#Uf^G!&fA4kH)V` zloF-Sj+_!@UbOIEtK^E~8xLl_p~4W~G%Fu}<+3>Lw*eoZPGo d77Mp2?Zx7?%5YJ%S&3q^89R2pto+pX{{da%h>-vQ diff --git a/package.json b/package.json index 64c7379..ec66efd 100644 --- a/package.json +++ b/package.json @@ -16,14 +16,20 @@ "dependencies": { "@heroicons/react": "^2.1.5", "@hookform/resolvers": "^3.9.0", + "@radix-ui/react-dialog": "^1.1.1", "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-popover": "^1.1.1", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tooltip": "^1.1.2", + "@tabler/icons-react": "^3.17.0", "@types/canvas-confetti": "^1.6.4", "canvas-confetti": "^1.9.3", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", + "cmdk": "1.0.0", "framer-motion": "^11.5.4", + "lossless-json": "^4.0.2", "lucide-react": "^0.441.0", "next": "14.2.8", "next-client-cookies": "^1.1.1", diff --git a/src/lib/api.ts b/src/lib/api.ts index ba81ddf..0102bf2 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -1,5 +1,6 @@ import { Session } from "@/app/types/user/session"; import { ApiError } from "@/app/types/api-error"; +import { parseJson } from "@/lib/json"; type ApiRequestProps = { /** @@ -59,9 +60,9 @@ export const apiRequest = async ({ }, } ); - const data: T = await response.json(); + const json: any = parseJson(await response.text()); // Parse the Json response from the API if (response.status !== 200) { - return { data: undefined, error: data as ApiError }; + return { data: undefined, error: json as ApiError }; } - return { data: data as T, error: undefined }; + return { data: json as T, error: undefined }; }; diff --git a/src/lib/json.ts b/src/lib/json.ts new file mode 100644 index 0000000..00d91d5 --- /dev/null +++ b/src/lib/json.ts @@ -0,0 +1,11 @@ +import { isInteger, parse } from "lossless-json"; + +/** + * Parse the given input as JSON. + * + * @param input the input to parse + */ +export const parseJson = (input: string): any => + parse(input, null, (value: string): string | number => + isInteger(value) ? String(value) : parseInt(value) + );