@vitest/browser 4.0.7 → 4.0.9

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.
@@ -0,0 +1,6 @@
1
+ import{server,page,utils}from"vitest/browser";import{__INTERNAL}from"vitest/internal/browser";var __defProp=Object.defineProperty,__defNormalProp=(e,T,E)=>T in e?__defProp(e,T,{enumerable:!0,configurable:!0,writable:!0,value:E}):e[T]=E,__publicField=(e,T,E)=>__defNormalProp(e,typeof T==`symbol`?T:T+``,E);function escapeWithQuotes(e,T=`'`){let E=JSON.stringify(e),D=E.substring(1,E.length-1).replace(/\\"/g,`"`);if(T===`'`)return T+D.replace(/'/g,`\\'`)+T;if(T===`"`)return T+D.replace(/"/g,`\\"`)+T;if(T==="`")return T+D.replace(/`/g,"`")+T;throw Error(`Invalid escape char`)}function cssEscape(e){let T=``;for(let E=0;E<e.length;E++)T+=cssEscapeOne(e,E);return T}function quoteCSSAttributeValue(e){return`"${cssEscape(e).replace(/\\ /g,` `)}"`}function cssEscapeOne(e,T){let E=e.charCodeAt(T);return E===0?`�`:E>=1&&E<=31||E>=48&&E<=57&&(T===0||T===1&&e.charCodeAt(0)===45)?`\\${E.toString(16)} `:T===0&&E===45&&e.length===1?`\\${e.charAt(T)}`:E>=128||E===45||E===95||E>=48&&E<=57||E>=65&&E<=90||E>=97&&E<=122?e.charAt(T):`\\${e.charAt(T)}`}function normalizeWhiteSpace(e){return e.replace(/[\u200b\u00ad]/g,``).trim().replace(/\s+/g,` `)}function normalizeEscapedRegexQuotes(e){return e.replace(/(^|[^\\])(\\\\)*\\(['"`])/g,`$1$2$3`)}function escapeRegexForSelector$1(e){return e.unicode||e.unicodeSets?String(e):String(e).replace(/(^|[^\\])(\\\\)*(["'`])/g,`$1$2\\$3`).replace(/>>/g,`\\>\\>`)}function escapeForTextSelector$1(e,T){return typeof e==`string`?`${JSON.stringify(e)}${T?`s`:`i`}`:escapeRegexForSelector$1(e)}function escapeForAttributeSelector(e,T){return typeof e==`string`?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"${T?`s`:`i`}`:escapeRegexForSelector$1(e)}function trimString(e,T,E=``){if(e.length<=T)return e;let D=[...e];return D.length>T?D.slice(0,T-E.length).join(``)+E:D.join(``)}function trimStringWithEllipsis(e,T){return trimString(e,T,`…`)}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var between=function(e,T,E){return e>=T&&e<=E};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 T=[];for(let E=0;E<e.length;E++){let D=e.charCodeAt(E);if(D===13&&e.charCodeAt(E+1)===10&&(D=10,E++),(D===13||D===12)&&(D=10),D===0&&(D=65533),between(D,55296,56319)&&between(e.charCodeAt(E+1),56320,57343)){let T=D-55296,O=e.charCodeAt(E+1)-56320;D=2**16+T*2**10+O,E++}T.push(D)}return T}function stringFromCode(e){if(e<=65535)return String.fromCharCode(e);e-=2**16;let T=Math.floor(e/2**10)+55296,E=e%2**10+56320;return String.fromCharCode(T)+String.fromCharCode(E)}function tokenize(e){let T=preprocess(e),E=-1,D=[],O,k=function(e){return e>=T.length?-1:T[e]},A=function(e){if(e===void 0&&(e=1),e>3)throw`Spec Error: no more than three codepoints of lookahead.`;return k(E+e)},j=function(e){return e===void 0&&(e=1),E+=e,O=k(E),!0},M=function(){return--E,!0},N=function(e){return e===void 0&&(e=O),e===-1},P=function(){if(F(),j(),whitespace(O)){for(;whitespace(A());)j();return new WhitespaceToken}else if(O===34)return R();else if(O===35)if(namechar(A())||V(A(1),A(2))){let e=new HashToken(``);return U(A(1),A(2),A(3))&&(e.type=`id`),e.value=Y(),e}else return new DelimToken(O);else if(O===36)return A()===61?(j(),new SuffixMatchToken):new DelimToken(O);else if(O===39)return R();else if(O===40)return new OpenParenToken;else if(O===41)return new CloseParenToken;else if(O===42)return A()===61?(j(),new SubstringMatchToken):new DelimToken(O);else if(O===43)return J()?(M(),I()):new DelimToken(O);else if(O===44)return new CommaToken;else if(O===45)return J()?(M(),I()):A(1)===45&&A(2)===62?(j(2),new CDCToken):K()?(M(),L()):new DelimToken(O);else if(O===46)return J()?(M(),I()):new DelimToken(O);else if(O===58)return new ColonToken;else if(O===59)return new SemicolonToken;else if(O===60)return A(1)===33&&A(2)===45&&A(3)===45?(j(3),new CDOToken):new DelimToken(O);else if(O===64)return U(A(1),A(2),A(3))?new AtKeywordToken(Y()):new DelimToken(O);else if(O===91)return new OpenSquareToken;else if(O===92)return H()?(M(),L()):new DelimToken(O);else if(O===93)return new CloseSquareToken;else if(O===94)return A()===61?(j(),new PrefixMatchToken):new DelimToken(O);else if(O===123)return new OpenCurlyToken;else if(O===124)return A()===61?(j(),new DashMatchToken):A()===124?(j(),new ColumnToken):new DelimToken(O);else if(O===125)return new CloseCurlyToken;else if(O===126)return A()===61?(j(),new IncludeMatchToken):new DelimToken(O);else if(digit(O))return M(),I();else if(namestartchar(O))return M(),L();else if(N())return new EOFToken;else return new DelimToken(O)},F=function(){for(;A(1)===47&&A(2)===42;)for(j(2);;)if(j(),O===42&&A()===47){j();break}else if(N())return},I=function(){let e=X();if(U(A(1),A(2),A(3))){let T=new DimensionToken;return T.value=e.value,T.repr=e.repr,T.type=e.type,T.unit=Y(),T}else if(A()===37){j();let T=new PercentageToken;return T.value=e.value,T.repr=e.repr,T}else{let T=new NumberToken;return T.value=e.value,T.repr=e.repr,T.type=e.type,T}},L=function(){let e=Y();if(e.toLowerCase()===`url`&&A()===40){for(j();whitespace(A(1))&&whitespace(A(2));)j();return A()===34||A()===39||whitespace(A())&&(A(2)===34||A(2)===39)?new FunctionToken(e):z()}else if(A()===40)return j(),new FunctionToken(e);else return new IdentToken(e)},R=function(e){e===void 0&&(e=O);let T=``;for(;j();){if(O===e||N())return new StringToken(T);if(newline(O))return M(),new BadStringToken;O===92?N(A())||(newline(A())?j():T+=stringFromCode(B())):T+=stringFromCode(O)}throw Error(`Internal error`)},z=function(){let e=new URLToken(``);for(;whitespace(A());)j();if(N(A()))return e;for(;j();){if(O===41||N())return e;if(whitespace(O)){for(;whitespace(A());)j();return A()===41||N(A())?(j(),e):(Q(),new BadURLToken)}else if(O===34||O===39||O===40||nonprintable(O))return Q(),new BadURLToken;else if(O===92)if(H())e.value+=stringFromCode(B());else return Q(),new BadURLToken;else e.value+=stringFromCode(O)}throw Error(`Internal error`)},B=function(){if(j(),hexdigit(O)){let e=[O];for(let T=0;T<5&&hexdigit(A());T++)j(),e.push(O);whitespace(A())&&j();let T=Number.parseInt(e.map(e=>String.fromCharCode(e)).join(``),16);return T>maximumallowedcodepoint&&(T=65533),T}else if(N())return 65533;else return O},V=function(e,T){return!(e!==92||newline(T))},H=function(){return V(O,A())},U=function(e,T,E){return e===45?namestartchar(T)||T===45||V(T,E):namestartchar(e)?!0:e===92?V(e,T):!1},K=function(){return U(O,A(1),A(2))},q=function(e,T,E){return e===43||e===45?!!(digit(T)||T===46&&digit(E)):e===46?!!digit(T):!!digit(e)},J=function(){return q(O,A(1),A(2))},Y=function(){let e=``;for(;j();)if(namechar(O))e+=stringFromCode(O);else if(H())e+=stringFromCode(B());else return M(),e;throw Error(`Internal parse error`)},X=function(){let e=``,T=`integer`;for((A()===43||A()===45)&&(j(),e+=stringFromCode(O));digit(A());)j(),e+=stringFromCode(O);if(A(1)===46&&digit(A(2)))for(j(),e+=stringFromCode(O),j(),e+=stringFromCode(O),T=`number`;digit(A());)j(),e+=stringFromCode(O);let E=A(1),D=A(2),k=A(3);if((E===69||E===101)&&digit(D))for(j(),e+=stringFromCode(O),j(),e+=stringFromCode(O),T=`number`;digit(A());)j(),e+=stringFromCode(O);else if((E===69||E===101)&&(D===43||D===45)&&digit(k))for(j(),e+=stringFromCode(O),j(),e+=stringFromCode(O),j(),e+=stringFromCode(O),T=`number`;digit(A());)j(),e+=stringFromCode(O);let M=Z(e);return{type:T,value:M,repr:e}},Z=function(e){return+e},Q=function(){for(;j();){if(O===41||N())return;H()&&B()}},$=0;for(;!N(A());)if(D.push(P()),$++,$>T.length*2)throw Error(`I'm infinite-looping!`);return D}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
+ `: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,T=escapeIdent(this.unit);return T[0].toLowerCase()===`e`&&(T[1]===`-`||between(T.charCodeAt(1),48,57))&&(T=`\\65 ${T.slice(1,T.length)}`),e+T}};function escapeIdent(e){e=`${e}`;let T=``,E=e.charCodeAt(0);for(let D=0;D<e.length;D++){let O=e.charCodeAt(D);if(O===0)throw new InvalidCharacterError(`Invalid character: the input contains U+0000.`);between(O,1,31)||O===127||D===0&&between(O,48,57)||D===1&&between(O,48,57)&&E===45?T+=`\\${O.toString(16)} `:O>=128||O===45||O===95||between(O,48,57)||between(O,65,90)||between(O,97,122)?T+=e[D]:T+=`\\${e[D]}`}return T}function escapeHash(e){e=`${e}`;let T=``;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.`);D>=128||D===45||D===95||between(D,48,57)||between(D,65,90)||between(D,97,122)?T+=e[E]:T+=`\\${D.toString(16)} `}return T}function escapeString(e){e=`${e}`;let T=``;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?T+=`\\${D.toString(16)} `:D===34||D===92?T+=`\\${e[E]}`:T+=e[E]}return T}var InvalidSelectorError=class extends Error{};function parseCSS(e,T){let E;try{E=tokenize(e),E[E.length-1]instanceof EOFToken||E.push(new EOFToken)}catch(T){let E=`${T.message} while parsing selector "${e}"`,D=(T.stack||``).indexOf(T.message);throw D!==-1&&(T.stack=T.stack.substring(0,D)+E+T.stack.substring(D+T.message.length)),T.message=E,T}let D=E.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(D)throw new InvalidSelectorError(`Unsupported token "${D.toSource()}" while parsing selector "${e}"`);let O=0,k=new Set;function A(){return new InvalidSelectorError(`Unexpected token "${E[O].toSource()}" while parsing selector "${e}"`)}function j(){for(;E[O]instanceof WhitespaceToken;)O++}function M(e=O){return E[e]instanceof IdentToken}function N(e=O){return E[e]instanceof StringToken}function P(e=O){return E[e]instanceof NumberToken}function F(e=O){return E[e]instanceof CommaToken}function I(e=O){return E[e]instanceof OpenParenToken}function L(e=O){return E[e]instanceof CloseParenToken}function R(e=O){return E[e]instanceof FunctionToken}function z(e=O){return E[e]instanceof DelimToken&&E[e].value===`*`}function B(e=O){return E[e]instanceof EOFToken}function V(e=O){return E[e]instanceof DelimToken&&[`>`,`+`,`~`].includes(E[e].value)}function H(e=O){return F(e)||L(e)||B(e)||V(e)||E[e]instanceof WhitespaceToken}function U(){let e=[W()];for(;j(),F();)O++,e.push(W());return e}function W(){return j(),P()||N()?E[O++].value:G()}function G(){let e={simples:[]};for(j(),V()?e.simples.push({selector:{functions:[{name:`scope`,args:[]}]},combinator:``}):e.simples.push({selector:K(),combinator:``});;){if(j(),V())e.simples[e.simples.length-1].combinator=E[O++].value,j();else if(H())break;e.simples.push({combinator:``,selector:K()})}return e}function K(){let e=``,D=[];for(;!H();)if(M()||z())e+=E[O++].toSource();else if(E[O]instanceof HashToken)e+=E[O++].toSource();else if(E[O]instanceof DelimToken&&E[O].value===`.`)if(O++,M())e+=`.${E[O++].toSource()}`;else throw A();else if(E[O]instanceof ColonToken)if(O++,M())if(!T.has(E[O].value.toLowerCase()))e+=`:${E[O++].toSource()}`;else{let e=E[O++].value.toLowerCase();D.push({name:e,args:[]}),k.add(e)}else if(R()){let M=E[O++].value.toLowerCase();if(T.has(M)?(D.push({name:M,args:U()}),k.add(M)):e+=`:${M}(${q()})`,j(),!L())throw A();O++}else throw A();else if(E[O]instanceof OpenSquareToken){for(e+=`[`,O++;!(E[O]instanceof CloseSquareToken)&&!B();)e+=E[O++].toSource();if(!(E[O]instanceof CloseSquareToken))throw A();e+=`]`,O++}else throw A();if(!e&&!D.length)throw A();return{css:e||void 0,functions:D}}function q(){let e=``,T=1;for(;!B()&&((I()||R())&&T++,L()&&T--,T);)e+=E[O++].toSource();return e}let J=U();if(!B())throw A();if(J.some(e=>typeof e!=`object`||!(`simples`in e)))throw new InvalidSelectorError(`Error while parsing selector "${e}"`);return{selector:J,names:Array.from(k)}}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 T=parseSelectorString(e),E=[];for(let e of T.parts){if(e.name===`css`||e.name===`css:light`){e.name===`css:light`&&(e.body=`:light(${e.body})`);let T=parseCSS(e.body,customCSSNames);E.push({name:`css`,body:T.selector,source:e.body});continue}if(kNestedSelectorNames.has(e.name)){let T,D;try{let E=JSON.parse(`[${e.body}]`);if(!Array.isArray(E)||E.length<1||E.length>2||typeof E[0]!=`string`)throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`);if(T=E[0],E.length===2){if(typeof E[1]!=`number`||!kNestedSelectorNamesWithDistance.has(e.name))throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`);D=E[1]}}catch{throw new InvalidSelectorError(`Malformed selector: ${e.name}=${e.body}`)}let O={name:e.name,source:e.body,body:{parsed:parseSelector(T),distance:D}},k=[...O.body.parsed.parts].reverse().find(e=>e.name===`internal:control`&&e.body===`enter-frame`),A=k?O.body.parsed.parts.indexOf(k):-1;A!==-1&&selectorPartsEqual(O.body.parsed.parts.slice(0,A+1),E.slice(0,A+1))&&O.body.parsed.parts.splice(0,A+1),E.push(O);continue}E.push({...e,source:e.body})}if(kNestedSelectorNames.has(E[0].name))throw new InvalidSelectorError(`"${E[0].name}" selector cannot be first`);return{capture:T.capture,parts:E}}function selectorPartsEqual(e,T){return stringifySelector({parts:e})===stringifySelector({parts:T})}function stringifySelector(e,T){return typeof e==`string`?e:e.parts.map((E,D)=>{let O=!0;!T&&D!==e.capture&&(E.name===`css`||E.name===`xpath`&&E.source.startsWith(`//`)||E.source.startsWith(`..`))&&(O=!1);let k=O?`${E.name}=`:``;return`${D===e.capture?`*`:``}${k}${E.source}`}).join(` >> `)}function visitAllSelectorParts(e,T){let E=(e,D)=>{for(let O of e.parts)T(O,D),kNestedSelectorNames.has(O.name)&&E(O.body.parsed,!0)};E(e,!1)}function parseSelectorString(e){let T=0,E,D=0,O={parts:[]},k=()=>{let E=e.substring(D,T).trim(),k=E.indexOf(`=`),A,j;k!==-1&&E.substring(0,k).trim().match(/^[\w\-+:*]+$/)?(A=E.substring(0,k).trim(),j=E.substring(k+1)):E.length>1&&E[0]===`"`&&E[E.length-1]===`"`||E.length>1&&E[0]===`'`&&E[E.length-1]===`'`?(A=`text`,j=E):/^\(*\/\//.test(E)||E.startsWith(`..`)?(A=`xpath`,j=E):(A=`css`,j=E);let M=!1;if(A[0]===`*`&&(M=!0,A=A.substring(1)),O.parts.push({name:A,body:j}),M){if(O.capture!==void 0)throw new InvalidSelectorError(`Only one of the selectors can capture using * modifier`);O.capture=O.parts.length-1}};if(!e.includes(`>>`))return T=e.length,k(),O;let A=()=>{let E=e.substring(D,T).match(/^\s*text\s*=(.*)$/);return!!E&&!!E[1]};for(;T<e.length;){let O=e[T];O===`\\`&&T+1<e.length?T+=2:O===E?(E=void 0,T++):!E&&(O===`"`||O===`'`||O==="`")&&!A()?(E=O,T++):!E&&O===`>`&&e[T+1]===`>`?(k(),T+=2,D=T):T++}return k(),O}function parseAttributeSelector(e,T){let E=0,D=e.length===0,O=()=>e[E]||``,k=()=>{let T=O();return++E,D=E>=e.length,T},A=T=>{throw D?new InvalidSelectorError(`Unexpected end of selector while parsing selector \`${e}\``):new InvalidSelectorError(`Error while parsing selector \`${e}\` - unexpected symbol "${O()}" at position ${E}${T?` during ${T}`:``}`)};function j(){for(;!D&&/\s/.test(O());)k()}function M(e){return e>=`€`||e>=`0`&&e<=`9`||e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e>=`0`&&e<=`9`||e===`_`||e===`-`}function N(){let e=``;for(j();!D&&M(O());)e+=k();return e}function P(e){let T=k();for(T!==e&&A(`parsing quoted string`);!D&&O()!==e;)O()===`\\`&&k(),T+=k();return O()!==e&&A(`parsing quoted string`),T+=k(),T}function F(){k()!==`/`&&A(`parsing regular expression`);let T=``,E=!1;for(;!D;){if(O()===`\\`)T+=k(),D&&A(`parsing regular expression`);else if(E&&O()===`]`)E=!1;else if(!E&&O()===`[`)E=!0;else if(!E&&O()===`/`)break;T+=k()}k()!==`/`&&A(`parsing regular expression`);let j=``;for(;!D&&O().match(/[dgimsuy]/);)j+=k();try{return new RegExp(T,j)}catch(T){throw new InvalidSelectorError(`Error while parsing selector \`${e}\`: ${T.message}`)}}function I(){let e=``;return j(),e=O()===`'`||O()===`"`?P(O()).slice(1,-1):N(),e||A(`parsing property path`),e}function L(){j();let e=``;return D||(e+=k()),!D&&e!==`=`&&(e+=k()),[`=`,`*=`,`^=`,`$=`,`|=`,`~=`].includes(e)||A(`parsing operator`),e}function R(){k();let T=[];for(T.push(I()),j();O()===`.`;)k(),T.push(I()),j();if(O()===`]`)return k(),{name:T.join(`.`),jsonPath:T,op:`<truthy>`,value:null,caseSensitive:!1};let E=L(),N,R=!0;if(j(),O()===`/`){if(E!==`=`)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - cannot use ${E} in attribute with regular expression`);N=F()}else if(O()===`'`||O()===`"`)N=P(O()).slice(1,-1),j(),O()===`i`||O()===`I`?(R=!1,k()):(O()===`s`||O()===`S`)&&(R=!0,k());else{for(N=``;!D&&(M(O())||O()===`+`||O()===`.`);)N+=k();N===`true`?N=!0:N===`false`&&(N=!1)}if(j(),O()!==`]`&&A(`parsing attribute value`),k(),E!==`=`&&typeof N!=`string`)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - cannot use ${E} in attribute with non-string matching value - ${N}`);return{name:T.join(`.`),jsonPath:T,op:E,value:N,caseSensitive:R}}let z={name:``,attributes:[]};for(z.name=N(),j();O()===`[`;)z.attributes.push(R()),j();if(D||A(void 0),!z.name&&!z.attributes.length)throw new InvalidSelectorError(`Error while parsing selector \`${e}\` - selector cannot be empty`);return z}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,T){return[...kGlobalAriaAttributes].some(([E,D])=>!D?.has(T||``)&&e.hasAttribute(E))}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 T=elementSafeTagName(e);return[`BUTTON`,`DETAILS`,`SELECT`,`TEXTAREA`].includes(T)?!0:T===`A`||T===`AREA`?e.hasAttribute(`href`):T===`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 T=e.type.toLowerCase();if(T===`search`)return e.hasAttribute(`list`)?`combobox`:`searchbox`;if([`email`,`tel`,`text`,`url`,``].includes(T)){let T=getIdRefs(e,e.getAttribute(`list`))[0];return T&&elementSafeTagName(T)===`DATALIST`?`combobox`:`textbox`}return T===`hidden`?``:{button:`button`,checkbox:`checkbox`,image:`button`,number:`spinbutton`,radio:`radio`,range:`slider`,reset:`button`,submit:`button`}[T]||`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 T=closestCrossShadow(e,`table`),E=T?getExplicitAriaRole(T):``;return E===`grid`||E===`treegrid`?`gridcell`:`cell`},TEXTAREA:()=>`textbox`,TFOOT:()=>`rowgroup`,TH:e=>{if(e.getAttribute(`scope`)===`col`)return`columnheader`;if(e.getAttribute(`scope`)===`row`)return`rowheader`;let T=closestCrossShadow(e,`table`),E=T?getExplicitAriaRole(T):``;return E===`grid`||E===`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){let T=kImplicitRoleByTagName[elementSafeTagName(e)]?.call(kImplicitRoleByTagName,e)||``;if(!T)return null;let E=e;for(;E;){let e=parentElementOrShadowHost(E),T=kPresentationInheritanceParents[elementSafeTagName(E)];if(!T||!e||!T.includes(elementSafeTagName(e)))break;let D=getExplicitAriaRole(e);if((D===`none`||D===`presentation`)&&!hasPresentationConflictResolution(e,D))return D;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){return(e.getAttribute(`role`)||``).split(` `).map(e=>e.trim()).find(e=>validRoles.includes(e))||null}function hasPresentationConflictResolution(e,T){return hasGlobalAriaAttribute(e,T)||isFocusable(e)}function getAriaRole(e){let T=getExplicitAriaRole(e);if(!T)return getImplicitAriaRole(e);if(T===`none`||T===`presentation`){let T=getImplicitAriaRole(e);if(hasPresentationConflictResolution(e,T))return T}return T}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 T=getElementComputedStyle(e),E=e.nodeName===`SLOT`;if(T?.display===`contents`&&!E){for(let T=e.firstChild;T;T=T.nextSibling)if(T.nodeType===1&&!isElementHiddenForAria(T)||T.nodeType===3&&isVisibleTextNode(T))return!1;return!0}return!(e.nodeName===`OPTION`&&e.closest(`select`))&&!E&&!isElementStyleVisibilityVisible(e,T)?!0:belongsToDisplayNoneOrAriaHiddenOrNonSlotted(e)}function belongsToDisplayNoneOrAriaHiddenOrNonSlotted(e){let T=cacheIsHidden?.get(e);if(T===void 0){if(T=!1,e.parentElement&&e.parentElement.shadowRoot&&!e.assignedSlot&&(T=!0),!T){let E=getElementComputedStyle(e);T=!E||E.display===`none`||getAriaBoolean(e.getAttribute(`aria-hidden`))===!0}if(!T){let E=parentElementOrShadowHost(e);E&&(T=belongsToDisplayNoneOrAriaHiddenOrNonSlotted(E))}cacheIsHidden?.set(e,T)}return T}function getIdRefs(e,T){if(!T)return[];let E=enclosingShadowRootOrDocument(e);if(!E)return[];try{let e=T.split(` `).filter(e=>!!e),D=new Set;for(let T of e){let e=E.querySelector(`#${CSS.escape(T)}`);e&&D.add(e)}return[...D]}catch{return[]}}function trimFlatString(e){return e.trim()}function asFlatString(e){return e.split(`\xA0`).map(e=>e.replace(/\r\n/g,`
3
+ `).replace(/[\u200b\u00ad]/g,``).replace(/\s\s*/g,` `)).join(`\xA0`).trim()}function queryInAriaOwned(e,T){let E=[...e.querySelectorAll(T)];for(let D of getIdRefs(e,e.getAttribute(`aria-owns`)))D.matches(T)&&E.push(D),E.push(...D.querySelectorAll(T));return E}function getPseudoContent(e,T){let E=T===`::before`?cachePseudoContentBefore:cachePseudoContentAfter;if(E?.has(e))return E?.get(e)||``;let D=getPseudoContentImpl(getElementComputedStyle(e,T));return E&&E.set(e,D),D}function getPseudoContentImpl(e){if(!e)return``;let T=e.content;if(T[0]===`'`&&T[T.length-1]===`'`||T[0]===`"`&&T[T.length-1]===`"`){let E=T.substring(1,T.length-1);return(e.display||`inline`)===`inline`?E:` ${E} `}return``}function getAriaLabelledByElements(e){let T=e.getAttribute(`aria-labelledby`);return T===null?null:getIdRefs(e,T)}function allowsNameFromContent(e,T){let E=[`button`,`cell`,`checkbox`,`columnheader`,`gridcell`,`heading`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`row`,`rowheader`,`switch`,`tab`,`tooltip`,`treeitem`].includes(e),D=T&&[``,`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 E||D}function getElementAccessibleName(e,T){let E=T?cacheAccessibleNameHidden:cacheAccessibleName,D=E?.get(e);return D===void 0&&(D=``,[`caption`,`code`,`definition`,`deletion`,`emphasis`,`generic`,`insertion`,`mark`,`paragraph`,`presentation`,`strong`,`subscript`,`suggestion`,`superscript`,`term`,`time`].includes(getAriaRole(e)||``)||(D=asFlatString(getTextAlternativeInternal(e,{includeHidden:T,visitedElements:new Set,embeddedInDescribedBy:void 0,embeddedInLabelledBy:void 0,embeddedInLabel:void 0,embeddedInNativeTextAlternative:void 0,embeddedInTargetElement:`self`}))),E?.set(e,D)),D}function getElementAccessibleDescription(e,T){let E=cacheAccessibleDescription,D=E?.get(e);return D===void 0&&(D=``,D=e.hasAttribute(`aria-describedby`)?asFlatString(getIdRefs(e,e.getAttribute(`aria-describedby`)).map(e=>getTextAlternativeInternal(e,{includeHidden:T,visitedElements:new Set,embeddedInDescribedBy:{element:e,hidden:isElementHiddenForAria(e)}})).join(` `)):e.hasAttribute(`aria-description`)?asFlatString(e.getAttribute(`aria-description`)||``):asFlatString(e.getAttribute(`title`)||``),E?.set(e,D)),D}var kAriaInvalidRoles=[`application`,`checkbox`,`combobox`,`gridcell`,`listbox`,`radiogroup`,`slider`,`spinbutton`,`textbox`,`tree`,`columnheader`,`rowheader`,`searchbox`,`switch`,`treegrid`];function getAriaInvalid(e){let T=getAriaRole(e)||``;if(!T||!kAriaInvalidRoles.includes(T))return`false`;let E=e.getAttribute(`aria-invalid`);return!E||E.trim()===``||E.toLocaleLowerCase()===`false`?`false`:E===`true`||E===`grammar`||E===`spelling`?E:`true`}function getValidityInvalid(e){return`validity`in e?e.validity?.valid===!1:!1}function getElementAccessibleErrorMessage(e){let T=cacheAccessibleErrorMessage,E=cacheAccessibleErrorMessage?.get(e);if(E===void 0){E=``;let D=getAriaInvalid(e)!==`false`,O=getValidityInvalid(e);(D||O)&&(E=getIdRefs(e,e.getAttribute(`aria-errormessage`)).map(e=>asFlatString(getTextAlternativeInternal(e,{visitedElements:new Set,embeddedInDescribedBy:{element:e,hidden:isElementHiddenForAria(e)}}))).join(` `).trim()),T?.set(e,E)}return E}function getTextAlternativeInternal(e,T){if(T.visitedElements.has(e))return``;let E={...T,embeddedInTargetElement:T.embeddedInTargetElement===`self`?`descendant`:T.embeddedInTargetElement};if(!T.includeHidden){let E=!!T.embeddedInLabelledBy?.hidden||!!T.embeddedInDescribedBy?.hidden||!!T.embeddedInNativeTextAlternative?.hidden||!!T.embeddedInLabel?.hidden;if(isElementIgnoredForAria(e)||!E&&isElementHiddenForAria(e))return T.visitedElements.add(e),``}let D=getAriaLabelledByElements(e);if(!T.embeddedInLabelledBy){let e=(D||[]).map(e=>getTextAlternativeInternal(e,{...T,embeddedInLabelledBy:{element:e,hidden:isElementHiddenForAria(e)},embeddedInDescribedBy:void 0,embeddedInTargetElement:void 0,embeddedInLabel:void 0,embeddedInNativeTextAlternative:void 0})).join(` `);if(e)return e}let O=getAriaRole(e)||``,k=elementSafeTagName(e);if(T.embeddedInLabel||T.embeddedInLabelledBy||T.embeddedInTargetElement===`descendant`){let A=[...e.labels||[]].includes(e),j=(D||[]).includes(e);if(!A&&!j){if(O===`textbox`)return T.visitedElements.add(e),k===`INPUT`||k===`TEXTAREA`?e.value:e.textContent||``;if([`combobox`,`listbox`].includes(O)){T.visitedElements.add(e);let D;if(k===`SELECT`)D=[...e.selectedOptions],!D.length&&e.options.length&&D.push(e.options[0]);else{let T=O===`combobox`?queryInAriaOwned(e,`*`).find(e=>getAriaRole(e)===`listbox`):e;D=T?queryInAriaOwned(T,`[aria-selected="true"]`).filter(e=>getAriaRole(e)===`option`):[]}return!D.length&&k===`INPUT`?e.value:D.map(e=>getTextAlternativeInternal(e,E)).join(` `)}if([`progressbar`,`scrollbar`,`slider`,`spinbutton`,`meter`].includes(O))return T.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(O))return T.visitedElements.add(e),``}}let A=e.getAttribute(`aria-label`)||``;if(trimFlatString(A))return T.visitedElements.add(e),A;if(![`presentation`,`none`].includes(O)){if(k===`INPUT`&&[`button`,`submit`,`reset`].includes(e.type)){T.visitedElements.add(e);let E=e.value||``;return trimFlatString(E)?E:e.type===`submit`?`Submit`:e.type===`reset`?`Reset`:e.getAttribute(`title`)||``}if(k===`INPUT`&&e.type===`image`){T.visitedElements.add(e);let E=e.labels||[];if(E.length&&!T.embeddedInLabelledBy)return getAccessibleNameFromAssociatedLabels(E,T);let D=e.getAttribute(`alt`)||``;if(trimFlatString(D))return D;let O=e.getAttribute(`title`)||``;return trimFlatString(O)?O:`Submit`}if(!D&&k===`BUTTON`){T.visitedElements.add(e);let E=e.labels||[];if(E.length)return getAccessibleNameFromAssociatedLabels(E,T)}if(!D&&k===`OUTPUT`){T.visitedElements.add(e);let E=e.labels||[];return E.length?getAccessibleNameFromAssociatedLabels(E,T):e.getAttribute(`title`)||``}if(!D&&(k===`TEXTAREA`||k===`SELECT`||k===`INPUT`)){T.visitedElements.add(e);let E=e.labels||[];if(E.length)return getAccessibleNameFromAssociatedLabels(E,T);let D=k===`INPUT`&&[`text`,`password`,`search`,`tel`,`email`,`url`].includes(e.type)||k===`TEXTAREA`,O=e.getAttribute(`placeholder`)||``,A=e.getAttribute(`title`)||``;return!D||A?A:O}if(!D&&k===`FIELDSET`){T.visitedElements.add(e);for(let T=e.firstElementChild;T;T=T.nextElementSibling)if(elementSafeTagName(T)===`LEGEND`)return getTextAlternativeInternal(T,{...E,embeddedInNativeTextAlternative:{element:T,hidden:isElementHiddenForAria(T)}});return e.getAttribute(`title`)||``}if(!D&&k===`FIGURE`){T.visitedElements.add(e);for(let T=e.firstElementChild;T;T=T.nextElementSibling)if(elementSafeTagName(T)===`FIGCAPTION`)return getTextAlternativeInternal(T,{...E,embeddedInNativeTextAlternative:{element:T,hidden:isElementHiddenForAria(T)}});return e.getAttribute(`title`)||``}if(k===`IMG`){T.visitedElements.add(e);let E=e.getAttribute(`alt`)||``;return trimFlatString(E)?E:e.getAttribute(`title`)||``}if(k===`TABLE`){T.visitedElements.add(e);for(let T=e.firstElementChild;T;T=T.nextElementSibling)if(elementSafeTagName(T)===`CAPTION`)return getTextAlternativeInternal(T,{...E,embeddedInNativeTextAlternative:{element:T,hidden:isElementHiddenForAria(T)}});let D=e.getAttribute(`summary`)||``;if(D)return D}if(k===`AREA`){T.visitedElements.add(e);let E=e.getAttribute(`alt`)||``;return trimFlatString(E)?E:e.getAttribute(`title`)||``}if(k===`SVG`||e.ownerSVGElement){T.visitedElements.add(e);for(let T=e.firstElementChild;T;T=T.nextElementSibling)if(elementSafeTagName(T)===`TITLE`&&T.ownerSVGElement)return getTextAlternativeInternal(T,{...E,embeddedInLabelledBy:{element:T,hidden:isElementHiddenForAria(T)}})}if(e.ownerSVGElement&&k===`A`){let E=e.getAttribute(`xlink:title`)||``;if(trimFlatString(E))return T.visitedElements.add(e),E}}let j=k===`SUMMARY`&&![`presentation`,`none`].includes(O);if(allowsNameFromContent(O,T.embeddedInTargetElement===`descendant`)||j||T.embeddedInLabelledBy||T.embeddedInDescribedBy||T.embeddedInLabel||T.embeddedInNativeTextAlternative){T.visitedElements.add(e);let D=innerAccumulatedElementText(e,E);if(T.embeddedInTargetElement===`self`?trimFlatString(D):D)return D}if(![`presentation`,`none`].includes(O)||k===`IFRAME`){T.visitedElements.add(e);let E=e.getAttribute(`title`)||``;if(trimFlatString(E))return E}return T.visitedElements.add(e),``}function innerAccumulatedElementText(e,T){let E=[],D=(e,D)=>{if(!(D&&e.assignedSlot))if(e.nodeType===1){let D=getElementComputedStyle(e)?.display||`inline`,O=getTextAlternativeInternal(e,T);(D!==`inline`||e.nodeName===`BR`)&&(O=` `+O+` `),E.push(O)}else e.nodeType===3&&E.push(e.textContent||``)};E.push(getPseudoContent(e,`::before`));let O=e.nodeName===`SLOT`?e.assignedNodes():[];if(O.length)for(let e of O)D(e,!1);else{for(let T=e.firstChild;T;T=T.nextSibling)D(T,!0);if(e.shadowRoot)for(let T=e.shadowRoot.firstChild;T;T=T.nextSibling)D(T,!0);for(let T of getIdRefs(e,e.getAttribute(`aria-owns`)))D(T,!0)}return E.push(getPseudoContent(e,`::after`)),E.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 T=getChecked(e);return T===`error`?!1:T}function getChecked(e,T){let E=elementSafeTagName(e);if(E===`INPUT`&&e.indeterminate)return`mixed`;if(E===`INPUT`&&[`checkbox`,`radio`].includes(e.type))return e.checked;if(kAriaCheckedRoles.includes(getAriaRole(e)||``)){let T=e.getAttribute(`aria-checked`);return T===`true`?!0:T===`mixed`?`mixed`:!1}return`error`}var kAriaPressedRoles=[`button`];function getAriaPressed(e){if(kAriaPressedRoles.includes(getAriaRole(e)||``)){let T=e.getAttribute(`aria-pressed`);if(T===`true`)return!0;if(T===`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 T=e.getAttribute(`aria-expanded`);return T===null?`none`:T===`true`}return`none`}var kAriaLevelRoles=[`heading`,`listitem`,`row`,`treeitem`];function getAriaLevel(e){let T={H1:1,H2:2,H3:3,H4:4,H5:5,H6:6}[elementSafeTagName(e)];if(T)return T;if(kAriaLevelRoles.includes(getAriaRole(e)||``)){let T=e.getAttribute(`aria-level`),E=T===null?NaN:Number(T);if(Number.isInteger(E)&&E>=1)return E}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){return[`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`OPTION`,`OPTGROUP`].includes(e.tagName)&&(e.hasAttribute(`disabled`)||belongsToDisabledFieldSet(e))}function belongsToDisabledFieldSet(e){let T=e?.closest(`FIELDSET[DISABLED]`);if(!T)return!1;let E=T.querySelector(`:scope > LEGEND`);return!E||!E.contains(e)}function hasExplicitAriaDisabled(e){if(!e)return!1;if(kAriaDisabledRoles.includes(getAriaRole(e)||``)){let T=(e.getAttribute(`aria-disabled`)||``).toLowerCase();if(T===`true`)return!0;if(T===`false`)return!1}return hasExplicitAriaDisabled(parentElementOrShadowHost(e))}function getAccessibleNameFromAssociatedLabels(e,T){return[...e].map(e=>getTextAlternativeInternal(e,{...T,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,T){let E=typeof e==`string`&&!T.caseSensitive?e.toUpperCase():e,D=typeof T.value==`string`&&!T.caseSensitive?T.value.toUpperCase():T.value;return T.op===`<truthy>`?!!E:T.op===`=`?D instanceof RegExp?typeof E==`string`&&!!E.match(D):E===D:typeof E!=`string`||typeof D!=`string`?!1:T.op===`*=`?E.includes(D):T.op===`^=`?E.startsWith(D):T.op===`$=`?E.endsWith(D):T.op===`|=`?E===D||E.startsWith(`${D}-`):T.op===`~=`?E.split(` `).includes(D):!1}function shouldSkipForTextMatching(e){let T=e.ownerDocument;return e.nodeName===`SCRIPT`||e.nodeName===`NOSCRIPT`||e.nodeName===`STYLE`||T.head&&T.head.contains(e)}function elementText(e,T){let E=e.get(T);if(E===void 0){if(E={full:``,normalized:``,immediate:[]},!shouldSkipForTextMatching(T)){let D=``;if(T instanceof HTMLInputElement&&(T.type===`submit`||T.type===`button`))E={full:T.value,normalized:normalizeWhiteSpace(T.value),immediate:[T.value]};else{for(let O=T.firstChild;O;O=O.nextSibling)O.nodeType===Node.TEXT_NODE?(E.full+=O.nodeValue||``,D+=O.nodeValue||``):(D&&E.immediate.push(D),D=``,O.nodeType===Node.ELEMENT_NODE&&(E.full+=elementText(e,O).full));D&&E.immediate.push(D),T.shadowRoot&&(E.full+=elementText(e,T.shadowRoot).full),E.full&&(E.normalized=normalizeWhiteSpace(E.full))}}e.set(T,E)}return E}function elementMatchesText(e,T,E){if(shouldSkipForTextMatching(T)||!E(elementText(e,T)))return`none`;for(let D=T.firstChild;D;D=D.nextSibling)if(D.nodeType===Node.ELEMENT_NODE&&E(elementText(e,D)))return`selfAndChildren`;return T.shadowRoot&&E(elementText(e,T.shadowRoot))?`selfAndChildren`:`self`}function getElementLabels(e,T){let E=getAriaLabelledByElements(T);if(E)return E.map(T=>elementText(e,T));let D=T.getAttribute(`aria-label`);if(D!==null&&D.trim())return[{full:D,normalized:normalizeWhiteSpace(D),immediate:[D]}];let O=T.nodeName===`INPUT`&&T.type!==`hidden`;if([`BUTTON`,`METER`,`OUTPUT`,`PROGRESS`,`SELECT`,`TEXTAREA`].includes(T.nodeName)||O){let E=T.labels;if(E)return[...E].map(T=>elementText(e,T))}return[]}var kSupportedAttributes=[`selected`,`checked`,`pressed`,`expanded`,`level`,`disabled`,`name`,`include-hidden`];kSupportedAttributes.sort();function validateSupportedRole(e,T,E){if(!T.includes(E))throw Error(`"${e}" attribute is only supported for roles: ${T.slice().sort().map(e=>`"${e}"`).join(`, `)}`)}function validateSupportedValues(e,T){if(e.op!==`<truthy>`&&!T.includes(e.value))throw Error(`"${e.name}" must be one of ${T.map(e=>JSON.stringify(e)).join(`, `)}`)}function validateSupportedOp(e,T){if(!T.includes(e.op))throw Error(`"${e.name}" does not support "${e.op}" matcher`)}function validateAttributes(e,T){let E={role:T};for(let D of e)switch(D.name){case`checked`:validateSupportedRole(D.name,kAriaCheckedRoles,T),validateSupportedValues(D,[!0,!1,`mixed`]),validateSupportedOp(D,[`<truthy>`,`=`]),E.checked=D.op===`<truthy>`?!0:D.value;break;case`pressed`:validateSupportedRole(D.name,kAriaPressedRoles,T),validateSupportedValues(D,[!0,!1,`mixed`]),validateSupportedOp(D,[`<truthy>`,`=`]),E.pressed=D.op===`<truthy>`?!0:D.value;break;case`selected`:validateSupportedRole(D.name,kAriaSelectedRoles,T),validateSupportedValues(D,[!0,!1]),validateSupportedOp(D,[`<truthy>`,`=`]),E.selected=D.op===`<truthy>`?!0:D.value;break;case`expanded`:validateSupportedRole(D.name,kAriaExpandedRoles,T),validateSupportedValues(D,[!0,!1]),validateSupportedOp(D,[`<truthy>`,`=`]),E.expanded=D.op===`<truthy>`?!0:D.value;break;case`level`:if(validateSupportedRole(D.name,kAriaLevelRoles,T),typeof D.value==`string`&&(D.value=+D.value),D.op!==`=`||typeof D.value!=`number`||Number.isNaN(D.value))throw Error(`"level" attribute must be compared to a number`);E.level=D.value;break;case`disabled`:validateSupportedValues(D,[!0,!1]),validateSupportedOp(D,[`<truthy>`,`=`]),E.disabled=D.op===`<truthy>`?!0:D.value;break;case`name`:if(D.op===`<truthy>`)throw Error(`"name" attribute must have a value`);if(typeof D.value!=`string`&&!(D.value instanceof RegExp))throw TypeError(`"name" attribute must be a string or a regular expression`);E.name=D.value,E.nameOp=D.op,E.exact=D.caseSensitive;break;case`include-hidden`:validateSupportedValues(D,[!0,!1]),validateSupportedOp(D,[`<truthy>`,`=`]),E.includeHidden=D.op===`<truthy>`?!0:D.value;break;default:throw Error(`Unknown attribute "${D.name}", must be one of ${kSupportedAttributes.map(e=>`"${e}"`).join(`, `)}.`)}return E}function queryRole(e,T,E){let D=[],O=e=>{if(getAriaRole(e)===T.role&&!(T.selected!==void 0&&getAriaSelected(e)!==T.selected)&&!(T.checked!==void 0&&getAriaChecked(e)!==T.checked)&&!(T.pressed!==void 0&&getAriaPressed(e)!==T.pressed)&&!(T.expanded!==void 0&&getAriaExpanded(e)!==T.expanded)&&!(T.level!==void 0&&getAriaLevel(e)!==T.level)&&!(T.disabled!==void 0&&getAriaDisabled(e)!==T.disabled)&&!(!T.includeHidden&&isElementHiddenForAria(e))){if(T.name!==void 0){let D=normalizeWhiteSpace(getElementAccessibleName(e,!!T.includeHidden));if(typeof T.name==`string`&&(T.name=normalizeWhiteSpace(T.name)),E&&!T.exact&&T.nameOp===`=`&&(T.nameOp=`*=`),!matchesAttributePart(D,{op:T.nameOp||`=`,value:T.name,caseSensitive:!!T.exact}))return}D.push(e)}},k=e=>{let T=[];e.shadowRoot&&T.push(e.shadowRoot);for(let E of e.querySelectorAll(`*`))O(E),E.shadowRoot&&T.push(E.shadowRoot);T.forEach(k)};return k(e),D}function createRoleEngine(e){return{queryAll:(T,E)=>{let D=parseAttributeSelector(E),O=D.name.toLowerCase();if(!O)throw Error(`Role must not be empty`);let k=validateAttributes(D.attributes,O);beginAriaCaches();try{return queryRole(T,k,e)}finally{endAriaCaches()}}}}function asLocator(e,T,E=!1){return asLocators(e,T,E)[0]}function asLocators(e,T,E=!1,D=20,O){try{return innerAsLocators(new generators[e](O),parseSelector(T),E,D)}catch{return[T]}}function innerAsLocators(e,T,E=!1,D=20){let O=[...T.parts];for(let e=0;e<O.length-1;e++)if(O[e].name===`nth`&&O[e+1].name===`internal:control`&&O[e+1].body===`enter-frame`){let[T]=O.splice(e,1);O.splice(e+1,0,T)}let k=[],A=E?`frame-locator`:`page`;for(let T=0;T<O.length;T++){let E=O[T],j=A;if(A=`locator`,E.name===`nth`){E.body===`0`?k.push([e.generateLocator(j,`first`,``),e.generateLocator(j,`nth`,`0`)]):E.body===`-1`?k.push([e.generateLocator(j,`last`,``),e.generateLocator(j,`nth`,`-1`)]):k.push([e.generateLocator(j,`nth`,E.body)]);continue}if(E.name===`internal:text`){let{exact:T,text:D}=detectExact(E.body);k.push([e.generateLocator(j,`text`,D,{exact:T})]);continue}if(E.name===`internal:has-text`){let{exact:T,text:D}=detectExact(E.body);if(!T){k.push([e.generateLocator(j,`has-text`,D,{exact:T})]);continue}}if(E.name===`internal:has-not-text`){let{exact:T,text:D}=detectExact(E.body);if(!T){k.push([e.generateLocator(j,`has-not-text`,D,{exact:T})]);continue}}if(E.name===`internal:has`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`has`,T)));continue}if(E.name===`internal:has-not`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`hasNot`,T)));continue}if(E.name===`internal:and`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`and`,T)));continue}if(E.name===`internal:or`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`or`,T)));continue}if(E.name===`internal:chain`){let T=innerAsLocators(e,E.body.parsed,!1,D);k.push(T.map(T=>e.generateLocator(j,`chain`,T)));continue}if(E.name===`internal:label`){let{exact:T,text:D}=detectExact(E.body);k.push([e.generateLocator(j,`label`,D,{exact:T})]);continue}if(E.name===`internal:role`){let T=parseAttributeSelector(E.body),D={attrs:[]};for(let e of T.attributes)e.name===`name`?(D.exact=e.caseSensitive,D.name=e.value):(e.name===`level`&&typeof e.value==`string`&&(e.value=+e.value),D.attrs.push({name:e.name===`include-hidden`?`includeHidden`:e.name,value:e.value}));k.push([e.generateLocator(j,`role`,T.name,D)]);continue}if(E.name===`internal:testid`){let{value:T}=parseAttributeSelector(E.body).attributes[0];k.push([e.generateLocator(j,`test-id`,T)]);continue}if(E.name===`internal:attr`){let{name:T,value:D,caseSensitive:O}=parseAttributeSelector(E.body).attributes[0],A=D,M=!!O;if(T===`placeholder`){k.push([e.generateLocator(j,`placeholder`,A,{exact:M})]);continue}if(T===`alt`){k.push([e.generateLocator(j,`alt`,A,{exact:M})]);continue}if(T===`title`){k.push([e.generateLocator(j,`title`,A,{exact:M})]);continue}}let M=`default`,N=O[T+1];N&&N.name===`internal:control`&&N.body===`enter-frame`&&(M=`frame`,A=`frame-locator`,T++);let P=stringifySelector({parts:[E]}),F=e.generateLocator(j,M,P);if(M===`default`&&N&&[`internal:has-text`,`internal:has-not-text`].includes(N.name)){let{exact:E,text:D}=detectExact(N.body);if(!E){let O=e.generateLocator(`locator`,N.name===`internal:has-text`?`has-text`:`has-not-text`,D,{exact:E}),A={};N.name===`internal:has-text`?A.hasText=D:A.hasNotText=D;let M=e.generateLocator(j,`default`,P,A);k.push([e.chainLocators([F,O]),M]),T++;continue}}let I;if([`xpath`,`css`].includes(E.name)){let T=stringifySelector({parts:[E]},!0);I=e.generateLocator(j,M,T)}k.push([F,I].filter(Boolean))}return combineTokens(e,k,D)}function combineTokens(e,T,E){let D=T.map(()=>``),O=[],k=A=>{if(A===T.length)return O.push(e.chainLocators(D)),D.length<E;for(let e of T[A])if(D[A]=e,!k(A+1))return!1;return!0};return k(0),O}function detectExact(e){let T=!1,E=e.match(/^\/(.*)\/([igm]*)$/);return E?{text:new RegExp(E[1],E[2])}:(e.endsWith(`"`)?(e=JSON.parse(e),T=!0):e.endsWith(`"s`)?(e=JSON.parse(e.substring(0,e.length-1)),T=!0):e.endsWith(`"i`)&&(e=JSON.parse(e.substring(0,e.length-1)),T=!1),{exact:T,text:e})}var JavaScriptLocatorFactory=class{constructor(e){this.preferredQuote=e}generateLocator(e,T,E,D={}){switch(T){case`default`:return D.hasText===void 0?D.hasNotText===void 0?`locator(${this.quote(E)})`:`locator(${this.quote(E)}, { hasNotText: ${this.toHasText(D.hasNotText)} })`:`locator(${this.quote(E)}, { hasText: ${this.toHasText(D.hasText)} })`;case`frame`:return`frameLocator(${this.quote(E)})`;case`nth`:return`nth(${E})`;case`first`:return`first()`;case`last`:return`last()`;case`role`:{let e=[];isRegExp(D.name)?e.push(`name: ${this.regexToSourceString(D.name)}`):typeof D.name==`string`&&(e.push(`name: ${this.quote(D.name)}`),D.exact&&e.push(`exact: true`));for(let{name:T,value:E}of D.attrs)e.push(`${T}: ${typeof E==`string`?this.quote(E):E}`);let T=e.length?`, { ${e.join(`, `)} }`:``;return`getByRole(${this.quote(E)}${T})`}case`has-text`:return`filter({ hasText: ${this.toHasText(E)} })`;case`has-not-text`:return`filter({ hasNotText: ${this.toHasText(E)} })`;case`has`:return`filter({ has: ${E} })`;case`hasNot`:return`filter({ hasNot: ${E} })`;case`and`:return`and(${E})`;case`or`:return`or(${E})`;case`chain`:return`locator(${E})`;case`test-id`:return`getByTestId(${this.toTestIdValue(E)})`;case`text`:return this.toCallWithExact(`getByText`,E,!!D.exact);case`alt`:return this.toCallWithExact(`getByAltText`,E,!!D.exact);case`placeholder`:return this.toCallWithExact(`getByPlaceholder`,E,!!D.exact);case`label`:return this.toCallWithExact(`getByLabel`,E,!!D.exact);case`title`:return this.toCallWithExact(`getByTitle`,E,!!D.exact);default:throw Error(`Unknown selector kind ${T}`)}}chainLocators(e){return e.join(`.`)}regexToSourceString(e){return normalizeEscapedRegexQuotes(String(e))}toCallWithExact(e,T,E){return isRegExp(T)?`${e}(${this.regexToSourceString(T)})`:E?`${e}(${this.quote(T)}, { exact: true })`:`${e}(${this.quote(T)})`}toHasText(e){return isRegExp(e)?this.regexToSourceString(e):this.quote(e)}toTestIdValue(e){return isRegExp(e)?this.regexToSourceString(e):this.quote(e)}quote(e){return escapeWithQuotes(e,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,T,E){e._evaluator.begin(),beginAriaCaches();try{return joinTokens(generateSelectorFor(e,T,E)||cssFallback(e,T,E))}finally{cacheAllowText.clear(),cacheDisallowText.clear(),endAriaCaches(),e._evaluator.end()}}function filterRegexTokens(e){return e.filter(e=>e[0].selector[0]!==`/`)}function generateSelectorFor(e,T,E){if(T.ownerDocument.documentElement===T)return[{engine:`css`,selector:`html`,score:1}];let D=(D,k)=>{let A=D===T,j=k?buildTextCandidates(e,D,D===T):[];D!==T&&(j=filterRegexTokens(j));let M=buildNoTextCandidates(e,D,E).map(e=>[e]),N=chooseFirstSelector(e,T.ownerDocument,D,[...j,...M],A);j=filterRegexTokens(j);let P=T=>{let E=k&&!T.length,j=[...T,...M].filter(e=>N?combineScores(e)<combineScores(N):!0),P=j[0];if(P)for(let T=parentElementOrShadowHost(D);T;T=parentElementOrShadowHost(T)){let k=O(T,E);if(!k||N&&combineScores([...k,...P])>=combineScores(N))continue;if(P=chooseFirstSelector(e,T,D,j,A),!P)return;let M=[...k,...P];(!N||combineScores(M)<combineScores(N))&&(N=M)}};return P(j),D===T&&j.length&&P([]),N},O=(e,T)=>{let E=T?cacheAllowText:cacheDisallowText,O=E.get(e);return O===void 0&&(O=D(e,T),E.set(e,O)),O};return D(T,!E.noText)}function buildNoTextCandidates(e,T,E){let D=[];for(let e of[`data-testid`,`data-test-id`,`data-test`])e!==E.testIdAttributeName&&T.getAttribute(e)&&D.push({engine:`css`,selector:`[${e}=${quoteCSSAttributeValue(T.getAttribute(e))}]`,score:kOtherTestIdScore});if(!E.noCSSId){let e=T.getAttribute(`id`);e&&!isGuidLike(e)&&D.push({engine:`css`,selector:makeSelectorForId(e),score:kCSSIdScore})}if(D.push({engine:`css`,selector:cssEscape(T.nodeName.toLowerCase()),score:kCSSTagNameScore}),T.nodeName===`IFRAME`){for(let e of[`name`,`title`])T.getAttribute(e)&&D.push({engine:`css`,selector:`${cssEscape(T.nodeName.toLowerCase())}[${e}=${quoteCSSAttributeValue(T.getAttribute(e))}]`,score:kIframeByAttributeScore});return T.getAttribute(E.testIdAttributeName)&&D.push({engine:`css`,selector:`[${E.testIdAttributeName}=${quoteCSSAttributeValue(T.getAttribute(E.testIdAttributeName))}]`,score:kTestIdScore}),penalizeScoreForLength([D]),D}if(T.getAttribute(E.testIdAttributeName)&&D.push({engine:`internal:testid`,selector:`[${E.testIdAttributeName}=${escapeForAttributeSelector(T.getAttribute(E.testIdAttributeName),!0)}]`,score:kTestIdScore}),T.nodeName===`INPUT`||T.nodeName===`TEXTAREA`){let e=T;if(e.placeholder){D.push({engine:`internal:attr`,selector:`[placeholder=${escapeForAttributeSelector(e.placeholder,!0)}]`,score:kPlaceholderScoreExact});for(let T of suitableTextAlternatives(e.placeholder))D.push({engine:`internal:attr`,selector:`[placeholder=${escapeForAttributeSelector(T.text,!1)}]`,score:kPlaceholderScore-T.scoreBouns})}}let O=getElementLabels(e._evaluator._cacheText,T);for(let e of O){let T=e.normalized;D.push({engine:`internal:label`,selector:escapeForTextSelector$1(T,!0),score:kLabelScoreExact});for(let e of suitableTextAlternatives(T))D.push({engine:`internal:label`,selector:escapeForTextSelector$1(e.text,!1),score:kLabelScore-e.scoreBouns})}let k=getAriaRole(T);return k&&![`none`,`presentation`].includes(k)&&D.push({engine:`internal:role`,selector:k,score:kRoleWithoutNameScore}),T.getAttribute(`name`)&&[`BUTTON`,`FORM`,`FIELDSET`,`FRAME`,`IFRAME`,`INPUT`,`KEYGEN`,`OBJECT`,`OUTPUT`,`SELECT`,`TEXTAREA`,`MAP`,`META`,`PARAM`].includes(T.nodeName)&&D.push({engine:`css`,selector:`${cssEscape(T.nodeName.toLowerCase())}[name=${quoteCSSAttributeValue(T.getAttribute(`name`))}]`,score:kCSSInputTypeNameScore}),[`INPUT`,`TEXTAREA`].includes(T.nodeName)&&T.getAttribute(`type`)!==`hidden`&&T.getAttribute(`type`)&&D.push({engine:`css`,selector:`${cssEscape(T.nodeName.toLowerCase())}[type=${quoteCSSAttributeValue(T.getAttribute(`type`))}]`,score:kCSSInputTypeNameScore}),[`INPUT`,`TEXTAREA`,`SELECT`].includes(T.nodeName)&&T.getAttribute(`type`)!==`hidden`&&D.push({engine:`css`,selector:cssEscape(T.nodeName.toLowerCase()),score:kCSSInputTypeNameScore+1}),penalizeScoreForLength([D]),D}function buildTextCandidates(e,T,E){if(T.nodeName===`SELECT`)return[];let D=[],O=T.getAttribute(`title`);if(O){D.push([{engine:`internal:attr`,selector:`[title=${escapeForAttributeSelector(O,!0)}]`,score:kTitleScoreExact}]);for(let e of suitableTextAlternatives(O))D.push([{engine:`internal:attr`,selector:`[title=${escapeForAttributeSelector(e.text,!1)}]`,score:kTitleScore-e.scoreBouns}])}let k=T.getAttribute(`alt`);if(k&&[`APPLET`,`AREA`,`IMG`,`INPUT`].includes(T.nodeName)){D.push([{engine:`internal:attr`,selector:`[alt=${escapeForAttributeSelector(k,!0)}]`,score:kAltTextScoreExact}]);for(let e of suitableTextAlternatives(k))D.push([{engine:`internal:attr`,selector:`[alt=${escapeForAttributeSelector(e.text,!1)}]`,score:kAltTextScore-e.scoreBouns}])}let A=elementText(e._evaluator._cacheText,T).normalized;if(A){let e=suitableTextAlternatives(A);if(E){A.length<=80&&D.push([{engine:`internal:text`,selector:escapeForTextSelector$1(A,!0),score:kTextScoreExact}]);for(let T of e)D.push([{engine:`internal:text`,selector:escapeForTextSelector$1(T.text,!1),score:kTextScore-T.scoreBouns}])}let O={engine:`css`,selector:cssEscape(T.nodeName.toLowerCase()),score:kCSSTagNameScore};for(let T of e)D.push([O,{engine:`internal:has-text`,selector:escapeForTextSelector$1(T.text,!1),score:kTextScore-T.scoreBouns}]);if(A.length<=80){let e=RegExp(`^${escapeRegExp(A)}$`);D.push([O,{engine:`internal:has-text`,selector:escapeForTextSelector$1(e,!1),score:kTextScoreRegex}])}}let j=getAriaRole(T);if(j&&![`none`,`presentation`].includes(j)){let e=getElementAccessibleName(T,!1);if(e){D.push([{engine:`internal:role`,selector:`${j}[name=${escapeForAttributeSelector(e,!0)}]`,score:kRoleWithNameScoreExact}]);for(let T of suitableTextAlternatives(e))D.push([{engine:`internal:role`,selector:`${j}[name=${escapeForAttributeSelector(T.text,!1)}]`,score:kRoleWithNameScore-T.scoreBouns}])}}return penalizeScoreForLength(D),D}function makeSelectorForId(e){return/^[a-z][\w\-]+$/i.test(e)?`#${e}`:`[id="${cssEscape(e)}"]`}function cssFallback(e,T,E){let D=T.ownerDocument,O=[];function k(E){let k=O.slice();E&&k.unshift(E);let A=k.join(` > `),j=e.parseSelector(A);return e.querySelector(j,D,!1)===T?A:void 0}function A(E){let O={engine:`css`,selector:E,score:kCSSFallbackScore},k=e.parseSelector(E),A=e.querySelectorAll(k,D);return A.length===1?[O]:[O,{engine:`nth`,selector:String(A.indexOf(T)),score:kNthScore}]}for(let e=T;e&&e!==D;e=parentElementOrShadowHost(e)){let T=e.nodeName.toLowerCase(),D=``;if(e.id&&!E.noCSSId){let T=makeSelectorForId(e.id),E=k(T);if(E)return A(E);D=T}let j=e.parentNode,N=[...e.classList];for(let e=0;e<N.length;++e){let T=`.${cssEscape(N.slice(0,e+1).join(`.`))}`,E=k(T);if(E)return A(E);!D&&j&&j.querySelectorAll(T).length===1&&(D=T)}if(j){let E=[...j.children],O=E.filter(e=>e.nodeName.toLowerCase()===T).indexOf(e)===0?cssEscape(T):`${cssEscape(T)}:nth-child(${1+E.indexOf(e)})`,N=k(O);if(N)return A(N);D||=O}else D||=cssEscape(T);O.unshift(D)}return A(k())}function penalizeScoreForLength(e){for(let T of e)for(let e of T)e.score>kBeginPenalizedScore&&e.score<kEndPenalizedScore&&(e.score+=Math.min(kTextScoreRange,e.selector.length/10|0))}function joinTokens(e){let T=[],E=``;for(let{engine:D,selector:O}of e)T.length&&(E!==`css`||D!==`css`||O.startsWith(`:nth-match(`))&&T.push(`>>`),E=D,D===`css`?T.push(O):T.push(`${D}=${O}`);return T.join(` `)}function combineScores(e){let T=0;for(let E=0;E<e.length;E++)T+=e[E].score*(e.length-E);return T}function chooseFirstSelector(e,T,E,D,O){let k=D.map(e=>({tokens:e,score:combineScores(e)}));k.sort((e,T)=>e.score-T.score);let A=null;for(let{tokens:D}of k){let k=e.parseSelector(joinTokens(D)),j=e.querySelectorAll(k,T);if(j[0]===E&&j.length===1)return D;let M=j.indexOf(E);if(!O||A||M===-1||j.length>5)continue;let N={engine:`nth`,selector:String(M),score:kNthScore};A=[...D,N]}return A}function isGuidLike(e){let T,E=0;for(let D=0;D<e.length;++D){let O=e[D],k;if(!(O===`-`||O===`_`)){if(k=O>=`a`&&O<=`z`?`lower`:O>=`A`&&O<=`Z`?`upper`:O>=`0`&&O<=`9`?`digit`:`other`,k===`lower`&&T===`upper`){T=k;continue}T&&T!==k&&++E,T=k}}return E>=e.length/4}function trimWordBoundary(e,T){if(e.length<=T)return e;e=e.substring(0,T);let E=e.match(/^(.*)\b(.+)$/);return E?E[1].trimEnd():``}function suitableTextAlternatives(e){let T=[];{let E=e.match(/^([\d.,]+)[^.,\w]/),D=E?E[1].length:0;if(D){let E=trimWordBoundary(e.substring(D).trimStart(),80);T.push({text:E,scoreBouns:E.length<=30?2:1})}}{let E=e.match(/[^.,\w]([\d.,]+)$/),D=E?E[1].length:0;if(D){let E=trimWordBoundary(e.substring(0,e.length-D).trimEnd(),80);T.push({text:E,scoreBouns:E.length<=30?2:1})}}return e.length<=30?T.push({text:e,scoreBouns:0}):(T.push({text:trimWordBoundary(e,80),scoreBouns:0}),T.push({text:trimWordBoundary(e,30),scoreBouns:1})),T=T.filter(e=>e.text),T.length||T.push({text:e.substring(0,80),scoreBouns:0}),T}function boxRightOf(e,T,E){let D=e.left-T.right;if(!(D<0||E!==void 0&&D>E))return D+Math.max(T.bottom-e.bottom,0)+Math.max(e.top-T.top,0)}function boxLeftOf(e,T,E){let D=T.left-e.right;if(!(D<0||E!==void 0&&D>E))return D+Math.max(T.bottom-e.bottom,0)+Math.max(e.top-T.top,0)}function boxAbove(e,T,E){let D=T.top-e.bottom;if(!(D<0||E!==void 0&&D>E))return D+Math.max(e.left-T.left,0)+Math.max(T.right-e.right,0)}function boxBelow(e,T,E){let D=e.top-T.bottom;if(!(D<0||E!==void 0&&D>E))return D+Math.max(e.left-T.left,0)+Math.max(T.right-e.right,0)}function boxNear(e,T,E){let D=E===void 0?50:E,O=0;return e.left-T.right>=0&&(O+=e.left-T.right),T.left-e.right>=0&&(O+=T.left-e.right),T.top-e.bottom>=0&&(O+=T.top-e.bottom),e.top-T.bottom>=0&&(O+=e.top-T.bottom),O>D?void 0:O}var kLayoutSelectorNames=[`left-of`,`right-of`,`above`,`below`,`near`];function layoutSelectorScore(e,T,E,D){let O=T.getBoundingClientRect(),k={"left-of":boxLeftOf,"right-of":boxRightOf,above:boxAbove,below:boxBelow,near:boxNear}[e],A;for(let e of E){if(e===T)continue;let E=k(O,e.getBoundingClientRect(),D);E!==void 0&&(A===void 0||E<A)&&(A=E)}return A}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[T,E]of e)this._engines.set(T,E);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 T=[...this._engines.keys()];T.sort();let E=[...customCSSNames];if(E.sort(),T.join(`|`)!==E.join(`|`))throw Error(`Please keep customCSSNames in sync with evaluator engines: ${T.join(`|`)} vs ${E.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,T,E,D){e.has(T)||e.set(T,[]);let O=e.get(T),k=O.find(e=>E.every((T,E)=>e.rest[E]===T));if(k)return k.result;let A=D();return O.push({rest:E,result:A}),A}_checkSelector(e){if(!(typeof e==`object`&&e&&(Array.isArray(e)||`simples`in e&&e.simples.length)))throw Error(`Malformed selector "${e}"`);return e}matches(e,T,E){let D=this._checkSelector(T);this.begin();try{return this._cached(this._cacheMatches,e,[D,E.scope,E.pierceShadow,E.originalScope],()=>Array.isArray(D)?this._matchesEngine(isEngine,e,D,E):(this._hasScopeClause(D)&&(E=this._expandContextForScopeMatching(E)),this._matchesSimple(e,D.simples[D.simples.length-1].selector,E)?this._matchesParents(e,D,D.simples.length-2,E):!1))}finally{this.end()}}query(e,T){let E=this._checkSelector(T);this.begin();try{return this._cached(this._cacheQuery,E,[e.scope,e.pierceShadow,e.originalScope],()=>{if(Array.isArray(E))return this._queryEngine(isEngine,e,E);this._hasScopeClause(E)&&(e=this._expandContextForScopeMatching(e));let T=this._scoreMap;this._scoreMap=new Map;let D=this._querySimple(e,E.simples[E.simples.length-1].selector);return D=D.filter(T=>this._matchesParents(T,E,E.simples.length-2,e)),this._scoreMap.size&&D.sort((e,T)=>{let E=this._scoreMap.get(e),D=this._scoreMap.get(T);return E===D?0:E===void 0?1:D===void 0?-1:E-D}),this._scoreMap=T,D})}finally{this.end()}}_markScore(e,T){this._scoreMap&&this._scoreMap.set(e,T)}_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 T=parentElementOrShadowHost(e.scope);return T?{...e,scope:T,originalScope:e.originalScope||e.scope}:e}_matchesSimple(e,T,E){return this._cached(this._cacheMatchesSimple,e,[T,E.scope,E.pierceShadow,E.originalScope],()=>{if(e===E.scope||T.css&&!this._matchesCSS(e,T.css))return!1;for(let D of T.functions)if(!this._matchesEngine(this._getEngine(D.name),e,D.args,E))return!1;return!0})}_querySimple(e,T){return T.functions.length?this._cached(this._cacheQuerySimple,T,[e.scope,e.pierceShadow,e.originalScope],()=>{let E=T.css,D=T.functions;E===`*`&&D.length&&(E=void 0);let O,k=-1;E===void 0?(k=D.findIndex(e=>this._getEngine(e.name).query!==void 0),k===-1&&(k=0),O=this._queryEngine(this._getEngine(D[k].name),e,D[k].args)):O=this._queryCSS(e,E);for(let T=0;T<D.length;T++){if(T===k)continue;let E=this._getEngine(D[T].name);E.matches!==void 0&&(O=O.filter(O=>this._matchesEngine(E,O,D[T].args,e)))}for(let T=0;T<D.length;T++){if(T===k)continue;let E=this._getEngine(D[T].name);E.matches===void 0&&(O=O.filter(O=>this._matchesEngine(E,O,D[T].args,e)))}return O}):this._queryCSS(e,T.css||`*`)}_matchesParents(e,T,E,D){return E<0?!0:this._cached(this._cacheMatchesParents,e,[T,E,D.scope,D.pierceShadow,D.originalScope],()=>{let{selector:O,combinator:k}=T.simples[E];if(k===`>`){let k=parentElementOrShadowHostInContext(e,D);return!k||!this._matchesSimple(k,O,D)?!1:this._matchesParents(k,T,E-1,D)}if(k===`+`){let k=previousSiblingInContext(e,D);return!k||!this._matchesSimple(k,O,D)?!1:this._matchesParents(k,T,E-1,D)}if(k===``){let k=parentElementOrShadowHostInContext(e,D);for(;k;){if(this._matchesSimple(k,O,D)){if(this._matchesParents(k,T,E-1,D))return!0;if(T.simples[E-1].combinator===``)break}k=parentElementOrShadowHostInContext(k,D)}return!1}if(k===`~`){let k=previousSiblingInContext(e,D);for(;k;){if(this._matchesSimple(k,O,D)){if(this._matchesParents(k,T,E-1,D))return!0;if(T.simples[E-1].combinator===`~`)break}k=previousSiblingInContext(k,D)}return!1}if(k===`>=`){let k=e;for(;k;){if(this._matchesSimple(k,O,D)){if(this._matchesParents(k,T,E-1,D))return!0;if(T.simples[E-1].combinator===``)break}k=parentElementOrShadowHostInContext(k,D)}return!1}throw Error(`Unsupported combinator "${k}"`)})}_matchesEngine(e,T,E,D){if(e.matches)return this._callMatches(e,T,E,D);if(e.query)return this._callQuery(e,E,D).includes(T);throw Error(`Selector engine should implement "matches" or "query"`)}_queryEngine(e,T,E){if(e.query)return this._callQuery(e,E,T);if(e.matches)return this._queryCSS(T,`*`).filter(D=>this._callMatches(e,D,E,T));throw Error(`Selector engine should implement "matches" or "query"`)}_callMatches(e,T,E,D){return this._cached(this._cacheCallMatches,T,[e,D.scope,D.pierceShadow,D.originalScope,...E],()=>e.matches(T,E,D,this))}_callQuery(e,T,E){return this._cached(this._cacheCallQuery,e,[E.scope,E.pierceShadow,E.originalScope,...T],()=>e.query(E,T,this))}_matchesCSS(e,T){return e.matches(T)}_queryCSS(e,T){return this._cached(this._cacheQueryCSS,T,[e.scope,e.pierceShadow,e.originalScope],()=>{let E=[];function D(O){if(E=E.concat([...O.querySelectorAll(T)]),e.pierceShadow){O.shadowRoot&&D(O.shadowRoot);for(let e of O.querySelectorAll(`*`))e.shadowRoot&&D(e.shadowRoot)}}return D(e.scope),E})}_getEngine(e){let T=this._engines.get(e);if(!T)throw Error(`Unknown selector engine "${e}"`);return T}},isEngine={matches(e,T,E,D){if(T.length===0)throw Error(`"is" engine expects non-empty selector list`);return T.some(T=>D.matches(e,T,E))},query(e,T,E){if(T.length===0)throw Error(`"is" engine expects non-empty selector list`);let D=[];for(let O of T)D=D.concat(E.query(e,O));return T.length===1?D:sortInDOMOrder(D)}},hasEngine={matches(e,T,E,D){if(T.length===0)throw Error(`"has" engine expects non-empty selector list`);return D.query({...E,scope:e},T).length>0}},scopeEngine={matches(e,T,E,D){if(T.length!==0)throw Error(`"scope" engine expects no arguments`);let O=E.originalScope||E.scope;return O.nodeType===9?e===O.documentElement:e===O},query(e,T,E){if(T.length!==0)throw Error(`"scope" engine expects no arguments`);let D=e.originalScope||e.scope;if(D.nodeType===9){let e=D.documentElement;return e?[e]:[]}return D.nodeType===1?[D]:[]}},notEngine={matches(e,T,E,D){if(T.length===0)throw Error(`"not" engine expects non-empty selector list`);return!D.matches(e,T,E)}},lightEngine={query(e,T,E){return E.query({...e,pierceShadow:!1},T)},matches(e,T,E,D){return D.matches(e,T,{...E,pierceShadow:!1})}},visibleEngine={matches(e,T,E,D){if(T.length)throw Error(`"visible" engine expects no arguments`);return isElementVisible(e)}},textEngine={matches(e,T,E,D){if(T.length!==1||typeof T[0]!=`string`)throw Error(`"text" engine expects a single string`);let O=normalizeWhiteSpace(T[0]).toLowerCase();return elementMatchesText(D._cacheText,e,e=>e.normalized.toLowerCase().includes(O))===`self`}},textIsEngine={matches(e,T,E,D){if(T.length!==1||typeof T[0]!=`string`)throw Error(`"text-is" engine expects a single string`);let O=normalizeWhiteSpace(T[0]);return elementMatchesText(D._cacheText,e,e=>!O&&!e.immediate.length?!0:e.immediate.some(e=>normalizeWhiteSpace(e)===O))!==`none`}},textMatchesEngine={matches(e,T,E,D){if(T.length===0||typeof T[0]!=`string`||T.length>2||T.length===2&&typeof T[1]!=`string`)throw Error(`"text-matches" engine expects a regexp body and optional regexp flags`);let O=new RegExp(T[0],T.length===2?T[1]:void 0);return elementMatchesText(D._cacheText,e,e=>O.test(e.full))===`self`}},hasTextEngine={matches(e,T,E,D){if(T.length!==1||typeof T[0]!=`string`)throw Error(`"has-text" engine expects a single string`);if(shouldSkipForTextMatching(e))return!1;let O=normalizeWhiteSpace(T[0]).toLowerCase();return(e=>e.normalized.toLowerCase().includes(O))(elementText(D._cacheText,e))}};function createLayoutEngine(e){return{matches(T,E,D,O){let k=E.length&&typeof E[E.length-1]==`number`?E[E.length-1]:void 0,A=k===void 0?E:E.slice(0,E.length-1);if(E.length<1+(k===void 0?0:1))throw Error(`"${e}" engine expects a selector list and optional maximum distance in pixels`);let j=layoutSelectorScore(e,T,O.query(D,A),k);return j===void 0?!1:(O._markScore(T,j),!0)}}}var nthMatchEngine={query(e,T,E){let D=T[T.length-1];if(T.length<2)throw Error(`"nth-match" engine expects non-empty selector list and an index argument`);if(typeof D!=`number`||D<1)throw Error(`"nth-match" engine expects a one-based index as the last argument`);let O=isEngine.query(e,T.slice(0,T.length-1),E);return D--,D<O.length?[O[D]]:[]}};function parentElementOrShadowHostInContext(e,T){if(e!==T.scope)return T.pierceShadow?parentElementOrShadowHost(e):e.parentElement||void 0}function previousSiblingInContext(e,T){if(e!==T.scope)return e.previousElementSibling||void 0}function sortInDOMOrder(e){let T=new Map,E=[],D=[];function O(e){let D=T.get(e);if(D)return D;let k=parentElementOrShadowHost(e);return k?O(k).children.push(e):E.push(e),D={children:[],taken:!1},T.set(e,D),D}for(let T of e)O(T).taken=!0;function k(e){let E=T.get(e);if(E.taken&&D.push(e),E.children.length>1){let T=new Set(E.children);E.children=[];let D=e.firstElementChild;for(;D&&E.children.length<T.size;)T.has(D)&&E.children.push(D),D=D.nextElementSibling;for(D=e.shadowRoot?e.shadowRoot.firstElementChild:null;D&&E.children.length<T.size;)T.has(D)&&E.children.push(D),D=D.nextElementSibling}E.children.forEach(k)}return E.forEach(k),D}function getByAttributeTextSelector(e,T,E){return`internal:attr=[${e}=${escapeForAttributeSelector(T,E?.exact||!1)}]`}function getByTestIdSelector(e,T){return`internal:testid=[${e}=${escapeForAttributeSelector(T,!0)}]`}function getByLabelSelector(e,T){return`internal:label=${escapeForTextSelector$1(e,!!T?.exact)}`}function getByAltTextSelector(e,T){return getByAttributeTextSelector(`alt`,e,T)}function getByTitleSelector(e,T){return getByAttributeTextSelector(`title`,e,T)}function getByPlaceholderSelector(e,T){return getByAttributeTextSelector(`placeholder`,e,T)}function getByTextSelector(e,T){return`internal:text=${escapeForTextSelector$1(e,!!T?.exact)}`}function getByRoleSelector(e,T={}){let E=[];return T.checked!==void 0&&E.push([`checked`,String(T.checked)]),T.disabled!==void 0&&E.push([`disabled`,String(T.disabled)]),T.selected!==void 0&&E.push([`selected`,String(T.selected)]),T.expanded!==void 0&&E.push([`expanded`,String(T.expanded)]),T.includeHidden!==void 0&&E.push([`include-hidden`,String(T.includeHidden)]),T.level!==void 0&&E.push([`level`,String(T.level)]),T.name!==void 0&&E.push([`name`,escapeForAttributeSelector(T.name,!!T.exact)]),T.pressed!==void 0&&E.push([`pressed`,String(T.pressed)]),`internal:role=${e}${E.map(([e,T])=>`[${e}=${T}]`).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`,this._createControlEngine()),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(T){return Object.assign(e.options,T),e.singleton||=new e}queryLocatorSelector(e,T=document.documentElement,E=!0){return this.querySelector(this.parseSelector(e),T,E)}queryLocatorSelectorAll(e,T=document.documentElement){return this.querySelectorAll(this.parseSelector(e),T)}querySelector(e,T,E=!0){let D=this.querySelectorAll(e,T);if(E&&D.length>1)throw this.strictModeViolationError(e,D);return D[0]||null}queryAllByRole(e,T,E=document.documentElement){let D=this.parseSelector(getByRoleSelector(e,T));return this.querySelectorAll(D,E)}queryAllByLabelText(e,T,E=document.documentElement){let D=this.parseSelector(getByLabelSelector(e,T));return this.querySelectorAll(D,E)}queryAllByTestId(T,E=document.documentElement){let D=this.parseSelector(getByTestIdSelector(e.options.testIdAttribute,T));return this.querySelectorAll(D,E)}queryAllByText(e,T,E=document.documentElement){let D=this.parseSelector(getByTextSelector(e,T));return this.querySelectorAll(D,E)}queryAllByTitle(e,T,E=document.documentElement){let D=this.parseSelector(getByTitleSelector(e,T));return this.querySelectorAll(D,E)}queryAllByPlaceholder(e,T,E=document.documentElement){let D=this.parseSelector(getByPlaceholderSelector(e,T));return this.querySelectorAll(D,E)}queryAllByAltText(e,T,E=document.documentElement){let D=this.parseSelector(getByAltTextSelector(e,T));return this.querySelectorAll(D,E)}queryByRole(e,T,E=document.documentElement){let D=this.parseSelector(getByRoleSelector(e,T));return this.querySelector(D,E,!1)}queryByLabelText(e,T,E=document.documentElement){let D=this.parseSelector(getByLabelSelector(e,T));return this.querySelector(D,E,!1)}queryByTestId(T,E=document.documentElement){let D=this.parseSelector(getByTestIdSelector(e.options.testIdAttribute,T));return this.querySelector(D,E,!1)}queryByText(e,T,E=document.documentElement){let D=this.parseSelector(getByTextSelector(e,T));return this.querySelector(D,E,!1)}queryByTitle(e,T,E=document.documentElement){let D=this.parseSelector(getByTitleSelector(e,T));return this.querySelector(D,E,!1)}queryByPlaceholder(e,T,E=document.documentElement){let D=this.parseSelector(getByPlaceholderSelector(e,T));return this.querySelector(D,E,!1)}queryByAltText(e,T,E=document.documentElement){let D=this.parseSelector(getByAltTextSelector(e,T));return this.querySelector(D,E,!1)}strictModeViolationError(e,T){let E=T.slice(0,10).map(e=>({preview:this.previewNode(e),selector:this.generateSelectorSimple(e)})),D=E.map((e,T)=>`
4
+ ${T+1}) ${e.preview} aka ${asLocator(`javascript`,e.selector)}`);return E.length<T.length&&D.push(`
5
+ ...`),this.createStacklessError(`strict mode violation: ${asLocator(`javascript`,stringifySelector(e))} resolved to ${T.length} elements:${D.join(``)}
6
+ `)}generateSelectorSimple(T,E){return generateSelector(this,T,{...E,testIdAttributeName:e.options.testIdAttribute})}parseSelector(e){let T=parseSelector(e);return visitAllSelectorParts(T,T=>{if(!this._engines.has(T.name))throw this.createStacklessError(`Unknown engine "${T.name}" while parsing selector ${e}`)}),T}previewNode(e){if(e.nodeType===Node.TEXT_NODE)return oneLine(`#text=${e.nodeValue||``}`);if(e.nodeType!==Node.ELEMENT_NODE)return oneLine(`<${e.nodeName.toLowerCase()} />`);let T=e,E=[];for(let e=0;e<T.attributes.length;e++){let{name:D,value:O}=T.attributes[e];D!==`style`&&(!O&&booleanAttributes.has(D)?E.push(` ${D}`):E.push(` ${D}="${O}"`))}E.sort((e,T)=>e.length-T.length);let D=trimStringWithEllipsis(E.join(``),500);if(autoClosingTags.has(T.nodeName))return oneLine(`<${T.nodeName.toLowerCase()}${D}/>`);let O=T.childNodes,k=!1;if(O.length<=5){k=!0;for(let e=0;e<O.length;e++)k&&=O[e].nodeType===Node.TEXT_NODE}let A=k?T.textContent||``:O.length?`…`:``;return oneLine(`<${T.nodeName.toLowerCase()}${D}>${trimStringWithEllipsis(A,50)}</${T.nodeName.toLowerCase()}>`)}querySelectorAll(e,T){if(e.capture!==void 0){if(e.parts.some(e=>e.name===`nth`))throw this.createStacklessError(`Can't query n-th element in a request with the capture.`);let E={parts:e.parts.slice(0,e.capture+1)};if(e.capture<e.parts.length-1){let T={parts:e.parts.slice(e.capture+1)},D={name:`internal:has`,body:{parsed:T},source:stringifySelector(T)};E.parts.push(D)}return this.querySelectorAll(E,T)}if(!T.querySelectorAll)throw this.createStacklessError(`Node is not queryable.`);if(e.capture!==void 0)throw this.createStacklessError(`Internal error: there should not be a capture in the selector.`);if(T.nodeType===11&&e.parts.length===1&&e.parts[0].name===`css`&&e.parts[0].source===`:scope`)return[T];this._evaluator.begin();try{let E=new Set([T]);for(let D of e.parts)if(D.name===`nth`)E=this._queryNth(E,D);else if(D.name===`internal:and`){let e=this.querySelectorAll(D.body.parsed,T);E=new Set(e.filter(e=>E.has(e)))}else if(D.name===`internal:or`){let e=this.querySelectorAll(D.body.parsed,T);E=new Set(sortInDOMOrder(new Set([...E,...e])))}else if(kLayoutSelectorNames.includes(D.name))E=this._queryLayoutSelector(E,D,T);else{let e=new Set;for(let T of E){let E=this._queryEngineAll(D,T);for(let T of E)e.add(T)}E=e}return[...E]}finally{this._evaluator.end()}}_queryEngineAll(e,T){let E=this._engines.get(e.name).queryAll(T,e.body);for(let e of E)if(!(`nodeName`in e))throw this.createStacklessError(`Expected a Node but got ${Object.prototype.toString.call(e)}`);return E}_queryNth(e,T){let E=[...e],D=+T.body;return D===-1&&(D=E.length-1),new Set(E.slice(D,D+1))}_queryLayoutSelector(e,T,E){let D=T.name,O=T.body,k=[],A=this.querySelectorAll(O.parsed,E);for(let T of e){let e=layoutSelectorScore(D,T,A,O.distance);e!==void 0&&k.push({element:T,score:e})}return k.sort((e,T)=>e.score-T.score),new Set(k.map(e=>e.element))}createStacklessError(T){if(e.options.browser===`firefox`){let e=Error(`Error: ${T}`);return e.stack=``,e}let E=Error(T);return delete E.stack,E}_createTextEngine(e,T){return{queryAll:(E,D)=>{let{matcher:O,kind:k}=createTextMatcher(D,T),A=[],j=null,M=e=>{if(k===`lax`&&j&&j.contains(e))return!1;let E=elementMatchesText(this._evaluator._cacheText,e,O);E===`none`&&(j=e),(E===`self`||E===`selfAndChildren`&&k===`strict`&&!T)&&A.push(e)};E.nodeType===Node.ELEMENT_NODE&&M(E);let N=this._evaluator._queryCSS({scope:E,pierceShadow:e},`*`);for(let e of N)M(e);return A}}}_createAttributeEngine(e,T){let E=T=>[{simples:[{selector:{css:`[${e}=${JSON.stringify(T)}]`,functions:[]},combinator:``}]}];return{queryAll:(e,D)=>this._evaluator.query({scope:e,pierceShadow:T},E(D))}}_createCSSEngine(){return{queryAll:(e,T)=>this._evaluator.query({scope:e,pierceShadow:!0},T)}}_createNamedAttributeEngine(){return{queryAll:(e,T)=>{let E=parseAttributeSelector(T);if(E.name||E.attributes.length!==1)throw Error(`Malformed attribute selector: ${T}`);let{name:D,value:O,caseSensitive:k}=E.attributes[0],A=k?null:O.toLowerCase(),j;return j=O instanceof RegExp?e=>!!e.match(O):k?e=>e===O:e=>e.toLowerCase().includes(A),this._evaluator._queryCSS({scope:e,pierceShadow:!0},`[${D}]`).filter(e=>j(e.getAttribute(D)))}}}_createVisibleEngine(){return{queryAll:(e,T)=>e.nodeType===1&&isElementVisible(e)===!!T?[e]:[]}}_createControlEngine(){return{queryAll:(e,T)=>{if(T===`enter-frame`&&e instanceof HTMLIFrameElement){let T=e.contentDocument?.documentElement;return T?[T]:[]}return[]}}}_createHasEngine(){return{queryAll:(e,T)=>e.nodeType===1&&this.querySelector(T.parsed,e,!1)?[e]:[]}}_createHasNotEngine(){return{queryAll:(e,T)=>e.nodeType===1?this.querySelector(T.parsed,e,!1)?[]:[e]:[]}}_createInternalChainEngine(){return{queryAll:(e,T)=>this.querySelectorAll(T.parsed,e)}}_createInternalLabelEngine(){return{queryAll:(e,T)=>{let{matcher:E}=createTextMatcher(T,!0);return this._evaluator._queryCSS({scope:e,pierceShadow:!0},`*`).filter(e=>getElementLabels(this._evaluator._cacheText,e).some(e=>E(e)))}}}_createInternalHasTextEngine(){return{queryAll:(e,T)=>{if(e.nodeType!==1)return[];let E=e,D=elementText(this._evaluator._cacheText,E),{matcher:O}=createTextMatcher(T,!0);return O(D)?[E]:[]}}}_createInternalHasNotTextEngine(){return{queryAll:(e,T)=>{if(e.nodeType!==1)return[];let E=e,D=elementText(this._evaluator._cacheText,E),{matcher:O}=createTextMatcher(T,!0);return O(D)?[]:[E]}}}};__publicField(_Ivya,`options`,{testIdAttribute:`data-testid`,browser:`chromium`}),__publicField(_Ivya,`singleton`,null);var Ivya=_Ivya;function oneLine(e){return e.replace(/\n/g,`↵`).replace(/\t/g,`⇆`)}var booleanAttributes=new Set([`checked`,`selected`,`disabled`,`readonly`,`multiple`]),autoClosingTags=new Set([`AREA`,`BASE`,`BR`,`COL`,`COMMAND`,`EMBED`,`HR`,`IMG`,`INPUT`,`KEYGEN`,`LINK`,`MENUITEM`,`META`,`PARAM`,`SOURCE`,`TRACK`,`WBR`]);function cssUnquote(e){if(e=e.substring(1,e.length-1),!e.includes(`\\`))return e;let T=[],E=0;for(;E<e.length;)e[E]===`\\`&&E+1<e.length&&E++,T.push(e[E++]);return T.join(``)}function createTextMatcher(e,T){if(e[0]===`/`&&e.lastIndexOf(`/`)>0){let T=e.lastIndexOf(`/`),E=new RegExp(e.substring(1,T),e.substring(T+1));return{matcher:e=>E.test(e.full),kind:`regex`}}let E=T?JSON.parse.bind(JSON):cssUnquote,D=!1;return e.length>1&&e[0]===`"`&&e[e.length-1]===`"`?(e=E(e),D=!0):T&&e.length>1&&e[0]===`"`&&e[e.length-2]===`"`&&e[e.length-1]===`i`?(e=E(e.substring(0,e.length-1)),D=!1):T&&e.length>1&&e[0]===`"`&&e[e.length-2]===`"`&&e[e.length-1]===`s`?(e=E(e.substring(0,e.length-1)),D=!0):e.length>1&&e[0]===`'`&&e[e.length-1]===`'`&&(e=E(e),D=!0),e=normalizeWhiteSpace(e),D?T?{kind:`strict`,matcher:T=>T.normalized===e}:{matcher:T=>!e&&!T.immediate.length?!0:T.immediate.some(T=>normalizeWhiteSpace(T)===e),kind:`strict`}:(e=e.toLowerCase(),{kind:`lax`,matcher:T=>T.normalized.toLowerCase().includes(e)})}var XPathEngine={queryAll(e,T){T.startsWith(`/`)&&e.nodeType!==Node.DOCUMENT_NODE&&(T=`.${T}`);let E=[],D=e.ownerDocument||e;if(!D)return E;let O=D.evaluate(T,e,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE);for(let e=O.iterateNext();e;e=O.iterateNext())e.nodeType===Node.ELEMENT_NODE&&E.push(e);return E}};function parentElementOrShadowHost(e){if(e.parentElement)return e.parentElement;if(e.parentNode&&e.parentNode.nodeType===11&&e.parentNode.host)return e.parentNode.host}function enclosingShadowRootOrDocument(e){let T=e;for(;T.parentNode;)T=T.parentNode;if(T.nodeType===11||T.nodeType===9)return T}function enclosingShadowHost(e){for(;e.parentElement;)e=e.parentElement;return parentElementOrShadowHost(e)}function closestCrossShadow(e,T){for(;e;){let E=e.closest(T);if(E)return E;e=enclosingShadowHost(e)}}function getElementComputedStyle(e,T){return e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,T):void 0}function isElementStyleVisibilityVisible(e,T){if(T??=getElementComputedStyle(e),!T)return!0;if(Element.prototype.checkVisibility&&Ivya.options.browser!==`webkit`){if(!e.checkVisibility())return!1}else{let T=e.closest(`details,summary`);if(T!==e&&T?.nodeName===`DETAILS`&&!T.open)return!1}return T.visibility===`visible`}function isElementVisible(e){let T=getElementComputedStyle(e);if(!T)return!0;if(T.display===`contents`){for(let T=e.firstChild;T;T=T.nextSibling)if(T.nodeType===1&&isElementVisible(T)||T.nodeType===3&&isVisibleTextNode(T))return!0;return!1}if(!isElementStyleVisibilityVisible(e,T))return!1;let E=e.getBoundingClientRect();return E.width>0&&E.height>0}function isVisibleTextNode(e){let T=e.ownerDocument.createRange();T.selectNode(e);let E=T.getBoundingClientRect();return E.width>0&&E.height>0}function elementSafeTagName(e){return e instanceof HTMLFormElement?`FORM`:e.tagName.toUpperCase()}function ensureAwaited(e){let T=getWorkerState().current;if(!T||T.type!==`test`)return e();let E=!1,D=Error(`STACK_TRACE_ERROR`);T.onFinished??=[],T.onFinished.push(()=>{if(!E){let e=Error(`The call was not awaited. This method is asynchronous and must be awaited; otherwise, the call will not start to avoid unhandled rejections.`);throw e.stack=D.stack?.replace(D.message,e.message),e}});let O;return{then(T,k){return E=!0,(O||=e(D)).then(T,k)},catch(T){return(O||=e(D)).catch(T)},finally(T){return(O||=e(D)).finally(T)},[Symbol.toStringTag]:`Promise`}}function getBrowserState(){return window.__vitest_browser_runner__}function getWorkerState(){let e=window.__vitest_worker__;if(!e)throw Error(`Worker state is not found. This is an issue with Vitest. Please, open an issue.`);return e}const provider=getBrowserState().provider;function convertElementToCssSelector(e){if(!e||!(e instanceof Element))throw Error(`Expected DOM element to be an instance of Element, received ${typeof e}`);return getUniqueCssSelector(e)}function escapeIdForCSSSelector(e){return e.split(``).map(e=>{let T=e.charCodeAt(0);return e===` `||e===`#`||e===`.`||e===`:`||e===`[`||e===`]`||e===`>`||e===`+`||e===`~`||e===`\\`?`\\${e}`:T>=65536?`\\${T.toString(16).toUpperCase().padStart(6,`0`)} `:T<32||T===127||T>=128?`\\${T.toString(16).toUpperCase().padStart(2,`0`)} `:e}).join(``)}function getUniqueCssSelector(e){let T=[],E,D=!1;for(;E=getParent(e);){E.shadowRoot&&(D=!0);let O=e.tagName;if(e.id)T.push(`#${escapeIdForCSSSelector(e.id)}`);else if(!e.nextElementSibling&&!e.previousElementSibling)T.push(O.toLowerCase());else{let D=0,k=0,A=0;for(let T of E.children)D++,T.tagName===O&&k++,T===e&&(A=D);k>1?T.push(`${O.toLowerCase()}:nth-child(${A})`):T.push(O.toLowerCase())}e=E}return`${getBrowserState().provider===`webdriverio`&&D?`>>>`:``}${T.reverse().join(` > `)}`}function getParent(e){let T=e.parentNode;return T instanceof ShadowRoot?T.host:T}const now=Date.now;function processTimeoutOptions(e){if(e&&e.timeout!=null||provider!==`playwright`||getWorkerState().config.browser.providerOptions.actionTimeout!=null)return e;let T=getBrowserState().runner,E=T._currentTaskStartTime;if(!E)return e;let D=T._currentTaskTimeout;if(D===0||D==null||D===1/0)return e;e||={};let O=now(),k=E+D-O;return k<=0||(e.timeout=k-100),e}function getIframeScale(){let e=window.parent.document.querySelector(`iframe[data-vitest]`)?.parentElement;if(!e)throw Error(`Cannot find Tester element. This is a bug in Vitest. Please, open a new issue with reproduction.`);let T=e.getAttribute(`data-scale`),E=Number(T);if(Number.isNaN(E))throw TypeError(`Cannot parse scale value from Tester element (${T}). This is a bug in Vitest. Please, open a new issue with reproduction.`);return E}function escapeRegexForSelector(e){return e.unicode||e.unicodeSets?String(e):String(e).replace(/(^|[^\\])(\\\\)*(["'`])/g,`$1$2\\$3`).replace(/>>/g,`\\>\\>`)}function escapeForTextSelector(e,T){return typeof e==`string`?`${JSON.stringify(e)}i`:escapeRegexForSelector(e)}function convertToSelector(e){if(!e)throw Error(`Expected element or locator to be defined.`);if(e instanceof Element)return convertElementToCssSelector(e);if(isLocator(e))return e.selector;throw Error(`Expected element or locator to be an instance of Element or Locator.`)}const kLocator$1=Symbol.for(`$$vitest:locator`);function isLocator(e){return!!e&&typeof e==`object`&&kLocator$1 in e}__INTERNAL._asLocator=asLocator;const selectorEngine=Ivya.create({browser:(e=>{switch(e){case`edge`:case`chrome`:return`chromium`;case`safari`:return`webkit`;default:return e}})(server.config.browser.name),testIdAttribute:server.config.browser.locators.testIdAttribute}),kLocator=Symbol.for(`$$vitest:locator`);class Locator{_parsedSelector;_container;_pwSelector;constructor(){Object.defineProperty(this,kLocator,{enumerable:!1,writable:!1,configurable:!1,value:kLocator})}click(e){return this.triggerCommand(`__vitest_click`,this.selector,e)}dblClick(e){return this.triggerCommand(`__vitest_dblClick`,this.selector,e)}tripleClick(e){return this.triggerCommand(`__vitest_tripleClick`,this.selector,e)}clear(e){return this.triggerCommand(`__vitest_clear`,this.selector,e)}hover(e){return this.triggerCommand(`__vitest_hover`,this.selector,e)}unhover(e){return this.triggerCommand(`__vitest_hover`,`html > body`,e)}fill(e,T){return this.triggerCommand(`__vitest_fill`,this.selector,e,T)}async upload(e,T){let E=(Array.isArray(e)?e:[e]).map(async e=>{if(typeof e==`string`)return e;let T=await new Promise((T,E)=>{let D=new FileReader;D.onload=()=>T(D.result),D.onerror=()=>E(Error(`Failed to read file: ${e.name}`)),D.readAsDataURL(e)});return{name:e.name,mimeType:e.type,base64:T}});return this.triggerCommand(`__vitest_upload`,this.selector,await Promise.all(E),T)}dropTo(e,T={}){return this.triggerCommand(`__vitest_dragAndDrop`,this.selector,e.selector,T)}selectOptions(e,T){let E=(Array.isArray(e)?e:[e]).map(e=>typeof e==`string`?e:{element:isLocator(e)?e.selector:selectorEngine.generateSelectorSimple(e)});return this.triggerCommand(`__vitest_selectOptions`,this.selector,E,T)}screenshot(e){return page.screenshot({...e,element:this})}getByRole(e,T){return this.locator(getByRoleSelector(e,T))}getByAltText(e,T){return this.locator(getByAltTextSelector(e,T))}getByLabelText(e,T){return this.locator(getByLabelSelector(e,T))}getByPlaceholder(e,T){return this.locator(getByPlaceholderSelector(e,T))}getByTestId(T){return this.locator(getByTestIdSelector(server.config.browser.locators.testIdAttribute,T))}getByText(e,T){return this.locator(getByTextSelector(e,T))}getByTitle(e,T){return this.locator(getByTitleSelector(e,T))}filter(e){let T=[];if(e?.hasText&&T.push(`internal:has-text=${escapeForTextSelector(e.hasText)}`),e?.hasNotText&&T.push(`internal:has-not-text=${escapeForTextSelector(e.hasNotText)}`),e?.has){let E=e.has;T.push(`internal:has=${JSON.stringify(E._pwSelector||E.selector)}`)}if(e?.hasNot){let E=e.hasNot;T.push(`internal:has-not=${JSON.stringify(E._pwSelector||E.selector)}`)}if(!T.length)throw Error(`Locator.filter expects at least one filter. None provided.`);return this.locator(T.join(` >> `))}and(e){return this.locator(`internal:and=${JSON.stringify(e._pwSelector||e.selector)}`)}or(e){return this.locator(`internal:or=${JSON.stringify(e._pwSelector||e.selector)}`)}query(){let e=this._parsedSelector||=selectorEngine.parseSelector(this._pwSelector||this.selector);return selectorEngine.querySelector(e,document.documentElement,!0)}element(){let e=this.query();if(!e)throw utils.getElementError(this._pwSelector||this.selector,this._container||document.body);return e}elements(){let e=this._parsedSelector||=selectorEngine.parseSelector(this._pwSelector||this.selector);return selectorEngine.querySelectorAll(e,document.documentElement)}get length(){return this.elements().length}all(){return this.elements().map(e=>this.elementLocator(e))}nth(e){return this.locator(`nth=${e}`)}first(){return this.nth(0)}last(){return this.nth(-1)}toString(){return this.selector}toJSON(){return this.selector}triggerCommand(e,...T){let E=getBrowserState().commands;return ensureAwaited(D=>E.triggerCommand(e,T,D))}}export{Locator as L,getAriaRole as a,getAriaDisabled as b,beginAriaCaches as c,getElementAccessibleDescription as d,endAriaCaches as e,getElementAccessibleErrorMessage as f,getAriaChecked as g,getElementAccessibleName as h,isElementVisible as i,cssEscape as j,kAriaCheckedRoles as k,getWorkerState as l,convertToSelector as m,getBrowserState as n,convertElementToCssSelector as o,processTimeoutOptions as p,getIframeScale as q,getByAltTextSelector as r,selectorEngine as s,getByLabelSelector as t,getByPlaceholderSelector as u,getByRoleSelector as v,getByTestIdSelector as w,getByTextSelector as x,getByTitleSelector as y};
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ import { PNG } from 'pngjs';
18
18
  import pm from 'pixelmatch';
19
19
  import { WebSocketServer } from 'ws';
20
20
 
21
- var version = "4.0.7";
21
+ var version = "4.0.9";
22
22
 
23
23
  const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
24
24
  function normalizeWindowsPath(input = "") {
@@ -716,7 +716,7 @@ async function resolveOrchestrator(globalServer, url, res) {
716
716
  const manifestContent = globalServer.manifest instanceof Promise ? await globalServer.manifest : globalServer.manifest;
717
717
  const jsEntry = manifestContent["orchestrator.html"].file;
718
718
  const base = browserProject.parent.vite.config.base || "/";
719
- baseHtml = baseHtml.replaceAll("./assets/", `${base}__vitest__/assets/`).replace("<!-- !LOAD_METADATA! -->", [
719
+ baseHtml = baseHtml.replace("href=\"./favicon.ico\"", `href="${base}__vitest__/favicon.ico"`).replace("href=\"./favicon.svg\"", `href="${base}__vitest__/favicon.svg"`).replaceAll("./assets/", `${base}__vitest__/assets/`).replace("<!-- !LOAD_METADATA! -->", [
720
720
  "{__VITEST_INJECTOR__}",
721
721
  "{__VITEST_ERROR_CATCHER__}",
722
722
  "{__VITEST_SCRIPTS__}",
@@ -834,7 +834,7 @@ const ID_CONTEXT = "vitest/browser";
834
834
  const DEPRECATED_ID_CONTEXT = "@vitest/browser/context";
835
835
  const DEPRECATED_VIRTUAL_ID_UTILS = "\0@vitest/browser/utils";
836
836
  const DEPRECATED_ID_UTILS = "@vitest/browser/utils";
837
- const __dirname = dirname(fileURLToPath(import.meta.url));
837
+ const __dirname$1 = dirname(fileURLToPath(import.meta.url));
838
838
  function BrowserContext(globalServer) {
839
839
  return {
840
840
  name: "vitest:browser:virtual-module:context",
@@ -877,7 +877,7 @@ async function generateContextFile(globalServer) {
877
877
  return ` ["${command}"]: (...args) => __vitest_browser_runner__.commands.triggerCommand("${command}", args),`;
878
878
  }).join("\n");
879
879
  const userEventNonProviderImport = await getUserEventImport(provider, this.resolve.bind(this));
880
- const distContextPath = slash$1(`/@fs/${resolve(__dirname, "context.js")}`);
880
+ const distContextPath = slash$1(`/@fs/${resolve(__dirname$1, "context.js")}`);
881
881
  return `
882
882
  import { page, createUserEvent, cdp, locators, utils } from '${distContextPath}'
883
883
  ${userEventNonProviderImport}
@@ -950,6 +950,12 @@ var BrowserPlugin = (parentServer, base = "/") => {
950
950
  single: true,
951
951
  dev: true,
952
952
  setHeaders: (res) => {
953
+ const csp = res.getHeader("Content-Security-Policy");
954
+ if (typeof csp === "string") {
955
+ // add frame-ancestors to allow the iframe to be loaded by Vitest,
956
+ // but keep the rest of the CSP
957
+ res.setHeader("Content-Security-Policy", csp.replace(/frame-ancestors [^;]+/, "frame-ancestors *"));
958
+ }
953
959
  res.setHeader("Cache-Control", "public,max-age=0,must-revalidate");
954
960
  }
955
961
  }));
@@ -2667,7 +2673,7 @@ function defaultSerialize(i) {
2667
2673
  const defaultDeserialize = defaultSerialize;
2668
2674
  const { clearTimeout, setTimeout: setTimeout$1 } = globalThis;
2669
2675
  const random = Math.random.bind(Math);
2670
- function createBirpc(functions, options) {
2676
+ function createBirpc($functions, options) {
2671
2677
  const {
2672
2678
  post,
2673
2679
  on,
@@ -2680,67 +2686,100 @@ function createBirpc(functions, options) {
2680
2686
  bind = "rpc",
2681
2687
  timeout = DEFAULT_TIMEOUT
2682
2688
  } = options;
2683
- const rpcPromiseMap = /* @__PURE__ */ new Map();
2684
- let _promise;
2685
- let closed = false;
2689
+ let $closed = false;
2690
+ const _rpcPromiseMap = /* @__PURE__ */ new Map();
2691
+ let _promiseInit;
2692
+ async function _call(method, args, event, optional) {
2693
+ if ($closed)
2694
+ throw new Error(`[birpc] rpc is closed, cannot call "${method}"`);
2695
+ const req = { m: method, a: args, t: TYPE_REQUEST };
2696
+ if (optional)
2697
+ req.o = true;
2698
+ const send = async (_req) => post(serialize(_req));
2699
+ if (event) {
2700
+ await send(req);
2701
+ return;
2702
+ }
2703
+ if (_promiseInit) {
2704
+ try {
2705
+ await _promiseInit;
2706
+ } finally {
2707
+ _promiseInit = void 0;
2708
+ }
2709
+ }
2710
+ let { promise, resolve, reject } = createPromiseWithResolvers();
2711
+ const id = nanoid();
2712
+ req.i = id;
2713
+ let timeoutId;
2714
+ async function handler(newReq = req) {
2715
+ if (timeout >= 0) {
2716
+ timeoutId = setTimeout$1(() => {
2717
+ try {
2718
+ const handleResult = options.onTimeoutError?.(method, args);
2719
+ if (handleResult !== true)
2720
+ throw new Error(`[birpc] timeout on calling "${method}"`);
2721
+ } catch (e) {
2722
+ reject(e);
2723
+ }
2724
+ _rpcPromiseMap.delete(id);
2725
+ }, timeout);
2726
+ if (typeof timeoutId === "object")
2727
+ timeoutId = timeoutId.unref?.();
2728
+ }
2729
+ _rpcPromiseMap.set(id, { resolve, reject, timeoutId, method });
2730
+ await send(newReq);
2731
+ return promise;
2732
+ }
2733
+ try {
2734
+ if (options.onRequest)
2735
+ await options.onRequest(req, handler, resolve);
2736
+ else
2737
+ await handler();
2738
+ } catch (e) {
2739
+ if (options.onGeneralError?.(e) !== true)
2740
+ throw e;
2741
+ return;
2742
+ } finally {
2743
+ clearTimeout(timeoutId);
2744
+ _rpcPromiseMap.delete(id);
2745
+ }
2746
+ return promise;
2747
+ }
2748
+ const $call = (method, ...args) => _call(method, args, false);
2749
+ const $callOptional = (method, ...args) => _call(method, args, false, true);
2750
+ const $callEvent = (method, ...args) => _call(method, args, true);
2751
+ const $callRaw = (options2) => _call(options2.method, options2.args, options2.event, options2.optional);
2752
+ const builtinMethods = {
2753
+ $call,
2754
+ $callOptional,
2755
+ $callEvent,
2756
+ $callRaw,
2757
+ $rejectPendingCalls,
2758
+ get $closed() {
2759
+ return $closed;
2760
+ },
2761
+ $close,
2762
+ $functions
2763
+ };
2686
2764
  const rpc = new Proxy({}, {
2687
2765
  get(_, method) {
2688
- if (method === "$functions")
2689
- return functions;
2690
- if (method === "$close")
2691
- return close;
2692
- if (method === "$rejectPendingCalls") {
2693
- return rejectPendingCalls;
2694
- }
2695
- if (method === "$closed")
2696
- return closed;
2697
- if (method === "then" && !eventNames.includes("then") && !("then" in functions))
2766
+ if (Object.prototype.hasOwnProperty.call(builtinMethods, method))
2767
+ return builtinMethods[method];
2768
+ if (method === "then" && !eventNames.includes("then") && !("then" in $functions))
2698
2769
  return void 0;
2699
- const sendEvent = (...args) => {
2700
- post(serialize({ m: method, a: args, t: TYPE_REQUEST }));
2701
- };
2770
+ const sendEvent = (...args) => _call(method, args, true);
2702
2771
  if (eventNames.includes(method)) {
2703
2772
  sendEvent.asEvent = sendEvent;
2704
2773
  return sendEvent;
2705
2774
  }
2706
- const sendCall = async (...args) => {
2707
- if (closed)
2708
- throw new Error(`[birpc] rpc is closed, cannot call "${method}"`);
2709
- if (_promise) {
2710
- try {
2711
- await _promise;
2712
- } finally {
2713
- _promise = void 0;
2714
- }
2715
- }
2716
- return new Promise((resolve, reject) => {
2717
- const id = nanoid();
2718
- let timeoutId;
2719
- if (timeout >= 0) {
2720
- timeoutId = setTimeout$1(() => {
2721
- try {
2722
- const handleResult = options.onTimeoutError?.(method, args);
2723
- if (handleResult !== true)
2724
- throw new Error(`[birpc] timeout on calling "${method}"`);
2725
- } catch (e) {
2726
- reject(e);
2727
- }
2728
- rpcPromiseMap.delete(id);
2729
- }, timeout);
2730
- if (typeof timeoutId === "object")
2731
- timeoutId = timeoutId.unref?.();
2732
- }
2733
- rpcPromiseMap.set(id, { resolve, reject, timeoutId, method });
2734
- post(serialize({ m: method, a: args, i: id, t: "q" }));
2735
- });
2736
- };
2775
+ const sendCall = (...args) => _call(method, args, false);
2737
2776
  sendCall.asEvent = sendEvent;
2738
2777
  return sendCall;
2739
2778
  }
2740
2779
  });
2741
- function close(customError) {
2742
- closed = true;
2743
- rpcPromiseMap.forEach(({ reject, method }) => {
2780
+ function $close(customError) {
2781
+ $closed = true;
2782
+ _rpcPromiseMap.forEach(({ reject, method }) => {
2744
2783
  const error = new Error(`[birpc] rpc is closed, cannot call "${method}"`);
2745
2784
  if (customError) {
2746
2785
  customError.cause ??= error;
@@ -2748,18 +2787,18 @@ function createBirpc(functions, options) {
2748
2787
  }
2749
2788
  reject(error);
2750
2789
  });
2751
- rpcPromiseMap.clear();
2790
+ _rpcPromiseMap.clear();
2752
2791
  off(onMessage);
2753
2792
  }
2754
- function rejectPendingCalls(handler) {
2755
- const entries = Array.from(rpcPromiseMap.values());
2793
+ function $rejectPendingCalls(handler) {
2794
+ const entries = Array.from(_rpcPromiseMap.values());
2756
2795
  const handlerResults = entries.map(({ method, reject }) => {
2757
2796
  if (!handler) {
2758
2797
  return reject(new Error(`[birpc]: rejected pending call "${method}".`));
2759
2798
  }
2760
2799
  return handler({ method, reject });
2761
2800
  });
2762
- rpcPromiseMap.clear();
2801
+ _rpcPromiseMap.clear();
2763
2802
  return handlerResults;
2764
2803
  }
2765
2804
  async function onMessage(data, ...extra) {
@@ -2772,14 +2811,16 @@ function createBirpc(functions, options) {
2772
2811
  return;
2773
2812
  }
2774
2813
  if (msg.t === TYPE_REQUEST) {
2775
- const { m: method, a: args } = msg;
2814
+ const { m: method, a: args, o: optional } = msg;
2776
2815
  let result, error;
2777
- const fn = resolver ? resolver(method, functions[method]) : functions[method];
2816
+ let fn = await (resolver ? resolver(method, $functions[method]) : $functions[method]);
2817
+ if (optional)
2818
+ fn ||= () => void 0;
2778
2819
  if (!fn) {
2779
2820
  error = new Error(`[birpc] function "${method}" not found`);
2780
2821
  } else {
2781
2822
  try {
2782
- result = await fn.apply(bind === "rpc" ? rpc : functions, args);
2823
+ result = await fn.apply(bind === "rpc" ? rpc : $functions, args);
2783
2824
  } catch (e) {
2784
2825
  error = e;
2785
2826
  }
@@ -2793,7 +2834,7 @@ function createBirpc(functions, options) {
2793
2834
  }
2794
2835
  if (!error) {
2795
2836
  try {
2796
- post(serialize({ t: TYPE_RESPONSE, i: msg.i, r: result }), ...extra);
2837
+ await post(serialize({ t: TYPE_RESPONSE, i: msg.i, r: result }), ...extra);
2797
2838
  return;
2798
2839
  } catch (e) {
2799
2840
  error = e;
@@ -2802,7 +2843,7 @@ function createBirpc(functions, options) {
2802
2843
  }
2803
2844
  }
2804
2845
  try {
2805
- post(serialize({ t: TYPE_RESPONSE, i: msg.i, e: error }), ...extra);
2846
+ await post(serialize({ t: TYPE_RESPONSE, i: msg.i, e: error }), ...extra);
2806
2847
  } catch (e) {
2807
2848
  if (options.onGeneralError?.(e, method, args) !== true)
2808
2849
  throw e;
@@ -2810,7 +2851,7 @@ function createBirpc(functions, options) {
2810
2851
  }
2811
2852
  } else {
2812
2853
  const { i: ack, r: result, e: error } = msg;
2813
- const promise = rpcPromiseMap.get(ack);
2854
+ const promise = _rpcPromiseMap.get(ack);
2814
2855
  if (promise) {
2815
2856
  clearTimeout(promise.timeoutId);
2816
2857
  if (error)
@@ -2818,12 +2859,21 @@ function createBirpc(functions, options) {
2818
2859
  else
2819
2860
  promise.resolve(result);
2820
2861
  }
2821
- rpcPromiseMap.delete(ack);
2862
+ _rpcPromiseMap.delete(ack);
2822
2863
  }
2823
2864
  }
2824
- _promise = on(onMessage);
2865
+ _promiseInit = on(onMessage);
2825
2866
  return rpc;
2826
2867
  }
2868
+ function createPromiseWithResolvers() {
2869
+ let resolve;
2870
+ let reject;
2871
+ const promise = new Promise((res, rej) => {
2872
+ resolve = res;
2873
+ reject = rej;
2874
+ });
2875
+ return { promise, resolve, reject };
2876
+ }
2827
2877
  const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
2828
2878
  function nanoid(size = 21) {
2829
2879
  let id = "";
package/dist/locators.js CHANGED
@@ -1 +1 @@
1
- export{L as Locator,o as convertElementToCssSelector,r as getByAltTextSelector,t as getByLabelSelector,u as getByPlaceholderSelector,v as getByRoleSelector,w as getByTestIdSelector,x as getByTextSelector,y as getByTitleSelector,q as getIframeScale,p as processTimeoutOptions,s as selectorEngine}from"./index-BnLTaCRv.js";import"vitest/browser";import"vitest/internal/browser";
1
+ export{L as Locator,o as convertElementToCssSelector,r as getByAltTextSelector,t as getByLabelSelector,u as getByPlaceholderSelector,v as getByRoleSelector,w as getByTestIdSelector,x as getByTextSelector,y as getByTitleSelector,q as getIframeScale,p as processTimeoutOptions,s as selectorEngine}from"./index-hFpxawnd.js";import"vitest/browser";import"vitest/internal/browser";