webdriverio 9.1.2 → 9.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/execute.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,OAAO,CAAC,WAAW,EAAE,cAAc,SAAS,GAAG,EAAE,EACnE,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC1D,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,cAAc,KAAK,WAAW,CAAC,EAChE,GAAG,IAAI,EAAE,cAAc,GACxB,OAAO,CAAC,WAAW,CAAC,CAqCtB"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/execute.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,OAAO,CAAC,WAAW,EAAE,cAAc,SAAS,GAAG,EAAE,EACnE,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC1D,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,cAAc,KAAK,WAAW,CAAC,EAChE,GAAG,IAAI,EAAE,cAAc,GACxB,OAAO,CAAC,WAAW,CAAC,CAwCtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"executeAsync.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/executeAsync.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,cAAc,SAAS,GAAG,EAAE,EACxE,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC1D,MAAM,EACF,MAAM,GACN,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,EACjG,GAAG,IAAI,EAAE,cAAc,GACxB,OAAO,CAAC,WAAW,CAAC,CA6CtB"}
1
+ {"version":3,"file":"executeAsync.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/executeAsync.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,cAAc,SAAS,GAAG,EAAE,EACxE,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC1D,MAAM,EACF,MAAM,GACN,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,EACjG,GAAG,IAAI,EAAE,cAAc,GACxB,OAAO,CAAC,WAAW,CAAC,CAgDtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPuppeteer.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/getPuppeteer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAa,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAM5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,YAAY,CAAE,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwGxF"}
1
+ {"version":3,"file":"getPuppeteer.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/getPuppeteer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAa,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAO5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,YAAY,CAAE,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqHxF"}
@@ -1,49 +1,4 @@
1
1
  type WaitState = 'none' | 'interactive' | 'networkIdle' | 'complete';
2
- interface UrlCommandOptions {
3
- /**
4
- * The desired state the requested resource should be in before finishing the command.
5
- * It supports the following states:
6
- *
7
- * - `none`: no wait after the page request is made and the response is received
8
- * - `interactive`: wait until the page is interactive
9
- * - `complete`: wait until the DOM tree of the page is fully loaded
10
- * - `networkIdle`: wait until there are no pending network requests
11
- *
12
- * @default 'complete'
13
- */
14
- wait?: WaitState;
15
- /**
16
- * Headers to be sent with the request.
17
- * @default {}
18
- */
19
- headers?: Record<string, string>;
20
- /**
21
- * Basic authentication credentials
22
- * Note: this will overwrite the existing `Authorization` header if provided in the `headers` option
23
- */
24
- auth?: {
25
- user: string;
26
- pass: string;
27
- };
28
- /**
29
- * If set to a number, the command will wait for the specified amount of milliseconds for the page to load
30
- * all responses before returning.
31
- *
32
- * Note: for this to have an impact, it requires the `wait` option to be set to `networkIdle`
33
- *
34
- * @default 5000
35
- */
36
- timeout?: number;
37
- /**
38
- * A function that is being called before your page has loaded all of its resources. It allows you to easily
39
- * mock the environment, e.g. overwrite Web APIs that your application uses.
40
- *
41
- * Note: the provided function is being serialized and executed in the browser context. You can not pass in variables
42
- * from the Node.js context. Furthermore changes to the environment only apply for this specific page load.
43
- * Checkout `browser.addPreloadScript` for a more versatile way to mock the environment.
44
- */
45
- onBeforeLoad?: () => any;
46
- }
47
2
  /**
48
3
  *
49
4
  * The `url` command loads an URL in the browser. If a baseUrl is specified in the config,
@@ -145,5 +100,50 @@ interface UrlCommandOptions {
145
100
  *
146
101
  */
147
102
  export declare function url(this: WebdriverIO.Browser, path: string, options?: UrlCommandOptions): Promise<WebdriverIO.Request | void>;
103
+ interface UrlCommandOptions {
104
+ /**
105
+ * The desired state the requested resource should be in before finishing the command.
106
+ * It supports the following states:
107
+ *
108
+ * - `none`: no wait after the page request is made and the response is received
109
+ * - `interactive`: wait until the page is interactive
110
+ * - `complete`: wait until the DOM tree of the page is fully loaded
111
+ * - `networkIdle`: wait until there are no pending network requests
112
+ *
113
+ * @default 'complete'
114
+ */
115
+ wait?: WaitState;
116
+ /**
117
+ * Headers to be sent with the request.
118
+ * @default {}
119
+ */
120
+ headers?: Record<string, string>;
121
+ /**
122
+ * Basic authentication credentials
123
+ * Note: this will overwrite the existing `Authorization` header if provided in the `headers` option
124
+ */
125
+ auth?: {
126
+ user: string;
127
+ pass: string;
128
+ };
129
+ /**
130
+ * If set to a number, the command will wait for the specified amount of milliseconds for the page to load
131
+ * all responses before returning.
132
+ *
133
+ * Note: for this to have an impact, it requires the `wait` option to be set to `networkIdle`
134
+ *
135
+ * @default 5000
136
+ */
137
+ timeout?: number;
138
+ /**
139
+ * A function that is being called before your page has loaded all of its resources. It allows you to easily
140
+ * mock the environment, e.g. overwrite Web APIs that your application uses.
141
+ *
142
+ * Note: the provided function is being serialized and executed in the browser context. You can not pass in variables
143
+ * from the Node.js context. Furthermore changes to the environment only apply for this specific page load.
144
+ * Checkout `browser.addPreloadScript` for a more versatile way to mock the environment.
145
+ */
146
+ onBeforeLoad?: () => any;
147
+ }
148
148
  export {};
149
149
  //# sourceMappingURL=url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/url.ts"],"names":[],"mappings":"AAKA,KAAK,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAA;AAKpE,UAAU,iBAAiB;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,wBAAsB,GAAG,CACrB,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CA+ErC"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/url.ts"],"names":[],"mappings":"AAKA,KAAK,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAA;AAKpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,wBAAsB,GAAG,CACrB,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CA8FrC;AAED,UAAU,iBAAiB;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,CAAA;CAC3B"}
