webdriverio 9.1.1 → 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,CAoCtB"}
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,CA4CtB"}
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") {
@@ -3029,8 +3077,9 @@ async function execute(script, ...args) {
3029
3077
  const browser = getBrowserObject2(this);
3030
3078
  const contextManager2 = getContextManager(browser);
3031
3079
  const context = await contextManager2.getCurrentContext();
3080
+ const userScript = typeof script === "string" ? new Function(script) : script;
3032
3081
  const functionDeclaration = new Function(`
3033
- return (${SCRIPT_PREFIX}${script.toString()}${SCRIPT_SUFFIX}).apply(this, arguments);
3082
+ return (${SCRIPT_PREFIX}${userScript.toString()}${SCRIPT_SUFFIX}).apply(this, arguments);
3034
3083
  `).toString();
3035
3084
  const params = {
3036
3085
  functionDeclaration,
@@ -3044,7 +3093,10 @@ async function execute(script, ...args) {
3044
3093
  return parseScriptResult(params, result);
3045
3094
  }
3046
3095
  if (typeof script === "function") {
3047
- script = `return (${script}).apply(null, arguments)`;
3096
+ script = `
3097
+ ${NAME_POLYFILL}
3098
+ return (${script}).apply(null, arguments)
3099
+ `;
3048
3100
  }
3049
3101
  return this.executeScript(script, verifyArgsAndStripIfElement(args));
3050
3102
  }
@@ -3059,12 +3111,13 @@ async function executeAsync(script, ...args) {
3059
3111
  const browser = getBrowserObject3(this);
3060
3112
  const contextManager2 = getContextManager(browser);
3061
3113
  const context = await contextManager2.getCurrentContext();
3114
+ const userScript = typeof script === "string" ? new Function(script) : script;
3062
3115
  const functionDeclaration = new Function(`
3063
3116
  const args = Array.from(arguments)
3064
3117
  return new Promise(async (resolve, reject) => {
3065
3118
  const cb = (result) => resolve(result)
3066
3119
  try {
3067
- await (${script.toString()}).apply(this, [...args, cb])
3120
+ await (${userScript.toString()}).apply(this, [...args, cb])
3068
3121
  } catch (err) {
3069
3122
  return reject(err)
3070
3123
  }
@@ -3082,14 +3135,17 @@ async function executeAsync(script, ...args) {
3082
3135
  return parseScriptResult(params, result);
3083
3136
  }
3084
3137
  if (typeof script === "function") {
3085
- script = `return (${script}).apply(null, arguments)`;
3138
+ script = `
3139
+ ${NAME_POLYFILL}
3140
+ return (${script}).apply(null, arguments)
3141
+ `;
3086
3142
  }
3087
3143
  return this.executeAsyncScript(script, verifyArgsAndStripIfElement(args));
3088
3144
  }
3089
3145
 
3090
3146
  // src/commands/browser/getCookies.ts
3091
- import logger5 from "@wdio/logger";
3092
- var log5 = logger5("webdriverio");
3147
+ import logger6 from "@wdio/logger";
3148
+ var log6 = logger6("webdriverio");
3093
3149
  async function getCookies(filter) {
3094
3150
  const usesMultipleFilter = Array.isArray(filter) && filter.length > 1;
3095
3151
  if (!this.isBidi || usesMultipleFilter) {
@@ -3108,7 +3164,7 @@ async function getCookiesClassic(names) {
3108
3164
  }
3109
3165
  const usesMultipleFilter = Array.isArray(names) && names.length > 1;
3110
3166
  if (usesMultipleFilter) {
3111
- log5.warn(
3167
+ log6.warn(
3112
3168
  "Passing a string array as filter for `getCookies` is deprecated and its support will be removed in an upcoming version of WebdriverIO!"
3113
3169
  );
3114
3170
  const allCookies2 = await this.getAllCookies();
@@ -3127,7 +3183,7 @@ function getCookieFilter(names) {
3127
3183
  }
3128
3184
  return (Array.isArray(names) ? names : [names]).map((filter) => {
3129
3185
  if (typeof filter === "string") {
3130
- 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!");
3131
3187
  return { name: filter };
3132
3188
  }
3133
3189
  return filter;
@@ -3135,9 +3191,10 @@ function getCookieFilter(names) {
3135
3191
  }
3136
3192
 
3137
3193
  // src/commands/browser/getPuppeteer.ts
3138
- import logger6 from "@wdio/logger";
3194
+ import logger7 from "@wdio/logger";
3139
3195
  import { userImport } from "@wdio/utils";
3140
- var log6 = logger6("webdriverio");
3196
+ var log7 = logger7("webdriverio");
3197
+ var DEBUG_PIPE_FLAG = "remote-debugging-pipe";
3141
3198
  async function getPuppeteer() {
3142
3199
  const puppeteer = await userImport("puppeteer-core");
3143
3200
  if (!puppeteer) {
@@ -3146,7 +3203,7 @@ async function getPuppeteer() {
3146
3203
  );
3147
3204
  }
3148
3205
  if (this.puppeteer?.connected) {
3149
- log6.debug("Reusing existing puppeteer session");
3206
+ log7.debug("Reusing existing puppeteer session");
3150
3207
  return this.puppeteer;
3151
3208
  }
3152
3209
  const { headers } = this.options;
@@ -3177,6 +3234,15 @@ async function getPuppeteer() {
3177
3234
  defaultViewport: null
3178
3235
  });
3179
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.`);
3180
3246
  }
3181
3247
  if (this.capabilities.browserName?.toLowerCase() === "firefox") {
3182
3248
  if (!this.capabilities.browserVersion) {
@@ -3248,7 +3314,7 @@ import { getBrowserObject as getBrowserObject5 } from "@wdio/utils";
3248
3314
 
3249
3315
  // src/utils/interception/index.ts
3250
3316
  import EventEmitter2 from "node:events";
3251
- import logger7 from "@wdio/logger";
3317
+ import logger8 from "@wdio/logger";
3252
3318
  import { URLPattern } from "urlpattern-polyfill";
3253
3319
 
3254
3320
  // src/utils/Timer.ts
@@ -3414,7 +3480,7 @@ function getPatternParam(pattern, key) {
3414
3480
  }
3415
3481
 
3416
3482
  // src/utils/interception/index.ts
3417
- var log7 = logger7("WebDriverInterception");
3483
+ var log8 = logger8("WebDriverInterception");
3418
3484
  var hasSubscribedToEvents = false;
3419
3485
  var WebDriverInterception = class _WebDriverInterception {
3420
3486
  #pattern;
@@ -3443,7 +3509,7 @@ var WebDriverInterception = class _WebDriverInterception {
3443
3509
  "network.responseStarted"
3444
3510
  ]
3445
3511
  });
3446
- log7.info("subscribed to network events");
3512
+ log8.info("subscribed to network events");
3447
3513
  hasSubscribedToEvents = true;
3448
3514
  }
3449
3515
  const interception = await browser.networkAddIntercept({
@@ -3491,14 +3557,14 @@ var WebDriverInterception = class _WebDriverInterception {
3491
3557
  if (!this.#isRequestMatching(request)) {
3492
3558
  return;
3493
3559
  }
3494
- const continueRequest = (
3495
- /**
3496
- * - mock has no request/respond overwrites
3497
- * - no request modifications are set, e.g. no overwrite is set
3498
- */
3499
- !this.#matchesFilterOptions(request) || this.#respondOverwrites.length === 0 || !this.#respondOverwrites[0].overwrite
3500
- );
3501
- 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) {
3502
3568
  this.#emitter.emit("continue", request.request.request);
3503
3569
  return this.#browser.networkProvideResponse({
3504
3570
  request: request.request.request
@@ -3534,10 +3600,10 @@ var WebDriverInterception = class _WebDriverInterception {
3534
3600
  }
3535
3601
  #matchesFilterOptions(request) {
3536
3602
  let isRequestMatching = true;
3537
- if (this.#filterOptions.method) {
3538
- isRequestMatching = typeof this.#filterOptions.method === "function" ? this.#filterOptions.method(request.request.method) : this.#filterOptions.method === request.request.method;
3603
+ if (isRequestMatching && this.#filterOptions.method) {
3604
+ isRequestMatching = typeof this.#filterOptions.method === "function" ? this.#filterOptions.method(request.request.method) : this.#filterOptions.method.toLowerCase() === request.request.method.toLowerCase();
3539
3605
  }
3540
- if (this.#filterOptions.requestHeaders) {
3606
+ if (isRequestMatching && this.#filterOptions.requestHeaders) {
3541
3607
  isRequestMatching = typeof this.#filterOptions.requestHeaders === "function" ? this.#filterOptions.requestHeaders(request.request.headers.reduce((acc, { name, value }) => {
3542
3608
  acc[name] = value.type === "string" ? value.value : Buffer.from(value.value, "base64").toString();
3543
3609
  return acc;
@@ -3549,7 +3615,7 @@ var WebDriverInterception = class _WebDriverInterception {
3549
3615
  return header.value.type === "string" ? header.value.value === value : Buffer.from(header.value.value, "base64").toString() === value;
3550
3616
  });
3551
3617
  }
3552
- if (this.#filterOptions.responseHeaders && "response" in request) {
3618
+ if (isRequestMatching && this.#filterOptions.responseHeaders && "response" in request) {
3553
3619
  isRequestMatching = typeof this.#filterOptions.responseHeaders === "function" ? this.#filterOptions.responseHeaders(request.response.headers.reduce((acc, { name, value }) => {
3554
3620
  acc[name] = value.type === "string" ? value.value : Buffer.from(value.value, "base64").toString();
3555
3621
  return acc;
@@ -3561,7 +3627,7 @@ var WebDriverInterception = class _WebDriverInterception {
3561
3627
  return header.value.type === "string" ? header.value.value === value : Buffer.from(header.value.value, "base64").toString() === value;
3562
3628
  });
3563
3629
  }
3564
- if (this.#filterOptions.statusCode && "response" in request) {
3630
+ if (isRequestMatching && this.#filterOptions.statusCode && "response" in request) {
3565
3631
  isRequestMatching = typeof this.#filterOptions.statusCode === "function" ? this.#filterOptions.statusCode(request.response.status) : this.#filterOptions.statusCode === request.response.status;
3566
3632
  }
3567
3633
  return isRequestMatching;
@@ -3605,7 +3671,7 @@ var WebDriverInterception = class _WebDriverInterception {
3605
3671
  this.#respondOverwrites = [];
3606
3672
  this.#restored = true;
3607
3673
  const handle = await this.#browser.getWindowHandle();
3608
- log7.trace(`Restoring mock for ${handle}`);
3674
+ log8.trace(`Restoring mock for ${handle}`);
3609
3675
  SESSION_MOCKS[handle].delete(this);
3610
3676
  if (this.#mockId) {
3611
3677
  await this.#browser.networkRemoveIntercept({ intercept: this.#mockId });
@@ -3745,11 +3811,11 @@ async function mock(url6, filterOptions) {
3745
3811
  }
3746
3812
 
3747
3813
  // src/commands/browser/mockClearAll.ts
3748
- import logger8 from "@wdio/logger";
3749
- var log8 = logger8("webdriverio:mockClearAll");
3814
+ import logger9 from "@wdio/logger";
3815
+ var log9 = logger9("webdriverio:mockClearAll");
3750
3816
  async function mockClearAll() {
3751
3817
  for (const [handle, mocks] of Object.entries(SESSION_MOCKS)) {
3752
- log8.trace(`Clearing mocks for ${handle}`);
3818
+ log9.trace(`Clearing mocks for ${handle}`);
3753
3819
  for (const mock2 of mocks) {
3754
3820
  mock2.clear();
3755
3821
  }
@@ -3757,11 +3823,11 @@ async function mockClearAll() {
3757
3823
  }
3758
3824
 
3759
3825
  // src/commands/browser/mockRestoreAll.ts
3760
- import logger9 from "@wdio/logger";
3761
- var log9 = logger9("webdriverio:mockRestoreAll");
3826
+ import logger10 from "@wdio/logger";
3827
+ var log10 = logger10("webdriverio:mockRestoreAll");
3762
3828
  async function mockRestoreAll() {
3763
3829
  for (const [handle, mocks] of Object.entries(SESSION_MOCKS)) {
3764
- log9.trace(`Clearing mocks for ${handle}`);
3830
+ log10.trace(`Clearing mocks for ${handle}`);
3765
3831
  for (const mock2 of mocks) {
3766
3832
  await mock2.restore();
3767
3833
  }
@@ -3856,19 +3922,19 @@ async function react$(selector, { props = {}, state = {} } = {}) {
3856
3922
  }
3857
3923
 
3858
3924
  // src/commands/browser/reloadSession.ts
3859
- import logger10 from "@wdio/logger";
3860
- var log10 = logger10("webdriverio");
3925
+ import logger11 from "@wdio/logger";
3926
+ var log11 = logger11("webdriverio");
3861
3927
  async function reloadSession(newCapabilities) {
3862
3928
  const oldSessionId = this.sessionId;
3863
3929
  const shutdownDriver = Boolean(newCapabilities?.browserName);
3864
3930
  try {
3865
3931
  await this.deleteSession({ shutdownDriver });
3866
3932
  } catch (err) {
3867
- log10.warn(`Suppressing error closing the session: ${err.stack}`);
3933
+ log11.warn(`Suppressing error closing the session: ${err.stack}`);
3868
3934
  }
3869
3935
  if (this.puppeteer?.connected) {
3870
3936
  this.puppeteer.disconnect();
3871
- log10.debug("Disconnected puppeteer session");
3937
+ log11.debug("Disconnected puppeteer session");
3872
3938
  }
3873
3939
  const ProtocolDriver = (await import(
3874
3940
  /* @vite-ignore */
@@ -3962,11 +4028,11 @@ async function saveScreenshot(filepath) {
3962
4028
  }
3963
4029
 
3964
4030
  // src/commands/browser/scroll.ts
3965
- import logger11 from "@wdio/logger";
3966
- var log11 = logger11("webdriverio");
4031
+ import logger12 from "@wdio/logger";
4032
+ var log12 = logger12("webdriverio");
3967
4033
  function scroll(x = 0, y = 0) {
3968
4034
  if (!x && !y) {
3969
- 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');
3970
4036
  }
3971
4037
  if (this.isMobile) {
3972
4038
  return this.execute((x2, y2) => window.scrollBy(x2, y2), x, y);
@@ -4099,11 +4165,11 @@ async function switchWindow(matcher) {
4099
4165
  }
4100
4166
 
4101
4167
  // src/commands/browser/throttle.ts
4102
- import logger12 from "@wdio/logger";
4168
+ import logger13 from "@wdio/logger";
4103
4169
  import { getBrowserObject as getBrowserObject8 } from "@wdio/utils";
4104
- var log12 = logger12("webdriverio:throttle");
4170
+ var log13 = logger13("webdriverio:throttle");
4105
4171
  async function throttle(params) {
4106
- 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.');
4107
4173
  const browser = getBrowserObject8(this);
4108
4174
  await browser.throttleNetwork(params);
4109
4175
  }
@@ -4452,7 +4518,8 @@ async function url3(path4, options = {}) {
4452
4518
  mock2 = await this.mock(path4);
4453
4519
  mock2.requestOnce({ headers: options.headers });
4454
4520
  }
4455
- 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;
4456
4523
  await this.browsingContextNavigate({
4457
4524
  context,
4458
4525
  url: path4,
@@ -4591,9 +4658,9 @@ function clearValue() {
4591
4658
  }
4592
4659
 
4593
4660
  // src/commands/element/click.ts
4594
- import logger13 from "@wdio/logger";
4661
+ import logger14 from "@wdio/logger";
4595
4662
  import { getBrowserObject as getBrowserObject10 } from "@wdio/utils";
4596
- var log13 = logger13("webdriver");
4663
+ var log14 = logger14("webdriver");
4597
4664
  function click(options) {
4598
4665
  if (typeof options !== "undefined") {
4599
4666
  if (typeof options !== "object" || Array.isArray(options)) {
@@ -4639,10 +4706,10 @@ async function actionClick(element, options) {
4639
4706
  if (x || y) {
4640
4707
  const { width, height } = await browser.getElementRect(element.elementId);
4641
4708
  if (x && x < -Math.floor(width / 2) || x && x > Math.floor(width / 2)) {
4642
- 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");
4643
4710
  }
4644
4711
  if (y && y < -Math.floor(height / 2) || y && y > Math.floor(height / 2)) {
4645
- 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");
4646
4713
  }
4647
4714
  }
4648
4715
  const clickNested = async () => {
@@ -4859,10 +4926,10 @@ import { prettify as prettifyFn } from "htmlfy";
4859
4926
  import { getBrowserObject as getBrowserObject18 } from "@wdio/utils";
4860
4927
 
4861
4928
  // src/shadowRoot.ts
4862
- import logger14 from "@wdio/logger";
4929
+ import logger15 from "@wdio/logger";
4863
4930
  import customElementWrapper from "./scripts/customElement.js";
4864
4931
  var shadowRootManager = /* @__PURE__ */ new Map();
4865
- var log14 = logger14("webdriverio:ShadowRootManager");
4932
+ var log15 = logger15("webdriverio:ShadowRootManager");
4866
4933
  function getShadowRootManager(browser) {
4867
4934
  const existingShadowRootManager = shadowRootManager.get(browser);
4868
4935
  if (existingShadowRootManager) {
@@ -4966,9 +5033,9 @@ var ShadowRootManager = class {
4966
5033
  !shadowElem.value?.shadowRoot?.sharedId || // we expect the shadow root to have a proper type
4967
5034
  shadowElem.value.shadowRoot.value?.nodeType !== 11
4968
5035
  ) {
4969
- 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} />`);
4970
5037
  }
4971
- 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}`);
4972
5039
  const newTree = new ShadowRootTree(
4973
5040
  shadowElem.sharedId,
4974
5041
  shadowElem.value.shadowRoot.sharedId,
@@ -4997,7 +5064,8 @@ var ShadowRootManager = class {
4997
5064
  tree = subTree;
4998
5065
  }
4999
5066
  }
5000
- return tree.getAllLookupScopes();
5067
+ const elements = tree.getAllLookupScopes();
5068
+ return [...new Set(elements).values()];
5001
5069
  }
5002
5070
  getShadowElementPairsByContextId(contextId, scope) {
5003
5071
  let tree = this.#shadowRoots.get(contextId);
@@ -5386,18 +5454,18 @@ async function isStable() {
5386
5454
  }
5387
5455
 
5388
5456
  // src/commands/element/moveTo.ts
5389
- import logger15 from "@wdio/logger";
5457
+ import logger16 from "@wdio/logger";
5390
5458
  import { getBrowserObject as getBrowserObject24 } from "@wdio/utils";
5391
- var log15 = logger15("webdriver");
5459
+ var log16 = logger16("webdriver");
5392
5460
  async function moveTo({ xOffset, yOffset } = {}) {
5393
5461
  const browser = getBrowserObject24(this);
5394
5462
  if (xOffset || yOffset) {
5395
5463
  const { width, height } = await browser.getElementRect(this.elementId);
5396
5464
  if (xOffset && xOffset < -Math.floor(width / 2) || xOffset && xOffset > Math.floor(width / 2)) {
5397
- 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");
5398
5466
  }
5399
5467
  if (yOffset && yOffset < -Math.floor(height / 2) || yOffset && yOffset > Math.floor(height / 2)) {
5400
- 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");
5401
5469
  }
5402
5470
  }
5403
5471
  const moveToNested = async () => {
@@ -5507,10 +5575,10 @@ async function saveScreenshot2(filepath) {
5507
5575
  }
5508
5576
 
5509
5577
  // src/commands/element/scrollIntoView.ts
5510
- import logger16 from "@wdio/logger";
5578
+ import logger17 from "@wdio/logger";
5511
5579
  import { ELEMENT_KEY as ELEMENT_KEY16 } from "webdriver";
5512
5580
  import { getBrowserObject as getBrowserObject27 } from "@wdio/utils";
5513
- var log16 = logger16("webdriverio");
5581
+ var log17 = logger17("webdriverio");
5514
5582
  function scrollIntoViewWeb(options = { block: "start", inline: "nearest" }) {
5515
5583
  const browser = getBrowserObject27(this);
5516
5584
  return browser.execute(
@@ -5569,7 +5637,7 @@ async function scrollIntoView(options = { block: "start", inline: "nearest" }) {
5569
5637
  deltaY = Math.round(deltaY - scrollY);
5570
5638
  await browser.action("wheel").scroll({ duration: 0, x: deltaX, y: deltaY, origin: this }).perform();
5571
5639
  } catch (err) {
5572
- log16.warn(
5640
+ log17.warn(
5573
5641
  `Failed to execute "scrollIntoView" using WebDriver Actions API: ${err.message}!
5574
5642
  Re-attempting using \`Element.scrollIntoView\` via Web API.`
5575
5643
  );
@@ -5634,7 +5702,7 @@ async function setValue(value) {
5634
5702
  }
5635
5703
 
5636
5704
  // src/commands/element/shadow$$.ts
5637
- import logger17 from "@wdio/logger";
5705
+ import logger18 from "@wdio/logger";
5638
5706
  import { getBrowserObject as getBrowserObject28 } from "@wdio/utils";
5639
5707
  import { SHADOW_ELEMENT_KEY } from "webdriver";
5640
5708
  import { shadowFnFactory } from "./scripts/shadowFnFactory.js";
@@ -5962,7 +6030,7 @@ var createRoleBaseXpathSelector = (role) => {
5962
6030
  };
5963
6031
 
5964
6032
  // src/commands/element/shadow$$.ts
5965
- var log17 = logger17("webdriverio");
6033
+ var log18 = logger18("webdriverio");
5966
6034
  async function shadow$$(selector) {
5967
6035
  const browser = getBrowserObject28(this);
5968
6036
  try {
@@ -5972,7 +6040,7 @@ async function shadow$$(selector) {
5972
6040
  const elements = await getElements.call(this, selector, res, { isShadowElement: true });
5973
6041
  return enhanceElementsArray(elements, this, selector);
5974
6042
  } catch (err) {
5975
- log17.warn(
6043
+ log18.warn(
5976
6044
  `Failed to fetch element within shadow DOM using WebDriver command: ${err.message}!
5977
6045
  Falling back to JavaScript shim.`
5978
6046
  );
@@ -5981,11 +6049,11 @@ Falling back to JavaScript shim.`
5981
6049
  }
5982
6050
 
5983
6051
  // src/commands/element/shadow$.ts
5984
- import logger18 from "@wdio/logger";
6052
+ import logger19 from "@wdio/logger";
5985
6053
  import { SHADOW_ELEMENT_KEY as SHADOW_ELEMENT_KEY2 } from "webdriver";
5986
6054
  import { shadowFnFactory as shadowFnFactory2 } from "./scripts/shadowFnFactory.js";
5987
6055
  import { getBrowserObject as getBrowserObject29 } from "@wdio/utils";
5988
- var log18 = logger18("webdriverio");
6056
+ var log19 = logger19("webdriverio");
5989
6057
  async function shadow$(selector) {
5990
6058
  const browser = getBrowserObject29(this);
5991
6059
  try {
@@ -5994,7 +6062,7 @@ async function shadow$(selector) {
5994
6062
  const res = await browser.findElementFromShadowRoot(shadowRoot[SHADOW_ELEMENT_KEY2], using, value);
5995
6063
  return getElement.call(this, selector, res, { isShadowElement: true });
5996
6064
  } catch (err) {
5997
- log18.warn(
6065
+ log19.warn(
5998
6066
  `Failed to fetch element within shadow DOM using WebDriver command: ${err.message}!
5999
6067
  Falling back to JavaScript shim.`
6000
6068
  );
@@ -6293,7 +6361,7 @@ function querySelectorAllDeep(findMany, s, r) {
6293
6361
  }
6294
6362
 
6295
6363
  // src/utils/index.ts
6296
- var log19 = logger19("webdriverio");
6364
+ var log20 = logger20("webdriverio");
6297
6365
  var INVALID_SELECTOR_ERROR = "selector needs to be typeof `string` or `function`";
6298
6366
  var IGNORED_COMMAND_FILE_EXPORTS = ["SESSION_MOCKS", "CDP_SESSIONS"];
6299
6367
  var scopes = {
@@ -6403,7 +6471,7 @@ function isStaleElementError(err) {
6403
6471
  );
6404
6472
  }
6405
6473
  function transformClassicToBidiSelector(using, value) {
6406
- if (using === "css selector") {
6474
+ if (using === "css selector" || using === "tag name") {
6407
6475
  return { type: "css", value };
6408
6476
  }
6409
6477
  if (using === "xpath") {
@@ -6447,7 +6515,7 @@ async function findDeepElement(selector) {
6447
6515
  })).then((elems) => elems.filter(([isIn]) => isIn).map(([, elem]) => elem));
6448
6516
  return scopedNodes[0];
6449
6517
  }, (err) => {
6450
- 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`);
6451
6519
  return browser.findElement(using, value);
6452
6520
  });
6453
6521
  if (!deepElementResult) {
@@ -6485,7 +6553,7 @@ async function findDeepElements(selector) {
6485
6553
  })).then((elems) => elems.filter(([isIn]) => isIn).map(([, elem]) => elem));
6486
6554
  return scopedNodes;
6487
6555
  }, (err) => {
6488
- 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`);
6489
6557
  return browser.findElements(using, value);
6490
6558
  });
6491
6559
  return deepElementResult;
@@ -6613,7 +6681,7 @@ async function getElementRect(scope) {
6613
6681
  if (rectJs && typeof rectJs[key] === "number") {
6614
6682
  rect[key] = Math.floor(rectJs[key]);
6615
6683
  } else {
6616
- log19.error("getElementRect", { rect, rectJs, key });
6684
+ log20.error("getElementRect", { rect, rectJs, key });
6617
6685
  throw new Error("Failed to receive element rects via execute command");
6618
6686
  }
6619
6687
  });
@@ -6907,9 +6975,7 @@ var REGION_MAPPING = {
6907
6975
  // default endpoint
6908
6976
  "eu": "eu-central-1.",
6909
6977
  "eu-central-1": "eu-central-1.",
6910
- "us-east-4": "us-east-4.",
6911
- "apac": "apac-southeast-1.",
6912
- "apac-southeast-1": "apac-southeast-1"
6978
+ "us-east-4": "us-east-4."
6913
6979
  };
6914
6980
  function getSauceEndpoint(region, { isRDC, isVisual } = {}) {
6915
6981
  const shortRegion = REGION_MAPPING[region] ? region : "us";
@@ -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":"detectBackend.d.ts","sourceRoot":"","sources":["../../src/utils/detectBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAiBxD,UAAU,qBAAqB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,YAAY,CAAC,+BAA+B,CAAA;CAC9D;AAgBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,OAAO,GAAE,qBAA0B;;;;;EAkGxE"}
1
+ {"version":3,"file":"detectBackend.d.ts","sourceRoot":"","sources":["../../src/utils/detectBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAexD,UAAU,qBAAqB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,YAAY,CAAC,+BAA+B,CAAA;CAC9D;AAgBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,OAAO,GAAE,qBAA0B;;;;;EAkGxE"}
@@ -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.1",
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.0",
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.0",
84
- "@wdio/utils": "9.1.0",
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.1"
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": "f70367e464d7c056328cd7d8e57ea296c0e766ae"
113
+ "gitHead": "db677c6008e388301aba23f655679f4c5b6ea023"
114
114
  }