@applitools/eyes-browser 1.6.5 → 1.6.6

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