From 7834966b1eda8a8a38977354d2b568a048fd970f Mon Sep 17 00:00:00 2001 From: James Croft Date: Mon, 29 Aug 2022 18:21:18 +0100 Subject: [PATCH 1/3] Updated assets and doc styling --- assets/Logo.afdesign | Bin 28714 -> 35597 bytes assets/Logo.png | Bin 5148 -> 5629 bytes assets/ProjectBanner.afdesign | Bin 20908 -> 20199 bytes assets/ProjectBanner.png | Bin 27680 -> 27717 bytes assets/ProjectIcon.jpg | Bin 11441 -> 14042 bytes assets/ProjectIcon.png | Bin 8733 -> 10331 bytes docs/images/Logo.png | Bin 2920 -> 2923 bytes docs/images/ProjectBanner.png | Bin 27680 -> 27717 bytes docs/package-lock.json | 1672 +---------------------- docs/package.json | 2 +- docs/templates/material/styles/main.css | 8 +- 11 files changed, 40 insertions(+), 1642 deletions(-) diff --git a/assets/Logo.afdesign b/assets/Logo.afdesign index daa762055b909347e0270e902bda437a47b55c39..5454309926c7774d2566c74f89a8e69e7917389d 100644 GIT binary patch literal 35597 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

ozc^XIA$1 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%0Any8pJs_|O;Hi> zA{16v=d~ixPzCTycD=_cU&C4doV1Ac1V=$X=4R(%OVEtc^O*c^0g@(7k{N8|(ORU3 z2M08RexRh$aPW6ljm~b9O;xL_uTK(>2?E~YWXC~YrA=}?H{~6dSEaxs+9WAe;_F*q zPZ^f#*7Y_Fk~M>OTq(XgF~JeSuAD6Yuo#pl<>hPZ>v=lGAoiadl~h&D0}Cj1XJ2lu zhTP zR4e_-o*eOx15{YOUkyw!&*2&tf4k@31Ox_B-Qd*J)cpAIpZz`>u9@GKZEtl^HinQI zfXBEgAHy`DQ!QMwrqNtaDZoDq_V?FCI;EhX-QC?WriqtCvC@i>PV4=pqz@$xj8jv$ z7`N`-yC;&-dKyJ`>jpR`eCVg_>}*c$Yy-n8aOx;1G+#LpX9?ByAl9H$p%@;)mKRmZ zHKx#Al#*TfLHK+LS~D+BlJ8uJO1X38k2ot8SdEC8V*7s$n>sAF{@1N(@ZXc9z&2Ib z|2~la@Q1_dH0S5)LBED5PI(0JvFW2Pc&-`Jw>Y>HmEdlim2=#{d7yzt`da e)pfaKwm^uE=Q8~T3o~80qWVJXd4+;i*#7~V@MnVn literal 27680 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 diff --git a/assets/ProjectIcon.jpg b/assets/ProjectIcon.jpg index a6faf7f3fda60258dc14c2225b98ac10a3de7c39..88c81e6c4b4dbf2a5fd6993cde8cf7fdbc8880ec 100644 GIT binary patch delta 10248 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 PX!y^`{vTR8ALjlSkx{cC delta 7627 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 Q`8R=@>Ik(`6{~yy2i+&vw*UYD literal 8733 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 Ob!e#RsFoA z>n=4S3LqdLARr)fbVYV_I(KMgZapG0FfuYNFgPtTIaDz-IxsdmG&w6UF*-0XlK};2 z1dR&k@RMx?AAh?`13?gnza)x5BN4Q)P&h=bqWA#O#v zw}czClo}U45e`{$LE#%$j}`gZNH0_H!Ti zC4od{W?Ev4coQ}eMhT-Z&M-st(anI&eRR-6r>rQG-&M$;Vp(!EnN3!)SRzS^EFn>I zQavG27k@n=Bh9MY|G#~;_1>Oh^*|UZA06kl4XQTbEAKcT2afY~2)+k6&y@0)_o4qy z^n6Kc-GksdoL-c)*fyMPK;ylsT53V^iFa7esa(E z-hXq`5=4Z}C;EQ_@KwZ;Q4vcXXD$6~bi#gCr3 zquX^iI$tT2)KxlP-&<$2v~h{5ryOs0Hh&Zrj3FeVVO23IYJNdP+p3$Y$_mv=N=aXP z-PS;VTY?_(Pvo#H3Vpvf!epNRln}4WdZe>KY9Z-|&9*>k-wQ!1 zykQJ69u1dRmBL^l!tzRv8+v13@ELE3NGlaex?2M~8@=4<1D*OtSRaihJK_^}?yam3 zSyh^dg-u&Y32{3t16_^W=-ErjeSh(Z%$g>LRq3$lV zvU8qv=~eCQr6d5XW+kz#Dg}Uv>C{iZEpik357bwP(qH6T+M2nH>%yDBx3wiNeDRY>e23P+_Jx?md}5GGk+`qV2FP%u77;?1HVd3 z(9^TKYJDpa;aE>|nZvUF6GS*MGGlsL%r6Lr_~FH5>i#M>dZe?_TWWp0m8wG8clh>3 zeBAu;srg@$OF3qCTuiY5fH54paE%)(u`2QCzo(KAuv?UO4mEL;Gi%zZZ?1_rVJ@2D@UlwwDo>%}6@BJA)@2}U~-SqI~IYFoAkHrvgFJ!*Z@&12=2q#Bo z@_1(F^ZOPj+eI$a3MxLYCtIR52TrsL&X3+Yego&HF=zXk?<&gybUHfMC=Ty{09p^f)U z`8$()dW+rIRo+sollOK708;#OMM6a^85OZ)v`Ml40g7mDa`D;LX#fBK07*qoM6N<$ Eg2qk}H~;_u delta 1655 zcmV--28j9V7U&j`84Lyh00168h_L_w1wgSSi~~F|Eio}IFf>##Fgh_XIyE+0A_^cN zAb4$XI!$GCVPs)+VMJkcWj!J?FfuVMF)=MLG*mG#Ix#RhH8xt4_XF!GGa?EgARr(h zAais@c62&-Xk~6aA~G;CF)cAMEig1xF)%tYFgi6hT9Xh3Xap=-%e#|&1s{L8OG7~r zhrb-+je;T;7D1v_A~8bH#v(zZpcXNLSChP4LXO9K5fNL#HlQHdcoq5=Xe(F?f}#jw zCs-@ms66K-fdnzL%+9yJ-5GXg!5U608Qt!IOg68Df_}&R!lI-8g=TDY(TF{w=<4+B zc$k{@d5^`6w{Ejm?Q{QHb1Z+ZD`0659#vE=FFYYUwU$>+-VyFpQjwVOnXpTf3ku(v zdbGr^CMQe$ZL$^)1;E-a>_}E|w2GCKmJybhdZJM2~;VNV9JC|8HOQ z#E`dCy~Pi8&xY~d2ldKgX;pt-D4wyy~i%@1YQG* z)X$bkpH*T6=ukhW+_lbu+l{uxANC%*XakM{p8#ohGD8CdfpVbUUF(!V6{3px4mhxS zxf!AbD0bI6Wl4Q-l*AJOO3rTs*wi)g7ytj)DHcKC5ea2sC#ncgaz8Ag>`aMH(Oo0N zj>bCi>XW(TWv_n&K#s7<5f38mkq&Zf)3V=NI|FnK{2MPlhdrLhB0u+z^2YuhtW8eR z8e$r+Z<5+?dNuh<@m&-KuTJyXxjw^5>1AdvOhscC^WgA5#U9@(N(9-VL6{B0o)XjeoA2wbgys&IZ3&A%&Lrrs! z?l|2-0Im$(;H%bw_>MXWg=H#TT?A*tx?>Fq0ciMXkl*^pjfO|%>a~(Y0z-IVIcsc6SGvE?p{{J^fEp*M^%%@)HtSu0Q}NB%IUTt z!|}2VCz^jej8B>S%bFGf@a6e_`h1gyVqKR8aeK#1=O9GLe0YHhR~IvL`gWV{;R#M& z=ogWK7$E?|qe1F4o{IpcZ-%IJbrA}SsYk+u0JL-jXzd))h7x8>(fl33Lf)*?h0@1hC z`tyI|^&8u!<6&AzRz^zH=aGf3t!I=oZNpK0Z8q4LxyDo;riGL}wT%ZI8BuMEM~|yF zW~n~oi8;oheYxzuKhsnmriG*=OH`K?lA03zfBDPaF<$@N&GqT|sP_DvOx}F%0kdg{ zStEbBo6>my#a%J&vCdKHYwc8*7Gh7bMYZce*kV6W1tWfwxpCtwHm3>=zB7b94+q(zz*tvgYo$xs=tLzmo?`G5brA6-P!p)RCo@2>; zmI=8hJ(;RQ1xPk!Yjtc$rTnFbt(wj{Apm=JY~aYV+ewmad{kOMMylpJbKO`svdWQX zwv(5gLBZDbmd;~Z$T_!24002ovPDHLkV1gWe B1kL~e diff --git a/docs/images/ProjectBanner.png b/docs/images/ProjectBanner.png index 0e806813352127df15463d95cecca178996e959a..0535f1dd6879d7dd584f348c78ef7a618fe707f3 100644 GIT binary patch literal 27717 zcmeFYWmH_zwk}u+1Sb$YxCaRmoI-;;!5xCT7w#TBSP1SA+}$CB;FiMO-Cf@%=iGD8 z>HA*ykN(p?y2gO9cdfPOUTf+%=Uf%~NlqLU2_Fdr0-;Juh$w7)HkvJss%QDN_2^*W4OSn52E4j-l8@gK>avPBg@FVfMf&l{7#t?l{S8FR9N3bg&`CqzV z;QIM%CUVlhQy`XnFXnBR7LU?7&P+ zE-o&NF072U4yH^WxVgERm|2)uSQvmA432I#5Peq$8%K&~691qfV(e(>U~UI7x3wXC zrm1gW>jdE=CkMt!|4H1)@L#m;oE)tFQZ_PVGPW|dHnxE{GJRnD!1V9)ja|+Edo?zW z|6~`yIHu#;s5a( z|GUYuvj6wft*!rK8;%fBXMl146vBV3>Azm!sO)BE%%o`SXzS!)Xe{asaF60IzlS7+g+DpinwVPwV~&dALZp(S!W}pJe{t{TCfxrvG>eFR(~iS+In;BgEFh?cd(3WNiPR@BM3vq@;fp46JYX zEEzs>I|o}MCqrYSznlbi@Q+bPTN8+jzJu{cQ$V-)$UmBxm;*9&BL%G7+!R^ zln#JP3~7nJ1A$)nnFGr3Ka>CjqKR>eX_kihh#t~T8TOIlO-;ooE|JpgYtYy)@>S$N z@Hgv?}EL~z1Pqg&oCqQKA}bkZLdb==&17=XS+(TMUTMzV?Zfdn=2__+LUUTZjfTp>`4#=e=^Fp3e-smqQbJDx(T6I3EbGI!QV-}bR@Z=@)I#J(KHBm#pHM+hM2=V%q)C9Hsm|#1sN4CD4~g4Qu&=> zpy9xtB&%AfPA(bto=m|}k&jFPmye8MsA%q~-K+LuG2P%o5RZ<8XsZ^rh+~ERh>HY1 z>dXnD4W4Tx{xtC_>q++9Q_^xFU>TgM8(%Zck!mft)>^1(@$od&!-+^YD$DuxZh5AA z)^v4-SJWYC6SbZbB2V)u<5ocU61SP@7);WrG7#Gk?IbiDK_DEe=f4+{ij>D75GhDf zi&Y0tJ2gR=oquOS;++#$vUPpbK5SY3#CmME@Fj|U>MIvn4{!Vsy+d82?KV^ zq2%siI-7%!PrM$Yc}nh%tj%moM#$C-0_Rqn?0Cvqy2r4G1YR)N-5Oq+l`rc@>X9`OhnwHxmE6`b7TqpI4b8 z|35*175^`J_(KF9blkgo9P3~)O-MZEN5cls%Amx@o}KfT&0jesKusxOP5C5IZ44z= zlwfpGaq=vp>XzW!?-)b~&vSgWJFzkksmU9$+@E4Qm?0E&iQ6=PA6`d21VK1CsFOuP zMvc`8Tw14gul7Qpet!GHXVp!)_2%)L!xwlERg8|Z$Dx2&%G0_@9xLByI^~ux2$YFQ z`eNIr#rho14KIW$0fXpE_Qa>Wd*;EYZ5nWXL-xt=odI!hDBo#U_`ZHC!|!#*(RYp4 zdSa5;1Z02imGoZ<=$t(v@iSgaoar&gh;vZHNzU#n6QL%T!O3c+<>$#k6${v(#*_;z zekk3jds%q-2X3Vj2a$-uAikWz9`<2sylW;Q<5i0%|+49l+Knpda&xr_UkQDU? z6lunvXNl5!O37D@?B)5zK4uIk(7C$;n`3%fODrR<6s3u(>ul$;Y{-Xx{I|xDYP#5@fig8_UW6B3`{(XF1Q*PI zNWpBGqh;;17OMuu`EH7|ItRBeL7!MYz53xn9y8k1XMwtS+dna?ihB-v#`k z&sPvcE8pEhx)+Q|6x4N62Ti#ZouZFEBd^OWY3mLLKT6Y$(3ZuC^7hmE>(+8mn%`d@ z3moR*#J_2@c|lX`yrPV~GSqhINj zAU)GK9Y=b!xshY&YrxUYf&jUj+GMtw)liHn(7?LTrzOFZhDHhD1G3KbW()~g2>*6^ z_yRqApjSv2dvF@};cDPLv0gS(si2$4Xz^rPWTEND*C5a*E`V7+O1B!9H4_wIB!30k z+{lS}TAd1BJp+@TyVTj?8apZ$k|t6X= zgDVE=um4cR!!VNYoN_r1^r$y%yo9A%pJL#7Xv_X43n2wE#W$3oesVM4+K^htF$HvA z8EWg~%|+3xjn3j=d3{+WSI;+$vM(yrsS}xaFR9zHb_4z86~lIY_;1QkRM%lZSTMlz z*^MMJIW!AAk2;y9)j=F%3KBUj$xe4fHm#S-xEgqaGBJtgvB6J7UYOD$r460$&c}aI zy<5T-9-;yHzWmg5n8{Mj3cc5FAR1HnolqLOi6-2<8|^6oPVDY39ZA=mKV~e&DxdUK zhrVAN@#ztI4T3fPR_zVGDXSo?iw1$vQ7}Lor$eM#iDle`jIUTiYuuW6N-fL0%S`Qs z$?bI;3C2SmvIUW3d97|58(>XdjroCI#cK8Gp7%DlC{AY+fCO_HXEQyMeweGrF>3 zuZHU>A4PlcwjdDykuX5UY#u+XaT&sx8UejhG1s|Rdthn%k*P_o()}b$!$1>|{-Xt2 z;g-VGQ=M$rmIu>R69#vft#mZuxROr@@&)PChQNXY#K>%u59JQqF#Yl`>UWz`NDT3i zUME1g_=2~o1P^Y(>P7vwG;%cd!Wq@XMB{O0 zO4z3H?b5fu85r(um186Wql0{_d|?F(-DbAoP%EgxNb`7mMT~FPM1bh#K*1~h+O*JW zo&W9=X$Yp@WO|;m$UAIIqF0}|2#M=X4TMBq+NAivfP4|Yf@qpw>2a&$6#=9Cld{ee zia8iWLFY&V1jIiF%&Ql}vu3pK>)yfGAcv9`UYbB zV-_zvF^`+>DGwn{V=q#RW}1)q5|yp=81?(tI`rL0p^-Qhj@QnFu-sN$VyTi21Hax( z*H(@@PC;3W*3|Dp^Xuz(wCzzElM>2b-BkAP6u2kgFx!bjG9rgJHFO>L%@cLADJ=1V zC-r0(`!}MG>nXuFudufbDy*tfQss-XW^GK(Z%OB3T8DUi!V*J!w)9pT@9s_&F4OC7 z(`zD#W3W)m`Q$eS^hIVF`f*HgM zmZ%60HKXp{|y#Os>Q-VNbfjH65 zVKNN#MMiIkzQj+;I77!W-w=rw+~0u{do~8nA`ow!?B8zirJ-!NDfVQQm(KPsyS0XkOjjqAJy5mK}CCzZijLt$|NBvoQca!QYn z@MGZZH{Cv(A2CmE*qEV#?%V_i-w!;TL`iIs88k8&i~V02llYmzlduFlrHA=AIz6C*|px5J_YhHm$kAPp+8pblJ0&@v_i`>tlAn%Z`R-{G%ruR(xNbv9;rH64PMmpxN{ zZi9b?I~P*87}dyQ|IP@B#~j{|zQgw;iv4@|+*Ot&5HwREN4W+01g%hJkS~ibur?Fl zlrgo|CNXmfYp31WzOseS@7AQVM4~#+nD=e4^sh*;QbW=nlc-({Q{%6qB_M@_w93Uy z45MXA^E|N}Z7=nCN&wjq7mx@cXnk0m$)uMl(%=}Lkthh4RkvVBS0GLaalELHYQj&` zQ(6+SLP3%iS2BLm)X#DM_v@^ksjWp>Udv$9F|CA6A&(E(cSuOQ#o*PLyTy}SnM*Xuw^vGegI zXg0q*ugW2td~)h&BU7L<8d%D5W=+w_aEL*6&h@&1*=rdl90r;d-zX&6;(0s9d_UO^IDe3@jUe^Ftl*U(c@}$|w&C}L+Q_g| zqH4SNfS@e!^P0+HFfkJ3Ay{3EAto1B%Ja1(VV{+Kp|xLl#ong#ysK!q-(S@fN7f;n zi~nSxdvF?OYdqBkAeXL_FkOYry)Xmi(!0IxL+-ZZT_muM5{@owkccst!*5`D z7~M6e8=yywCzN^d(jejxno}N52FM@(8P$4RZOgOSUnh1shDK#uPhn-gFZAC#h)fOmRRlRnYhS0x<+EY z7p^EHnV&&ikmTZgm{BhD?yMXox?0w3>jNoQ$4x?7q#0zH6t))^4_rhypreuKR2@AC zOK_~xE3ZM@@5MCMIs)?tbWA|(bg!l7Y;K8C0E>pvbS1>iVJj9F%=Y@}F+NG7-N z0pVcHu>}L={lxa2Po=0U`nE0_^SqCd&p!ZO$Qx>GK&j2~LuBg!bSP~-=*_gWXzI>KD^+ zA{EZ4l(X2UyPrGxI0_J?-sO-f++0Kwdd}_3u_+hsvhgyd^P&Wlf@=eExQ+J7^<*0-O_7|ZIkjc$RIz*-!?#&Fo+%*x#>stY<`eW%gFmc=sn2S z`Qyvc1%x4Z+ESAYul}FK_5h-_Pi{t1kt0d5g`a8AT;-^fWh!ZYoAmDbOQYu%)&PB} z&-YKkwkg8esP7|dZ#|MPJDLUX3DaQ=$H~9%{#czOO@S%r=#bUmGac)@I&Z=M%P$&$ zU+rIyQ%f-B^8+;rEZ^hp_^MfwPbZr_GS3s2PcoxCJi5@4lvBM?Y$WpYImsx5DS0EL zjO4ZnlJ?YMEHOulrvF(#bodkD5CrN`o%yZfNge!L1wlf>@I8#~?Y&%*?5^D7am=i3 z#vYCv4*Du#HUZ(aW#ueM_Fv>pMJFg@hLJ*L~Mj9^mV+uCG zO#VR2=EabT3E}{-fh|(Q0vAZ|BY+aI7RTw+-!0eSe}B$a4#_4E&p*PH@|8OEki1I* z<6LdSkWW352NH{Hah%v4%8n44EwHRf%S#)_X1r}XD8S}yk!9$tAF|1biFBL_^LKfK z!y>HJ+P4JsHJkLsC!CO@wMP8uMdh;)eP`EN>YrVoh?X?OeE9WM|Gd#Ksf-zFy}vmP z7@kncfd$b1_3vwME~Zyv2s(&L+k68E%28Lk!$l&0reDEo@^;l_@Y!?|fICl-;5_6!xaJ8MS^Ej@x{8hnM$?D@pER=2|#f}|EfGtQH_7yR_tevb^6Qvu;Eo#7|3?S z{8x3Or!|&WLHLt%LPSTE>jbt)^p^H*p<{VoziE2wKk`sC9!kPvp(Y4v60Eah9|`FK zQYHrI%h_Y^-Lvwl!8B{_c=G+ukBh|H`2nOM5z@Rvc%n{IUv%%n(VOT3=)fOgL}kyX zCNpJEj>uL)v}`98@a128K4A9_CIc6*S(JH z%tB^|b{+(Vk;63=Heo4sV3m9O*iPn}BRTv^OP@DF5%3PPqk~Fm1g8f&A?V9AD`S?46%hWUH!$#= zRgI;6=(yb-cs(Fzuj~9HoK<2u%WP-M|&Te;oT{qJ!H#MfHcDfdF z&NB7W!*S-P|Lt@H3lJ%V(!FRpT7S?B{a*TrcE$1Wiup!*PB!lNeKZ^hGz54N3qoR& zC1?jiR)!c)(vBqCiOU8oE(`-Uq5K0|*)>eSb#1%VYbGwjr|hH&o`&wke0(Q&lKX-^ zZA6uEw?3$oY%d9m(O6X?1AwA+4DU2-(}K4IfsP5O1gN7JP#sF%sUnLXij(qAm>$z0 z&YU-VC)&TE9h*ed?!X4JJ_H$G01>_BkJ7=K&Fq+IkX>eh&OZV%ly0m@O4C3j^@;-t+q>*5ico6k%Jg15gA>-3jxc!I5+A6d8 z;ZH+d>Pk2a0f$BsOlM2&m$`yK$EO1k2yNIZmBVXI_;_UJK*mRr<~+sDNVH{D624W` zJGkmjOZTtSOYl`iM|#=8$xqS&sCL<&Zp{B>8FLaxCj z`QIWBjp4k&q@gbsP43#ya%sJY0N2Eri9#cYkTsAsW9WWW!O~UwSXl>lTEMDT*)q_2 zQUa1!bpc-KXwLG74cd-by}(i9wk@=m4fb{c_c1@l%T)0DOm=fj)Esp&|3wzn_)08~vm0Qei2tOm0r&BNS_ z+siWuGan&#o6HwQi{bf6C#XuFZa7XOqX)NL&9}B4AuD&V-(}`{Bsw}*O>|sfdC|&L z+e?Mn@k?tIb-HB(_E1WEED@)o)UKWGFxhXYa`&W+mh(ZtVed%K_3@MEx3qA}pUuN~ zAi=^8EYf2Ih=rT018tji+4tq_C%3eWj9*+yJ8O;HW`=RuB@dzqI>;mBU|4SR^<$E@ zKA@Z9(exM!QAE;|U>atkt+7i*~!rlMpp}=%T0fHxob^Xyoy8yE35ys@;TN z!~Qbi(d*#i-9>@}qld>ZzwtL!%=SxMvUnx!D?N-ykDqiU%g5TznCTffqMvk!n$83H zz2w)SQ$bbyiTDY;LbG{9f_-k&I~m`Pii_d6K_EdX=2r-wipqUW*W{Lu2=Ih+DCaDI zBf97xAOsvfP#f%P7=G-dD?~$7`|`{(tvCHD1O+AOXT15Jl}YY#-(r$;7oW;09}3v# z@p@kMm@S>R@qLC_9xg62OjNEa+MP~tlEq??)RR_`*UAg=3l7%gd~yaFEj*Q(SFx-l zboj^GD=?r>7z_6ph+w*F(aY^czW1p1TBs4|$@3$Mrw4viA^K)dX>6}F?zD8fn;yy} z?(G+(?bL@Qe56?#rN2>iGRLcFCZ=np#p^r-D@Zc+G&;wbVPTk`f(YEwD^vRDiX!D0 z5vAXU4_O*|@g~UNFXwW0EHt!-6n?zh_}v7CM^3{OxP09C13%A63}ikYKvq0r=Xww0 zGI2GsQ+R!mpYaZ>Jx>jts7L%N$AOzSNJ4ZyRAcg*t}(a0;3c$@w$MUZ?ZHYHHaP1S zwT%u%eOZhWP*$^CpX6|03Ex{{E-toXi26f@>7Mlc?Q)WdbjV0AmqYnGVd^-VGzt9b zFbgJLeO?)KmE=&MEigeRJV6INoM_PR)|m{Qxo+xeYZ71a$1CCz#d=1C-vTg@(S$$EudsG(mv))^2JwLby$>H zyJZ`&R;A@&npbim=`%zCx(vnoF7+D~7`I=QQhqDP-!bd-%nMr5V*;&+Z38Jfg2Z&s zxvWK>@LTFdCQe1PMJaTh?*!(=dfTR!zNUWcKsgN#5o9K;Z@kunt05vjR<<8| zOV5OD+`|wufTsFA=yzZPei_Y?XyWJ6a(pZ^pfsQ(qwm%|pJU6vF40J&TWwj6JoRvq zC0QB5k!w;^?roKoky8lmVu@Mjn}C zESmroLLEes?mF1s4+C}t5e+0-7^m@mYL;QY1hp=XUkWfGfBy^zLWjWsjh6k6uR>_K zf;-IpMZHKSDkZ&GkeH7J1&VtoK5Yz-#nzJAzsPx1dAboYFl#D-&hPDo0(PAk{0u+0cxxXj|$ENxvL8Wu=DL;9XqK)lP# z%>KZ|7QRix-_K}`ppbi!ztaefIi~|kQdnx)r+WnYoY~ISDJyUZKH%NHX3w|Q_7}Xh z{^`+Yk*|WX3&j@B1eTZxFP{5R&rLg!fwpT*g5Jk_i_a*+@L1*tOhVhiUCQK&uufKs zIrUOaZ~fH=#Akd~jKu&}j;wt*m|-W5`9$9Q3)`=W&S}ePsgv>cxgzmNo=EBe$B4>}Px;WzpxA~5z+>>Fp+%tO;&>~EYuH~T7@{s?>! zU8unyefKwmxq0ov3AFD)zFk16@e6K@Hhzqv*k=$@?U8MDJ4JP~*HKnZm_XZ*m3{tpI98QpS2}MO9*cbV$En0|^Q9 zgogo>(%*yxT>|7QavG|InyNHwM;q~7seUVCs`35zz431~tHCaXVJhHn=yX`)he?M^ zk-m%V=K!grVi|4>P#`*xd9W@xCJVe5c>(f-W#945W#k>fhZcu4`f1lEt98`2mryU} zB{nv27MIICJb2h*ga&#H92Az>YTAEzab+SbRGr{iPLHeuU23~>t_dWMK$1^7RE_D& z-B98)Q+AMmycnwlfxf^ag1#zaCi)!f-X2wZt-Fl_m|ZQb28eOz_rf1VVQ{ZZ0&cZj zX9<=UOU(QjZ`#K0^*sHl)XMqWrk zLew$eWFTsJu_LX4{yHEUp6@SV!OO-D=DCDwFx6Zw!bqQdCD5aR{&7$H?Ykfm{D~=~ zE0dmN7D4KFt!44A6l;}fwelPGQ25X2S zjT=_Yl;tsvhbP;J4jVkNtmI$#o&tRU$n?!tQcyzG0s&t4sGo;9VY-3JY^bU7Zv)fp z#mU*S$-trSB&(KXc~YINGbztWYO`A?Hax`zAL{~B$u?T^egAJYK4bMp2j7CK#GceQ zX6??YKqnj!>`ZH_PjFloGzXZv*)_^l21y>(>TW6?=FG=yA zG$oO`hGZPKQ0kHC@6dpRG%mpfOJh>(R_lj?@hR1YY0jEWF;n=r=5LZP)|~RrK>rOm z5(ltm96>%-A3m*Tg{UQwI_Fp3Hx=bOUhFM@ZUiz%orFh`XpyJ`OWJS~Ch<-7iW8

&Zi^@ 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 diff --git a/docs/package-lock.json b/docs/package-lock.json index 9e746a36..8b3f5708 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -11,66 +11,12 @@ "npm-watch": "^0.11.0" } }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -99,28 +45,6 @@ "node": ">=8" } }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -143,97 +67,6 @@ "node": ">=8" } }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", @@ -255,83 +88,12 @@ "fsevents": "~2.3.2" } }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -341,75 +103,6 @@ "ms": "^2.1.1" } }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -436,18 +129,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -460,49 +141,6 @@ "node": ">= 6" } }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -512,60 +150,18 @@ "node": ">=4" } }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -578,18 +174,6 @@ "node": ">=8" } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -599,15 +183,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -620,34 +195,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -657,117 +204,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -780,12 +216,6 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -793,9 +223,9 @@ "dev": true }, "node_modules/nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz", + "integrity": "sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -805,10 +235,10 @@ "minimatch": "^3.0.4", "pstree.remy": "^1.1.8", "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" + "undefsafe": "^2.0.5" }, "bin": { "nodemon": "bin/nodemon.js" @@ -845,15 +275,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/npm-watch": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/npm-watch/-/npm-watch-0.11.0.tgz", @@ -867,48 +288,6 @@ "npm-watch": "cli.js" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -921,64 +300,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -1005,39 +332,6 @@ "node": ">=8.10.0" } }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1067,33 +361,27 @@ "semver": "bin/semver" } }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "node_modules/simple-update-notifier": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", + "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", "dev": true, "dependencies": { - "semver": "^6.3.0" + "semver": "~7.0.0" }, "engines": { - "node": ">=8" + "node": ">=8.10.0" } }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", - "dev": true - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -1103,41 +391,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -1159,15 +412,6 @@ "readable-stream": "3" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1192,215 +436,26 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } }, "dependencies": { - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -1423,104 +478,23 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "fill-range": "^7.0.1" } }, "chokidar": { @@ -1539,68 +513,12 @@ "readdirp": "~3.6.0" } }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -1610,63 +528,6 @@ "ms": "^2.1.1" } }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1683,15 +544,6 @@ "dev": true, "optional": true }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -1701,88 +553,24 @@ "is-glob": "^4.0.1" } }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "requires": { - "ini": "2.0.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1792,27 +580,12 @@ "binary-extensions": "^2.0.0" } }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1822,114 +595,12 @@ "is-extglob": "^2.1.1" } }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1939,12 +610,6 @@ "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1952,9 +617,9 @@ "dev": true }, "nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz", + "integrity": "sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A==", "dev": true, "requires": { "chokidar": "^3.5.2", @@ -1963,10 +628,10 @@ "minimatch": "^3.0.4", "pstree.remy": "^1.1.8", "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" + "undefsafe": "^2.0.5" } }, "nopt": { @@ -1984,12 +649,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true - }, "npm-watch": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/npm-watch/-/npm-watch-0.11.0.tgz", @@ -2000,98 +659,18 @@ "through2": "^4.0.2" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -2112,33 +691,6 @@ "picomatch": "^2.2.1" } }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -2151,29 +703,23 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "simple-update-notifier": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", + "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", "dev": true, "requires": { - "semver": "^6.3.0" + "semver": "~7.0.0" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } }, - "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", - "dev": true - }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -2183,32 +729,6 @@ "safe-buffer": "~5.2.0" } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -2227,12 +747,6 @@ "readable-stream": "3" } }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2251,133 +765,17 @@ "nopt": "~1.0.10" } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } } diff --git a/docs/package.json b/docs/package.json index c5c083e3..052503a5 100644 --- a/docs/package.json +++ b/docs/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "scripts": { "docfx": "npm-watch build_serve", - "build_serve": "docfx build .\\docfx.json --serve" + "build_serve": "docfx metadata .\\docfx.json && docfx build .\\docfx.json --serve" }, "watch": { "build_serve": { diff --git a/docs/templates/material/styles/main.css b/docs/templates/material/styles/main.css index 79d8fdf0..a4ebcf5b 100644 --- a/docs/templates/material/styles/main.css +++ b/docs/templates/material/styles/main.css @@ -1,9 +1,9 @@ /* COLOR VARIABLES*/ :root { - --header-bg-color: #3B75BB; - --header-ft-color: #fff; - --highlight-light: #8AA1CF; - --highlight-dark: #2C77CC; + --header-bg-color: #fff; + --header-ft-color: #3b75bb; + --highlight-light: #8aa1cf; + --highlight-dark: #2c77cc; --accent-dim: #e0e0e0; --accent-super-dim: #f3f3f3; --font-color: #34393e; From be540733c82de7ba9cf075fabd85c88b4967a732 Mon Sep 17 00:00:00 2001 From: James Croft Date: Tue, 30 Aug 2022 16:48:13 +0100 Subject: [PATCH 2/3] Updated README and added project specific README files --- README.md | 75 +++++++++++-------- src/Directory.Build.props | 5 ++ src/MADE.Collections/MADE.Collections.csproj | 10 +-- src/MADE.Collections/README.md | 45 +++++++++++ .../MADE.Data.Converters.csproj | 11 +-- src/MADE.Data.Converters/README.md | 47 ++++++++++++ src/MADE.Data.EFCore/MADE.Data.EFCore.csproj | 12 +-- src/MADE.Data.EFCore/README.md | 45 +++++++++++ .../MADE.Data.Serialization.csproj | 6 +- src/MADE.Data.Serialization/README.md | 41 ++++++++++ ...DE.Data.Validation.FluentValidation.csproj | 8 +- .../README.md | 43 +++++++++++ .../MADE.Data.Validation.csproj | 24 +----- src/MADE.Data.Validation/README.md | 63 ++++++++++++++++ src/MADE.Diagnostics/MADE.Diagnostics.csproj | 8 +- src/MADE.Diagnostics/README.md | 43 +++++++++++ src/MADE.Foundation/MADE.Foundation.csproj | 7 +- src/MADE.Foundation/README.md | 43 +++++++++++ src/MADE.Networking/MADE.Networking.csproj | 12 +-- src/MADE.Networking/README.md | 51 +++++++++++++ src/MADE.Runtime/MADE.Runtime.csproj | 9 +-- src/MADE.Runtime/README.md | 44 +++++++++++ src/MADE.Testing/MADE.Testing.csproj | 8 +- src/MADE.Testing/README.md | 41 ++++++++++ src/MADE.Threading/MADE.Threading.csproj | 9 +-- src/MADE.Threading/README.md | 42 +++++++++++ src/MADE.Web.Mvc/MADE.Web.Mvc.csproj | 9 +-- src/MADE.Web.Mvc/README.md | 43 +++++++++++ src/MADE.Web/MADE.Web.csproj | 11 +-- src/MADE.Web/README.md | 45 +++++++++++ 30 files changed, 723 insertions(+), 137 deletions(-) create mode 100644 src/MADE.Collections/README.md create mode 100644 src/MADE.Data.Converters/README.md create mode 100644 src/MADE.Data.EFCore/README.md create mode 100644 src/MADE.Data.Serialization/README.md create mode 100644 src/MADE.Data.Validation.FluentValidation/README.md create mode 100644 src/MADE.Data.Validation/README.md create mode 100644 src/MADE.Diagnostics/README.md create mode 100644 src/MADE.Foundation/README.md create mode 100644 src/MADE.Networking/README.md create mode 100644 src/MADE.Runtime/README.md create mode 100644 src/MADE.Testing/README.md create mode 100644 src/MADE.Threading/README.md create mode 100644 src/MADE.Web.Mvc/README.md create mode 100644 src/MADE.Web/README.md diff --git a/README.md b/README.md index 2686b9cc..188ab100 100644 --- a/README.md +++ b/README.md @@ -2,47 +2,46 @@ # MADE.NET -MADE.NET is a toolkit of easy-to-use extensions, helpers, and controls to make app development easier for .NET developers. +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Collections.svg)](https://www.nuget.org/profiles/made-apps) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) -Whether you're building an ASP.NET Core Web API or a native UI application with Uno Platform, MADE.NET has something for everyone. +MADE.NET is a suite of libraries built on the boilerplate, reusable components, services, extensions, and helpers that we all drop into our projects. With MADE.NET, you can get all of these in one place, easy to use and consume, to make app development easier for you. -MADE.NET has been built on common code from projects built by the MADE team, and is now a home for all those bits of code that you know you will reuse in another project! +Whether you're building an ASP.NET Core API or a native app experience with MAUI, MADE.NET has something for everyone. -## Support MADE.NET ♥ - -As many developers know, projects like MADE.NET are built and maintained in spare time. If you find this project useful, please **Star** the repo and if possible, sponsor the project development on GitHub. +**[Discover what's new in MADE.NET](https://github.com/MADE-Apps/MADE.NET/releases)** -## Build Status +## Getting started ⭐ -| Build | Status | Current Version | -| ------ | ------ | ------ | -| Packages | [![CI](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) | [![NuGet](https://img.shields.io/nuget/v/MADE.Runtime)](https://www.nuget.org/profiles/made-apps) | -| Docs | [![Docs](https://github.com/MADE-Apps/MADE.NET/actions/workflows/docs.yml/badge.svg)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/docs.yml) | N/A | +To start building your own applications with the MADE.NET libraries, you can install any of the libraries into your dotnet application. -## Installation 💾 +```bash +dotnet add package MADE.{Package} +``` -[MADE.NET](https://www.nuget.org/profiles/made-apps) components are publicly available via NuGet. Each available package is detailed below. +Or by adding any of the MADE.NET packages in your NuGet package manager of choice. -| Package | Current | Preview | Downloads | -| ------ | ------ | ------ | ------ | -| Collections | [![NuGet](https://img.shields.io/nuget/v/MADE.Collections)](https://www.nuget.org/packages/MADE.Collections/) | [![Nuget](https://img.shields.io/nuget/vpre/MADE.Collections.svg)](https://www.nuget.org/packages/MADE.Collections/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Collections.svg)](https://www.nuget.org/packages/MADE.Collections) | -| Data.Converters | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Converters)](https://www.nuget.org/packages/MADE.Data.Converters/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.Converters)](https://www.nuget.org/packages/MADE.Data.Converters/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Converters.svg)](https://www.nuget.org/packages/MADE.Data.Converters) | -| Data.EFCore | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.EFCore)](https://www.nuget.org/packages/MADE.Data.EFCore/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.EFCore)](https://www.nuget.org/packages/MADE.Data.EFCore/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.EFCore.svg)](https://www.nuget.org/packages/MADE.Data.EFCore) | -| Data.Serialization | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Serialization)](https://www.nuget.org/packages/MADE.Data.Serialization/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.Serialization)](https://www.nuget.org/packages/MADE.Data.Serialization/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Serialization.svg)](https://www.nuget.org/packages/MADE.Data.Serialization) | -| Data.Validation | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Validation)](https://www.nuget.org/packages/MADE.Data.Validation/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.Validation)](https://www.nuget.org/packages/MADE.Data.Validation/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Validation.svg)](https://www.nuget.org/packages/MADE.Data.Validation) | -| Data.Validation.FluentValidation | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Validation.FluentValidation)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.Validation.FluentValidation)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Validation.FluentValidation.svg)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation) | -| Diagnostics | [![NuGet](https://img.shields.io/nuget/v/MADE.Diagnostics)](https://www.nuget.org/packages/MADE.Diagnostics/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Diagnostics)](https://www.nuget.org/packages/MADE.Diagnostics/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Diagnostics.svg)](https://www.nuget.org/packages/MADE.Diagnostics) | -| Foundation | [![NuGet](https://img.shields.io/nuget/v/MADE.Foundation)](https://www.nuget.org/packages/MADE.Foundation/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Foundation)](https://www.nuget.org/packages/MADE.Foundation/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Foundation.svg)](https://www.nuget.org/packages/MADE.Foundation) | -| Networking | [![NuGet](https://img.shields.io/nuget/v/MADE.Networking)](https://www.nuget.org/packages/MADE.Networking/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Networking)](https://www.nuget.org/packages/MADE.Networking/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Networking.svg)](https://www.nuget.org/packages/MADE.Networking) | -| Runtime | [![NuGet](https://img.shields.io/nuget/v/MADE.Runtime)](https://www.nuget.org/packages/MADE.Runtime/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Runtime)](https://www.nuget.org/packages/MADE.Runtime/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Runtime.svg)](https://www.nuget.org/packages/MADE.Runtime) | -| Testing | [![NuGet](https://img.shields.io/nuget/v/MADE.Testing)](https://www.nuget.org/packages/MADE.Testing/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Testing)](https://www.nuget.org/packages/MADE.Testing/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Testing.svg)](https://www.nuget.org/packages/MADE.Testing) | -| Threading | [![NuGet](https://img.shields.io/nuget/v/MADE.Threading)](https://www.nuget.org/packages/MADE.Threading/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Threading)](https://www.nuget.org/packages/MADE.Threading/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Threading.svg)](https://www.nuget.org/packages/MADE.Threading) | -| Web | [![NuGet](https://img.shields.io/nuget/v/MADE.Web)](https://www.nuget.org/packages/MADE.Web/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Web)](https://www.nuget.org/packages/MADE.Web/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Web.svg)](https://www.nuget.org/packages/MADE.Web) | -| Web.Mvc | [![NuGet](https://img.shields.io/nuget/v/MADE.Web.Mvc)](https://www.nuget.org/packages/MADE.Web.Mvc/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Web.Mvc)](https://www.nuget.org/packages/MADE.Web.Mvc/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Web.Mvc.svg)](https://www.nuget.org/packages/MADE.Web.Mvc) | +Here's a complete list of available packages: -## Contributing 🚀 - -Looking to help build MADE.NET? Take a look through our [contribution guidelines](CONTRIBUTING.md). We actively encourage you to jump in and help with any issues! +| Package | Download | +| --- | --- | +| Collections | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Collections.svg)](https://www.nuget.org/packages/MADE.Collections) | +| Data.Converters | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Converters.svg)](https://www.nuget.org/packages/MADE.Data.Converters) | +| Data.EFCore | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.EFCore.svg)](https://www.nuget.org/packages/MADE.Data.EFCore) | +| Data.Serialization | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Serialization.svg)](https://www.nuget.org/packages/MADE.Data.Serialization) | +| Data.Validation | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Validation.svg)](https://www.nuget.org/packages/MADE.Data.Validation) | +| Data.Validation.FluentValidation | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Validation.FluentValidation.svg)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation) | +| Diagnostics | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Diagnostics.svg)](https://www.nuget.org/packages/MADE.Diagnostics) | +| Foundation | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Foundation.svg)](https://www.nuget.org/packages/MADE.Foundation) | +| Networking | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Networking.svg)](https://www.nuget.org/packages/MADE.Networking) | +| Runtime | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Runtime.svg)](https://www.nuget.org/packages/MADE.Runtime) | +| Testing | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Testing.svg)](https://www.nuget.org/packages/MADE.Testing) | +| Threading | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Threading.svg)](https://www.nuget.org/packages/MADE.Threading) | +| Web | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Web.svg)](https://www.nuget.org/packages/MADE.Web) | +| Web.Mvc | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Web.Mvc.svg)](https://www.nuget.org/packages/MADE.Web.Mvc) | ## Building MADE.NET 🛠 @@ -55,6 +54,18 @@ You can build the solution using Visual Studio with the following workloads inst - Mobile Development with .NET - .NET Core cross-platform development +## Contributing 🤝 + +Contributions, issues, and feature requests are welcome to MADE.NET! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support MADE.NET ♥ + +As many developers know, projects like MADE.NET are built and maintained in spare time. If you find this project useful, please **Star** the repo and if possible, sponsor the project development on GitHub. + ## License MADE.NET is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 133075ef..4dd61a36 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,9 @@ + true + Library + enable true true true @@ -13,6 +16,7 @@ https://github.com/MADE-Apps/MADE.NET LICENSE ProjectIcon.jpg + README.md https://github.com/MADE-Apps/MADE.NET/releases en true @@ -22,6 +26,7 @@ + diff --git a/src/MADE.Collections/MADE.Collections.csproj b/src/MADE.Collections/MADE.Collections.csproj index 1c1dc1a7..d399800c 100644 --- a/src/MADE.Collections/MADE.Collections.csproj +++ b/src/MADE.Collections/MADE.Collections.csproj @@ -2,17 +2,11 @@ netstandard2.0 - true MADE.NET Collections - This package includes: - - CollectionExtensions for extending collection objects with helper methods, such as updating an item or making two collections equal. - - DictionaryExtensions for extending dictionary objects with helper methods, such as adding or updating an item based on a key. - - GenericEqualityComparer for providing a simple IEqualityComparer for objects. - - ObservableItemCollection for providing an ObservableCollection that manages both collection changed and item property changed events. - - QueryableExtensions for extending queryable objects with helper methods, such as chunking the query into batched sizes. + MADE.NET Collections allows you to easily interact with collections, lists, arrays, and dictionaries. - MADE Collections Observable Equality Extensions Dictionary Chunk + MADE Collection List Array Dictionary Queryable Observable Equality Extensions Chunk \ No newline at end of file diff --git a/src/MADE.Collections/README.md b/src/MADE.Collections/README.md new file mode 100644 index 00000000..32733a81 --- /dev/null +++ b/src/MADE.Collections/README.md @@ -0,0 +1,45 @@ +# MADE.NET Collections + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Collections.svg)](https://www.nuget.org/packages/MADE.Collections) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Collections library allows you to easily interact with collections, lists, arrays, and dictionaries with out-of-the-box extensions. It also comes with implementations for new collection types and comparison helpers. + +## Features ⭐ + +- **GenericEqualityComparer** - For providing an equality comparer wrapper for any type. +- **ObservableItemCollection** - An ObservableCollection that manages both collection change events as well as contained item property change events. +- **CollectionExtensions** - Extending collection objects with methods for easily updating an existing object in the collection, or updating a collection to equal each other. [Discover the extensions available for collections in our documentation](https://made-apps.github.io/MADE.NET/api/MADE.Collections.CollectionExtensions.html). +- **DictionaryExtensions** - Providing helper methods for adding or updating items in a dictionary based on a given key, or getting a value or default for a given key. [Find out more about extensions for dictionaries](https://made-apps.github.io/MADE.NET/api/MADE.Collections.DictionaryExtensions.html). +- **QueryableExtensions** - A collection of extensions for queryable objects that allow chunking queries into batched sizes. [Explore more helpers for queryable objects](https://made-apps.github.io/MADE.NET/api/MADE.Collections.QueryableExtensions.html). + +## Getting started + +### Get the library + +You can install the Collections library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Collections +``` + +Or by adding the `MADE.Collections` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Data.Converters/MADE.Data.Converters.csproj b/src/MADE.Data.Converters/MADE.Data.Converters.csproj index 185b457b..c037feba 100644 --- a/src/MADE.Data.Converters/MADE.Data.Converters.csproj +++ b/src/MADE.Data.Converters/MADE.Data.Converters.csproj @@ -2,17 +2,12 @@ netstandard2.0;uap10.0.17763 - true MADE.NET Data Converters - This package includes: - - BooleanToStringValueConverter for converting between a boolean and a given string value. - - DateTimeExtensions for extending DateTime objects with helper methods, such as getting current age or setting time. - - DateTimeToStringValueConverter for converting between a DateTime and string value. - - MathExtensions for providing additional mathematical functions such as Degrees to Radians. - - StringExtensions for converting a string to other value types such as int, float, double, or boolean. + MADE.NET Data Converters provide out-of-the-box value converters for taking values of one type and changing them to another. + The advantage of the IValueConverter is that they can be chained together. The library also contains extension helpers for converting values directly. - MADE Data Value Converter DateTime Math + MADE Data Converter ValueConverter Boolean Collection DateTime String Extensions diff --git a/src/MADE.Data.Converters/README.md b/src/MADE.Data.Converters/README.md new file mode 100644 index 00000000..59fa2817 --- /dev/null +++ b/src/MADE.Data.Converters/README.md @@ -0,0 +1,47 @@ +# MADE.NET Data Converters + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Data.Converters.svg)](https://www.nuget.org/packages/MADE.Data.Converters) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Data Converters library provides out-of-the-box value converters for taking values of one type and changing them to another. The advantage of the IValueConverter is that they can be chained together. The library also contains extension helpers for converting values directly. + +## Features ⭐ + +- **BooleanToStringValueConverter** - For converting between a boolean and a specified string value representing true or false. +- **DateTimeToStringValueConverter** - A converter for changing DateTime values to and from string values representing them. +- **StringToBase64StringValueConverter** - Easily convert to and from base64 strings with a value converter. +- **BooleanExtensions** - Providing helper methods for directly formatting boolean values as specified strings. [Find out more about extensions for boolean values](https://made-apps.github.io/MADE.NET/api/MADE.Data.Converters.Extensions.BooleanExtensions.html). +- **CollectionExtensions** - A collection of extensions for converting collections to delimited strings, for example, comma-separated. [Explore more helpers for collections](https://made-apps.github.io/MADE.NET/api/MADE.Data.Converters.Extensions.CollectionExtensions.html). +- **DateTimeExtensions** - Helpful extensions that manipulate DateTime values including rounding to the nearest hour, or retrieving an age based on a date of birth. [Discover all the DateTime converter extensions](https://made-apps.github.io/MADE.NET/api/MADE.Data.Converters.Extensions.DateTimeExtensions.html). +- **StringExtensions** - Methods that help you to convert string values into other formats such as converting to and from base64, or safely converting a string to an int, double, float, or boolean. [Jump into our docs to find all our string extensions](https://made-apps.github.io/MADE.NET/api/MADE.Data.Converters.Extensions.StringExtensions.html). + +## Getting started + +### Get the library + +You can install the Data Converters library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Data.Converters +``` + +Or by adding the `MADE.Data.Converters` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Data.EFCore/MADE.Data.EFCore.csproj b/src/MADE.Data.EFCore/MADE.Data.EFCore.csproj index e1a3bd4a..da1b0342 100644 --- a/src/MADE.Data.EFCore/MADE.Data.EFCore.csproj +++ b/src/MADE.Data.EFCore/MADE.Data.EFCore.csproj @@ -2,17 +2,11 @@ net6.0 - true - MADE.NET Entity Framework + MADE.NET for EF Core - This package includes: - - DbContextExtensions for extending DbContext objects with helper methods, such as updating an item asynchronously and removing items matching a specified criteria. - - EntityBase for providing a base definition for an entity within a DbContext, including a primary key, created and updated dates. - - UtcDateTimeConverter for ensuring that DateTime values are stored and retrieving in UTC format. - - QueryableExtensions for extending IQueryable objects with helper methods, such as filtering, ordering, and paging. + MADE.NET for EF Core builds on the base Entity Framework library to provide base classes and helpers for maintaining data in databases. - MADE EFCore EntityFramework - + MADE EFCore Entity Framework Extensions Queryable DbContext diff --git a/src/MADE.Data.EFCore/README.md b/src/MADE.Data.EFCore/README.md new file mode 100644 index 00000000..86497260 --- /dev/null +++ b/src/MADE.Data.EFCore/README.md @@ -0,0 +1,45 @@ +# MADE.NET for EF Core + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Data.EFCore.svg)](https://www.nuget.org/packages/MADE.Data.EFCore) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET for EF Core library builds on the base Entity Framework library to provide base classes and helpers for maintaining data in databases. + +## Features ⭐ + +- **EntityBase** - A base definition for an EF context object that includes a default primary key, as well as created and updated dates. It also has backing interfaces so you can pick and choose the bits you need to create your own. [Find out more about the EntityBase and the interfaces in our documentation](https://made-apps.github.io/MADE.NET/api/MADE.Data.EFCore.html). +- **UtcDateTimeConverter** - A converter for EF contexts to ensure that date values of models in the context are stored with a UTC kind. +- **DbContextExtensions** - A collection of helper extensions to `DbContext` objects that allow you to easily update and save changes to entities, set `EntityBase` dates automatically when saving, or safely try an action on a context. [Discover the extensions for DbContext instances](https://made-apps.github.io/MADE.NET/api/MADE.Data.EFCore.Extensions.DbContextExtensions.html). +- **EntityBaseExtensions** - Methods that help to configure the `EntityBase` models when creating an entity type configuration for EF, such as configuring the primary key and date values. [Explore more helpers for EntityBase](https://made-apps.github.io/MADE.NET/api/MADE.Data.EFCore.Extensions.EntityBaseExtensions.html). +- **QueryableExtensions** - Helpful extensions for EF `IQueryable` functions that provide support for pagination and smarter ordering capabilities. [Explore all the queryable extensions](https://made-apps.github.io/MADE.NET/api/MADE.Data.EFCore.Extensions.QueryableExtensions.html). + +## Getting started + +### Get the library + +You can install the EF Core library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Data.EFCore +``` + +Or by adding the `MADE.Data.EFCore` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Data.Serialization/MADE.Data.Serialization.csproj b/src/MADE.Data.Serialization/MADE.Data.Serialization.csproj index d9bc7cbf..0176debd 100644 --- a/src/MADE.Data.Serialization/MADE.Data.Serialization.csproj +++ b/src/MADE.Data.Serialization/MADE.Data.Serialization.csproj @@ -2,13 +2,11 @@ netstandard2.0 - true MADE.NET Data Serialization - This package includes: - - JsonTypeMigrationSerializationBinder for migrating type names within a serialized JSON object. + MADE.NET Data Serialization provides out-of-the-box serialization helpers and extensions for ensuring data quality when serializing to and from different formats such as JSON and XML. - MADE Data Serialization JSON + MADE Data Serialization Extensions JSON XML diff --git a/src/MADE.Data.Serialization/README.md b/src/MADE.Data.Serialization/README.md new file mode 100644 index 00000000..1200a2f5 --- /dev/null +++ b/src/MADE.Data.Serialization/README.md @@ -0,0 +1,41 @@ +# MADE.NET Data Serialization + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Data.Serialization.svg)](https://www.nuget.org/packages/MADE.Data.Serialization) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Data Serialization library provides out-of-the-box serialization helpers and extensions for ensuring data quality when serializing to and from different formats such as JSON and XML. + +## Features ⭐ + +- **JsonTypeMigrationSerializationBinder** - A JSON.NET serialization binder that allows an object type serialized to a JSON string can be migrated to a different object type. Useful when JSON has been serialized with the `TypeNameHandling` set to **All**. [Find out more about how to use the binder in your own projects](https://made-apps.github.io/MADE.NET/articles/features/data-serialization.html#handling-type-changes-in-json-objects-serialized-with-jsonnet-with-typenamehandling-set-to-all). + +## Getting started + +### Get the library + +You can install the Data Serialization library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Data.Serialization +``` + +Or by adding the `MADE.Data.Serialization` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Data.Validation.FluentValidation/MADE.Data.Validation.FluentValidation.csproj b/src/MADE.Data.Validation.FluentValidation/MADE.Data.Validation.FluentValidation.csproj index e38d06bc..fdd4c30e 100644 --- a/src/MADE.Data.Validation.FluentValidation/MADE.Data.Validation.FluentValidation.csproj +++ b/src/MADE.Data.Validation.FluentValidation/MADE.Data.Validation.FluentValidation.csproj @@ -2,12 +2,12 @@ netstandard2.0 - true - MADE.NET Data Validation (FluentValidation) + MADE.NET Data Validation for FluentValidation - This package includes extended support for FluentValidation validators in MADE.NET. + MADE.NET Data Validation for FluentValidation builds on the base FluentValidation library to provide an easy-to-use validator collection implementation that can chain together validators for a single value. + Built on top of the MADE.NET Data Validation library, you also get all the goodness of the two validation libraries in one place. Bring the best of both worlds together! - MADE Data Validation FluentValidation + MADE Data Validation Extensions FluentValidation MADE.Data.Validation diff --git a/src/MADE.Data.Validation.FluentValidation/README.md b/src/MADE.Data.Validation.FluentValidation/README.md new file mode 100644 index 00000000..b83812f7 --- /dev/null +++ b/src/MADE.Data.Validation.FluentValidation/README.md @@ -0,0 +1,43 @@ +# MADE.NET Data Validation for FluentValidation + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Data.Validation.FluentValidation.svg)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Data Validation for FluentValidation library builds on the base FluentValidation library to provide an easy-to-use validator collection implementation that can chain together validators for a single value. + +Built on top of the MADE.NET Data Validation library, you also get all the goodness of the two validation libraries in one place. Bring the best of both worlds together! + +## Features ⭐ + +- **FluentValidatorCollection** - A `List` implementation that supports chaining `IValidator` implementations together for validating a single value using FluentValidation validators. + +## Getting started + +### Get the library + +You can install the Data Validation for FluentValidation library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Data.Validation.FluentValidation +``` + +Or by adding the `MADE.Data.Validation.FluentValidation` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Data.Validation/MADE.Data.Validation.csproj b/src/MADE.Data.Validation/MADE.Data.Validation.csproj index fdc167d1..f9633ddd 100644 --- a/src/MADE.Data.Validation/MADE.Data.Validation.csproj +++ b/src/MADE.Data.Validation/MADE.Data.Validation.csproj @@ -2,30 +2,12 @@ netstandard2.0 - true MADE.NET Data Validation - This package includes: - - AlphaNumericValidator for ensuring a string contains only alphanumeric characters. - - AlphaValidator for ensuring a string contains only alpha characters. - - Base64Validator for ensuring a string is a valid base64 string. - - BetweenValidator for ensuring a value is within a minimum and maximum range. - - EmailValidator for ensuring a value is an email address. - - GuidValidator for ensuring a value is a GUID. - - IpAddressValidator for ensuring a value is a valid IP address. - - LatitudeValidator for ensuring a value is a valid latitude. - - LongitudeValidator for ensuring a value is a valid longitude. - - MacAddressValidator for ensuring a value is a valid MAC address. - - MaxLengthValidator for ensuring a value is below a maximum length. - - MaxValueValidator for ensuring a value is below a maximum value. - - MinLengthValidator for ensuring a value is above a minimum length. - - MinValueValidator for ensuring a value is above a minimum value. - - PredicateValidator for ensuring a value meets the condition of a value predicate. - - RegexValidator for ensuring a value matches a regular expression. - - RequiredValidator for ensuring a value has been provided. - - WellFormedUrlValidator for ensuring a value is a well-formed URL. + MADE.NET Data Validation comes fully loaded with all the value validators you'd expect of any validation library. + Easily get up and running with data validation on value ranges, alphanumeric, email address, min/max lengths, required, regular expressions and more as well as defining your own! - MADE Data Validation RegEx Range Email IpAddress Min Max Required Length + MADE Data Validation Extensions Required Alphanumeric Email Latitude Longitude Length Range RegEx diff --git a/src/MADE.Data.Validation/README.md b/src/MADE.Data.Validation/README.md new file mode 100644 index 00000000..9ba74f7b --- /dev/null +++ b/src/MADE.Data.Validation/README.md @@ -0,0 +1,63 @@ +# MADE.NET Data Validation + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Data.Validation.svg)](https://www.nuget.org/packages/MADE.Data.Validation) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Data Validation library comes fully loaded with all the value validators you'd expect of any validation library. Easily get up and running with data validation on value ranges, alphanumeric, email address, min/max lengths, required, regular expressions and more as well as defining your own! + +## Features ⭐ + +- **Validators** - A collection of out-of-the-box value validators including: + - **AlphaNumericValidator** for values containing only alphanumeric characters + - **AlphaValidator** for values containing only alpha characters + - **Base64Validator** for values being a valid base64 string + - **BetweenValidator** for values being within a minimum and maximum range + - **EmailValidator** for values being a valid email address + - **GuidValidator** for values being a valid GUID + - **IpAddressValidator** for values being a valid IP address + - **LatitudeValidator** for values being a valid latitude + - **LongitudeValidator** for values being a valid longitude + - **MacAddressValidator** for values being a valid MAC address + - **MaxLengthValidator** for values below a maximum length + - **MaxValueValidator** for values below a maximum value + - **MinLengthValidator** for values above a minimum length + - **MinValueValidator** for values above a minimum value + - **PredicateValidator** for values meeting the condition of a value predicate + - **RegexValidator** for values matching a regular expression + - **RequiredValidator** for values that need to be set + - **WellFormedUrlValidator** for values being a well-formed URL +- **ComparableExtensions** - Extending objects inheriting `IComparable` with methods for easily validating whether values are greater or less than others. [Discover the extensions available for comparable objects in our documentation](https://made-apps.github.io/MADE.NET/api/MADE.Data.Validation.Extensions.ComparableExtensions.html). +- **DateTimeExtensions** - Providing helper methods for validating that `DateTime` values are within ranges, or whether given dates are weekdays or weekends. [Find out more about validation extensions for DateTime](https://made-apps.github.io/MADE.NET/api/MADE.Data.Validation.Extensions.DateTimeExtensions.html). +- **MathExtensions** - A collection of extensions for validating numeric values are close to others, greater or less than, or within a range. [Explore more helpers for numeric values](https://made-apps.github.io/MADE.NET/api/MADE.Data.Validation.Extensions.MathExtensions.html). +- **StringExtensions** - Extensions methods for strings that validate whether they contain other phrases with configurable comparison options, or whether a string is like another using wildcard patterns similar to Visual Basic's like operator. [Discover the extensions available for validating strings](https://made-apps.github.io/MADE.NET/api/MADE.Data.Validation.Extensions.StringExtensions.html). + +## Getting started + +### Get the library + +You can install the Data Validation library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Data.Validation +``` + +Or by adding the `MADE.Data.Validation` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Diagnostics/MADE.Diagnostics.csproj b/src/MADE.Diagnostics/MADE.Diagnostics.csproj index a0038ff1..7203d202 100644 --- a/src/MADE.Diagnostics/MADE.Diagnostics.csproj +++ b/src/MADE.Diagnostics/MADE.Diagnostics.csproj @@ -2,15 +2,11 @@ netstandard2.0;uap10.0.17763;xamarinios10;xamarinmac20;MonoAndroid10.0 - true MADE.NET Diagnostics - This package includes: - - AppDiagnostics for providing an application-wide exception handler. - - FileEventLogger for logging debug, info, warning, error, and critical messages to a file. - - StopwatchHelper to help track the time of multiple long running operations. + MADE.NET Diagnostics provides helpers to make debugging and logging results in your applications easier. - MADE Diagnostics EventLog Logger Exception Stopwatch + MADE Diagnostics Extensions Logging EventLog Logger Exception Stopwatch diff --git a/src/MADE.Diagnostics/README.md b/src/MADE.Diagnostics/README.md new file mode 100644 index 00000000..61f960f1 --- /dev/null +++ b/src/MADE.Diagnostics/README.md @@ -0,0 +1,43 @@ +# MADE.NET Diagnostics + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Diagnostics.svg)](https://www.nuget.org/packages/MADE.Diagnostics) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Diagnostics library provides helpers to make debugging and logging results in your applications easier. + +## Features ⭐ + +- **AppDiagnostics** - An global exception handler for applications, with additional native app support for handling exceptions thrown in UWP, Android, and iOS applications. +- **FileEventLogger** - A simple event logger that can store the log to disk, with additional native app support for handling file systems in UWP, Android, and iOS applications. +- **StopwatchHelper** - A wrapper for creating and managing `Stopwatch` instances for calling methods with message outputs that include the detail of the Stopwatch and the elapsed time. Perfect for handling the timing of your code execution without the boilerplate setup for a `Stopwatch`. Run as many for as long as you need them with simple `Start` and `Stop` method calls. + +## Getting started + +### Get the library + +You can install the Diagnostics library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Diagnostics +``` + +Or by adding the `MADE.Diagnostics` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Foundation/MADE.Foundation.csproj b/src/MADE.Foundation/MADE.Foundation.csproj index ca94de7b..d6d248c4 100644 --- a/src/MADE.Foundation/MADE.Foundation.csproj +++ b/src/MADE.Foundation/MADE.Foundation.csproj @@ -2,13 +2,12 @@ netstandard2.0 - true MADE.NET Foundation - This package includes: - - PlatformApiHelper for providing a mechanism of ensuring cross-platform functionality in MADE libraries can be coded safely where APIs are not supported. + MADE.NET Foundation is a base library for MADE.NET that allows platform-specific logic to be defined with a helper for ensuring your code can continue to execute with API availability checks. + You can even use this in your own projects! - MADE Foundation Helpers Type Check Platform Uno + MADE Foundation Extensions Helpers Type Check Platform Uno diff --git a/src/MADE.Foundation/README.md b/src/MADE.Foundation/README.md new file mode 100644 index 00000000..acef3445 --- /dev/null +++ b/src/MADE.Foundation/README.md @@ -0,0 +1,43 @@ +# MADE.NET Foundation + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Foundation.svg)](https://www.nuget.org/packages/MADE.Foundation) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Foundation library is a base library for MADE.NET that allows platform-specific logic to be defined with a helper for ensuring your code can continue to execute with API availability checks. You can even use this in your own projects! + +## Features ⭐ + +- **PlatformApiHelper** - A helper that can check if a `Type`, method, or property of a type is supported by validating the existence of the `PlatformNotSupportedAttribute`. +- **PlatformNotSupportedAttribute** - An attribute that can be applied to a `Type`, method, or property of a type that should not be supported by a given platform. +- **PlatformNotSupportedException** - An exception that can be thrown if a `PlatformNotSupportedAttribute` is found. + +## Getting started + +### Get the library + +You can install the Foundation library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Foundation +``` + +Or by adding the `MADE.Foundation` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Networking/MADE.Networking.csproj b/src/MADE.Networking/MADE.Networking.csproj index db9c2266..3bee15a5 100644 --- a/src/MADE.Networking/MADE.Networking.csproj +++ b/src/MADE.Networking/MADE.Networking.csproj @@ -2,18 +2,12 @@ netstandard2.0 - true MADE.NET Networking - This package includes: - - HttpResponseMessage{T} for deserializing content of a HttpResponseMessage to a specified type. - - HttpResponseMessageExtensions for extending HttpResponseMessage objects with helper methods, such as deserializing the content. - - JsonNetworkRequest instances for simplifying JSON GET, POST, PUT, PATCH, and DELETE requests. - - NetworkRequestManager for handling an HTTP network request queue with success and error callbacks. - - StreamNetworkRequest instances for simplifying data stream GET requests. - - UriExtensions for extending Uri objects with helper methods, such as retrieving a query value. + MADE.NET Networking comes fully loaded with wrappers for easily executing network requests from applications, handling the responses, as well as providing extensions for common URI scenarios. + A perfect companion to any application handling networking. - MADE Networking Json Stream HttpClient + MADE Networking Extensions Json Stream HttpClient diff --git a/src/MADE.Networking/README.md b/src/MADE.Networking/README.md new file mode 100644 index 00000000..f4c870c2 --- /dev/null +++ b/src/MADE.Networking/README.md @@ -0,0 +1,51 @@ +# MADE.NET Networking + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Networking.svg)](https://www.nuget.org/packages/MADE.Networking) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Networking library comes fully loaded with wrappers for easily executing network requests from applications, handling the responses, as well as providing extensions for common URI scenarios. A perfect companion to any application handling networking. + +## Features ⭐ + +- **Network Requests** - A collection of out-of-the-box network request wrappers including: + - **JsonGetNetworkRequest** for executing a GET call with a JSON response + - **JsonPostNetworkRequest** for executing a POST call with a JSON payload and response + - **JsonPutNetworkRequest** for executing a PUT call with a JSON payload and response + - **JsonPatchNetworkRequest** for executing a PATCH call with a JSON payload and response + - **JsonDeleteNetworkRequest** for executing a DELETE call with a JSON response + - **StreamGetNetworkRequest** for executing a GET call with a `Stream` response +- **NetworkRequestManager** - A service that can handle the processing of `NetworkRequest` instances in the background of a running application with callbacks on responses. Useful for when you want a fire-and-forget style networking approach. [Discover how to use the NetworkRequestManager in your apps](https://made-apps.github.io/MADE.NET/features/networking.html#queuing-your-network-requests-using-networkrequestmanager). +- **HttpResponseMessage{T}** - Extending the base `HttpResponseMessage` type to allow deserializing content to a specific type. +- **HttpResponseMessageExtensions** - Providing helper methods for allowing `HttpResponseMessage` responses to be deserialized easily. [Find out more about HttpResponseMessage extensions](https://made-apps.github.io/MADE.NET/api/MADE.Networking.Extensions.HttpResponseMessageExtensions.html). +- **UriExtensions** - A collection of extensions for manipulating URI values such as getting a specific value from a query. [Explore more helpers for URI values](https://made-apps.github.io/MADE.NET/api/MADE.Networking.Extensions.UriExtensions.html). + +## Getting started + +### Get the library + +You can install the Networking library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Networking +``` + +Or by adding the `MADE.Networking` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Runtime/MADE.Runtime.csproj b/src/MADE.Runtime/MADE.Runtime.csproj index 67764a20..449a700b 100644 --- a/src/MADE.Runtime/MADE.Runtime.csproj +++ b/src/MADE.Runtime/MADE.Runtime.csproj @@ -2,16 +2,11 @@ netstandard2.0 - true MADE.NET Runtime - This package includes: - - ReflectionExtensions for extending objects with helper methods, such as retrieving the value by property name string. - - WeakReferenceCallback for providing an approach to callbacks with a WeakReference. - - WeakReferenceEventHandler for providing an approach to event handlers with a WeakReference. + MADE.NET Runtime is a base library that builds on .NET to provide additional types and extensions that you might expect to find in the BCL, but might not exist, such as a WeakReferenceCallback. - MADE Runtime WeakReference Reflection - + MADE Runtime Extensions Chain WeakReference Reflection BCL \ No newline at end of file diff --git a/src/MADE.Runtime/README.md b/src/MADE.Runtime/README.md new file mode 100644 index 00000000..221d1054 --- /dev/null +++ b/src/MADE.Runtime/README.md @@ -0,0 +1,44 @@ +# MADE.NET Runtime + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Runtime.svg)](https://www.nuget.org/packages/MADE.Runtime) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Runtime library is a base library that builds on .NET to provide additional types and extensions that you might expect to find in the BCL, but might not exist, such as a `WeakReferenceCallback`. + +## Features ⭐ + +- **Chain** - A wrapper for an object type that allows you to chain together multiple instances to perform synchronous and asynchronous actions on them handled using `WeakReference`s. +- **WeakReferenceCallback** - An approach to performing callbacks at a later point in time using `WeakReference`s to the originator. Used in the MADE.NET Networking library for handling callbacks to fire-and-forget network requests using the `NetworkRequestManager`. +- **WeakReferenceEventHandler** - Similar to the callback, providing an approach to event handlers using `WeakReference`s. +- **ReflectionExtensions** - Providing helper methods that take advantage of Reflection APIs to get property names or specific property values from objects. [Find out more about reflection extensions](https://made-apps.github.io/MADE.NET/api/MADE.Runtime.Extensions.ReflectionExtensions.html). + +## Getting started + +### Get the library + +You can install the Runtime library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Runtime +``` + +Or by adding the `MADE.Runtime` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Testing/MADE.Testing.csproj b/src/MADE.Testing/MADE.Testing.csproj index b2cc4b47..36cde721 100644 --- a/src/MADE.Testing/MADE.Testing.csproj +++ b/src/MADE.Testing/MADE.Testing.csproj @@ -2,14 +2,12 @@ netstandard2.0 - true MADE.NET Testing - This package includes: - - CollectionAssertExtensions for extending collection objects with helper methods, such as asserting whether a collection is equivalent to another. + MADE.NET Testing provides test framework agnostic helpers and extensions to perform assertions on your defined scenarios. + Whether you like to use MSTest, NUnit, or xUnit, this library will follow you wherever you go! - MADE Testing Assert Collections - + MADE Testing Extensions Assert Collections MSTest NUnit xUnit \ No newline at end of file diff --git a/src/MADE.Testing/README.md b/src/MADE.Testing/README.md new file mode 100644 index 00000000..3b648f03 --- /dev/null +++ b/src/MADE.Testing/README.md @@ -0,0 +1,41 @@ +# MADE.NET Testing + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Testing.svg)](https://www.nuget.org/packages/MADE.Testing) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Testing library provides test framework agnostic helpers and extensions to perform assertions on your defined scenarios. Whether you like to use MSTest, NUnit, or xUnit, this library will follow you wherever you go! + +## Features ⭐ + +- **CollectionAssertExtensions** - Providing assertion helper methods for collection objects to ensure validity that an expected and actual collection are equivalent (have the same items but potentially not in the same order and not equal by reference). [Find out more about collection assertion extensions](https://made-apps.github.io/MADE.NET/api/MADE.Testing.CollectionAssertExtensions.html). + +## Getting started + +### Get the library + +You can install the Testing library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Testing +``` + +Or by adding the `MADE.Testing` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Threading/MADE.Threading.csproj b/src/MADE.Threading/MADE.Threading.csproj index b75ac719..4021374a 100644 --- a/src/MADE.Threading/MADE.Threading.csproj +++ b/src/MADE.Threading/MADE.Threading.csproj @@ -2,15 +2,12 @@ netstandard2.0 - true MADE.NET Threading - This package includes: - - TaskExtensions for extending Task objects with helper methods, such as observing thrown exceptions and ensuring a task collection has completed running. - - Timer for providing an easier to use alternative to the System.Threading.Timer, including start and stop methods. + MADE.NET Threading provides helpers and extensions that help with application scenarios that care about threads. + Amongst the features, you'll find an improved take on the .NET `Timer` implementation to make it easier for you to use in your apps! - MADE Threading Timer Task - + MADE Threading Extensions Timer Task diff --git a/src/MADE.Threading/README.md b/src/MADE.Threading/README.md new file mode 100644 index 00000000..abf2c923 --- /dev/null +++ b/src/MADE.Threading/README.md @@ -0,0 +1,42 @@ +# MADE.NET Threading + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Threading.svg)](https://www.nuget.org/packages/MADE.Threading) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET Threading library provides helpers and extensions that help with application scenarios that care about threads. Amongst the features, you'll find an improved take on the .NET `Timer` implementation to make it easier for you to use in your apps! + +## Features ⭐ + +- **Timer** - Providing an easy-to-use alternative to the `System.Threading.Timer` with `Start` and `Stop` methods. +- **TaskExtensions** - A collection of methods that build on the `Task` type to provide support for ensuring thrown exceptions are observed, and simply call `WhenAll` and `WhenAny` on `Task` collections. [Find out more about extensions for Tasks](https://made-apps.github.io/MADE.NET/api/MADE.Threading.TaskExtensions.html). + +## Getting started + +### Get the library + +You can install the Threading library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Threading +``` + +Or by adding the `MADE.Threading` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Web.Mvc/MADE.Web.Mvc.csproj b/src/MADE.Web.Mvc/MADE.Web.Mvc.csproj index ca24b576..55a2c98a 100644 --- a/src/MADE.Web.Mvc/MADE.Web.Mvc.csproj +++ b/src/MADE.Web.Mvc/MADE.Web.Mvc.csproj @@ -2,14 +2,11 @@ net6.0 - true - MADE.NET Web MVC + MADE.NET for ASP.NET Core MVC - This package includes: - - InternalServerErrorObjectResult for providing an expected 500 response from an API controller. + MADE.NET for ASP.NET Core MVC builds on features of ASP.NET Core MVC to provide additional MVC-specific functionality to improve your web applications. - MADE Web MVC API Requests Responses Exception Handling JSON - + MADE Web ASP MVC API Extensions Response Exception Handling JSON Controller diff --git a/src/MADE.Web.Mvc/README.md b/src/MADE.Web.Mvc/README.md new file mode 100644 index 00000000..133fa5bd --- /dev/null +++ b/src/MADE.Web.Mvc/README.md @@ -0,0 +1,43 @@ +# MADE.NET for ASP.NET Core MVC + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Web.Mvc.svg)](https://www.nuget.org/packages/MADE.Web.Mvc) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET for ASP.NET Core MVC library builds on features of ASP.NET Core MVC to provide additional MVC-specific functionality to improve your web applications. + +## Features ⭐ + +- **InternalServerErrorObjectResult** - For providing an out-of-the-box 500 response error from a controller. +- **JsonResult** - For capturing a result object as a JSON string with a custom status code and serialization settings. +- **ControllerBaseExtensions** - Providing helper methods for `ControllerBase` objects that allow you to return JSON or InternalServerError result objects easily. [Find out more about extensions for controllers](https://made-apps.github.io/MADE.NET/api/MADE.Web.Mvc.Extensions.ControllerBaseExtensions.html). + +## Getting started + +### Get the library + +You can install the ASP.NET Core MVC library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Web.Mvc +``` + +Or by adding the `MADE.Web.Mvc` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). diff --git a/src/MADE.Web/MADE.Web.csproj b/src/MADE.Web/MADE.Web.csproj index 13e4fa96..2bd74268 100644 --- a/src/MADE.Web/MADE.Web.csproj +++ b/src/MADE.Web/MADE.Web.csproj @@ -2,16 +2,11 @@ net6.0 - true - MADE.NET Web + MADE.NET for ASP.NET Core - This package includes: - - HttpContextExceptionsMiddleware for handling web application exceptions with JSON responses for different exception types. - - PaginatedRequest for providing an expected paginated request from an API controller. - - PaginatedResponse for providing an result paginated response from an API controller request. + MADE.NET for ASP.NET Core builds on features of ASP.NET Core to provide better support for your web API or MVC applications, including standardized pagination support, global authenticated user accessor, standardized exception handling with JSON responses, and API versioning. - MADE Web API Requests Responses Exception Handling JSON - + MADE Web ASP MVC API Extensions Request Response Exception Handling JSON Pagination Versioning Authentication Identity diff --git a/src/MADE.Web/README.md b/src/MADE.Web/README.md new file mode 100644 index 00000000..9cbe424d --- /dev/null +++ b/src/MADE.Web/README.md @@ -0,0 +1,45 @@ +# MADE.NET for ASP.NET Core + +[![GitHub release](https://img.shields.io/github/release/MADE-Apps/MADE.NET.svg)](https://github.com/MADE-Apps/MADE.NET/releases) +[![Build status](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/MADE.NET/actions/workflows/ci.yml) +[![Twitter Followers](https://img.shields.io/twitter/follow/jamesmcroft?label=follow%20%40jamesmcroft&style=flat)](https://twitter.com/jamesmcroft) +[![Nuget](https://img.shields.io/nuget/v/MADE.Web.svg)](https://www.nuget.org/packages/MADE.Web) +[![MADE.NET docs](https://img.shields.io/badge/docs-MADE.NET-blue.svg)](https://made-apps.github.io/MADE.NET/) + +The MADE.NET for ASP.NET Core library builds on features of ASP.NET Core to provide better support for your web API or MVC applications, including standardized pagination support, global authenticated user accessor, standardized exception handling with JSON responses, and API versioning. + +## Features ⭐ + +- **HttpContextExceptionsMiddleware** - For handling application-wide exceptions thrown within an HTTP context providing JSON responses for known, registered exception types. +- **AuthenticatedUserAccessor** - For capturing the authenticated user of an HTTP context and providing a wrapper around the `ClaimsPrincipal`. +- **PaginatedRequest** and **PaginatedResponse** - For standardizing the approach to creating a request to retrieve paginated data from a source, and the expected response object that automatically calculates pages based on the request. +- **ApiVersioningExtensions** - Providing helper methods for configuring your web API with versioning support either via query or header. [Find out more about extensions for API versioning](https://made-apps.github.io/MADE.NET/api/MADE.Web.Extensions.ApiVersioningExtensions.html). +- **HttpResponseExtensions** - A collection of extensions for `HttpResponse` objects that wrapper JSON.NET to provide a standard approach to writing responses back as a JSON result based on a specified object. [Explore more helpers for HttpResponse objects](https://made-apps.github.io/MADE.NET/api/MADE.Web.Extensions.HttpResponseExtensions.html). + +## Getting started + +### Get the library + +You can install the ASP.NET Core library into your dotnet application by running the following command: + +```bash +dotnet add package MADE.Web +``` + +Or by adding the `MADE.Web` package in your NuGet package manager of choice. + +## Contributing 🤝🏻 + +Contributions, issues and feature requests are welcome! + +Feel free to check the [issues page](https://github.com/MADE-Apps/MADE.NET/issues). You can also take a look at the [contributing guide](https://github.com/MADE-Apps/MADE.NET/blob/main/CONTRIBUTING.md). + +We actively encourage you to jump in and help with any issues, and if you find one, don't forget to log it! + +## Support this project 💗 + +As many developers know, projects like this are built and maintained in maintainers' spare time. If you find this project useful, [please **Star** or sponsor the repo on GitHub](https://github.com/MADE-Apps/MADE.NET). + +## License + +This project is made available under the terms and conditions of the [MIT license](LICENSE). From b34cefc1a2733d43515b225abc0f55de11cb8bdc Mon Sep 17 00:00:00 2001 From: James Croft Date: Tue, 30 Aug 2022 16:55:17 +0100 Subject: [PATCH 3/3] Updated docs CI to generate metadata --- .github/workflows/docs.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a96c5a2f..c9ab8cd0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,11 +24,6 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Setup .NET 5.0 - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 5.0.x - - name: Setup .NET 6.0 uses: actions/setup-dotnet@v1 with: @@ -39,12 +34,17 @@ jobs: with: args: install docfx - - name: DocFX Build + - name: Generate DocFX metadata + working-directory: docs + run: docfx metadata .\docfx.json + continue-on-error: false + + - name: Build DocFX site working-directory: docs run: docfx .\docfx.json continue-on-error: false - - name: Publish + - name: Publish DocFX site if: github.event_name == 'push' uses: peaceiris/actions-gh-pages@v3 with:

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 z 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 delta 3840 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 literal 20908 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 H^z8ott`AiC diff --git a/assets/ProjectBanner.png b/assets/ProjectBanner.png index 18aad743a62d61f1b1aa741271b2cb625e94ea36..64793008beaab2c8a23fcadd492f4d5f13ea4bd6 100644 GIT binary patch literal 27717 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