package/build/index.js CHANGED
@@ -78,7 +78,7 @@ import { URL as URL2 } from "node:url";
78
78
  import cssValue from "css-value";
79
79
  import rgb2hex from "rgb2hex";
80
80
  import GraphemeSplitter from "grapheme-splitter";
81
- import logger19 from "@wdio/logger";
81
+ import logger20 from "@wdio/logger";
82
82
  import isPlainObject from "is-plain-obj";
83
83
  import { ELEMENT_KEY as ELEMENT_KEY17 } from "webdriver";
84
84
  import { UNICODE_CHARACTERS as UNICODE_CHARACTERS2, asyncIterators, getBrowserObject as getBrowserObject30 } from "@wdio/utils";
@@ -555,6 +555,13 @@ var MOVE_PARAM_DEFAULTS = {
555
555
  duration: 100,
556
556
  origin: ORIGIN_DEFAULT
557
557
  };
558
+ function removeDefaultParams(seq) {
559
+ for (const [key, value] of Object.entries(seq)) {
560
+ if (value === 0 && !["x", "y", "button", "duration"].includes(key)) {
561
+ delete seq[key];
562
+ }
563
+ }
564
+ }
558
565
  function mapButton(params) {
559
566
  const buttons = {
560
567
  left: 0,
@@ -592,6 +599,7 @@ var PointerAction = class extends BaseAction {
592
599
  } else if (params) {
593
600
  Object.assign(seq, params);
594
601
  }
602
+ removeDefaultParams(seq);
595
603
  this.sequence.push(seq);
596
604
  return this;
597
605
  }
@@ -603,11 +611,13 @@ var PointerAction = class extends BaseAction {
603
611
  return this;
604
612
  }
605
613
  down(params = {}) {
606
- this.sequence.push({
614
+ const seq = {
607
615
  type: "pointerDown",
608
616
  ...PARAM_DEFAULTS,
609
617
  ...mapButton(params)
610
- });
618
+ };
619
+ removeDefaultParams(seq);
620
+ this.sequence.push(seq);
611
621
  return this;
612
622
  }
613
623
  /**
@@ -3020,6 +3030,44 @@ var ContextManager = class {
3020
3030
  }
3021
3031
  };
3022
3032
 
3033
+ // src/polyfill.ts
3034
+ import logger5 from "@wdio/logger";
3035
+ var polyfillManager = /* @__PURE__ */ new Map();
3036
+ var log5 = logger5("webdriverio:PolyfillManager");
3037
+ var NAME_POLYFILL = "var __defProp = Object.defineProperty;var __name = (target, value) => __defProp(target, 'name', { value, configurable: true });globalThis.__name = __name;";
3038
+ function getPolyfillManager(browser) {
3039
+ const existingPolyfillManager = polyfillManager.get(browser);
3040
+ if (existingPolyfillManager) {
3041
+ return existingPolyfillManager;
3042
+ }
3043
+ const newContext = new PolyfillManager(browser);
3044
+ polyfillManager.set(browser, newContext);
3045
+ return newContext;
3046
+ }
3047
+ var PolyfillManager = class {
3048
+ #initialize;
3049
+ constructor(browser) {
3050
+ if (!browser.isBidi || process.env.VITEST_WORKER_ID || browser.options?.automationProtocol !== "webdriver") {
3051
+ this.#initialize = Promise.resolve(true);
3052
+ return;
3053
+ }
3054
+ const polyfill = (polyfill2) => {
3055
+ const closure = new Function(polyfill2);
3056
+ return closure();
3057
+ };
3058
+ this.#initialize = Promise.all([
3059
+ browser.addInitScript(polyfill, NAME_POLYFILL),
3060
+ browser.execute(polyfill, NAME_POLYFILL)
3061
+ ]).then(() => {
3062
+ log5.info("polyfill script added");
3063
+ return true;
3064
+ }, () => false);
3065
+ }
3066
+ async initialize() {
3067
+ return this.#initialize;
3068
+ }
3069
+ };
3070
+
3023
3071
  // src/commands/browser/execute.ts
3024
3072
  async function execute(script, ...args) {
3025
3073
  if (typeof script !== "string" && typeof script !== "function") {
@@ -3045,7 +3093,10 @@ async function execute(script, ...args) {
3045
3093
  return parseScriptResult(params, result);
3046
3094
  }
3047
3095
  if (typeof script === "function") {
3048
- script = `return (${script}).apply(null, arguments)`;
3096
+ script = `
3097
+ ${NAME_POLYFILL}
3098
+ return (${script}).apply(null, arguments)
3099
+ `;
3049
3100
  }
3050
3101
  return this.executeScript(script, verifyArgsAndStripIfElement(args));
3051
3102
  }
@@ -3084,14 +3135,17 @@ async function executeAsync(script, ...args) {
3084
3135
  return parseScriptResult(params, result);
3085
3136
  }
3086
3137
  if (typeof script === "function") {
3087
- script = `return (${script}).apply(null, arguments)`;
3138
+ script = `
3139
+ ${NAME_POLYFILL}
3140
+ return (${script}).apply(null, arguments)
3141
+ `;
3088
3142
  }
3089
3143
  return this.executeAsyncScript(script, verifyArgsAndStripIfElement(args));
3090
3144
  }
3091
3145
 
3092
3146
  // src/commands/browser/getCookies.ts
