@vitest/browser 3.2.0-beta.1 → 3.2.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/context.d.ts +23 -2
- package/context.js +1 -0
- package/dist/client/.vite/manifest.json +2 -2
- package/dist/client/__vitest__/assets/index-C03hLyIS.js +52 -0
- package/dist/client/__vitest__/assets/{index-DJfrXR3P.css → index-CVSF215x.css} +1 -1
- package/dist/client/__vitest__/index.html +2 -2
- package/dist/client/__vitest_browser__/{orchestrator-CuTjqoE1.js → orchestrator-Bsc_nLaw.js} +6 -2
- package/dist/client/__vitest_browser__/{tester-D-yxPeOx.js → tester-BV-CSJ5v.js} +7 -3
- package/dist/client/orchestrator.html +1 -1
- package/dist/client/tester/tester.html +1 -1
- package/dist/client.js +5 -0
- package/dist/context.js +48 -2
- package/dist/expect-element.js +1 -1
- package/dist/{index-C3ICQ6zz.js → index-D0pxULUR.js} +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +125 -23
- package/dist/locators/index.d.ts +1 -0
- package/dist/locators/index.js +1 -1
- package/dist/locators/playwright.js +1 -1
- package/dist/locators/preview.js +1 -1
- package/dist/locators/webdriverio.js +1 -1
- package/dist/providers.js +2 -1
- package/dist/{public-utils-DUr23h1p.js → public-utils-DJ-T0CfF.js} +1 -1
- package/dist/state.js +3 -0
- package/dist/utils.js +1 -1
- package/dist/{webdriver-D7k26Na7.js → webdriver-B1QbgqhC.js} +52 -13
- package/package.json +12 -12
- package/utils.d.ts +1 -1
- package/dist/client/__vitest__/assets/index-BZjudRZr.js +0 -52
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{page}from"@vitest/browser/context";import{stringify}from"vitest/utils";var __defProp=Object.defineProperty,__defNormalProp=(e,w,E)=>w in e?__defProp(e,w,{enumerable:!0,configurable:!0,writable:!0,value:E}):e[w]=E,__publicField=(e,w,T)=>__defNormalProp(e,typeof w==`symbol`?w:w+``,T);function escapeWithQuotes(e,w=`'`){let T=JSON.stringify(e),E=T.substring(1,T.length-1).replace(/\\"/g,`"`);if(w===`'`)return w+E.replace(/'/g,`\\'`)+w;if(w===`"`)return w+E.replace(/"/g,`\\"`)+w;if(w==="`")return w+E.replace(/`/g,"`")+w;throw Error(`Invalid escape char`)}function cssEscape(e){let w=``;for(let T=0;T<e.length;T++)w+=cssEscapeOne(e,T);return w}function quoteCSSAttributeValue(e){return`"${cssEscape(e).replace(/\\ /g,` `)}"`}function cssEscapeOne(e,w){let T=e.charCodeAt(w);return T===0?`�`:T>=1&&T<=31||T>=48&&T<=57&&(w===0||w===1&&e.charCodeAt(0)===45)?`\\${T.toString(16)} `:w===0&&T===45&&e.length===1?`\\${e.charAt(w)}`:T>=128||T===45||T===95||T>=48&&T<=57||T>=65&&T<=90||T>=97&&T<=122?e.charAt(w):`\\${e.charAt(w)}`}function normalizeWhiteSpace(e){let w=e.replace(/[\u200b\u00ad]/g,``).trim().replace(/\s+/g,` `);return w}function normalizeEscapedRegexQuotes(e){return e.replace(/(^|[^\\])(\\\\)*\\(['"`])/g,`$1$2$3`)}function escapeRegexForSelector(e){return e.unicode||e.unicodeSets?String(e):String(e).replace(/(^|[^\\])(\\\\)*(["'`])/g,`$1$2\\$3`).replace(/>>/g,`\\>\\>`)}function escapeForTextSelector(e,w){return typeof e==`string`?`${JSON.stringify(e)}${w?`s`:`i`}`:escapeRegexForSelector(e)}function escapeForAttributeSelector(e,w){return typeof e==`string`?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"${w?`s`:`i`}`:escapeRegexForSelector(e)}function trimString(e,w,T=``){if(e.length<=w)return e;let E=[...e];return E.length>w?E.slice(0,w-T.length).join(``)+T:E.join(``)}function trimStringWithEllipsis(e,w){return trimString(e,w,`…`)}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var between=function(e,w,T){return e>=w&&e<=T};function digit(e){return between(e,48,57)}function hexdigit(e){return digit(e)||between(e,65,70)||between(e,97,102)}function uppercaseletter(e){return between(e,65,90)}function lowercaseletter(e){return between(e,97,122)}function letter(e){return uppercaseletter(e)||lowercaseletter(e)}function nonascii(e){return e>=128}function namestartchar(e){return letter(e)||nonascii(e)||e===95}function namechar(e){return namestartchar(e)||digit(e)||e===45}function nonprintable(e){return between(e,0,8)||e===11||between(e,14,31)||e===127}function newline(e){return e===10}function whitespace(e){return newline(e)||e===9||e===32}var maximumallowedcodepoint=1114111,InvalidCharacterError=class extends Error{constructor(e){super(e),this.name=`InvalidCharacterError`}};function preprocess(e){let w=[];for(let T=0;T<e.length;T++){let E=e.charCodeAt(T);if(E===13&&e.charCodeAt(T+1)===10&&(E=10,T++),(E===13||E===12)&&(E=10),E===0&&(E=65533),between(E,55296,56319)&&between(e.charCodeAt(T+1),56320,57343)){let w=E-55296,D=e.charCodeAt(T+1)-56320;E=2**16+w*2**10+D,T++}w.push(E)}return w}function stringFromCode(e){if(e<=65535)return String.fromCharCode(e);e-=2**16;let w=Math.floor(e/2**10)+55296,T=e%2**10+56320;return String.fromCharCode(w)+String.fromCharCode(T)}function tokenize(e){let w=preprocess(e),T=-1,E=[],D,O=function(e){return e>=w.length?-1:w[e]},k=function(e){if(e===void 0&&(e=1),e>3)throw`Spec Error: no more than three codepoints of lookahead.`;return O(T+e)},A=function(e){return e===void 0&&(e=1),T+=e,D=O(T),!0},j=function(){return--T,!0},M=function(e){return e===void 0&&(e=D),e===-1},N=function(){if(P(),A(),whitespace(D)){for(;whitespace(k());)A();return new WhitespaceToken}else if(D===34)return L();else if(D===35)if(namechar(k())||B(k(1),k(2))){let e=new HashToken(``);return W(k(1),k(2),k(3))&&(e.type=`id`),e.value=Y(),e}else return new DelimToken(D);else if(D===36)return k()===61?(A(),new SuffixMatchToken):new DelimToken(D);else if(D===39)return L();else if(D===40)return new OpenParenToken;else if(D===41)return new CloseParenToken;else if(D===42)return k()===61?(A(),new SubstringMatchToken):new DelimToken(D);else if(D===43)return J()?(j(),F()):new DelimToken(D);else if(D===44)return new CommaToken;else if(D===45)return J()?(j(),F()):k(1)===45&&k(2)===62?(A(2),new CDCToken):G()?(j(),I()):new DelimToken(D);else if(D===46)return J()?(j(),F()):new DelimToken(D);else if(D===58)return new ColonToken;else if(D===59)return new SemicolonToken;else if(D===60)return k(1)===33&&k(2)===45&&k(3)===45?(A(3),new CDOToken):new DelimToken(D);else if(D===64)return W(k(1),k(2),k(3))?new AtKeywordToken(Y()):new DelimToken(D);else if(D===91)return new OpenSquareToken;else if(D===92)return U()?(j(),I()):new DelimToken(D);else if(D===93)return new CloseSquareToken;else if(D===94)return k()===61?(A(),new PrefixMatchToken):new DelimToken(D);else if(D===123)return new OpenCurlyToken;else if(D===124)return k()===61?(A(),new DashMatchToken):k()===124?(A(),new ColumnToken):new DelimToken(D);else if(D===125)return new CloseCurlyToken;else if(D===126)return k()===61?(A(),new IncludeMatchToken):new DelimToken(D);else if(digit(D))return j(),F();else if(namestartchar(D))return j(),I();else if(M())return new EOFToken;else return new DelimToken(D)},P=function(){for(;k(1)===47&&k(2)===42;)for(A(2);;)if(A(),D===42&&k()===47){A();break}else if(M())return},F=function(){let e=X();if(W(k(1),k(2),k(3))){let w=new DimensionToken;return w.value=e.value,w.repr=e.repr,w.type=e.type,w.unit=Y(),w}else if(k()===37){A();let w=new PercentageToken;return w.value=e.value,w.repr=e.repr,w}else{let w=new NumberToken;return w.value=e.value,w.repr=e.repr,w.type=e.type,w}},I=function(){let e=Y();if(e.toLowerCase()===`url`&&k()===40){for(A();whitespace(k(1))&&whitespace(k(2));)A();return k()===34||k()===39||whitespace(k())&&(k(2)===34||k(2)===39)?new FunctionToken(e):R()}else if(k()===40)return A(),new FunctionToken(e);else return new IdentToken(e)},L=function(e){e===void 0&&(e=D);let w=``;for(;A();){if(D===e||M())return new StringToken(w);if(newline(D))return j(),new BadStringToken;D===92?M(k())||(newline(k())?A():w+=stringFromCode(z())):w+=stringFromCode(D)}throw Error(`Internal error`)},R=function(){let e=new URLToken(``);for(;whitespace(k());)A();if(M(k()))return e;for(;A();){if(D===41||M())return e;if(whitespace(D)){for(;whitespace(k());)A();return k()===41||M(k())?(A(),e):(Q(),new BadURLToken)}else if(D===34||D===39||D===40||nonprintable(D))return Q(),new BadURLToken;else if(D===92)if(U())e.value+=stringFromCode(z());else return Q(),new BadURLToken;else e.value+=stringFromCode(D)}throw Error(`Internal error`)},z=function(){if(A(),hexdigit(D)){let e=[D];for(let w=0;w<5&&hexdigit(k());w++)A(),e.push(D);whitespace(k())&&A();let w=Number.parseInt(e.map(e=>String.fromCharCode(e)).join(``),16);return w>maximumallowedcodepoint&&(w=65533),w}else if(M())return 65533;else return D},B=function(e,w){return!(e!==92||newline(w))},U=function(){return B(D,k())},W=function(e,w,T){return e===45?namestartchar(w)||w===45||B(w,T):namestartchar(e)?!0:e===92?B(e,w):!1},G=function(){return W(D,k(1),k(2))},K=function(e,w,T){return e===43||e===45?!!(digit(w)||w===46&&digit(T)):e===46?!!digit(w):!!digit(e)},J=function(){return K(D,k(1),k(2))},Y=function(){let e=``;for(;A();)if(namechar(D))e+=stringFromCode(D);else if(U())e+=stringFromCode(z());else return j(),e;throw Error(`Internal parse error`)},X=function(){let e=``,w=`integer`;for((k()===43||k()===45)&&(A(),e+=stringFromCode(D));digit(k());)A(),e+=stringFromCode(D);if(k(1)===46&&digit(k(2)))for(A(),e+=stringFromCode(D),A(),e+=stringFromCode(D),w=`number`;digit(k());)A(),e+=stringFromCode(D);let T=k(1),E=k(2),O=k(3);if((T===69||T===101)&&digit(E))for(A(),e+=stringFromCode(D),A(),e+=stringFromCode(D),w=`number`;digit(k());)A(),e+=stringFromCode(D);else if((T===69||T===101)&&(E===43||E===45)&&digit(O))for(A(),e+=stringFromCode(D),A(),e+=stringFromCode(D),A(),e+=stringFromCode(D),w=`number`;digit(k());)A(),e+=stringFromCode(D);let j=Z(e);return{type:w,value:j,repr:e}},Z=function(e){return+e},Q=function(){for(;A();){if(D===41||M())return;U()&&z()}},$=0;for(;!M(k());)if(E.push(N()),$++,$>w.length*2)throw Error(`I'm infinite-looping!`);return E}var CSSParserToken=class{constructor(){__publicField(this,`tokenType`,``),__publicField(this,`value`)}toJSON(){return{token:this.tokenType}}toString(){return this.tokenType}toSource(){return`${this}`}},BadStringToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`BADSTRING`)}},BadURLToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`BADURL`)}},WhitespaceToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`WHITESPACE`)}toString(){return`WS`}toSource(){return` `}},CDOToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`CDO`)}toSource(){return`<!--`}},CDCToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`CDC`)}toSource(){return`-->`}},ColonToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`:`)}},SemicolonToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`;`)}},CommaToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`,`)}},GroupingToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`value`,``),__publicField(this,`mirror`,``)}},OpenCurlyToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`{`),this.value=`{`,this.mirror=`}`}},CloseCurlyToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`}`),this.value=`}`,this.mirror=`{`}},OpenSquareToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`[`),this.value=`[`,this.mirror=`]`}},CloseSquareToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`]`),this.value=`]`,this.mirror=`[`}},OpenParenToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`(`),this.value=`(`,this.mirror=`)`}},CloseParenToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`)`),this.value=`)`,this.mirror=`(`}},IncludeMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`~=`)}},DashMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`|=`)}},PrefixMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`^=`)}},SuffixMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`$=`)}},SubstringMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`*=`)}},ColumnToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`||`)}},EOFToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`EOF`)}toSource(){return``}},DelimToken=class extends CSSParserToken{constructor(e){super(),__publicField(this,`tokenType`,`DELIM`),__publicField(this,`value`,``),this.value=stringFromCode(e)}toString(){return`DELIM(${this.value})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e}toSource(){return this.value===`\\`?`\\
|
|
1
|
+
import{page}from"@vitest/browser/context";import{stringify}from"vitest/internal/browser";var __defProp=Object.defineProperty,__defNormalProp=(e,w,E)=>w in e?__defProp(e,w,{enumerable:!0,configurable:!0,writable:!0,value:E}):e[w]=E,__publicField=(e,w,T)=>__defNormalProp(e,typeof w==`symbol`?w:w+``,T);function escapeWithQuotes(e,w=`'`){let T=JSON.stringify(e),E=T.substring(1,T.length-1).replace(/\\"/g,`"`);if(w===`'`)return w+E.replace(/'/g,`\\'`)+w;if(w===`"`)return w+E.replace(/"/g,`\\"`)+w;if(w==="`")return w+E.replace(/`/g,"`")+w;throw Error(`Invalid escape char`)}function cssEscape(e){let w=``;for(let T=0;T<e.length;T++)w+=cssEscapeOne(e,T);return w}function quoteCSSAttributeValue(e){return`"${cssEscape(e).replace(/\\ /g,` `)}"`}function cssEscapeOne(e,w){let T=e.charCodeAt(w);return T===0?`�`:T>=1&&T<=31||T>=48&&T<=57&&(w===0||w===1&&e.charCodeAt(0)===45)?`\\${T.toString(16)} `:w===0&&T===45&&e.length===1?`\\${e.charAt(w)}`:T>=128||T===45||T===95||T>=48&&T<=57||T>=65&&T<=90||T>=97&&T<=122?e.charAt(w):`\\${e.charAt(w)}`}function normalizeWhiteSpace(e){let w=e.replace(/[\u200b\u00ad]/g,``).trim().replace(/\s+/g,` `);return w}function normalizeEscapedRegexQuotes(e){return e.replace(/(^|[^\\])(\\\\)*\\(['"`])/g,`$1$2$3`)}function escapeRegexForSelector(e){return e.unicode||e.unicodeSets?String(e):String(e).replace(/(^|[^\\])(\\\\)*(["'`])/g,`$1$2\\$3`).replace(/>>/g,`\\>\\>`)}function escapeForTextSelector(e,w){return typeof e==`string`?`${JSON.stringify(e)}${w?`s`:`i`}`:escapeRegexForSelector(e)}function escapeForAttributeSelector(e,w){return typeof e==`string`?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"${w?`s`:`i`}`:escapeRegexForSelector(e)}function trimString(e,w,T=``){if(e.length<=w)return e;let E=[...e];return E.length>w?E.slice(0,w-T.length).join(``)+T:E.join(``)}function trimStringWithEllipsis(e,w){return trimString(e,w,`…`)}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var between=function(e,w,T){return e>=w&&e<=T};function digit(e){return between(e,48,57)}function hexdigit(e){return digit(e)||between(e,65,70)||between(e,97,102)}function uppercaseletter(e){return between(e,65,90)}function lowercaseletter(e){return between(e,97,122)}function letter(e){return uppercaseletter(e)||lowercaseletter(e)}function nonascii(e){return e>=128}function namestartchar(e){return letter(e)||nonascii(e)||e===95}function namechar(e){return namestartchar(e)||digit(e)||e===45}function nonprintable(e){return between(e,0,8)||e===11||between(e,14,31)||e===127}function newline(e){return e===10}function whitespace(e){return newline(e)||e===9||e===32}var maximumallowedcodepoint=1114111,InvalidCharacterError=class extends Error{constructor(e){super(e),this.name=`InvalidCharacterError`}};function preprocess(e){let w=[];for(let T=0;T<e.length;T++){let E=e.charCodeAt(T);if(E===13&&e.charCodeAt(T+1)===10&&(E=10,T++),(E===13||E===12)&&(E=10),E===0&&(E=65533),between(E,55296,56319)&&between(e.charCodeAt(T+1),56320,57343)){let w=E-55296,D=e.charCodeAt(T+1)-56320;E=2**16+w*2**10+D,T++}w.push(E)}return w}function stringFromCode(e){if(e<=65535)return String.fromCharCode(e);e-=2**16;let w=Math.floor(e/2**10)+55296,T=e%2**10+56320;return String.fromCharCode(w)+String.fromCharCode(T)}function tokenize(e){let w=preprocess(e),T=-1,E=[],D,O=function(e){return e>=w.length?-1:w[e]},k=function(e){if(e===void 0&&(e=1),e>3)throw`Spec Error: no more than three codepoints of lookahead.`;return O(T+e)},A=function(e){return e===void 0&&(e=1),T+=e,D=O(T),!0},j=function(){return--T,!0},M=function(e){return e===void 0&&(e=D),e===-1},N=function(){if(P(),A(),whitespace(D)){for(;whitespace(k());)A();return new WhitespaceToken}else if(D===34)return L();else if(D===35)if(namechar(k())||B(k(1),k(2))){let e=new HashToken(``);return W(k(1),k(2),k(3))&&(e.type=`id`),e.value=Y(),e}else return new DelimToken(D);else if(D===36)return k()===61?(A(),new SuffixMatchToken):new DelimToken(D);else if(D===39)return L();else if(D===40)return new OpenParenToken;else if(D===41)return new CloseParenToken;else if(D===42)return k()===61?(A(),new SubstringMatchToken):new DelimToken(D);else if(D===43)return J()?(j(),F()):new DelimToken(D);else if(D===44)return new CommaToken;else if(D===45)return J()?(j(),F()):k(1)===45&&k(2)===62?(A(2),new CDCToken):G()?(j(),I()):new DelimToken(D);else if(D===46)return J()?(j(),F()):new DelimToken(D);else if(D===58)return new ColonToken;else if(D===59)return new SemicolonToken;else if(D===60)return k(1)===33&&k(2)===45&&k(3)===45?(A(3),new CDOToken):new DelimToken(D);else if(D===64)return W(k(1),k(2),k(3))?new AtKeywordToken(Y()):new DelimToken(D);else if(D===91)return new OpenSquareToken;else if(D===92)return U()?(j(),I()):new DelimToken(D);else if(D===93)return new CloseSquareToken;else if(D===94)return k()===61?(A(),new PrefixMatchToken):new DelimToken(D);else if(D===123)return new OpenCurlyToken;else if(D===124)return k()===61?(A(),new DashMatchToken):k()===124?(A(),new ColumnToken):new DelimToken(D);else if(D===125)return new CloseCurlyToken;else if(D===126)return k()===61?(A(),new IncludeMatchToken):new DelimToken(D);else if(digit(D))return j(),F();else if(namestartchar(D))return j(),I();else if(M())return new EOFToken;else return new DelimToken(D)},P=function(){for(;k(1)===47&&k(2)===42;)for(A(2);;)if(A(),D===42&&k()===47){A();break}else if(M())return},F=function(){let e=X();if(W(k(1),k(2),k(3))){let w=new DimensionToken;return w.value=e.value,w.repr=e.repr,w.type=e.type,w.unit=Y(),w}else if(k()===37){A();let w=new PercentageToken;return w.value=e.value,w.repr=e.repr,w}else{let w=new NumberToken;return w.value=e.value,w.repr=e.repr,w.type=e.type,w}},I=function(){let e=Y();if(e.toLowerCase()===`url`&&k()===40){for(A();whitespace(k(1))&&whitespace(k(2));)A();return k()===34||k()===39||whitespace(k())&&(k(2)===34||k(2)===39)?new FunctionToken(e):R()}else if(k()===40)return A(),new FunctionToken(e);else return new IdentToken(e)},L=function(e){e===void 0&&(e=D);let w=``;for(;A();){if(D===e||M())return new StringToken(w);if(newline(D))return j(),new BadStringToken;D===92?M(k())||(newline(k())?A():w+=stringFromCode(z())):w+=stringFromCode(D)}throw Error(`Internal error`)},R=function(){let e=new URLToken(``);for(;whitespace(k());)A();if(M(k()))return e;for(;A();){if(D===41||M())return e;if(whitespace(D)){for(;whitespace(k());)A();return k()===41||M(k())?(A(),e):(Q(),new BadURLToken)}else if(D===34||D===39||D===40||nonprintable(D))return Q(),new BadURLToken;else if(D===92)if(U())e.value+=stringFromCode(z());else return Q(),new BadURLToken;else e.value+=stringFromCode(D)}throw Error(`Internal error`)},z=function(){if(A(),hexdigit(D)){let e=[D];for(let w=0;w<5&&hexdigit(k());w++)A(),e.push(D);whitespace(k())&&A();let w=Number.parseInt(e.map(e=>String.fromCharCode(e)).join(``),16);return w>maximumallowedcodepoint&&(w=65533),w}else if(M())return 65533;else return D},B=function(e,w){return!(e!==92||newline(w))},U=function(){return B(D,k())},W=function(e,w,T){return e===45?namestartchar(w)||w===45||B(w,T):namestartchar(e)?!0:e===92?B(e,w):!1},G=function(){return W(D,k(1),k(2))},K=function(e,w,T){return e===43||e===45?!!(digit(w)||w===46&&digit(T)):e===46?!!digit(w):!!digit(e)},J=function(){return K(D,k(1),k(2))},Y=function(){let e=``;for(;A();)if(namechar(D))e+=stringFromCode(D);else if(U())e+=stringFromCode(z());else return j(),e;throw Error(`Internal parse error`)},X=function(){let e=``,w=`integer`;for((k()===43||k()===45)&&(A(),e+=stringFromCode(D));digit(k());)A(),e+=stringFromCode(D);if(k(1)===46&&digit(k(2)))for(A(),e+=stringFromCode(D),A(),e+=stringFromCode(D),w=`number`;digit(k());)A(),e+=stringFromCode(D);let T=k(1),E=k(2),O=k(3);if((T===69||T===101)&&digit(E))for(A(),e+=stringFromCode(D),A(),e+=stringFromCode(D),w=`number`;digit(k());)A(),e+=stringFromCode(D);else if((T===69||T===101)&&(E===43||E===45)&&digit(O))for(A(),e+=stringFromCode(D),A(),e+=stringFromCode(D),A(),e+=stringFromCode(D),w=`number`;digit(k());)A(),e+=stringFromCode(D);let j=Z(e);return{type:w,value:j,repr:e}},Z=function(e){return+e},Q=function(){for(;A();){if(D===41||M())return;U()&&z()}},$=0;for(;!M(k());)if(E.push(N()),$++,$>w.length*2)throw Error(`I'm infinite-looping!`);return E}var CSSParserToken=class{constructor(){__publicField(this,`tokenType`,``),__publicField(this,`value`)}toJSON(){return{token:this.tokenType}}toString(){return this.tokenType}toSource(){return`${this}`}},BadStringToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`BADSTRING`)}},BadURLToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`BADURL`)}},WhitespaceToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`WHITESPACE`)}toString(){return`WS`}toSource(){return` `}},CDOToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`CDO`)}toSource(){return`<!--`}},CDCToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`CDC`)}toSource(){return`-->`}},ColonToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`:`)}},SemicolonToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`;`)}},CommaToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`,`)}},GroupingToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`value`,``),__publicField(this,`mirror`,``)}},OpenCurlyToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`{`),this.value=`{`,this.mirror=`}`}},CloseCurlyToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`}`),this.value=`}`,this.mirror=`{`}},OpenSquareToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`[`),this.value=`[`,this.mirror=`]`}},CloseSquareToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`]`),this.value=`]`,this.mirror=`[`}},OpenParenToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`(`),this.value=`(`,this.mirror=`)`}},CloseParenToken=class extends GroupingToken{constructor(){super(),__publicField(this,`tokenType`,`)`),this.value=`)`,this.mirror=`(`}},IncludeMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`~=`)}},DashMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`|=`)}},PrefixMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`^=`)}},SuffixMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`$=`)}},SubstringMatchToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`*=`)}},ColumnToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`||`)}},EOFToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`tokenType`,`EOF`)}toSource(){return``}},DelimToken=class extends CSSParserToken{constructor(e){super(),__publicField(this,`tokenType`,`DELIM`),__publicField(this,`value`,``),this.value=stringFromCode(e)}toString(){return`DELIM(${this.value})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e}toSource(){return this.value===`\\`?`\\
|
|
2
2
|
`:this.value}},StringValuedToken=class extends CSSParserToken{constructor(){super(...arguments),__publicField(this,`value`,``)}ASCIIMatch(e){return this.value.toLowerCase()===e.toLowerCase()}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e}},IdentToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`IDENT`),this.value=e}toString(){return`IDENT(${this.value})`}toSource(){return escapeIdent(this.value)}},FunctionToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`FUNCTION`),__publicField(this,`mirror`),this.value=e,this.mirror=`)`}toString(){return`FUNCTION(${this.value})`}toSource(){return`${escapeIdent(this.value)}(`}},AtKeywordToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`AT-KEYWORD`),this.value=e}toString(){return`AT(${this.value})`}toSource(){return`@${escapeIdent(this.value)}`}},HashToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`HASH`),__publicField(this,`type`),this.value=e,this.type=`unrestricted`}toString(){return`HASH(${this.value})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e.type=this.type,e}toSource(){return this.type===`id`?`#${escapeIdent(this.value)}`:`#${escapeHash(this.value)}`}},StringToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`STRING`),this.value=e}toString(){return`"${escapeString(this.value)}"`}},URLToken=class extends StringValuedToken{constructor(e){super(),__publicField(this,`tokenType`,`URL`),this.value=e}toString(){return`URL(${this.value})`}toSource(){return`url("${escapeString(this.value)}")`}},NumberToken=class extends CSSParserToken{constructor(){super(),__publicField(this,`tokenType`,`NUMBER`),__publicField(this,`type`),__publicField(this,`repr`),this.type=`integer`,this.repr=``}toString(){return this.type===`integer`?`INT(${this.value})`:`NUMBER(${this.value})`}toJSON(){let e=super.toJSON();return e.value=this.value,e.type=this.type,e.repr=this.repr,e}toSource(){return this.repr}},PercentageToken=class extends CSSParserToken{constructor(){super(),__publicField(this,`tokenType`,`PERCENTAGE`),__publicField(this,`repr`),this.repr=``}toString(){return`PERCENTAGE(${this.value})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e.repr=this.repr,e}toSource(){return`${this.repr}%`}},DimensionToken=class extends CSSParserToken{constructor(){super(),__publicField(this,`tokenType`,`DIMENSION`),__publicField(this,`type`),__publicField(this,`repr`),__publicField(this,`unit`),this.type=`integer`,this.repr=``,this.unit=``}toString(){return`DIM(${this.value},${this.unit})`}toJSON(){let e=this.constructor.prototype.constructor.prototype.toJSON.call(this);return e.value=this.value,e.type=this.type,e.repr=this.repr,e.unit=this.unit,e}toSource(){let e=this.repr,w=escapeIdent(this.unit);return w[0].toLowerCase()===`e`&&(w[1]===`-`||between(w.charCodeAt(1),48,57))&&(w=`\\65 ${w.slice(1,w.length)}`),e+w}};function escapeIdent(e){e=`${e}`;let w=``,T=e.charCodeAt(0);for(let E=0;E<e.length;E++){let D=e.charCodeAt(E);if(D===0)throw new InvalidCharacterError(`Invalid character: the input contains U+0000.`);between(D,1,31)||D===127||E===0&&between(D,48,57)||E===1&&between(D,48,57)&&T===45?w+=`\\${D.toString(16)} `:D>=128||D===45||D===95||between(D,48,57)||between(D,65,90)||between(D,97,122)?w+=e[E]:w+=`\\${e[E]}`}return w}function escapeHash(e){e=`${e}`;let w=``;for(let T=0;T<e.length;T++){let E=e.charCodeAt(T);if(E===0)throw new InvalidCharacterError(`Invalid character: the input contains U+0000.`);E>=128||E===45||E===95||between(E,48,57)||between(E,65,90)||between(E,97,122)?w+=e[T]:w+=`\\${E.toString(16)} `}return w}function escapeString(e){e=`${e}`;let w=``;for(let T=0;T<e.length;T++){let E=e.charCodeAt(T);if(E===0)throw new InvalidCharacterError(`Invalid character: the input contains U+0000.`);between(E,1,31)||E===127?w+=`\\${E.toString(16)} `:E===34||E===92?w+=`\\${e[T]}`:w+=e[T]}return w}var InvalidSelectorError=class extends Error{};function parseCSS(e,w){let T;try{T=tokenize(e),T[T.length-1]instanceof EOFToken||T.push(new EOFToken)}catch(w){let T=`${w.message} while parsing selector "${e}"`,E=(w.stack||``).indexOf(w.message);throw E!==-1&&(w.stack=w.stack.substring(0,E)+T+w.stack.substring(E+w.message.length)),w.message=T,w}let E=T.find(e=>e instanceof AtKeywordToken||e instanceof BadStringToken||e instanceof BadURLToken||e instanceof ColumnToken||e instanceof CDOToken||e instanceof CDCToken||e instanceof SemicolonToken||e instanceof OpenCurlyToken||e instanceof CloseCurlyToken||e instanceof URLToken||e instanceof PercentageToken);if(E)throw new InvalidSelectorError(`Unsupported token "${E.toSource()}" while parsing selector "${e}"`);let D=0,O=new Set;function k(){return new InvalidSelectorError(`Unexpected token "${T[D].toSource()}" while parsing selector "${e}"`)}function A(){for(;T[D]instanceof WhitespaceToken;)D++}function j(e=D){return T[e]instanceof IdentToken}function M(e=D){return T[e]instanceof StringToken}function N(e=D){return T[e]instanceof NumberToken}function P(e=D){return T[e]instanceof CommaToken}function F(e=D){return T[e]instanceof OpenParenToken}function I(e=D){return T[e]instanceof CloseParenToken}function L(e=D){return T[e]instanceof FunctionToken}function R(e=D){return T[e]instanceof DelimToken&&T[e].value===`*`}function z(e=D){return T[e]instanceof EOFToken}function B(e=D){return T[e]instanceof DelimToken&&[`>`,`+`,`~`].includes(T[e].value)}function V(e=D){return P(e)||I(e)||z(e)||B(e)||T[e]instanceof WhitespaceToken}function H(){let e=[U()];for(;A(),P();)D++,e.push(U());return e}function U(){return A(),N()||M()?T[D++].value:W()}function W(){let e={simples:[]};for(A(),B()?e.simples.push({selector:{functions:[{name:`scope`,args:[]}]},combinator:``}):e.simples.push({selector:G(),combinator:``});;){if(A(),B())e.simples[e.simples.length-1].combinator=T[D++].value,A();else if(V())break;e.simples.push({combinator:``,selector:G()})}return e}function G(){let e=``,E=[];for(;!V();)if(j()||R())e+=T[D++].toSource();else if(T[D]instanceof HashToken)e+=T[D++].toSource();else if(T[D]instanceof DelimToken&&T[D].value===`.`)if(D++,j())e+=`.${T[D++].toSource()}`;else throw k();else if(T[D]instanceof ColonToken)if(D++,j())if(!w.has(T[D].value.toLowerCase()))e+=`:${T[D++].toSource()}`;else{let e=T[D++].value.toLowerCase();E.push({name:e,args:[]}),O.add(e)}else if(L()){let j=T[D++].value.toLowerCase();if(w.has(j)?(E.push({name:j,args:H()}),O.add(j)):e+=`:${j}(${K()})`,A(),!I())throw k();D++}else throw k();else if(T[D]instanceof OpenSquareToken){for(e+=`[`,D++;!(T[D]instanceof CloseSquareToken)&&!z();)e+=T[D++].toSource();if(!(T[D]instanceof CloseSquareToken))throw k();e+=`]`,D++}else throw k();if(!e&&!E.length)throw k();return{css:e||void 0,functions:E}}function K(){let e=``,w=1;for(;!z()&&((F()||L())&&w++,I()&&w--,w);)e+=T[D++].toSource();return e}let q=H();if(!z())throw k();if(q.some(e=>typeof e!=`object`||!(`simples`in e)))throw new InvalidSelectorError(`Error while parsing selector "${e}"`);return{selector:q,names:Array.from(O)}}var kNestedSelectorNames=new Set([`internal:has`,`internal:has-not`,`internal:and`,`internal:or`,`internal:chain`,`left-of`,`right-of`,`above`,`below`,`near`]),kNestedSelectorNamesWithDistance=new Set([`left-of`,`right-of`,`above`,`below`,`near`]),customCSSNames=new Set([`not`,`is`,`where`,`has`,`scope`,`light`,`visible`,`text`,`text-matches`,`text-is`,`has-text`,`above`,`below`,`right-of`,`left-of`,`near`,`nth-match`]);function parseSelector(e){let w=parseSelectorString(e),T=[];for(let e of w.parts){if(e.name===`css`||e.name===`css:light`){e.name===`css:light`&&(e.body=`:light(${e.body})`);let w=parseCSS(e.body,customCSSNames);T.push({name:`css`,body:w.selector,source:e.body});continue}if(kNestedSelectorNames.has(e.name)){let w,E;try{let T=JSON.parse(`[${e.body}]`);if(!Array.isArray(T)||T.length<1||T.length>2||typeof T[0]!=`string`)throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`);if(w=T[0],T.length===2){if(typeof T[1]!=`number`||!kNestedSelectorNamesWithDistance.has(e.name))throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`);E=T[1]}}catch{throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`)}let D={name:e.name,source:e.body,body:{parsed:parseSelector(w),distance:E}},O=[...D.body.parsed.parts].reverse().find(e=>e.name===`internal:control`&&e.body===`enter-frame`),k=O?D.body.parsed.parts.indexOf(O):-1;k!==-1&&selectorPartsEqual(D.body.parsed.parts.slice(0,k+1),T.slice(0,k+1))&&D.body.parsed.parts.splice(0,k+1),T.push(D);continue}T.push({...e,source:e.body})}if(kNestedSelectorNames.has(T[0].name))throw new InvalidSelectorError(`"${T[0].name}" selector cannot be first`);return{capture:w.capture,parts:T}}function selectorPartsEqual(e,w){return stringifySelector({parts:e})===stringifySelector({parts:w})}function stringifySelector(e,w){return typeof e==`string`?e:e.parts.map((T,E)=>{let D=!0;!w&&E!==e.capture&&(T.name===`css`||T.name===`xpath`&&T.source.startsWith(`//`)||T.source.startsWith(`..`))&&(D=!1);let O=D?`${T.name}=`:``;return`${E===e.capture?`*`:``}${O}${T.source}`}).join(` >> `)}function visitAllSelectorParts(e,w){let T=(e,E)=>{for(let D of e.parts)w(D,E),kNestedSelectorNames.has(D.name)&&T(D.body.parsed,!0)};T(e,!1)}function parseSelectorString(e){let w=0,T,E=0,D={parts:[]},O=()=>{let T=e.substring(E,w).trim(),O=T.indexOf(`=`),k,A;O!==-1&&T.substring(0,O).trim().match(/^[\w\-+:*]+$/)?(k=T.substring(0,O).trim(),A=T.substring(O+1)):T.length>1&&T[0]===`"`&&T[T.length-1]===`"`||T.length>1&&T[0]===`'`&&T[T.length-1]===`'`?(k=`text`,A=T):/^\(*\/\//.test(T)||T.startsWith(`..`)?(k=`xpath`,A=T):(k=`css`,A=T);let j=!1;if(k[0]===`*`&&(j=!0,k=k.substring(1)),D.parts.push({name:k,body:A}),j){if(D.capture!==void 0)throw new InvalidSelectorError(`Only one of the selectors can capture using * modifier`);D.capture=D.parts.length-1}};if(!e.includes(`>>`))return w=e.length,O(),D;let k=()=>{let T=e.substring(E,w),D=T.match(/^\s*text\s*=(.*)$/);return!!D&&!!D[1]};for(;w<e.length;){let D=e[w];D===`\\`&&w+1<e.length?w+=2:D===T?(T=void 0,w++):!T&&(D===`"`||D===`'`||D==="`")&&!k()?(T=D,w++):!T&&D===`>`&&e[w+1]===`>`?(O(),w+=2,E=w):w++}return O(),D}function parseAttributeSelector(e,w){let T=0,E=e.length===0,D=()=>e[T]||``,O=()=>{let w=D();return++T,E=T>=e.length,w},k=w=>{throw E?new InvalidSelectorError(`Unexpected end of selector while parsing selector \`${e}\``):new InvalidSelectorError(`Error while parsing selector \`${e}\` - unexpected symbol "${D()}" at position ${T}${w?` during ${w}`:``}`)};function A(){for(;!E&&/\s/.test(D());)O()}function j(e){return e>=``||e>=`0`&&e<=`9`||e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e>=`0`&&e<=`9`||e===`_`||e===`-`}function M(){let e=``;for(A();!E&&j(D());)e+=O();return e}function N(e){let w=O();for(w!==e&&k(`parsing quoted string`);!E&&D()!==e;)D()===`\\`&&O(),w+=O();return D()!==e&&k(`parsing quoted string`),w+=O(),w}function P(){O()!==`/`&&k(`parsing regular expression`);let w=``,T=!1;for(;!E;){if(D()===`\\`)w+=O(),E&&k(`parsing regular expression`);else if(T&&D()===`]`)T=!1;else if(!T&&D()===`[`)T=!0;else if(!T&&D()===`/`)break;w+=O()}O()!==`/`&&k(`parsing regular expression`);let A=``;for(;!E&&D().match(/[dgimsuy]/);)A+=O();try{return new RegExp(w,A)}catch(w){throw new InvalidSelectorError(`Error while parsing selector \`${e}\`: ${w.message}`)}}function F(){let e=``;return A(),e=D()===`'`||D()===`"`?N(D()).slice(1,-1):M(),e||k(`parsing property path`),e}function I(){A();let e=``;return E||(e+=O()),!E&&e!==`=`&&(e+=O()),[`=`,`*=`,`^=`,`$=`,`|=`,`~=`].includes(e)||k(`parsing operator`),e}function L(){O();let w=[];for(w.push(F()),A();D()===`.`;)O(),w.push(F()),A();if(D()===`]`)return O(),{name:w.join(`.`),jsonPath:w,op:`<truthy>`,value:null,caseSensitive:!1};let T=I(),M,L=!0;if(A(),D()===`/`){if(T!==`=`)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - cannot use ${T} in attribute with regular expression`);M=P()}else if(D()===`'`||D()===`"`)M=N(D()).slice(1,-1),A(),D()===`i`||D()===`I`?(L=!1,O()):(D()===`s`||D()===`S`)&&(L=!0,O());else{for(M=``;!E&&(j(D())||D()===`+`||D()===`.`);)M+=O();M===`true`?M=!0:M===`false`&&(M=!1)}if(A(),D()!==`]`&&k(`parsing attribute value`),O(),T!==`=`&&typeof M!=`string`)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - cannot use ${T} in attribute with non-string matching value - ${M}`);return{name:w.join(`.`),jsonPath:w,op:T,value:M,caseSensitive:L}}let R={name:``,attributes:[]};for(R.name=M(),A();D()===`[`;)R.attributes.push(L()),A();if(E||k(void 0),!R.name&&!R.attributes.length)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - selector cannot be empty`);return R}function hasExplicitAccessibleName(e){return e.hasAttribute(`aria-label`)||e.hasAttribute(`aria-labelledby`)}var kAncestorPreventingLandmark=`article:not([role]), aside:not([role]), main:not([role]), nav:not([role]), section:not([role]), [role=article], [role=complementary], [role=main], [role=navigation], [role=region]`,kGlobalAriaAttributes=new Map([[`aria-atomic`,void 0],[`aria-busy`,void 0],[`aria-controls`,void 0],[`aria-current`,void 0],[`aria-describedby`,void 0],[`aria-details`,void 0],[`aria-dropeffect`,void 0],[`aria-flowto`,void 0],[`aria-grabbed`,void 0],[`aria-hidden`,void 0],[`aria-keyshortcuts`,void 0],[`aria-label`,new Set([`caption`,`code`,`deletion`,`emphasis`,`generic`,`insertion`,`paragraph`,`presentation`,`strong`,`subscript`,`superscript`])],[`aria-labelledby`,new Set([`caption`,`code`,`deletion`,`emphasis`,`generic`,`insertion`,`paragraph`,`presentation`,`strong`,`subscript`,`superscript`])],[`aria-live`,void 0],[`aria-owns`,void 0],[`aria-relevant`,void 0],[`aria-roledescription`,new Set([`generic`])]]);function hasGlobalAriaAttribute(e,w){return[...kGlobalAriaAttributes].some(([T,E])=>!E?.has(w||``)&&e.hasAttribute(T))}function hasTabIndex(e){return!Number.isNaN(Number(String(e.getAttribute(`tabindex`))))}function isFocusable(e){return!isNativelyDisabled(e)&&(isNativelyFocusable(e)||hasTabIndex(e))}function isNativelyFocusable(e){let w=elementSafeTagName(e);return[`BUTTON`,`DETAILS`,`SELECT`,`TEXTAREA`].includes(w)?!0:w===`A`||w===`AREA`?e.hasAttribute(`href`):w===`INPUT`?!e.hidden:!1}var kImplicitRoleByTagName={A:e=>e.hasAttribute(`href`)?`link`:null,AREA:e=>e.hasAttribute(`href`)?`link`:null,ARTICLE:()=>`article`,ASIDE:()=>`complementary`,BLOCKQUOTE:()=>`blockquote`,BUTTON:()=>`button`,CAPTION:()=>`caption`,CODE:()=>`code`,DATALIST:()=>`listbox`,DD:()=>`definition`,DEL:()=>`deletion`,DETAILS:()=>`group`,DFN:()=>`term`,DIALOG:()=>`dialog`,DT:()=>`term`,EM:()=>`emphasis`,FIELDSET:()=>`group`,FIGURE:()=>`figure`,FOOTER:e=>closestCrossShadow(e,kAncestorPreventingLandmark)?null:`contentinfo`,FORM:e=>hasExplicitAccessibleName(e)?`form`:null,H1:()=>`heading`,H2:()=>`heading`,H3:()=>`heading`,H4:()=>`heading`,H5:()=>`heading`,H6:()=>`heading`,HEADER:e=>closestCrossShadow(e,kAncestorPreventingLandmark)?null:`banner`,HR:()=>`separator`,HTML:()=>`document`,IMG:e=>e.getAttribute(`alt`)===``&&!e.getAttribute(`title`)&&!hasGlobalAriaAttribute(e)&&!hasTabIndex(e)?`presentation`:`img`,INPUT:e=>{let w=e.type.toLowerCase();if(w===`search`)return e.hasAttribute(`list`)?`combobox`:`searchbox`;if([`email`,`tel`,`text`,`url`,``].includes(w)){let w=getIdRefs(e,e.getAttribute(`list`))[0];return w&&elementSafeTagName(w)===`DATALIST`?`combobox`:`textbox`}return w===`hidden`?``:{button:`button`,checkbox:`checkbox`,image:`button`,number:`spinbutton`,radio:`radio`,range:`slider`,reset:`button`,submit:`button`}[w]||`textbox`},INS:()=>`insertion`,LI:()=>`listitem`,MAIN:()=>`main`,MARK:()=>`mark`,MATH:()=>`math`,MENU:()=>`list`,METER:()=>`meter`,NAV:()=>`navigation`,OL:()=>`list`,OPTGROUP:()=>`group`,OPTION:()=>`option`,OUTPUT:()=>`status`,P:()=>`paragraph`,PROGRESS:()=>`progressbar`,SECTION:e=>hasExplicitAccessibleName(e)?`region`:null,SELECT:e=>e.hasAttribute(`multiple`)||e.size>1?`listbox`:`combobox`,STRONG:()=>`strong`,SUB:()=>`subscript`,SUP:()=>`superscript`,SVG:()=>`img`,TABLE:()=>`table`,TBODY:()=>`rowgroup`,TD:e=>{let w=closestCrossShadow(e,`table`),T=w?getExplicitAriaRole(w):``;return T===`grid`||T===`treegrid`?`gridcell`:`cell`},TEXTAREA:()=>`textbox`,TFOOT:()=>`rowgroup`,TH:e=>{if(e.getAttribute(`scope`)===`col`)return`columnheader`;if(e.getAttribute(`scope`)===`row`)return`rowheader`;let w=closestCrossShadow(e,`table`),T=w?getExplicitAriaRole(w):``;return T===`grid`||T===`treegrid`?`gridcell`:`cell`},THEAD:()=>`rowgroup`,TIME:()=>`time`,TR:()=>`row`,UL:()=>`list`},kPresentationInheritanceParents={DD:[`DL`,`DIV`],DIV:[`DL`],DT:[`DL`,`DIV`],LI:[`OL`,`UL`],TBODY:[`TABLE`],TD:[`TR`],TFOOT:[`TABLE`],TH:[`TR`],THEAD:[`TABLE`],TR:[`THEAD`,`TBODY`,`TFOOT`,`TABLE`]};function getImplicitAriaRole(e){var w;let T=(w=kImplicitRoleByTagName[elementSafeTagName(e)])?.call(kImplicitRoleByTagName,e)||``;if(!T)return null;let E=e;for(;E;){let e=parentElementOrShadowHost(E),w=kPresentationInheritanceParents[elementSafeTagName(E)];if(!w||!e||!w.includes(elementSafeTagName(e)))break;let T=getExplicitAriaRole(e);if((T===`none`||T===`presentation`)&&!hasPresentationConflictResolution(e,T))return T;E=e}return T}var allRoles=`alert.alertdialog.application.article.banner.blockquote.button.caption.cell.checkbox.code.columnheader.combobox.command.complementary.composite.contentinfo.definition.deletion.dialog.directory.document.emphasis.feed.figure.form.generic.grid.gridcell.group.heading.img.input.insertion.landmark.link.list.listbox.listitem.log.main.marquee.math.meter.menu.menubar.menuitem.menuitemcheckbox.menuitemradio.navigation.none.note.option.paragraph.presentation.progressbar.radio.radiogroup.range.region.roletype.row.rowgroup.rowheader.scrollbar.search.searchbox.section.sectionhead.select.separator.slider.spinbutton.status.strong.structure.subscript.superscript.switch.tab.table.tablist.tabpanel.term.textbox.time.timer.toolbar.tooltip.tree.treegrid.treeitem.widget.window`.split(`.`),abstractRoles=[`command`,`composite`,`input`,`landmark`,`range`,`roletype`,`section`,`sectionhead`,`select`,`structure`,`widget`,`window`],validRoles=allRoles.filter(e=>!abstractRoles.includes(e));function getExplicitAriaRole(e){let w=(e.getAttribute(`role`)||``).split(` `).map(e=>e.trim());return w.find(e=>validRoles.includes(e))||null}function hasPresentationConflictResolution(e,w){return hasGlobalAriaAttribute(e,w)||isFocusable(e)}function getAriaRole(e){let w=getExplicitAriaRole(e);if(!w)return getImplicitAriaRole(e);if(w===`none`||w===`presentation`){let w=getImplicitAriaRole(e);if(hasPresentationConflictResolution(e,w))return w}return w}function getAriaBoolean(e){return e===null?void 0:e.toLowerCase()===`true`}function isElementIgnoredForAria(e){return[`STYLE`,`SCRIPT`,`NOSCRIPT`,`TEMPLATE`].includes(elementSafeTagName(e))}function isElementHiddenForAria(e){if(isElementIgnoredForAria(e))return!0;let w=getElementComputedStyle(e),T=e.nodeName===`SLOT`;if(w?.display===`contents`&&!T){for(let w=e.firstChild;w;w=w.nextSibling)if(w.nodeType===1&&!isElementHiddenForAria(w)||w.nodeType===3&&isVisibleTextNode(w))return!1;return!0}let E=e.nodeName===`OPTION`&&!!e.closest(`select`);return!E&&!T&&!isElementStyleVisibilityVisible(e,w)?!0:belongsToDisplayNoneOrAriaHiddenOrNonSlotted(e)}function belongsToDisplayNoneOrAriaHiddenOrNonSlotted(e){let w=cacheIsHidden?.get(e);if(w===void 0){if(w=!1,e.parentElement&&e.parentElement.shadowRoot&&!e.assignedSlot&&(w=!0),!w){let T=getElementComputedStyle(e);w=!T||T.display===`none`||getAriaBoolean(e.getAttribute(`aria-hidden`))===!0}if(!w){let T=parentElementOrShadowHost(e);T&&(w=belongsToDisplayNoneOrAriaHiddenOrNonSlotted(T))}cacheIsHidden?.set(e,w)}return w}function getIdRefs(e,w){if(!w)return[];let T=enclosingShadowRootOrDocument(e);if(!T)return[];try{let e=w.split(` `).filter(e=>!!e),E=new Set;for(let w of e){let e=T.querySelector(`#${CSS.escape(w)}`);e&&E.add(e)}return[...E]}catch{return[]}}function trimFlatString(e){return e.trim()}function asFlatString(e){return e.split(`\xA0`).map(e=>e.replace(/\r\n/g,`
|
|
3
3
|
`).replace(/[\u200b\u00ad]/g,``).replace(/\s\s*/g,` `)).join(`\xA0`).trim()}function queryInAriaOwned(e,w){let T=[...e.querySelectorAll(w)];for(let E of getIdRefs(e,e.getAttribute(`aria-owns`)))E.matches(w)&&T.push(E),T.push(...E.querySelectorAll(w));return T}function getPseudoContent(e,w){let T=w===`::before`?cachePseudoContentBefore:cachePseudoContentAfter;if(T?.has(e))return T?.get(e)||``;let E=getElementComputedStyle(e,w),D=getPseudoContentImpl(E);return T&&T.set(e,D),D}function getPseudoContentImpl(e){if(!e)return``;let w=e.content;if(w[0]===`'`&&w[w.length-1]===`'`||w[0]===`"`&&w[w.length-1]===`"`){let T=w.substring(1,w.length-1),E=e.display||`inline`;return E===`inline`?T:` ${T} `}return``}function getAriaLabelledByElements(e){let w=e.getAttribute(`aria-labelledby`);return w===null?null:getIdRefs(e,w)}function allowsNameFromContent(e,w){let T=[`button`,`cell`,`checkbox`,`columnheader`,`gridcell`,`heading`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`row`,`rowheader`,`switch`,`tab`,`tooltip`,`treeitem`].includes(e),E=w&&[``,`caption`,`code`,`contentinfo`,`definition`,`deletion`,`emphasis`,`insertion`,`list`,`listitem`,`mark`,`none`,`paragraph`,`presentation`,`region`,`row`,`rowgroup`,`section`,`strong`,`subscript`,`superscript`,`table`,`term`,`time`].includes(e);return T||E}function getElementAccessibleName(e,w){let T=w?cacheAccessibleNameHidden:cacheAccessibleName,E=T?.get(e);if(E===void 0){E=``;let D=[`caption`,`code`,`definition`,`deletion`,`emphasis`,`generic`,`insertion`,`mark`,`paragraph`,`presentation`,`strong`,`subscript`,`suggestion`,`superscript`,`term`,`time`].includes(getAriaRole(e)||``);D||(E=asFlatString(getTextAlternativeInternal(e,{includeHidden:w,visitedElements:new Set,embeddedInDescribedBy:void 0,embeddedInLabelledBy:void 0,embeddedInLabel:void 0,embeddedInNativeTextAlternative:void 0,embeddedInTargetElement:`self`}))),T?.set(e,E)}return E}function getElementAccessibleDescription(e,w){let T=cacheAccessibleDescription,E=T?.get(e);if(E===void 0){if(E=``,e.hasAttribute(`aria-describedby`)){let T=getIdRefs(e,e.getAttribute(`aria-describedby`));E=asFlatString(T.map(e=>getTextAlternativeInternal(e,{includeHidden:w,visitedElements:new Set,embeddedInDescribedBy:{element:e,hidden:isElementHiddenForAria(e)}})).join(` `))}else E=e.hasAttribute(`aria-description`)?asFlatString(e.getAttribute(`aria-description`)||``):asFlatString(e.getAttribute(`title`)||``);T?.set(e,E)}return E}var kAriaInvalidRoles=[`application`,`checkbox`,`combobox`,`gridcell`,`listbox`,`radiogroup`,`slider`,`spinbutton`,`textbox`,`tree`,`columnheader`,`rowheader`,`searchbox`,`switch`,`treegrid`];function getAriaInvalid(e){let w=getAriaRole(e)||``;if(!w||!kAriaInvalidRoles.includes(w))return`false`;let T=e.getAttribute(`aria-invalid`);return!T||T.trim()===``||T.toLocaleLowerCase()===`false`?`false`:T===`true`||T===`grammar`||T===`spelling`?T:`true`}function getValidityInvalid(e){if(`validity`in e){let w=e.validity;return w?.valid===!1}return!1}function getElementAccessibleErrorMessage(e){let w=cacheAccessibleErrorMessage,T=cacheAccessibleErrorMessage?.get(e);if(T===void 0){T=``;let E=getAriaInvalid(e)!==`false`,D=getValidityInvalid(e);if(E||D){let w=e.getAttribute(`aria-errormessage`),E=getIdRefs(e,w),D=E.map(e=>asFlatString(getTextAlternativeInternal(e,{visitedElements:new Set,embeddedInDescribedBy:{element:e,hidden:isElementHiddenForAria(e)}})));T=D.join(` `).trim()}w?.set(e,T)}return T}function getTextAlternativeInternal(e,w){var T,E,D,O;if(w.visitedElements.has(e))return``;let k={...w,embeddedInTargetElement:w.embeddedInTargetElement===`self`?`descendant`:w.embeddedInTargetElement};if(!w.includeHidden){let k=!!(T=w.embeddedInLabelledBy)?.hidden||!!(E=w.embeddedInDescribedBy)?.hidden||!!(D=w.embeddedInNativeTextAlternative)?.hidden||!!(O=w.embeddedInLabel)?.hidden;if(isElementIgnoredForAria(e)||!k&&isElementHiddenForAria(e))return w.visitedElements.add(e),``}let A=getAriaLabelledByElements(e);if(!w.embeddedInLabelledBy){let e=(A||[]).map(e=>getTextAlternativeInternal(e,{...w,embeddedInLabelledBy:{element:e,hidden:isElementHiddenForAria(e)},embeddedInDescribedBy:void 0,embeddedInTargetElement:void 0,embeddedInLabel:void 0,embeddedInNativeTextAlternative:void 0})).join(` `);if(e)return e}let j=getAriaRole(e)||``,M=elementSafeTagName(e);if(w.embeddedInLabel||w.embeddedInLabelledBy||w.embeddedInTargetElement===`descendant`){let T=[...e.labels||[]].includes(e),E=(A||[]).includes(e);if(!T&&!E){if(j===`textbox`)return w.visitedElements.add(e),M===`INPUT`||M===`TEXTAREA`?e.value:e.textContent||``;if([`combobox`,`listbox`].includes(j)){w.visitedElements.add(e);let T;if(M===`SELECT`)T=[...e.selectedOptions],!T.length&&e.options.length&&T.push(e.options[0]);else{let w=j===`combobox`?queryInAriaOwned(e,`*`).find(e=>getAriaRole(e)===`listbox`):e;T=w?queryInAriaOwned(w,`[aria-selected="true"]`).filter(e=>getAriaRole(e)===`option`):[]}return!T.length&&M===`INPUT`?e.value:T.map(e=>getTextAlternativeInternal(e,k)).join(` `)}if([`progressbar`,`scrollbar`,`slider`,`spinbutton`,`meter`].includes(j))return w.visitedElements.add(e),e.hasAttribute(`aria-valuetext`)?e.getAttribute(`aria-valuetext`)||``:e.hasAttribute(`aria-valuenow`)?e.getAttribute(`aria-valuenow`)||``:e.getAttribute(`value`)||``;if([`menu`].includes(j))return w.visitedElements.add(e),``}}let N=e.getAttribute(`aria-label`)||``;if(trimFlatString(N))return w.visitedElements.add(e),N;if(![`presentation`,`none`].includes(j)){if(M===`INPUT`&&[`button`,`submit`,`reset`].includes(e.type)){w.visitedElements.add(e);let T=e.value||``;if(trimFlatString(T))return T;if(e.type===`submit`)return`Submit`;if(e.type===`reset`)return`Reset`;let E=e.getAttribute(`title`)||``;return E}if(M===`INPUT`&&e.type===`image`){w.visitedElements.add(e);let T=e.labels||[];if(T.length&&!w.embeddedInLabelledBy)return getAccessibleNameFromAssociatedLabels(T,w);let E=e.getAttribute(`alt`)||``;if(trimFlatString(E))return E;let D=e.getAttribute(`title`)||``;return trimFlatString(D)?D:`Submit`}if(!A&&M===`BUTTON`){w.visitedElements.add(e);let T=e.labels||[];if(T.length)return getAccessibleNameFromAssociatedLabels(T,w)}if(!A&&M===`OUTPUT`){w.visitedElements.add(e);let T=e.labels||[];return T.length?getAccessibleNameFromAssociatedLabels(T,w):e.getAttribute(`title`)||``}if(!A&&(M===`TEXTAREA`||M===`SELECT`||M===`INPUT`)){w.visitedElements.add(e);let T=e.labels||[];if(T.length)return getAccessibleNameFromAssociatedLabels(T,w);let E=M===`INPUT`&&[`text`,`password`,`search`,`tel`,`email`,`url`].includes(e.type)||M===`TEXTAREA`,D=e.getAttribute(`placeholder`)||``,O=e.getAttribute(`title`)||``;return!E||O?O:D}if(!A&&M===`FIELDSET`){w.visitedElements.add(e);for(let w=e.firstElementChild;w;w=w.nextElementSibling)if(elementSafeTagName(w)===`LEGEND`)return getTextAlternativeInternal(w,{...k,embeddedInNativeTextAlternative:{element:w,hidden:isElementHiddenForAria(w)}});let T=e.getAttribute(`title`)||``;return T}if(!A&&M===`FIGURE`){w.visitedElements.add(e);for(let w=e.firstElementChild;w;w=w.nextElementSibling)if(elementSafeTagName(w)===`FIGCAPTION`)return getTextAlternativeInternal(w,{...k,embeddedInNativeTextAlternative:{element:w,hidden:isElementHiddenForAria(w)}});let T=e.getAttribute(`title`)||``;return T}if(M===`IMG`){w.visitedElements.add(e);let T=e.getAttribute(`alt`)||``;if(trimFlatString(T))return T;let E=e.getAttribute(`title`)||``;return E}if(M===`TABLE`){w.visitedElements.add(e);for(let w=e.firstElementChild;w;w=w.nextElementSibling)if(elementSafeTagName(w)===`CAPTION`)return getTextAlternativeInternal(w,{...k,embeddedInNativeTextAlternative:{element:w,hidden:isElementHiddenForAria(w)}});let T=e.getAttribute(`summary`)||``;if(T)return T}if(M===`AREA`){w.visitedElements.add(e);let T=e.getAttribute(`alt`)||``;if(trimFlatString(T))return T;let E=e.getAttribute(`title`)||``;return E}if(M===`SVG`||e.ownerSVGElement){w.visitedElements.add(e);for(let w=e.firstElementChild;w;w=w.nextElementSibling)if(elementSafeTagName(w)===`TITLE`&&w.ownerSVGElement)return getTextAlternativeInternal(w,{...k,embeddedInLabelledBy:{element:w,hidden:isElementHiddenForAria(w)}})}if(e.ownerSVGElement&&M===`A`){let T=e.getAttribute(`xlink:title`)||``;if(trimFlatString(T))return w.visitedElements.add(e),T}}let P=M===`SUMMARY`&&![`presentation`,`none`].includes(j);if(allowsNameFromContent(j,w.embeddedInTargetElement===`descendant`)||P||w.embeddedInLabelledBy||w.embeddedInDescribedBy||w.embeddedInLabel||w.embeddedInNativeTextAlternative){w.visitedElements.add(e);let T=innerAccumulatedElementText(e,k),E=w.embeddedInTargetElement===`self`?trimFlatString(T):T;if(E)return T}if(![`presentation`,`none`].includes(j)||M===`IFRAME`){w.visitedElements.add(e);let T=e.getAttribute(`title`)||``;if(trimFlatString(T))return T}return w.visitedElements.add(e),``}function innerAccumulatedElementText(e,w){let T=[],E=(e,E)=>{var D;if(!(E&&e.assignedSlot))if(e.nodeType===1){let E=(D=getElementComputedStyle(e))?.display||`inline`,O=getTextAlternativeInternal(e,w);(E!==`inline`||e.nodeName===`BR`)&&(O=` `+O+` `),T.push(O)}else e.nodeType===3&&T.push(e.textContent||``)};T.push(getPseudoContent(e,`::before`));let D=e.nodeName===`SLOT`?e.assignedNodes():[];if(D.length)for(let e of D)E(e,!1);else{for(let w=e.firstChild;w;w=w.nextSibling)E(w,!0);if(e.shadowRoot)for(let w=e.shadowRoot.firstChild;w;w=w.nextSibling)E(w,!0);for(let w of getIdRefs(e,e.getAttribute(`aria-owns`)))E(w,!0)}return T.push(getPseudoContent(e,`::after`)),T.join(``)}var kAriaSelectedRoles=[`gridcell`,`option`,`row`,`tab`,`rowheader`,`columnheader`,`treeitem`];function getAriaSelected(e){return elementSafeTagName(e)===`OPTION`?e.selected:kAriaSelectedRoles.includes(getAriaRole(e)||``)?getAriaBoolean(e.getAttribute(`aria-selected`))===!0:!1}var kAriaCheckedRoles=[`checkbox`,`menuitemcheckbox`,`option`,`radio`,`switch`,`menuitemradio`,`treeitem`];function getAriaChecked(e){let w=getChecked(e);return w===`error`?!1:w}function getChecked(e,w){let T=elementSafeTagName(e);if(T===`INPUT`&&e.indeterminate)return`mixed`;if(T===`INPUT`&&[`checkbox`,`radio`].includes(e.type))return e.checked;if(kAriaCheckedRoles.includes(getAriaRole(e)||``)){let w=e.getAttribute(`aria-checked`);return w===`true`?!0:w===`mixed`?`mixed`:!1}return`error`}var kAriaPressedRoles=[`button`];function getAriaPressed(e){if(kAriaPressedRoles.includes(getAriaRole(e)||``)){let w=e.getAttribute(`aria-pressed`);if(w===`true`)return!0;if(w===`mixed`)return`mixed`}return!1}var kAriaExpandedRoles=[`application`,`button`,`checkbox`,`combobox`,`gridcell`,`link`,`listbox`,`menuitem`,`row`,`rowheader`,`tab`,`treeitem`,`columnheader`,`menuitemcheckbox`,`menuitemradio`,`rowheader`,`switch`];function getAriaExpanded(e){if(elementSafeTagName(e)===`DETAILS`)return e.open;if(kAriaExpandedRoles.includes(getAriaRole(e)||``)){let w=e.getAttribute(`aria-expanded`);return w===null?`none`:w===`true`}return`none`}var kAriaLevelRoles=[`heading`,`listitem`,`row`,`treeitem`];function getAriaLevel(e){let w={H1:1,H2:2,H3:3,H4:4,H5:5,H6:6}[elementSafeTagName(e)];if(w)return w;if(kAriaLevelRoles.includes(getAriaRole(e)||``)){let w=e.getAttribute(`aria-level`),T=w===null?NaN:Number(w);if(Number.isInteger(T)&&T>=1)return T}return 0}var kAriaDisabledRoles=`application.button.composite.gridcell.group.input.link.menuitem.scrollbar.separator.tab.checkbox.columnheader.combobox.grid.listbox.menu.menubar.menuitemcheckbox.menuitemradio.option.radio.radiogroup.row.rowheader.searchbox.select.slider.spinbutton.switch.tablist.textbox.toolbar.tree.treegrid.treeitem`.split(`.`);function getAriaDisabled(e){return isNativelyDisabled(e)||hasExplicitAriaDisabled(e)}function isNativelyDisabled(e){let w=[`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`OPTION`,`OPTGROUP`].includes(e.tagName);return w&&(e.hasAttribute(`disabled`)||belongsToDisabledFieldSet(e))}function belongsToDisabledFieldSet(e){let w=e?.closest(`FIELDSET[DISABLED]`);if(!w)return!1;let T=w.querySelector(`:scope > LEGEND`);return!T||!T.contains(e)}function hasExplicitAriaDisabled(e){if(!e)return!1;if(kAriaDisabledRoles.includes(getAriaRole(e)||``)){let w=(e.getAttribute(`aria-disabled`)||``).toLowerCase();if(w===`true`)return!0;if(w===`false`)return!1}return hasExplicitAriaDisabled(parentElementOrShadowHost(e))}function getAccessibleNameFromAssociatedLabels(e,w){return[...e].map(e=>getTextAlternativeInternal(e,{...w,embeddedInLabel:{element:e,hidden:isElementHiddenForAria(e)},embeddedInNativeTextAlternative:void 0,embeddedInLabelledBy:void 0,embeddedInDescribedBy:void 0,embeddedInTargetElement:void 0})).filter(e=>!!e).join(` `)}var cacheAccessibleName,cacheAccessibleNameHidden,cacheAccessibleErrorMessage,cacheAccessibleDescription,cacheIsHidden,cachePseudoContentBefore,cachePseudoContentAfter,cachesCounter=0;function beginAriaCaches(){++cachesCounter,cacheAccessibleName??=new Map,cacheAccessibleNameHidden??=new Map,cacheAccessibleDescription??=new Map,cacheAccessibleErrorMessage??=new Map,cacheIsHidden??=new Map,cachePseudoContentBefore??=new Map,cachePseudoContentAfter??=new Map}function endAriaCaches(){--cachesCounter||(cacheAccessibleName=void 0,cacheAccessibleNameHidden=void 0,cacheAccessibleDescription=void 0,cacheAccessibleErrorMessage=void 0,cacheIsHidden=void 0,cachePseudoContentBefore=void 0,cachePseudoContentAfter=void 0)}function matchesAttributePart(e,w){let T=typeof e==`string`&&!w.caseSensitive?e.toUpperCase():e,E=typeof w.value==`string`&&!w.caseSensitive?w.value.toUpperCase():w.value;return w.op===`<truthy>`?!!T:w.op===`=`?E instanceof RegExp?typeof T==`string`&&!!T.match(E):T===E:typeof T!=`string`||typeof E!=`string`?!1:w.op===`*=`?T.includes(E):w.op===`^=`?T.startsWith(E):w.op===`$=`?T.endsWith(E):w.op===`|=`?T===E||T.startsWith(`${E}-`):w.op===`~=`?T.split(` `).includes(E):!1}function shouldSkipForTextMatching(e){let w=e.ownerDocument;return e.nodeName===`SCRIPT`||e.nodeName===`NOSCRIPT`||e.nodeName===`STYLE`||w.head&&w.head.contains(e)}function elementText(e,w){let T=e.get(w);if(T===void 0){if(T={full:``,normalized:``,immediate:[]},!shouldSkipForTextMatching(w)){let E=``;if(w instanceof HTMLInputElement&&(w.type===`submit`||w.type===`button`))T={full:w.value,normalized:normalizeWhiteSpace(w.value),immediate:[w.value]};else{for(let D=w.firstChild;D;D=D.nextSibling)D.nodeType===Node.TEXT_NODE?(T.full+=D.nodeValue||``,E+=D.nodeValue||``):(E&&T.immediate.push(E),E=``,D.nodeType===Node.ELEMENT_NODE&&(T.full+=elementText(e,D).full));E&&T.immediate.push(E),w.shadowRoot&&(T.full+=elementText(e,w.shadowRoot).full),T.full&&(T.normalized=normalizeWhiteSpace(T.full))}}e.set(w,T)}return T}function elementMatchesText(e,w,T){if(shouldSkipForTextMatching(w)||!T(elementText(e,w)))return`none`;for(let E=w.firstChild;E;E=E.nextSibling)if(E.nodeType===Node.ELEMENT_NODE&&T(elementText(e,E)))return`selfAndChildren`;return w.shadowRoot&&T(elementText(e,w.shadowRoot))?`selfAndChildren`:`self`}function getElementLabels(e,w){let T=getAriaLabelledByElements(w);if(T)return T.map(w=>elementText(e,w));let E=w.getAttribute(`aria-label`);if(E!==null&&E.trim())return[{full:E,normalized:normalizeWhiteSpace(E),immediate:[E]}];let D=w.nodeName===`INPUT`&&w.type!==`hidden`;if([`BUTTON`,`METER`,`OUTPUT`,`PROGRESS`,`SELECT`,`TEXTAREA`].includes(w.nodeName)||D){let T=w.labels;if(T)return[...T].map(w=>elementText(e,w))}return[]}var kSupportedAttributes=[`selected`,`checked`,`pressed`,`expanded`,`level`,`disabled`,`name`,`include-hidden`];kSupportedAttributes.sort();function validateSupportedRole(e,w,T){if(!w.includes(T))throw Error(`"${e}" attribute is only supported for roles: ${w.slice().sort().map(e=>`"${e}"`).join(`, `)}`)}function validateSupportedValues(e,w){if(e.op!==`<truthy>`&&!w.includes(e.value))throw Error(`"${e.name}" must be one of ${w.map(e=>JSON.stringify(e)).join(`, `)}`)}function validateSupportedOp(e,w){if(!w.includes(e.op))throw Error(`"${e.name}" does not support "${e.op}" matcher`)}function validateAttributes(e,w){let T={role:w};for(let E of e)switch(E.name){case`checked`:validateSupportedRole(E.name,kAriaCheckedRoles,w),validateSupportedValues(E,[!0,!1,`mixed`]),validateSupportedOp(E,[`<truthy>`,`=`]),T.checked=E.op===`<truthy>`?!0:E.value;break;case`pressed`:validateSupportedRole(E.name,kAriaPressedRoles,w),validateSupportedValues(E,[!0,!1,`mixed`]),validateSupportedOp(E,[`<truthy>`,`=`]),T.pressed=E.op===`<truthy>`?!0:E.value;break;case`selected`:validateSupportedRole(E.name,kAriaSelectedRoles,w),validateSupportedValues(E,[!0,!1]),validateSupportedOp(E,[`<truthy>`,`=`]),T.selected=E.op===`<truthy>`?!0:E.value;break;case`expanded`:validateSupportedRole(E.name,kAriaExpandedRoles,w),validateSupportedValues(E,[!0,!1]),validateSupportedOp(E,[`<truthy>`,`=`]),T.expanded=E.op===`<truthy>`?!0:E.value;break;case`level`:if(validateSupportedRole(E.name,kAriaLevelRoles,w),typeof E.value==`string`&&(E.value=+E.value),E.op!==`=`||typeof E.value!=`number`||Number.isNaN(E.value))throw Error(`"level" attribute must be compared to a number`);T.level=E.value;break;case`disabled`:validateSupportedValues(E,[!0,!1]),validateSupportedOp(E,[`<truthy>`,`=`]),T.disabled=E.op===`<truthy>`?!0:E.value;break;case`name`:if(E.op===`<truthy>`)throw Error(`"name" attribute must have a value`);if(typeof E.value!=`string`&&!(E.value instanceof RegExp))throw TypeError(`"name" attribute must be a string or a regular expression`);T.name=E.value,T.nameOp=E.op,T.exact=E.caseSensitive;break;case`include-hidden`:validateSupportedValues(E,[!0,!1]),validateSupportedOp(E,[`<truthy>`,`=`]),T.includeHidden=E.op===`<truthy>`?!0:E.value;break;default:throw Error(`Unknown attribute "${E.name}", must be one of ${kSupportedAttributes.map(e=>`"${e}"`).join(`, `)}.`)}return T}function queryRole(e,w,T){let E=[],D=e=>{if(getAriaRole(e)===w.role&&!(w.selected!==void 0&&getAriaSelected(e)!==w.selected)&&!(w.checked!==void 0&&getAriaChecked(e)!==w.checked)&&!(w.pressed!==void 0&&getAriaPressed(e)!==w.pressed)&&!(w.expanded!==void 0&&getAriaExpanded(e)!==w.expanded)&&!(w.level!==void 0&&getAriaLevel(e)!==w.level)&&!(w.disabled!==void 0&&getAriaDisabled(e)!==w.disabled)){if(!w.includeHidden){let w=isElementHiddenForAria(e);if(w)return}if(w.name!==void 0){let E=normalizeWhiteSpace(getElementAccessibleName(e,!!w.includeHidden));if(typeof w.name==`string`&&(w.name=normalizeWhiteSpace(w.name)),T&&!w.exact&&w.nameOp===`=`&&(w.nameOp=`*=`),!matchesAttributePart(E,{op:w.nameOp||`=`,value:w.name,caseSensitive:!!w.exact}))return}E.push(e)}},O=e=>{let w=[];e.shadowRoot&&w.push(e.shadowRoot);for(let T of e.querySelectorAll(`*`))D(T),T.shadowRoot&&w.push(T.shadowRoot);w.forEach(O)};return O(e),E}function createRoleEngine(e){return{queryAll:(w,T)=>{let E=parseAttributeSelector(T),D=E.name.toLowerCase();if(!D)throw Error(`Role must not be empty`);let O=validateAttributes(E.attributes,D);beginAriaCaches();try{return queryRole(w,O,e)}finally{endAriaCaches()}}}}function asLocator(e,w,T=!1){return asLocators(e,w,T)[0]}function asLocators(e,w,T=!1,E=20,D){try{return innerAsLocators(new generators[e](D),parseSelector(w),T,E)}catch{return[w]}}function innerAsLocators(e,w,T=!1,E=20){let D=[...w.parts];for(let e=0;e<D.length-1;e++)if(D[e].name===`nth`&&D[e+1].name===`internal:control`&&D[e+1].body===`enter-frame`){let[w]=D.splice(e,1);D.splice(e+1,0,w)}let O=[],k=T?`frame-locator`:`page`;for(let w=0;w<D.length;w++){let T=D[w],A=k;if(k=`locator`,T.name===`nth`){T.body===`0`?O.push([e.generateLocator(A,`first`,``),e.generateLocator(A,`nth`,`0`)]):T.body===`-1`?O.push([e.generateLocator(A,`last`,``),e.generateLocator(A,`nth`,`-1`)]):O.push([e.generateLocator(A,`nth`,T.body)]);continue}if(T.name===`internal:text`){let{exact:w,text:E}=detectExact(T.body);O.push([e.generateLocator(A,`text`,E,{exact:w})]);continue}if(T.name===`internal:has-text`){let{exact:w,text:E}=detectExact(T.body);if(!w){O.push([e.generateLocator(A,`has-text`,E,{exact:w})]);continue}}if(T.name===`internal:has-not-text`){let{exact:w,text:E}=detectExact(T.body);if(!w){O.push([e.generateLocator(A,`has-not-text`,E,{exact:w})]);continue}}if(T.name===`internal:has`){let w=innerAsLocators(e,T.body.parsed,!1,E);O.push(w.map(w=>e.generateLocator(A,`has`,w)));continue}if(T.name===`internal:has-not`){let w=innerAsLocators(e,T.body.parsed,!1,E);O.push(w.map(w=>e.generateLocator(A,`hasNot`,w)));continue}if(T.name===`internal:and`){let w=innerAsLocators(e,T.body.parsed,!1,E);O.push(w.map(w=>e.generateLocator(A,`and`,w)));continue}if(T.name===`internal:or`){let w=innerAsLocators(e,T.body.parsed,!1,E);O.push(w.map(w=>e.generateLocator(A,`or`,w)));continue}if(T.name===`internal:chain`){let w=innerAsLocators(e,T.body.parsed,!1,E);O.push(w.map(w=>e.generateLocator(A,`chain`,w)));continue}if(T.name===`internal:label`){let{exact:w,text:E}=detectExact(T.body);O.push([e.generateLocator(A,`label`,E,{exact:w})]);continue}if(T.name===`internal:role`){let w=parseAttributeSelector(T.body),E={attrs:[]};for(let e of w.attributes)e.name===`name`?(E.exact=e.caseSensitive,E.name=e.value):(e.name===`level`&&typeof e.value==`string`&&(e.value=+e.value),E.attrs.push({name:e.name===`include-hidden`?`includeHidden`:e.name,value:e.value}));O.push([e.generateLocator(A,`role`,w.name,E)]);continue}if(T.name===`internal:testid`){let w=parseAttributeSelector(T.body),{value:E}=w.attributes[0];O.push([e.generateLocator(A,`test-id`,E)]);continue}if(T.name===`internal:attr`){let w=parseAttributeSelector(T.body),{name:E,value:D,caseSensitive:k}=w.attributes[0],j=D,M=!!k;if(E===`placeholder`){O.push([e.generateLocator(A,`placeholder`,j,{exact:M})]);continue}if(E===`alt`){O.push([e.generateLocator(A,`alt`,j,{exact:M})]);continue}if(E===`title`){O.push([e.generateLocator(A,`title`,j,{exact:M})]);continue}}let j=`default`,M=D[w+1];M&&M.name===`internal:control`&&M.body===`enter-frame`&&(j=`frame`,k=`frame-locator`,w++);let N=stringifySelector({parts:[T]}),P=e.generateLocator(A,j,N);if(j===`default`&&M&&[`internal:has-text`,`internal:has-not-text`].includes(M.name)){let{exact:T,text:E}=detectExact(M.body);if(!T){let D=e.generateLocator(`locator`,M.name===`internal:has-text`?`has-text`:`has-not-text`,E,{exact:T}),k={};M.name===`internal:has-text`?k.hasText=E:k.hasNotText=E;let j=e.generateLocator(A,`default`,N,k);O.push([e.chainLocators([P,D]),j]),w++;continue}}let F;if([`xpath`,`css`].includes(T.name)){let w=stringifySelector({parts:[T]},!0);F=e.generateLocator(A,j,w)}O.push([P,F].filter(Boolean))}return combineTokens(e,O,E)}function combineTokens(e,w,T){let E=w.map(()=>``),D=[],O=k=>{if(k===w.length)return D.push(e.chainLocators(E)),E.length<T;for(let e of w[k])if(E[k]=e,!O(k+1))return!1;return!0};return O(0),D}function detectExact(e){let w=!1,T=e.match(/^\/(.*)\/([igm]*)$/);return T?{text:new RegExp(T[1],T[2])}:(e.endsWith(`"`)?(e=JSON.parse(e),w=!0):e.endsWith(`"s`)?(e=JSON.parse(e.substring(0,e.length-1)),w=!0):e.endsWith(`"i`)&&(e=JSON.parse(e.substring(0,e.length-1)),w=!1),{exact:w,text:e})}var JavaScriptLocatorFactory=class{constructor(e){this.preferredQuote=e}generateLocator(e,w,T,E={}){switch(w){case`default`:return E.hasText===void 0?E.hasNotText===void 0?`locator(${this.quote(T)})`:`locator(${this.quote(T)}, { hasNotText: ${this.toHasText(E.hasNotText)} })`:`locator(${this.quote(T)}, { hasText: ${this.toHasText(E.hasText)} })`;case`frame`:return`frameLocator(${this.quote(T)})`;case`nth`:return`nth(${T})`;case`first`:return`first()`;case`last`:return`last()`;case`role`:{let e=[];isRegExp(E.name)?e.push(`name: ${this.regexToSourceString(E.name)}`):typeof E.name==`string`&&(e.push(`name: ${this.quote(E.name)}`),E.exact&&e.push(`exact: true`));for(let{name:w,value:T}of E.attrs)e.push(`${w}: ${typeof T==`string`?this.quote(T):T}`);let w=e.length?`, { ${e.join(`, `)} }`:``;return`getByRole(${this.quote(T)}${w})`}case`has-text`:return`filter({ hasText: ${this.toHasText(T)} })`;case`has-not-text`:return`filter({ hasNotText: ${this.toHasText(T)} })`;case`has`:return`filter({ has: ${T} })`;case`hasNot`:return`filter({ hasNot: ${T} })`;case`and`:return`and(${T})`;case`or`:return`or(${T})`;case`chain`:return`locator(${T})`;case`test-id`:return`getByTestId(${this.toTestIdValue(T)})`;case`text`:return this.toCallWithExact(`getByText`,T,!!E.exact);case`alt`:return this.toCallWithExact(`getByAltText`,T,!!E.exact);case`placeholder`:return this.toCallWithExact(`getByPlaceholder`,T,!!E.exact);case`label`:return this.toCallWithExact(`getByLabel`,T,!!E.exact);case`title`:return this.toCallWithExact(`getByTitle`,T,!!E.exact);default:throw Error(`Unknown selector kind ${w}`)}}chainLocators(e){return e.join(`.`)}regexToSourceString(e){return normalizeEscapedRegexQuotes(String(e))}toCallWithExact(e,w,T){return isRegExp(w)?`${e}(${this.regexToSourceString(w)})`:T?`${e}(${this.quote(w)}, { exact: true })`:`${e}(${this.quote(w)})`}toHasText(e){return isRegExp(e)?this.regexToSourceString(e):this.quote(e)}toTestIdValue(e){return isRegExp(e)?this.regexToSourceString(e):this.quote(e)}quote(e){var w;return escapeWithQuotes(e,(w=this.preferredQuote)??`'`)}},generators={javascript:JavaScriptLocatorFactory};function isRegExp(e){return e instanceof RegExp}var cacheAllowText=new Map,cacheDisallowText=new Map,kTextScoreRange=10,kExactPenalty=kTextScoreRange/2,kTestIdScore=1,kOtherTestIdScore=2,kIframeByAttributeScore=10,kBeginPenalizedScore=50,kPlaceholderScore=100,kLabelScore=120,kRoleWithNameScore=140,kAltTextScore=160,kTextScore=180,kTitleScore=200,kTextScoreRegex=250,kPlaceholderScoreExact=kPlaceholderScore+kExactPenalty,kLabelScoreExact=kLabelScore+kExactPenalty,kRoleWithNameScoreExact=kRoleWithNameScore+kExactPenalty,kAltTextScoreExact=kAltTextScore+kExactPenalty,kTextScoreExact=kTextScore+kExactPenalty,kTitleScoreExact=kTitleScore+kExactPenalty,kEndPenalizedScore=300,kCSSIdScore=500,kRoleWithoutNameScore=510,kCSSInputTypeNameScore=520,kCSSTagNameScore=530,kNthScore=1e4,kCSSFallbackScore=1e7;function generateSelector(e,w,T){e._evaluator.begin(),beginAriaCaches();try{let E=generateSelectorFor(e,w,T)||cssFallback(e,w,T);return joinTokens(E)}finally{cacheAllowText.clear(),cacheDisallowText.clear(),endAriaCaches(),e._evaluator.end()}}function filterRegexTokens(e){return e.filter(e=>e[0].selector[0]!==`/`)}function generateSelectorFor(e,w,T){if(w.ownerDocument.documentElement===w)return[{engine:`css`,selector:`html`,score:1}];let E=(E,O)=>{let k=E===w,A=O?buildTextCandidates(e,E,E===w):[];E!==w&&(A=filterRegexTokens(A));let j=buildNoTextCandidates(e,E,T).map(e=>[e]),M=chooseFirstSelector(e,w.ownerDocument,E,[...A,...j],k);A=filterRegexTokens(A);let N=w=>{let T=O&&!w.length,A=[...w,...j].filter(e=>M?combineScores(e)<combineScores(M):!0),N=A[0];if(N)for(let w=parentElementOrShadowHost(E);w;w=parentElementOrShadowHost(w)){let O=D(w,T);if(!O||M&&combineScores([...O,...N])>=combineScores(M))continue;if(N=chooseFirstSelector(e,w,E,A,k),!N)return;let j=[...O,...N];(!M||combineScores(j)<combineScores(M))&&(M=j)}};return N(A),E===w&&A.length&&N([]),M},D=(e,w)=>{let T=w?cacheAllowText:cacheDisallowText,D=T.get(e);return D===void 0&&(D=E(e,w),T.set(e,D)),D};return E(w,!T.noText)}function buildNoTextCandidates(e,w,T){let E=[];for(let e of[`data-testid`,`data-test-id`,`data-test`])e!==T.testIdAttributeName&&w.getAttribute(e)&&E.push({engine:`css`,selector:`[${e}=${quoteCSSAttributeValue(w.getAttribute(e))}]`,score:kOtherTestIdScore});if(!T.noCSSId){let e=w.getAttribute(`id`);e&&!isGuidLike(e)&&E.push({engine:`css`,selector:makeSelectorForId(e),score:kCSSIdScore})}if(E.push({engine:`css`,selector:cssEscape(w.nodeName.toLowerCase()),score:kCSSTagNameScore}),w.nodeName===`IFRAME`){for(let e of[`name`,`title`])w.getAttribute(e)&&E.push({engine:`css`,selector:`${cssEscape(w.nodeName.toLowerCase())}[${e}=${quoteCSSAttributeValue(w.getAttribute(e))}]`,score:kIframeByAttributeScore});return w.getAttribute(T.testIdAttributeName)&&E.push({engine:`css`,selector:`[${T.testIdAttributeName}=${quoteCSSAttributeValue(w.getAttribute(T.testIdAttributeName))}]`,score:kTestIdScore}),penalizeScoreForLength([E]),E}if(w.getAttribute(T.testIdAttributeName)&&E.push({engine:`internal:testid`,selector:`[${T.testIdAttributeName}=${escapeForAttributeSelector(w.getAttribute(T.testIdAttributeName),!0)}]`,score:kTestIdScore}),w.nodeName===`INPUT`||w.nodeName===`TEXTAREA`){let e=w;if(e.placeholder){E.push({engine:`internal:attr`,selector:`[placeholder=${escapeForAttributeSelector(e.placeholder,!0)}]`,score:kPlaceholderScoreExact});for(let w of suitableTextAlternatives(e.placeholder))E.push({engine:`internal:attr`,selector:`[placeholder=${escapeForAttributeSelector(w.text,!1)}]`,score:kPlaceholderScore-w.scoreBouns})}}let D=getElementLabels(e._evaluator._cacheText,w);for(let e of D){let w=e.normalized;E.push({engine:`internal:label`,selector:escapeForTextSelector(w,!0),score:kLabelScoreExact});for(let e of suitableTextAlternatives(w))E.push({engine:`internal:label`,selector:escapeForTextSelector(e.text,!1),score:kLabelScore-e.scoreBouns})}let O=getAriaRole(w);return O&&![`none`,`presentation`].includes(O)&&E.push({engine:`internal:role`,selector:O,score:kRoleWithoutNameScore}),w.getAttribute(`name`)&&[`BUTTON`,`FORM`,`FIELDSET`,`FRAME`,`IFRAME`,`INPUT`,`KEYGEN`,`OBJECT`,`OUTPUT`,`SELECT`,`TEXTAREA`,`MAP`,`META`,`PARAM`].includes(w.nodeName)&&E.push({engine:`css`,selector:`${cssEscape(w.nodeName.toLowerCase())}[name=${quoteCSSAttributeValue(w.getAttribute(`name`))}]`,score:kCSSInputTypeNameScore}),[`INPUT`,`TEXTAREA`].includes(w.nodeName)&&w.getAttribute(`type`)!==`hidden`&&w.getAttribute(`type`)&&E.push({engine:`css`,selector:`${cssEscape(w.nodeName.toLowerCase())}[type=${quoteCSSAttributeValue(w.getAttribute(`type`))}]`,score:kCSSInputTypeNameScore}),[`INPUT`,`TEXTAREA`,`SELECT`].includes(w.nodeName)&&w.getAttribute(`type`)!==`hidden`&&E.push({engine:`css`,selector:cssEscape(w.nodeName.toLowerCase()),score:kCSSInputTypeNameScore+1}),penalizeScoreForLength([E]),E}function buildTextCandidates(e,w,T){if(w.nodeName===`SELECT`)return[];let E=[],D=w.getAttribute(`title`);if(D){E.push([{engine:`internal:attr`,selector:`[title=${escapeForAttributeSelector(D,!0)}]`,score:kTitleScoreExact}]);for(let e of suitableTextAlternatives(D))E.push([{engine:`internal:attr`,selector:`[title=${escapeForAttributeSelector(e.text,!1)}]`,score:kTitleScore-e.scoreBouns}])}let O=w.getAttribute(`alt`);if(O&&[`APPLET`,`AREA`,`IMG`,`INPUT`].includes(w.nodeName)){E.push([{engine:`internal:attr`,selector:`[alt=${escapeForAttributeSelector(O,!0)}]`,score:kAltTextScoreExact}]);for(let e of suitableTextAlternatives(O))E.push([{engine:`internal:attr`,selector:`[alt=${escapeForAttributeSelector(e.text,!1)}]`,score:kAltTextScore-e.scoreBouns}])}let A=elementText(e._evaluator._cacheText,w).normalized;if(A){let e=suitableTextAlternatives(A);if(T){A.length<=80&&E.push([{engine:`internal:text`,selector:escapeForTextSelector(A,!0),score:kTextScoreExact}]);for(let w of e)E.push([{engine:`internal:text`,selector:escapeForTextSelector(w.text,!1),score:kTextScore-w.scoreBouns}])}let D={engine:`css`,selector:cssEscape(w.nodeName.toLowerCase()),score:kCSSTagNameScore};for(let w of e)E.push([D,{engine:`internal:has-text`,selector:escapeForTextSelector(w.text,!1),score:kTextScore-w.scoreBouns}]);if(A.length<=80){let e=RegExp(`^${escapeRegExp(A)}$`);E.push([D,{engine:`internal:has-text`,selector:escapeForTextSelector(e,!1),score:kTextScoreRegex}])}}let j=getAriaRole(w);if(j&&![`none`,`presentation`].includes(j)){let e=getElementAccessibleName(w,!1);if(e){E.push([{engine:`internal:role`,selector:`${j}[name=${escapeForAttributeSelector(e,!0)}]`,score:kRoleWithNameScoreExact}]);for(let w of suitableTextAlternatives(e))E.push([{engine:`internal:role`,selector:`${j}[name=${escapeForAttributeSelector(w.text,!1)}]`,score:kRoleWithNameScore-w.scoreBouns}])}}return penalizeScoreForLength(E),E}function makeSelectorForId(e){return/^[a-z][\w\-]+$/i.test(e)?`#${e}`:`[id="${cssEscape(e)}"]`}function cssFallback(e,w,T){let E=w.ownerDocument,D=[];function O(T){let O=D.slice();T&&O.unshift(T);let k=O.join(` > `),A=e.parseSelector(k),j=e.querySelector(A,E,!1);return j===w?k:void 0}function A(T){let D={engine:`css`,selector:T,score:kCSSFallbackScore},O=e.parseSelector(T),k=e.querySelectorAll(O,E);if(k.length===1)return[D];let A={engine:`nth`,selector:String(k.indexOf(w)),score:kNthScore};return[D,A]}for(let e=w;e&&e!==E;e=parentElementOrShadowHost(e)){let w=e.nodeName.toLowerCase(),E=``;if(e.id&&!T.noCSSId){let w=makeSelectorForId(e.id),T=O(w);if(T)return A(T);E=w}let j=e.parentNode,M=[...e.classList];for(let e=0;e<M.length;++e){let w=`.${cssEscape(M.slice(0,e+1).join(`.`))}`,T=O(w);if(T)return A(T);if(!E&&j){let e=j.querySelectorAll(w);e.length===1&&(E=w)}}if(j){let T=[...j.children],D=T.filter(e=>e.nodeName.toLowerCase()===w),M=D.indexOf(e)===0?cssEscape(w):`${cssEscape(w)}:nth-child(${1+T.indexOf(e)})`,N=O(M);if(N)return A(N);E||=M}else E||=cssEscape(w);D.unshift(E)}return A(O())}function penalizeScoreForLength(e){for(let w of e)for(let e of w)e.score>kBeginPenalizedScore&&e.score<kEndPenalizedScore&&(e.score+=Math.min(kTextScoreRange,e.selector.length/10|0))}function joinTokens(e){let w=[],T=``;for(let{engine:E,selector:D}of e)w.length&&(T!==`css`||E!==`css`||D.startsWith(`:nth-match(`))&&w.push(`>>`),T=E,E===`css`?w.push(D):w.push(`${E}=${D}`);return w.join(` `)}function combineScores(e){let w=0;for(let T=0;T<e.length;T++)w+=e[T].score*(e.length-T);return w}function chooseFirstSelector(e,w,T,E,D){let O=E.map(e=>({tokens:e,score:combineScores(e)}));O.sort((e,w)=>e.score-w.score);let k=null;for(let{tokens:E}of O){let O=e.parseSelector(joinTokens(E)),A=e.querySelectorAll(O,w);if(A[0]===T&&A.length===1)return E;let j=A.indexOf(T);if(!D||k||j===-1||A.length>5)continue;let M={engine:`nth`,selector:String(j),score:kNthScore};k=[...E,M]}return k}function isGuidLike(e){let w,T=0;for(let E=0;E<e.length;++E){let D=e[E],O;if(!(D===`-`||D===`_`)){if(O=D>=`a`&&D<=`z`?`lower`:D>=`A`&&D<=`Z`?`upper`:D>=`0`&&D<=`9`?`digit`:`other`,O===`lower`&&w===`upper`){w=O;continue}w&&w!==O&&++T,w=O}}return T>=e.length/4}function trimWordBoundary(e,w){if(e.length<=w)return e;e=e.substring(0,w);let T=e.match(/^(.*)\b(.+)$/);return T?T[1].trimEnd():``}function suitableTextAlternatives(e){let w=[];{let T=e.match(/^([\d.,]+)[^.,\w]/),E=T?T[1].length:0;if(E){let T=trimWordBoundary(e.substring(E).trimStart(),80);w.push({text:T,scoreBouns:T.length<=30?2:1})}}{let T=e.match(/[^.,\w]([\d.,]+)$/),E=T?T[1].length:0;if(E){let T=trimWordBoundary(e.substring(0,e.length-E).trimEnd(),80);w.push({text:T,scoreBouns:T.length<=30?2:1})}}return e.length<=30?w.push({text:e,scoreBouns:0}):(w.push({text:trimWordBoundary(e,80),scoreBouns:0}),w.push({text:trimWordBoundary(e,30),scoreBouns:1})),w=w.filter(e=>e.text),w.length||w.push({text:e.substring(0,80),scoreBouns:0}),w}function boxRightOf(e,w,T){let E=e.left-w.right;if(!(E<0||T!==void 0&&E>T))return E+Math.max(w.bottom-e.bottom,0)+Math.max(e.top-w.top,0)}function boxLeftOf(e,w,T){let E=w.left-e.right;if(!(E<0||T!==void 0&&E>T))return E+Math.max(w.bottom-e.bottom,0)+Math.max(e.top-w.top,0)}function boxAbove(e,w,T){let E=w.top-e.bottom;if(!(E<0||T!==void 0&&E>T))return E+Math.max(e.left-w.left,0)+Math.max(w.right-e.right,0)}function boxBelow(e,w,T){let E=e.top-w.bottom;if(!(E<0||T!==void 0&&E>T))return E+Math.max(e.left-w.left,0)+Math.max(w.right-e.right,0)}function boxNear(e,w,T){let E=T===void 0?50:T,D=0;return e.left-w.right>=0&&(D+=e.left-w.right),w.left-e.right>=0&&(D+=w.left-e.right),w.top-e.bottom>=0&&(D+=w.top-e.bottom),e.top-w.bottom>=0&&(D+=e.top-w.bottom),D>E?void 0:D}var kLayoutSelectorNames=[`left-of`,`right-of`,`above`,`below`,`near`];function layoutSelectorScore(e,w,T,E){let D=w.getBoundingClientRect(),O={"left-of":boxLeftOf,"right-of":boxRightOf,above:boxAbove,below:boxBelow,near:boxNear}[e],k;for(let e of T){if(e===w)continue;let T=O(D,e.getBoundingClientRect(),E);if(T===void 0)continue;(k===void 0||T<k)&&(k=T)}return k}var SelectorEvaluatorImpl=class{constructor(e){__publicField(this,`_engines`,new Map),__publicField(this,`_cacheQueryCSS`,new Map),__publicField(this,`_cacheMatches`,new Map),__publicField(this,`_cacheQuery`,new Map),__publicField(this,`_cacheMatchesSimple`,new Map),__publicField(this,`_cacheMatchesParents`,new Map),__publicField(this,`_cacheCallMatches`,new Map),__publicField(this,`_cacheCallQuery`,new Map),__publicField(this,`_cacheQuerySimple`,new Map),__publicField(this,`_cacheText`,new Map),__publicField(this,`_scoreMap`),__publicField(this,`_retainCacheCounter`,0);for(let[w,T]of e)this._engines.set(w,T);this._engines.set(`not`,notEngine),this._engines.set(`is`,isEngine),this._engines.set(`where`,isEngine),this._engines.set(`has`,hasEngine),this._engines.set(`scope`,scopeEngine),this._engines.set(`light`,lightEngine),this._engines.set(`visible`,visibleEngine),this._engines.set(`text`,textEngine),this._engines.set(`text-is`,textIsEngine),this._engines.set(`text-matches`,textMatchesEngine),this._engines.set(`has-text`,hasTextEngine),this._engines.set(`right-of`,createLayoutEngine(`right-of`)),this._engines.set(`left-of`,createLayoutEngine(`left-of`)),this._engines.set(`above`,createLayoutEngine(`above`)),this._engines.set(`below`,createLayoutEngine(`below`)),this._engines.set(`near`,createLayoutEngine(`near`)),this._engines.set(`nth-match`,nthMatchEngine);let w=[...this._engines.keys()];w.sort();let T=[...customCSSNames];if(T.sort(),w.join(`|`)!==T.join(`|`))throw Error(`Please keep customCSSNames in sync with evaluator engines: ${w.join(`|`)} vs ${T.join(`|`)}`)}begin(){++this._retainCacheCounter}end(){--this._retainCacheCounter,this._retainCacheCounter||(this._cacheQueryCSS.clear(),this._cacheMatches.clear(),this._cacheQuery.clear(),this._cacheMatchesSimple.clear(),this._cacheMatchesParents.clear(),this._cacheCallMatches.clear(),this._cacheCallQuery.clear(),this._cacheQuerySimple.clear(),this._cacheText.clear())}_cached(e,w,T,E){e.has(w)||e.set(w,[]);let D=e.get(w),O=D.find(e=>T.every((w,T)=>e.rest[T]===w));if(O)return O.result;let k=E();return D.push({rest:T,result:k}),k}_checkSelector(e){let w=typeof e==`object`&&e&&(Array.isArray(e)||`simples`in e&&e.simples.length);if(!w)throw Error(`Malformed selector "${e}"`);return e}matches(e,w,T){let E=this._checkSelector(w);this.begin();try{return this._cached(this._cacheMatches,e,[E,T.scope,T.pierceShadow,T.originalScope],()=>Array.isArray(E)?this._matchesEngine(isEngine,e,E,T):(this._hasScopeClause(E)&&(T=this._expandContextForScopeMatching(T)),this._matchesSimple(e,E.simples[E.simples.length-1].selector,T)?this._matchesParents(e,E,E.simples.length-2,T):!1))}finally{this.end()}}query(e,w){let T=this._checkSelector(w);this.begin();try{return this._cached(this._cacheQuery,T,[e.scope,e.pierceShadow,e.originalScope],()=>{if(Array.isArray(T))return this._queryEngine(isEngine,e,T);this._hasScopeClause(T)&&(e=this._expandContextForScopeMatching(e));let w=this._scoreMap;this._scoreMap=new Map;let E=this._querySimple(e,T.simples[T.simples.length-1].selector);return E=E.filter(w=>this._matchesParents(w,T,T.simples.length-2,e)),this._scoreMap.size&&E.sort((e,w)=>{let T=this._scoreMap.get(e),E=this._scoreMap.get(w);return T===E?0:T===void 0?1:E===void 0?-1:T-E}),this._scoreMap=w,E})}finally{this.end()}}_markScore(e,w){this._scoreMap&&this._scoreMap.set(e,w)}_hasScopeClause(e){return e.simples.some(e=>e.selector.functions.some(e=>e.name===`scope`))}_expandContextForScopeMatching(e){if(e.scope.nodeType!==1)return e;let w=parentElementOrShadowHost(e.scope);return w?{...e,scope:w,originalScope:e.originalScope||e.scope}:e}_matchesSimple(e,w,T){return this._cached(this._cacheMatchesSimple,e,[w,T.scope,T.pierceShadow,T.originalScope],()=>{if(e===T.scope||w.css&&!this._matchesCSS(e,w.css))return!1;for(let E of w.functions)if(!this._matchesEngine(this._getEngine(E.name),e,E.args,T))return!1;return!0})}_querySimple(e,w){return w.functions.length?this._cached(this._cacheQuerySimple,w,[e.scope,e.pierceShadow,e.originalScope],()=>{let T=w.css,E=w.functions;T===`*`&&E.length&&(T=void 0);let D,O=-1;T===void 0?(O=E.findIndex(e=>this._getEngine(e.name).query!==void 0),O===-1&&(O=0),D=this._queryEngine(this._getEngine(E[O].name),e,E[O].args)):D=this._queryCSS(e,T);for(let w=0;w<E.length;w++){if(w===O)continue;let T=this._getEngine(E[w].name);T.matches!==void 0&&(D=D.filter(D=>this._matchesEngine(T,D,E[w].args,e)))}for(let w=0;w<E.length;w++){if(w===O)continue;let T=this._getEngine(E[w].name);T.matches===void 0&&(D=D.filter(D=>this._matchesEngine(T,D,E[w].args,e)))}return D}):this._queryCSS(e,w.css||`*`)}_matchesParents(e,w,T,E){return T<0?!0:this._cached(this._cacheMatchesParents,e,[w,T,E.scope,E.pierceShadow,E.originalScope],()=>{let{selector:D,combinator:O}=w.simples[T];if(O===`>`){let O=parentElementOrShadowHostInContext(e,E);return!O||!this._matchesSimple(O,D,E)?!1:this._matchesParents(O,w,T-1,E)}if(O===`+`){let O=previousSiblingInContext(e,E);return!O||!this._matchesSimple(O,D,E)?!1:this._matchesParents(O,w,T-1,E)}if(O===``){let O=parentElementOrShadowHostInContext(e,E);for(;O;){if(this._matchesSimple(O,D,E)){if(this._matchesParents(O,w,T-1,E))return!0;if(w.simples[T-1].combinator===``)break}O=parentElementOrShadowHostInContext(O,E)}return!1}if(O===`~`){let O=previousSiblingInContext(e,E);for(;O;){if(this._matchesSimple(O,D,E)){if(this._matchesParents(O,w,T-1,E))return!0;if(w.simples[T-1].combinator===`~`)break}O=previousSiblingInContext(O,E)}return!1}if(O===`>=`){let O=e;for(;O;){if(this._matchesSimple(O,D,E)){if(this._matchesParents(O,w,T-1,E))return!0;if(w.simples[T-1].combinator===``)break}O=parentElementOrShadowHostInContext(O,E)}return!1}throw Error(`Unsupported combinator "${O}"`)})}_matchesEngine(e,w,T,E){if(e.matches)return this._callMatches(e,w,T,E);if(e.query)return this._callQuery(e,T,E).includes(w);throw Error(`Selector engine should implement "matches" or "query"`)}_queryEngine(e,w,T){if(e.query)return this._callQuery(e,T,w);if(e.matches)return this._queryCSS(w,`*`).filter(E=>this._callMatches(e,E,T,w));throw Error(`Selector engine should implement "matches" or "query"`)}_callMatches(e,w,T,E){return this._cached(this._cacheCallMatches,w,[e,E.scope,E.pierceShadow,E.originalScope,...T],()=>e.matches(w,T,E,this))}_callQuery(e,w,T){return this._cached(this._cacheCallQuery,e,[T.scope,T.pierceShadow,T.originalScope,...w],()=>e.query(T,w,this))}_matchesCSS(e,w){return e.matches(w)}_queryCSS(e,w){return this._cached(this._cacheQueryCSS,w,[e.scope,e.pierceShadow,e.originalScope],()=>{let T=[];function E(D){if(T=T.concat([...D.querySelectorAll(w)]),e.pierceShadow){D.shadowRoot&&E(D.shadowRoot);for(let e of D.querySelectorAll(`*`))e.shadowRoot&&E(e.shadowRoot)}}return E(e.scope),T})}_getEngine(e){let w=this._engines.get(e);if(!w)throw Error(`Unknown selector engine "${e}"`);return w}},isEngine={matches(e,w,T,E){if(w.length===0)throw Error(`"is" engine expects non-empty selector list`);return w.some(w=>E.matches(e,w,T))},query(e,w,T){if(w.length===0)throw Error(`"is" engine expects non-empty selector list`);let E=[];for(let D of w)E=E.concat(T.query(e,D));return w.length===1?E:sortInDOMOrder(E)}},hasEngine={matches(e,w,T,E){if(w.length===0)throw Error(`"has" engine expects non-empty selector list`);return E.query({...T,scope:e},w).length>0}},scopeEngine={matches(e,w,T,E){if(w.length!==0)throw Error(`"scope" engine expects no arguments`);let D=T.originalScope||T.scope;return D.nodeType===9?e===D.documentElement:e===D},query(e,w,T){if(w.length!==0)throw Error(`"scope" engine expects no arguments`);let E=e.originalScope||e.scope;if(E.nodeType===9){let e=E.documentElement;return e?[e]:[]}return E.nodeType===1?[E]:[]}},notEngine={matches(e,w,T,E){if(w.length===0)throw Error(`"not" engine expects non-empty selector list`);return!E.matches(e,w,T)}},lightEngine={query(e,w,T){return T.query({...e,pierceShadow:!1},w)},matches(e,w,T,E){return E.matches(e,w,{...T,pierceShadow:!1})}},visibleEngine={matches(e,w,T,E){if(w.length)throw Error(`"visible" engine expects no arguments`);return isElementVisible(e)}},textEngine={matches(e,w,T,E){if(w.length!==1||typeof w[0]!=`string`)throw Error(`"text" engine expects a single string`);let D=normalizeWhiteSpace(w[0]).toLowerCase(),O=e=>e.normalized.toLowerCase().includes(D);return elementMatchesText(E._cacheText,e,O)===`self`}},textIsEngine={matches(e,w,T,E){if(w.length!==1||typeof w[0]!=`string`)throw Error(`"text-is" engine expects a single string`);let D=normalizeWhiteSpace(w[0]),O=e=>!D&&!e.immediate.length?!0:e.immediate.some(e=>normalizeWhiteSpace(e)===D);return elementMatchesText(E._cacheText,e,O)!==`none`}},textMatchesEngine={matches(e,w,T,E){if(w.length===0||typeof w[0]!=`string`||w.length>2||w.length===2&&typeof w[1]!=`string`)throw Error(`"text-matches" engine expects a regexp body and optional regexp flags`);let D=new RegExp(w[0],w.length===2?w[1]:void 0),O=e=>D.test(e.full);return elementMatchesText(E._cacheText,e,O)===`self`}},hasTextEngine={matches(e,w,T,E){if(w.length!==1||typeof w[0]!=`string`)throw Error(`"has-text" engine expects a single string`);if(shouldSkipForTextMatching(e))return!1;let D=normalizeWhiteSpace(w[0]).toLowerCase(),O=e=>e.normalized.toLowerCase().includes(D);return O(elementText(E._cacheText,e))}};function createLayoutEngine(e){return{matches(w,T,E,D){let O=T.length&&typeof T[T.length-1]==`number`?T[T.length-1]:void 0,k=O===void 0?T:T.slice(0,T.length-1);if(T.length<1+(O===void 0?0:1))throw Error(`"${e}" engine expects a selector list and optional maximum distance in pixels`);let A=D.query(E,k),j=layoutSelectorScore(e,w,A,O);return j===void 0?!1:(D._markScore(w,j),!0)}}}var nthMatchEngine={query(e,w,T){let E=w[w.length-1];if(w.length<2)throw Error(`"nth-match" engine expects non-empty selector list and an index argument`);if(typeof E!=`number`||E<1)throw Error(`"nth-match" engine expects a one-based index as the last argument`);let D=isEngine.query(e,w.slice(0,w.length-1),T);return E--,E<D.length?[D[E]]:[]}};function parentElementOrShadowHostInContext(e,w){if(e!==w.scope)return w.pierceShadow?parentElementOrShadowHost(e):e.parentElement||void 0}function previousSiblingInContext(e,w){if(e!==w.scope)return e.previousElementSibling||void 0}function sortInDOMOrder(e){let w=new Map,T=[],E=[];function D(e){let E=w.get(e);if(E)return E;let O=parentElementOrShadowHost(e);if(O){let w=D(O);w.children.push(e)}else T.push(e);return E={children:[],taken:!1},w.set(e,E),E}for(let w of e)D(w).taken=!0;function O(e){let T=w.get(e);if(T.taken&&E.push(e),T.children.length>1){let w=new Set(T.children);T.children=[];let E=e.firstElementChild;for(;E&&T.children.length<w.size;)w.has(E)&&T.children.push(E),E=E.nextElementSibling;for(E=e.shadowRoot?e.shadowRoot.firstElementChild:null;E&&T.children.length<w.size;)w.has(E)&&T.children.push(E),E=E.nextElementSibling}T.children.forEach(O)}return T.forEach(O),E}function getByAttributeTextSelector(e,w,T){return`internal:attr=[${e}=${escapeForAttributeSelector(w,T?.exact||!1)}]`}function getByTestIdSelector(e,w){return`internal:testid=[${e}=${escapeForAttributeSelector(w,!0)}]`}function getByLabelSelector(e,w){return`internal:label=${escapeForTextSelector(e,!!w?.exact)}`}function getByAltTextSelector(e,w){return getByAttributeTextSelector(`alt`,e,w)}function getByTitleSelector(e,w){return getByAttributeTextSelector(`title`,e,w)}function getByPlaceholderSelector(e,w){return getByAttributeTextSelector(`placeholder`,e,w)}function getByTextSelector(e,w){return`internal:text=${escapeForTextSelector(e,!!w?.exact)}`}function getByRoleSelector(e,w={}){let T=[];return w.checked!==void 0&&T.push([`checked`,String(w.checked)]),w.disabled!==void 0&&T.push([`disabled`,String(w.disabled)]),w.selected!==void 0&&T.push([`selected`,String(w.selected)]),w.expanded!==void 0&&T.push([`expanded`,String(w.expanded)]),w.includeHidden!==void 0&&T.push([`include-hidden`,String(w.includeHidden)]),w.level!==void 0&&T.push([`level`,String(w.level)]),w.name!==void 0&&T.push([`name`,escapeForAttributeSelector(w.name,!!w.exact)]),w.pressed!==void 0&&T.push([`pressed`,String(w.pressed)]),`internal:role=${e}${T.map(([e,w])=>`[${e}=${w}]`).join(``)}`}var _Ivya=class e{constructor(){__publicField(this,`_engines`),__publicField(this,`_evaluator`),this._evaluator=new SelectorEvaluatorImpl(new Map),this._engines=new Map,this._engines.set(`xpath`,XPathEngine),this._engines.set(`xpath:light`,XPathEngine),this._engines.set(`role`,createRoleEngine(!1)),this._engines.set(`text`,this._createTextEngine(!0,!1)),this._engines.set(`text:light`,this._createTextEngine(!1,!1)),this._engines.set(`id`,this._createAttributeEngine(`id`,!0)),this._engines.set(`id:light`,this._createAttributeEngine(`id`,!1)),this._engines.set(`data-testid`,this._createAttributeEngine(`data-testid`,!0)),this._engines.set(`data-testid:light`,this._createAttributeEngine(`data-testid`,!1)),this._engines.set(`data-test-id`,this._createAttributeEngine(`data-test-id`,!0)),this._engines.set(`data-test-id:light`,this._createAttributeEngine(`data-test-id`,!1)),this._engines.set(`data-test`,this._createAttributeEngine(`data-test`,!0)),this._engines.set(`data-test:light`,this._createAttributeEngine(`data-test`,!1)),this._engines.set(`css`,this._createCSSEngine()),this._engines.set(`nth`,{queryAll:()=>[]}),this._engines.set(`visible`,this._createVisibleEngine()),this._engines.set(`internal:control`,{queryAll:()=>[]}),this._engines.set(`internal:has`,this._createHasEngine()),this._engines.set(`internal:has-not`,this._createHasNotEngine()),this._engines.set(`internal:and`,{queryAll:()=>[]}),this._engines.set(`internal:or`,{queryAll:()=>[]}),this._engines.set(`internal:chain`,this._createInternalChainEngine()),this._engines.set(`internal:label`,this._createInternalLabelEngine()),this._engines.set(`internal:text`,this._createTextEngine(!0,!0)),this._engines.set(`internal:has-text`,this._createInternalHasTextEngine()),this._engines.set(`internal:has-not-text`,this._createInternalHasNotTextEngine()),this._engines.set(`internal:attr`,this._createNamedAttributeEngine()),this._engines.set(`internal:testid`,this._createNamedAttributeEngine()),this._engines.set(`internal:role`,createRoleEngine(!0))}static create(w){return Object.assign(e.options,w),e.singleton||=new e}queryLocatorSelector(e,w=document.documentElement,T=!0){return this.querySelector(this.parseSelector(e),w,T)}queryLocatorSelectorAll(e,w=document.documentElement){return this.querySelectorAll(this.parseSelector(e),w)}querySelector(e,w,T=!0){let E=this.querySelectorAll(e,w);if(T&&E.length>1)throw this.strictModeViolationError(e,E);return E[0]||null}queryAllByRole(e,w,T=document.documentElement){let E=this.parseSelector(getByRoleSelector(e,w));return this.querySelectorAll(E,T)}queryAllByLabelText(e,w,T=document.documentElement){let E=this.parseSelector(getByLabelSelector(e,w));return this.querySelectorAll(E,T)}queryAllByTestId(w,T=document.documentElement){let E=this.parseSelector(getByTestIdSelector(e.options.testIdAttribute,w));return this.querySelectorAll(E,T)}queryAllByText(e,w,T=document.documentElement){let E=this.parseSelector(getByTextSelector(e,w));return this.querySelectorAll(E,T)}queryAllByTitle(e,w,T=document.documentElement){let E=this.parseSelector(getByTitleSelector(e,w));return this.querySelectorAll(E,T)}queryAllByPlaceholder(e,w,T=document.documentElement){let E=this.parseSelector(getByPlaceholderSelector(e,w));return this.querySelectorAll(E,T)}queryAllByAltText(e,w,T=document.documentElement){let E=this.parseSelector(getByAltTextSelector(e,w));return this.querySelectorAll(E,T)}queryByRole(e,w,T=document.documentElement){let E=this.parseSelector(getByRoleSelector(e,w));return this.querySelector(E,T,!1)}queryByLabelText(e,w,T=document.documentElement){let E=this.parseSelector(getByLabelSelector(e,w));return this.querySelector(E,T,!1)}queryByTestId(w,T=document.documentElement){let E=this.parseSelector(getByTestIdSelector(e.options.testIdAttribute,w));return this.querySelector(E,T,!1)}queryByText(e,w,T=document.documentElement){let E=this.parseSelector(getByTextSelector(e,w));return this.querySelector(E,T,!1)}queryByTitle(e,w,T=document.documentElement){let E=this.parseSelector(getByTitleSelector(e,w));return this.querySelector(E,T,!1)}queryByPlaceholder(e,w,T=document.documentElement){let E=this.parseSelector(getByPlaceholderSelector(e,w));return this.querySelector(E,T,!1)}queryByAltText(e,w,T=document.documentElement){let E=this.parseSelector(getByAltTextSelector(e,w));return this.querySelector(E,T,!1)}strictModeViolationError(e,w){let T=w.slice(0,10).map(e=>({preview:this.previewNode(e),selector:this.generateSelectorSimple(e)})),E=T.map((e,w)=>`
|
|
4
4
|
${w+1}) ${e.preview} aka ${asLocator(`javascript`,e.selector)}`);return T.length<w.length&&E.push(`
|
package/dist/state.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
/* @__NO_SIDE_EFFECTS__ */
|
|
5
5
|
function getBrowserState() {
|
|
6
|
+
// @ts-expect-error not typed global
|
|
6
7
|
return window.__vitest_browser_runner__;
|
|
7
8
|
}
|
|
8
9
|
|
|
@@ -40,7 +41,9 @@
|
|
|
40
41
|
},
|
|
41
42
|
providedContext: {}
|
|
42
43
|
};
|
|
44
|
+
// @ts-expect-error not typed global
|
|
43
45
|
globalThis.__vitest_browser__ = true;
|
|
46
|
+
// @ts-expect-error not typed global
|
|
44
47
|
globalThis.__vitest_worker__ = state;
|
|
45
48
|
getBrowserState().cdp = createCdp();
|
|
46
49
|
function rpc() {
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"@vitest/browser/context";export{u as debug,h as getElementError,t as getElementLocatorSelectors,v as prettyDOM}from"./public-utils-
|
|
1
|
+
import"@vitest/browser/context";export{u as debug,h as getElementError,t as getElementLocatorSelectors,v as prettyDOM}from"./public-utils-DJ-T0CfF.js";import"vitest/internal/browser";
|
|
@@ -59,6 +59,7 @@ class PlaywrightBrowserProvider {
|
|
|
59
59
|
headless: options.headless
|
|
60
60
|
};
|
|
61
61
|
if (this.project.config.inspector.enabled) {
|
|
62
|
+
// NodeJS equivalent defaults: https://nodejs.org/en/learn/getting-started/debugging#enable-inspector
|
|
62
63
|
const port = this.project.config.inspector.port || 9229;
|
|
63
64
|
const host = this.project.config.inspector.host || "127.0.0.1";
|
|
64
65
|
launchOptions.args ||= [];
|
|
@@ -66,6 +67,7 @@ class PlaywrightBrowserProvider {
|
|
|
66
67
|
launchOptions.args.push(`--remote-debugging-address=${host}`);
|
|
67
68
|
this.project.vitest.logger.log(`Debugger listening on ws://${host}:${port}`);
|
|
68
69
|
}
|
|
70
|
+
// start Vitest UI maximized only on supported browsers
|
|
69
71
|
if (this.project.config.browser.ui && this.browserName === "chromium") {
|
|
70
72
|
if (!launchOptions.args) {
|
|
71
73
|
launchOptions.args = [];
|
|
@@ -90,15 +92,18 @@ class PlaywrightBrowserProvider {
|
|
|
90
92
|
if (url.searchParams.has("_vitest_original")) {
|
|
91
93
|
return false;
|
|
92
94
|
}
|
|
95
|
+
// different modules, ignore request
|
|
93
96
|
if (url.pathname !== moduleUrl.pathname) {
|
|
94
97
|
return false;
|
|
95
98
|
}
|
|
96
99
|
url.searchParams.delete("t");
|
|
97
100
|
url.searchParams.delete("v");
|
|
98
101
|
url.searchParams.delete("import");
|
|
102
|
+
// different search params, ignore request
|
|
99
103
|
if (url.searchParams.size !== moduleUrl.searchParams.size) {
|
|
100
104
|
return false;
|
|
101
105
|
}
|
|
106
|
+
// check that all search params are the same
|
|
102
107
|
for (const [param, value] of url.searchParams.entries()) {
|
|
103
108
|
if (moduleUrl.searchParams.get(param) !== value) {
|
|
104
109
|
return false;
|
|
@@ -109,9 +114,12 @@ class PlaywrightBrowserProvider {
|
|
|
109
114
|
const ids = sessionIds.get(sessionId) || [];
|
|
110
115
|
ids.push(moduleUrl.href);
|
|
111
116
|
sessionIds.set(sessionId, ids);
|
|
112
|
-
idPreficates.set(moduleUrl.href, predicate);
|
|
117
|
+
idPreficates.set(predicateKey(sessionId, moduleUrl.href), predicate);
|
|
113
118
|
return predicate;
|
|
114
119
|
}
|
|
120
|
+
function predicateKey(sessionId, url) {
|
|
121
|
+
return `${sessionId}:${url}`;
|
|
122
|
+
}
|
|
115
123
|
return {
|
|
116
124
|
register: async (sessionId, module) => {
|
|
117
125
|
const page = this.getPage(sessionId);
|
|
@@ -124,16 +132,19 @@ class PlaywrightBrowserProvider {
|
|
|
124
132
|
headers: getHeaders(this.project.browser.vite.config)
|
|
125
133
|
});
|
|
126
134
|
}
|
|
135
|
+
// webkit doesn't support redirect responses
|
|
136
|
+
// https://github.com/microsoft/playwright/issues/18318
|
|
127
137
|
const isWebkit = this.browserName === "webkit";
|
|
128
138
|
if (isWebkit) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
139
|
+
let url;
|
|
140
|
+
if (module.type === "redirect") {
|
|
141
|
+
const redirect = new URL(module.redirect);
|
|
142
|
+
url = redirect.href.slice(redirect.origin.length);
|
|
143
|
+
} else {
|
|
144
|
+
const request = new URL(route.request().url());
|
|
145
|
+
request.searchParams.set("mock", module.type);
|
|
146
|
+
url = request.href.slice(request.origin.length);
|
|
147
|
+
}
|
|
137
148
|
const result = await this.project.browser.vite.transformRequest(url).catch(() => null);
|
|
138
149
|
if (!result) {
|
|
139
150
|
return route.continue();
|
|
@@ -165,18 +176,20 @@ class PlaywrightBrowserProvider {
|
|
|
165
176
|
},
|
|
166
177
|
delete: async (sessionId, id) => {
|
|
167
178
|
const page = this.getPage(sessionId);
|
|
168
|
-
const
|
|
179
|
+
const key = predicateKey(sessionId, id);
|
|
180
|
+
const predicate = idPreficates.get(key);
|
|
169
181
|
if (predicate) {
|
|
170
|
-
await page.unroute(predicate).finally(() => idPreficates.delete(
|
|
182
|
+
await page.unroute(predicate).finally(() => idPreficates.delete(key));
|
|
171
183
|
}
|
|
172
184
|
},
|
|
173
185
|
clear: async (sessionId) => {
|
|
174
186
|
const page = this.getPage(sessionId);
|
|
175
187
|
const ids = sessionIds.get(sessionId) || [];
|
|
176
188
|
const promises = ids.map((id) => {
|
|
177
|
-
const
|
|
189
|
+
const key = predicateKey(sessionId, id);
|
|
190
|
+
const predicate = idPreficates.get(key);
|
|
178
191
|
if (predicate) {
|
|
179
|
-
return page.unroute(predicate).finally(() => idPreficates.delete(
|
|
192
|
+
return page.unroute(predicate).finally(() => idPreficates.delete(key));
|
|
180
193
|
}
|
|
181
194
|
return null;
|
|
182
195
|
});
|
|
@@ -359,6 +372,8 @@ class WebdriverBrowserProvider {
|
|
|
359
372
|
project;
|
|
360
373
|
options;
|
|
361
374
|
closing = false;
|
|
375
|
+
iframeSwitched = false;
|
|
376
|
+
topLevelContext;
|
|
362
377
|
getSupportedBrowsers() {
|
|
363
378
|
return webdriverBrowsers;
|
|
364
379
|
}
|
|
@@ -368,14 +383,19 @@ class WebdriverBrowserProvider {
|
|
|
368
383
|
this.browserName = browser;
|
|
369
384
|
this.options = options;
|
|
370
385
|
}
|
|
386
|
+
isIframeSwitched() {
|
|
387
|
+
return this.iframeSwitched;
|
|
388
|
+
}
|
|
371
389
|
async switchToTestFrame() {
|
|
372
390
|
const page = this.browser;
|
|
391
|
+
// support wdio@9
|
|
373
392
|
if (page.switchFrame) {
|
|
374
393
|
await page.switchFrame(page.$("iframe[data-vitest]"));
|
|
375
394
|
} else {
|
|
376
395
|
const iframe = await page.findElement("css selector", "iframe[data-vitest]");
|
|
377
396
|
await page.switchToFrame(iframe);
|
|
378
397
|
}
|
|
398
|
+
this.iframeSwitched = true;
|
|
379
399
|
}
|
|
380
400
|
async switchToMainFrame() {
|
|
381
401
|
const page = this.browser;
|
|
@@ -384,6 +404,20 @@ class WebdriverBrowserProvider {
|
|
|
384
404
|
} else {
|
|
385
405
|
await page.switchToParentFrame();
|
|
386
406
|
}
|
|
407
|
+
this.iframeSwitched = false;
|
|
408
|
+
}
|
|
409
|
+
async setViewport(options) {
|
|
410
|
+
if (this.topLevelContext == null || !this.browser) {
|
|
411
|
+
throw new Error(`The browser has no open pages.`);
|
|
412
|
+
}
|
|
413
|
+
await this.browser.send({
|
|
414
|
+
method: "browsingContext.setViewport",
|
|
415
|
+
params: {
|
|
416
|
+
context: this.topLevelContext,
|
|
417
|
+
devicePixelRatio: 1,
|
|
418
|
+
viewport: options
|
|
419
|
+
}
|
|
420
|
+
});
|
|
387
421
|
}
|
|
388
422
|
getCommandsContext() {
|
|
389
423
|
return { browser: this.browser };
|
|
@@ -407,6 +441,7 @@ class WebdriverBrowserProvider {
|
|
|
407
441
|
capabilities: this.buildCapabilities()
|
|
408
442
|
};
|
|
409
443
|
debug?.("[%s] opening the browser with options: %O", this.browserName, remoteOptions);
|
|
444
|
+
// TODO: close everything, if browser is closed from the outside
|
|
410
445
|
this.browser = await remote(remoteOptions);
|
|
411
446
|
await this._throwIfClosing();
|
|
412
447
|
return this.browser;
|
|
@@ -432,6 +467,7 @@ class WebdriverBrowserProvider {
|
|
|
432
467
|
args: newArgs
|
|
433
468
|
};
|
|
434
469
|
}
|
|
470
|
+
// start Vitest UI maximized only on supported browsers
|
|
435
471
|
if (options.ui && (browser === "chrome" || browser === "edge")) {
|
|
436
472
|
const key = browser === "chrome" ? "goog:chromeOptions" : "ms:edgeOptions";
|
|
437
473
|
const args = capabilities[key]?.args || [];
|
|
@@ -449,6 +485,7 @@ class WebdriverBrowserProvider {
|
|
|
449
485
|
const browserInstance = await this.openBrowser();
|
|
450
486
|
debug?.("[%s][%s] browser page is created, opening %s", sessionId, this.browserName, url);
|
|
451
487
|
await browserInstance.url(url);
|
|
488
|
+
this.topLevelContext = await browserInstance.getWindowHandle();
|
|
452
489
|
await this._throwIfClosing("opening the url");
|
|
453
490
|
}
|
|
454
491
|
async _throwIfClosing(action) {
|
|
@@ -462,6 +499,8 @@ class WebdriverBrowserProvider {
|
|
|
462
499
|
debug?.("[%s] closing provider", this.browserName);
|
|
463
500
|
this.closing = true;
|
|
464
501
|
await Promise.all([this.browser?.sessionId ? this.browser?.deleteSession?.() : null]);
|
|
502
|
+
// TODO: right now process can only exit with timeout, if we use browser
|
|
503
|
+
// needs investigating
|
|
465
504
|
process.exit();
|
|
466
505
|
}
|
|
467
506
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitest/browser",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.2.0-beta.
|
|
4
|
+
"version": "3.2.0-beta.3",
|
|
5
5
|
"description": "Browser running for Vitest",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"funding": "https://opencollective.com/vitest",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"playwright": "*",
|
|
68
68
|
"webdriverio": "^7.0.0 || ^8.0.0 || ^9.0.0",
|
|
69
|
-
"vitest": "3.2.0-beta.
|
|
69
|
+
"vitest": "3.2.0-beta.3"
|
|
70
70
|
},
|
|
71
71
|
"peerDependenciesMeta": {
|
|
72
72
|
"playwright": {
|
|
@@ -85,14 +85,14 @@
|
|
|
85
85
|
"magic-string": "^0.30.17",
|
|
86
86
|
"sirv": "^3.0.1",
|
|
87
87
|
"tinyrainbow": "^2.0.0",
|
|
88
|
-
"ws": "^8.18.
|
|
89
|
-
"@vitest/mocker": "3.2.0-beta.
|
|
90
|
-
"@vitest/utils": "3.2.0-beta.
|
|
88
|
+
"ws": "^8.18.2",
|
|
89
|
+
"@vitest/mocker": "3.2.0-beta.3",
|
|
90
|
+
"@vitest/utils": "3.2.0-beta.3"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
93
|
"@types/ws": "^8.18.1",
|
|
94
|
-
"@wdio/protocols": "^9.
|
|
95
|
-
"@wdio/types": "^9.
|
|
94
|
+
"@wdio/protocols": "^9.14.0",
|
|
95
|
+
"@wdio/types": "^9.14.0",
|
|
96
96
|
"birpc": "2.3.0",
|
|
97
97
|
"flatted": "^3.3.3",
|
|
98
98
|
"ivya": "^1.6.0",
|
|
@@ -102,11 +102,11 @@
|
|
|
102
102
|
"playwright": "^1.52.0",
|
|
103
103
|
"playwright-core": "^1.52.0",
|
|
104
104
|
"safaridriver": "^1.0.0",
|
|
105
|
-
"webdriverio": "^9.
|
|
106
|
-
"@vitest/runner": "3.2.0-beta.
|
|
107
|
-
"@vitest/
|
|
108
|
-
"vitest": "3.2.0-beta.
|
|
109
|
-
"
|
|
105
|
+
"webdriverio": "^9.14.0",
|
|
106
|
+
"@vitest/runner": "3.2.0-beta.3",
|
|
107
|
+
"@vitest/ws-client": "3.2.0-beta.3",
|
|
108
|
+
"@vitest/ui": "3.2.0-beta.3",
|
|
109
|
+
"vitest": "3.2.0-beta.3"
|
|
110
110
|
},
|
|
111
111
|
"scripts": {
|
|
112
112
|
"build": "rimraf dist && pnpm build:node && pnpm build:client",
|
package/utils.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// fortunately, the file is quite small
|
|
4
4
|
|
|
5
5
|
import { LocatorSelectors, Locator } from '@vitest/browser/context'
|
|
6
|
-
import { StringifyOptions } from 'vitest/
|
|
6
|
+
import { StringifyOptions } from 'vitest/internal/browser'
|
|
7
7
|
|
|
8
8
|
export type PrettyDOMOptions = Omit<StringifyOptions, 'maxLength'>
|
|
9
9
|
|