From 12d8174fa9048826aeb710d74df0a33d3d3ec0ee Mon Sep 17 00:00:00 2001 From: weizman Date: Wed, 20 Dec 2023 18:07:14 +0200 Subject: [PATCH 01/49] init --- .gitignore | 5 + README.md | 277 +++++++++++++++++++++++++++++++++++++ assets/img1.png | Bin 0 -> 61571 bytes assets/img2.png | Bin 0 -> 147461 bytes demo/index.html | 40 ++++++ demo/react/index.js | 11 ++ demo/vanilla/index.js | 11 ++ package.json | 21 +++ packages/core/index.mjs | 94 +++++++++++++ packages/react/index.mjs | 2 + packages/vanilla/index.mjs | 2 + 11 files changed, 463 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 assets/img1.png create mode 100644 assets/img2.png create mode 100644 demo/index.html create mode 100644 demo/react/index.js create mode 100644 demo/vanilla/index.js create mode 100644 package.json create mode 100644 packages/core/index.mjs create mode 100644 packages/react/index.mjs create mode 100644 packages/vanilla/index.mjs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f1aa1a --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules +output +dist +.idea +.vscode diff --git a/README.md b/README.md new file mode 100644 index 0000000..ad60908 --- /dev/null +++ b/README.md @@ -0,0 +1,277 @@ +
+

LavaDome 🌋️

+ ~ A new LavaMoat tool for DOM nodes secured Encapsulation ~ +

+ + + + + +

+

