expect-webdriverio 8.0.0-alpha.0 → 8.0.0-alpha.2

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/README.md CHANGED
@@ -26,7 +26,7 @@
26
26
  - **Cucumber**: `npm install @wdio/cucumber-framework`
27
27
  - **Jest**: No adapter needed — see [Jest Framework section](docs/Framework.md#jest)
28
28
 
29
- **Note:** [WebdriverIO](https://github.com/webdriverio/webdriverio) `v9.31.5` or higher is required!
29
+ **Note:** [WebdriverIO](https://github.com/webdriverio/webdriverio) `v9.32.0` or higher is required!
30
30
 
31
31
  ## Usage
32
32
 
@@ -50,8 +50,6 @@ await expect(multiRemoteBrowser).toHaveTitle('WebdriverIO')
50
50
  await expect(multiRemoteBrowser.$('h1')).toHaveText(expect.multiRemote({ chrome: 'Welcome', firefox: 'Bienvenue' }))
51
51
  ```
52
52
 
53
- Some WebdriverIO environment variables are recommended, see [Multi-remote Support](docs/MultiRemote.md#requirements--configuration).
54
-
55
53
  #### Local & Browser Runners
56
54
  - **Local Runner**: Fully compatible. You can leverage your test framework adapter as mentioned above.
57
55
  - **Browser Runner**: Designed for component frameworks like React, Preact, Vue.js, Svelte, and SolidJS, with a few known limitations. For details, see the [Browser Runner Framework section](docs/Framework.md#browser-runner).
@@ -2,8 +2,8 @@ import { waitUntil, enhanceError, } from '../../utils.js';
2
2
  import { refetchElements, synchronizeElementArray, syncronizeElements } from '../../util/refetchElements.js';
3
3
  import { DEFAULT_OPTIONS } from '../../constants.js';
4
4
  import { validateNumberMatcher } from '../../util/numberOptionsUtil.js';
5
- import { awaitElementArray, isMultiRemoteElementArray, isMultiRemoteElements, isMultiRemoteElementsLike, isStrictlyElementArray } from '../../util/elementsUtil.js';
6
- import { getElementsPerInstance, getGlobalMultiRemoteInstanceNames, hasSameInstanceNames, isGlobalBrowserSingleRemote, isMultiRemoteMatcher } from '../../util/multiRemoteUtils.js';
5
+ import { awaitElementArray, isMultiRemoteElementArray, isStrictlyElementArray } from '../../util/elementsUtil.js';
6
+ import { getElementsPerInstance, hasSameInstanceNames, isMultiRemoteMatcher } from '../../util/multiRemoteUtils.js';
7
7
  export async function toBeElementsArrayOfSize(received, expectedValue, options = DEFAULT_OPTIONS) {
8
8
  const { expectation = 'elements array of size', verb = 'be', isNot, matcherName = 'toBeElementsArrayOfSize' } = this;
9
9
  await options.beforeAssertion?.({
@@ -13,10 +13,7 @@ export async function toBeElementsArrayOfSize(received, expectedValue, options =
13
13
  });
14
14
  let { elements, other } = await awaitElementArray(received);
15
15
  const awaitedMultiRemote = other ?? elements;
16
- const isEmptyWithPerInstanceSizes = Array.isArray(awaitedMultiRemote) && awaitedMultiRemote.length === 0
17
- && !isStrictlyElementArray(awaitedMultiRemote) && !isGlobalBrowserSingleRemote()
18
- && getPerInstanceSizes(expectedValue) !== undefined;
19
- if (isMultiRemoteElementsLike(awaitedMultiRemote) || isEmptyWithPerInstanceSizes) {
16
+ if (isMultiRemoteElementArray(awaitedMultiRemote)) {
20
17
  const result = await multiRemoteElementsArrayOfSize(awaitedMultiRemote, expectedValue, options, { context: this, verb, expectation });
21
18
  await options.afterAssertion?.({ matcherName, expectedValue, options, result });
22
19
  return result;
@@ -56,9 +53,7 @@ export async function toBeElementsArrayOfSize(received, expectedValue, options =
56
53
  const multiRemoteElementsArrayOfSize = async (received, expectedValue, options, { context, verb, expectation }) => {
57
54
  const { isNot } = context;
58
55
  const perInstanceSizes = getPerInstanceSizes(expectedValue);
59
- const instances = getMultiRemoteInstanceNames(received)
60
- ?? getGlobalMultiRemoteInstanceNames()
61
- ?? (perInstanceSizes ? Object.keys(perInstanceSizes) : []);
56
+ const { instances } = received.parent;
62
57
  let expected;
63
58
  let instanceMismatch = false;
64
59
  if (perInstanceSizes) {
@@ -69,41 +64,29 @@ const multiRemoteElementsArrayOfSize = async (received, expectedValue, options,
69
64
  const numberMatcher = validateNumberMatcher(expectedValue);
70
65
  expected = Object.fromEntries(instances.map((name) => [name, numberMatcher]));
71
66
  }
72
- let refetchSource = received;
73
67
  let elements = received;
74
68
  let actual = countElementsPerInstance(elements, instances);
75
69
  const { success: pass } = await waitUntil(async (iteration) => {
76
70
  if (iteration > 0) {
77
- elements = await refetchElements(refetchSource);
78
- if (elements.length > 0 || !isMultiRemoteElements(refetchSource)) {
79
- refetchSource = elements;
80
- }
71
+ elements = await refetchElements(elements);
81
72
  actual = countElementsPerInstance(elements, instances);
82
73
  }
83
74
  if (instanceMismatch) {
84
- return { success: !!isNot, subject: refetchSource, actual, abort: true };
75
+ return { success: !!isNot, subject: elements, actual, abort: true };
85
76
  }
86
77
  const matches = (name) => expected[name].asymmetricMatch(actual[name]);
87
78
  const success = isNot ? instances.some(matches) : instances.every(matches);
88
- return { success, subject: refetchSource, actual };
79
+ return { success, subject: elements, actual };
89
80
  }, isNot, { wait: options.wait, interval: options.interval });
90
81
  if (pass && elements !== received) {
91
82
  synchronizeElementArray(received, elements);
92
83
  }
93
- const message = enhanceError(refetchSource, expected, actual, { isNot }, verb, expectation, '', options);
84
+ const message = enhanceError(elements, expected, actual, { isNot }, verb, expectation, '', options);
94
85
  return { pass, message: () => message };
95
86
  };
96
87
  const getPerInstanceSizes = (value) => {
97
88
  return isMultiRemoteMatcher(value) ? value.sample : undefined;
98
89
  };
99
- const getMultiRemoteInstanceNames = (elements) => {
100
- const first = elements[0];
101
- if (first) {
102
- return first.instances;
103
- }
104
- const parent = isMultiRemoteElementArray(elements) ? elements.parent : undefined;
105
- return parent?.instances;
106
- };
107
90
  const countElementsPerInstance = (elements, instances) => {
108
91
  const elementsPerInstance = getElementsPerInstance(elements, instances);
109
92
  return Object.fromEntries(instances.map((name) => [name, elementsPerInstance[name].length]));
@@ -1,9 +1,9 @@
1
- import path from 'node:path';
2
1
  import { expect } from 'expect';
3
2
  import { stripSnapshotIndentation } from '@vitest/snapshot';
4
3
  import { SnapshotService } from '../snapshot.js';
5
- import { awaitElementOrArray, isElementOrArrayOrMultiRemoteElementLike, isMultiRemoteElement, isMultiRemoteElementArray, isMultiRemoteElementsLike, isStrictlyElementArray } from '../util/elementsUtil.js';
4
+ import { awaitElementOrArray, isElementOrArrayOrMultiRemoteElementLike, isMultiRemoteElement, isMultiRemoteElementArray, isStrictlyElementArray } from '../util/elementsUtil.js';
6
5
  import { getElementsPerInstance } from '../util/multiRemoteUtils.js';
6
+ import { filterInlineSnapshotStack } from '../util/stackUtil.js';
7
7
  function returnSnapshotError(snapshotError) {
8
8
  try {
9
9
  expect(snapshotError.actual).toBe(snapshotError.expected);
@@ -50,7 +50,7 @@ const getMultiRemoteOuterHTML = async (multiRemoteElements) => {
50
50
  if (!isSingleElement && multiRemoteElements.length === 0) {
51
51
  return [];
52
52
  }
53
- const instances = [...(isSingleElement ? multiRemoteElements : multiRemoteElements[0]).instances].sort();
53
+ const instances = [...(isSingleElement ? multiRemoteElements.instances : multiRemoteElements.parent.instances)].sort();
54
54
  const elementsPerInstance = isSingleElement ? undefined : getElementsPerInstance(multiRemoteElements, instances);
55
55
  const htmlPerInstance = Object.fromEntries(await Promise.all(instances.map(async (instance) => [
56
56
  instance,
@@ -67,7 +67,7 @@ async function toMatchSnapshotAsync(asyncReceived, message, inlineOptions) {
67
67
  if (multiRemoteSelector) {
68
68
  received = await getMultiRemoteOuterHTML(multiRemoteSelector);
69
69
  }
70
- else if (elements && isMultiRemoteElementsLike(elements)) {
70
+ else if (elements && isMultiRemoteElementArray(elements)) {
71
71
  received = await getMultiRemoteOuterHTML(elements);
72
72
  }
73
73
  else if (elements) {
@@ -105,9 +105,7 @@ export function toMatchInlineSnapshot(received, inlineSnapshot, message) {
105
105
  ...stack.slice(3)
106
106
  ].join('\n');
107
107
  }
108
- const trace = error.stack?.split('\n').filter((line) => (line.includes('__INLINE_SNAPSHOT__') ||
109
- !(line.includes('__EXTERNAL_MATCHER_TRAP__') ||
110
- line.includes(`expect-webdriverio${path.sep}lib${path.sep}matchers${path.sep}snapshot.js:`)))).filter((line) => (!line.includes('node_modules/jasmine-core/'))) || [];
108
+ const trace = error.stack ? filterInlineSnapshotStack(error.stack) : [];
111
109
  if (process.env.WDIO_INTERNAL_TEST) {
112
110
  trace.splice(2, 1);
113
111
  }
@@ -1 +1 @@
1
- {"version":"7.0.2","root":["../src/constants.ts","../src/index.ts","../src/jasmineUtils.ts","../src/matchers.ts","../src/snapshot.ts","../src/softAssert.ts","../src/softAssertService.ts","../src/softExpect.ts","../src/types.ts","../src/utils.ts","../src/api/index.ts","../src/matchers/snapshot.ts","../src/matchers/asymmetrics/asymmetricsUtils.ts","../src/matchers/asymmetrics/multiRemote.ts","../src/matchers/asymmetrics/oneOf.ts","../src/matchers/browser/toHaveClipboardText.ts","../src/matchers/browser/toHaveLocalStorageItem.ts","../src/matchers/browser/toHaveTitle.ts","../src/matchers/browser/toHaveUrl.ts","../src/matchers/element/toBeClickable.ts","../src/matchers/element/toBeDisabled.ts","../src/matchers/element/toBeDisplayed.ts","../src/matchers/element/toBeDisplayedInViewport.ts","../src/matchers/element/toBeEnabled.ts","../src/matchers/element/toBeExisting.ts","../src/matchers/element/toBeFocused.ts","../src/matchers/element/toBeSelected.ts","../src/matchers/element/toHaveAttribute.ts","../src/matchers/element/toHaveChildren.ts","../src/matchers/element/toHaveComputedLabel.ts","../src/matchers/element/toHaveComputedRole.ts","../src/matchers/element/toHaveElementClass.ts","../src/matchers/element/toHaveElementProperty.ts","../src/matchers/element/toHaveHTML.ts","../src/matchers/element/toHaveHeight.ts","../src/matchers/element/toHaveHref.ts","../src/matchers/element/toHaveId.ts","../src/matchers/element/toHaveSize.ts","../src/matchers/element/toHaveStyle.ts","../src/matchers/element/toHaveText.ts","../src/matchers/element/toHaveValue.ts","../src/matchers/element/toHaveWidth.ts","../src/matchers/elements/toBeElementsArrayOfSize.ts","../src/matchers/mock/toBeRequested.ts","../src/matchers/mock/toBeRequestedTimes.ts","../src/matchers/mock/toBeRequestedWith.ts","../src/matchers/modifiers/some.ts","../src/util/commandOptionsUtils.ts","../src/util/elementsUtil.ts","../src/util/executeBrowserCommand.ts","../src/util/executeCommand.ts","../src/util/formatMessage.ts","../src/util/globalSingleton.ts","../src/util/multiRemoteUtils.ts","../src/util/numberOptionsUtil.ts","../src/util/refetchElements.ts","../src/util/stringUtil.ts","../src/util/waitUntil.ts"],"packageJsons":["../node_modules/.pnpm/@jest+expect-utils@30.5.2/node_modules/@jest/expect-utils/package.json","../node_modules/.pnpm/@jest+schemas@30.5.0/node_modules/@jest/schemas/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/package.json","../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/package.json","../node_modules/.pnpm/@types+sinonjs__fake-timers@8.1.5/node_modules/@types/sinonjs__fake-timers/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/package.json","../node_modules/.pnpm/@vitest+pretty-format@5.0.2/node_modules/@vitest/pretty-format/package.json","../node_modules/.pnpm/@vitest+snapshot@5.0.2/node_modules/@vitest/snapshot/package.json","../node_modules/.pnpm/@vitest+utils@5.0.2/node_modules/@vitest/utils/package.json","../node_modules/.pnpm/@wdio+globals@9.31.3_expect-webdriverio@_webdriverio@9.32.0_supports-color@8.1.1_/node_modules/@wdio/globals/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/package.json","../node_modules/.pnpm/@wdio+types@9.32.0/node_modules/@wdio/types/package.json","../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/package.json","../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/package.json","../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/package.json","../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/dist/esm/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/package.json","../node_modules/.pnpm/deep-eql@5.0.2/node_modules/deep-eql/package.json","../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/package.json","../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/package.json","../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/package.json","../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/package.json","../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/package.json","../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/package.json","../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/package.json","../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/package.json","../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/esm/package.json","../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/package.json","../node_modules/.pnpm/events@3.3.0/node_modules/events/package.json","../node_modules/.pnpm/expect@30.5.2/node_modules/expect/package.json","../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/package.json","../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/package.json","../node_modules/.pnpm/jest-diff@30.5.2/node_modules/jest-diff/package.json","../node_modules/.pnpm/jest-matcher-utils@30.5.2/node_modules/jest-matcher-utils/package.json","../node_modules/.pnpm/jest-mock@30.5.2/node_modules/jest-mock/package.json","../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/package.json","../node_modules/.pnpm/pretty-format@30.5.1/node_modules/pretty-format/package.json","../node_modules/.pnpm/process@0.11.10/node_modules/process/package.json","../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/package.json","../node_modules/.pnpm/string_decoder@1.1.1/node_modules/string_decoder/package.json","../node_modules/.pnpm/undici-types@7.24.6/node_modules/undici-types/package.json","../node_modules/.pnpm/undici@7.29.0/node_modules/undici/package.json","../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/package.json","../node_modules/.pnpm/ws@8.21.3/node_modules/ws/package.json","../package.json"],"missingPackageJsons":["../node_modules/.pnpm/@jest+expect-utils@30.5.2/node_modules/@jest/expect-utils/build/package.json","../node_modules/.pnpm/@jest+schemas@30.5.0/node_modules/@jest/schemas/build/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/any/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/argument/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/array/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/awaited/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/bigint/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/boolean/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/clone/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/composite/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/computed/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/const/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/constructor/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/create/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/date/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/enum/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/error/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/exclude/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/extends/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/extract/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/function/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/guard/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/helpers/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/indexed/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/instance-type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/instantiate/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/integer/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/intersect/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/iterator/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/keyof/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/literal/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/mapped/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/module/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/never/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/not/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/null/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/number/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/object/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/omit/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/optional/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/parameters/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/partial/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/patterns/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/pick/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/promise/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/readonly/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/record/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/recursive/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/ref/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/regexp/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/registry/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/required/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/rest/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/return-type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/schema/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/sets/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/static/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/string/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/symbol/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/symbols/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/template-literal/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/transform/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/tuple/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/uint8array/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/undefined/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/union/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/unknown/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/unsafe/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/void/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/assert/strict/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/async_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/buffer/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/child_process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/cluster/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/console/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/constants/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/crypto/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dgram/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/diagnostics_channel/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dns/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/domain/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/fs/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/http/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/http2/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/https/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/inspector/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/inspector/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/module/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/net/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/compatibility/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/web-globals/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/os/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/posix/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/win32/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/perf_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/punycode/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/querystring/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/readline/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/repl/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/consumers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/web/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/string_decoder/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/timers/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/tls/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/trace_events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/tty/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/url/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/util/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/util/types/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/v8/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/vm/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/wasi/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/worker_threads/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/zlib/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/assert/strict/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/async_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/buffer/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/child_process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/cluster/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/console/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/constants/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/crypto/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dgram/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/diagnostics_channel/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dns/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/domain/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/fs/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/http/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/http2/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/https/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/inspector/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/inspector/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/module/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/net/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/os/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/posix/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/win32/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/perf_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/punycode/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/querystring/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/readline/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/repl/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/consumers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/web/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/string_decoder/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/timers/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/tls/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/trace_events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/tty/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/url/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/util/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/util/types/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/v8/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/vm/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/wasi/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/worker_threads/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/zlib/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/events/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/http/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/https/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/net/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/stream/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/tls/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/url/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/zlib/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/events/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/http/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/https/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/net/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/stream/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/tls/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/url/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/zlib/package.json","../node_modules/.pnpm/@vitest+pretty-format@5.0.2/node_modules/@vitest/pretty-format/dist/package.json","../node_modules/.pnpm/@vitest+snapshot@5.0.2/node_modules/@vitest/snapshot/dist/package.json","../node_modules/.pnpm/@vitest+utils@5.0.2/node_modules/@vitest/utils/dist/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/commands/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/protocols/package.json","../node_modules/.pnpm/@wdio+types@9.32.0/node_modules/@wdio/types/build/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/dist/esm/api/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/package.json","../node_modules/.pnpm/expect@30.5.2/node_modules/expect/build/package.json","../node_modules/.pnpm/jest-diff@30.5.2/node_modules/jest-diff/build/package.json","../node_modules/.pnpm/jest-matcher-utils@30.5.2/node_modules/jest-matcher-utils/build/package.json","../node_modules/.pnpm/jest-mock@30.5.2/node_modules/jest-mock/build/package.json","../node_modules/.pnpm/node_modules/@types/assert/package.json","../node_modules/.pnpm/node_modules/@types/assert/strict/package.json","../node_modules/.pnpm/node_modules/@types/async_hooks/package.json","../node_modules/.pnpm/node_modules/@types/child_process/package.json","../node_modules/.pnpm/node_modules/@types/cluster/package.json","../node_modules/.pnpm/node_modules/@types/console/package.json","../node_modules/.pnpm/node_modules/@types/constants/package.json","../node_modules/.pnpm/node_modules/@types/crypto/package.json","../node_modules/.pnpm/node_modules/@types/dgram/package.json","../node_modules/.pnpm/node_modules/@types/diagnostics_channel/package.json","../node_modules/.pnpm/node_modules/@types/dns/package.json","../node_modules/.pnpm/node_modules/@types/dns/promises/package.json","../node_modules/.pnpm/node_modules/@types/domain/package.json","../node_modules/.pnpm/node_modules/@types/events/package.json","../node_modules/.pnpm/node_modules/@types/fs/package.json","../node_modules/.pnpm/node_modules/@types/fs/promises/package.json","../node_modules/.pnpm/node_modules/@types/http/package.json","../node_modules/.pnpm/node_modules/@types/http2/package.json","../node_modules/.pnpm/node_modules/@types/https/package.json","../node_modules/.pnpm/node_modules/@types/inspector/package.json","../node_modules/.pnpm/node_modules/@types/inspector/promises/package.json","../node_modules/.pnpm/node_modules/@types/module/package.json","../node_modules/.pnpm/node_modules/@types/net/package.json","../node_modules/.pnpm/node_modules/@types/os/package.json","../node_modules/.pnpm/node_modules/@types/path/package.json","../node_modules/.pnpm/node_modules/@types/path/posix/package.json","../node_modules/.pnpm/node_modules/@types/path/win32/package.json","../node_modules/.pnpm/node_modules/@types/perf_hooks/package.json","../node_modules/.pnpm/node_modules/@types/process/package.json","../node_modules/.pnpm/node_modules/@types/punycode/package.json","../node_modules/.pnpm/node_modules/@types/puppeteer-core/package.json","../node_modules/.pnpm/node_modules/@types/querystring/package.json","../node_modules/.pnpm/node_modules/@types/readline/package.json","../node_modules/.pnpm/node_modules/@types/readline/promises/package.json","../node_modules/.pnpm/node_modules/@types/repl/package.json","../node_modules/.pnpm/node_modules/@types/stream/consumers/package.json","../node_modules/.pnpm/node_modules/@types/stream/package.json","../node_modules/.pnpm/node_modules/@types/stream/promises/package.json","../node_modules/.pnpm/node_modules/@types/stream/web/package.json","../node_modules/.pnpm/node_modules/@types/string_decoder/package.json","../node_modules/.pnpm/node_modules/@types/timers/package.json","../node_modules/.pnpm/node_modules/@types/timers/promises/package.json","../node_modules/.pnpm/node_modules/@types/tls/package.json","../node_modules/.pnpm/node_modules/@types/trace_events/package.json","../node_modules/.pnpm/node_modules/@types/tty/package.json","../node_modules/.pnpm/node_modules/@types/url/package.json","../node_modules/.pnpm/node_modules/@types/util/package.json","../node_modules/.pnpm/node_modules/@types/util/types/package.json","../node_modules/.pnpm/node_modules/@types/v8/package.json","../node_modules/.pnpm/node_modules/@types/vm/package.json","../node_modules/.pnpm/node_modules/@types/wasi/package.json","../node_modules/.pnpm/node_modules/@types/worker_threads/package.json","../node_modules/.pnpm/node_modules/@types/zlib/package.json","../node_modules/.pnpm/node_modules/assert/package.json","../node_modules/.pnpm/node_modules/assert/strict/package.json","../node_modules/.pnpm/node_modules/async_hooks/package.json","../node_modules/.pnpm/node_modules/child_process/package.json","../node_modules/.pnpm/node_modules/cluster/package.json","../node_modules/.pnpm/node_modules/console/package.json","../node_modules/.pnpm/node_modules/constants/package.json","../node_modules/.pnpm/node_modules/crypto/package.json","../node_modules/.pnpm/node_modules/dgram/package.json","../node_modules/.pnpm/node_modules/diagnostics_channel/package.json","../node_modules/.pnpm/node_modules/dns/package.json","../node_modules/.pnpm/node_modules/dns/promises/package.json","../node_modules/.pnpm/node_modules/domain/package.json","../node_modules/.pnpm/node_modules/fs/package.json","../node_modules/.pnpm/node_modules/fs/promises/package.json","../node_modules/.pnpm/node_modules/http/package.json","../node_modules/.pnpm/node_modules/http2/package.json","../node_modules/.pnpm/node_modules/https/package.json","../node_modules/.pnpm/node_modules/inspector/package.json","../node_modules/.pnpm/node_modules/inspector/promises/package.json","../node_modules/.pnpm/node_modules/module/package.json","../node_modules/.pnpm/node_modules/net/package.json","../node_modules/.pnpm/node_modules/os/package.json","../node_modules/.pnpm/node_modules/path/package.json","../node_modules/.pnpm/node_modules/path/posix/package.json","../node_modules/.pnpm/node_modules/path/win32/package.json","../node_modules/.pnpm/node_modules/perf_hooks/package.json","../node_modules/.pnpm/node_modules/puppeteer-core/package.json","../node_modules/.pnpm/node_modules/querystring/package.json","../node_modules/.pnpm/node_modules/readline/package.json","../node_modules/.pnpm/node_modules/readline/promises/package.json","../node_modules/.pnpm/node_modules/repl/package.json","../node_modules/.pnpm/node_modules/stream/consumers/package.json","../node_modules/.pnpm/node_modules/stream/package.json","../node_modules/.pnpm/node_modules/stream/promises/package.json","../node_modules/.pnpm/node_modules/stream/web/package.json","../node_modules/.pnpm/node_modules/timers/package.json","../node_modules/.pnpm/node_modules/timers/promises/package.json","../node_modules/.pnpm/node_modules/tls/package.json","../node_modules/.pnpm/node_modules/trace_events/package.json","../node_modules/.pnpm/node_modules/tty/package.json","../node_modules/.pnpm/node_modules/url/package.json","../node_modules/.pnpm/node_modules/util/package.json","../node_modules/.pnpm/node_modules/util/types/package.json","../node_modules/.pnpm/node_modules/v8/package.json","../node_modules/.pnpm/node_modules/vm/package.json","../node_modules/.pnpm/node_modules/wasi/package.json","../node_modules/.pnpm/node_modules/worker_threads/package.json","../node_modules/.pnpm/node_modules/zlib/package.json","../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/dist/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/entities/decode/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/package.json","../node_modules/.pnpm/pretty-format@30.5.1/node_modules/pretty-format/build/package.json","../node_modules/.pnpm/undici@7.29.0/node_modules/undici/types/package.json","../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/bidi/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/request/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/@sinonjs/fake-timers/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/@types/puppeteer-core/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/puppeteer-core/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/browser/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/element/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/mobile/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/session/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/actions/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/interception/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/package.json","../node_modules/types/expect-webdriverio.d.ts/package.json","../node_modules/@types/assert/package.json","../node_modules/@types/assert/strict/package.json","../node_modules/@types/async_hooks/package.json","../node_modules/@types/child_process/package.json","../node_modules/@types/cluster/package.json","../node_modules/@types/console/package.json","../node_modules/@types/constants/package.json","../node_modules/@types/crypto/package.json","../node_modules/@types/dgram/package.json","../node_modules/@types/diagnostics_channel/package.json","../node_modules/@types/dns/package.json","../node_modules/@types/dns/promises/package.json","../node_modules/@types/domain/package.json","../node_modules/@types/events/package.json","../node_modules/@types/fs/package.json","../node_modules/@types/fs/promises/package.json","../node_modules/@types/http/package.json","../node_modules/@types/http2/package.json","../node_modules/@types/https/package.json","../node_modules/@types/inspector/package.json","../node_modules/@types/inspector/promises/package.json","../node_modules/@types/module/package.json","../node_modules/@types/net/package.json","../node_modules/@types/os/package.json","../node_modules/@types/path/package.json","../node_modules/@types/path/posix/package.json","../node_modules/@types/path/win32/package.json","../node_modules/@types/perf_hooks/package.json","../node_modules/@types/process/package.json","../node_modules/@types/punycode/package.json","../node_modules/@types/puppeteer-core/package.json","../node_modules/@types/querystring/package.json","../node_modules/@types/readline/package.json","../node_modules/@types/readline/promises/package.json","../node_modules/@types/repl/package.json","../node_modules/@types/stream/consumers/package.json","../node_modules/@types/stream/package.json","../node_modules/@types/stream/promises/package.json","../node_modules/@types/stream/web/package.json","../node_modules/@types/string_decoder/package.json","../node_modules/@types/timers/package.json","../node_modules/@types/timers/promises/package.json","../node_modules/@types/tls/package.json","../node_modules/@types/trace_events/package.json","../node_modules/@types/tty/package.json","../node_modules/@types/url/package.json","../node_modules/@types/util/package.json","../node_modules/@types/util/types/package.json","../node_modules/@types/v8/package.json","../node_modules/@types/vm/package.json","../node_modules/@types/wasi/package.json","../node_modules/@types/wdio__globals/types/package.json","../node_modules/@types/worker_threads/package.json","../node_modules/@types/zlib/package.json","../node_modules/@vitest/snapshot/environment/package.json","../node_modules/@wdio/globals/types/package.json","../node_modules/assert/package.json","../node_modules/assert/strict/package.json","../node_modules/async_hooks/package.json","../node_modules/child_process/package.json","../node_modules/cluster/package.json","../node_modules/console/package.json","../node_modules/constants/package.json","../node_modules/crypto/package.json","../node_modules/dgram/package.json","../node_modules/diagnostics_channel/package.json","../node_modules/dns/package.json","../node_modules/dns/promises/package.json","../node_modules/domain/package.json","../node_modules/events/package.json","../node_modules/fs/package.json","../node_modules/fs/promises/package.json","../node_modules/http/package.json","../node_modules/http2/package.json","../node_modules/https/package.json","../node_modules/inspector/package.json","../node_modules/inspector/promises/package.json","../node_modules/module/package.json","../node_modules/net/package.json","../node_modules/os/package.json","../node_modules/path/package.json","../node_modules/path/posix/package.json","../node_modules/path/win32/package.json","../node_modules/perf_hooks/package.json","../node_modules/process/package.json","../node_modules/punycode/package.json","../node_modules/puppeteer-core/package.json","../node_modules/querystring/package.json","../node_modules/readline/package.json","../node_modules/readline/promises/package.json","../node_modules/repl/package.json","../node_modules/stream/consumers/package.json","../node_modules/stream/package.json","../node_modules/stream/promises/package.json","../node_modules/stream/web/package.json","../node_modules/string_decoder/package.json","../node_modules/timers/package.json","../node_modules/timers/promises/package.json","../node_modules/tls/package.json","../node_modules/trace_events/package.json","../node_modules/tty/package.json","../node_modules/url/package.json","../node_modules/util/package.json","../node_modules/util/types/package.json","../node_modules/v8/package.json","../node_modules/vm/package.json","../node_modules/wasi/package.json","../node_modules/worker_threads/package.json","../node_modules/zlib/package.json"]}
1
+ {"version":"7.0.2","root":["../src/constants.ts","../src/index.ts","../src/jasmineUtils.ts","../src/matchers.ts","../src/snapshot.ts","../src/softAssert.ts","../src/softAssertService.ts","../src/softExpect.ts","../src/types.ts","../src/utils.ts","../src/api/index.ts","../src/matchers/snapshot.ts","../src/matchers/asymmetrics/asymmetricsUtils.ts","../src/matchers/asymmetrics/multiRemote.ts","../src/matchers/asymmetrics/oneOf.ts","../src/matchers/browser/toHaveClipboardText.ts","../src/matchers/browser/toHaveLocalStorageItem.ts","../src/matchers/browser/toHaveTitle.ts","../src/matchers/browser/toHaveUrl.ts","../src/matchers/element/toBeClickable.ts","../src/matchers/element/toBeDisabled.ts","../src/matchers/element/toBeDisplayed.ts","../src/matchers/element/toBeDisplayedInViewport.ts","../src/matchers/element/toBeEnabled.ts","../src/matchers/element/toBeExisting.ts","../src/matchers/element/toBeFocused.ts","../src/matchers/element/toBeSelected.ts","../src/matchers/element/toHaveAttribute.ts","../src/matchers/element/toHaveChildren.ts","../src/matchers/element/toHaveComputedLabel.ts","../src/matchers/element/toHaveComputedRole.ts","../src/matchers/element/toHaveElementClass.ts","../src/matchers/element/toHaveElementProperty.ts","../src/matchers/element/toHaveHTML.ts","../src/matchers/element/toHaveHeight.ts","../src/matchers/element/toHaveHref.ts","../src/matchers/element/toHaveId.ts","../src/matchers/element/toHaveSize.ts","../src/matchers/element/toHaveStyle.ts","../src/matchers/element/toHaveText.ts","../src/matchers/element/toHaveValue.ts","../src/matchers/element/toHaveWidth.ts","../src/matchers/elements/toBeElementsArrayOfSize.ts","../src/matchers/mock/toBeRequested.ts","../src/matchers/mock/toBeRequestedTimes.ts","../src/matchers/mock/toBeRequestedWith.ts","../src/matchers/modifiers/some.ts","../src/util/commandOptionsUtils.ts","../src/util/elementsUtil.ts","../src/util/executeBrowserCommand.ts","../src/util/executeCommand.ts","../src/util/formatMessage.ts","../src/util/globalSingleton.ts","../src/util/multiRemoteUtils.ts","../src/util/numberOptionsUtil.ts","../src/util/refetchElements.ts","../src/util/stackUtil.ts","../src/util/stringUtil.ts","../src/util/waitUntil.ts"],"packageJsons":["../node_modules/.pnpm/@jest+expect-utils@30.5.2/node_modules/@jest/expect-utils/package.json","../node_modules/.pnpm/@jest+schemas@30.5.0/node_modules/@jest/schemas/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/package.json","../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/package.json","../node_modules/.pnpm/@types+sinonjs__fake-timers@8.1.5/node_modules/@types/sinonjs__fake-timers/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/package.json","../node_modules/.pnpm/@vitest+pretty-format@5.0.2/node_modules/@vitest/pretty-format/package.json","../node_modules/.pnpm/@vitest+snapshot@5.0.2/node_modules/@vitest/snapshot/package.json","../node_modules/.pnpm/@vitest+utils@5.0.2/node_modules/@vitest/utils/package.json","../node_modules/.pnpm/@wdio+globals@9.31.3_expect-webdriverio@_webdriverio@9.32.0_supports-color@8.1.1_/node_modules/@wdio/globals/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/package.json","../node_modules/.pnpm/@wdio+types@9.32.0/node_modules/@wdio/types/package.json","../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/package.json","../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/package.json","../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/lib/esm/package.json","../node_modules/.pnpm/cheerio-select@2.1.0/node_modules/cheerio-select/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/dist/esm/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/package.json","../node_modules/.pnpm/deep-eql@5.0.2/node_modules/deep-eql/package.json","../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/package.json","../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/package.json","../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/package.json","../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/package.json","../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/package.json","../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/package.json","../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/package.json","../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/package.json","../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/dist/esm/package.json","../node_modules/.pnpm/encoding-sniffer@0.2.1/node_modules/encoding-sniffer/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/package.json","../node_modules/.pnpm/events@3.3.0/node_modules/events/package.json","../node_modules/.pnpm/expect@30.5.2/node_modules/expect/package.json","../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/dist/esm/package.json","../node_modules/.pnpm/htmlparser2@10.0.0/node_modules/htmlparser2/package.json","../node_modules/.pnpm/jest-diff@30.5.2/node_modules/jest-diff/package.json","../node_modules/.pnpm/jest-matcher-utils@30.5.2/node_modules/jest-matcher-utils/package.json","../node_modules/.pnpm/jest-mock@30.5.2/node_modules/jest-mock/package.json","../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/package.json","../node_modules/.pnpm/pretty-format@30.5.1/node_modules/pretty-format/package.json","../node_modules/.pnpm/process@0.11.10/node_modules/process/package.json","../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/package.json","../node_modules/.pnpm/string_decoder@1.1.1/node_modules/string_decoder/package.json","../node_modules/.pnpm/undici-types@7.24.6/node_modules/undici-types/package.json","../node_modules/.pnpm/undici@7.29.0/node_modules/undici/package.json","../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/package.json","../node_modules/.pnpm/ws@8.21.3/node_modules/ws/package.json","../package.json"],"missingPackageJsons":["../node_modules/.pnpm/@jest+expect-utils@30.5.2/node_modules/@jest/expect-utils/build/package.json","../node_modules/.pnpm/@jest+schemas@30.5.0/node_modules/@jest/schemas/build/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/any/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/argument/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/array/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/awaited/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/bigint/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/boolean/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/clone/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/composite/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/computed/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/const/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/constructor/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/create/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/date/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/enum/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/error/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/exclude/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/extends/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/extract/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/function/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/guard/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/helpers/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/indexed/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/instance-type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/instantiate/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/integer/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/intersect/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/iterator/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/keyof/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/literal/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/mapped/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/module/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/never/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/not/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/null/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/number/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/object/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/omit/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/optional/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/parameters/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/partial/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/patterns/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/pick/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/promise/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/readonly/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/record/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/recursive/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/ref/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/regexp/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/registry/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/required/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/rest/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/return-type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/schema/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/sets/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/static/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/string/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/symbol/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/symbols/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/template-literal/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/transform/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/tuple/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/type/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/uint8array/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/undefined/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/union/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/unknown/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/unsafe/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/cjs/type/void/package.json","../node_modules/.pnpm/@sinclair+typebox@0.34.41/node_modules/@sinclair/typebox/build/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/assert/strict/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/async_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/buffer/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/child_process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/cluster/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/console/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/constants/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/crypto/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dgram/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/diagnostics_channel/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/dns/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/domain/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/fs/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/http/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/http2/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/https/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/inspector/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/inspector/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/module/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/net/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/compatibility/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/node/web-globals/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/os/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/posix/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/path/win32/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/perf_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/punycode/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/querystring/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/readline/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/repl/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/consumers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/stream/web/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/string_decoder/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/timers/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/tls/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/trace_events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/tty/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/url/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/util/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/util/types/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/v8/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/vm/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/wasi/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/worker_threads/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/@types/zlib/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/assert/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/assert/strict/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/async_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/buffer/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/child_process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/cluster/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/console/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/constants/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/crypto/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dgram/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/diagnostics_channel/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dns/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/dns/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/domain/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/fs/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/fs/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/http/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/http2/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/https/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/inspector/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/inspector/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/module/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/net/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/os/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/posix/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/path/win32/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/perf_hooks/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/process/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/punycode/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/querystring/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/readline/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/readline/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/repl/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/consumers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/stream/web/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/string_decoder/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/timers/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/timers/promises/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/tls/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/trace_events/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/tty/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/url/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/util/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/util/types/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/v8/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/vm/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/wasi/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/worker_threads/package.json","../node_modules/.pnpm/@types+node@24.19.0/node_modules/zlib/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/events/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/http/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/https/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/net/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/stream/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/tls/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/url/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/zlib/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/events/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/http/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/https/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/net/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/stream/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/tls/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/url/package.json","../node_modules/.pnpm/@types+ws@8.18.1/node_modules/zlib/package.json","../node_modules/.pnpm/@vitest+pretty-format@5.0.2/node_modules/@vitest/pretty-format/dist/package.json","../node_modules/.pnpm/@vitest+snapshot@5.0.2/node_modules/@vitest/snapshot/dist/package.json","../node_modules/.pnpm/@vitest+utils@5.0.2/node_modules/@vitest/utils/dist/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/commands/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/package.json","../node_modules/.pnpm/@wdio+protocols@9.31.5/node_modules/@wdio/protocols/build/protocols/package.json","../node_modules/.pnpm/@wdio+types@9.32.0/node_modules/@wdio/types/build/package.json","../node_modules/.pnpm/cheerio@1.1.2/node_modules/cheerio/dist/esm/api/package.json","../node_modules/.pnpm/css-select@5.2.2/node_modules/css-select/lib/esm/pseudo-selectors/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/es/package.json","../node_modules/.pnpm/css-what@6.2.2/node_modules/css-what/lib/package.json","../node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/package.json","../node_modules/.pnpm/expect@30.5.2/node_modules/expect/build/package.json","../node_modules/.pnpm/jest-diff@30.5.2/node_modules/jest-diff/build/package.json","../node_modules/.pnpm/jest-matcher-utils@30.5.2/node_modules/jest-matcher-utils/build/package.json","../node_modules/.pnpm/jest-mock@30.5.2/node_modules/jest-mock/build/package.json","../node_modules/.pnpm/node_modules/@types/assert/package.json","../node_modules/.pnpm/node_modules/@types/assert/strict/package.json","../node_modules/.pnpm/node_modules/@types/async_hooks/package.json","../node_modules/.pnpm/node_modules/@types/child_process/package.json","../node_modules/.pnpm/node_modules/@types/cluster/package.json","../node_modules/.pnpm/node_modules/@types/console/package.json","../node_modules/.pnpm/node_modules/@types/constants/package.json","../node_modules/.pnpm/node_modules/@types/crypto/package.json","../node_modules/.pnpm/node_modules/@types/dgram/package.json","../node_modules/.pnpm/node_modules/@types/diagnostics_channel/package.json","../node_modules/.pnpm/node_modules/@types/dns/package.json","../node_modules/.pnpm/node_modules/@types/dns/promises/package.json","../node_modules/.pnpm/node_modules/@types/domain/package.json","../node_modules/.pnpm/node_modules/@types/events/package.json","../node_modules/.pnpm/node_modules/@types/fs/package.json","../node_modules/.pnpm/node_modules/@types/fs/promises/package.json","../node_modules/.pnpm/node_modules/@types/http/package.json","../node_modules/.pnpm/node_modules/@types/http2/package.json","../node_modules/.pnpm/node_modules/@types/https/package.json","../node_modules/.pnpm/node_modules/@types/inspector/package.json","../node_modules/.pnpm/node_modules/@types/inspector/promises/package.json","../node_modules/.pnpm/node_modules/@types/module/package.json","../node_modules/.pnpm/node_modules/@types/net/package.json","../node_modules/.pnpm/node_modules/@types/os/package.json","../node_modules/.pnpm/node_modules/@types/path/package.json","../node_modules/.pnpm/node_modules/@types/path/posix/package.json","../node_modules/.pnpm/node_modules/@types/path/win32/package.json","../node_modules/.pnpm/node_modules/@types/perf_hooks/package.json","../node_modules/.pnpm/node_modules/@types/process/package.json","../node_modules/.pnpm/node_modules/@types/punycode/package.json","../node_modules/.pnpm/node_modules/@types/puppeteer-core/package.json","../node_modules/.pnpm/node_modules/@types/querystring/package.json","../node_modules/.pnpm/node_modules/@types/readline/package.json","../node_modules/.pnpm/node_modules/@types/readline/promises/package.json","../node_modules/.pnpm/node_modules/@types/repl/package.json","../node_modules/.pnpm/node_modules/@types/stream/consumers/package.json","../node_modules/.pnpm/node_modules/@types/stream/package.json","../node_modules/.pnpm/node_modules/@types/stream/promises/package.json","../node_modules/.pnpm/node_modules/@types/stream/web/package.json","../node_modules/.pnpm/node_modules/@types/string_decoder/package.json","../node_modules/.pnpm/node_modules/@types/timers/package.json","../node_modules/.pnpm/node_modules/@types/timers/promises/package.json","../node_modules/.pnpm/node_modules/@types/tls/package.json","../node_modules/.pnpm/node_modules/@types/trace_events/package.json","../node_modules/.pnpm/node_modules/@types/tty/package.json","../node_modules/.pnpm/node_modules/@types/url/package.json","../node_modules/.pnpm/node_modules/@types/util/package.json","../node_modules/.pnpm/node_modules/@types/util/types/package.json","../node_modules/.pnpm/node_modules/@types/v8/package.json","../node_modules/.pnpm/node_modules/@types/vm/package.json","../node_modules/.pnpm/node_modules/@types/wasi/package.json","../node_modules/.pnpm/node_modules/@types/worker_threads/package.json","../node_modules/.pnpm/node_modules/@types/zlib/package.json","../node_modules/.pnpm/node_modules/assert/package.json","../node_modules/.pnpm/node_modules/assert/strict/package.json","../node_modules/.pnpm/node_modules/async_hooks/package.json","../node_modules/.pnpm/node_modules/child_process/package.json","../node_modules/.pnpm/node_modules/cluster/package.json","../node_modules/.pnpm/node_modules/console/package.json","../node_modules/.pnpm/node_modules/constants/package.json","../node_modules/.pnpm/node_modules/crypto/package.json","../node_modules/.pnpm/node_modules/dgram/package.json","../node_modules/.pnpm/node_modules/diagnostics_channel/package.json","../node_modules/.pnpm/node_modules/dns/package.json","../node_modules/.pnpm/node_modules/dns/promises/package.json","../node_modules/.pnpm/node_modules/domain/package.json","../node_modules/.pnpm/node_modules/fs/package.json","../node_modules/.pnpm/node_modules/fs/promises/package.json","../node_modules/.pnpm/node_modules/http/package.json","../node_modules/.pnpm/node_modules/http2/package.json","../node_modules/.pnpm/node_modules/https/package.json","../node_modules/.pnpm/node_modules/inspector/package.json","../node_modules/.pnpm/node_modules/inspector/promises/package.json","../node_modules/.pnpm/node_modules/module/package.json","../node_modules/.pnpm/node_modules/net/package.json","../node_modules/.pnpm/node_modules/os/package.json","../node_modules/.pnpm/node_modules/path/package.json","../node_modules/.pnpm/node_modules/path/posix/package.json","../node_modules/.pnpm/node_modules/path/win32/package.json","../node_modules/.pnpm/node_modules/perf_hooks/package.json","../node_modules/.pnpm/node_modules/puppeteer-core/package.json","../node_modules/.pnpm/node_modules/querystring/package.json","../node_modules/.pnpm/node_modules/readline/package.json","../node_modules/.pnpm/node_modules/readline/promises/package.json","../node_modules/.pnpm/node_modules/repl/package.json","../node_modules/.pnpm/node_modules/stream/consumers/package.json","../node_modules/.pnpm/node_modules/stream/package.json","../node_modules/.pnpm/node_modules/stream/promises/package.json","../node_modules/.pnpm/node_modules/stream/web/package.json","../node_modules/.pnpm/node_modules/timers/package.json","../node_modules/.pnpm/node_modules/timers/promises/package.json","../node_modules/.pnpm/node_modules/tls/package.json","../node_modules/.pnpm/node_modules/trace_events/package.json","../node_modules/.pnpm/node_modules/tty/package.json","../node_modules/.pnpm/node_modules/url/package.json","../node_modules/.pnpm/node_modules/util/package.json","../node_modules/.pnpm/node_modules/util/types/package.json","../node_modules/.pnpm/node_modules/v8/package.json","../node_modules/.pnpm/node_modules/vm/package.json","../node_modules/.pnpm/node_modules/wasi/package.json","../node_modules/.pnpm/node_modules/worker_threads/package.json","../node_modules/.pnpm/node_modules/zlib/package.json","../node_modules/.pnpm/parse5-htmlparser2-tree-adapter@7.1.0/node_modules/parse5-htmlparser2-tree-adapter/dist/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/entities/decode/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/package.json","../node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/package.json","../node_modules/.pnpm/pretty-format@30.5.1/node_modules/pretty-format/build/package.json","../node_modules/.pnpm/undici@7.29.0/node_modules/undici/types/package.json","../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/bidi/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/package.json","../node_modules/.pnpm/webdriver@9.32.0_supports-color@8.1.1/node_modules/webdriver/build/request/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/@sinonjs/fake-timers/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/@types/puppeteer-core/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/puppeteer-core/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/browser/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/element/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/mobile/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/commands/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/session/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/actions/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/interception/package.json","../node_modules/.pnpm/webdriverio@9.32.0_supports-color@8.1.1/node_modules/webdriverio/build/utils/package.json","../node_modules/types/expect-webdriverio.d.ts/package.json","../node_modules/@types/assert/package.json","../node_modules/@types/assert/strict/package.json","../node_modules/@types/async_hooks/package.json","../node_modules/@types/child_process/package.json","../node_modules/@types/cluster/package.json","../node_modules/@types/console/package.json","../node_modules/@types/constants/package.json","../node_modules/@types/crypto/package.json","../node_modules/@types/dgram/package.json","../node_modules/@types/diagnostics_channel/package.json","../node_modules/@types/dns/package.json","../node_modules/@types/dns/promises/package.json","../node_modules/@types/domain/package.json","../node_modules/@types/events/package.json","../node_modules/@types/fs/package.json","../node_modules/@types/fs/promises/package.json","../node_modules/@types/http/package.json","../node_modules/@types/http2/package.json","../node_modules/@types/https/package.json","../node_modules/@types/inspector/package.json","../node_modules/@types/inspector/promises/package.json","../node_modules/@types/module/package.json","../node_modules/@types/net/package.json","../node_modules/@types/os/package.json","../node_modules/@types/path/package.json","../node_modules/@types/path/posix/package.json","../node_modules/@types/path/win32/package.json","../node_modules/@types/perf_hooks/package.json","../node_modules/@types/process/package.json","../node_modules/@types/punycode/package.json","../node_modules/@types/puppeteer-core/package.json","../node_modules/@types/querystring/package.json","../node_modules/@types/readline/package.json","../node_modules/@types/readline/promises/package.json","../node_modules/@types/repl/package.json","../node_modules/@types/stream/consumers/package.json","../node_modules/@types/stream/package.json","../node_modules/@types/stream/promises/package.json","../node_modules/@types/stream/web/package.json","../node_modules/@types/string_decoder/package.json","../node_modules/@types/timers/package.json","../node_modules/@types/timers/promises/package.json","../node_modules/@types/tls/package.json","../node_modules/@types/trace_events/package.json","../node_modules/@types/tty/package.json","../node_modules/@types/url/package.json","../node_modules/@types/util/package.json","../node_modules/@types/util/types/package.json","../node_modules/@types/v8/package.json","../node_modules/@types/vm/package.json","../node_modules/@types/wasi/package.json","../node_modules/@types/wdio__globals/types/package.json","../node_modules/@types/worker_threads/package.json","../node_modules/@types/zlib/package.json","../node_modules/@vitest/snapshot/environment/package.json","../node_modules/@wdio/globals/types/package.json","../node_modules/assert/package.json","../node_modules/assert/strict/package.json","../node_modules/async_hooks/package.json","../node_modules/child_process/package.json","../node_modules/cluster/package.json","../node_modules/console/package.json","../node_modules/constants/package.json","../node_modules/crypto/package.json","../node_modules/dgram/package.json","../node_modules/diagnostics_channel/package.json","../node_modules/dns/package.json","../node_modules/dns/promises/package.json","../node_modules/domain/package.json","../node_modules/events/package.json","../node_modules/fs/package.json","../node_modules/fs/promises/package.json","../node_modules/http/package.json","../node_modules/http2/package.json","../node_modules/https/package.json","../node_modules/inspector/package.json","../node_modules/inspector/promises/package.json","../node_modules/module/package.json","../node_modules/net/package.json","../node_modules/os/package.json","../node_modules/path/package.json","../node_modules/path/posix/package.json","../node_modules/path/win32/package.json","../node_modules/perf_hooks/package.json","../node_modules/process/package.json","../node_modules/punycode/package.json","../node_modules/puppeteer-core/package.json","../node_modules/querystring/package.json","../node_modules/readline/package.json","../node_modules/readline/promises/package.json","../node_modules/repl/package.json","../node_modules/stream/consumers/package.json","../node_modules/stream/package.json","../node_modules/stream/promises/package.json","../node_modules/stream/web/package.json","../node_modules/string_decoder/package.json","../node_modules/timers/package.json","../node_modules/timers/promises/package.json","../node_modules/tls/package.json","../node_modules/trace_events/package.json","../node_modules/tty/package.json","../node_modules/url/package.json","../node_modules/util/package.json","../node_modules/util/types/package.json","../node_modules/v8/package.json","../node_modules/vm/package.json","../node_modules/wasi/package.json","../node_modules/worker_threads/package.json","../node_modules/zlib/package.json"]}
@@ -93,16 +93,9 @@ const isMultiRemote = (obj) => {
93
93
  export const isMultiRemoteElement = (obj) => {
94
94
  return isMultiRemote(obj) && !Array.isArray(obj) && 'selector' in obj;
95
95
  };
96
- export const isMultiRemoteElements = (obj) => {
97
- return Array.isArray(obj) && obj.length > 0 && !isMultiRemoteElementArray(obj)
98
- && Array.prototype.every.call(obj, isMultiRemoteElement);
99
- };
100
96
  export const isMultiRemoteElementArray = (obj) => {
101
97
  return hasMultiRemoteFlag(obj) && 'parent' in obj && 'foundWith' in obj && 'selector' in obj;
102
98
  };
103
99
  export const isMultiRemoteElementLike = (obj) => {
104
- return isMultiRemoteElement(obj) || isMultiRemoteElementsLike(obj);
105
- };
106
- export const isMultiRemoteElementsLike = (obj) => {
107
- return isMultiRemoteElementArray(obj) || isMultiRemoteElements(obj);
100
+ return isMultiRemoteElement(obj) || isMultiRemoteElementArray(obj);
108
101
  };
@@ -1,7 +1,7 @@
1
1
  import { equals } from '../jasmineUtils.js';
2
2
  import { isArrayContainingMatcher } from '../utils.js';
3
3
  import { isSomeWrapper } from '../matchers/modifiers/some.js';
4
- import { awaitElementOrArray, isElement, isMultiRemoteElement, isMultiRemoteElementArray, isMultiRemoteElements, isMultiRemoteElementsLike, isStrictlyElementArray } from './elementsUtil.js';
4
+ import { awaitElementOrArray, isElement, isMultiRemoteElement, isMultiRemoteElementArray, isStrictlyElementArray } from './elementsUtil.js';
5
5
  import { getElementsPerInstance, getPerInstanceValues, hasSameInstanceNames } from './multiRemoteUtils.js';
6
6
  import { refreshElementArray } from './refetchElements.js';
7
7
  export async function executeCommandWithStrategy({ unresolvedElements, expectedValues, singleElementCompare, context: { isNot = false, iteration }, supportsArrayContaining = false, strictConfiguration = { allowEmptyElements: false, allowArrayWithSingleElement: false } }) {
@@ -9,7 +9,7 @@ export async function executeCommandWithStrategy({ unresolvedElements, expectedV
9
9
  const actualReceived = isSome ? unresolvedElements.elements : unresolvedElements;
10
10
  if (supportsArrayContaining && !isSome && isArrayContainingMatcher(expectedValues)) {
11
11
  const { selector, elements, other } = await awaitElementOrArray(unresolvedElements);
12
- if (isMultiRemoteElementsLike(elements)) {
12
+ if (isMultiRemoteElementArray(elements)) {
13
13
  return multiRemoteArrayContainingStrategy(elements, expectedValues, singleElementCompare, iteration);
14
14
  }
15
15
  if (elements) {
@@ -41,12 +41,11 @@ export async function executeCommandWithStrategy({ unresolvedElements, expectedV
41
41
  }
42
42
  const multiRemoteArrayContainingStrategy = async (elements, expectedValues, singleElementCompare, iteration) => {
43
43
  const currentElements = iteration > 0 ? await refreshElementArray(elements) : elements;
44
- const multiRemoteElements = currentElements;
45
- if (multiRemoteElements.length === 0) {
46
- return { subject: elements, actual: undefined, success: false, abort: !isMultiRemoteElementArray(elements) && !isMultiRemoteElements(elements) };
44
+ if (currentElements.length === 0) {
45
+ return { subject: elements, actual: undefined, success: false };
47
46
  }
48
- const { instances } = multiRemoteElements[0];
49
- const elementsPerInstance = getElementsPerInstance(multiRemoteElements, instances);
47
+ const { instances } = currentElements.parent;
48
+ const elementsPerInstance = getElementsPerInstance(currentElements, instances);
50
49
  const actual = Object.fromEntries(await Promise.all(instances.map(async (instance) => {
51
50
  const results = await Promise.all(elementsPerInstance[instance].map((element, index) => singleElementCompare(element, undefined, index)));
52
51
  return [instance, results.map((result) => result.actual)];
@@ -60,9 +59,9 @@ const multiRemoteArrayContainingStrategy = async (elements, expectedValues, sing
60
59
  };
61
60
  export const multipleElementResultsStrategy = async (unresolvedElements, expectedValues, singleElementCompare, { isNot, isSome, iteration }, { allowEmptyElements = false, allowArrayWithSingleElement = false, allowObjectExpectedValue = false } = {}) => {
62
61
  const { selector, other, multiRemoteSelector } = await awaitElementOrArray(unresolvedElements);
63
- const isRefetchable = isStrictlyElementArray(selector) || isMultiRemoteElementArray(selector) || isMultiRemoteElements(selector);
62
+ const isRefetchable = isStrictlyElementArray(selector) || isMultiRemoteElementArray(selector);
64
63
  let currentElements = selector;
65
- if (iteration > 0 && (isStrictlyElementArray(selector) || isMultiRemoteElementsLike(selector))) {
64
+ if (iteration > 0 && isRefetchable) {
66
65
  currentElements = await refreshElementArray(selector);
67
66
  }
68
67
  const subject = multiRemoteSelector ?? selector ?? other;
@@ -75,7 +74,7 @@ export const multipleElementResultsStrategy = async (unresolvedElements, expecte
75
74
  context: { isSome },
76
75
  };
77
76
  }
78
- const isUnexpectedPerInstanceValues = !multiRemoteSelector && !isMultiRemoteElementsLike(selector)
77
+ const isUnexpectedPerInstanceValues = !multiRemoteSelector && !isMultiRemoteElementArray(selector)
79
78
  && getPerInstanceValues(expectedValues, { allowObjectExpectedValue }) !== undefined;
80
79
  if (isElement(selector)) {
81
80
  const forceFailure = (!allowArrayWithSingleElement && Array.isArray(expectedValues)) || isUnexpectedPerInstanceValues;
@@ -83,7 +82,7 @@ export const multipleElementResultsStrategy = async (unresolvedElements, expecte
83
82
  const success = forceFailure ? !!isNot : compareResult.success;
84
83
  return { subject, success, actual: compareResult.actual, abort: forceFailure, context: { isSome } };
85
84
  }
86
- if (multiRemoteSelector || isMultiRemoteElementsLike(selector)) {
85
+ if (multiRemoteSelector || isMultiRemoteElementArray(selector)) {
87
86
  return multiRemoteElementsResultsStrategy(subject, multiRemoteSelector ?? selector, expectedValues, singleElementCompare, { isNot, isSome }, { allowArrayWithSingleElement, allowObjectExpectedValue });
88
87
  }
89
88
  const elementsSelector = selector;
@@ -115,9 +114,8 @@ export const multipleElementResultsStrategy = async (unresolvedElements, expecte
115
114
  };
116
115
  const multiRemoteElementsResultsStrategy = async (subject, multiRemoteSelector, expectedValues, singleElementCompare, { isNot, isSome }, { allowArrayWithSingleElement, allowObjectExpectedValue }) => {
117
116
  const isSingleElement = isMultiRemoteElement(multiRemoteSelector);
118
- const multiRemoteElements = isSingleElement ? [multiRemoteSelector] : multiRemoteSelector;
119
- const { instances } = multiRemoteElements[0];
120
- const elementsPerInstance = getElementsPerInstance(multiRemoteElements, instances);
117
+ const instances = isSingleElement ? multiRemoteSelector.instances : multiRemoteSelector.parent.instances;
118
+ const elementsPerInstance = getElementsPerInstance(isSingleElement ? [multiRemoteSelector] : multiRemoteSelector, instances);
121
119
  const perInstanceValues = getPerInstanceValues(expectedValues, { allowObjectExpectedValue });
122
120
  const expectedPerInstance = perInstanceValues ?? Object.fromEntries(instances.map((name) => [name, expectedValues]));
123
121
  const instanceNamesMismatch = !!perInstanceValues && !hasSameInstanceNames(perInstanceValues, instances);
@@ -1,6 +1,6 @@
1
1
  import { printDiffOrStringify, printExpected, printReceived, RECEIVED_COLOR, EXPECTED_COLOR, INVERTED_COLOR, stringify } from 'jest-matcher-utils';
2
2
  import { equals } from '../jasmineUtils.js';
3
- import { isArrayOfElement, isElementArrayLike, isElementOrArrayLike, isElementOrArrayOrMultiRemoteElementLike, isMultiRemoteElement, isMultiRemoteElementArray, isMultiRemoteElementLike, isMultiRemoteElementsLike, isStrictlyElementArray } from './elementsUtil.js';
3
+ import { isArrayOfElement, isElementArrayLike, isElementOrArrayLike, isElementOrArrayOrMultiRemoteElementLike, isMultiRemoteElement, isMultiRemoteElementArray, isMultiRemoteElementLike, isStrictlyElementArray } from './elementsUtil.js';
4
4
  import { toJsonString } from './stringUtil.js';
5
5
  import { isJasmineStringAsymmetricMatcher, toArray } from '../utils.js';
6
6
  import { isBrowser, isMultiRemoteBrowser } from './multiRemoteUtils.js';
@@ -22,10 +22,9 @@ export const getSelectors = (el) => {
22
22
  const subject = formatMultiRemoteInstanceNames(el.instances);
23
23
  return `${subject}.$(\`${getSelector(el)}\`)`;
24
24
  }
25
- else if (isMultiRemoteElementsLike(el)) {
26
- const instances = isMultiRemoteElementArray(el) ? el.parent.instances : el[0].instances ?? [];
27
- const selector = isMultiRemoteElementArray(el) ? getSelector(el) : el[0] ? getSelector(el[0]) : '';
28
- const subject = formatMultiRemoteInstanceNames(instances);
25
+ else if (isMultiRemoteElementArray(el)) {
26
+ const selector = getSelector(el);
27
+ const subject = formatMultiRemoteInstanceNames(el.parent.instances);
29
28
  return `${subject}.$$(\`${selector}\`)`;
30
29
  }
31
30
  else if (isStrictlyElementArray(el)) {
@@ -159,12 +158,12 @@ export const enhanceErrorBe = (subject, actuals, context, options) => {
159
158
  return acc;
160
159
  }, {});
161
160
  }
162
- else if (isMultiRemoteElementsLike(subject) && subject.length === 0) {
161
+ else if (subject.length === 0) {
163
162
  expected = 'at least one result';
164
163
  actual = actualValue;
165
164
  }
166
- else if (isMultiRemoteElementsLike(subject)) {
167
- const { instances } = subject[0];
165
+ else {
166
+ const { instances } = subject.parent;
168
167
  const typedActuals = actuals;
169
168
  actual = instances.reduce((acc, instance) => {
170
169
  acc[instance] = typedActuals[instance].map(actual => isSuccess(isNot, actual) ? `${not(isNot)}${expectation}` : `${not(!isNot)}${expectation}`);
@@ -175,9 +174,6 @@ export const enhanceErrorBe = (subject, actuals, context, options) => {
175
174
  return acc;
176
175
  }, {});
177
176
  }
178
- else {
179
- throw new Error('Unsupported Multi-remote object type for enhanceErrorBe');
180
- }
181
177
  }
182
178
  else if (isElementArrayLike(subject)) {
183
179
  expected = subject.length === 0 ? 'at least one result' : Array(subject.length).fill(expectedValue);
@@ -22,7 +22,8 @@ export const getPerInstanceValues = (value, { allowObjectExpectedValue = false }
22
22
  }
23
23
  return !allowObjectExpectedValue && isMultiRemoteValues(value) ? value : undefined;
24
24
  };
25
- export const getElementsPerInstance = (multiRemoteElements, instances) => {
25
+ export const getElementsPerInstance = (elements, instances) => {
26
+ const multiRemoteElements = elements;
26
27
  return Object.fromEntries(instances.map((name) => {
27
28
  const elements = [];
28
29
  for (let index = 0; index < multiRemoteElements.length; index++) {
@@ -57,28 +58,36 @@ export const isMock = (obj) => {
57
58
  export const isMockArray = (obj) => {
58
59
  return Array.isArray(obj) && obj.length > 0 && obj.every(isMock);
59
60
  };
61
+ export const isMultiRemoteMock = (obj) => {
62
+ return typeof obj === 'object' && obj !== null && !Array.isArray(obj) && hasMultiRemoteFlag(obj)
63
+ && Array.isArray(obj.instances)
64
+ && typeof obj.getInstance === 'function';
65
+ };
66
+ const multiRemoteMockInstanceNames = new WeakMap();
60
67
  export const awaitMocks = async (received) => {
61
- const mocks = received instanceof Promise ? await received : received;
68
+ const awaited = received instanceof Promise ? await received : received;
69
+ if (isMultiRemoteMock(awaited)) {
70
+ const multiRemoteMocks = awaited.instances.map((name) => awaited.getInstance(name));
71
+ multiRemoteMockInstanceNames.set(multiRemoteMocks, [...awaited.instances]);
72
+ return multiRemoteMocks;
73
+ }
74
+ const mocks = awaited;
62
75
  if (Array.isArray(mocks) && mocks.length === 0) {
63
76
  throw new Error('Expected a mock or a non-empty array of mocks, received an empty array');
64
77
  }
65
78
  return mocks;
66
79
  };
67
80
  export const getMockInstanceNames = (mocks) => {
81
+ const multiRemoteMockNames = multiRemoteMockInstanceNames.get(mocks);
82
+ if (multiRemoteMockNames) {
83
+ return { names: multiRemoteMockNames, isNamedByInstance: true };
84
+ }
68
85
  const instances = getGlobalMultiRemoteInstanceNames();
69
86
  if (instances && instances.length === mocks.length) {
70
87
  return { names: instances, isNamedByInstance: true };
71
88
  }
72
89
  return { names: mocks.map((_, index) => `mocks[${index}]`), isNamedByInstance: false };
73
90
  };
74
- export const isGlobalBrowserSingleRemote = () => {
75
- try {
76
- return typeof browser !== 'undefined' && isBrowser(browser) && !hasMultiRemoteFlag(browser);
77
- }
78
- catch {
79
- return false;
80
- }
81
- };
82
91
  export const hasMultiRemoteFlag = (obj) => {
83
92
  if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
84
93
  return false;
@@ -1,4 +1,4 @@
1
- import { isMultiRemoteElementArray, isMultiRemoteElements, isStrictlyElementArray } from './elementsUtil.js';
1
+ import { isMultiRemoteElementArray, isStrictlyElementArray } from './elementsUtil.js';
2
2
  export const refetchElements = async (elements) => {
3
3
  if (elements
4
4
  && (isStrictlyElementArray(elements) || isMultiRemoteElementArray(elements))
@@ -7,26 +7,8 @@ export const refetchElements = async (elements) => {
7
7
  const $$ = browser[elements.foundWith];
8
8
  return await $$.call(browser, elements.selector, ...elements.props);
9
9
  }
10
- else if (isMultiRemoteElements(elements)) {
11
- const selector = elements.find((element) => !!element.selector)?.selector;
12
- if (selector) {
13
- warnMultiRemoteRefetchFallbackOnce();
14
- if (typeof multiRemoteBrowser === 'undefined') {
15
- return elements;
16
- }
17
- return await multiRemoteBrowser.$$(selector);
18
- }
19
- }
20
10
  return elements;
21
11
  };
22
- let hasWarnedMultiRemoteRefetchFallback = false;
23
- const warnMultiRemoteRefetchFallbackOnce = () => {
24
- if (hasWarnedMultiRemoteRefetchFallback) {
25
- return;
26
- }
27
- hasWarnedMultiRemoteRefetchFallback = true;
28
- console.warn('expect-webdriverio: refetching multi-remote elements between retries is best effort: they are re-queried from the global `multiRemoteBrowser`, ignoring any parent element or `select()` scope. Set `WDIO_ENABLE_MULTI_REMOTE_ELEMENT_ARRAY=true` for reliable retries.');
29
- };
30
12
  export const syncronizeElements = async (subject, refetchedElements) => {
31
13
  if (subject instanceof Promise) {
32
14
  await syncronizeChainableElementArray(subject, refetchedElements);
@@ -49,9 +31,6 @@ export const synchronizeElementArray = (subject, refetchedElements) => {
49
31
  };
50
32
  export const refreshElementArray = async (subject) => {
51
33
  const refetchedElements = await refetchElements(subject);
52
- if (refetchedElements.length === 0 && isMultiRemoteElements(subject)) {
53
- return refetchedElements;
54
- }
55
34
  synchronizeElementArray(subject, refetchedElements);
56
35
  return subject;
57
36
  };
@@ -0,0 +1,7 @@
1
+ const OWN_SNAPSHOT_FRAME = /expect-webdriverio[\\/]lib[\\/]matchers[\\/]snapshot\.js:/;
2
+ const JASMINE_CORE_FRAME = /node_modules[\\/]jasmine-core[\\/]/;
3
+ export function filterInlineSnapshotStack(stack) {
4
+ return stack.split('\n').filter((line) => (line.includes('__INLINE_SNAPSHOT__') ||
5
+ !(line.includes('__EXTERNAL_MATCHER_TRAP__') ||
6
+ OWN_SNAPSHOT_FRAME.test(line)))).filter((line) => (!JASMINE_CORE_FRAME.test(line)));
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expect-webdriverio",
3
- "version": "8.0.0-alpha.0",
3
+ "version": "8.0.0-alpha.2",
4
4
  "author": "Mykola Grybyk <mykola.grybyk@gmail.com>",
5
5
  "description": "WebdriverIO Assertion Library",
6
6
  "license": "MIT",
@@ -88,7 +88,6 @@
88
88
  },
89
89
  "dependencies": {
90
90
  "@vitest/snapshot": "^5.0.2",
91
- "@wdio/types": "^9.31.5",
92
91
  "deep-eql": "^5.0.2",
93
92
  "expect": "^30.5.2",
94
93
  "jest-matcher-utils": "^30.5.2"
@@ -104,9 +103,10 @@
104
103
  "@types/mocha": "^10.0.10",
105
104
  "@types/node": "^24.19.0",
106
105
  "@vitest/coverage-v8": "^5.0.2",
107
- "@wdio/cli": "^9.32.0",
108
- "@wdio/globals": "^9.31.3",
109
- "@wdio/protocols": "^9.31.5",
106
+ "@wdio/cli": "^9.32.0 || ^10.0.0-0",
107
+ "@wdio/globals": "^9.31.3 || ^10.0.0-0",
108
+ "@wdio/protocols": "^9.31.5 || ^10.0.0-0",
109
+ "@wdio/types": "^9.32.0 || ^10.0.0-0",
110
110
  "husky": "^9.1.7",
111
111
  "npm-run-all2": "^9.0.3",
112
112
  "oxlint": "^1.85.0",
@@ -115,11 +115,12 @@
115
115
  "strip-ansi": "^7.2.0",
116
116
  "typescript": "^7.0.2",
117
117
  "vitest": "^5.0.2",
118
- "webdriver": "^9.32.0",
119
- "webdriverio": "^9.32.0"
118
+ "webdriver": "^9.32.0 || ^10.0.0-0",
119
+ "webdriverio": "^9.32.0 || ^10.0.0-0"
120
120
  },
121
121
  "peerDependencies": {
122
- "webdriverio": "^9.31.5"
122
+ "@wdio/types": "^9.32.0 || ^10.0.0-0",
123
+ "webdriverio": "^9.32.0 || ^10.0.0-0"
123
124
  },
124
125
  "peerDependenciesMeta": {
125
126
  "webdriverio": {
@@ -84,12 +84,18 @@ type ArrayOfElementsPromise = Promise<WebdriverIO.Element[]>
84
84
  */
85
85
  type ElementOrMaybeSomeArrayLike = ElementLike | MaybeSomeElementArrayLike
86
86
  type ElementLike = WebdriverIO.Element | ChainablePromiseElement
87
+ // `MultiRemoteElement[]` is the WebdriverIO v9 type of a multi-remote `$$()`, a `MultiRemoteElementArray` at runtime
88
+ // TODO(#2255) WebdriverIO v9: use the WebdriverIO v10 `MultiRemoteElementArray` type instead of `MultiRemoteElement[]`
87
89
  type ElementArrayLike = WebdriverIO.ElementArray | ChainablePromiseArray | WebdriverIO.Element[] | ArrayOfElementsPromise | ElementArrayPromise | WebdriverIO.MultiRemoteElement[]
88
90
  type MaybeSomeElementArrayLike = MaybeSome<WebdriverIO.ElementArray | ChainablePromiseArray | WebdriverIO.Element[] | ArrayOfElementsPromise | ElementArrayPromise | WebdriverIO.MultiRemoteElement[]>
89
91
  type MultiRemoteElementOrElements = WebdriverIO.MultiRemoteElement | WebdriverIO.MultiRemoteElement[]
90
92
  type MockPromise = Promise<WebdriverIO.Mock>
93
+ /** WebdriverIO v10 multi-remote `mock()`: a `MultiRemoteMock` with one mock per instance name, not in the v9 types */
94
+ // TODO(#2255) WebdriverIO v9: use the WebdriverIO v10 `MultiRemoteMock` type instead
95
+ type MultiRemoteMockLike = { isMultiRemote: true, instances: readonly string[], getInstance(name: string): WebdriverIO.Mock }
91
96
  /** Multi-remote `mock()`, one mock per instance: every instance's mock must satisfy the network matcher */
92
- type MultiRemoteMocks = WebdriverIO.Mock[] | Promise<WebdriverIO.Mock[]>
97
+ // TODO(#2255) WebdriverIO v9: remove the `WebdriverIO.Mock[]` of the v9 `mock()`
98
+ type MultiRemoteMocks = WebdriverIO.Mock[] | Promise<WebdriverIO.Mock[]> | MultiRemoteMockLike | Promise<MultiRemoteMockLike>
93
99
 
94
100
  /**
95
101
  * Type helpers allowing to use the function when the expect(actual: T) is of the expected type T.