@applitools/eyes-browser 1.6.5 → 1.6.7

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/dist/index.js +360 -220
  3. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,86 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.6.7](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.6.6...js/eyes-browser@1.6.7) (2026-03-16)
4
+
5
+
6
+ ### Dependencies
7
+
8
+ * @applitools/nml-client bumped to 1.11.21
9
+
10
+ * @applitools/core-base bumped to 1.32.3
11
+ #### Bug Fixes
12
+
13
+ * pass gzip content encoding | FLD-4293 ([#3649](https://github.com/Applitools-Dev/sdk/issues/3649)) ([b78ebaa](https://github.com/Applitools-Dev/sdk/commit/b78ebaa0bb0d9aeae0d5b7031d320ca10b5f608b))
14
+ * @applitools/ec-client bumped to 1.12.23
15
+
16
+ * @applitools/core bumped to 4.58.1
17
+
18
+ * @applitools/eyes bumped to 1.38.10
19
+
20
+
21
+ ## [1.6.6](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.6.5...js/eyes-browser@1.6.6) (2026-03-12)
22
+
23
+
24
+ ### Dependencies
25
+
26
+ * @applitools/dom-snapshot bumped to 4.16.0
27
+ #### Features
28
+
29
+ * support coded regions within iframes and shadow DOM | FLD-4019 ([#3542](https://github.com/Applitools-Dev/sdk/issues/3542)) ([7c5639a](https://github.com/Applitools-Dev/sdk/commit/7c5639a8a4c135bc9331d9ff93f1824906549568))
30
+
31
+
32
+
33
+ * @applitools/snippets bumped to 2.8.0
34
+ #### Features
35
+
36
+ * support coded regions within iframes and shadow DOM | FLD-4019 ([#3542](https://github.com/Applitools-Dev/sdk/issues/3542)) ([7c5639a](https://github.com/Applitools-Dev/sdk/commit/7c5639a8a4c135bc9331d9ff93f1824906549568))
37
+ * @applitools/dom-capture bumped to 11.6.12
38
+ #### Bug Fixes
39
+
40
+ * prevent [object Object] in DOM capture for CORS iframes | FLD-4181 ([#3620](https://github.com/Applitools-Dev/sdk/issues/3620)) ([afe91e7](https://github.com/Applitools-Dev/sdk/commit/afe91e7b26e9ad5d37d2098b17ecf139794075ef))
41
+ * @applitools/driver bumped to 1.25.3
42
+ #### Bug Fixes
43
+
44
+ * enhance NML error messages for better user-facing diagnostics | FLD-4279 ([#3622](https://github.com/Applitools-Dev/sdk/issues/3622)) ([2aef039](https://github.com/Applitools-Dev/sdk/commit/2aef0395875fd0ff0b4f657d769bda23d66660ad))
45
+
46
+
47
+
48
+ * @applitools/ufg-client bumped to 1.20.0
49
+ #### Features
50
+
51
+ * support coded regions within iframes and shadow DOM | FLD-4019 ([#3542](https://github.com/Applitools-Dev/sdk/issues/3542)) ([7c5639a](https://github.com/Applitools-Dev/sdk/commit/7c5639a8a4c135bc9331d9ff93f1824906549568))
52
+ * @applitools/core bumped to 4.58.0
53
+ #### Features
54
+
55
+ * support coded regions within iframes and shadow DOM | FLD-4019 ([#3542](https://github.com/Applitools-Dev/sdk/issues/3542)) ([7c5639a](https://github.com/Applitools-Dev/sdk/commit/7c5639a8a4c135bc9331d9ff93f1824906549568))
56
+
57
+
58
+ #### Bug Fixes
59
+
60
+ * enhance NML error messages for better user-facing diagnostics | FLD-4279 ([#3622](https://github.com/Applitools-Dev/sdk/issues/3622)) ([2aef039](https://github.com/Applitools-Dev/sdk/commit/2aef0395875fd0ff0b4f657d769bda23d66660ad))
61
+ * logEventBatch leaks to console | FLD-4175 ([#3608](https://github.com/Applitools-Dev/sdk/issues/3608)) ([f749d28](https://github.com/Applitools-Dev/sdk/commit/f749d287bf8a8e91ab819c04b13f8246f3d3a244))
62
+
63
+
64
+
65
+ * @applitools/spec-driver-webdriver bumped to 1.5.8
66
+
67
+ * @applitools/spec-driver-selenium bumped to 1.7.14
68
+
69
+ * @applitools/spec-driver-puppeteer bumped to 1.7.3
70
+
71
+ * @applitools/screenshoter bumped to 3.12.16
72
+
73
+ * @applitools/nml-client bumped to 1.11.20
74
+
75
+ * @applitools/core-base bumped to 1.32.2
76
+ #### Bug Fixes
77
+
78
+ * logEventBatch leaks to console | FLD-4175 ([#3608](https://github.com/Applitools-Dev/sdk/issues/3608)) ([f749d28](https://github.com/Applitools-Dev/sdk/commit/f749d287bf8a8e91ab819c04b13f8246f3d3a244))
79
+ * @applitools/ec-client bumped to 1.12.22
80
+
81
+ * @applitools/eyes bumped to 1.38.9
82
+
83
+
3
84
  ## [1.6.5](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.6.4...js/eyes-browser@1.6.5) (2026-03-08)
4
85
 
5
86
 
package/dist/index.js CHANGED
@@ -28154,7 +28154,8 @@ var require_upload = __commonJS({
28154
28154
  method: "PUT",
28155
28155
  headers: {
28156
28156
  "Content-Type": "application/octet-stream",
28157
- Date: (/* @__PURE__ */ new Date()).toISOString(),
28157
+ ...gzip && { "Content-Encoding": "gzip" },
28158
+ Date: (/* @__PURE__ */ new Date()).toUTCString(),
28158
28159
  "x-ms-blob-type": "BlockBlob"
28159
28160
  },
28160
28161
  body,
@@ -28823,7 +28824,8 @@ var require_requests = __commonJS({
28823
28824
  },
28824
28825
  eyesServerUrl: settings2.eyesServerUrl,
28825
28826
  apiKey: settings2.apiKey
28826
- }
28827
+ },
28828
+ logger: logger2
28827
28829
  }).catch((err) => logger2.log("Error logging event", { error: err, event: `UFG 'serviceUrlNew' is available` }));
28828
28830
  return resolve(serviceUrl);
28829
28831
  } else {
@@ -28838,7 +28840,8 @@ var require_requests = __commonJS({
28838
28840
  },
28839
28841
  eyesServerUrl: settings2.eyesServerUrl,
28840
28842
  apiKey: settings2.apiKey
28841
- }
28843
+ },
28844
+ logger: logger2
28842
28845
  }).catch((err) => logger2.log("Error logging event", { error: err, event: `UFG 'serviceUrlNew' is blocked` }));
28843
28846
  return resolve(void 0);
28844
28847
  }
@@ -28855,7 +28858,8 @@ var require_requests = __commonJS({
28855
28858
  },
28856
28859
  eyesServerUrl: settings2.eyesServerUrl,
28857
28860
  apiKey: settings2.apiKey
28858
- }
28861
+ },
28862
+ logger: logger2
28859
28863
  }).catch((err) => logger2.log("Error logging event", {
28860
28864
  error: err,
28861
28865
  event: `an error occured while accessing to UFG 'serviceUrlNew', the url is probably blocked`
@@ -28925,7 +28929,7 @@ var require_requests = __commonJS({
28925
28929
  logger.log('Request "deleteTest" finished successfully');
28926
28930
  }
28927
28931
  async function logEventBatch(batch) {
28928
- const logger = batch.map(([{ logger: logger2 }]) => logger2).reduce((acc, logger2) => logger2 ? acc.extend(logger2) : acc, mainLogger).extend({ tags: [`core-request-${utils2.general.shortid()}`] });
28932
+ const logger = batch.map(([{ logger: logger2 }]) => logger2).reduce((acc, logger2) => acc.extend(logger2)).extend({ tags: [`core-request-${utils2.general.shortid()}`] });
28929
28933
  const req2 = (0, req_eyes_1.makeReqEyes)({ settings: batch[0][0].settings, fetch: fetch2, logger });
28930
28934
  logger.log('Request "logEventBatch" called with settings', batch);
28931
28935
  const events = batch.map(([{ settings }]) => {
@@ -74524,43 +74528,43 @@ var require_dist3 = __commonJS({
74524
74528
  exports.addElementIds = function(arg) {
74525
74529
  var s = function() {
74526
74530
  "use strict";
74527
- function t(t2) {
74528
- return t2 && t2.__esModule && Object.prototype.hasOwnProperty.call(t2, "default") ? t2.default : t2;
74531
+ function e(e2) {
74532
+ return e2 && e2.__esModule && Object.prototype.hasOwnProperty.call(e2, "default") ? e2.default : e2;
74529
74533
  }
74530
- var e = function(t2) {
74531
- var e2 = t2 && t2[0] || null;
74532
- return !e2 || ("isConnected" in window.Node.prototype ? !e2.isConnected : document.documentElement.contains ? !document.documentElement.contains(e2) : !e2.ownerDocument.documentElement.contains(e2));
74533
- }, r = e;
74534
- var o = function(t2) {
74535
- if (!t2.hasAttribute("data-applitools-fallback-selector")) {
74536
- if (r([t2]))
74537
- throw new Error("The element is not connected to the DOM: " + function(t3) {
74538
- var e2 = t3.attributes, r2 = t3.tagName, o2 = t3.children.length, n2 = [].slice.call(e2).map(function(t4) {
74539
- return t4.name + '="' + t4.value + '"';
74534
+ var t = function(e2) {
74535
+ var t2 = e2 && e2[0] || null;
74536
+ return !t2 || ("isConnected" in window.Node.prototype ? !t2.isConnected : document.documentElement.contains ? !document.documentElement.contains(t2) : !t2.ownerDocument.documentElement.contains(t2));
74537
+ }, r = t;
74538
+ var n = function(e2) {
74539
+ if (!e2.hasAttribute("data-applitools-fallback-selector")) {
74540
+ if (r([e2]))
74541
+ throw new Error("The element is not connected to the DOM: " + function(e3) {
74542
+ var t2 = e3.attributes, r2 = e3.tagName, n2 = e3.children.length, o2 = [].slice.call(t2).map(function(e4) {
74543
+ return e4.name + '="' + e4.value + '"';
74540
74544
  }).join(" ");
74541
- return "<" + r2 + " " + n2 + (o2 ? ">" : "/>");
74542
- }(t2));
74543
- t2.setAttribute("data-applitools-fallback-selector", function(t3) {
74544
- var e2 = [];
74545
- for (; t3 && t3.nodeType === Node.ELEMENT_NODE; )
74545
+ return "<" + r2 + " " + o2 + (n2 ? ">" : "/>");
74546
+ }(e2));
74547
+ e2.setAttribute("data-applitools-fallback-selector", function(e3) {
74548
+ var t2 = [];
74549
+ for (; e3 && e3.nodeType === Node.ELEMENT_NODE; )
74546
74550
  try {
74547
- var r2, o2 = t3.tagName.toLowerCase(), n2 = [].slice.call((null == (r2 = t3.parentNode) ? void 0 : r2.children) || []).indexOf(t3);
74548
- n2 > -1 && (o2 += ":nth-child(" + (n2 + 1) + ")"), e2.unshift(o2), t3 = t3.parentNode;
74549
- } catch (t4) {
74551
+ var r2, n2 = e3.tagName.toLowerCase(), o2 = [].slice.call((null == (r2 = e3.parentNode) ? void 0 : r2.children) || []).indexOf(e3);
74552
+ o2 > -1 && (n2 += ":nth-child(" + (o2 + 1) + ")"), t2.unshift(n2), e3 = e3.parentNode;
74553
+ } catch (e4) {
74550
74554
  break;
74551
74555
  }
74552
- return e2.length ? e2.join(" > ") : "html";
74553
- }(t2));
74554
- }
74555
- }, n = e;
74556
- function a(t2, e2) {
74557
- if (n([t2])) {
74558
- var r2 = function(t3) {
74559
- if (null == t3 || !t3.getAttribute)
74560
- return { error: "invalid element: " + JSON.stringify(t3) };
74561
- var e3 = t3.getAttribute("data-applitools-fallback-selector");
74562
- return e3;
74563
- }(t2);
74556
+ return t2.length ? t2.join(" > ") : "html";
74557
+ }(e2));
74558
+ }
74559
+ }, o = t;
74560
+ function a(e2, t2) {
74561
+ if (o([e2])) {
74562
+ var r2 = function(e3) {
74563
+ if (null == e3 || !e3.getAttribute)
74564
+ return { error: "invalid element: " + JSON.stringify(e3) };
74565
+ var t3 = e3.getAttribute("data-applitools-fallback-selector");
74566
+ return t3;
74567
+ }(e2);
74564
74568
  if (!r2)
74565
74569
  return { error: "Failed to recover from stale element" };
74566
74570
  if (r2.error)
@@ -74569,25 +74573,32 @@ var require_dist3 = __commonJS({
74569
74573
  if (!l || 1 !== l.length)
74570
74574
  return { error: "Failed to recover from stale element - selector found: " + r2 };
74571
74575
  var i = l[0];
74572
- return i.setAttribute("data-applitools-selector", e2), i.setAttribute("data-applitools-recovered", true), a(i, e2);
74576
+ return i.setAttribute("data-applitools-selector", t2), i.setAttribute("data-applitools-recovered", true), a(i, t2);
74573
74577
  }
74574
- o(t2);
74575
- var u = t2.getAttribute("data-applitools-selector"), c = u ? u + " " + e2 : e2;
74576
- return t2.setAttribute("data-applitools-selector", c), '[data-applitools-selector~="' + e2 + '"]';
74578
+ n(e2);
74579
+ var u = e2.getAttribute("data-applitools-selector"), c = u ? u + " " + t2 : t2;
74580
+ return e2.setAttribute("data-applitools-selector", c), '[data-applitools-selector~="' + t2 + '"]';
74577
74581
  }
74578
- return t(function(t2) {
74579
- return t2.map(function(t3) {
74580
- var e2 = t3[0], r2 = t3[1];
74581
- return e2.map(function(t4) {
74582
- var e3 = function(t5) {
74583
- var e4 = [t5];
74584
- if (t5.getRootNode)
74585
- for (var r3 = t5.getRootNode(); r3 !== document && r3.constructor && "ShadowRoot" === r3.constructor.name; r3 = r3.host.getRootNode())
74586
- e4.push(r3.host);
74587
- return e4;
74588
- }(t4);
74589
- return e3.map(function(t5) {
74590
- return a(t5, r2);
74582
+ return e(function(e2) {
74583
+ return e2.map(function(e3) {
74584
+ var t2 = e3[0], r2 = e3[1];
74585
+ return t2.map(function(e4) {
74586
+ var t3 = function(e5) {
74587
+ var t4 = [{ element: e5, kind: "root" }], r3 = /* @__PURE__ */ new Set([e5]), n2 = e5;
74588
+ for (; n2; ) {
74589
+ var o2, a2 = n2.getRootNode && n2.getRootNode();
74590
+ if (!a2)
74591
+ break;
74592
+ if (a2.constructor && "ShadowRoot" === a2.constructor.name ? (n2 = a2.host, o2 = "shadow") : (n2 = a2.defaultView ? a2.defaultView.frameElement : null, o2 = "frame"), n2) {
74593
+ if (r3.has(n2))
74594
+ break;
74595
+ r3.add(n2), t4.push({ element: n2, kind: o2 });
74596
+ }
74597
+ }
74598
+ return t4;
74599
+ }(e4);
74600
+ return t3.map(function(e5) {
74601
+ return { selector: a(e5.element, r2), kind: e5.kind };
74591
74602
  });
74592
74603
  });
74593
74604
  });
@@ -74680,10 +74691,16 @@ var require_dist3 = __commonJS({
74680
74691
  }
74681
74692
  return t(function(t2) {
74682
74693
  (t2 = t2 && t2[0]) && "function" == typeof t2.forEach && t2.forEach(function(t3) {
74683
- if (t3.removeAttribute("data-applitools-selector"), t3.getRootNode)
74694
+ t3.removeAttribute("data-applitools-selector");
74695
+ var o = t3;
74696
+ if (o.getRootNode)
74684
74697
  try {
74685
- for (var o = t3.getRootNode(); o !== document && o.constructor && "ShadowRoot" === o.constructor.name; o = o.host.getRootNode())
74686
- o.host.removeAttribute("data-applitools-selector");
74698
+ for (; o; ) {
74699
+ var e = o.getRootNode();
74700
+ if (!e)
74701
+ break;
74702
+ (o = e.constructor && "ShadowRoot" === e.constructor.name ? e.host : e.defaultView ? e.defaultView.frameElement : null) && o.removeAttribute("data-applitools-selector");
74703
+ }
74687
74704
  } catch (t4) {
74688
74705
  }
74689
74706
  });
@@ -78193,7 +78210,12 @@ var require_driver = __commonJS({
78193
78210
  (_a = (_b = this._state).nmlElement) !== null && _a !== void 0 ? _a : _b.nmlElement = await this.waitFor({ type: "accessibility id", selector: "Applitools_View" }, { timeout: 1e4 }).catch(() => null);
78194
78211
  if (!this._state.nmlElement) {
78195
78212
  this._logger.log("Broker url extraction is failed due to absence of nml element");
78196
- return null;
78213
+ return {
78214
+ error: (
78215
+ // user facing error - doesn't mention broker on purpose to avoid confusion
78216
+ "NML not found - please make sure that the Application has NML library instrumented or contact support for more details"
78217
+ )
78218
+ };
78197
78219
  }
78198
78220
  try {
78199
78221
  let result;
@@ -78206,7 +78228,7 @@ var require_driver = __commonJS({
78206
78228
  await utils2.general.sleep(1e3);
78207
78229
  } while (!result.error);
78208
78230
  this._logger.error("Broker url extraction has failed with error", result.error);
78209
- return null;
78231
+ return { error: `NML initialization has failed with error: ${result.error}` };
78210
78232
  } catch (error) {
78211
78233
  this._logger.error("Broker url extraction has failed with error and will be retried", error);
78212
78234
  this._state.nmlElement = null;
@@ -80358,15 +80380,15 @@ var require_captureDomPollCjs = __commonJS({
80358
80380
  const o2 = [];
80359
80381
  let r2 = 0;
80360
80382
  for (let s2 = 0; s2 < e4.length; ++s2) {
80361
- const c2 = n2(e4, s2);
80362
- let a2 = 0;
80363
- c2 > 0 && (a2 = c2 < 128 ? 1 : c2 < 2048 ? 2 : c2 < 65536 ? 3 : c2 < 2097152 ? 4 : c2 < 67108864 ? 5 : 6), r2 + a2 > t4 ? (o2.push(s2), r2 = a2) : r2 += a2;
80383
+ const a2 = n2(e4, s2);
80384
+ let c2 = 0;
80385
+ a2 > 0 && (c2 = a2 < 128 ? 1 : a2 < 2048 ? 2 : a2 < 65536 ? 3 : a2 < 2097152 ? 4 : a2 < 67108864 ? 5 : 6), r2 + c2 > t4 ? (o2.push(s2), r2 = c2) : r2 += c2;
80364
80386
  }
80365
80387
  return o2;
80366
80388
  };
80367
80389
  const r = function(e4) {
80368
80390
  return e4 && e4.__esModule ? e4 : { default: e4 };
80369
- }(o), s = "WIP", c = "SUCCESS", a = "SUCCESS_CHUNKED", u = "ERROR";
80391
+ }(o), s = "WIP", a = "SUCCESS", c = "SUCCESS_CHUNKED", u = "ERROR";
80370
80392
  var i = function(e4, t4, n3 = {}) {
80371
80393
  const o2 = function(e5, { chunkByteLength: t5 = 0 } = {}) {
80372
80394
  if (e5) {
@@ -80380,15 +80402,15 @@ var require_captureDomPollCjs = __commonJS({
80380
80402
  return { status: u, error: e6.message };
80381
80403
  }
80382
80404
  if (e5.from >= 0)
80383
- return { status: a, value: e5.value.substring(e5.from, e5.from = e5.chunks.shift()), done: !e5.from };
80405
+ return { status: c, value: e5.value.substring(e5.from, e5.from = e5.chunks.shift()), done: !e5.from };
80384
80406
  }
80385
- return { status: c, value: e5.value };
80407
+ return { status: a, value: e5.value };
80386
80408
  }
80387
80409
  return e5.error ? { status: u, error: e5.error } : { status: s };
80388
80410
  }
80389
80411
  return { status: u, error: "unexpected poll request received - cannot find state of current operation" };
80390
80412
  }((e4 = e4 || {})[t4], n3);
80391
- return (o2.status === c || o2.status === u || o2.status === a && o2.done) && delete e4[t4], o2;
80413
+ return (o2.status === a || o2.status === u || o2.status === c && o2.done) && delete e4[t4], o2;
80392
80414
  };
80393
80415
  const l = i;
80394
80416
  var d = function(e4) {
@@ -80444,25 +80466,25 @@ var require_captureDomPollCjs = __commonJS({
80444
80466
  var w = { EYES_NAMESPACE: "__EYES__APPLITOOLS__", DOM_CAPTURE_KEY: "domCaptureResult", NODE_TYPES: { ELEMENT: 1, TEXT: 3, DOCUMENT_FRAGMENT: 11 }, DEFAULT_STYLE_PROPS: ["background-color", "background-image", "background-origin", "background-position", "background-repeat", "background-size", "border-color", "border-radius", "border-style", "border-width", "color", "cursor", "display", "font-family", "font-size", "font-weight", "font-style", "line-height", "margin", "opacity", "overflow", "padding", "pointer-events", "position", "text-align", "visibility", "z-index"], DEFAULT_RECT_PROPS: ["width", "height", "top", "left"], DEFAULT_IGNORED_TAG_NAMES: ["HEAD", "SCRIPT"] };
80445
80467
  const E = /url\((?!['"]?:)['"]?([^'")]*)['"]?\)/;
80446
80468
  const { NODE_TYPES: C } = w;
80447
- function T(e4) {
80469
+ function b(e4) {
80448
80470
  return Array.prototype.filter.call(e4.parentNode.childNodes, (t4) => t4.tagName === e4.tagName).indexOf(e4) + 1;
80449
80471
  }
80450
- var b = function(t4) {
80472
+ var T = function(t4) {
80451
80473
  var n3 = e3.implementation.createHTMLDocument(""), o2 = n3.createElement("style");
80452
80474
  return o2.textContent = t4, n3.body.appendChild(o2), o2.sheet;
80453
- }, N = function(e4) {
80475
+ }, S = function(e4) {
80454
80476
  const t4 = Array.from(e4.attributes).find((e5) => "href" === e5.name.toLowerCase());
80455
80477
  return t4 && t4.value;
80456
- }, S = function(e4) {
80478
+ }, N = function(e4) {
80457
80479
  if (e4.nodeName && "LINK" === e4.nodeName.toUpperCase() && e4.attributes) {
80458
80480
  const t4 = new Map(Array.from(e4.attributes, (e5) => [e5.name.toLowerCase(), e5.value.toLowerCase()]));
80459
80481
  return "stylesheet" === t4.get("rel") || "style" === t4.get("as") && ["preload", "prefetch"].includes(t4.get("rel"));
80460
80482
  }
80461
80483
  return false;
80462
80484
  };
80463
- const A = N, _ = S;
80464
- const { absolutizeUrl: v, isInlineFrame: P } = t3, R = b, $ = N, U = S, { NODE_TYPES: D } = w;
80465
- const { absolutizeUrl: O, isInlineFrame: k } = t3, F = function(e4) {
80485
+ const A = S, v = N;
80486
+ const { absolutizeUrl: _, isInlineFrame: P } = t3, R = T, $ = S, U = N, { NODE_TYPES: O } = w;
80487
+ const { absolutizeUrl: D, isInlineFrame: k } = t3, F = function(e4) {
80466
80488
  const t4 = e4 ? e4.match(E) : void 0;
80467
80489
  return t4 ? t4[1] : t4;
80468
80490
  }, I = async function({ bgImages: e4, timeout: t4 = 5e3, Image: n3 = window.Image }) {
@@ -80480,32 +80502,32 @@ var require_captureDomPollCjs = __commonJS({
80480
80502
  return "";
80481
80503
  let n3 = "", o2 = t4, r2 = t4.ownerDocument, s2 = r2.defaultView.frameElement;
80482
80504
  for (; o2 !== r2 && (!o2 || o2.nodeType !== C.DOCUMENT_FRAGMENT); )
80483
- n3 = `${o2.tagName}[${T(o2)}]/${n3}`, o2 = o2.parentNode;
80505
+ n3 = `${o2.tagName}[${b(o2)}]/${n3}`, o2 = o2.parentNode;
80484
80506
  return s2 && (n3 = `${e4(s2)},${n3}`), n3.replace(/\/$/, "");
80485
80507
  }, x = function({ parseCss: e4, CSSImportRule: t4, absolutizeUrl: n3, getCssFromCache: o2, unfetchedToken: r2 }) {
80486
- return function s2(c2, a2) {
80508
+ return function s2(a2, c2) {
80487
80509
  let u2, i2 = "";
80488
80510
  try {
80489
- const l3 = e4(c2);
80511
+ const l3 = e4(a2);
80490
80512
  for (const e5 of Array.from(l3.cssRules))
80491
80513
  if (e5 instanceof t4) {
80492
- const t5 = n3(e5.href, a2), c3 = o2(t5);
80493
- if (void 0 !== c3) {
80494
- const { bundledCss: e6, unfetchedResources: n4 } = s2(c3, t5);
80514
+ const t5 = n3(e5.href, c2), a3 = o2(t5);
80515
+ if (void 0 !== a3) {
80516
+ const { bundledCss: e6, unfetchedResources: n4 } = s2(a3, t5);
80495
80517
  n4 && (u2 = new Set(n4)), i2 = `${i2}${e6}`;
80496
80518
  } else
80497
80519
  u2 = /* @__PURE__ */ new Set([t5]), i2 = `
80498
80520
  ${r2}${t5}${r2}`;
80499
80521
  }
80500
80522
  } catch (e5) {
80501
- console.log(`error during getBundledCssFromCssText, styleBaseUrl=${a2}`, e5);
80523
+ console.log(`error during getBundledCssFromCssText, styleBaseUrl=${c2}`, e5);
80502
80524
  }
80503
80525
  var l2, d2;
80504
- return i2 = `${i2}${l2 = c2, d2 = a2, `
80526
+ return i2 = `${i2}${l2 = a2, d2 = c2, `
80505
80527
  /** ${d2} **/
80506
80528
  ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80507
80529
  };
80508
- }, M = b, V = function(e4, t4) {
80530
+ }, M = T, V = function(e4, t4) {
80509
80531
  try {
80510
80532
  return ["before", "after"].reduce((n3, o2) => {
80511
80533
  const r2 = e4.ownerDocument.defaultView.getComputedStyle(e4, `:${o2}`);
@@ -80519,7 +80541,7 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80519
80541
  } catch (e5) {
80520
80542
  return;
80521
80543
  }
80522
- }, z = function(e4, { fetchTimeLimit: t4 } = {}) {
80544
+ }, j = function(e4, { fetchTimeLimit: t4 } = {}) {
80523
80545
  return async function(n3) {
80524
80546
  const o2 = new AbortController(), r2 = [e4(n3, { cache: "force-cache", signal: o2.signal }).then((e5) => {
80525
80547
  if (e5.ok)
@@ -80530,54 +80552,54 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80530
80552
  })];
80531
80553
  return Number.isNaN(Number(t4)) || r2.push(new Promise((e5) => setTimeout(e5, t4)).then(() => o2.abort())), Promise.race(r2);
80532
80554
  };
80533
- }, B = function({ getCssFromCache: e4, absolutizeUrl: t4 }) {
80555
+ }, z = function({ getCssFromCache: e4, absolutizeUrl: t4 }) {
80534
80556
  return function(n3, o2) {
80535
- let r2, s2, c2;
80557
+ let r2, s2, a2;
80536
80558
  if (n3 && function(e5) {
80537
80559
  return e5.nodeName && "STYLE" === e5.nodeName.toUpperCase();
80538
80560
  }(n3))
80539
80561
  r2 = Array.from(n3.childNodes).map((e5) => e5.nodeValue).join(""), s2 = o2;
80540
- else if (n3 && _(n3)) {
80541
- const a2 = A(n3);
80542
- if (a2)
80562
+ else if (n3 && v(n3)) {
80563
+ const c2 = A(n3);
80564
+ if (c2)
80543
80565
  if (function(e5) {
80544
80566
  return e5 && e5.startsWith("data:");
80545
- }(a2)) {
80567
+ }(c2)) {
80546
80568
  s2 = o2;
80547
- const e5 = a2.match(/,(.*)/);
80569
+ const e5 = c2.match(/,(.*)/);
80548
80570
  r2 = e5 ? e5[1] : "";
80549
80571
  } else
80550
- s2 = t4(a2, o2), r2 = e4(s2);
80572
+ s2 = t4(c2, o2), r2 = e4(s2);
80551
80573
  else
80552
80574
  r2 = "";
80553
- c2 = void 0 === r2;
80575
+ a2 = void 0 === r2;
80554
80576
  }
80555
- return { cssText: r2, styleBaseUrl: s2, isUnfetched: c2 };
80577
+ return { cssText: r2, styleBaseUrl: s2, isUnfetched: a2 };
80556
80578
  };
80557
- }, Y = function({ extractCssFromNode: e4, getBundledCssFromCssText: t4, unfetchedToken: n3 }) {
80579
+ }, B = function({ extractCssFromNode: e4, getBundledCssFromCssText: t4, unfetchedToken: n3 }) {
80558
80580
  return function(o2, r2) {
80559
- const { styleBaseUrl: s2, cssText: c2, isUnfetched: a2 } = e4(o2, r2);
80581
+ const { styleBaseUrl: s2, cssText: a2, isUnfetched: c2 } = e4(o2, r2);
80560
80582
  let u2, i2 = "";
80561
- if (c2) {
80562
- const { bundledCss: e5, unfetchedResources: n4 } = t4(c2, s2);
80583
+ if (a2) {
80584
+ const { bundledCss: e5, unfetchedResources: n4 } = t4(a2, s2);
80563
80585
  i2 += e5, u2 = new Set(n4);
80564
80586
  } else
80565
- a2 && (i2 += `${n3}${s2}${n3}`, u2 = /* @__PURE__ */ new Set([s2]));
80587
+ c2 && (i2 += `${n3}${s2}${n3}`, u2 = /* @__PURE__ */ new Set([s2]));
80566
80588
  return { bundledCss: i2, unfetchedResources: u2 };
80567
80589
  };
80568
- }, j = function(t4) {
80590
+ }, Y = function(t4) {
80569
80591
  return async function(n3 = e3) {
80570
80592
  const o2 = {}, r2 = Date.now(), s2 = [];
80571
80593
  return function e4(n4, o3, r3, s3) {
80572
- function a2(e5) {
80594
+ function c2(e5) {
80573
80595
  if (s3.push(async function(e6, n5, o4) {
80574
80596
  let r4, s4;
80575
- e6 && U(e6) && (s4 = v($(e6), n5), r4 = await t4(s4), void 0 !== r4 && (o4[s4] = r4)), r4 && await c2(r4, s4, o4);
80576
- }(e5, o3, r3)), e5.nodeType === D.ELEMENT)
80597
+ e6 && U(e6) && (s4 = _($(e6), n5), r4 = await t4(s4), void 0 !== r4 && (o4[s4] = r4)), r4 && await a2(r4, s4, o4);
80598
+ }(e5, o3, r3)), e5.nodeType === O.ELEMENT)
80577
80599
  return "IFRAME" === e5.tagName.toUpperCase() ? i2(e5) : u2(e5);
80578
80600
  }
80579
80601
  function u2(e5) {
80580
- Array.prototype.map.call(e5.childNodes, a2);
80602
+ Array.prototype.map.call(e5.childNodes, c2);
80581
80603
  }
80582
80604
  function i2(t5) {
80583
80605
  if (u2(t5), t5.contentDocument)
@@ -80588,17 +80610,17 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80588
80610
  console.log(t6);
80589
80611
  }
80590
80612
  }
80591
- a2(n4.documentElement);
80613
+ c2(n4.documentElement);
80592
80614
  }(n3, n3.location.href, o2, s2), await Promise.all(s2), console.log("[prefetchAllCss]", Date.now() - r2), function(e4) {
80593
80615
  return o2[e4];
80594
80616
  };
80595
- async function c2(e4, n4, o3) {
80617
+ async function a2(e4, n4, o3) {
80596
80618
  try {
80597
80619
  const r3 = R(e4), s3 = [];
80598
80620
  for (const e5 of Array.from(r3.cssRules))
80599
80621
  e5 instanceof CSSImportRule && s3.push((async () => {
80600
- const r4 = v(e5.href, n4), s4 = await t4(r4);
80601
- o3[r4] = s4, void 0 !== s4 && await c2(s4, r4, o3);
80622
+ const r4 = _(e5.href, n4), s4 = await t4(r4);
80623
+ o3[r4] = s4, void 0 !== s4 && await a2(s4, r4, o3);
80602
80624
  })());
80603
80625
  await Promise.all(s3);
80604
80626
  } catch (e5) {
@@ -80606,9 +80628,51 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80606
80628
  }
80607
80629
  }
80608
80630
  };
80609
- }, { NODE_TYPES: G, DEFAULT_STYLE_PROPS: J, DEFAULT_RECT_PROPS: K, DEFAULT_IGNORED_TAG_NAMES: H } = w;
80610
- const { pollify: W } = t3, { EYES_NAMESPACE: X, DOM_CAPTURE_KEY: q } = w, Q = async function({ doc: t4 = e3, styleProps: n3 = J, rectProps: o2 = K, elementProps: r2 = [], ignoredTagNames: s2 = H, capturePseudo: c2 = false, addStats: a2 = false, fetchTimeLimit: u2 = 3e4 } = {}) {
80611
- arguments[1] && (t4 = arguments[1]), arguments[2] && (a2 = arguments[2]), arguments[3] && (u2 = arguments[3]), true === n3 && (n3 = [...getComputedStyle(t4.body)]);
80631
+ }, G = function(e4) {
80632
+ const t4 = /* @__PURE__ */ new WeakSet();
80633
+ return function e5(n3) {
80634
+ if (void 0 !== n3) {
80635
+ if (null === n3)
80636
+ return "null";
80637
+ if ("boolean" == typeof n3)
80638
+ return n3 ? "true" : "false";
80639
+ if ("number" == typeof n3)
80640
+ return isFinite(n3) ? String(n3) : "null";
80641
+ if ("string" == typeof n3)
80642
+ return '"' + n3.replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029\\"]/g, (e6) => {
80643
+ switch (e6) {
80644
+ case '"':
80645
+ return '\\"';
80646
+ case "\\":
80647
+ return "\\\\";
80648
+ case "\n":
80649
+ return "\\n";
80650
+ case "\r":
80651
+ return "\\r";
80652
+ case " ":
80653
+ return "\\t";
80654
+ case "\b":
80655
+ return "\\b";
80656
+ case "\f":
80657
+ return "\\f";
80658
+ default:
80659
+ return "\\u" + ("0000" + e6.charCodeAt(0).toString(16)).slice(-4);
80660
+ }
80661
+ }) + '"';
80662
+ if ("object" == typeof n3) {
80663
+ if (t4.has(n3))
80664
+ throw new TypeError("Converting circular structure to JSON");
80665
+ let o2;
80666
+ return t4.add(n3), o2 = Array.isArray(n3) ? "[" + Array.from(n3, (t5) => {
80667
+ var _a;
80668
+ return (_a = e5(t5)) != null ? _a : "null";
80669
+ }).join(",") + "]" : "{" + Object.keys(n3).filter((e6) => void 0 !== n3[e6]).map((t5) => e5(t5) + ":" + e5(n3[t5])).join(",") + "}", t4.delete(n3), o2;
80670
+ }
80671
+ }
80672
+ }(e4);
80673
+ }, { NODE_TYPES: J, DEFAULT_STYLE_PROPS: K, DEFAULT_RECT_PROPS: W, DEFAULT_IGNORED_TAG_NAMES: H } = w;
80674
+ const { pollify: X } = t3, { EYES_NAMESPACE: q, DOM_CAPTURE_KEY: Q } = w, Z = async function({ doc: t4 = e3, styleProps: n3 = K, rectProps: o2 = W, elementProps: r2 = [], ignoredTagNames: s2 = H, capturePseudo: a2 = false, addStats: c2 = false, fetchTimeLimit: u2 = 3e4 } = {}) {
80675
+ arguments[1] && (t4 = arguments[1]), arguments[2] && (c2 = arguments[2]), arguments[3] && (u2 = arguments[3]), true === n3 && (n3 = [...getComputedStyle(t4.body)]);
80612
80676
  const i2 = { total: {}, prefetchCss: {}, doCaptureDoc: {}, waitForImages: {} };
80613
80677
  function l2(e4) {
80614
80678
  e4.startTime = Date.now();
@@ -80620,11 +80684,11 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80620
80684
  l2(i2.total);
80621
80685
  const m2 = /* @__PURE__ */ new Set(), h2 = [], p2 = "@@@@@", g2 = "#####", y2 = "-----";
80622
80686
  l2(i2.prefetchCss);
80623
- const w2 = j(z(fetch, { fetchTimeLimit: u2 })), E2 = await w2(t4);
80687
+ const w2 = Y(j(fetch, { fetchTimeLimit: u2 })), E2 = await w2(t4);
80624
80688
  d2(i2.prefetchCss);
80625
- const C2 = x({ parseCss: M, CSSImportRule, getCssFromCache: E2, absolutizeUrl: O, unfetchedToken: g2 }), T2 = B({ getCssFromCache: E2, absolutizeUrl: O }), b2 = Y({ extractCssFromNode: T2, getBundledCssFromCssText: C2, unfetchedToken: g2 });
80689
+ const C2 = x({ parseCss: M, CSSImportRule, getCssFromCache: E2, absolutizeUrl: D, unfetchedToken: g2 }), b2 = z({ getCssFromCache: E2, absolutizeUrl: D }), T2 = B({ extractCssFromNode: b2, getBundledCssFromCssText: C2, unfetchedToken: g2 });
80626
80690
  l2(i2.doCaptureDoc);
80627
- const N2 = function a3(u3, i3 = u3.location && u3.location.href) {
80691
+ const S2 = function c3(u3, i3 = u3.location && u3.location.href) {
80628
80692
  const l3 = /* @__PURE__ */ new Set();
80629
80693
  let d3 = "";
80630
80694
  const g3 = y3(u3.documentElement || u3);
@@ -80632,12 +80696,12 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80632
80696
  function y3(t5) {
80633
80697
  if (t5.hasAttribute && t5.hasAttribute("data-applitools-skip"))
80634
80698
  return null;
80635
- const { bundledCss: n4, unfetchedResources: r3 } = b2(t5, i3);
80699
+ const { bundledCss: n4, unfetchedResources: r3 } = T2(t5, i3);
80636
80700
  if (d3 += n4, r3)
80637
80701
  for (const e4 of r3)
80638
80702
  m2.add(e4);
80639
80703
  switch (t5.nodeType) {
80640
- case G.TEXT:
80704
+ case J.TEXT:
80641
80705
  return function(t6) {
80642
80706
  const n5 = e3.createRange();
80643
80707
  n5.selectNode(t6);
@@ -80649,7 +80713,7 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80649
80713
  return t7;
80650
80714
  }) : void 0 };
80651
80715
  }(t5);
80652
- case G.ELEMENT:
80716
+ case J.ELEMENT:
80653
80717
  return "IFRAME" === t5.tagName.toUpperCase() ? function(e4) {
80654
80718
  const t6 = w3(e4);
80655
80719
  let n5;
@@ -80659,7 +80723,7 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80659
80723
  return o3(), t6;
80660
80724
  }
80661
80725
  try {
80662
- n5 ? t6.childNodes = [a3(n5, k(e4) ? e4.baseURI : n5.location.href)] : o3();
80726
+ n5 ? t6.childNodes = [c3(n5, k(e4) ? e4.baseURI : n5.location.href)] : o3();
80663
80727
  } catch (e5) {
80664
80728
  console.log("error in iframeToJSON", e5);
80665
80729
  }
@@ -80669,14 +80733,14 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80669
80733
  h2.push(n6), t6.childNodes = [`${p2}${n6}${p2}`];
80670
80734
  }
80671
80735
  }(t5) : w3(t5);
80672
- case G.DOCUMENT_FRAGMENT:
80736
+ case J.DOCUMENT_FRAGMENT:
80673
80737
  return { childNodes: Array.prototype.map.call(t5.childNodes, y3).filter(Boolean) };
80674
80738
  default:
80675
80739
  return null;
80676
80740
  }
80677
80741
  }
80678
80742
  function w3(e4) {
80679
- const u4 = Array.prototype.map.call(e4.childNodes, y3).filter(Boolean), d4 = e4.shadowRoot && a3(e4.shadowRoot, i3), f3 = e4.tagName.toUpperCase();
80743
+ const u4 = Array.prototype.map.call(e4.childNodes, y3).filter(Boolean), d4 = e4.shadowRoot && c3(e4.shadowRoot, i3), f3 = e4.tagName.toUpperCase();
80680
80744
  if (s2.indexOf(f3) > -1)
80681
80745
  return null;
80682
80746
  const m3 = t4.defaultView.getComputedStyle(e4), h3 = e4.getBoundingClientRect(), p3 = {};
@@ -80690,38 +80754,38 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
80690
80754
  "INPUT" !== f3 && "TEXTAREA" !== f3 || !e4.value || (w4.value && console.log(`[captureFrame] Overriding element attributes value from ${w4.value} to ${e4.value}`), w4.value = e4.value);
80691
80755
  const E3 = F(m3.getPropertyValue("background-image"));
80692
80756
  E3 && l3.add(E3);
80693
- const C3 = V(e4, n3), T3 = c2 ? C3 : void 0;
80757
+ const C3 = V(e4, n3), b3 = a2 ? C3 : void 0;
80694
80758
  C3 && (w4["data-applitools-has-pseudo"] = Object.keys(C3).join("_and_"));
80695
- const b3 = {};
80759
+ const T3 = {};
80696
80760
  for (const t5 of r2)
80697
- b3[t5] = e4[t5];
80698
- "SELECT" === f3 && e4.selectedOptions && e4.selectedOptions.length > 0 && (b3.selectedText = Array.from(e4.selectedOptions).map((e5) => e5.innerText));
80699
- const N3 = { tagName: f3, style: P2(p3), rect: P2(g4), attributes: P2(w4), properties: P2(b3), childNodes: u4, pseudo: T3 };
80700
- return d4 && (N3.shadowRoot = d4), N3;
80761
+ T3[t5] = e4[t5];
80762
+ "SELECT" === f3 && e4.selectedOptions && e4.selectedOptions.length > 0 && (T3.selectedText = Array.from(e4.selectedOptions).map((e5) => e5.innerText));
80763
+ const S3 = { tagName: f3, style: R2(p3), rect: R2(g4), attributes: R2(w4), properties: R2(T3), childNodes: u4, pseudo: b3 };
80764
+ return d4 && (S3.shadowRoot = d4), S3;
80701
80765
  }
80702
80766
  }(t4);
80703
- d2(i2.doCaptureDoc), l2(i2.waitForImages), await Promise.all(f2), d2(i2.waitForImages), N2.version = "1.3.0", N2.scriptVersion = "11.6.11";
80704
- const S2 = h2.length ? `${h2.join("\n")}
80767
+ d2(i2.doCaptureDoc), l2(i2.waitForImages), await Promise.all(f2), d2(i2.waitForImages), S2.version = "1.3.0", S2.scriptVersion = "11.6.12";
80768
+ const N2 = h2.length ? `${h2.join("\n")}
80705
80769
  ` : "", A2 = m2.size ? `${Array.from(m2).join("\n")}
80706
- ` : "", _2 = JSON.stringify({ separator: y2, cssStartToken: g2, cssEndToken: g2, iframeStartToken: `"${p2}`, iframeEndToken: `${p2}"` });
80770
+ ` : "", v2 = JSON.stringify({ separator: y2, cssStartToken: g2, cssEndToken: g2, iframeStartToken: `"${p2}`, iframeEndToken: `${p2}"` });
80707
80771
  d2(i2.total);
80708
- const v2 = `${_2}
80772
+ const _2 = JSON.stringify(S2), P2 = `${v2}
80709
80773
  ${A2}${y2}
80710
- ${S2}${y2}
80711
- ${JSON.stringify(N2)}${a2 ? `
80774
+ ${N2}${y2}
80775
+ ${"string" == typeof _2 ? _2 : G(S2)}${c2 ? `
80712
80776
  ${y2}
80713
80777
  ${JSON.stringify(i2)}` : ""}`;
80714
- return console.log("[captureFrame]", JSON.stringify(i2)), v2;
80715
- function P2(e4) {
80778
+ return console.log("[captureFrame]", JSON.stringify(i2)), P2;
80779
+ function R2(e4) {
80716
80780
  return Object.keys(e4).length ? e4 : void 0;
80717
80781
  }
80718
80782
  };
80719
- window[X] = window[X] || {};
80720
- const Z = W(Q, window[X], q);
80783
+ window[q] = window[q] || {};
80784
+ const ee = X(Z, window[q], Q);
80721
80785
  return function(e4) {
80722
80786
  return e4 && e4.__esModule && Object.prototype.hasOwnProperty.call(e4, "default") ? e4.default : e4;
80723
80787
  }(function(e4) {
80724
- return JSON.stringify(Z(e4)(e4));
80788
+ return JSON.stringify(ee(e4)(e4));
80725
80789
  });
80726
80790
  }();
80727
80791
  };
@@ -87484,15 +87548,61 @@ var require_captureDomPollForIE = __commonJS({
87484
87548
  return r3.apply(this, arguments);
87485
87549
  };
87486
87550
  }();
87487
- }, G0 = s0.NODE_TYPES, H0 = s0.DEFAULT_STYLE_PROPS, q0 = s0.DEFAULT_RECT_PROPS, W0 = s0.DEFAULT_IGNORED_TAG_NAMES;
87488
- function Y0() {
87489
- return Y0 = h0(d0().mark(function e4(r3) {
87490
- var n3, o3, i3, a2, u2, c2, s2, f2, l2, h2, p2, d2, v2, g2, y2, m2, b2, w2, E2, A2, S2, O2, x2, T2, R2, _2, P2, I2, L2, j2, k2, C2, M2, N2, U2, D2, F2, B2, z2, V2, G2 = arguments;
87551
+ }, G0 = function(t4) {
87552
+ var e4 = /* @__PURE__ */ new WeakSet();
87553
+ return function t5(r3) {
87554
+ if (void 0 !== r3) {
87555
+ if (null === r3)
87556
+ return "null";
87557
+ if ("boolean" == typeof r3)
87558
+ return r3 ? "true" : "false";
87559
+ if ("number" == typeof r3)
87560
+ return isFinite(r3) ? String(r3) : "null";
87561
+ if ("string" == typeof r3)
87562
+ return '"' + r3.replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029\\"]/g, function(t6) {
87563
+ switch (t6) {
87564
+ case '"':
87565
+ return '\\"';
87566
+ case "\\":
87567
+ return "\\\\";
87568
+ case "\n":
87569
+ return "\\n";
87570
+ case "\r":
87571
+ return "\\r";
87572
+ case " ":
87573
+ return "\\t";
87574
+ case "\b":
87575
+ return "\\b";
87576
+ case "\f":
87577
+ return "\\f";
87578
+ default:
87579
+ return "\\u" + ("0000" + t6.charCodeAt(0).toString(16)).slice(-4);
87580
+ }
87581
+ }) + '"';
87582
+ if ("object" == typeof r3) {
87583
+ if (e4.has(r3))
87584
+ throw new TypeError("Converting circular structure to JSON");
87585
+ var n3;
87586
+ return e4.add(r3), n3 = Array.isArray(r3) ? "[" + Array.from(r3, function(e5) {
87587
+ var r4;
87588
+ return null != (r4 = t5(e5)) ? r4 : "null";
87589
+ }).join(",") + "]" : "{" + Object.keys(r3).filter(function(t6) {
87590
+ return void 0 !== r3[t6];
87591
+ }).map(function(e5) {
87592
+ return t5(e5) + ":" + t5(r3[e5]);
87593
+ }).join(",") + "}", e4.delete(r3), n3;
87594
+ }
87595
+ }
87596
+ }(t4);
87597
+ }, H0 = s0.NODE_TYPES, q0 = s0.DEFAULT_STYLE_PROPS, W0 = s0.DEFAULT_RECT_PROPS, Y0 = s0.DEFAULT_IGNORED_TAG_NAMES;
87598
+ function $0() {
87599
+ return $0 = h0(d0().mark(function e4(r3) {
87600
+ var n3, o3, i3, a2, u2, c2, s2, f2, l2, h2, p2, d2, v2, g2, y2, m2, b2, w2, E2, A2, S2, O2, x2, T2, R2, _2, P2, I2, L2, j2, k2, C2, M2, N2, U2, D2, F2, B2, z2, V2, G2, H2 = arguments;
87491
87601
  return d0().wrap(function(e5) {
87492
87602
  for (; ; )
87493
87603
  switch (e5.prev = e5.next) {
87494
87604
  case 0:
87495
- return V2 = function(t4, e6) {
87605
+ return G2 = function(t4, e6) {
87496
87606
  void 0 === e6 && (e6 = t4.location && t4.location.href);
87497
87607
  var r4 = /* @__PURE__ */ new Set(), n4 = "", o4 = a3(t4.documentElement || t4);
87498
87608
  return o4.css = n4, S2.push(C0({ bgImages: r4 }).then(function(t5) {
@@ -87508,9 +87618,9 @@ var require_captureDomPollForIE = __commonJS({
87508
87618
  O2.add(f3);
87509
87619
  }
87510
87620
  switch (t5.nodeType) {
87511
- case G0.TEXT:
87512
- return z2(t5);
87513
- case G0.ELEMENT:
87621
+ case H0.TEXT:
87622
+ return V2(t5);
87623
+ case H0.ELEMENT:
87514
87624
  return "IFRAME" === t5.tagName.toUpperCase() ? function(t6) {
87515
87625
  var e7, r6 = c3(t6);
87516
87626
  try {
@@ -87519,7 +87629,7 @@ var require_captureDomPollForIE = __commonJS({
87519
87629
  return n5(), r6;
87520
87630
  }
87521
87631
  try {
87522
- e7 ? r6.childNodes = [V2(e7, j0(t6) ? t6.baseURI : e7.location.href)] : n5();
87632
+ e7 ? r6.childNodes = [G2(e7, j0(t6) ? t6.baseURI : e7.location.href)] : n5();
87523
87633
  } catch (t7) {
87524
87634
  console.log("error in iframeToJSON", t7);
87525
87635
  }
@@ -87529,14 +87639,14 @@ var require_captureDomPollForIE = __commonJS({
87529
87639
  x2.push(e8), r6.childNodes = ["" + T2 + e8 + T2];
87530
87640
  }
87531
87641
  }(t5) : c3(t5);
87532
- case G0.DOCUMENT_FRAGMENT:
87642
+ case H0.DOCUMENT_FRAGMENT:
87533
87643
  return { childNodes: Array.prototype.map.call(t5.childNodes, a3).filter(Boolean) };
87534
87644
  default:
87535
87645
  return null;
87536
87646
  }
87537
87647
  }
87538
87648
  function c3(t5) {
87539
- var n5 = Array.prototype.map.call(t5.childNodes, a3).filter(Boolean), o5 = t5.shadowRoot && V2(t5.shadowRoot, e6), c4 = t5.tagName.toUpperCase();
87649
+ var n5 = Array.prototype.map.call(t5.childNodes, a3).filter(Boolean), o5 = t5.shadowRoot && G2(t5.shadowRoot, e6), c4 = t5.tagName.toUpperCase();
87540
87650
  if (p2.indexOf(c4) > -1)
87541
87651
  return null;
87542
87652
  for (var f3, h3 = i3.defaultView.getComputedStyle(t5), d3 = t5.getBoundingClientRect(), g3 = {}, y3 = p0(u2); !(f3 = y3()).done; ) {
@@ -87565,10 +87675,10 @@ var require_captureDomPollForIE = __commonJS({
87565
87675
  "SELECT" === c4 && t5.selectedOptions && t5.selectedOptions.length > 0 && (_3.selectedText = Array.from(t5.selectedOptions).map(function(t6) {
87566
87676
  return t6.innerText;
87567
87677
  }));
87568
- var L3 = { tagName: c4, style: B2(g3), rect: B2(w3), attributes: B2(S3), properties: B2(_3), childNodes: n5, pseudo: T3 };
87678
+ var L3 = { tagName: c4, style: z2(g3), rect: z2(w3), attributes: z2(S3), properties: z2(_3), childNodes: n5, pseudo: T3 };
87569
87679
  return o5 && (L3.shadowRoot = o5), L3;
87570
87680
  }
87571
- }, z2 = function(e6) {
87681
+ }, V2 = function(e6) {
87572
87682
  var r4 = t3.createRange();
87573
87683
  r4.selectNode(e6);
87574
87684
  var n4 = r4.getClientRects();
@@ -87579,7 +87689,7 @@ var require_captureDomPollForIE = __commonJS({
87579
87689
  }
87580
87690
  return r5;
87581
87691
  }) : void 0 };
87582
- }, B2 = function(t4) {
87692
+ }, z2 = function(t4) {
87583
87693
  return Object.keys(t4).length ? t4 : void 0;
87584
87694
  }, D2 = function() {
87585
87695
  return y2 ? "\n" + _2 + "\n" + JSON.stringify(w2) : "";
@@ -87587,28 +87697,28 @@ var require_captureDomPollForIE = __commonJS({
87587
87697
  t4.endTime = Date.now(), t4.elapsedTime = t4.endTime - t4.startTime;
87588
87698
  }, E2 = function(t4) {
87589
87699
  t4.startTime = Date.now();
87590
- }, o3 = (n3 = void 0 === r3 ? {} : r3).doc, i3 = void 0 === o3 ? t3 : o3, a2 = n3.styleProps, u2 = void 0 === a2 ? H0 : a2, c2 = n3.rectProps, s2 = void 0 === c2 ? q0 : c2, f2 = n3.elementProps, l2 = void 0 === f2 ? [] : f2, h2 = n3.ignoredTagNames, p2 = void 0 === h2 ? W0 : h2, d2 = n3.capturePseudo, v2 = void 0 !== d2 && d2, g2 = n3.addStats, y2 = void 0 !== g2 && g2, m2 = n3.fetchTimeLimit, b2 = void 0 === m2 ? 3e4 : m2, /* MARKER FOR TEST - DO NOT DELETE */
87591
- G2[1] && (i3 = G2[1]), G2[2] && (y2 = G2[2]), G2[3] && (b2 = G2[3]), true === u2 && (u2 = [].concat(getComputedStyle(i3.body))), S2 = [], E2((w2 = { total: {}, prefetchCss: {}, doCaptureDoc: {}, waitForImages: {} }).total), O2 = /* @__PURE__ */ new Set(), x2 = [], T2 = "@@@@@", R2 = "#####", _2 = "-----", E2(w2.prefetchCss), P2 = V0(F0(fetch, { fetchTimeLimit: b2 })), e5.next = 23, P2(i3);
87700
+ }, o3 = (n3 = void 0 === r3 ? {} : r3).doc, i3 = void 0 === o3 ? t3 : o3, a2 = n3.styleProps, u2 = void 0 === a2 ? q0 : a2, c2 = n3.rectProps, s2 = void 0 === c2 ? W0 : c2, f2 = n3.elementProps, l2 = void 0 === f2 ? [] : f2, h2 = n3.ignoredTagNames, p2 = void 0 === h2 ? Y0 : h2, d2 = n3.capturePseudo, v2 = void 0 !== d2 && d2, g2 = n3.addStats, y2 = void 0 !== g2 && g2, m2 = n3.fetchTimeLimit, b2 = void 0 === m2 ? 3e4 : m2, /* MARKER FOR TEST - DO NOT DELETE */
87701
+ H2[1] && (i3 = H2[1]), H2[2] && (y2 = H2[2]), H2[3] && (b2 = H2[3]), true === u2 && (u2 = [].concat(getComputedStyle(i3.body))), S2 = [], E2((w2 = { total: {}, prefetchCss: {}, doCaptureDoc: {}, waitForImages: {} }).total), O2 = /* @__PURE__ */ new Set(), x2 = [], T2 = "@@@@@", R2 = "#####", _2 = "-----", E2(w2.prefetchCss), P2 = V0(F0(fetch, { fetchTimeLimit: b2 })), e5.next = 23, P2(i3);
87592
87702
  case 23:
87593
- return I2 = e5.sent, A2(w2.prefetchCss), L2 = N0({ parseCss: U0, CSSImportRule, getCssFromCache: I2, absolutizeUrl: L0, unfetchedToken: R2 }), j2 = B0({ getCssFromCache: I2, absolutizeUrl: L0 }), k2 = z0({ extractCssFromNode: j2, getBundledCssFromCssText: L2, unfetchedToken: R2 }), E2(w2.doCaptureDoc), C2 = V2(i3), A2(w2.doCaptureDoc), E2(w2.waitForImages), e5.next = 34, Promise.all(S2);
87703
+ return I2 = e5.sent, A2(w2.prefetchCss), L2 = N0({ parseCss: U0, CSSImportRule, getCssFromCache: I2, absolutizeUrl: L0, unfetchedToken: R2 }), j2 = B0({ getCssFromCache: I2, absolutizeUrl: L0 }), k2 = z0({ extractCssFromNode: j2, getBundledCssFromCssText: L2, unfetchedToken: R2 }), E2(w2.doCaptureDoc), C2 = G2(i3), A2(w2.doCaptureDoc), E2(w2.waitForImages), e5.next = 34, Promise.all(S2);
87594
87704
  case 34:
87595
- return A2(w2.waitForImages), C2.version = "1.3.0", C2.scriptVersion = "11.6.11", M2 = x2.length ? x2.join("\n") + "\n" : "", N2 = O2.size ? Array.from(O2).join("\n") + "\n" : "", U2 = JSON.stringify({ separator: _2, cssStartToken: R2, cssEndToken: R2, iframeStartToken: '"' + T2, iframeEndToken: T2 + '"' }), A2(w2.total), F2 = U2 + "\n" + N2 + _2 + "\n" + M2 + _2 + "\n" + JSON.stringify(C2) + D2(), console.log("[captureFrame]", JSON.stringify(w2)), e5.abrupt("return", F2);
87596
- case 44:
87705
+ return A2(w2.waitForImages), C2.version = "1.3.0", C2.scriptVersion = "11.6.12", M2 = x2.length ? x2.join("\n") + "\n" : "", N2 = O2.size ? Array.from(O2).join("\n") + "\n" : "", U2 = JSON.stringify({ separator: _2, cssStartToken: R2, cssEndToken: R2, iframeStartToken: '"' + T2, iframeEndToken: T2 + '"' }), A2(w2.total), F2 = JSON.stringify(C2), B2 = U2 + "\n" + N2 + _2 + "\n" + M2 + _2 + "\n" + ("string" == typeof F2 ? F2 : G0(C2)) + D2(), console.log("[captureFrame]", JSON.stringify(w2)), e5.abrupt("return", B2);
87706
+ case 45:
87597
87707
  case "end":
87598
87708
  return e5.stop();
87599
87709
  }
87600
87710
  }, e4);
87601
- })), Y0.apply(this, arguments);
87711
+ })), $0.apply(this, arguments);
87602
87712
  }
87603
- var $0 = WZ.pollify, J0 = s0.EYES_NAMESPACE, K0 = s0.DOM_CAPTURE_KEY, X0 = function(t4) {
87604
- return Y0.apply(this, arguments);
87713
+ var J0 = WZ.pollify, K0 = s0.EYES_NAMESPACE, X0 = s0.DOM_CAPTURE_KEY, Q0 = function(t4) {
87714
+ return $0.apply(this, arguments);
87605
87715
  };
87606
- window[J0] = window[J0] || {};
87607
- var Q0 = $0(X0, window[J0], K0);
87716
+ window[K0] = window[K0] || {};
87717
+ var Z0 = J0(Q0, window[K0], X0);
87608
87718
  return function(t4) {
87609
87719
  return t4 && t4.__esModule && Object.prototype.hasOwnProperty.call(t4, "default") ? t4.default : t4;
87610
87720
  }(function(t4) {
87611
- return JSON.stringify(Q0(t4)(t4));
87721
+ return JSON.stringify(Z0(t4)(t4));
87612
87722
  });
87613
87723
  }();
87614
87724
  }, e2 = true;
@@ -94592,6 +94702,7 @@ var require_get_nml_client = __commonJS({
94592
94702
  Object.defineProperty(exports, "__esModule", { value: true });
94593
94703
  exports.makeGetNMLClient = exports.clearNMLClients = void 0;
94594
94704
  var nml_client_1 = require_dist5();
94705
+ var utils_1 = require_browser3();
94595
94706
  var clients = /* @__PURE__ */ new Map();
94596
94707
  function clearNMLClients() {
94597
94708
  clients.clear();
@@ -94615,6 +94726,10 @@ var require_get_nml_client = __commonJS({
94615
94726
  const brokerUrl = await driver.extractBrokerUrl();
94616
94727
  if (!brokerUrl)
94617
94728
  throw new Error("Unable to extract broker url from the device");
94729
+ if (utils_1.types.has(brokerUrl, "error")) {
94730
+ logger.error("Broker url extraction has failed with error", brokerUrl.error);
94731
+ throw new Error(brokerUrl.error);
94732
+ }
94618
94733
  const nmlClient = (0, nml_client_1.makeNMLClient)({ settings: { brokerUrl, ...settings }, logger });
94619
94734
  clients.set(cacheKey, nmlClient);
94620
94735
  return nmlClient;
@@ -95298,7 +95413,7 @@ var require_check2 = __commonJS({
95298
95413
  }
95299
95414
  }
95300
95415
  exports.makeCheck = makeCheck;
95301
- async function logAmmutabilityIfNeeded({ eyes: eyes2, baseEyes, settings }) {
95416
+ async function logAmmutabilityIfNeeded({ eyes: eyes2, baseEyes, settings, logger }) {
95302
95417
  var _a;
95303
95418
  if (settings.assumesMutability) {
95304
95419
  await eyes2.core.logEvent({
@@ -95322,7 +95437,8 @@ var require_check2 = __commonJS({
95322
95437
  resultsUrl: baseEyes.test.resultsUrl
95323
95438
  },
95324
95439
  ...eyes2.test.eyesServer
95325
- }
95440
+ },
95441
+ logger
95326
95442
  });
95327
95443
  settings.assumesMutability = false;
95328
95444
  }
@@ -95339,7 +95455,8 @@ var require_check2 = __commonJS({
95339
95455
  void logAmmutabilityIfNeeded({
95340
95456
  eyes: eyes2,
95341
95457
  baseEyes,
95342
- settings
95458
+ settings,
95459
+ logger: environmentLogger
95343
95460
  });
95344
95461
  try {
95345
95462
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
@@ -95742,7 +95859,8 @@ var require_check_and_close2 = __commonJS({
95742
95859
  resultsUrl: baseEyes.test.resultsUrl
95743
95860
  },
95744
95861
  ...eyes2.test.eyesServer
95745
- }
95862
+ },
95863
+ logger: environmentLogger
95746
95864
  });
95747
95865
  }
95748
95866
  await baseEyes.checkAndClose({
@@ -102281,7 +102399,7 @@ creating temp style for access.`), r3 = Hh(e3);
102281
102399
  }(e3));
102282
102400
  }
102283
102401
  }, o5 = t7;
102284
- function i6(t8, n8) {
102402
+ function i5(t8, n8) {
102285
102403
  if (o5([t8])) {
102286
102404
  var a5 = function(e3) {
102287
102405
  return null != e3 && e3.getAttribute ? e3.getAttribute("data-applitools-fallback-selector") : { error: "invalid element: " + JSON.stringify(e3) };
@@ -102294,7 +102412,7 @@ creating temp style for access.`), r3 = Hh(e3);
102294
102412
  if (!s4 || 1 !== s4.length)
102295
102413
  return { error: "Failed to recover from stale element - selector found: " + a5 };
102296
102414
  var l3 = s4[0];
102297
- return l3.setAttribute("data-applitools-selector", n8), l3.setAttribute("data-applitools-recovered", true), i6(l3, n8);
102415
+ return l3.setAttribute("data-applitools-selector", n8), l3.setAttribute("data-applitools-recovered", true), i5(l3, n8);
102298
102416
  }
102299
102417
  r6(t8);
102300
102418
  var c3 = t8.getAttribute("data-applitools-selector"), u4 = c3 ? c3 + " " + n8 : n8;
@@ -102302,19 +102420,25 @@ creating temp style for access.`), r3 = Hh(e3);
102302
102420
  }
102303
102421
  return function(e3) {
102304
102422
  return e3 && e3.__esModule && Object.prototype.hasOwnProperty.call(e3, "default") ? e3.default : e3;
102305
- }(function(t8) {
102306
- return t8.map(function(t9) {
102307
- var n8 = t9[0], r7 = t9[1];
102308
- return n8.map(function(t10) {
102309
- var n9 = function(t11) {
102310
- var n10 = [t11];
102311
- if (t11.getRootNode)
102312
- for (var r8 = t11.getRootNode(); r8 !== e2 && r8.constructor && "ShadowRoot" === r8.constructor.name; r8 = r8.host.getRootNode())
102313
- n10.push(r8.host);
102314
- return n10;
102315
- }(t10);
102316
- return n9.map(function(e3) {
102317
- return i6(e3, r7);
102423
+ }(function(e3) {
102424
+ return e3.map(function(e4) {
102425
+ var t8 = e4[0], n8 = e4[1];
102426
+ return t8.map(function(e5) {
102427
+ var t9 = function(e6) {
102428
+ for (var t10 = [{ element: e6, kind: "root" }], n9 = /* @__PURE__ */ new Set([e6]), r7 = e6; r7; ) {
102429
+ var o6, i6 = r7.getRootNode && r7.getRootNode();
102430
+ if (!i6)
102431
+ break;
102432
+ if (i6.constructor && "ShadowRoot" === i6.constructor.name ? (r7 = i6.host, o6 = "shadow") : (r7 = i6.defaultView ? i6.defaultView.frameElement : null, o6 = "frame"), r7) {
102433
+ if (n9.has(r7))
102434
+ break;
102435
+ n9.add(r7), t10.push({ element: r7, kind: o6 });
102436
+ }
102437
+ }
102438
+ return t10;
102439
+ }(e5);
102440
+ return t9.map(function(e6) {
102441
+ return { selector: i5(e6.element, n8), kind: e6.kind };
102318
102442
  });
102319
102443
  });
102320
102444
  });
@@ -102323,13 +102447,19 @@ creating temp style for access.`), r3 = Hh(e3);
102323
102447
  return n6(t6);
102324
102448
  }(n5).flat();
102325
102449
  let o4 = 0;
102326
- const i5 = n5.map(([e3]) => {
102450
+ return n5.map(([e3]) => {
102327
102451
  if (0 === e3.length)
102328
102452
  return null;
102329
- const t6 = r5[o4].reduceRight((e4, t7) => e4 ? { type: "css", selector: t7, shadow: e4 } : t7.error ? t7 : { type: "css", selector: t7 }, void 0);
102453
+ const t6 = r5[o4].reduce((e4, { selector: t7, kind: n6 }) => {
102454
+ if (!t7)
102455
+ return { type: "css", selector: "", error: "Internal error: selector is undefined" };
102456
+ if (!e4)
102457
+ return t7.error ? t7 : { type: "css", selector: t7 };
102458
+ const r6 = { type: "css", selector: t7 };
102459
+ return "shadow" === n6 ? r6.shadow = e4 : "frame" === n6 ? r6.frame = e4 : r6.shadow = e4, r6;
102460
+ }, void 0);
102330
102461
  return o4 += e3.length, t6;
102331
102462
  });
102332
- return i5;
102333
102463
  }(h2), { cdt: u3, docRoots: m3, canvasElements: f3, frames: g3, inlineFrames: w3, crossFrames: v3, linkUrls: x3, imageBlobs: C2, videoBlobs: z2 } = Gl(n4, i4, d2), A2 = Kh(m3.map((e3) => b2(e3))), T2 = Kh(m3.map((e3) => k2(e3))), O2 = (B2 = i4, function(e3) {
102334
102464
  try {
102335
102465
  return _(y(e3, B2));
@@ -102376,37 +102506,43 @@ creating temp style for access.`), r3 = Hh(e3);
102376
102506
  })).then((e5) => Kh(e5));
102377
102507
  }(z2, { fetchedBlobs: e3.blobsObj, doc: n4, log: d2.log, compress: l2, serialize: c2, sessionCache: p2 })), j2 = g3.map(({ element: e3, url: n5 }) => t4(e3.contentDocument, n5)), D2 = w3.map(({ element: e3, url: n5 }) => t4(e3.contentDocument, n5));
102378
102508
  var B2;
102379
- return Promise.all([E2, R2, N2, I2, ...j2, ...D2]).then(function(t5) {
102380
- const { resourceUrls: n5, blobsObj: o4 } = t5[0], s4 = t5[1], l3 = t5[2], c3 = t5[3], p3 = t5.slice(4), m4 = P2("src"), f4 = P2("data-applitools-selector"), g4 = f4 ? `[data-applitools-selector="${f4}"]` : void 0, b3 = function(e3) {
102381
- return Object.keys(e3).map((t6) => Object.assign({ url: t6.replace(/^blob:/, "") }, e3[t6]));
102382
- }(o4).concat(s4).concat(l3).concat(c3), y2 = [...d2.getWarnings()], k3 = [];
102383
- for (const e3 of b3)
102384
- 599 === e3.errorStatusCode || 504 === e3.errorStatusCode ? (n5.push(e3.url), y2.push(`${e3.errorStatusCode}:${e3.url}`)) : k3.push(e3);
102385
- const w4 = { cdt: u3, url: r4, srcAttr: m4, resourceUrls: n5.map((e3) => e3.replace(/^blob:/, "")), blobs: k3, frames: p3, crossFrames: v3 };
102386
- void 0 !== a4 && (w4.safeSelectors = a4), void 0 !== g4 && (w4.selector = g4), i4 !== r4 && (w4.baseUri = i4);
102509
+ return Promise.all([E2, R2, N2, I2, ...j2, ...D2]).then(function(e3) {
102510
+ const { resourceUrls: t5, blobsObj: n5 } = e3[0], o4 = e3[1], s4 = e3[2], l3 = e3[3], c3 = e3.slice(4), p3 = P2("src"), m4 = P2("data-applitools-selector"), f4 = m4 ? `[data-applitools-selector="${m4}"]` : void 0, g4 = function(e4) {
102511
+ return Object.keys(e4).map((t6) => Object.assign({ url: t6.replace(/^blob:/, "") }, e4[t6]));
102512
+ }(n5).concat(o4).concat(s4).concat(l3), b3 = [...d2.getWarnings()], y2 = [];
102513
+ for (const e4 of g4)
102514
+ 599 === e4.errorStatusCode || 504 === e4.errorStatusCode ? (t5.push(e4.url), b3.push(`${e4.errorStatusCode}:${e4.url}`)) : y2.push(e4);
102515
+ const k3 = { cdt: u3, url: r4, srcAttr: p3, resourceUrls: t5.map((e4) => e4.replace(/^blob:/, "")), blobs: y2, frames: c3, crossFrames: v3 };
102516
+ void 0 !== a4 && (k3.safeSelectors = a4), void 0 !== f4 && (k3.selector = f4), i4 !== r4 && (k3.baseUri = i4);
102387
102517
  try {
102388
- h2 && (x4 = h2, ((_2 = function(t6) {
102389
- (t6 = t6 && t6[0]) && "function" == typeof t6.forEach && t6.forEach(function(t7) {
102390
- if (t7.removeAttribute("data-applitools-selector"), t7.getRootNode)
102518
+ h2 && (w4 = h2, ((x4 = function(e4) {
102519
+ (e4 = e4 && e4[0]) && "function" == typeof e4.forEach && e4.forEach(function(e5) {
102520
+ e5.removeAttribute("data-applitools-selector");
102521
+ var t6 = e5;
102522
+ if (t6.getRootNode)
102391
102523
  try {
102392
- for (var n6 = t7.getRootNode(); n6 !== e2 && n6.constructor && "ShadowRoot" === n6.constructor.name; n6 = n6.host.getRootNode())
102393
- n6.host.removeAttribute("data-applitools-selector");
102394
- } catch (t8) {
102524
+ for (; t6; ) {
102525
+ var n6 = t6.getRootNode();
102526
+ if (!n6)
102527
+ break;
102528
+ (t6 = n6.constructor && "ShadowRoot" === n6.constructor.name ? n6.host : n6.defaultView ? n6.defaultView.frameElement : null) && t6.removeAttribute("data-applitools-selector");
102529
+ }
102530
+ } catch (e6) {
102395
102531
  }
102396
102532
  });
102397
- }) && _2.__esModule && Object.prototype.hasOwnProperty.call(_2, "default") ? _2.default : _2)(x4));
102398
- } catch (t6) {
102399
- y2.push(t6.message);
102533
+ }) && x4.__esModule && Object.prototype.hasOwnProperty.call(x4, "default") ? x4.default : x4)(w4));
102534
+ } catch (e4) {
102535
+ b3.push(e4.message);
102400
102536
  }
102401
- var x4, _2;
102402
- y2.length > 0 && (w4.warnings = y2);
102403
- const S3 = d2.getErrors();
102404
- return S3.length > 0 && (w4.errors = S3), w4;
102537
+ var w4, x4;
102538
+ b3.length > 0 && (k3.warnings = b3);
102539
+ const _2 = d2.getErrors();
102540
+ return _2.length > 0 && (k3.errors = _2), k3;
102405
102541
  });
102406
102542
  function P2(e3) {
102407
102543
  return n4.defaultView && n4.defaultView.frameElement && n4.defaultView.frameElement.getAttribute(e3);
102408
102544
  }
102409
- }(t3).then((e3) => (d2.log("processPage end"), e3.scriptVersion = "4.15.11", e3));
102545
+ }(t3).then((e3) => (d2.log("processPage end"), e3.scriptVersion = "4.16.0", e3));
102410
102546
  }, window[x], "domSnapshotResult");
102411
102547
  return function(e3) {
102412
102548
  try {
@@ -103481,7 +103617,8 @@ var require_take_snapshots2 = __commonJS({
103481
103617
  url: snapshot.url
103482
103618
  },
103483
103619
  ...account.eyesServer
103484
- }
103620
+ },
103621
+ logger
103485
103622
  });
103486
103623
  }
103487
103624
  }
@@ -103506,7 +103643,8 @@ var require_take_snapshots2 = __commonJS({
103506
103643
  message: args.join(" ")
103507
103644
  },
103508
103645
  ...account.eyesServer
103509
- }
103646
+ },
103647
+ logger
103510
103648
  });
103511
103649
  }
103512
103650
  };
@@ -104011,10 +104149,10 @@ var require_requests3 = __commonJS({
104011
104149
  }
104012
104150
  exports.toServerEnvironment = toServerEnvironment;
104013
104151
  function toServerSelector(selector) {
104014
- var _a;
104152
+ var _a, _b;
104015
104153
  if (utils2.types.isString(selector))
104016
104154
  return { type: "css", selector };
104017
- if (!selector.frame && !selector.shadow)
104155
+ if (!selector.frame && !selector.iframe && !selector.shadow)
104018
104156
  return selector;
104019
104157
  const pathSelector = [];
104020
104158
  let currentSelector = selector;
@@ -104025,9 +104163,9 @@ var require_requests3 = __commonJS({
104025
104163
  currentSelector = void 0;
104026
104164
  } else {
104027
104165
  stepSelector = { type: (_a = currentSelector.type) !== null && _a !== void 0 ? _a : "css", selector: currentSelector.selector };
104028
- if (currentSelector.frame) {
104029
- stepSelector.nodeType = "frame";
104030
- currentSelector = currentSelector.frame;
104166
+ if (currentSelector.frame || currentSelector.iframe) {
104167
+ stepSelector.nodeType = "iframe";
104168
+ currentSelector = (_b = currentSelector.frame) !== null && _b !== void 0 ? _b : currentSelector.iframe;
104031
104169
  } else if (currentSelector.shadow) {
104032
104170
  stepSelector.nodeType = "shadow-root";
104033
104171
  currentSelector = currentSelector.shadow;
@@ -125188,7 +125326,8 @@ var require_check3 = __commonJS({
125188
125326
  resultsUrl: baseEyes.test.resultsUrl
125189
125327
  },
125190
125328
  ...eyes2.test.eyesServer
125191
- }
125329
+ },
125330
+ logger: environmentLogger
125192
125331
  });
125193
125332
  }
125194
125333
  try {
@@ -125421,7 +125560,8 @@ var require_check_and_close3 = __commonJS({
125421
125560
  resultsUrl: baseEyes.test.resultsUrl
125422
125561
  },
125423
125562
  ...eyes2.test.eyesServer
125424
- }
125563
+ },
125564
+ logger: environmentLogger
125425
125565
  });
125426
125566
  }
125427
125567
  await baseEyes.checkAndClose({
@@ -128046,7 +128186,7 @@ var require_package3 = __commonJS({
128046
128186
  "../core/package.json"(exports, module) {
128047
128187
  module.exports = {
128048
128188
  name: "@applitools/core",
128049
- version: "4.57.2",
128189
+ version: "4.58.1",
128050
128190
  homepage: "https://applitools.com",
128051
128191
  bugs: {
128052
128192
  url: "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -128093,12 +128233,12 @@ var require_package3 = __commonJS({
128093
128233
  lint: "run --top-level eslint '**/*.ts'",
128094
128234
  build: "yarn build:dist",
128095
128235
  "build:dist": "run --top-level tsc --project ./tsconfig.build.json",
128096
- test: "run --top-level mocha './test/**/*.spec.ts' --exclude './test/e2e/mocha-sync/**' --parallel --jobs ${MOCHA_JOBS:-15} --exit --require ./test/mocha-global-setup.js",
128236
+ test: "run --top-level mocha './test/**/*.spec.ts' --exclude 'test/e2e/mocha-sync/**' --parallel --jobs ${MOCHA_JOBS:-15} --exit --require ./test/mocha-global-setup.js",
128097
128237
  "test:local": "MOCHA_OMIT_TAGS=sauce,browserstack run test",
128098
128238
  "test:sauce": "MOCHA_ONLY_TAGS=sauce,browserstack run test",
128099
128239
  "test:bin": "MOCHA_GROUP=bin run --top-level mocha './test/bin/**/*.spec.ts' --parallel --jobs ${MOCHA_JOBS:-15} --require ./test/mocha-global-setup.js",
128100
- "test:e2e": "MOCHA_OMIT_TAGS=http2 MOCHA_GROUP=e2e run --top-level mocha './test/e2e/**/*.spec.ts' --exclude './test/e2e/mocha-sync/**' --parallel --jobs ${MOCHA_JOBS:-15} --exit --require ./test/mocha-global-setup.js",
128101
- "test:e2e:http2": "APPLITOOLS_HTTP_VERSION=2 MOCHA_OMIT_TAGS=http1,sauce,browserstack MOCHA_GROUP=e2e run --top-level mocha './test/e2e/**/*.spec.ts' --exclude './test/e2e/mocha-sync/**' --parallel --jobs ${MOCHA_JOBS:-15} --exit --require ./test/mocha-global-setup.js",
128240
+ "test:e2e": "MOCHA_OMIT_TAGS=http2 MOCHA_GROUP=e2e run --top-level mocha './test/e2e/**/*.spec.ts' --exclude 'test/e2e/mocha-sync/**' --parallel --jobs ${MOCHA_JOBS:-15} --exit --require ./test/mocha-global-setup.js",
128241
+ "test:e2e:http2": "APPLITOOLS_HTTP_VERSION=2 MOCHA_OMIT_TAGS=http1,sauce,browserstack MOCHA_GROUP=e2e run --top-level mocha './test/e2e/**/*.spec.ts' --exclude 'test/e2e/mocha-sync/**' --parallel --jobs ${MOCHA_JOBS:-15} --exit --require ./test/mocha-global-setup.js",
128102
128242
  "test:it": "MOCHA_GROUP=it run --top-level mocha './test/it/**/*.spec.ts' --require ./test/mocha-global-setup.js",
128103
128243
  "test:e2e:sync": "MOCHA_GROUP=e2e SYNC=true run --top-level mocha './test/e2e/mocha-sync/**/*.spec.ts' --exit --require ./test/mocha-global-setup.js",
128104
128244
  "test:unit": "MOCHA_GROUP=unit run --top-level mocha './test/unit/**/*.spec.ts' --require ./test/mocha-global-setup.js",
@@ -129588,7 +129728,7 @@ var require_package4 = __commonJS({
129588
129728
  "../eyes/package.json"(exports, module) {
129589
129729
  module.exports = {
129590
129730
  name: "@applitools/eyes",
129591
- version: "1.38.8",
129731
+ version: "1.38.10",
129592
129732
  keywords: [
129593
129733
  "applitools",
129594
129734
  "eyes",
@@ -131208,7 +131348,7 @@ var require_package5 = __commonJS({
131208
131348
  "package.json"(exports, module) {
131209
131349
  module.exports = {
131210
131350
  name: "@applitools/eyes-browser",
131211
- version: "1.6.5",
131351
+ version: "1.6.7",
131212
131352
  type: "module",
131213
131353
  keywords: [
131214
131354
  "applitools",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-browser",
3
- "version": "1.6.5",
3
+ "version": "1.6.7",
4
4
  "type": "module",
5
5
  "keywords": [
6
6
  "applitools",
@@ -51,7 +51,7 @@
51
51
  "test": "run playwright test"
52
52
  },
53
53
  "dependencies": {
54
- "@applitools/eyes": "1.38.8"
54
+ "@applitools/eyes": "1.38.10"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@applitools/test-server": "1.4.1",