+
+ +> ⚠️ EXPERIMENTAL [WIP] - USE AT YOUR OWN RISK ([learn more](#Disclaimers)) + +## Motivation + +As of today, standards of the web do not offer a way to selectively isolate subtrees +of the DOM from some parties while granting access to others in a **secured manner** when +both parties share the same JavaScript execution environment. + +In a world where we **no longer trust the code in our app**, even when is executed in the +same origin we consider to be trustworthy, we need to be able to present the user +with content we trust that other JavaScript code cannot compromise. + +## Example + +
+ + A great example would be MetaMask's "show private key" feature, where + the private key can be exported by request of the user as plain text + +Show private key feature by MetaMask +
+ +At that stage, this sensitive content is attached to DOM +and is fully **accessible to all entities** running in the same app. + +So if some parts in the app are compromised, parts that don't have default access +to the private key but do have access to the DOM, they could **easily steal the private key** +from the DOM the minute it's being attached to it. + +**We believe this is solvable.** Worth a shot. + +## Solution + +In terms of successfully isolating DOM nodes,[ShadowDOM](https://web.dev/articles/shadowdom-v1) +technology comes very close to that, and although it +[isn't designed with security in mind](https://web.dev/articles/shadowdom-v1#:~:text=Note%3A%20Closed%20shadow%20roots%20are%20not%20very%20useful.%20Some%20developers%20will%20see%20closed%20mode%20as%20an%20artificial%20security%20feature.%20But%20let%27s%20be%20clear%2C%20it%27s%20not%20a%20security%20feature.%20Closed%20mode%20simply%20prevents%20outside%20JS%20from%20drilling%20into%20an%20element%27s%20internal%20DOM.), +it does a pretty good job in isolating subtrees of the DOM from the rest of it. + +Therefore, we believe leveraging ShadowDOM while carefully addressing +[potential security gaps](https://blog.ankursundara.com/shadow-dom/), +**[LavaDomEncapsulation](https://github.com/weizman/lavadome/)** should be +a **security tool to join the LavaMoat toolbox** to allow developers to implement +frontend-only components that will aspire to only allow their code and the user to access/interact with, +while not allow similar access to other untrusted JavaScript code in the app. + +> Shout-out [@arxenix](https://github.com/arxenix) for his +> [research](https://blog.ankursundara.com/shadow-dom/) on ShadowDOM security on top +> of which important security principles were implemented in LavaDome + +## Goals + +This project follows some core principles to successfully serve the main goals of LavaDome: + +### Secure + +The most important part here is to make a secure solution, which is why we take ShadowDOM +and wrap it with advanced security properties so that it's safe to present sensitive info in it. + +Visit [Security](#Security) to learn more about this effort. + +### DX + +We want to achieve as simple Developer Experience as possible by: + +1. Support as many popular frameworks (React, Angular, etc) as possible; +2. Make the API as easy and simple and easy to use as possible. + +### Read - not write + +At this stage, we're not going to support write-mode, meaning the content LavaDome +is willing to support is plain text and nothing more complex than that. + +This is because supporting write mode - meaning an intractable isolated DOM - introduces +multiple security complications we're not yet ready to face at this point, such as: + +1. Event listeners security - prevent outer code from stealing input destined to +LavaDome inner nodes; +2. Overlay security - prevent malicious code from laying phishing DOM on top of LavaDome, +thus making the user serve sensitive input to the wrong entity; +3. etc - Probably more stuff. + + + +## Design + +The design complexity level of this project isn't this high - it's the combination of +the different principles in this project that make it non-trivial +(see [Security](#Security)). + +Nevertheless, it's worth explaining the design in high level by listing the different packages: + +### [Core](./packages/core) + +Implements the basic API layer that mediates the communication between the consumer and +the protected isolated component. The API aspires to allow as much external manipulation +of the isolated component as possible without providing actual DOM nodes from within it to +anyone - not even the consumer of LavaDome - to maintain the highest security level possible. + +In addition, it takes the responsibility of implementing all necessary security hardening +to make ShadowDOM feature usage truly secure in contrast to its native nature of not +being a security feature by default (see [Security](#Security)). + +### [Vanilla](./packages/vanilla) / [React](./packages/react) / etc + +Export functionalities for developers to consume LavaDome however they prefer, +whether by vanilla JavaScript or as a React component +(or any other platform - [ask away!](https://github.com/weizman/lavadome/issues/new?title=LavaDome+misses+support+for+...)) + +> NOTE: Delivering LavaDome support for frameworks integrates third party code +> that is out of our control, which results in "security blank spots" - please +> read the [Security](#Security) section to learn what to do to remain as safe as possible. + +## Security + +Whether you plan on using LavaDome or just interested in what we're trying to achieve here, +these are the security aspects to be aware of + +### ShadowDOM vs iframes + +Again, this is still an experimental project, but we did put some thought into this decision. +A natural alternative was leveraging cross-origin iframes. + +The upside to those is that infiltrating a cross-origin iframe is impossible, and is recognized +as a security critical mechanism by W3C spec, which means that if it gets breached somehow, that +will be treated as a security vulnerability and will be addressed and fixed by browser vendors urgently. + +The downside however, is that integrating an iframe-based solution is significantly harder, +in terms of UI/UX/DX, especially as a tool aimed at mass adoption. + +Because eventually, this is about being able to integrate DOM nodes within DOM trees +in the most natural and smooth way - ShadowDOM API is built exactly for that purpose - +being a DOM oriented API aimed to easily integrate within DOM trees while belonging to +the same realm as the encapsulating DOM tree. + +The alleged downside to the ShadowDOM API is that it isn't originally designed for security +goals, but in reality its implementation is introduced in a highly secured manner, not +leaking anything from within it except for very specific scenarios. + +We believe that by addressing these scenarios securely and carefully, we can take ShadowDOM +another step closer to being a secured DOM encapsulation API (worth a shot). + +### ShadowDOM security gaps + +It's important to address the current security threats that do exist with ShadowDOM. + +#### Injection + +Developers might provide LavaDome with HTML/JS/CSS content that can accidentally or +intentionally leak DOM nodes from within the ShadowDOM when loaded, for example by +adding JavaScript code. + +In order to not allow this to happen, LavaDome does not accept DOM nodes, but merely +plain text, as we want to avoid attempting to trust HTML/JS/CSS content. + +We'd love to revisit this decision in the future when we research and find a stable and +secure way to achieve that. + +#### [window.find()](https://blog.ankursundara.com/shadow-dom/#introducing-windowfind-and-text-selections) + +This API allows developers to find and extract DOM nodes by finding some text inside them, +and is the only API that is known (so far) to successfully leak DOM nodes from within a ShadowDOM. + +
+ + In Firefox, after finding the text, one can use getSelection() API to + leak DOM nodes from within the ShadowDOM, thus compromising the whole idea + +

+// defender
+const secret = 'AN UNPREDICTABLE SECRET';
+const opts = {mode:'closed'};
+const root = document.body.firstElementChild.firstElementChild;
+const p = document.createElement('p');
+const shadow = root.attachShadow(opts);
+shadow.append(p);
+p.innerText = 'Secret is: ' + secret;
+
+// attacker
+setTimeout(() => {
+    find('Secret is:'); // assuming the Shadow includes predictable text
+    console.log('stolen secret: ', getSelection().anchorNode.textContent);
+});
+
+ShadowDOM bypass Firefox +
+ +To defend against that, for starters this means consumer of LavaDome must not +pass predictable content to LavaDome API. This might sound obvious, but developers +can easily be tempted to pass LavaDome something like `The secret is: ldsjf9304rjdkn`, +but that would compromise everything, because even though the `ldsjf9304rjdkn` part clearly +changes, the phrase `The secret is: ` can be exploited to get to the real secret. + +Therefore, when using LavaDome, developers MUST only pass it 100% unpredictable text. + +
+ + In Chromium, that wouldn't work, but if a selected DOM node within the ShadowDOM + is content-editable, + leveraging document.execCommand('insertHTML', ...) can allow attackers + run code in the inner scope of the ShadowDOM, and use that to access its DOM nodes + +

+// defender
+const secret = 'AN UNPREDICTABLE SECRET';
+const opts = {mode:'closed'};
+const root = document.body.firstElementChild.firstElementChild;
+const div = document.createElement('div');
+const shadow = root.attachShadow(opts);
+shadow.append(div);
+const p = document.createElement('p');
+p.innerText = 'Secret is: ' + secret;
+div.appendChild(p);
+div.setAttribute('contenteditable', 'true');
+
+// attacker
+setTimeout(() => {
+    find('Secret is:'); // assuming the Shadow includes predictable text
+    // assuming the found node is contenteditable=true
+    document.execCommand('insertHTML', false, '')
+    console.log(1, 'stolen secret: ');
+});
+
+ShadowDOM bypass Chromium +
+ +To defend against that, LavaDome will apply to its custom elements the highest priority +style possible for `-webkit-user-modify: unset;` so that no elements of it are vulnerable +to injection of malicious outer style making it contenteditable. +Otherwise, malicious outer style applying `-webkit-user-modify:read-write` might +make the ShadowDOM elements contenteditable and vulnerable to this attack vector. + +Needless to say that the other technique of using `contenteditable` as an attribute +isn't currently relevant as LavaDome does not support accepting actual DOM nodes by design. + +### Defensive coding + +Hard to achieve an actual secured solution without writing the code defensively. +This means that all the native APIs we use are cached for internal usage, so that +it isn't possible to reconfigure global APIs to sabotage the legit flow of LavaDome. + +If you see some weird code style choices in the sourcecode, there's a good chance it +was done out of having defensive coding in mind. + +As long as we remain in the realms of Vanilla JavaScript, defensive coding is something +we can (do our very best to) control. + +However, when using the framework versions of LavaDome, this means these +frameworks aren't defensively written which means the native APIs they make use +of aren't safe from malicious interference - and that is out of LavaDome's control. + +Which is why we recommend to always integrate such security solutions with +[SES](https://github.com/endojs/endo/tree/master/packages/ses#ses) technology by +[@agoric](https://github.com/agoric) - same as we do at +[LavaMoat](https://github.com/lavamoat/lavamoat) and +[MetaMask](https://github.com/MetaMask/metamask-extension). + +## Disclaimers + +If you read everything above, you should have a good sense of why this is still very +experimental. Ensuring security to a non-security feature by nature is risky, and this +project is merely an experimental attempt to solve a problem with no current great answer. + +You should still use it - because it's probably better than what the web has to offer currently. +But even if it's safer than other solutions, it should not be mistaken for "safe" but rather "safer". \ No newline at end of file diff --git a/assets/img1.png b/assets/img1.png new file mode 100644 index 0000000000000000000000000000000000000000..aad4b6bf790e81285951232603f8a66bec7b8866 GIT binary patch literal 61571 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 z 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 literal 0 HcmV?d00001 diff --git a/assets/img2.png b/assets/img2.png new file mode 100644 index 0000000000000000000000000000000000000000..cedb79d5c0e994d87cb6d738a27a083ba424e0f4 GIT binary patch literal 147461 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

ca<3cJi^0)epyT%%@O?mEDQjbe@aP6TnZ)6KB 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¨sc%}p-`^Mn%((Q3V%E3PHxF+set_M zhcku!Jl7HGhoBjq3l`SQ@vTvDuiUO_c_b%`Ky2gV7+Yl}ICFMe8&6@MB#m!4;Eaz~ zybj!Ky^?2)LU?3QYTTsITxk``nVx1f0dV94Jb|~egw-8}(mNm7h6WSgFGO4UX`^~O z)7_$QW6uDPvq0qpRn-8KoaIk# z$H||Y5*LF8_%pz03FN>k-%#k*VrsC;HZ5}}j4ihCCr*0V zc+a?=#O*y>#RN)kW zp{#&`;??+~?F(e&tW1NKPeTutrP>EECC83=gxwRu%(3#HlXN!H=;FDL-d-_k1qPDd zD+&fF>Qtu%a(ivN!_O_yYIJ^1>g;QaW@lH0-)F;p2i(opnQ&4ofp6FhJtZzJ--~g4 z#1yvK=f%FH%)NNtj?4+FmdoGM_9?Y>pv+{%?)$V4MrH$N1$GCET3zYxVJ z&HW^&IFvz?sB8<`%z!nS1gWwQWfvk24@@BuvIl0n(-fMp9h6+6wauJ=`l^sn7PFV* zw6{0z29`iQkqG6i9c54p7>+%1Tdzr}RF4AKz7opi_}~(@+ga(;&13|U$Ef^{&7VlMJ$xUCSt^U#1(~W+m`)ryc&0~t;bii zMp}2iCm545n_Fw$2%gB=(V$tdG;(}55Z+Y3%nbZOb9l98N#*Ta17K^u!vq;oe5p8|Qhdcgzo zeh4bfNJ_%4c_n!4S1aeNlq|>AehL?6lN@y))7pZHl*IaSd7na@x>^HXYbP>+l5^YU z6?!FvOTy(BnYQXQM?B$%*BA~So{(*j^~PCh;OicLO?Iz#70p$D>|7O* zjVZEhj>>$;(;{Fk$wAG@}3EK`Le$E&1P9nbe{vn z)cf56Ek>sp{n@n!Vrk6xY1TOVa*F{`U_Bocm!6)~Abvw|fQ`u$^vAi`8@U`i`-nC^ z5_TXv20)Cz|M682q`RBXK?c!&A6Zb|sqCy>eSCl>dVjhr#4z~yu$Zdh+7LVESPPw= z`spyaTBGI7QOoO;gXFV9>6G!Bp)W%mQdXYHcgAsb0)8zY3@ZE!hG-OBPR49>h+|b9 zYiWd|5wk{wNlwl$zg8&3vp0eCFO$uD?0KqcUO4Y?<=OM(VbTPmdRn<^7d^o3;ZO#t ze(a&(^v=z1r>iAMbzXS0n5{v^hQ53mc}rVFUd%<)wEJ1}rvcje@e;Q4k|TOJPQ@i` zi%yh15r72M0jw2%XeJR(qb9_gKNfFVEC_X+Ap}?IjxpN0ZfN!0iVye~2o7j^mK!vL z<7fegMZuDn8DvTcq*!VL_(l4X>ehCyw$G?*Lgz-4AXx|1Y(Bygz??)Nog zQ;kOT7c!MiX;M{Hc<6F#_}D4H&c zyowhnbbB)H@*ijoh$s~(i}4Ypxb=;V$Y_HUzkO;kP3i+SYg*{$wp7A$H1;zI=I=FIQoPH#~yiVfVmd zmum`?gCww9Kjg#=#nshfB5%*~=oet(E^b$1k}f>XRXcOmYVJ;wFW4T{qMs%*I@EBS zt`Y{?a`RT7d8`CW^vwADu?51AD`*g5aWq7%b(9g zIt3#5{PdJo?DB`wZ&OU*6CzAdm6u@|P!(ws$F7adVz%lLlAg}@7SB#7xAMNx^hY)W zhm%FbND61>*TH5E5&zeyKkd=$Q=}H0kABQqF6Ai9=IaVN9Q+_%iS_6!*M)hfu9WJI zP}*n*z6m>6^B0ce4*8jf)j{WFd8AmqPbH;z>8~Jikb$4|U&G#} z-w95PgLuuy4BFpRiey5qe0)uzh^Prl3vHDy`_QD`#$f3B0E||X%ogB%jR$zNyi=>S zNSMj^n^%8L12I}%T`gda1N)og1K_qbppu0I0Qh}z-qqMV?E%E7(xgl3b-U$Wyios| zF2ZeGfz^5(Crit{zrnP13*Q6G1F&T^7(DkpZ}E~9lMiRg;8Q);Wr6x3?!jbb4F&{w zE*tCEQ}L430e)Zl`{g@3&C4ueJmHDnFnbH-CM6oKi`k7`?>R%0xn_3Zwo|e2Bl|*y z(dkI6BiULd_u~6w+QVc{VZY9Z)jd;x#5#Ny2y(d6uAv!q{i&-fB2tEtw>#J>SS6*{ zA+S+TzArXzGYooO=1=Cg6`1pE(%`JrL5A>Rhx)|_QBU*bVmdmCT^o30K!41Hg&H{p8^Eu_y?SFTh5Fy(stewq!38C_@H2%ni9 z0f=L zLvUWFccQx;s$ODENuHmhT4zWAlK0sWx=M@FJEPH*;HKl&uIi^%U+0smqW8f@4l>UB&R{iNctC>=%#1qb6qimOUO6i&bvn(P)x=$?@DtxA!BPj?azx;-s#h5MKZ(&9EZCO z$GYp;N%waV$)1P}^7yfhJbZ7+vS#q-ci3l_3o2C(nA5cC;a4kOeGKjJE8!wVXf!xi ziL%n&+HFq|Ni)SgpH-_2!jugQM~{0a7NAZ0zvQZ|v{grca0z;rZ+b*WTyb32x2j$E zzA+;Ho$ioQeNCJ;fnEfD`@A-O50)w8lW(ia>C~{D)Gj9CeJG=3qaR+H2T%SxSJ{BjNC;Z#YR{Hs0ih+MN4Vx1fYSreqec`xW zexSCFS@@N%@&&7ow5VJR#PQnwu?|5Ohs~(5qbNL_lTYvP7%wfOskBF;pDuP30I32( zqvOG6fP7Ezd{ZL}TINQ;QqwBs9vA9v`bH{_K?gYg&2Lo0Q>S6?oxldz_$JwH+xT zE>Vv%H+{tm&9E<4Z-bELIm1z7vZhQk!r;*(VX>MIZ2~nfF?o7ycJ1056^}k$p&nxx zg*o=LL+nmfK?`%8Vk`qp#eC3pfxrs*?pVmi=HuHILyX5%7ELaelE{ODvKBRgR@T-3 zkFB>3i>q6{gcCv%BzSO3@Zj#Q!QI{6t#JtM?iSqLJ;B|fad&rXh`MgnY|H7-$=r``iubi$Y0m-^v=-a$6(E7@Z?A)(|#0N8VgJB5y4`R9_rf7q(O4y)LHAbiuy;BKE{roq<0 zWI)lZ(H2Z$>1A(@Ll^Zjdm(`iP1e^-r4%(&k`?OuT}wuY)~Vk9waULq7govk-1~e) z%7uM3A<+vL45tWonvrH3;=2C;$lD%h^m+VqwNf|$JxlIu)g&TQPK5s|2La|^ttfTN z8?XKIgS{5h&Zp<|>nda=BA962SD3;u(;R@?d6?PMueY}HF@?z^3r_>pBJ9>TjxK+q z`(rr$-HScD-G(kOX7lNKpDv+#(xOiT&&dCHrS{Uyl zu^tv~%kx-*|KH3$W*j%BcXCKY*}F^Zn+%#2WOsyrD20HaK<&5KPt zMLs|b{-5cS2+yq_!gw4+yTS4W4#wQf&+mmrMYlSGsr~G3(rveYhg2lrp9jx7T!>~a zHAufDjcJB}_r5%H7{hr(wvnW=Ic5@$qmyd0jSd+Lrp{|SFXFu(0Ag{D3wu%076Q9< zzti*OzR~l;2;J5p2Uy-~B$5pqc=!g_+770>)Ai_t9V5K2n$bgbI?ZM%yqFWBnN`kZ zDuq6QlWeY*DGcwuEs)XeWMThjZ1{x>@(T$u z1qg9Dh*!Dr_LLtvJp9}pP85cIp7vyhb{noAYWCFgq1LFMWmdA6SF|d34hh_I_S{F7 zed*jf+$GJ@J{HO6@FUN{GViT}Me|0s?fr~Gn5`GUcUlI)Ep`2!X<%r0N*yP%;~))i z_kK!`AcrYr2uj8)Ds0f zV~VF7pStSvca7}KAi1u3p$JfS?HKBCiCQ=WQ2nk z&Q}y@0BETul?%;kfB|6t&TX(e7H5%vFyeQ^v(!ni&zbQ}7t)f_j$b*hCk!CvsVTIC z;F~`k_gjAhzU-+}s^8HVdZS5-!LX@!PHap zVpXne20>tW-X zt&r<@cNqYC4%?O=T~pWX(#`2`7UkTB9~kEobb_2A5vZuf?wJ!~CU*&W@Ow|O+G zu42|m7L9{^R)TB$*T-<2CkDQ&>V%3BxKpHiKV_-^`h82FA?Om6Len4$Gfs`eiDWXz zm8|yI9u~CZKAkU)MM5sick$;#s<4g6tU0Rt3t;!R(A55qx&ePI*@hSE+b`;As)Eb^ zD)xY)spIFhe@5X-tucK2#k5bPYl=JKcy`k}jWwBWpG@Lxg}(67I|q-WP}9pbh^>A* zUIr>AW-u&T=KwV7nvqL1e#Va`4A zhht~YzG6?vaGE+?VMhxME$etz9jG}xorxJT^`{XV9=?V&t$7l^KD}TX&a6Db(`zD< zPu(0z(rp}l_aEc^mF<1WR}9|JCE_nt-CA{Bi3$mUInZGC;?mCr>GY?2A)?8WZW3}- z3yFwINAtZf^McN`pPye`O`^md_=oTCxfsnmY@^*|yJL}2XC~MwH|H>XMn)8~8(yeS_A7J7 zs(?|#N&>5@OL(`!nuE0lDvcqJJP6qyX^HOvHQruXYLN>djtk245E|v|D2FoL_0V0{<7=xMKgb@>;=;7?rZ+KGlT|H zrZi^F$Kxb?zc=y|n;`7WcpxIFk;%~J^k&vLvJi)t`}lBxQ^V$^0=pnFB?-VASpNra zh{`1Z;RK!V8rKtk_xOHfKIBd>;fwcrb+a99_}U!^+UuHVa~eA^1XMlk)|&cFijXf? zKGiQt7PrQmS9;YS6@yAGife;GvP(m+`;(nZyZ;Kycd$Ez?`>C8*yhan!k=-|i2u8d zL=H6$6`80yMek}%U1z37FI=ir5-}8C^mTLt(_E=e%*eC)U+B#L zYznyy7$Xo4My0a0<5*Zbwg{f?N*dp5DhrGgsgd0wl`mURZ5eUG$Z^NB;Xr&}_y#lT@FkKY`W zvrUMD>ZFz{ZKIqU`+{THU^few;sD=i?*&G$?8E8Dv%ITvE(Sh}i9-QNcJHbrB+RcEO1uIe>5{FS*ND{^Yzu-qrB z&su@Oe6Pku#9p{2Xi#abCN=ec zF{$lHH>jr<1fv=`G&lR5wbtVKZJrS0a(U{xIKXu}zEsk)tnQGQ)lg`G-$_(Lyf5*IoR{ip; zt6hwvpw6w4BeI9{9zf7`@mS;S)`JWFCuIHwJ|%zi8zqW_lFJe8lFjG658^3_dY_t{vYpKQuJvNuBa1 zzQ~kt+Iv=^k+P#Bni&zIZ{6Sj^MnB|{2ft#5oF1X*z@P8e1oVn$AjbJVE@g}c)Kd1 z_x$w^OXD*=@YHsuj&pXq*_>ok1mmQWH*3yGoX1{;Xo5X{uLHjH1~ zUWtekULIWi9Qfsvy!lfrp~Of5Yc7w-)n|!`eHk=^5Z6K2jWOr{i zFwXz5T#0F|kZW}(-gd@z1Yr_2Q8TeB9eWnsz@t``z9Y$ML|oyhHVO-kP1EH zJEvVFM`FEx_NK4!t&YMTcB98p=0QHVUCJbB;q0}3RbMGUkLe|HCp_3Y(|{# zyRJC325UG}R9WIlKCDPf7onlwavALCQIT!?66wMZkDqcxR=wHLUB99a&-eQgr`POH zTDW0yPvz?PB*0J*7qLLTk+CY=nM(CPWilD7Kt9&3v7vwR@>0&fh(T*5B|He+^g;A1 zN+y>P=`(yjO=@=BEgmnPFZ|_(F%(+zus`Fxz->(kMT&RVFAEXun4X?KsqrKGV3|AM zPs4DXnYh4kud7Xamdy#&=3#vtp%*&S}@0X6$)MX z(ZTIc%bNFOcux?B2}h6|gpw7G;k>geVBx6ksRaac~Zxfx>ZQ+vxZuW8!w<9FiZZ5vxxyT6EKnvU6WRqySenpm}2h6Mzc zvi%OynZT~YS-d^usYO4!ucR&VDEbRtUk2^JFgnmuGE;W1ra`@PHDX*=f-*ElU&l(xkXS+VR^Q;VWU&mM^?Qf^8yXw8} zEG6L+FBigJTBYkMf5x}9g(B3YBOxy^n2761dEA3Dy0?-IDXM&B$~_N$bu5`siGO9< zAQl5pxhm8vVs^CQVUgVMs3s0oF55=F826c(7g~~V)j-_#@dh3F*JW1qJL3hj<>lgg zgagiJ>jXqtk{+ZYF?my-?7;F=sl9FjwK`k{&TU^qGEbz?0P8np z5VzZMG=(B(Z-jE4g<%BN6Ne0GfZ@wo$yLGnOoD2O8a(*UYnVZ|iIwfQeWuJFhYt82 z8!wv6H|x|!aBlckjy9i&_S_-c9FooDBlH8?W2DPbuFeAO3vT{INqt7WHZJ(aO<_sp zZ)J#a^Zn7iw3l3H+=7SE$KgT8N|l!PccSHg{03R32i$Fc`B$(kTOz^0)avk{P_=uu zSDP>CSf$oX1Z=am)i#zWPSIOTh!=~c6smy1Y~ZLSHrCwD;p|5JCK%!@o%y!*!}AW4 z^ZG_1+!U8qpA0yPGM`obvpUFS&xbmOv#a&U&X&!pRkEsFfGfS++4*Q&OrBw@XTpb{ z%}@9cs+R)dgk@US4z+ef9DFW0ASOx=3+m$Oe5Z>9!R5kG+d50YOirm$BvHDX+@pwh zz4cYx?0?nbYgBb1;~GA`g%Qd>S-fA4zmCmF`PIm#VX2DZ^pf2stS2LOatX@#673w2 zWC9igZObiQ3qh$MGTe*zcjLF>*__nm} zYOuWWfr1K3YY`_2CK*kY>32Heo#Wj7_p^ZA$iqVQ!rT@^FxD~}sqkY8Oprwz@E;s% z1^UE|)fBpWl6{&!N|Iak5A_rQSq%q6EkbQ}nGXEXVq;rL&gIkdbzdKQ^BKj_eQ_A- z?#pg8`5CZx3nv@~p8fZ<<$0gvH+h;&%a-Dg+j6&edzFt@3s$nMAFp;%Ffhp8)+l!? zxkkq0`1gF`GmTAI{~I#DfjPkZ6TySnCnn*9)d4O`WX>ZT*_P|*t$z*rHoryz9w3BKt<&KR(wY93Ta=bmLv#Phgi@7W6 zzTf(jJ5)%q`GCSCYL*wJ_P7`y61fnqUDuyC;NwHD6Pl=T!|&+?9c5M9K9hTI#Xslr zV(;*#a!D;EDkznYlB^J~R4=#ekmUo2`S+`g5WJME*(XJ&;`3Uy@yO*!NrOC|^k%Xi zr!_j@F#m$dCr9UW01a=ONB995g189*t(j}SVueoLSDsdM{4^c^F%L{Vp8)5Bo=X2( zpR6xs*AMQHbbuO45Mj}jSOL;_ocD7x%V>$c z@Cq|)yC^}LCpFMLi@My*j>maO&R33aDPHf|R?0s2?NHBxLg|YSo$_BDQ&~t!^Yw;Q z=lvKF+?9n4FLxmOGYEzHQCf9~fg5lFA*flDQimQh9!8dI72}l@Y`99JIt=z@hH}Pg zYT4F5#}rJ?{{R@7)~nX%V?x$P)AA9XF&fDA9nNf_yGPUi8DF$$YwSz@aD87B_MfH#5=3WZK6XVcvjvN5`L*Yi~w z(^e|=Qmj&d6q|l0FYoKL$Ud02L{x3=#|!BR`|3sG{(Dc)=TXk*KsN(}6YS*^cWhlH zP6WC}Yg*kx$~yub;`>?*^(Nth^!)8Ixnn9v$e`oxSDCI+FYM4Q;}Wmi$1?h2&zn-a zdP@a|3~nLg+#a)onq+Knnk?9qa^w6wS~L=e==*mR%_bY?g}esNM(gabjx1iBPAlv6 zY^NpEZ*%eIqa;B&?$dxE2+^$$&!`Q={oSV!yWH<%IIYJSOZ7E^fE|L?p_b>k8^WUU z)Fem6lXrT+pQ4bTDrku$qpk$w@JJ0+3J%8VpZ90kZib+=K%kE#K&~@>4I47Qr8x}! zS5-03*sjzLS-uq_0n??5h)5Wh&}>H@>!t<=L$}U{l*=O%Y zQ?4u~F|eo21S=pKIW;wPCHCn!)8%vmQb)Xzy6lZ@%7&-;AA~djV|0aj`Y4AEquD-n zYq8d<+VXvS%_fhh@H9Pm8F$@xn3OW4ct4yKJ5K60y4D;yR@H+?_0@a5_`IzCvuTr=9_* zS9yfVkn^5p9yXnL;2tZd!DWuMwo4C2W1dj&%o(4m=`~PhtV)cZ|Hmw%B~8w>vHis$ zYhAx_y0_4P33%u=WG+HGab%7mLv{c^I2%NrlzbJVpkJ)sl8AEeBu$A|%5I(&tfjm$ z=S3Bbw@m!Yxb~!IVF)If@>^h1iT=alS{SR(ErxQg0$N$|qYJJXw6c@&lGcwWNa z-Y-v}z0|jj%K<{R`&J$4BaS^P9m`0%DnAqd-Nmqhm8ihaH9M9g>DBk!)>0r#vsFg2 z9Tf=Pnx|A&CeqR1nm0a))uOsocxXt^5OK|s0c-PY_IW6-8RY6NaCdoNj>7<^o6P5BLLn*)fh&d`trQE=F z>@M-Q{*ngQS{J`)-D)6Ds03;v z3{|S>zIJ?b^CD;F=Du`NiJfa4>Lget^%;%z!Elb2UbUWjJBX%%y*R@cJ2HpmmZiU_(lg!Z7;1^ikHH{0ba}k3}7*F zy9SCnbO&^WI$3m~_utySmPOn2&U!i8YrhDjILtMnx*P{qvA#wG%z}uC%zKm`vk$-N z5?Ir9E4-3ks-LqVQ~Xja4e@Y%)Bc4nR(_$}KtTz#E>GV+qd}rspj6LwgNev4XHyxB znXx6~t<(1+U9(1uj9ogCY#*(uTX}C;O4}V%4?;@RUN4CYrB9~(9YDicPCh2>o}qWW zQ`RH)R{I)<`UqLyptd*Xm?pOuLlt&Hv1M=3|6b-J9%8M#y%rZ67Or5xX+JKq4k?LB z&DziUJ049V*}o}ghhHQTz3>!Bb(C{gTdxz{n7P60bXqo|L=@6uQ+@v{UMSPo3555+ zOp{Dp&9vR~?Duw-O&kt>G6Je5>3+qYSN?MP*~A09r($ba0rXcT-`ZDl=jnsvAJJRm zR09TP>&eFLPUUO7=zJ62LlG60t|XTcvyUgv=REBg6u!aD!8kxt*opJ*JiQB@?K*hbTuqfkBI0uz$8g{^Eh)P zV7lJpA%KB#N9r0FU17gpvo+E2bc7n8yUtwGW)U3 z*kVVRDMr%KD9mUuq(<0+UZiq9^5t!X8XI2SDQx3|4@0>{`tPMV9L-Qt>29Ty(r1i@(Zzs zlS8&9&NgQ_x<+RO)j-IZY1}fkj=tyq-831Yl8F(u`q4B`?c2ol%I(@h3rhiArz5T% zS4vxk>WSLdM75P^ggnGl?xy-rVq%#PFEcX=e7Hw`=;;oC|L%1+_1XRi^Yzo4H(*%= z|mXpn%a)ez$`{k=76LF1{-K?dj@IkgW+zGcY!fx3?qY^d3J--&% z_vovV!3DG4GRf3~iey~T17b$n4shyK=%(skLeJe72cEv_LZpSVo?+p$gFSKG3mg4e zpD$UYop{F5Xk6FYCv6-9>j6W_9+gdpojq3W~yHwTYY;_e%F z?`PbLn9lnU5PIl#xKpY}yl{ye5fE3NO3)OYIWhS{zQ)RhAT;xyE&9VG8fMsk!tLJ= z^S`2R$j>(_K+z&8go9EUd>q2B(-SJ}ChM$;A1e}|kU>!5v!YU3q{2z25J4!`UBZxP zN1RJ*lU*I&qvk4XWR=mEoiBET)+EjQT;N8sd-pDUjO^dPJA(LIEhX-N=tn` zg(0PI{oK3q|NIOnKjui^(Kod�o|)W7KoA$O7f0USPt_JQ7{i#4_=HDx(p&N#-fD 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⪻^!Oe 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 + + + LavaDome Demo + + + + +
+
+
+ This is not a secret: +

