From 0a065ac80cbd8e2c05d9be0b344d2a48e8300ac1 Mon Sep 17 00:00:00 2001 From: lucapette Date: Wed, 7 Apr 2021 11:00:10 +0200 Subject: [PATCH 01/33] [#1262] Revamp the introduction (#1470) Fixes #1262 --- README.md | 8 +-- docs/docs/getting-started/introduction.md | 46 +++++++----------- .../img/getting-started/introduction-dark.png | Bin 0 -> 173748 bytes .../getting-started/introduction-light.png | Bin 0 -> 287828 bytes 4 files changed, 19 insertions(+), 35 deletions(-) create mode 100644 docs/static/img/getting-started/introduction-dark.png create mode 100644 docs/static/img/getting-started/introduction-light.png diff --git a/README.md b/README.md index 98e011ffc0..bdbc127f64 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,6 @@ [![License](https://img.shields.io/github/license/airyhq/airy)](https://github.com/airyhq/airy/blob/develop/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/airyhq/airy/projects) - --- ![Airy_Explainer_Highlevel_Readme](https://user-images.githubusercontent.com/124274/113720584-18a8d500-96ef-11eb-97c3-362eebd6253d.jpeg) @@ -43,6 +42,7 @@ amount of conversations and messages simultaneously and stream the relevant conversational data to wherever you need it. --- + ## About Airy - **What does Airy do? 🚀** @@ -64,6 +64,7 @@ conversational data to wherever you need it. [The Airy Community will help](https://airy.co/community) --- + ## Components ![Airy_Explainer_Components_Readme (1)](https://user-images.githubusercontent.com/12533283/112460661-6de3fe80-8d5f-11eb-8274-8446fbfcf5c8.png) @@ -80,32 +81,27 @@ Kafka](https://kafka.apache.org) to process incoming webhook data from different sources. We make sense of the data and reshape it into source independent contacts, conversations, and messages. - - ⚡[APIs](https://airy.co/docs/core/api/introduction) to access your data An [API](https://airy.co/docs/core/api/introduction) to access conversational data with blazing fast HTTP endpoints. - - 🔌[WebSockets](https://airy.co/docs/core/api/websocket) to power real-time applications A [WebSocket server](https://airy.co/docs/core/api/websocket) that allows clients to receive near real-time updates about data flowing through the system. - - 🎣[Webhook](https://airy.co/docs/core/api/webhook) to listen to events and participate programmatically in conversations A webhook integration server that allows its users to programmatically participate in conversations by sending messages (the webhook integration exposes events users can "listen" to and react programmatically.) - - 💎[UI: From an inbox to dashboards](https://airy.co/docs/core/apps/ui/introduction) Not every message can be handled by code, this is why Airy comes with different UIs ready for you and your teams to use. - ## How to contribute We welcome (and love) every form of contribution! Good entry points to the diff --git a/docs/docs/getting-started/introduction.md b/docs/docs/getting-started/introduction.md index 7e042fd243..eef49c73bf 100644 --- a/docs/docs/getting-started/introduction.md +++ b/docs/docs/getting-started/introduction.md @@ -5,6 +5,7 @@ slug: / --- import TLDR from "@site/src/components/TLDR"; +import Image from "@site/src/components/Image"; import ButtonBoxList from "@site/src/components/ButtonBoxList"; import ButtonBox from "@site/src/components/ButtonBox"; import RocketSVG from "@site/static/icons/rocket.svg"; @@ -16,15 +17,17 @@ import FishingPoleSVG from "@site/static/icons/fishing-pole.svg"; import GearSVG from "@site/static/icons/gear.svg"; import AiryBubbleSVG from "@site/static/icons/airy-bubble.svg"; -## What is Airy Core? - Airy Core is an **open source**, **fully-featured**, **production-ready** -messaging platform. +conversational platform. + + +## What Airy is used for + With Airy Core you can process conversational data from a variety of sources: - Facebook Messenger @@ -46,42 +49,27 @@ Since Airy's infrastructure is built around Apache Kafka, it can process a large amount of conversations and messages simultaneously and stream the relevant conversational data to wherever you need it. -## Get Started +## Next steps -} - title='What is Airy?' - description='Learn about Airys messaging platform and components' + title="What are Airy's components?" + description="Learn about Airy's messaging platform and components" link='getting-started/components' /> - - - -} iconInvertible={true} - title='Start Installation' - description='Install Airy with our CLI, locally or in the cloud' - link='cli/introduction' + title='Installation' + description='Install Airy locally or in the cloud of your choice' + link='getting-started/installation/introduction' /> - - -Once you have Airy installed, follow our Quick Start for guidance. - - -} iconInvertible={true} - title='To the Quick Start' - description='Learn the Airy Basics with our Quick Start' + title='To the Quick Start' + description='Learn the Airy Basics with our Quick Start' link='getting-started/quickstart' /> - -We'll guide you through the following journey: - -- Connect your first Source -- Send Messages -- Use the API to list conversations -- Consume directly from Kafka diff --git a/docs/static/img/getting-started/introduction-dark.png b/docs/static/img/getting-started/introduction-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..8e45d07564cd6784f56d9e2c7ebdefb7922fb7e2 GIT binary patch literal 173748 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⩔XVf^waO72GMJwcB9e1_&Lr>~I?mZoqg-%Zr2 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/getting-started/introduction-light.png b/docs/static/img/getting-started/introduction-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ec18c985b1e1087bbecb8f952787a4b70b7268da GIT binary patch literal 287828 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 z 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

o#UEO@mlsYJ#T*j4?mUgC&~K>6 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

ru7m-SJOV{R=U8@S}q&H3`Kt#zAaSK#)4 zFa7ZDIAq7Efhp1Mv8vSY#hY~Km4aKpROSMa1UKzZ2s==KltN9&Y>U?xy`Q~_+udpY zuw(EmhsiFc(uRCp)!1NcxYX!UEe6_Qk;$;|$qf zbxB)OLlFqBoOgmu@OO@ql>(z6On{?*$;AAZb6D^PEfNSIxUYZdkdeEbjY4d} z#$vEC;jH)+W=JaJl)=vEshkV$@?NPX)6P(NECR7G0`8^r++0CXwP9JO80V>h6loJ! zk3nWr#eX&lB3K8#2gq0d zx-3Alw=gk_68S$I>$&wwIn%X%*&x!Xc0Gie;-8$MLl@f2nL&mkn8jMpHH6>U?^N7+ z9R&1s2AAv)^RQn!W%(LW-2sXAF)6n#FiyQOS`X8?K%I_-ROo&Fe`|AItO;%6SRjrQ(g>7lVr)HaR42v=4FTZ=ss#(3`*$ z!<(C)tfb~_U-6BpR4G+G>oNm9n@fqpQW;&J%>9Z{oQB>HN^Q66wOBpvM}?(Ykl#XD z8C{p_la&n;^%51OANX&Zb6iG!jc4a`Ybx3Zr|&gpuQMucl`D#7XpbnxJR3|8DYY_O z>v)()rF(1lNB-O)J$iJhriJT{eZr0&;u;?=ZkKg0@anHPYw3gR?0)>y%8?0Z_MK2! zQr!)lS%BGiSG%NDj

2Jt$*o`dUchZ`?-NywkiC=I98OGLIC` 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

Q$D#>*u@t6J{^){?%x3}d#0ri z#{kP2^%8IqXwG+@sMb_*WQ5s`Jsmbpr~m_XNHwK<<<~_qJUYf3MW==99YPwE7=U7JVy_6+Dnw=_tcn7H1Ycs&?vF#+Ma; z@eg{Ce}1+$M3DlBlMuSfyD7<6W#bq|N&)0!#Ok)1DdY7_rlw~jl)~&EI2d=n8h~TO zZNHfV64gzq1*-k|R^j$;fB6Y`S2|*9J11Tp3Nk`Vn9_9+>nsj!8ASV8DUTq1sq;;lL4=D7P|VHS8v*NDE{GpeBk3 z$29Gl>?CyoGh{%ch~@QMuYhH(2E9&`5m7=@4eg%Hgj0$dNuleljYh#876RHvjj5%J zSUFWYpLC8r3y z>avMu2i%69u>@JX{KSk5uB?Gm*M8sV>?Fz+hu5M>#E=QIiZe>)Jpa*;UmW4yOfI-p z!~Aqr7|0hpp&wx``+>4GmO%Px-aW`0%s=^o-aQWxQz~bvd`2O#4}_jMVb4 zUuc{;IlE$Bt`BgsyA`$>M8z_Uxtnu`k&a-hifYKB+y zCpo#AT=qs37%a~@m-2Mh+r*$y!$e)Jc@{hk4$D7=ysNyw8lV)bdPXU!$%p>_kwQW| zUrVejGyd0y#8H}g?R;6FO~%*0UK(NdhF2LV0qOqna=mLjIQn-@@vDZt1qth53}#@( zK~gZ?C_6qGTNTce-8D;lZjqC}8yNviI=}&L1P;_zbCovK{E#@R$1@_rDlm8@T1L0L zob9Q^9oHVLL)jM!zyhOncD&~8naA^F)GR8+gBlzouV~JnHE@ylc21bU2S|zn3Bg=w z!xlI(5qKqM);)eUt+>QiT4pTVJnbM)&wm_TWOBGnC%2Oet4Zhg5X1%l^B3E@%3yMs zbJ>{t=HT>ao-j|vHTG>*g_A>ZKf1AcsrLMkqge}dM~euKXKWp)G!w%4%V@Tc;byzX z@ts0!%DgleLlkJZ0x1c)0F}?dyZWG!jc;~R-MnZ_T>R>s?{ERFjn{FPX--{t7w2RA zSBT3D6@5x!cE%7`gqkR<)Y!BWE$ko*oGTRYP0I&qIQ`-EAnmvSx?>Ti+uxhJVRN;1 zBr3L>z~J;MQis=~8I?I{7ssvf;UgW=Q-b|gb%*?F)oq8YTe%?rubwt~huA!ptmH4k zFd_mWSNyAiR)0fDNqSbJSq`9~j^Bu=OPr)cTd6a9vl4C=4UfonBXR4C=mE$5ps86_ zYEAx*ZbXWux(;AS-W7M+>wJPK&L1IK)Aly)gl8jCYNYPH?LpS~t>bmZ|A>ep$`o}+ zox*L~F3Si9tA=_)E~Lf8D4FB9x+d+xo{gR}3kzJhVVABh%w3jfy|Z2XQ{_6>cRUP)lgjcra==C{t;r5*8tLo~na;4aWbVn)XLtj6<7p3`4 z#knt_GefbUc%mPKF4I!{s2OI(EoKCJLl$sKGpnx_t7@k=DPBlGCy)(5Z{BV~1_I6(WU*^3(e|4pKbX*ZPJ8_0H$74mX)Ads@JVF$ZU)6Tf zxHI?hvQ#wuvr&%4CJfb>!^{gomfHKPKejJAd0vewgOsepuEBsnI;xx4hOM37Az;%j z&UJ(&DP;$(P80BexQL_nSjERxSabkwOn+)?TvFE>HB|Z|T?$I#pHSdFqj$RO!-h*F z)Zujs6=ALw!Z1z@aB;sOMFsM>pO$;!5M2@$MLhW4jozCX3h+?y@{DPS@+Hcg6iOgT zLRQ+PQT!wo$LVT2$0+|D<|!BoNV8cll{?{g{w4g=-A}REqq?JckQ1Zo$9$5&=hf}g zD{}?$5ZL@`dBOUfp!hkTHTAzKw=n3gpN8As`E{lZj*1nEn#r$orMNnmcU6)$W!?6S z`eQFk`q(kIw>}=29O8NP0K$1m8~%5igN^m;L9wx;Ax!3s&tntPPex&kUAof3Yjs%D|-pFEl7ZS)`?ffR>=0dtzxii&t# z0dheiQnNc&3Db}2N{2jT1`2qJ;K-U>3{4**@^AkET+EXvW;4Dc`C)v5j%GMY`iZg+ zd0FCHZkK=Qyzf1^h|@8Fcu0l49oY-oCruHPT;r}jPpp#}BvIG!4gca|4q8>2n5{vP z3YjhYcb3vj>t$*{n1r%WzPTAk7Lc&$iBMpzDq?=IezwdXd5qn4xwegZwZqa|<*UN` zy)@s6p?l459r>^{g%vil+uS`wD^Cn95<|XfhgVVuy3{_ziA>%#V{|lgUTSx>m>)-w zJR$#AWNQO>y4)Wp%6Ka;CWx7cve7T=$bazR3@g+jh1C5?xe-)Vti~^b-s@k!iA(m% z^~M&&)24n3qwLew{{}|=RYbMd1R-*_jz^5v?|hS9O#H4ku-3hfYf(0(VUCfpJdYO8 zN@yrDV8^>mCxzqJvJxDtUJ_~ApRiz2Uq zTJ^A5BG;ptNv$2G8rA-_bK2`g>%Rj7`N^?TLzemajWkL&drOruGBtT3x zCi&JRix%{^h@jEcmte6Ox!~Ms_?@R8Yn8gvL(zErm3Pa%v;M_PV!D&Mwxu^y?$DUP zi@(DXlXyk*LBu1&Lf!twck8j(h^anuNU{&12TKou_VDW{vU8pSMzERdp-~d4Sq!|& z|Jt<^u*4K1hZ!>ZQ+Y$Y6+mopN}Ox+_ysKxs_kG}dE1^~#KOY;rhom_?g{~W_Pce; zWS<&~vf;rjRIWij7*IQ4WGe$*b-W@dLbmpZMklV zhs#HNkSr%?OEDnQ%mKeX%TN&G| z%PI;x@wd+?Y70$h6GrKfnj!q@3Z@drDH6m|lDtozaTMWZ57rZM1FKXpD&CL&6b1SL zj0=bHp85T+pUZ6|EJ!g)ts;l?WN3hK;r}W$e$pfp7>E9EIKKLh;_D`;fbNmnBg|~S zbelx1wABn*>1{u4`|+nM{TKijZo)|8YGB`d*H7N;?D7>t?jjW!wJ{7S&I)xtXgWDv z6+X$sg#(}?1n_hS)_n~)22rE1D|(fRO$)NryY4w`sZ+(nR^Rvi^Gw%pT0c=4y$X8- z2tuO3R=MCkZw1m=>;J~U-l7lF``uZ$3q!ur7yg6Kz3iGxl}VOt`ydMA0b)PXw<<&u zs@tbC1o2z49Mlko$hu`17x~>=V08J970=KN#UA{viTfuvQp<~W8OeX&6M^R>+g1$9 zmJr7dc-i=>P2}+6;~EMDfPW6!iOXr2dS((xe2bR#@kI4s^Y``oI$-vPG*!gp)<5D0 zDRWuLr>mc<>6G?tl^*RQ>aSkuYFK5mnSVTa7d4%g%BgW`3prR@W*(>BOA2LAaKy_e zG4*O)Ux%^mC|VtH+u~%0pGLdl?BHn;O`OXtKZwvAN)ntu-NtKSoso^;)QaTN50P!2 zGRD8bMY)tR0$K4)pw@4v)E3z8Zss~du7dqO{@ed?P@ zd(mu^IO$;$)p7_9JH0&}(PUVMc14`NKqrrudK{;F8>Ko^ePmC!B}ozNsWISm ztpxdRLgD0dIS_DHusF4jW6d;Z6To+EB6*ahJ5e4DM;)u>+;xHY22}|qpxriyx#mlqZlnA1Fk@SZMvTiFr{BuX@UJ%5Beh| z&8l=rv!FZ8Pb|oQXzoPk#Pm<1CcW^ zw-ZkstWl!9jWizTz_-7Q&8;ld`h^K2J08t%qyU3s@BBxHus4S52a!TG7XT5&3zWIQ ziD3Bm09=~gyvwY|#V2Wm`wqa*7P9Xj9!}@4S}6rq(M__!Y>CKGd!Q`i3La{Rf*-B0;U9H-jO=8>^7nB;G#Virab zamq+)3!2waz^;ly2^mKj4hbs`C2&gEy4ug)={cJ$FQkEu zR%)u1xV zNoR~}W9=egdN_wteFrJifwqBer+JQ|0=Gc;a;)}YXc}JbtsV(v3{-MbKzFLKR=@TI z5TQ!)$WoaOkqD%ys;`o&Nulcqd&(3sKM!vq{_@1_xxlHMHVK|#7*vAJEHA*+DW0R# z8PKEz(fz}DaY27B6;zVC+5|1$P6{hhEwj0k7&rtNUNrCgD@HRubmZBiYGT>QTzxI7 zKMHmG9i=4gV>=V|gJ3)1W7;@2;(PAy;!r(#j@K3i{^awnaE2(CFh}GgB>F$u4)W$x z2Cnvc4Lx?Kb5uL2(-J0KSm;5?O}VH-ME(sKU<7VUfCP*x_iVcf>uaLz^Bh!Me3S{K z*p!XBjPb#bqq^jOWNuFWb8e=iUHsYT!vZo&aQ|s`)5Uk$dfolix&P<>BmRk( zJ4t7Lf&w81AHDbH%TM*dW+GVFw?8%pq#EyrPoJ7WltrG(lh@Cd|3tEzBJtaR=1U_z zlD=s-Hl?QP2;AFlb6|OVc<8ZR5ZjK8rA`AM5N*bcGup4n%EID;fo_r%15P?rZ*pZn z8@k*vBS}V{$H`KDz8X>pZhNo7yZPMK2M=01aD=TfBy3@QbQNIU1}12k4|UEJ#cN|E zP!4>O^5tsv*V7KX=nQO0Z7gNk0Q8yRQ7kW!&TSc7v-gAw_WWo*g{bE+q`ywO>^J)_ z?6mR(V|4`G6U*4)N_Ss&(yFS)!_^1xUVpOi?Y{hkkUrWpC#Zgs_nR?I*8wa%)C;RvOe~SBj%Q}kD$tjBTJ-dz9lH)-K zhj>4me^MN}5ty~Sd8p#UbC8x{c&i>*EGW8GpM-8`Ifg`sV4R8_B}ML_2mX zlAQSFrP9p)iwO~OGUWvog1I<0Qc|;1aj>k==6QFZBZJ_e!poO9v%lafBq`eNqlWH% zkT(kfx0f&NYVz{X0Mho)8}X-Z&BR4)pELek$*KQ|mYVV8yL`BPyFfw?<mU9z?tpxDE#us45V?)vzR`UDulXfV#q+O;7#v`m1jo_Ea1jT}Us}f13GE zQl1}L5RjL3mx5HI0Y(&Is@*+9s+# z5FE&JCT`cHpMW6PlFIufId*kDXg`>CJFR-uvwzUXj5^fa6I6a8<%*tC62im7)a#rAdfoLHjgouO(Pxy{RZk7<$2Z~8`K2y3B+c8dmyy>c89dH zf16_9j-`7~9`_y^MEK$bp_&ekxH-1-ijS)J@ThkC`F;aW*ok?huSJjnVlGE38f4`p z(}LpojK%AajuCk`f=la4&mKOjzonQ8Iu4wl!opX`lw76|hfmfxxRctgu$1mYW>+4Kv7`Mu%fe&(o|JHOt zH{GXo;nxbg_lQshLs=&^|Db>6s8{`|l3VUSD)E*%5L>ze4A1nJvU!oNQt#MSWRXw2 zqHdnWU*@uyS9xnp#S+7pazVH4HLhzlJLH4MxJ-B0 zsfbqVxkO4I;Jf3`9H>uQlPT3Tq}F4ET^yIj((0bMb-uxdIDsR?D^6tAZ4`k81o9vP zW7*A>pF9lx!_O6(EICpEeO`XvRs;*9r)yXG9A`K(OAdsHvLF?j$a#yq$H4iYe6EqU z9T2Tmk2L{rG`*<%wJ&~5NKW84T7nBa99QbC&@l1h9fVUa+Jai-7E5{uDfisdJ3U;0^J-E zY!CjbrJ(mD$A1sWZ*LEBBvw;WB`nNs#413sxw*c7sijY{i?q8+X?teZI2egb19EXs zVf74U*NR;JJ0r`D3f#m*`}rr=@T?Cf1qRKl-;t_ zlL=fSS?CotKTf&02?za-B!Li>JyaeXhVI`xzkAxRX79ZFEL-i&Hy*uty5s8X6UZKW zWbZfC=`kPoY0t>rNkx%XPXbI$HWL(!4(q%vE`F%XD_@VLSpxskVnuQ6sAcXUSs23= zFPB!Ig6SlZ8wyIKrV2^|742?}H1t~*Xm(P+z(9#9`4`pi`X17AftLtd$HS*<8P6oa zrqdVs73S+)q2kvzUDSe7g4$u+hXS5aJ4eoAQKjGbscRjFW~r3lj<;egg;~P00F?- zaUi;^b*s}MD8z!(bg>!h7bqgw0Q+?HfT%lWJ`7IuRlN#lhZ$=rukrc`AU?&&* z(14RYWmx_ZVd>sEpJ(Ugq~g|BV~bZIS7%RUhX;hdy^VSwM2xnO zT-W&q@Xiza*?X;fxs#TqfgEO`tyIDb$Ota=W@U%2VdpJ56O4BopP9>An7jTZ2l+iE z=~ZA#2n$USCt)prN9?j7&^(^`N1xdlQMf5kSu=#Zoh*ekR7)MvNkjUzZk8xWxxiE1 z>xt9en&o^1quO&Z!^`bTO=)UOgJztanKIp&Pq{O1?CD5qA~;%m|I=@qb7>Lb`aFt8 zN!=vm`RnXs^8{;LNt0)nOD8iuf}8Umi}h|^r&9BZrkbmW;T_kJA^*K`3Q|S#?!oD< zKc32Ahu{h@hgEVmj`jL5x_mqO37YS2q9QXE-A+k)QzgmLd%EK&XJxnNfhC(6r<&!| z(9XkwU7uYO1M1gS`s{fkZ3}M#79l%WIw}~w$&~sy*4O^5EIDkU?-HDH#pt+BIA=zP z3D@347v1Q-7^)f?8Yon&*Q(7rVFZD6gWY)|h>PL2s;(>id6s#5PPPS{WE>=syhN!a zBXVAFA`=fNUOQ#i67jYhC&UaqMzDa`&g82nR;jKw5GBt)oXctAT`G4#BguqX{WG|0 zdWZ%ugpAARfaJq11Xz-5CwRjTK;K!;?X&@&_!v&4cF;&@dbmO&|BcfdATq zq(Nw^Y(e13reD`p5J3@B4EPFh*KIkepuF?^z?RBQH?gv8O=`-Y`4*ZxDi8D0(kK1Z z=%!3s1jNax9h_p~W9XUHVog=Ljm|o+X}N?(kkKRYjte>~o1PmhbRyEjD<#X4!$>0C z?VV|^Ub?>mG&tLhYd8j??6M)Y-4r>l&ExdJ^>;0LmA88qbWNRySp+z+@Fo(I!3Q~Fgak)?Rh$fV?X_DB;kmpvwOZ3j+;JA z?!8-W>$;TfIQ6T4ll@>EiXo|cfag;|1Yrs(>%pmG+VOsRpgr-NF>95dm;~uC^<;FQ zqd`pR%8)P5{N~NH;}aTJN(1v^o|en8m@8?K^7Nm+iNh_h&H4D3#!L;x#6aJSjWzcY znYJ;^_1x0`B&_h1YPuQ97Bmqx*5VjDYGspJ-rvq(?t+kxibT>11~`Y({1B_9_MO4$ z+7o=fPjBJ=vq@e%_^{1dOn)){8su}3>{5SK7MARy4hdyeyz6vJd`v}x_fH`OAY~Yn z#x)l#npT3wmyEQ1STX_3W0GHx=U3Wdg@24T4i0koU#d@|V>&u4sDXV0nl)$ zIo|N4od3avVUZ90y5uSKl6}NPubVdT{TEX)Ve^*81p-y5CF=2)eo^XBhZL^1l&L@b z$g>Mc_yNr64%uF~zW>v$K?Wd1KMvR$b}|iUXKNo??h8I=7AD6>)=|6I-fJ308-5mYOl zyk960q$eQ4cVy4Sxmj$m6KCY>>$^7Oou#)Cs1BKz0=PR2&$pY3;Id$uKr$DyEFd2>46eRabeBokg?%2|@DLuN62LLLMz1N7!dG!;1AE8J#w@NtbCT8T+4hpe5WUcO(UtO+ z;g#bwJ{9CMP)DV-i&95wm5R5P9E&jZ0V0(R{S>!_+dGq*9ybBwO^Krx@~uoBeC+#3 zik3As%&9 z0K5x-x|bCcNV#ZSU0wB*WyElG*JWv9oTGgoQ4OZudq0v9Vv8pJhdsrujXC6?d*Me4 zxw>rQZ4mW+$>FFx;)Jd%8jbB?_3x8Q@5NEvPx=%-#W+99<(0sP*w~q7Z~Mz3bmG#h zRGdt2#?*JW_DCBlAs%Y44p4RMDLaroVJA}ZHTuPyWGB(`pYU7|Sh>s&^@uSyc^{wB zTUL%Z+9bmAm_+G(@gRlClu`0V3WDjfn^eyMtI{tjw%B`JxyhY-rYb z)MvTV3kzjvbm+gu5P8@Y?B5KAm-7wRMngF8pY`{BRJ~3gW7&^l6x4m_y-u4){A2HX zydT0P1dPw4o0X^OLMoA_7uQ-BnWUyYoEicB200oJg>%zUSw)L2Fgl5+sF)4ypN;0i z`mb{-wPy7g=gYW03g1;w^j}-*MZrPPm_p6KNb;TJ*uHt%KV`!1Yptj~Wxg5$fM~2- zmb;)`c)e@3+Q6=urJ*lxEEYz__g3Lp2WPoRdxU{HaPQV=%Jp^rtx$#tq%F9HD z)k;8=tBh53Tc2j)VLASWmIuxL`OLvg0&6x<1h-x~tS;N5l`_qPE{-i&6v2iVey%P# ziJ|%LLMM&Ins3@&&`sjpAP>(-P~yJ?NB6b&p37R2<-N<<{HjrpRG)92B5!ZGSZ%G= zmYd8r+aWr3UCqTpdYzoS+1Eo6Nl5cOMaKC}#=Z=5oqoTq+QtY&i05UnZJTdz;tZet z5%vE5d_BK_{(Ee+^BmpF7%TCBnE2$Fh`7V8L%1^q`^HqrggYeqDb;BYD?9S4>jR>X z<+7!;MEzsBv@vIIXlcmVVCyVIKZmm8eQUeA%xpm+QWGv}W(AQ|BcFHbRmFSM82XCexBb(1H@)& zPa33KaUGXD`q$YXhX;|VveJ`l{(+H^4s?wV=8ZGGBo;hA2P8MiDyRg72$ znnc^8i?TxZu|G7R`}zD<(t4ebJzQuZ+#dHh4`j;q=R96gULJj8W5W(ZbtnO+>HD<@ z<3}J;C1zt@?!_um0_hqiPbV_vh^Htle1b3&a4S%8De|=nGb0$6hpwbocq98<#CRHd zEY;xFiSr%aHCX1luUOB_ofSmUA9*tbP6SA}q_&xCI9I7g9pY>=bSuA>N#GB}3ORQx zz)ueUXVYmKg8JDgOfkVvhWaIngESP0OD4$g8RMnT@ev9rJM`O9Z87hM-bcws0K4~w z^(z%Vj2IZuG;mLNJP7_zOJG8HBN6O7m%)B}&Pf}(LC`@2sS~YA8XHtaT!jPt9RBJC zHsDu7B$@@~Z<%;7)|Y@M#L%+7ueV@k1IW8|MjT6$gPu_VI)$7$rP#lRC-$%r;V|Rj z_3CN;?;GdTP3)W&DX))Tq{<|OkGS)vap1aNAzVh$a>4NF6L^O z`MsxLNJe&lW9p)zP;W;0m)6W?zgeQ1m96c0BVX4VVIGIiZXXt4=V-FF^7l<4!?|)O z&~-v3XLilR&=Z2~uf1WdENalNOwQxwd2oc1>zrCuZ)p~lR})Dhk$7~oaV<8x>*7w} zc7l0`zKCYc^jdFk$tCj8xoW@Ty(b;Z?hT`)&u5>2yKcTUI7vi*CRN})Bd+OJxVd)} zMa`AN@o~%pX~#gliiO04Y8nmM-fzEOpmDFsGTTz1vTu=l3%`auM>-8JR!!iw?pw7b zEb!D}JhE)9HAZsiCftP<+T`Yz6A7Y9mdB{{l8GV2x_qB1;BEvnAOX=nhI-QzCgFyk z$l$4k+tb>Fr=8Y(g9U`X_&4Rq4i%!|0SLRFaBl) z@~XnvUY&O)Df<30)W1BAUXU0-5HaOKc9f>Ffc<&fg%^~3gIWK+YZVXFKrkLMMCU09 zq;>o=QBi8C|FtiD91w350j5(ie_#{UTgDuUjVJmd@Qj0TzvTe_^3rD*LOv z%Io#OelefoO%l8FJc*l|2Y8ZDINW(AuWic0lg!7KwTuu%BZ4j;=Q0BS3p z=UeNKcJuD1%X~gk=zL!B=E$C1yyg=R24fmZ?_zuL*_CN17VD<}zR@vXQ5z+#xj*Ut znXM!2)4%tCmyKhbFefEA{(N_f#>R@j#0m#T~uNV1xuL59p%}dgdvgsMlLpeAN zbG5VCydJ|+YoJ@Hq_2;~^1d{Qhc}nl8*s&SODYmhq!zwDUExtz-W%17lPG11cBZ(!JXZNrR=!VBj}v?6$FJ{Y zQy&A-b^lfI<9L^cu(GmBu6;#2p0DGCjARR*{y-h!YS$HtDVhNILn+6>z``Oy$2>Ou zJuN&y-d!<{{R(8-PLU8_UYqINd-Xf~!nqvq;d0}>Nd7v5ldb4+UG{K+cd3^QphnFK z*sTD1dZm&8%yyimZ=kX}w4%9swKmh>XAAat;DOuEU%#rP7#lJGa>SZPP)|4x#2L*C zLzEqH2>b7FARuZYl2Bfw@ppCY5@dL`I~%e-2CE#PK>HX+n1jUrgytyg)Uld$>@OP0 zMv07*<3jY-yfun;VBHiyvqkDq1|EL?RCH=t^6`l$DD!2If>{>_j^;H8Ex)NWanq+5 z#)qGu6S!4*mysj{O0K4R_qO262zeVxq!~yxtWowZPoj)p&yL(<`tRS+`=H7t#-!(` zF6srAF7WlNv5o2`SC*I{h{vmy8Awdv_GURrsYh7^AO-U2 z9)YKpmX2nqX+8=!L@|{k!NUnq6A}`Z{r(-jihvW$rR?U;t&a|E>wYbP!8CCBA+CdA<(R?w9e{h7PrLvmJt;P3&99EJX#W3YR4F?`m+=M$# zL*C3uW&CE@K5(vHMz71fud8~q#J8_^avdp(B!+K#vluScJ|D=K|GnkuXokO|anSg7 z4UQYQ+o#3#($xT*GOhSQI_lY0M=}!i-ssmny_Ix?(M3vc8sfuE#CR4BL^7hV*O~~% zA@5(T#UPG1O-YmuTVoxWQR$lSKv3GPNib7WqLfxZAKOsC_e>%(}TA}Ql zxC(#=B!|w_7ttE7Es0W<$72OofGcEmsy)W&p-QG(1)_`s%%uxeYy#N#&+SKa1m0ue zIw~S-7dc4Q9UFIpM+Jn(saRWU7Y2Mx9gGL^hTngUum9vO>K!Os$pT8Tj^X(k*-4W(oKb709~U%>j=6{CTnyAWrv>?%fZAF)D7m>kteseuzwf{wn`(MENH zd$8vwJ#0d^aKl1zE;NwTxtw`F4Z?(ry{|L#g`XN}z{(Q5WfQ);Qa$;4oLj;ryi{rw z$|R#{6*1g{rdNyCihd>VvBtrI*CQSrZ%D01_+!tj86Tyzzg5 zu{i5nFD?e%ruR%w+V7JPK!w!GNz~lPbj2&t8P!Bqf7AciiQ%XcI8GZ+-(3NI4GW}T zC7QnSEEI8#3!b6s3cChqP6g2^OTl5{iAW=)WP zb5w_~DYLLC_7Za=5(qOm*dhs+M4>sap4&ZXL}2X-4A+956DxZgVu@FDyb z=)+6^PU{QhN#Nk1iT;ukH=}P!egz%B&o0jSZC2$->5SQjRW7Wd*kRT<2-{ho&LarI z7BcNUgr%&z$CuIE{(QV3LFz)>vC!T~5-D+p@1pn*-hRmP>z6VTApmONe`Ma!D4j`g z-!omVi1D_($H&{Y4r4ufMI_+xSK&xNxQr?_xgoa zsjrZInE|Q2dZR<8QtrJ9?%UmY`h1$`WqB%Of+{P`GL_Iw3CJo)zfA(wSU>kHZVe|U zh!V=Z ziLS-{dZ-M~S(cgu>*HR+Ff1%A;=_{xJOK#+1pmY}^Z(QuD74PPjSObQJOa+Iz9|1- z((zhKG|Fq@)r(NuTmIRhwpAQB(Mryx_`#zLnNcZ(Hv za)GvcI`$w6FoD0Q zw~N)SWl+gg@VT+%s!e z=O%4CRT6)z%M1zawpZEw>J+%ySTKbB>?IBoz8l`PI~NGfX|x*q<92N+5@$n1cw4AS zI6F@oa2jy0bfh-qD42n~Pe~|{_eG3l^MF9YE0hS2SW+2Vdu(JHP1(7zWr>@ncBDU6 zFy$IW`CjfgZjb~fPF0tgb4;{mT@HeJuO{9~D(+Jj<72OiP#h8C%197HsC1RF%pyGz zyN`r8DF*&Md>)(15(POloZKN`C)p>e zs*$P#yU`DOe9GYVOY{?a?EH>yQmf>Sy_O7SL6-7@{&_vW;>fuK*LxQunFm0GR`bto z{IV-NQtN$}F=`EX;eVe*?X?OlV0=rz&N(OxwVorv)$ zd8W&N$-{A<6ew1xRR*T8Z(X%t0uWV+2u$TUe6AOnFyfiyah4=#*>c;>I04`X=v1MS zIcv1#9h_Ho&^{0NI4Jn-J}Az6dxia*Ex{n$B{BuIZOhiyb$H)Yf z(TBCc%#(QQ-`qi!$%d`}=7(7Wd|TY)sOM+Nf+R(j-b_b-QTse^+lE_&Mnz#fsGov2?b z1141snTz{*;A$INp$OG$T}sR#`9%SBtnoagQ+GdE{gvBzJI<tJcunP2+FWAuYyC*&u)g+QOXscB(Uc_X0Rk&}@<0|ffM{PlEb|N3b zQQ4F5!v^Jb`+YFezHuv!Y-v5Gt-%8+f0Lb$%Kf_(8mU>=PsImf+0WN&k&Vln zlQ1pLh9Yj>2TN63#PR4iN7rrG*D$bYP~AQIO=0Ffq2m}JAK_WM+woAJ-gdQ>?Vi{U zqF%HT($!QP!Sz0ePLl>}v@MQ2x(((G1J>36Tnn!Y1Am4b`XtWusFaKF9Hi9Y=>y;sT#Zd0WCO&s6X16jMU3D2 z%1BXxrdmcU%8o6**(@dQ@($#pyeh$TojhP+`9rD6m@+RIerDN`q?HMAwrI&XZsIn~ z7aeU|+_0Z`g;?|9l@0%Xppsqwe~KqYfdJPv)Icua{VlF@fN1CuVC zjI)i(P!J?Q>)+1_jlIHaj;~3V$?GJV=R~lpNj4TmwZ{kDhmtcxyXv7s_Q6at`R@M- zO|s&aZJ$DPM$x){^a57ruY|2BK*32u^|lkwMk#C)*@*Q8y=W3bO^&I@CN*0O`0Xm; zdQe@$^5s7kmz0DVImwv5t~!Scn5Mw*oH01GO3u~z{Z_qkSK##n>{hzcLLI3rB`aZ+ zmk$l@(jcje*ktUm5tyIa`M|rYgO=&hnsk-~FgZ%)4rT;Ngikdkzz;Jqyo?8>#5p|g zWzm0HDt_QR0{XKmC6ZaVd0Xooj1GAZ_fKzjs`0OUD!GY&$>1#E66|tvMC;3Ae2yyb ze-;`)W~=x;AeK*=k!aQ~YvpQ{jDzn>Q$9wegPc1;^jD0VkF!XWF@n2|W{*0pu9h*1 zrliS;t$6`Az<}cL%eV9jT{XP*uu0tR09$s}!~phy;hB-cy|5;ZttCAkGp6e!VuM|> zYNgmCGYr0%)naAD9%5mXFY%h6g6U-*<#c;F%RenFcgcp0rDGV9U-Tpxjl$PK9NWH(> z->SMD$DzpYtnf?$ViBrm3Uc2yKH$>8x)RvnvP?}`z{DSf|4M>wD5^zZY6-|u;)KU< z0$-y?dAuMmoH`(8f>+N***S|1So-I{5ai_QgF`23$ci-0A=LGAX!6y= zmCo-eF+Kzks^&b3UuZ)GSATLwk;#GE!8IwlLqJ+oE(t-ROvPqo>;oL%j{2{8%BYNmS4C=LB%=Ltb*Zn->KzycJj(9thR_?@A}0*N!4Vba zmF=VPF3;Ht$;E>I4*T3KKnBeVS-Rz)Fxc-`2nkRAM9Sy%iCrDZ4PoA8Cnt6k6BBlt zjj#u0>ye7dTG1LZD?QwH|3bUT!0G$`m+}50ysNW1FXytgSf|h}J&b9dY85aT>BXF1 z;nApM^7S}Ua8jjZA|FGMxY>vs>9gh9X~^-=E`X`5|1rgm^VTEmwwtSh3#3fCm_N{e z=PP@k;n8HHxKx?9CdA@km`fQz+_#y7bW?mDs=M_3Zvxq0vnf}E z-(&uR{{_CURf3JtTfT0ap z0VDjD{!`a5uUjFVNA#!1*Iu3$%&3G*jxvP%GAa|_f7FJ%_XBj$&8jFARkk-Cx&%R- z2CWOIstc2w&Fs`vai1{GS!}I@@i5h!>vt%C0wBxDOMBtWX{B~=mTb?@*Jso60fux2kM$L& zQc$;NS0B5=mopJsOKO@V>Z;g7*GU`0p^7I=*6W10Nv0xgx-bCtu**yg5^URnyZ%eVG`zkr8~h6d57UXAZKEgroN z?eyY!nEgAJrfY*sEmr53;P%VV1aY~ye^^8G9(8DrL~Fj0J=`|Kr%u1aWs}2j!pfou zYfrv*>PR!wUVVBL;U22if0rRsd^#f4AT}|BHgCnq^vyb3uo!22x|;$$MD}T}yRfpE zb}zsRU3)ySVYR`oW#j8f2@k1mP+M;n55my#Y&I z>gQKq(K&|Nu7jn0|C|hMPOE**n#WsgF{sa(xozGBQ$5_qXxxnDw(?MHlXPC+PEmUu zbz|MkC=x*O*|8T_$cc)cvYx9OZn=Ndt&!h1W?q#z+NV;r{;BEepKN+m!ea2cnS>KNKE!~vg+F?$m0gD%K9u)?R(#9ZlFQ9#MRo*w{($P}$_7}AH|aIsmeIMN z?IBbr*6K9@^CSfk#Ner5iONm&5(rzs_`iz`sAx7ekdj8jXm&Gmy>q53bRTGUoxa?w zl)vQrGhaMuJ#ZkPY59iJt8ln6dDnQ4$(63IHA)MHn+$ zUN7FR1D@#@9%F#re?C!uj12x}ey6*e#Q4_X#1A;C7|fkne+*fJX&7Vz03Lmxel5~B z1VE=KC6=v>Op35tj z4(`VIo9pOkD}Rr09va<0w2mrWex*41w$2oU(b{1^fCHf3f-^ICk$gyX=Ufh>;bs6-D`HVXRS0*NInG z!>2#&UYdqzT3UR8y~jgtD3$|mdMQYCkRJ_d&gmMz6v4=V>B5u=_?y806}1+@6jf5R zIVgqOiS%`Bpk3wMFwXLZ=(7&Id~pdjaT777KJKr-i6|kTAL>xQO z2{-Mn+k?q2;R7BU^P|xFr5#dxDyFZGf6os=fQor-o1N38GuzrS!5xghszT#r4U|1c zM6~fbUMg$^Yh$w8j9V97qs?EMEd_yU1m|qX+}jXkZT%5sg>SGaBzM^Jh`qU%uL=^}dQ(EOKCzO_#QIUs|^^WpzMv7n?x-6YrK(vc&c{DsrydJ^ogb;L6XFL+5ofBirQ*MkxXF0J$aQ;Q26b73`(k6-mEuHXbr z!h?3jsMjGPr~Sr%Joss=nNaI zKKHh>HhuFjyC9sJ?8vW;%>Lpc*nRc*WNKPj@b*-2y5X@93lL4qh2TD22!x}yk>uWi zl$Uj4ujT!l-uHD2W4Y%wo96i>p@Qy5q(uyLd26|M4QICQudh4Rc^>RyaRTw-U=KcP z4KBS>vkrC^?y zRO!QGI`Q1<4|CgPur|hV8mMZJ#K33fZt9hl(0iugj)0{wq>>Tic#tMX>%vK^mV2d* zkEp`nsXhWN#C}(fsS^M?*5p6t=?59~-CTVt0l09@w#%(yj{?wjKfXRYoV*XB%G7#M ziP+MQCOG!oKsI1sTy>%l#EOd~NQnutu#nDInc~=&T=dWW`6%hpr=$0=YVC(sRcq+^ z6PoaRYTh`aP&>*Wck=D5`nztJqAmOAYcxjDOWXzN$*{7F-IG#Q-?yy?A-<{z`>px; z2tZm#0ZMt$j8i1^N(WQ-5hZX3v*2}eJQt5keNj=*H!G{CSK-hu5-{LI`? zqu*9b@v?eR0}-_#Y*LMLMVFNGbs^YS8D{_Sys9vrI)H&Vi|>?x5Xg)hNZ*VD;MoZY zX&)q0anRs1Nb5cn(cLTkHltk~O;WlKKMeKNzt;BjY|>IwGr79B;4jL_ooq0B9JLwU z4F4(V_?_!6Xa4xH}h*<(Pfkg$!!os&VRL)RYT>NG~$e}lAm20}Bg_paj)jWd5m zlGfOseAjAApziqD$&#Vfwpm|%Y(F#N%upvYY4Cd^?_mdYnmJ&aXk@-d`Yt{uIydU{ zX^=|By!&Lip2;;zM%bwuLN>qlb{`MPL*bU9_8cvrB;Bm2)f*>V6%6J_u0cVwmzdK@ z;nCR9S}o@w{Yu^Jb$d2iuGjRV_Qz=5pJdHh0wiuJe=lGl`BYoWOC^ffjW8lbuZ7|lrdzyu}b(I5IgQe61%nWco+N(f1K(*8MdE?Pl{~S$JD-8 z4(5arMy8wB?)NB5lwrjG&VU-W{Z-P^BDJxwP`2fZ<4KYudoZT&igtNn0sr5yXkZ*b zBc4Qp{n)E-Kz1bPjk=jc&;5p`o$RUE_y>9t2`iw1=-Mz-*Mt3j)zcEUYB$*V9R4h| zZ2Q(>A_AjXaAv-R$LW`a*+1ju<>G7XBGstRuL-DpectZ5U@)fEVo~NCXW)wY?$rg8 z+$Tu(BQ>_4bYzQFkN{$;t}T<7Fl1z=o;e25TheUOT9>XL9be4TQ~0Lrdm?C>0f=GW z3({6M$~2EUgego*UEMUIGmj+FmbPE1drb4 z$tE<(AKzlYP6#87f8R_Ltm}lOYj6oy51Hdm$rM9Z_!?tT7dS;N?Bo=Qli~YXWVJPD z1lJc|SIdXlYduehdW7P(V_|8D1BQS9_*ByXIeg6HNotx;f89D}7=Bp>k9oE&eOea%MM1No0he7vblD2Qb0iJ;^#jdSq2|_;bq&@hy*zIj? zW9Xk-RzcR;-#{9t<*5xPoRi&VL2kfjOi{>*DWHIA+t{1#sglK`eWdsaz)+)sKIumy zLj`yp1A`H4O2IDI!#Tog3_{aNda*(d$+Qn}qr+yblu&>xtye|YU|hWU1Gb!b{_!SR zvkmJtk!K#FmT2%81#b_v`s+P;f6wMCEBlr9LW@Y{&&7#8XqZ3jXp1TQamp(b(8n za6no?;y)^99Ky+eep^yF7Y=lB7t0wlpivQpigB4{paSKgGGs)n4lIt<#XI_@XA%5* z8(zGCl)x}LAny_B{Fm<+c;HjZh0%xo>;_PKMQI;kRZ*BaWsL)g>1vm`b5v5q2H`hL z+7??|6+xibEPn*_hQWw>P!=^% z$Z+>a{$`By(@`O32bGY1fP&YC-DRNUgR6LdgWYY7X=RNUs@m2_Ktu-jY0gmZ0_rIK zUSO>udGpK@%e$;O)TVCmgv|J^9lL$mNR~I9mqUlFtlsotgmgT9Z&)%-#NlIU26PYU z)zLRkelglEa4)GPqrL_Z-$N?@wtJxQZ)opR5tHqLzAxa`@y_a%&4g)^eA3{BjbaLfbuXgZ{#~|JjprAOni1c7nG|y_;$6P0 z%XZtPH*o@7y^)&3;LO=uhJ~8SS5qS+$YQBrVDU+r3w{sG5}M*o6dVSFg4Bk=x$kB0 zChLXmd)7J-{9h3VrWMY+Lsz(GEi$C)vvOD@8z7S;ND@w;fwTz$5xmDK!wa|=cv=%8 z?(VV&s?h1irdf>K z`LXp$RMtzqleIA+-}Fi&Y;x?ZOK>&9*|iJ@vMB|OZPH|E+2Y@^!ehRVihYd59bEfg z#1(%ZjeG$aK{whb79UOq-(!?&k;6fzAE0WI6lCN_Y~l5wboXUKV8cKv1w-xDG6V4U+^#&OrKF@G2S^^ z`uet|#f0~A;Q<8!*ssO&dZ1HHU0oayWJ+FJn3)yp^B0B2d?xnDQXzN^lCtlL@S_SL zHootCtSmOpeze*qz2!HX3;MMpj?!uPmSl48@^WI}s^P7dD8ze6{ho9CS!9ERE^<00 zR`Z=)-{9ZKeq15kRbT7XNdZfpj6^CRt-%f0azB!j0aa)u#Vc+_TgECN@shmfpF{n} z|2#I_gm@;X6?W*=DaO1DldbQ#M_UL`XmL}<%x=zOl(E2_mcZ^pk?=Q)>^6r@`iF$l zE!4Y8=v94kGc}Zzj*@w`ks)xN=bdY1?g2mh4>v$a|ImS!#f&Z#0AKBH3$3iWYQ#w< z0Z_}(%&&ymq#+`a^TXhnT@E1NVDk(R;jf0#=exQm@n{eNNqH|5Xkyq89t|{OF1V7j zkK$7o0!C5mr^Q#vG#DCyqdesM4v$yah{q3W^uO@+=K=FMENu>5cM?hm?=V#(7LRnH zy96fc{17Y0S|K7^oZiA{0pmZDTF%bzm*jLCicx8mNqCl!jEno9j6;C^(WfLAN8c>7 znL?Pr|KS-rogC7nXwZr5Ib8i;EIHagtM}-iTkFx} zf&u4xK8!ET?@<7`AOcW}S;?l#DF0K5SMMM)5{N}@^D7b!`6&?Zygzjcq-Tley}Yo2 zhH`f>H9DZ~8J(O&av4@kge4TRszIB)J}FE%reO6B*Xp^1K|Fg1Fd*r$hm+VyG4yTX zY@WSF7Aj7C%gr$93zv9~TvgO376nk=qS65AU^nJlgY4>MbHBU0yC6WF1O-B=KGY#zw!F2 zOydPS0BCvw7y*L{@sgtkhu8U^H*VEJr-2lQmn9#7#iGq7qLeIxG zii2i02a_4;yJ+=;nUe&JsXTUQLg1}{yc>cY9HCYR1^5N0{2=gPl?)*SCJbNU)cn;J zB`#GwqNSVQS+s6P)y{g;6HlAUv2ts3Q=lA7SVWTQr__CS%zo`(h!cr_M~)e0-Zq<9 z4+IPX7JolDYy17A0-rMw(*OF1q6>z)Hri=DBm?nT4Bt!_~Q{r4V|+Zw$ppt?hC zayk5TCqh-xNl*&z_Ylvpn5SedW~8+(V~cY8WUT)$BO?QM+Ozc8nt#Sq>H(MgQVLu~ zr}{2_9+(RFieBFZ)pj(uyB$9Iw9$1n!U&4VH)Fc_h}Ei0n-;s9XLIPfz`#3!R{13n zD(0G1sP_Loe#_vHW}UH5*<0M>_kr!h01vcL;m-dGu2~h--3vPmf2Bz~Pwdj9RmIW! zYzvHf>tYjtXM_}9$!IsA2PgLi%pB5STCJYFT_G)}_bLZ-a>LCnL z1wi6v%vc=DYdM0EP6A^ZU8MLgI5b_{A_{B@qt$Wqx9~EKJx2gp8X+ET2>EB$vN0=k zPEiE5@b6A=H_L^1k|R0$cJ+9q0aaAcmHn%h-&lJ{1eUo~0l1<;ihe9 z0m(%zs|FEJq&lC;zz4|r0q-NNuyZmJo+#ay{1mOeqDwX=nYO!8;|IMELIG?boX0-0 zdUdLHQlmX495GlKm*s8qKv-%p${4^5)@0QDsIFc3NJ%V&zJEgJNVZBW(4#-`q z?8CD=k~!IkI;})sCZ{)#;WJfvau2uX5r+0qGdMoLSUDasNVuOhlGspFP!MGN*07R_ z6==zr;*?%QhnX#>f#ZNpmaoV6wKbEI$mmEnOTXh!o!dl>!a|mxj-wfC(y~wFr^Byh z^joCDzyEeNGG7sPY9>7(Obmfh!@2nRce;R4{31Ew(08yUr*I&5|YauRHd*zsE z*SC3=6PPnML$B+DrWe*odk^*{0Cs;+x@T5>$RQxR4I_xdQcjXqpXO;4FdYEP^(BAj z9reD;K4uEc=DqB^QWZyul*pu$`Wrhu7%DBDN^g@lbCSWrA9lX!Kuz8z$o-($`%q z)iMewNuJv~O)J|1Z2hAdV$83gUGMJ-S&TBqqIKppUO(>~D{GuSO6WlJT&^*INMmzc zja3IjAzSVorbv8}IuZk{c0Muy;-1NB#i*}%0|5NL8K+vYM~Df_EX1mb1uWhK5?OQ=0pr8IU*A%J zlGc2$I=}3fDQa=!1&dkPCo=N$AfVX`0qjFVwU>GFAZr1EM3mA?m|U7idamh; z$wfz2B}ehT?`+;CDov8k8FGJcxtbl6Fmb$hO~>Q%WvBkjG|i@o@oUdU^^`D!)%WtHxkAm?~cp1sP20O%)fv_ z0bEe|EwWO?wK~nTI7Ko;9sEoJt=g(XNGbxEO9ADuu+dqJ_hAqG@+dfj}lyL z|AwQov%>->Tp`d(3gvgm>b~(;Mb?Pl1FPS*i2vN3%jVOL_Z60Kc02Hb^F1d6n%Arf<^Shp_jiSfFFM|B$#G#yr0ri)?l-Qj;6#u zFJ@wVJWt4s@ts*2o8JJbkoTRF&)tQ^&|hYCQzu%9w6J8(sj4!P=`A}eOYbFsgOE9> zeFehjU=kosO4LKqRM254#=fNR_g%cEva38UDZxleeWTU%aGc?Tv`~BV&rWgd;VtiG z3?(@^BicMHm@(^vI4=VR?-Ku&nHDu6f^LnxUV*eGTR2oof`n*+E6d>A2%qf5D3YQE zxQK;R?uA;N?MA)C*5e^SrTRMJdm2}R(30Skp{@VqKRy2=Z364xa!lFC$OUqdYwXo! z@Nb}J%I(oMhMPJXZabk(-RJnjW`j|pT;Mj*!IRCtGf>FdFI+u_E_K-U{(4BoGS}lH z8)F@|v_?|;yzK^2(KDt|K;J7Mq0G^7wLj#V+hZ0`Vxg`Afh`Fn*6q8c2$+0Q_3rsQ z(k*b`X?Yc)QBTFW*WbS^VTpZD1J3WB2p~+@W|ud1uam8)Nv-GK-rl#FI$Nr@fsD%& z;GN6;Y4T7kO70+%{nC<>lTesZHjen`TXw@aH&Dy^{!8jCnh@>2Lx{2!*iIxMO;+IkF> zkWT3k>28qj?oLVR?ozrDrBk|N=mP*JAZc z%v|5sA^kT?@p>I8xS_sPAuray@Z^}nWB_HQ{C`}U-o^<7{lfIjAgg3F^S%akdGZwp zq?t->m9X8os)teWjxwjkqV}&x`48I-1GpbkUS?enz)T`596K9){t08e)0Lern5&+O zeM4+i7$puZ2J-D)YdbrMIZTt+upoHz#d(8)b2@Rurl1a;TMGxzJC#9>-;sZ)#9Tk7;=yTR87EL^M6*$ffqfrj zDBDqL5Z6C>)C>|xhJnejOdK=6F`;7s#@3yJD1el72n+d>P@_L!{MYbbbAe@C0DWYu z;REgXcvU%YuJ`5zv3W$2u=~Sq_ZLZl1J9Hh0jXy3##&r2&`c6;M*)@I?UG;77|7z^ zW@o3}Z;{IT0{w#D)@zzuT9gHydbP4CC~XceXyw4Pd3k`GmiU+Xxw+tOym6;qu*-f_ z-A!m_5t(pjC#O6#=*69JdX?9sTrHqB z^oF3a4pIHc%31+N&&X)*!FZO4-s^yeUi4!sHv_e!4erGQ?k!6(cuk^1=fVRbL;Mx@ zg$*Sv$Bb@w;%SV$g7A{0eJASopg?&sCZ77OL(%MJA2!BfO%)oPt;lPWZ25AMIpp%0 z9$Q9L(+aK}Fb#{THh0AH>yy(iPq{W0WoZ+mh9iRZ~(iwzCOKcVam0)oD@V+jR~TI6eMtMCwb* zM7M(|{m94cu$X8xaV-~Yx>uYtBAC#|qg@t+HFGe{X9*L4 zhNDP@&q#&xLeK$HCg7FL{>LKHvh@Y!hd1tKcIR&nIerb~M$(plTivmS0pxG@+g*EPmm8; zCk`y~&#WOiQI#{2dC%zT0S&f@a-+uGS7mldGL0sq?cLBZEOZS??_A+cpL%_;5i-;X(yRLWB~08+wnvP;D)IbC-x zGXzXC9!qs3pQwb;0`{(8pg_WGmBnldBE)9u!IHHoQwsOZne-!bD`xJa^#S(+*5Z6( zEHTP@y}-|M4Co|fbfc${SHWcAj+6RT_jp5UWE!iVYC=b(Z9+#%)qTB-P(>LFXjR0i#-ifmFej(fUz(0bfia|Dr6RN%QIQrcZm|9^pVlvzoX*pX6j}T|51#wZ5Qv?D!M`PS>BidjaTJk>O5ikPA`Un^??XXB8TO=R^nxR1!VDe~6AmU>8-WD$ zwKjWc8LuIyh4UD%L9U$=_;3cUqw|2@9t#M>GCn3Fub|kCq6{%JTiff&nPd9S(nZj) zuu+Bo--J%24v1==!?(OB{=<{^{pZmDT~v69aSwxj-&m4s%*W2NxE;GS_4JM~eZ4~< z+w5Y`B!H9gQK%i@HKQWayY=rV)8t=|q+tjVEJsDrVCciYecb+vuvGb|L^Qf_9PB-j z-7;1l*uzrrKU__gsAKNl8hx{+}n)HOzh7@MIb| zuY0h7yu%{9fYzJVtqD$h^kbS88O{w4Gc&1v-mqsR`R5SRen-ylu7UgCkx|4o==mb5 zAR(@imCXbiBo^c{-vR&UISV+%YGxNv7F*s@IM;4npo7jTNUj6aA7*y;V%a2&7Vw|4 zty}5sD};Whm;D}w)unB^k7@1W{hvS4pC}f$Ll(eR76nic9d~MZRum@kdmAT0Pt(oW zgPI5L{e`xke6eBNI9~&$8D-?`{m4J}yyRyuS*Ev~B;O9OE;+d%}`sEDs!$jm5>2>-=6;l-CGAWenLJG#+>_rPep zWkLC;jd7i#OWeYl^a5fRAj(}SA_84KwqzQXLW?PkuxDypBH_G5+e*%!5PN<^f8UAi zDieEWmx5}(B`^3MaBlQB-e{c#?QSxIg)bHNGR|B+u2A7dS@;_7jl&-w5_H0(Lx?Ta z#edIf1B6rE20NlpfturscnKBdi1>Agh0#p*`?wSb)2mn% zv`q05)YiW{DYGk;Ok3@i4<(@Sed?pNec!T|`^5WszYSo+YsTDk20KUmHPIXo>8pXj zA$1eXUWm*vPJN?=)5i7{hWPpbZeu?`0Fp?6xwETUvN7eaAMYVCFEC^9z*OfI^K2C& zf7A@MN=|Y_4&{kxc%|KsX=J<59Qu%N{f~dra25tUd75~BZcj)@{w*9wSgZ6<@R0kG z1z68{3WUQ~Ep3HFhwep1BS_g#ND6DLivcD>9++`xvb`q%Uu50cj{nWeN-6GItxR^tgvQzpaV$wkdT?W3q4 z7){j9Aeho#$n1%i;>!~h;~=WqKO>tcOZHF)R5u6@Kd~fA(a;*we;ZTdF%iD-Sz)@B znw(9FB88^lA-VkkOaM)@r-*d*^hT$Gi--e&0^nIE!Q!!j`X8-u5lR$lovmgFmTQZl zBqsHo7D8upXE;pcl^Q|~t&gLf0prd-GLNciFmH_R_r8m8D(aT^?o!4#E}Yrvi(%Iq zZ$el$Y3Cahs=3fvT+teA#yn15_vHL%QPDeSw73P>YJFhMbS{P%OuzvvA^;D^`6t^V zP0-?hq24v_aTJdgLsUAaO9G)fd4GcQ2&j&es))CaD@(RVB)!*2GSogIbn7Sd=8Rl2 zP~<@B31a^o1~!&dOV~UDABS5=N0C}n5M)g9e3a1Y!~O1nHi4H}WVaWNR~j@3fMz4D zC5U9bIRqO0S~yhZjTl>AAx=ZIKhXO$KTJiUS`gAL&?DwRbcn_uOJcXjV%_B^M`>B` zVt+JgE7SM=9N?BfsjdgF1;xx-LG-hDfYe6?YqfVOn!~b6yciN%;%eV~_#8b&0)7Cp zG7Rfy|4~&(H4*?3j~TZGqm;>nNCjmqri6dR={a`U(+u?}T;;KA5Ro$7boGIOYEl_B zaTfLPQfe$H6p#{cjSq`>6ETFRpq(+{5VO8HKIbd2#MoP+v}jef8o0xee|-`%59SU59)SW+DKm3% zAybA1pHR?1AUT^_w3W%pKPETo>gv)cq6I-(${HG<7eVHY3x8fEE8)d)c=VR-T1lxg zALxW7jQcjV4X&m0$9fv;1D&bTBp=A;zs-hKf*t$k>=6mB!OB_V)}jX2p*bxyZY;uf zfsza*jJV}whb5A0eGcp>R zE@VWO0%Q^$#dOeB*r2Rw%u2*#fv-N1Dk5Ep>nnsGrw%U}UuVg(#FG|HMKHXRI^3`4 z=A_G_dHK&zoOgSsz_tYvj%$$HK*AOqlclM!Ep!O#qYR^~@S}RYHhr?R!URnPtO3bW zGG%uW8;7ZwDY_NaepZjTO?V9VU@2mX2kG) zMNdeKpG=QXDaqsyj^XjZ&v4L!BhulaF`V2%()d|NUP?C{k|~i}o{9(NIhd<+8{1v5 zi^wqjc*`*EALL8<$$qg~wc%NjsjVP(#lSx>Z`x$N;{L*ovj6ES+_`w~Cu>;sAG9A9 z>H?0zTH=4d&aps7 zl3jN>Ik3-^_Lu9GoXeqVDP2o`L)yEr_@`yb3a#cK zU`)OXPdbFsuW4phsQTx(W&ls*@K{;TY8T}cSKl}EfOGul-KGqxP`jh8)o>+?FFfmC!CvabGVJV<0I^O;pEapzt zGIc|mfvH`BfvHub<>q7}yk{?DTKac7LSCS^lYIQZDGE-pXv;y13a;4t9JkD&BgLy6*dyB{l8NQ9s`#@xpJ0pa0yqOv%R6~4Zz;|ZL_f{QNA_itkG2?)q~13-c- z+_-%LdRT8jAUu&1eo-5lf&;q)Og;72piXY_a!or$QwZ)uh9WQ~h}|M6Ez|{7%E9z> zbVxy3NFM@0gK^iYoxCi_t1q0r8jGZ ze|jI`?B)d>Vr*Jx3+#H4Q6@eJ3pg?!QFP!2_^SfIz$FX86&P)V7Xy$>s?=gJ3BI7f zyC-8OcwG>fv)z8Sr(@E>1afh6Gxrw=`uTw7II87~NjMmYW{k!dVs?>RoL>%{YoHHg z9ba@Es($fJG`5t+43<&=&$i#uutK>FxL<)l5Nvnk39q(oxQm#Wn7_^XNMcf~AVQ}f zx;+y4Q&44+o`CLQoB4RoocW042q$6F{ENzQ^xhy2_aH^*g`&dxK3C@DtggyCcX#(0 z5@L_zdN zZ@cYAx`gD$PD3k?XBjJFxzFLf2BfKi?|04*ODm_ZkC&(m^tK%bh$N-ePZH-f?$_-7 zB{RHlrfbhxy^;=ZSO$n?#YLK%mDNPIJgVbeok>2($je9jp-Z()pX4U0(X(i%YHCVC z7b+J9W(pOPysLl9i#;%2ykE`!YykI)S?phW^}y#_){hIHy0`=lx4H1SJI?^PBd6W{T+()Il>F?-%&xF7_r+e;KIe9CkcI zJEjf|SEZ*5C--}Dj&VC4%=kHnOtpSJgev-n=wy1Z;!QyPZheg7;ME3uL*^ZsFl7FQii1io z2rvA1vQHTb)`e#eop`S_lG`}=P`}Xs6UA!M7YTz)48q!^yDK9dl6iu@BPh<# zPq2h0>?wsz=kp`btL85M#=KDH-sPcgFR?11re=&u(I^ZXpiy$5t?#5YuO_A5_e>P5bKPkql16PIhH zmHBeZ?k5QLm2LOyNxGr*b zr784cML=wJpaHkDSM;%SVW!jaMz;hHp(J$#zy^L}dd z0{%R4ow(WjNGbeVb@X2Ee5FTLH0yj!Do(og2qCk&D{iwz=LS7SSuJT#Bg0p)>*HM6 zjwjcAlVhY|x(qd$Q?HvA%PEA&LD|K#p@MS#nh*n@v%ZIbfO@Is=bMg^jL53PyTU>p zNMzRYmpj(qvPkFERQ(^;&S$bhBA%AY8?0U}Fw`9Wq`m+5k)$9Hm4{nx;Kv)-0hQpr zBjhQ4Wb>Qv-TusQL9iZ{;gSm+KltfPsr@4x9Zj6n+x^u&KD&+#zf5HNL(&Wy>N+!f z&4nL-SJxWX1Unv4Xy47ho=5hzbdawIL{QVzq*{^(PYc87FK}g}b|t=X_09X&K?}12 zlBlasKOF(P2C{3zoUKd_eYdVVHTQJZrvZKtIy0|;>p(c-%Anp^0LeKlii1<(=h%hv zE=fp%Q8vPBy7>U6NhxRvj(FtSy}1E-*l( zk+t1s;~zLI?yM$=;O2D#LNduyYLt-WvPYY$h{MW*%a|qVSg9(0jUse(9XELegTE*I zpfihO`-4pHpdYC-Be36${hdZd(f`}ihupaGmv>{z2j)pu0m@0fR=jsk6a^vDDbZfb?ObOpx6S9l`MJ$%RhOf` zoXhIUy2M7uW~j>=s{fx;@Ct&=_DHn*^?C=-jb5tvzpndp!+M+StWxlx_9$XA-}6McA6{t3*Q%^8 zf^Ek71Py{|&7m_~(E{CasqEnbx0|R3K5l7j7AX9%eG8)OWXNJeYp}qL;xpc=`$~C( znfTY-5+-i1SHAZ%SsJ$gYFloffe*!`*J8^4O*lIH7xr#?RA(KiYZ{7fG+kRYUtMQS z4N+yuoxE>o@#RA1nExK@==uqhjdPN7>2Ex;+;OB}Znr$xb43`RtFKFSa%qWX4ApQj zPZJr!d-a3NjvfzVHfd5LQ}yM#v;Ga<4<{u&vAG1}Dlh55=EZl9h;6zQy)3a3dS7cYF*y=O4sV>^XCmB4zO~vQ_h8Y2dXT02!THQ0$9KN818HERm(f8h*dsqZEYFu)pd0Vvx&Y9 zVmspG?=hoPRZ6Yr=!*+pQKY`4ad=-BWi*ac1)XA7E3REd%!h%8omD;aRVi;dM1z1` zLq@51UQ||wWy8>~A$LOVnLhOngqiwNgu+Q8X|I``F)FxDVXhmX5aJKZU4Nzs3t_Mg zhR0?cA3Wc+hj=u?}44sWbsTm4CC^LHSjd_A=a1KTCWgW zjdb<PlnDq2o>!@x$9t3DTF z8{sW>^22kVZCV!rbMq9r&t{gE#j7s}MrHs))V*;f$*AGMA=C3qv;pB!RwW!sE(~*a zsI|+R_pbam4PEn9Ta;c~3l7pBKp@d*eG8O&KvBID)T7fcvDNQ&G?`BrAVnZa^n=){t~yprET;M>&`c8 zE{``As^q&hSac+BtMz|)rE|(>3GfRl_wJ7Ul1scy9=BO*POxh}lW4x$(_J)*K3~S8 zTiCsrBq7ct@P9CI(%0^&+vC0;*6hF-9tcTVo&!IAP+K2T{k)&xK3S&C6PI3n=FsH( zFddbNJ5HFwZ{g;bChE)3Zet>@Z9Q9fUrc9KiNp#^42bzSVi&Q*TVILQCl40qkYLoR z`i|NJ_7fL}lf+6yCwb(xJGxph+{nh-C4dJIk)25XlOexGQ+-R#Ers4+z>?kyTzrY_^g*?R^*TBK z?z8l@aN)`_LCMMRDK#3{6@*s5hP)CIgrzh#*P%LD%^`^~-*JK9<%J#7zL!2yk?$zD)~IWW zf8G8oQ;s2QShEN!)G$O<>k3uZ^p`{^S4FH{y5=zm%KYN#L~Yp2SKfE*@Uhw`?KO0X zc$xq0TgrjfP6{n<4V_LY~&4bSO-RL)~=j)E@W%>il zw;3C^{ah6yM_SBE+!{x=4Qp=L6I3`48MnRN;O@`P`u1N0-A~t#C(^hS2e|j%7lFZG zk63m*OnQa#3XK*WeCGcd>&xnUldUW73A6_EJ1DS*h0vu4|DI|+RRrq-DK9nSxJYAB zNy)DxfnViGwS5U)`nYdFT6#0n>D0r6Khdq{ksTI`SltyFV}EB-rG|%XTAWBVi#MzP z91V9cz1;XYNk>k=gOl3S4^OdNy-4@22x!}DH=Meu>{uUc(muQAKlNpL^ciDnjMeGYp$pKmk0j0 zHeE1=2iN+nZbkzNtDO?+D2Pj+cH=icPL{! zX5D2*o(SMqYr7aBKT?EG~IFIyR+fDDzFKaVkTiL`y`3rhLKN> zc^?M;+xEdSO5n6Gig%t!$%kU5^xDQN*pmTIL<85 zp_J~MUj{$D{lE-@|9N&|xRg;jFBFW4TJt^160Y_qS((G|c!cwhdb%2oGPg?cX)X7T z0;8|7H3{L1^?Y0TQCd60dfLC<*{L<1_h(Uev0k^W_BYG@SplJG=jrkL^-w8;3-vo5!D~ z6hEIHY{=pXa)A5l8;2x#tuSQT%0xM9cVH&t37Z}mg zeRoB6{TMPGjNSuD$amduvSbR4ZN5|3##Pe5`=xVq5;Tf;43{L+VHW| z%w)d>6-)v@9pKx6m^b6D&*0@0#$1QByWbfXe1L|bb9HZux~K5lsHYW*<8N!~=Z!Xf z!okvWsg{NL7vg`USuD^7FUbFV!&uv%ghm~9z4D1MS&)( zPkiBV!GB5_DW)K}Wa9!Qjbyb)WVcIQy%u_DH9>qq3^%Or-}{4p`wSYP5aiWp%ule7wAk zo4kcOBnd@`=(?$|31TnE>~a7i1fk9 zD^UFNasXP4vc>#knaivyjhMnX)|3c&Vj{UaW6r|Td7@KdCFhzB9wPL5eu$)2JS>bd z2cF)chdjq&+R1F_l}GQ6R=Iawn*I#Vke3*5{C=0<7b#1IkiCB6$L-jGc=Kr_UrgyK zXJWGMUA)?H^OeGin#m@hKb-7xOH@oF4@j@$mm$8sH zBo9WlCJL}z6Jwb5wYXPdzn8+_B)8j!ZmqtMcda=&CO1R zsKf^@k#hdf`AhTBg+*}wxt^D@$qh6kdTbz!wjy|!f|o!-Cz(j9!^YTSli~E zxcIO$)FE9}=6IMp^^@qpl8bWZ7H|Pq8XuicWO5E&LMwVq0xkA2b^P6|j|`s2HSiE7 z5xhC7xjcQougq@tfIXi2$xb}b?CI|-S%@MmNi2Jb$u-9}fnD!&w +fw9GHJ)y% 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°$~dT;@(I9=-T2{SGso(4L@H zNQ@KM-J2pj zXG9>4eu=11JCEdnqq|_3PwF~}C=Gs&QSdk1WR;QAA+oq8X1+XTHn!TC(kssPrj%OD z$7Y0EsCv}CKFc_s6Zpc{F-&qhl!yA&#UYEx$}mrhJa4_%xcr0UeB1)K==FSBT()>_ zYhy{yCXM~=3SR13R@*o42_pTqs?k_I?OG9$KY1IM9;Z~deoAx6){x-ol|6H@?St#H zGxux16$1^8gj7Hd12i)=%c%aS|B|_o=t~w4P#+6BMb6aNn7FHD7$-k_!H(b*-fXP~ zFkj4fQ)kKt9C8BgwzP4c5u!17s`IwyH361@n`4?7vaIGJ2Q<))j_qQ-#(tnJX{hoc z@APM3P0atUZxap~QlV&;^%hp*8lZVQkS?)`3iD*u+XaF^Ma8+|X=>@kZ`OFy?zR_hy6V za|j~eSdR!Q=AE1SMvl#Lx?ax=k~U^XY^@vmh)&t_JLHTGwPjbsUip-R;=yC5j)6C@ zz36Lw?CHH9h;sImv4&QdBa+c#@oM5M3trPue-3kiWxow{#`fRm^kVhAvw~#*Y256Y zcGLIh0XoCS16CbC-sEW$BRDNq^Qyq;$1+X9tO?5>NBZGqctlS zWuOhI=gGM2>w6>7N|$96r-yNR$No0%SwKK3-%wYl^9~{AYfLK8v|SM)y3+9xJ&f=U zEhayy;^qHrk=O*GbYC^)ZD*^*%XI7HeMaf%296FR$+$)89N7z1vf1u^ux6@tGS*QA z+F3q{YoOZw08eKmh%#9CjpI4fhxDcjAm6qdt>m3eEDq*=>O+lrJ4u##GV7Au?^kbN zPrSsS_c6WW*?Nn_+pOO`=ZAHcULo^V^TgKAh=`%K?Gm>zv$$(A>4Pw&L(Un|fHw6o z&``S`7LC!YpO!s&8npQJ4dA z^n-wD2J2YB4ib3_7)60l2SbUjVl`|z5$#$%w6^NE5PGd_d=XELn!r!I>HH3NT^WKd zKMF}7lL3p|CgXL$-IIOZnOl?&gHExoY5m7T<8!QU0e2(*bxJU1we-g&0>=FFe4(;@ zaq71fUintv)&C2uP`(^k#?|HI1fuD%b^+~C-rUy?5M%x6z|lC{?8Ar$$D1!-3bhw@z@X$B?zMJ+ zKE7=X(v!q5yL-Jo*1&dDL_M@BVZ?9GSiEz3+9eb**b%mp{cVbF03G6RN_9P1pC`tlu0eE{v(C z`UCsvHon;j+Q`ms{p==pak#kQ^}VO6()N@>-;RB*Pnh(fMr%lVQmoak@S#!ZAH7>qQ3|gfTIb|hUJd*$1={D#xRleZHv56eMdHy+XZMt^+u`uUxNomRroh4}Y zT?Y{_TMZn`DF-78ul^DDK6{HeLELX<6R}n&cqfU8$18nF7Q%;9kEw(m`ULu)52)@Q z+rM1G)ZyPZlod2NEU`_wl|7xx9oEx(H~I4Q?wJEC9-k5fGC^sh0|}^jMoPh{iHWQq z@<;)~ziK4Hrlk%K;Bh)!W%-VpGP<8xczbfJr%UH2;MskHvF z8uWAI#Y3OXkSWyxp5CrVqlM*|Cx8Qu1en4~jQJ#SY=fds+A$1L3K!p4*6op)Ux^u? zT+%;XL>XaFSY`bnY~;v!I<}}iS1bKJ(sV=nK3Pzu zkh7N`w%y26i*%qn6R<%qn7tXr9hzj@flZ-dnGC-{^Q;SF;fsZ})I`Wew!ucp!IkL(V zgM{`QvA*BQ&Xbs(rOJyp+#gGiKkkl9bw8iM#gs*1-oG)Q?Dz;f8ReJIC+hio`2dJ> zmDUr^fUB#XsBAV1o>Q;#7k!h8{=EBThxPEnXM^BlE zS!PMu! z{PCj)3C<~NC&xcxnUBVDS^Mm46~o#N#5f8mnN|(%{yMv5$0O->;l$=t*se6HtfQkq zL5=2So@ib^y34Km5}!y@<{O`+`2xTvAC0(|Pb{*~tbfl{$}UdSYIDJSiue7PaQt4m zO8RuO@h4PZ)KE7MDaUs=-I5AaF=H z5nsJc(j^A7(W9H32vdkQ|^6#G%yH{KX0fLlye6>OMO^%L)}|>Fhen zguf+=n=hNl-qBPz*mG(NsS{@0JhMF|GOv(h{Uv+fRHs;RM%*p*^K4h8vom?Rb~{U< ztV1HL4Ws&ZZIR2C-7}ZI8H*F)Nn??D?Ik2qKxTx`00md4XcNSRcHwnCX!q2c>*Hp< zn6#PMmAPUnmR(zW_Mj{U!FQ0LWlHtlA1V3cTf2_-ll$UumZcYeomuZl!mDmvynCeg zYME?le$B$2U&sD9LT}6Fz-i^iP6sCLiGVZJ6Z_|jV=geN1Wv>y_h_wg3Uu}0$EMv- zZD*X*jm>RX0#;P?Xx3HpdkbqaHB&-Z(MG$^+na(CB&=*0T03|>KOVOi zSQp=FQA9l&C=MJMZ3@18x_g)2a>{MX6ZU7<288 z=U`kJT_q4JDF>|6(dVlJrxOdg(yKA5FL(CKba)ok4rnYrx;K698f+XNaSg|wzI5Ki zQ9hr)IHpc3ZigExv2n-TdS3mpC;IzB)=GAO4-ZCQ0HIcwfBx!J3ZHpAk-_-Rh?C&c z%`v2eSZ8l2m7$1;cxcjEj2WLmEa17Pcu6C6OYX*io zGpv9}iDw&Cxu()5-BN)qbXS*t(bP)wQg!cdUxDObun*iEk$X!}q@Gx>0QFqGl~1r#R2#)&bXb8!b*nIXUc) zsebdV_d;;HHv=BYftJMYi=-P)BgMKOLrAQ#r`%=cPb*1!tiR!u3t=IW(o#q#;v~@C zUR}YYfp|hWl_+B+HEQrjgbou`as(LkgpYH8h(fw=nm-a451!x1i@LO`NhFZ8P;(9l(9y?Qvy_;1BT;gR30Ry(=(ABc5Ym zvR6)Kq}+e#$883VsfvyA80aHW+lwF>R(&z6@gAB_YxY`DHoZcGD9+?O<=ec;k_!vGErm za_;p#&+*s$M793I!c>~4uNqcTvod@Cu{;i?XKW*R_T7Nmjj;EeCRJs576bi~JTvU} zU%LB#mpj9A#KSa~c^Y`oG?&pdPsuOY{q3qV=MvbotUA`XwA3v}5tVj*M7gBW74ePi zcRjbBE2`kke@F4hRokksL!3V>++CtrK~iSn$am?R)s0Ik31FE80Jniq-3i|U$j4K6SN<|W0 zVJYmFb#oM0RvmveiXxq*QM}(oJ|;n zd_2{ei)HiJLCI7syQpEX_OsE<3K#fQBVOBS$y{rS#mPCzSO2tdu+Y&}W)Yw)il12S zE%Le(GNu`;;KO0qu?icxU`RcPG-*&U%X$8oFmNz`EBiSeH5hZXt)`0PaZ1lK3g}aO z;W`_9SpcF+SWGcIY|!?&c9w!l-hX# zuQV&4cz^NTxsFhe*VS(iv6+c5GZhBM0DF~A3nmw3@Gc4k2?BXIXg9vQqJu_W)yB_`{c@G z?A4{xPcM!d6|j3HqKnp$moF+_DBgCnG8z9L%$tcSGN{QWwXKu;K` z1Mm$3sq0|5oMi;wd^7}aqR+TsYZ|pipsb^q+ z+l>u_>F25^ZB82jYq4DbW4%sn%Z7v4>{Te0$*mgC`satACsQYW#-tLJkmsr~BOfz0 z=WV|+zuoS2y}xV`26_8*RD8V+3C)GF=3nR+s;&t&=48ilL)j;qi~g?+R=YjFs~6A+ zjRE}0A)wSEuOPC0y$Huh4i%ym9k^PkpVaQSpNxRB|x|MczIUS5h=QSp=n#Cd~Rp=C*W~}v)(N}ft z7^w3__F4Md#x;H_v5T>7d7iw@2;fSBl8WG zGr}gd`qYzmKc?dAi+K6O$W_g(v;+E|RB7I%Q+VB~_VrHDM<7Owwtt1gWo_;4SH}{i zNro+gqnY{Urkbb(-aid0L~BalqH_G;zMC*>d?lt0^>GJ?g8THT!wqx~+_qe(*|lrq zE>;UK0vCG|UIHFS7N&o>tsUHd|7poU!6JQFwCF659Ea=P!o)&0^INXnO-B81#Ph$= z`yCj`fvY%1o$oegdrvHaXw0Um%o1)*Lx`uOdhmR2R_P0oy4{re#-;$9?;TDTjuMLx zcG{tKc?FVn&UXSnJrmQ&5!+|g<;-a)-01)5{fwBwm;+Okm1ea344%tdC`whR=`lWS zou|l4L5w2QyQZ0{9k}AOqV<`Chg?ed%NqdHmuVn`H+IPf2E&{PAVD zVi((CcEXiU2r$@B$meu4+J#Wa=JwEy4>4cs~)81t1$kFNmaU}9(Am)v6D)Yx@M9LNk)ac<0fK7~FF%3C9vEi;E@8p7Apo$A+@AmYnxGvbz~y&OPrt z+B1S@G?c&B>${_V6v!itN0CRKBMfL7|3#K$sk8xQ&QE3>%Dks3fk(7Te%) z>CV2n(~jy$;4@D{TV`8ol*3Y0wVfn`$~j=$U7qtmU+|g3v>kEX<@r{2zuTtG9{e!VmE@@ekt)ZPp@W z$asSrs*bAatAg4eP2a? zGzu1_ZTh@z|~` zzuMw!e$dbJ$0TD(1tBbPzt%s?3AdPB>Q5Dy7IBS~r`w`V=AKd&?At zq<7A4y<)UJ_BDpz^iH8T{Gkg5s^5Z2D|&*km}&fKwKkLf{9+a}U2Oi|FkQ;@Ck=bA zaP${S!@x@48p_l?W|ZOJsyx)@IjUzx@<|Nlt#PT-{v8dNac72zk5- zBj90z$W&(ly*!aHZwWpyZ_Jsy8K%5Cpn~wWo_8LvcH8VWFMeF-7wC-#QQgTZs8^38 zEFM%NP*r+keY7SHK1DAF$k#Uer+ca(>Nuao%`13 zQ=x#!`BDQ_{l3PsZeL|O%nVWW;?OL3zV8uh^8_)5fCYEQslJl$c?|OYly4}AyV}oxb$(ZSbNDT^^QaU@wN{zPa6}U##o(#+ zW>RQPUEm&%;N};J(WbaeW<5AQNm-Gys%rKjELHvWYZ`%zTpvj!7%lEXT99@VWmBJh zzhweEM<#fSunt2c`+@QE5U2Y#mUF+$j07;OdV!BfncOZ(IS;1tII}uQXgE#~S<~O_ zV2IUBJ8e5B?;aCucM%P%ZeJAaLUpYRP1fOX1Y#-O1uVab^t@Tf^>Pc-$gVS9rMaJ4eMq|knMwcm z2|>c$_jQa*X_4(3;&i_6CtvGuX$U3BM3ypgY6Z@8^f)ZNx*YgXh=1(0D&A}*uNJF4 zdgFS#h$J3VDffOX>*2;^M_|mmZZ)DK_$#x3JMW+YK<^Z-e>yTcIt;W>iKL{ zfS5UywiLjWEU?=8#G;?OgF*s0^(0s0sdwwiiTT_^ z-gG!o29o5wIna)^uxxCccazYuQ5Pe)LNx5^{6VD?q0rV@HaJ2nshZiI2dZfRmzgZtfHT(aVR7*+7QHoLI>rzYj)B4 zrzSw+zZ4K(70GJo>jCv^rB8V48&OXBbaTXH$HvbCbViVQ1B=LeXmVm=nfh{@dWC%U z=tYx2CG<*puz_lu$|v5K;**xwyF78}C^_W3DLIL}Q~`qB6W3)!LX}PKKl&m6U7>f) z4;C&Y*{;W%OQFTefR0+_IG)~Q7cueAs+$}mSE1i0z(BU#Qcc&1$edPEzCR1phfOty z-m1K}#RdBL>kmVl91bFm>FTs*ZWEc2kC@O*nmJoRgGs72se#+2?2KD?A}e@Vrs4%M zHyG=x!EATI7sXR$kLP-2Ho3)2gN6LX``u>d>Ocu>wAnGE4`jE8N>#4bjnI)<`wV5_ zM0ccP?jl)-aqpeX2$gn-juC#QEZpZ^?4&-%f8rTyzN6oXL{3Xc(rcUnjK82UyL z1!9>q5alQQxeL?qku*i|QH6vZJwH<#R{!3--7<2kf~1Haw~6-kR!#Yw%M~b6uWoc+x~6Y@@8=}gvpA=ZRVk(r8Hhu=zngP|)$7Z^8E)2YF{m4H&24kq#} zQ!GjxW)|>E0X<6nzpL>%liA8j32!=nriF!2-6z~`=Isr#Odic2pjbhEt)4VT{g~*5 z-0p_F{Cai!&9J9rZKCj4Vl))X&Y+D$i#UKW8{w>^YVffdV$#@oiO=3)6$~#627kvts)NJ0rzDZk|sovWnX|A9H&e}keJ*PhqhC;DvaHk4!>ddCb^22=3VKqbNPE1zdY0RQ^Z&N92M z=QWVm7NoDV=%m2rks4{2+#DF`dI9vZSL961)gw)_bq$L)me(jAI*N7Ju`7uqC@(*j z>P7`KkdR20Tm=#H74x&88{-)h(mkTOd>R$y5z2Zn@({f-{Jr2ueP2M@&r;crRGHmJ zIE1g#q05GL*24M|mL!lyKwRzSbBZ6h00sF0w2p8(p=xj$2a*zIG)8IV4A^)p;GoHj z{*{=Oxb_2cBkKs=H7f9ZcLSRp?O*x##ih%fWx!?$98jkkJUog44>BV?-OERf$XHMt z{?00x{XQ7zds#qI1N=;c0QqM*{3R780*MQX+@&F)b8VnC8EQ5*vNu|Pz+1f#qap6O z?lOC-O(}5zW*^cA{qdmYUS1?^C^w|EQMXzH03Rbkw;oiuFM8A@0s3fA@w0KGIN6uz z_CL}b^kCY3217XBI{bkQaGAQlzBsDqt=5$mw}x;mMOw~^p6q3dB{8+4<=(T=xj%up zzd_U&`B{*d*)~*N#sH-5KLM}9q*U)m^PLW!7^ZA@yr;cSl8itVo8he{_*%3-89h8T z%}~b_^q{p|W{&gk(K+-geF%8|AK*mW8JaIG0~Cj6G#rqj0(`4LQZ(%?i)6lP;XSYz z#{mkip7p>7We^a2jcK`E4q(;CiwP@$z=m}l$fBoDKSn!wed|caV?7WiLN*0qyv7e` zZMBz~vOPS;WN6L1lAo38<1;o4+A15d)NX&jA#fK+d2kou%4>V=D$!O&c5uQD)8BLxYh04dY6E%s~Lm+Dpx~~%u70j=C zVE8(%zTW*C#Eck=k{Z6Id9LbV6)XGWQfGVD6~Oye_UbS%!6J>L6&ZzfC4B9Iqc z`fSiPz)tbTuY*O{6UwCHj>w;U%N8ZXN5|A>htm$!-fGvvu7!1g(Oxez5pDGOwSN>s zdzE+O4iXmL>te41gSPYJai+#0^{z4_nfRyeti(I~*aLAV@BH1DLoWtFQd%GqGl%CK*#c|Rw9RWMZS!tn`*h-gd)m5XfH zEVDS)g~;rBVo>e%M$ddUPEO)C(s*^2wQo`&T29jQoT@JM9@yA*8hTm0fC&DN^~d-k z0A_&3^gzcEAD9BZVz~m>2O>uB3H6G$XVd9ja@!^SqB23mocGinlF^7$H+#jWB|_y2 zsz|f~J#oWPn<7k$Xj(nWty^P8oGv8Z)2~&_LFcAoidj}kNu<{O5|Ii6dPcq z=5)O|uAOwN+IAmbY;O8h8=fvHd#h+XWJ3C%w}nBFnAQ=T1Q><1wC&DOC7lMypaT4t zn!)>SIyFp&b0gN@UcVgl!V!IiIECOE0v{Skqy2ox#lFrZ@3i~r1|7#cz?|5?g<_K5 zzGN$6v8~k$CC~43Qw`>I5j`}aQ12|}g~iHFF~8zS{V|y4J(l_Jh=oynUyB{e-v%6g zi6X(E@k#s|pMB{swDdeEJc7Qv4rNH~WpcVNn*mz5)BjgHpBOd4!t2&slG4=SCZD{B|0VO-q~MfzEBU z{u&1P&x?5Q{52ai`ctL@z$0rbeh_cnz(S%RgW!JpfZeDIkW0_@v?1E!sQQV28|jvT z_G$oOzz?3}B;us`5`U7)D0!RWE+!l-9AK}}R;nl|Njz?!CMc2lp+xTCWJfzUtplS` zSwY4AdlO>#XM=JOSN+`X{AAy%3l<_^s!3RqFtJwHpsnEm=@VLG`%lsLWh>GBWW{#z zv(e2Zkz{l{W(IDlujbTRCaQ>vgOzs`^ZIqbH|ovS3TU~Wf+8{R@D8H7w@me8Tl4bU zh+a+l{8I3!G+E*O$C(VCUhiQbNrH4H0Cy~R7kf)od?TRk@(Fx$I!39%72!nspo>6r zGJAPG`#o{eu??JwQrs5wbK57tu$&?gc?vMNAxn=_4YG$lQ$y4lg>`-#@$s|(qW5!36(q8d3w8s5s+=4ao6UGQ&SGx|36ULkwL zsx%7`h(3)5cegi`v9e$`3u)9(C3+BryC_HtAF9(Q55WMO$aIJL-6V7k_MJ?ls~&)c zOk7-J_$bN-;9EFRqq< zkVIgAf8Uvc9YAn<3A1OuFYwEoRj$H?`#qsRW2f)hobvv&F+q{|_t0kNWQTpOJII1J zN8nigyY@vtbXXdsJ)T_ zbZC&dJnO%defQoKjK!s+5qSX*Am#BAxU2HZ#Xk=4jTDbT-lOOc7#<)0{MzPm`eII5 z@P3kctGesT>dEtFVGT--?78=n>kl$K%!kt7+L)RM|1*IC@>t;+w2dl0rdWN^%#7n& z>>5(>ambG(!f&{t)!INAGLd2xy7_Jkf->9 z_u%m?8|-2JVlr^m#*+ih`%eJ4C3{WWh9X2RF+|;FT{Af{IrR2u@{*JJd$3xQ4Zw-wOL~}SeB<}IqoV92`}oj??q338 zz|fVBwmtr+6*kA>*tZ>Y1@^fBF)o-_paVLc=9YNU{+Z#;kS2Q>BE9iD_VkZ+#}n~( zJpKMfut(p(-8j(BeZQTVWKC-%V+0X z9%9ikG591Rup8$HhdNeV=x30r2?0k;+hh2sfu|uA}Gd4CcNhOdMc!srmSA)`WqBOvlfVcmi?iD^$ zAM<`?A&ssRP``Z!Lw(k8HS$M%66!(YX_zG{9~kC1RdK|5L%1SZL?6sSh=d}VnzL>ad(dQEwGL-{~eV*vj_M(*$ zaeIqDS9AX3W;5d%WDP7y>b9!wh!foIP_YT%?mVT>9Rr5nuE@O7Xgqm*$C$7g@L~Qz z=s@3vZxnbRY4WRT|gE>|ej7Y|qY>I$Nqz6cu%ewWub^R!_wAMURCER9g z!J&Oak1gyFv~5MXEJ)~Oo^<|3OtH4( zv+eYc_6*J1`SloxkGy||qW`lLPpy~(NxH#+TAsWow0(1;tUFJmmYB_7a=POlv4ZHa z{_@$;eAp&9vvESbab^n-{h%5edE{9Y2B3d|~}pa46m29fGVK-X+)rnXidNAWC%9eNB{wa@B- zto-j5hoWC=>d1+>Z^&Fl9CMbT#ka z8WnWs#zNFaM@4mlydJNH6(KU;?UyoPYkB-Iwg90VSu(VX58HsSOQ|@> zSJ^BTOFk~EFp`LvI06>Icw5Kc&hQx$vxbusd6ouR)Cf4(^W*wW(lRn==c1#Sq_cYn z7y|Baz82D2J`T{Np!QNGkuvY!@q9pgDyxZ*fhxa z{%RuYgEdTAb;v)+Ejr z@+oz0bGjzCrbbvGg~#Ad>lkelv>TDjF0v_d(ZbLUxuWtZ2{z7!j7aQaqIF?;FUt6- zSNnzb>G$aWpGa&KxRRw7=ZFN5&$DVv$kF5}8VhNXk(~drP*+Iz7G3#|T ze#5o*xTv?#DeRiBa9r-g;2Y>q36uNZukHmgxbyV~AqH@LR;hVfH6z7l3K?A>bWn`D zcIy5<`4v6$XSVo{zr1}rMkqC?4iN|rGLGl1_cD?&KT zOrTdr2%q3@L0g;seKn4y##sdJivfx#2`ePK)R;#>m?wcBnxLdz|cc(cga<{5Lc*?S>3ER=xn3 zGyqkoL){w8D`gFgs$d~Pv_!?46=q3QpjkUnVVP2Y&zDHJoG6r9cxs+)r_aYqo1*JM zi6Ii=-+M06BKx2*?^a1>6{dy%zqUX-Pg@|V3^@Mo0lEYz)nDr+I)ZjnsZ|=euze*c z!F|g^%g|#}FNVx_9DSkJYoOgKNRbOVNfqsA-EOt~s$$-X_=;MayET5Pa>dFcHAF=J zevJ7rkei{LW9eE0FK1__Z;ig5KBT_f)b7H0<^Bl@^-j8=;EMcqcGX(Mo6+RiW9&Ve zq%qxZ$GV9Dj~))oo_zQ$Zz$A2zfWi&6lsF_$uQm|;^rfgi0@)|WhbSW@B5TWxwGGE zzRr*BnbY1a3 z$M^Khc$6mROi1zx7H0wom^2@(t<;Pna+e};wCHlF#Q3BS4d-vwd>uRcjD7srZ{3bs zHsfq>=+(jg{ap9oc!gt$sTzM<1fx1A)gO~p1NU7k(2({dUIU4PTJ6&iF)jbhrQlbbbFBaSiN>n@a9!Bg zBRGMrIyw7KfdXPJ+t(u}b1i;1Y_@W;kOGn~%uaE&CbJ+5j6$DV8kK#R%+X2xnP z(HXh9;f3>4XaU0m*<-iW}*xi0af_W%nVhMkR1yd1;sZx^^G~Fr6giAhqhu2XuCErqXpd# zan_2>tt|&=2SUB%1sDIG+eQE7nL;^Y>vVd{y`m?Z{vma*bV-OH9;wZcg|Nw}{4y%T zb+PRg?Wu0Ny^i&nEX9+C+5y|MOSd@!&gGS2j9JFtcf$3#^JXz*ySi1rd!uwn-n^io zU~T=()7JDbQXK=F^#{+2kk3*DZI?eaO*w&DSvFO%b7mV@b?PrBT-L*W>G0w(p5N=Q z7}i)X{VKm?4q8`IK=7(5x&9rL?03oYy*HI68X4~;`Pwd~%zEMLt9%B#3YE6iX7NyR z7a*i21w27$yGo3dPk;Q6A~VT+KV6&QI#5pDyra0xUd)lcvDZ}iAZG^^PG&skC` zDulXr4o%$9dsu276!a`q2(Np9eq1z&cv4(0{bHB3B0$P#{A6dLdtualV^lx9lLcz7 z$Vx{?H_lJifwb2t@OX}E=is13_B$v4pl!1VXiL2Ls~TqeXE3#bN<|=f`Ctn$ z$V&FX+0q3H5|+3+0F(99DQrF2atZ@#Ft3T?eYfgqg-d~mVN%tbF(98ZJUk2yY@^Nm z0}jVUzwkk-@9Vm_xRe_9l2stf%6N;P!KDuUI{Io1x?{Tfl7#ci-S+c!3dol34`**} zvFaR4mm{EsK+ZK})2+XvlzhGOR#E*O;UrZz2QXDI*x2~t_tIe4WYXxux!Z3bCkTtM zD>awP^x6WA_4QkCy|eIuq*lIDE~Y+eyydE#0r+11uM`x*-Yq6O{=gJ;J$heW?|$xl zm`wcXbkP+|wds|KPs(SNl_}Q@+jo>!RD>n9#{KminZDjg2=>Ehi@@pT?fH(9Mi~dQ z+gVsxyxMSwrW?eacB5LVWg9^{XSC0z?yk6;)-;^f(?um-DNL( zGlT7;DQ#mZvG3g@(;=N48Chu1{rx!a+Q~-bkVef&@v=Lwk8#<=?3Y}DjBG@LMRjf- zrPxsu&QG8TcwcrFINCB@?kQYG6>#d*Yl;GLTFqgt;*e$Uk?F=B4#pIp76~aS9%l8( z46stA5P1KA{tsSRf-2%FS7WO_Mn^?+lV1yY_lLPfdc|)Q14!z0Auk{C6$PjgDc!O4 zdkjr`#>()E#g>+q@p8bVKqy6AR*g8s+=*0Yw2 zcjLWg-bL!l>u63wiGCM;dNi`EUg!6pekVjm*iMEijsPZ&mF6Y}Fq9+=LRj-f*&kh! zQHVHlX@t$Ip-mmJvNl2PX$=5Am5?h_gM)Ka& zz~Y?>nUEnow87*W!c`TiJQB!9VzyUVMlfXB2dFoE8t6z4R3nwR>`o6hB41KD(QD`c zV_Mfun-rT7B-X?AtHK5C_Or=2dgf0xl&ccxrHFb=E4qK*dn4>I{cU!lAS)1{GL(IN z#G5F@+-pr6>#$#XAgTbQ6lt5{K-np#vd|1M}6(^SUF%@bl?a8wLS3!CV)twA6Vj-p-r zBpCA|W69HG_Y;#6+m$!ew-Z1mzYDs?WU?XH$X;M@8doQlq=L{if!($w^7^3Ssf zm6;jH_D(y@vZH;N^UKF)wcU?nJ=BRJooC0Emvc^EsKV7~{w&Y9c>W#UPj=BrzTg6N z(zV#$tBx1POTEWSDLTp{PQSiC^U4Lgwg}l^HgZ}6cnZDWzkg9@qtEe_%g)PNw{=U( zh(-cBtR-@n0kl5kR;cg){@WOjP@Rnr*A{uj4B`AjLe=lUpfP}WcXqltjn-nd>_3m; z%5$M5M!V3vc)vy)kbJGoIj^rC~OLqkHwg-o#b(WTv>QBA}9|>Heq7Ni_4o&Sm zf7U%gBJy!4RtXUEqT9H01R5HHzkU^MYqfm68rro|!+ZeaVnVk!h|ND$#!)RlUpQKaebIAjtfG6VI9=JI`w!KtZFAY)gx@T@ z(AZ6dOV>O^iQVrkH=n8f9Px+A$Yx4rOt}6Hmc3vPF)2Xq+Sx-avk%_$>@EZD&EOp^ zIfCiEn2Opq5rBQ&+^^dkk}(856-G)W-h>&T?;EeG<2J&k!uP>$HWpip^Ve+rY>a&M zxvOwpW$;!=oJeLl3|Y=P4V>YWD& zaHB~)ro)H;%gVW%Ra^C^^imP9Q-fG7MjVk}A3(G41re*x4PhZ6vYYw55~!x8ruQTF zgCv{(dL(HweUpKFWnTmjN?zRnRxdQz6A2E+67aU+#U;79T_PvT={L(LMP0|h8KbJ) zvT6&c0|^97@^NkQEYXDgmT=HM+4;ndsjFz6wdI!U&8=lOX`}javF9? z@t2B%0`}rmgP$$Zvu^9I&I{41KQ(4gV&2|iWJMoAV5+q{s_->S^v~7+0-nc@>BWw_ z6n?H`r^L+6Xdi>F3ma$sQQBF%<(aQ5IA3CccVOqZbjp1Bq(x+*+lJYulLYm}FTaIC zkdybvFO{U4Wz5F=7B=x4ty{;Gn#PXssiC&t)17PCd4Pi)@Aoaf3m+=VF9OK~16mx> zx6&GnvzotI$*Rm-Q`_J`^>|sj&XXfF^rUJg>VP^x2)6MWm6(8laVUkL9_)je=wVg= zXQ1I29~yekLEFY=w-VuUZVRBlgog9U2HtG>Bp#zk&`D}>J?_@A?~nD!5>I`1vEF~t z6C4^EUlQPMR>grVK_Klcyd0BGEdo`?r6Qd+AT?bBzzy_&7g4(Oy~XOM7Ujb`;Oz1S z+4TeHN4N$bc2?7}0)B zh=7>+SWbU0n<)jSnTvypngKh&Bptq|#gq`ksbc}A$a~P8Y>sM0mC44S_6Z1EqAf8KbL%VH#1Rf-Po^Ym2c>BCCQ()_=ABq zvOO+7QD|YqE-U?7B$z}zBn1;7Y5@9v2r+0vLLEK!&Th)3Cb|aeYHVzb>Nhbp#V3DN zy%Oub5~~l|TRWi+wJlmp#oZi{c5A2+5zxR)j@;a|5On#F4E+ z;|sMvsWSO;ap4Z#Qm+_NJ~ZKP<8!s0Cc0eExyW<^TA{tbQyBW<#fu(W6NXLDe4-p} zv$V0XnLg#vDDSBSWxyl8T3)|&0& zTNdlWeKkdw1Bbq<_4a0ImkY_EhY_YgBYMY&)AboEgO>7I8?nxMo+b#wKg}&&62Qsb zCwA#t;ei-?`qtUm`KOG|NrWrlgZ*X{vepRT+?lo2KT=Jt z0Z9-tHCLEV3jblW^kzKdqnQL$^~%)fC=(Dq-vLaeZqR^wz}awC{FbL{q7?rCWX2I1 z7FBJ^tE>C7vanzA%IzmCFsTM7@_`fcfTXWrUuA+b;Sr$!Kcp12&PcS#=J}H^JwoMh z@d187AP$9qV$l`o-11;LQ0(M;zzV{M%Jk^tq69s=)o%}-K-L55K@iF~rV=?p;=Kd9 zFgo=IWrbY?3L2_dL%SD>v7q}^dnXgvNO`g$c|h@H z{dtZ0=))O^`}GNHcC*2zK$bLm;NTRCzlsZ-P5f;uLb`vxe?xQ~rBeSQnn#I}nh)p; z^|!3H`uZV*KKf<@asnrCQKt$&-D=Q5i%yz1n~qmy>288UShQ-+m;5KXNX7!di5z*e zGlW#ba((7O)V?kpOE34Yjjm~;W&jfcNxKrL44TKlmZzRi#L|T=gVYoERQ@OMZbzJT zc%1pUg2@y6={pLUdiHsxo(E|`9M(;1BdR*=pfwtaJ~V*T=ugc#kW@TX@$w*DBNJZF z8oNGYM0I=vk%}{i$j8(>V`)!cB`gk!ENCY{W{tj1@|GsM4ZBiKE() zRQDs0b&8~PiRUzQ!eE`8|IK+_jUuYPrnP?Fnj?6Br1&lH9{KMD>N>)97HlnOt~U~q zuSf36JN{ipVoabw+V+qsxIiIa$ov&EM9%eO&xE*h)v;J6hHdbx0+J?e&68w)gzOP& z*dox*V%Dq}pcg|x&bI^+=)?8r)3W(O$LZTEc^vmJ@u^rKXG2F|0R7;B%MV2=#? zY?bQ4^#WG8KK1~0{`#qlOAS^9sDGOIf0Oz@s0U?UDaD!wQKO(xy`9K|0iYIZ%Vol3EmSVfbdbxsNIo5K6ckddjYg-k3pS^_?Qh~p%AI!hrfD$m~H-us%Dos%W~ULl$bn z6{FH69YN1@BTiz4pK#ogEx-O=4KvETUPz-On396xG1!jPtMyVWf8}8s*jUh->guU8 zu#w#(x4=_SpM;QoB8A?Da%W3t4h0E~BK2A<0;26T;JbTaSAs)HCs8OO?7MfLuf!qg z|H2l^e0`9&?okY=E9Z<%Oso=5A0?4Rt$YQd8}9Ut6g#@`A(pWsd=1Yng@!J$ZOp~2 zfBIk0TyeYq8{&G0BGUrp_CwS$;5pIF${~M>L&&||bUp~`HW&S`${6AUgbxgm@fN`=g5?X^e=zk5~YObUii@J=@awG7gH^Yol-La1)@At9iOg~=!(q!m`S6F&rf(;HcKEPo zD3!eR)M=nf0(!pN=#h+!4yh{53oD8a)*EpQr|flO-@e&qzV%c-bOWc;$`~?PDqA1q zahV`9j#}R#eexs;|Ie)&rh@mL-2-MCd#ml%dO(?0vMuCQh4VEHj9o3TUhVma)`r(q zh5vRwMO+l#G=0co76;i|{Wy6EficTvfw1u=5a%E9M9cYST-L{C#&A zB?AK%fx`%$NI-HqK?;Vb(19LF^{NE+yYmcDz&oBzrtgxvV)(Qpa2m{>Ee($_>rf_O z>4jjMmsmmV>dhzl_$!{VX%YSXaX>&aPzeMugq-(`Q-RJ!7h>%j?Ao}azCL{nk{dd` z%||b@j^sBVE1FZelC=U}@R$wAfWt7~%I&s>DG=)iw7%#tN@0}<@XC$5 z?C;}s{t0scLg6rE7!Gs=TP*(vpw+q8Dd$qKH$m;YcdZfUOhQ zzb*<%LilT5TqCd z!A21f=|yRhgc3T5bS2UP0)bGHh*1Ir5*0|02>#pe0?+;bJh|9cdDfmiYvx_=ytC#b z!1N52UBYp>jHxvuZ1^8G4|@` z&wn}#Z$S7NKyiC*|Fx4(i2#EsN?~FoU<*AxB%|}0l!QzdA-fX|c(h*MBJpr#?0l`{ z+F!6EcD7xu zJhC|Jm2_Mkn#t7S*-ilrTWO}V>E1tKQJeBrbv&hW65u0a?LkHIadB}0OZF9Ewo7xD zjQl>wsT;I^PBUw}18A6?0*CHg46+>cr5bD$8$|MfHc?*nJmJu{&4?QPM{6`Ob~tf~ zPwc&Gd`sdTV22ghQNiZ6dw1kzrS#bskMtS3JhpeP^Rj^EpYeHzJLJ;s3Z|V#e+Pb_ z0A&{sxTcj$lj^&n7{wVjrDg)9b{=q!Naqfl`hW%s>vM~1qS()>5Pa$arqG*lOJ{*^ z#}k|0O4%l4fSfe)RSh1>A5o;&``Fl^(dbSU&1!r6D^*=x+{>Vuk&(kbp2biN-z@P5 z{;Ac`s~3WzmhdEc=m#T-)(MqgTmYc^`T6=rB7O%cZ)Fi@qz(Yk>I@AH8FjOpDfE>B zel&wytx*+37%X9!Y^ACA0kOiOKFS^RnJ7AbH%>k(I^^^Fzxl>H|99T{bC;T`@tk_1 z?QbS9450Oa=v41Z!OQ`nZoW1Fj~9Wn8_&AzymcyK#Ywe%)`9Bpul3?~#Nbz*7UYq} zQmCk8Ks8F4!Kv3{7F1hyyzYDj4I%{Oc6;|0s&}f7?LTwcPawyYn=V_FVKGoi{*x=E zEW1|b<8{8PPeh=CPx>J!Oamvfc?7hPDOdSOMB#|}zdlbkR~0N=b{Qb-M**gNcddm< z+FS5HXCIK(PgFZU!~ASJF~35}{#d~Lk11@g;rp5m@PV~hOurV6EE4B-{Q3B8*7LX? zClGtN`qoM50`*(-(rtSfKYKZU2NdFx8ZJ|B@>G5Xmcm=+{xg@uzlJ`?M3;w6{zWow zD6qh~8DG5`J?!8>4EO($VduOr&Ypo(yYvU8&N+3H5(oETMUQ}bGW<_CsvH&e1id9J zz6)wU#8?!y75v`+wY_;*y4}|$w~x}hCj+ALfdLY2h6YeXQuxz$yN#%g z#;XleFZMqr*$!^69xE~u9q%_zj->5mQLy9zR5rHLEs2Bf_BBhNE*SGMqb&|Z z3vBa)Es7l|jX!psW-Hx^Rr*xZ?|wXBj>RNEtM~<@n{FDx>uo(SE2aCDV{9-1s)0jS zL(kvx3=0yG_{`n}*xU;ETLp)|r)OrI#=o{#SD(W@68l$FxfnNq^2GIF;0-#~N}XAj zo}io-;j5sx<4aeeyZRn?y|2+3wYz4DjQ50UXJcOvPC-vUs>F~FOh3bp3{0J&z|MP< z5}37f*oe_hPTR(T7QPt$9Pw(K-j93gSzWBvp})U0+UeP~s@*Cjq-hFI&lk2{%>oH! zbl)h3uylXP4*r$#q3tkLMq)QUeB=bQ{pAQyCb%IbDS0N4Mre4>k$4&Prw(?3diiFL z*GS*k?@YG1unn_Z+LAq#$JjrR)z1WqD3~zjS*` zmZ0a74axW-#m}k#eu2SrAU({eZbSPG!N)?xn^^vb$pP1817?C1SOJmj14LJ6=xtA&<44V|R$uiDuxlFB~-+uXJQ7 z9h0wgmzI)JnmjRXr}n~6G}m@?>Z7trxBl_}m{KkLJ038Jm?8)0&pVeWx5JfP#H1d? z9Ztw`yRH@Qd4%3?$DQM(CK=@h!YiZ7NW|f~p7llroW2P5{-)Y&bs zK*UqBZJ96UJSf>d6wL0s!49a9F;@dGTw(MaaRIHAX5Ib()e*T7-%Cl=kcTq+!~ zBdFvtoc%#1`#M!^X=5S2&|P>t1J-|6q8H%F@hANz6V|-|O8K$KYF$7TfUDC0 z-dnWm54NBy-}dzD6Y_ZHZry!}(Tc;SiDUwIsD6j{`mU9V%+-GL8ucCUdox_5Q-_hd zf%Qc?N(puF)Q)@YTVyeLP&D75r`3TJ| zP2obd52Da^ApxwJ+r1m#R=e>Vm)4!&jhLO&DA*3HJ63M1-Rz09Rz-~h#r;pGjFYbb zXNvgy_wPplZ=EVK9o>L~8ufq^M~y@>5Vp_9qxEItpgtM?1ivtI2hfhIKJ%F}nX>6H zN36-{Mf`ZMZ78G6m3ExlSWY{af+%h@+%-}!-0YlN%j`x>ShMweoKNL^oWU(;kifyz zWZf7Aw0S;Xtx9B;d%d{w$2|vhAif=C+fe}Rk`g4znPsY2YzPD}Q8pj3J2zo)d)*yx z91djQoozL|@b+Vvt9JVkanuo@v0^5ome3YJBd7zjXFg!wtEVN4?^VZ%fIo5*$d631RAiXD(_So z7_%Jwu`D50zX!iBaOgOqTE0!WGlVy=pcmt4{&irMI7AMHj0oH4X+{KEM>th&GUHA%U@TdxLDUXzE&2o*Uq#&blXxpM9OCKawl?r zwmFa<%sQ*gKUHX^mymq#Npkjc^(NQKBb@@!x`T*oTiPMC%PCQGMO~Ec2V~iIM~m+V zw*RH$R&hWF1>f52;E5s#0k7Lnmo%coRWJNTUL6XVnlTlCq@{4mo2Sb(D^L&4|#oFr$cjVJnl6h%AcjBM6&S|E<#5VNEc<0eD`?bJ%qVNu6&kJqW4Tqioo1?!yI zQS}O$jVoAd{j^>TKl_EaDDz?~S>W-cmS?i*on>X?KV*Kldr}t>5m4N2wf*LKF|}%N zNVqse4s6vTc51Vgk8HOnt6-jr;?}Uj=R>$#9E7iIDASvN?I`+vrCjRnwpM2HIwCBFnM|_Q;=-QDKs{WeIZ-KR@$)PM(Y1SGU_xnv;jycZ1|E*?+ub-#f&~sNx;lDSLYwiy zXJayl%GdTtWwZ?FGGX{S2_?fQILOy+!-PgA^aQN+ zXq-26m_1gHwn;K8suq?1;?^C6F4oH z7WQKE`yb)+8mofZcAHj4_uV5XHj=GtNGf6cZvy-O-iv$;?uNUPnWCKId~3%-R>Qk6 zELA6=61qI)bIsHu1AO(H{^PWi7N39er285dZmQ_oBac@;kp_V# z3XUMn6eDx#{VIspx3ryi>A7s`q+Z6IEESO&1g;!wSa$Z{BSf)oh5B)H60LuIII7`- ze3St0(^d_b$ivPiLJ1=&$s7R|f!u=4Vu@CTIr|AOa+!Dx=gI49EF`vTS!EK;P z`sO=Xv^mL`$FabI9!7HWi?GzP*zgL+RH|wf0sC1tKUU=)MC0BP4ee+}W4HL;7^M+^ zjk}N21q5#W#QOEfB#MuyBkdiB7AfuE${x!{~-o#tV5Lb1oFcV(MLY2b#;S%Gc;>4=Qf>J+pp~H~1YE;~b z#zmTAWV98D_o*P5+3Xus)!ynHHRcSV6_UB;g=<9ui=pQzb|W4v1YdoDCBCq1?=Cn7 z)!NRqA1%(jPLyHKAv-Y}|5Y!of_a~B!+3W$l5uC9PYHaJZsmf@qWoHF>=b-%s2niQ z=Kj@B`w>;jZ87lgSIB-`RwP{Ch0JhVfJShc>Cpa!o$$l@p~K`0w^x_*$`|cHt`o9E zicoGY;@a`G)9hSWTdj$(5# zoD5Q!7d&fxuji=u;_CA27p0pZ`6L2u{XUyJi$qe{2l zuF_gm5|9I9eOlFela?`=QhoIG$;E(YX0~q3xA#MCa;gc=#m8(k&tz&zAyDTlza?pU znwixy!vBkH;=EZ#dm?%OBSQ!K0(`($$eCt7CmB{aNyoQpm0|+615X|#$Jc-CNv{wa z(|mOK+2tG0&wQt`e39k(iB#7{JCfmYD?0X@>*>sRFYDT+@^tCk)?G&mM}lwsaujc= ze>xMBmR#w$rc%6~oSYA?ue9BX7cHs3E%L|7(!!FpP>^z-5hP9}!aW90x z`OxPBMVkd4I;*Xdd{okvxgvIL^GGu7zwxvY-}WI8pOYT4T$QnHsvyoWY+_QZY3Jz5 z^&j>RL7_H88d9uaPNkxX8peD%CAwTRa8r(DE(GVPbSq72O#;_DD@I5hc~HoC6Uu6} zxUy>!*f9R8$CrcPYdIf(CGD=O$`K5eXMX?V3l=^=Rfp7__{t(cI|LqLSuU8+&V))3 z0+4aSRx&F#hMmjcuSz^ld&8Mg&sbkO#fILSSXg>le8tg%Bc32%2_2fdtwi^RdE3pg z`rgSiN<;t11w5JZve~2&+g~$R2x^g#a52a`>N5y-F8PTJQGX?$zS*?)hqof%f@k3I z3%xIj*9~hQCE7+@h14d&X_8hcYE~(g&mjuhI@2z72u9siQMre(1DUZHvX-P-lQ=vU zCDzs*FPgL|KD&-j--op~E3GKh+^6YWEzpO_Hw99|w=LPB?f(yOk3oIk(8KV2U=5>+ zNvco3UDa6aBiMk|mrd{ZUUDXpUvXA!Gxb8iW_`J}UtIm{?P8?gSjn7?h{YzxH+*R} z_HwW4$w`W3TvynainaPlriRQYhN>*|iVsF7V*k*d@BY~jhh-Mq)&`GwX8F3rprBMa5eYkK#a zgr)p*S%yg9htD*lJ~2!f-X~>2-D7VLL1kQHy&-VlWaMI1HS;BbS=!ELzuSY5ez7Ur za2YlYjVTPhp}ctc2VQA{fYwswIGW1cMun}EaFyE!Weq-P^B~6{r=|9{ZW|~l;7NDJ z@928eMF{iKyY9{#X3r33f%*dt6ROx>?Dv&|M{t<{IyKX#qV|5&@(+aa{kSf9z5tA z>ZdV}ZY`!ycbPf;)ci|!m^5tKGA03rZbSVHrJ`!ObTfpg4F#npoB_I{T+|FQ_QZ%# zK5t|4o5Erh?bU4@`_qXry;%hlNZu80}l^uWd4XkHn-yC1b+&GVV3RUxcB=HWM zmFQ0`(N4$PxGmYI?}s)l)_;y|rl?Q_@98v^dry~;=CwK^OinEu^*N9oTdm$3K(un| zkksHdve;{9`Kn$vL5#bK6T(8LK=s*{O_C%O@j4}olA}HSbtGXB{nD*&f4;wclL__| zO}%H(%9B4L$ifJmPCc~_?QCOv*zgV<7F!NIdbU0Nyn_%VJUZX|L(tT28f0nb9vZh~ z!bihMpub^+HfAcIQ#o`2kx%inGT}{DFL)i}PqPJyt5U6pPopNmH098XhF_9lQjf|Q zxtp#2M6RsBvbfJ&c%#yP(9-Y8Qy!?*AxzhmPZv%}+2mcCnAq@dKbaq1aTwD`VA^@} zpCtXoV6F4(e>KW(`%8zmGC6QKs0xMVA2fNDvf!J); zDVks>Txj9DqVJGNZ&8UF%bW4qvyjkKskq4a&-B%PWktkKqS}W6{F3AVK*#O$CjE5Fk^hUPPwBX z=@^m5-)=C!7ixTAa%UA}T%q!ra$pFkFP?6Ss!q>q!crH=YVju(O}Jr(gV}UVt)}h* zM0f4w_C%_{z#hlYs|~*|O^mWwSbx{o8furlSOE9p!iY?NBsU;^I;d<|eHrnfee==k z0Ew8l5NN+fUeZ*kHu?3OjBR5i(lxg8(f|K}ZoXw8isW7DAO7(_G-hICd8O*IYwZ64 D3GSI3 literal 0 HcmV?d00001 From bcb48d7c31db5eade4c528bfeafaded8fc4beea9 Mon Sep 17 00:00:00 2001 From: Pascal Holy Date: Wed, 7 Apr 2021 13:33:12 +0200 Subject: [PATCH 02/33] Bump version to 0.17.0-alpha --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 04a373efe6..7aed22e787 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.16.0 +0.17.0-alpha From 84a8366aeb3aa7199be1e458281034cfec4759e1 Mon Sep 17 00:00:00 2001 From: Paulo Diniz Date: Wed, 7 Apr 2021 15:36:33 +0200 Subject: [PATCH 03/33] [#572] Simplify senderType (#1458) --- .../communication/SendMessageController.java | 3 +-- .../core/api/communication/MessagesTest.java | 9 ++++---- .../api/communication/UnreadCountTest.java | 3 +-- .../communication/util/TestConversation.java | 3 +-- .../websocket/WebSocketControllerTest.java | 3 +-- backend/avro/communication/message.avsc | 12 ++--------- .../java/co/airy/core/media/MessagesTest.java | 3 +-- .../airy/model/message/MessageRepository.java | 5 ++--- .../message/dto/MessageResponsePayload.java | 6 +++--- .../airy/core/chat_plugin/ChatController.java | 4 +--- .../sources/facebook/FetchMetadataTest.java | 3 +-- .../sources/facebook/SendMessageTest.java | 5 ++--- .../core/sources/facebook/MessageParser.java | 21 ++++++------------- .../sources/facebook/EventsRouterTest.java | 4 ++-- .../core/sources/google/SendMessageTest.java | 5 ++--- .../core/sources/google/EventsRouter.java | 3 +-- .../core/sources/google/EventsRouterTest.java | 3 +++ .../core/sources/twilio/SendMessageTest.java | 5 ++--- .../core/sources/twilio/EventsRouter.java | 3 +-- .../core/sources/twilio/EventsRouterTest.java | 1 + .../core/webhook/publisher/PublisherTest.java | 5 ++--- docs/docs/getting-started/glossary.md | 18 ++-------------- .../chat-plugin/src/components/chat/index.tsx | 4 ++-- .../ui/src/pages/Inbox/MessageInput/index.tsx | 2 +- .../java/co/airy/mapping/ContentMapper.java | 5 +---- .../co/airy/mapping/ContentMapperTest.java | 5 ++--- lib/typescript/httpclient/model/Content.ts | 10 ++++++--- lib/typescript/httpclient/model/Message.ts | 8 +------ lib/typescript/websocketclient/payload.ts | 4 ++-- 29 files changed, 58 insertions(+), 107 deletions(-) diff --git a/backend/api/communication/src/main/java/co/airy/core/api/communication/SendMessageController.java b/backend/api/communication/src/main/java/co/airy/core/api/communication/SendMessageController.java index 803b272edb..d1ef0bd296 100644 --- a/backend/api/communication/src/main/java/co/airy/core/api/communication/SendMessageController.java +++ b/backend/api/communication/src/main/java/co/airy/core/api/communication/SendMessageController.java @@ -4,7 +4,6 @@ import co.airy.avro.communication.ChannelConnectionState; import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.core.api.communication.dto.Conversation; import co.airy.core.api.communication.payload.SendMessageRequestPayload; import co.airy.kafka.schema.application.ApplicationCommunicationMessages; @@ -67,8 +66,8 @@ public ResponseEntity sendMessage(@RequestBody @Valid SendMessageRequestPaylo .setDeliveryState(DeliveryState.PENDING) .setSource(channel.getSource()) .setSenderId(auth.getPrincipal().toString()) - .setSenderType(SenderType.APP_USER) .setSentAt(Instant.now().toEpochMilli()) + .setIsFromContact(false) .build(); producer.send(new ProducerRecord<>(applicationCommunicationMessages.name(), message.getId(), message)).get(); diff --git a/backend/api/communication/src/test/java/co/airy/core/api/communication/MessagesTest.java b/backend/api/communication/src/test/java/co/airy/core/api/communication/MessagesTest.java index c466d2ff92..0ea8567687 100644 --- a/backend/api/communication/src/test/java/co/airy/core/api/communication/MessagesTest.java +++ b/backend/api/communication/src/test/java/co/airy/core/api/communication/MessagesTest.java @@ -4,7 +4,6 @@ import co.airy.avro.communication.ChannelConnectionState; import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.core.api.communication.util.TestConversation; import co.airy.date.format.DateFormat; import co.airy.kafka.test.KafkaTestHelper; @@ -116,11 +115,11 @@ void canReturnMetadata() throws Exception { .setSenderId("source-conversation-id") .setDeliveryState(DeliveryState.DELIVERED) .setSource("facebook") - .setSenderType(SenderType.SOURCE_CONTACT) .setConversationId(conversationId) .setHeaders(Map.of()) .setChannelId(channel.getId()) .setContent("{\"text\":\"" + text + "\"}") + .setIsFromContact(true) .build()), new ProducerRecord<>(applicationCommunicationMetadata.name(), "metadata-id", newMessageMetadata(messageId, "metadata_key", "message metadata value")) @@ -150,11 +149,11 @@ void canReplaceMessageContentUrl() throws Exception { .setSenderId("source-conversation-id") .setDeliveryState(DeliveryState.DELIVERED) .setSource("facebook") - .setSenderType(SenderType.SOURCE_CONTACT) .setConversationId(conversationId) .setHeaders(Map.of()) .setChannelId(channel.getId()) .setContent(String.format("{\"url\":\"%s\"}", sourceUrl)) + .setIsFromContact(true) .build()), new ProducerRecord<>(applicationCommunicationMetadata.name(), "metadata-id", newMessageMetadata(messageId, "data_" + sourceUrl, persistentUrl)) @@ -199,11 +198,11 @@ void canReturnTwilioMessagesUnparsed() throws Exception { .setSource("twilio.sms") .setSentAt(Instant.now().toEpochMilli()) .setSenderId(sourceConversationId) - .setSenderType(SenderType.SOURCE_CONTACT) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId(conversationId) .setChannelId(channelId) .setContent(content) + .setIsFromContact(true) .build()) )); @@ -226,11 +225,11 @@ void canSuggestReplies() throws Exception { .setSource("twilio.sms") .setSentAt(Instant.now().toEpochMilli()) .setSenderId("sourceConversationId") - .setSenderType(SenderType.SOURCE_CONTACT) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId(UUID.randomUUID().toString()) .setChannelId(channelId) .setContent("content") + .setIsFromContact(true) .build()) )); diff --git a/backend/api/communication/src/test/java/co/airy/core/api/communication/UnreadCountTest.java b/backend/api/communication/src/test/java/co/airy/core/api/communication/UnreadCountTest.java index d5cbea36b4..ba60e70550 100644 --- a/backend/api/communication/src/test/java/co/airy/core/api/communication/UnreadCountTest.java +++ b/backend/api/communication/src/test/java/co/airy/core/api/communication/UnreadCountTest.java @@ -4,7 +4,6 @@ import co.airy.avro.communication.ChannelConnectionState; import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.core.api.communication.util.TestConversation; import co.airy.kafka.test.KafkaTestHelper; import co.airy.kafka.test.junit.SharedKafkaTestResource; @@ -89,10 +88,10 @@ void canResetUnreadCount() throws Exception { .setSenderId("source-conversation-id") .setDeliveryState(DeliveryState.DELIVERED) .setSource("facebook") - .setSenderType(SenderType.APP_USER) .setConversationId(conversationId) .setChannelId(channel.getId()) .setContent("from airy") + .setIsFromContact(false) .build()) )); diff --git a/backend/api/communication/src/test/java/co/airy/core/api/communication/util/TestConversation.java b/backend/api/communication/src/test/java/co/airy/core/api/communication/util/TestConversation.java index 7f7715e1a8..7d5950f39e 100644 --- a/backend/api/communication/src/test/java/co/airy/core/api/communication/util/TestConversation.java +++ b/backend/api/communication/src/test/java/co/airy/core/api/communication/util/TestConversation.java @@ -4,7 +4,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; import co.airy.avro.communication.Metadata; -import co.airy.avro.communication.SenderType; import co.airy.kafka.schema.application.ApplicationCommunicationMessages; import co.airy.kafka.schema.application.ApplicationCommunicationMetadata; import lombok.Data; @@ -85,11 +84,11 @@ private List> getMessages(int message .setSenderId("source-conversation-id") .setDeliveryState(DeliveryState.DELIVERED) .setSource("facebook") - .setSenderType(SenderType.SOURCE_CONTACT) .setConversationId(conversationId) .setHeaders(Map.of()) .setChannelId(channel.getId()) .setContent("{\"message\":{\"text\":\"hello world\"}}") + .setIsFromContact(true) .build())); } diff --git a/backend/api/websocket/src/test/java/co/airy/core/api/websocket/WebSocketControllerTest.java b/backend/api/websocket/src/test/java/co/airy/core/api/websocket/WebSocketControllerTest.java index 2ad2ffeb17..8c86670f00 100644 --- a/backend/api/websocket/src/test/java/co/airy/core/api/websocket/WebSocketControllerTest.java +++ b/backend/api/websocket/src/test/java/co/airy/core/api/websocket/WebSocketControllerTest.java @@ -5,7 +5,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; import co.airy.avro.communication.Metadata; -import co.airy.avro.communication.SenderType; import co.airy.kafka.schema.application.ApplicationCommunicationChannels; import co.airy.kafka.schema.application.ApplicationCommunicationMessages; import co.airy.kafka.schema.application.ApplicationCommunicationMetadata; @@ -107,11 +106,11 @@ void canReceiveMessageEvents() throws Exception { .setSentAt(Instant.now().toEpochMilli()) .setUpdatedAt(null) .setSenderId("sourceConversationId") - .setSenderType(SenderType.APP_USER) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId("conversationId") .setChannelId("channelId") .setContent("{\"text\":\"hello world\"}") + .setIsFromContact(true) .build(); kafkaTestHelper.produceRecord(new ProducerRecord<>(applicationCommunicationMessages.name(), message.getId(), message)); diff --git a/backend/avro/communication/message.avsc b/backend/avro/communication/message.avsc index dd0d3d2600..38489471d1 100644 --- a/backend/avro/communication/message.avsc +++ b/backend/avro/communication/message.avsc @@ -19,16 +19,8 @@ "default": null }, { - "name": "senderType", - "type": { - "name": "SenderType", - "type": "enum", - "symbols": [ - "SOURCE_CONTACT", - "SOURCE_USER", - "APP_USER" - ] - } + "name": "isFromContact", + "type": "boolean" }, { "name": "deliveryState", diff --git a/backend/media/src/test/java/co/airy/core/media/MessagesTest.java b/backend/media/src/test/java/co/airy/core/media/MessagesTest.java index 86666391d2..ec9229572c 100644 --- a/backend/media/src/test/java/co/airy/core/media/MessagesTest.java +++ b/backend/media/src/test/java/co/airy/core/media/MessagesTest.java @@ -3,7 +3,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; import co.airy.avro.communication.Metadata; -import co.airy.avro.communication.SenderType; import co.airy.core.media.services.MediaUpload; import co.airy.kafka.schema.application.ApplicationCommunicationMessages; import co.airy.kafka.schema.application.ApplicationCommunicationMetadata; @@ -123,7 +122,7 @@ void storesMessageUrlsWithRetries() throws Exception { .setSentAt(Instant.now().toEpochMilli()) .setUpdatedAt(null) .setSenderId("sourceConversationId") - .setSenderType(SenderType.SOURCE_CONTACT) + .setIsFromContact(true) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId("conversationId") .setChannelId("channelId") diff --git a/backend/model/message/src/main/java/co/airy/model/message/MessageRepository.java b/backend/model/message/src/main/java/co/airy/model/message/MessageRepository.java index e671ea3348..1ca7200f93 100644 --- a/backend/model/message/src/main/java/co/airy/model/message/MessageRepository.java +++ b/backend/model/message/src/main/java/co/airy/model/message/MessageRepository.java @@ -2,7 +2,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.model.metadata.dto.MetadataMap; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; @@ -23,11 +22,11 @@ public static boolean isNewMessage(Message message) { // In preparation for https://github.com/airyhq/airy/issues/572 public static boolean isFromContact(Message message) { - return message.getSenderType().equals(SenderType.SOURCE_CONTACT); + return message.getIsFromContact(); } public static boolean isFromAiry(Message message) { - return message.getSenderType().equals(SenderType.APP_USER); + return !message.getIsFromContact(); } public static Object resolveContent(Message message) { diff --git a/backend/model/message/src/main/java/co/airy/model/message/dto/MessageResponsePayload.java b/backend/model/message/src/main/java/co/airy/model/message/dto/MessageResponsePayload.java index b93c106c9b..b8fd0bcb76 100644 --- a/backend/model/message/src/main/java/co/airy/model/message/dto/MessageResponsePayload.java +++ b/backend/model/message/src/main/java/co/airy/model/message/dto/MessageResponsePayload.java @@ -18,9 +18,9 @@ public class MessageResponsePayload { private String id; private Object content; - private String senderType; private String sentAt; private String deliveryState; + private boolean isFromContact; private String source; private JsonNode metadata; @@ -28,7 +28,7 @@ public static MessageResponsePayload fromMessageContainer(MessageContainer messa final Message message = messageContainer.getMessage(); return MessageResponsePayload.builder() .content(resolveContent(message, messageContainer.getMetadataMap())) - .senderType(message.getSenderType().toString().toLowerCase()) + .isFromContact(message.getIsFromContact()) .deliveryState(message.getDeliveryState().toString().toLowerCase()) .id(message.getId()) .sentAt(isoFromMillis(message.getSentAt())) @@ -40,7 +40,7 @@ public static MessageResponsePayload fromMessageContainer(MessageContainer messa public static MessageResponsePayload fromMessage(Message message) { return MessageResponsePayload.builder() .content(resolveContent(message)) - .senderType(message.getSenderType().toString().toLowerCase()) + .isFromContact(message.getIsFromContact()) .deliveryState(message.getDeliveryState().toString().toLowerCase()) .id(message.getId()) .sentAt(isoFromMillis(message.getSentAt())) diff --git a/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/ChatController.java b/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/ChatController.java index 2668472ede..ca11b4211c 100644 --- a/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/ChatController.java +++ b/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/ChatController.java @@ -3,7 +3,6 @@ import co.airy.avro.communication.Channel; import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.core.chat_plugin.config.Jwt; import co.airy.core.chat_plugin.payload.AuthenticationRequestPayload; import co.airy.core.chat_plugin.payload.AuthenticationResponsePayload; @@ -16,7 +15,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; @@ -129,8 +127,8 @@ ResponseEntity sendMessage(@RequestBody @Valid SendMessageRequestPayload requ .setDeliveryState(DeliveryState.DELIVERED) .setSource(channel.getSource()) .setSenderId(principal.getConversationId()) - .setSenderType(SenderType.SOURCE_CONTACT) .setSentAt(Instant.now().toEpochMilli()) + .setIsFromContact(true) .build(); stores.sendMessage(message); diff --git a/backend/sources/facebook/connector/src/test/java/co/airy/core/sources/facebook/FetchMetadataTest.java b/backend/sources/facebook/connector/src/test/java/co/airy/core/sources/facebook/FetchMetadataTest.java index 3bc636bddb..52a4a63247 100644 --- a/backend/sources/facebook/connector/src/test/java/co/airy/core/sources/facebook/FetchMetadataTest.java +++ b/backend/sources/facebook/connector/src/test/java/co/airy/core/sources/facebook/FetchMetadataTest.java @@ -5,7 +5,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; import co.airy.avro.communication.Metadata; -import co.airy.avro.communication.SenderType; import co.airy.core.sources.facebook.api.Api; import co.airy.core.sources.facebook.api.model.UserProfile; import co.airy.kafka.schema.Topic; @@ -113,11 +112,11 @@ void canFetchMetadata() throws Exception { .setSource("facebook") .setSentAt(Instant.now().toEpochMilli()) .setSenderId(sourceConversationId) - .setSenderType(SenderType.SOURCE_CONTACT) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId("conversationId") .setChannelId(channelId) .setContent("{\"text\":\"hello world\"}") + .setIsFromContact(true) .build()) )); diff --git a/backend/sources/facebook/connector/src/test/java/co/airy/core/sources/facebook/SendMessageTest.java b/backend/sources/facebook/connector/src/test/java/co/airy/core/sources/facebook/SendMessageTest.java index 1b7bd012ed..8f48e3d1d2 100644 --- a/backend/sources/facebook/connector/src/test/java/co/airy/core/sources/facebook/SendMessageTest.java +++ b/backend/sources/facebook/connector/src/test/java/co/airy/core/sources/facebook/SendMessageTest.java @@ -4,7 +4,6 @@ import co.airy.avro.communication.ChannelConnectionState; import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.core.sources.facebook.api.Api; import co.airy.core.sources.facebook.api.model.SendMessagePayload; import co.airy.kafka.schema.Topic; @@ -116,11 +115,11 @@ void canSendMessageViaTheFacebookApi() throws Exception { .setSource("facebook") .setSentAt(Instant.now().toEpochMilli()) .setSenderId(sourceConversationId) - .setSenderType(SenderType.SOURCE_CONTACT) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId(conversationId) .setChannelId(channelId) .setContent("{\"text\":\"" + text + "\"}") + .setIsFromContact(true) .build()) )); @@ -134,12 +133,12 @@ void canSendMessageViaTheFacebookApi() throws Exception { .setId(messageId) .setSentAt(Instant.now().toEpochMilli()) .setSenderId("user-id") - .setSenderType(SenderType.APP_USER) .setDeliveryState(DeliveryState.PENDING) .setConversationId(conversationId) .setChannelId(channelId) .setSource("facebook") .setContent(objectMapper.writeValueAsString(messagePayload)) + .setIsFromContact(false) .build()) ); diff --git a/backend/sources/facebook/events-router/src/main/java/co/airy/core/sources/facebook/MessageParser.java b/backend/sources/facebook/events-router/src/main/java/co/airy/core/sources/facebook/MessageParser.java index a3dd3740b4..fcc8bd354f 100644 --- a/backend/sources/facebook/events-router/src/main/java/co/airy/core/sources/facebook/MessageParser.java +++ b/backend/sources/facebook/events-router/src/main/java/co/airy/core/sources/facebook/MessageParser.java @@ -1,7 +1,6 @@ package co.airy.core.sources.facebook; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Value; @@ -44,25 +43,16 @@ public Message.Builder parse(final String payload) throws Exception { final boolean isEcho = message != null && message.get("is_echo") != null && message.get("is_echo").asBoolean(); final String appId = (message != null && message.get("app_id") != null && !message.get("app_id").isNull()) ? message.get("app_id").asText() : null; - SenderType senderType; String senderId; - if (!isEcho) { - senderType = SenderType.SOURCE_CONTACT; - senderId = getSourceConversationId(webhookMessaging); - } else if (appId != null && !appId.equals(this.facebookAppId)) { - senderType = SenderType.SOURCE_USER; + final Map headers = new HashMap<>(); + + if(appId != null && !this.facebookAppId.equals(appId)) { senderId = appId; - } else if(appId == null) { - senderType = SenderType.SOURCE_USER; - senderId = getSourceConversationId(webhookMessaging); } else { - // Filter out echoes coming from this app - throw new NotAMessageException(); + senderId = getSourceConversationId(webhookMessaging); } - final Map headers = new HashMap<>(); - if (postbackNode != null) { if (postbackNode.get("payload") != null) { headers.put("postback.payload", postbackNode.get("payload").textValue()); @@ -77,9 +67,10 @@ public Message.Builder parse(final String payload) throws Exception { return Message.newBuilder() .setContent(payload) - .setSenderType(senderType) .setSenderId(senderId) + .setIsFromContact(!isEcho) .setHeaders(headers) + .setSenderId(senderId) .setSentAt(webhookMessaging.get("timestamp").asLong()); } } diff --git a/backend/sources/facebook/events-router/src/test/java/co/airy/core/sources/facebook/EventsRouterTest.java b/backend/sources/facebook/events-router/src/test/java/co/airy/core/sources/facebook/EventsRouterTest.java index 035ede8bf0..ae69afd454 100644 --- a/backend/sources/facebook/events-router/src/test/java/co/airy/core/sources/facebook/EventsRouterTest.java +++ b/backend/sources/facebook/events-router/src/test/java/co/airy/core/sources/facebook/EventsRouterTest.java @@ -3,7 +3,6 @@ import co.airy.avro.communication.Channel; import co.airy.avro.communication.ChannelConnectionState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.kafka.schema.Topic; import co.airy.kafka.schema.application.ApplicationCommunicationChannels; import co.airy.kafka.schema.application.ApplicationCommunicationMessages; @@ -162,6 +161,7 @@ void parsesPageMessagesCorrectly() throws Exception { assertThat(messages, hasSize(1)); Message message = messages.get(0); - assertThat(message.getSenderType(), is(SenderType.SOURCE_USER)); + assertThat(message.getIsFromContact(), is(false)); + assertThat(message.getSenderId(), is("1912214878880084")); } } diff --git a/backend/sources/google/connector/src/test/java/co/airy/core/sources/google/SendMessageTest.java b/backend/sources/google/connector/src/test/java/co/airy/core/sources/google/SendMessageTest.java index 2501cd3248..9048aa530e 100644 --- a/backend/sources/google/connector/src/test/java/co/airy/core/sources/google/SendMessageTest.java +++ b/backend/sources/google/connector/src/test/java/co/airy/core/sources/google/SendMessageTest.java @@ -2,7 +2,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.core.sources.google.services.Api; import co.airy.kafka.schema.Topic; import co.airy.kafka.schema.application.ApplicationCommunicationChannels; @@ -100,7 +99,7 @@ void canSendMessageViaGoogleApi() throws Exception { .setSource("google") .setSentAt(Instant.now().toEpochMilli()) .setSenderId(sourceConversationId) - .setSenderType(SenderType.SOURCE_CONTACT) + .setIsFromContact(true) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId(conversationId) .setChannelId(channelId) @@ -115,7 +114,7 @@ void canSendMessageViaGoogleApi() throws Exception { .setId(messageId) .setSentAt(Instant.now().toEpochMilli()) .setSenderId("user-id") - .setSenderType(SenderType.APP_USER) + .setIsFromContact(false) .setDeliveryState(DeliveryState.PENDING) .setConversationId(conversationId) .setChannelId(channelId) diff --git a/backend/sources/google/events-router/src/main/java/co/airy/core/sources/google/EventsRouter.java b/backend/sources/google/events-router/src/main/java/co/airy/core/sources/google/EventsRouter.java index 3f983f210a..1945c4aa2a 100644 --- a/backend/sources/google/events-router/src/main/java/co/airy/core/sources/google/EventsRouter.java +++ b/backend/sources/google/events-router/src/main/java/co/airy/core/sources/google/EventsRouter.java @@ -5,7 +5,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; import co.airy.avro.communication.Metadata; -import co.airy.avro.communication.SenderType; import co.airy.kafka.schema.application.ApplicationCommunicationChannels; import co.airy.kafka.schema.application.ApplicationCommunicationMessages; import co.airy.kafka.schema.application.ApplicationCommunicationMetadata; @@ -117,10 +116,10 @@ private void startStream() { Message.newBuilder() .setSource(channel.getSource()) .setDeliveryState(DeliveryState.DELIVERED) + .setIsFromContact(true) .setId(messageId) .setChannelId(channel.getId()) .setConversationId(conversationId) - .setSenderType(SenderType.SOURCE_CONTACT) .setContent(payload) .setSenderId(sourceConversationId) .setHeaders(event.getMessageHeaders()) diff --git a/backend/sources/google/events-router/src/test/java/co/airy/core/sources/google/EventsRouterTest.java b/backend/sources/google/events-router/src/test/java/co/airy/core/sources/google/EventsRouterTest.java index 7b3fb8d51e..bda1229e4d 100644 --- a/backend/sources/google/events-router/src/test/java/co/airy/core/sources/google/EventsRouterTest.java +++ b/backend/sources/google/events-router/src/test/java/co/airy/core/sources/google/EventsRouterTest.java @@ -94,6 +94,9 @@ void canRouteGoogleMessages() throws Exception { List messages = kafkaTestHelper.consumeValues(1, applicationCommunicationMessages.name()); assertThat(messages, hasSize(1)); + + final Message message = messages.get(0); + assert(message.getIsFromContact()); } @Test diff --git a/backend/sources/twilio/connector/src/test/java/co/airy/core/sources/twilio/SendMessageTest.java b/backend/sources/twilio/connector/src/test/java/co/airy/core/sources/twilio/SendMessageTest.java index 82814bffc6..074d7f67fa 100644 --- a/backend/sources/twilio/connector/src/test/java/co/airy/core/sources/twilio/SendMessageTest.java +++ b/backend/sources/twilio/connector/src/test/java/co/airy/core/sources/twilio/SendMessageTest.java @@ -4,7 +4,6 @@ import co.airy.avro.communication.ChannelConnectionState; import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.core.sources.twilio.services.Api; import co.airy.kafka.schema.Topic; import co.airy.kafka.schema.application.ApplicationCommunicationChannels; @@ -111,7 +110,7 @@ void canSendMessageViaTheTwilioApi() throws Exception { .setSource("twilio.sms") .setSentAt(Instant.now().toEpochMilli()) .setSenderId(sourceConversationId) - .setSenderType(SenderType.SOURCE_CONTACT) + .setIsFromContact(true) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId(conversationId) .setChannelId(channelId) @@ -126,7 +125,7 @@ void canSendMessageViaTheTwilioApi() throws Exception { .setId(messageId) .setSentAt(Instant.now().toEpochMilli()) .setSenderId("user-id") - .setSenderType(SenderType.APP_USER) + .setIsFromContact(false) .setDeliveryState(DeliveryState.PENDING) .setConversationId(conversationId) .setChannelId(channelId) diff --git a/backend/sources/twilio/events-router/src/main/java/co/airy/core/sources/twilio/EventsRouter.java b/backend/sources/twilio/events-router/src/main/java/co/airy/core/sources/twilio/EventsRouter.java index 4fa6985a8d..76307245c9 100644 --- a/backend/sources/twilio/events-router/src/main/java/co/airy/core/sources/twilio/EventsRouter.java +++ b/backend/sources/twilio/events-router/src/main/java/co/airy/core/sources/twilio/EventsRouter.java @@ -4,7 +4,6 @@ import co.airy.avro.communication.ChannelConnectionState; import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.kafka.schema.application.ApplicationCommunicationChannels; import co.airy.kafka.schema.application.ApplicationCommunicationMessages; import co.airy.kafka.schema.source.SourceTwilioEvents; @@ -68,7 +67,7 @@ public void startStream() { messageId, Message.newBuilder() .setSenderId(sourceConversationId) - .setSenderType(SenderType.SOURCE_CONTACT) + .setIsFromContact(true) .setSource(channel.getSource()) .setContent(payload) .setDeliveryState(DeliveryState.DELIVERED) diff --git a/backend/sources/twilio/events-router/src/test/java/co/airy/core/sources/twilio/EventsRouterTest.java b/backend/sources/twilio/events-router/src/test/java/co/airy/core/sources/twilio/EventsRouterTest.java index b5f5ee0861..01a883262a 100644 --- a/backend/sources/twilio/events-router/src/test/java/co/airy/core/sources/twilio/EventsRouterTest.java +++ b/backend/sources/twilio/events-router/src/test/java/co/airy/core/sources/twilio/EventsRouterTest.java @@ -100,5 +100,6 @@ void canRouteTwilioMessage() throws Exception { assertEquals(1, messages.size(), "Expected 1 new message"); final Message message = messages.get(0); assertEquals("twilio.whatsapp", message.getSource()); + assertEquals(message.getIsFromContact(), true); } } diff --git a/backend/webhook/publisher/src/test/java/co/airy/core/webhook/publisher/PublisherTest.java b/backend/webhook/publisher/src/test/java/co/airy/core/webhook/publisher/PublisherTest.java index 33a7ef63b0..b0fa3ef8bd 100644 --- a/backend/webhook/publisher/src/test/java/co/airy/core/webhook/publisher/PublisherTest.java +++ b/backend/webhook/publisher/src/test/java/co/airy/core/webhook/publisher/PublisherTest.java @@ -2,7 +2,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.avro.communication.Status; import co.airy.avro.communication.Webhook; import co.airy.core.webhook.publisher.payload.QueueMessage; @@ -112,7 +111,7 @@ void canPublishMessageToQueue() throws Exception { .setSentAt(now) .setUpdatedAt(null) .setSenderId("sourceConversationId") - .setSenderType(SenderType.APP_USER) + .setIsFromContact(false) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId("conversationId") .setChannelId("channelId") @@ -127,7 +126,7 @@ void canPublishMessageToQueue() throws Exception { .setSentAt(now) .setUpdatedAt(now) // field presence identifies message as update .setSenderId("sourceConversationId") - .setSenderType(SenderType.APP_USER) + .setIsFromContact(false) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId("conversationId") .setChannelId("channelId") diff --git a/docs/docs/getting-started/glossary.md b/docs/docs/getting-started/glossary.md index 7672f143fa..aa93a6fa11 100644 --- a/docs/docs/getting-started/glossary.md +++ b/docs/docs/getting-started/glossary.md @@ -62,23 +62,9 @@ Unique message id for deduplication. - `postback.payload` string postback payloads used for source automations - `postback.referral` string facebook specific referral identifier -- `senderType` string +- `fromContact` boolean -What type of actor inserted the message. One of: - - - `source_contact` sent to the source by a contact - - `source_user` sent to the source by the user but not via app - - `app_user` sent to source via app - -- `senderId` string - -Identifies the participant that sent the message. Interpretation is based on the value of `senderType`: - -| senderType | senderId | -| -------------- | --------------------------------------------------- | -| SOURCE_CONTACT | source contact id (e.g. Facebook page scoped id) | -| SOURCE_USER | source dependent (e.g. Facebook third party app id) | -| APP_USER | app channel id | +Indicates whether the message was sent by a contact or not. - `conversationId` uuid diff --git a/frontend/chat-plugin/src/components/chat/index.tsx b/frontend/chat-plugin/src/components/chat/index.tsx index 147031efec..879dde2908 100644 --- a/frontend/chat-plugin/src/components/chat/index.tsx +++ b/frontend/chat-plugin/src/components/chat/index.tsx @@ -13,7 +13,7 @@ import AiryHeaderBar from '../../airyRenderProps/AiryHeaderBar'; import {AiryWidgetConfiguration} from '../../config'; import BubbleProp from '../bubble'; import AiryBubble from '../../airyRenderProps/AiryBubble'; -import {SenderType, MessageState, isFromContact, Message} from 'httpclient'; +import {MessageState, isFromContact, Message} from 'httpclient'; import {SourceMessage, CommandUnion} from 'render'; import {MessageInfoWrapper} from 'render/components/MessageInfoWrapper'; /* eslint-disable @typescript-eslint/no-var-requires */ @@ -27,7 +27,7 @@ const defaultWelcomeMessage: Message = { id: '19527d24-9b47-4e18-9f79-fd1998b95059', content: {text: 'Hello! How can we help you?'}, deliveryState: MessageState.delivered, - senderType: SenderType.appUser, + fromContact: false, sentAt: new Date(), }; diff --git a/frontend/ui/src/pages/Inbox/MessageInput/index.tsx b/frontend/ui/src/pages/Inbox/MessageInput/index.tsx index 0454047453..b0b55bdf76 100644 --- a/frontend/ui/src/pages/Inbox/MessageInput/index.tsx +++ b/frontend/ui/src/pages/Inbox/MessageInput/index.tsx @@ -201,7 +201,7 @@ const MessageInput = (props: MessageInputProps & ConnectedProps { const lastMessages = props.messages - ?.filter((message: Message) => message.senderType == 'source_contact') + ?.filter((message: Message) => message.fromContact) .slice(props.messages.length - 5) .reverse(); return lastMessages?.find( diff --git a/lib/java/mapping/src/main/java/co/airy/mapping/ContentMapper.java b/lib/java/mapping/src/main/java/co/airy/mapping/ContentMapper.java index 45583629e6..db4d9af853 100644 --- a/lib/java/mapping/src/main/java/co/airy/mapping/ContentMapper.java +++ b/lib/java/mapping/src/main/java/co/airy/mapping/ContentMapper.java @@ -1,16 +1,13 @@ package co.airy.mapping; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.log.AiryLoggerFactory; import co.airy.mapping.model.Content; import co.airy.mapping.model.DataUrl; import co.airy.mapping.model.Text; import org.slf4j.Logger; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,7 +31,7 @@ public List render(Message message) throws Exception { } public List render(Message message, Map metadata) throws Exception { - if (SenderType.APP_USER.equals(message.getSenderType()) || "chatplugin".equals(message.getSource())) { + if (!message.getIsFromContact()) { return outboundMapper.render(message.getContent()); } diff --git a/lib/java/mapping/src/test/java/co/airy/mapping/ContentMapperTest.java b/lib/java/mapping/src/test/java/co/airy/mapping/ContentMapperTest.java index 57cb265b93..e5e1e35202 100644 --- a/lib/java/mapping/src/test/java/co/airy/mapping/ContentMapperTest.java +++ b/lib/java/mapping/src/test/java/co/airy/mapping/ContentMapperTest.java @@ -2,7 +2,6 @@ import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; -import co.airy.avro.communication.SenderType; import co.airy.mapping.model.Audio; import co.airy.mapping.model.Content; import co.airy.mapping.model.Text; @@ -43,7 +42,7 @@ void rendersOutbound() throws Exception { .setSource("facebook") .setSentAt(Instant.now().toEpochMilli()) .setSenderId("sourceConversationId") - .setSenderType(SenderType.APP_USER) + .setIsFromContact(false) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId("conversationId") .setChannelId("channelId") @@ -78,7 +77,7 @@ void replacesDataUrls() throws Exception { .setSource("fakesource") .setSentAt(Instant.now().toEpochMilli()) .setSenderId("sourceConversationId") - .setSenderType(SenderType.SOURCE_CONTACT) + .setIsFromContact(true) .setDeliveryState(DeliveryState.DELIVERED) .setConversationId("conversationId") .setChannelId("channelId") diff --git a/lib/typescript/httpclient/model/Content.ts b/lib/typescript/httpclient/model/Content.ts index ce1b12fe38..2707d476cb 100644 --- a/lib/typescript/httpclient/model/Content.ts +++ b/lib/typescript/httpclient/model/Content.ts @@ -1,5 +1,5 @@ import {Template} from './Template'; -import {Message, SenderType} from './Message'; +import {Message} from './Message'; export interface Content { id: string; @@ -8,6 +8,10 @@ export interface Content { export type RenderedContentUnion = Message | Template | Content; -export function isFromContact(message: RenderedContentUnion) { - if (message && 'senderType' in message) return message?.senderType === SenderType.sourceContact; +export function isFromContact(content: RenderedContentUnion) { + if (content && 'fromContact' in content) { + return content?.fromContact; + } else { + return false; + } } diff --git a/lib/typescript/httpclient/model/Message.ts b/lib/typescript/httpclient/model/Message.ts index 3518627d40..cd40651b2c 100644 --- a/lib/typescript/httpclient/model/Message.ts +++ b/lib/typescript/httpclient/model/Message.ts @@ -16,15 +16,9 @@ export enum MessageState { delivered = 'DELIVERED', } -export enum SenderType { - sourceContact = 'source_contact', - sourceUser = 'source_user', - appUser = 'app_user', -} - export interface Message extends Content { deliveryState: MessageState; - senderType: SenderType; + fromContact: boolean; sentAt: Date; metadata?: MessageMetadata; } diff --git a/lib/typescript/websocketclient/payload.ts b/lib/typescript/websocketclient/payload.ts index fcec7e0038..0374a9604a 100644 --- a/lib/typescript/websocketclient/payload.ts +++ b/lib/typescript/websocketclient/payload.ts @@ -1,4 +1,4 @@ -import {MessageState, Metadata, MetadataEvent, SenderType} from 'httpclient'; +import {MessageState, Metadata, MetadataEvent} from 'httpclient'; interface Event { type: 'message' | 'channel' | 'metadata'; @@ -8,7 +8,7 @@ interface MessagePayload { id: string; content: string; delivery_state: MessageState; - sender_type: SenderType; + from_contact: boolean; sent_at: Date; metadata: any; } From 88ab344dfb16952340dc7754e8df9756f2dc8746 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Apr 2021 16:45:40 +0200 Subject: [PATCH 04/33] Bump copy-webpack-plugin from 8.1.0 to 8.1.1 (#1469) Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 8.1.0 to 8.1.1. - [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v8.1.0...v8.1.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4f9bea0b72..ea5868997f 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@typescript-eslint/parser": "^4.21.0", "babel-loader": "^8.0.6", "connect-history-api-fallback": "^1.6.0", - "copy-webpack-plugin": "^8.1.0", + "copy-webpack-plugin": "^8.1.1", "css-loader": "^5.2.0", "cypress": "^7.0.0", "eslint": "^7.23.0", diff --git a/yarn.lock b/yarn.lock index a0fc238e05..49b53ca4aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2312,10 +2312,10 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -copy-webpack-plugin@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-8.1.0.tgz#0b53170db798ed301439536a02f2868ff63291a0" - integrity sha512-Soiq8kXI2AZkpw3dSp18u6oU2JonC7UKv3UdXsKOmT1A5QT46ku9+6c0Qy29JDbSavQJNN1/eKGpd3QNw+cZWg== +copy-webpack-plugin@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz#3f697e162764925c2f0d235f380676125508fd26" + integrity sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ== dependencies: fast-glob "^3.2.5" glob-parent "^5.1.1" From 67fc93f4fa88ba75063898083ab48e75cbdec063 Mon Sep 17 00:00:00 2001 From: AudreyKj <38159391+AudreyKj@users.noreply.github.com> Date: Wed, 7 Apr 2021 17:36:17 +0200 Subject: [PATCH 05/33] added showmode flag that blocks functionality in chat plugin (#1475) --- frontend/chat-plugin/src/App.tsx | 2 ++ frontend/chat-plugin/src/components/chat/index.tsx | 3 +++ 2 files changed, 5 insertions(+) diff --git a/frontend/chat-plugin/src/App.tsx b/frontend/chat-plugin/src/App.tsx index cd071b88ff..94fabd4879 100644 --- a/frontend/chat-plugin/src/App.tsx +++ b/frontend/chat-plugin/src/App.tsx @@ -40,6 +40,7 @@ export type Config = { accentColor?: string; bubbleIcon?: string; sendMessageIcon?: string; + showMode: boolean; }; export const config: Config = { @@ -70,4 +71,5 @@ export const config: Config = { }, }, }, + showMode: false, }; diff --git a/frontend/chat-plugin/src/components/chat/index.tsx b/frontend/chat-plugin/src/components/chat/index.tsx index 879dde2908..aa70dc2549 100644 --- a/frontend/chat-plugin/src/components/chat/index.tsx +++ b/frontend/chat-plugin/src/components/chat/index.tsx @@ -48,6 +48,8 @@ const Chat = (props: Props) => { const [connectionState, setConnectionState] = useState(null); useEffect(() => { + if (config.showMode) return; + ws = new WebSocket(props.channelId, onReceive, setInitialMessages, (state: ConnectionState) => { setConnectionState(state); }); @@ -90,6 +92,7 @@ const Chat = (props: Props) => { }; const sendMessage = (text: string) => { + if (config.showMode) return; ctrl.sendMessage(text); }; From 833ed4d95b8359e5bcddf6dcb34548d2f28ac5d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Apr 2021 09:53:04 +0200 Subject: [PATCH 06/33] Bump @bazel/typescript from 3.2.3 to 3.3.0 (#1482) Bumps [@bazel/typescript](https://github.com/bazelbuild/rules_nodejs/tree/HEAD/packages/typescript) from 3.2.3 to 3.3.0. - [Release notes](https://github.com/bazelbuild/rules_nodejs/releases) - [Changelog](https://github.com/bazelbuild/rules_nodejs/blob/stable/CHANGELOG.md) - [Commits](https://github.com/bazelbuild/rules_nodejs/commits/3.3.0/packages/typescript) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ea5868997f..1e3d25becf 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@babel/preset-env": "^7.13.12", "@bazel/bazelisk": "^1.7.5", "@bazel/ibazel": "^0.15.8", - "@bazel/typescript": "^3.2.3", + "@bazel/typescript": "^3.3.0", "@svgr/webpack": "^5.5.0", "@types/lodash-es": "^4.17.4", "@types/react-window-infinite-loader": "^1.0.3", diff --git a/yarn.lock b/yarn.lock index 49b53ca4aa..3f004db54d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -948,10 +948,10 @@ resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.15.8.tgz#355632324fb4504611acb6f4a40cc6570c1a6c87" integrity sha512-VC60wGXKkzN35DZJnrlujl+fttLSdTBVrT+Hb9P+6nkR+dciN48f1KgluauG3DPopF/N681XhAiTYxg1WfGIYg== -"@bazel/typescript@^3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.3.tgz#6e40bdb7c5294e588bac3b7d1269e58b98a1856c" - integrity sha512-Q1Yin/AYdh9yrkSJo3H6nVn6mMaohr5syjLd0Df0w7WI4zerdJTxrY5nhoWZwO/S1rPj8/MedDwZudCqPDeDMA== +"@bazel/typescript@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.3.0.tgz#6781f3aec3f974b864519ae9f47eaf09b134910b" + integrity sha512-neprCOVshAjlDAHgD5PAA4uqhkBzWve20Rl07Ip6BGnCNhU3XLkv+b86TtyWcU8tYMILoCSey9gzXs07XhEz6g== dependencies: protobufjs "6.8.8" semver "5.6.0" From a3dfb9038f24733ae03ffd98f8c58421a42d9591 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Apr 2021 09:53:24 +0200 Subject: [PATCH 07/33] Bump webpack from 5.30.0 to 5.31.0 (#1483) Bumps [webpack](https://github.com/webpack/webpack) from 5.30.0 to 5.31.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.30.0...v5.31.0) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1e3d25becf..8f6d04e679 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "terser-webpack-plugin": "^5.1.1", "typescript": "3.7.4", "url-loader": "^4.1.1", - "webpack": "^5.30.0", + "webpack": "^5.31.0", "webpack-bundle-analyzer": "^4.4.0", "webpack-cli": "^4.6.0", "webpack-dev-middleware": "^3.7.2", diff --git a/yarn.lock b/yarn.lock index 3f004db54d..25bec5131b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6232,10 +6232,10 @@ webpack-sources@^2.1.1: source-list-map "^2.0.1" source-map "^0.6.1" -webpack@^5.30.0: - version "5.30.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.30.0.tgz#07d87c182a060e0c2491062f3dc0edc85a29d884" - integrity sha512-Zr9NIri5yzpfmaMea2lSMV1UygbW0zQsSlGLMgKUm63ACXg6alhd1u4v5UBSBjzYKXJN6BNMGVM7w165e7NxYA== +webpack@^5.31.0: + version "5.31.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.31.0.tgz#fab61d0be896feca4af87bdad5c18815c0d63455" + integrity sha512-3fUfZT/FUuThWSSyL32Fsh7weUUfYP/Fjc/cGSbla5KiSo0GtI1JMssCRUopJTvmLjrw05R2q7rlLtiKdSzkzQ== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.46" From fa1dbeff05e98033d2cda2d8e2554364b49ee200 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Apr 2021 09:56:34 +0200 Subject: [PATCH 08/33] Bump core-js from 3.10.0 to 3.10.1 (#1484) Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.10.0 to 3.10.1. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/commits/v3.10.1/packages/core-js) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 25bec5131b..d8179e5ff0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2334,9 +2334,9 @@ core-js-compat@^3.8.1, core-js-compat@^3.9.0: semver "7.0.0" core-js@3: - version "3.10.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.10.0.tgz#9a020547c8b6879f929306949e31496bbe2ae9b3" - integrity sha512-MQx/7TLgmmDVamSyfE+O+5BHvG1aUGj/gHhLn1wVtm2B5u1eVIPvh7vkfjwWKNCjrTJB8+He99IntSQ1qP+vYQ== + version "3.10.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.10.1.tgz#e683963978b6806dcc6c0a4a8bd4ab0bdaf3f21a" + integrity sha512-pwCxEXnj27XG47mu7SXAwhLP3L5CrlvCB91ANUkIz40P27kUcvNfSdvyZJ9CLHiVoKSp+TTChMQMSKQEH/IQxA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" From 03ae2aeb73d983ecd7cbcebe3f1cfaa06c097c5c Mon Sep 17 00:00:00 2001 From: lucapette Date: Thu, 8 Apr 2021 13:59:02 +0200 Subject: [PATCH 09/33] [#1476] Remove components (#1485) --- docs/docs/ui/components.md | 31 ------------------ docs/docs/ui/introduction.md | 8 ----- docs/sidebars.js | 10 +----- .../static/icons/information-architecture.svg | 3 -- docs/static/img/ui/storybookExample.png | Bin 91093 -> 0 bytes 5 files changed, 1 insertion(+), 51 deletions(-) delete mode 100644 docs/docs/ui/components.md delete mode 100644 docs/static/icons/information-architecture.svg delete mode 100644 docs/static/img/ui/storybookExample.png diff --git a/docs/docs/ui/components.md b/docs/docs/ui/components.md deleted file mode 100644 index 89ba5543c7..0000000000 --- a/docs/docs/ui/components.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: UI Components -sidebar_label: UI Components ---- - -import ButtonBox from "@site/src/components/ButtonBox"; -import GithubIconSVG from "@site/static/icons/githubIcon.svg"; -import ComponentsSVG from "@site/static/icons/information-architecture.svg"; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -We built Airy to fulfill all your conversational needs. Additionally we build some react components for your use so you can expand the UI with a matching design. - -} -iconInvertible={true} -title='UI Components' -description='Buttons, Inputs, Loaders and all Airy UI Components ' -link='https://components.airy.co/' -/> -
-} -title='Component repo' -description=' Directly access the code for each component ' -link='https://github.com/airyhq/components.' -/> -
- -**Sample Button Component** - -Button Template Example diff --git a/docs/docs/ui/introduction.md b/docs/docs/ui/introduction.md index 488b1705bd..e3f19da9db 100644 --- a/docs/docs/ui/introduction.md +++ b/docs/docs/ui/introduction.md @@ -9,7 +9,6 @@ import GearSVG from "@site/static/icons/gear.svg"; import DesktopComputerSVG from "@site/static/icons/desktop-computer.svg"; import LabelSVG from "@site/static/icons/label.svg"; import UsersSVG from "@site/static/icons/users.svg"; -import ComponentsSVG from "@site/static/icons/information-architecture.svg"; import CommentBubbleSVG from "@site/static/icons/comment-bubble.svg"; import useBaseUrl from '@docusaurus/useBaseUrl'; @@ -42,13 +41,6 @@ Airy UI comes with an open-source, customizable [inbox](inbox), filled with the link='ui/tags' /> } - iconInvertible={true} - title='UI Components' - description='Buttons, Inputs, Loaders and all Airy UI Components ' - link='ui/components' - /> - } iconInvertible={true} title='Suggested Replies' diff --git a/docs/sidebars.js b/docs/sidebars.js index 49e207d0d1..94a6909d83 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -61,15 +61,7 @@ module.exports = { ], }, { - '💎 UI': [ - 'ui/introduction', - 'ui/quickstart', - 'ui/inbox', - 'ui/channels', - 'ui/tags', - 'ui/components', - 'ui/suggestedReplies', - ], + '💎 UI': ['ui/introduction', 'ui/quickstart', 'ui/inbox', 'ui/channels', 'ui/tags', 'ui/suggestedReplies'], }, { '🛠️ Integrations': [ diff --git a/docs/static/icons/information-architecture.svg b/docs/static/icons/information-architecture.svg deleted file mode 100644 index 4bacfd2559..0000000000 --- a/docs/static/icons/information-architecture.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/static/img/ui/storybookExample.png b/docs/static/img/ui/storybookExample.png deleted file mode 100644 index 53b81c3d93a37eb5707bb332472e680516da6afb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91093 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 Date: Thu, 8 Apr 2021 15:21:36 +0200 Subject: [PATCH 10/33] [#1466] Extract model lib from httpclient (#1488) Fixes #1466 --- bazel.tsconfig.json | 6 ++++++ frontend/chat-plugin/BUILD | 2 +- .../chat-plugin/src/components/chat/index.tsx | 2 +- frontend/chat-plugin/src/websocket/index.ts | 2 +- frontend/ui/BUILD | 1 + frontend/ui/src/actions/channel/index.ts | 4 +++- frontend/ui/src/actions/config/index.ts | 2 +- frontend/ui/src/actions/conversations/index.ts | 3 ++- .../ui/src/actions/conversationsFilter/index.ts | 3 ++- frontend/ui/src/actions/messages/index.ts | 3 ++- frontend/ui/src/actions/metadata/index.ts | 2 +- frontend/ui/src/actions/tags/index.tsx | 3 ++- frontend/ui/src/actions/templates/index.ts | 3 ++- frontend/ui/src/actions/user/index.ts | 3 ++- .../ui/src/components/AiryWebsocket/index.tsx | 2 +- .../ui/src/components/ChannelAvatar/index.tsx | 2 +- .../ui/src/components/IconChannel/index.tsx | 2 +- .../src/components/IconChannelFilter/index.tsx | 2 +- frontend/ui/src/components/Tag/index.tsx | 2 +- frontend/ui/src/cookies/webStore.ts | 2 +- .../ConnectedChannelsBySourceCard/index.tsx | 2 +- .../ChannelListItem/index.tsx | 2 +- .../Channels/ConnectedChannelsList/index.tsx | 2 +- .../ui/src/pages/Channels/MainPage/index.tsx | 2 +- .../Airy/ChatPlugin/ChatPluginConnect.tsx | 2 +- .../Airy/ChatPlugin/sections/EditChatPlugin.tsx | 2 +- .../Providers/Twilio/SMS/TwilioSmsConnect.tsx | 2 +- .../Channels/Providers/Twilio/TwilioConnect.tsx | 2 +- .../Twilio/WhatsApp/TwilioWhatsappConnect.tsx | 2 +- .../pages/Inbox/ConversationListItem/index.tsx | 2 +- .../pages/Inbox/ConversationsFilter/Popup.tsx | 2 +- .../pages/Inbox/ConversationsFilter/index.tsx | 2 +- .../ui/src/pages/Inbox/MessageInput/index.tsx | 3 ++- .../Messenger/ConversationMetadata/index.tsx | 2 +- .../pages/Inbox/Messenger/MessageList/index.tsx | 2 +- .../Messenger/MessengerContainer/index.tsx | 2 +- .../Inbox/SuggestedReplySelector/index.tsx | 2 +- .../src/pages/Inbox/TemplateSelector/index.tsx | 2 +- frontend/ui/src/pages/Inbox/index.tsx | 2 +- frontend/ui/src/pages/Tags/SimpleTagForm.tsx | 2 +- frontend/ui/src/pages/Tags/TableRow.tsx | 2 +- frontend/ui/src/pages/Tags/index.tsx | 2 +- frontend/ui/src/reducers/data/channels/index.ts | 2 +- .../ui/src/reducers/data/conversations/index.ts | 4 ++-- frontend/ui/src/reducers/data/index.ts | 2 +- frontend/ui/src/reducers/data/messages/index.ts | 2 +- frontend/ui/src/reducers/data/tags/index.ts | 2 +- .../ui/src/reducers/data/templates/index.ts | 2 +- frontend/ui/src/reducers/data/user/index.ts | 2 +- frontend/ui/src/selectors/conversations.ts | 2 +- frontend/ui/src/selectors/tags.ts | 2 +- frontend/ui/src/services/format/date.ts | 2 +- frontend/ui/src/services/types/messageTypes.ts | 2 +- lib/typescript/httpclient/BUILD | 1 + lib/typescript/httpclient/client.ts | 2 +- .../httpclient/endpoints/createTag.ts | 2 +- .../httpclient/endpoints/listConversations.ts | 2 +- .../httpclient/endpoints/listMessages.ts | 2 +- .../httpclient/endpoints/sendMessages.ts | 2 +- .../httpclient/endpoints/updateTag.ts | 2 +- lib/typescript/httpclient/index.ts | 1 - .../payload/ListTemplatesRequestPayload.ts | 2 +- .../httpclient/payload/PaginatedResponse.ts | 2 +- lib/typescript/model/BUILD | 17 +++++++++++++++++ .../{httpclient => }/model/Channel.ts | 0 lib/typescript/{httpclient => }/model/Config.ts | 0 .../{httpclient => }/model/Contact.ts | 0 .../{httpclient => }/model/Content.ts | 0 .../{httpclient => }/model/Conversation.ts | 0 .../model/ConversationFilter.ts | 0 .../{httpclient => }/model/Message.ts | 0 .../{httpclient => }/model/Metadata.ts | 0 .../{httpclient => }/model/Pagination.ts | 0 lib/typescript/{httpclient => }/model/Source.ts | 0 lib/typescript/{httpclient => }/model/Tag.ts | 0 .../{httpclient => }/model/Template.ts | 0 lib/typescript/{httpclient => }/model/User.ts | 0 lib/typescript/{httpclient => }/model/index.ts | 0 lib/typescript/render/BUILD | 4 ++-- .../render/components/Avatar/index.tsx | 2 +- .../components/MessageInfoWrapper/index.tsx | 2 +- .../render/components/RichText/index.tsx | 2 +- lib/typescript/render/props.ts | 2 +- .../providers/chatplugin/ChatPluginRender.tsx | 2 +- .../providers/facebook/FacebookRender.tsx | 2 +- .../render/providers/google/GoogleRender.tsx | 2 +- .../twilio/twilioSMS/TwilioSMSRender.tsx | 2 +- .../twilioWhatsapp/TwilioWhatsappRender.tsx | 2 +- lib/typescript/websocketclient/BUILD | 2 +- lib/typescript/websocketclient/index.ts | 2 +- lib/typescript/websocketclient/payload.ts | 2 +- 91 files changed, 108 insertions(+), 75 deletions(-) create mode 100644 lib/typescript/model/BUILD rename lib/typescript/{httpclient => }/model/Channel.ts (100%) rename lib/typescript/{httpclient => }/model/Config.ts (100%) rename lib/typescript/{httpclient => }/model/Contact.ts (100%) rename lib/typescript/{httpclient => }/model/Content.ts (100%) rename lib/typescript/{httpclient => }/model/Conversation.ts (100%) rename lib/typescript/{httpclient => }/model/ConversationFilter.ts (100%) rename lib/typescript/{httpclient => }/model/Message.ts (100%) rename lib/typescript/{httpclient => }/model/Metadata.ts (100%) rename lib/typescript/{httpclient => }/model/Pagination.ts (100%) rename lib/typescript/{httpclient => }/model/Source.ts (100%) rename lib/typescript/{httpclient => }/model/Tag.ts (100%) rename lib/typescript/{httpclient => }/model/Template.ts (100%) rename lib/typescript/{httpclient => }/model/User.ts (100%) rename lib/typescript/{httpclient => }/model/index.ts (100%) diff --git a/bazel.tsconfig.json b/bazel.tsconfig.json index ddcaf97ce7..d21021b66f 100644 --- a/bazel.tsconfig.json +++ b/bazel.tsconfig.json @@ -22,6 +22,12 @@ "components/*": [ "./frontend/components/src/*" ], + "model": [ + "./lib/typescript/model" + ], + "model/*": [ + "./lib/typescript/model/*" + ], "httpclient": [ "./lib/typescript/httpclient" ], diff --git a/frontend/chat-plugin/BUILD b/frontend/chat-plugin/BUILD index 974dcd25ab..208ee00336 100644 --- a/frontend/chat-plugin/BUILD +++ b/frontend/chat-plugin/BUILD @@ -11,7 +11,7 @@ load("@io_bazel_rules_docker//container:container.bzl", "container_image") module_deps = [ "//frontend/assets", "//lib/typescript/types", - "//lib/typescript/httpclient", + "//lib/typescript/model", "//lib/typescript/render", "//lib/typescript/dates", "//frontend/chat-plugin/handles:chat-plugin-handles", diff --git a/frontend/chat-plugin/src/components/chat/index.tsx b/frontend/chat-plugin/src/components/chat/index.tsx index aa70dc2549..17b7ea157d 100644 --- a/frontend/chat-plugin/src/components/chat/index.tsx +++ b/frontend/chat-plugin/src/components/chat/index.tsx @@ -13,7 +13,7 @@ import AiryHeaderBar from '../../airyRenderProps/AiryHeaderBar'; import {AiryWidgetConfiguration} from '../../config'; import BubbleProp from '../bubble'; import AiryBubble from '../../airyRenderProps/AiryBubble'; -import {MessageState, isFromContact, Message} from 'httpclient'; +import {MessageState, isFromContact, Message} from 'model'; import {SourceMessage, CommandUnion} from 'render'; import {MessageInfoWrapper} from 'render/components/MessageInfoWrapper'; /* eslint-disable @typescript-eslint/no-var-requires */ diff --git a/frontend/chat-plugin/src/websocket/index.ts b/frontend/chat-plugin/src/websocket/index.ts index f796c5c3f3..a4e9461d0c 100644 --- a/frontend/chat-plugin/src/websocket/index.ts +++ b/frontend/chat-plugin/src/websocket/index.ts @@ -2,7 +2,7 @@ import {Client, messageCallbackType, IFrame} from '@stomp/stompjs'; import 'regenerator-runtime/runtime'; import {start, getResumeToken, sendMessage} from '../api'; import {SuggestionResponse, TextContent} from 'render/providers/chatplugin/chatPluginModel'; -import {Message} from 'httpclient'; +import {Message} from 'model'; import {getResumeTokenFromStorage, resetStorage} from '../storage'; /* eslint-disable @typescript-eslint/no-var-requires */ diff --git a/frontend/ui/BUILD b/frontend/ui/BUILD index e5c86f0bee..e726269c90 100644 --- a/frontend/ui/BUILD +++ b/frontend/ui/BUILD @@ -11,6 +11,7 @@ check_pkg(name = "buildifier") module_deps = [ "//frontend/assets", "//lib/typescript/types", + "//lib/typescript/model", "//lib/typescript/httpclient", "//lib/typescript/render", "//lib/typescript/dates", diff --git a/frontend/ui/src/actions/channel/index.ts b/frontend/ui/src/actions/channel/index.ts index 73ebfcd028..e9bb5e7297 100644 --- a/frontend/ui/src/actions/channel/index.ts +++ b/frontend/ui/src/actions/channel/index.ts @@ -1,8 +1,9 @@ import _typesafe, {createAction} from 'typesafe-actions'; import _, {Dispatch} from 'redux'; +import {Channel} from 'model'; + import { - Channel, ConnectChannelFacebookRequestPayload, ExploreChannelRequestPayload, DisconnectChannelRequestPayload, @@ -11,6 +12,7 @@ import { ConnectTwilioWhatsappRequestPayload, UpdateChannelRequestPayload, } from 'httpclient'; + import {HttpClientInstance} from '../../InitializeAiryApi'; const SET_CURRENT_CHANNELS = '@@channel/SET_CHANNELS'; diff --git a/frontend/ui/src/actions/config/index.ts b/frontend/ui/src/actions/config/index.ts index 583e5bc438..abded2ea7e 100644 --- a/frontend/ui/src/actions/config/index.ts +++ b/frontend/ui/src/actions/config/index.ts @@ -1,4 +1,4 @@ -import {Config} from 'httpclient'; +import {Config} from 'model'; import _, {Dispatch} from 'redux'; import _typesafe, {createAction} from 'typesafe-actions'; diff --git a/frontend/ui/src/actions/conversations/index.ts b/frontend/ui/src/actions/conversations/index.ts index dc8ffbb0ed..f5e899fd6b 100644 --- a/frontend/ui/src/actions/conversations/index.ts +++ b/frontend/ui/src/actions/conversations/index.ts @@ -1,6 +1,7 @@ import {Dispatch} from 'redux'; import _typesafe, {createAction} from 'typesafe-actions'; -import {Conversation, Pagination, PaginatedResponse} from 'httpclient'; +import {Conversation, Pagination} from 'model'; +import {PaginatedResponse} from 'httpclient'; import {HttpClientInstance} from '../../InitializeAiryApi'; import {StateModel} from '../../reducers'; import {mergeMetadataAction, setMetadataAction} from '../metadata'; diff --git a/frontend/ui/src/actions/conversationsFilter/index.ts b/frontend/ui/src/actions/conversationsFilter/index.ts index fd9f8833f6..caca7492de 100644 --- a/frontend/ui/src/actions/conversationsFilter/index.ts +++ b/frontend/ui/src/actions/conversationsFilter/index.ts @@ -1,6 +1,7 @@ import {Dispatch} from 'redux'; import _typesafe, {createAction} from 'typesafe-actions'; -import {Conversation, ConversationFilter, PaginatedResponse, Pagination} from 'httpclient'; +import {Conversation, ConversationFilter, Pagination} from 'model'; +import {PaginatedResponse} from 'httpclient'; import {HttpClientInstance} from '../../InitializeAiryApi'; import {StateModel} from '../../reducers'; diff --git a/frontend/ui/src/actions/messages/index.ts b/frontend/ui/src/actions/messages/index.ts index 177a164eac..76e1556ef8 100644 --- a/frontend/ui/src/actions/messages/index.ts +++ b/frontend/ui/src/actions/messages/index.ts @@ -1,6 +1,7 @@ import {Dispatch} from 'redux'; import _typesafe, {createAction} from 'typesafe-actions'; -import {Message, PaginatedResponse, SendMessagesRequestPayload} from 'httpclient'; +import {Message} from 'model'; +import {PaginatedResponse, SendMessagesRequestPayload} from 'httpclient'; import {HttpClientInstance} from '../../InitializeAiryApi'; import {StateModel} from '../../reducers'; import {updateMessagesPaginationDataAction, loadingConversationAction} from '../conversations'; diff --git a/frontend/ui/src/actions/metadata/index.ts b/frontend/ui/src/actions/metadata/index.ts index eae68973f4..f221db886e 100644 --- a/frontend/ui/src/actions/metadata/index.ts +++ b/frontend/ui/src/actions/metadata/index.ts @@ -1,5 +1,5 @@ import _typesafe, {createAction} from 'typesafe-actions'; -import {MetadataEvent} from 'httpclient'; +import {MetadataEvent} from 'model'; const MERGE_METADATA = '@@metadata/MERGE_METADATA'; const SET_METADATA = '@@metadata/SET_METADATA'; diff --git a/frontend/ui/src/actions/tags/index.tsx b/frontend/ui/src/actions/tags/index.tsx index 027496b04c..23c0ce2948 100644 --- a/frontend/ui/src/actions/tags/index.tsx +++ b/frontend/ui/src/actions/tags/index.tsx @@ -1,7 +1,8 @@ import _, {Dispatch} from 'redux'; import _typesafe, {createAction} from 'typesafe-actions'; -import {Tag, CreateTagRequestPayload} from 'httpclient'; +import {Tag} from 'model'; +import {CreateTagRequestPayload} from 'httpclient'; import {HttpClientInstance} from '../../InitializeAiryApi'; const UPSERT_TAG = 'UPSERT_TAG'; diff --git a/frontend/ui/src/actions/templates/index.ts b/frontend/ui/src/actions/templates/index.ts index ad134273a3..6f9d5e6e3f 100644 --- a/frontend/ui/src/actions/templates/index.ts +++ b/frontend/ui/src/actions/templates/index.ts @@ -1,7 +1,8 @@ import _, {Dispatch} from 'redux'; import _typesafe, {createAction} from 'typesafe-actions'; -import {ListTemplatesRequestPayload, Template} from 'httpclient'; +import {Template} from 'model'; +import {ListTemplatesRequestPayload} from 'httpclient'; import {HttpClientInstance} from '../../InitializeAiryApi'; const LIST_TEMPLATES = 'LIST_TEMPLATES'; diff --git a/frontend/ui/src/actions/user/index.ts b/frontend/ui/src/actions/user/index.ts index 193a2eb9c6..78a3e8298b 100644 --- a/frontend/ui/src/actions/user/index.ts +++ b/frontend/ui/src/actions/user/index.ts @@ -1,7 +1,8 @@ import _typesafe, {createAction} from 'typesafe-actions'; import _, {Dispatch} from 'redux'; -import {User, LoginViaEmailRequestPayload} from 'httpclient'; +import {User} from 'model'; +import {LoginViaEmailRequestPayload} from 'httpclient'; import {HttpClientInstance} from '../../InitializeAiryApi'; import {clearUserData} from '../../cookies'; diff --git a/frontend/ui/src/components/AiryWebsocket/index.tsx b/frontend/ui/src/components/AiryWebsocket/index.tsx index 99e95c9302..701402890a 100644 --- a/frontend/ui/src/components/AiryWebsocket/index.tsx +++ b/frontend/ui/src/components/AiryWebsocket/index.tsx @@ -1,7 +1,7 @@ import React, {useEffect, useState} from 'react'; import _, {connect, ConnectedProps} from 'react-redux'; import {WebSocketClient} from 'websocketclient'; -import {Message, Channel, MetadataEvent} from 'httpclient'; +import {Message, Channel, MetadataEvent} from 'model'; import camelcaseKeys from 'camelcase-keys'; import {env} from '../../env'; diff --git a/frontend/ui/src/components/ChannelAvatar/index.tsx b/frontend/ui/src/components/ChannelAvatar/index.tsx index 8664093988..0c78d3d7de 100644 --- a/frontend/ui/src/components/ChannelAvatar/index.tsx +++ b/frontend/ui/src/components/ChannelAvatar/index.tsx @@ -4,7 +4,7 @@ import {ReactComponent as WhatsappAvatar} from 'assets/images/icons/whatsapp_ava import {ReactComponent as SmsAvatar} from 'assets/images/icons/sms_avatar.svg'; import {ReactComponent as FacebookAvatar} from 'assets/images/icons/messenger_avatar.svg'; import {ReactComponent as AiryAvatar} from 'assets/images/icons/airy_avatar.svg'; -import {Channel, Source} from 'httpclient'; +import {Channel, Source} from 'model'; import styles from './index.module.scss'; type ChannelAvatarProps = { diff --git a/frontend/ui/src/components/IconChannel/index.tsx b/frontend/ui/src/components/IconChannel/index.tsx index d226706734..09a62639fe 100644 --- a/frontend/ui/src/components/IconChannel/index.tsx +++ b/frontend/ui/src/components/IconChannel/index.tsx @@ -1,6 +1,6 @@ /* eslint-disable react/display-name */ import React from 'react'; -import {Channel} from 'httpclient'; +import {Channel} from 'model'; import {ReactComponent as FacebookIcon} from 'assets/images/icons/facebook_rounded.svg'; import {ReactComponent as GoogleIcon} from 'assets/images/icons/google-messages.svg'; diff --git a/frontend/ui/src/components/IconChannelFilter/index.tsx b/frontend/ui/src/components/IconChannelFilter/index.tsx index 1502137121..16ea7fa1c3 100644 --- a/frontend/ui/src/components/IconChannelFilter/index.tsx +++ b/frontend/ui/src/components/IconChannelFilter/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import {Channel} from 'httpclient'; +import {Channel} from 'model'; import {ReactComponent as GoogleIcon} from 'assets/images/icons/google_avatar.svg'; import {ReactComponent as WhatsappIcon} from 'assets/images/icons/whatsapp_avatar.svg'; diff --git a/frontend/ui/src/components/Tag/index.tsx b/frontend/ui/src/components/Tag/index.tsx index ae0d8cbb9f..19a1da289a 100644 --- a/frontend/ui/src/components/Tag/index.tsx +++ b/frontend/ui/src/components/Tag/index.tsx @@ -1,7 +1,7 @@ import React from 'react'; import _, {connect, ConnectedProps} from 'react-redux'; -import {Tag as TagModel} from 'httpclient'; +import {Tag as TagModel} from 'model'; import {Settings} from '../../reducers/data/settings'; import {ReactComponent as Close} from 'assets/images/icons/close.svg'; diff --git a/frontend/ui/src/cookies/webStore.ts b/frontend/ui/src/cookies/webStore.ts index cb5d4833af..c86c5ceee0 100644 --- a/frontend/ui/src/cookies/webStore.ts +++ b/frontend/ui/src/cookies/webStore.ts @@ -1,5 +1,5 @@ import {getCookie, setCookie} from './cookie'; -import {User} from 'httpclient'; +import {User} from 'model'; export const storeDomainCookie = (key: string) => (token: string) => { setCookie(key, token, document.domain); diff --git a/frontend/ui/src/pages/Channels/ConnectedChannelsBySourceCard/index.tsx b/frontend/ui/src/pages/Channels/ConnectedChannelsBySourceCard/index.tsx index 4dab718628..f2f51fbc96 100644 --- a/frontend/ui/src/pages/Channels/ConnectedChannelsBySourceCard/index.tsx +++ b/frontend/ui/src/pages/Channels/ConnectedChannelsBySourceCard/index.tsx @@ -2,7 +2,7 @@ import React from 'react'; import {RouteComponentProps, withRouter} from 'react-router-dom'; import {LinkButton} from '@airyhq/components'; -import {Channel} from 'httpclient'; +import {Channel} from 'model'; import {SourceInfo} from '../MainPage'; import ChannelAvatar from '../../../components/ChannelAvatar'; import {ReactComponent as PlusCircleIcon} from 'assets/images/icons/plus-circle.svg'; diff --git a/frontend/ui/src/pages/Channels/ConnectedChannelsList/ChannelListItem/index.tsx b/frontend/ui/src/pages/Channels/ConnectedChannelsList/ChannelListItem/index.tsx index 331ce03e14..e3566ad0f0 100644 --- a/frontend/ui/src/pages/Channels/ConnectedChannelsList/ChannelListItem/index.tsx +++ b/frontend/ui/src/pages/Channels/ConnectedChannelsList/ChannelListItem/index.tsx @@ -5,7 +5,7 @@ import {RouteComponentProps, withRouter} from 'react-router-dom'; import {disconnectChannel} from '../../../../actions/channel'; import {SettingsModal, Button} from '@airyhq/components'; -import {Channel} from 'httpclient'; +import {Channel} from 'model'; import {ReactComponent as CheckMarkIcon} from 'assets/images/icons/checkmark.svg'; import ChannelAvatar from '../../../../components/ChannelAvatar'; diff --git a/frontend/ui/src/pages/Channels/ConnectedChannelsList/index.tsx b/frontend/ui/src/pages/Channels/ConnectedChannelsList/index.tsx index 39fa53afeb..8699674a2c 100644 --- a/frontend/ui/src/pages/Channels/ConnectedChannelsList/index.tsx +++ b/frontend/ui/src/pages/Channels/ConnectedChannelsList/index.tsx @@ -6,7 +6,7 @@ import {sortBy} from 'lodash-es'; import {StateModel} from './../../../reducers'; import {allChannels} from './../../../selectors/channels'; -import {Channel, Source} from 'httpclient'; +import {Channel, Source} from 'model'; import ChannelListItem from './ChannelListItem'; import {SearchField} from '@airyhq/components'; import {ReactComponent as ArrowLeftIcon} from 'assets/images/icons/arrow-left-2.svg'; diff --git a/frontend/ui/src/pages/Channels/MainPage/index.tsx b/frontend/ui/src/pages/Channels/MainPage/index.tsx index 6d8c425c53..be9710681d 100644 --- a/frontend/ui/src/pages/Channels/MainPage/index.tsx +++ b/frontend/ui/src/pages/Channels/MainPage/index.tsx @@ -1,7 +1,7 @@ import React, {useState} from 'react'; import {withRouter, RouteComponentProps} from 'react-router-dom'; -import {Source, Channel, Config} from 'httpclient'; +import {Source, Channel, Config} from 'model'; import {FacebookMessengerRequirementsDialog} from '../Providers/Facebook/Messenger/FacebookMessengerRequirementsDialog'; import {TwilioRequirementsDialog} from '../Providers/Twilio/TwilioRequirementsDialog'; import SourceDescriptionCard from '../SourceDescriptionCard'; diff --git a/frontend/ui/src/pages/Channels/Providers/Airy/ChatPlugin/ChatPluginConnect.tsx b/frontend/ui/src/pages/Channels/Providers/Airy/ChatPlugin/ChatPluginConnect.tsx index acd7ada920..50e223a479 100644 --- a/frontend/ui/src/pages/Channels/Providers/Airy/ChatPlugin/ChatPluginConnect.tsx +++ b/frontend/ui/src/pages/Channels/Providers/Airy/ChatPlugin/ChatPluginConnect.tsx @@ -8,7 +8,7 @@ import {allChannels} from '../../../../../selectors/channels'; import {connectChatPlugin, updateChannel, disconnectChannel} from '../../../../../actions/channel'; import {Button, LinkButton} from '@airyhq/components'; -import {Channel} from 'httpclient'; +import {Channel} from 'model'; import {ConnectNewChatPlugin} from './sections/ConnectNewChatPlugin'; import {EditChatPlugin} from './sections/EditChatPlugin'; diff --git a/frontend/ui/src/pages/Channels/Providers/Airy/ChatPlugin/sections/EditChatPlugin.tsx b/frontend/ui/src/pages/Channels/Providers/Airy/ChatPlugin/sections/EditChatPlugin.tsx index 6d154d9a4f..d0ab762683 100644 --- a/frontend/ui/src/pages/Channels/Providers/Airy/ChatPlugin/sections/EditChatPlugin.tsx +++ b/frontend/ui/src/pages/Channels/Providers/Airy/ChatPlugin/sections/EditChatPlugin.tsx @@ -1,7 +1,7 @@ import React, {useEffect, useState} from 'react'; import {Button, Input} from '@airyhq/components'; -import {Channel} from 'httpclient'; +import {Channel} from 'model'; import {CustomiseSection} from './CustomiseSection'; diff --git a/frontend/ui/src/pages/Channels/Providers/Twilio/SMS/TwilioSmsConnect.tsx b/frontend/ui/src/pages/Channels/Providers/Twilio/SMS/TwilioSmsConnect.tsx index 5f09d60852..404ccd752d 100644 --- a/frontend/ui/src/pages/Channels/Providers/Twilio/SMS/TwilioSmsConnect.tsx +++ b/frontend/ui/src/pages/Channels/Providers/Twilio/SMS/TwilioSmsConnect.tsx @@ -4,7 +4,7 @@ import {withRouter, RouteComponentProps} from 'react-router-dom'; import {StateModel} from '../../../../../reducers'; import {allChannels} from '../../../../../selectors/channels'; -import {Channel, Source} from 'httpclient'; +import {Channel, Source} from 'model'; import TwilioConnect from '../TwilioConnect'; interface TwilioSmsRouterProps { diff --git a/frontend/ui/src/pages/Channels/Providers/Twilio/TwilioConnect.tsx b/frontend/ui/src/pages/Channels/Providers/Twilio/TwilioConnect.tsx index 165a32681f..4ba100ecc7 100644 --- a/frontend/ui/src/pages/Channels/Providers/Twilio/TwilioConnect.tsx +++ b/frontend/ui/src/pages/Channels/Providers/Twilio/TwilioConnect.tsx @@ -5,7 +5,7 @@ import {connect, ConnectedProps} from 'react-redux'; import {connectTwilioSms, connectTwilioWhatsapp} from '../../../../actions/channel'; import {Button, Input, LinkButton, UrlInputField} from '@airyhq/components'; -import {Channel, Source} from 'httpclient'; +import {Channel, Source} from 'model'; import {ReactComponent as ArrowLeft} from 'assets/images/icons/arrow-left-2.svg'; import styles from './TwilioConnect.module.scss'; diff --git a/frontend/ui/src/pages/Channels/Providers/Twilio/WhatsApp/TwilioWhatsappConnect.tsx b/frontend/ui/src/pages/Channels/Providers/Twilio/WhatsApp/TwilioWhatsappConnect.tsx index c4c3d8a946..a2e66db9e1 100644 --- a/frontend/ui/src/pages/Channels/Providers/Twilio/WhatsApp/TwilioWhatsappConnect.tsx +++ b/frontend/ui/src/pages/Channels/Providers/Twilio/WhatsApp/TwilioWhatsappConnect.tsx @@ -3,7 +3,7 @@ import {connect, ConnectedProps} from 'react-redux'; import {RouteComponentProps} from 'react-router-dom'; import {allChannels} from '../../../../../selectors/channels'; -import {Channel, Source} from 'httpclient'; +import {Channel, Source} from 'model'; import TwilioConnect from '../TwilioConnect'; import {StateModel} from '../../../../../reducers'; diff --git a/frontend/ui/src/pages/Inbox/ConversationListItem/index.tsx b/frontend/ui/src/pages/Inbox/ConversationListItem/index.tsx index 6ad3bfa675..98b39c233b 100644 --- a/frontend/ui/src/pages/Inbox/ConversationListItem/index.tsx +++ b/frontend/ui/src/pages/Inbox/ConversationListItem/index.tsx @@ -7,7 +7,7 @@ import {Avatar} from 'render'; import {formatTimeOfMessage} from '../../../services/format/date'; -import {Message} from 'httpclient'; +import {Message} from 'model'; import {MergedConversation} from '../../../reducers'; import {INBOX_CONVERSATIONS_ROUTE} from '../../../routes/routes'; import {readConversations} from '../../../actions/conversations'; diff --git a/frontend/ui/src/pages/Inbox/ConversationsFilter/Popup.tsx b/frontend/ui/src/pages/Inbox/ConversationsFilter/Popup.tsx index 9a2fc9f547..69ac3a4370 100644 --- a/frontend/ui/src/pages/Inbox/ConversationsFilter/Popup.tsx +++ b/frontend/ui/src/pages/Inbox/ConversationsFilter/Popup.tsx @@ -2,7 +2,7 @@ import React, {useEffect, useState} from 'react'; import _, {connect, ConnectedProps} from 'react-redux'; import {sortBy} from 'lodash-es'; import {SearchField, LinkButton, Button} from '@airyhq/components'; -import {Tag as TagModel, Channel, ConversationFilter} from 'httpclient'; +import {Tag as TagModel, Channel, ConversationFilter} from 'model'; import {listTags} from '../../../actions/tags'; import {setFilter, resetFilter} from '../../../actions/conversationsFilter'; import {StateModel} from '../../../reducers'; diff --git a/frontend/ui/src/pages/Inbox/ConversationsFilter/index.tsx b/frontend/ui/src/pages/Inbox/ConversationsFilter/index.tsx index 5d9ae7230b..c57ddd08ce 100644 --- a/frontend/ui/src/pages/Inbox/ConversationsFilter/index.tsx +++ b/frontend/ui/src/pages/Inbox/ConversationsFilter/index.tsx @@ -1,7 +1,7 @@ import React, {useEffect, useState} from 'react'; import _, {connect, ConnectedProps} from 'react-redux'; import {filter} from 'lodash-es'; -import {ConversationFilter} from 'httpclient'; +import {ConversationFilter} from 'model'; import {StateModel} from '../../../reducers'; diff --git a/frontend/ui/src/pages/Inbox/MessageInput/index.tsx b/frontend/ui/src/pages/Inbox/MessageInput/index.tsx index b0b55bdf76..467d4bfe05 100644 --- a/frontend/ui/src/pages/Inbox/MessageInput/index.tsx +++ b/frontend/ui/src/pages/Inbox/MessageInput/index.tsx @@ -9,7 +9,8 @@ import {Button} from '@airyhq/components'; import {cyMessageSendButton, cyMessageTextArea} from 'handles'; import {Picker} from 'emoji-mart'; import {SourceMessage} from 'render'; -import {getTextMessagePayload, Message, SuggestedReply, Suggestions, Template, Source} from 'httpclient'; +import {Message, SuggestedReply, Suggestions, Template, Source} from 'model'; +import {getTextMessagePayload} from 'httpclient'; import 'emoji-mart/css/emoji-mart.css'; import {ReactComponent as Paperplane} from 'assets/images/icons/paperplane.svg'; diff --git a/frontend/ui/src/pages/Inbox/Messenger/ConversationMetadata/index.tsx b/frontend/ui/src/pages/Inbox/Messenger/ConversationMetadata/index.tsx index bbb4d86c07..4de3431a16 100644 --- a/frontend/ui/src/pages/Inbox/Messenger/ConversationMetadata/index.tsx +++ b/frontend/ui/src/pages/Inbox/Messenger/ConversationMetadata/index.tsx @@ -1,7 +1,7 @@ import React, {FormEvent, useEffect, useState} from 'react'; import _, {connect, ConnectedProps} from 'react-redux'; import {withRouter} from 'react-router-dom'; -import {Tag as TagModel, TagColor, getTags} from 'httpclient'; +import {Tag as TagModel, TagColor, getTags} from 'model'; import {createTag, listTags} from '../../../../actions/tags'; import {addTagToConversation, removeTagFromConversation} from '../../../../actions/conversations'; diff --git a/frontend/ui/src/pages/Inbox/Messenger/MessageList/index.tsx b/frontend/ui/src/pages/Inbox/Messenger/MessageList/index.tsx index 86f8eb0c16..9a86d4d1f5 100644 --- a/frontend/ui/src/pages/Inbox/Messenger/MessageList/index.tsx +++ b/frontend/ui/src/pages/Inbox/Messenger/MessageList/index.tsx @@ -5,7 +5,7 @@ import {debounce, isEmpty} from 'lodash-es'; import {withRouter} from 'react-router-dom'; import {cyMessageList} from 'handles'; -import {Message, Suggestions, getSource, isFromContact} from 'httpclient'; +import {Message, Suggestions, getSource, isFromContact} from 'model'; import {SourceMessage} from 'render'; import {ReactComponent as LightBulbIcon} from 'assets/images/icons/lightbulb.svg'; diff --git a/frontend/ui/src/pages/Inbox/Messenger/MessengerContainer/index.tsx b/frontend/ui/src/pages/Inbox/Messenger/MessengerContainer/index.tsx index bd073aedde..bddd153c7a 100644 --- a/frontend/ui/src/pages/Inbox/Messenger/MessengerContainer/index.tsx +++ b/frontend/ui/src/pages/Inbox/Messenger/MessengerContainer/index.tsx @@ -9,7 +9,7 @@ import styles from './index.module.scss'; import ConversationMetadata from '../ConversationMetadata'; import MessageInput from '../../MessageInput'; import {allConversations, getCurrentConversation} from '../../../../selectors/conversations'; -import {Source, Suggestions} from 'httpclient'; +import {Source, Suggestions} from 'model'; const mapStateToProps = (state: StateModel, ownProps) => ({ conversations: allConversations(state), diff --git a/frontend/ui/src/pages/Inbox/SuggestedReplySelector/index.tsx b/frontend/ui/src/pages/Inbox/SuggestedReplySelector/index.tsx index 7c0f2a9b5c..ae4d255a1b 100644 --- a/frontend/ui/src/pages/Inbox/SuggestedReplySelector/index.tsx +++ b/frontend/ui/src/pages/Inbox/SuggestedReplySelector/index.tsx @@ -4,7 +4,7 @@ import {SourceMessage} from 'render'; import {Carousel, ListenOutsideClick} from '@airyhq/components'; import styles from './index.module.scss'; import {listTemplates} from '../../../actions/templates'; -import {SuggestedReply} from 'httpclient'; +import {SuggestedReply} from 'model'; import {StateModel} from '../../../reducers'; const mapDispatchToProps = { diff --git a/frontend/ui/src/pages/Inbox/TemplateSelector/index.tsx b/frontend/ui/src/pages/Inbox/TemplateSelector/index.tsx index c7464ff662..8572eb6068 100644 --- a/frontend/ui/src/pages/Inbox/TemplateSelector/index.tsx +++ b/frontend/ui/src/pages/Inbox/TemplateSelector/index.tsx @@ -4,7 +4,7 @@ import {ListenOutsideClick} from '@airyhq/components'; import styles from './index.module.scss'; import {listTemplates} from '../../../actions/templates'; import {SearchField, ErrorNotice} from '@airyhq/components'; -import {Template, Source} from 'httpclient'; +import {Template, Source} from 'model'; import {StateModel} from '../../../reducers'; import emptyState from 'assets/images/empty-state/templates-empty-state.png'; import notFoundState from 'assets/images/not-found/templates-not-found.png'; diff --git a/frontend/ui/src/pages/Inbox/index.tsx b/frontend/ui/src/pages/Inbox/index.tsx index c6dc93c981..09827bb500 100644 --- a/frontend/ui/src/pages/Inbox/index.tsx +++ b/frontend/ui/src/pages/Inbox/index.tsx @@ -2,7 +2,7 @@ import React, {useEffect} from 'react'; import _, {connect, ConnectedProps} from 'react-redux'; import {RouteComponentProps} from 'react-router-dom'; -import {User} from 'httpclient'; +import {User} from 'model'; import {listConversations} from '../../actions/conversations'; import {listChannels} from '../../actions/channel'; import {StateModel} from '../../reducers'; diff --git a/frontend/ui/src/pages/Tags/SimpleTagForm.tsx b/frontend/ui/src/pages/Tags/SimpleTagForm.tsx index 2815949a0c..29fd1fb006 100644 --- a/frontend/ui/src/pages/Tags/SimpleTagForm.tsx +++ b/frontend/ui/src/pages/Tags/SimpleTagForm.tsx @@ -9,7 +9,7 @@ import DialogCustomizable from '../../components/DialogCustomizable'; import ColorSelector from '../../components/ColorSelector'; import Tag from '../../components/Tag'; -import {Tag as TagModel, TagColor} from 'httpclient'; +import {Tag as TagModel, TagColor} from 'model'; import styles from './SimpleTagForm.module.scss'; import {StateModel} from '../../reducers'; diff --git a/frontend/ui/src/pages/Tags/TableRow.tsx b/frontend/ui/src/pages/Tags/TableRow.tsx index 8cc8ee58b2..bf017a241a 100644 --- a/frontend/ui/src/pages/Tags/TableRow.tsx +++ b/frontend/ui/src/pages/Tags/TableRow.tsx @@ -8,7 +8,7 @@ import {ReactComponent as EditIcon} from 'assets/images/icons/edit.svg'; import {ReactComponent as TrashIcon} from 'assets/images/icons/trash.svg'; import ColorSelector from '../../components/ColorSelector'; import Tag from '../../components/Tag'; -import {Tag as TagModel, TagColor} from 'httpclient'; +import {Tag as TagModel, TagColor} from 'model'; import {Settings} from '../../reducers/data/settings'; import {StateModel} from '../../reducers'; import {cyTagsTableRowDisplayDeleteModal} from 'handles'; diff --git a/frontend/ui/src/pages/Tags/index.tsx b/frontend/ui/src/pages/Tags/index.tsx index bb6ee1b589..e6af2dee56 100644 --- a/frontend/ui/src/pages/Tags/index.tsx +++ b/frontend/ui/src/pages/Tags/index.tsx @@ -7,7 +7,7 @@ import {ReactComponent as Plus} from 'assets/images/icons/plus.svg'; import {listTags, deleteTag, filterTags, errorTag} from '../../actions/tags'; import {filteredTags} from '../../selectors/tags'; -import {Tag} from 'httpclient'; +import {Tag} from 'model'; import {ModalType} from '../../types'; import styles from './index.module.scss'; diff --git a/frontend/ui/src/reducers/data/channels/index.ts b/frontend/ui/src/reducers/data/channels/index.ts index d005f57714..405db1bcbb 100644 --- a/frontend/ui/src/reducers/data/channels/index.ts +++ b/frontend/ui/src/reducers/data/channels/index.ts @@ -1,5 +1,5 @@ import {ActionType, getType} from 'typesafe-actions'; -import {Channel} from 'httpclient'; +import {Channel} from 'model'; import * as actions from '../../../actions/channel'; import * as metadataActions from '../../../actions/metadata'; import {merge, omitBy} from 'lodash-es'; diff --git a/frontend/ui/src/reducers/data/conversations/index.ts b/frontend/ui/src/reducers/data/conversations/index.ts index 8ec275aae0..6cf646c694 100644 --- a/frontend/ui/src/reducers/data/conversations/index.ts +++ b/frontend/ui/src/reducers/data/conversations/index.ts @@ -2,13 +2,13 @@ import {ActionType, getType} from 'typesafe-actions'; import {combineReducers} from 'redux'; import {cloneDeep, sortBy, merge, pickBy} from 'lodash-es'; -import {Conversation, ConversationFilter, Message} from 'httpclient'; +import {Conversation, ConversationFilter, Message} from 'model'; import * as metadataActions from '../../../actions/metadata'; import * as actions from '../../../actions/conversations'; import * as filterActions from '../../../actions/conversationsFilter'; import * as messageActions from '../../../actions/messages'; -import {MetadataEvent, ConversationMetadata} from 'httpclient'; +import {MetadataEvent, ConversationMetadata} from 'model'; type Action = ActionType | ActionType; type FilterAction = ActionType; diff --git a/frontend/ui/src/reducers/data/index.ts b/frontend/ui/src/reducers/data/index.ts index d32be727a7..7015031004 100644 --- a/frontend/ui/src/reducers/data/index.ts +++ b/frontend/ui/src/reducers/data/index.ts @@ -1,5 +1,5 @@ import _, {combineReducers, Reducer} from 'redux'; -import {User} from 'httpclient'; +import {User} from 'model'; import {Tags} from './tags'; import {Settings} from './settings'; import {Templates} from './templates'; diff --git a/frontend/ui/src/reducers/data/messages/index.ts b/frontend/ui/src/reducers/data/messages/index.ts index 5dc6d42b27..67a38d05b0 100644 --- a/frontend/ui/src/reducers/data/messages/index.ts +++ b/frontend/ui/src/reducers/data/messages/index.ts @@ -1,7 +1,7 @@ import {ActionType, getType} from 'typesafe-actions'; import * as actions from '../../../actions/messages'; import * as metadataActions from '../../../actions/metadata'; -import {Message, MessageMetadata} from 'httpclient'; +import {Message, MessageMetadata} from 'model'; import {cloneDeep, merge, sortBy} from 'lodash-es'; type Action = ActionType | ActionType; diff --git a/frontend/ui/src/reducers/data/tags/index.ts b/frontend/ui/src/reducers/data/tags/index.ts index 0ad237a7ba..1c782edb95 100644 --- a/frontend/ui/src/reducers/data/tags/index.ts +++ b/frontend/ui/src/reducers/data/tags/index.ts @@ -1,6 +1,6 @@ import {ActionType, getType} from 'typesafe-actions'; import * as actions from '../../../actions/tags'; -import {Tag} from 'httpclient'; +import {Tag} from 'model'; import {DataState} from '../../data'; type Action = ActionType; diff --git a/frontend/ui/src/reducers/data/templates/index.ts b/frontend/ui/src/reducers/data/templates/index.ts index c0cc0f3d6c..bbe57e67e0 100644 --- a/frontend/ui/src/reducers/data/templates/index.ts +++ b/frontend/ui/src/reducers/data/templates/index.ts @@ -1,6 +1,6 @@ import {ActionType, getType} from 'typesafe-actions'; import * as actions from '../../../actions/templates'; -import {Template} from 'httpclient'; +import {Template} from 'model'; import {DataState} from '../../data'; type Action = ActionType; diff --git a/frontend/ui/src/reducers/data/user/index.ts b/frontend/ui/src/reducers/data/user/index.ts index 8d21abd4e3..f1a4edc600 100644 --- a/frontend/ui/src/reducers/data/user/index.ts +++ b/frontend/ui/src/reducers/data/user/index.ts @@ -1,6 +1,6 @@ import {ActionType, getType} from 'typesafe-actions'; import * as actions from '../../../actions/user'; -import {User} from 'httpclient'; +import {User} from 'model'; import {getUserFromStore, storeUserData} from '../../../cookies'; type Action = ActionType; diff --git a/frontend/ui/src/selectors/conversations.ts b/frontend/ui/src/selectors/conversations.ts index eb994dd066..ea73408af4 100644 --- a/frontend/ui/src/selectors/conversations.ts +++ b/frontend/ui/src/selectors/conversations.ts @@ -1,6 +1,6 @@ import _, {createSelector} from 'reselect'; import {filter, pickBy, reverse, sortBy, values} from 'lodash-es'; -import {Conversation} from 'httpclient'; +import {Conversation} from 'model'; import {MergedConversation, StateModel} from '../reducers'; import {ConversationMap} from '../reducers/data/conversations'; import {ConversationRouteProps} from '../pages/Inbox'; diff --git a/frontend/ui/src/selectors/tags.ts b/frontend/ui/src/selectors/tags.ts index 50d22f60ed..8e492ed972 100644 --- a/frontend/ui/src/selectors/tags.ts +++ b/frontend/ui/src/selectors/tags.ts @@ -1,6 +1,6 @@ import _redux from 'redux'; import _, {createSelector} from 'reselect'; -import {Tag} from 'httpclient'; +import {Tag} from 'model'; import {StateModel} from '../reducers'; const tags = (state: StateModel) => state.data.tags.all; diff --git a/frontend/ui/src/services/format/date.ts b/frontend/ui/src/services/format/date.ts index 6dbb872196..65fd402252 100644 --- a/frontend/ui/src/services/format/date.ts +++ b/frontend/ui/src/services/format/date.ts @@ -1,4 +1,4 @@ -import {Message} from 'httpclient'; +import {Message} from 'model'; export function dateFormat(date: Date) { const now = new Date(); diff --git a/frontend/ui/src/services/types/messageTypes.ts b/frontend/ui/src/services/types/messageTypes.ts index 18024053a3..32e065291b 100644 --- a/frontend/ui/src/services/types/messageTypes.ts +++ b/frontend/ui/src/services/types/messageTypes.ts @@ -1,4 +1,4 @@ -import {Content} from 'httpclient'; +import {Content} from 'model'; export const isTextMessage = (content: Content) => { if ( diff --git a/lib/typescript/httpclient/BUILD b/lib/typescript/httpclient/BUILD index 4d08cf05e5..5d12a453f0 100644 --- a/lib/typescript/httpclient/BUILD +++ b/lib/typescript/httpclient/BUILD @@ -7,6 +7,7 @@ package(default_visibility = ["//visibility:public"]) ts_web_library( name = "httpclient", deps = [ + "//lib/typescript/model", "//lib/typescript/types", "@npm//@types/node", "@npm//camelcase-keys", diff --git a/lib/typescript/httpclient/client.ts b/lib/typescript/httpclient/client.ts index 0be130c911..98b47d1705 100644 --- a/lib/typescript/httpclient/client.ts +++ b/lib/typescript/httpclient/client.ts @@ -17,7 +17,7 @@ import { PaginatedResponse, } from './payload'; -import {Tag, Message, Channel, User, Conversation, Config, Template} from './model'; +import {Tag, Message, Channel, User, Conversation, Config, Template} from 'model'; function isString(object: any) { return typeof object === 'string' || object instanceof String; diff --git a/lib/typescript/httpclient/endpoints/createTag.ts b/lib/typescript/httpclient/endpoints/createTag.ts index 1e90265dc9..23b942fd3f 100644 --- a/lib/typescript/httpclient/endpoints/createTag.ts +++ b/lib/typescript/httpclient/endpoints/createTag.ts @@ -1,6 +1,6 @@ import {CreateTagRequestPayload} from '../payload'; import {HttpClient} from '../client'; -import {TagColor} from '../model'; +import {TagColor} from 'model'; export default HttpClient.prototype.createTag = async function createTag(requestPayload: CreateTagRequestPayload) { const response = await this.doFetchFromBackend('tags.create', requestPayload); diff --git a/lib/typescript/httpclient/endpoints/listConversations.ts b/lib/typescript/httpclient/endpoints/listConversations.ts index a9de42a087..d164ff4b10 100644 --- a/lib/typescript/httpclient/endpoints/listConversations.ts +++ b/lib/typescript/httpclient/endpoints/listConversations.ts @@ -2,7 +2,7 @@ import {PaginatedPayload, ListConversationsRequestPayload} from '../payload'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); import {HttpClient} from '../client'; -import {mapMessage} from '../model'; +import {mapMessage} from 'model'; export default HttpClient.prototype.listConversations = async function ( conversationListRequest: ListConversationsRequestPayload diff --git a/lib/typescript/httpclient/endpoints/listMessages.ts b/lib/typescript/httpclient/endpoints/listMessages.ts index ddf0d78f75..eb5e352818 100644 --- a/lib/typescript/httpclient/endpoints/listMessages.ts +++ b/lib/typescript/httpclient/endpoints/listMessages.ts @@ -1,6 +1,6 @@ import {ListMessagesRequestPayload, PaginatedPayload} from '../payload'; import {HttpClient} from '../client'; -import {mapMessage} from '../model'; +import {mapMessage} from 'model'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); diff --git a/lib/typescript/httpclient/endpoints/sendMessages.ts b/lib/typescript/httpclient/endpoints/sendMessages.ts index caa099b812..500a541006 100644 --- a/lib/typescript/httpclient/endpoints/sendMessages.ts +++ b/lib/typescript/httpclient/endpoints/sendMessages.ts @@ -1,6 +1,6 @@ import {SendMessagesRequestPayload} from '../payload'; import {HttpClient} from '../client'; -import {mapMessage} from '../model'; +import {mapMessage} from 'model'; export default HttpClient.prototype.sendMessages = async function (requestPayload: SendMessagesRequestPayload) { const response = await this.doFetchFromBackend('messages.send', { diff --git a/lib/typescript/httpclient/endpoints/updateTag.ts b/lib/typescript/httpclient/endpoints/updateTag.ts index 044076f811..7c26fd1e5a 100644 --- a/lib/typescript/httpclient/endpoints/updateTag.ts +++ b/lib/typescript/httpclient/endpoints/updateTag.ts @@ -1,4 +1,4 @@ -import {Tag} from '../model'; +import {Tag} from 'model'; import {HttpClient} from '../client'; export default HttpClient.prototype.updateTag = function (tag: Tag) { diff --git a/lib/typescript/httpclient/index.ts b/lib/typescript/httpclient/index.ts index 56b86e9d10..f00d65a2ea 100644 --- a/lib/typescript/httpclient/index.ts +++ b/lib/typescript/httpclient/index.ts @@ -1,5 +1,4 @@ export * from './endpoints'; export * from './client'; -export * from './model'; export * from './payload'; export * from './messagesForChannels'; diff --git a/lib/typescript/httpclient/payload/ListTemplatesRequestPayload.ts b/lib/typescript/httpclient/payload/ListTemplatesRequestPayload.ts index f81baaf1dd..600dc30c10 100644 --- a/lib/typescript/httpclient/payload/ListTemplatesRequestPayload.ts +++ b/lib/typescript/httpclient/payload/ListTemplatesRequestPayload.ts @@ -1,4 +1,4 @@ -import {Source} from '../model/Source'; +import {Source} from 'model/Source'; export interface ListTemplatesRequestPayload { name?: string; diff --git a/lib/typescript/httpclient/payload/PaginatedResponse.ts b/lib/typescript/httpclient/payload/PaginatedResponse.ts index 38d44c278f..f9281addc6 100644 --- a/lib/typescript/httpclient/payload/PaginatedResponse.ts +++ b/lib/typescript/httpclient/payload/PaginatedResponse.ts @@ -1,4 +1,4 @@ -import {Pagination} from '../model/Pagination'; +import {Pagination} from 'model/Pagination'; export interface PaginatedResponse { data: T[]; diff --git a/lib/typescript/model/BUILD b/lib/typescript/model/BUILD new file mode 100644 index 0000000000..e018daf13e --- /dev/null +++ b/lib/typescript/model/BUILD @@ -0,0 +1,17 @@ +load("//tools/lint:web.bzl", "web_lint") +load("@com_github_airyhq_bazel_tools//lint:buildifier.bzl", "check_pkg") +load("@com_github_airyhq_bazel_tools//web:typescript.bzl", "ts_web_library") + +package(default_visibility = ["//visibility:public"]) + +ts_web_library( + name = "model", + deps = [ + "//lib/typescript/types", + "@npm//@types/node", + ], +) + +check_pkg(name = "buildifier") + +web_lint() diff --git a/lib/typescript/httpclient/model/Channel.ts b/lib/typescript/model/Channel.ts similarity index 100% rename from lib/typescript/httpclient/model/Channel.ts rename to lib/typescript/model/Channel.ts diff --git a/lib/typescript/httpclient/model/Config.ts b/lib/typescript/model/Config.ts similarity index 100% rename from lib/typescript/httpclient/model/Config.ts rename to lib/typescript/model/Config.ts diff --git a/lib/typescript/httpclient/model/Contact.ts b/lib/typescript/model/Contact.ts similarity index 100% rename from lib/typescript/httpclient/model/Contact.ts rename to lib/typescript/model/Contact.ts diff --git a/lib/typescript/httpclient/model/Content.ts b/lib/typescript/model/Content.ts similarity index 100% rename from lib/typescript/httpclient/model/Content.ts rename to lib/typescript/model/Content.ts diff --git a/lib/typescript/httpclient/model/Conversation.ts b/lib/typescript/model/Conversation.ts similarity index 100% rename from lib/typescript/httpclient/model/Conversation.ts rename to lib/typescript/model/Conversation.ts diff --git a/lib/typescript/httpclient/model/ConversationFilter.ts b/lib/typescript/model/ConversationFilter.ts similarity index 100% rename from lib/typescript/httpclient/model/ConversationFilter.ts rename to lib/typescript/model/ConversationFilter.ts diff --git a/lib/typescript/httpclient/model/Message.ts b/lib/typescript/model/Message.ts similarity index 100% rename from lib/typescript/httpclient/model/Message.ts rename to lib/typescript/model/Message.ts diff --git a/lib/typescript/httpclient/model/Metadata.ts b/lib/typescript/model/Metadata.ts similarity index 100% rename from lib/typescript/httpclient/model/Metadata.ts rename to lib/typescript/model/Metadata.ts diff --git a/lib/typescript/httpclient/model/Pagination.ts b/lib/typescript/model/Pagination.ts similarity index 100% rename from lib/typescript/httpclient/model/Pagination.ts rename to lib/typescript/model/Pagination.ts diff --git a/lib/typescript/httpclient/model/Source.ts b/lib/typescript/model/Source.ts similarity index 100% rename from lib/typescript/httpclient/model/Source.ts rename to lib/typescript/model/Source.ts diff --git a/lib/typescript/httpclient/model/Tag.ts b/lib/typescript/model/Tag.ts similarity index 100% rename from lib/typescript/httpclient/model/Tag.ts rename to lib/typescript/model/Tag.ts diff --git a/lib/typescript/httpclient/model/Template.ts b/lib/typescript/model/Template.ts similarity index 100% rename from lib/typescript/httpclient/model/Template.ts rename to lib/typescript/model/Template.ts diff --git a/lib/typescript/httpclient/model/User.ts b/lib/typescript/model/User.ts similarity index 100% rename from lib/typescript/httpclient/model/User.ts rename to lib/typescript/model/User.ts diff --git a/lib/typescript/httpclient/model/index.ts b/lib/typescript/model/index.ts similarity index 100% rename from lib/typescript/httpclient/model/index.ts rename to lib/typescript/model/index.ts diff --git a/lib/typescript/render/BUILD b/lib/typescript/render/BUILD index 9832fc4e7f..e5272b075b 100644 --- a/lib/typescript/render/BUILD +++ b/lib/typescript/render/BUILD @@ -7,9 +7,9 @@ package(default_visibility = ["//visibility:public"]) ts_web_library( name = "render", deps = [ - "//frontend/assets", + "//frontend/assets", #TODO FIX ME "//lib/typescript/dates", - "//lib/typescript/httpclient", + "//lib/typescript/model", "//lib/typescript/types", "@npm//@airyhq/components", "@npm//@types/node", diff --git a/lib/typescript/render/components/Avatar/index.tsx b/lib/typescript/render/components/Avatar/index.tsx index 7beaef5fe1..c51441e03f 100644 --- a/lib/typescript/render/components/Avatar/index.tsx +++ b/lib/typescript/render/components/Avatar/index.tsx @@ -1,5 +1,5 @@ import React, {SyntheticEvent} from 'react'; -import {Contact} from 'httpclient'; +import {Contact} from 'model'; import styles from './index.module.scss'; type AvatarProps = { diff --git a/lib/typescript/render/components/MessageInfoWrapper/index.tsx b/lib/typescript/render/components/MessageInfoWrapper/index.tsx index a51b34191f..3e2593023b 100644 --- a/lib/typescript/render/components/MessageInfoWrapper/index.tsx +++ b/lib/typescript/render/components/MessageInfoWrapper/index.tsx @@ -1,6 +1,6 @@ import React, {ReactNode} from 'react'; import {Avatar} from '../Avatar'; -import {Contact} from 'httpclient'; +import {Contact} from 'model'; import {DefaultRenderingProps} from '../../components/index'; import styles from './index.module.scss'; diff --git a/lib/typescript/render/components/RichText/index.tsx b/lib/typescript/render/components/RichText/index.tsx index 191fa8a6d0..13a7964688 100644 --- a/lib/typescript/render/components/RichText/index.tsx +++ b/lib/typescript/render/components/RichText/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; import ReactMarkdown from 'react-markdown'; -import {RenderedContentUnion} from 'httpclient'; +import {RenderedContentUnion} from 'model'; import styles from './index.module.scss'; import {DefaultRenderingProps} from '..'; diff --git a/lib/typescript/render/props.ts b/lib/typescript/render/props.ts index cbfb652cdf..f348cf5108 100644 --- a/lib/typescript/render/props.ts +++ b/lib/typescript/render/props.ts @@ -1,4 +1,4 @@ -import {isFromContact, RenderedContentUnion} from 'httpclient'; +import {isFromContact, RenderedContentUnion} from 'model'; import {DefaultRenderingProps} from './components'; export interface Command { diff --git a/lib/typescript/render/providers/chatplugin/ChatPluginRender.tsx b/lib/typescript/render/providers/chatplugin/ChatPluginRender.tsx index de7790604a..07a4fd35f8 100644 --- a/lib/typescript/render/providers/chatplugin/ChatPluginRender.tsx +++ b/lib/typescript/render/providers/chatplugin/ChatPluginRender.tsx @@ -5,7 +5,7 @@ import {RichCard} from '../../components/RichCard'; import {RichCardCarousel} from '../../components/RichCardCarousel'; import {Text} from '../../components/Text'; import {ContentUnion} from './chatPluginModel'; -import {RenderedContentUnion} from 'httpclient'; +import {RenderedContentUnion} from 'model'; export const ChatPluginRender = (props: RenderPropsUnion) => { return render(mapContent(props.content), props); diff --git a/lib/typescript/render/providers/facebook/FacebookRender.tsx b/lib/typescript/render/providers/facebook/FacebookRender.tsx index d916a31b98..62283e4d09 100644 --- a/lib/typescript/render/providers/facebook/FacebookRender.tsx +++ b/lib/typescript/render/providers/facebook/FacebookRender.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import {isFromContact, RenderedContentUnion} from 'httpclient'; +import {isFromContact, RenderedContentUnion} from 'model'; import {getDefaultRenderingProps, RenderPropsUnion} from '../../props'; import {Text} from '../../components/Text'; import {Image} from '../../components/Image'; diff --git a/lib/typescript/render/providers/google/GoogleRender.tsx b/lib/typescript/render/providers/google/GoogleRender.tsx index d7b6959638..4ee6baa44f 100644 --- a/lib/typescript/render/providers/google/GoogleRender.tsx +++ b/lib/typescript/render/providers/google/GoogleRender.tsx @@ -5,7 +5,7 @@ import {Text} from '../../components/Text'; import {RichCard} from '../../components/RichCard'; import {RichCardCarousel} from '../../components/RichCardCarousel'; import {ContentUnion} from './googleModel'; -import {RenderedContentUnion, isFromContact} from 'httpclient'; +import {RenderedContentUnion, isFromContact} from 'model'; import {Image} from '../../components/Image'; export const GoogleRender = (props: RenderPropsUnion) => { diff --git a/lib/typescript/render/providers/twilio/twilioSMS/TwilioSMSRender.tsx b/lib/typescript/render/providers/twilio/twilioSMS/TwilioSMSRender.tsx index 5ce23980d5..c9987487b7 100644 --- a/lib/typescript/render/providers/twilio/twilioSMS/TwilioSMSRender.tsx +++ b/lib/typescript/render/providers/twilio/twilioSMS/TwilioSMSRender.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import {isFromContact, RenderedContentUnion} from 'httpclient'; +import {isFromContact, RenderedContentUnion} from 'model'; import {Text} from '../../../components/Text'; import {getDefaultRenderingProps, RenderPropsUnion} from '../../../props'; import {ContentUnion} from './twilioSMSModel'; diff --git a/lib/typescript/render/providers/twilio/twilioWhatsapp/TwilioWhatsappRender.tsx b/lib/typescript/render/providers/twilio/twilioWhatsapp/TwilioWhatsappRender.tsx index e5d7a5264e..1ea20ffc00 100644 --- a/lib/typescript/render/providers/twilio/twilioWhatsapp/TwilioWhatsappRender.tsx +++ b/lib/typescript/render/providers/twilio/twilioWhatsapp/TwilioWhatsappRender.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import {isFromContact, RenderedContentUnion} from 'httpclient'; +import {isFromContact, RenderedContentUnion} from 'model'; import {Text} from '../../../components/Text'; import {getDefaultRenderingProps, RenderPropsUnion} from '../../../props'; import {ContentUnion} from './twilioWhatsappModel'; diff --git a/lib/typescript/websocketclient/BUILD b/lib/typescript/websocketclient/BUILD index 0a81e5cbbb..5ddd48c73d 100644 --- a/lib/typescript/websocketclient/BUILD +++ b/lib/typescript/websocketclient/BUILD @@ -7,7 +7,7 @@ package(default_visibility = ["//visibility:public"]) ts_web_library( name = "websocketclient", deps = [ - "//lib/typescript/httpclient", + "//lib/typescript/model", "//lib/typescript/types", "@npm//@stomp/stompjs", "@npm//@types/node", diff --git a/lib/typescript/websocketclient/index.ts b/lib/typescript/websocketclient/index.ts index a86531b611..20734c25f6 100644 --- a/lib/typescript/websocketclient/index.ts +++ b/lib/typescript/websocketclient/index.ts @@ -1,5 +1,5 @@ import {StompWrapper} from './stompWrapper'; -import {Message, Channel, MetadataEvent} from 'httpclient'; +import {Message, Channel, MetadataEvent} from 'model'; import {EventPayloadUnion} from './payload'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); diff --git a/lib/typescript/websocketclient/payload.ts b/lib/typescript/websocketclient/payload.ts index 0374a9604a..1a76fb027b 100644 --- a/lib/typescript/websocketclient/payload.ts +++ b/lib/typescript/websocketclient/payload.ts @@ -1,4 +1,4 @@ -import {MessageState, Metadata, MetadataEvent} from 'httpclient'; +import {MessageState, Metadata, MetadataEvent} from 'model'; interface Event { type: 'message' | 'channel' | 'metadata'; From 6c2e1998cc9eec051acddadc5445377632edb8a5 Mon Sep 17 00:00:00 2001 From: Paulo Diniz Date: Thu, 8 Apr 2021 15:46:00 +0200 Subject: [PATCH 11/33] [#572] Cleanup senderType code (#1490) --- .../main/java/co/airy/core/api/communication/Stores.java | 5 ++--- .../api/communication/SendMessageControllerTest.java | 3 +-- .../java/co/airy/model/message/MessageRepository.java | 9 --------- .../src/main/java/co/airy/core/chat_plugin/Stores.java | 5 ++--- .../main/java/co/airy/core/sources/facebook/Stores.java | 3 +-- .../main/java/co/airy/core/sources/google/Stores.java | 3 +-- .../main/java/co/airy/core/sources/twilio/Stores.java | 3 +-- 7 files changed, 8 insertions(+), 23 deletions(-) diff --git a/backend/api/communication/src/main/java/co/airy/core/api/communication/Stores.java b/backend/api/communication/src/main/java/co/airy/core/api/communication/Stores.java index 4393e8c0c3..f4c055a003 100644 --- a/backend/api/communication/src/main/java/co/airy/core/api/communication/Stores.java +++ b/backend/api/communication/src/main/java/co/airy/core/api/communication/Stores.java @@ -49,7 +49,6 @@ import java.util.Optional; import java.util.concurrent.ExecutionException; -import static co.airy.model.message.MessageRepository.isFromContact; import static co.airy.model.metadata.MetadataRepository.getId; import static co.airy.model.metadata.MetadataRepository.getSubject; import static co.airy.model.metadata.MetadataRepository.isChannelMetadata; @@ -105,7 +104,7 @@ private void startStream() { // produce unread count metadata messageStream.selectKey((messageId, message) -> message.getConversationId()) - .filter((conversationId, message) -> isFromContact(message)) + .filter((conversationId, message) -> message.getIsFromContact()) .mapValues(message -> CountAction.increment(message.getSentAt())) .merge(resetStream) .groupByKey() @@ -161,7 +160,7 @@ private void startStream() { aggregate.setLastMessageContainer(container); } - if (isFromContact(container.getMessage())) { + if (container.getMessage().getIsFromContact()) { aggregate.setSourceConversationId(container.getMessage().getSenderId()); } diff --git a/backend/api/communication/src/test/java/co/airy/core/api/communication/SendMessageControllerTest.java b/backend/api/communication/src/test/java/co/airy/core/api/communication/SendMessageControllerTest.java index e38bb9b5aa..395a146dd2 100644 --- a/backend/api/communication/src/test/java/co/airy/core/api/communication/SendMessageControllerTest.java +++ b/backend/api/communication/src/test/java/co/airy/core/api/communication/SendMessageControllerTest.java @@ -31,7 +31,6 @@ import static co.airy.core.api.communication.util.Topics.applicationCommunicationChannels; import static co.airy.core.api.communication.util.Topics.applicationCommunicationMessages; import static co.airy.core.api.communication.util.Topics.getTopics; -import static co.airy.model.message.MessageRepository.isFromAiry; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.collection.IsCollectionWithSize.hasSize; @@ -99,7 +98,7 @@ void canSendTextMessages() throws Exception { final Optional maybeMessage = records.stream() .map(ConsumerRecord::value) - .filter(message -> isFromAiry(message) && message.getId().equals(messageId)) + .filter(message -> !message.getIsFromContact() && message.getId().equals(messageId)) .findFirst(); if (maybeMessage.isEmpty()) { diff --git a/backend/model/message/src/main/java/co/airy/model/message/MessageRepository.java b/backend/model/message/src/main/java/co/airy/model/message/MessageRepository.java index 1ca7200f93..2838def7b8 100644 --- a/backend/model/message/src/main/java/co/airy/model/message/MessageRepository.java +++ b/backend/model/message/src/main/java/co/airy/model/message/MessageRepository.java @@ -20,15 +20,6 @@ public static boolean isNewMessage(Message message) { return message.getUpdatedAt() == null; } - // In preparation for https://github.com/airyhq/airy/issues/572 - public static boolean isFromContact(Message message) { - return message.getIsFromContact(); - } - - public static boolean isFromAiry(Message message) { - return !message.getIsFromContact(); - } - public static Object resolveContent(Message message) { return resolveContent(message, new MetadataMap()); } diff --git a/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/Stores.java b/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/Stores.java index 86595f0417..69f510ff0a 100644 --- a/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/Stores.java +++ b/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/Stores.java @@ -28,7 +28,6 @@ import java.util.List; import java.util.concurrent.ExecutionException; -import static co.airy.model.message.MessageRepository.isFromContact; import static co.airy.model.message.MessageRepository.updateDeliveryState; @Component @@ -66,11 +65,11 @@ private void startStream() { }), Materialized.as(messagesStore)); // Client Echoes - messageStream.filter((messageId, message) -> isFromContact(message)) + messageStream.filter((messageId, message) -> message.getIsFromContact()) .peek((messageId, message) -> webSocketController.onNewMessage(message)); // Runtime Outbound - messageStream.filter((messageId, message) -> !isFromContact(message) + messageStream.filter((messageId, message) -> !message.getIsFromContact() && message.getDeliveryState().equals(DeliveryState.PENDING) ) .mapValues((messageId, message) -> { diff --git a/backend/sources/facebook/connector/src/main/java/co/airy/core/sources/facebook/Stores.java b/backend/sources/facebook/connector/src/main/java/co/airy/core/sources/facebook/Stores.java index 7379b83269..7655edf616 100644 --- a/backend/sources/facebook/connector/src/main/java/co/airy/core/sources/facebook/Stores.java +++ b/backend/sources/facebook/connector/src/main/java/co/airy/core/sources/facebook/Stores.java @@ -34,7 +34,6 @@ import java.util.Optional; import java.util.concurrent.ExecutionException; -import static co.airy.model.message.MessageRepository.isFromContact; import static co.airy.model.metadata.MetadataRepository.getId; import static co.airy.model.metadata.MetadataRepository.getSubject; import static co.airy.model.metadata.MetadataRepository.isConversationMetadata; @@ -92,7 +91,7 @@ public void onApplicationEvent(ApplicationStartedEvent applicationStartedEvent) .aggregate(Conversation::new, (conversationId, message, conversation) -> { final Conversation.ConversationBuilder conversationBuilder = conversation.toBuilder(); - if (isFromContact(message)) { + if (message.getIsFromContact()) { conversationBuilder.sourceConversationId(message.getSenderId()); } conversationBuilder.channelId(message.getChannelId()); diff --git a/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/Stores.java b/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/Stores.java index b542718934..c3db17726d 100644 --- a/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/Stores.java +++ b/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/Stores.java @@ -28,7 +28,6 @@ import java.util.concurrent.ExecutionException; -import static co.airy.model.message.MessageRepository.isFromContact; import static co.airy.model.metadata.MetadataRepository.getId; @Component @@ -62,7 +61,7 @@ public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) { .aggregate(SendMessageRequest::new, (conversationId, message, aggregate) -> { final SendMessageRequest.SendMessageRequestBuilder requestBuilder = aggregate.toBuilder(); - if (isFromContact(message)) { + if (message.getIsFromContact()) { requestBuilder.sourceConversationId(message.getSenderId()); } return requestBuilder.build(); diff --git a/backend/sources/twilio/connector/src/main/java/co/airy/core/sources/twilio/Stores.java b/backend/sources/twilio/connector/src/main/java/co/airy/core/sources/twilio/Stores.java index 10b61572ce..2e0eeea6fb 100644 --- a/backend/sources/twilio/connector/src/main/java/co/airy/core/sources/twilio/Stores.java +++ b/backend/sources/twilio/connector/src/main/java/co/airy/core/sources/twilio/Stores.java @@ -29,7 +29,6 @@ import java.util.concurrent.ExecutionException; -import static co.airy.model.message.MessageRepository.isFromContact; import static co.airy.model.metadata.MetadataRepository.getId; @Component @@ -72,7 +71,7 @@ public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) { .aggregate(SendMessageRequest::new, (conversationId, message, aggregate) -> { SendMessageRequest.SendMessageRequestBuilder sendMessageRequestBuilder = aggregate.toBuilder(); - if (isFromContact(message)) { + if (message.getIsFromContact()) { sendMessageRequestBuilder.sourceConversationId(message.getSenderId()); } From ee2292e0322bc275e98d13a3a6e819d8e2edc0e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Apr 2021 16:16:58 +0200 Subject: [PATCH 12/33] Bump cypress from 7.0.0 to 7.0.1 (#1481) Bumps [cypress](https://github.com/cypress-io/cypress) from 7.0.0 to 7.0.1. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js) - [Commits](https://github.com/cypress-io/cypress/compare/v7.0.0...v7.0.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8f6d04e679..162726dae1 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "connect-history-api-fallback": "^1.6.0", "copy-webpack-plugin": "^8.1.1", "css-loader": "^5.2.0", - "cypress": "^7.0.0", + "cypress": "^7.0.1", "eslint": "^7.23.0", "eslint-plugin-react": "^7.23.1", "express": "^4.17.1", diff --git a/yarn.lock b/yarn.lock index d8179e5ff0..f1e9eb4903 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2439,10 +2439,10 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== -cypress@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-7.0.0.tgz#78b67a87bace1b530c123ba8d779899e676ed676" - integrity sha512-gri53gIGQPf/RoUknwvNS3alUjZwdmtp9BcKzLgyrwA/gBxJcpDLZ1t+MTvXy57ifRWEMxmEWzQe+iszCzJZqA== +cypress@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-7.0.1.tgz#8603f84d828fd4c5462a856f55cef5642e4ce573" + integrity sha512-dMZmZDo+x3jslEQiXRGQlMmMVMhe4JpMHQ6g1unMGXTUsapU1EXlnubevmKmqZ1IQpntAlDKmx8dupOTd3oW+g== dependencies: "@cypress/listr-verbose-renderer" "^0.4.1" "@cypress/request" "^2.88.5" From e104a24c4860b15b5b46c53489effdaccb8bc4d6 Mon Sep 17 00:00:00 2001 From: lucapette Date: Thu, 8 Apr 2021 16:57:37 +0200 Subject: [PATCH 13/33] [#1466] Follow up on extract model (#1493) --- lib/typescript/model/Message.ts | 6 +----- lib/typescript/model/SuggestedReply.ts | 6 ++++++ lib/typescript/model/User.ts | 10 ---------- lib/typescript/model/index.ts | 1 + 4 files changed, 8 insertions(+), 15 deletions(-) create mode 100644 lib/typescript/model/SuggestedReply.ts diff --git a/lib/typescript/model/Message.ts b/lib/typescript/model/Message.ts index cd40651b2c..9b8d74b798 100644 --- a/lib/typescript/model/Message.ts +++ b/lib/typescript/model/Message.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); import {Content} from './Content'; +import {Suggestions} from './SuggestedReply'; export enum MessageType { audio = 'audio', @@ -23,11 +24,6 @@ export interface Message extends Content { metadata?: MessageMetadata; } -export interface SuggestedReply extends Content {} -export interface Suggestions { - [suggestionId: string]: SuggestedReply; -} - export interface MessageMetadata { suggestions?: Suggestions; } diff --git a/lib/typescript/model/SuggestedReply.ts b/lib/typescript/model/SuggestedReply.ts new file mode 100644 index 0000000000..20de020038 --- /dev/null +++ b/lib/typescript/model/SuggestedReply.ts @@ -0,0 +1,6 @@ +import {Content} from './Content'; + +export interface SuggestedReply extends Content {} +export interface Suggestions { + [suggestionId: string]: SuggestedReply; +} diff --git a/lib/typescript/model/User.ts b/lib/typescript/model/User.ts index 1cf019aea9..bdeb427de9 100644 --- a/lib/typescript/model/User.ts +++ b/lib/typescript/model/User.ts @@ -9,13 +9,3 @@ export interface User { onboarded?: boolean; error?: string; } - -export enum AUTH_STATE { - NOT_AUTHENTICATED, - REFRESHING, - AUTHENTICATED_AND_LOADED, -} - -export const authState = (state: User) => { - return state.id ? AUTH_STATE.NOT_AUTHENTICATED : AUTH_STATE.REFRESHING; -}; diff --git a/lib/typescript/model/index.ts b/lib/typescript/model/index.ts index 09f58282d7..61f620cef1 100644 --- a/lib/typescript/model/index.ts +++ b/lib/typescript/model/index.ts @@ -8,6 +8,7 @@ export * from './Message'; export * from './Metadata'; export * from './Pagination'; export * from './Source'; +export * from './SuggestedReply'; export * from './Tag'; export * from './Template'; export * from './User'; From 994dc0c9e4e90cf11d95131a4ae0738adbf4f2e5 Mon Sep 17 00:00:00 2001 From: Christoph Proeschel Date: Thu, 8 Apr 2021 17:10:18 +0200 Subject: [PATCH 14/33] [#387] Fix hot module replacement for web development (#1480) --- WORKSPACE | 4 +- bazel.tsconfig.json | 11 +- frontend/chat-plugin/BUILD | 2 +- frontend/ui/BUILD | 2 +- frontend/ui/README.md | 7 + frontend/ui/development.html | 11 +- frontend/ui/src/env.ts | 1 - .../src/reducers/data/conversations/index.ts | 4 +- lib/typescript/httpclient/client.ts | 106 +- .../endpoints/connectChatPluginChannel.ts | 12 +- .../endpoints/connectFacebookChannel.ts | 23 +- .../endpoints/connectTwilioSmsChannel.ts | 20 +- .../endpoints/connectTwilioWhatsappChannel.ts | 20 +- .../httpclient/endpoints/createTag.ts | 15 +- .../httpclient/endpoints/deleteTag.ts | 8 +- .../httpclient/endpoints/disconnectChannel.ts | 11 +- .../endpoints/exploreFacebookChannels.ts | 12 +- .../httpclient/endpoints/getConfig.ts | 8 +- .../endpoints/getConversationInfo.ts | 11 +- .../httpclient/endpoints/listChannels.ts | 9 +- .../httpclient/endpoints/listConversations.ts | 35 +- .../httpclient/endpoints/listMessages.ts | 31 +- .../httpclient/endpoints/listTags.ts | 22 +- .../httpclient/endpoints/listTemplates.ts | 16 +- .../httpclient/endpoints/loginViaEmail.ts | 14 +- .../httpclient/endpoints/readConversations.ts | 8 +- .../httpclient/endpoints/sendMessages.ts | 13 +- .../httpclient/endpoints/tagConversation.ts | 15 +- .../httpclient/endpoints/untagConversation.ts | 17 +- .../httpclient/endpoints/updateChannel.ts | 12 +- .../httpclient/endpoints/updateTag.ts | 9 +- .../payload/ConnectTwilioSmsRequestPayload.ts | 2 +- package.json | 14 +- scripts/web-dev.sh | 4 +- yarn.lock | 1678 ++++++++++++++++- 35 files changed, 1877 insertions(+), 310 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index e9d463d4de..ca6646d288 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -9,9 +9,9 @@ load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") # Airy Bazel tools git_repository( name = "com_github_airyhq_bazel_tools", - commit = "777db5e4d099dc960291b1187b0d41e8e444ae77", + commit = "2577f95b79aeef4c70a6aad1805b19ec707dbfa2", remote = "https://github.com/airyhq/bazel-tools.git", - shallow_since = "1617185101 +0200", + shallow_since = "1617890651 +0200", ) load("@com_github_airyhq_bazel_tools//:repositories.bzl", "airy_bazel_tools_dependencies", "airy_jvm_deps") diff --git a/bazel.tsconfig.json b/bazel.tsconfig.json index d21021b66f..0e6fd92bef 100644 --- a/bazel.tsconfig.json +++ b/bazel.tsconfig.json @@ -16,6 +16,12 @@ "sourceMap": true, "jsx": "react", "paths": { + "assets": [ + "./frontend/assets" + ], + "assets/*": [ + "./frontend/assets/*" + ], "components": [ "./frontend/components/src" ], @@ -68,8 +74,5 @@ "./frontend/chat-plugin/handles" ] } - }, - "exclude": [ - "node_modules" - ] + } } diff --git a/frontend/chat-plugin/BUILD b/frontend/chat-plugin/BUILD index 208ee00336..dbcc89b6d5 100644 --- a/frontend/chat-plugin/BUILD +++ b/frontend/chat-plugin/BUILD @@ -24,7 +24,7 @@ web_app( "react-dom": "preact/compat", }, app_lib = ":app", - entry = "frontend/chat-plugin/src/iframe.js", + entry = "frontend/chat-plugin/src/iframe", index = ":development.html", module_deps = module_deps, output = { diff --git a/frontend/ui/BUILD b/frontend/ui/BUILD index e726269c90..93c546344f 100644 --- a/frontend/ui/BUILD +++ b/frontend/ui/BUILD @@ -46,7 +46,7 @@ web_app( name = "bundle", app_lib = ":app", dev_index = "development.html", - entry = "frontend/ui/src/index.js", + entry = "frontend/ui/src/index", index = ":index.html", module_deps = module_deps, output = { diff --git a/frontend/ui/README.md b/frontend/ui/README.md index 7903872888..4d1bba62ba 100644 --- a/frontend/ui/README.md +++ b/frontend/ui/README.md @@ -66,3 +66,10 @@ $ ./scripts/web-dev.sh //frontend/ui:bundle_server ``` After it started, open a web browser to [`localhost:8080`](http://localhost:8080). Login with the user you created above. + +The web server does not perform Typescript type checking. To do so you can either run type checks after you are done +or start another process: + +``` +$ ibazel build //frontend/ui:app +``` diff --git a/frontend/ui/development.html b/frontend/ui/development.html index b19fcedf5a..c8ab837a69 100644 --- a/frontend/ui/development.html +++ b/frontend/ui/development.html @@ -5,20 +5,13 @@ - - - - - + -

+
diff --git a/frontend/ui/src/env.ts b/frontend/ui/src/env.ts index 767a11629f..56109e155a 100644 --- a/frontend/ui/src/env.ts +++ b/frontend/ui/src/env.ts @@ -7,7 +7,6 @@ declare const window: { }; const templatedState: Env = window.AIRY_TEMPLATED_STATE || {}; - export const env: Env = { API_HOST: templatedState.API_HOST || process.env.API_HOST, }; diff --git a/frontend/ui/src/reducers/data/conversations/index.ts b/frontend/ui/src/reducers/data/conversations/index.ts index 6cf646c694..85ac7412c9 100644 --- a/frontend/ui/src/reducers/data/conversations/index.ts +++ b/frontend/ui/src/reducers/data/conversations/index.ts @@ -207,10 +207,10 @@ function allReducer( ...state.items[action.payload.identifier], metadata: { // Ensure that there is always a display name present - ...(>action.payload).metadata, + ...(action.payload as MetadataEvent).metadata, contact: { ...state.items[action.payload.identifier]?.metadata.contact, - ...(>action.payload).metadata.contact, + ...(action.payload as MetadataEvent).metadata.contact, }, }, }, diff --git a/lib/typescript/httpclient/client.ts b/lib/typescript/httpclient/client.ts index 98b47d1705..13eb013fe6 100644 --- a/lib/typescript/httpclient/client.ts +++ b/lib/typescript/httpclient/client.ts @@ -1,3 +1,4 @@ +import {Tag, Message, Channel, User, Conversation, Config, Template} from 'model'; import { ExploreChannelRequestPayload, ConnectChannelFacebookRequestPayload, @@ -16,8 +17,30 @@ import { ListTemplatesRequestPayload, PaginatedResponse, } from './payload'; - -import {Tag, Message, Channel, User, Conversation, Config, Template} from 'model'; +import { + listChannelsDef, + listConversationsDef, + exploreFacebookChannelsDef, + connectFacebookChannelDef, + connectChatPluginChannelDef, + connectTwilioSmsChannelDef, + connectTwilioWhatsappChannelDef, + updateChannelDef, + disconnectChannelDef, + getConversationInfoDef, + readConversationsDef, + listMessagesDef, + listTagsDef, + createTagDef, + loginViaEmailDef, + updateTagDef, + deleteTagDef, + tagConversationDef, + untagConversationDef, + sendMessagesDef, + getConfigDef, + listTemplatesDef, +} from './endpoints'; function isString(object: any) { return typeof object === 'string' || object instanceof String; @@ -28,13 +51,20 @@ type FetchOptions = { }; interface ApiRequest { - (requestPaylod: T): Promise; + (requestPayload: T): Promise; +} + +interface EndpointDefinition { + endpoint: string | ((requestPayload: T) => string); + mapRequest: (requestPayload: T) => any; + mapResponse: (any) => K; + opts?: FetchOptions; } export class HttpClient { public readonly apiUrlConfig?: string; public token?: string; - private unauthorizedErrorCallback?: (body: any) => void; + private readonly unauthorizedErrorCallback?: (body: any) => void; constructor(apiUrlConfig: string, token?: string, unauthorizedErrorCallback?: (body: any) => void) { this.token = token; @@ -47,7 +77,7 @@ export class HttpClient { try { return await response.json(); } catch { - // NOP + // NOOP } } @@ -92,47 +122,69 @@ export class HttpClient { return this.parseBody(response); } - public listChannels: ApiRequest; + public listChannels = this.getRequest(listChannelsDef); + + public exploreFacebookChannels = this.getRequest(exploreFacebookChannelsDef); - public exploreFacebookChannels: ApiRequest; + public connectFacebookChannel = this.getRequest( + connectFacebookChannelDef + ); - public connectFacebookChannel: ApiRequest; + public connectChatPluginChannel = this.getRequest( + connectChatPluginChannelDef + ); - public connectChatPluginChannel: ApiRequest; + public connectTwilioSmsChannel = this.getRequest(connectTwilioSmsChannelDef); - public connectTwilioSmsChannel: ApiRequest; + public connectTwilioWhatsappChannel = this.getRequest( + connectTwilioWhatsappChannelDef + ); - public connectTwilioWhatsappChannel: ApiRequest; + public updateChannel = this.getRequest(updateChannelDef); - public updateChannel: ApiRequest; + public disconnectChannel = this.getRequest(disconnectChannelDef); - public disconnectChannel: ApiRequest; + public listConversations: ApiRequest< + ListConversationsRequestPayload, + PaginatedResponse + > = this.getRequest(listConversationsDef); - public listConversations: ApiRequest>; + public getConversationInfo = this.getRequest(getConversationInfoDef); - public getConversationInfo: ApiRequest; + public readConversations = this.getRequest(readConversationsDef); - public readConversations: ApiRequest; + public listMessages = this.getRequest>(listMessagesDef); - public listMessages: ApiRequest>; + public listTags = this.getRequest(listTagsDef); - public listTags: ApiRequest; + public createTag = this.getRequest(createTagDef); - public createTag: ApiRequest; + public updateTag = this.getRequest(updateTagDef); - public updateTag: ApiRequest; + public deleteTag = this.getRequest(deleteTagDef); - public deleteTag: ApiRequest; + public loginViaEmail = this.getRequest(loginViaEmailDef); - public loginViaEmail: ApiRequest; + public tagConversation = this.getRequest(tagConversationDef); - public tagConversation: ApiRequest; + public untagConversation = this.getRequest(untagConversationDef); - public untagConversation: ApiRequest; + public sendMessages = this.getRequest(sendMessagesDef); - public sendMessages: ApiRequest; + public getConfig = this.getRequest(getConfigDef); - public getConfig: ApiRequest; + public listTemplates = this.getRequest(listTemplatesDef); - public listTemplates: ApiRequest; + private getRequest({ + endpoint, + mapRequest, + mapResponse, + opts, + }: EndpointDefinition): ApiRequest { + return async (requestPayload: K) => { + endpoint = typeof endpoint === 'string' ? endpoint : endpoint(requestPayload); + const response = await this.doFetchFromBackend(endpoint, mapRequest(requestPayload), opts); + return mapResponse(response); + }; + } } diff --git a/lib/typescript/httpclient/endpoints/connectChatPluginChannel.ts b/lib/typescript/httpclient/endpoints/connectChatPluginChannel.ts index ec731dda54..5d32de011e 100644 --- a/lib/typescript/httpclient/endpoints/connectChatPluginChannel.ts +++ b/lib/typescript/httpclient/endpoints/connectChatPluginChannel.ts @@ -1,12 +1,8 @@ -import {ConnectChatPluginRequestPayload} from '../payload'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {HttpClient} from '../client'; -export default HttpClient.prototype.connectChatPluginChannel = async function ( - requestPayload: ConnectChatPluginRequestPayload -) { - const response = await this.doFetchFromBackend('channels.chatplugin.connect', camelcaseKeys(requestPayload)); - - return camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}); +export const connectChatPluginChannelDef = { + endpoint: 'channels.chatplugin.connect', + mapRequest: req => req, + mapResponse: response => camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/connectFacebookChannel.ts b/lib/typescript/httpclient/endpoints/connectFacebookChannel.ts index 9e3f4e488c..4d33aa83a8 100644 --- a/lib/typescript/httpclient/endpoints/connectFacebookChannel.ts +++ b/lib/typescript/httpclient/endpoints/connectFacebookChannel.ts @@ -1,18 +1,13 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {ConnectChannelFacebookRequestPayload} from '../payload'; -import {HttpClient} from '../client'; - -export default HttpClient.prototype.connectFacebookChannel = async function ( - requestPayload: ConnectChannelFacebookRequestPayload -) { - const response = await this.doFetchFromBackend('channels.facebook.connect', { - page_id: requestPayload.pageId, - page_token: requestPayload.pageToken, - name: requestPayload.name, - image_url: requestPayload.imageUrl, - }); - - return camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}); +export const connectFacebookChannelDef = { + endpoint: 'channels.facebook.connect', + mapRequest: ({pageId, pageToken, name, imageUrl}) => ({ + page_id: pageId, + page_token: pageToken, + name: name, + image_url: imageUrl, + }), + mapResponse: response => camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/connectTwilioSmsChannel.ts b/lib/typescript/httpclient/endpoints/connectTwilioSmsChannel.ts index ac461fefe3..3ca5ba5433 100644 --- a/lib/typescript/httpclient/endpoints/connectTwilioSmsChannel.ts +++ b/lib/typescript/httpclient/endpoints/connectTwilioSmsChannel.ts @@ -1,16 +1,12 @@ -import {ConnectTwilioSmsRequestPayload} from '../payload'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {HttpClient} from '../client'; -export default HttpClient.prototype.connectTwilioSmsChannel = async function ( - requestPayload: ConnectTwilioSmsRequestPayload -) { - const response = await this.doFetchFromBackend('channels.twilio.sms.connect', { - phone_number: requestPayload.sourceChannelId, - name: requestPayload.name, - image_url: requestPayload.imageUrl, - }); - - return camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}); +export const connectTwilioSmsChannelDef = { + endpoint: 'channels.twilio.sms.connect', + mapRequest: ({sourceChannelId, name, imageUrl}) => ({ + phone_number: sourceChannelId, + name, + image_url: imageUrl, + }), + mapResponse: response => camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/connectTwilioWhatsappChannel.ts b/lib/typescript/httpclient/endpoints/connectTwilioWhatsappChannel.ts index 440ef8fefa..ffbb3f1753 100644 --- a/lib/typescript/httpclient/endpoints/connectTwilioWhatsappChannel.ts +++ b/lib/typescript/httpclient/endpoints/connectTwilioWhatsappChannel.ts @@ -1,16 +1,12 @@ -import {ConnectTwilioWhatsappRequestPayload} from '../payload'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {HttpClient} from '../client'; -export default HttpClient.prototype.connectTwilioWhatsappChannel = async function ( - requestPayload: ConnectTwilioWhatsappRequestPayload -) { - const response = await this.doFetchFromBackend('channels.twilio.whatsapp.connect', { - phone_number: requestPayload.sourceChannelId, - name: requestPayload.name, - image_url: requestPayload.imageUrl, - }); - - return camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}); +export const connectTwilioWhatsappChannelDef = { + endpoint: 'channels.twilio.whatsapp.connect', + mapRequest: ({sourceChannelId, name, imageUrl}) => ({ + phone_number: sourceChannelId, + name, + image_url: imageUrl, + }), + mapResponse: response => camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/createTag.ts b/lib/typescript/httpclient/endpoints/createTag.ts index 23b942fd3f..1eb21242df 100644 --- a/lib/typescript/httpclient/endpoints/createTag.ts +++ b/lib/typescript/httpclient/endpoints/createTag.ts @@ -1,12 +1,5 @@ -import {CreateTagRequestPayload} from '../payload'; -import {HttpClient} from '../client'; -import {TagColor} from 'model'; - -export default HttpClient.prototype.createTag = async function createTag(requestPayload: CreateTagRequestPayload) { - const response = await this.doFetchFromBackend('tags.create', requestPayload); - return { - id: response.id, - name: requestPayload.name, - color: requestPayload.color as TagColor, - }; +export const createTagDef = { + endpoint: 'tags.create', + mapRequest: req => req, + mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/deleteTag.ts b/lib/typescript/httpclient/endpoints/deleteTag.ts index 9d5c5a8f4a..219638ff75 100644 --- a/lib/typescript/httpclient/endpoints/deleteTag.ts +++ b/lib/typescript/httpclient/endpoints/deleteTag.ts @@ -1,5 +1,5 @@ -import {HttpClient} from '../client'; - -export default HttpClient.prototype.deleteTag = function deleteTag(id: string) { - return this.doFetchFromBackend('tags.delete', {id}); +export const deleteTagDef = { + endpoint: 'tags.delete', + mapRequest: id => ({id}), + mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/disconnectChannel.ts b/lib/typescript/httpclient/endpoints/disconnectChannel.ts index e4ca70cd63..ef74596599 100644 --- a/lib/typescript/httpclient/endpoints/disconnectChannel.ts +++ b/lib/typescript/httpclient/endpoints/disconnectChannel.ts @@ -1,8 +1,5 @@ -import {DisconnectChannelRequestPayload} from '../payload'; -import {HttpClient} from '../client'; - -export default HttpClient.prototype.disconnectChannel = function (requestPayload: DisconnectChannelRequestPayload) { - return this.doFetchFromBackend(`channels.${requestPayload.source}.disconnect`, { - channel_id: requestPayload.channelId, - }); +export const disconnectChannelDef = { + endpoint: ({source}) => `channels.${source}.disconnect`, + mapRequest: ({channelId}) => ({channel_id: channelId}), + mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/exploreFacebookChannels.ts b/lib/typescript/httpclient/endpoints/exploreFacebookChannels.ts index 67ffced099..dbc052bb3d 100644 --- a/lib/typescript/httpclient/endpoints/exploreFacebookChannels.ts +++ b/lib/typescript/httpclient/endpoints/exploreFacebookChannels.ts @@ -1,12 +1,8 @@ -import {ExploreChannelRequestPayload} from '../payload'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {HttpClient} from '../client'; -export default HttpClient.prototype.exploreFacebookChannels = async function ( - requestPayload: ExploreChannelRequestPayload -) { - const response = await this.doFetchFromBackend('facebook.channels.explore', requestPayload); - - return camelcaseKeys(response.data, {deep: true, stopPaths: ['metadata.user_data']}); +export const exploreFacebookChannelsDef = { + endpoint: 'facebook.channels.explore', + mapRequest: requestPayload => requestPayload, + mapResponse: response => camelcaseKeys(response.data, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/getConfig.ts b/lib/typescript/httpclient/endpoints/getConfig.ts index 734bdce460..45fa26e5a5 100644 --- a/lib/typescript/httpclient/endpoints/getConfig.ts +++ b/lib/typescript/httpclient/endpoints/getConfig.ts @@ -1,5 +1,5 @@ -import {HttpClient} from '../client'; - -export default HttpClient.prototype.getConfig = async function getConfig() { - return await this.doFetchFromBackend('client.config'); +export const getConfigDef = { + endpoint: 'client.config', + mapRequest: () => ({}), + mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/getConversationInfo.ts b/lib/typescript/httpclient/endpoints/getConversationInfo.ts index 26ea253fd6..4d34b1353a 100644 --- a/lib/typescript/httpclient/endpoints/getConversationInfo.ts +++ b/lib/typescript/httpclient/endpoints/getConversationInfo.ts @@ -1,11 +1,10 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {HttpClient} from '../client'; -export default HttpClient.prototype.getConversationInfo = async function (conversationId: string) { - const response = await this.doFetchFromBackend('conversations.info', { +export const getConversationInfoDef = { + endpoint: 'conversations.info', + mapRequest: conversationId => ({ conversation_id: conversationId, - }); - - return camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}); + }), + mapResponse: response => camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/listChannels.ts b/lib/typescript/httpclient/endpoints/listChannels.ts index 7633d87a2f..922f268969 100644 --- a/lib/typescript/httpclient/endpoints/listChannels.ts +++ b/lib/typescript/httpclient/endpoints/listChannels.ts @@ -1,9 +1,8 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {HttpClient} from '../client'; -export default HttpClient.prototype.listChannels = async function () { - const response = await this.doFetchFromBackend('channels.list', {}); - - return camelcaseKeys(response.data, {deep: true, stopPaths: ['metadata.user_data']}); +export const listChannelsDef = { + endpoint: 'channels.list', + mapRequest: () => ({}), + mapResponse: response => camelcaseKeys(response.data, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/listConversations.ts b/lib/typescript/httpclient/endpoints/listConversations.ts index d164ff4b10..bfb062c4f8 100644 --- a/lib/typescript/httpclient/endpoints/listConversations.ts +++ b/lib/typescript/httpclient/endpoints/listConversations.ts @@ -1,24 +1,25 @@ import {PaginatedPayload, ListConversationsRequestPayload} from '../payload'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {HttpClient} from '../client'; import {mapMessage} from 'model'; -export default HttpClient.prototype.listConversations = async function ( - conversationListRequest: ListConversationsRequestPayload -) { - conversationListRequest.page_size = conversationListRequest.page_size ?? 10; - conversationListRequest.cursor = conversationListRequest.cursor ?? null; - const response: PaginatedPayload = await this.doFetchFromBackend('conversations.list', conversationListRequest); +export const listConversationsDef = { + endpoint: () => 'conversations.list', + mapRequest: (conversationListRequest: ListConversationsRequestPayload) => { + conversationListRequest.page_size = conversationListRequest.page_size ?? 10; + conversationListRequest.cursor = conversationListRequest.cursor ?? null; + return conversationListRequest; + }, + mapResponse: response => { + const conversationData = (response as PaginatedPayload).data.map(messagePayload => ({ + ...camelcaseKeys(messagePayload, {deep: true, stopPaths: ['metadata.user_data']}), + createdAt: new Date(messagePayload.created_at), + lastMessage: mapMessage(messagePayload.last_message), + })); - const conversationData = response.data.map(messagePayload => ({ - ...camelcaseKeys(messagePayload, {deep: true, stopPaths: ['metadata.user_data']}), - createdAt: new Date(messagePayload.created_at), - lastMessage: mapMessage(messagePayload.last_message), - })); - - return { - data: conversationData, - paginationData: camelcaseKeys(response.pagination_data), - }; + return { + data: conversationData, + paginationData: camelcaseKeys(response.pagination_data), + }; + }, }; diff --git a/lib/typescript/httpclient/endpoints/listMessages.ts b/lib/typescript/httpclient/endpoints/listMessages.ts index eb5e352818..87dd9ddbf0 100644 --- a/lib/typescript/httpclient/endpoints/listMessages.ts +++ b/lib/typescript/httpclient/endpoints/listMessages.ts @@ -1,23 +1,22 @@ -import {ListMessagesRequestPayload, PaginatedPayload} from '../payload'; -import {HttpClient} from '../client'; import {mapMessage} from 'model'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -export default HttpClient.prototype.listMessages = async function ( - conversationListRequest: ListMessagesRequestPayload -) { - conversationListRequest.pageSize = conversationListRequest.pageSize ?? 10; - conversationListRequest.cursor = conversationListRequest.cursor ?? null; +export const listMessagesDef = { + endpoint: 'messages.list', + mapRequest: conversationListRequest => { + conversationListRequest.pageSize = conversationListRequest.pageSize ?? 10; + conversationListRequest.cursor = conversationListRequest.cursor ?? null; + return { + conversation_id: conversationListRequest.conversationId, + cursor: conversationListRequest.cursor, + page_size: conversationListRequest.pageSize, + }; + }, + mapResponse: response => { + const mappedMessageData = response.data.map(messagePayload => mapMessage(messagePayload)); - const response: PaginatedPayload = await this.doFetchFromBackend('messages.list', { - conversation_id: conversationListRequest.conversationId, - cursor: conversationListRequest.cursor, - page_size: conversationListRequest.pageSize, - }); - - const mappedMessageData = response.data.map(messagePayload => mapMessage(messagePayload)); - - return {data: mappedMessageData, paginationData: camelcaseKeys(response.pagination_data)}; + return {data: mappedMessageData, paginationData: camelcaseKeys(response.pagination_data)}; + }, }; diff --git a/lib/typescript/httpclient/endpoints/listTags.ts b/lib/typescript/httpclient/endpoints/listTags.ts index acd301e062..070b73be5e 100644 --- a/lib/typescript/httpclient/endpoints/listTags.ts +++ b/lib/typescript/httpclient/endpoints/listTags.ts @@ -1,14 +1,12 @@ -import {HttpClient} from '../client'; - -export default HttpClient.prototype.listTags = async function () { - const response = await this.doFetchFromBackend('tags.list'); - - const tagMapper = { - BLUE: 'tag-blue', - RED: 'tag-red', - GREEN: 'tag-green', - PURPLE: 'tag-purple', - }; +const tagMapper = { + BLUE: 'tag-blue', + RED: 'tag-red', + GREEN: 'tag-green', + PURPLE: 'tag-purple', +}; - return response.data.map(t => ({id: t.id, name: t.name, color: tagMapper[t.color] || 'tag-blue'})); +export const listTagsDef = { + endpoint: 'tags.list', + mapRequest: () => ({}), + mapResponse: response => response.data.map(t => ({id: t.id, names: t.name, color: tagMapper[t.color] || 'tag-blue'})), }; diff --git a/lib/typescript/httpclient/endpoints/listTemplates.ts b/lib/typescript/httpclient/endpoints/listTemplates.ts index 518b61ff7d..2d5e93113a 100644 --- a/lib/typescript/httpclient/endpoints/listTemplates.ts +++ b/lib/typescript/httpclient/endpoints/listTemplates.ts @@ -1,16 +1,8 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {ListTemplatesRequestPayload} from '../payload'; -import {HttpClient} from '../client'; - -export default HttpClient.prototype.listTemplates = async function listTemplates( - requestPayload: ListTemplatesRequestPayload -) { - const response = await this.doFetchFromBackend('templates.list', { - name: requestPayload.name, - source: requestPayload.source, - }); - - return camelcaseKeys(response.data); +export const listTemplatesDef = { + endpoint: 'templates.list', + mapRequest: req => req, + mapResponse: response => camelcaseKeys(response.data), }; diff --git a/lib/typescript/httpclient/endpoints/loginViaEmail.ts b/lib/typescript/httpclient/endpoints/loginViaEmail.ts index f97a27dc31..c21a1f5af1 100644 --- a/lib/typescript/httpclient/endpoints/loginViaEmail.ts +++ b/lib/typescript/httpclient/endpoints/loginViaEmail.ts @@ -1,13 +1,9 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {LoginViaEmailRequestPayload} from '../payload'; -import {HttpClient} from '../client'; - -export default HttpClient.prototype.loginViaEmail = async function loginViaEmail( - requestPayload: LoginViaEmailRequestPayload -) { - const response = await this.doFetchFromBackend('users.login', requestPayload, {ignoreAuthToken: true}); - - return {...camelcaseKeys(response), displayName: `${response.first_name} ${response.last_name}`}; +export const loginViaEmailDef = { + endpoint: 'users.login', + mapRequest: req => req, + mapResponse: response => ({...camelcaseKeys(response), displayName: `${response.first_name} ${response.last_name}`}), + opts: {ignoreAuthToken: true}, }; diff --git a/lib/typescript/httpclient/endpoints/readConversations.ts b/lib/typescript/httpclient/endpoints/readConversations.ts index 75114dbc3c..7173bfb30d 100644 --- a/lib/typescript/httpclient/endpoints/readConversations.ts +++ b/lib/typescript/httpclient/endpoints/readConversations.ts @@ -1,5 +1,5 @@ -import {HttpClient} from '../client'; - -export default HttpClient.prototype.readConversations = function (conversationId: string) { - return this.doFetchFromBackend('conversations.read', {conversation_id: conversationId}); +export const readConversationsDef = { + endpoint: 'conversations.read', + mapRequest: conversationId => ({conversation_id: conversationId}), + mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/sendMessages.ts b/lib/typescript/httpclient/endpoints/sendMessages.ts index 500a541006..e204b4f9bd 100644 --- a/lib/typescript/httpclient/endpoints/sendMessages.ts +++ b/lib/typescript/httpclient/endpoints/sendMessages.ts @@ -1,12 +1,7 @@ -import {SendMessagesRequestPayload} from '../payload'; -import {HttpClient} from '../client'; import {mapMessage} from 'model'; -export default HttpClient.prototype.sendMessages = async function (requestPayload: SendMessagesRequestPayload) { - const response = await this.doFetchFromBackend('messages.send', { - conversation_id: requestPayload.conversationId, - message: requestPayload.message, - }); - - return mapMessage(response); +export const sendMessagesDef = { + endpoint: 'messages.send', + mapRequest: ({conversationId, message}) => ({conversation_id: conversationId, message}), + mapResponse: mapMessage, }; diff --git a/lib/typescript/httpclient/endpoints/tagConversation.ts b/lib/typescript/httpclient/endpoints/tagConversation.ts index 3a31603609..162dd410c3 100644 --- a/lib/typescript/httpclient/endpoints/tagConversation.ts +++ b/lib/typescript/httpclient/endpoints/tagConversation.ts @@ -1,9 +1,8 @@ -import {TagConversationRequestPayload} from '../payload'; -import {HttpClient} from '../client'; - -export default HttpClient.prototype.tagConversation = function (requestPayload: TagConversationRequestPayload) { - return this.doFetchFromBackend('conversations.tag', { - conversation_id: requestPayload.conversationId, - tag_id: requestPayload.tagId, - }); +export const tagConversationDef = { + endpoint: 'conversations.tag', + mapRequest: ({conversationId, tagId}) => ({ + conversation_id: conversationId, + tag_id: tagId, + }), + mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/untagConversation.ts b/lib/typescript/httpclient/endpoints/untagConversation.ts index 3422f18f57..ee1dd0936e 100644 --- a/lib/typescript/httpclient/endpoints/untagConversation.ts +++ b/lib/typescript/httpclient/endpoints/untagConversation.ts @@ -1,11 +1,8 @@ -import {UntagConversationRequestPayload} from '../payload'; -import {HttpClient} from '../client'; - -export default HttpClient.prototype.untagConversation = function untagConversation( - requestPayload: UntagConversationRequestPayload -) { - return this.doFetchFromBackend('conversations.untag', { - conversation_id: requestPayload.conversationId, - tag_id: requestPayload.tagId, - }); +export const untagConversationDef = { + endpoint: 'conversations.untag', + mapRequest: ({conversationId, tagId}) => ({ + conversation_id: conversationId, + tag_id: tagId, + }), + mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/updateChannel.ts b/lib/typescript/httpclient/endpoints/updateChannel.ts index 580434649b..d8b943eda3 100644 --- a/lib/typescript/httpclient/endpoints/updateChannel.ts +++ b/lib/typescript/httpclient/endpoints/updateChannel.ts @@ -1,16 +1,14 @@ -import {UpdateChannelRequestPayload} from '../payload'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); -import {HttpClient} from '../client'; -export default HttpClient.prototype.updateChannel = async function (requestPayload: UpdateChannelRequestPayload) { - const response = await this.doFetchFromBackend(`channels.update`, { +export const updateChannelDef = { + endpoint: 'channels.update', + mapRequest: requestPayload => ({ channel_id: requestPayload.channelId, name: requestPayload.name, ...(requestPayload.imageUrl && { image_url: requestPayload.imageUrl, }), - }); - - return camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}); + }), + mapResponse: response => camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/updateTag.ts b/lib/typescript/httpclient/endpoints/updateTag.ts index 7c26fd1e5a..4d6d564f73 100644 --- a/lib/typescript/httpclient/endpoints/updateTag.ts +++ b/lib/typescript/httpclient/endpoints/updateTag.ts @@ -1,6 +1,5 @@ -import {Tag} from 'model'; -import {HttpClient} from '../client'; - -export default HttpClient.prototype.updateTag = function (tag: Tag) { - return this.doFetchFromBackend('tags.update', {...tag}); +export const updateTagDef = { + endpoint: 'tags.update', + mapRequest: req => req, + mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/payload/ConnectTwilioSmsRequestPayload.ts b/lib/typescript/httpclient/payload/ConnectTwilioSmsRequestPayload.ts index 6ebac67de7..74a75c1a97 100644 --- a/lib/typescript/httpclient/payload/ConnectTwilioSmsRequestPayload.ts +++ b/lib/typescript/httpclient/payload/ConnectTwilioSmsRequestPayload.ts @@ -1,5 +1,5 @@ export interface ConnectTwilioSmsRequestPayload { - sourceChannelId?: string; + sourceChannelId: string; name?: string; imageUrl?: string; phoneNumber?: string; diff --git a/package.json b/package.json index 162726dae1..a6df87a07b 100644 --- a/package.json +++ b/package.json @@ -32,9 +32,13 @@ }, "devDependencies": { "@babel/core": "7.13.14", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-transform-spread": "^7.13.0", "@babel/preset-env": "^7.13.12", + "@babel/preset-react": "^7.13.13", + "@babel/preset-typescript": "^7.13.0", "@bazel/bazelisk": "^1.7.5", - "@bazel/ibazel": "^0.15.8", "@bazel/typescript": "^3.3.0", "@svgr/webpack": "^5.5.0", "@types/lodash-es": "^4.17.4", @@ -43,21 +47,18 @@ "@typescript-eslint/eslint-plugin": "^4.21.0", "@typescript-eslint/parser": "^4.21.0", "babel-loader": "^8.0.6", - "connect-history-api-fallback": "^1.6.0", "copy-webpack-plugin": "^8.1.1", "css-loader": "^5.2.0", "cypress": "^7.0.1", "eslint": "^7.23.0", "eslint-plugin-react": "^7.23.1", - "express": "^4.17.1", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.3.1", "minimist": "^1.2.5", "prettier": "^2.2.1", "react-hot-loader": "^4.13.0", - "reselect": "4.0.0", - "sass-loader": "^11", "sass": "^1.32.8", + "sass-loader": "^11", "style-loader": "^2.0.0", "terser-webpack-plugin": "^5.1.1", "typescript": "3.7.4", @@ -65,7 +66,6 @@ "webpack": "^5.31.0", "webpack-bundle-analyzer": "^4.4.0", "webpack-cli": "^4.6.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-hot-middleware": "^2.25.0" + "webpack-dev-server": "^3.11.2" } } diff --git a/scripts/web-dev.sh b/scripts/web-dev.sh index 548bc10557..80a63a3ac6 100755 --- a/scripts/web-dev.sh +++ b/scripts/web-dev.sh @@ -3,5 +3,5 @@ set -eo pipefail IFS=$'\n\t' echo "web target to run: $1" -echo "starting devserver with ibazel" -ibazel run "$1" -- --defines="{\"process.env.API_HOST\":\"'http://airy.core'\"}" +echo "starting devserver" +bazel run "$1" -- --defines="{\"process.env.API_HOST\":\"'http://airy.core'\"}" diff --git a/yarn.lock b/yarn.lock index f1e9eb4903..8f31e90865 100644 --- a/yarn.lock +++ b/yarn.lock @@ -514,6 +514,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-typescript@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" + integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-arrow-functions@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" @@ -711,7 +718,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-react-jsx-development@^7.12.12": +"@babel/plugin-transform-react-jsx-development@^7.12.12", "@babel/plugin-transform-react-jsx-development@^7.12.17": version "7.12.17" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== @@ -729,6 +736,17 @@ "@babel/plugin-syntax-jsx" "^7.12.13" "@babel/types" "^7.12.17" +"@babel/plugin-transform-react-jsx@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz#1df5dfaf0f4b784b43e96da6f28d630e775f68b3" + integrity sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/types" "^7.13.12" + "@babel/plugin-transform-react-pure-annotations@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" @@ -787,6 +805,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-typescript@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853" + integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-typescript" "^7.12.13" + "@babel/plugin-transform-unicode-escapes@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" @@ -899,6 +926,27 @@ "@babel/plugin-transform-react-jsx-development" "^7.12.12" "@babel/plugin-transform-react-pure-annotations" "^7.12.1" +"@babel/preset-react@^7.13.13": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.13.13.tgz#fa6895a96c50763fe693f9148568458d5a839761" + integrity sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-transform-react-display-name" "^7.12.13" + "@babel/plugin-transform-react-jsx" "^7.13.12" + "@babel/plugin-transform-react-jsx-development" "^7.12.17" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + +"@babel/preset-typescript@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a" + integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-transform-typescript" "^7.13.0" + "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.8.4": version "7.13.10" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" @@ -943,11 +991,6 @@ resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.5.tgz#dd1a52e3d23464f72de55aa3dc4777847fa85373" integrity sha512-JHwP9JhfZUSoj4sku471Bjw4uE773U2Agujnx0CdPkeRk25khy1l3VyjaPaHB+z1fmMnM6ED3M7tetQUsovUQg== -"@bazel/ibazel@^0.15.8": - version "0.15.8" - resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.15.8.tgz#355632324fb4504611acb6f4a40cc6570c1a6c87" - integrity sha512-VC60wGXKkzN35DZJnrlujl+fttLSdTBVrT+Hb9P+6nkR+dciN48f1KgluauG3DPopF/N681XhAiTYxg1WfGIYg== - "@bazel/typescript@^3.3.0": version "3.3.0" resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.3.0.tgz#6781f3aec3f974b864519ae9f47eaf09b134910b" @@ -1259,6 +1302,14 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + "@types/history@*": version "4.7.8" resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" @@ -1306,6 +1357,11 @@ dependencies: "@types/unist" "*" +"@types/minimatch@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + "@types/node@*", "@types/node@14.14.37", "@types/node@^14.14.31": version "14.14.37" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" @@ -1640,7 +1696,7 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -accepts@~1.3.7: +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== @@ -1668,12 +1724,17 @@ acorn@^8.0.4: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== -ajv-keywords@^3.5.2: +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1723,6 +1784,11 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" @@ -1733,7 +1799,7 @@ ansi-styles@^2.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1752,6 +1818,14 @@ any-observable@^0.3.0: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + anymatch@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" @@ -1772,11 +1846,31 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + array-includes@^3.1.2, array-includes@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" @@ -1788,11 +1882,28 @@ array-includes@^3.1.2, array-includes@^3.1.3: get-intrinsic "^1.1.1" is-string "^1.0.5" +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + array.prototype.flatmap@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" @@ -1815,11 +1926,33 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + async@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" @@ -1835,6 +1968,11 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + autosize@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.2.tgz#073cfd07c8bf45da4b9fd153437f5bafbba1e4c9" @@ -1901,6 +2039,24 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -1913,11 +2069,23 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + blob-util@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" @@ -1944,6 +2112,18 @@ body-parser@1.19.0: raw-body "2.4.0" type-is "~1.6.17" +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -1957,6 +2137,22 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -1985,11 +2181,36 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + cachedir@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -2025,7 +2246,7 @@ camelcase-keys@^6.2.2: map-obj "^4.0.0" quick-lru "^4.0.1" -camelcase@^5.3.1: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -2108,6 +2329,25 @@ check-more-types@^2.24.0: optionalDependencies: fsevents "~2.3.1" +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -2120,6 +2360,16 @@ ci-info@^3.1.1: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + clean-css@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" @@ -2159,6 +2409,15 @@ cli-truncate@^0.2.1: slice-ansi "0.0.4" string-width "^1.0.1" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -2182,6 +2441,14 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2258,6 +2525,31 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + computed-style@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/computed-style/-/computed-style-0.1.4.tgz#7f344fd8584b2e425bedca4a1afc0e300bb05d74" @@ -2312,6 +2604,11 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + copy-webpack-plugin@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz#3f697e162764925c2f0d235f380676125508fd26" @@ -2354,6 +2651,17 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -2501,7 +2809,7 @@ dayjs@^1.10.4: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== -debug@2.6.9, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2515,13 +2823,35 @@ debug@4.3.2, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -debug@^3.1.0: +debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -2532,6 +2862,14 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2539,6 +2877,41 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2554,6 +2927,11 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detect-node@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" + integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2561,6 +2939,26 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2609,7 +3007,12 @@ domelementtype@1, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1, domelementtype@^2.1.0: +domelementtype@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domelementtype@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== @@ -2696,6 +3099,11 @@ emoji-mart@^3.0.0: "@babel/runtime" "^7.0.0" prop-types "^15.6.0" +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -2952,11 +3360,23 @@ eventemitter2@^6.4.3: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b" integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw== +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +eventsource@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" + integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== + dependencies: + original "^1.0.0" + execa@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -2972,6 +3392,19 @@ execa@4.1.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" @@ -3004,6 +3437,19 @@ exit-hook@^1.0.0: resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -3040,11 +3486,40 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + extract-zip@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" @@ -3104,6 +3579,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +faye-websocket@^0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -3141,6 +3623,21 @@ file-loader@^6.2.0: loader-utils "^2.0.0" schema-utils "^3.0.0" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -3170,6 +3667,13 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3191,6 +3695,16 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== +follow-redirects@^1.0.0: + version "1.13.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" + integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -3210,6 +3724,13 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -3230,6 +3751,14 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -3250,6 +3779,11 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -3259,6 +3793,13 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + get-stream@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -3271,6 +3812,11 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + getos@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" @@ -3285,6 +3831,14 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -3297,7 +3851,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.3: +glob@^7.0.3, glob@^7.1.3: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -3355,7 +3909,18 @@ globby@^11.0.1, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -3367,6 +3932,11 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -3407,6 +3977,37 @@ has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3438,7 +4039,17 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react- dependencies: react-is "^16.7.0" -html-entities@^1.2.0: +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== @@ -3499,6 +4110,11 @@ htmlparser2@^5.0: domutils "^2.4.2" entities "^2.0.0" +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -3510,6 +4126,16 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -3521,6 +4147,30 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -3575,6 +4225,14 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -3606,7 +4264,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3621,6 +4279,14 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -3635,11 +4301,40 @@ interpret@^2.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -ipaddr.js@1.9.1: +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" @@ -3653,6 +4348,13 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3663,6 +4365,13 @@ is-bigint@^1.0.1: resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -3677,6 +4386,11 @@ is-boolean-object@^1.1.0: dependencies: call-bind "^1.0.0" +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" @@ -3701,6 +4415,20 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + is-date-object@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" @@ -3711,7 +4439,37 @@ is-decimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== -is-extglob@^2.1.1: +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= @@ -3733,6 +4491,13 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" @@ -3763,6 +4528,13 @@ is-number-object@^1.0.4: resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -3775,6 +4547,25 @@ is-observable@^1.1.0: dependencies: symbol-observable "^1.1.0" +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -3785,7 +4576,7 @@ is-plain-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.4: +is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -3797,7 +4588,7 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.1.2: +is-regex@^1.0.4, is-regex@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== @@ -3837,12 +4628,22 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -3852,7 +4653,14 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^3.0.1: +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= @@ -3934,6 +4742,11 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json3@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -3975,7 +4788,31 @@ jsprim@^1.2.2: array-includes "^3.1.2" object.assign "^4.1.2" -kind-of@^6.0.2: +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -4082,6 +4919,14 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -4109,7 +4954,7 @@ lodash.once@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@^4.0.1, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4138,6 +4983,11 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" +loglevel@^1.6.8: + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -4176,11 +5026,23 @@ make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + map-obj@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.0.tgz#0e8bc823e2aaca8a0942567d12ed14f389eec153" integrity sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ== +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + material-colors@^1.2.1: version "1.2.6" resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" @@ -4265,6 +5127,25 @@ micromark@~2.11.0: debug "^4.0.0" parse-entities "^2.0.0" +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + micromatch@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" @@ -4278,6 +5159,11 @@ mime-db@1.46.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== +mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.29" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" @@ -4285,6 +5171,13 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: dependencies: mime-db "1.46.0" +mime-types@~2.1.17: + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== + dependencies: + mime-db "1.47.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -4328,6 +5221,11 @@ mini-create-react-context@^0.4.0: "@babel/runtime" "^7.12.1" tiny-warning "^1.0.3" +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -4340,7 +5238,15 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@~0.5.1: +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -4367,11 +5273,46 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + nanoid@^3.1.20: version "3.1.22" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4387,6 +5328,11 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -4395,16 +5341,35 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + node-releases@^1.1.70: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -4429,21 +5394,45 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + object-inspect@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" @@ -4483,6 +5472,13 @@ object.getownpropertydescriptors@^2.1.0: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + object.values@^1.1.0, object.values@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" @@ -4493,6 +5489,11 @@ object.values@^1.1.0, object.values@^1.1.3: es-abstract "^1.18.0-next.2" has "^1.0.3" +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -4500,6 +5501,11 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -4531,6 +5537,13 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -4543,12 +5556,24 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + ospath@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= -p-limit@^2.2.0: +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -4562,6 +5587,13 @@ p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -4574,6 +5606,13 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -4616,7 +5655,7 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parseurl@~1.3.3: +parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -4629,6 +5668,21 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4639,6 +5693,16 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -4681,11 +5745,35 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -pify@^2.2.0: +pify@^2.0.0, pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -4693,6 +5781,20 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + postcss-modules-extract-imports@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" @@ -4872,10 +5974,10 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystring@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== queue-microtask@^1.2.2: version "1.2.2" @@ -5100,7 +6202,7 @@ reactcss@^1.2.0: dependencies: lodash "^4.0.1" -readable-stream@^2.0.1, readable-stream@^2.2.2: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -5113,7 +6215,7 @@ readable-stream@^2.0.1, readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1: +readable-stream@^3.0.6, readable-stream@^3.1.1: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -5122,6 +6224,15 @@ readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + readdirp@~3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" @@ -5173,7 +6284,15 @@ regenerator-transform@^0.14.2: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.3.1: +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== @@ -5222,6 +6341,11 @@ remark-parse@^9.0.0: dependencies: mdast-util-from-markdown "^0.8.0" +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + renderkid@^2.0.4: version "2.0.5" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" @@ -5233,6 +6357,16 @@ renderkid@^2.0.4: lodash "^4.17.20" strip-ansi "^3.0.0" +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + request-progress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" @@ -5240,16 +6374,38 @@ request-progress@^3.0.0: dependencies: throttleit "^1.0.0" +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + reselect@4.0.0, reselect@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -5257,6 +6413,11 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5272,6 +6433,11 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + resolve@^1.14.2, resolve@^1.9.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" @@ -5304,11 +6470,28 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -5335,11 +6518,18 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -5373,6 +6563,15 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" @@ -5391,6 +6590,18 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.8: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== + dependencies: + node-forge "^0.10.0" + semver@5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" @@ -5401,6 +6612,11 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +semver@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -5439,6 +6655,19 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + serve-static@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" @@ -5449,6 +6678,26 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" @@ -5466,6 +6715,13 @@ shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -5473,6 +6729,11 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -5487,7 +6748,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -5520,11 +6781,73 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" + integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== + dependencies: + debug "^3.2.6" + eventsource "^1.0.7" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.5.1" + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + source-map-support@0.5.9: version "0.5.9" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" @@ -5541,7 +6864,12 @@ source-map-support@~0.5.12, source-map-support@~0.5.19: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.0: +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -5556,6 +6884,36 @@ source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -5581,7 +6939,15 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -5603,6 +6969,15 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -5669,6 +7044,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -5676,6 +7058,11 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -5706,6 +7093,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -5804,6 +7198,11 @@ throttleit@^1.0.0: resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + tiny-invariant@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" @@ -5831,6 +7230,21 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -5838,6 +7252,16 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + toidentifier@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" @@ -5867,9 +7291,9 @@ tslib@^1.8.1, tslib@^1.9.0: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== tsutils@2.27.2: version "2.27.2" @@ -5982,6 +7406,16 @@ unified@^9.0.0: trough "^1.0.0" vfile "^4.0.0" +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" @@ -6036,11 +7470,24 @@ unquote@~1.1.1: resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -6048,6 +7495,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + url-loader@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" @@ -6057,6 +7509,14 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" +url-parse@^1.4.3, url-parse@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -6065,6 +7525,11 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -6090,7 +7555,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2: +uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -6152,6 +7617,13 @@ watchpack@^2.0.0: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + webpack-bundle-analyzer@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.0.tgz#74013106e7e2b07cbd64f3a5ae847f7e814802c7" @@ -6198,15 +7670,44 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-hot-middleware@^2.25.0: - version "2.25.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" - integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== +webpack-dev-server@^3.11.2: + version "3.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== dependencies: ansi-html "0.0.7" - html-entities "^1.2.0" - querystring "^0.2.0" - strip-ansi "^3.0.0" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" webpack-log@^2.0.0: version "2.0.0" @@ -6261,6 +7762,20 @@ webpack@^5.31.0: watchpack "^2.0.0" webpack-sources "^2.1.1" +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + which-boxed-primitive@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -6272,6 +7787,18 @@ which-boxed-primitive@^1.0.1: is-string "^1.0.5" is-symbol "^1.0.3" +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -6297,11 +7824,27 @@ wrap-ansi@^3.0.1: string-width "^2.1.1" strip-ansi "^4.0.0" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + ws@^7.3.1: version "7.4.4" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" @@ -6312,6 +7855,11 @@ xtend@^4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.2.tgz#c504495ba9b59230dd60226d1dd89c3c0a1b745e" + integrity sha512-DnBDwcL54b5xWMM/7RfFg4xs5amYxq2ot49aUfLjQSAracXkGvlZq0txzqr3Pa6Q0ayuCxBcwTzrPUScKY0O8w== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -6322,6 +7870,30 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From dfaddfa3a558dd94a4548bf1ad1aee8239fdcbf5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Apr 2021 09:38:23 +0200 Subject: [PATCH 15/33] Bump eslint-plugin-react from 7.23.1 to 7.23.2 (#1500) Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.23.1 to 7.23.2. - [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases) - [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.23.1...v7.23.2) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a6df87a07b..9767595d34 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "css-loader": "^5.2.0", "cypress": "^7.0.1", "eslint": "^7.23.0", - "eslint-plugin-react": "^7.23.1", + "eslint-plugin-react": "^7.23.2", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.3.1", "minimist": "^1.2.5", diff --git a/yarn.lock b/yarn.lock index 8f31e90865..0b74c2f889 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3221,10 +3221,10 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-plugin-react@^7.23.1: - version "7.23.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz#f1a2e844c0d1967c822388204a8bc4dee8415b11" - integrity sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ== +eslint-plugin-react@^7.23.2: + version "7.23.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494" + integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw== dependencies: array-includes "^3.1.3" array.prototype.flatmap "^1.2.4" From ed2bf535f432143fccc68495bc6181039db70a5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Apr 2021 09:38:36 +0200 Subject: [PATCH 16/33] Bump @babel/core from 7.13.14 to 7.13.15 (#1499) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.13.14 to 7.13.15. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.13.15/packages/babel-core) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 9767595d34..33626a39cc 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "typesafe-actions": "^5.1.0" }, "devDependencies": { - "@babel/core": "7.13.14", + "@babel/core": "7.13.15", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-object-rest-spread": "^7.13.8", "@babel/plugin-transform-spread": "^7.13.0", diff --git a/yarn.lock b/yarn.lock index 0b74c2f889..d0aa02c28f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,19 +32,19 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1" integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== -"@babel/core@7.13.14", "@babel/core@^7.12.3": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.14.tgz#8e46ebbaca460a63497c797e574038ab04ae6d06" - integrity sha512-wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA== +"@babel/core@7.13.15", "@babel/core@^7.12.3": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.15.tgz#a6d40917df027487b54312202a06812c4f7792d0" + integrity sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ== dependencies: "@babel/code-frame" "^7.12.13" "@babel/generator" "^7.13.9" "@babel/helper-compilation-targets" "^7.13.13" "@babel/helper-module-transforms" "^7.13.14" "@babel/helpers" "^7.13.10" - "@babel/parser" "^7.13.13" + "@babel/parser" "^7.13.15" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.13" + "@babel/traverse" "^7.13.15" "@babel/types" "^7.13.14" convert-source-map "^1.7.0" debug "^4.1.0" @@ -300,10 +300,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.13", "@babel/parser@^7.13.13": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df" - integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw== +"@babel/parser@^7.12.13", "@babel/parser@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.15.tgz#8e66775fb523599acb6a289e12929fa5ab0954d8" + integrity sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": version "7.13.12" @@ -963,21 +963,21 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.13.tgz#39aa9c21aab69f74d948a486dd28a2dbdbf5114d" - integrity sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.15.tgz#c38bf7679334ddd4028e8e1f7b3aa5019f0dada7" + integrity sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ== dependencies: "@babel/code-frame" "^7.12.13" "@babel/generator" "^7.13.9" "@babel/helper-function-name" "^7.12.13" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.13" - "@babel/types" "^7.13.13" + "@babel/parser" "^7.13.15" + "@babel/types" "^7.13.14" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.12.6", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.13", "@babel/types@^7.13.14", "@babel/types@^7.4.4": +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.12.6", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.4.4": version "7.13.14" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d" integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ== From 5bcaf3289916c49fc25887502adbc577829e4d2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Apr 2021 09:39:03 +0200 Subject: [PATCH 17/33] Bump @babel/preset-env from 7.13.12 to 7.13.15 (#1498) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.13.12 to 7.13.15. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.13.15/packages/babel-preset-env) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 100 +++++++++++++++++++++++++-------------------------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 33626a39cc..07e3d5108e 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-object-rest-spread": "^7.13.8", "@babel/plugin-transform-spread": "^7.13.0", - "@babel/preset-env": "^7.13.12", + "@babel/preset-env": "^7.13.15", "@babel/preset-react": "^7.13.13", "@babel/preset-typescript": "^7.13.0", "@bazel/bazelisk": "^1.7.5", diff --git a/yarn.lock b/yarn.lock index d0aa02c28f..96dc589eb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -27,10 +27,10 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.8": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1" - integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" + integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== "@babel/core@7.13.15", "@babel/core@^7.12.3": version "7.13.15" @@ -77,7 +77,7 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8": version "7.13.13" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5" integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ== @@ -106,10 +106,10 @@ "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e" - integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== +"@babel/helper-define-polyfill-provider@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" + integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -314,10 +314,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-proposal-optional-chaining" "^7.13.12" -"@babel/plugin-proposal-async-generator-functions@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" - integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== +"@babel/plugin-proposal-async-generator-functions@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b" + integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-remap-async-to-generator" "^7.13.0" @@ -755,10 +755,10 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" - integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== +"@babel/plugin-transform-regenerator@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" + integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== dependencies: regenerator-transform "^0.14.2" @@ -829,17 +829,17 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.12.tgz#6dff470478290582ac282fb77780eadf32480237" - integrity sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA== +"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f" + integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA== dependencies: - "@babel/compat-data" "^7.13.12" - "@babel/helper-compilation-targets" "^7.13.10" + "@babel/compat-data" "^7.13.15" + "@babel/helper-compilation-targets" "^7.13.13" "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-validator-option" "^7.12.17" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.13.8" + "@babel/plugin-proposal-async-generator-functions" "^7.13.15" "@babel/plugin-proposal-class-properties" "^7.13.0" "@babel/plugin-proposal-dynamic-import" "^7.13.8" "@babel/plugin-proposal-export-namespace-from" "^7.12.13" @@ -887,7 +887,7 @@ "@babel/plugin-transform-object-super" "^7.12.13" "@babel/plugin-transform-parameters" "^7.13.0" "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.13.15" "@babel/plugin-transform-reserved-words" "^7.12.13" "@babel/plugin-transform-shorthand-properties" "^7.12.13" "@babel/plugin-transform-spread" "^7.13.0" @@ -897,10 +897,10 @@ "@babel/plugin-transform-unicode-escapes" "^7.12.13" "@babel/plugin-transform-unicode-regex" "^7.12.13" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.12" - babel-plugin-polyfill-corejs2 "^0.1.4" - babel-plugin-polyfill-corejs3 "^0.1.3" - babel-plugin-polyfill-regenerator "^0.1.2" + "@babel/types" "^7.13.14" + babel-plugin-polyfill-corejs2 "^0.2.0" + babel-plugin-polyfill-corejs3 "^0.2.0" + babel-plugin-polyfill-regenerator "^0.2.0" core-js-compat "^3.9.0" semver "^6.3.0" @@ -2005,29 +2005,29 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-polyfill-corejs2@^0.1.4: - version "0.1.10" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz#a2c5c245f56c0cac3dbddbf0726a46b24f0f81d1" - integrity sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA== +babel-plugin-polyfill-corejs2@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" + integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== dependencies: - "@babel/compat-data" "^7.13.0" - "@babel/helper-define-polyfill-provider" "^0.1.5" + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.0" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.1.3: - version "0.1.7" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" - integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== +babel-plugin-polyfill-corejs3@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" + integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.1.5" - core-js-compat "^3.8.1" + "@babel/helper-define-polyfill-provider" "^0.2.0" + core-js-compat "^3.9.1" -babel-plugin-polyfill-regenerator@^0.1.2: - version "0.1.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz#0fe06a026fe0faa628ccc8ba3302da0a6ce02f3f" - integrity sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg== +babel-plugin-polyfill-regenerator@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" + integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.1.5" + "@babel/helper-define-polyfill-provider" "^0.2.0" bail@^1.0.0: version "1.0.5" @@ -2622,10 +2622,10 @@ copy-webpack-plugin@^8.1.1: schema-utils "^3.0.0" serialize-javascript "^5.0.1" -core-js-compat@^3.8.1, core-js-compat@^3.9.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455" - integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== +core-js-compat@^3.9.0, core-js-compat@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.1.tgz#62183a3a77ceeffcc420d907a3e6fc67d9b27f1c" + integrity sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg== dependencies: browserslist "^4.16.3" semver "7.0.0" From 29b92592671c6d05154e367500f8922f109994b2 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Fri, 9 Apr 2021 09:48:23 +0200 Subject: [PATCH 18/33] [#1004] Enable quickreplies for chatplugin (#1478) --- frontend/chat-plugin/src/api/index.tsx | 8 +-- .../chat-plugin/src/components/chat/index.tsx | 3 + frontend/chat-plugin/src/websocket/index.ts | 4 +- .../components/MessageInfoWrapper/index.tsx | 4 +- lib/typescript/render/props.ts | 21 ++++++- .../providers/chatplugin/ChatPluginRender.tsx | 53 ++++++++++++++++- .../providers/chatplugin/chatPluginModel.ts | 47 ++++++++++++++- .../components/QuickReplies/index.module.scss | 42 ++++++++++++++ .../components/QuickReplies/index.tsx | 57 +++++++++++++++++++ .../components/QuickReplies/index.module.scss | 1 + 10 files changed, 227 insertions(+), 13 deletions(-) create mode 100644 lib/typescript/render/providers/chatplugin/components/QuickReplies/index.module.scss create mode 100644 lib/typescript/render/providers/chatplugin/components/QuickReplies/index.tsx diff --git a/frontend/chat-plugin/src/api/index.tsx b/frontend/chat-plugin/src/api/index.tsx index 68ce62becd..4a559442f4 100644 --- a/frontend/chat-plugin/src/api/index.tsx +++ b/frontend/chat-plugin/src/api/index.tsx @@ -1,4 +1,4 @@ -import {SuggestionResponse, TextContent} from 'render/providers/chatplugin/chatPluginModel'; +import {QuickReplyCommand, SuggestionResponse, TextContent} from 'render/providers/chatplugin/chatPluginModel'; import {setResumeTokenInStorage} from '../storage'; declare const window: { @@ -10,7 +10,7 @@ declare const window: { const API_HOST = window.airy ? window.airy.host : process.env.API_HOST; -export const sendMessage = (message: TextContent | SuggestionResponse, token: string) => { +export const sendMessage = (message: TextContent | SuggestionResponse | QuickReplyCommand, token: string) => { return fetch(`${API_HOST}/chatplugin.send`, { method: 'POST', body: JSON.stringify(convertToBody(message)), @@ -21,8 +21,8 @@ export const sendMessage = (message: TextContent | SuggestionResponse, token: st }); }; -const convertToBody = (message: TextContent | SuggestionResponse) => { - if (message.type == 'suggestionResponse') { +const convertToBody = (message: TextContent | SuggestionResponse | QuickReplyCommand) => { + if (message.type == ('suggestionResponse' || 'quickReplies')) { return { message: { text: message.text, diff --git a/frontend/chat-plugin/src/components/chat/index.tsx b/frontend/chat-plugin/src/components/chat/index.tsx index 17b7ea157d..6e50cf3888 100644 --- a/frontend/chat-plugin/src/components/chat/index.tsx +++ b/frontend/chat-plugin/src/components/chat/index.tsx @@ -157,6 +157,9 @@ const Chat = (props: Props) => { if (command.type === 'suggestedReply') { ws.onSend({type: 'suggestionResponse', text: command.payload.text, postbackData: command.payload.postbackData}); } + if (command.type === 'quickReplies') { + ws.onSend({type: 'quickReplies', text: command.payload.text, postbackData: command.payload.postbackData}); + } }; return ( diff --git a/frontend/chat-plugin/src/websocket/index.ts b/frontend/chat-plugin/src/websocket/index.ts index a4e9461d0c..0b8caccbc3 100644 --- a/frontend/chat-plugin/src/websocket/index.ts +++ b/frontend/chat-plugin/src/websocket/index.ts @@ -1,7 +1,7 @@ import {Client, messageCallbackType, IFrame} from '@stomp/stompjs'; import 'regenerator-runtime/runtime'; import {start, getResumeToken, sendMessage} from '../api'; -import {SuggestionResponse, TextContent} from 'render/providers/chatplugin/chatPluginModel'; +import {QuickReplyCommand, SuggestionResponse, TextContent} from 'render/providers/chatplugin/chatPluginModel'; import {Message} from 'model'; import {getResumeTokenFromStorage, resetStorage} from '../storage'; @@ -77,7 +77,7 @@ class WebSocket { this.client.activate(); }; - onSend = (message: TextContent | SuggestionResponse) => sendMessage(message, this.token); + onSend = (message: TextContent | SuggestionResponse | QuickReplyCommand) => sendMessage(message, this.token); start = async () => { const resumeToken = getResumeTokenFromStorage(this.channelId); diff --git a/lib/typescript/render/components/MessageInfoWrapper/index.tsx b/lib/typescript/render/components/MessageInfoWrapper/index.tsx index 3e2593023b..f8656ab050 100644 --- a/lib/typescript/render/components/MessageInfoWrapper/index.tsx +++ b/lib/typescript/render/components/MessageInfoWrapper/index.tsx @@ -33,7 +33,9 @@ export const MessageInfoWrapper = (props: MessageInfoWrapperProps) => { )} - + + ); +}; + +type errorPopUpProps = { + message: string; + closeHandler(): void; +}; diff --git a/lib/typescript/components/alerts/ErrorPopUp/style.module.scss b/lib/typescript/components/alerts/ErrorPopUp/style.module.scss new file mode 100644 index 0000000000..06587f0cb6 --- /dev/null +++ b/lib/typescript/components/alerts/ErrorPopUp/style.module.scss @@ -0,0 +1,62 @@ +@import 'assets/scss/colors'; +@import 'assets/scss/fonts'; + +.main { + position: absolute; + height: 40px; + bottom: 48px; + text-align: -webkit-center; + right: 0; + left: 0; + animation: pop 0.8s; + transition-timing-function: ease-in-out; +} + +.errorContainer { + display: flex; + align-items: center; + width: fit-content; + padding: 8px 12px 8px 12px; + border-radius: 10px; + background-color: var(--color-error-background); + border: 1px solid var(--color-error-border); + svg { + fill: var(--color-error-border); + height: 24px; + width: 24px; + margin: 0 0 -4px 0; + } + button { + margin: -1px 0 0 0; + background: transparent; + border: none; + outline: none; + cursor: pointer; + svg { + fill: var(--color-dark-elements-gray); + height: 12px; + width: 12px; + } + } + p { + margin: 0 8px 0 8px; + } +} + +@keyframes pop { + 0% { + bottom: -50px; + } + 60% { + bottom: 50px; + } + 75% { + bottom: 46px; + } + 90% { + bottom: 50px; + } + 100% { + bottom: 48px; + } +} diff --git a/lib/typescript/components/alerts/SettingsModal/ModalHeader.module.scss b/lib/typescript/components/alerts/SettingsModal/ModalHeader.module.scss new file mode 100644 index 0000000000..b40d9a283a --- /dev/null +++ b/lib/typescript/components/alerts/SettingsModal/ModalHeader.module.scss @@ -0,0 +1,38 @@ +@import 'assets/scss/colors.scss'; +@import 'assets/scss/fonts.scss'; + +.modalHeader { + @include font-m; + color: var(--color-text-contrast); + margin-bottom: 16px; + padding-right: 32px; +} + +.headline { + font-weight: 900; +} + +.closeButton { + border: none; + cursor: pointer; + background-color: transparent; + line-height: 20px; + padding: 3px 6px; + background: none; + margin-left: 10px; + font-weight: 100; + outline: none; + position: absolute; + right: 16px; + top: 16px; +} + +.closeIcon { + svg { + width: 16px; + height: 16px; + path { + stroke: #aaa; + } + } +} diff --git a/lib/typescript/components/alerts/SettingsModal/ModalHeader.tsx b/lib/typescript/components/alerts/SettingsModal/ModalHeader.tsx new file mode 100644 index 0000000000..e265836a44 --- /dev/null +++ b/lib/typescript/components/alerts/SettingsModal/ModalHeader.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import styles from './ModalHeader.module.scss'; +import {ReactComponent as CloseIcon} from 'assets/images/icons/close.svg'; + +type ModalHeaderProps = { + title: string; + close: (event: React.MouseEvent) => void; +}; + +const ModalHeader = ({title, close}: ModalHeaderProps) => { + return ( +
+ +
{title}
+
+ ); +}; + +export default ModalHeader; diff --git a/lib/typescript/components/alerts/SettingsModal/index.tsx b/lib/typescript/components/alerts/SettingsModal/index.tsx new file mode 100644 index 0000000000..8bf085d537 --- /dev/null +++ b/lib/typescript/components/alerts/SettingsModal/index.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import Modal from 'react-modal'; +import ModalHeader from './ModalHeader'; + +import styles from './style.module.scss'; + +export const SettingsModal = ({close, title, children, style}) => { + return ( + +
+ + +
{children}
+
+
+ ); +}; diff --git a/lib/typescript/components/alerts/SettingsModal/style.module.scss b/lib/typescript/components/alerts/SettingsModal/style.module.scss new file mode 100644 index 0000000000..aaaa5f5ecf --- /dev/null +++ b/lib/typescript/components/alerts/SettingsModal/style.module.scss @@ -0,0 +1,34 @@ +@import 'assets/scss/colors.scss'; +@import 'assets/scss/fonts.scss'; + +.container { + display: flex; + justify-content: flex-start; + width: 100%; +} + +.content { + position: fixed; + top: 50%; + left: 50%; + transition: top 0.5s; + right: auto; + bottom: auto; + margin-right: -50%; + min-width: 450px; + transform: translate(-50%, -50%); + border: none; + background-color: white; + border-radius: 7px; + padding: 2em; + outline: none; +} + +.overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); +} diff --git a/lib/typescript/components/alerts/index.ts b/lib/typescript/components/alerts/index.ts new file mode 100644 index 0000000000..3234d2c997 --- /dev/null +++ b/lib/typescript/components/alerts/index.ts @@ -0,0 +1,4 @@ +export * from './ErrorMessage'; +export * from './ErrorPopUp'; +export * from './ErrorNotice'; +export * from './SettingsModal'; diff --git a/lib/typescript/components/cta/Button/index.tsx b/lib/typescript/components/cta/Button/index.tsx new file mode 100644 index 0000000000..b9809a9f93 --- /dev/null +++ b/lib/typescript/components/cta/Button/index.tsx @@ -0,0 +1,47 @@ +import React, {ReactNode} from 'react'; + +import styles from './style.module.scss'; + +type styleVariantType = 'small' | 'normal' | 'outline' | 'outline-big' | 'warning' | 'link' | 'text'; +type ButtonProps = { + children: ReactNode; + onClick?: (event?) => void; + type?: 'submit' | 'button' | 'reset'; + disabled?: boolean; + styleVariant?: styleVariantType; + tabIndex?: any; + dataCy?: string; +}; + +export const Button = ({children, onClick, type, styleVariant, disabled, tabIndex, dataCy}: ButtonProps) => { + const styleFor = (variant: styleVariantType) => { + switch (variant) { + case 'small': + return styles.smallButton; + case 'outline': + return styles.outlineButton; + case 'outline-big': + return styles.outlineButtonBig; + case 'warning': + return styles.warningButton; + case 'link': + return styles.linkButton; + case 'text': + return styles.textButton; + default: + return styles.button; + } + }; + + return ( + + ); +}; diff --git a/lib/typescript/components/cta/Button/style.module.scss b/lib/typescript/components/cta/Button/style.module.scss new file mode 100644 index 0000000000..bbe605c62f --- /dev/null +++ b/lib/typescript/components/cta/Button/style.module.scss @@ -0,0 +1,108 @@ +@import 'assets/scss/colors.scss'; +@import 'assets/scss/fonts.scss'; + +.button { + @include font-m; + font-weight: 700; + line-height: 16px; + font-size: 20px; + height: 40px; + background-color: var(--color-airy-blue); + color: white; + border-radius: 4px; + text-align: center; + border: none; + cursor: pointer; + padding: 8px 16px; + margin: 0 0; + &:hover { + background-color: var(--color-airy-blue-hover); + } + + &:active { + background: var(--color-airy-blue-pressed); + } + + &:disabled { + cursor: not-allowed; + color: var(--color-text-gray) !important; + background-color: var(--color-light-gray) !important; + border: none; + } +} + +.smallButton { + @extend .button; + @include font-base; + font-weight: 400; + line-height: 24px; + font-size: 16px; + height: 32px; + padding: 4px 16px; +} + +.outlineButton { + @extend .button; + @include font-base; + font-weight: 400; + line-height: 16px; + font-size: 13px; + height: 24px; + padding: 0 8px 0 8px; + background-color: white; + color: var(--color-airy-blue); + border: 1px solid var(--color-airy-blue); + + &:hover { + background-color: var(--color-airy-blue-hover); + color: white; + } + + &:active { + background: var(--color-airy-blue-pressed); + } +} + +.outlineButtonBig { + @extend .outlineButton; + @include font-base; + height: 32px; + padding: 3px 16px; +} + +.linkButton { + @include font-base; + border: none; + background: transparent; + text-decoration: underline; + color: var(--color-airy-blue); + cursor: pointer; + float: right; + padding: 1.35em 0.25em; + font-size: 1em; + line-height: 1.2rem; + margin-left: 1em; + border-radius: 4px; + margin-right: 1em; + &:hover { + color: var(--color-airy-blue-hover); + } + &:active { + color: var(--color-airy-blue-pressed); + } +} + +.textButton { + @extend .linkButton; + text-decoration: none; +} + +.warningButton { + @extend .smallButton; + background-color: var(--color-red-alert); + color: var(--color-background-red); + + &:hover { + background-color: var(--color-red-alert); + } +} diff --git a/lib/typescript/components/cta/HrefButton/index.tsx b/lib/typescript/components/cta/HrefButton/index.tsx new file mode 100644 index 0000000000..ca4f5b1197 --- /dev/null +++ b/lib/typescript/components/cta/HrefButton/index.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import {Link} from 'react-router-dom'; + +import styles from './style.module.scss'; + +type Props = { + children: React.ReactNode; + href: string; + dataCy?: string; +}; + +export const HrefButton = ({children, href, dataCy}: Props) => ( + +
+ {children} +
+ +); diff --git a/lib/typescript/components/cta/HrefButton/style.module.scss b/lib/typescript/components/cta/HrefButton/style.module.scss new file mode 100644 index 0000000000..c6161e2cbe --- /dev/null +++ b/lib/typescript/components/cta/HrefButton/style.module.scss @@ -0,0 +1,23 @@ +@import 'assets/scss/colors.scss'; +@import 'assets/scss/fonts.scss'; + +.button { + display: inline-block; + border-radius: 4px; + background-color: var(--color-airy-blue); + cursor: pointer; + padding: 4px 16px; + + &:hover { + background-color: var(--color-airy-blue-hover); + text-decoration: none; + } + + text-decoration: none; +} + +.buttonLabel { + @include font-base; + color: white; + text-align: center; +} diff --git a/lib/typescript/components/cta/LinkButton/index.tsx b/lib/typescript/components/cta/LinkButton/index.tsx new file mode 100644 index 0000000000..bcd51fd47a --- /dev/null +++ b/lib/typescript/components/cta/LinkButton/index.tsx @@ -0,0 +1,17 @@ +import React, {MouseEventHandler} from 'react'; + +import styles from './style.module.scss'; + +type Props = { + children: React.ReactNode; + href?: string; + type?: 'submit' | 'reset' | 'button'; + onClick?: MouseEventHandler; + dataCy?: string; +}; + +export const LinkButton = ({children, onClick, type, dataCy}: Props) => ( + +); diff --git a/lib/typescript/components/cta/LinkButton/style.module.scss b/lib/typescript/components/cta/LinkButton/style.module.scss new file mode 100644 index 0000000000..0bcbcb6b8e --- /dev/null +++ b/lib/typescript/components/cta/LinkButton/style.module.scss @@ -0,0 +1,12 @@ +@import 'assets/scss/colors.scss'; +@import 'assets/scss/fonts.scss'; + +.button { + @include font-base; + border: 0; + padding: 0; + background-color: white; + cursor: pointer; + text-decoration: underline; + color: var(--color-airy-blue); +} diff --git a/lib/typescript/components/cta/index.ts b/lib/typescript/components/cta/index.ts new file mode 100644 index 0000000000..e5d8a8a7a9 --- /dev/null +++ b/lib/typescript/components/cta/index.ts @@ -0,0 +1,3 @@ +export * from './Button'; +export * from './LinkButton'; +export * from './HrefButton'; diff --git a/lib/typescript/components/general/Carousel/index.module.scss b/lib/typescript/components/general/Carousel/index.module.scss new file mode 100644 index 0000000000..7bb4117870 --- /dev/null +++ b/lib/typescript/components/general/Carousel/index.module.scss @@ -0,0 +1,69 @@ +@import 'assets/scss/fonts'; +@import 'assets/scss/colors'; + +.wrapper { + display: flex; + flex-direction: column; + margin-top: 5px; + overflow: hidden; + position: relative; +} + +.carouselChildren { + display: flex; + flex-direction: row; + overflow: hidden; + max-width: 100%; +} + +.buttonScroll { + position: absolute; + width: 30px; + height: 40px; + top: 50%; + transform: translateY(-50%); + border: none; + background-color: #ffffff; + padding: 0; + line-height: 0; + cursor: pointer; + display: none; + + &:focus { + border: none; + outline: none; + } + &:active { + transition-duration: 0.2s; + transition: ease-in-out; + svg { + width: 18px; + height: 18px; + } + } +} + +.buttonLeft { + @extend .buttonScroll; + position: absolute; + border-top-right-radius: 12px; + border-bottom-right-radius: 12px; + left: 0; +} + +.buttonRight { + @extend .buttonScroll; + position: absolute; + border-top-left-radius: 12px; + border-bottom-left-radius: 12px; + right: 0px; +} + +.scrollButton { + width: 24px; +} + +.messageTime { + @include font-s; + color: var(--color-text-gray); +} diff --git a/lib/typescript/components/general/Carousel/index.tsx b/lib/typescript/components/general/Carousel/index.tsx new file mode 100644 index 0000000000..2a719bdbba --- /dev/null +++ b/lib/typescript/components/general/Carousel/index.tsx @@ -0,0 +1,122 @@ +import React, {useCallback, useEffect, useRef} from 'react'; +import styles from './index.module.scss'; +import {ReactComponent as LeftArrow} from 'assets/images/icons/leftArrow.svg'; +import {ReactComponent as RightArrow} from 'assets/images/icons/rightArrow.svg'; + +export const Carousel = ({children}) => { + const carouselChildren = useRef(null); + const buttonLeft = useRef(null); + const buttonRight = useRef(null); + + const getScrollBy = (element: HTMLDivElement) => { + return element.clientWidth * 0.92; + }; + + const getElementWidth = (element: HTMLElement) => { + const style = element.style; + const margin = (parseFloat(style.marginLeft) || 0) + (parseFloat(style.marginRight) || 0); + return element.offsetWidth + margin; + }; + + const maximumScrollLeft = (element: HTMLDivElement) => { + const leftCutOf = carouselChildren.current.scrollLeft; + let currentChild = -1; + let currentPosX = 0; + let maxScroll = 0; + + while (currentChild < element.children.length && currentPosX < leftCutOf) { + currentChild += 1; + maxScroll = currentPosX; + currentPosX += getElementWidth(element.children[currentChild] as HTMLElement); + } + + return maxScroll - element.clientWidth; + }; + + const maximumScrollRight = (element: HTMLDivElement) => { + const rightCutOf = carouselChildren.current.scrollLeft + element.clientWidth; + let currentChild = -1; + let currentPosX = 0; + let maxScroll = 0; + + while (currentChild < element.children.length && currentPosX < rightCutOf) { + currentChild += 1; + maxScroll = currentPosX; + currentPosX += getElementWidth(element.children[currentChild] as HTMLElement); + } + + return maxScroll; + }; + + const moveLeft = useCallback(() => { + carouselChildren.current.scroll({ + left: Math.max( + carouselChildren.current.scrollLeft - getScrollBy(carouselChildren.current), + maximumScrollLeft(carouselChildren.current) + ), + behavior: 'smooth', + }); + }, [carouselChildren]); + + const moveRight = useCallback(() => { + carouselChildren.current.scroll({ + left: Math.min( + carouselChildren.current.scrollLeft + getScrollBy(carouselChildren.current), + maximumScrollRight(carouselChildren.current) + ), + behavior: 'smooth', + }); + }, [carouselChildren]); + + const resetScrollButtons = useCallback(() => { + const element = carouselChildren.current; + if (buttonLeft.current) { + if (element.scrollLeft > 0) { + buttonLeft.current.style.display = 'block'; + } else { + buttonLeft.current.style.display = 'none'; + } + } + if (buttonRight.current) { + if (element.scrollLeft + element.clientWidth < element.scrollWidth && element.scrollWidth > element.clientWidth) { + buttonRight.current.style.display = 'block'; + } else { + buttonRight.current.style.display = 'none'; + } + } + }, [carouselChildren, buttonLeft, buttonRight]); + + const registerObserver = useCallback(() => { + const resizeObserver = new ResizeObserver(() => { + resetScrollButtons(); + }); + + if (carouselChildren && carouselChildren.current) { + resizeObserver.observe(carouselChildren.current); + resetScrollButtons(); + carouselChildren.current.addEventListener('scroll', () => { + resetScrollButtons(); + }); + } + }, [carouselChildren]); + + useEffect(() => { + setTimeout(registerObserver, 200); + }, []); + + return ( +
+
+ {children} +
+
+ + +
+
+ ); +}; diff --git a/lib/typescript/components/general/ListenOutsideClick/index.tsx b/lib/typescript/components/general/ListenOutsideClick/index.tsx new file mode 100644 index 0000000000..1bf71ff3a5 --- /dev/null +++ b/lib/typescript/components/general/ListenOutsideClick/index.tsx @@ -0,0 +1,44 @@ +import React, {useEffect, useRef} from 'react'; + +type ListenOutsideClickProps = { + children: React.ReactNode; + className?: string; + onOuterClick: () => void; +}; + +export const ListenOutsideClick = ({children, className, onOuterClick}: ListenOutsideClickProps) => { + const innerRef = useRef(null); + + useEffect(() => { + const handleClick = event => { + if (innerRef.current && !innerRef.current.contains(event.target)) { + event.preventDefault(); + onOuterClick(); + } + }; + + const keyDown = (event: KeyboardEvent) => { + if (event.key === 'Escape') { + onOuterClick(); + } + }; + + // only add listener, if the element exists + if (innerRef.current) { + document.addEventListener('click', handleClick); + document.addEventListener('keydown', keyDown); + } + + // unmount previous first in case inputs have changed + return () => { + document.removeEventListener('click', handleClick); + document.removeEventListener('keydown', keyDown); + }; + }, [onOuterClick, innerRef]); + + return ( +
+ {children} +
+ ); +}; diff --git a/lib/typescript/components/general/index.ts b/lib/typescript/components/general/index.ts new file mode 100644 index 0000000000..19b7059d5d --- /dev/null +++ b/lib/typescript/components/general/index.ts @@ -0,0 +1,2 @@ +export * from './Carousel'; +export * from './ListenOutsideClick'; diff --git a/lib/typescript/components/index.ts b/lib/typescript/components/index.ts new file mode 100644 index 0000000000..ca63be4888 --- /dev/null +++ b/lib/typescript/components/index.ts @@ -0,0 +1,5 @@ +export * from './alerts'; +export * from './cta'; +export * from './general'; +export * from './inputs'; +export * from './loaders'; diff --git a/lib/typescript/components/inputs/Dropdown/index.tsx b/lib/typescript/components/inputs/Dropdown/index.tsx new file mode 100644 index 0000000000..442ea5d558 --- /dev/null +++ b/lib/typescript/components/inputs/Dropdown/index.tsx @@ -0,0 +1,81 @@ +import React, {useRef, useState, useEffect, useCallback} from 'react'; +import styles from './style.module.scss'; +import {ReactComponent as ChevronDown} from 'assets/images/icons/chevron-down.svg'; + +export const Dropdown = ({text, options, variant, onClick}) => { + const [dropdownVisible, setDropdownVisible] = useState(false); + const componentEl = useRef(null); + const buttonEl = useRef(null); + + const styleFor = variant => { + switch (variant) { + case 'borderless': + return styles.borderlessButton; + default: + return styles.button; + } + }; + + const showDropdown = useCallback( + dropdownVisible => { + setDropdownVisible(dropdownVisible); + }, + [dropdownVisible, setDropdownVisible, buttonEl] + ); + + const itemSelected = useCallback( + option => { + showDropdown(false); + onClick(option); + }, + [onClick, showDropdown] + ); + + const keyDownHandler = useCallback( + e => { + if (e.key === 'Escape') { + showDropdown(false); + } + }, + [showDropdown] + ); + + const eventHandler = useCallback( + e => { + if (componentEl.current && !componentEl.current.contains(e.target)) { + showDropdown(false); + } + }, + [showDropdown] + ); + + useEffect(() => { + document.addEventListener('keydown', keyDownHandler); + document.addEventListener('click', eventHandler, true); + document.addEventListener('focus', eventHandler, true); + + return () => { + document.removeEventListener('keydown', keyDownHandler); + document.removeEventListener('click', eventHandler); + document.removeEventListener('focus', eventHandler); + }; + }, [document, eventHandler, keyDownHandler]); + + return ( +
+ + {dropdownVisible && ( +
+ {options.map(option => ( + + ))} +
+ )} +
+ ); +}; diff --git a/lib/typescript/components/inputs/Dropdown/style.module.scss b/lib/typescript/components/inputs/Dropdown/style.module.scss new file mode 100644 index 0000000000..88e283fc8c --- /dev/null +++ b/lib/typescript/components/inputs/Dropdown/style.module.scss @@ -0,0 +1,110 @@ +@import 'assets/scss/colors.scss'; +@import 'assets/scss/fonts.scss'; + +.component { + width: 100%; +} + +.button { + @include font-base; + line-height: 16px; + color: var(--color-text-contrast); + border-radius: 4px; + text-align: center; + border: 1px solid var(--color-dark-elements-gray); + cursor: pointer; + padding: 6px 8px; + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + font-weight: normal; + background: transparent; + margin: 0 0; + + &:hover { + background: transparent; + color: var(--color-text-contrast); + } + + &:active { + background: var(--color-background-gray); + } + + &:disabled { + cursor: not-allowed; + color: var(--color-text-gray) !important; + background-color: var(--color-light-gray) !important; + border: none; + } + + &:focus { + outline: none !important; + } + + &::-moz-focus-inner { + border: 0; + } +} + +.borderlessButton { + @extend .button; + border: none; +} + +.chevron { + width: 16px; + margin-left: 16px; + margin-top: 6px; + margin-right: 8px; + margin-bottom: 4px; + fill: var(--color-text-gray); + -webkit-transition: 0.2s ease-in-out; + -moz-transition: 0.2s ease-in-out; + -o-transition: 0.2s ease-in-out; + transition: 0.2s ease-in-out; +} + +.chevronRotated { + transform: rotate(180deg); +} + +.dropDown { + position: absolute; + margin-top: 4px; + overflow: visible; + background: white; + border: 1px solid lightgray; + border-radius: 6px; + align-self: flex-start; + z-index: 1; + max-height: 250px; + overflow-y: scroll; + min-width: 48px; +} + +.item { + @include font-base; + display: flex; + border: 0 solid white; + box-shadow: 0 0 0 0 white; + padding: 8px 8px; + cursor: pointer; + align-self: flex-start; + width: 100%; + justify-content: flex-start; + background: transparent; + &:first-child { + border-radius: 6px 6px 0 0; + } + &:last-child { + border-radius: 0 0 6px 6px; + } + &:focus { + outline: none !important; + } + &:hover { + background: var(--color-background-gray); + outline: none !important; + } +} diff --git a/lib/typescript/components/inputs/Input/index.tsx b/lib/typescript/components/inputs/Input/index.tsx new file mode 100644 index 0000000000..201d05ed2d --- /dev/null +++ b/lib/typescript/components/inputs/Input/index.tsx @@ -0,0 +1,468 @@ +import React, {Component, Fragment} from 'react'; +import {Picker} from 'emoji-mart'; + +import styles from './style.module.scss'; +import {ReactComponent as CheckmarkIcon} from 'assets/images/icons/checkmark.svg'; +import {ReactComponent as CloseIcon} from 'assets/images/icons/close.svg'; +import {ReactComponent as SmileyIcon} from 'assets/images/icons/smiley.svg'; + +class InputComponent extends Component { + public static defaultProps = { + height: 48, + fontClass: 'font-l', + label: '', + autoFocus: false, + hideLabel: false, + showCounter: true, + }; + + inputRef: React.RefObject; + node: HTMLDivElement; + + constructor(props) { + super(props); + this.state = { + validationResult: undefined, + wasBlurred: false, + isShowingEmojiDrawer: false, + }; + this.inputRef = React.createRef(); + } + + componentDidMount = () => { + const {inputRef, value} = this.props; + if (value) { + this.validateInput((inputRef || this.inputRef).current); + } + }; + + componentDidUpdate = prevProps => { + const inputRef = this.props.inputRef || this.inputRef; + if ((inputRef.current && !prevProps.showErrors && this.props.showErrors) || this.props.value !== prevProps.value) { + this.validateInput(inputRef.current); + } + }; + + translateResult = (type, validity) => { + if (validity.valueMissing) { + return 'This field cannot be empty.'; + } else if (type === 'url' && validity.typeMismatch) { + return 'The URL is invalid'; + } else { + return validity.valid; + } + }; + + checkWithHTML5Validation = inputElement => { + if (inputElement === null || !this.hasValidations()) { + return; + } + inputElement.checkValidity(); + this.setState({validationResult: inputElement.validity.valid}); + if (inputElement.type === 'email') { + if (!inputElement.validity.valid) { + this.setState({ + validationResult: 'This doesn’t look like an email address.', + }); + } else { + this.setState({validationResult: true}); + } + } else { + this.setState({ + validationResult: this.translateResult(inputElement.type, inputElement.validity), + }); + } + }; + + hasValidations = () => { + return ( + this.props.type === 'url' || + this.props.type === 'email' || + this.props.required || + this.props.minLength || + this.props.maxLength || + this.props.validation + ); + }; + + checkWithValidationFunction = inputElement => { + const {validation} = this.props; + const validationResult = validation(inputElement.value); + this.setState({validationResult: validationResult}); + if (validationResult === true) { + inputElement.setCustomValidity(''); + } else { + inputElement.setCustomValidity(validationResult); + } + }; + + checkWithURLValidation = inputElement => { + this.checkWithHTML5Validation(inputElement); + + if (!this.props.required && inputElement.value.length == 0) { + inputElement.setCustomValidity(''); + return; + } + + if (!inputElement.value.match(/.*\w\.\w.*/)) { + this.setState({ + validationResult: 'The URL is invalid', + }); + inputElement.setCustomValidity('The URL is invalid'); + } else { + inputElement.setCustomValidity(''); + } + }; + + validateInput = inputElement => { + const {validation, type} = this.props; + if (validation) { + this.checkWithValidationFunction(inputElement); + } else if (type === 'url') { + this.checkWithURLValidation(inputElement); + } else { + this.checkWithHTML5Validation(inputElement); + } + }; + + onChange = event => { + const {onChange} = this.props; + this.validateInput(event.target); + if (onChange) { + onChange(event); + } + }; + + onBlur = event => { + const {onBlur} = this.props; + this.setState({wasBlurred: true}); + this.validateInput(event.target); + if (onBlur) { + onBlur(event); + } + }; + + getCurrentValidationState = () => { + if (this.state.validationResult === true) { + return 'inputValid'; + } else if (this.state.validationResult === undefined) { + return null; + } + + if (!this.state.wasBlurred && !this.props.showErrors) { + return null; + } + + return 'inputInvalid'; + }; + + classForState = () => { + switch (this.getCurrentValidationState()) { + case 'inputInvalid': + return styles.inputInvalid; + case 'inputValid': + return styles.inputValid; + default: + return ''; + } + }; + + iconForState = () => { + if (this.state.validationResult === true) { + return ( +
+
+ ); + } else if (this.state.validationResult === undefined) { + return null; + } + + if (!this.state.wasBlurred && !this.props.showErrors) { + return null; + } + + return ( +
+
+ ); + }; + + addListeners = () => { + document.addEventListener('keydown', this.handleEmojiKeyEvent); + document.addEventListener('click', this.handleEmojiOutsideClick); + }; + + removeListeners = () => { + document.removeEventListener('keydown', this.handleEmojiKeyEvent); + document.removeEventListener('click', this.handleEmojiOutsideClick); + }; + + handleEmojiDrawer = () => { + if (!this.state.isShowingEmojiDrawer) { + this.addListeners(); + } else { + this.removeListeners(); + this.inputRef.current && this.inputRef.current.focus(); + } + + this.setState({isShowingEmojiDrawer: !this.state.isShowingEmojiDrawer}); + }; + + handleEmojiKeyEvent = e => { + if (e.key === 'Escape') { + this.handleEmojiDrawer(); + } + }; + + handleEmojiOutsideClick = e => { + if (this.node && this.node.contains(e.target)) { + return; + } + this.handleEmojiDrawer(); + }; + + addEmoji = emoji => { + let message = emoji.native; + const inputRef = this.props.inputRef || this.inputRef; + if (this.props.value) { + message = this.props.value + ' ' + message; + } + + inputRef.current.value = message; + + this.onChange({target: inputRef.current}); + + this.handleEmojiDrawer(); + }; + + emojiDrawer = () => { + return ( +
{ + this.node = node; + }} + className={styles.emojiDrawer}> + +
+ ); + }; + + render() { + const { + id, + label, + hideLabel, + name, + value, + checked, + placeholder, + hint, + height, + type, + inputRef, + inputmode, + minLength, + maxLength, + showErrors, + children, + fontClass, + inputComponent, + autoFocus, + required, + autoComplete, + disabled, + onKeyDown, + pattern, + showCounter, + onFocus, + dataCy, + } = this.props; + + const {validationResult, wasBlurred} = this.state; + const labelClass = `${this.classForState()} ${styles.label}`; + const inputClass = `${styles[fontClass]} ${styles.inputInner} `; + + return ( + + ); + } +} + +export interface InputProps { + id?: string; + /** The label above the input field */ + label?: string; + + /** Want to hide the label completely? */ + hideLabel?: boolean; + + /** An addional hint below the input field */ + hint?: string; + value?: string; + checked?: boolean; + name?: string; + placeholder?: string; + /** + * validation function. Should return true if valid, + * undefined if neutral and a string explaining + * what is wrong otherwise + **/ + validation?: any; + type?: string; + autoFocus?: boolean; + onChange?: (e: React.ChangeEvent) => void; + onFocus?: (e: React.FocusEvent) => void; + onBlur?: (e: React.FocusEvent) => void; + onKeyDown?: (e: React.KeyboardEvent) => void; + inputRef?: React.RefObject; + /** Minimum length for validation */ + minLength?: number; + maxLength?: number; + /** true if this is a required input, defaults to false */ + required?: boolean; + /** If we wish to disable the input field for further input or validation related issues */ + disabled?: boolean; + + pattern?: string; + /** + * usually the field only shows the error after a blur event, + * but if you want to show errors on all fields after a submit button + * was pressed, simply set this state to true and the error is shown. + */ + showErrors?: boolean; + height?: number; + + // Since tuning font size is not the most common operation, this should suffice for now + fontClass?: 'font-base' | 'font-s' | 'font-m' | 'font-l' | 'font-xl' | 'font-xxl'; + + /** + * If you want to modify the label, you can add a function here. It will + * receive the icon as the first value of the function + */ + children?: any; + + /** + * You can replace the input tag with a custom rendered version with this function. See + * `Textarea` for an implementation example. + */ + inputComponent?: any; + + // If you want to enable browser suggestions on the input + autoComplete?: string; + + // set this to true if you want to have an emoji button + emoji?: boolean; + + // set this to true if you want to display the length counter + showCounter?: boolean; + + // html5 input mode + inputmode?: 'text' | 'none' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'; + + // a handle for Cypress + dataCy?: string; +} + +interface IState { + validationResult: string | boolean; + wasBlurred: boolean; + isShowingEmojiDrawer: boolean; +} + +export const Input = InputComponent; diff --git a/lib/typescript/components/inputs/Input/style.module.scss b/lib/typescript/components/inputs/Input/style.module.scss new file mode 100644 index 0000000000..687b3dec2c --- /dev/null +++ b/lib/typescript/components/inputs/Input/style.module.scss @@ -0,0 +1,182 @@ +@import 'assets/scss/colors.scss'; +@import 'assets/scss/fonts.scss'; + +.label { + width: 100%; +} + +.input { + display: flex; + background-color: white; + width: 100%; + border: 1px solid var(--color-dark-elements-gray); + border-radius: 4px; + color: var(--color-text-contrast); + overflow: hidden; + + &::placeholder { + color: var(--color-text-gray); + } + + &:focus-within { + background-color: var(--color-background-blue); + border: 1px solid var(--color-airy-blue); + outline: none; + } +} + +.inputInvalid { + .inputTitle { + color: var(--color-red-alert); + + .icon svg { + path { + fill: var(--color-red-alert); + } + } + } + .input { + border: 1px solid var(--color-red-alert); + background-color: var(--color-background-red); + + &:invalid { + border: 1px solid var(--color-red-alert); + outline: none; + box-shadow: none; + } + } +} + +.inputValid { + .inputTitle { + color: var(--color-soft-green); + + .icon svg { + width: 12px; + height: 12px; + + path { + fill: var(--color-soft-green); + } + } + } + .input { + border: 1px solid var(--color-soft-green); + } +} + +.inputTitle { + @include font-base; + color: var(--color-text-contrast); + margin-bottom: 8px; + width: 100%; +} + +.inputHint { + @include font-s; + margin-top: 8px; + color: var(--color-text-contrast); +} + +.icon { + display: inline-block; + margin-left: 4px; +} + +.inputTitleRow { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.inputMaxLength { + @include font-s; + color: var(--color-text-contrast); + margin-bottom: 8px; + margin-right: 4px; + display: flex; + align-self: flex-end; +} + +.inputInner { + flex-grow: 1; + border: none; + padding: 4px 8px; + + &:focus { + background-color: var(--color-background-blue); + border: none; + outline: none; + } + + &:invalid { + border: none; + outline: none; + box-shadow: none; + background-color: rgba(0, 0, 0, 0); + } +} + +.inputMaxLengthError { + color: var(--color-red-alert); +} + +.emojiIcon { + display: inline-block; + height: 26px; + padding-right: 4px; + cursor: pointer; + border: none; + background: none; + line-height: 0; + svg { + width: 16px; + path { + fill: var(--color-light-gray); + } + } + &:hover { + svg { + width: 16px; + path { + fill: var(--color-text-contrast); + } + } + } + &:disabled { + cursor: not-allowed; + svg { + width: 16px; + path { + fill: var(--color-light-gray); + } + } + } +} + +.emojiIconActive { + svg { + width: 16px; + path { + fill: var(--color-airy-blue); + } + } + &:hover { + svg { + width: 16px; + path { + fill: var(--color-airy-blue); + } + } + } +} + +.emojiDrawer { + white-space: normal; +} + +.emojiWrapper { + position: relative; + display: flex; + align-items: center; +} diff --git a/lib/typescript/components/inputs/SearchField/index.tsx b/lib/typescript/components/inputs/SearchField/index.tsx new file mode 100644 index 0000000000..2eeaeacd74 --- /dev/null +++ b/lib/typescript/components/inputs/SearchField/index.tsx @@ -0,0 +1,48 @@ +import React, {createRef, useCallback} from 'react'; + +import {ReactComponent as CloseIcon} from 'assets/images/icons/close.svg'; +import {ReactComponent as SearchIcon} from 'assets/images/icons/search.svg'; +import styles from './style.module.scss'; + +type Props = { + id?: string; + placeholder?: string; + value: string; + setValue: (value: string) => void; + resetClicked?: () => void; + autoFocus?: boolean; + dataCy?: string; +}; + +export const SearchField = ({id, placeholder, value, setValue, resetClicked, autoFocus, dataCy}: Props) => { + const inputRef = createRef(); + const resetButton = useCallback(() => { + setValue(''); + if (resetClicked) { + resetClicked(); + } + }, [value, setValue]); + + return ( +
+
+
+ setValue(event.target.value)} + type="search" + autoFocus={autoFocus} + data-cy={dataCy} + /> + {value !== '' && ( + + )} +
+ ); +}; diff --git a/lib/typescript/components/inputs/SearchField/style.module.scss b/lib/typescript/components/inputs/SearchField/style.module.scss new file mode 100644 index 0000000000..f870274c67 --- /dev/null +++ b/lib/typescript/components/inputs/SearchField/style.module.scss @@ -0,0 +1,65 @@ +@import 'assets/scss/fonts.scss'; + +.component { + display: flex; + flex-direction: row; + border: 1px solid var(--color-light-gray); + border-radius: 8px; + padding: 4px 8px; + + input { + @include font-base; + border: none; + width: 100%; + border-radius: 0; + -webkit-appearance: none; + + &::-webkit-search-decoration, + &::-webkit-search-cancel-button { + -webkit-appearance: none; + } + + &:focus { + border: none; + outline: none; + } + } + + &:focus-within { + border-color: var(--color-airy-blue); + } +} + +.searchIcon { + svg { + width: 22px; + height: 22px; + padding-top: 2px; + margin-right: 4px; + position: relative; + top: 2px; + + path { + fill: var(--color-text-gray); + } + } +} + +.resetButton { + background-color: rgba(0, 0, 0, 0); + border: none; + cursor: pointer; + padding: 0px 4px; +} + +.closeIcon { + svg { + margin: 0; + width: 10px; + height: 10px; + + path { + fill: var(--color-text-gray); + } + } +} diff --git a/lib/typescript/components/inputs/TextArea/index.tsx b/lib/typescript/components/inputs/TextArea/index.tsx new file mode 100644 index 0000000000..4ab5b23d94 --- /dev/null +++ b/lib/typescript/components/inputs/TextArea/index.tsx @@ -0,0 +1,75 @@ +import React, {Component} from 'react'; +import TextareaAutosize from 'react-autosize-textarea'; + +import {Input, InputProps} from '../Input'; +import styles from './style.module.scss'; + +class TextAreaComponent extends Component { + classForState = currentValidationState => { + switch (currentValidationState) { + case 'inputInvalid': + return styles.inputInvalid; + case 'inputValid': + return styles.inputValid; + default: + return ''; + } + }; + + renderComponent = props => { + const { + id, + inputRef, + placeholder, + onChange, + onBlur, + type, + value, + autoFocus, + name, + minLength, + maxLength, + required, + fontClass, + currentValidationState, + dataCy, + } = props; + + const inputClass = `${styles.textarea} ${fontClass || 'font-l'} ${this.classForState(currentValidationState)}`; + return ( + + ); + }; + + render() { + return ( + + {this.props.children} + + ); + } +} + +interface IProps { + minRows: number; + maxRows: number; +} + +export const TextArea = TextAreaComponent; diff --git a/lib/typescript/components/inputs/TextArea/style.module.scss b/lib/typescript/components/inputs/TextArea/style.module.scss new file mode 100644 index 0000000000..773ff3abed --- /dev/null +++ b/lib/typescript/components/inputs/TextArea/style.module.scss @@ -0,0 +1,52 @@ +@import 'assets/scss/colors.scss'; +@import 'assets/scss/fonts.scss'; + +.textarea { + background-color: white; + width: 100%; + border: 1px solid var(--color-dark-elements-gray); + border-radius: 4px; + padding: 4px 8px; + color: var(--color-text-contrast); + box-sizing: border-box; + + &::placeholder { + color: var(--color-text-gray); + } + + &:focus { + background-color: var(--color-background-blue); + border: 1px solid var(--color-airy-blue); + outline: none; + } + + &:invalid { + border: 1px solid var(--color-dark-elements-gray); + outline: none; + box-shadow: none; + } +} + +.inputInvalid { + border: 1px solid var(--color-red-alert); + background-color: var(--color-background-red); + + &:invalid { + border: 1px solid var(--color-red-alert); + outline: none; + box-shadow: none; + } + + &:focus { + background-color: var(--color-background-red); + } +} + +.inputValid { + border: 1px solid var(--color-soft-green); + + &:focus { + background-color: var(--color-background-blue); + border: 1px solid var(--color-airy-blue); + } +} diff --git a/lib/typescript/components/inputs/Toggle/index.tsx b/lib/typescript/components/inputs/Toggle/index.tsx new file mode 100644 index 0000000000..be1a78eb7c --- /dev/null +++ b/lib/typescript/components/inputs/Toggle/index.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import styles from './style.module.scss'; + +type ToggleType = { + value: boolean; + text: string; + updateValue: (value: boolean) => void; +}; + +export const Toggle = ({value, text, updateValue}: ToggleType) => { + const onCheckboxChange = event => { + updateValue(event.target.checked); + }; + return ( + + ); +}; diff --git a/lib/typescript/components/inputs/Toggle/style.module.scss b/lib/typescript/components/inputs/Toggle/style.module.scss new file mode 100644 index 0000000000..81072c8873 --- /dev/null +++ b/lib/typescript/components/inputs/Toggle/style.module.scss @@ -0,0 +1,56 @@ +.switch { + position: relative; + display: inline-block; + width: 48px; + height: 24px; + margin-right: 8px; +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--color-background-blue); + transition: 0.4s; + border-radius: 24px; + border: 1px solid var(--color-airy-blue); +} + +.slider:before { + position: absolute; + content: ''; + height: 16px; + width: 16px; + left: 4px; + bottom: 3px; + background-color: var(--color-airy-blue); + transition: 0.4s; + border-radius: 50%; +} + +input:checked + .slider { + background-color: var(--color-airy-blue); +} + +input:focus + .slider { + box-shadow: 0 0 0 2pt Highlight; +} +@media (-webkit-min-device-pixel-ratio: 0) { + input:focus + .slider { + box-shadow: 0 0 0 2pt -webkit-focus-ring-color; + } +} + +input:checked + .slider:before { + transform: translateX(24px); + background-color: white; +} diff --git a/lib/typescript/components/inputs/UrlInputField/index.tsx b/lib/typescript/components/inputs/UrlInputField/index.tsx new file mode 100644 index 0000000000..e7e34a33c9 --- /dev/null +++ b/lib/typescript/components/inputs/UrlInputField/index.tsx @@ -0,0 +1,39 @@ +import React, {useRef, useState} from 'react'; +import {Input, InputProps} from '../Input'; + +export const UrlInputField = ({onKeyDown, onChange, ...props}: InputProps) => { + const inputRef = useRef(null); + const [value, setValue] = useState(props.value); + + const updateUrl = event => { + const element = event.target; + if (element.value.length > 0 && !element.value.match(/http(s)?:\/\//)) { + element.value = `http://${element.value}`; + if (onChange) { + onChange(event); + } + setValue(element.value); + } + }; + + const keyDown = event => { + if (event.key === 'Enter') { + updateUrl(event); + } + if (onKeyDown) { + onKeyDown(event); + } + }; + + return ( + + ); +}; diff --git a/lib/typescript/components/inputs/index.ts b/lib/typescript/components/inputs/index.ts new file mode 100644 index 0000000000..31fa0c643e --- /dev/null +++ b/lib/typescript/components/inputs/index.ts @@ -0,0 +1,6 @@ +export * from './Dropdown'; +export * from './Input'; +export * from './SearchField'; +export * from './TextArea'; +export * from './UrlInputField'; +export * from './Toggle'; diff --git a/lib/typescript/components/loaders/AiryLoader/index.tsx b/lib/typescript/components/loaders/AiryLoader/index.tsx new file mode 100644 index 0000000000..501e62bf71 --- /dev/null +++ b/lib/typescript/components/loaders/AiryLoader/index.tsx @@ -0,0 +1,1305 @@ +import React from 'react'; +import {Lottie} from '@crello/react-lottie'; +import styles from './style.module.scss'; + +const animationData = { + v: '5.5.2', + fr: 25, + ip: 0, + op: 150, + w: 800, + h: 600, + nm: 'main', + ddd: 0, + assets: [ + { + id: 'comp_0', + layers: [ + { + ddd: 0, + ind: 2, + ty: 0, + nm: 'A', + refId: 'comp_1', + sr: 1, + ks: { + o: {a: 0, k: 100, ix: 11}, + r: {a: 0, k: 0, ix: 10}, + p: {a: 0, k: [400, 300, 0], ix: 2}, + a: {a: 0, k: [400, 300, 0], ix: 1}, + s: {a: 0, k: [100, 100, 100], ix: 6}, + }, + ao: 0, + w: 800, + h: 600, + ip: 0, + op: 153, + st: 0, + bm: 0, + }, + { + ddd: 0, + ind: 3, + ty: 4, + nm: 'Background – logo 4', + sr: 1, + ks: { + o: {a: 0, k: 100, ix: 11}, + r: {a: 0, k: 0, ix: 10}, + p: {a: 0, k: [400.048, 297.666, 0], ix: 2}, + a: {a: 0, k: [156.707, 157.891, 0], ix: 1}, + s: {a: 0, k: [100, 100, 100], ix: 6}, + }, + ao: 0, + shapes: [ + { + ty: 'gr', + it: [ + { + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ + [89.013, -5.356], + [6.654, -75.723], + [-9.549, -22.526], + [0.638, -2.729], + [0, 0], + [-0.32, 0.014], + [0, 0], + [-2.067, -1.479], + [-34.314, 0.411], + [1.404, 85.166], + ], + o: [ + [-75.877, 4.565], + [-2.328, 26.501], + [1.094, 2.58], + [0, 0], + [-0.073, 0.311], + [0, 0], + [2.538, -0.114], + [25.853, 18.504], + [85.17, -1.02], + [-1.444, -87.511], + ], + v: [ + [-9.365, -154.619], + [-154.081, -13.896], + [-142.446, 60.358], + [-141.689, 68.508], + [-155.108, 128.497], + [-154.616, 129.089], + [-96.912, 123.898], + [-89.829, 126.045], + [2.113, 154.895], + [155.101, -2.606], + ], + c: true, + }, + ix: 2, + }, + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, + }, + { + ty: 'mm', + mm: 4, + nm: 'Merge Paths 1', + mn: 'ADBE Vector Filter - Merge', + hd: false, + }, + { + ty: 'fl', + c: { + a: 0, + k: [0.294000004787, 0.702000038297, 0.991999966491, 1], + ix: 4, + }, + o: { + a: 1, + k: [ + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 72, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 79, + s: [100], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 94, + s: [100], + }, + {t: 101, s: [0]}, + ], + ix: 5, + }, + r: 1, + bm: 0, + nm: 'Fill 1', + mn: 'ADBE Vector Graphic - Fill', + hd: false, + }, + { + ty: 'tr', + p: {a: 0, k: [156.659, 160.225], ix: 2}, + a: {a: 0, k: [0, 0], ix: 1}, + s: {a: 0, k: [100, 100], ix: 3}, + r: {a: 0, k: 0, ix: 6}, + o: {a: 0, k: 100, ix: 7}, + sk: {a: 0, k: 0, ix: 4}, + sa: {a: 0, k: 0, ix: 5}, + nm: 'Transform', + }, + ], + nm: 'Group 1', + np: 3, + cix: 2, + bm: 0, + ix: 1, + mn: 'ADBE Vector Group', + hd: false, + }, + { + ty: 'tm', + s: { + a: 1, + k: [ + { + i: {x: [0], y: [1]}, + o: {x: [0.333], y: [0]}, + t: 54, + s: [0], + }, + { + i: {x: [0], y: [1]}, + o: {x: [0.167], y: [0]}, + t: 74, + s: [100], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 109, + s: [100], + }, + {t: 121, s: [0]}, + ], + ix: 1, + }, + e: {a: 0, k: 0, ix: 2}, + o: {a: 0, k: 0, ix: 3}, + m: 1, + ix: 2, + nm: 'Trim Paths 1', + mn: 'ADBE Vector Filter - Trim', + hd: false, + }, + { + ty: 'st', + c: { + a: 0, + k: [0.29411765933, 0.701960802078, 0.992156922817, 1], + ix: 3, + }, + o: {a: 0, k: 100, ix: 4}, + w: { + a: 1, + k: [ + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 49, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 66, + s: [2], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 76, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 94, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 104, + s: [2], + }, + {t: 121, s: [0]}, + ], + ix: 5, + }, + lc: 1, + lj: 1, + ml: 4, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, + }, + ], + ip: 44, + op: 809, + st: 44, + bm: 0, + }, + ], + }, + { + id: 'comp_1', + layers: [ + { + ddd: 0, + ind: 1, + ty: 4, + nm: 'part 3', + sr: 1, + ks: { + o: {a: 0, k: 100, ix: 11}, + r: { + a: 1, + k: [ + { + i: {x: [0.667], y: [1]}, + o: {x: [0.167], y: [0.167]}, + t: 0, + s: [-33], + }, + { + i: {x: [0.667], y: [1]}, + o: {x: [0.167], y: [0.167]}, + t: 13, + s: [15], + }, + { + i: {x: [0.667], y: [1]}, + o: {x: [0.167], y: [0]}, + t: 31, + s: [25], + }, + { + i: {x: [0.667], y: [1]}, + o: {x: [0.167], y: [0.167]}, + t: 39, + s: [25], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 49, + s: [0], + }, + { + i: {x: [0.667], y: [1]}, + o: {x: [0.167], y: [0]}, + t: 110, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.333], y: [0]}, + t: 114.833, + s: [0], + }, + { + i: {x: [0.833], y: [1]}, + o: {x: [0.333], y: [0]}, + t: 123.167, + s: [25], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.333], y: [0]}, + t: 129.833, + s: [25], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.333], y: [0]}, + t: 140.667, + s: [15], + }, + {t: 151.5, s: [-33]}, + ], + ix: 10, + }, + p: { + a: 1, + k: [ + { + i: {x: 0, y: 1}, + o: {x: 0.167, y: 0.167}, + t: 37, + s: [400, 300, 0], + to: [-6.271, -5, 0], + ti: [6.271, 5, 0], + }, + { + i: {x: 0.833, y: 0.833}, + o: {x: 0.167, y: 0.167}, + t: 49, + s: [362.375, 270, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0, y: 0}, + o: {x: 0.167, y: 0.167}, + t: 110, + s: [362.375, 270, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.833, y: 0.833}, + o: {x: 1, y: 0}, + t: 114, + s: [362.375, 270, 0], + to: [6.271, 5, 0], + ti: [-6.271, -5, 0], + }, + {t: 124, s: [400, 300, 0]}, + ], + ix: 2, + }, + a: {a: 0, k: [31.146, 43.689, 0], ix: 1}, + s: { + a: 1, + k: [ + { + i: {x: [0, 0, 0.667], y: [1, 1, 1]}, + o: {x: [0.333, 0.333, 0.333], y: [0, 0, 0]}, + t: 0, + s: [0, 0, 100], + }, + { + i: {x: [0.833, 0.833, 0.833], y: [0.833, 0.833, 0.833]}, + o: {x: [0.167, 0.167, 0.167], y: [0.167, 0.167, 0.167]}, + t: 16, + s: [100, 100, 100], + }, + { + i: {x: [0, 0, 0.667], y: [1, 1, 1]}, + o: {x: [0.167, 0.167, 0.167], y: [0, 0, 0]}, + t: 110, + s: [100, 100, 100], + }, + { + i: {x: [0.667, 0.667, 0.667], y: [1, 1, 1]}, + o: {x: [1, 1, 0.333], y: [0, 0, 0]}, + t: 137.333, + s: [100, 100, 100], + }, + {t: 150.6669921875, s: [0, 0, 100]}, + ], + ix: 6, + }, + }, + ao: 0, + shapes: [ + { + ty: 'gr', + it: [ + { + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ + [0, 0], + [0, 0], + [0, 0], + ], + o: [ + [0, 0], + [0, 0], + [0, 0], + ], + v: [ + [30.896, 18.648], + [-30.896, 43.439], + [5.988, -43.439], + ], + c: true, + }, + ix: 2, + }, + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, + }, + { + ty: 'fl', + c: {a: 0, k: [1, 1, 1, 1], ix: 4}, + o: { + a: 1, + k: [ + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 8, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 16, + s: [100], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 110, + s: [100], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 144, + s: [100], + }, + {t: 150.6669921875, s: [0]}, + ], + ix: 5, + }, + r: 1, + bm: 0, + nm: 'Fill 1', + mn: 'ADBE Vector Graphic - Fill', + hd: false, + }, + { + ty: 'tr', + p: {a: 0, k: [31.146, 43.689], ix: 2}, + a: {a: 0, k: [0, 0], ix: 1}, + s: {a: 0, k: [100, 100], ix: 3}, + r: {a: 0, k: 0, ix: 6}, + o: {a: 0, k: 100, ix: 7}, + sk: {a: 0, k: 0, ix: 4}, + sa: {a: 0, k: 0, ix: 5}, + nm: 'Transform', + }, + ], + nm: 'Group 1', + np: 2, + cix: 2, + bm: 0, + ix: 1, + mn: 'ADBE Vector Group', + hd: false, + }, + { + ty: 'tm', + s: { + a: 1, + k: [ + { + i: {x: [0], y: [1]}, + o: {x: [0.333], y: [0]}, + t: 0, + s: [100], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 20, + s: [0], + }, + { + i: {x: [0], y: [1]}, + o: {x: [0.167], y: [0]}, + t: 110, + s: [0], + }, + { + i: {x: [0.667], y: [1]}, + o: {x: [1], y: [0]}, + t: 137.333, + s: [0], + }, + {t: 154, s: [100]}, + ], + ix: 1, + }, + e: {a: 0, k: 100, ix: 2}, + o: {a: 0, k: 0, ix: 3}, + m: 1, + ix: 2, + nm: 'Trim Paths 1', + mn: 'ADBE Vector Filter - Trim', + hd: false, + }, + { + ty: 'st', + c: { + a: 0, + k: [0.258823543787, 0.666666686535, 0.992156863213, 1], + ix: 3, + }, + o: {a: 0, k: 100, ix: 4}, + w: {a: 0, k: 4, ix: 5}, + lc: 1, + lj: 1, + ml: 4, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, + }, + ], + ip: 0, + op: 765, + st: 0, + bm: 0, + }, + { + ddd: 0, + ind: 2, + ty: 4, + nm: 'part 4', + sr: 1, + ks: { + o: {a: 0, k: 100, ix: 11}, + r: { + a: 1, + k: [ + { + i: {x: [0], y: [1]}, + o: {x: [0.333], y: [0]}, + t: 23, + s: [-40], + }, + { + i: {x: [0.004], y: [1]}, + o: {x: [0.167], y: [0.167]}, + t: 39, + s: [-13], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 53, + s: [0], + }, + { + i: {x: [0.004], y: [1]}, + o: {x: [0.167], y: [0]}, + t: 110, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.996], y: [0]}, + t: 117.333, + s: [0], + }, + { + i: {x: [0.667], y: [1]}, + o: {x: [1], y: [0]}, + t: 129, + s: [-13], + }, + {t: 142.3330078125, s: [-40]}, + ], + ix: 10, + }, + p: { + a: 1, + k: [ + { + i: {x: 0, y: 1}, + o: {x: 0.296, y: 0}, + t: 23, + s: [398.603, 302.839, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0, y: 1}, + o: {x: 0.428, y: 0.267}, + t: 34, + s: [307.546, 342.236, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.833, y: 0.833}, + o: {x: 0.167, y: 0.167}, + t: 53, + s: [435.046, 291.736, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0, y: 0}, + o: {x: 0.167, y: 0.167}, + t: 110, + s: [435.046, 291.736, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.572, y: 0.733}, + o: {x: 1, y: 0}, + t: 117.333, + s: [435.046, 291.736, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.704, y: 1}, + o: {x: 1, y: 0}, + t: 133.167, + s: [307.546, 342.236, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + {t: 142.3330078125, s: [398.603, 302.839, 0]}, + ], + ix: 2, + }, + a: {a: 0, k: [61.591, 98.404, 0], ix: 1}, + s: { + a: 1, + k: [ + { + i: {x: [0, 0, 0.667], y: [1.063, 1.063, 1]}, + o: {x: [0.333, 0.333, 0.333], y: [0, 0, 0]}, + t: 20, + s: [0, 0, 100], + }, + { + i: {x: [0.833, 0.833, 0.833], y: [0.833, 0.833, 0.833]}, + o: {x: [0.167, 0.167, 0.167], y: [0.167, 0.167, 0.167]}, + t: 39, + s: [100, 100, 100], + }, + { + i: {x: [0, 0, 0.667], y: [3.067, 3.067, 1]}, + o: {x: [0.167, 0.167, 0.167], y: [0, 0, 0]}, + t: 123, + s: [100, 100, 100], + }, + { + i: {x: [0.667, 0.667, 0.667], y: [1, 1, 1]}, + o: {x: [1, 1, 0.333], y: [-0.063, -0.063, 0]}, + t: 128.167, + s: [100, 100, 100], + }, + {t: 144, s: [0, 0, 100]}, + ], + ix: 6, + }, + }, + ao: 0, + shapes: [ + { + ty: 'gr', + it: [ + { + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + ], + o: [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + ], + v: [ + [61.342, 76.983], + [8.924, 98.153], + [-61.342, -76.985], + [-8.925, -98.153], + ], + c: true, + }, + ix: 2, + }, + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, + }, + { + ty: 'fl', + c: {a: 0, k: [1, 1, 1, 1], ix: 4}, + o: {a: 0, k: 100, ix: 5}, + r: 1, + bm: 0, + nm: 'Fill 1', + mn: 'ADBE Vector Graphic - Fill', + hd: false, + }, + { + ty: 'tr', + p: {a: 0, k: [61.591, 98.404], ix: 2}, + a: {a: 0, k: [0, 0], ix: 1}, + s: {a: 0, k: [100, 100], ix: 3}, + r: {a: 0, k: 0, ix: 6}, + o: {a: 0, k: 100, ix: 7}, + sk: {a: 0, k: 0, ix: 4}, + sa: {a: 0, k: 0, ix: 5}, + nm: 'Transform', + }, + ], + nm: 'Group 1', + np: 2, + cix: 2, + bm: 0, + ix: 1, + mn: 'ADBE Vector Group', + hd: false, + }, + { + ty: 'st', + c: { + a: 0, + k: [0.258823529412, 0.666666666667, 0.992156922583, 1], + ix: 3, + }, + o: {a: 0, k: 100, ix: 4}, + w: {a: 0, k: 4, ix: 5}, + lc: 1, + lj: 1, + ml: 4, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, + }, + ], + ip: 20, + op: 785, + st: 20, + bm: 0, + }, + { + ddd: 0, + ind: 3, + ty: 4, + nm: 'Part 2', + sr: 1, + ks: { + o: {a: 0, k: 100, ix: 11}, + r: { + a: 1, + k: [ + { + i: {x: [0], y: [1]}, + o: {x: [0.333], y: [0]}, + t: 24, + s: [-65], + }, + { + i: {x: [0], y: [1]}, + o: {x: [0.167], y: [0.167]}, + t: 39, + s: [35], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 50, + s: [0], + }, + { + i: {x: [0], y: [1]}, + o: {x: [0.167], y: [0]}, + t: 110, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [1], y: [0]}, + t: 119, + s: [0], + }, + { + i: {x: [0.667], y: [1]}, + o: {x: [1], y: [0]}, + t: 128.167, + s: [35], + }, + {t: 140.6669921875, s: [-65]}, + ], + ix: 10, + }, + p: { + a: 1, + k: [ + { + i: {x: 0, y: 1}, + o: {x: 0.333, y: 0}, + t: 24, + s: [399.08, 301.932, 0], + to: [-11.447, -17.333, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0, y: 1}, + o: {x: 0.167, y: 0.167}, + t: 40, + s: [330.401, 197.932, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.833, y: 0.833}, + o: {x: 0.167, y: 0.167}, + t: 50, + s: [383.984, 345.641, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0, y: 0}, + o: {x: 0.167, y: 0.167}, + t: 110, + s: [383.984, 345.641, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.833, y: 0.833}, + o: {x: 1, y: 0}, + t: 119, + s: [383.984, 345.641, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.667, y: 1}, + o: {x: 1, y: 0}, + t: 127.333, + s: [330.401, 197.932, 0], + to: [0, 0, 0], + ti: [-11.447, -17.333, 0], + }, + {t: 140.6669921875, s: [399.08, 301.932, 0]}, + ], + ix: 2, + }, + a: {a: 0, k: [50.694, 47.891, 0], ix: 1}, + s: { + a: 1, + k: [ + { + i: {x: [0, 0, 0.667], y: [1, 1, 1]}, + o: {x: [0.333, 0.333, 0.333], y: [0, 0, 0]}, + t: 19, + s: [0, 0, 100], + }, + { + i: {x: [0.833, 0.833, 0.833], y: [0.833, 0.833, 0.833]}, + o: {x: [0.167, 0.167, 0.167], y: [0.167, 0.167, 0.167]}, + t: 39, + s: [100, 100, 100], + }, + { + i: {x: [0, 0, 0.667], y: [1, 1, 1]}, + o: {x: [0.167, 0.167, 0.167], y: [0, 0, 0]}, + t: 110, + s: [100, 100, 100], + }, + { + i: {x: [0.667, 0.667, 0.667], y: [1, 1, 1]}, + o: {x: [1, 1, 0.333], y: [0, 0, 0]}, + t: 127.333, + s: [100, 100, 100], + }, + {t: 144, s: [0, 0, 100]}, + ], + ix: 6, + }, + }, + ao: 0, + shapes: [ + { + ty: 'gr', + it: [ + { + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ + [0, 0], + [0, 0], + [0, 0], + ], + o: [ + [0, 0], + [0, 0], + [0, 0], + ], + v: [ + [50.444, 47.641], + [-50.444, -22.526], + [12.218, -47.641], + ], + c: true, + }, + ix: 2, + }, + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, + }, + { + ty: 'fl', + c: {a: 0, k: [1, 1, 1, 1], ix: 4}, + o: {a: 0, k: 100, ix: 5}, + r: 1, + bm: 0, + nm: 'Fill 1', + mn: 'ADBE Vector Graphic - Fill', + hd: false, + }, + { + ty: 'tr', + p: {a: 0, k: [50.694, 47.891], ix: 2}, + a: {a: 0, k: [0, 0], ix: 1}, + s: {a: 0, k: [100, 100], ix: 3}, + r: {a: 0, k: 0, ix: 6}, + o: {a: 0, k: 100, ix: 7}, + sk: {a: 0, k: 0, ix: 4}, + sa: {a: 0, k: 0, ix: 5}, + nm: 'Transform', + }, + ], + nm: 'Group 1', + np: 2, + cix: 2, + bm: 0, + ix: 1, + mn: 'ADBE Vector Group', + hd: false, + }, + { + ty: 'st', + c: { + a: 0, + k: [0.258823529412, 0.666666666667, 0.992156922583, 1], + ix: 3, + }, + o: {a: 0, k: 100, ix: 4}, + w: {a: 0, k: 4, ix: 5}, + lc: 1, + lj: 1, + ml: 4, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, + }, + ], + ip: 20, + op: 785, + st: 20, + bm: 0, + }, + { + ddd: 0, + ind: 4, + ty: 4, + nm: 'part 1', + sr: 1, + ks: { + o: {a: 0, k: 100, ix: 11}, + r: { + a: 1, + k: [ + { + i: {x: [0], y: [1]}, + o: {x: [0.333], y: [0]}, + t: 18, + s: [-48], + }, + { + i: {x: [0], y: [1]}, + o: {x: [0.167], y: [0.167]}, + t: 39, + s: [26], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [0.167], y: [0.167]}, + t: 53, + s: [0], + }, + { + i: {x: [0], y: [1]}, + o: {x: [0.167], y: [0]}, + t: 110, + s: [0], + }, + { + i: {x: [0.833], y: [0.833]}, + o: {x: [1], y: [0]}, + t: 114.833, + s: [0], + }, + { + i: {x: [0.667], y: [1]}, + o: {x: [1], y: [0]}, + t: 126.5, + s: [26], + }, + {t: 144, s: [-48]}, + ], + ix: 10, + }, + p: { + a: 1, + k: [ + { + i: {x: 0, y: 1}, + o: {x: 0.333, y: 0}, + t: 20, + s: [398.596, 301.788, 0], + to: [11.833, -5.798, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0, y: 1}, + o: {x: 0.167, y: 0.167}, + t: 36, + s: [469.596, 267, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.833, y: 0.833}, + o: {x: 0.167, y: 0.167}, + t: 53, + s: [334.221, 354.625, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0, y: 0}, + o: {x: 0.167, y: 0.167}, + t: 110, + s: [334.221, 354.625, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.833, y: 0.833}, + o: {x: 1, y: 0}, + t: 116.5, + s: [334.221, 354.625, 0], + to: [0, 0, 0], + ti: [0, 0, 0], + }, + { + i: {x: 0.667, y: 1}, + o: {x: 1, y: 0}, + t: 130.667, + s: [469.596, 267, 0], + to: [0, 0, 0], + ti: [11.833, -5.798, 0], + }, + {t: 144, s: [398.596, 301.788, 0]}, + ], + ix: 2, + }, + a: {a: 0, k: [31.548, 25.807, 0], ix: 1}, + s: { + a: 1, + k: [ + { + i: {x: [0, 0, 0.667], y: [1, 1, 1]}, + o: {x: [0.333, 0.333, 0.333], y: [0, 0, 0]}, + t: 16, + s: [0, 0, 100], + }, + { + i: {x: [0.833, 0.833, 0.833], y: [0.833, 0.833, 0.833]}, + o: {x: [0.167, 0.167, 0.167], y: [0.167, 0.167, 0.167]}, + t: 39, + s: [100, 100, 100], + }, + { + i: {x: [0, 0, 0.667], y: [1, 1, 1]}, + o: {x: [0.167, 0.167, 0.167], y: [0, 0, 0]}, + t: 110, + s: [100, 100, 100], + }, + { + i: {x: [0.667, 0.667, 0.667], y: [1, 1, 1]}, + o: {x: [1, 1, 0.333], y: [0, 0, 0]}, + t: 126.5, + s: [100, 100, 100], + }, + {t: 145.6669921875, s: [0, 0, 100]}, + ], + ix: 6, + }, + }, + ao: 0, + shapes: [ + { + ty: 'gr', + it: [ + { + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ + [0, 0], + [0, 0], + [0, 0], + ], + o: [ + [0, 0], + [0, 0], + [0, 0], + ], + v: [ + [31.298, 1.327], + [-31.298, 25.557], + [-8.792, -25.557], + ], + c: true, + }, + ix: 2, + }, + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, + }, + { + ty: 'fl', + c: {a: 0, k: [1, 1, 1, 1], ix: 4}, + o: {a: 0, k: 100, ix: 5}, + r: 1, + bm: 0, + nm: 'Fill 1', + mn: 'ADBE Vector Graphic - Fill', + hd: false, + }, + { + ty: 'tr', + p: {a: 0, k: [31.548, 25.807], ix: 2}, + a: {a: 0, k: [0, 0], ix: 1}, + s: {a: 0, k: [100, 100], ix: 3}, + r: {a: 0, k: 0, ix: 6}, + o: {a: 0, k: 100, ix: 7}, + sk: {a: 0, k: 0, ix: 4}, + sa: {a: 0, k: 0, ix: 5}, + nm: 'Transform', + }, + ], + nm: 'Group 1', + np: 2, + cix: 2, + bm: 0, + ix: 1, + mn: 'ADBE Vector Group', + hd: false, + }, + { + ty: 'st', + c: { + a: 0, + k: [0.258823529412, 0.666666666667, 0.992156922583, 1], + ix: 3, + }, + o: {a: 0, k: 100, ix: 4}, + w: {a: 0, k: 4, ix: 5}, + lc: 1, + lj: 1, + ml: 4, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, + }, + ], + ip: 17, + op: 782, + st: 17, + bm: 0, + }, + ], + }, + ], + layers: [ + { + ddd: 0, + ind: 1, + ty: 0, + nm: 'logo-loading', + refId: 'comp_0', + sr: 1, + ks: { + o: {a: 0, k: 100, ix: 11}, + r: {a: 0, k: 0, ix: 10}, + p: {a: 0, k: [400, 300, 0], ix: 2}, + a: {a: 0, k: [400, 300, 0], ix: 1}, + s: {a: 0, k: [100, 100, 100], ix: 6}, + }, + ao: 0, + w: 800, + h: 600, + ip: 0, + op: 765, + st: 0, + bm: 0, + }, + ], + markers: [], +}; + +export const AiryLoader = () => ( +
+ +
+); diff --git a/lib/typescript/components/loaders/AiryLoader/style.module.scss b/lib/typescript/components/loaders/AiryLoader/style.module.scss new file mode 100644 index 0000000000..b472f95f23 --- /dev/null +++ b/lib/typescript/components/loaders/AiryLoader/style.module.scss @@ -0,0 +1,10 @@ +.wrapper { + width: 100vw; + height: 100vh; + display: flex; + flex-flow: column; + justify-content: center; + align-items: center; + position: relative; + background-color: white; +} diff --git a/lib/typescript/components/loaders/SimpleLoader/index.tsx b/lib/typescript/components/loaders/SimpleLoader/index.tsx new file mode 100644 index 0000000000..8bc93d04fb --- /dev/null +++ b/lib/typescript/components/loaders/SimpleLoader/index.tsx @@ -0,0 +1,12 @@ +import React from 'react'; + +import styles from './style.module.scss'; + +export const SimpleLoader = (props: any) => ( +
+
+
+
+
+
+); diff --git a/lib/typescript/components/loaders/SimpleLoader/style.module.scss b/lib/typescript/components/loaders/SimpleLoader/style.module.scss new file mode 100644 index 0000000000..569f176ed2 --- /dev/null +++ b/lib/typescript/components/loaders/SimpleLoader/style.module.scss @@ -0,0 +1,71 @@ +.loader { + display: inline-block; + position: relative; + width: 64px; + height: 32px; + vertical-align: top; +} + +.loader div { + position: absolute; + top: 10px; + width: 11px; + height: 11px; + border-radius: 50%; + background: var(--color-dark-elements-gray); + animation-timing-function: cubic-bezier(0, 1, 1, 0); +} + +.loaderWhite { + @extend .loader; + div { + background: white; + } +} + +.loader div:nth-child(1) { + left: 6px; + animation: ellipse1 0.6s infinite; +} + +.loader div:nth-child(2) { + left: 6px; + animation: ellipse2 0.6s infinite; +} + +.loader div:nth-child(3) { + left: 26px; + animation: ellipse2 0.6s infinite; +} + +.loader div:nth-child(4) { + left: 45px; + animation: ellipse3 0.6s infinite; +} + +@keyframes ellipse1 { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} + +@keyframes ellipse2 { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(19px, 0); + } +} + +@keyframes ellipse3 { + 0% { + transform: scale(1); + } + 100% { + transform: scale(0); + } +} diff --git a/lib/typescript/components/loaders/index.ts b/lib/typescript/components/loaders/index.ts new file mode 100644 index 0000000000..e9d84c5e69 --- /dev/null +++ b/lib/typescript/components/loaders/index.ts @@ -0,0 +1,2 @@ +export * from './SimpleLoader'; +export * from './AiryLoader'; diff --git a/lib/typescript/dates/format.ts b/lib/typescript/dates/format.ts index 0b2c2c67b6..679ed806c6 100644 --- a/lib/typescript/dates/format.ts +++ b/lib/typescript/dates/format.ts @@ -1,27 +1,30 @@ import {isThisWeek, isToday} from './compare'; -export function formatTime(sentAt) { +export function formatTime(sentAt: string | number | Date) { if (!sentAt) { return ''; } const sentAtDate = new Date(sentAt); + if (isToday(sentAtDate)) { return sentAtDate.toLocaleTimeString('en-GB', {hour: '2-digit', minute: '2-digit'}); - } else if (isThisWeek(sentAtDate)) { + } + + if (isThisWeek(sentAtDate)) { return sentAtDate.toLocaleDateString('en-GB', { weekday: 'short', hour: '2-digit', minute: '2-digit', hour12: false, }); - } else { - return sentAtDate.toLocaleDateString('en-GB', { - month: 'short', - day: 'numeric', - hour: '2-digit', - minute: '2-digit', - hour12: false, - }); } + + return sentAtDate.toLocaleDateString('en-GB', { + month: 'short', + day: 'numeric', + hour: '2-digit', + minute: '2-digit', + hour12: false, + }); } diff --git a/lib/typescript/render/BUILD b/lib/typescript/render/BUILD index e5272b075b..73d8a370fe 100644 --- a/lib/typescript/render/BUILD +++ b/lib/typescript/render/BUILD @@ -7,11 +7,11 @@ package(default_visibility = ["//visibility:public"]) ts_web_library( name = "render", deps = [ - "//frontend/assets", #TODO FIX ME + "//lib/typescript/assets", + "//lib/typescript/components", "//lib/typescript/dates", "//lib/typescript/model", "//lib/typescript/types", - "@npm//@airyhq/components", "@npm//@types/node", "@npm//@types/react", "@npm//@types/resize-observer-browser", diff --git a/lib/typescript/render/components/RichCardCarousel/index.tsx b/lib/typescript/render/components/RichCardCarousel/index.tsx index 7f0e7f3b26..478b9850c8 100644 --- a/lib/typescript/render/components/RichCardCarousel/index.tsx +++ b/lib/typescript/render/components/RichCardCarousel/index.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import {Carousel} from '@airyhq/components'; +import {Carousel} from 'components'; import styles from './index.module.scss'; import {MediaRenderProps} from '../RichCard/Media'; import {RichCard, Suggestion} from '../RichCard'; diff --git a/lib/typescript/render/components/Video/index.tsx b/lib/typescript/render/components/Video/index.tsx index 6b7c34f769..b1a808396d 100644 --- a/lib/typescript/render/components/Video/index.tsx +++ b/lib/typescript/render/components/Video/index.tsx @@ -25,9 +25,6 @@ export const Video = ({videoUrl}: VideoRenderProps) => { setVideoFailed(true); }; - console.log('rendering it'); - console.log(videoUrl); - return (
diff --git a/lib/typescript/render/providers/facebook/components/GenericTemplate/index.tsx b/lib/typescript/render/providers/facebook/components/GenericTemplate/index.tsx index f41cd89fe3..43c9c57ed3 100644 --- a/lib/typescript/render/providers/facebook/components/GenericTemplate/index.tsx +++ b/lib/typescript/render/providers/facebook/components/GenericTemplate/index.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import {Carousel} from '@airyhq/components'; +import {Carousel} from 'components'; import styles from './index.module.scss'; import {GenericTemplate as GenericTemplateModel} from '../../facebookModel'; import {ImageWithFallback} from 'render/components/ImageWithFallback'; diff --git a/package.json b/package.json index 07e3d5108e..5f79395022 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@airyhq/components": "latest", + "@crello/react-lottie": "^0.0.11", "@reduxjs/toolkit": "^1.5.1", "@stomp/stompjs": "^6.1.0", "@types/node": "14.14.37", @@ -13,14 +13,17 @@ "@types/react-router-dom": "^5.1.7", "camelcase-keys": "^6.2.2", "core-js": "3", + "emoji-mart": "3.0.0", "linkifyjs": "^2.1.9", "lodash-es": "^4.17.21", "preact": "^10.5.12", "react": "16.14.0", + "react-autosize-textarea": "^7.1.0", "react-color": "^2.19.3", "react-dom": "16.14.0", "react-facebook-login": "^4.1.1", "react-markdown": "^5.0.3", + "react-modal": "^3.12.1", "react-redux": "7.2.3", "react-router-dom": "5.2.0", "react-window": "1.8.6", diff --git a/yarn.lock b/yarn.lock index 96dc589eb3..837c8b11ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,17 +2,6 @@ # yarn lockfile v1 -"@airyhq/components@latest": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@airyhq/components/-/components-0.6.0.tgz#20f7bb368e3e96a80973af1f8b176b6fc68f92c0" - integrity sha512-pi7cn9uPVhgC+t1/lE0CqYjj+poVrRAGiU9+b5Yx7cE8HJz04uNFGLtivMX4HJ1g43XAi8sQ3+OEkVdzp2KGxw== - dependencies: - "@crello/react-lottie" "^0.0.9" - emoji-mart "^3.0.0" - react-autosize-textarea "^7.1.0" - react-modal "^3.11.2" - react-router-dom "5.1.2" - "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -1001,12 +990,12 @@ source-map-support "0.5.9" tsutils "2.27.2" -"@crello/react-lottie@^0.0.9": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@crello/react-lottie/-/react-lottie-0.0.9.tgz#919567c8e06a7e0d12029f33b4fec2bdf2b7f6b4" - integrity sha512-dkAS/Nc3luAnuXg3OG4p5EXKb6vl/jmHyn7St7a+SN+WWX1sq1Gx7T2bU/sYDxn8SSUKn/R+37LwwxcQD7SU3A== +"@crello/react-lottie@^0.0.11": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@crello/react-lottie/-/react-lottie-0.0.11.tgz#1d581000b9fd98fdc490aac23458e19141db3861" + integrity sha512-V+U50f2k1pRBpfVyHEUc3A+L9bwQnQxuxRZqP5w/mKcTlc9h8mmuYOI5gh3S6VAUrUhzyIE1NgN/pHHU0EhBNA== dependencies: - lottie-web "5.5.9" + lottie-web "^5.7.3" "@cypress/listr-verbose-renderer@^0.4.1": version "0.4.1" @@ -3091,10 +3080,10 @@ elegant-spinner@^1.0.1: resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -emoji-mart@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-3.0.1.tgz#9ce86706e02aea0506345f98464814a662ca54c6" - integrity sha512-sxpmMKxqLvcscu6mFn9ITHeZNkGzIvD0BSNFE/LJESPbCA8s1jM6bCDPjWbV31xHq7JXaxgpHxLB54RCbBZSlg== +emoji-mart@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-3.0.0.tgz#eca24a04881e27752a6921e09f65a86ce8539a50" + integrity sha512-r5DXyzOLJttdwRYfJmPq/XL3W5tiAE/VsRnS0Hqyn27SqPA/GOYwVUSx50px/dXdJyDSnvmoPbuJ/zzhwSaU4A== dependencies: "@babel/runtime" "^7.0.0" prop-types "^15.6.0" @@ -5000,10 +4989,10 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" -lottie-web@5.5.9: - version "5.5.9" - resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.5.9.tgz#f8775e8c36dfada428f9acea826ab674750419a8" - integrity sha512-3Zdxnuyi6WXnMj+0ZfwDd17EXCM87Hcbhd+sVFq6EPGfkVoGzoIkZt9OafcgXw4mzjyILOkPDLaBumrgGKoCaw== +lottie-web@^5.7.3: + version "5.7.8" + resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.7.8.tgz#c7a2e42983bcb42093590a03ccdde8741d3f960e" + integrity sha512-VxKCZk33GwZac6mVHvT3grUFR/zrMsW85M7vxQPrgpJOP2IhcnjMbuD0h7muBkXgw84K9KmGulmcyzvhpzSMAg== lower-case@^2.0.2: version "2.0.2" @@ -5205,14 +5194,6 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -mini-create-react-context@^0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.3.3.tgz#b1b2bc6604d3a6c5d9752bad7692615410ebb38e" - integrity sha512-TtF6hZE59SGmS4U8529qB+jJFeW6asTLDIpPgvPLSCsooAwJS7QprHIFTqv9/Qh3NdLwQxFYgiHX5lqb6jqzPA== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - mini-create-react-context@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" @@ -6093,7 +6074,7 @@ react-markdown@^5.0.3: unist-util-visit "^2.0.0" xtend "^4.0.1" -react-modal@^3.11.2: +react-modal@^3.12.1: version "3.12.1" resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.12.1.tgz#38c33f70d81c33d02ff1ed115530443a3dc2afd3" integrity sha512-WGuXn7Fq31PbFJwtWmOk+jFtGC7E9tJVbFX0lts8ZoS5EPi9+WWylUJWLKKVm3H4GlQ7ZxY7R6tLlbSIBQ5oZA== @@ -6115,19 +6096,6 @@ react-redux@7.2.3: prop-types "^15.7.2" react-is "^16.13.1" -react-router-dom@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.1.2.tgz#06701b834352f44d37fbb6311f870f84c76b9c18" - integrity sha512-7BPHAaIwWpZS074UKaw1FjVdZBSVWEk8IuDXdB+OkLb8vd/WRQIpA4ag9WQk61aEfQs47wHyjWUoUGGZxpQXew== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.1.2" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - react-router-dom@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" @@ -6141,22 +6109,6 @@ react-router-dom@5.2.0: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.1.2.tgz#6ea51d789cb36a6be1ba5f7c0d48dd9e817d3418" - integrity sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - mini-create-react-context "^0.3.0" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - react-router@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" From 57f4b9ce0982ab568a3f89a1ddd1cc25449919b2 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Fri, 9 Apr 2021 16:59:57 +0200 Subject: [PATCH 25/33] [#1110] Add basic and advance customization to chatplugin docs (#1494) --- docs/docs/sources/chatplugin/customization.md | 76 ++++++++++++++++++ .../basicCustomizationChatpluginExample.png | Bin 0 -> 121670 bytes .../chatplugin/channelEditChatplugin.png | Bin 0 -> 41961 bytes .../chatplugin/channelListChatplugin.png | Bin 0 -> 87261 bytes .../chatplugin/customizedStyleChatplugin.png | Bin 0 -> 119617 bytes .../chatplugin/defaultStyleChatplugin.png | Bin 0 -> 101699 bytes 6 files changed, 76 insertions(+) create mode 100644 docs/static/img/sources/chatplugin/basicCustomizationChatpluginExample.png create mode 100644 docs/static/img/sources/chatplugin/channelEditChatplugin.png create mode 100644 docs/static/img/sources/chatplugin/channelListChatplugin.png create mode 100644 docs/static/img/sources/chatplugin/customizedStyleChatplugin.png create mode 100644 docs/static/img/sources/chatplugin/defaultStyleChatplugin.png diff --git a/docs/docs/sources/chatplugin/customization.md b/docs/docs/sources/chatplugin/customization.md index 1350aa14cb..c8bff72d71 100644 --- a/docs/docs/sources/chatplugin/customization.md +++ b/docs/docs/sources/chatplugin/customization.md @@ -2,3 +2,79 @@ title: Basic & advanced customization sidebar_label: Basic & advanced customization --- + +import useBaseUrl from '@docusaurus/useBaseUrl'; + +## Introduction + +We support two ways of customizing your Airy Chat Plugin. For most use cases the [basic customization](#basic-customization) is all you need as it supports the essential options to customize the experience. If you need full control of every aspect of the plugin, we offer the possibility of [advanced customization](#advanced-customization) with Render Props. + +## How to customize the Airy Chat Plugin + +### Basic customization + +After setting up your [first source](/sources/chatplugin/quickstart#step-1-set-up-your-first-source) you can customize your Airy Chat Plugin to your needs. + +On your instance's [Airy Core UI](http://airy.core/ui/channels), click on the button displaying a cross icon next to the Airy Live Chat channel. + +Basic Customization Example +
+
+ +Then click on the **edit** of your source: + +Basic Customization Example +
+
+ +Switch to the **Install & Customize** register and start customizing your Airy Chat Plugin to your needs. +Basic Customization Example + +
+ +If you are happy with your customization, copy it and add this code inside the tag ``. + +| Option name | Option description | +| ---------------- | -------------------------------------------------------------------------------------------- | +| Header text | Set the header text of your Airy Chat Plugin | +| Chat Plugin Icon | Set your company icon which appears on the button that opens and closes the Airy Chat Plugin | +| Input Icon | Set your icon as `sendButton` and replace the default paperplane | +| Primary Color | Set your primary color as the topbar, border of `textArea` or text color of `buttons` | +| Accent Color | Set your accent color as the `sendButton` | +| Background Color | Set the background color of the entire Airy Chat Plugin | + +**Sample** + +| Default Style | Customized Style | +| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | +| Basic Customization Example | Basic Customization Example | + +### Advanced customization + +Installing the Airy Chat Plugin as a library allows you to customize the interface as much as you want using **["Render Props"](https://reactjs.org/docs/render-props.html)**. +The Airy Chat Plugin provides you with four Render Props. All Render Props parameters are optional. If you omit all of them, the Airy Chat Plugin will render the default styling and behavior. + +Each Render Prop accepts a set of parameters that allows you to customize the interface or the behavior of the Airy Chat Plugin. + +| Render Props | Description | +| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| headerBarProp: (orgImage, toogleHideChat) | **Optional**. Top bar component of the Airy Chat Plugin. Can minimize the full plugin and display a custom image as brand icon for your organization

`orgImage` : image url
`toggleHideChat()` : function that will close or open the Airy Chat Plugin | +| inputBarProp: (sendMessage) | **Optional**. Input field that accepts a message and the `onSubmit` action that sends the message.

`sendMessage(text)` : function that sends a message to the server. It takes a string as parameter | +| airyMessageProp(message) | **Optional**. Welcome message to display in the conversation.

`message` : message.payload | +| bubbleProp: (isChatHidden, toggleHidechat) | **Optional**. Area used as a toggle to open and close the chat and also a brand icon.

`isChatHidden` : boolean value that indicatas if the chat is closed or open.
`toogleHideChat()` : function that closes or opens the Airy Chat Plugin. | + +**Example of how to use Render Props with the Airy Chat Plugin library:** + +```json5 +const airyChatPlugin = new AiryChatPlugin({ + organization_id: "YOUR_ORG_ID", + app_id: "YOUR_APP_ID", + app_secret: "YOUR_APP_SECRET", + headerBarProp: ({orgImage, toggleHideChat}) => +
+

Title

+ orgImg +
+ } +); +``` diff --git a/docs/static/img/sources/chatplugin/basicCustomizationChatpluginExample.png b/docs/static/img/sources/chatplugin/basicCustomizationChatpluginExample.png new file mode 100644 index 0000000000000000000000000000000000000000..cb97ff80ebf0e63a56cbe4acf9f58083abab4504 GIT binary patch literal 121670 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 Ntf-+-BxnBY{{fCDTnPXG literal 0 HcmV?d00001 diff --git a/docs/static/img/sources/chatplugin/channelListChatplugin.png b/docs/static/img/sources/chatplugin/channelListChatplugin.png new file mode 100644 index 0000000000000000000000000000000000000000..c7c9e5c09c0e76b40fba99acd6a2804e14d94b96 GIT binary patch literal 87261 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 V<2F?dy+8u~$w(-^s}wU1`d=AgUTpvX literal 0 HcmV?d00001 diff --git a/docs/static/img/sources/chatplugin/defaultStyleChatplugin.png b/docs/static/img/sources/chatplugin/defaultStyleChatplugin.png new file mode 100644 index 0000000000000000000000000000000000000000..7a5a3ea7019b32d6b607f837a9cfd0b2722cde05 GIT binary patch literal 101699 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
  • 2*oNrAsTpw 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 literal 0 HcmV?d00001 From 9f29361988dd30032eb65e566ff39bbdf5cd2492 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Apr 2021 10:31:14 +0200 Subject: [PATCH 26/33] Bump eslint from 7.23.0 to 7.24.0 (#1512) Bumps [eslint](https://github.com/eslint/eslint) from 7.23.0 to 7.24.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.23.0...v7.24.0) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5f79395022..f6bc781011 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "copy-webpack-plugin": "^8.1.1", "css-loader": "^5.2.0", "cypress": "^7.0.1", - "eslint": "^7.23.0", + "eslint": "^7.24.0", "eslint-plugin-react": "^7.23.2", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.3.1", diff --git a/yarn.lock b/yarn.lock index 837c8b11ad..f7207347d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3253,10 +3253,10 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.23.0: - version "7.23.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.23.0.tgz#8d029d252f6e8cf45894b4bee08f5493f8e94325" - integrity sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q== +eslint@^7.24.0: + version "7.24.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.24.0.tgz#2e44fa62d93892bfdb100521f17345ba54b8513a" + integrity sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.0" From 584ded1a1ea6827f35eb23b7757601f3af0eae35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Apr 2021 10:31:40 +0200 Subject: [PATCH 27/33] Bump webpack from 5.31.0 to 5.31.2 (#1513) Bumps [webpack](https://github.com/webpack/webpack) from 5.31.0 to 5.31.2. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.31.0...v5.31.2) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 22 +++++----------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index f6bc781011..f5584f42ec 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "terser-webpack-plugin": "^5.1.1", "typescript": "3.7.4", "url-loader": "^4.1.1", - "webpack": "^5.31.0", + "webpack": "^5.31.2", "webpack-bundle-analyzer": "^4.4.0", "webpack-cli": "^4.6.0", "webpack-dev-server": "^3.11.2" diff --git a/yarn.lock b/yarn.lock index f7207347d5..758a538d5d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5143,24 +5143,12 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.0.5" -mime-db@1.46.0: - version "1.46.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== - mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": version "1.47.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.29" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== - dependencies: - mime-db "1.46.0" - -mime-types@~2.1.17: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.30" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== @@ -7685,10 +7673,10 @@ webpack-sources@^2.1.1: source-list-map "^2.0.1" source-map "^0.6.1" -webpack@^5.31.0: - version "5.31.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.31.0.tgz#fab61d0be896feca4af87bdad5c18815c0d63455" - integrity sha512-3fUfZT/FUuThWSSyL32Fsh7weUUfYP/Fjc/cGSbla5KiSo0GtI1JMssCRUopJTvmLjrw05R2q7rlLtiKdSzkzQ== +webpack@^5.31.2: + version "5.31.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.31.2.tgz#40d9b9d15b7d76af73d3f1cae895b82613a544d6" + integrity sha512-0bCQe4ybo7T5Z0SC5axnIAH+1WuIdV4FwLYkaAlLtvfBhIx8bPS48WHTfiRZS1VM+pSiYt7e/rgLs3gLrH82lQ== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.46" From 87038c172e9e8b8518bbd1a0c0106bf0f1bb1942 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Apr 2021 10:31:56 +0200 Subject: [PATCH 28/33] Bump css-loader from 5.2.0 to 5.2.1 (#1514) Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 5.2.0 to 5.2.1. - [Release notes](https://github.com/webpack-contrib/css-loader/releases) - [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-loader/compare/v5.2.0...v5.2.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f5584f42ec..5f2926a633 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "@typescript-eslint/parser": "^4.21.0", "babel-loader": "^8.0.6", "copy-webpack-plugin": "^8.1.1", - "css-loader": "^5.2.0", + "css-loader": "^5.2.1", "cypress": "^7.0.1", "eslint": "^7.24.0", "eslint-plugin-react": "^7.23.2", diff --git a/yarn.lock b/yarn.lock index 758a538d5d..1bf056860c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2660,10 +2660,10 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-loader@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.0.tgz#a9ecda190500863673ce4434033710404efbff00" - integrity sha512-MfRo2MjEeLXMlUkeUwN71Vx5oc6EJnx5UQ4Yi9iUtYQvrPtwLUucYptz0hc6n++kdNcyF5olYBS4vPjJDAcLkw== +css-loader@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.1.tgz#15fbd5b6ac4c1b170a098f804c5abd0722f2aa73" + integrity sha512-YCyRzlt/jgG1xanXZDG/DHqAueOtXFHeusP9TS478oP1J++JSKOyEgGW1GHVoCj/rkS+GWOlBwqQJBr9yajQ9w== dependencies: camelcase "^6.2.0" cssesc "^3.0.0" From 51c6b2aad533fe8414b699b5c268ba00983dfee2 Mon Sep 17 00:00:00 2001 From: Christoph Proeschel Date: Mon, 12 Apr 2021 10:48:34 +0200 Subject: [PATCH 29/33] [#1163] Remove empty payloads (#1509) --- .../core/api/admin/ChannelsController.java | 18 ++++++++--------- .../airy/core/api/admin/TagsController.java | 14 +++++++------ .../core/api/admin/TemplatesController.java | 3 +-- .../payload/CreateTagResponsePayload.java | 17 ---------------- .../payload/CreateTemplateRequestPayload.java | 1 - .../payload/UpdateTemplateRequestPayload.java | 1 - .../core/api/admin/TagsControllerTest.java | 4 ++-- .../api/admin/TemplatesControllerTest.java | 2 +- .../api/admin/WebhooksControllerTest.java | 3 --- .../api/auth/controllers/UsersController.java | 6 ++---- .../core/api/auth/UsersControllerTest.java | 6 +++--- .../ConversationsController.java | 18 ++++++++--------- .../api/communication/MessagesController.java | 2 -- .../api/communication/MetadataController.java | 5 ++--- .../communication/SendMessageController.java | 5 ++--- .../communication/dto/ConversationIndex.java | 2 -- .../communication/lucene/LuceneProvider.java | 1 - .../communication/ConversationsTagTest.java | 4 ++-- .../communication/MetadataControllerTest.java | 2 +- .../api/communication/UnreadCountTest.java | 2 +- .../model/metadata/MetadataObjectMapper.java | 2 -- .../airy/core/chat_plugin/ChatController.java | 3 +-- .../sources/facebook/ChannelsController.java | 7 +++---- .../sources/google/ChannelsController.java | 7 ++----- .../sources/google/WebhookController.java | 3 +-- .../sources/twilio/ChannelsController.java | 5 ++--- .../core/webhook/publisher/Publisher.java | 1 - .../core/webhook/publisher/RedisQueue.java | 1 - docs/docs/api/endpoints/chatplugin.md | 6 ------ docs/docs/api/endpoints/conversations.md | 20 ++++--------------- docs/docs/api/endpoints/tags.md | 16 +++++---------- docs/docs/getting-started/quickstart.md | 2 +- docs/docs/sources/chatplugin/quickstart.md | 2 +- .../web/payload/EmptyResponsePayload.java | 8 -------- lib/typescript/httpclient/client.ts | 13 ++++++------ .../endpoints/connectChatPluginChannel.ts | 1 - .../httpclient/endpoints/createTag.ts | 2 -- .../httpclient/endpoints/disconnectChannel.ts | 1 - .../endpoints/exploreFacebookChannels.ts | 1 - .../httpclient/endpoints/getConfig.ts | 2 -- .../httpclient/endpoints/listChannels.ts | 1 - .../httpclient/endpoints/listMessages.ts | 9 ++++----- .../httpclient/endpoints/listTags.ts | 3 +-- .../httpclient/endpoints/listTemplates.ts | 1 - .../httpclient/endpoints/loginViaEmail.ts | 1 - .../httpclient/endpoints/readConversations.ts | 1 - .../httpclient/endpoints/tagConversation.ts | 1 - .../httpclient/endpoints/untagConversation.ts | 1 - .../httpclient/endpoints/updateTag.ts | 2 -- 49 files changed, 75 insertions(+), 164 deletions(-) delete mode 100644 backend/api/admin/src/main/java/co/airy/core/api/admin/payload/CreateTagResponsePayload.java delete mode 100644 lib/java/spring/web/src/main/java/co/airy/spring/web/payload/EmptyResponsePayload.java diff --git a/backend/api/admin/src/main/java/co/airy/core/api/admin/ChannelsController.java b/backend/api/admin/src/main/java/co/airy/core/api/admin/ChannelsController.java index 6bc451cce9..1ea8e99108 100644 --- a/backend/api/admin/src/main/java/co/airy/core/api/admin/ChannelsController.java +++ b/backend/api/admin/src/main/java/co/airy/core/api/admin/ChannelsController.java @@ -1,14 +1,13 @@ package co.airy.core.api.admin; import co.airy.avro.communication.Channel; -import co.airy.avro.communication.Metadata; import co.airy.avro.communication.ChannelConnectionState; +import co.airy.avro.communication.Metadata; import co.airy.core.api.admin.payload.ChannelsResponsePayload; import co.airy.model.channel.ChannelPayload; import co.airy.model.channel.dto.ChannelContainer; import co.airy.model.metadata.MetadataKeys; import co.airy.model.metadata.dto.MetadataMap; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.uuid.UUIDv5; import lombok.Data; import lombok.NoArgsConstructor; @@ -20,8 +19,9 @@ import javax.validation.Valid; import javax.validation.constraints.NotNull; -import java.util.List; import java.util.ArrayList; +import java.util.List; +import java.util.Optional; import java.util.UUID; import static co.airy.model.channel.ChannelPayload.fromChannelContainer; @@ -37,9 +37,9 @@ public ChannelsController(Stores stores) { } @PostMapping("/channels.list") - ResponseEntity listChannels(@RequestBody @Valid ListChannelRequestPayload requestPayload) { + ResponseEntity listChannels(@RequestBody(required = false) @Valid ListChannelRequestPayload requestPayload) { final List channels = stores.getChannels(); - final String sourceToFilter = requestPayload.getSource(); + final String sourceToFilter = Optional.ofNullable(requestPayload).map(ListChannelRequestPayload::getSource).orElse(null); return ResponseEntity.ok(new ChannelsResponsePayload(channels.stream() .filter((container) -> sourceToFilter == null || sourceToFilter.equals(container.getChannel().getSource())) .map(ChannelPayload::fromChannelContainer) @@ -50,7 +50,7 @@ ResponseEntity listChannels(@RequestBody @Valid ListCha ResponseEntity getChannel(@RequestBody @Valid GetChannelRequestPayload requestPayload) { final ChannelContainer container = stores.getChannel(requestPayload.getChannelId().toString()); if (container == null) { - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new EmptyResponsePayload()); + return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); } return ResponseEntity.ok(fromChannelContainer(container)); @@ -61,7 +61,7 @@ ResponseEntity updateChannel(@RequestBody @Valid UpdateChannelRequestPayload final String channelId = requestPayload.getChannelId().toString(); final ChannelContainer container = stores.getChannel(channelId); if (container == null) { - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new EmptyResponsePayload()); + return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); } final MetadataMap metadataMap = container.getMetadataMap(); @@ -127,7 +127,7 @@ ResponseEntity disconnect(@RequestBody @Valid ChannelDisconnectRequestPayload final Channel channel = container.getChannel(); if (channel.getConnectionState().equals(ChannelConnectionState.DISCONNECTED)) { - return ResponseEntity.accepted().body(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } channel.setConnectionState(ChannelConnectionState.DISCONNECTED); @@ -139,7 +139,7 @@ ResponseEntity disconnect(@RequestBody @Valid ChannelDisconnectRequestPayload return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).build(); } - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } } diff --git a/backend/api/admin/src/main/java/co/airy/core/api/admin/TagsController.java b/backend/api/admin/src/main/java/co/airy/core/api/admin/TagsController.java index bb5444e524..61b10b17e8 100644 --- a/backend/api/admin/src/main/java/co/airy/core/api/admin/TagsController.java +++ b/backend/api/admin/src/main/java/co/airy/core/api/admin/TagsController.java @@ -3,12 +3,10 @@ import co.airy.avro.communication.Tag; import co.airy.avro.communication.TagColor; import co.airy.core.api.admin.payload.CreateTagRequestPayload; -import co.airy.core.api.admin.payload.CreateTagResponsePayload; import co.airy.core.api.admin.payload.DeleteTagRequestPayload; import co.airy.core.api.admin.payload.ListTagsResponsePayload; import co.airy.core.api.admin.payload.TagResponsePayload; import co.airy.core.api.admin.payload.UpdateTagRequestPayload; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.spring.web.payload.RequestErrorResponsePayload; import org.apache.kafka.streams.state.KeyValueIterator; import org.apache.kafka.streams.state.ReadOnlyKeyValueStore; @@ -64,7 +62,11 @@ ResponseEntity createTag(@RequestBody @Valid CreateTagRequestPayload payload) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage()); } - return ResponseEntity.status(201).body(CreateTagResponsePayload.builder().id(tag.getId()).build()); + return ResponseEntity.status(201).body(TagResponsePayload.builder() + .id(tag.getId()) + .name(tag.getName()) + .color(tag.getColor().toString()) + .build()); } @PostMapping("/tags.list") @@ -87,14 +89,14 @@ ResponseEntity listTags() { } @PostMapping("/tags.delete") - ResponseEntity deleteTag(@RequestBody @Valid DeleteTagRequestPayload payload) { + ResponseEntity deleteTag(@RequestBody @Valid DeleteTagRequestPayload payload) { final Tag tag = stores.getTagsStore().get(payload.getId().toString()); if (tag == null) { return ResponseEntity.notFound().build(); } stores.deleteTag(tag); - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } @PostMapping("/tags.update") @@ -120,6 +122,6 @@ ResponseEntity updateTag(@RequestBody @Valid UpdateTagRequestPayload payload) } catch (ExecutionException | InterruptedException e) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage()); } - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } } diff --git a/backend/api/admin/src/main/java/co/airy/core/api/admin/TemplatesController.java b/backend/api/admin/src/main/java/co/airy/core/api/admin/TemplatesController.java index 9a8dc1d42b..79410ed5bb 100644 --- a/backend/api/admin/src/main/java/co/airy/core/api/admin/TemplatesController.java +++ b/backend/api/admin/src/main/java/co/airy/core/api/admin/TemplatesController.java @@ -8,7 +8,6 @@ import co.airy.core.api.admin.payload.TemplatesResponsePayload; import co.airy.core.api.admin.payload.UpdateTemplateRequestPayload; import co.airy.model.template.TemplatePayload; -import co.airy.spring.web.payload.EmptyResponsePayload; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.http.HttpStatus; @@ -68,7 +67,7 @@ ResponseEntity deleteTemplate(@RequestBody @Valid DeleteTemplateRequestPayloa return ResponseEntity.notFound().build(); } stores.deleteTemplate(template); - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } @PostMapping("/templates.list") diff --git a/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/CreateTagResponsePayload.java b/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/CreateTagResponsePayload.java deleted file mode 100644 index f993b0b3cf..0000000000 --- a/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/CreateTagResponsePayload.java +++ /dev/null @@ -1,17 +0,0 @@ -package co.airy.core.api.admin.payload; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.validation.constraints.NotNull; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@Builder -public class CreateTagResponsePayload { - @NotNull - private String id; -} diff --git a/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/CreateTemplateRequestPayload.java b/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/CreateTemplateRequestPayload.java index b2c3b00873..edf2f177a2 100644 --- a/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/CreateTemplateRequestPayload.java +++ b/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/CreateTemplateRequestPayload.java @@ -5,7 +5,6 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.Valid; import javax.validation.constraints.NotNull; @Data diff --git a/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/UpdateTemplateRequestPayload.java b/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/UpdateTemplateRequestPayload.java index 79656ff2ed..6bdf678700 100644 --- a/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/UpdateTemplateRequestPayload.java +++ b/backend/api/admin/src/main/java/co/airy/core/api/admin/payload/UpdateTemplateRequestPayload.java @@ -5,7 +5,6 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.UUID; diff --git a/backend/api/admin/src/test/java/co/airy/core/api/admin/TagsControllerTest.java b/backend/api/admin/src/test/java/co/airy/core/api/admin/TagsControllerTest.java index 6615155b5c..ab5d895127 100644 --- a/backend/api/admin/src/test/java/co/airy/core/api/admin/TagsControllerTest.java +++ b/backend/api/admin/src/test/java/co/airy/core/api/admin/TagsControllerTest.java @@ -99,7 +99,7 @@ void canManageTags() throws Exception { webTestHelper.post("/tags.update", "{\"id\": \"" + tagId + "\", \"name\": \"new-name\", \"color\": \"" + color + "\"}", "user-id") - .andExpect(status().isOk()); + .andExpect(status().isNoContent()); webTestHelper.post("/tags.list", "{}", "user-id") .andExpect(status().isOk()) @@ -108,7 +108,7 @@ void canManageTags() throws Exception { .andExpect(jsonPath("$.data[0].name").value(is("new-name"))) .andExpect(jsonPath("$.data[0].color").value(is("RED"))); - webTestHelper.post("/tags.delete", "{\"id\": \"" + tagId + "\"}", "user-id").andExpect(status().isOk()); + webTestHelper.post("/tags.delete", "{\"id\": \"" + tagId + "\"}", "user-id").andExpect(status().isNoContent()); //TODO wait for tag deletion TimeUnit.SECONDS.sleep(5); diff --git a/backend/api/admin/src/test/java/co/airy/core/api/admin/TemplatesControllerTest.java b/backend/api/admin/src/test/java/co/airy/core/api/admin/TemplatesControllerTest.java index a16fbae573..f72c48b8f7 100644 --- a/backend/api/admin/src/test/java/co/airy/core/api/admin/TemplatesControllerTest.java +++ b/backend/api/admin/src/test/java/co/airy/core/api/admin/TemplatesControllerTest.java @@ -110,7 +110,7 @@ void canManageTemplates() throws Exception { .andExpect(status().isOk()) .andExpect(jsonPath("$.name").value(is("new-template-name"))), "could not update template"); - webTestHelper.post("/templates.delete", "{\"id\": \"" + templateId + "\"}", "user-id").andExpect(status().isOk()); + webTestHelper.post("/templates.delete", "{\"id\": \"" + templateId + "\"}", "user-id").andExpect(status().isNoContent()); } @Test diff --git a/backend/api/admin/src/test/java/co/airy/core/api/admin/WebhooksControllerTest.java b/backend/api/admin/src/test/java/co/airy/core/api/admin/WebhooksControllerTest.java index 0f5f1a7052..68a9213406 100644 --- a/backend/api/admin/src/test/java/co/airy/core/api/admin/WebhooksControllerTest.java +++ b/backend/api/admin/src/test/java/co/airy/core/api/admin/WebhooksControllerTest.java @@ -23,9 +23,6 @@ import static co.airy.test.Timing.retryOnException; import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.nullValue; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; diff --git a/backend/api/auth/src/main/java/co/airy/core/api/auth/controllers/UsersController.java b/backend/api/auth/src/main/java/co/airy/core/api/auth/controllers/UsersController.java index 516aec9f61..4c6a4b7bbc 100644 --- a/backend/api/auth/src/main/java/co/airy/core/api/auth/controllers/UsersController.java +++ b/backend/api/auth/src/main/java/co/airy/core/api/auth/controllers/UsersController.java @@ -11,10 +11,8 @@ import co.airy.core.api.auth.services.Password; import co.airy.spring.auth.IgnoreAuthPattern; import co.airy.spring.jwt.Jwt; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.spring.web.payload.RequestErrorResponsePayload; import org.jdbi.v3.core.statement.UnableToExecuteStatementException; -import org.postgresql.util.PSQLException; import org.springframework.context.annotation.Bean; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -115,7 +113,7 @@ ResponseEntity requestPasswordReset(@RequestBody @Valid LoginRequestPayload l // We execute async so that attackers cannot infer the presence of an email address // based on response time. executor.submit(() -> requestResetFor(email)); - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } @PostMapping("/users.password-reset") @@ -134,7 +132,7 @@ ResponseEntity passwordReset(@RequestBody @Valid PasswordResetRequestPayload userDAO.changePassword(UUID.fromString(userId), passwordService.hashPassword(payload.getNewPassword())); - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } private void requestResetFor(String email) { diff --git a/backend/api/auth/src/test/java/co/airy/core/api/auth/UsersControllerTest.java b/backend/api/auth/src/test/java/co/airy/core/api/auth/UsersControllerTest.java index 33ae38bb4e..a3f9d087da 100644 --- a/backend/api/auth/src/test/java/co/airy/core/api/auth/UsersControllerTest.java +++ b/backend/api/auth/src/test/java/co/airy/core/api/auth/UsersControllerTest.java @@ -119,7 +119,7 @@ void canResetPassword() throws Exception { final String passwordResetRequest = "{\"email\":\"" + email + "\",\"password\":\"trustno1\"}"; webTestHelper.post("/users.request-password-reset", passwordResetRequest) - .andExpect(status().isOk()); + .andExpect(status().isNoContent()); retryOnException(() -> Mockito.verify(mail).send(Mockito.eq(email), anyString(), anyString()), "could not send email"); @@ -142,14 +142,14 @@ void canChangePassword() throws Exception { doNothing().when(mail).send(Mockito.eq(email), anyString(), anyString()); webTestHelper.post("/users.request-password-reset", requestPasswordRequest) - .andExpect(status().isOk()); + .andExpect(status().isNoContent()); Map refreshClaim = Map.of("reset_pwd_for", userId); final String token = jwt.tokenFor(userId, refreshClaim); final String passwordResetRequest = "{\"token\":\"" + token + "\", \"new_password\": \"super-safe-password\"}"; - webTestHelper.post("/users.password-reset", passwordResetRequest).andExpect(status().isOk()); + webTestHelper.post("/users.password-reset", passwordResetRequest).andExpect(status().isNoContent()); } @Test diff --git a/backend/api/communication/src/main/java/co/airy/core/api/communication/ConversationsController.java b/backend/api/communication/src/main/java/co/airy/core/api/communication/ConversationsController.java index 4b971ed966..0dd50f8e27 100644 --- a/backend/api/communication/src/main/java/co/airy/core/api/communication/ConversationsController.java +++ b/backend/api/communication/src/main/java/co/airy/core/api/communication/ConversationsController.java @@ -19,11 +19,9 @@ import co.airy.model.metadata.dto.MetadataMap; import co.airy.pagination.Page; import co.airy.pagination.Paginator; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.spring.web.payload.RequestErrorResponsePayload; import org.apache.kafka.streams.state.KeyValueIterator; import org.apache.kafka.streams.state.ReadOnlyKeyValueStore; -import org.apache.lucene.analysis.custom.CustomAnalyzer; import org.apache.lucene.queryparser.classic.ParseException; import org.apache.lucene.search.Query; import org.springframework.http.HttpStatus; @@ -37,6 +35,7 @@ import java.time.Instant; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -59,13 +58,14 @@ public class ConversationsController { } @PostMapping("/conversations.list") - ResponseEntity conversationList(@RequestBody @Valid ConversationListRequestPayload requestPayload) throws Exception { - final String queryFilter = requestPayload.getFilters(); + ResponseEntity conversationList(@RequestBody(required = false) @Valid ConversationListRequestPayload request) { + request = Optional.ofNullable(request).orElse(new ConversationListRequestPayload()); + final String queryFilter = request.getFilters(); if (queryFilter == null) { - return listConversations(requestPayload); + return listConversations(request); } - return queryConversations(requestPayload); + return queryConversations(request); } private ResponseEntity queryConversations(ConversationListRequestPayload requestPayload) { @@ -184,7 +184,7 @@ ResponseEntity conversationMarkRead(@RequestBody @Valid ConversationByIdReque return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new RequestErrorResponsePayload(e.getMessage())); } - return ResponseEntity.accepted().body(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } @PostMapping("/conversations.tag") @@ -206,7 +206,7 @@ ResponseEntity conversationTag(@RequestBody @Valid ConversationTagRequestPayl return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new RequestErrorResponsePayload(e.getMessage())); } - return ResponseEntity.accepted().body(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } @PostMapping("/conversations.untag") @@ -228,6 +228,6 @@ ResponseEntity conversationUntag(@RequestBody @Valid ConversationTagRequestPa return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new RequestErrorResponsePayload(e.getMessage())); } - return ResponseEntity.accepted().body(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } } diff --git a/backend/api/communication/src/main/java/co/airy/core/api/communication/MessagesController.java b/backend/api/communication/src/main/java/co/airy/core/api/communication/MessagesController.java index 789e2d0f8d..3f9804b568 100644 --- a/backend/api/communication/src/main/java/co/airy/core/api/communication/MessagesController.java +++ b/backend/api/communication/src/main/java/co/airy/core/api/communication/MessagesController.java @@ -7,7 +7,6 @@ import co.airy.core.api.communication.payload.PaginationData; import co.airy.model.message.dto.MessageContainer; import co.airy.model.message.dto.MessageResponsePayload; -import co.airy.model.metadata.MetadataKeys; import co.airy.pagination.Page; import co.airy.pagination.Paginator; import co.airy.spring.web.payload.RequestErrorResponsePayload; @@ -23,7 +22,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.concurrent.ExecutionException; import static co.airy.model.message.dto.MessageResponsePayload.fromMessageContainer; import static co.airy.model.metadata.MetadataKeys.MessageKeys.SUGGESTIONS; diff --git a/backend/api/communication/src/main/java/co/airy/core/api/communication/MetadataController.java b/backend/api/communication/src/main/java/co/airy/core/api/communication/MetadataController.java index 039fe0bbc1..04f044239a 100644 --- a/backend/api/communication/src/main/java/co/airy/core/api/communication/MetadataController.java +++ b/backend/api/communication/src/main/java/co/airy/core/api/communication/MetadataController.java @@ -5,7 +5,6 @@ import co.airy.model.metadata.MetadataKeys; import co.airy.model.metadata.MetadataObjectMapper; import co.airy.model.metadata.Subject; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.spring.web.payload.RequestErrorResponsePayload; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -36,7 +35,7 @@ ResponseEntity upsert(@RequestBody @Valid UpsertMetadataRequestPayload upsert .peek((metadata) -> metadata.setKey(String.format("%s.%s", MetadataKeys.USER_DATA, metadata.getKey()))) .collect(toList()); } catch (Exception e) { - return ResponseEntity.badRequest().body(new EmptyResponsePayload()); + return ResponseEntity.badRequest().build(); } for (Metadata metadata : metadataList) { @@ -46,6 +45,6 @@ ResponseEntity upsert(@RequestBody @Valid UpsertMetadataRequestPayload upsert return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new RequestErrorResponsePayload(e.getMessage())); } } - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } } diff --git a/backend/api/communication/src/main/java/co/airy/core/api/communication/SendMessageController.java b/backend/api/communication/src/main/java/co/airy/core/api/communication/SendMessageController.java index d1ef0bd296..a3de048bc4 100644 --- a/backend/api/communication/src/main/java/co/airy/core/api/communication/SendMessageController.java +++ b/backend/api/communication/src/main/java/co/airy/core/api/communication/SendMessageController.java @@ -10,7 +10,6 @@ import co.airy.model.message.dto.MessageContainer; import co.airy.model.message.dto.MessageResponsePayload; import co.airy.model.metadata.dto.MetadataMap; -import co.airy.spring.web.payload.EmptyResponsePayload; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.kafka.clients.producer.KafkaProducer; @@ -49,12 +48,12 @@ public ResponseEntity sendMessage(@RequestBody @Valid SendMessageRequestPaylo final Conversation conversation = conversationsStore.get(payload.getConversationId().toString()); if (conversation == null) { - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new EmptyResponsePayload()); + return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); } final Channel channel = conversation.getChannel(); if (channel.getConnectionState().equals(ChannelConnectionState.DISCONNECTED)) { - return ResponseEntity.status(HttpStatus.FORBIDDEN).body(new EmptyResponsePayload()); + return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); } final Message message = Message.newBuilder() diff --git a/backend/api/communication/src/main/java/co/airy/core/api/communication/dto/ConversationIndex.java b/backend/api/communication/src/main/java/co/airy/core/api/communication/dto/ConversationIndex.java index 9da84d047c..b64f9e292f 100644 --- a/backend/api/communication/src/main/java/co/airy/core/api/communication/dto/ConversationIndex.java +++ b/backend/api/communication/src/main/java/co/airy/core/api/communication/dto/ConversationIndex.java @@ -1,12 +1,10 @@ package co.airy.core.api.communication.dto; -import co.airy.model.metadata.dto.MetadataMap; import co.airy.model.metadata.dto.MetadataNode; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.apache.avro.generic.GenericData; import java.io.Serializable; import java.util.ArrayList; diff --git a/backend/api/communication/src/main/java/co/airy/core/api/communication/lucene/LuceneProvider.java b/backend/api/communication/src/main/java/co/airy/core/api/communication/lucene/LuceneProvider.java index ee09908898..a177fc2612 100644 --- a/backend/api/communication/src/main/java/co/airy/core/api/communication/lucene/LuceneProvider.java +++ b/backend/api/communication/src/main/java/co/airy/core/api/communication/lucene/LuceneProvider.java @@ -3,7 +3,6 @@ import co.airy.core.api.communication.dto.ConversationIndex; import co.airy.core.api.communication.dto.LuceneQueryResult; import co.airy.log.AiryLoggerFactory; -import org.apache.lucene.analysis.core.WhitespaceAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexWriter; diff --git a/backend/api/communication/src/test/java/co/airy/core/api/communication/ConversationsTagTest.java b/backend/api/communication/src/test/java/co/airy/core/api/communication/ConversationsTagTest.java index 9c5f75d24a..b08fb21ef3 100644 --- a/backend/api/communication/src/test/java/co/airy/core/api/communication/ConversationsTagTest.java +++ b/backend/api/communication/src/test/java/co/airy/core/api/communication/ConversationsTagTest.java @@ -83,7 +83,7 @@ void canTagAndUntagConversations() throws Exception { webTestHelper.post("/conversations.tag", "{\"conversation_id\":\"" + conversationId + "\",\"tag_id\":\"" + tagId + "\"}", userId) - .andExpect(status().isAccepted()); + .andExpect(status().isNoContent()); retryOnException( () -> webTestHelper.post("/conversations.info", @@ -96,7 +96,7 @@ void canTagAndUntagConversations() throws Exception { webTestHelper.post("/conversations.untag", "{\"conversation_id\":\"" + conversationId + "\",\"tag_id\":\"" + tagId + "\"}", userId) - .andExpect(status().isAccepted()); + .andExpect(status().isNoContent()); retryOnException( () -> webTestHelper.post("/conversations.info", diff --git a/backend/api/communication/src/test/java/co/airy/core/api/communication/MetadataControllerTest.java b/backend/api/communication/src/test/java/co/airy/core/api/communication/MetadataControllerTest.java index d47bbfdfa0..5e19689125 100644 --- a/backend/api/communication/src/test/java/co/airy/core/api/communication/MetadataControllerTest.java +++ b/backend/api/communication/src/test/java/co/airy/core/api/communication/MetadataControllerTest.java @@ -81,7 +81,7 @@ void canUpsertMetadata() throws Exception { () -> webTestHelper.post("/metadata.upsert", "{\"subject\": \"message\", \"id\": \"" + messageId + "\", \"data\": {\"sentFrom\": \"iPhone\"}}", "user-id") - .andExpect(status().isOk()), + .andExpect(status().isNoContent()), "Error upserting metadata" ); diff --git a/backend/api/communication/src/test/java/co/airy/core/api/communication/UnreadCountTest.java b/backend/api/communication/src/test/java/co/airy/core/api/communication/UnreadCountTest.java index ba60e70550..3010fba2b4 100644 --- a/backend/api/communication/src/test/java/co/airy/core/api/communication/UnreadCountTest.java +++ b/backend/api/communication/src/test/java/co/airy/core/api/communication/UnreadCountTest.java @@ -102,7 +102,7 @@ void canResetUnreadCount() throws Exception { .andExpect(jsonPath("$.metadata.unread_count", equalTo(unreadMessages))), "Conversation not showing unread count"); - webTestHelper.post("/conversations.read", payload, userId).andExpect(status().isAccepted()); + webTestHelper.post("/conversations.read", payload, userId).andExpect(status().isNoContent()); retryOnException( () -> webTestHelper.post("/conversations.info", payload, userId) diff --git a/backend/model/metadata/src/main/java/co/airy/model/metadata/MetadataObjectMapper.java b/backend/model/metadata/src/main/java/co/airy/model/metadata/MetadataObjectMapper.java index 6bc013be6f..58d8bb3016 100644 --- a/backend/model/metadata/src/main/java/co/airy/model/metadata/MetadataObjectMapper.java +++ b/backend/model/metadata/src/main/java/co/airy/model/metadata/MetadataObjectMapper.java @@ -3,8 +3,6 @@ import co.airy.avro.communication.Metadata; import co.airy.model.metadata.dto.MetadataMap; import co.airy.model.metadata.dto.MetadataNode; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.JsonNodeFactory; diff --git a/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/ChatController.java b/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/ChatController.java index ca11b4211c..6351765b75 100644 --- a/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/ChatController.java +++ b/backend/sources/chat-plugin/src/main/java/co/airy/core/chat_plugin/ChatController.java @@ -10,7 +10,6 @@ import co.airy.core.chat_plugin.payload.ResumeTokenResponsePayload; import co.airy.core.chat_plugin.payload.SendMessageRequestPayload; import co.airy.model.message.dto.MessageResponsePayload; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.spring.web.payload.RequestErrorResponsePayload; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -62,7 +61,7 @@ ResponseEntity authenticateVisitor(@RequestBody @Valid AuthenticationRequestP } else if (channelId != null) { principal = createConversation(channelId.toString()); } else { - return ResponseEntity.badRequest().body(new EmptyResponsePayload()); + return ResponseEntity.badRequest().build(); } final String authToken = jwt.getAuthToken(principal.getConversationId(), principal.getChannelId()); diff --git a/backend/sources/facebook/connector/src/main/java/co/airy/core/sources/facebook/ChannelsController.java b/backend/sources/facebook/connector/src/main/java/co/airy/core/sources/facebook/ChannelsController.java index dd4330783e..f85269d245 100644 --- a/backend/sources/facebook/connector/src/main/java/co/airy/core/sources/facebook/ChannelsController.java +++ b/backend/sources/facebook/connector/src/main/java/co/airy/core/sources/facebook/ChannelsController.java @@ -6,14 +6,13 @@ import co.airy.core.sources.facebook.api.ApiException; import co.airy.core.sources.facebook.api.model.PageWithConnectInfo; import co.airy.core.sources.facebook.payload.ConnectRequestPayload; +import co.airy.core.sources.facebook.payload.DisconnectChannelRequestPayload; import co.airy.core.sources.facebook.payload.ExploreRequestPayload; import co.airy.core.sources.facebook.payload.ExploreResponsePayload; import co.airy.core.sources.facebook.payload.PageInfoResponsePayload; -import co.airy.core.sources.facebook.payload.DisconnectChannelRequestPayload; import co.airy.model.channel.dto.ChannelContainer; import co.airy.model.metadata.MetadataKeys; import co.airy.model.metadata.dto.MetadataMap; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.spring.web.payload.RequestErrorResponsePayload; import co.airy.uuid.UUIDv5; import org.apache.kafka.streams.state.KeyValueIterator; @@ -127,7 +126,7 @@ ResponseEntity disconnect(@RequestBody @Valid DisconnectChannelRequestPayload } if (channel.getConnectionState().equals(ChannelConnectionState.DISCONNECTED)) { - return ResponseEntity.accepted().body(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } channel.setConnectionState(ChannelConnectionState.DISCONNECTED); @@ -139,7 +138,7 @@ ResponseEntity disconnect(@RequestBody @Valid DisconnectChannelRequestPayload return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).build(); } - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } } diff --git a/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/ChannelsController.java b/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/ChannelsController.java index f1237e72e0..6bc1fbb52c 100644 --- a/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/ChannelsController.java +++ b/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/ChannelsController.java @@ -7,13 +7,10 @@ import co.airy.model.channel.dto.ChannelContainer; import co.airy.model.metadata.MetadataKeys; import co.airy.model.metadata.dto.MetadataMap; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.uuid.UUIDv5; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import org.apache.kafka.clients.producer.KafkaProducer; -import org.apache.kafka.clients.producer.ProducerRecord; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; @@ -83,7 +80,7 @@ ResponseEntity disconnect(@RequestBody @Valid DisconnectChannelRequestPayload } if (channel.getConnectionState().equals(ChannelConnectionState.DISCONNECTED)) { - return ResponseEntity.accepted().body(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } channel.setConnectionState(ChannelConnectionState.DISCONNECTED); @@ -95,7 +92,7 @@ ResponseEntity disconnect(@RequestBody @Valid DisconnectChannelRequestPayload return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).build(); } - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } } diff --git a/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/WebhookController.java b/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/WebhookController.java index f9dcaf5e28..c0c4678027 100644 --- a/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/WebhookController.java +++ b/backend/sources/google/connector/src/main/java/co/airy/core/sources/google/WebhookController.java @@ -1,7 +1,6 @@ package co.airy.core.sources.google; import co.airy.kafka.schema.source.SourceGoogleEvents; -import co.airy.spring.web.payload.EmptyResponsePayload; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.Producer; import org.apache.kafka.clients.producer.ProducerConfig; @@ -58,7 +57,7 @@ public void destroy() { @PostMapping("/google") ResponseEntity accept(@RequestBody String event, @RequestHeader("X-Goog-Signature") String signature) { if (!validRequest(event, signature)) { - return ResponseEntity.status(HttpStatus.FORBIDDEN).body(new EmptyResponsePayload()); + return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); } String requestId = UUID.randomUUID().toString(); diff --git a/backend/sources/twilio/connector/src/main/java/co/airy/core/sources/twilio/ChannelsController.java b/backend/sources/twilio/connector/src/main/java/co/airy/core/sources/twilio/ChannelsController.java index 1a951512e2..c6d639c15a 100644 --- a/backend/sources/twilio/connector/src/main/java/co/airy/core/sources/twilio/ChannelsController.java +++ b/backend/sources/twilio/connector/src/main/java/co/airy/core/sources/twilio/ChannelsController.java @@ -7,7 +7,6 @@ import co.airy.model.channel.dto.ChannelContainer; import co.airy.model.metadata.MetadataKeys; import co.airy.model.metadata.dto.MetadataMap; -import co.airy.spring.web.payload.EmptyResponsePayload; import co.airy.uuid.UUIDv5; import lombok.AllArgsConstructor; import lombok.Data; @@ -109,7 +108,7 @@ private ResponseEntity disconnect(@RequestBody @Valid DisconnectChannelReques } if (channel.getConnectionState().equals(ChannelConnectionState.DISCONNECTED)) { - return ResponseEntity.accepted().body(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } channel.setConnectionState(ChannelConnectionState.DISCONNECTED); @@ -121,7 +120,7 @@ private ResponseEntity disconnect(@RequestBody @Valid DisconnectChannelReques return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).build(); } - return ResponseEntity.ok(new EmptyResponsePayload()); + return ResponseEntity.noContent().build(); } } diff --git a/backend/webhook/publisher/src/main/java/co/airy/core/webhook/publisher/Publisher.java b/backend/webhook/publisher/src/main/java/co/airy/core/webhook/publisher/Publisher.java index 17a4a5083e..ea55085a5d 100644 --- a/backend/webhook/publisher/src/main/java/co/airy/core/webhook/publisher/Publisher.java +++ b/backend/webhook/publisher/src/main/java/co/airy/core/webhook/publisher/Publisher.java @@ -1,6 +1,5 @@ package co.airy.core.webhook.publisher; -import co.airy.avro.communication.DeliveryState; import co.airy.avro.communication.Message; import co.airy.avro.communication.Metadata; import co.airy.avro.communication.Status; diff --git a/backend/webhook/publisher/src/main/java/co/airy/core/webhook/publisher/RedisQueue.java b/backend/webhook/publisher/src/main/java/co/airy/core/webhook/publisher/RedisQueue.java index 4f04a4e524..d248a664c5 100644 --- a/backend/webhook/publisher/src/main/java/co/airy/core/webhook/publisher/RedisQueue.java +++ b/backend/webhook/publisher/src/main/java/co/airy/core/webhook/publisher/RedisQueue.java @@ -2,7 +2,6 @@ import co.airy.core.webhook.publisher.payload.QueueMessage; import co.airy.log.AiryLoggerFactory; -import co.airy.model.event.payload.Event; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/docs/docs/api/endpoints/chatplugin.md b/docs/docs/api/endpoints/chatplugin.md index 1da035a605..29d04e1433 100644 --- a/docs/docs/api/endpoints/chatplugin.md +++ b/docs/docs/api/endpoints/chatplugin.md @@ -68,12 +68,6 @@ previous conversation using the [resume endpoint](#get-a-resume-token). You must set the `token` obtained on the [authorization endpoint](#authenticating-web-users) as an `Authorization` header. -**Sample request** - -```json5 -{} -``` - **Sample response** ```json5 diff --git a/docs/docs/api/endpoints/conversations.md b/docs/docs/api/endpoints/conversations.md index 91b6a6c879..03ff2fe231 100644 --- a/docs/docs/api/endpoints/conversations.md +++ b/docs/docs/api/endpoints/conversations.md @@ -145,7 +145,7 @@ Find users whose name ends with "Lovelace": `POST /conversations.read` -Resets the unread count of a conversation and returns status code `202 (Accepted)`. +Resets the unread count of a conversation. **Sample request** @@ -155,11 +155,7 @@ Resets the unread count of a conversation and returns status code `202 (Accepted } ``` -**Sample response** - -```json5 -{} -``` +**Empty response (204)** ## Tag a conversation @@ -177,11 +173,7 @@ tag](/api/endpoints/tags.md#create). Returns status code `200` if successful. } ``` -**Sample response** - -```json5 -{} -``` +**Empty response (204)** ## Untag a conversation @@ -196,8 +188,4 @@ tag](/api/endpoints/tags.md#create). Returns status code `200` if successful. } ``` -**Sample response** - -```json5 -{} -``` +**Empty response (204)** diff --git a/docs/docs/api/endpoints/tags.md b/docs/docs/api/endpoints/tags.md index c60711d956..82251e761e 100644 --- a/docs/docs/api/endpoints/tags.md +++ b/docs/docs/api/endpoints/tags.md @@ -25,7 +25,9 @@ If the tag is successfully created, the request returns status code `201` (creat ```json5 { - "id": "TAG-UUID" + "id": "TAG-UUID", + "name": "Urgent", + "color": "tag-red" } ``` @@ -45,11 +47,7 @@ If the tag is successfully created, the request returns status code `201` (creat If action is successful, the request returns status code `200`. -**Sample response** - -```json5 -{} -``` +**Empty response (204)** ## Delete @@ -65,11 +63,7 @@ If action is successful, the request returns status code `200`. If action is successful, returns HTTP status `200`. -**Sample response** - -```json5 -{} -``` +**Empty response (204)** ## List diff --git a/docs/docs/getting-started/quickstart.md b/docs/docs/getting-started/quickstart.md index 0329ab5942..13fe727a87 100644 --- a/docs/docs/getting-started/quickstart.md +++ b/docs/docs/getting-started/quickstart.md @@ -80,7 +80,7 @@ created. it should return the message you have just sent. conversations.list ```bash -curl -H "Content-Type: application/json" -H "Authorization: Bearer $token" -d "{}" \ +curl -H "Content-Type: application/json" -H "Authorization: Bearer $token" \ http://airy.core/conversations.list | jq . ``` diff --git a/docs/docs/sources/chatplugin/quickstart.md b/docs/docs/sources/chatplugin/quickstart.md index 9fd2bb1b48..38e8e2dc4c 100644 --- a/docs/docs/sources/chatplugin/quickstart.md +++ b/docs/docs/sources/chatplugin/quickstart.md @@ -108,7 +108,7 @@ created. it should return the message you have just sent.
    ```sh -curl -H "Content-Type: application/json" -H "Authorization: Bearer $token" -d "{}" \ +curl -H "Content-Type: application/json" -H "Authorization: Bearer $token" \ http://airy.core/conversations.list | jq . ``` diff --git a/lib/java/spring/web/src/main/java/co/airy/spring/web/payload/EmptyResponsePayload.java b/lib/java/spring/web/src/main/java/co/airy/spring/web/payload/EmptyResponsePayload.java deleted file mode 100644 index 1ce31fe42a..0000000000 --- a/lib/java/spring/web/src/main/java/co/airy/spring/web/payload/EmptyResponsePayload.java +++ /dev/null @@ -1,8 +0,0 @@ -package co.airy.spring.web.payload; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -//https://codingexplained.com/coding/java/spring-framework/returning-empty-json-object-spring-framework -@JsonSerialize -public class EmptyResponsePayload { -} diff --git a/lib/typescript/httpclient/client.ts b/lib/typescript/httpclient/client.ts index 13eb013fe6..94d4353d7a 100644 --- a/lib/typescript/httpclient/client.ts +++ b/lib/typescript/httpclient/client.ts @@ -56,8 +56,8 @@ interface ApiRequest { interface EndpointDefinition { endpoint: string | ((requestPayload: T) => string); - mapRequest: (requestPayload: T) => any; - mapResponse: (any) => K; + mapRequest?: (requestPayload: T) => any; + mapResponse?: (any) => K; opts?: FetchOptions; } @@ -77,7 +77,7 @@ export class HttpClient { try { return await response.json(); } catch { - // NOOP + return; } } @@ -98,7 +98,7 @@ export class HttpClient { }; } - private async doFetchFromBackend(url: string, body?: Object, options?: FetchOptions): Promise { + private async doFetchFromBackend(url: string, body?: any, options?: FetchOptions): Promise { const headers = { Accept: 'application/json', }; @@ -183,8 +183,9 @@ export class HttpClient { }: EndpointDefinition): ApiRequest { return async (requestPayload: K) => { endpoint = typeof endpoint === 'string' ? endpoint : endpoint(requestPayload); - const response = await this.doFetchFromBackend(endpoint, mapRequest(requestPayload), opts); - return mapResponse(response); + requestPayload = mapRequest ? mapRequest(requestPayload) : requestPayload; + const response = await this.doFetchFromBackend(endpoint, requestPayload, opts); + return mapResponse ? mapResponse(response) : response; }; } } diff --git a/lib/typescript/httpclient/endpoints/connectChatPluginChannel.ts b/lib/typescript/httpclient/endpoints/connectChatPluginChannel.ts index 5d32de011e..37adbfd095 100644 --- a/lib/typescript/httpclient/endpoints/connectChatPluginChannel.ts +++ b/lib/typescript/httpclient/endpoints/connectChatPluginChannel.ts @@ -3,6 +3,5 @@ const camelcaseKeys = require('camelcase-keys'); export const connectChatPluginChannelDef = { endpoint: 'channels.chatplugin.connect', - mapRequest: req => req, mapResponse: response => camelcaseKeys(response, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/createTag.ts b/lib/typescript/httpclient/endpoints/createTag.ts index 1eb21242df..b0d4595698 100644 --- a/lib/typescript/httpclient/endpoints/createTag.ts +++ b/lib/typescript/httpclient/endpoints/createTag.ts @@ -1,5 +1,3 @@ export const createTagDef = { endpoint: 'tags.create', - mapRequest: req => req, - mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/disconnectChannel.ts b/lib/typescript/httpclient/endpoints/disconnectChannel.ts index ef74596599..660b10b319 100644 --- a/lib/typescript/httpclient/endpoints/disconnectChannel.ts +++ b/lib/typescript/httpclient/endpoints/disconnectChannel.ts @@ -1,5 +1,4 @@ export const disconnectChannelDef = { endpoint: ({source}) => `channels.${source}.disconnect`, mapRequest: ({channelId}) => ({channel_id: channelId}), - mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/exploreFacebookChannels.ts b/lib/typescript/httpclient/endpoints/exploreFacebookChannels.ts index dbc052bb3d..9ebf316720 100644 --- a/lib/typescript/httpclient/endpoints/exploreFacebookChannels.ts +++ b/lib/typescript/httpclient/endpoints/exploreFacebookChannels.ts @@ -3,6 +3,5 @@ const camelcaseKeys = require('camelcase-keys'); export const exploreFacebookChannelsDef = { endpoint: 'facebook.channels.explore', - mapRequest: requestPayload => requestPayload, mapResponse: response => camelcaseKeys(response.data, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/getConfig.ts b/lib/typescript/httpclient/endpoints/getConfig.ts index 45fa26e5a5..741894f953 100644 --- a/lib/typescript/httpclient/endpoints/getConfig.ts +++ b/lib/typescript/httpclient/endpoints/getConfig.ts @@ -1,5 +1,3 @@ export const getConfigDef = { endpoint: 'client.config', - mapRequest: () => ({}), - mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/listChannels.ts b/lib/typescript/httpclient/endpoints/listChannels.ts index 922f268969..391e45ebc8 100644 --- a/lib/typescript/httpclient/endpoints/listChannels.ts +++ b/lib/typescript/httpclient/endpoints/listChannels.ts @@ -3,6 +3,5 @@ const camelcaseKeys = require('camelcase-keys'); export const listChannelsDef = { endpoint: 'channels.list', - mapRequest: () => ({}), mapResponse: response => camelcaseKeys(response.data, {deep: true, stopPaths: ['metadata.user_data']}), }; diff --git a/lib/typescript/httpclient/endpoints/listMessages.ts b/lib/typescript/httpclient/endpoints/listMessages.ts index 87dd9ddbf0..3e4990d277 100644 --- a/lib/typescript/httpclient/endpoints/listMessages.ts +++ b/lib/typescript/httpclient/endpoints/listMessages.ts @@ -14,9 +14,8 @@ export const listMessagesDef = { page_size: conversationListRequest.pageSize, }; }, - mapResponse: response => { - const mappedMessageData = response.data.map(messagePayload => mapMessage(messagePayload)); - - return {data: mappedMessageData, paginationData: camelcaseKeys(response.pagination_data)}; - }, + mapResponse: response => ({ + data: response.data.map(messagePayload => mapMessage(messagePayload)), + paginationData: camelcaseKeys(response.pagination_data), + }), }; diff --git a/lib/typescript/httpclient/endpoints/listTags.ts b/lib/typescript/httpclient/endpoints/listTags.ts index 070b73be5e..07e21f07ba 100644 --- a/lib/typescript/httpclient/endpoints/listTags.ts +++ b/lib/typescript/httpclient/endpoints/listTags.ts @@ -7,6 +7,5 @@ const tagMapper = { export const listTagsDef = { endpoint: 'tags.list', - mapRequest: () => ({}), - mapResponse: response => response.data.map(t => ({id: t.id, names: t.name, color: tagMapper[t.color] || 'tag-blue'})), + mapResponse: response => response.data.map(t => ({id: t.id, name: t.name, color: tagMapper[t.color] || 'tag-blue'})), }; diff --git a/lib/typescript/httpclient/endpoints/listTemplates.ts b/lib/typescript/httpclient/endpoints/listTemplates.ts index 2d5e93113a..5c490d9529 100644 --- a/lib/typescript/httpclient/endpoints/listTemplates.ts +++ b/lib/typescript/httpclient/endpoints/listTemplates.ts @@ -3,6 +3,5 @@ const camelcaseKeys = require('camelcase-keys'); export const listTemplatesDef = { endpoint: 'templates.list', - mapRequest: req => req, mapResponse: response => camelcaseKeys(response.data), }; diff --git a/lib/typescript/httpclient/endpoints/loginViaEmail.ts b/lib/typescript/httpclient/endpoints/loginViaEmail.ts index c21a1f5af1..1fbcb05131 100644 --- a/lib/typescript/httpclient/endpoints/loginViaEmail.ts +++ b/lib/typescript/httpclient/endpoints/loginViaEmail.ts @@ -3,7 +3,6 @@ const camelcaseKeys = require('camelcase-keys'); export const loginViaEmailDef = { endpoint: 'users.login', - mapRequest: req => req, mapResponse: response => ({...camelcaseKeys(response), displayName: `${response.first_name} ${response.last_name}`}), opts: {ignoreAuthToken: true}, }; diff --git a/lib/typescript/httpclient/endpoints/readConversations.ts b/lib/typescript/httpclient/endpoints/readConversations.ts index 7173bfb30d..599e6b61cb 100644 --- a/lib/typescript/httpclient/endpoints/readConversations.ts +++ b/lib/typescript/httpclient/endpoints/readConversations.ts @@ -1,5 +1,4 @@ export const readConversationsDef = { endpoint: 'conversations.read', mapRequest: conversationId => ({conversation_id: conversationId}), - mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/tagConversation.ts b/lib/typescript/httpclient/endpoints/tagConversation.ts index 162dd410c3..89e33e4955 100644 --- a/lib/typescript/httpclient/endpoints/tagConversation.ts +++ b/lib/typescript/httpclient/endpoints/tagConversation.ts @@ -4,5 +4,4 @@ export const tagConversationDef = { conversation_id: conversationId, tag_id: tagId, }), - mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/untagConversation.ts b/lib/typescript/httpclient/endpoints/untagConversation.ts index ee1dd0936e..b31eacc359 100644 --- a/lib/typescript/httpclient/endpoints/untagConversation.ts +++ b/lib/typescript/httpclient/endpoints/untagConversation.ts @@ -4,5 +4,4 @@ export const untagConversationDef = { conversation_id: conversationId, tag_id: tagId, }), - mapResponse: response => response, }; diff --git a/lib/typescript/httpclient/endpoints/updateTag.ts b/lib/typescript/httpclient/endpoints/updateTag.ts index 4d6d564f73..bcd904cd0c 100644 --- a/lib/typescript/httpclient/endpoints/updateTag.ts +++ b/lib/typescript/httpclient/endpoints/updateTag.ts @@ -1,5 +1,3 @@ export const updateTagDef = { endpoint: 'tags.update', - mapRequest: req => req, - mapResponse: response => response, }; From f14269e3b4cfdc81bedbc7e396e26a4d4a0e5bec Mon Sep 17 00:00:00 2001 From: Kazeem Adetunji Date: Mon, 12 Apr 2021 16:05:12 +0200 Subject: [PATCH 30/33] [#929]Implement the option to end chat (#1508) --- .../assets/images/icons/minimize-button.svg | 3 + .../AiryHeaderBar/index.module.scss | 21 ++++++ .../airyRenderProps/AiryHeaderBar/index.tsx | 25 ++++--- .../airyRenderProps/AiryInputBar/index.tsx | 5 +- .../src/components/chat/index.module.scss | 42 +++++++++++ .../chat-plugin/src/components/chat/index.tsx | 61 ++++++++++++--- .../src/components/modal/index.module.scss | 75 +++++++++++++++++++ .../src/components/modal/index.tsx | 26 +++++++ .../newConversation/index.module.scss | 30 ++++++++ .../src/components/newConversation/index.tsx | 25 +++++++ frontend/chat-plugin/src/config.ts | 1 + frontend/chat-plugin/src/defaultScript.tsx | 2 + 12 files changed, 292 insertions(+), 24 deletions(-) create mode 100644 frontend/assets/images/icons/minimize-button.svg create mode 100644 frontend/chat-plugin/src/components/modal/index.module.scss create mode 100644 frontend/chat-plugin/src/components/modal/index.tsx create mode 100644 frontend/chat-plugin/src/components/newConversation/index.module.scss create mode 100644 frontend/chat-plugin/src/components/newConversation/index.tsx diff --git a/frontend/assets/images/icons/minimize-button.svg b/frontend/assets/images/icons/minimize-button.svg new file mode 100644 index 0000000000..97c0829be8 --- /dev/null +++ b/frontend/assets/images/icons/minimize-button.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.module.scss b/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.module.scss index 8313c00381..2b8d5a4975 100644 --- a/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.module.scss +++ b/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.module.scss @@ -40,4 +40,25 @@ background: transparent; border-radius: 100%; cursor: pointer; + + path { + fill: #fff; + } +} + +.minimizeButton { + outline: none; + position: absolute; + right: 12%; + padding: 2px 0 0 2px; + border: none; + height: 32px; + width: 32px; + background: #1578d4; + border-radius: 100%; + cursor: pointer; + + path { + fill: #fff; + } } diff --git a/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx b/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx index 621561804b..2c73bf4f25 100644 --- a/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx +++ b/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx @@ -1,13 +1,17 @@ import React from 'react'; import {Config} from '../../App'; import style from './index.module.scss'; +import {ReactComponent as CloseButton} from '../../../../assets/images/icons/close.svg'; +import {ReactComponent as MinimizeButton} from '../../../../assets/images/icons/minimize-button.svg'; -type Props = { +type AiryHeaderBarProps = { toggleHideChat: () => void; config?: Config; + setShowModal: React.Dispatch>; }; -const AiryHeaderBar = (props: Props) => { +const AiryHeaderBar = (props: AiryHeaderBarProps) => { + const showModalOnClick = () => props.setShowModal(true); const {config} = props; const customStyle = { @@ -26,16 +30,13 @@ const AiryHeaderBar = (props: Props) => { {config.headerText || 'Customer Chat'}
  • +
    {children}
    {decoration} diff --git a/lib/typescript/render/props.ts b/lib/typescript/render/props.ts index f348cf5108..f47de83bb6 100644 --- a/lib/typescript/render/props.ts +++ b/lib/typescript/render/props.ts @@ -13,10 +13,18 @@ export interface SuggestedReplyCommand extends Command { }; } -export type CommandUnion = SuggestedReplyCommand; +export interface QuickReplyCommand extends Command { + type: 'quickReplies'; + payload: { + text: string; + postbackData: string; + }; +} + +export type CommandUnion = SuggestedReplyCommand | QuickReplyCommand; interface RenderProps { - contentType: 'message' | 'template' | 'suggestedReplies'; + contentType: 'message' | 'template' | 'suggestedReplies' | 'quickReplies'; content: RenderedContentUnion; source: string; } @@ -34,8 +42,15 @@ export interface TemplateRenderProps extends RenderProps { export interface SuggestedRepliesRenderProps extends RenderProps { contentType: 'suggestedReplies'; } +export interface QuickRepliesRenderProps extends RenderProps { + contentType: 'quickReplies'; +} -export type RenderPropsUnion = MessageRenderProps | TemplateRenderProps | SuggestedRepliesRenderProps; +export type RenderPropsUnion = + | MessageRenderProps + | TemplateRenderProps + | SuggestedRepliesRenderProps + | QuickRepliesRenderProps; export const getDefaultRenderingProps = (props: RenderPropsUnion): DefaultRenderingProps => { const fromContact = isFromContact(props.content); diff --git a/lib/typescript/render/providers/chatplugin/ChatPluginRender.tsx b/lib/typescript/render/providers/chatplugin/ChatPluginRender.tsx index 07a4fd35f8..25d1634993 100644 --- a/lib/typescript/render/providers/chatplugin/ChatPluginRender.tsx +++ b/lib/typescript/render/providers/chatplugin/ChatPluginRender.tsx @@ -4,7 +4,8 @@ import {RichText} from '../../components/RichText'; import {RichCard} from '../../components/RichCard'; import {RichCardCarousel} from '../../components/RichCardCarousel'; import {Text} from '../../components/Text'; -import {ContentUnion} from './chatPluginModel'; +import {AttachmentUnion, ContentUnion, SimpleAttachment} from './chatPluginModel'; +import {QuickReplies} from './components/QuickReplies/index'; import {RenderedContentUnion} from 'model'; export const ChatPluginRender = (props: RenderPropsUnion) => { @@ -46,12 +47,41 @@ function render(content: ContentUnion, props: RenderPropsUnion) { ); case 'richCardCarousel': return ; + case 'quickReplies': + return ( + + ); } } function mapContent(message: RenderedContentUnion): ContentUnion { const messageContent = message.content.message ?? message.content; + if (messageContent.quick_replies) { + if (messageContent.quick_replies.length > 13) { + messageContent.quick_replies = messageContent.quick_replies.slice(0, 13); + } + + if (messageContent.attachment || messageContent.attachments) { + return { + type: 'quickReplies', + attachment: parseAttachment(messageContent.attachment || messageContent.attachments), + quickReplies: messageContent.quick_replies, + }; + } + + return { + type: 'quickReplies', + text: messageContent.text, + quickReplies: messageContent.quick_replies, + }; + } + if (messageContent.richCard?.standaloneCard) { const { richCard: { @@ -106,4 +136,25 @@ function mapContent(message: RenderedContentUnion): ContentUnion { }; } +const parseAttachment = (attachment: SimpleAttachment): AttachmentUnion => { + if (attachment.type === 'image') { + return { + type: 'image', + imageUrl: attachment.payload.url, + }; + } + + if (attachment.type === 'video') { + return { + type: 'video', + videoUrl: attachment.payload.url, + }; + } + + return { + type: 'text', + text: 'Unknown message type', + }; +}; + const parseBoolean = value => (typeof value == 'boolean' ? value : /^true$/i.test(value)); diff --git a/lib/typescript/render/providers/chatplugin/chatPluginModel.ts b/lib/typescript/render/providers/chatplugin/chatPluginModel.ts index 216a05d753..e930391474 100644 --- a/lib/typescript/render/providers/chatplugin/chatPluginModel.ts +++ b/lib/typescript/render/providers/chatplugin/chatPluginModel.ts @@ -1,12 +1,24 @@ import {Suggestion} from '../../components/RichCard'; export interface Content { - type: 'text' | 'richText' | 'richCard' | 'richCardCarousel'; + type: 'text' | 'image' | 'video' | 'richText' | 'richCard' | 'richCardCarousel' | 'quickReplies'; } +export interface Command { + type: 'quickReplies'; +} export interface TextContent extends Content { type: 'text'; text: string; } +export interface ImageContent extends Content { + type: 'image'; + imageUrl: string; +} + +export interface VideoContent extends Content { + type: 'video'; + videoUrl: string; +} export interface RichTextContent extends Content { type: 'richText'; @@ -47,9 +59,40 @@ export interface SuggestionResponse { postbackData: string; } +export interface QuickReply extends Content { + content_type: string; + title: string; + payload: QuickReplyCommand; + image_url?: string; +} + +export interface QuickReplyCommand extends Command { + type: 'quickReplies'; + text: string; + postbackData: string; +} + +export interface QuickRepliesContent extends Content { + type: 'quickReplies'; + text?: string; + attachment?: AttachmentUnion; + quickReplies: QuickReply[]; +} + +export interface SimpleAttachment { + type: 'image' | 'video' | 'audio' | 'file' | 'fallback'; + payload: { + title?: string; + url?: string; + }; +} + export type ContentUnion = | TextContent | RichTextContent | RichCardContent | RichCardCarouselContent - | SuggestionResponse; + | SuggestionResponse + | QuickRepliesContent; + +export type AttachmentUnion = TextContent | ImageContent | VideoContent; diff --git a/lib/typescript/render/providers/chatplugin/components/QuickReplies/index.module.scss b/lib/typescript/render/providers/chatplugin/components/QuickReplies/index.module.scss new file mode 100644 index 0000000000..420f29b25d --- /dev/null +++ b/lib/typescript/render/providers/chatplugin/components/QuickReplies/index.module.scss @@ -0,0 +1,42 @@ +@import 'assets/scss/fonts.scss'; +@import 'assets/scss/colors.scss'; + +.wrapper { + display: flex; + flex-direction: column; + margin-top: 5px; + align-items: flex-end; +} + +.container { + display: flex; + flex-wrap: wrap; + margin-top: 5px; + justify-content: flex-end; +} + +.replyButton { + width: auto; + height: auto; + display: flex; + justify-content: center; + align-items: center; + margin: 0px 0px 5px 5px; + padding: 4px 8px; + border-radius: 16px; + border: 1px solid var(--color-airy-blue); + background-color: var(--color-template-highlight); +} + +.quickReplyImage { + width: 25px; + height: 25px; + margin-right: 6px; + border-radius: 50%; +} + +.title { + @include font-base; + color: var(--color-airy-blue); + margin: 0px; +} diff --git a/lib/typescript/render/providers/chatplugin/components/QuickReplies/index.tsx b/lib/typescript/render/providers/chatplugin/components/QuickReplies/index.tsx new file mode 100644 index 0000000000..185c2c1a12 --- /dev/null +++ b/lib/typescript/render/providers/chatplugin/components/QuickReplies/index.tsx @@ -0,0 +1,57 @@ +import React from 'react'; +import styles from './index.module.scss'; +import {DefaultRenderingProps} from '../../../../components/index'; +import {Text} from '../../../../components/Text'; +import {Video} from '../../../../components/Video'; +import {Image} from '../../../../components/Image'; +import {ImageWithFallback} from 'render/components/ImageWithFallback'; +import {QuickReply, AttachmentUnion} from 'render/providers/chatplugin/chatPluginModel'; +import {CommandUnion} from 'render/props'; + +export type QuickRepliesRenderProps = DefaultRenderingProps & { + text?: string; + attachment?: AttachmentUnion; + quickReplies: QuickReply[]; + commandCallback?: (command: CommandUnion) => void; +}; + +export const QuickReplies = ({ + quickReplies, + fromContact, + text, + attachment, + commandCallback, +}: QuickRepliesRenderProps) => { + const clickPostback = (reply: QuickReply) => { + commandCallback && + commandCallback({ + type: 'quickReplies', + payload: {text: reply.payload.text, postbackData: reply.payload.postbackData}, + }); + }; + + return ( +
    + {text && } + + {attachment && 'text' in attachment && } + + {attachment && 'imageUrl' in attachment && } + + {attachment && 'videoUrl' in attachment &&
    + ); +}; diff --git a/lib/typescript/render/providers/facebook/components/QuickReplies/index.module.scss b/lib/typescript/render/providers/facebook/components/QuickReplies/index.module.scss index 3f0661df60..420f29b25d 100644 --- a/lib/typescript/render/providers/facebook/components/QuickReplies/index.module.scss +++ b/lib/typescript/render/providers/facebook/components/QuickReplies/index.module.scss @@ -38,4 +38,5 @@ .title { @include font-base; color: var(--color-airy-blue); + margin: 0px; } From 7bdfdcd9b54a135e6887f3c0b22a600c39e6a43b Mon Sep 17 00:00:00 2001 From: Pascal Holy <54705263+pascal-airy@users.noreply.github.com> Date: Fri, 9 Apr 2021 10:13:17 +0200 Subject: [PATCH 19/33] [#1473] Make release process more quiet (#1501) Fixes #1473 --- docs/docs/changelog.md | 112 +++++++++++++------------- docs/docs/concepts/release-process.md | 3 +- scripts/release.sh | 9 +-- 3 files changed, 61 insertions(+), 63 deletions(-) diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index 09b99b341a..e9796a89cd 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -1,10 +1,10 @@ ---- -title: Changelog -sidebar_label: 📝 Changelog ---- - -## - +--- +title: Changelog +sidebar_label: 📝 Changelog +--- + +## 0.16.0 + #### 🚀 Features - [[#1111](https://github.com/airyhq/airy/issues/1111)] Customize Chat Plugin [[#1456](https://github.com/airyhq/airy/pull/1456)] @@ -56,13 +56,13 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.16.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.16.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.16.0/windows/amd64/airy.exe) - -## 0.15.1 Hotfix - + +## 0.15.1 Hotfix + - [[#1427](https://github.com/airyhq/airy/issues/1427)] Fix broken UI pod config for AWS deployment - -## 0.15.0 - + +## 0.15.0 + #### 🚀 Features - [[#1299](https://github.com/airyhq/airy/issues/1299)] Video Fallback for the render library [[#1412](https://github.com/airyhq/airy/pull/1412)] @@ -109,9 +109,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.15.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.15.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.15.0/windows/amd64/airy.exe) - -## 0.14.0 - + +## 0.14.0 + #### Changes - Docs/1301 add docs for twilio sources [[#1332](https://github.com/airyhq/airy/pull/1332)] @@ -180,9 +180,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.14.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.14.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.14.0/windows/amd64/airy.exe) - -## 0.13.0 - + +## 0.13.0 + #### Changes - Bump typesafe-actions from 4.4.2 to 5.1.0 [[#1210](https://github.com/airyhq/airy/pull/1210)] - [[#783](https://github.com/airyhq/airy/issues/783)] Introduce changelog [[#1221](https://github.com/airyhq/airy/pull/1221)] @@ -238,9 +238,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.13.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.13.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.13.0/windows/amd64/airy.exe) - -## 0.12.0 - + +## 0.12.0 + #### Changes - [[#1132](https://github.com/airyhq/airy/issues/1132)] Fix missing , in nginx [[#1133](https://github.com/airyhq/airy/pull/1133)] @@ -304,9 +304,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.12.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.12.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.12.0/windows/amd64/airy.exe) - -## 0.11.0 - + +## 0.11.0 + #### 🚀 Features - Custom welcome message in Chat Plugin [[#1103](https://github.com/airyhq/airy/pull/1103)] @@ -346,9 +346,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.11.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.11.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.11.0/windows/amd64/airy.exe) - -## 0.10.0 - + +## 0.10.0 + #### Changes - [[#1007](https://github.com/airyhq/airy/issues/1007)] Bug: Cookies + 2 Chat Plugins [[#1027](https://github.com/airyhq/airy/pull/1027)] @@ -398,9 +398,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.10.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.10.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.10.0/windows/amd64/airy.exe) - -## 0.9.0 - + +## 0.9.0 + #### 🚀 Features - [[#807](https://github.com/airyhq/airy/issues/807)] Introduction to UI docs [[#973](https://github.com/airyhq/airy/pull/973)] @@ -444,9 +444,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.9.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.9.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.9.0/windows/amd64/airy.exe) - -## 0.8.1 - + +## 0.8.1 + #### Changes #### 🚀 Features @@ -466,9 +466,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.8.1/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.8.1/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.8.1/windows/amd64/airy.exe) - -## 0.8.0 - + +## 0.8.0 + #### Changes @@ -517,9 +517,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.8.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.8.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.8.0/windows/amd64/airy.exe) - -## 0.7.0 - + +## 0.7.0 + #### Changes - [[#685](https://github.com/airyhq/airy/issues/685)] Type errors not caught by Typescript [[#780](https://github.com/airyhq/airy/pull/780)] @@ -586,9 +586,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.7.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.7.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.7.0/windows/amd64/airy.exe) - -## 0.6.0 - + +## 0.6.0 + #### 🚀 Features - [[#623](https://github.com/airyhq/airy/issues/623)] Optional apps depend on config file [[#719](https://github.com/airyhq/airy/pull/719)] @@ -661,9 +661,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.6.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.6.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.6.0/windows/amd64/airy.exe) -[Alpine](https://airy-core-binaries.s3.amazonaws.com/0.6.0/alpine/amd64/airy) -## - +[Alpine](https://airy-core-binaries.s3.amazonaws.com/0.6.0/alpine/amd64/airy) +## + #### Changes #### 🚀 Features @@ -701,9 +701,9 @@ You can download the Airy CLI for your operating system from the following links - [[#412](https://github.com/airyhq/airy/issues/412)] Push only changed images for beta [[#601](https://github.com/airyhq/airy/pull/601)] - [[#331](https://github.com/airyhq/airy/issues/331)] Introduce local container push target [[#580](https://github.com/airyhq/airy/pull/580)] - -## 0.4.0 - + +## 0.4.0 + #### 🚀 Features - [[#526](https://github.com/airyhq/airy/issues/526)] Introduce namespacing for topics [[#566](https://github.com/airyhq/airy/pull/566)] @@ -741,9 +741,9 @@ You can download the Airy CLI for your operating system from the following links - [[#515](https://github.com/airyhq/airy/issues/515)] introduce eslint [[#554](https://github.com/airyhq/airy/pull/554)] - [[#548](https://github.com/airyhq/airy/issues/548)] Extract payload to web library and introduce date lib [[#556](https://github.com/airyhq/airy/pull/556)] - [[#551](https://github.com/airyhq/airy/issues/551)] Use test.properties everywhere [[#553](https://github.com/airyhq/airy/pull/553)] - -## 0.3.0 - + +## 0.3.0 + #### Changes - [[#472](https://github.com/airyhq/airy/issues/472)] Fix guide link [[#488](https://github.com/airyhq/airy/pull/488)] @@ -800,9 +800,9 @@ You can download the Airy CLI for your operating system from the following links - Bump ini from 1.3.5 to 1.3.7 [[#474](https://github.com/airyhq/airy/pull/474)] - Bump elliptic from 6.5.2 to 6.5.3 [[#461](https://github.com/airyhq/airy/pull/461)] - [[#432](https://github.com/airyhq/airy/issues/432)] Use Bazel tools web rules [[#435](https://github.com/airyhq/airy/pull/435)] - -## 0.2.0 - + +## 0.2.0 + #### Changes - [[#338](https://github.com/airyhq/airy/issues/338)] Add docs for running in production [[#359](https://github.com/airyhq/airy/pull/359)] @@ -1040,4 +1040,4 @@ You can download the Airy CLI for your operating system from the following links - Add Vbox known issue [[#409](https://github.com/airyhq/airy/pull/409)] - [[#344](https://github.com/airyhq/airy/issues/344)] Enable copy\&paste of code snippets [[#391](https://github.com/airyhq/airy/pull/391)] - Docs/chat plugin [[#383](https://github.com/airyhq/airy/pull/383)] - + diff --git a/docs/docs/concepts/release-process.md b/docs/docs/concepts/release-process.md index 8cc29c3396..805bc7fe6c 100644 --- a/docs/docs/concepts/release-process.md +++ b/docs/docs/concepts/release-process.md @@ -30,8 +30,7 @@ Once a release day comes, we execute the following steps: Formula](https://github.com/airyhq/homebrew-airy/blob/main/Formula/cli.rb) for the CLI. - We archive cards in the done column of the [work in progress](https://github.com/airyhq/airy/projects/1) board - - We tag the draft release with the tag `x.y.z` and publish it. - - We announce the release! + - We publish the release and announce it! As part of the release process we are also releasing a command line client - the `Airy CLI`. diff --git a/scripts/release.sh b/scripts/release.sh index ca7c82c30e..23840d63c2 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -9,8 +9,8 @@ start() { create_issue create_release_branch update_release_version - commit_version_and_changelog rename_draft_release + commit_version_and_changelog } create_issue() { @@ -91,13 +91,12 @@ merge_develop() { rename_draft_release() { release_id=$( - command curl -H "Authorization: token ${GITHUB_TOKEN}" -X GET \ + command curl -s -H "Authorization: token ${GITHUB_TOKEN}" -X GET \ https://api.github.com/repos/airyhq/airy/releases | jq '.[0].id' ) - command curl -H "Authorization: token ${GITHUB_TOKEN}" -X PATCH \ + command curl -s -H "Authorization: token ${GITHUB_TOKEN}" -X PATCH \ https://api.github.com/repos/airyhq/airy/releases/"$release_id" \ - -d "{\"name\":\"${release_number}\", \"tag_name\":\"${release_number}\"}" - + -d "{\"name\":\"${release_number}\", \"tag_name\":\"${release_number}\"}" > /dev/null } if [[ -z ${1+x} || -z ${2+x} ]]; then From 341d5793e3821e52cd78872efe9c8d11e0a3b68d Mon Sep 17 00:00:00 2001 From: Paulo Diniz Date: Fri, 9 Apr 2021 10:23:29 +0200 Subject: [PATCH 20/33] [#1422] AWS Docs Revamp (#1487) * [#1422] AWS Docs Revamp * Update docs/docs/getting-started/installation/aws.md Co-authored-by: lucapette * Update docs/docs/getting-started/installation/aws.md Co-authored-by: lucapette * Using ::note to explicit requirements * Fixing the asciinema cast Co-authored-by: lucapette Co-authored-by: ljupcovangelski --- docs/docs/getting-started/installation/aws.md | 109 +++++++++++++++--- .../getting-started/installation/minikube.md | 30 ++--- docs/docs/getting-started/introduction.md | 10 ++ 3 files changed, 118 insertions(+), 31 deletions(-) diff --git a/docs/docs/getting-started/installation/aws.md b/docs/docs/getting-started/installation/aws.md index 56d5bdf9bf..4ce8f46d19 100644 --- a/docs/docs/getting-started/installation/aws.md +++ b/docs/docs/getting-started/installation/aws.md @@ -1,5 +1,5 @@ --- -title: AWS +title: Run Airy on AWS sidebar_label: AWS --- @@ -8,30 +8,70 @@ import TLDR from "@site/src/components/TLDR"; import SuccessBox from "@site/src/components/SuccessBox"; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import ButtonBox from "@site/src/components/ButtonBox"; +import DiamondSVG from "@site/static/icons/diamond.svg"; - Run Airy Core on AWS with one command. - The goal of this document is to provide an overview of how to run Airy Core on -AWS cloud platform, using the [AWS Elastic Kubernetes Service](https://aws.amazon.com/eks/). +AWS cloud platform, using the [AWS Elastic Kubernetes +Service](https://aws.amazon.com/eks/). + +## Configure AWS + +:::note + +Prior to starting this guide, you must create an [AWS +account](https://aws.amazon.com/free). We also recommend installing the [AWS +CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html). + +::: + +Once you have installed the AWS CLI, you now need to configure the application +to be able to connect to your AWS account: + +``` +aws configure +``` + +Through `aws configure`, the AWS CLI will prompt you for four pieces of +information. The first two are required. These are your [AWS access key ID and +AWS secret access +key](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html), +which serve as your account credentials. You can generate new credentials within +AWS Identity and Access Management (IAM) if you do not already have them. The +other information you will need is region and output format, which you can leave +as default for the time being. + +``` +aws configure +AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE +AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY +Default region name [None]: us-west-2 +Default output format [None]: json +``` -Apart from the EKS cluster, the installation will create all the necessary AWS resources, such as: +Apart from an EKS cluster, `airy create` will take car of all the necessary AWS +resources, such as: - VPC resources (VPC, subnets, route tables, public gateways) - IAM roles and policy attachments - EKS cluster and EKS node groups - EC2 instances, as part of the created node group -## Creating a cluster +## Create a cluster -For creating the cluster you would need to setup your local AWS environment, by [configuring your local AWS profile](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html) for the AWS account where all the resources will be created. +To create the cluster you must setup your local AWS environment, by [configuring +your local AWS +profile](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html) +for the AWS account where all the resources will be created. Download and install the [Airy CLI](cli/introduction.md). -Export your AWS_PROFILE as described in the [AWS documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html). +Export your AWS_PROFILE as described in the [AWS +documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html). Now you can run this command, which will create Airy core in your AWS account: @@ -41,21 +81,48 @@ airy create --provider=aws This will execute the following actions: -1. Create the `my-airy` directory and populate it with the configuration that the CLI will need. All subsequent commands need to either be run from this directory or use the `--config-dir` flag. +1. Create the `my-airy` directory and populate it with the configuration that + the CLI will need. All subsequent commands need to either be run from this + directory or use the `--config-dir` flag. 2. Start an Airy Core cluster in your AWS account. 3. Print URLs for accessing the UIs and APIs (see recording). -By default, the installation will create a single EC2 Kubernetes node, as part of a single node group. You can scale your EKS cluster by adding more nodes or node groups through the AWS web console or the AWS CLI. +By default, the installation will create a single EC2 Kubernetes node, as part +of a single node group. You can scale your EKS cluster by adding more nodes or +node groups through the AWS web console or the AWS CLI. import Script from "@site/src/components/Script"; - + + +If you want to customize your `Airy Core` instance please see our [Configuration +Section](configuration.md). + +After the installation, you can also interact with the components of `Airy Core` +with the [kubectl](https://kubernetes.io/docs/tasks/tools/) command line +utility. You can find the kubeconfig of your Airy Core instance in +`~/.airy/kube.conf`. + +### Verification -If you want to customize your `Airy Core` instance please see our [Configuration Section](configuration.md). +After the installation process, you can verify that all the pods are running with + +``` +kubectl get pods --kubeconfig ./kube.conf +``` -After the installation, you can also interact with the components of `Airy Core` with the [kubectl](https://kubernetes.io/docs/tasks/tools/) command line utility. You can find the kubeconfig of your Airy Core instance in `~/.airy/kube.conf`. +### Common issues -## Public webhooks +AWS has a limit on the number of objects you can create depending on your account. + +``` +Error creating vpc: operation error EC2: CreateVpc, https response error StatusCode: 400, RequestID: 64210ff5-9aca-4ab7-b993-3727637a59d6, api error VpcLimitExceeded: The maximum number of VPCs has been reached. +``` + +When encountering this, you can delete some of the resources just as described +on [here](/getting-started/installation/aws#uninstall-airy-core) + +## Integrate public webhooks The public webhooks will be accessible on the public LoadBalancer which is created by the Ingress loadBalancer Kubernetes service. @@ -66,10 +133,18 @@ To get the public URL of your AWS Airy Core installation you can run: kubectl --kubeconfig ~/.airy/kube.conf get --namespace kube-system service traefik --output jsonpath='{.status.loadBalancer.ingress[0].hostname}' ``` -## Where to go from here +## Next steps + +Now that you have a running installation of Airy core on AWS you can connect it +to messaging sources. Check out our quickstart guide: -Now that you have a running installation of Airy core on AWS you can connect it to messaging sources. Check out the -[source documentation](/sources/introduction.md) to learn more. +} +iconInvertible={true} +title='To the Quick Start' +description='Learn the Airy Basics with our Quick Start' +link='getting-started/quickstart' +/> ## Third party tools diff --git a/docs/docs/getting-started/installation/minikube.md b/docs/docs/getting-started/installation/minikube.md index b3b5de5070..a805520197 100644 --- a/docs/docs/getting-started/installation/minikube.md +++ b/docs/docs/getting-started/installation/minikube.md @@ -6,16 +6,17 @@ sidebar_label: Minikube import TLDR from "@site/src/components/TLDR"; -Run Airy on minikube with one command +Run Airy on minikube with one command. The goal of this document is to provide an overview of how to run Airy Core on your local machine using [minikube](https://minikube.sigs.k8s.io/). -## Creating a cluster +## Create a minikube cluster First download and install minikube from their [release -page](https://github.com/kubernetes/minikube/releases) and the [Airy CLI](cli/introduction.md). Now you can run this command, which will create a new +page](https://github.com/kubernetes/minikube/releases) and the [Airy +CLI](cli/introduction.md). Now you can run this command, which will create a new minikube cluster on your system and install Airy core on it: ```bash @@ -38,15 +39,15 @@ Section](configuration.md). After the installation, you can also interact with the components of `Airy Core` with the [kubectl](https://kubernetes.io/docs/tasks/tools/) command line utility. `airy create` adds the kubeconfig of your Airy Core instance to the default kubeconfig file `~/.kube/config`, under the context `airy-core`. -## Public webhooks +## Integrate public webhooks -In order to integrate with the webhook of most sources on your local machine, -we include a [ngrok](https://ngrok.com/) as a deployment to tunnel the traffic to the ingress controller. -ngrok is an open source reverse proxy which -creates a secure tunnel from a public endpoint to a local service. The ngrok -client connects to a ngrok server which has public access to the internet and -then provides a reversed proxy connectivity back to the webhook services, -running inside the Kubernetes cluster. +In order to integrate with the webhook of most sources on your local machine, we +include a [ngrok](https://ngrok.com/) as a deployment to tunnel the traffic to +the ingress controller. ngrok is an open source reverse proxy which creates a +secure tunnel from a public endpoint to a local service. The ngrok client +connects to a ngrok server which has public access to the internet and then +provides a reversed proxy connectivity back to the webhook services, running +inside the Kubernetes cluster. To get the ngrok URL of your local Airy Core installation you can run: @@ -74,10 +75,11 @@ If you prefer to use your own ngrok implementation or point the ngrok client to connect to the service provided by the ngrok company at `https://ngrok.io`, change the setting for `server_addr` in the ConfigMap. -## Where to go from here +## Next steps -Now that you have a running local installation of Minikube you can connect it to messaging sources. Check out the -[source documentation](/sources/introduction.md) to learn more. +Now that you have a running local installation of Minikube you can connect it to +messaging sources. Check out the [source +documentation](/sources/introduction.md) to learn more. ## Third party tools diff --git a/docs/docs/getting-started/introduction.md b/docs/docs/getting-started/introduction.md index eef49c73bf..6e5f94671d 100644 --- a/docs/docs/getting-started/introduction.md +++ b/docs/docs/getting-started/introduction.md @@ -26,6 +26,16 @@ conversational platform. +

    Get Airy up and running with one command

    + +```bash +# Install the Airy CLI +brew install airyhq/airy/cli + +# Create Airy with one command +airy create --provider=aws +``` + ## What Airy is used for With Airy Core you can process conversational data from a variety of sources: From 86341a4828204c594b84432ed88f19a73ed314f9 Mon Sep 17 00:00:00 2001 From: AudreyKj <38159391+AudreyKj@users.noreply.github.com> Date: Fri, 9 Apr 2021 10:31:34 +0200 Subject: [PATCH 21/33] Fix/1438 fix logout when a user sends a message to a conversation from a disconnected channel (#1457) * disabled sending messages when channel is disconnected * refined styling * fix styling * fixed styling and input * added toggle for state change * rebased --- .../Inbox/MessageInput/index.module.scss | 28 +++++++++++- .../ui/src/pages/Inbox/MessageInput/index.tsx | 45 +++++++++++++++---- .../Inbox/TemplateSelector/index.module.scss | 1 + 3 files changed, 65 insertions(+), 9 deletions(-) diff --git a/frontend/ui/src/pages/Inbox/MessageInput/index.module.scss b/frontend/ui/src/pages/Inbox/MessageInput/index.module.scss index f2c0005c8d..e37fb52923 100644 --- a/frontend/ui/src/pages/Inbox/MessageInput/index.module.scss +++ b/frontend/ui/src/pages/Inbox/MessageInput/index.module.scss @@ -82,6 +82,7 @@ } .sendDiv { + position: relative; display: flex; margin: 0px 24px 0px 0px; } @@ -150,7 +151,6 @@ display: flex; justify-content: center; align-items: center; - cursor: pointer; position: relative; margin-left: 4px; width: 30px; @@ -177,6 +177,14 @@ } } +.disabledIconButton { + cursor: not-allowed; +} + +.activeIconButton { + cursor: pointer; +} + .iconButton:hover { background-color: var(--color-background-blue); border-radius: 50%; @@ -204,6 +212,7 @@ position: absolute; right: 72px; bottom: 75px; + z-index: 2; } .templateSelector { @@ -261,3 +270,20 @@ width: 12px; height: 12px; } + +.disconnectedChannelToolTip { + width: 184px; + height: auto; + position: absolute; + bottom: 50px; + right: -8px; + padding: 10px; + border-radius: 4px; + z-index: 1; + background-color: var(--color-light-gray); + + p { + @include font-s; + color: var(--color-text-contrast); + } +} diff --git a/frontend/ui/src/pages/Inbox/MessageInput/index.tsx b/frontend/ui/src/pages/Inbox/MessageInput/index.tsx index 467d4bfe05..555bc3a60a 100644 --- a/frontend/ui/src/pages/Inbox/MessageInput/index.tsx +++ b/frontend/ui/src/pages/Inbox/MessageInput/index.tsx @@ -63,6 +63,7 @@ const MessageInput = (props: MessageInputProps & ConnectedProps(null); + const [disconnectedChannelToolTip, setDisconnectedChannelToolTip] = useState(false); const [selectedSuggestedReply, setSelectedSuggestedReply] = useState(null); const textAreaRef = useRef(null); @@ -79,7 +80,21 @@ const MessageInput = (props: MessageInputProps & ConnectedProps { + if (!conversation.channel.connected) { + setInput(''); + textAreaRef.current.style.cursor = 'not-allowed'; + } else { + textAreaRef.current.style.cursor = 'auto'; + } + + setDisconnectedChannelToolTip(!conversation.channel.connected); + }, [conversation.channel.connected]); + const sendMessage = () => { + if (!conversation.channel.connected) { + return; + } setSelectedSuggestedReply(null); setSelectedTemplate(null); sendMessages( @@ -152,11 +167,11 @@ const MessageInput = (props: MessageInputProps & ConnectedProps )}
    +

    - + + ); diff --git a/frontend/chat-plugin/src/airyRenderProps/AiryInputBar/index.tsx b/frontend/chat-plugin/src/airyRenderProps/AiryInputBar/index.tsx index b21a1d53fc..3876ef9f54 100644 --- a/frontend/chat-plugin/src/airyRenderProps/AiryInputBar/index.tsx +++ b/frontend/chat-plugin/src/airyRenderProps/AiryInputBar/index.tsx @@ -3,14 +3,15 @@ import style from './index.module.scss'; import {cyInputbarTextarea, cyInputbarButton} from 'chat-plugin-handles'; import {Config} from '../../App'; -type Props = { +type AiryInputBarProps = { sendMessage: (text: string) => void; messageString: string; setMessageString: (text: string) => void; config?: Config; + setNewConversation: React.Dispatch>; }; -const AiryInputBar = (props: Props) => { +const AiryInputBar = (props: AiryInputBarProps) => { const {config} = props; const textInputRef = createRef(); diff --git a/frontend/chat-plugin/src/components/chat/index.module.scss b/frontend/chat-plugin/src/components/chat/index.module.scss index b8b8afb786..f3dbbe8873 100644 --- a/frontend/chat-plugin/src/components/chat/index.module.scss +++ b/frontend/chat-plugin/src/components/chat/index.module.scss @@ -96,3 +96,45 @@ align-items: center; color: white; } + +.buttonWrapper { + height: 30px; + display: flex; + justify-content: center; + button { + margin: 0 8px; + font-family: 'Lato', sans-serif; + } +} + +.cancelButton { + font-weight: 600; + line-height: 16px; + font-size: 20px; + height: 40px; + background-color: white; + color: var(--color-airy-blue); + border-radius: 4px; + border: 1px solid var(--color-airy-blue); + cursor: pointer; + padding: 8px 10px; + &:hover { + background-color: rgba(128, 128, 128, 0.173); + } +} + +.endChatButton { + font-weight: 600; + line-height: 16px; + font-size: 20px; + height: 40px; + background-color: var(--color-airy-blue); + color: white; + border-radius: 4px; + border: none; + cursor: pointer; + padding: 8px 10px; + &:hover { + background-color: var(--color-airy-blue-hover); + } +} diff --git a/frontend/chat-plugin/src/components/chat/index.tsx b/frontend/chat-plugin/src/components/chat/index.tsx index 6e50cf3888..188227dd96 100644 --- a/frontend/chat-plugin/src/components/chat/index.tsx +++ b/frontend/chat-plugin/src/components/chat/index.tsx @@ -19,7 +19,10 @@ import {MessageInfoWrapper} from 'render/components/MessageInfoWrapper'; /* eslint-disable @typescript-eslint/no-var-requires */ const camelcaseKeys = require('camelcase-keys'); import {cyBubble, cyChatPluginMessageList} from 'chat-plugin-handles'; -import {getResumeTokenFromStorage} from '../../storage'; +import {getResumeTokenFromStorage, resetStorage} from '../../storage'; +import {ModalDialogue} from '../../components/modal'; +import NewConversation from '../../components/newConversation'; +import {start} from '../../api'; let ws: WebSocket; @@ -46,6 +49,8 @@ const Chat = (props: Props) => { const [messages, setMessages] = useState([defaultWelcomeMessage]); const [messageString, setMessageString] = useState(''); const [connectionState, setConnectionState] = useState(null); + const [showModal, setShowModal] = useState(false); + const [newConversation, setNewConversation] = useState(false); useEffect(() => { if (config.showMode) return; @@ -63,6 +68,10 @@ const Chat = (props: Props) => { updateScroll(); }, [messages]); + useEffect(() => { + setNewConversation(true); + }, []); + const setInitialMessages = (initialMessages: Array) => { setMessages([...messages, ...initialMessages]); }; @@ -123,20 +132,36 @@ const Chat = (props: Props) => { } }; + const closeModalOnClick = () => setShowModal(false); + + const cancelChatSession = () => { + setNewConversation(false); + resetStorage(props.channelId); + closeModalOnClick(); + }; + + const reAuthenticate = () => { + start(props.channelId, getResumeTokenFromStorage(props.channelId)); + }; + const headerBar = props.headerBarProp ? () => props.headerBarProp(ctrl) - : () => ; + : () => ; const inputBar = props.inputBarProp ? () => props.inputBarProp(ctrl) - : () => ( - - ); + : () => + newConversation ? ( + + ) : ( + + ); const bubble = props.bubbleProp ? () => props.bubbleProp(ctrl) @@ -210,6 +235,22 @@ const Chat = (props: Props) => { )} + {showModal && ( + + <> +
    + + +
    + +
    + )} ); }; diff --git a/frontend/chat-plugin/src/components/modal/index.module.scss b/frontend/chat-plugin/src/components/modal/index.module.scss new file mode 100644 index 0000000000..3dca14ca0d --- /dev/null +++ b/frontend/chat-plugin/src/components/modal/index.module.scss @@ -0,0 +1,75 @@ +@import '../../../../assets/scss/fonts'; +@import '../../../../assets/scss/colors'; + +.background { + position: absolute; + height: 121%; + right: 0; + top: 0; + padding: 0; + z-index: 10; + display: flex; + justify-content: center; + align-items: center; + + &:before { + content: ''; + width: 97%; + height: 72%; + position: absolute; + top: 8px; + left: 3px; + padding-bottom: 6px; + border-radius: 8px; + background-color: var(--color-text-gray); + opacity: 0.5; + } +} + +.closeButton { + border: none; + background-color: rgba(0, 0, 0, 0); + cursor: pointer; + outline: none; + position: absolute; + top: 8px; + right: 10px; + svg { + width: 14px; + height: 14px; + path { + fill: black; + } + } +} + +.dialog { + z-index: 1; + display: flex; + width: 375px; + height: 350px; + flex-direction: row; + align-items: flex-start; + padding: 0px 9px 0px 16px; +} + +.dialogInner { + width: 340px; + height: 150px; + background-color: white; + border-radius: 8px; + padding: 18px 14px 36px 10px; + position: relative; +} + +.inviteWrapper { + width: 500px; + p { + display: flex; + color: var(--color-text-gray); + font-family: 'Lato', sans-serif; + font-weight: 500; + font-size: 18px; + padding-left: 9px; + } +} diff --git a/frontend/chat-plugin/src/components/modal/index.tsx b/frontend/chat-plugin/src/components/modal/index.tsx new file mode 100644 index 0000000000..14da43c642 --- /dev/null +++ b/frontend/chat-plugin/src/components/modal/index.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import styles from './index.module.scss'; +import {ReactComponent as CloseIcon} from 'assets/images/icons/close.svg'; + +type ModalDialogueProps = { + close: () => void; + children: JSX.Element; +}; + +export const ModalDialogue = ({close, children}: ModalDialogueProps) => { + return ( +
    +
    +
    + +
    +

    Are you sure you want to end this chat?

    +
    + {children} +
    +
    +
    + ); +}; diff --git a/frontend/chat-plugin/src/components/newConversation/index.module.scss b/frontend/chat-plugin/src/components/newConversation/index.module.scss new file mode 100644 index 0000000000..0c51690daf --- /dev/null +++ b/frontend/chat-plugin/src/components/newConversation/index.module.scss @@ -0,0 +1,30 @@ +.paragraphWrapper { + margin-bottom: 20px; +} + +.newConversation { + display: flex; + justify-content: center; + padding-left: 20px; + margin: 0; + font-family: 'Lato', sans-serif; + color: var(--color-airy-blue); +} + +.newConversationLine { + display: flex; + justify-content: center; + font-family: 'Lato', sans-serif; + color: var(--color-airy-blue); + margin: 0; +} + +.newConversationLink { + display: flex; + justify-content: center; + margin-bottom: 20px; + font-family: 'Lato', sans-serif; + font-weight: 600; + font-size: 20px; + color: #1578d4; +} diff --git a/frontend/chat-plugin/src/components/newConversation/index.tsx b/frontend/chat-plugin/src/components/newConversation/index.tsx new file mode 100644 index 0000000000..8031cd07d0 --- /dev/null +++ b/frontend/chat-plugin/src/components/newConversation/index.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import style from './index.module.scss'; + +type newConversationProps = { + reAuthenticate: () => void; +}; + +const NewConversation = (props: newConversationProps) => { + return ( +
    + ); +}; + +export default NewConversation; diff --git a/frontend/chat-plugin/src/config.ts b/frontend/chat-plugin/src/config.ts index 0b42e6dca6..cbd0907596 100644 --- a/frontend/chat-plugin/src/config.ts +++ b/frontend/chat-plugin/src/config.ts @@ -8,6 +8,7 @@ export type RenderProp = (ctrl?: RenderCtrl) => JSX.Element; export type AuthConfiguration = { channelId: string; + resumeToken?: string; config?: Config; }; diff --git a/frontend/chat-plugin/src/defaultScript.tsx b/frontend/chat-plugin/src/defaultScript.tsx index 61986f8054..9f19b5c626 100644 --- a/frontend/chat-plugin/src/defaultScript.tsx +++ b/frontend/chat-plugin/src/defaultScript.tsx @@ -28,6 +28,7 @@ declare const window: { airy: { host: string; channelId: string; + resumeToken?: string; config?: Config; }; }; @@ -35,6 +36,7 @@ declare const window: { if (window.airy.channelId) { new AiryWidget({ channelId: window.airy.channelId, + resumeToken: window.airy.resumeToken, config: window.airy.config, }).render(anchor); } else { From 1efc0cf41ac4a91d4331d0eae60fd135fef1fc70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Apr 2021 17:02:25 +0200 Subject: [PATCH 31/33] Bump emoji-mart from 3.0.0 to 3.0.1 (#1507) Bumps [emoji-mart](https://github.com/missive/emoji-mart) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/missive/emoji-mart/releases) - [Changelog](https://github.com/missive/emoji-mart/blob/master/CHANGELOG.md) - [Commits](https://github.com/missive/emoji-mart/commits) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5f2926a633..f50c14e24d 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "@types/react-router-dom": "^5.1.7", "camelcase-keys": "^6.2.2", "core-js": "3", - "emoji-mart": "3.0.0", + "emoji-mart": "3.0.1", "linkifyjs": "^2.1.9", "lodash-es": "^4.17.21", "preact": "^10.5.12", diff --git a/yarn.lock b/yarn.lock index 1bf056860c..892a652612 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3080,10 +3080,10 @@ elegant-spinner@^1.0.1: resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -emoji-mart@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-3.0.0.tgz#eca24a04881e27752a6921e09f65a86ce8539a50" - integrity sha512-r5DXyzOLJttdwRYfJmPq/XL3W5tiAE/VsRnS0Hqyn27SqPA/GOYwVUSx50px/dXdJyDSnvmoPbuJ/zzhwSaU4A== +emoji-mart@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-3.0.1.tgz#9ce86706e02aea0506345f98464814a662ca54c6" + integrity sha512-sxpmMKxqLvcscu6mFn9ITHeZNkGzIvD0BSNFE/LJESPbCA8s1jM6bCDPjWbV31xHq7JXaxgpHxLB54RCbBZSlg== dependencies: "@babel/runtime" "^7.0.0" prop-types "^15.6.0" From 25214594c0fb7151ddd4977369ab361f3f396500 Mon Sep 17 00:00:00 2001 From: Kazeem Adetunji Date: Mon, 12 Apr 2021 17:18:35 +0200 Subject: [PATCH 32/33] Import header assets from library (#1522) --- .../chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx | 4 ++-- frontend/chat-plugin/src/components/modal/index.module.scss | 3 --- .../typescript}/assets/images/icons/minimize-button.svg | 0 3 files changed, 2 insertions(+), 5 deletions(-) rename {frontend => lib/typescript}/assets/images/icons/minimize-button.svg (100%) diff --git a/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx b/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx index 2c73bf4f25..bbeaf665cf 100644 --- a/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx +++ b/frontend/chat-plugin/src/airyRenderProps/AiryHeaderBar/index.tsx @@ -1,8 +1,8 @@ import React from 'react'; import {Config} from '../../App'; import style from './index.module.scss'; -import {ReactComponent as CloseButton} from '../../../../assets/images/icons/close.svg'; -import {ReactComponent as MinimizeButton} from '../../../../assets/images/icons/minimize-button.svg'; +import {ReactComponent as CloseButton} from 'assets/images/icons/close.svg'; +import {ReactComponent as MinimizeButton} from 'assets/images/icons/minimize-button.svg'; type AiryHeaderBarProps = { toggleHideChat: () => void; diff --git a/frontend/chat-plugin/src/components/modal/index.module.scss b/frontend/chat-plugin/src/components/modal/index.module.scss index 3dca14ca0d..fec9788d17 100644 --- a/frontend/chat-plugin/src/components/modal/index.module.scss +++ b/frontend/chat-plugin/src/components/modal/index.module.scss @@ -1,6 +1,3 @@ -@import '../../../../assets/scss/fonts'; -@import '../../../../assets/scss/colors'; - .background { position: absolute; height: 121%; diff --git a/frontend/assets/images/icons/minimize-button.svg b/lib/typescript/assets/images/icons/minimize-button.svg similarity index 100% rename from frontend/assets/images/icons/minimize-button.svg rename to lib/typescript/assets/images/icons/minimize-button.svg From 21fe1854f594a937c1431af967f3a466e55de94a Mon Sep 17 00:00:00 2001 From: ljupcovangelski Date: Tue, 13 Apr 2021 10:38:19 +0200 Subject: [PATCH 33/33] Fixes #1531 --- VERSION | 2 +- docs/docs/changelog.md | 160 +++++++++++++++++++++++++++-------------- 2 files changed, 107 insertions(+), 55 deletions(-) diff --git a/VERSION b/VERSION index 7aed22e787..c5523bd09b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.17.0-alpha +0.17.0 diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index e9796a89cd..387f111b31 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -1,10 +1,62 @@ ---- -title: Changelog -sidebar_label: 📝 Changelog ---- +--- +title: Changelog +sidebar_label: 📝 Changelog +--- + +## 0.17.0 + +#### 🚀 Features + +- [[#929](https://github.com/airyhq/airy/issues/929)] Implement the option to end chat [[#1508](https://github.com/airyhq/airy/pull/1508)] +- [[#1110](https://github.com/airyhq/airy/issues/1110)] Add basic and advance customization to chatplugin docs [[#1494](https://github.com/airyhq/airy/pull/1494)] +- [[#1290](https://github.com/airyhq/airy/issues/1290)] Prometheus Metrics about Spring apps [[#1479](https://github.com/airyhq/airy/pull/1479)] +- [[#1473](https://github.com/airyhq/airy/issues/1473)] Make release process more quiet [[#1501](https://github.com/airyhq/airy/pull/1501)] +- [[#1004](https://github.com/airyhq/airy/issues/1004)] Enable quickreplies for chatplugin [[#1478](https://github.com/airyhq/airy/pull/1478)] +- [[#572](https://github.com/airyhq/airy/issues/572)] Cleanup senderType code [[#1490](https://github.com/airyhq/airy/pull/1490)] +- [[#1474](https://github.com/airyhq/airy/issues/1474)] Added showmode flag that blocks functionality in chat plugin [[#1475](https://github.com/airyhq/airy/pull/1475)] +- [[#572](https://github.com/airyhq/airy/issues/572)] Simplify senderType [[#1458](https://github.com/airyhq/airy/pull/1458)] + +#### 🐛 Bug Fixes + +- [[#1521](https://github.com/airyhq/airy/issues/1521)] Import ChatPlugin header component assets from library [[#1522](https://github.com/airyhq/airy/pull/1522)] +- [[#1438](https://github.com/airyhq/airy/issues/1438)] Fix logout when a user sends a message to a conversation from a disconnected channel [[#1457](https://github.com/airyhq/airy/pull/1457)] + +#### 📚 Documentation + +- [[#1408](https://github.com/airyhq/airy/issues/1408)] Add missing tag gifs [[#1496](https://github.com/airyhq/airy/pull/1496)] +- [[#1422](https://github.com/airyhq/airy/issues/1422)] AWS Docs Revamp [[#1487](https://github.com/airyhq/airy/pull/1487)] + +#### 🧰 Maintenance + +- Remove empty payloads [[#1509](https://github.com/airyhq/airy/pull/1509)] +- Bump css-loader from 5.2.0 to 5.2.1 [[#1514](https://github.com/airyhq/airy/pull/1514)] +- Bump webpack from 5.31.0 to 5.31.2 [[#1513](https://github.com/airyhq/airy/pull/1513)] +- Bump eslint from 7.23.0 to 7.24.0 [[#1512](https://github.com/airyhq/airy/pull/1512)] +- Move back components to the mono repo [[#1506](https://github.com/airyhq/airy/pull/1506)] +- Bump @babel/preset-env from 7.13.12 to 7.13.15 [[#1498](https://github.com/airyhq/airy/pull/1498)] +- Bump @babel/core from 7.13.14 to 7.13.15 [[#1499](https://github.com/airyhq/airy/pull/1499)] +- Bump eslint-plugin-react from 7.23.1 to 7.23.2 [[#1500](https://github.com/airyhq/airy/pull/1500)] +- [[#1466](https://github.com/airyhq/airy/issues/1466)] Follow up on extract model [[#1493](https://github.com/airyhq/airy/pull/1493)] +- Bump cypress from 7.0.0 to 7.0.1 [[#1481](https://github.com/airyhq/airy/pull/1481)] +- [[#1466](https://github.com/airyhq/airy/issues/1466)] Extract model lib from httpclient [[#1488](https://github.com/airyhq/airy/pull/1488)] +- [[#1476](https://github.com/airyhq/airy/issues/1476)] Remove components [[#1485](https://github.com/airyhq/airy/pull/1485)] +- Bump core-js from 3.10.0 to 3.10.1 [[#1484](https://github.com/airyhq/airy/pull/1484)] +- Bump webpack from 5.30.0 to 5.31.0 [[#1483](https://github.com/airyhq/airy/pull/1483)] +- Bump @bazel/typescript from 3.2.3 to 3.3.0 [[#1482](https://github.com/airyhq/airy/pull/1482)] +- Bump copy-webpack-plugin from 8.1.0 to 8.1.1 [[#1469](https://github.com/airyhq/airy/pull/1469)] +- Bump emoji-mart from 3.0.0 to 3.0.1 [[#1507](https://github.com/airyhq/airy/pull/1507)] +- Fix hot module replacement [[#1480](https://github.com/airyhq/airy/pull/1480)] -## 0.16.0 +#### Airy CLI +You can download the Airy CLI for your operating system from the following links: + +[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.17.0/darwin/amd64/airy) +[Linux](https://airy-core-binaries.s3.amazonaws.com/0.17.0/linux/amd64/airy) +[Windows](https://airy-core-binaries.s3.amazonaws.com/0.17.0/windows/amd64/airy.exe) + +## 0.16.0 + #### 🚀 Features - [[#1111](https://github.com/airyhq/airy/issues/1111)] Customize Chat Plugin [[#1456](https://github.com/airyhq/airy/pull/1456)] @@ -56,13 +108,13 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.16.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.16.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.16.0/windows/amd64/airy.exe) - -## 0.15.1 Hotfix - + +## 0.15.1 Hotfix + - [[#1427](https://github.com/airyhq/airy/issues/1427)] Fix broken UI pod config for AWS deployment - -## 0.15.0 - + +## 0.15.0 + #### 🚀 Features - [[#1299](https://github.com/airyhq/airy/issues/1299)] Video Fallback for the render library [[#1412](https://github.com/airyhq/airy/pull/1412)] @@ -109,9 +161,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.15.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.15.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.15.0/windows/amd64/airy.exe) - -## 0.14.0 - + +## 0.14.0 + #### Changes - Docs/1301 add docs for twilio sources [[#1332](https://github.com/airyhq/airy/pull/1332)] @@ -180,9 +232,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.14.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.14.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.14.0/windows/amd64/airy.exe) - -## 0.13.0 - + +## 0.13.0 + #### Changes - Bump typesafe-actions from 4.4.2 to 5.1.0 [[#1210](https://github.com/airyhq/airy/pull/1210)] - [[#783](https://github.com/airyhq/airy/issues/783)] Introduce changelog [[#1221](https://github.com/airyhq/airy/pull/1221)] @@ -238,9 +290,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.13.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.13.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.13.0/windows/amd64/airy.exe) - -## 0.12.0 - + +## 0.12.0 + #### Changes - [[#1132](https://github.com/airyhq/airy/issues/1132)] Fix missing , in nginx [[#1133](https://github.com/airyhq/airy/pull/1133)] @@ -304,9 +356,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.12.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.12.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.12.0/windows/amd64/airy.exe) - -## 0.11.0 - + +## 0.11.0 + #### 🚀 Features - Custom welcome message in Chat Plugin [[#1103](https://github.com/airyhq/airy/pull/1103)] @@ -346,9 +398,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.11.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.11.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.11.0/windows/amd64/airy.exe) - -## 0.10.0 - + +## 0.10.0 + #### Changes - [[#1007](https://github.com/airyhq/airy/issues/1007)] Bug: Cookies + 2 Chat Plugins [[#1027](https://github.com/airyhq/airy/pull/1027)] @@ -398,9 +450,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.10.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.10.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.10.0/windows/amd64/airy.exe) - -## 0.9.0 - + +## 0.9.0 + #### 🚀 Features - [[#807](https://github.com/airyhq/airy/issues/807)] Introduction to UI docs [[#973](https://github.com/airyhq/airy/pull/973)] @@ -444,9 +496,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.9.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.9.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.9.0/windows/amd64/airy.exe) - -## 0.8.1 - + +## 0.8.1 + #### Changes #### 🚀 Features @@ -466,9 +518,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.8.1/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.8.1/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.8.1/windows/amd64/airy.exe) - -## 0.8.0 - + +## 0.8.0 + #### Changes @@ -517,9 +569,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.8.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.8.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.8.0/windows/amd64/airy.exe) - -## 0.7.0 - + +## 0.7.0 + #### Changes - [[#685](https://github.com/airyhq/airy/issues/685)] Type errors not caught by Typescript [[#780](https://github.com/airyhq/airy/pull/780)] @@ -586,9 +638,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.7.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.7.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.7.0/windows/amd64/airy.exe) - -## 0.6.0 - + +## 0.6.0 + #### 🚀 Features - [[#623](https://github.com/airyhq/airy/issues/623)] Optional apps depend on config file [[#719](https://github.com/airyhq/airy/pull/719)] @@ -661,9 +713,9 @@ You can download the Airy CLI for your operating system from the following links [MacOS](https://airy-core-binaries.s3.amazonaws.com/0.6.0/darwin/amd64/airy) [Linux](https://airy-core-binaries.s3.amazonaws.com/0.6.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.6.0/windows/amd64/airy.exe) -[Alpine](https://airy-core-binaries.s3.amazonaws.com/0.6.0/alpine/amd64/airy) -## - +[Alpine](https://airy-core-binaries.s3.amazonaws.com/0.6.0/alpine/amd64/airy) +## + #### Changes #### 🚀 Features @@ -701,9 +753,9 @@ You can download the Airy CLI for your operating system from the following links - [[#412](https://github.com/airyhq/airy/issues/412)] Push only changed images for beta [[#601](https://github.com/airyhq/airy/pull/601)] - [[#331](https://github.com/airyhq/airy/issues/331)] Introduce local container push target [[#580](https://github.com/airyhq/airy/pull/580)] - -## 0.4.0 - + +## 0.4.0 + #### 🚀 Features - [[#526](https://github.com/airyhq/airy/issues/526)] Introduce namespacing for topics [[#566](https://github.com/airyhq/airy/pull/566)] @@ -741,9 +793,9 @@ You can download the Airy CLI for your operating system from the following links - [[#515](https://github.com/airyhq/airy/issues/515)] introduce eslint [[#554](https://github.com/airyhq/airy/pull/554)] - [[#548](https://github.com/airyhq/airy/issues/548)] Extract payload to web library and introduce date lib [[#556](https://github.com/airyhq/airy/pull/556)] - [[#551](https://github.com/airyhq/airy/issues/551)] Use test.properties everywhere [[#553](https://github.com/airyhq/airy/pull/553)] - -## 0.3.0 - + +## 0.3.0 + #### Changes - [[#472](https://github.com/airyhq/airy/issues/472)] Fix guide link [[#488](https://github.com/airyhq/airy/pull/488)] @@ -800,9 +852,9 @@ You can download the Airy CLI for your operating system from the following links - Bump ini from 1.3.5 to 1.3.7 [[#474](https://github.com/airyhq/airy/pull/474)] - Bump elliptic from 6.5.2 to 6.5.3 [[#461](https://github.com/airyhq/airy/pull/461)] - [[#432](https://github.com/airyhq/airy/issues/432)] Use Bazel tools web rules [[#435](https://github.com/airyhq/airy/pull/435)] - -## 0.2.0 - + +## 0.2.0 + #### Changes - [[#338](https://github.com/airyhq/airy/issues/338)] Add docs for running in production [[#359](https://github.com/airyhq/airy/pull/359)] @@ -1040,4 +1092,4 @@ You can download the Airy CLI for your operating system from the following links - Add Vbox known issue [[#409](https://github.com/airyhq/airy/pull/409)] - [[#344](https://github.com/airyhq/airy/issues/344)] Enable copy\&paste of code snippets [[#391](https://github.com/airyhq/airy/pull/391)] - Docs/chat plugin [[#383](https://github.com/airyhq/airy/pull/383)] - +