From 4075819c7956114294645c89bb39a032ccd76542 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 21 Apr 2023 06:44:26 +0800 Subject: [PATCH] Implement chat UI in VSCode extension with improved styling --- README.md | 61 +- media/bot-icon.png | Bin 0 -> 117419 bytes media/chatPanel.css | 90 + media/chatPanel.html | 20 + media/chatPanel.js | 57 + media/check-icon.png | Bin 0 -> 3362 bytes media/user-icon.png | Bin 0 -> 3362 bytes package-lock.json | 2826 ++++++++++++++++++++++++-- package.json | 35 +- src/chatPanel.ts | 70 + src/extension.ts | 33 +- src/test/runTest.js | 22 + src/test/runTest.js.map | 1 + src/test/suite/extension.test.js | 15 + src/test/suite/extension.test.js.map | 1 + src/test/suite/index.js | 40 + src/test/suite/index.js.map | 1 + tsconfig.json | 1 + 18 files changed, 3078 insertions(+), 195 deletions(-) create mode 100644 media/bot-icon.png create mode 100644 media/chatPanel.css create mode 100644 media/chatPanel.html create mode 100644 media/chatPanel.js create mode 100644 media/check-icon.png create mode 100644 media/user-icon.png create mode 100644 src/chatPanel.ts create mode 100644 src/test/runTest.js create mode 100644 src/test/runTest.js.map create mode 100644 src/test/suite/extension.test.js create mode 100644 src/test/suite/extension.test.js.map create mode 100644 src/test/suite/index.js create mode 100644 src/test/suite/index.js.map diff --git a/README.md b/README.md index 0ac99db..aa26384 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,71 @@ -# Visual Studio Code Extension for DevChat +# devchat README -See https://github.com/covespace/devchat. +This is the README for your extension "devchat". After writing up a brief description, we recommend including the following sections. ## Features +Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file. + +For example if there is an image subfolder under your extension project workspace: + +\!\[feature X\]\(images/feature-x.png\) + +> Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow. + ## Requirements +If you have any requirements or dependencies, add a section describing those and how to install and configure them. + ## Extension Settings +Include if your extension adds any VS Code settings through the `contributes.configuration` extension point. + +For example: + +This extension contributes the following settings: + +* `myExtension.enable`: Enable/disable this extension. +* `myExtension.thing`: Set to `blah` to do something. + ## Known Issues +Calling out known issues can help limit users opening duplicate issues against your extension. + ## Release Notes +Users appreciate release notes as you update your extension. + +### 1.0.0 + +Initial release of ... + +### 1.0.1 + +Fixed issue #. + +### 1.1.0 + +Added features X, Y, and Z. + +--- + +## Following extension guidelines + +Ensure that you've read through the extensions guidelines and follow the best practices for creating your extension. + +* [Extension Guidelines](https://code.visualstudio.com/api/references/extension-guidelines) + +## Working with Markdown + +You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts: + +* Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux). +* Toggle preview (`Shift+Cmd+V` on macOS or `Shift+Ctrl+V` on Windows and Linux). +* Press `Ctrl+Space` (Windows, Linux, macOS) to see a list of Markdown snippets. + +## For more information + +* [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown) +* [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/) + +**Enjoy!** diff --git a/media/bot-icon.png b/media/bot-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bf44c1ec8ed279b1e0b7daf1a9570a9663f0472a GIT binary patch literal 117419 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 z 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%0D=fG zK}wT*j{(?zD#{BZRcX66%>@S1>hH5V=Pu-0RoEyqQ)hebxhrDD`WzV(kYK5v=aP~c zIix>L+r9SI>;I%gK1wQngdNtk1>m>WQO|#<=6Kny?5253NZZ4$siLL?D=q`su5}aJ z4epPh=UNVa_0ZBc?BlOiy9|{K=Z?0d5fM7FZByF?Edo-;b18GqJVvPZ-R6)T*?)|^ z_~8cozMTFyOWfYE}Y48bAkjvCZ`@(Kel7D>l&a+;J^fy;Uwvh9C?jT2Eb+^af8vj%zB?{Y`Vh zF&IQaJcah{THB2`UtZl(3gUb;A zYt`gEi=KQ17n_02giQk6)!CB2r6NBn+tdD>%gmC}8D4JK&g7oftmSBVckvX5P-S*^s>+JmxmtjD-YQ++K*EG$8 z1SU!9o3FdV)vow;EfDx9Q^L_9)Z~7u^q|XLZJhCW9K5Fv!z^*6(^O7)x8#M_@h~KK#OjY%*9`v6%`?YwFC@gx^TG3* zI^$-0;ibQ6SnY7rSvMFD>ECJ#OUN46DGVi`ip8OZhG(CzDz>2)PJ^R__;K1E7^XC< zC?~{1@3-%<``Ut8mmHR#?!9`42ii&gu+tk5-Dd$$(?<4bch#_CpUL&nGnAyH2t<_- ze~QA{cHWp9?Dl(~wqk@|lu}J*0+eoKN!IGIWfD6N#e`Ymd%59{k50c zlZzHW7As@o)Yyj7GMhBxR$Eib5T%V|3iRvCM-O)#4;AWp7_9Gp_Kj^u8?%nt7eL2k z=xKfM4Df~6Z-DAd$D3dfM!`2$ezzWLm`4mwYM1b6-+el|0zT%4OHIG@7BuR5Qi~Y1 z=1l=?`ET-+TL{lGxdtD-b%L&yXMmIT@w)iM94x~yVdyz_U8velKk0bFn7G}1%cJH=1&0Y&*yS`{@4kBg+=Nbr z6h4Yx`0%r@p)*6KhjCHIIhB_bSv}!QUTPJd;YQ0LtT_ItqwM(J$NrnCn=~4Flfp(B z53Dv}B$yC}Zsq23n|8+oHhvn}okSCEEe5ryoH1EtZSv@nc)_XRnIroaz%Ko-$q@dV z3;bDs{#_W5hASR=(m{P+T{z|Z98aNT`^s2()n5Zw*xSnf^2$mZIq@$0x*Spxt6_|Z zEA7g99=e7yBLMp$*PQ`^`<~*3YDIiaBo8qOAsB{&3`!6|p;VCb>hco%_RCM`wuaPE zbtwQF*$y&+DI!^E-^B0_F8v$44Jvs7``Wh3wstLG(K7v{R4$`Z&*X{GWZF-tvV7%Q z@(~y=nqo1N0Q&Z(o(5HT1}1S491QV7U|Rx0X0dvv;+Yg~5>r!ponQ%gUJ3rD;6h=5 zC{c3NAIOC@wjSHflIeDhFs=2IR#Dfc^0IH!3E;F z&um*G89X=LTk-gEp#BHAt{Ca>c@I7cK7txL&q&gX!-k#3yHe~e@Qg6tq{{o#coqYw zJ4yE^73Ee?im%K{9^uaHKaaA$2e-4-P@yx{YfEeGGfM4aT$`8c&d<(6Ri5lr3zXtWVCj?$#A+>AiTvrKY=zpqgoiuo2ro?ocW+FeSL)$Ap#V}2xm}D zyGw4&cF&F4!dowU z74_M+ViP=oLF4Vt1-RGZ1!UnlXtdygXmdSTagF1ob%7h1UzBY#5lMwGktxtaDNSN9 zszKSSeOp_4-`zH0!bcWEG7`fv1$_$e6+qK4psDmqKl=DvFiWfxA%QeVM_(|UX^qw=VUGr` zu0hzJnm+TU>K;`so~Vl8U$sFtr-%P}xc>_hiO)OH{qjvoetK{bmCfjC}R1kQ-k z%zx_H(`qZqt(44BLROgnlN+X+0m@uV{*z#Jvmm`CQrYK`vES4K1eex(u4~JS+D)}K%cmZ;{-^< zFC@1Hj>HXd&z5Jfc>ZlRarD`ihCyr&-CcyUt*6&;n*Z`$Q$`*b5HH3ffQ*Ckxbq)+ z0#@=YG*qc|3bbJ1XaaUcTL*6m4YL!r_>Lh+R;}u@wliCnZ-fm?>JcX=Ettk& z-()YozY4j$rWhb-;iO;X@cZGegeW51L^$OER6X(7L#*Gi2UGRTap1}PFmb+mZwxpnM#O~g(#)SC`MW?f8Ph1dYtq5X8k(u6Xo@!fU`LGxo4fm z@7z-WXg~Kc4&GEv6Yns5kQ*ipxBXkue!(B1UBw!x{XVPUbuZT##Pi!7CH*`+nM~;G zlEaip6lb^PONKYOB|Q(?ssgIZV-0hH!eYu9JAFq?wZ*S~4M{8rsjmt3PW-KUv!%s0 z+l=u;LXY2eX`5CBsn>7W)$i)t@6v!YJfYK%>fY@ycU(HOLsMdg$Pak-fPthr%WKmC zw=%8Y@R{~F&5_GkMN4ZDgn@G)?7+taPj+VGcQPbit+K3KTF&JmC^py75|AjoLmtGr zLx#Z3D8=3O+hwCKwWitmmO==SM~<>n+h+Q-3laF2&*`?aq-x{mWY|H@LDcY2h4uQ= z5l{)Bi}SZCjNBLBuEXu75j7q_ivlJI$5lxPQKq7dmOeC8Vb7Y|h>D!DslaycdjP9)hL^ z9K08qsttC@m9qe0gM?^J$fRMM2)GvS(Y#}1wZ7YFYsL?t#1=P36vodUczIWc?ihD-iF;P5Uv z9E%m~_qk~#|E{+#?RS0X&4;gPcE)jCs#85hOhg7F54xUJcSAVGX3c-W`j5QUs^U3N zwYeR*&HTfcQgT|!$=oo|^{T)}H{|)Vs&a+A3zQT{nL=35q8YU=qy-;eyufB$J>F7d zfM<237TUa)bShvSUV)5-!Vew8?aP4y3Vj5w5|Y#uSr5DwFJ46r0Nu(TD)1UINEu7B zL^`V@s1b?KkCiZ*h(&;)e%QC`ZWx#(L}FH zpyg+{Kn*WO?HIXIT_2P4jo06|rkP}%y=_bW977l6fbM&8A897W(@8&GzQUYp72`5}+E; zn5_{7X&H!uQ3d4?IW6nnNoQZ*Jf$$6iL$i>dlIBys}MonSe|3244Q0@{N*#-K#6q?qotN5Hp0Xa z#k!tB7$;51EO((rL;5ZNMw0X&5^fb#J4aE_gNOC%$2%W=jc3A8u14sW0=5J9+Kp!3 z)WA?{qw|nEt%^|f#X)EQ)h=2fV%U_;32_Z#R_b>m2Y_QTOJYw_Qoe7uwl;1|KWm=P zeW)+zH7ZUW&qTE&q@lq&QlRHYF$$S*IkM^0rh5<|3*?0*yYl;W+zX778$nc{f(3Xv z2e0k{bF($VOnbGVDw*Gls<}!?T5|cCfMvzR3hwHd@#%$>9705L(n+XYJRx`+Y ziOZ89go$ebaSO$^qw7A(a5#bA5XK##Z4$LKZEV34@7w7kr`Th!zHjAB-U{feN&!Z2gH^J=b=BN%^=gQXwHHyf z#e2}o)0iGf8Al2d|Cw~aQlTd;8$zZrJiCLXS z&mDOzGBhm;2)*!l#!mEt{pcFfT;wvH7Za^e@jN7vRa-P!4~iJOQ3kW zO%2Y^8qn8TK;laWm5syV-9Q)J)*>`0=bT3CfI+1kkj25u5(A5ybXC*D!s1&3@=9X=jHcS*nsn| zwfT>KU@2K0*)LRf3~gQ-7)@*~SXgI!XYoyAkLlWeHx?`kcK#R}x9X3z@o>MIIr@wi ze_b$nN^WAKg-gC+AXi&Sq{6Df8LE8kspnW`gGWxYvRE2*9SlCwr%@(+Qg1}_F**2T zJd&G!XEkQ95+xJr2s2RvnA?kc?ItA?-cJ@sgI5_5Sq;bbbYYUw{rzxoT1vWc(>FqW zuZ*SI>u;|BpUAZYtEsoL(0U!T58)C)1_#c-3*lPa;T5AND|?+k<2Rx7%!)&vrG-M{^J8xr+VROfQpgm?~RV`g%f^_dfg5 z1`WB!h7F$uC#294^zQMbrrXW8-sjARWDFHTNf$&On7YL)n?>>laq3hXGZFzHz{G5- zV^i?LLY#+ATNxCkLAT%JC5hIaizgN;E5UilwqAXPSv3{bHDp%K0{BkDsOHc&xt`;B zvh``Sad%(6%3TyGuPwF2Yiym)3}9xDXF1~TdOl*s7tB@lZ@o6^U19J3As z7DDLf%n?_^W_`)lSLa!EdWKbEfc+@S#mZKizv3JF+oI_kr(JYfE-gIn*wH?Judn~% z42T{i6EEI6KWo}2&;5^Q(DD0x=|jUbH;d85s1HHb`gTK&eP8UcenZCF)En-%;&MC# zQj%Jq9r=rpM&;WACDr|1c%B=MLN5t7#D5w*$iI3q%cq19VH ze|~PR^*Q=b!kJRLYVs62ZSZir?T$HAjh5Q(bk}=w(R?yMcpI#s0k9NhK7#2!!V`rp z%y#zUrV0k5p7(t8#pgEoth1S1OdN4Gcz=LQh1~QoD`ymsA_wC{5*f#VIu@?OM`)7A zd3Xs&o_y{Vj1of69HSETtuS7g`n3k2oyP!nH_@fM29HJ89SXzcAR{8Ge~9cvEm|8g zTndYhJ`&l=D7tp zE`(WxbX+bt4liu^QkW;b(+JPRM>edyGG>#e-D4*VxXivU3!uS^lmVVlN*cxp?b~3W z!cOYdIr`xX^GCPI$x@$|3ikGg+y0OSWc#Ol`_&`&etzzR0eLA9o};YLRNDebKu7{q zML+Z9_tx6!Bc|9*_dW&z&0{5qB(E#{0mft{t0(~usXvjzl6()1MujlRajDmY0mxyI z9)(&)vOe>>LLJhdcs9ZfurrQZa_M;kZQMntTREv(?X$MF&@Q>4pUt^zk}IjuB8elpMr(8-#Hg zczKzmhEu^?QXvs~c#S83@sJ>bY!v|}&rAkWDfJk}wOZ_AYL3(^xr8+Q&2yL9NrT7R zyDO?Kl-Yq+msHOR0FRejfH9H}+j-%wW1d_v^WuWEfah*@`-k0Rl>hKshuxYj1>f+! z{^jZ=7hN^y^z59bq;+AKG5}+qri3w`4k3c@icApNrEDv3r*;_SeT2G8w=#SQT0DF)pn1Oavbj zzYZ3yWEEA*GXM6e4D@L(18~ymf3}yOy9b^^olU-G0-j6U4(-0517M>ll3^w|H9R3a z1N9CTNF0Q7AqBE^o6CszJ=Tp7DU(p6j1VRr_H7)4*|}{ini?UOP+n#^U`0VJSZNjY zGqA1XWVZo@5yly(+|>*@=K+TWk0tR6!Zg3BUO zN=hm?2r-MoFziUu5O6**D*iGE_j(-E$)0%RcD$bmRC7$+T;+{C*2(WET2#RVS%~V;<|v65~|UE2*V!c-aJaZ(ZWS9a&4`x*w8gasVt6B z%cDRsQvCzZC}eY{lM?RK3fhWNMU7k1csJe$4dnQr_HIAmt7mS=8PK!+n|TP^rqi5C zT#Imm{C=R7)#rD$d4E}EC!9UWo_*^ZtA)5!OROAX@@NHh-iJ%oYPv$PVxYPZWe4|H zSq!C(g=vUnmJb-(krtkr7>sPfsRC;Bnn*MWW1>b$uJ8|I#m*IYSSFL>@cnk-*9vO_ zhoa9J7u$%jlbknl;&Huc{LO^s3Cl~ObAY8_bW%ZJYcUX27@-#$JV+rc5yTye!bZDo-om70Ala-G;(>In_;HlJ zB04(^5TQztb5F->y8`bj4JkooS~Br4WM}IMowfqge8R(wS7uA)_NtF*37Fap-bGV@ z=yduK=kQtr#;=U3vR^U@&hwLtx8+Mlqv1=pJ=u(1bT@rr=s2+ZEcZKxQLdv0%QOF2 zZO0A1+U{QbwiTxoK%k?h$D4t75`{?$i?wo<^*f?N?43tujp^N4(MqH7Xc*EzZMqx& z`Um{Z;DC;5J&P+U4!ZE_InOWqc6EVKj$cn`5Mc$5M96p`<~wWN^Gu*6wqKXFHUSYI zvX9ikFl|^N6QGfr7=8-AgnOvm`=>V1y5xduQ)uH=28W521S0u?ziT%5MPp~!>vv7O zG$ym(Wjx|GZPEyP>4Rl9W#%201)DOC81eb%on?KGqz5ef6MMA?hV4aHO(oPIzGp8= z`QCK<0-A$IA(U-EA)I4Vh?bI0_`|CH0iw+w(yn1NNQD&?mzILRh*LtU7kX?R7)vER zTh@M8fiwX)5R1BxBE{7!)(Rc96`y}&AAhjijyj;TlU|;Lu2feiFH3g=d$%RrNLaI+Z2pcR!l=nG_~FFJ=g=p(Tig=e6B%lKQokm@ z>u1#s@i1I!SuEQq^+_?ZTZ$QLF__bCxz|4W`g_;Bx+Id%MUd$s)QnfEXEG=XJf0ri z_ONMV#!YCElYRsH)~Pmb+uea}cYC`R8-Lt(2O^2Y-p38P>f@rSdVhUhYd}*14pO|L zZA&+#1tLE2>P>d=-mPuwqzlO)0PcY+h}V&Uw4X8(4TP(0drkhNtd0h}n+gm~O@ys_ zB?1Yw@jZ#J=x6@d6T=XAm9pUHVq*6?3{^cYxI}%Ut{5(g*Fc*K6%F$H-{1exZoB_M zLZSc}7W^cx!2_m{LKAa8MS4*tRm>l@0#|OcQ(j#jzn9;=2hi-hm zAmHisbD@4LS3Z;d}~cL&PDi7PIjao4pUFW-<6_E4ftLn&ecLIP616{VJg zT6!IZr0ed@Y}9%EY|pm45X*bX4iF0L;4aI6Xp);917O%%Od?!2=Y`qzD4A(A$x z6CO>9B-VJnvJUw_R&gJzst;qKqOvd(Cmp>KA2UrwW2H>g4Cvm{>yc7?oFyI;=akXm zOW8Ne*V;#4zHi4Lcd)f>USPN0^$7cfJcc@YB2;OkFFF?jna|dhRN3-1o2c0d()+a) zcud%ulbKHEKEw$#s;JbJR%$AQF8F4ErD|~yaG5bJd#@NjBSTh9j9(AD}xkLLn~ zO(@Npyd&;{o$+n(D3q$!mb@4GN%uoO5#AGi)%FHNujzM;KQ%;kR!r^7>UBTZocT|p zO$#ZIO4(`t$1BJJl-n6d5{?+$ z7r>4V@Pr*z)fI>~XEBQ@po5s8$&e!UrmP2(%@x-v$lzDkAWAE%n>d;f+GITRv)+^Z zykmX<^vRD=2&ENQuDz;Um3`0$l~Q${J^ONg4F*T-6!mtIK~Yt39h0pN!D1EjF|Apt zRYZul#d%4jNc&NUAx}b^8da(AOf+^G01@b70yGt_k>(cGAmJg&CAhkxEuo6eSM@{^ z_7RAjR5jPmF>LPIbbY#7nSloHi{rTa;110Z`3r9mxlgHPFRd`@z*>Nv9a+qS(JCr} zZA>=iiNC&Liywc9>=fnoD7RCof~Uh-bDx9N|RiP|C*u;O;> zO_Qw|G<81%J(s!`HDHS1-e=O)Op{4uFHPhWLJ>{#WUES@m>v;RYU>1&k}+!5+7;%hwWQuH?G=ds@OSELb47*uD5KxJxynXfH~~llPZ9qoTnC;3rW3)K z)u?EatWqXl9z>uzw#bjonQ_IEUGqF=Z#hEax1Vtb^t>9k|BpLRn@Aiw?T!a$KlS=& zJ*udX_0e)M6_xjTimn*bEW*g$p+|uR5FC?o>)ZPfJEZ#_)&*C&8E(8>_WuFH>XNS+QcuThS)lu?@@9yZA%H-?kW(@G^KWAJgyV!!Op_qQ_puGeM#dgAv7`S90%E z;_rhr5}>3%8vX$gxt6BYhu2&)YS@jG%1&)Klg95q{|;;!dO!bzji30}JHUi#`QgfS z*PK0e`h}uD2Xk7Zj|n3(3;97@_41N(m!a`Mna{}}J3vjzLFijtF#KHWw0l!R7*+L3 zBSaG@$)4Qd!%_No%ccrpkHAOGJZ%l%lfV5x{@Z}B{M6f%Agodk00>Y?L_t*8{^yz)fa)Cpjsv`p&s2>sj4Z%rRadgC3D;$$OJM2MvR@n+d9lQ&QWL@!?CRr*yM^x*w4Ijb1-#R&e>Wp^u znheNK8xbK9|9)#2Mh)*(2-fi0k3X&VC=k&R0Y60|0sB#F3e^@V^htqd5&{@iw&>$8 zR@ z)S-80`8<#R_$(TK|8?%bj-K+bv-ifmxI4h4@Ki)1?Uwye^7ydP6ZZ@FTEK5ghs*@_ z0q&8B?k5Qht43v9rSAz`?%L8~R?sZ6I<>Y7D(vZ~sZAI^%664#5!nWDE986-yg1^O zLYM~E|L5O!c?AuV|6f1t`n&$?OWXbS(?*A#VaR^kI}x6d3`t}_K!ETxWJp7>RYSD1 zT(@zvEx7*?D~FO_NGZR10EaLZ^@tIv%|jT&>4Ro3ofD;~<1k~r)UkO8Ra!Plw<|}V z7d>Y0T~5u*NPP=qTD9HDHvae@xC4y_QJ^Ip|rLVlzbyI0gS{QEx zu~9(3Gz4r&m0}7Kl$2)%l^&+r7rup`8WgpZ6y-f7gq8_t=`q*{9!ubx=QqP)`E- zdkg^BPn*wLl+RSLEbPO>xnOya1*l>Fbfcq0Ka)0=5pbh)jN?IFJ6f*;JH36<(T6U` z_1mKujX#Wl&o3Kg|G7^!8j%0oz5UsHCe+C(EUxbUw|75#{I11I3aZKCM4?|Nl$K0w z!lX*p)`XeJ>M$2V^+yG1s^3t}O{j{Zx}cwm`^^{yCNOm%X@H95Rn_!PiCfbGBnn}c z<`<|{0tITQk)Lq<3AX<}dpX=i95M=zHFvjeVuvLn-?tkc|HZRtJoHcA z0SrpYs^Y5I^B-8+W7XQCy}sX2l!=0Xg{Tz8YOsQ*Bh&)`35`8Lb!?bc3>i#7AK`_> zprMO8kTOQ7B5Hd*MSc<%@{=x>?gwuW5CN>4!DnEjqK#2U0h-GM^I3TsNlLv=k4cWP z(&m6w43HP5YLpa-D;6YNQ4@3dG*R9sFG2-uJ_#x5IDAQ~BTjfzR#}N;BH<0$B?WA* zv>q%YKs(BGG$z}&X<=8j#=IBiZo@VNjYQ z9MtoT_rB=1sWy7{gO5JjrnC}W5)6t`nUWzyG1%#oXfGZ@2oDomo`D~gtvb8}byZL+ z1Ti>Ow~|13CxdWDo5B|v5RT)%WI+Oi7+W{&hf|^_ee6YnOjwP)6@^AM;TpaRzaSLC zn_$Oiu;S7XCdu0YX(8m26d-!7s%ysk30GCZfoW~M|8!uiO|zV5jySZ_b2w0+P)4&1 z4>=-Z7I;~re}V%OK+cnf(#T596t zldQmyu+G!-H$V?xb)&CF*f@^y@B-QjTk%SRl(v=HogZCTr#rHRtmbN3wmTmIt?B5o z3T$<)9r0vTRHv2(UID%+r6uqz@=$SCU)(r<&*GR-3i=K|k@5Ukg*B@v5#`R_8JDF=x3aA<6C#4JMe!1hA=FZ83*$g00000 LNkvXXu0mjflD7ZG literal 0 HcmV?d00001 diff --git a/media/chatPanel.css b/media/chatPanel.css new file mode 100644 index 0000000..9f81fa9 --- /dev/null +++ b/media/chatPanel.css @@ -0,0 +1,90 @@ +:root { + --vscode-background: var(--vscode-editor-background); + --vscode-foreground: var(--vscode-editor-foreground); + --vscode-border: var(--vscode-editorWidget-border); + --vscode-button-bg: var(--vscode-button-background); + --vscode-button-fg: var(--vscode-button-foreground); + --vscode-button-hover-bg: var(--vscode-button-hoverBackground); +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background-color: var(--vscode-background); + color: var(--vscode-foreground); + margin: 0; + padding: 0; +} + +#chat-container { + display: flex; + flex-direction: column; + height: 100vh; +} + +#messages-container { + flex-grow: 1; + overflow-y: auto; + padding: 10px; +} + +.message { + display: flex; + align-items: center; + margin: 20px 0; +} + +.sender-icon { + width: 24px; + height: 24px; + margin-right: 40px; +} + +.message-text { + flex-grow: 1; + padding: 5px 10px; /* Add some padding to the message text */ + border-radius: 4px; +} + +.user-message .message-text { + background-color: #007acc; /* Different background color for user messages */ + color: white; +} + +.bot-message .message-text { + background-color: #f1f1f1; /* Different background color for bot messages */ + color: black; +} + +.action-icon { + width: 24px; + height: 24px; + margin-left: 10px; +} + +#input-container { + display: flex; + padding: 10px; + border-top: 1px solid #ccc; +} + +#message-input { + flex-grow: 1; + border: 1px solid #ccc; + border-radius: 4px; + padding: 5px; + outline: none; +} + +#send-button { + margin-left: 10px; + background-color: var(--vscode-button-bg); + color: var(--vscode-button-fg); + border: 1px solid var(--vscode-border); + border-radius: 4px; + padding: 5px 10px; + cursor: pointer; +} + +#send-button:hover { + background-color: var(--vscode-button-hover-bg); +} \ No newline at end of file diff --git a/media/chatPanel.html b/media/chatPanel.html new file mode 100644 index 0000000..e10a25f --- /dev/null +++ b/media/chatPanel.html @@ -0,0 +1,20 @@ + + + + + + + + +