+ 123 +

+
+
+ This is a secret: +

+ TO BE REPLACED +

+
+
+ + \ No newline at end of file diff --git a/demo/react/index.js b/demo/react/index.js new file mode 100644 index 0000000..6e13a58 --- /dev/null +++ b/demo/react/index.js @@ -0,0 +1,11 @@ +import {LavaDome as LavaDomeReact} from '../../packages/react/index.mjs'; + +top.start = (function(){ + const secret = 456; + + return function start(root) { + root.innerHTML = ''; + const lavadome = new LavaDomeReact(root); + lavadome.text(secret); + } +}()); \ No newline at end of file diff --git a/demo/vanilla/index.js b/demo/vanilla/index.js new file mode 100644 index 0000000..edb7e15 --- /dev/null +++ b/demo/vanilla/index.js @@ -0,0 +1,11 @@ +import {LavaDome as LavaDomeVanilla} from '../../packages/vanilla/index.mjs'; + +top.start = (function(){ + const secret = 456; + + return function start(root) { + root.innerHTML = ''; + const lavadome = new LavaDomeVanilla(root); + lavadome.text(secret); + } +}()); \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..11a44df --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "lavadome", + "version": "0.0.0", + "description": "Secure DOM trees isolation and encapsulation leveraging ShadowDOM", + "main": "packages/index.mjs", + "scripts": { + "demo": "serve . -l 3000", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/weizman/LavaDome.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/weizman/LavaDome/issues" + }, + "homepage": "https://github.com/weizman/LavaDome#readme" +} diff --git a/packages/core/index.mjs b/packages/core/index.mjs new file mode 100644 index 0000000..b15083f --- /dev/null +++ b/packages/core/index.mjs @@ -0,0 +1,94 @@ +"use strict"; + +const { + Object, + Array, + Function, + Math, + parseInt, +} = window; + +const { + getOwnPropertyDescriptor, + entries, +} = Object; + +const { + random, +} = Math; + +const css = Object.create(null); +css['-webkit-user-modify'] = 'unset'; + +const letters = 'abcdefghijklmnopqrstuvwxyz'; + +// p stands for primordial +function p(obj, prop, accessor, type = 'function') { + const desc = getOwnPropertyDescriptor(obj, prop); + switch (type) { + case 'function': + return Function.prototype.call.bind(desc[accessor]); + break; + } +} + +function generateRandomString(len = 0, from = letters, fromLength = 26) { + let tag = ''; + for (let i = 0; i < len; i++) { + const r = parseInt(random() * (fromLength)); + tag += letters[r]; + } + return tag; +} + +const attachShadow = p(Element.prototype, 'attachShadow', 'value'); +const createElement = p(Document.prototype, 'createElement', 'value'); +const appendChild = p(Node.prototype, 'appendChild', 'value'); +const textContentSet = p(Node.prototype, 'textContent', 'set'); +const innerHTMLSet = p(ShadowRoot.prototype, 'innerHTML', 'set'); +const setAttribute = p(Element.prototype, 'setAttribute', 'value'); +const map = p(Array.prototype, 'map', 'value'); +const join = p(Array.prototype, 'join', 'value'); + +export class LavaDome { + constructor(root) { + this.outer = root; + this.inner = null; + this.style = null; + this.shadow = attachShadow(this.outer, { mode: 'closed' }); + } + + #empty() { + innerHTMLSet(this.shadow, ''); + } + + #resetStyle(tag, id, clas) { + this.style = createElement(document, 'style'); + const style = join(map(entries(css), ([k,v]) => `${k}: ${v} !important`), '; '); + textContentSet(this.style, `${tag}#${id}.${clas} { ${style} }`); + appendChild(this.shadow, this.style); + return style; + } + + #reset() { + this.#empty(); + const tag = generateRandomString(7); + const id = generateRandomString(7); + const clas = generateRandomString(7); + const style = this.#resetStyle(tag, id, clas); + this.inner = createElement(document, tag); + setAttribute(this.inner, 'id', id); + setAttribute(this.inner, 'class', clas); + setAttribute(this.inner, 'style', style); + } + + #init() { + this.#reset(); + appendChild(this.shadow, this.inner); + } + + text(text) { + this.#init(); + textContentSet(this.inner, text); + } +} \ No newline at end of file diff --git a/packages/react/index.mjs b/packages/react/index.mjs new file mode 100644 index 0000000..b709808 --- /dev/null +++ b/packages/react/index.mjs @@ -0,0 +1,2 @@ +import {LavaDome as LavaDomeCore} from "../core/index.mjs" +export class LavaDome extends LavaDomeCore {} \ No newline at end of file diff --git a/packages/vanilla/index.mjs b/packages/vanilla/index.mjs new file mode 100644 index 0000000..b709808 --- /dev/null +++ b/packages/vanilla/index.mjs @@ -0,0 +1,2 @@ +import {LavaDome as LavaDomeCore} from "../core/index.mjs" +export class LavaDome extends LavaDomeCore {} \ No newline at end of file From f6bc6e6e42e8d984d459cd0f492b4c278aa99edf Mon Sep 17 00:00:00 2001 From: weizman Date: Wed, 20 Dec 2023 19:06:53 +0200 Subject: [PATCH 02/49] nvmrc --- .nvmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..3f430af --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v18 From 02b653237e1d2dc28f17926350e44b2410d322cb Mon Sep 17 00:00:00 2001 From: weizman Date: Wed, 20 Dec 2023 19:40:39 +0200 Subject: [PATCH 03/49] support tests --- .gitignore | 1 + chrome.wdio.conf.js | 285 ++++ demo/index.html | 2 +- demo/react/index.js | 2 +- demo/vanilla/index.js | 2 +- firefox.wdio.conf.js | 287 ++++ package.json | 16 +- safari.wdio.conf.js | 284 ++++ test/index.mjs | 11 + test/vanilla.mjs | 13 + yarn.lock | 3040 +++++++++++++++++++++++++++++++++++++++++ 11 files changed, 3939 insertions(+), 4 deletions(-) create mode 100644 chrome.wdio.conf.js create mode 100644 firefox.wdio.conf.js create mode 100644 safari.wdio.conf.js create mode 100644 test/index.mjs create mode 100644 test/vanilla.mjs create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 4f1aa1a..7a22478 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ output dist .idea .vscode +logs \ No newline at end of file diff --git a/chrome.wdio.conf.js b/chrome.wdio.conf.js new file mode 100644 index 0000000..cb87d49 --- /dev/null +++ b/chrome.wdio.conf.js @@ -0,0 +1,285 @@ +exports.config = { + // + // ==================== + // Runner Configuration + // ==================== + // + // WebdriverIO allows it to run your tests in arbitrary locations (e.g. locally or + // on a remote machine). + runner: 'local', + // + // ================== + // Specify Test Files + // ================== + // Define which test specs should run. The pattern is relative to the directory + // from which `wdio` was called. + // + // The specs are defined as an array of spec files (optionally using wildcards + // that will be expanded). The test for each spec file will be run in a separate + // worker process. In order to have a group of spec files run in the same worker + // process simply enclose them in an array within the specs array. + // + // If you are calling `wdio` from an NPM script (see https://docs.npmjs.com/cli/run-script), + // then the current working directory is where your `package.json` resides, so `wdio` + // will be called from there. + // + specs: [ + `./test/${process.argv[4] || '*'}.mjs` + ], + // Patterns to exclude. + exclude: [ + './test/index.mjs' + ], + // + // ============ + // Capabilities + // ============ + // Define your capabilities here. WebdriverIO can run multiple capabilities at the same + // time. Depending on the number of capabilities, WebdriverIO launches several test + // sessions. Within your capabilities you can overwrite the spec and exclude options in + // order to group specific specs to a specific capability. + // + // First, you can define how many instances should be started at the same time. Let's + // say you have 3 different capabilities (Chrome, Firefox, and Safari) and you have + // set maxInstances to 1; wdio will spawn 3 processes. Therefore, if you have 10 spec + // files and you set maxInstances to 10, all spec files will get tested at the same time + // and 30 processes will get spawned. The property handles how many capabilities + // from the same test should run tests. + // + maxInstances: 10, + // + // If you have trouble getting all important capabilities together, check out the + // Sauce Labs platform configurator - a great tool to configure your capabilities: + // https://docs.saucelabs.com/reference/platforms-configurator + // + capabilities: [{ + + // maxInstances can get overwritten per capability. So if you have an in-house Selenium + // grid with only 5 firefox instances available you can make sure that not more than + // 5 instances get started at a time. + maxInstances: 5, + // + browserName: 'chrome', + 'goog:chromeOptions': { + args: [ + '--headless', + 'disable-gpu', + ], + }, + acceptInsecureCerts: true + // If outputDir is provided WebdriverIO can capture driver session logs + // it is possible to configure which logTypes to include/exclude. + // excludeDriverLogs: ['*'], // pass '*' to exclude all driver session logs + // excludeDriverLogs: ['bugreport', 'server'], + }], + // + // =================== + // Test Configurations + // =================== + // Define all options that are relevant for the WebdriverIO instance here + // + // Level of logging verbosity: trace | debug | info | warn | error | silent + logLevel: 'warn', + // + // Set specific log levels per logger + // loggers: + // - webdriver, webdriverio + // - @wdio/applitools-service, @wdio/browserstack-service, @wdio/devtools-service, @wdio/sauce-service + // - @wdio/mocha-framework, @wdio/jasmine-framework + // - @wdio/local-runner + // - @wdio/sumologic-reporter + // - @wdio/cli, @wdio/config, @wdio/utils + // Level of logging verbosity: trace | debug | info | warn | error | silent + // logLevels: { + // webdriver: 'info', + // '@wdio/applitools-service': 'info' + // }, + // + // If you only want to run your tests until a specific amount of tests have failed use + // bail (default is 0 - don't bail, run all tests). + bail: 0, + // + // Set a base URL in order to shorten url command calls. If your `url` parameter starts + // with `/`, the base url gets prepended, not including the path portion of your baseUrl. + // If your `url` parameter starts without a scheme or `/` (like `some/path`), the base url + // gets prepended directly. + baseUrl: 'http://localhost', + // + // Default timeout for all waitFor* commands. + waitforTimeout: 10000, + // + // Default timeout in milliseconds for request + // if browser driver or grid doesn't send response + connectionRetryTimeout: 120000, + // + // Default request retries count + connectionRetryCount: 3, + // + // Test runner services + // Services take over a specific job you don't want to take care of. They enhance + // your test setup with almost no effort. Unlike plugins, they don't add new + // commands. Instead, they hook themselves up into the test process. + services: ['chromedriver'], + + // Framework you want to run your specs with. + // The following are supported: Mocha, Jasmine, and Cucumber + // see also: https://webdriver.io/docs/frameworks + // + // Make sure you have the wdio adapter package for the specific framework installed + // before running any tests. + framework: 'mocha', + // + // The number of times to retry the entire specfile when it fails as a whole + // specFileRetries: 1, + // + // Delay in seconds between the spec file retry attempts + // specFileRetriesDelay: 0, + // + // Whether or not retried specfiles should be retried immediately or deferred to the end of the queue + // specFileRetriesDeferred: false, + // + // Test reporter for stdout. + // The only one supported by default is 'dot' + // see also: https://webdriver.io/docs/dot-reporter + reporters: ['spec'], + + + + // + // Options to be passed to Mocha. + // See the full list at http://mochajs.org/ + mochaOpts: { + ui: 'bdd', + timeout: 60000 + }, + // + // ===== + // Hooks + // ===== + // WebdriverIO provides several hooks you can use to interfere with the test process in order to enhance + // it and to build services around it. You can either apply a single function or an array of + // methods to it. If one of them returns with a promise, WebdriverIO will wait until that promise got + // resolved to continue. + /** + * Gets executed once before all workers get launched. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + */ + // onPrepare: function (config, capabilities) { + // }, + /** + * Gets executed before a worker process is spawned and can be used to initialise specific service + * for that worker as well as modify runtime environments in an async fashion. + * @param {String} cid capability id (e.g 0-0) + * @param {[type]} caps object containing capabilities for session that will be spawn in the worker + * @param {[type]} specs specs to be run in the worker process + * @param {[type]} args object that will be merged with the main configuration once worker is initialised + * @param {[type]} execArgv list of string arguments passed to the worker process + */ + // onWorkerStart: function (cid, caps, specs, args, execArgv) { + // }, + /** + * Gets executed just before initialising the webdriver session and test framework. It allows you + * to manipulate configurations depending on the capability or spec. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + */ + // beforeSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed before test execution begins. At this point you can access to all global + * variables like `browser`. It is the perfect place to define custom commands. + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + * @param {Object} browser instance of created browser/device session + */ + // before: function (capabilities, specs) { + // }, + /** + * Runs before a WebdriverIO command gets executed. + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + */ + // beforeCommand: function (commandName, args) { + // }, + /** + * Hook that gets executed before the suite starts + * @param {Object} suite suite details + */ + // beforeSuite: function (suite) { + // }, + /** + * Function to be executed before a test (in Mocha/Jasmine) starts. + */ + // beforeTest: function (test, context) { + // }, + /** + * Hook that gets executed _before_ a hook within the suite starts (e.g. runs before calling + * beforeEach in Mocha) + */ + // beforeHook: function (test, context) { + // }, + /** + * Hook that gets executed _after_ a hook within the suite starts (e.g. runs after calling + * afterEach in Mocha) + */ + // afterHook: function (test, context, { error, result, duration, passed, retries }) { + // }, + /** + * Function to be executed after a test (in Mocha/Jasmine). + */ + // afterTest: function(test, context, { error, result, duration, passed, retries }) { + // }, + + + /** + * Hook that gets executed after the suite has ended + * @param {Object} suite suite details + */ + // afterSuite: function (suite) { + // }, + /** + * Runs after a WebdriverIO command gets executed + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + * @param {Number} result 0 - command success, 1 - command error + * @param {Object} error error object if any + */ + // afterCommand: function (commandName, args, result, error) { + // }, + /** + * Gets executed after all tests are done. You still have access to all global variables from + * the test. + * @param {Number} result 0 - test pass, 1 - test fail + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // after: function (result, capabilities, specs) { + // }, + /** + * Gets executed right after terminating the webdriver session. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // afterSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed after all workers got shut down and the process is about to exit. An error + * thrown in the onComplete hook will result in the test run failing. + * @param {Object} exitCode 0 - success, 1 - fail + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {} results object containing test results + */ + // onComplete: function(exitCode, config, capabilities, results) { + // }, + /** + * Gets executed when a refresh happens. + * @param {String} oldSessionId session ID of the old session + * @param {String} newSessionId session ID of the new session + */ + //onReload: function(oldSessionId, newSessionId) { + //} +} \ No newline at end of file diff --git a/demo/index.html b/demo/index.html index 706d569..f6cb2ee 100644 --- a/demo/index.html +++ b/demo/index.html @@ -26,7 +26,7 @@
This is not a secret:

- 123 + PUBLIC_CONTENT_NOT_ONLY_ACCESSIBLE_TO_LAVADOME

diff --git a/demo/react/index.js b/demo/react/index.js index 6e13a58..5862565 100644 --- a/demo/react/index.js +++ b/demo/react/index.js @@ -1,7 +1,7 @@ import {LavaDome as LavaDomeReact} from '../../packages/react/index.mjs'; top.start = (function(){ - const secret = 456; + const secret = 'SECRET_CONTENT_ONLY_ACCESSIBLE_TO_LAVADOME'; return function start(root) { root.innerHTML = ''; diff --git a/demo/vanilla/index.js b/demo/vanilla/index.js index edb7e15..a7a4645 100644 --- a/demo/vanilla/index.js +++ b/demo/vanilla/index.js @@ -1,7 +1,7 @@ import {LavaDome as LavaDomeVanilla} from '../../packages/vanilla/index.mjs'; top.start = (function(){ - const secret = 456; + const secret = 'SECRET_CONTENT_ONLY_ACCESSIBLE_TO_LAVADOME'; return function start(root) { root.innerHTML = ''; diff --git a/firefox.wdio.conf.js b/firefox.wdio.conf.js new file mode 100644 index 0000000..9763da0 --- /dev/null +++ b/firefox.wdio.conf.js @@ -0,0 +1,287 @@ +exports.config = { + // + // ==================== + // Runner Configuration + // ==================== + // + // WebdriverIO allows it to run your tests in arbitrary locations (e.g. locally or + // on a remote machine). + runner: 'local', + // + // ================== + // Specify Test Files + // ================== + // Define which test specs should run. The pattern is relative to the directory + // from which `wdio` was called. + // + // The specs are defined as an array of spec files (optionally using wildcards + // that will be expanded). The test for each spec file will be run in a separate + // worker process. In order to have a group of spec files run in the same worker + // process simply enclose them in an array within the specs array. + // + // If you are calling `wdio` from an NPM script (see https://docs.npmjs.com/cli/run-script), + // then the current working directory is where your `package.json` resides, so `wdio` + // will be called from there. + // + specs: [ + `./test/${process.argv[4] || '*'}.mjs` + ], + // Patterns to exclude. + exclude: [ + './test/index.mjs' + ], + // + // ============ + // Capabilities + // ============ + // Define your capabilities here. WebdriverIO can run multiple capabilities at the same + // time. Depending on the number of capabilities, WebdriverIO launches several test + // sessions. Within your capabilities you can overwrite the spec and exclude options in + // order to group specific specs to a specific capability. + // + // First, you can define how many instances should be started at the same time. Let's + // say you have 3 different capabilities (Chrome, Firefox, and Safari) and you have + // set maxInstances to 1; wdio will spawn 3 processes. Therefore, if you have 10 spec + // files and you set maxInstances to 10, all spec files will get tested at the same time + // and 30 processes will get spawned. The property handles how many capabilities + // from the same test should run tests. + // + maxInstances: 10, + // + // If you have trouble getting all important capabilities together, check out the + // Sauce Labs platform configurator - a great tool to configure your capabilities: + // https://docs.saucelabs.com/reference/platforms-configurator + // + capabilities: [{ + + // maxInstances can get overwritten per capability. So if you have an in-house Selenium + // grid with only 5 firefox instances available you can make sure that not more than + // 5 instances get started at a time. + maxInstances: 5, + // + browserName: 'firefox', + 'moz:firefoxOptions': { + args: [ + '--headless', + 'disable-gpu' + ], + }, + acceptInsecureCerts: true + // If outputDir is provided WebdriverIO can capture driver session logs + // it is possible to configure which logTypes to include/exclude. + // excludeDriverLogs: ['*'], // pass '*' to exclude all driver session logs + // excludeDriverLogs: ['bugreport', 'server'], + }], + // + // =================== + // Test Configurations + // =================== + // Define all options that are relevant for the WebdriverIO instance here + // + // Level of logging verbosity: trace | debug | info | warn | error | silent + logLevel: 'warn', + // + // Set specific log levels per logger + // loggers: + // - webdriver, webdriverio + // - @wdio/applitools-service, @wdio/browserstack-service, @wdio/devtools-service, @wdio/sauce-service + // - @wdio/mocha-framework, @wdio/jasmine-framework + // - @wdio/local-runner + // - @wdio/sumologic-reporter + // - @wdio/cli, @wdio/config, @wdio/utils + // Level of logging verbosity: trace | debug | info | warn | error | silent + // logLevels: { + // webdriver: 'info', + // '@wdio/applitools-service': 'info' + // }, + // + // If you only want to run your tests until a specific amount of tests have failed use + // bail (default is 0 - don't bail, run all tests). + bail: 0, + // + // Set a base URL in order to shorten url command calls. If your `url` parameter starts + // with `/`, the base url gets prepended, not including the path portion of your baseUrl. + // If your `url` parameter starts without a scheme or `/` (like `some/path`), the base url + // gets prepended directly. + baseUrl: 'http://localhost', + // + // Default timeout for all waitFor* commands. + waitforTimeout: 10000, + // + // Default timeout in milliseconds for request + // if browser driver or grid doesn't send response + connectionRetryTimeout: 120000, + // + // Default request retries count + connectionRetryCount: 3, + // + // Test runner services + // Services take over a specific job you don't want to take care of. They enhance + // your test setup with almost no effort. Unlike plugins, they don't add new + // commands. Instead, they hook themselves up into the test process. + services: [ + ['geckodriver'] + ], + + // Framework you want to run your specs with. + // The following are supported: Mocha, Jasmine, and Cucumber + // see also: https://webdriver.io/docs/frameworks + // + // Make sure you have the wdio adapter package for the specific framework installed + // before running any tests. + framework: 'mocha', + // + // The number of times to retry the entire specfile when it fails as a whole + // specFileRetries: 1, + // + // Delay in seconds between the spec file retry attempts + // specFileRetriesDelay: 0, + // + // Whether or not retried specfiles should be retried immediately or deferred to the end of the queue + // specFileRetriesDeferred: false, + // + // Test reporter for stdout. + // The only one supported by default is 'dot' + // see also: https://webdriver.io/docs/dot-reporter + reporters: ['spec'], + + + + // + // Options to be passed to Mocha. + // See the full list at http://mochajs.org/ + mochaOpts: { + ui: 'bdd', + timeout: 60000 + }, + // + // ===== + // Hooks + // ===== + // WebdriverIO provides several hooks you can use to interfere with the test process in order to enhance + // it and to build services around it. You can either apply a single function or an array of + // methods to it. If one of them returns with a promise, WebdriverIO will wait until that promise got + // resolved to continue. + /** + * Gets executed once before all workers get launched. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + */ + // onPrepare: function (config, capabilities) { + // }, + /** + * Gets executed before a worker process is spawned and can be used to initialise specific service + * for that worker as well as modify runtime environments in an async fashion. + * @param {String} cid capability id (e.g 0-0) + * @param {[type]} caps object containing capabilities for session that will be spawn in the worker + * @param {[type]} specs specs to be run in the worker process + * @param {[type]} args object that will be merged with the main configuration once worker is initialised + * @param {[type]} execArgv list of string arguments passed to the worker process + */ + // onWorkerStart: function (cid, caps, specs, args, execArgv) { + // }, + /** + * Gets executed just before initialising the webdriver session and test framework. It allows you + * to manipulate configurations depending on the capability or spec. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + */ + // beforeSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed before test execution begins. At this point you can access to all global + * variables like `browser`. It is the perfect place to define custom commands. + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + * @param {Object} browser instance of created browser/device session + */ + // before: function (capabilities, specs) { + // }, + /** + * Runs before a WebdriverIO command gets executed. + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + */ + // beforeCommand: function (commandName, args) { + // }, + /** + * Hook that gets executed before the suite starts + * @param {Object} suite suite details + */ + // beforeSuite: function (suite) { + // }, + /** + * Function to be executed before a test (in Mocha/Jasmine) starts. + */ + // beforeTest: function (test, context) { + // }, + /** + * Hook that gets executed _before_ a hook within the suite starts (e.g. runs before calling + * beforeEach in Mocha) + */ + // beforeHook: function (test, context) { + // }, + /** + * Hook that gets executed _after_ a hook within the suite starts (e.g. runs after calling + * afterEach in Mocha) + */ + // afterHook: function (test, context, { error, result, duration, passed, retries }) { + // }, + /** + * Function to be executed after a test (in Mocha/Jasmine). + */ + // afterTest: function(test, context, { error, result, duration, passed, retries }) { + // }, + + + /** + * Hook that gets executed after the suite has ended + * @param {Object} suite suite details + */ + // afterSuite: function (suite) { + // }, + /** + * Runs after a WebdriverIO command gets executed + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + * @param {Number} result 0 - command success, 1 - command error + * @param {Object} error error object if any + */ + // afterCommand: function (commandName, args, result, error) { + // }, + /** + * Gets executed after all tests are done. You still have access to all global variables from + * the test. + * @param {Number} result 0 - test pass, 1 - test fail + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // after: function (result, capabilities, specs) { + // }, + /** + * Gets executed right after terminating the webdriver session. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // afterSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed after all workers got shut down and the process is about to exit. An error + * thrown in the onComplete hook will result in the test run failing. + * @param {Object} exitCode 0 - success, 1 - fail + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {} results object containing test results + */ + // onComplete: function(exitCode, config, capabilities, results) { + // }, + /** + * Gets executed when a refresh happens. + * @param {String} oldSessionId session ID of the old session + * @param {String} newSessionId session ID of the new session + */ + //onReload: function(oldSessionId, newSessionId) { + //} +} \ No newline at end of file diff --git a/package.json b/package.json index 11a44df..4f99bda 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,23 @@ "version": "0.0.0", "description": "Secure DOM trees isolation and encapsulation leveraging ShadowDOM", "main": "packages/index.mjs", + "devDependencies": { + "@wdio/cli": "^7.5.3", + "@wdio/local-runner": "^7.5.5", + "@wdio/mocha-framework": "^7.5.3", + "@wdio/spec-reporter": "^7.5.3", + "chromedriver": "^119.0.1", + "geckodriver": "^3.2.0", + "wdio-chromedriver-service": "7.0.0", + "wdio-safaridriver-service": "^2.0.0", + "wdio-geckodriver-service": "^4.0.0" + }, "scripts": { "demo": "serve . -l 3000", - "test": "echo \"Error: no test specified\" && exit 1" + "test": "yarn demo & (yarn test-chrome && yarn test-firefox && yarn test-safari && exit)", + "test-chrome": "./node_modules/.bin/wdio run chrome.wdio.conf.js", + "test-safari": "./node_modules/.bin/wdio run safari.wdio.conf.js", + "test-firefox": "./node_modules/.bin/wdio run firefox.wdio.conf.js" }, "repository": { "type": "git", diff --git a/safari.wdio.conf.js b/safari.wdio.conf.js new file mode 100644 index 0000000..e154db6 --- /dev/null +++ b/safari.wdio.conf.js @@ -0,0 +1,284 @@ +exports.config = { + // + // ==================== + // Runner Configuration + // ==================== + // + // WebdriverIO allows it to run your tests in arbitrary locations (e.g. locally or + // on a remote machine). + runner: 'local', + // + // ================== + // Specify Test Files + // ================== + // Define which test specs should run. The pattern is relative to the directory + // from which `wdio` was called. + // + // The specs are defined as an array of spec files (optionally using wildcards + // that will be expanded). The test for each spec file will be run in a separate + // worker process. In order to have a group of spec files run in the same worker + // process simply enclose them in an array within the specs array. + // + // If you are calling `wdio` from an NPM script (see https://docs.npmjs.com/cli/run-script), + // then the current working directory is where your `package.json` resides, so `wdio` + // will be called from there. + // + specs: [ + `./test/${process.argv[4] || '*'}.mjs` + ], + // Patterns to exclude. + exclude: [ + './test/index.mjs', + ], + // + // ============ + // Capabilities + // ============ + // Define your capabilities here. WebdriverIO can run multiple capabilities at the same + // time. Depending on the number of capabilities, WebdriverIO launches several test + // sessions. Within your capabilities you can overwrite the spec and exclude options in + // order to group specific specs to a specific capability. + // + // First, you can define how many instances should be started at the same time. Let's + // say you have 3 different capabilities (Chrome, Firefox, and Safari) and you have + // set maxInstances to 1; wdio will spawn 3 processes. Therefore, if you have 10 spec + // files and you set maxInstances to 10, all spec files will get tested at the same time + // and 30 processes will get spawned. The property handles how many capabilities + // from the same test should run tests. + // + maxInstances: 1, + // + // If you have trouble getting all important capabilities together, check out the + // Sauce Labs platform configurator - a great tool to configure your capabilities: + // https://docs.saucelabs.com/reference/platforms-configurator + // + capabilities: [{ + + // maxInstances can get overwritten per capability. So if you have an in-house Selenium + // grid with only 5 firefox instances available you can make sure that not more than + // 5 instances get started at a time. + maxInstances: 5, + // + browserName: 'safari', + acceptInsecureCerts: true + // If outputDir is provided WebdriverIO can capture driver session logs + // it is possible to configure which logTypes to include/exclude. + // excludeDriverLogs: ['*'], // pass '*' to exclude all driver session logs + // excludeDriverLogs: ['bugreport', 'server'], + }], + // + // =================== + // Test Configurations + // =================== + // Define all options that are relevant for the WebdriverIO instance here + // + // Level of logging verbosity: trace | debug | info | warn | error | silent + logLevel: 'warn', + // + // Set specific log levels per logger + // loggers: + // - webdriver, webdriverio + // - @wdio/applitools-service, @wdio/browserstack-service, @wdio/devtools-service, @wdio/sauce-service + // - @wdio/mocha-framework, @wdio/jasmine-framework + // - @wdio/local-runner + // - @wdio/sumologic-reporter + // - @wdio/cli, @wdio/config, @wdio/utils + // Level of logging verbosity: trace | debug | info | warn | error | silent + // logLevels: { + // webdriver: 'info', + // '@wdio/applitools-service': 'info' + // }, + // + // If you only want to run your tests until a specific amount of tests have failed use + // bail (default is 0 - don't bail, run all tests). + bail: 0, + // + // Set a base URL in order to shorten url command calls. If your `url` parameter starts + // with `/`, the base url gets prepended, not including the path portion of your baseUrl. + // If your `url` parameter starts without a scheme or `/` (like `some/path`), the base url + // gets prepended directly. + baseUrl: 'http://localhost', + // + // Default timeout for all waitFor* commands. + waitforTimeout: 10000, + // + // Default timeout in milliseconds for request + // if browser driver or grid doesn't send response + connectionRetryTimeout: 120000, + // + // Default request retries count + connectionRetryCount: 3, + // + // Test runner services + // Services take over a specific job you don't want to take care of. They enhance + // your test setup with almost no effort. Unlike plugins, they don't add new + // commands. Instead, they hook themselves up into the test process. + services: [ + ['safaridriver', { + outputDir: './logs', + logFileName: 'wdio-safaridriver.log' + }] + ], + + // Framework you want to run your specs with. + // The following are supported: Mocha, Jasmine, and Cucumber + // see also: https://webdriver.io/docs/frameworks + // + // Make sure you have the wdio adapter package for the specific framework installed + // before running any tests. + framework: 'mocha', + // + // The number of times to retry the entire specfile when it fails as a whole + // specFileRetries: 1, + // + // Delay in seconds between the spec file retry attempts + // specFileRetriesDelay: 0, + // + // Whether or not retried specfiles should be retried immediately or deferred to the end of the queue + // specFileRetriesDeferred: false, + // + // Test reporter for stdout. + // The only one supported by default is 'dot' + // see also: https://webdriver.io/docs/dot-reporter + reporters: ['spec'], + + + + // + // Options to be passed to Mocha. + // See the full list at http://mochajs.org/ + mochaOpts: { + ui: 'bdd', + timeout: 60000 + }, + // + // ===== + // Hooks + // ===== + // WebdriverIO provides several hooks you can use to interfere with the test process in order to enhance + // it and to build services around it. You can either apply a single function or an array of + // methods to it. If one of them returns with a promise, WebdriverIO will wait until that promise got + // resolved to continue. + /** + * Gets executed once before all workers get launched. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + */ + // onPrepare: function (config, capabilities) { + // }, + /** + * Gets executed before a worker process is spawned and can be used to initialise specific service + * for that worker as well as modify runtime environments in an async fashion. + * @param {String} cid capability id (e.g 0-0) + * @param {[type]} caps object containing capabilities for session that will be spawn in the worker + * @param {[type]} specs specs to be run in the worker process + * @param {[type]} args object that will be merged with the main configuration once worker is initialised + * @param {[type]} execArgv list of string arguments passed to the worker process + */ + // onWorkerStart: function (cid, caps, specs, args, execArgv) { + // }, + /** + * Gets executed just before initialising the webdriver session and test framework. It allows you + * to manipulate configurations depending on the capability or spec. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + */ + // beforeSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed before test execution begins. At this point you can access to all global + * variables like `browser`. It is the perfect place to define custom commands. + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that are to be run + * @param {Object} browser instance of created browser/device session + */ + // before: function (capabilities, specs) { + // }, + /** + * Runs before a WebdriverIO command gets executed. + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + */ + // beforeCommand: function (commandName, args) { + // }, + /** + * Hook that gets executed before the suite starts + * @param {Object} suite suite details + */ + // beforeSuite: function (suite) { + // }, + /** + * Function to be executed before a test (in Mocha/Jasmine) starts. + */ + // beforeTest: function (test, context) { + // }, + /** + * Hook that gets executed _before_ a hook within the suite starts (e.g. runs before calling + * beforeEach in Mocha) + */ + // beforeHook: function (test, context) { + // }, + /** + * Hook that gets executed _after_ a hook within the suite starts (e.g. runs after calling + * afterEach in Mocha) + */ + // afterHook: function (test, context, { error, result, duration, passed, retries }) { + // }, + /** + * Function to be executed after a test (in Mocha/Jasmine). + */ + // afterTest: function(test, context, { error, result, duration, passed, retries }) { + // }, + + + /** + * Hook that gets executed after the suite has ended + * @param {Object} suite suite details + */ + // afterSuite: function (suite) { + // }, + /** + * Runs after a WebdriverIO command gets executed + * @param {String} commandName hook command name + * @param {Array} args arguments that command would receive + * @param {Number} result 0 - command success, 1 - command error + * @param {Object} error error object if any + */ + // afterCommand: function (commandName, args, result, error) { + // }, + /** + * Gets executed after all tests are done. You still have access to all global variables from + * the test. + * @param {Number} result 0 - test pass, 1 - test fail + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // after: function (result, capabilities, specs) { + // }, + /** + * Gets executed right after terminating the webdriver session. + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {Array.} specs List of spec file paths that ran + */ + // afterSession: function (config, capabilities, specs) { + // }, + /** + * Gets executed after all workers got shut down and the process is about to exit. An error + * thrown in the onComplete hook will result in the test run failing. + * @param {Object} exitCode 0 - success, 1 - fail + * @param {Object} config wdio configuration object + * @param {Array.} capabilities list of capabilities details + * @param {} results object containing test results + */ + // onComplete: function(exitCode, config, capabilities, results) { + // }, + /** + * Gets executed when a refresh happens. + * @param {String} oldSessionId session ID of the old session + * @param {String} newSessionId session ID of the new session + */ + //onReload: function(oldSessionId, newSessionId) { + //} +} \ No newline at end of file diff --git a/test/index.mjs b/test/index.mjs new file mode 100644 index 0000000..060e74a --- /dev/null +++ b/test/index.mjs @@ -0,0 +1,11 @@ +const base = 'http://localhost:3000/demo/'; + +async function setup(mode) { + const url = base + '?' + mode; + await browser.url(url); + await browser.execute(function() { + // something + }); +} + +export {setup} \ No newline at end of file diff --git a/test/vanilla.mjs b/test/vanilla.mjs new file mode 100644 index 0000000..1bafb5a --- /dev/null +++ b/test/vanilla.mjs @@ -0,0 +1,13 @@ +import {setup} from "./index.mjs" + +describe('test vanilla mode', async function () { + before(setup.bind(null, 'vanilla')); + + it('naively try to steal the secret using innerText', async function () { + const result = await browser.executeAsync(function(done) { + done(document.documentElement.innerText) + }); + expect(result.includes('PUBLIC_CONTENT_NOT_ONLY_ACCESSIBLE_TO_LAVADOME')).toBeTruthy(); + expect(result.includes('SECRET_CONTENT_ONLY_ACCESSIBLE_TO_LAVADOME')).toBeFalsy(); + }); +}); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..759bfb1 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3040 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.12.13": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@jest/expect-utils@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== + dependencies: + jest-get-type "^28.0.2" + +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + dependencies: + "@jest/schemas" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@sinclair/typebox@^0.24.1": + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@testim/chrome-version@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@testim/chrome-version/-/chrome-version-1.1.4.tgz#86e04e677cd6c05fa230dd15ac223fa72d1d7090" + integrity sha512-kIhULpw9TrGYnHp/8VfdcneIcxKnLixmADtukQRtJUmsVlMg0niMkwV0xZmi8hqa57xqilIHjWFA0GKvEjVU5g== + +"@types/aria-query@^5.0.0": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/diff@^5.0.0": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@types/diff/-/diff-5.0.9.tgz#31977962175079c2048315febeb8fd5f520192c6" + integrity sha512-RWVEhh/zGXpAVF/ZChwNnv7r4rvqzJ7lYNSmZSVTxjV0PBLf6Qu7RNg+SUtkpzxmiNkjCx0Xn2tPp7FIkshJwQ== + +"@types/easy-table@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/easy-table/-/easy-table-1.2.0.tgz#d7153551a2c3f6571dddff974b05aa2fb1a4a948" + integrity sha512-gVQkR2G/q6UK3wQT+waY9tCrbFauzMoBfJpMxHSuemHLQ8HpHdUIQ9YyRwYMfNX4CfoAoj/eJATyECGkFr65Pg== + dependencies: + easy-table "*" + +"@types/ejs@^3.0.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.5.tgz#49d738257cc73bafe45c13cb8ff240683b4d5117" + integrity sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg== + +"@types/fs-extra@^11.0.1": + version "11.0.4" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-11.0.4.tgz#e16a863bb8843fba8c5004362b5a73e17becca45" + integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== + dependencies: + "@types/jsonfile" "*" + "@types/node" "*" + +"@types/glob@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== + dependencies: + "@types/minimatch" "^5.1.2" + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/inquirer@^8.1.2": + version "8.2.10" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.2.10.tgz#9444dce2d764c35bc5bb4d742598aaa4acb6561b" + integrity sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA== + dependencies: + "@types/through" "*" + rxjs "^7.2.0" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jsonfile@*": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@types/jsonfile/-/jsonfile-6.1.4.tgz#614afec1a1164e7d670b4a7ad64df3e7beb7b702" + integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== + dependencies: + "@types/node" "*" + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/lodash.flattendeep@^4.4.6": + version "4.4.9" + resolved "https://registry.yarnpkg.com/@types/lodash.flattendeep/-/lodash.flattendeep-4.4.9.tgz#14f1b12a882a3d49f8d2958f25ab43c7d091b814" + integrity sha512-Oacs/ZMuMvVWkhMqvj+Spad457Beln5pnkauif+6s65fE2cSL7J7NoMfwkxjuQsOsr4DUCDH/iDbmuZo81Nypw== + dependencies: + "@types/lodash" "*" + +"@types/lodash.pickby@^4.6.6": + version "4.6.9" + resolved "https://registry.yarnpkg.com/@types/lodash.pickby/-/lodash.pickby-4.6.9.tgz#b6d72b1adf8601aa76736f298adcbaa8f734b831" + integrity sha512-SPI248FYnyd3jOxDeJq2vX2UKQnDzqacuqdeOVqwE1MPSk8gN8TA3FcHSMQWLlpBnuHgXvgKInvywbOFbidpJA== + dependencies: + "@types/lodash" "*" + +"@types/lodash.union@^4.6.6": + version "4.6.9" + resolved "https://registry.yarnpkg.com/@types/lodash.union/-/lodash.union-4.6.9.tgz#953e63e3c97ecb7a704a4589e7584645e9315f0f" + integrity sha512-l/GEj9Xp2DptsfFYZ1JUczg6W/6JGbbDi0mVK8urg8XLUMguNJ2L1ya0QJzMctrtlP9+t5lfyL4QLF6P9/6ssQ== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.202" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" + integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== + +"@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/mocha@^10.0.0": + version "10.0.6" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" + integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== + +"@types/node@*": + version "20.10.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.5.tgz#47ad460b514096b7ed63a1dae26fad0914ed3ab2" + integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw== + dependencies: + undici-types "~5.26.4" + +"@types/node@^18.0.0": + version "18.19.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.3.tgz#e4723c4cb385641d61b983f6fe0b716abd5f8fc0" + integrity sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg== + dependencies: + undici-types "~5.26.4" + +"@types/object-inspect@^1.8.0": + version "1.8.4" + resolved "https://registry.yarnpkg.com/@types/object-inspect/-/object-inspect-1.8.4.tgz#470c8203ed227fe883004f89427e5317d9aa3564" + integrity sha512-2yh72JxmDney1h7LQvkyO8p8FOmNMQXGs8HjuXS3SXvE/dLydLLjBqKCdHqcTUo66CQVHfn7yFR680bvi9jlVw== + +"@types/recursive-readdir@^2.2.0": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@types/recursive-readdir/-/recursive-readdir-2.2.4.tgz#815786465159dc8250b9b6a2985fd93be0452e73" + integrity sha512-84REEGT3lcgopvpkmGApzmU5UEG0valme5rQS/KGiguTkJ70/Au8UYZTyrzoZnY9svuX9351+1uvrRPzWDD/uw== + dependencies: + "@types/node" "*" + +"@types/responselike@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== + dependencies: + "@types/node" "*" + +"@types/split2@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@types/split2/-/split2-4.2.3.tgz#ddd9b6b8518df6e0a7825851fcd98de12e415f0b" + integrity sha512-59OXIlfUsi2k++H6CHgUQKEb2HKRokUA39HY1i1dS8/AIcqVjtAAFdf8u+HxTWK/4FUHMJQlKSZ4I6irCBJ1Zw== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/stream-buffers@^3.0.3": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/stream-buffers/-/stream-buffers-3.0.7.tgz#0b719fa1bd2ca2cc0908205a440e5e569e1aa21e" + integrity sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw== + dependencies: + "@types/node" "*" + +"@types/supports-color@^8.1.0": + version "8.1.3" + resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.3.tgz#b769cdce1d1bb1a3fa794e35b62c62acdf93c139" + integrity sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg== + +"@types/tcp-port-used@^1.0.1": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@types/tcp-port-used/-/tcp-port-used-1.0.4.tgz#035a37b104d161e547cefc6bfec784133ac63716" + integrity sha512-0vQ4fz9TTM4bCdllYWEJ2JHBUXR9xqPtc70dJ7BMRDVfvZyYdrgey3nP5RRcVj+qAgnHJM8r9fvgrfnPMxdnhA== + +"@types/through@*": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.33.tgz#14ebf599320e1c7851e7d598149af183c6b9ea56" + integrity sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ== + dependencies: + "@types/node" "*" + +"@types/tmp@^0.2.0": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217" + integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA== + +"@types/ua-parser-js@^0.7.33": + version "0.7.39" + resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.39.tgz#832c58e460c9435e4e34bb866e85e9146e12cdbb" + integrity sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg== + +"@types/which@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/which/-/which-1.3.2.tgz#9c246fc0c93ded311c8512df2891fb41f6227fdf" + integrity sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA== + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.10.3" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" + integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== + dependencies: + "@types/node" "*" + +"@wdio/cli@^7.5.3": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/cli/-/cli-7.33.0.tgz#517fe40ce2b61dbcaf544fc0ec06cb1c880b365d" + integrity sha512-S5Iy4AVcbcJDMhAP4k/Yf18mKma9NGFM8A5bafcGRpFlIj97rpnb0/cpmJVVEr4v/wr3XCu0k38ooJw0B/D3nw== + dependencies: + "@types/ejs" "^3.0.5" + "@types/fs-extra" "^11.0.1" + "@types/inquirer" "^8.1.2" + "@types/lodash.flattendeep" "^4.4.6" + "@types/lodash.pickby" "^4.6.6" + "@types/lodash.union" "^4.6.6" + "@types/node" "^18.0.0" + "@types/recursive-readdir" "^2.2.0" + "@wdio/config" "7.33.0" + "@wdio/logger" "7.26.0" + "@wdio/protocols" "7.27.0" + "@wdio/types" "7.33.0" + "@wdio/utils" "7.33.0" + async-exit-hook "^2.0.1" + chalk "^4.0.0" + chokidar "^3.0.0" + cli-spinners "^2.1.0" + ejs "^3.0.1" + fs-extra "^11.1.1" + inquirer "8.2.4" + lodash.flattendeep "^4.4.0" + lodash.pickby "^4.6.0" + lodash.union "^4.6.0" + mkdirp "^3.0.0" + recursive-readdir "^2.2.2" + webdriverio "7.33.0" + yargs "^17.0.0" + yarn-install "^1.0.0" + +"@wdio/config@7.33.0": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/config/-/config-7.33.0.tgz#ec5e247320f3758829464f4b5f1b5eec9576a978" + integrity sha512-SaCZNKrDtBghf7ujyaxTiU4pBW+1Kms32shSoXpJ/wFop6/MiA7nb19qpUPoJtEDw5/NOKevUKz8nBMBXphiew== + dependencies: + "@types/glob" "^8.1.0" + "@wdio/logger" "7.26.0" + "@wdio/types" "7.33.0" + "@wdio/utils" "7.33.0" + deepmerge "^4.0.0" + glob "^8.0.3" + +"@wdio/local-runner@^7.5.5": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/local-runner/-/local-runner-7.33.0.tgz#ece4869dbf22e04e76ff6a1adfef4079d614979d" + integrity sha512-oZLLyOizlX2mV3FIxRLWgN0J2sDL+6LhC71CwFxcV8iVjXvp16my9jbKrgtkIgdo1BsaWIqq+tZlCr9e9NUUjA== + dependencies: + "@types/stream-buffers" "^3.0.3" + "@wdio/logger" "7.26.0" + "@wdio/repl" "7.33.0" + "@wdio/runner" "7.33.0" + "@wdio/types" "7.33.0" + async-exit-hook "^2.0.1" + split2 "^4.0.0" + stream-buffers "^3.0.2" + +"@wdio/logger@7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-7.26.0.tgz#2c105a00f63a81d52de969fef5a54a9035146b2d" + integrity sha512-kQj9s5JudAG9qB+zAAcYGPHVfATl2oqKgqj47yjehOQ1zzG33xmtL1ArFbQKWhDG32y1A8sN6b0pIqBEIwgg8Q== + dependencies: + chalk "^4.0.0" + loglevel "^1.6.0" + loglevel-plugin-prefix "^0.8.4" + strip-ansi "^6.0.0" + +"@wdio/logger@^8.11.0", "@wdio/logger@^8.6.6": + version "8.24.12" + resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-8.24.12.tgz#03cb8bb7ce7ee443e1dcd200a3b44270ae16a1f9" + integrity sha512-QisOiVIWKTUCf1H7S+DOtC+gruhlpimQrUXfWMTeeh672PvAJYnTpOJDWA+BtXfsikkUYFAzAaq8SeMJk8rqKg== + dependencies: + chalk "^5.1.2" + loglevel "^1.6.0" + loglevel-plugin-prefix "^0.8.4" + strip-ansi "^7.1.0" + +"@wdio/mocha-framework@^7.5.3": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/mocha-framework/-/mocha-framework-7.33.0.tgz#1392a2bbbcd756dd43f0da9db50d71088abeb8e0" + integrity sha512-y6+iBF+QrqeiXC+mNwW/o0vRsB+qaRznxoh+ds6Xz9V0tui55cn4kl2gYkBu3oHX8h+9R52ykLyaY9wv+r2aeg== + dependencies: + "@types/mocha" "^10.0.0" + "@wdio/logger" "7.26.0" + "@wdio/types" "7.33.0" + "@wdio/utils" "7.33.0" + expect-webdriverio "^3.0.0" + mocha "^10.0.0" + +"@wdio/protocols@7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@wdio/protocols/-/protocols-7.27.0.tgz#8e2663ec877dce7a5f76b021209c18dd0132e853" + integrity sha512-hT/U22R5i3HhwPjkaKAG0yd59eaOaZB0eibRj2+esCImkb5Y6rg8FirrlYRxIGFVBl0+xZV0jKHzR5+o097nvg== + +"@wdio/repl@7.33.0": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/repl/-/repl-7.33.0.tgz#5e61691c6fb3d524c5ee72e3e982a7c07b45b836" + integrity sha512-17KM9NCg+UVpZNbS8koT/917vklF5M8IQnw0kGwmJEo444ifTMxmLwQymbS2ovQKAKAQxlfdM7bpqMeI15kzsQ== + dependencies: + "@wdio/utils" "7.33.0" + +"@wdio/reporter@7.33.0": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/reporter/-/reporter-7.33.0.tgz#1306a720e8025f7c97bccdb810f8b4077a35943c" + integrity sha512-iL3SwP+hVmu1qj54YPwRCK+ZpVN75xpltYihjpuZCWZKJ0qpQuE2oBlNauFQWgrrd74ta20EDV4mSIhXm9lX6g== + dependencies: + "@types/diff" "^5.0.0" + "@types/node" "^18.0.0" + "@types/object-inspect" "^1.8.0" + "@types/supports-color" "^8.1.0" + "@types/tmp" "^0.2.0" + "@wdio/types" "7.33.0" + diff "^5.0.0" + fs-extra "^11.1.1" + object-inspect "^1.10.3" + supports-color "8.1.1" + +"@wdio/runner@7.33.0": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/runner/-/runner-7.33.0.tgz#8f5a7b9b136d18988aaf7a848639ea302b2f03bf" + integrity sha512-3B+29EanAdRFh4vT3E4XnHQga/apdLIDZq5pGEbqnDA5LarbIvsNWbJjeJzWM6XaZmEwrPfjOunjOevJt5yvdg== + dependencies: + "@wdio/config" "7.33.0" + "@wdio/logger" "7.26.0" + "@wdio/types" "7.33.0" + "@wdio/utils" "7.33.0" + deepmerge "^4.0.0" + gaze "^1.1.2" + webdriver "7.33.0" + webdriverio "7.33.0" + +"@wdio/spec-reporter@^7.5.3": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/spec-reporter/-/spec-reporter-7.33.0.tgz#d23e07027af761060eb6cc592e854976ce6cf15a" + integrity sha512-+BTJE6p82EaQMK+2t3lmXlpxF0Q72EJwUSEqY6RPyPUZL7fB+AZdHKQcxcmCR8bYyOUp68H45Yj4PuCKRS6hAg== + dependencies: + "@types/easy-table" "^1.2.0" + "@wdio/reporter" "7.33.0" + "@wdio/types" "7.33.0" + chalk "^4.0.0" + easy-table "^1.1.1" + pretty-ms "^7.0.0" + +"@wdio/types@7.33.0": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/types/-/types-7.33.0.tgz#96f684de629e260eacbfd4e925321a015d811d3c" + integrity sha512-tNcuN5Kl+i5CffaeTYV1omzAo4rVjiI1m9raIA8ph6iVteWdCzYv2/ImpGgFiBPb7Mf6VokU3+q9Slh5Jitaww== + dependencies: + "@types/node" "^18.0.0" + got "^11.8.1" + +"@wdio/utils@7.33.0": + version "7.33.0" + resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-7.33.0.tgz#c97fa8a011222b7b8c1d99914e02595cd89e06dc" + integrity sha512-4kQQ86EvEN6fBY5+u7M08cT6LfJtpk1rHd203xyxmbmV9lpNv/OCl4CsC+SD0jGT0aZZqYSIJ/Pil07pAh5K0g== + dependencies: + "@wdio/logger" "7.26.0" + "@wdio/types" "7.33.0" + p-iteration "^1.1.8" + +adm-zip@0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.9.tgz#b33691028333821c0cf95c31374c5462f2905a83" + integrity sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver-utils@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7" + integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== + dependencies: + glob "^7.2.3" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +archiver@^5.0.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" + integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.4" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.1.2" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.2.1: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async@^3.2.3, async@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +axios@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer@^5.2.1, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +cac@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/cac/-/cac-3.0.4.tgz#6d24ceec372efe5c9b798808bc7f49b47242a4ef" + integrity sha512-hq4rxE3NT5PlaEiVV39Z45d6MoFcQZG5dsgJqtAUeOz3408LEQAElToDkf9i5IYSCOmK0If/81dLg7nKxqPR0w== + dependencies: + camelcase-keys "^3.0.0" + chalk "^1.1.3" + indent-string "^3.0.0" + minimist "^1.2.0" + read-pkg-up "^1.0.1" + suffix "^0.1.0" + text-table "^0.2.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +camelcase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-3.0.0.tgz#fc0c6c360363f7377e3793b9a16bccf1070c1ca4" + integrity sha512-U4E6A6aFyYnNW+tDt5/yIUKQURKXe3WMFPfX4FxrQFcwZ/R08AUk1xWcUtlr7oq6CV07Ji+aa69V2g7BSpblnQ== + dependencies: + camelcase "^3.0.0" + map-obj "^1.0.0" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.1.2: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@3.5.3, chokidar@^3.0.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.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" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-launcher@^0.15.0: + version "0.15.2" + resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.15.2.tgz#4e6404e32200095fdce7f6a1e1004f9bd36fa5da" + integrity sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + +chromedriver@^119.0.0: + version "119.0.1" + resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-119.0.1.tgz#064f3650790ccea055e9bfd95c600f5ea60295e9" + integrity sha512-lpCFFLaXPpvElTaUOWKdP74pFb/sJhWtWqMjn7Ju1YriWn8dT5JBk84BGXMPvZQs70WfCYWecxdMmwfIu1Mupg== + dependencies: + "@testim/chrome-version" "^1.1.4" + axios "^1.6.0" + compare-versions "^6.1.0" + extract-zip "^2.0.1" + https-proxy-agent "^5.0.1" + proxy-from-env "^1.1.0" + tcp-port-used "^1.0.2" + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.1.0, cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +compare-versions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.0.tgz#3f2131e3ae93577df111dba133e6db876ffe127a" + integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== + +compress-commons@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df" + integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33" + integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +cross-fetch@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA== + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +css-shorthand-properties@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz#1c808e63553c283f289f2dd56fcee8f3337bd935" + integrity sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A== + +css-value@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea" + integrity sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q== + +debug@4, debug@4.3.4, debug@^4.1.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.0.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +devtools-protocol@0.0.948846: + version "0.0.948846" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.948846.tgz#bff47e2d1dba060130fa40ed2e5f78b916ba285f" + integrity sha512-5fGyt9xmMqUl2VI7+rnUkKCiAQIpLns8sfQtTENy5L70ktbNw0Z3TFJ1JoFNYdx/jffz4YXU45VF75wKZD7sZQ== + +devtools-protocol@0.0.981744: + version "0.0.981744" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.981744.tgz#9960da0370284577d46c28979a0b32651022bacf" + integrity sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg== + +devtools-protocol@^0.0.1203626: + version "0.0.1203626" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1203626.tgz#4366a4c81a7e0d4fd6924e9182c67f1e5941e820" + integrity sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g== + +devtools@7.33.0: + version "7.33.0" + resolved "https://registry.yarnpkg.com/devtools/-/devtools-7.33.0.tgz#6b4f3c8281a8631943e706099c326468888133d6" + integrity sha512-9sxWcdZLOUtgvw4kotL8HqvIFkO/yuHUecgqCYXnqIzwdWSoxWCeKAyZhOJNMeFtzjEnHGvIrUIquEuifk2STg== + dependencies: + "@types/node" "^18.0.0" + "@types/ua-parser-js" "^0.7.33" + "@wdio/config" "7.33.0" + "@wdio/logger" "7.26.0" + "@wdio/protocols" "7.27.0" + "@wdio/types" "7.33.0" + "@wdio/utils" "7.33.0" + chrome-launcher "^0.15.0" + edge-paths "^2.1.0" + puppeteer-core "13.1.3" + query-selector-shadow-dom "^1.0.0" + ua-parser-js "^1.0.1" + uuid "^9.0.0" + +diff-sequences@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" + integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +easy-table@*, easy-table@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.2.0.tgz#ba9225d7138fee307bfd4f0b5bc3c04bdc7c54eb" + integrity sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww== + dependencies: + ansi-regex "^5.0.1" + optionalDependencies: + wcwidth "^1.0.1" + +edge-paths@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/edge-paths/-/edge-paths-2.2.1.tgz#d2d91513225c06514aeac9843bfce546abbf4391" + integrity sha512-AI5fC7dfDmCdKo3m5y7PkYE8m6bMqR6pvVpgtrZkkhcJXFLelUgkjrhk3kXXx8Kbw2cRaTT4LkOR7hqf39KJdw== + dependencies: + "@types/which" "^1.3.2" + which "^2.0.2" + +ejs@^3.0.1: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +expect-webdriverio@^3.0.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/expect-webdriverio/-/expect-webdriverio-3.6.0.tgz#529dd8a05cf952ed31c28541f8411f8d30182dc9" + integrity sha512-8HuVToXDVzkKgUKIUzW/v3bP4ZoMDEwCjX9QmlRlMIvjt3HOSzSIBnRMv8lpeVTUKoR9DZNr/lSuKH4Amx4BBg== + dependencies: + expect "^28.1.0" + jest-matcher-utils "^28.1.0" + +expect@^28.1.0: + version "28.1.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== + dependencies: + "@jest/expect-utils" "^28.1.3" + jest-get-type "^28.0.2" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-zip@2.0.1, extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w== + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.15.0: + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^11.1.1: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gaze@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +geckodriver@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/geckodriver/-/geckodriver-3.2.0.tgz#6b0a85e2aafbce209bca30e2d53af857707b1034" + integrity sha512-p+qR2RKlI/TQoCEYrSuTaYCLqsJNni96WmEukTyXmOmLn+3FLdgPAEwMZ0sG2Cwi9hozUzGAWyT6zLuhF6cpiQ== + dependencies: + adm-zip "0.5.9" + bluebird "3.7.2" + got "11.8.5" + https-proxy-agent "5.0.1" + tar "6.1.11" + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + 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" + +glob@^7.1.3, glob@^7.1.4, glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + 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" + +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + 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" + +globule@^1.0.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.4.tgz#7c11c43056055a75a6e68294453c17f2796170fb" + integrity sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg== + dependencies: + glob "~7.1.1" + lodash "^4.17.21" + minimatch "~3.0.2" + +got@11.8.5: + version "11.8.5" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" + integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +got@^11.0.2, got@^11.8.1: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grapheme-splitter@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +http-cache-semantics@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@5.0.1, https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inquirer@8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" + integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + +ip-regex@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is2@^2.0.6: + version "2.0.9" + resolved "https://registry.yarnpkg.com/is2/-/is2-2.0.9.tgz#ff63b441f90de343fa8fac2125ee170da8e8240d" + integrity sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g== + dependencies: + deep-is "^0.1.3" + ip-regex "^4.1.0" + is-url "^1.2.4" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jake@^10.8.5: + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== + dependencies: + chalk "^4.0.0" + diff-sequences "^28.1.1" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-get-type@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" + integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== + +jest-matcher-utils@^28.1.0, jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== + dependencies: + chalk "^4.0.0" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^4.0.0: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +ky@0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/ky/-/ky-0.30.0.tgz#a3d293e4f6c4604a9a4694eceb6ce30e73d27d64" + integrity sha512-X/u76z4JtDVq10u1JA5UQfatPxgPaVDMYTrgHyiTpGN2z4TMEJkIHsoSBBSg9SWZEIXTKsi9kHgiQ9o3Y/4yog== + +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + +lighthouse-logger@^1.0.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz#aef90f9e97cd81db367c7634292ee22079280aaa" + integrity sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g== + dependencies: + debug "^2.6.9" + marky "^1.2.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== + +lodash.isobject@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + integrity sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.merge@^4.6.1: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pickby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" + integrity sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q== + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== + +lodash.zip@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" + integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@4.1.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +loglevel-plugin-prefix@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz#2fe0e05f1a820317d98d8c123e634c1bd84ff644" + integrity sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g== + +loglevel@^1.6.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" + integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +marky@^1.2.2: + version "1.2.5" + resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.5.tgz#55796b688cbd72390d2d399eaaf1832c9413e3c0" + integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^6.0.4: + version "6.2.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-6.2.0.tgz#2b70fd13294178c69c04dfc05aebdb97a4e79e42" + integrity sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@~3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + +mocha@^10.0.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + dependencies: + 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" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +object-inspect@^1.10.3: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-iteration@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/p-iteration/-/p-iteration-1.1.8.tgz#14df726d55af368beba81bcc92a26bb1b48e714a" + integrity sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pkg-dir@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== + dependencies: + "@jest/schemas" "^28.1.3" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-ms@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +proxy-from-env@1.1.0, proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +puppeteer-core@13.1.3: + version "13.1.3" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-13.1.3.tgz#cecb9e2ffff77410e4aa6428a1a2185ef4c6c01c" + integrity sha512-96pzvVBzq5lUGt3L/QrIH3mxn3NfZylHeusNhq06xBAHPI0Upc0SC/9u7tXjL0oRnmcExeVRJivr1lj7Ah/yDQ== + dependencies: + debug "4.3.2" + devtools-protocol "0.0.948846" + extract-zip "2.0.1" + https-proxy-agent "5.0.0" + node-fetch "2.6.7" + pkg-dir "4.2.0" + progress "2.0.3" + proxy-from-env "1.1.0" + rimraf "3.0.2" + tar-fs "2.1.1" + unbzip2-stream "1.4.3" + ws "8.2.3" + +puppeteer-core@^13.1.3: + version "13.7.0" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-13.7.0.tgz#3344bee3994163f49120a55ddcd144a40575ba5b" + integrity sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q== + dependencies: + cross-fetch "3.1.5" + debug "4.3.4" + devtools-protocol "0.0.981744" + extract-zip "2.0.1" + https-proxy-agent "5.0.1" + pkg-dir "4.2.0" + progress "2.0.3" + proxy-from-env "1.1.0" + rimraf "3.0.2" + tar-fs "2.1.1" + unbzip2-stream "1.4.3" + ws "8.5.0" + +query-selector-shadow-dom@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.1.tgz#1c7b0058eff4881ac44f45d8f84ede32e9a2f349" + integrity sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@^2.0.0, readable-stream@^2.0.5: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + 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" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-glob@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== + dependencies: + minimatch "^5.1.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve@^1.10.0: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +resq@^1.9.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/resq/-/resq-1.11.0.tgz#edec8c58be9af800fd628118c0ca8815283de196" + integrity sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw== + dependencies: + fast-deep-equal "^2.0.1" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +rgb2hex@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.2.5.tgz#f82230cd3ab1364fa73c99be3a691ed688f8dbdc" + integrity sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw== + +rimraf@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +rxjs@^7.2.0, rxjs@^7.5.5: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safaridriver@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/safaridriver/-/safaridriver-0.0.6.tgz#8362a554a6e5d710b9334f339f3ce5ded8268ee1" + integrity sha512-cU8eBBOOoCsPKb3o/lvx8ppYWFVmTsnAu2MofkPbUPCfDvyFRtD8VyOGwWTtuJTdMNIC+dPnOgaoPNnsk7zs0Q== + +safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +"semver@2 || 3 || 4 || 5": + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +serialize-error@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-8.1.0.tgz#3a069970c712f78634942ddd50fbbc0eaebe2f67" + integrity sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ== + dependencies: + type-fest "^0.20.2" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + +split2@^4.0.0, split2@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stream-buffers@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521" + integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ== + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.0" + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +suffix@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/suffix/-/suffix-0.1.1.tgz#cc58231646a0ef1102f79478ef3a9248fd9c842f" + integrity sha512-j5uf6MJtMCfC4vBe5LFktSe4bGyNTBk7I2Kdri0jeLrcv5B9pWfxVa5JQpoxgtR8vaVB7bVxsWgnfQbX5wkhAA== + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tar-fs@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4, tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@6.1.11: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tcp-port-used@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.2.tgz#9652b7436eb1f4cfae111c79b558a25769f6faea" + integrity sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA== + dependencies: + debug "4.3.1" + is2 "^2.0.6" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tslib@^2.1.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +ua-parser-js@^1.0.1: + version "1.0.37" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" + integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== + +unbzip2-stream@1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +wdio-chromedriver-service@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wdio-chromedriver-service/-/wdio-chromedriver-service-7.0.0.tgz#c5b47dd03c115f728d932b82510c5940a61c97c1" + integrity sha512-0EhlZSpR95xF6HAIi1Czi3PEzv36xT/cpPJ+4eghhJYCqAC0Tf3B5T+WAVmd6FFpQLCRUHvBC5HmF2os6w0vDQ== + dependencies: + fs-extra "^9.1.0" + +wdio-geckodriver-service@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/wdio-geckodriver-service/-/wdio-geckodriver-service-4.1.2.tgz#e4a820cb8b2a26fd79397b041a0b4ceed162bf4d" + integrity sha512-ySEPjmA3eTxs2E99JG7yD1QBa0lwPnvMgfFPtQ2GlBvufQ9iOf+7TJxxMa0dJjkhxYhP9aRNLwF2d0FTVOGOZw== + dependencies: + "@wdio/logger" "^8.6.6" + fs-extra "^11.1.1" + get-port "^6.1.2" + split2 "^4.2.0" + tcp-port-used "^1.0.2" + +wdio-safaridriver-service@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/wdio-safaridriver-service/-/wdio-safaridriver-service-2.1.1.tgz#6e8ff7e067640639fabb4c257043c9b6cc7a1051" + integrity sha512-Rz8uls7EY0bHOZJpykmAMIQzT0gNe6lg32XdCjO/ppSvscWKP57lePGWD80RCU4kKnwX1TbrTivqfjl6vK/1rQ== + dependencies: + "@types/split2" "^4.2.0" + "@types/tcp-port-used" "^1.0.1" + "@wdio/logger" "^8.11.0" + fs-extra "^11.1.1" + safaridriver "^0.0.6" + split2 "^4.2.0" + tcp-port-used "^1.0.2" + +webdriver@7.33.0: + version "7.33.0" + resolved "https://registry.yarnpkg.com/webdriver/-/webdriver-7.33.0.tgz#9230bdc6b8a88477b65dbab7e0c693510d777493" + integrity sha512-cyMRAVUHgQhEBHojOeNet2e8GkfyvvjpioNCPcF6qUtT+URdagr8Mh0t4Fs+Jr0tpuMqFnw70xZexAcV/6I/jg== + dependencies: + "@types/node" "^18.0.0" + "@wdio/config" "7.33.0" + "@wdio/logger" "7.26.0" + "@wdio/protocols" "7.27.0" + "@wdio/types" "7.33.0" + "@wdio/utils" "7.33.0" + got "^11.0.2" + ky "0.30.0" + lodash.merge "^4.6.1" + +webdriverio@7.33.0: + version "7.33.0" + resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-7.33.0.tgz#2453fcb34b558b9e5cf153089e98ab1f1030ac2e" + integrity sha512-9MRPYkOEdsvsBpDJRSMAR+dLID6I65vKjpzNTTFJSjRLSHF6MByOH3mV2trlpIyV+TIp87GysYUVf3Cmufg9eg== + dependencies: + "@types/aria-query" "^5.0.0" + "@types/node" "^18.0.0" + "@wdio/config" "7.33.0" + "@wdio/logger" "7.26.0" + "@wdio/protocols" "7.27.0" + "@wdio/repl" "7.33.0" + "@wdio/types" "7.33.0" + "@wdio/utils" "7.33.0" + archiver "^5.0.0" + aria-query "^5.2.1" + css-shorthand-properties "^1.1.1" + css-value "^0.0.1" + devtools "7.33.0" + devtools-protocol "^0.0.1203626" + fs-extra "^11.1.1" + grapheme-splitter "^1.0.2" + lodash.clonedeep "^4.5.0" + lodash.isobject "^3.0.2" + lodash.isplainobject "^4.0.6" + lodash.zip "^4.2.0" + minimatch "^6.0.4" + puppeteer-core "^13.1.3" + query-selector-shadow-dom "^1.0.0" + resq "^1.9.1" + rgb2hex "0.2.5" + serialize-error "^8.0.0" + webdriver "7.33.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +ws@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + 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@^17.0.0: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yarn-install@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yarn-install/-/yarn-install-1.0.0.tgz#57f45050b82efd57182b3973c54aa05cb5d25230" + integrity sha512-VO1u181msinhPcGvQTVMnHVOae8zjX/NSksR17e6eXHRveDvHCF5mGjh9hkN8mzyfnCqcBe42LdTs7bScuTaeg== + dependencies: + cac "^3.0.3" + chalk "^1.1.3" + cross-spawn "^4.0.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zip-stream@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135" + integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== + dependencies: + archiver-utils "^3.0.4" + compress-commons "^4.1.2" + readable-stream "^3.6.0" From 45ab3f493b5a3cb0069361cd1b319f34aee8df80 Mon Sep 17 00:00:00 2001 From: weizman Date: Wed, 20 Dec 2023 19:41:23 +0200 Subject: [PATCH 04/49] weizman to lavamoat --- README.md | 12 ++++++------ package.json | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ad60908..c0a6968 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@

LavaDome 🌋️

~ A new LavaMoat tool for DOM nodes secured Encapsulation ~

- - + + - - + +



@@ -51,7 +51,7 @@ it does a pretty good job in isolating subtrees of the DOM from the rest of it. Therefore, we believe leveraging ShadowDOM while carefully addressing [potential security gaps](https://blog.ankursundara.com/shadow-dom/), -**[LavaDomEncapsulation](https://github.com/weizman/lavadome/)** should be +**[LavaDomEncapsulation](https://github.com/lavamoat/lavadome/)** should be a **security tool to join the LavaMoat toolbox** to allow developers to implement frontend-only components that will aspire to only allow their code and the user to access/interact with, while not allow similar access to other untrusted JavaScript code in the app. @@ -117,7 +117,7 @@ being a security feature by default (see [Security](#Security)). Export functionalities for developers to consume LavaDome however they prefer, whether by vanilla JavaScript or as a React component -(or any other platform - [ask away!](https://github.com/weizman/lavadome/issues/new?title=LavaDome+misses+support+for+...)) +(or any other platform - [ask away!](https://github.com/lavamoat/lavadome/issues/new?title=LavaDome+misses+support+for+...)) > NOTE: Delivering LavaDome support for frameworks integrates third party code > that is out of our control, which results in "security blank spots" - please diff --git a/package.json b/package.json index 4f99bda..39f946a 100644 --- a/package.json +++ b/package.json @@ -23,13 +23,13 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/weizman/LavaDome.git" + "url": "git+https://github.com/lavamoat/LavaDome.git" }, "keywords": [], "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/weizman/LavaDome/issues" + "url": "https://github.com/lavamoat/LavaDome/issues" }, - "homepage": "https://github.com/weizman/LavaDome#readme" + "homepage": "https://github.com/lavamoat/LavaDome#readme" } From 15bf5b891f54bb4f39cd2a65e77f38fadf99f1f1 Mon Sep 17 00:00:00 2001 From: weizman Date: Wed, 20 Dec 2023 19:46:36 +0200 Subject: [PATCH 05/49] usage --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index c0a6968..ec99563 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,16 @@ > ⚠️ EXPERIMENTAL [WIP] - USE AT YOUR OWN RISK ([learn more](#Disclaimers)) +## Usage + +`yarn add @lavamoat/lavadome` or `npm install @lavamoat/lavadome` + +TBD + +## Develop + +`npm && npm install --global serve` or `yarn && yarn global add serve` + ## Motivation As of today, standards of the web do not offer a way to selectively isolate subtrees From 33926fddde6cebe7ad4b7b219a221279f79957cb Mon Sep 17 00:00:00 2001 From: weizman Date: Wed, 20 Dec 2023 19:55:24 +0200 Subject: [PATCH 06/49] fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 39f946a..d749fa4 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ }, "scripts": { "demo": "serve . -l 3000", - "test": "yarn demo & (yarn test-chrome && yarn test-firefox && yarn test-safari && exit)", + "test": "yarn demo & yarn test-chrome && yarn test-firefox && yarn test-safari", "test-chrome": "./node_modules/.bin/wdio run chrome.wdio.conf.js", "test-safari": "./node_modules/.bin/wdio run safari.wdio.conf.js", "test-firefox": "./node_modules/.bin/wdio run firefox.wdio.conf.js" From fe8f92a48a88c3462c265be9fcc4a0ad823aa8ab Mon Sep 17 00:00:00 2001 From: weizman Date: Wed, 20 Dec 2023 23:52:59 +0200 Subject: [PATCH 07/49] update chrome poc --- README.md | 5 +++-- assets/img2.png | Bin 147461 -> 146204 bytes assets/img3.png | Bin 0 -> 163578 bytes 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 assets/img3.png diff --git a/README.md b/README.md index ec99563..64cd6e8 100644 --- a/README.md +++ b/README.md @@ -237,10 +237,11 @@ div.setAttribute('contenteditable', 'true'); // attacker setTimeout(() => { + console.log(1, 'stolen secret:'); + const bypass = '