@vitest/browser 4.1.4 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/context.d.ts +18 -0
- package/dist/client/.vite/manifest.json +15 -6
- package/dist/client/__vitest__/assets/index-BmuVn2L3.js +136 -0
- package/dist/client/__vitest__/assets/index-CxYquQyv.css +1 -0
- package/dist/client/__vitest__/index.html +2 -2
- package/dist/client/__vitest_browser__/{orchestrator-DM4mHHP0.js → orchestrator-pTEf6o0n.js} +25 -29
- package/dist/client/__vitest_browser__/rrweb-snapshot-xhvrgOHx.js +5476 -0
- package/dist/client/__vitest_browser__/{tester-DvOWMUmv.js → tester-CIKiUsoz.js} +164 -14
- package/dist/client/__vitest_browser__/{utils-DmkAiRYk.js → utils-BYUpz6v6.js} +132 -597
- package/dist/client/orchestrator.html +2 -2
- package/dist/client/tester/tester.html +2 -2
- package/dist/client/tester/trace.d.ts +53 -0
- package/dist/client.js +1 -0
- package/dist/context.js +148 -7
- package/dist/expect-element.js +30 -30
- package/dist/index-BlWsE3ij.js +5 -0
- package/dist/index.js +22 -1
- package/dist/locators.js +1 -1
- package/dist/state.js +1 -0
- package/dist/vendor-types.d.ts +131 -0
- package/dist/vendor-types.ts +1 -0
- package/package.json +11 -6
- package/dist/client/__vitest__/assets/index-Da0hb3oU.css +0 -1
- package/dist/client/__vitest__/assets/index-DflzHTY2.js +0 -94
- package/dist/index-D8jtZoIM.js +0 -5
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{server as e,page as t,utils as n}from"vitest/browser";import{__INTERNAL as r,getSafeTimers as i}from"vitest/internal/browser";function a(e){"@babel/helpers - typeof";return a=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},a(e)}function o(e,t){if(a(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(a(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function s(e){var t=o(e,`string`);return a(t)==`symbol`?t:t+``}function c(e,t,n){return(t=s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=function(e,t,n){return e>=t&&e<=n};function u(e){return l(e,48,57)}function d(e){return u(e)||l(e,65,70)||l(e,97,102)}function f(e){return l(e,65,90)}function p(e){return l(e,97,122)}function m(e){return f(e)||p(e)}function h(e){return e>=128}function g(e){return m(e)||h(e)||e===95}function ee(e){return g(e)||u(e)||e===45}function te(e){return l(e,0,8)||e===11||l(e,14,31)||e===127}function _(e){return e===10}function v(e){return _(e)||e===9||e===32}var y=class extends Error{constructor(e){super(e),this.name=`InvalidCharacterError`}};function ne(e){let t=[];for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r===13&&e.charCodeAt(n+1)===10&&(r=10,n++),(r===13||r===12)&&(r=10),r===0&&(r=65533),l(r,55296,56319)&&l(e.charCodeAt(n+1),56320,57343)){let t=r-55296,i=e.charCodeAt(n+1)-56320;r=2**16+t*2**10+i,n++}t.push(r)}return t}function b(e){if(e<=65535)return String.fromCharCode(e);e-=2**16;let t=Math.floor(e/2**10)+55296,n=e%2**10+56320;return String.fromCharCode(t)+String.fromCharCode(n)}function re(e){let t=ne(e),n=-1,r=[],i,a=function(e){return e>=t.length?-1:t[e]},o=function(e){if(e===void 0&&(e=1),e>3)throw`Spec Error: no more than three codepoints of lookahead.`;return a(n+e)},s=function(e){return e===void 0&&(e=1),n+=e,i=a(n),!0},c=function(){return--n,!0},l=function(e){return e===void 0&&(e=i),e===-1},f=function(){if(p(),s(),v(i)){for(;v(o());)s();return new oe}else if(i===34)return y();else if(i===35)if(ee(o())||S(o(1),o(2))){let e=new Oe(``);return T(o(1),o(2),o(3))&&(e.type=`id`),e.value=D(),e}else return new C(i);else if(i===36)return o()===61?(s(),new xe):new C(i);else if(i===39)return y();else if(i===40)return new ge;else if(i===41)return new _e;else if(i===42)return o()===61?(s(),new Se):new C(i);else if(i===43)return E()?(c(),m()):new C(i);else if(i===44)return new de;else if(i===45)return E()?(c(),m()):o(1)===45&&o(2)===62?(s(2),new ce):Pe()?(c(),h()):new C(i);else if(i===46)return E()?(c(),m()):new C(i);else if(i===58)return new le;else if(i===59)return new ue;else if(i===60)return o(1)===33&&o(2)===45&&o(3)===45?(s(3),new se):new C(i);else if(i===64)return T(o(1),o(2),o(3))?new De(D()):new C(i);else if(i===91)return new me;else if(i===92)return w()?(c(),h()):new C(i);else if(i===93)return new he;else if(i===94)return o()===61?(s(),new be):new C(i);else if(i===123)return new fe;else if(i===124)return o()===61?(s(),new ye):o()===124?(s(),new Ce):new C(i);else if(i===125)return new pe;else if(i===126)return o()===61?(s(),new ve):new C(i);else if(u(i))return c(),m();else if(g(i))return c(),h();else if(l())return new we;else return new C(i)},p=function(){for(;o(1)===47&&o(2)===42;)for(s(2);;)if(s(),i===42&&o()===47){s();break}else if(l())return},m=function(){let e=Ie();if(T(o(1),o(2),o(3))){let t=new Ne;return t.value=e.value,t.repr=e.repr,t.type=e.type,t.unit=D(),t}else if(o()===37){s();let t=new Me;return t.value=e.value,t.repr=e.repr,t}else{let t=new je;return t.value=e.value,t.repr=e.repr,t.type=e.type,t}},h=function(){let e=D();if(e.toLowerCase()===`url`&&o()===40){for(s();v(o(1))&&v(o(2));)s();return o()===34||o()===39||v(o())&&(o(2)===34||o(2)===39)?new Ee(e):re()}else if(o()===40)return s(),new Ee(e);else return new Te(e)},y=function(e){e===void 0&&(e=i);let t=``;for(;s();)if(i===e||l())return new ke(t);else if(_(i))return c(),new ie;else i===92?l(o())||(_(o())?s():t+=b(x())):t+=b(i);throw Error(`Internal error`)},re=function(){let e=new Ae(``);for(;v(o());)s();if(l(o()))return e;for(;s();)if(i===41||l())return e;else if(v(i)){for(;v(o());)s();return o()===41||l(o())?(s(),e):(O(),new ae)}else if(i===34||i===39||i===40||te(i))return O(),new ae;else if(i===92)if(w())e.value+=b(x());else return O(),new ae;else e.value+=b(i);throw Error(`Internal error`)},x=function(){if(s(),d(i)){let e=[i];for(let t=0;t<5&&d(o());t++)s(),e.push(i);v(o())&&s();let t=Number.parseInt(e.map(e=>String.fromCharCode(e)).join(``),16);return t>1114111&&(t=65533),t}else if(l())return 65533;else return i},S=function(e,t){return!(e!==92||_(t))},w=function(){return S(i,o())},T=function(e,t,n){return e===45?g(t)||t===45||S(t,n):g(e)?!0:e===92?S(e,t):!1},Pe=function(){return T(i,o(1),o(2))},Fe=function(e,t,n){return e===43||e===45?!!(u(t)||t===46&&u(n)):e===46?!!u(t):!!u(e)},E=function(){return Fe(i,o(1),o(2))},D=function(){let e=``;for(;s();)if(ee(i))e+=b(i);else if(w())e+=b(x());else return c(),e;throw Error(`Internal parse error`)},Ie=function(){let e=``,t=`integer`;for((o()===43||o()===45)&&(s(),e+=b(i));u(o());)s(),e+=b(i);if(o(1)===46&&u(o(2)))for(s(),e+=b(i),s(),e+=b(i),t=`number`;u(o());)s(),e+=b(i);let n=o(1),r=o(2),a=o(3);if((n===69||n===101)&&u(r))for(s(),e+=b(i),s(),e+=b(i),t=`number`;u(o());)s(),e+=b(i);else if((n===69||n===101)&&(r===43||r===45)&&u(a))for(s(),e+=b(i),s(),e+=b(i),s(),e+=b(i),t=`number`;u(o());)s(),e+=b(i);let c=Le(e);return{type:t,value:c,repr:e}},Le=function(e){return+e},O=function(){for(;s();)if(i===41||l())return;else w()&&x()},k=0;for(;!l(o());)if(r.push(f()),k++,k>t.length*2)throw Error(`I'm infinite-looping!`);return r}var x=class{constructor(){c(this,`tokenType`,``),c(this,`value`,void 0)}toJSON(){return{token:this.tokenType}}toString(){return this.tokenType}toSource(){return`${this}`}},ie=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`BADSTRING`)}},ae=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`BADURL`)}},oe=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`WHITESPACE`)}toString(){return`WS`}toSource(){return` `}},se=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`CDO`)}toSource(){return`<!--`}},ce=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`CDC`)}toSource(){return`-->`}},le=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`:`)}},ue=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`;`)}},de=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`,`)}},S=class extends x{constructor(...e){super(...e),c(this,`value`,``),c(this,`mirror`,``)}},fe=class extends S{constructor(){super(),c(this,`tokenType`,`{`),this.value=`{`,this.mirror=`}`}},pe=class extends S{constructor(){super(),c(this,`tokenType`,`}`),this.value=`}`,this.mirror=`{`}},me=class extends S{constructor(){super(),c(this,`tokenType`,`[`),this.value=`[`,this.mirror=`]`}},he=class extends S{constructor(){super(),c(this,`tokenType`,`]`),this.value=`]`,this.mirror=`[`}},ge=class extends S{constructor(){super(),c(this,`tokenType`,`(`),this.value=`(`,this.mirror=`)`}},_e=class extends S{constructor(){super(),c(this,`tokenType`,`)`),this.value=`)`,this.mirror=`(`}},ve=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`~=`)}},ye=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`|=`)}},be=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`^=`)}},xe=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`$=`)}},Se=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`*=`)}},Ce=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`||`)}},we=class extends x{constructor(...e){super(...e),c(this,`tokenType`,`EOF`)}toSource(){return``}},C=class extends x{constructor(e){super(),c(this,`tokenType`,`DELIM`),c(this,`value`,``),this.value=b(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}},w=class extends x{constructor(...e){super(...e),c(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}},Te=class extends w{constructor(e){super(),c(this,`tokenType`,`IDENT`),this.value=e}toString(){return`IDENT(${this.value})`}toSource(){return T(this.value)}},Ee=class extends w{constructor(e){super(),c(this,`tokenType`,`FUNCTION`),c(this,`mirror`,void 0),this.value=e,this.mirror=`)`}toString(){return`FUNCTION(${this.value})`}toSource(){return`${T(this.value)}(`}},De=class extends w{constructor(e){super(),c(this,`tokenType`,`AT-KEYWORD`),this.value=e}toString(){return`AT(${this.value})`}toSource(){return`@${T(this.value)}`}},Oe=class extends w{constructor(e){super(),c(this,`tokenType`,`HASH`),c(this,`type`,void 0),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`?`#${T(this.value)}`:`#${Pe(this.value)}`}},ke=class extends w{constructor(e){super(),c(this,`tokenType`,`STRING`),this.value=e}toString(){return`"${Fe(this.value)}"`}},Ae=class extends w{constructor(e){super(),c(this,`tokenType`,`URL`),this.value=e}toString(){return`URL(${this.value})`}toSource(){return`url("${Fe(this.value)}")`}},je=class extends x{constructor(){super(),c(this,`tokenType`,`NUMBER`),c(this,`type`,void 0),c(this,`repr`,void 0),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}},Me=class extends x{constructor(){super(),c(this,`tokenType`,`PERCENTAGE`),c(this,`repr`,void 0),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}%`}},Ne=class extends x{constructor(){super(),c(this,`tokenType`,`DIMENSION`),c(this,`type`,void 0),c(this,`repr`,void 0),c(this,`unit`,void 0),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=T(this.unit);return t[0].toLowerCase()===`e`&&(t[1]===`-`||l(t.charCodeAt(1),48,57))&&(t=`\\65 ${t.slice(1,t.length)}`),e+t}};function T(e){e=`${e}`;let t=``,n=e.charCodeAt(0);for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);if(i===0)throw new y(`Invalid character: the input contains U+0000.`);l(i,1,31)||i===127||r===0&&l(i,48,57)||r===1&&l(i,48,57)&&n===45?t+=`\\${i.toString(16)} `:i>=128||i===45||i===95||l(i,48,57)||l(i,65,90)||l(i,97,122)?t+=e[r]:t+=`\\${e[r]}`}return t}function Pe(e){e=`${e}`;let t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r===0)throw new y(`Invalid character: the input contains U+0000.`);r>=128||r===45||r===95||l(r,48,57)||l(r,65,90)||l(r,97,122)?t+=e[n]:t+=`\\${r.toString(16)} `}return t}function Fe(e){e=`${e}`;let t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r===0)throw new y(`Invalid character: the input contains U+0000.`);l(r,1,31)||r===127?t+=`\\${r.toString(16)} `:r===34||r===92?t+=`\\${e[n]}`:t+=e[n]}return t}var E=class extends Error{};function D(e,t){let n;try{n=re(e),n[n.length-1]instanceof we||n.push(new we)}catch(t){let n=`${t.message} while parsing selector "${e}"`,r=(t.stack||``).indexOf(t.message);throw r!==-1&&(t.stack=t.stack.substring(0,r)+n+t.stack.substring(r+t.message.length)),t.message=n,t}let r=n.find(e=>e instanceof De||e instanceof ie||e instanceof ae||e instanceof Ce||e instanceof se||e instanceof ce||e instanceof ue||e instanceof fe||e instanceof pe||e instanceof Ae||e instanceof Me);if(r)throw new E(`Unsupported token "${r.toSource()}" while parsing selector "${e}"`);let i=0,a=new Set;function o(){return new E(`Unexpected token "${n[i].toSource()}" while parsing selector "${e}"`)}function s(){for(;n[i]instanceof oe;)i++}function c(e=i){return n[e]instanceof Te}function l(e=i){return n[e]instanceof ke}function u(e=i){return n[e]instanceof je}function d(e=i){return n[e]instanceof de}function f(e=i){return n[e]instanceof ge}function p(e=i){return n[e]instanceof _e}function m(e=i){return n[e]instanceof Ee}function h(e=i){return n[e]instanceof C&&n[e].value===`*`}function g(e=i){return n[e]instanceof we}function ee(e=i){return n[e]instanceof C&&[`>`,`+`,`~`].includes(n[e].value)}function te(e=i){return d(e)||p(e)||g(e)||ee(e)||n[e]instanceof oe}function _(){let e=[v()];for(;s(),d();)i++,e.push(v());return e}function v(){return s(),u()||l()?n[i++].value:y()}function y(){let e={simples:[]};for(s(),ee()?e.simples.push({selector:{functions:[{name:`scope`,args:[]}]},combinator:``}):e.simples.push({selector:ne(),combinator:``});;){if(s(),ee())e.simples[e.simples.length-1].combinator=n[i++].value,s();else if(te())break;e.simples.push({combinator:``,selector:ne()})}return e}function ne(){let e=``,r=[];for(;!te();)if(c()||h())e+=n[i++].toSource();else if(n[i]instanceof Oe)e+=n[i++].toSource();else if(n[i]instanceof C&&n[i].value===`.`)if(i++,c())e+=`.${n[i++].toSource()}`;else throw o();else if(n[i]instanceof le)if(i++,c())if(!t.has(n[i].value.toLowerCase()))e+=`:${n[i++].toSource()}`;else{let e=n[i++].value.toLowerCase();r.push({name:e,args:[]}),a.add(e)}else if(m()){let c=n[i++].value.toLowerCase();if(t.has(c)?(r.push({name:c,args:_()}),a.add(c)):e+=`:${c}(${b()})`,s(),!p())throw o();i++}else throw o();else if(n[i]instanceof me){for(e+=`[`,i++;!(n[i]instanceof he)&&!g();)e+=n[i++].toSource();if(!(n[i]instanceof he))throw o();e+=`]`,i++}else throw o();if(!e&&!r.length)throw o();return{css:e||void 0,functions:r}}function b(){let e=``,t=1;for(;!g()&&((f()||m())&&t++,p()&&t--,t);)e+=n[i++].toSource();return e}let x=_();if(!g())throw o();if(x.some(e=>typeof e!=`object`||!(`simples`in e)))throw new E(`Error while parsing selector "${e}"`);return{selector:x,names:Array.from(a)}}const Ie=new Set([`internal:has`,`internal:has-not`,`internal:and`,`internal:or`,`internal:chain`,`left-of`,`right-of`,`above`,`below`,`near`]),Le=new Set([`left-of`,`right-of`,`above`,`below`,`near`]),O=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 k(e){let t=Be(e),n=[];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=D(e.body,O);n.push({name:`css`,body:t.selector,source:e.body});continue}if(Ie.has(e.name)){let t,r;try{let n=JSON.parse(`[${e.body}]`);if(!Array.isArray(n)||n.length<1||n.length>2||typeof n[0]!=`string`)throw new E(`Malformed selector: ${e.name}=${e.body}`);if(t=n[0],n.length===2){if(typeof n[1]!=`number`||!Le.has(e.name))throw new E(`Malformed selector: ${e.name}=${e.body}`);r=n[1]}}catch{throw new E(`Malformed selector: ${e.name}=${e.body}`)}let i={name:e.name,source:e.body,body:{parsed:k(t),distance:r}},a=[...i.body.parsed.parts].reverse().find(e=>e.name===`internal:control`&&e.body===`enter-frame`),o=a?i.body.parsed.parts.indexOf(a):-1;o!==-1&&Re(i.body.parsed.parts.slice(0,o+1),n.slice(0,o+1))&&i.body.parsed.parts.splice(0,o+1),n.push(i);continue}n.push({...e,source:e.body})}if(Ie.has(n[0].name))throw new E(`"${n[0].name}" selector cannot be first`);return{capture:t.capture,parts:n}}function Re(e,t){return A({parts:e})===A({parts:t})}function A(e,t){return typeof e==`string`?e:e.parts.map((n,r)=>{let i=!0;!t&&r!==e.capture&&(n.name===`css`||n.name===`xpath`&&n.source.startsWith(`//`)||n.source.startsWith(`..`))&&(i=!1);let a=i?`${n.name}=`:``;return`${r===e.capture?`*`:``}${a}${n.source}`}).join(` >> `)}function ze(e,t){let n=(e,r)=>{for(let i of e.parts)t(i,r),Ie.has(i.name)&&n(i.body.parsed,!0)};n(e,!1)}function Be(e){let t=0,n,r=0,i={parts:[]},a=()=>{let n=e.substring(r,t).trim(),a=n.indexOf(`=`),o,s;a!==-1&&n.substring(0,a).trim().match(/^[\w\-+:*]+$/)?(o=n.substring(0,a).trim(),s=n.substring(a+1)):n.length>1&&n[0]===`"`&&n[n.length-1]===`"`||n.length>1&&n[0]===`'`&&n[n.length-1]===`'`?(o=`text`,s=n):/^\(*\/\//.test(n)||n.startsWith(`..`)?(o=`xpath`,s=n):(o=`css`,s=n);let c=!1;if(o[0]===`*`&&(c=!0,o=o.substring(1)),i.parts.push({name:o,body:s}),c){if(i.capture!==void 0)throw new E(`Only one of the selectors can capture using * modifier`);i.capture=i.parts.length-1}};if(!e.includes(`>>`))return t=e.length,a(),i;let o=()=>{let n=e.substring(r,t).match(/^\s*text\s*=(.*)$/);return!!n&&!!n[1]};for(;t<e.length;){let i=e[t];i===`\\`&&t+1<e.length?t+=2:i===n?(n=void 0,t++):!n&&(i===`"`||i===`'`||i==="`")&&!o()?(n=i,t++):!n&&i===`>`&&e[t+1]===`>`?(a(),t+=2,r=t):t++}return a(),i}function Ve(e,t){let n=0,r=e.length===0,i=()=>e[n]||``,a=()=>{let t=i();return++n,r=n>=e.length,t},o=t=>{throw r?new E(`Unexpected end of selector while parsing selector \`${e}\``):new E(`Error while parsing selector \`${e}\` - unexpected symbol "${i()}" at position ${n}${t?` during ${t}`:``}`)};function s(){for(;!r&&/\s/.test(i());)a()}function c(e){return e>=``||e>=`0`&&e<=`9`||e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e>=`0`&&e<=`9`||e===`_`||e===`-`}function l(){let e=``;for(s();!r&&c(i());)e+=a();return e}function u(e){let t=a();for(t!==e&&o(`parsing quoted string`);!r&&i()!==e;)i()===`\\`&&a(),t+=a();return i()!==e&&o(`parsing quoted string`),t+=a(),t}function d(){a()!==`/`&&o(`parsing regular expression`);let t=``,n=!1;for(;!r;){if(i()===`\\`)t+=a(),r&&o(`parsing regular expression`);else if(n&&i()===`]`)n=!1;else if(!n&&i()===`[`)n=!0;else if(!n&&i()===`/`)break;t+=a()}a()!==`/`&&o(`parsing regular expression`);let s=``;for(;!r&&i().match(/[dgimsuy]/);)s+=a();try{return new RegExp(t,s)}catch(t){throw new E(`Error while parsing selector \`${e}\`: ${t.message}`)}}function f(){let e=``;return s(),e=i()===`'`||i()===`"`?u(i()).slice(1,-1):l(),e||o(`parsing property path`),e}function p(){s();let e=``;return r||(e+=a()),!r&&e!==`=`&&(e+=a()),[`=`,`*=`,`^=`,`$=`,`|=`,`~=`].includes(e)||o(`parsing operator`),e}function m(){a();let t=[];for(t.push(f()),s();i()===`.`;)a(),t.push(f()),s();if(i()===`]`)return a(),{name:t.join(`.`),jsonPath:t,op:`<truthy>`,value:null,caseSensitive:!1};let n=p(),l,m=!0;if(s(),i()===`/`){if(n!==`=`)throw new E(`Error while parsing selector \`${e}\` - cannot use ${n} in attribute with regular expression`);l=d()}else if(i()===`'`||i()===`"`)l=u(i()).slice(1,-1),s(),i()===`i`||i()===`I`?(m=!1,a()):(i()===`s`||i()===`S`)&&(m=!0,a());else{for(l=``;!r&&(c(i())||i()===`+`||i()===`.`);)l+=a();l===`true`?l=!0:l===`false`&&(l=!1)}if(s(),i()!==`]`&&o(`parsing attribute value`),a(),n!==`=`&&typeof l!=`string`)throw new E(`Error while parsing selector \`${e}\` - cannot use ${n} in attribute with non-string matching value - ${l}`);return{name:t.join(`.`),jsonPath:t,op:n,value:l,caseSensitive:m}}let h={name:``,attributes:[]};for(h.name=l(),s();i()===`[`;)h.attributes.push(m()),s();if(r||o(void 0),!h.name&&!h.attributes.length)throw new E(`Error while parsing selector \`${e}\` - selector cannot be empty`);return h}function He(e,t=`'`){let n=JSON.stringify(e),r=n.substring(1,n.length-1).replace(/\\"/g,`"`);if(t===`'`)return t+r.replace(/'/g,`\\'`)+t;if(t===`"`)return t+r.replace(/"/g,`\\"`)+t;if(t==="`")return t+r.replace(/`/g,"`")+t;throw Error(`Invalid escape char`)}function j(e){let t=``;for(let n=0;n<e.length;n++)t+=We(e,n);return t}function Ue(e){return`"${j(e).replace(/\\ /g,` `)}"`}function We(e,t){let n=e.charCodeAt(t);return n===0?`�`:n>=1&&n<=31||n>=48&&n<=57&&(t===0||t===1&&e.charCodeAt(0)===45)?`\\${n.toString(16)} `:t===0&&n===45&&e.length===1?`\\${e.charAt(t)}`:n>=128||n===45||n===95||n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122?e.charAt(t):`\\${e.charAt(t)}`}function M(e){return e.replace(/[\u200b\u00ad]/g,``).trim().replace(/\s+/g,` `)}function Ge(e){return e.replace(/(^|[^\\])(\\\\)*\\(['"`])/g,`$1$2$3`)}function Ke(e){return e.unicode||e.unicodeSets?String(e):String(e).replace(/(^|[^\\])(\\\\)*(["'`])/g,`$1$2\\$3`).replace(/>>/g,`\\>\\>`)}function N(e,t){return typeof e==`string`?`${JSON.stringify(e)}${t?`s`:`i`}`:Ke(e)}function P(e,t){return typeof e==`string`?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"${t?`s`:`i`}`:Ke(e)}function qe(e,t,n=``){if(e.length<=t)return e;let r=[...e];return r.length>t?r.slice(0,t-n.length).join(``)+n:r.join(``)}function Je(e,t){return qe(e,t,`…`)}function Ye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function F(e){if(e.parentElement)return e.parentElement;if(e.parentNode&&e.parentNode.nodeType===11&&e.parentNode.host)return e.parentNode.host}function Xe(e){let t=e;for(;t.parentNode;)t=t.parentNode;if(t.nodeType===11||t.nodeType===9)return t}function Ze(e){for(;e.parentElement;)e=e.parentElement;return F(e)}function Qe(e,t){for(;e;){let n=e.closest(t);if(n)return n;e=Ze(e)}}function I(e,t){return e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,t):void 0}function $e(e,t){if(t??=I(e),!t)return!0;if(Element.prototype.checkVisibility&&X.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 et(e){let t=I(e);if(!t)return!0;if(t.display===`contents`){for(let t=e.firstChild;t;t=t.nextSibling)if(t.nodeType===1&&et(t)||t.nodeType===3&&tt(t))return!0;return!1}if(!$e(e,t))return!1;let n=e.getBoundingClientRect();return n.width>0&&n.height>0}function tt(e){let t=e.ownerDocument.createRange();t.selectNode(e);let n=t.getBoundingClientRect();return n.width>0&&n.height>0}function L(e){return e instanceof HTMLFormElement?`FORM`:e.tagName.toUpperCase()}function nt(e){return e.hasAttribute(`aria-label`)||e.hasAttribute(`aria-labelledby`)}const rt=`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]`,it=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 at(e,t){return[...it].some(([n,r])=>!r?.has(t||``)&&e.hasAttribute(n))}function ot(e){return!Number.isNaN(Number(String(e.getAttribute(`tabindex`))))}function st(e){return!Kt(e)&&(ct(e)||ot(e))}function ct(e){let t=L(e);return[`BUTTON`,`DETAILS`,`SELECT`,`TEXTAREA`].includes(t)?!0:t===`A`||t===`AREA`?e.hasAttribute(`href`):t===`INPUT`?!e.hidden:!1}const lt={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=>Qe(e,rt)?null:`contentinfo`,FORM:e=>nt(e)?`form`:null,H1:()=>`heading`,H2:()=>`heading`,H3:()=>`heading`,H4:()=>`heading`,H5:()=>`heading`,H6:()=>`heading`,HEADER:e=>Qe(e,rt)?null:`banner`,HR:()=>`separator`,HTML:()=>`document`,IMG:e=>e.getAttribute(`alt`)===``&&!e.getAttribute(`title`)&&!at(e)&&!ot(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=B(e,e.getAttribute(`list`))[0];return t&&L(t)===`DATALIST`?`combobox`:`textbox`}return t===`hidden`?``:t===`file`?`button`:{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=>nt(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=Qe(e,`table`),n=t?ht(t):``;return n===`grid`||n===`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=Qe(e,`table`),n=t?ht(t):``;return n===`grid`||n===`treegrid`?`gridcell`:`cell`},THEAD:()=>`rowgroup`,TIME:()=>`time`,TR:()=>`row`,UL:()=>`list`},ut={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 dt(e){let t=lt[L(e)]?.call(lt,e)||``;if(!t)return null;let n=e;for(;n;){let e=F(n),t=ut[L(n)];if(!t||!e||!t.includes(L(e)))break;let r=ht(e);if((r===`none`||r===`presentation`)&&!gt(e,r))return r;n=e}return t}const ft=`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(`.`),pt=[`command`,`composite`,`input`,`landmark`,`range`,`roletype`,`section`,`sectionhead`,`select`,`structure`,`widget`,`window`],mt=ft.filter(e=>!pt.includes(e));function ht(e){return(e.getAttribute(`role`)||``).split(` `).map(e=>e.trim()).find(e=>mt.includes(e))||null}function gt(e,t){return at(e,t)||st(e)}function R(e){let t=ht(e);if(!t)return dt(e);if(t===`none`||t===`presentation`){let t=dt(e);if(gt(e,t))return t}return t}function _t(e){return e===null?void 0:e.toLowerCase()===`true`}function vt(e){return[`STYLE`,`SCRIPT`,`NOSCRIPT`,`TEMPLATE`].includes(L(e))}function z(e){if(vt(e))return!0;let t=I(e),n=e.nodeName===`SLOT`;if(t?.display===`contents`&&!n){for(let t=e.firstChild;t;t=t.nextSibling)if(t.nodeType===1&&!z(t)||t.nodeType===3&&tt(t))return!1;return!0}return!(e.nodeName===`OPTION`&&e.closest(`select`))&&!n&&!$e(e,t)?!0:yt(e)}function yt(e){let t=en?.get(e);if(t===void 0){if(t=!1,e.parentElement&&e.parentElement.shadowRoot&&!e.assignedSlot&&(t=!0),!t){let n=I(e);t=!n||n.display===`none`||_t(e.getAttribute(`aria-hidden`))===!0}if(!t){let n=F(e);n&&(t=yt(n))}en?.set(e,t)}return t}function B(e,t){if(!t)return[];let n=Xe(e);if(!n)return[];try{let e=t.split(` `).filter(e=>!!e),r=new Set;for(let t of e){let e=n.querySelector(`#${CSS.escape(t)}`);e&&r.add(e)}return[...r]}catch{return[]}}function V(e){return e.trim()}function bt(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 xt(e,t){let n=[...e.querySelectorAll(t)];for(let r of B(e,e.getAttribute(`aria-owns`)))r.matches(t)&&n.push(r),n.push(...r.querySelectorAll(t));return n}function St(e,t){let n=t===`::before`?tn:nn;if(n?.has(e))return n?.get(e)||``;let r=Ct(I(e,t));return n&&n.set(e,r),r}function Ct(e){if(!e)return``;let t=e.content;if(t[0]===`'`&&t[t.length-1]===`'`||t[0]===`"`&&t[t.length-1]===`"`){let n=t.substring(1,t.length-1);return(e.display||`inline`)===`inline`?n:` ${n} `}return``}function wt(e){let t=e.getAttribute(`aria-labelledby`);return t===null?null:B(e,t)}function Tt(e,t){let n=[`button`,`cell`,`checkbox`,`columnheader`,`gridcell`,`heading`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`row`,`rowheader`,`switch`,`tab`,`tooltip`,`treeitem`].includes(e),r=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 n||r}function Et(e,t){let n=t?Zt:Xt,r=n?.get(e);return r===void 0&&(r=``,[`caption`,`code`,`definition`,`deletion`,`emphasis`,`generic`,`insertion`,`mark`,`paragraph`,`presentation`,`strong`,`subscript`,`suggestion`,`superscript`,`term`,`time`].includes(R(e)||``)||(r=bt(H(e,{includeHidden:t,visitedElements:new Set,embeddedInDescribedBy:void 0,embeddedInLabelledBy:void 0,embeddedInLabel:void 0,embeddedInNativeTextAlternative:void 0,embeddedInTargetElement:`self`}))),n?.set(e,r)),r}function Dt(e,t){let n=$t,r=n?.get(e);return r===void 0&&(r=``,r=e.hasAttribute(`aria-describedby`)?bt(B(e,e.getAttribute(`aria-describedby`)).map(e=>H(e,{includeHidden:t,visitedElements:new Set,embeddedInDescribedBy:{element:e,hidden:z(e)}})).join(` `)):e.hasAttribute(`aria-description`)?bt(e.getAttribute(`aria-description`)||``):bt(e.getAttribute(`title`)||``),n?.set(e,r)),r}const Ot=[`application`,`checkbox`,`combobox`,`gridcell`,`listbox`,`radiogroup`,`slider`,`spinbutton`,`textbox`,`tree`,`columnheader`,`rowheader`,`searchbox`,`switch`,`treegrid`];function kt(e){let t=R(e)||``;if(!t||!Ot.includes(t))return`false`;let n=e.getAttribute(`aria-invalid`);return!n||n.trim()===``||n.toLocaleLowerCase()===`false`?`false`:n===`true`||n===`grammar`||n===`spelling`?n:`true`}function At(e){return`validity`in e?e.validity?.valid===!1:!1}function jt(e){let t=Qt,n=Qt?.get(e);if(n===void 0){n=``;let r=kt(e)!==`false`,i=At(e);(r||i)&&(n=B(e,e.getAttribute(`aria-errormessage`)).map(e=>bt(H(e,{visitedElements:new Set,embeddedInDescribedBy:{element:e,hidden:z(e)}}))).join(` `).trim()),t?.set(e,n)}return n}function H(e,t){if(t.visitedElements.has(e))return``;let n={...t,embeddedInTargetElement:t.embeddedInTargetElement===`self`?`descendant`:t.embeddedInTargetElement};if(!t.includeHidden){let n=!!t.embeddedInLabelledBy?.hidden||!!t.embeddedInDescribedBy?.hidden||!!t.embeddedInNativeTextAlternative?.hidden||!!t.embeddedInLabel?.hidden;if(vt(e)||!n&&z(e))return t.visitedElements.add(e),``}let r=wt(e);if(!t.embeddedInLabelledBy){let e=(r||[]).map(e=>H(e,{...t,embeddedInLabelledBy:{element:e,hidden:z(e)},embeddedInDescribedBy:void 0,embeddedInTargetElement:void 0,embeddedInLabel:void 0,embeddedInNativeTextAlternative:void 0})).join(` `);if(e)return e}let i=R(e)||``,a=L(e);if(t.embeddedInLabel||t.embeddedInLabelledBy||t.embeddedInTargetElement===`descendant`){let o=[...e.labels||[]].includes(e),s=(r||[]).includes(e);if(!o&&!s){if(i===`textbox`)return t.visitedElements.add(e),a===`INPUT`||a===`TEXTAREA`?e.value:e.textContent||``;if([`combobox`,`listbox`].includes(i)){t.visitedElements.add(e);let r;if(a===`SELECT`)r=[...e.selectedOptions],!r.length&&e.options.length&&r.push(e.options[0]);else{let t=i===`combobox`?xt(e,`*`).find(e=>R(e)===`listbox`):e;r=t?xt(t,`[aria-selected="true"]`).filter(e=>R(e)===`option`):[]}return!r.length&&a===`INPUT`?e.value:r.map(e=>H(e,n)).join(` `)}if([`progressbar`,`scrollbar`,`slider`,`spinbutton`,`meter`].includes(i))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(i))return t.visitedElements.add(e),``}}let o=e.getAttribute(`aria-label`)||``;if(V(o))return t.visitedElements.add(e),o;if(![`presentation`,`none`].includes(i)){if(a===`INPUT`&&[`button`,`submit`,`reset`].includes(e.type)){t.visitedElements.add(e);let n=e.value||``;return V(n)?n:e.type===`submit`?`Submit`:e.type===`reset`?`Reset`:e.getAttribute(`title`)||``}if(a===`INPUT`&&e.type===`image`){t.visitedElements.add(e);let n=e.labels||[];if(n.length&&!t.embeddedInLabelledBy)return Yt(n,t);let r=e.getAttribute(`alt`)||``;if(V(r))return r;let i=e.getAttribute(`title`)||``;return V(i)?i:`Submit`}if(!r&&a===`BUTTON`){t.visitedElements.add(e);let n=e.labels||[];if(n.length)return Yt(n,t)}if(!r&&a===`OUTPUT`){t.visitedElements.add(e);let n=e.labels||[];return n.length?Yt(n,t):e.getAttribute(`title`)||``}if(!r&&(a===`TEXTAREA`||a===`SELECT`||a===`INPUT`)){t.visitedElements.add(e);let n=e.labels||[];if(n.length)return Yt(n,t);let r=a===`INPUT`&&[`text`,`password`,`search`,`tel`,`email`,`url`].includes(e.type)||a===`TEXTAREA`,i=e.getAttribute(`placeholder`)||``,o=e.getAttribute(`title`)||``;return!r||o?o:i}if(!r&&a===`FIELDSET`){t.visitedElements.add(e);for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(L(t)===`LEGEND`)return H(t,{...n,embeddedInNativeTextAlternative:{element:t,hidden:z(t)}});return e.getAttribute(`title`)||``}if(!r&&a===`FIGURE`){t.visitedElements.add(e);for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(L(t)===`FIGCAPTION`)return H(t,{...n,embeddedInNativeTextAlternative:{element:t,hidden:z(t)}});return e.getAttribute(`title`)||``}if(a===`IMG`){t.visitedElements.add(e);let n=e.getAttribute(`alt`)||``;return V(n)?n:e.getAttribute(`title`)||``}if(a===`TABLE`){t.visitedElements.add(e);for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(L(t)===`CAPTION`)return H(t,{...n,embeddedInNativeTextAlternative:{element:t,hidden:z(t)}});let r=e.getAttribute(`summary`)||``;if(r)return r}if(a===`AREA`){t.visitedElements.add(e);let n=e.getAttribute(`alt`)||``;return V(n)?n:e.getAttribute(`title`)||``}if(a===`SVG`||e.ownerSVGElement){t.visitedElements.add(e);for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(L(t)===`TITLE`&&t.ownerSVGElement)return H(t,{...n,embeddedInLabelledBy:{element:t,hidden:z(t)}})}if(e.ownerSVGElement&&a===`A`){let n=e.getAttribute(`xlink:title`)||``;if(V(n))return t.visitedElements.add(e),n}}let s=a===`SUMMARY`&&![`presentation`,`none`].includes(i);if(Tt(i,t.embeddedInTargetElement===`descendant`)||s||t.embeddedInLabelledBy||t.embeddedInDescribedBy||t.embeddedInLabel||t.embeddedInNativeTextAlternative){t.visitedElements.add(e);let r=Mt(e,n);if(t.embeddedInTargetElement===`self`?V(r):r)return r}if(![`presentation`,`none`].includes(i)||a===`IFRAME`){t.visitedElements.add(e);let n=e.getAttribute(`title`)||``;if(V(n))return n}return t.visitedElements.add(e),``}function Mt(e,t){let n=[],r=(e,r)=>{if(!(r&&e.assignedSlot))if(e.nodeType===1){let r=I(e)?.display||`inline`,i=H(e,t);(r!==`inline`||e.nodeName===`BR`)&&(i=` `+i+` `),n.push(i)}else e.nodeType===3&&n.push(e.textContent||``)};n.push(St(e,`::before`));let i=e.nodeName===`SLOT`?e.assignedNodes():[];if(i.length)for(let e of i)r(e,!1);else{for(let t=e.firstChild;t;t=t.nextSibling)r(t,!0);if(e.shadowRoot)for(let t=e.shadowRoot.firstChild;t;t=t.nextSibling)r(t,!0);for(let t of B(e,e.getAttribute(`aria-owns`)))r(t,!0)}return n.push(St(e,`::after`)),n.join(``)}const Nt=[`gridcell`,`option`,`row`,`tab`,`rowheader`,`columnheader`,`treeitem`];function Pt(e){return L(e)===`OPTION`?e.selected:Nt.includes(R(e)||``)?_t(e.getAttribute(`aria-selected`))===!0:!1}const Ft=[`checkbox`,`menuitemcheckbox`,`option`,`radio`,`switch`,`menuitemradio`,`treeitem`];function It(e){let t=Lt(e);return t===`error`?!1:t}function Lt(e,t){let n=L(e);if(n===`INPUT`&&e.indeterminate)return`mixed`;if(n===`INPUT`&&[`checkbox`,`radio`].includes(e.type))return e.checked;if(Ft.includes(R(e)||``)){let t=e.getAttribute(`aria-checked`);return t===`true`?!0:t===`mixed`?`mixed`:!1}return`error`}const Rt=[`button`];function zt(e){if(Rt.includes(R(e)||``)){let t=e.getAttribute(`aria-pressed`);if(t===`true`)return!0;if(t===`mixed`)return`mixed`}return!1}const Bt=[`application`,`button`,`checkbox`,`combobox`,`gridcell`,`link`,`listbox`,`menuitem`,`row`,`rowheader`,`tab`,`treeitem`,`columnheader`,`menuitemcheckbox`,`menuitemradio`,`rowheader`,`switch`];function Vt(e){if(L(e)===`DETAILS`)return e.open;if(Bt.includes(R(e)||``)){let t=e.getAttribute(`aria-expanded`);return t===null?`none`:t===`true`}return`none`}const Ht=[`heading`,`listitem`,`row`,`treeitem`];function Ut(e){let t={H1:1,H2:2,H3:3,H4:4,H5:5,H6:6}[L(e)];if(t)return t;if(Ht.includes(R(e)||``)){let t=e.getAttribute(`aria-level`),n=t===null?NaN:Number(t);if(Number.isInteger(n)&&n>=1)return n}return 0}const Wt=`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 Gt(e){return Kt(e)||Jt(e)}function Kt(e){return[`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`OPTION`,`OPTGROUP`].includes(e.tagName)&&(e.hasAttribute(`disabled`)||qt(e))}function qt(e){let t=e?.closest(`FIELDSET[DISABLED]`);if(!t)return!1;let n=t.querySelector(`:scope > LEGEND`);return!n||!n.contains(e)}function Jt(e){if(!e)return!1;if(Wt.includes(R(e)||``)){let t=(e.getAttribute(`aria-disabled`)||``).toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1}return Jt(F(e))}function Yt(e,t){return[...e].map(e=>H(e,{...t,embeddedInLabel:{element:e,hidden:z(e)},embeddedInNativeTextAlternative:void 0,embeddedInLabelledBy:void 0,embeddedInDescribedBy:void 0,embeddedInTargetElement:void 0})).filter(e=>!!e).join(` `)}let Xt,Zt,Qt,$t,en,tn,nn,rn=0;function an(){++rn,Xt??=new Map,Zt??=new Map,$t??=new Map,Qt??=new Map,en??=new Map,tn??=new Map,nn??=new Map}function on(){--rn||(Xt=void 0,Zt=void 0,$t=void 0,Qt=void 0,en=void 0,tn=void 0,nn=void 0)}function sn(e,t){let n=typeof e==`string`&&!t.caseSensitive?e.toUpperCase():e,r=typeof t.value==`string`&&!t.caseSensitive?t.value.toUpperCase():t.value;return t.op===`<truthy>`?!!n:t.op===`=`?r instanceof RegExp?typeof n==`string`&&!!n.match(r):n===r:typeof n!=`string`||typeof r!=`string`?!1:t.op===`*=`?n.includes(r):t.op===`^=`?n.startsWith(r):t.op===`$=`?n.endsWith(r):t.op===`|=`?n===r||n.startsWith(`${r}-`):t.op===`~=`?n.split(` `).includes(r):!1}function cn(e){let t=e.ownerDocument;return e.nodeName===`SCRIPT`||e.nodeName===`NOSCRIPT`||e.nodeName===`STYLE`||t.head&&t.head.contains(e)}function U(e,t){let n=e.get(t);if(n===void 0){if(n={full:``,normalized:``,immediate:[]},!cn(t)){let r=``;if(t instanceof HTMLInputElement&&(t.type===`submit`||t.type===`button`))n={full:t.value,normalized:M(t.value),immediate:[t.value]};else{for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType===Node.TEXT_NODE?(n.full+=i.nodeValue||``,r+=i.nodeValue||``):(r&&n.immediate.push(r),r=``,i.nodeType===Node.ELEMENT_NODE&&(n.full+=U(e,i).full));r&&n.immediate.push(r),t.shadowRoot&&(n.full+=U(e,t.shadowRoot).full),n.full&&(n.normalized=M(n.full))}}e.set(t,n)}return n}function ln(e,t,n){if(cn(t)||!n(U(e,t)))return`none`;for(let r=t.firstChild;r;r=r.nextSibling)if(r.nodeType===Node.ELEMENT_NODE&&n(U(e,r)))return`selfAndChildren`;return t.shadowRoot&&n(U(e,t.shadowRoot))?`selfAndChildren`:`self`}function un(e,t){let n=wt(t);if(n)return n.map(t=>U(e,t));let r=t.getAttribute(`aria-label`);if(r!==null&&r.trim())return[{full:r,normalized:M(r),immediate:[r]}];let i=t.nodeName===`INPUT`&&t.type!==`hidden`;if([`BUTTON`,`METER`,`OUTPUT`,`PROGRESS`,`SELECT`,`TEXTAREA`].includes(t.nodeName)||i){let n=t.labels;if(n)return[...n].map(t=>U(e,t))}return[]}const dn=[`selected`,`checked`,`pressed`,`expanded`,`level`,`disabled`,`name`,`include-hidden`];dn.sort();function W(e,t,n){if(!t.includes(n))throw Error(`"${e}" attribute is only supported for roles: ${t.slice().sort().map(e=>`"${e}"`).join(`, `)}`)}function G(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 K(e,t){if(!t.includes(e.op))throw Error(`"${e.name}" does not support "${e.op}" matcher`)}function fn(e,t){let n={role:t};for(let r of e)switch(r.name){case`checked`:W(r.name,Ft,t),G(r,[!0,!1,`mixed`]),K(r,[`<truthy>`,`=`]),n.checked=r.op===`<truthy>`?!0:r.value;break;case`pressed`:W(r.name,Rt,t),G(r,[!0,!1,`mixed`]),K(r,[`<truthy>`,`=`]),n.pressed=r.op===`<truthy>`?!0:r.value;break;case`selected`:W(r.name,Nt,t),G(r,[!0,!1]),K(r,[`<truthy>`,`=`]),n.selected=r.op===`<truthy>`?!0:r.value;break;case`expanded`:W(r.name,Bt,t),G(r,[!0,!1]),K(r,[`<truthy>`,`=`]),n.expanded=r.op===`<truthy>`?!0:r.value;break;case`level`:if(W(r.name,Ht,t),typeof r.value==`string`&&(r.value=+r.value),r.op!==`=`||typeof r.value!=`number`||Number.isNaN(r.value))throw Error(`"level" attribute must be compared to a number`);n.level=r.value;break;case`disabled`:G(r,[!0,!1]),K(r,[`<truthy>`,`=`]),n.disabled=r.op===`<truthy>`?!0:r.value;break;case`name`:if(r.op===`<truthy>`)throw Error(`"name" attribute must have a value`);if(typeof r.value!=`string`&&!(r.value instanceof RegExp))throw TypeError(`"name" attribute must be a string or a regular expression`);n.name=r.value,n.nameOp=r.op,n.exact=r.caseSensitive;break;case`include-hidden`:G(r,[!0,!1]),K(r,[`<truthy>`,`=`]),n.includeHidden=r.op===`<truthy>`?!0:r.value;break;default:throw Error(`Unknown attribute "${r.name}", must be one of ${dn.map(e=>`"${e}"`).join(`, `)}.`)}return n}function pn(e,t,n){let r=[],i=e=>{if(R(e)===t.role&&!(t.selected!==void 0&&Pt(e)!==t.selected)&&!(t.checked!==void 0&&It(e)!==t.checked)&&!(t.pressed!==void 0&&zt(e)!==t.pressed)&&!(t.expanded!==void 0&&Vt(e)!==t.expanded)&&!(t.level!==void 0&&Ut(e)!==t.level)&&!(t.disabled!==void 0&&Gt(e)!==t.disabled)&&!(!t.includeHidden&&z(e))){if(t.name!==void 0){let r=M(Et(e,!!t.includeHidden));if(typeof t.name==`string`&&(t.name=M(t.name)),n&&!t.exact&&t.nameOp===`=`&&(t.nameOp=`*=`),!sn(r,{op:t.nameOp||`=`,value:t.name,caseSensitive:!!t.exact}))return}r.push(e)}},a=e=>{let t=[];e.shadowRoot&&t.push(e.shadowRoot);for(let n of e.querySelectorAll(`*`))i(n),n.shadowRoot&&t.push(n.shadowRoot);t.forEach(a)};return a(e),r}function mn(e){return{queryAll:(t,n)=>{let r=Ve(n),i=r.name.toLowerCase();if(!i)throw Error(`Role must not be empty`);let a=fn(r.attributes,i);an();try{return pn(t,a,e)}finally{on()}}}}function hn(e,t,n=!1){return gn(e,t,n)[0]}function gn(e,t,n=!1,r=20,i){try{return q(new yn[e](i),k(t),n,r)}catch{return[t]}}function q(e,t,n=!1,r=20){let i=[...t.parts];for(let e=0;e<i.length-1;e++)if(i[e].name===`nth`&&i[e+1].name===`internal:control`&&i[e+1].body===`enter-frame`){let[t]=i.splice(e,1);i.splice(e+1,0,t)}let a=[],o=n?`frame-locator`:`page`;for(let t=0;t<i.length;t++){let n=i[t],s=o;if(o=`locator`,n.name===`nth`){n.body===`0`?a.push([e.generateLocator(s,`first`,``),e.generateLocator(s,`nth`,`0`)]):n.body===`-1`?a.push([e.generateLocator(s,`last`,``),e.generateLocator(s,`nth`,`-1`)]):a.push([e.generateLocator(s,`nth`,n.body)]);continue}if(n.name===`internal:text`){let{exact:t,text:r}=vn(n.body);a.push([e.generateLocator(s,`text`,r,{exact:t})]);continue}if(n.name===`internal:has-text`){let{exact:t,text:r}=vn(n.body);if(!t){a.push([e.generateLocator(s,`has-text`,r,{exact:t})]);continue}}if(n.name===`internal:has-not-text`){let{exact:t,text:r}=vn(n.body);if(!t){a.push([e.generateLocator(s,`has-not-text`,r,{exact:t})]);continue}}if(n.name===`internal:has`){let t=q(e,n.body.parsed,!1,r);a.push(t.map(t=>e.generateLocator(s,`has`,t)));continue}if(n.name===`internal:has-not`){let t=q(e,n.body.parsed,!1,r);a.push(t.map(t=>e.generateLocator(s,`hasNot`,t)));continue}if(n.name===`internal:and`){let t=q(e,n.body.parsed,!1,r);a.push(t.map(t=>e.generateLocator(s,`and`,t)));continue}if(n.name===`internal:or`){let t=q(e,n.body.parsed,!1,r);a.push(t.map(t=>e.generateLocator(s,`or`,t)));continue}if(n.name===`internal:chain`){let t=q(e,n.body.parsed,!1,r);a.push(t.map(t=>e.generateLocator(s,`chain`,t)));continue}if(n.name===`internal:label`){let{exact:t,text:r}=vn(n.body);a.push([e.generateLocator(s,`label`,r,{exact:t})]);continue}if(n.name===`internal:role`){let t=Ve(n.body),r={attrs:[]};for(let e of t.attributes)e.name===`name`?(r.exact=e.caseSensitive,r.name=e.value):(e.name===`level`&&typeof e.value==`string`&&(e.value=+e.value),r.attrs.push({name:e.name===`include-hidden`?`includeHidden`:e.name,value:e.value}));a.push([e.generateLocator(s,`role`,t.name,r)]);continue}if(n.name===`internal:testid`){let{value:t}=Ve(n.body).attributes[0];a.push([e.generateLocator(s,`test-id`,t)]);continue}if(n.name===`internal:attr`){let{name:t,value:r,caseSensitive:i}=Ve(n.body).attributes[0],o=r,c=!!i;if(t===`placeholder`){a.push([e.generateLocator(s,`placeholder`,o,{exact:c})]);continue}if(t===`alt`){a.push([e.generateLocator(s,`alt`,o,{exact:c})]);continue}if(t===`title`){a.push([e.generateLocator(s,`title`,o,{exact:c})]);continue}}let c=`default`,l=i[t+1];l&&l.name===`internal:control`&&l.body===`enter-frame`&&(c=`frame`,o=`frame-locator`,t++);let u=A({parts:[n]}),d=e.generateLocator(s,c,u);if(c===`default`&&l&&[`internal:has-text`,`internal:has-not-text`].includes(l.name)){let{exact:n,text:r}=vn(l.body);if(!n){let i=e.generateLocator(`locator`,l.name===`internal:has-text`?`has-text`:`has-not-text`,r,{exact:n}),o={};l.name===`internal:has-text`?o.hasText=r:o.hasNotText=r;let c=e.generateLocator(s,`default`,u,o);a.push([e.chainLocators([d,i]),c]),t++;continue}}let f;if([`xpath`,`css`].includes(n.name)){let t=A({parts:[n]},!0);f=e.generateLocator(s,c,t)}a.push([d,f].filter(Boolean))}return _n(e,a,r)}function _n(e,t,n){let r=t.map(()=>``),i=[],a=o=>{if(o===t.length)return i.push(e.chainLocators(r)),r.length<n;for(let e of t[o])if(r[o]=e,!a(o+1))return!1;return!0};return a(0),i}function vn(e){let t=!1,n=e.match(/^\/(.*)\/([igm]*)$/);return n?{text:new RegExp(n[1],n[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})}const yn={javascript:class{constructor(e){this.preferredQuote=e}generateLocator(e,t,n,r={}){switch(t){case`default`:return r.hasText===void 0?r.hasNotText===void 0?`locator(${this.quote(n)})`:`locator(${this.quote(n)}, { hasNotText: ${this.toHasText(r.hasNotText)} })`:`locator(${this.quote(n)}, { hasText: ${this.toHasText(r.hasText)} })`;case`frame`:return`frameLocator(${this.quote(n)})`;case`nth`:return`nth(${n})`;case`first`:return`first()`;case`last`:return`last()`;case`role`:{let e=[];bn(r.name)?e.push(`name: ${this.regexToSourceString(r.name)}`):typeof r.name==`string`&&(e.push(`name: ${this.quote(r.name)}`),r.exact&&e.push(`exact: true`));for(let{name:t,value:n}of r.attrs)e.push(`${t}: ${typeof n==`string`?this.quote(n):n}`);let t=e.length?`, { ${e.join(`, `)} }`:``;return`getByRole(${this.quote(n)}${t})`}case`has-text`:return`filter({ hasText: ${this.toHasText(n)} })`;case`has-not-text`:return`filter({ hasNotText: ${this.toHasText(n)} })`;case`has`:return`filter({ has: ${n} })`;case`hasNot`:return`filter({ hasNot: ${n} })`;case`and`:return`and(${n})`;case`or`:return`or(${n})`;case`chain`:return`locator(${n})`;case`test-id`:{let e=this.toTestIdValue(n);return e.startsWith(`'__vitest_`)&&e.endsWith(`__'`)?`page`:`getByTestId(${e})`}case`text`:return this.toCallWithExact(`getByText`,n,!!r.exact);case`alt`:return this.toCallWithExact(`getByAltText`,n,!!r.exact);case`placeholder`:return this.toCallWithExact(`getByPlaceholder`,n,!!r.exact);case`label`:return this.toCallWithExact(`getByLabel`,n,!!r.exact);case`title`:return this.toCallWithExact(`getByTitle`,n,!!r.exact);default:throw Error(`Unknown selector kind ${t}`)}}chainLocators(e){return e.join(`.`)}regexToSourceString(e){return Ge(String(e))}toCallWithExact(e,t,n){return bn(t)?`${e}(${this.regexToSourceString(t)})`:n?`${e}(${this.quote(t)}, { exact: true })`:`${e}(${this.quote(t)})`}toHasText(e){return bn(e)?this.regexToSourceString(e):this.quote(e)}toTestIdValue(e){return bn(e)?this.regexToSourceString(e):this.quote(e)}quote(e){return He(e,this.preferredQuote??`'`)}}};function bn(e){return e instanceof RegExp}const xn=new Map,Sn=new Map,Cn=1e4;function wn(e,t,n){e._evaluator.begin(),an();try{return Mn(En(e,t,n)||An(e,t,n))}finally{xn.clear(),Sn.clear(),on(),e._evaluator.end()}}function Tn(e){return e.filter(e=>e[0].selector[0]!==`/`)}function En(e,t,n){if(t.ownerDocument.documentElement===t)return[{engine:`css`,selector:`html`,score:1}];let r=(r,a)=>{let o=r===t,s=a?On(e,r,r===t):[];r!==t&&(s=Tn(s));let c=Dn(e,r,n).map(e=>[e]),l=Nn(e,t.ownerDocument,r,[...s,...c],o);s=Tn(s);let u=t=>{let n=a&&!t.length,s=[...t,...c].filter(e=>l?J(e)<J(l):!0),u=s[0];if(u)for(let t=F(r);t;t=F(t)){let a=i(t,n);if(!a||l&&J([...a,...u])>=J(l))continue;if(u=Nn(e,t,r,s,o),!u)return;let c=[...a,...u];(!l||J(c)<J(l))&&(l=c)}};return u(s),r===t&&s.length&&u([]),l},i=(e,t)=>{let n=t?xn:Sn,i=n.get(e);return i===void 0&&(i=r(e,t),n.set(e,i)),i};return r(t,!n.noText)}function Dn(e,t,n){let r=[];for(let e of[`data-testid`,`data-test-id`,`data-test`])e!==n.testIdAttributeName&&t.getAttribute(e)&&r.push({engine:`css`,selector:`[${e}=${Ue(t.getAttribute(e))}]`,score:2});if(!n.noCSSId){let e=t.getAttribute(`id`);e&&!Pn(e)&&r.push({engine:`css`,selector:kn(e),score:500})}if(r.push({engine:`css`,selector:j(t.nodeName.toLowerCase()),score:530}),t.nodeName===`IFRAME`){for(let e of[`name`,`title`])t.getAttribute(e)&&r.push({engine:`css`,selector:`${j(t.nodeName.toLowerCase())}[${e}=${Ue(t.getAttribute(e))}]`,score:10});return t.getAttribute(n.testIdAttributeName)&&r.push({engine:`css`,selector:`[${n.testIdAttributeName}=${Ue(t.getAttribute(n.testIdAttributeName))}]`,score:1}),jn([r]),r}if(t.getAttribute(n.testIdAttributeName)&&r.push({engine:`internal:testid`,selector:`[${n.testIdAttributeName}=${P(t.getAttribute(n.testIdAttributeName),!0)}]`,score:1}),t.nodeName===`INPUT`||t.nodeName===`TEXTAREA`){let e=t;if(e.placeholder){r.push({engine:`internal:attr`,selector:`[placeholder=${P(e.placeholder,!0)}]`,score:105});for(let t of Y(e.placeholder))r.push({engine:`internal:attr`,selector:`[placeholder=${P(t.text,!1)}]`,score:100-t.scoreBouns})}}let i=un(e._evaluator._cacheText,t);for(let e of i){let t=e.normalized;r.push({engine:`internal:label`,selector:N(t,!0),score:125});for(let e of Y(t))r.push({engine:`internal:label`,selector:N(e.text,!1),score:120-e.scoreBouns})}let a=R(t);return a&&![`none`,`presentation`].includes(a)&&r.push({engine:`internal:role`,selector:a,score:510}),t.getAttribute(`name`)&&[`BUTTON`,`FORM`,`FIELDSET`,`FRAME`,`IFRAME`,`INPUT`,`KEYGEN`,`OBJECT`,`OUTPUT`,`SELECT`,`TEXTAREA`,`MAP`,`META`,`PARAM`].includes(t.nodeName)&&r.push({engine:`css`,selector:`${j(t.nodeName.toLowerCase())}[name=${Ue(t.getAttribute(`name`))}]`,score:520}),[`INPUT`,`TEXTAREA`].includes(t.nodeName)&&t.getAttribute(`type`)!==`hidden`&&t.getAttribute(`type`)&&r.push({engine:`css`,selector:`${j(t.nodeName.toLowerCase())}[type=${Ue(t.getAttribute(`type`))}]`,score:520}),[`INPUT`,`TEXTAREA`,`SELECT`].includes(t.nodeName)&&t.getAttribute(`type`)!==`hidden`&&r.push({engine:`css`,selector:j(t.nodeName.toLowerCase()),score:521}),jn([r]),r}function On(e,t,n){if(t.nodeName===`SELECT`)return[];let r=[],i=t.getAttribute(`title`);if(i){r.push([{engine:`internal:attr`,selector:`[title=${P(i,!0)}]`,score:205}]);for(let e of Y(i))r.push([{engine:`internal:attr`,selector:`[title=${P(e.text,!1)}]`,score:200-e.scoreBouns}])}let a=t.getAttribute(`alt`);if(a&&[`APPLET`,`AREA`,`IMG`,`INPUT`].includes(t.nodeName)){r.push([{engine:`internal:attr`,selector:`[alt=${P(a,!0)}]`,score:165}]);for(let e of Y(a))r.push([{engine:`internal:attr`,selector:`[alt=${P(e.text,!1)}]`,score:160-e.scoreBouns}])}let o=U(e._evaluator._cacheText,t).normalized;if(o){let e=Y(o);if(n){o.length<=80&&r.push([{engine:`internal:text`,selector:N(o,!0),score:185}]);for(let t of e)r.push([{engine:`internal:text`,selector:N(t.text,!1),score:180-t.scoreBouns}])}let i={engine:`css`,selector:j(t.nodeName.toLowerCase()),score:530};for(let t of e)r.push([i,{engine:`internal:has-text`,selector:N(t.text,!1),score:180-t.scoreBouns}]);if(o.length<=80){let e=RegExp(`^${Ye(o)}$`);r.push([i,{engine:`internal:has-text`,selector:N(e,!1),score:250}])}}let s=R(t);if(s&&![`none`,`presentation`].includes(s)){let e=Et(t,!1);if(e){r.push([{engine:`internal:role`,selector:`${s}[name=${P(e,!0)}]`,score:145}]);for(let t of Y(e))r.push([{engine:`internal:role`,selector:`${s}[name=${P(t.text,!1)}]`,score:140-t.scoreBouns}])}}return jn(r),r}function kn(e){return/^[a-z][\w\-]+$/i.test(e)?`#${e}`:`[id="${j(e)}"]`}function An(e,t,n){let r=t.ownerDocument,i=[];function a(n){let a=i.slice();n&&a.unshift(n);let o=a.join(` > `),s=e.parseSelector(o);return e.querySelector(s,r,!1)===t?o:void 0}function o(n){let i={engine:`css`,selector:n,score:1e7},a=e.parseSelector(n),o=e.querySelectorAll(a,r);return o.length===1?[i]:[i,{engine:`nth`,selector:String(o.indexOf(t)),score:Cn}]}for(let e=t;e&&e!==r;e=F(e)){let t=e.nodeName.toLowerCase(),r=``;if(e.id&&!n.noCSSId){let t=kn(e.id),n=a(t);if(n)return o(n);r=t}let s=e.parentNode,c=[...e.classList];for(let e=0;e<c.length;++e){let t=`.${j(c.slice(0,e+1).join(`.`))}`,n=a(t);if(n)return o(n);!r&&s&&s.querySelectorAll(t).length===1&&(r=t)}if(s){let n=[...s.children],i=n.filter(e=>e.nodeName.toLowerCase()===t).indexOf(e)===0?j(t):`${j(t)}:nth-child(${1+n.indexOf(e)})`,c=a(i);if(c)return o(c);r||=i}else r||=j(t);i.unshift(r)}return o(a())}function jn(e){for(let t of e)for(let e of t)e.score>50&&e.score<300&&(e.score+=Math.min(10,e.selector.length/10|0))}function Mn(e){let t=[],n=``;for(let{engine:r,selector:i}of e)t.length&&(n!==`css`||r!==`css`||i.startsWith(`:nth-match(`))&&t.push(`>>`),n=r,r===`css`?t.push(i):t.push(`${r}=${i}`);return t.join(` `)}function J(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n].score*(e.length-n);return t}function Nn(e,t,n,r,i){let a=r.map(e=>({tokens:e,score:J(e)}));a.sort((e,t)=>e.score-t.score);let o=null;for(let{tokens:r}of a){let a=e.parseSelector(Mn(r)),s=e.querySelectorAll(a,t);if(s[0]===n&&s.length===1)return r;let c=s.indexOf(n);if(!i||o||c===-1||s.length>5)continue;let l={engine:`nth`,selector:String(c),score:Cn};o=[...r,l]}return o}function Pn(e){let t,n=0;for(let r=0;r<e.length;++r){let i=e[r],a;if(!(i===`-`||i===`_`)){if(a=i>=`a`&&i<=`z`?`lower`:i>=`A`&&i<=`Z`?`upper`:i>=`0`&&i<=`9`?`digit`:`other`,a===`lower`&&t===`upper`){t=a;continue}t&&t!==a&&++n,t=a}}return n>=e.length/4}function Fn(e,t){if(e.length<=t)return e;e=e.substring(0,t);let n=e.match(/^(.*)\b(.+)$/);return n?n[1].trimEnd():``}function Y(e){let t=[];{let n=e.match(/^([\d.,]+)[^.,\w]/),r=n?n[1].length:0;if(r){let n=Fn(e.substring(r).trimStart(),80);t.push({text:n,scoreBouns:n.length<=30?2:1})}}{let n=e.match(/[^.,\w]([\d.,]+)$/),r=n?n[1].length:0;if(r){let n=Fn(e.substring(0,e.length-r).trimEnd(),80);t.push({text:n,scoreBouns:n.length<=30?2:1})}}return e.length<=30?t.push({text:e,scoreBouns:0}):(t.push({text:Fn(e,80),scoreBouns:0}),t.push({text:Fn(e,30),scoreBouns:1})),t=t.filter(e=>e.text),t.length||t.push({text:e.substring(0,80),scoreBouns:0}),t}function In(e,t,n){let r=e.left-t.right;if(!(r<0||n!==void 0&&r>n))return r+Math.max(t.bottom-e.bottom,0)+Math.max(e.top-t.top,0)}function Ln(e,t,n){let r=t.left-e.right;if(!(r<0||n!==void 0&&r>n))return r+Math.max(t.bottom-e.bottom,0)+Math.max(e.top-t.top,0)}function Rn(e,t,n){let r=t.top-e.bottom;if(!(r<0||n!==void 0&&r>n))return r+Math.max(e.left-t.left,0)+Math.max(t.right-e.right,0)}function zn(e,t,n){let r=e.top-t.bottom;if(!(r<0||n!==void 0&&r>n))return r+Math.max(e.left-t.left,0)+Math.max(t.right-e.right,0)}function Bn(e,t,n){let r=n===void 0?50:n,i=0;return e.left-t.right>=0&&(i+=e.left-t.right),t.left-e.right>=0&&(i+=t.left-e.right),t.top-e.bottom>=0&&(i+=t.top-e.bottom),e.top-t.bottom>=0&&(i+=e.top-t.bottom),i>r?void 0:i}const Vn=[`left-of`,`right-of`,`above`,`below`,`near`];function Hn(e,t,n,r){let i=t.getBoundingClientRect(),a={"left-of":Ln,"right-of":In,above:Rn,below:zn,near:Bn}[e],o;for(let e of n){if(e===t)continue;let n=a(i,e.getBoundingClientRect(),r);n!==void 0&&(o===void 0||n<o)&&(o=n)}return o}var Un=class{constructor(e){c(this,`_engines`,new Map),c(this,`_cacheQueryCSS`,new Map),c(this,`_cacheMatches`,new Map),c(this,`_cacheQuery`,new Map),c(this,`_cacheMatchesSimple`,new Map),c(this,`_cacheMatchesParents`,new Map),c(this,`_cacheCallMatches`,new Map),c(this,`_cacheCallQuery`,new Map),c(this,`_cacheQuerySimple`,new Map),c(this,`_cacheText`,new Map),c(this,`_scoreMap`,void 0),c(this,`_retainCacheCounter`,0);for(let[t,n]of e)this._engines.set(t,n);this._engines.set(`not`,qn),this._engines.set(`is`,Wn),this._engines.set(`where`,Wn),this._engines.set(`has`,Gn),this._engines.set(`scope`,Kn),this._engines.set(`light`,Jn),this._engines.set(`visible`,Yn),this._engines.set(`text`,Xn),this._engines.set(`text-is`,Zn),this._engines.set(`text-matches`,Qn),this._engines.set(`has-text`,$n),this._engines.set(`right-of`,er(`right-of`)),this._engines.set(`left-of`,er(`left-of`)),this._engines.set(`above`,er(`above`)),this._engines.set(`below`,er(`below`)),this._engines.set(`near`,er(`near`)),this._engines.set(`nth-match`,tr);let t=[...this._engines.keys()];t.sort();let n=[...O];if(n.sort(),t.join(`|`)!==n.join(`|`))throw Error(`Please keep customCSSNames in sync with evaluator engines: ${t.join(`|`)} vs ${n.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,n,r){e.has(t)||e.set(t,[]);let i=e.get(t),a=i.find(e=>n.every((t,n)=>e.rest[n]===t));if(a)return a.result;let o=r();return i.push({rest:n,result:o}),o}_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,n){let r=this._checkSelector(t);this.begin();try{return this._cached(this._cacheMatches,e,[r,n.scope,n.pierceShadow,n.originalScope],()=>Array.isArray(r)?this._matchesEngine(Wn,e,r,n):(this._hasScopeClause(r)&&(n=this._expandContextForScopeMatching(n)),this._matchesSimple(e,r.simples[r.simples.length-1].selector,n)?this._matchesParents(e,r,r.simples.length-2,n):!1))}finally{this.end()}}query(e,t){let n=this._checkSelector(t);this.begin();try{return this._cached(this._cacheQuery,n,[e.scope,e.pierceShadow,e.originalScope],()=>{if(Array.isArray(n))return this._queryEngine(Wn,e,n);this._hasScopeClause(n)&&(e=this._expandContextForScopeMatching(e));let t=this._scoreMap;this._scoreMap=new Map;let r=this._querySimple(e,n.simples[n.simples.length-1].selector);return r=r.filter(t=>this._matchesParents(t,n,n.simples.length-2,e)),this._scoreMap.size&&r.sort((e,t)=>{let n=this._scoreMap.get(e),r=this._scoreMap.get(t);return n===r?0:n===void 0?1:r===void 0?-1:n-r}),this._scoreMap=t,r})}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=F(e.scope);return t?{...e,scope:t,originalScope:e.originalScope||e.scope}:e}_matchesSimple(e,t,n){return this._cached(this._cacheMatchesSimple,e,[t,n.scope,n.pierceShadow,n.originalScope],()=>{if(e===n.scope||t.css&&!this._matchesCSS(e,t.css))return!1;for(let r of t.functions)if(!this._matchesEngine(this._getEngine(r.name),e,r.args,n))return!1;return!0})}_querySimple(e,t){return t.functions.length?this._cached(this._cacheQuerySimple,t,[e.scope,e.pierceShadow,e.originalScope],()=>{let n=t.css,r=t.functions;n===`*`&&r.length&&(n=void 0);let i,a=-1;n===void 0?(a=r.findIndex(e=>this._getEngine(e.name).query!==void 0),a===-1&&(a=0),i=this._queryEngine(this._getEngine(r[a].name),e,r[a].args)):i=this._queryCSS(e,n);for(let t=0;t<r.length;t++){if(t===a)continue;let n=this._getEngine(r[t].name);n.matches!==void 0&&(i=i.filter(i=>this._matchesEngine(n,i,r[t].args,e)))}for(let t=0;t<r.length;t++){if(t===a)continue;let n=this._getEngine(r[t].name);n.matches===void 0&&(i=i.filter(i=>this._matchesEngine(n,i,r[t].args,e)))}return i}):this._queryCSS(e,t.css||`*`)}_matchesParents(e,t,n,r){return n<0?!0:this._cached(this._cacheMatchesParents,e,[t,n,r.scope,r.pierceShadow,r.originalScope],()=>{let{selector:i,combinator:a}=t.simples[n];if(a===`>`){let a=nr(e,r);return!a||!this._matchesSimple(a,i,r)?!1:this._matchesParents(a,t,n-1,r)}if(a===`+`){let a=rr(e,r);return!a||!this._matchesSimple(a,i,r)?!1:this._matchesParents(a,t,n-1,r)}if(a===``){let a=nr(e,r);for(;a;){if(this._matchesSimple(a,i,r)){if(this._matchesParents(a,t,n-1,r))return!0;if(t.simples[n-1].combinator===``)break}a=nr(a,r)}return!1}if(a===`~`){let a=rr(e,r);for(;a;){if(this._matchesSimple(a,i,r)){if(this._matchesParents(a,t,n-1,r))return!0;if(t.simples[n-1].combinator===`~`)break}a=rr(a,r)}return!1}if(a===`>=`){let a=e;for(;a;){if(this._matchesSimple(a,i,r)){if(this._matchesParents(a,t,n-1,r))return!0;if(t.simples[n-1].combinator===``)break}a=nr(a,r)}return!1}throw Error(`Unsupported combinator "${a}"`)})}_matchesEngine(e,t,n,r){if(e.matches)return this._callMatches(e,t,n,r);if(e.query)return this._callQuery(e,n,r).includes(t);throw Error(`Selector engine should implement "matches" or "query"`)}_queryEngine(e,t,n){if(e.query)return this._callQuery(e,n,t);if(e.matches)return this._queryCSS(t,`*`).filter(r=>this._callMatches(e,r,n,t));throw Error(`Selector engine should implement "matches" or "query"`)}_callMatches(e,t,n,r){return this._cached(this._cacheCallMatches,t,[e,r.scope,r.pierceShadow,r.originalScope,...n],()=>e.matches(t,n,r,this))}_callQuery(e,t,n){return this._cached(this._cacheCallQuery,e,[n.scope,n.pierceShadow,n.originalScope,...t],()=>e.query(n,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 n=[];function r(i){if(n=n.concat([...i.querySelectorAll(t)]),e.pierceShadow){i.shadowRoot&&r(i.shadowRoot);for(let e of i.querySelectorAll(`*`))e.shadowRoot&&r(e.shadowRoot)}}return r(e.scope),n})}_getEngine(e){let t=this._engines.get(e);if(!t)throw Error(`Unknown selector engine "${e}"`);return t}};const Wn={matches(e,t,n,r){if(t.length===0)throw Error(`"is" engine expects non-empty selector list`);return t.some(t=>r.matches(e,t,n))},query(e,t,n){if(t.length===0)throw Error(`"is" engine expects non-empty selector list`);let r=[];for(let i of t)r=r.concat(n.query(e,i));return t.length===1?r:ir(r)}},Gn={matches(e,t,n,r){if(t.length===0)throw Error(`"has" engine expects non-empty selector list`);return r.query({...n,scope:e},t).length>0}},Kn={matches(e,t,n,r){if(t.length!==0)throw Error(`"scope" engine expects no arguments`);let i=n.originalScope||n.scope;return i.nodeType===9?e===i.documentElement:e===i},query(e,t,n){if(t.length!==0)throw Error(`"scope" engine expects no arguments`);let r=e.originalScope||e.scope;if(r.nodeType===9){let e=r.documentElement;return e?[e]:[]}return r.nodeType===1?[r]:[]}},qn={matches(e,t,n,r){if(t.length===0)throw Error(`"not" engine expects non-empty selector list`);return!r.matches(e,t,n)}},Jn={query(e,t,n){return n.query({...e,pierceShadow:!1},t)},matches(e,t,n,r){return r.matches(e,t,{...n,pierceShadow:!1})}},Yn={matches(e,t,n,r){if(t.length)throw Error(`"visible" engine expects no arguments`);return et(e)}},Xn={matches(e,t,n,r){if(t.length!==1||typeof t[0]!=`string`)throw Error(`"text" engine expects a single string`);let i=M(t[0]).toLowerCase();return ln(r._cacheText,e,e=>e.normalized.toLowerCase().includes(i))===`self`}},Zn={matches(e,t,n,r){if(t.length!==1||typeof t[0]!=`string`)throw Error(`"text-is" engine expects a single string`);let i=M(t[0]);return ln(r._cacheText,e,e=>!i&&!e.immediate.length?!0:e.immediate.some(e=>M(e)===i))!==`none`}},Qn={matches(e,t,n,r){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 i=new RegExp(t[0],t.length===2?t[1]:void 0);return ln(r._cacheText,e,e=>i.test(e.full))===`self`}},$n={matches(e,t,n,r){if(t.length!==1||typeof t[0]!=`string`)throw Error(`"has-text" engine expects a single string`);if(cn(e))return!1;let i=M(t[0]).toLowerCase();return(e=>e.normalized.toLowerCase().includes(i))(U(r._cacheText,e))}};function er(e){return{matches(t,n,r,i){let a=n.length&&typeof n[n.length-1]==`number`?n[n.length-1]:void 0,o=a===void 0?n:n.slice(0,n.length-1);if(n.length<1+(a===void 0?0:1))throw Error(`"${e}" engine expects a selector list and optional maximum distance in pixels`);let s=Hn(e,t,i.query(r,o),a);return s===void 0?!1:(i._markScore(t,s),!0)}}}const tr={query(e,t,n){let r=t[t.length-1];if(t.length<2)throw Error(`"nth-match" engine expects non-empty selector list and an index argument`);if(typeof r!=`number`||r<1)throw Error(`"nth-match" engine expects a one-based index as the last argument`);let i=Wn.query(e,t.slice(0,t.length-1),n);return r--,r<i.length?[i[r]]:[]}};function nr(e,t){if(e!==t.scope)return t.pierceShadow?F(e):e.parentElement||void 0}function rr(e,t){if(e!==t.scope)return e.previousElementSibling||void 0}function ir(e){let t=new Map,n=[],r=[];function i(e){let r=t.get(e);if(r)return r;let a=F(e);return a?i(a).children.push(e):n.push(e),r={children:[],taken:!1},t.set(e,r),r}for(let t of e)i(t).taken=!0;function a(e){let n=t.get(e);if(n.taken&&r.push(e),n.children.length>1){let t=new Set(n.children);n.children=[];let r=e.firstElementChild;for(;r&&n.children.length<t.size;)t.has(r)&&n.children.push(r),r=r.nextElementSibling;for(r=e.shadowRoot?e.shadowRoot.firstElementChild:null;r&&n.children.length<t.size;)t.has(r)&&n.children.push(r),r=r.nextElementSibling}n.children.forEach(a)}return n.forEach(a),r}function ar(e,t,n){return`internal:attr=[${e}=${P(t,n?.exact??X.options.exact)}]`}function or(e,t){return`internal:testid=[${e}=${P(t,!0)}]`}function sr(e,t){return`internal:label=${N(e,t?.exact??X.options.exact)}`}function cr(e,t){return ar(`alt`,e,t)}function lr(e,t){return ar(`title`,e,t)}function ur(e,t){return ar(`placeholder`,e,t)}function dr(e,t){return`internal:text=${N(e,t?.exact??X.options.exact)}`}function fr(e,t={}){let n=[];return t.checked!==void 0&&n.push([`checked`,String(t.checked)]),t.disabled!==void 0&&n.push([`disabled`,String(t.disabled)]),t.selected!==void 0&&n.push([`selected`,String(t.selected)]),t.expanded!==void 0&&n.push([`expanded`,String(t.expanded)]),t.includeHidden!==void 0&&n.push([`include-hidden`,String(t.includeHidden)]),t.level!==void 0&&n.push([`level`,String(t.level)]),t.name!==void 0&&n.push([`name`,P(t.name,t.exact??X.options.exact)]),t.pressed!==void 0&&n.push([`pressed`,String(t.pressed)]),`internal:role=${e}${n.map(([e,t])=>`[${e}=${t}]`).join(``)}`}var X=class e{static create(t){return Object.assign(e.options,t),e.singleton||=new e}constructor(){c(this,`_engines`,void 0),c(this,`_evaluator`,void 0),this._evaluator=new Un(new Map),this._engines=new Map,this._engines.set(`xpath`,vr),this._engines.set(`xpath:light`,vr),this._engines.set(`role`,mn(!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`,mn(!0))}queryLocatorSelector(e,t=document.documentElement,n=!0){return this.querySelector(this.parseSelector(e),t,n)}queryLocatorSelectorAll(e,t=document.documentElement){return this.querySelectorAll(this.parseSelector(e),t)}querySelector(e,t,n=!0){let r=this.querySelectorAll(e,t);if(n&&r.length>1)throw this.strictModeViolationError(e,r);return r[0]||null}queryAllByRole(e,t,n=document.documentElement){let r=this.parseSelector(fr(e,t));return this.querySelectorAll(r,n)}queryAllByLabelText(e,t,n=document.documentElement){let r=this.parseSelector(sr(e,t));return this.querySelectorAll(r,n)}queryAllByTestId(t,n=document.documentElement){let r=this.parseSelector(or(e.options.testIdAttribute,t));return this.querySelectorAll(r,n)}queryAllByText(e,t,n=document.documentElement){let r=this.parseSelector(dr(e,t));return this.querySelectorAll(r,n)}queryAllByTitle(e,t,n=document.documentElement){let r=this.parseSelector(lr(e,t));return this.querySelectorAll(r,n)}queryAllByPlaceholder(e,t,n=document.documentElement){let r=this.parseSelector(ur(e,t));return this.querySelectorAll(r,n)}queryAllByAltText(e,t,n=document.documentElement){let r=this.parseSelector(cr(e,t));return this.querySelectorAll(r,n)}queryByRole(e,t,n=document.documentElement){let r=this.parseSelector(fr(e,t));return this.querySelector(r,n,!1)}queryByLabelText(e,t,n=document.documentElement){let r=this.parseSelector(sr(e,t));return this.querySelector(r,n,!1)}queryByTestId(t,n=document.documentElement){let r=this.parseSelector(or(e.options.testIdAttribute,t));return this.querySelector(r,n,!1)}queryByText(e,t,n=document.documentElement){let r=this.parseSelector(dr(e,t));return this.querySelector(r,n,!1)}queryByTitle(e,t,n=document.documentElement){let r=this.parseSelector(lr(e,t));return this.querySelector(r,n,!1)}queryByPlaceholder(e,t,n=document.documentElement){let r=this.parseSelector(ur(e,t));return this.querySelector(r,n,!1)}queryByAltText(e,t,n=document.documentElement){let r=this.parseSelector(cr(e,t));return this.querySelector(r,n,!1)}strictModeViolationError(e,t){let n=t.slice(0,10).map(e=>({preview:this.previewNode(e),selector:this.generateSelectorSimple(e)})),r=n.map((e,t)=>`\n ${t+1}) ${e.preview} aka ${hn(`javascript`,e.selector)}`);return n.length<t.length&&r.push(`
|
|
4
|
+
...`),this.createStacklessError(`strict mode violation: ${hn(`javascript`,A(e))} resolved to ${t.length} elements:${r.join(``)}\n`)}generateSelectorSimple(t,n){return wn(this,t,{...n,testIdAttributeName:e.options.testIdAttribute})}parseSelector(e){let t=k(e);return ze(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 pr(`#text=${e.nodeValue||``}`);if(e.nodeType!==Node.ELEMENT_NODE)return pr(`<${e.nodeName.toLowerCase()} />`);let t=e,n=[];for(let e=0;e<t.attributes.length;e++){let{name:r,value:i}=t.attributes[e];r!==`style`&&(!i&&mr.has(r)?n.push(` ${r}`):n.push(` ${r}="${i}"`))}n.sort((e,t)=>e.length-t.length);let r=Je(n.join(``),500);if(hr.has(t.nodeName))return pr(`<${t.nodeName.toLowerCase()}${r}/>`);let i=t.childNodes,a=!1;if(i.length<=5){a=!0;for(let e=0;e<i.length;e++)a&&=i[e].nodeType===Node.TEXT_NODE}let o=a?t.textContent||``:i.length?`…`:``;return pr(`<${t.nodeName.toLowerCase()}${r}>${Je(o,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 n={parts:e.parts.slice(0,e.capture+1)};if(e.capture<e.parts.length-1){let t={parts:e.parts.slice(e.capture+1)},r={name:`internal:has`,body:{parsed:t},source:A(t)};n.parts.push(r)}return this.querySelectorAll(n,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 n=new Set([t]);for(let r of e.parts)if(r.name===`nth`)n=this._queryNth(n,r);else if(r.name===`internal:and`){let e=this.querySelectorAll(r.body.parsed,t);n=new Set(e.filter(e=>n.has(e)))}else if(r.name===`internal:or`){let e=this.querySelectorAll(r.body.parsed,t);n=new Set(ir(new Set([...n,...e])))}else if(Vn.includes(r.name))n=this._queryLayoutSelector(n,r,t);else{let e=new Set;for(let t of n){let n=this._queryEngineAll(r,t);for(let t of n)e.add(t)}n=e}return[...n]}finally{this._evaluator.end()}}_queryEngineAll(e,t){let n=this._engines.get(e.name).queryAll(t,e.body);for(let e of n)if(!(`nodeName`in e))throw this.createStacklessError(`Expected a Node but got ${Object.prototype.toString.call(e)}`);return n}_queryNth(e,t){let n=[...e],r=+t.body;return r===-1&&(r=n.length-1),new Set(n.slice(r,r+1))}_queryLayoutSelector(e,t,n){let r=t.name,i=t.body,a=[],o=this.querySelectorAll(i.parsed,n);for(let t of e){let e=Hn(r,t,o,i.distance);e!==void 0&&a.push({element:t,score:e})}return a.sort((e,t)=>e.score-t.score),new Set(a.map(e=>e.element))}createStacklessError(t){if(e.options.browser===`firefox`){let e=Error(`Error: ${t}`);return e.stack=``,e}let n=Error(t);return delete n.stack,n}_createTextEngine(e,t){return{queryAll:(n,r)=>{let{matcher:i,kind:a}=_r(r,t),o=[],s=null,c=e=>{if(a===`lax`&&s&&s.contains(e))return!1;let n=ln(this._evaluator._cacheText,e,i);n===`none`&&(s=e),(n===`self`||n===`selfAndChildren`&&a===`strict`&&!t)&&o.push(e)};n.nodeType===Node.ELEMENT_NODE&&c(n);let l=this._evaluator._queryCSS({scope:n,pierceShadow:e},`*`);for(let e of l)c(e);return o}}}_createAttributeEngine(e,t){let n=t=>[{simples:[{selector:{css:`[${e}=${JSON.stringify(t)}]`,functions:[]},combinator:``}]}];return{queryAll:(e,r)=>this._evaluator.query({scope:e,pierceShadow:t},n(r))}}_createCSSEngine(){return{queryAll:(e,t)=>this._evaluator.query({scope:e,pierceShadow:!0},t)}}_createNamedAttributeEngine(){return{queryAll:(e,t)=>{let n=Ve(t);if(n.name||n.attributes.length!==1)throw Error(`Malformed attribute selector: ${t}`);let{name:r,value:i,caseSensitive:a}=n.attributes[0],o=a?null:i.toLowerCase(),s;return s=i instanceof RegExp?e=>!!e.match(i):a?e=>e===i:e=>e.toLowerCase().includes(o),this._evaluator._queryCSS({scope:e,pierceShadow:!0},`[${r}]`).filter(e=>s(e.getAttribute(r)))}}}_createVisibleEngine(){return{queryAll:(e,t)=>e.nodeType===1&&et(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:n}=_r(t,!0);return this._evaluator._queryCSS({scope:e,pierceShadow:!0},`*`).filter(e=>un(this._evaluator._cacheText,e).some(e=>n(e)))}}}_createInternalHasTextEngine(){return{queryAll:(e,t)=>{if(e.nodeType!==1)return[];let n=e,r=U(this._evaluator._cacheText,n),{matcher:i}=_r(t,!0);return i(r)?[n]:[]}}}_createInternalHasNotTextEngine(){return{queryAll:(e,t)=>{if(e.nodeType!==1)return[];let n=e,r=U(this._evaluator._cacheText,n),{matcher:i}=_r(t,!0);return i(r)?[]:[n]}}}};c(X,`options`,{testIdAttribute:`data-testid`,browser:`chromium`,exact:!1}),c(X,`singleton`,null);function pr(e){return e.replace(/\n/g,`↵`).replace(/\t/g,`⇆`)}const mr=new Set([`checked`,`selected`,`disabled`,`readonly`,`multiple`]),hr=new Set([`AREA`,`BASE`,`BR`,`COL`,`COMMAND`,`EMBED`,`HR`,`IMG`,`INPUT`,`KEYGEN`,`LINK`,`MENUITEM`,`META`,`PARAM`,`SOURCE`,`TRACK`,`WBR`]);function gr(e){if(e=e.substring(1,e.length-1),!e.includes(`\\`))return e;let t=[],n=0;for(;n<e.length;)e[n]===`\\`&&n+1<e.length&&n++,t.push(e[n++]);return t.join(``)}function _r(e,t){if(e[0]===`/`&&e.lastIndexOf(`/`)>0){let t=e.lastIndexOf(`/`),n=new RegExp(e.substring(1,t),e.substring(t+1));return{matcher:e=>n.test(e.full),kind:`regex`}}let n=t?JSON.parse.bind(JSON):gr,r=!1;return e.length>1&&e[0]===`"`&&e[e.length-1]===`"`?(e=n(e),r=!0):t&&e.length>1&&e[0]===`"`&&e[e.length-2]===`"`&&e[e.length-1]===`i`?(e=n(e.substring(0,e.length-1)),r=!1):t&&e.length>1&&e[0]===`"`&&e[e.length-2]===`"`&&e[e.length-1]===`s`?(e=n(e.substring(0,e.length-1)),r=!0):e.length>1&&e[0]===`'`&&e[e.length-1]===`'`&&(e=n(e),r=!0),e=M(e),r?t?{kind:`strict`,matcher:t=>t.normalized===e}:{matcher:t=>!e&&!t.immediate.length?!0:t.immediate.some(t=>M(t)===e),kind:`strict`}:(e=e.toLowerCase(),{kind:`lax`,matcher:t=>t.normalized.toLowerCase().includes(e)})}const vr={queryAll(e,t){t.startsWith(`/`)&&e.nodeType!==Node.DOCUMENT_NODE&&(t=`.${t}`);let n=[],r=e.ownerDocument||e;if(!r)return n;let i=r.evaluate(t,e,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE);for(let e=i.iterateNext();e;e=i.iterateNext())e.nodeType===Node.ELEMENT_NODE&&n.push(e);return n}},yr=globalThis.performance?globalThis.performance.now.bind(globalThis.performance):Date.now;function Z(e){let t=br().current;if(!t||t.type!==`test`)return e();let n=!1,r=Error(`STACK_TRACE_ERROR`);t.onFinished??=[],t.onFinished.push(()=>{if(!n){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=r.stack?.replace(r.message,e.message),e}});let i;return{then(t,a){return n=!0,(i||=e(r)).then(t,a)},catch(t){return n=!0,(i||=e(r)).catch(t)},finally(t){return n=!0,(i||=e(r)).finally(t)},[Symbol.toStringTag]:`Promise`}}function Q(){return window.__vitest_browser_runner__}function br(){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 xr=[`:hover`,`:active`,`:focus`,`:focus-visible`,`:focus-within`];function Sr(){return Q().browserTraceState??={}}function Cr(e,t,n){return`${e}:${t}:${n}`}function wr(e,t){t.selector?.startsWith(`html >`)&&(t.selector=t.selector.slice(6));let n=Q().browserTraceAttempts.get(e.id),r=(t.startTime??yr())-n.startTime,i=Tr(t.selector),a={...t,startTime:r,snapshot:i},{retry:o,repeats:s}=n,{recordCanvas:c}=Q().config.browser.traceView,l=Sr(),u=Cr(e.id,s,o);l[u]??={retry:o,repeats:s,recordCanvas:c,entries:[]},l[u].entries.push(a)}function Tr(e){let{snapshot:t,createMirror:n}=Q().browserTraceDomSnapshot,r=Q().config.browser.traceView,i=Q().selectorEngine,a=n(),o={serialized:t(document,{mirror:a,inlineImages:r.inlineImages,recordCanvas:r.recordCanvas}),viewport:{width:window.innerWidth,height:window.innerHeight},scroll:{x:window.scrollX,y:window.scrollY},pseudoClassIds:{}};for(let e of xr){let t=document.querySelectorAll(e),n=Array.from(t,e=>a.getId(e)).filter(e=>e!==-1);o.pseudoClassIds[e]=n}if(e)try{let t=i.querySelector(i.parseSelector(e),document.documentElement,!1);if(!t)o.selectorResolution=`missing`;else{let e=a.getId(t);e===-1?o.selectorResolution=`missing`:(o.selectorId=e,o.selectorResolution=`matched`)}}catch(e){o.selectorResolution=`error`,o.selectorError=e instanceof Error?e.message:String(e)}return o}function Er(e){if(!e||!(e instanceof Element))throw Error(`Expected DOM element to be an instance of Element, received ${typeof e}`);return Or(e)}function Dr(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 Or(e){let t=[],n,r=!1;for(;n=kr(e);){n.shadowRoot&&(r=!0);let i=e.tagName;if(e.id)t.push(`#${Dr(e.id)}`);else if(!e.nextElementSibling&&!e.previousElementSibling)t.push(i.toLowerCase());else{let r=0,a=0,o=0;for(let t of n.children)r++,t.tagName===i&&a++,t===e&&(o=r);a>1?t.push(`${i.toLowerCase()}:nth-child(${o})`):t.push(i.toLowerCase())}e=n}return`${Q().provider===`webdriverio`&&r?`>>>`:``}${t.reverse().join(` > `)}`}function kr(e){let t=e.parentNode;return t instanceof ShadowRoot?t.host:t}function Ar(e){if(e&&e.timeout!=null||br().config.browser.providerOptions.actionTimeout!=null)return e;let t=Q().runner,n=t._currentTaskStartTime;if(!n)return e;let r=t._currentTaskTimeout;if(r===0||r==null||r===1/0)return e;e||={};let i=yr(),a=n+r,o=Math.floor(a-i);return o<=0||(e.timeout=o-100),e}function jr(){let e=window.frameElement;if(!e)throw Error(`Cannot find iframe element. This is a bug in Vitest. Please, open a new issue with reproduction.`);return new DOMMatrix(getComputedStyle(e).transform).a}function Mr(e){return e.unicode||e.unicodeSets?String(e):String(e).replace(/(^|[^\\])(\\\\)*(["'`])/g,`$1$2\\$3`).replace(/>>/g,`\\>\\>`)}function Nr(e,t){return typeof e==`string`?`${JSON.stringify(e)}i`:Mr(e)}const Pr=Q().provider,Fr=Symbol.for(`$$vitest:locator-resolved`);async function Ir(e,t){if(!e)throw Error(`Expected element or locator to be defined.`);if(e instanceof Element)return Er(e);if(Rr(e))return Pr===`playwright`||Fr in e?e.selector:Er(await e.findElement(t));throw Error(`Expected element or locator to be an instance of Element or Locator.`)}const Lr=Symbol.for(`$$vitest:locator`);function Rr(e){return!!e&&typeof e==`object`&&Lr in e}function zr(e){let t;if(e.delta)t=e.delta;else switch(e.direction){case`up`:t={y:-100};break;case`down`:t={y:100};break;case`left`:t={x:-100};break;case`right`:t={x:100};break}return{delta:t,times:e.times}}r._asLocator=hn;const Br=Date.now,Vr=[0,20,50,100,100,500];function Hr(e){let{setTimeout:t}=i();return new Promise(n=>t(n,e))}const $=X.create({exact:e.config.browser.locators.exact,browser:(e=>{switch(e){case`edge`:case`chrome`:return`chromium`;case`safari`:return`webkit`;default:return e}})(e.config.browser.name),testIdAttribute:e.config.browser.locators.testIdAttribute});Q().selectorEngine=$;const Ur=Symbol.for(`$$vitest:locator`);class Wr{_parsedSelector;_container;_pwSelector;_errorSource;constructor(){Object.defineProperty(this,Ur,{enumerable:!1,writable:!1,configurable:!1,value:Ur})}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)}wheel(e){return Z(async t=>{await Q().commands.triggerCommand(`__vitest_wheel`,[this.selector,zr(e)],t);let n=Q().config.browser.name;if(n===`chromium`||n===`chrome`)return new Promise(e=>{requestAnimationFrame(()=>{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)}upload(e,t){return Z(async n=>{let r=(Array.isArray(e)?e:[e]).map(async e=>{if(typeof e==`string`)return e;let t=await new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(Error(`Failed to read file: ${e.name}`)),r.readAsDataURL(e)});return{name:e.name,mimeType:e.type,base64:t.slice(t.indexOf(`,`)+1)}});return Q().commands.triggerCommand(`__vitest_upload`,[this.selector,await Promise.all(r),t],n)})}dropTo(e,t={}){return this.triggerCommand(`__vitest_dragAndDrop`,this.selector,e.selector,t)}selectOptions(e,t){let n=(Array.isArray(e)?e:[e]).map(e=>typeof e==`string`?e:{element:Rr(e)?e.selector:$.generateSelectorSimple(e)});return this.triggerCommand(`__vitest_selectOptions`,this.selector,n,t)}screenshot(e){return t.screenshot({...e,element:this})}mark(e,t){let n=br().current,r=!!n&&Q().activeTraceTaskIds.has(n.id),i=!!n&&Q().browserTraceAttempts.has(n.id);return!n||!r&&!i?Promise.resolve():Z(a=>(i&&wr(n,{name:e,kind:`mark`,selector:this.selector,stack:t?.stack??a?.stack}),r?Q().commands.triggerCommand(`__vitest_markTrace`,[{name:e,selector:this.selector,stack:t?.stack??a?.stack}],a):Promise.resolve()))}getByRole(e,t){return this.locator(fr(e,t))}getByAltText(e,t){return this.locator(cr(e,t))}getByLabelText(e,t){return this.locator(sr(e,t))}getByPlaceholder(e,t){return this.locator(ur(e,t))}getByTestId(t){return this.locator(or(e.config.browser.locators.testIdAttribute,t))}getByText(e,t){return this.locator(dr(e,t))}getByTitle(e,t){return this.locator(lr(e,t))}filter(e){let t=[];if(e?.hasText&&t.push(`internal:has-text=${Nr(e.hasText)}`),e?.hasNotText&&t.push(`internal:has-not-text=${Nr(e.hasNotText)}`),e?.has){let n=e.has;t.push(`internal:has=${JSON.stringify(n._pwSelector||n.selector)}`)}if(e?.hasNot){let n=e.hasNot;t.push(`internal:has-not=${JSON.stringify(n._pwSelector||n.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||=$.parseSelector(this._pwSelector||this.selector);return $.querySelector(e,document.documentElement,!0)}element(){let e=this.query();if(!e)throw n.getElementError(this._pwSelector||this.selector,this._container||document.body);return e}elements(){let e=this._parsedSelector||=$.parseSelector(this._pwSelector||this.selector);return $.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}async findElement(e={}){let t=Ar(e),r=t?.timeout,i=t?.strict??!0,a=Br(),o=0;for(;;){let e=this.elements();if(e.length===1)return e[0];if(e.length>1){if(i)throw Kr(this._pwSelector||this.selector,e);return e[0]}let t=Br()-a;if(r!=null&&t>=r)throw n.getElementError(this._pwSelector||this.selector,this._container||document.body);let s=Vr[Math.min(o++,Vr.length-1)];await Hr(r==null?s:Math.min(s,r-t))}}triggerCommand(e,...t){return this._errorSource?Gr({name:e,arguments:t,errorSource:this._errorSource}):Z(n=>Gr({name:e,arguments:t,errorSource:n}))}}function Gr(e){return Q().commands.triggerCommand(e.name,e.arguments,e.errorSource)}function Kr(e,t){let n=t.slice(0,10).map(e=>({preview:$.previewNode(e),selector:$.generateSelectorSimple(e)})),r=n.map((e,t)=>`\n ${t+1}) ${e.preview} aka ${hn(`javascript`,e.selector)}`);return n.length<t.length&&r.push(`
|
|
5
|
+
...`),Error(`strict mode violation: ${hn(`javascript`,e)} resolved to ${t.length} elements:${r.join(``)}\n`)}export{Ar as A,br as B,yr as C,wr as D,Er as E,Z as F,cr as G,sr as H,ur as I,fr as J,or as K,Wr as L,dr as M,lr as N,jr as O,$ as P,Gr as Q,c as _,Et as a,an as b,It as c,Wt as d,on as e,Gt as f,R as g,Bt as h,z as i,Vt as j,Ft as k,Ht as l,Ut as m,M as n,Rt as o,zt as p,Nt as q,Pt as r,I as s,St as t,Q as u,et as v,Dt as w,jt as x,j as y,Ir as z};
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ import { PNG } from 'pngjs';
|
|
|
18
18
|
import { diff } from '@blazediff/core';
|
|
19
19
|
import { WebSocketServer } from 'ws';
|
|
20
20
|
|
|
21
|
-
var version = "
|
|
21
|
+
var version = "5.0.0-beta.1";
|
|
22
22
|
|
|
23
23
|
const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
|
|
24
24
|
function normalizeWindowsPath(input = "") {
|
|
@@ -2489,6 +2489,26 @@ const _groupTraceEnd = async (context) => {
|
|
|
2489
2489
|
await context.triggerCommand("__vitest_groupTraceEnd");
|
|
2490
2490
|
}
|
|
2491
2491
|
};
|
|
2492
|
+
const _recordBrowserTrace = async ({ project }, { testId, data }) => {
|
|
2493
|
+
// resolve stack strings → source locations server-side (requires source maps)
|
|
2494
|
+
const entries = data.entries.map((entry) => {
|
|
2495
|
+
if (!entry.stack || entry.location) {
|
|
2496
|
+
return entry;
|
|
2497
|
+
}
|
|
2498
|
+
const stacks = project.browser.parseStacktrace(entry.stack);
|
|
2499
|
+
if (stacks[0]) {
|
|
2500
|
+
entry.location = stacks[0];
|
|
2501
|
+
}
|
|
2502
|
+
return entry;
|
|
2503
|
+
});
|
|
2504
|
+
await project.vitest._testRun.recordArtifact(testId, {
|
|
2505
|
+
type: "internal:browserTrace",
|
|
2506
|
+
data: {
|
|
2507
|
+
...data,
|
|
2508
|
+
entries
|
|
2509
|
+
}
|
|
2510
|
+
});
|
|
2511
|
+
};
|
|
2492
2512
|
|
|
2493
2513
|
var builtinCommands = {
|
|
2494
2514
|
readFile,
|
|
@@ -2497,6 +2517,7 @@ var builtinCommands = {
|
|
|
2497
2517
|
__vitest_markTrace: _markTrace,
|
|
2498
2518
|
__vitest_groupTraceStart: _groupTraceStart,
|
|
2499
2519
|
__vitest_groupTraceEnd: _groupTraceEnd,
|
|
2520
|
+
__vitest_recordBrowserTrace: _recordBrowserTrace,
|
|
2500
2521
|
__vitest_fileInfo: _fileInfo,
|
|
2501
2522
|
__vitest_screenshot: screenshot,
|
|
2502
2523
|
__vitest_screenshotMatcher: screenshotMatcher
|
package/dist/locators.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{L as Locator,
|
|
1
|
+
export{L as Locator,E as convertElementToCssSelector,F as ensureAwaited,G as getByAltTextSelector,H as getByLabelSelector,I as getByPlaceholderSelector,J as getByRoleSelector,K as getByTestIdSelector,M as getByTextSelector,N as getByTitleSelector,O as getIframeScale,A as processTimeoutOptions,P as selectorEngine,Q as triggerCommandWithTrace}from"./index-BlWsE3ij.js";import"vitest/browser";import"vitest/internal/browser";
|
package/dist/state.js
CHANGED
|
@@ -169,6 +169,7 @@ export async function resolve(specifier, context, nextResolve) {
|
|
|
169
169
|
throw Error(`[module runner] Dynamic access of "import.meta.env" is not supported. Please, use "import.meta.env.${String(p)}" instead.`);
|
|
170
170
|
} });
|
|
171
171
|
|
|
172
|
+
globalThis.performance ? globalThis.performance.now.bind(globalThis.performance) : Date.now;
|
|
172
173
|
/* @__NO_SIDE_EFFECTS__ */
|
|
173
174
|
function getBrowserState() {
|
|
174
175
|
// @ts-expect-error not typed global
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
//#region src/aria/folk/isomorphic/ariaSnapshot.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Microsoft Corporation.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
type AriaRole = 'alert' | 'alertdialog' | 'application' | 'article' | 'banner' | 'blockquote' | 'button' | 'caption' | 'cell' | 'checkbox' | 'code' | 'columnheader' | 'combobox' | 'complementary' | 'contentinfo' | 'definition' | 'deletion' | 'dialog' | 'directory' | 'document' | 'emphasis' | 'feed' | 'figure' | 'form' | 'generic' | 'grid' | 'gridcell' | 'group' | 'heading' | 'img' | 'insertion' | 'link' | 'list' | 'listbox' | 'listitem' | 'log' | 'main' | 'mark' | 'marquee' | 'math' | 'meter' | 'menu' | 'menubar' | 'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'navigation' | 'none' | 'note' | 'option' | 'paragraph' | 'presentation' | 'progressbar' | 'radio' | 'radiogroup' | 'region' | 'row' | 'rowgroup' | 'rowheader' | 'scrollbar' | 'search' | 'searchbox' | 'separator' | 'slider' | 'spinbutton' | 'status' | 'strong' | 'subscript' | 'superscript' | 'switch' | 'tab' | 'table' | 'tablist' | 'tabpanel' | 'term' | 'textbox' | 'time' | 'timer' | 'toolbar' | 'tooltip' | 'tree' | 'treegrid' | 'treeitem';
|
|
18
|
+
type AriaProps = {
|
|
19
|
+
checked?: boolean | 'mixed';
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
expanded?: boolean;
|
|
22
|
+
active?: boolean;
|
|
23
|
+
level?: number;
|
|
24
|
+
pressed?: boolean | 'mixed';
|
|
25
|
+
selected?: boolean;
|
|
26
|
+
};
|
|
27
|
+
type AriaBox = {
|
|
28
|
+
visible: boolean;
|
|
29
|
+
inline: boolean;
|
|
30
|
+
cursor?: string;
|
|
31
|
+
};
|
|
32
|
+
type AriaNode = AriaProps & {
|
|
33
|
+
role: AriaRole | 'fragment' | 'iframe';
|
|
34
|
+
name: string;
|
|
35
|
+
ref?: string;
|
|
36
|
+
children: (AriaNode | string)[];
|
|
37
|
+
box: AriaBox;
|
|
38
|
+
receivesPointerEvents: boolean;
|
|
39
|
+
props: Record<string, string>;
|
|
40
|
+
};
|
|
41
|
+
type AriaRegex = {
|
|
42
|
+
pattern: string;
|
|
43
|
+
};
|
|
44
|
+
type AriaTextValue = {
|
|
45
|
+
raw: string;
|
|
46
|
+
normalized: string;
|
|
47
|
+
};
|
|
48
|
+
type AriaTemplateTextNode = {
|
|
49
|
+
kind: 'text';
|
|
50
|
+
text: AriaTextValue;
|
|
51
|
+
};
|
|
52
|
+
type AriaTemplateRoleNode = AriaProps & {
|
|
53
|
+
kind: 'role';
|
|
54
|
+
role: AriaRole | 'fragment';
|
|
55
|
+
name?: AriaRegex | string;
|
|
56
|
+
children?: AriaTemplateNode[];
|
|
57
|
+
props?: Record<string, AriaTextValue>;
|
|
58
|
+
containerMode?: ContainerMode;
|
|
59
|
+
};
|
|
60
|
+
type ContainerMode = 'contain' | 'equal' | 'deep-equal';
|
|
61
|
+
type AriaTemplateNode = AriaTemplateRoleNode | AriaTemplateTextNode;
|
|
62
|
+
//#endregion
|
|
63
|
+
//#region src/aria/folk/injected/ariaSnapshot.d.ts
|
|
64
|
+
declare function generateAriaTree(rootElement: Element): AriaNode;
|
|
65
|
+
declare function renderAriaTree(root: AriaNode): string;
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region src/aria/template.d.ts
|
|
68
|
+
declare function renderAriaTemplate(template: AriaTemplateNode): string;
|
|
69
|
+
//#endregion
|
|
70
|
+
//#region src/aria/match.d.ts
|
|
71
|
+
/**
|
|
72
|
+
* The match algorithm resolves a DOM tree through the template's lens:
|
|
73
|
+
*
|
|
74
|
+
* resolved — DOM tree rendered through the template's lens. Where the
|
|
75
|
+
* template uses regexes or omits names, the resolved output
|
|
76
|
+
* adopts those patterns. Where the template doesn't match,
|
|
77
|
+
* the resolved output uses literal DOM values.
|
|
78
|
+
*
|
|
79
|
+
* This is NOT a raw rendering of either input:
|
|
80
|
+
* actual = renderAriaTree(root) — DOM as-is
|
|
81
|
+
* expected = the original YAML string — template as-is
|
|
82
|
+
* Both are independent of the match algorithm and available to the
|
|
83
|
+
* caller without matchAriaTree.
|
|
84
|
+
*
|
|
85
|
+
* Invariant:
|
|
86
|
+
* pass = true <=> resolved = expected
|
|
87
|
+
* TODO:
|
|
88
|
+
* This holds all cases except `aria-expanded` tri-state behaviors,
|
|
89
|
+
* which we inherited from playwright. We leave this case for now.
|
|
90
|
+
*
|
|
91
|
+
* Diff display (pass: false):
|
|
92
|
+
* Use resolved vs expected. The user sees their original assertion
|
|
93
|
+
* on the right side. The left side (resolved) normalizes matched
|
|
94
|
+
* regions so the diff highlights only genuine mismatches, not
|
|
95
|
+
* pattern-vs-literal noise.
|
|
96
|
+
*
|
|
97
|
+
* Snapshot update (pass: false):
|
|
98
|
+
* Write resolved. It preserves user patterns (regexes, omitted names)
|
|
99
|
+
* from matched regions while incorporating actual DOM structure for
|
|
100
|
+
* mismatched/unpaired regions.
|
|
101
|
+
*
|
|
102
|
+
* Round-trip invariant:
|
|
103
|
+
* element → captureAriaTree → renderAriaTree → parseAriaTemplate
|
|
104
|
+
* → matchAriaTree(captured, parsed) → pass: true.
|
|
105
|
+
* A rendered snapshot must always match its own source tree.
|
|
106
|
+
* (Tested via runPipeline in aria.test.ts.)
|
|
107
|
+
*/
|
|
108
|
+
interface MatchAriaResult {
|
|
109
|
+
/** Whether the actual tree satisfies the template. */
|
|
110
|
+
pass: boolean;
|
|
111
|
+
/** DOM tree resolved through the template's lens. Written on --update. */
|
|
112
|
+
resolved: string;
|
|
113
|
+
}
|
|
114
|
+
declare function matchAriaTree(root: AriaNode, template: AriaTemplateNode): MatchAriaResult;
|
|
115
|
+
//#endregion
|
|
116
|
+
//#region src/aria/index.d.ts
|
|
117
|
+
declare function parseAriaTemplate(text: string): AriaTemplateNode;
|
|
118
|
+
|
|
119
|
+
type index_d_AriaNode = AriaNode;
|
|
120
|
+
type index_d_AriaTemplateNode = AriaTemplateNode;
|
|
121
|
+
declare const index_d_generateAriaTree: typeof generateAriaTree;
|
|
122
|
+
declare const index_d_matchAriaTree: typeof matchAriaTree;
|
|
123
|
+
declare const index_d_parseAriaTemplate: typeof parseAriaTemplate;
|
|
124
|
+
declare const index_d_renderAriaTemplate: typeof renderAriaTemplate;
|
|
125
|
+
declare const index_d_renderAriaTree: typeof renderAriaTree;
|
|
126
|
+
declare namespace index_d {
|
|
127
|
+
export { index_d_generateAriaTree as generateAriaTree, index_d_matchAriaTree as matchAriaTree, index_d_parseAriaTemplate as parseAriaTemplate, index_d_renderAriaTemplate as renderAriaTemplate, index_d_renderAriaTree as renderAriaTree };
|
|
128
|
+
export type { index_d_AriaNode as AriaNode, index_d_AriaTemplateNode as AriaTemplateNode };
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export { index_d as __ivyaAriaTypes };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitest/browser",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "5.0.0-beta.1",
|
|
5
5
|
"description": "Browser running for Vitest",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"funding": "https://opencollective.com/vitest",
|
|
@@ -44,6 +44,10 @@
|
|
|
44
44
|
"./utils": {
|
|
45
45
|
"default": "./dummy.js"
|
|
46
46
|
},
|
|
47
|
+
"./internal/vendor-types": {
|
|
48
|
+
"types": "./dist/vendor-types.d.ts",
|
|
49
|
+
"default": "./dummy.js"
|
|
50
|
+
},
|
|
47
51
|
"./package.json": "./package.json"
|
|
48
52
|
},
|
|
49
53
|
"main": "./dist/index.js",
|
|
@@ -57,7 +61,7 @@
|
|
|
57
61
|
"providers"
|
|
58
62
|
],
|
|
59
63
|
"peerDependencies": {
|
|
60
|
-
"vitest": "
|
|
64
|
+
"vitest": "5.0.0-beta.1"
|
|
61
65
|
},
|
|
62
66
|
"dependencies": {
|
|
63
67
|
"@blazediff/core": "1.9.1",
|
|
@@ -66,8 +70,8 @@
|
|
|
66
70
|
"sirv": "^3.0.2",
|
|
67
71
|
"tinyrainbow": "^3.1.0",
|
|
68
72
|
"ws": "^8.19.0",
|
|
69
|
-
"@vitest/
|
|
70
|
-
"@vitest/
|
|
73
|
+
"@vitest/mocker": "5.0.0-beta.1",
|
|
74
|
+
"@vitest/utils": "5.0.0-beta.1"
|
|
71
75
|
},
|
|
72
76
|
"devDependencies": {
|
|
73
77
|
"@opentelemetry/api": "^1.9.0",
|
|
@@ -79,8 +83,9 @@
|
|
|
79
83
|
"ivya": "^1.8.0",
|
|
80
84
|
"mime": "^4.1.0",
|
|
81
85
|
"pathe": "^2.0.3",
|
|
82
|
-
"
|
|
83
|
-
"vitest": "
|
|
86
|
+
"rrweb-snapshot": "2.0.0-alpha.20",
|
|
87
|
+
"vitest": "5.0.0-beta.1",
|
|
88
|
+
"@vitest/runner": "5.0.0-beta.1"
|
|
84
89
|
},
|
|
85
90
|
"scripts": {
|
|
86
91
|
"typecheck": "tsc -p ./src/client/tsconfig.json --noEmit",
|