+ + + diff --git a/media/chatPanel.js b/media/chatPanel.js new file mode 100644 index 0000000..284a933 --- /dev/null +++ b/media/chatPanel.js @@ -0,0 +1,57 @@ +(function () { + const vscode = acquireVsCodeApi(); + + const messageInput = document.getElementById('message-input'); + const sendButton = document.getElementById('send-button'); + const messagesContainer = document.getElementById('messages-container'); + + function addMessageToUI(message, senderIconClass, actionIconClass, messageType) { + const messageElement = document.createElement('div'); + messageElement.classList.add('message', messageType); + + const senderIcon = document.createElement('i'); + senderIcon.className = senderIconClass; + + const messageText = document.createElement('span'); + messageText.classList.add('message-text'); + messageText.textContent = message; + + const actionIcon = document.createElement('i'); + actionIcon.className = actionIconClass; + + messageElement.appendChild(senderIcon); + messageElement.appendChild(messageText); + messageElement.appendChild(actionIcon); + messagesContainer.appendChild(messageElement); + messagesContainer.scrollTop = messagesContainer.scrollHeight; + } + + function processMessage(message) { + // Process the message and get the bot's response + // For an echo bot, return the same message + return message; + } + + sendButton.addEventListener('click', () => { + const message = messageInput.value; + if (message) { + const userIconClass = 'fas fa-user-circle'; + const botIconClass = 'fas fa-robot'; + const actionIconClass = 'fas fa-check-circle'; + + addMessageToUI(message, userIconClass, actionIconClass, 'user-message'); + messageInput.value = ''; + + const botResponse = processMessage(message); + addMessageToUI(botResponse, botIconClass, actionIconClass, 'bot-message'); + } + }); + + messageInput.addEventListener('keypress', (event) => { + if (event.key === 'Enter') { + sendButton.click(); + } + }); + })(); + + \ No newline at end of file diff --git a/media/check-icon.png b/media/check-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7b46eae4f83a5ae3ef9835ee76386c299dfaf8a6 GIT binary patch literal 3362 zcmY*c2{=@38$N>=Tgg&mA6s@avW_h!Sto1O%!lkTma&dq6q1x|5ha9CmZ52r`Lb_W zLx?P68-pxkO+S6#|9$^|-s`;2{XWnA-uL^Q>pItUPLkNDTs(ZbZ##=s4U1f-5I7@z^M1GLAKqXFFU1n7Qa062FP z0f6=?=-=v7nt!U=PigQ4NIzdByywMo7P)*_A47DSCoQ4TQe^UZ)Y6{yRO`$rz0j^MGIk+5LSc?e?g=z%2 zxT%?6zVi3>qm`zxM_{0z8VnW^5+WC(Am>ur;ts2K!HIo2O*CXd+eJy#7-^~BZ{q3UxJ2wBH!~E6h@9a^lT1*YW<7rTQn=qIyH<621Ssz>t617TW1q+GN z{Q|(TH5V_%op8=M!7iO?>%uI`en~=TO6Zbe)IE1Bw&XpzeRX^(V7pe6k}sfMqky3- zy}K49I3F>uKA#`n8a^Y9Dk}@vF<3tpnc>!ug@={2VEM`qXP~oXf)jItF2@P<8Ff?uM8 zKj>}k+OULLW~e4zXKsxd-FDZ}mRH!HX-QO|@0tVEUA%dBxCftEIeB4ao8fbeLE7es zD$)@@I=k2xONpg*Ea%FXTuoQmIZ0gX-8BC?^38+7(Aj3x|?%?L7|D6+O zg(OM9EIxusxbGbf3>YOn@Crv}S4#7ZXO8Rr&l_lcGkeLV?DWm)sn|*J}cE< z-gUV;=f|zvx8QViekbCe8gs7od1U$%20xANQFSCkrIr}SF%s)YpgeIgOZg^!HvOy< zn-?2-KUAN0D5LQunGiB*GE0LFa8u?V*Uo-R^eVBN!sJ*+;QqufzWnxtsQxOuYUp)Q z#a?&u>G_E~R_!EM36Y|Pq*dv|wX4##^<&%6#@$znG?1+UCejzqcps3W2qeh&E6wkcAC<6D zPM)W*oGLXkdE#4$kc)w3p{_FLf$YwT)j`dBy(FI<4h?;@va24lhZpI8S%`nvcY~#} zkxLqsT|=ZsY;?&&20YS4i><7b2TdZMs7GIItiPFZftC2vQtKen6YwTvXT?&tdEaer ziU+x}LW3(kYwL<7y3B+vmhTN-RnToy*|cD-I@qdzaPWoICt@>9w}Sn-y|2`j5`h~D zg4nAsyI<4^R?wiBi;a|O9(>Yhej+7?v5H5(z|m+=gl+Vwty0PzE)|G%vIDB_E@~fM zumpwAYr~?bx{H{C2ZtN4QTwEx!PuoT4EHq9X@fMpd&&%l!wE*C1otQI7ZHAy3`ZU6 zykv--`1Yqk<$zmjH($BvG(QK9raq-VrGE`SAC$#2eNvoPdF z8H=jS>}0+TV;lyZ+EJR@07-pLoOIRcj#osi_G2>MR26cPZnFfkwTz1Q7w8q#Prb?y zr{-zZaF<=6;mj5HeRs`+JSXcA=4LTWMN2FL0R{KPiH`C>*IMc?s~oA!;?oRyy6y4a z-KW;u6AIFpa+`7WAWs29BF|`*C?N0@q`eU1jNqyON}1fJQGi`dp`*ss^l=J|YL5n?eimk{4P`Jp_T`b;Cqn3FKr`dEa$ zSVR9hUzO=jW%MuWi5J*+hU-P-$e}Gu+w+zP84_!+gh$8S;VpE(RV|W_&Si{KiK7re zXHq>nH<~-8z+NA=cUAlk_#w8GZ8b%^LC+sGNxA7y_CJeDjAxXYN}{Ue?yXe*(uVU-pRVA6eCl!HZoltg z6eslarwMk8(9ny;Fffb}QjIdiKyaq9gl&8Z>5SkSDKt_SyJt{#D`<=tAckkLRav8L zOhs|{jkvVniQ81dVPV|Q0B#^nb|bilscjljT4JNh< zgm6vG-B0sdi>n8gPtaMBM1Wb)(Q{0kMmw{71Z&i=|3hV~%diZ6J>hMaPo)J(w@_wM z94R1$?pF~qtHCFVbv|S%b;Arc6$YmWDNFFna7;v*$RjSw&%#A7mpxQG1JInMMEVf( zGE(Yr+FmqXZA(*lVaQ$f{(0qFJW$+jkV8|#LtYX0!kFW%1lcn5UX zBSKXmdk5dF@Y0XNC~7it>DV-UO!Oubg^z_)cl4P$kghCq?qGakqHoX6!diqm4c-(t|FAgIZ)yb< zSrl%0>JiMWiML?cs=LJzL4MnNt$q%{NZ+AjFKpnKGEK&Pupcn0JV1@EPOXaS*PdkI zW6pccA^N7g0cZWk?!D3H!|ms!&+v)$f7rfD3vZOi7v3SF2P~*--MMslANTf$jjUP9 z?^QLOlJyE8odgW$Rdh`t$~}E>2Ao1-fvdvP(e=+q9+oOKttft7OEY<+$Z^Vi^qVdi-Mgz<1)0hUH*sj2-eO8eh%Y@`6%+mHf5;A^j=a4f(Utf{-eIF>{WJ zh>>Y_LG0J|$_zT`Ow*7B!Z*yY`(o{KY8zV5>CZV1G&AM!TuhDF>P<#UQ+1a=_v;?+ zd0(gYMPbCn%VIQ>_oftOrlDt604$6;U(8Y-=sl^J6c&;U za*@6Tvd?Iov6_TyP%1|1UyWfr=Mz>|(5;8I<0o2ltkVV01e}*%eK5f9W_8nUtKCCg zZlGffXZL3~$Zk6BQaXRn%8$b8wA-l7v-m@wg z+8tE*4#8>Hb3blb{aJA#Z?^~HSIe5E8}T;i5RJ%u@@wV6Ts`6jQ6unVB#w3e5Hi<0 zxbiGNn%c=oLTs_9(mH0Ey`b!-fL?S@=Tgg&mA6s@avW_h!Sto1O%!lkTma&dq6q1x|5ha9CmZ52r`Lb_W zLx?P68-pxkO+S6#|9$^|-s`;2{XWnA-uL^Q>pItUPLkNDTs(ZbZ##=s4U1f-5I7@z^M1GLAKqXFFU1n7Qa062FP z0f6=?=-=v7nt!U=PigQ4NIzdByywMo7P)*_A47DSCoQ4TQe^UZ)Y6{yRO`$rz0j^MGIk+5LSc?e?g=z%2 zxT%?6zVi3>qm`zxM_{0z8VnW^5+WC(Am>ur;ts2K!HIo2O*CXd+eJy#7-^~BZ{q3UxJ2wBH!~E6h@9a^lT1*YW<7rTQn=qIyH<621Ssz>t617TW1q+GN z{Q|(TH5V_%op8=M!7iO?>%uI`en~=TO6Zbe)IE1Bw&XpzeRX^(V7pe6k}sfMqky3- zy}K49I3F>uKA#`n8a^Y9Dk}@vF<3tpnc>!ug@={2VEM`qXP~oXf)jItF2@P<8Ff?uM8 zKj>}k+OULLW~e4zXKsxd-FDZ}mRH!HX-QO|@0tVEUA%dBxCftEIeB4ao8fbeLE7es zD$)@@I=k2xONpg*Ea%FXTuoQmIZ0gX-8BC?^38+7(Aj3x|?%?L7|D6+O zg(OM9EIxusxbGbf3>YOn@Crv}S4#7ZXO8Rr&l_lcGkeLV?DWm)sn|*J}cE< z-gUV;=f|zvx8QViekbCe8gs7od1U$%20xANQFSCkrIr}SF%s)YpgeIgOZg^!HvOy< zn-?2-KUAN0D5LQunGiB*GE0LFa8u?V*Uo-R^eVBN!sJ*+;QqufzWnxtsQxOuYUp)Q z#a?&u>G_E~R_!EM36Y|Pq*dv|wX4##^<&%6#@$znG?1+UCejzqcps3W2qeh&E6wkcAC<6D zPM)W*oGLXkdE#4$kc)w3p{_FLf$YwT)j`dBy(FI<4h?;@va24lhZpI8S%`nvcY~#} zkxLqsT|=ZsY;?&&20YS4i><7b2TdZMs7GIItiPFZftC2vQtKen6YwTvXT?&tdEaer ziU+x}LW3(kYwL<7y3B+vmhTN-RnToy*|cD-I@qdzaPWoICt@>9w}Sn-y|2`j5`h~D zg4nAsyI<4^R?wiBi;a|O9(>Yhej+7?v5H5(z|m+=gl+Vwty0PzE)|G%vIDB_E@~fM zumpwAYr~?bx{H{C2ZtN4QTwEx!PuoT4EHq9X@fMpd&&%l!wE*C1otQI7ZHAy3`ZU6 zykv--`1Yqk<$zmjH($BvG(QK9raq-VrGE`SAC$#2eNvoPdF z8H=jS>}0+TV;lyZ+EJR@07-pLoOIRcj#osi_G2>MR26cPZnFfkwTz1Q7w8q#Prb?y zr{-zZaF<=6;mj5HeRs`+JSXcA=4LTWMN2FL0R{KPiH`C>*IMc?s~oA!;?oRyy6y4a z-KW;u6AIFpa+`7WAWs29BF|`*C?N0@q`eU1jNqyON}1fJQGi`dp`*ss^l=J|YL5n?eimk{4P`Jp_T`b;Cqn3FKr`dEa$ zSVR9hUzO=jW%MuWi5J*+hU-P-$e}Gu+w+zP84_!+gh$8S;VpE(RV|W_&Si{KiK7re zXHq>nH<~-8z+NA=cUAlk_#w8GZ8b%^LC+sGNxA7y_CJeDjAxXYN}{Ue?yXe*(uVU-pRVA6eCl!HZoltg z6eslarwMk8(9ny;Fffb}QjIdiKyaq9gl&8Z>5SkSDKt_SyJt{#D`<=tAckkLRav8L zOhs|{jkvVniQ81dVPV|Q0B#^nb|bilscjljT4JNh< zgm6vG-B0sdi>n8gPtaMBM1Wb)(Q{0kMmw{71Z&i=|3hV~%diZ6J>hMaPo)J(w@_wM z94R1$?pF~qtHCFVbv|S%b;Arc6$YmWDNFFna7;v*$RjSw&%#A7mpxQG1JInMMEVf( zGE(Yr+FmqXZA(*lVaQ$f{(0qFJW$+jkV8|#LtYX0!kFW%1lcn5UX zBSKXmdk5dF@Y0XNC~7it>DV-UO!Oubg^z_)cl4P$kghCq?qGakqHoX6!diqm4c-(t|FAgIZ)yb< zSrl%0>JiMWiML?cs=LJzL4MnNt$q%{NZ+AjFKpnKGEK&Pupcn0JV1@EPOXaS*PdkI zW6pccA^N7g0cZWk?!D3H!|ms!&+v)$f7rfD3vZOi7v3SF2P~*--MMslANTf$jjUP9 z?^QLOlJyE8odgW$Rdh`t$~}E>2Ao1-fvdvP(e=+q9+oOKttft7OEY<+$Z^Vi^qVdi-Mgz<1)0hUH*sj2-eO8eh%Y@`6%+mHf5;A^j=a4f(Utf{-eIF>{WJ zh>>Y_LG0J|$_zT`Ow*7B!Z*yY`(o{KY8zV5>CZV1G&AM!TuhDF>P<#UQ+1a=_v;?+ zd0(gYMPbCn%VIQ>_oftOrlDt604$6;U(8Y-=sl^J6c&;U za*@6Tvd?Iov6_TyP%1|1UyWfr=Mz>|(5;8I<0o2ltkVV01e}*%eK5f9W_8nUtKCCg zZlGffXZL3~$Zk6BQaXRn%8$b8wA-l7v-m@wg z+8tE*4#8>Hb3blb{aJA#Z?^~HSIe5E8}T;i5RJ%u@@wV6Ts`6jQ6unVB#w3e5Hi<0 zxbiGNn%c=oLTs_9(mH0Ey`b!-fL?S@=16.0.0" @@ -378,13 +381,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.58.0.tgz", - "integrity": "sha512-FF5vP/SKAFJ+LmR9PENql7fQVVgGDOS+dq3j+cKl9iW/9VuZC/8CFmzIP0DLKXfWKpRHawJiG70rVH+xZZbp8w==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", + "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.58.0", - "@typescript-eslint/utils": "5.58.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -405,9 +408,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.58.0.tgz", - "integrity": "sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -418,13 +421,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz", - "integrity": "sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/visitor-keys": "5.58.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -445,17 +448,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.58.0.tgz", - "integrity": "sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", + "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.58.0", - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/typescript-estree": "5.58.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -471,12 +474,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz", - "integrity": "sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -503,148 +506,148 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.5", "@xtuc/long": "4.2.2" } }, @@ -931,9 +934,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001478", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz", - "integrity": "sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==", + "version": "1.0.30001480", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz", + "integrity": "sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==", "dev": true, "funding": [ { @@ -1058,9 +1061,9 @@ "dev": true }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/commander": { @@ -1164,9 +1167,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.362", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.362.tgz", - "integrity": "sha512-PYzAoScDfUcAwZfJQvr6hK2xXzLsMocj/Wuz6LpW6TZQNVv9TflBSB+UoEPuFujc478BgAxCoCFarcVPmjzsog==", + "version": "1.4.368", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.368.tgz", + "integrity": "sha512-e2aeCAixCj9M7nJxdB/wDjO6mbYX+lJJxSJCXDzlr5YPGYVofuJwGN9nKg2o6wWInjX6XmxRinn3AeJMK81ltw==", "dev": true }, "node_modules/emoji-regex": { @@ -1176,9 +1179,9 @@ "dev": true }, "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -2346,6 +2349,14 @@ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, + "node_modules/nonce": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nonce/-/nonce-1.0.4.tgz", + "integrity": "sha512-FVPu+tMZPP91HDwiq1DNhn9WIhg4/uo6mXR0xXAn0IMOxDmjJOkgbH0tm7qtowvAFZofWZRX+9KWZpNURrgtSA==", + "engines": { + "node": ">=0.6" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2785,9 +2796,9 @@ "dev": true }, "node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -2803,9 +2814,9 @@ } }, "node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2974,9 +2985,9 @@ } }, "node_modules/terser": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", - "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -3130,9 +3141,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -3142,6 +3153,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -3149,7 +3164,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -3184,21 +3199,21 @@ } }, "node_modules/webpack": { - "version": "5.79.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", - "integrity": "sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==", + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", + "enhanced-resolve": "^5.13.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -3208,7 +3223,7 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.1.2", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", @@ -3434,5 +3449,2502 @@ "url": "https://github.com/sponsors/sindresorhus" } } + }, + "dependencies": { + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "dev": true, + "requires": { + "@types/minimatch": "^5.1.2", + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "@types/mocha": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "dev": true + }, + "@types/node": { + "version": "16.18.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.24.tgz", + "integrity": "sha512-zvSN2Esek1aeLdKDYuntKAYjti9Z2oT4I8bfkLLhIxHlv3dwZ5vvATxOc31820iYm4hQRCwjUgDpwSMFjfTUnw==", + "dev": true + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/vscode": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.77.0.tgz", + "integrity": "sha512-MWFN5R7a33n8eJZJmdVlifjig3LWUNRrPeO1xemIcZ0ae0TEQuRc7G2xV0LUX78RZFECY1plYBn+dP/Acc3L0Q==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", + "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/type-utils": "5.59.0", + "@typescript-eslint/utils": "5.59.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", + "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/utils": "5.59.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", + "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@vscode/test-electron": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.0.tgz", + "integrity": "sha512-fwzA9RtazH1GT/sckYlbxu6t5e4VaMXwCVtyLv4UAG0hP6NTfnMaaG25XCfWqlVwFhBMcQXHBCy5dmz2eLUnkw==", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "jszip": "^3.10.1", + "semver": "^7.3.8" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.5", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.1.tgz", + "integrity": "sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", + "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", + "dev": true, + "requires": {} + }, + "@webpack-cli/serve": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.1.tgz", + "integrity": "sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==", + "dev": true, + "requires": {} + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001480", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz", + "integrity": "sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "electron-to-chromium": { + "version": "1.4.368", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.368.tgz", + "integrity": "sha512-e2aeCAixCj9M7nJxdB/wDjO6mbYX+lJJxSJCXDzlr5YPGYVofuJwGN9nKg2o6wWInjX6XmxRinn3AeJMK81ltw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "es-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + }, + "espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "nonce": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nonce/-/nonce-1.0.4.tgz", + "integrity": "sha512-FVPu+tMZPP91HDwiq1DNhn9WIhg4/uo6mXR0xXAn0IMOxDmjJOkgbH0tm7qtowvAFZofWZRX+9KWZpNURrgtSA==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "requires": { + "resolve": "^1.20.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "dependencies": { + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-loader": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", + "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack": { + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.13.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + }, + "webpack-cli": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.1.tgz", + "integrity": "sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.0.1", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.1", + "colorette": "^2.0.14", + "commander": "^9.4.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } } } diff --git a/package.json b/package.json index fc7278f..80f8dc6 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,8 @@ { "name": "devchat", - "displayName": "DevChat", - "description": "Write prompts to create code!", - "version": "0.0.2", - "publisher": "merico", + "displayName": "devchat", + "description": "devchat", + "version": "0.0.1", "engines": { "vscode": "^1.77.0" }, @@ -13,10 +12,18 @@ "activationEvents": [], "main": "./dist/extension.js", "contributes": { + "views": { + "explorer": [ + { + "id": "chatPanel", + "name": "Chat with Bot" + } + ] + }, "commands": [ { - "command": "devchat.prompt", - "title": "DevChat: Prompt" + "command": "devchat.openChatPanel", + "title": "Open Chat Panel" } ] }, @@ -32,26 +39,22 @@ "test": "node ./out/test/runTest.js" }, "devDependencies": { - "@types/vscode": "^1.77.0", "@types/glob": "^8.1.0", "@types/mocha": "^10.0.1", "@types/node": "16.x", + "@types/vscode": "^1.77.0", "@typescript-eslint/eslint-plugin": "^5.56.0", "@typescript-eslint/parser": "^5.56.0", + "@vscode/test-electron": "^2.3.0", "eslint": "^8.36.0", "glob": "^8.1.0", "mocha": "^10.2.0", - "typescript": "^4.9.5", "ts-loader": "^9.4.2", + "typescript": "^4.9.5", "webpack": "^5.76.3", - "webpack-cli": "^5.0.1", - "@vscode/test-electron": "^2.3.0" + "webpack-cli": "^5.0.1" }, - "repository": { - "type": "git", - "url": "https://github.com/covespace/devchat-vscode.git" - }, - "bugs": { - "url": "https://github.com/covespace/devchat-vscode/issues" + "dependencies": { + "nonce": "^1.0.4" } } diff --git a/src/chatPanel.ts b/src/chatPanel.ts new file mode 100644 index 0000000..015bc1e --- /dev/null +++ b/src/chatPanel.ts @@ -0,0 +1,70 @@ +import * as vscode from 'vscode'; +import * as path from 'path'; +import * as fs from 'fs'; + +export default class ChatPanel { + public static currentPanel: ChatPanel | undefined; + private readonly _panel: vscode.WebviewPanel; + private _disposables: vscode.Disposable[] = []; + + public static createOrShow(extensionUri: vscode.Uri) { + const column = vscode.window.activeTextEditor + ? vscode.window.activeTextEditor.viewColumn + : undefined; + + // If the panel already exists, show it in the target column + if (ChatPanel.currentPanel) { + ChatPanel.currentPanel._panel.reveal(column); + return; + } + + // Create a new panel + const panel = vscode.window.createWebviewPanel( + 'chatPanel', + 'Chat with Bot', + column || vscode.ViewColumn.One, + { + enableScripts: true, + retainContextWhenHidden: true + } + ); + + // Create a new ChatPanel instance and set it as the current panel + ChatPanel.currentPanel = new ChatPanel(panel, extensionUri); + } + + private constructor(panel: vscode.WebviewPanel, extensionUri: vscode.Uri) { + // ... initialize the chat panel ... + this._panel = panel; + + // Set the webview options + this._panel.webview.options = { + enableScripts: true, + localResourceRoots: [vscode.Uri.joinPath(extensionUri, 'media')] + }; + + // Set the webview content + this._panel.webview.html = this._getHtmlContent(extensionUri); + + // Handle webview events and dispose of the panel when closed + this._panel.onDidDispose(() => this.dispose(), null, this._disposables); + + } + + private _getHtmlContent(extensionUri: vscode.Uri): string { + const htmlPath = vscode.Uri.joinPath(extensionUri, 'media', 'chatPanel.html'); + const htmlContent = fs.readFileSync(htmlPath.fsPath, 'utf8'); + + // Replace the resource placeholder with the correct resource URI + return htmlContent.replace(//g, (_, resourcePath) => { + const resourceUri = vscode.Uri.joinPath(extensionUri, 'media', resourcePath); + return this._panel.webview.asWebviewUri(resourceUri).toString(); + }); + } + + public dispose() { + // ... dispose the panel and clean up resources ... + } + + // ... other helper methods ... +} \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index e9623e8..961fde6 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,25 +1,18 @@ // The module 'vscode' contains the VS Code extensibility API // Import the module and reference it with the alias vscode in your code below -import * as vscode from 'vscode'; +const vscode = require('vscode'); +const ChatPanel = require('./chatPanel').default; -// This method is called when your extension is activated -// Your extension is activated the very first time the command is executed -export function activate(context: vscode.ExtensionContext) { - - // Use the console to output diagnostic information (console.log) and errors (console.error) - // This line of code will only be executed once when your extension is activated - console.log('Congratulations, your extension "devchat" is now active!'); - - // The command has been defined in the package.json file - // Now provide the implementation of the command with registerCommand - // The commandId parameter must match the command field in package.json - let disposable = vscode.commands.registerCommand('devchat.prompt', () => { - // Display a message box to the user - vscode.window.showInformationMessage('DevChat is under development!'); - }); - - context.subscriptions.push(disposable); +function activate(context: { extensionUri: any; subscriptions: any[]; }) { + let disposable = vscode.commands.registerCommand('devchat.openChatPanel', function () { + ChatPanel.createOrShow(context.extensionUri); + }); + + context.subscriptions.push(disposable); } +exports.activate = activate; -// This method is called when your extension is deactivated -export function deactivate() {} +function processMessage(message: any) { + // For an echo bot, return the same message + return message; + } \ No newline at end of file diff --git a/src/test/runTest.js b/src/test/runTest.js new file mode 100644 index 0000000..783f8f3 --- /dev/null +++ b/src/test/runTest.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const test_electron_1 = require("@vscode/test-electron"); +async function main() { + try { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + const extensionDevelopmentPath = path.resolve(__dirname, '../../'); + // The path to test runner + // Passed to --extensionTestsPath + const extensionTestsPath = path.resolve(__dirname, './suite/index'); + // Download VS Code, unzip it and run the integration test + await (0, test_electron_1.runTests)({ extensionDevelopmentPath, extensionTestsPath }); + } + catch (err) { + console.error('Failed to run tests', err); + process.exit(1); + } +} +main(); +//# sourceMappingURL=runTest.js.map \ No newline at end of file diff --git a/src/test/runTest.js.map b/src/test/runTest.js.map new file mode 100644 index 0000000..e565019 --- /dev/null +++ b/src/test/runTest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"runTest.js","sourceRoot":"","sources":["runTest.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAE7B,yDAAiD;AAEjD,KAAK,UAAU,IAAI;IAClB,IAAI;QACH,4DAA4D;QAC5D,yCAAyC;QACzC,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEnE,0BAA0B;QAC1B,iCAAiC;QACjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAEpE,0DAA0D;QAC1D,MAAM,IAAA,wBAAQ,EAAC,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC,CAAC;KACjE;IAAC,OAAO,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAChB;AACF,CAAC;AAED,IAAI,EAAE,CAAC"} \ No newline at end of file diff --git a/src/test/suite/extension.test.js b/src/test/suite/extension.test.js new file mode 100644 index 0000000..d88089e --- /dev/null +++ b/src/test/suite/extension.test.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assert = require("assert"); +// You can import and use all API from the 'vscode' module +// as well as import your extension to test it +const vscode = require("vscode"); +// import * as myExtension from '../../extension'; +suite('Extension Test Suite', () => { + vscode.window.showInformationMessage('Start all tests.'); + test('Sample test', () => { + assert.strictEqual(-1, [1, 2, 3].indexOf(5)); + assert.strictEqual(-1, [1, 2, 3].indexOf(0)); + }); +}); +//# sourceMappingURL=extension.test.js.map \ No newline at end of file diff --git a/src/test/suite/extension.test.js.map b/src/test/suite/extension.test.js.map new file mode 100644 index 0000000..ebeb315 --- /dev/null +++ b/src/test/suite/extension.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extension.test.js","sourceRoot":"","sources":["extension.test.ts"],"names":[],"mappings":";;AAAA,iCAAiC;AAEjC,0DAA0D;AAC1D,8CAA8C;AAC9C,iCAAiC;AACjC,kDAAkD;AAElD,KAAK,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAEzD,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/test/suite/index.js b/src/test/suite/index.js new file mode 100644 index 0000000..f0da16d --- /dev/null +++ b/src/test/suite/index.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.run = void 0; +const path = require("path"); +const Mocha = require("mocha"); +const glob = require("glob"); +function run() { + // Create the mocha test + const mocha = new Mocha({ + ui: 'tdd', + color: true + }); + const testsRoot = path.resolve(__dirname, '..'); + return new Promise((c, e) => { + glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { + if (err) { + return e(err); + } + // Add files to the test suite + files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); + try { + // Run the mocha test + mocha.run(failures => { + if (failures > 0) { + e(new Error(`${failures} tests failed.`)); + } + else { + c(); + } + }); + } + catch (err) { + console.error(err); + e(err); + } + }); + }); +} +exports.run = run; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/src/test/suite/index.js.map b/src/test/suite/index.js.map new file mode 100644 index 0000000..7934b18 --- /dev/null +++ b/src/test/suite/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,+BAA+B;AAC/B,6BAA6B;AAE7B,SAAgB,GAAG;IAClB,wBAAwB;IACxB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACvB,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEhD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACxD,IAAI,GAAG,EAAE;gBACR,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;aACd;YAED,8BAA8B;YAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,IAAI;gBACH,qBAAqB;gBACrB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBACpB,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACjB,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,QAAQ,gBAAgB,CAAC,CAAC,CAAC;qBAC1C;yBAAM;wBACN,CAAC,EAAE,CAAC;qBACJ;gBACF,CAAC,CAAC,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,GAAG,CAAC,CAAC;aACP;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAjCD,kBAiCC"} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 965a7b4..ef858d1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,7 @@ "lib": [ "ES2020" ], + "outDir": "./dist", "sourceMap": true, "rootDir": "src", "strict": true /* enable all strict type-checking options */