3093
- import logger5 from "@wdio/logger";
3094
- var log5 = logger5("webdriverio");
3147
+ import logger6 from "@wdio/logger";
3148
+ var log6 = logger6("webdriverio");
3095
3149
  async function getCookies(filter) {
3096
3150
  const usesMultipleFilter = Array.isArray(filter) && filter.length > 1;
3097
3151
  if (!this.isBidi || usesMultipleFilter) {
@@ -3110,7 +3164,7 @@ async function getCookiesClassic(names) {
3110
3164
  }
3111
3165
  const usesMultipleFilter = Array.isArray(names) && names.length > 1;
3112
3166
  if (usesMultipleFilter) {
3113
- log5.warn(
3167
+ log6.warn(
3114
3168
  "Passing a string array as filter for `getCookies` is deprecated and its support will be removed in an upcoming version of WebdriverIO!"
3115
3169
  );
3116
3170
  const allCookies2 = await this.getAllCookies();
@@ -3129,7 +3183,7 @@ function getCookieFilter(names) {
3129
3183
  }
3130
3184
  return (Array.isArray(names) ? names : [names]).map((filter) => {
3131
3185
  if (typeof filter === "string") {
3132
- log5.warn("Passing string values into `getCookie` is deprecated and its support will be removed in an upcoming version of WebdriverIO!");
3186
+ log6.warn("Passing string values into `getCookie` is deprecated and its support will be removed in an upcoming version of WebdriverIO!");
3133
3187
  return { name: filter };
3134
3188
  }
3135
3189
  return filter;
@@ -3137,9 +3191,10 @@ function getCookieFilter(names) {
3137
3191
  }
3138
3192
 
3139
3193
  // src/commands/browser/getPuppeteer.ts
3140
- import logger6 from "@wdio/logger";
3194
+ import logger7 from "@wdio/logger";
3141
3195
  import { userImport } from "@wdio/utils";
3142
- var log6 = logger6("webdriverio");
3196
+ var log7 = logger7("webdriverio");
3197
+ var DEBUG_PIPE_FLAG = "remote-debugging-pipe";
3143
3198
  async function getPuppeteer() {
3144
3199
  const puppeteer = await userImport("puppeteer-core");
3145
3200
  if (!puppeteer) {
@@ -3148,7 +3203,7 @@ async function getPuppeteer() {
3148
3203
  );
3149
3204
  }
3150
3205
  if (this.puppeteer?.connected) {
3151
- log6.debug("Reusing existing puppeteer session");
3206
+ log7.debug("Reusing existing puppeteer session");
3152
3207
  return this.puppeteer;
3153
3208
  }
3154
3209
  const { headers } = this.options;
@@ -3179,6 +3234,15 @@ async function getPuppeteer() {
3179
3234
  defaultViewport: null
3180
3235
  });
3181
3236
  return this.puppeteer;
3237
+ } else if (
3238
+ /**
3239
+ * if --remote-debugging-pipe is set as Chrome flag, we can't attach to the session
3240
+ * as there won't be a `debuggerAddress` available in the capabilities. Provide this
3241
+ * better error message to the user.
3242
+ */
3243
+ chromiumOptions && (chromiumOptions.args?.includes(DEBUG_PIPE_FLAG) || chromiumOptions.args?.includes(`--${DEBUG_PIPE_FLAG}`))
3244
+ ) {
3245
+ throw new Error(`Cannot attach to Chrome Devtools session if --${DEBUG_PIPE_FLAG} is set as Chrome flag.`);
3182
3246
  }
3183
3247
  if (this.capabilities.browserName?.toLowerCase() === "firefox") {
3184
3248
  if (!this.capabilities.browserVersion) {
@@ -3250,7 +3314,7 @@ import { getBrowserObject as getBrowserObject5 } from "@wdio/utils";
3250
3314
 
3251
3315
  // src/utils/interception/index.ts
3252
3316
  import EventEmitter2 from "node:events";
3253
- import logger7 from "@wdio/logger";
3317
+ import logger8 from "@wdio/logger";
3254
3318
  import { URLPattern } from "urlpattern-polyfill";
3255
3319
 
3256
3320
  // src/utils/Timer.ts
@@ -3416,7 +3480,7 @@ function getPatternParam(pattern, key) {
3416
3480
  }
3417
3481
 
3418
3482
  // src/utils/interception/index.ts
3419
- var log7 = logger7("WebDriverInterception");
3483
+ var log8 = logger8("WebDriverInterception");
3420
3484
  var hasSubscribedToEvents = false;
3421
3485
  var WebDriverInterception = class _WebDriverInterception {
3422
3486
  #pattern;
@@ -3445,7 +3509,7 @@ var WebDriverInterception = class _WebDriverInterception {
3445
3509
  "network.responseStarted"
3446
3510
  ]
3447
3511
  });
3448
- log7.info("subscribed to network events");
3512
+ log8.info("subscribed to network events");
3449
3513
  hasSubscribedToEvents = true;
3450
3514
  }
3451
3515
  const interception = await browser.networkAddIntercept({
@@ -3493,14 +3557,14 @@ var WebDriverInterception = class _WebDriverInterception {
3493
3557
  if (!this.#isRequestMatching(request)) {
3494
3558
  return;
3495
3559
  }
3496
- const continueRequest = (
3497
- /**
3498
- * - mock has no request/respond overwrites
3499
- * - no request modifications are set, e.g. no overwrite is set
3500
- */
3501
- !this.#matchesFilterOptions(request) || this.#respondOverwrites.length === 0 || !this.#respondOverwrites[0].overwrite
3502
- );
3503
- if (continueRequest) {
3560
+ if (!this.#matchesFilterOptions(request)) {
3561
+ this.#emitter.emit("continue", request.request.request);
3562
+ return this.#browser.networkProvideResponse({
3563
+ request: request.request.request
3564
+ }).catch(this.#handleNetworkProvideResponseError);
3565
+ }
3566
+ this.#calls.push(request);
3567
+ if (this.#respondOverwrites.length === 0 || !this.#respondOverwrites[0].overwrite) {
3504
3568
  this.#emitter.emit("continue", request.request.request);
3505
3569
  return this.#browser.networkProvideResponse({
3506
3570
  request: request.request.request
@@ -3607,7 +3671,7 @@ var WebDriverInterception = class _WebDriverInterception {
3607
3671
  this.#respondOverwrites = [];
3608
3672
  this.#restored = true;
3609
3673
  const handle = await this.#browser.getWindowHandle();
3610
- log7.trace(`Restoring mock for ${handle}`);
3674
+ log8.trace(`Restoring mock for ${handle}`);
3611
3675
  SESSION_MOCKS[handle].delete(this);
3612
3676
  if (this.#mockId) {
3613
3677
  await this.#browser.networkRemoveIntercept({ intercept: this.#mockId });
@@ -3747,11 +3811,11 @@ async function mock(url6, filterOptions) {
3747
3811
  }
3748
3812
 
3749
3813
  // src/commands/browser/mockClearAll.ts
3750
- import logger8 from "@wdio/logger";
3751
- var log8 = logger8("webdriverio:mockClearAll");
3814
+ import logger9 from "@wdio/logger";
3815
+ var log9 = logger9("webdriverio:mockClearAll");
3752
3816
  async function mockClearAll() {
3753
3817
  for (const [handle, mocks] of Object.entries(SESSION_MOCKS)) {
3754
- log8.trace(`Clearing mocks for ${handle}`);
3818
+ log9.trace(`Clearing mocks for ${handle}`);
3755
3819
  for (const mock2 of mocks) {
3756
3820
  mock2.clear();
3757
3821
  }
@@ -3759,11 +3823,11 @@ async function mockClearAll() {
3759
3823
  }
3760
3824
 
3761
3825
  // src/commands/browser/mockRestoreAll.ts
3762
- import logger9 from "@wdio/logger";
3763
- var log9 = logger9("webdriverio:mockRestoreAll");
3826
+ import logger10 from "@wdio/logger";
3827
+ var log10 = logger10("webdriverio:mockRestoreAll");
3764
3828
  async function mockRestoreAll() {
3765
3829
  for (const [handle, mocks] of Object.entries(SESSION_MOCKS)) {
3766
- log9.trace(`Clearing mocks for ${handle}`);
3830
+ log10.trace(`Clearing mocks for ${handle}`);
3767
3831
  for (const mock2 of mocks) {
3768
3832
  await mock2.restore();
3769
3833
  }
@@ -3858,19 +3922,19 @@ async function react$(selector, { props = {}, state = {} } = {}) {
3858
3922
  }
3859
3923
 
3860
3924
  // src/commands/browser/reloadSession.ts
3861
- import logger10 from "@wdio/logger";
3862
- var log10 = logger10("webdriverio");
3925
+ import logger11 from "@wdio/logger";
3926
+ var log11 = logger11("webdriverio");
3863
3927
  async function reloadSession(newCapabilities) {
3864
3928
  const oldSessionId = this.sessionId;
3865
3929
  const shutdownDriver = Boolean(newCapabilities?.browserName);
3866
3930
  try {
3867
3931
  await this.deleteSession({ shutdownDriver });
3868
3932
  } catch (err) {
3869
- log10.warn(`Suppressing error closing the session: ${err.stack}`);
3933
+ log11.warn(`Suppressing error closing the session: ${err.stack}`);
3870
3934
  }
3871
3935
  if (this.puppeteer?.connected) {
3872
3936
  this.puppeteer.disconnect();
3873
- log10.debug("Disconnected puppeteer session");
3937
+ log11.debug("Disconnected puppeteer session");
3874
3938
  }
3875
3939
  const ProtocolDriver = (await import(
3876
3940
  /* @vite-ignore */
@@ -3964,11 +4028,11 @@ async function saveScreenshot(filepath) {
3964
4028
  }
3965
4029
 
3966
4030
  // src/commands/browser/scroll.ts
3967
- import logger11 from "@wdio/logger";
3968
- var log11 = logger11("webdriverio");
4031
+ import logger12 from "@wdio/logger";
4032
+ var log12 = logger12("webdriverio");
3969
4033
  function scroll(x = 0, y = 0) {
3970
4034
  if (!x && !y) {
3971
- return log11.warn('"scroll" command was called with no parameters, skipping execution');
4035
+ return log12.warn('"scroll" command was called with no parameters, skipping execution');
3972
4036
  }
3973
4037
  if (this.isMobile) {
3974
4038
  return this.execute((x2, y2) => window.scrollBy(x2, y2), x, y);
@@ -4101,11 +4165,11 @@ async function switchWindow(matcher) {
4101
4165
  }
4102
4166
 
4103
4167
  // src/commands/browser/throttle.ts
4104
- import logger12 from "@wdio/logger";
4168
+ import logger13 from "@wdio/logger";
4105
4169
  import { getBrowserObject as getBrowserObject8 } from "@wdio/utils";
4106
- var log12 = logger12("webdriverio:throttle");
4170
+ var log13 = logger13("webdriverio:throttle");
4107
4171
  async function throttle(params) {
4108
- log12.warn('Command "throttle" is deprecated and will be removed with the next major version release! Use `throttleNetwork` instead.');
4172
+ log13.warn('Command "throttle" is deprecated and will be removed with the next major version release! Use `throttleNetwork` instead.');
4109
4173
  const browser = getBrowserObject8(this);
4110
4174
  await browser.throttleNetwork(params);
4111
4175
  }
@@ -4454,7 +4518,8 @@ async function url3(path4, options = {}) {
4454
4518
  mock2 = await this.mock(path4);
4455
4519
  mock2.requestOnce({ headers: options.headers });
4456
4520
  }
4457
- const wait = options.wait === "networkIdle" ? "complete" : options.wait || DEFAULT_WAIT_STATE;
4521
+ const classicPageLoadStrategy = this.capabilities.pageLoadStrategy === "none" ? "none" : this.capabilities.pageLoadStrategy === "normal" ? "complete" : this.capabilities.pageLoadStrategy === "eager" ? "interactive" : void 0;
4522
+ const wait = options.wait === "networkIdle" ? "complete" : options.wait || classicPageLoadStrategy || DEFAULT_WAIT_STATE;
4458
4523
  await this.browsingContextNavigate({
4459
4524
  context,
4460
4525
  url: path4,
@@ -4593,9 +4658,9 @@ function clearValue() {
4593
4658
  }
4594
4659
 
4595
4660
  // src/commands/element/click.ts
4596
- import logger13 from "@wdio/logger";
4661
+ import logger14 from "@wdio/logger";
4597
4662
  import { getBrowserObject as getBrowserObject10 } from "@wdio/utils";
4598
- var log13 = logger13("webdriver");
4663
+ var log14 = logger14("webdriver");
4599
4664
  function click(options) {
4600
4665
  if (typeof options !== "undefined") {
4601
4666
  if (typeof options !== "object" || Array.isArray(options)) {
@@ -4641,10 +4706,10 @@ async function actionClick(element, options) {
4641
4706
  if (x || y) {
4642
4707
  const { width, height } = await browser.getElementRect(element.elementId);
4643
4708
  if (x && x < -Math.floor(width / 2) || x && x > Math.floor(width / 2)) {
4644
- log13.warn("x would cause a out of bounds error as it goes outside of element");
4709
+ log14.warn("x would cause a out of bounds error as it goes outside of element");
4645
4710
  }
4646
4711
  if (y && y < -Math.floor(height / 2) || y && y > Math.floor(height / 2)) {
4647
- log13.warn("y would cause a out of bounds error as it goes outside of element");
4712
+ log14.warn("y would cause a out of bounds error as it goes outside of element");
4648
4713
  }
4649
4714
  }
4650
4715
  const clickNested = async () => {
@@ -4861,10 +4926,10 @@ import { prettify as prettifyFn } from "htmlfy";
4861
4926
  import { getBrowserObject as getBrowserObject18 } from "@wdio/utils";
4862
4927
 
4863
4928
  // src/shadowRoot.ts
4864
- import logger14 from "@wdio/logger";
4929
+ import logger15 from "@wdio/logger";
4865
4930
  import customElementWrapper from "./scripts/customElement.js";
4866
4931
  var shadowRootManager = /* @__PURE__ */ new Map();
4867
- var log14 = logger14("webdriverio:ShadowRootManager");
4932
+ var log15 = logger15("webdriverio:ShadowRootManager");
4868
4933
  function getShadowRootManager(browser) {
4869
4934
  const existingShadowRootManager = shadowRootManager.get(browser);
4870
4935
  if (existingShadowRootManager) {
@@ -4968,9 +5033,9 @@ var ShadowRootManager = class {
4968
5033
  !shadowElem.value?.shadowRoot?.sharedId || // we expect the shadow root to have a proper type
4969
5034
  shadowElem.value.shadowRoot.value?.nodeType !== 11
4970
5035
  ) {
4971
- return log14.warn(`Expected element with shadow root but found <${shadowElem.value?.localName} />`);
5036
+ return log15.warn(`Expected element with shadow root but found <${shadowElem.value?.localName} />`);
4972
5037
  }
4973
- log14.info(`Registered new shadow root for element <${shadowElem.value.localName} /> with id ${shadowElem.value.shadowRoot.sharedId}`);
5038
+ log15.info(`Registered new shadow root for element <${shadowElem.value.localName} /> with id ${shadowElem.value.shadowRoot.sharedId}`);
4974
5039
  const newTree = new ShadowRootTree(
4975
5040
  shadowElem.sharedId,
4976
5041
  shadowElem.value.shadowRoot.sharedId,
@@ -4999,7 +5064,8 @@ var ShadowRootManager = class {
4999
5064
  tree = subTree;
5000
5065
  }
5001
5066
  }
5002
- return tree.getAllLookupScopes();
5067
+ const elements = tree.getAllLookupScopes();
5068
+ return [...new Set(elements).values()];
5003
5069
  }
5004
5070
  getShadowElementPairsByContextId(contextId, scope) {
5005
5071
  let tree = this.#shadowRoots.get(contextId);
@@ -5388,18 +5454,18 @@ async function isStable() {
5388
5454
  }
5389
5455
 
5390
5456
  // src/commands/element/moveTo.ts
5391
- import logger15 from "@wdio/logger";
5457
+ import logger16 from "@wdio/logger";
5392
5458
  import { getBrowserObject as getBrowserObject24 } from "@wdio/utils";
5393
- var log15 = logger15("webdriver");
5459
+ var log16 = logger16("webdriver");
5394
5460
  async function moveTo({ xOffset, yOffset } = {}) {
5395
5461
  const browser = getBrowserObject24(this);
5396
5462
  if (xOffset || yOffset) {
5397
5463
  const { width, height } = await browser.getElementRect(this.elementId);
5398
5464
  if (xOffset && xOffset < -Math.floor(width / 2) || xOffset && xOffset > Math.floor(width / 2)) {
5399
- log15.warn("xOffset would cause a out of bounds error as it goes outside of element");
5465
+ log16.warn("xOffset would cause a out of bounds error as it goes outside of element");
5400
5466
  }
5401
5467
  if (yOffset && yOffset < -Math.floor(height / 2) || yOffset && yOffset > Math.floor(height / 2)) {
5402
- log15.warn("yOffset would cause a out of bounds error as it goes outside of element");
5468
+ log16.warn("yOffset would cause a out of bounds error as it goes outside of element");
5403
5469
  }
5404
5470
  }
5405
5471
  const moveToNested = async () => {
@@ -5509,10 +5575,10 @@ async function saveScreenshot2(filepath) {
5509
5575
  }
5510
5576
 
5511
5577
  // src/commands/element/scrollIntoView.ts
5512
- import logger16 from "@wdio/logger";
5578
+ import logger17 from "@wdio/logger";
5513
5579
  import { ELEMENT_KEY as ELEMENT_KEY16 } from "webdriver";
5514
5580
  import { getBrowserObject as getBrowserObject27 } from "@wdio/utils";
5515
- var log16 = logger16("webdriverio");
5581
+ var log17 = logger17("webdriverio");
5516
5582
  function scrollIntoViewWeb(options = { block: "start", inline: "nearest" }) {
5517
5583
  const browser = getBrowserObject27(this);
5518
5584
  return browser.execute(
@@ -5571,7 +5637,7 @@ async function scrollIntoView(options = { block: "start", inline: "nearest" }) {
5571
5637
  deltaY = Math.round(deltaY - scrollY);
5572
5638
  await browser.action("wheel").scroll({ duration: 0, x: deltaX, y: deltaY, origin: this }).perform();
5573
5639
  } catch (err) {
5574
- log16.warn(
5640
+ log17.warn(
5575
5641
  `Failed to execute "scrollIntoView" using WebDriver Actions API: ${err.message}!
5576
5642
  Re-attempting using \`Element.scrollIntoView\` via Web API.`
5577
5643
  );
@@ -5636,7 +5702,7 @@ async function setValue(value) {
5636
5702
  }
5637
5703
 
5638
5704
  // src/commands/element/shadow$$.ts
5639
- import logger17 from "@wdio/logger";
5705
+ import logger18 from "@wdio/logger";
5640
5706
  import { getBrowserObject as getBrowserObject28 } from "@wdio/utils";
5641
5707
  import { SHADOW_ELEMENT_KEY } from "webdriver";
5642
5708
  import { shadowFnFactory } from "./scripts/shadowFnFactory.js";
@@ -5964,7 +6030,7 @@ var createRoleBaseXpathSelector = (role) => {
5964
6030
  };
5965
6031
 
5966
6032
  // src/commands/element/shadow$$.ts
5967
- var log17 = logger17("webdriverio");
6033
+ var log18 = logger18("webdriverio");
5968
6034
  async function shadow$$(selector) {
5969
6035
  const browser = getBrowserObject28(this);
5970
6036
  try {
@@ -5974,7 +6040,7 @@ async function shadow$$(selector) {
5974
6040
  const elements = await getElements.call(this, selector, res, { isShadowElement: true });
5975
6041
  return enhanceElementsArray(elements, this, selector);
5976
6042
  } catch (err) {
5977
- log17.warn(
6043
+ log18.warn(
5978
6044
  `Failed to fetch element within shadow DOM using WebDriver command: ${err.message}!
5979
6045
  Falling back to JavaScript shim.`
5980
6046
  );
@@ -5983,11 +6049,11 @@ Falling back to JavaScript shim.`
5983
6049
  }
5984
6050
 
5985
6051
  // src/commands/element/shadow$.ts
5986
- import logger18 from "@wdio/logger";
6052
+ import logger19 from "@wdio/logger";
5987
6053
  import { SHADOW_ELEMENT_KEY as SHADOW_ELEMENT_KEY2 } from "webdriver";
5988
6054
  import { shadowFnFactory as shadowFnFactory2 } from "./scripts/shadowFnFactory.js";
5989
6055
  import { getBrowserObject as getBrowserObject29 } from "@wdio/utils";
5990
- var log18 = logger18("webdriverio");
6056
+ var log19 = logger19("webdriverio");
5991
6057
  async function shadow$(selector) {
5992
6058
  const browser = getBrowserObject29(this);
5993
6059
  try {
@@ -5996,7 +6062,7 @@ async function shadow$(selector) {
5996
6062
  const res = await browser.findElementFromShadowRoot(shadowRoot[SHADOW_ELEMENT_KEY2], using, value);
5997
6063
  return getElement.call(this, selector, res, { isShadowElement: true });
5998
6064
  } catch (err) {
5999
- log18.warn(
6065
+ log19.warn(
6000
6066
  `Failed to fetch element within shadow DOM using WebDriver command: ${err.message}!
6001
6067
  Falling back to JavaScript shim.`
6002
6068
  );
@@ -6295,7 +6361,7 @@ function querySelectorAllDeep(findMany, s, r) {
6295
6361
  }
6296
6362
 
6297
6363
  // src/utils/index.ts
6298
- var log19 = logger19("webdriverio");
6364
+ var log20 = logger20("webdriverio");
6299
6365
  var INVALID_SELECTOR_ERROR = "selector needs to be typeof `string` or `function`";
6300
6366
  var IGNORED_COMMAND_FILE_EXPORTS = ["SESSION_MOCKS", "CDP_SESSIONS"];
6301
6367
  var scopes = {
@@ -6405,7 +6471,7 @@ function isStaleElementError(err) {
6405
6471
  );
6406
6472
  }
6407
6473
  function transformClassicToBidiSelector(using, value) {
6408
- if (using === "css selector") {
6474
+ if (using === "css selector" || using === "tag name") {
6409
6475
  return { type: "css", value };
6410
6476
  }
6411
6477
  if (using === "xpath") {
@@ -6449,7 +6515,7 @@ async function findDeepElement(selector) {
6449
6515
  })).then((elems) => elems.filter(([isIn]) => isIn).map(([, elem]) => elem));
6450
6516
  return scopedNodes[0];
6451
6517
  }, (err) => {
6452
- log19.warn(`Failed to execute browser.browsingContextLocateNodes({ ... }) due to ${err}, falling back to regular WebDriver Classic command`);
6518
+ log20.warn(`Failed to execute browser.browsingContextLocateNodes({ ... }) due to ${err}, falling back to regular WebDriver Classic command`);
6453
6519
  return browser.findElement(using, value);
6454
6520
  });
6455
6521
  if (!deepElementResult) {
@@ -6487,7 +6553,7 @@ async function findDeepElements(selector) {
6487
6553
  })).then((elems) => elems.filter(([isIn]) => isIn).map(([, elem]) => elem));
6488
6554
  return scopedNodes;
6489
6555
  }, (err) => {
6490
- log19.warn(`Failed to execute browser.browsingContextLocateNodes({ ... }) due to ${err}, falling back to regular WebDriver Classic command`);
6556
+ log20.warn(`Failed to execute browser.browsingContextLocateNodes({ ... }) due to ${err}, falling back to regular WebDriver Classic command`);
6491
6557
  return browser.findElements(using, value);
6492
6558
  });
6493
6559
  return deepElementResult;
@@ -6615,7 +6681,7 @@ async function getElementRect(scope) {
6615
6681
  if (rectJs && typeof rectJs[key] === "number") {
6616
6682
  rect[key] = Math.floor(rectJs[key]);
6617
6683
  } else {
6618
- log19.error("getElementRect", { rect, rectJs, key });
6684
+ log20.error("getElementRect", { rect, rectJs, key });
6619
6685
  throw new Error("Failed to receive element rects via execute command");
6620
6686
  }
6621
6687
  });
@@ -7142,45 +7208,6 @@ var Dialog = class {
7142
7208
  }
7143
7209
  };
7144
7210
 
7145
- // src/polyfill.ts
7146
- import logger20 from "@wdio/logger";
7147
- var polyfillManager = /* @__PURE__ */ new Map();
7148
- var log20 = logger20("webdriverio:PolyfillManager");
7149
- function getPolyfillManager(browser) {
7150
- const existingPolyfillManager = polyfillManager.get(browser);
7151
- if (existingPolyfillManager) {
7152
- return existingPolyfillManager;
7153
- }
7154
- const newContext = new PolyfillManager(browser);
7155
- polyfillManager.set(browser, newContext);
7156
- return newContext;
7157
- }
7158
- var PolyfillManager = class {
7159
- #initialize;
7160
- constructor(browser) {
7161
- if (!browser.isBidi || process.env.VITEST_WORKER_ID || browser.options?.automationProtocol !== "webdriver") {
7162
- this.#initialize = Promise.resolve(true);
7163
- return;
7164
- }
7165
- const polyfill = () => {
7166
- const closure = new Function(
7167
- "var __defProp = Object.defineProperty;var __name = (target, value) => __defProp(target, 'name', { value, configurable: true });globalThis.__name = __name;"
7168
- );
7169
- return closure();
7170
- };
7171
- this.#initialize = Promise.all([
7172
- browser.addInitScript(polyfill),
7173
- browser.execute(polyfill)
7174
- ]).then(() => {
7175
- log20.info("polyfill script added");
7176
- return true;
7177
- }, () => false);
7178
- }
7179
- async initialize() {
7180
- return this.#initialize;
7181
- }
7182
- };
7183
-
7184
7211
  // src/index.ts
7185
7212
  var Key2 = Key;
7186
7213
  var SevereServiceError2 = SevereServiceError;
@@ -1,3 +1,4 @@
1
+ export declare const NAME_POLYFILL: string;
1
2
  export declare function getPolyfillManager(browser: WebdriverIO.Browser): PolyfillManager;
2
3
  /**
3
4
  * This class is responsible for setting polyfill scripts in the browser.
@@ -1 +1 @@
1
- {"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../src/polyfill.ts"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,mBAS9D;AAED;;GAEG;AACH,qBAAa,eAAe;;gBAGZ,OAAO,EAAE,WAAW,CAAC,OAAO;IAsClC,UAAU;CAGnB"}
1
+ {"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../src/polyfill.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,QAIzB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,mBAS9D;AAED;;GAEG;AACH,qBAAa,eAAe;;gBAGZ,OAAO,EAAE,WAAW,CAAC,OAAO;IAkClC,UAAU;CAGnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"shadowRoot.d.ts","sourceRoot":"","sources":["../src/shadowRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AAQtC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,qBAShE;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;;gBAMd,OAAO,EAAE,WAAW,CAAC,OAAO;IAyBlC,UAAU;IAuBhB;;;OAGG;IACH,aAAa;IAIb;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ;IA2FvC,4BAA4B,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAmB1E,gCAAgC,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE;IAgBpG,qBAAqB,CAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IActF,gBAAgB,CAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAOvD;AAED,qBAAa,cAAc;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,sBAA4B;gBAEvB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc;IAMxE;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAC7C;;;;;OAKG;IACH,gBAAgB,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IA6B5D,IAAI,CAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAelD,cAAc,CAAE,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAe/D,kBAAkB,IAAK,MAAM,EAAE;IAO/B,IAAI,IAAK,cAAc,EAAE;IAIzB,MAAM,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAcpC"}
1
+ {"version":3,"file":"shadowRoot.d.ts","sourceRoot":"","sources":["../src/shadowRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AAQtC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,qBAShE;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;;gBAMd,OAAO,EAAE,WAAW,CAAC,OAAO;IAyBlC,UAAU;IAuBhB;;;OAGG;IACH,aAAa;IAIb;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ;IA2FvC,4BAA4B,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAwB1E,gCAAgC,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE;IAgBpG,qBAAqB,CAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IActF,gBAAgB,CAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAOvD;AAED,qBAAa,cAAc;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,sBAA4B;gBAEvB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc;IAMxE;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAC7C;;;;;OAKG;IACH,gBAAgB,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IA6B5D,IAAI,CAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAelD,cAAc,CAAE,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAe/D,kBAAkB,IAAK,MAAM,EAAE;IAO/B,IAAI,IAAK,cAAc,EAAE;IAIzB,MAAM,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAcpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/utils/actions/pointer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,WAAW,CAAA;AAChE,OAAO,UAAU,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAI7D,eAAO,MAAM,WAAW,+CAA8C,CAAA;AACtE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AACrD,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC9B,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;AAM3C,UAAU,qBAAqB;IAC3B;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,WAAW,CAAA;CAC/B;AAKD,QAAA,MAAM,cAAc;;;;;;;;;;IAVhB;;;OAGG;YACK,MAAM,GAAG,WAAW;CAiB/B,CAAA;AACD,QAAA,MAAM,mBAAmB;;;;YAIK,CAAC,MAAM,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,WAAW,CAAC,OAAO,CAAC;CACxG,CAAA;AAED,KAAK,mBAAmB,GAAG,OAAO,CAAC,OAAO,cAAc,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAC1F,KAAK,uBAAuB,GAAG,OAAO,CAAC,OAAO,mBAAmB,CAAC,GAAG,mBAAmB,CAAA;AAoBxF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU;gBACpC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAE,gBAAqB;IAQzE;;;;;OAKG;IACH,IAAI,CAAE,MAAM,EAAE,uBAAuB,GAAG,aAAa;IACrD,IAAI,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa;IAoB1C;;;OAGG;IACH,EAAE,CAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa;IACnC,EAAE,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa;IACxC,EAAE,CAAE,MAAM,CAAC,EAAE,qBAAqB,GAAG,aAAa;IASlD;;;OAGG;IACH,IAAI,CAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa;IACrC,IAAI,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa;IAC1C,IAAI,CAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,aAAa;IAUlD;;OAEG;IACH,MAAM;CAIT"}
1
+ {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/utils/actions/pointer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,WAAW,CAAA;AAChE,OAAO,UAAU,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAI7D,eAAO,MAAM,WAAW,+CAA8C,CAAA;AACtE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AACrD,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC9B,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;AAM3C,UAAU,qBAAqB;IAC3B;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,WAAW,CAAA;CAC/B;AAKD,QAAA,MAAM,cAAc;;;;;;;;;;IAVhB;;;OAGG;YACK,MAAM,GAAG,WAAW;CAiB/B,CAAA;AACD,QAAA,MAAM,mBAAmB;;;;YAIK,CAAC,MAAM,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,WAAW,CAAC,OAAO,CAAC;CACxG,CAAA;AAED,KAAK,mBAAmB,GAAG,OAAO,CAAC,OAAO,cAAc,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAC1F,KAAK,uBAAuB,GAAG,OAAO,CAAC,OAAO,mBAAmB,CAAC,GAAG,mBAAmB,CAAA;AA4BxF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU;gBACpC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAE,gBAAqB;IAQzE;;;;;OAKG;IACH,IAAI,CAAE,MAAM,EAAE,uBAAuB,GAAG,aAAa;IACrD,IAAI,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa;IAqB1C;;;OAGG;IACH,EAAE,CAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa;IACnC,EAAE,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa;IACxC,EAAE,CAAE,MAAM,CAAC,EAAE,qBAAqB,GAAG,aAAa;IASlD;;;OAGG;IACH,IAAI,CAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa;IACrC,IAAI,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa;IAC1C,IAAI,CAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,aAAa;IAclD;;OAEG;IACH,MAAM;CAIT"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/interception/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAKhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,KAAK,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,CAAA;AAOnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;;gBAalC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,WAAW,CAAC,OAAO;WAcnB,QAAQ,CACjB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,WAAW,CAAC,OAAO;IAsNhC;;OAEG;IACH,IAAI,KAAK,IAAI,KAAK,CAAC,kCAAkC,EAAE,CAEtD;IAED;;OAEG;IACH,KAAK;IAKL;;;OAGG;IACH,KAAK;IAOL;;;;OAIG;IACG,OAAO;IAgBb;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,OAAO;IAMrD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,kBAAkB;IAIvC;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAY3F;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAM;IAI/E;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO;IAMpB;;OAEG;IACH,SAAS;IAIT;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAO5C;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM;IAIhC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAClH,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAC9G,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,qBAAqB;IACnF,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,qBAAqB;IAC/E,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAYrH,eAAe,CAAE,EACb,OAA8C,EAC9C,QAAgD,EAChD,UAAU,GACb,GAAE,cAAmB;CA2BzB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,cAqBvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/interception/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAKhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,KAAK,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,CAAA;AAOnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;;gBAalC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,WAAW,CAAC,OAAO;WAcnB,QAAQ,CACjB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,WAAW,CAAC,OAAO;IA2NhC;;OAEG;IACH,IAAI,KAAK,IAAI,KAAK,CAAC,kCAAkC,EAAE,CAEtD;IAED;;OAEG;IACH,KAAK;IAKL;;;OAGG;IACH,KAAK;IAOL;;;;OAIG;IACG,OAAO;IAgBb;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,OAAO;IAMrD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,kBAAkB;IAIvC;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAY3F;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAM;IAI/E;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO;IAMpB;;OAEG;IACH,SAAS;IAIT;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAO5C;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM;IAIhC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAClH,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAC9G,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,qBAAqB;IACnF,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,qBAAqB;IAC/E,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAYrH,eAAe,CAAE,EACb,OAA8C,EAC9C,QAAgD,EAChD,UAAU,GACb,GAAE,cAAmB;CA2BzB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,cAqBvD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "webdriverio",
3
3
  "description": "Next-gen browser and mobile automation test framework for Node.js",
4
- "version": "9.1.2",
4
+ "version": "9.1.3",
5
5
  "homepage": "https://webdriver.io",
6
6
  "author": "Christian Bromann <mail@bromann.dev>",
7
7
  "license": "MIT",
@@ -76,19 +76,19 @@
76
76
  "dependencies": {
77
77
  "@types/node": "^20.11.30",
78
78
  "@types/sinonjs__fake-timers": "^8.1.5",
79
- "@wdio/config": "9.1.2",
80
- "@wdio/logger": "9.1.0",
79
+ "@wdio/config": "9.1.3",
80
+ "@wdio/logger": "9.1.3",
81
81
  "@wdio/protocols": "9.0.8",
82
82
  "@wdio/repl": "9.0.8",
83
- "@wdio/types": "9.1.2",
84
- "@wdio/utils": "9.1.2",
83
+ "@wdio/types": "9.1.3",
84
+ "@wdio/utils": "9.1.3",
85
85
  "archiver": "^7.0.1",
86
86
  "aria-query": "^5.3.0",
87
87
  "cheerio": "^1.0.0-rc.12",
88
88
  "css-shorthand-properties": "^1.1.1",
89
89
  "css-value": "^0.0.1",
90
90
  "grapheme-splitter": "^1.0.4",
91
- "htmlfy": "^0.2.1",
91
+ "htmlfy": "^0.3.0",
92
92
  "import-meta-resolve": "^4.0.0",
93
93
  "is-plain-obj": "^4.1.0",
94
94
  "jszip": "^3.10.1",
@@ -100,7 +100,7 @@
100
100
  "rgb2hex": "0.2.5",
101
101
  "serialize-error": "^11.0.3",
102
102
  "urlpattern-polyfill": "^10.0.0",
103
- "webdriver": "9.1.2"
103
+ "webdriver": "9.1.3"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "puppeteer-core": "^22.3.0"
@@ -110,5 +110,5 @@
110
110
  "optional": true
111
111
  }
112
112
  },
113
- "gitHead": "e009b5102f9f98b99fa62df870ce7f3f5bc1b99a"
113
+ "gitHead": "db677c6008e388301aba23f655679f4c5b6ea023"
114
114
  }