@applitools/eyes-browser 1.4.5 → 1.4.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 +182 -0
  2. package/dist/index.js +126 -130
  3. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,187 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.4.7](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.4.6...js/eyes-browser@1.4.7) (2024-06-26)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * @applitools/utils bumped to 1.7.4
14
+ #### Bug Fixes
15
+
16
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
17
+ * @applitools/logger bumped to 2.0.18
18
+ #### Bug Fixes
19
+
20
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
21
+
22
+
23
+
24
+ * @applitools/socket bumped to 1.1.18
25
+ #### Bug Fixes
26
+
27
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
28
+
29
+
30
+
31
+ * @applitools/req bumped to 1.7.2
32
+ #### Bug Fixes
33
+
34
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
35
+
36
+
37
+
38
+ * @applitools/image bumped to 1.1.13
39
+ #### Bug Fixes
40
+
41
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
42
+
43
+
44
+
45
+ * @applitools/snippets bumped to 2.4.27
46
+ #### Bug Fixes
47
+
48
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
49
+ * @applitools/css-tree bumped to 1.1.4
50
+ #### Bug Fixes
51
+
52
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
53
+ * @applitools/dom-shared bumped to 1.0.15
54
+ #### Bug Fixes
55
+
56
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
57
+ * @applitools/dom-capture bumped to 11.3.0
58
+ #### Features
59
+
60
+ * add cliet rects to text nodes ([#2188](https://github.com/Applitools-Dev/sdk/issues/2188)) ([0d4180e](https://github.com/Applitools-Dev/sdk/commit/0d4180e8e362669b36a27955121caae5575918f7))
61
+ * add cursor and pointer-events to dom-capture ([#2369](https://github.com/Applitools-Dev/sdk/issues/2369)) ([efdce02](https://github.com/Applitools-Dev/sdk/commit/efdce028a2a6fb18ad3c6237f2020c1ff00e90de))
62
+
63
+
64
+ #### Bug Fixes
65
+
66
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
67
+
68
+
69
+
70
+ * @applitools/dom-snapshot bumped to 4.11.3
71
+ #### Bug Fixes
72
+
73
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
74
+
75
+
76
+
77
+ * @applitools/spec-driver-webdriver bumped to 1.1.10
78
+ #### Bug Fixes
79
+
80
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
81
+
82
+
83
+
84
+ * @applitools/spec-driver-selenium bumped to 1.5.81
85
+ #### Bug Fixes
86
+
87
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
88
+
89
+
90
+
91
+ * @applitools/spec-driver-puppeteer bumped to 1.4.10
92
+ #### Bug Fixes
93
+
94
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
95
+
96
+
97
+
98
+ * @applitools/driver bumped to 1.17.5
99
+ #### Bug Fixes
100
+
101
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
102
+
103
+
104
+
105
+ * @applitools/screenshoter bumped to 3.8.34
106
+ #### Bug Fixes
107
+
108
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
109
+
110
+
111
+
112
+ * @applitools/nml-client bumped to 1.8.8
113
+ #### Bug Fixes
114
+
115
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
116
+
117
+
118
+
119
+ * @applitools/tunnel-client bumped to 1.5.7
120
+ #### Bug Fixes
121
+
122
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
123
+
124
+
125
+
126
+ * @applitools/ufg-client bumped to 1.12.2
127
+ #### Bug Fixes
128
+
129
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
130
+
131
+
132
+
133
+ * @applitools/ec-client bumped to 1.9.2
134
+ #### Bug Fixes
135
+
136
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
137
+
138
+
139
+
140
+ * @applitools/core-base bumped to 1.16.0
141
+ #### Features
142
+
143
+ * tell the backend if `remove duplicate tests` is used ([#2373](https://github.com/Applitools-Dev/sdk/issues/2373)) ([fe59b40](https://github.com/Applitools-Dev/sdk/commit/fe59b404ad163c595bb329d9a24ef2191d3bf170))
144
+
145
+
146
+ #### Bug Fixes
147
+
148
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
149
+
150
+
151
+
152
+ * @applitools/core bumped to 4.17.0
153
+ #### Features
154
+
155
+ * tell the backend if `remove duplicate tests` is used ([#2373](https://github.com/Applitools-Dev/sdk/issues/2373)) ([fe59b40](https://github.com/Applitools-Dev/sdk/commit/fe59b404ad163c595bb329d9a24ef2191d3bf170))
156
+
157
+
158
+ #### Bug Fixes
159
+
160
+ * change core ([d12a246](https://github.com/Applitools-Dev/sdk/commit/d12a246723cf72def6335e8698e711a43bda9e6a))
161
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
162
+
163
+
164
+
165
+ * @applitools/eyes bumped to 1.21.0
166
+ #### Features
167
+
168
+ * tell the backend if `remove duplicate tests` is used ([#2373](https://github.com/Applitools-Dev/sdk/issues/2373)) ([fe59b40](https://github.com/Applitools-Dev/sdk/commit/fe59b404ad163c595bb329d9a24ef2191d3bf170))
169
+
170
+
171
+ #### Bug Fixes
172
+
173
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
174
+
175
+
176
+
177
+
178
+ ## [1.4.6](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.4.5...js/eyes-browser@1.4.6) (2024-05-30)
179
+
180
+
181
+ ### Bug Fixes
182
+
183
+ * trigger ([5d81240](https://github.com/Applitools-Dev/sdk/commit/5d81240909ff6cb9cce16c406d83ddadfb23d276))
184
+
3
185
  ## [1.4.5](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.4.4...js/eyes-browser@1.4.5) (2024-05-28)
4
186
 
5
187
 
package/dist/index.js CHANGED
@@ -21104,7 +21104,8 @@ var require_requests = __commonJS({
21104
21104
  isComponentAgent: settings.isComponentTest,
21105
21105
  fallbackExpectedOutput: settings.fallbackBaselineId,
21106
21106
  latestCommitInfo: settings.latestCommitInfo,
21107
- processId: settings.processId
21107
+ processId: settings.processId,
21108
+ replaceExisting: settings.removeDuplicateTests
21108
21109
  }
21109
21110
  },
21110
21111
  expected: [200, 201],
@@ -21497,15 +21498,12 @@ var require_requests = __commonJS({
21497
21498
  body: {
21498
21499
  ...matchOptions,
21499
21500
  options: {
21500
- ...matchOptions.options,
21501
- removeSession: false,
21502
- removeSessionIfMatching: settings.ignoreMismatch,
21503
- updateBaselineIfNew: settings.updateBaselineIfNew,
21504
- updateBaselineIfDifferent: settings.updateBaselineIfDifferent
21505
- }
21506
- },
21507
- query: {
21508
- updateBaseline: test.isNew ? settings === null || settings === void 0 ? void 0 : settings.updateBaselineIfNew : settings === null || settings === void 0 ? void 0 : settings.updateBaselineIfDifferent
21501
+ ...matchOptions.options
21502
+ },
21503
+ removeSession: false,
21504
+ removeSessionIfMatching: settings.ignoreMismatch,
21505
+ updateBaselineIfNew: settings.updateBaselineIfNew,
21506
+ updateBaselineIfDifferent: settings.updateBaselineIfDifferent
21509
21507
  },
21510
21508
  hooks: {
21511
21509
  beforeRetry({ response, stop: stop2 }) {
@@ -31496,8 +31494,11 @@ var require_re = __commonJS({
31496
31494
  createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);
31497
31495
  createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`);
31498
31496
  createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`);
31499
- createToken("COERCE", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:$|[^\\d])`);
31497
+ createToken("COERCEPLAIN", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);
31498
+ createToken("COERCE", `${src[t.COERCEPLAIN]}(?:$|[^\\d])`);
31499
+ createToken("COERCEFULL", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`);
31500
31500
  createToken("COERCERTL", src[t.COERCE], true);
31501
+ createToken("COERCERTLFULL", src[t.COERCEFULL], true);
31501
31502
  createToken("LONETILDE", "(?:~>?)");
31502
31503
  createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true);
31503
31504
  exports.tildeTrimReplace = "$1~";
@@ -31699,7 +31700,7 @@ var require_semver = __commonJS({
31699
31700
  do {
31700
31701
  const a = this.build[i];
31701
31702
  const b = other.build[i];
31702
- debug("prerelease compare", i, a, b);
31703
+ debug("build compare", i, a, b);
31703
31704
  if (a === void 0 && b === void 0) {
31704
31705
  return 0;
31705
31706
  } else if (b === void 0) {
@@ -34913,7 +34914,7 @@ var require_captureDomPollCjs = __commonJS({
34913
34914
  } catch (e5) {
34914
34915
  return false;
34915
34916
  }
34916
- } }, d = { EYES_NAMESPACE: "__EYES__APPLITOOLS__", DOM_CAPTURE_KEY: "domCaptureResult", NODE_TYPES: { ELEMENT: 1, TEXT: 3, DOCUMENT_FRAGMENT: 11 }, DEFAULT_STYLE_PROPS: ["background-repeat", "background-origin", "background-position", "background-color", "background-image", "background-size", "border-width", "border-color", "border-style", "color", "display", "font-size", "font-weight", "font-family", "line-height", "margin", "opacity", "overflow", "padding", "visibility", "text-align", "position", "border-radius", "z-index"], DEFAULT_RECT_PROPS: ["width", "height", "top", "left"], DEFAULT_IGNORED_TAG_NAMES: ["HEAD", "SCRIPT"] };
34917
+ } }, d = { EYES_NAMESPACE: "__EYES__APPLITOOLS__", DOM_CAPTURE_KEY: "domCaptureResult", NODE_TYPES: { ELEMENT: 1, TEXT: 3, DOCUMENT_FRAGMENT: 11 }, DEFAULT_STYLE_PROPS: ["background-repeat", "background-origin", "background-position", "background-color", "background-image", "background-size", "border-width", "border-color", "border-style", "color", "display", "font-size", "font-weight", "font-family", "line-height", "margin", "opacity", "overflow", "padding", "visibility", "text-align", "position", "border-radius", "z-index", "pointer-events", "cursor"], DEFAULT_RECT_PROPS: ["width", "height", "top", "left"], DEFAULT_IGNORED_TAG_NAMES: ["HEAD", "SCRIPT"] };
34917
34918
  const f = /url\((?!['"]?:)['"]?([^'")]*)['"]?\)/;
34918
34919
  const { NODE_TYPES: m } = d;
34919
34920
  function h(e4) {
@@ -34934,7 +34935,7 @@ var require_captureDomPollCjs = __commonJS({
34934
34935
  };
34935
34936
  const w = g, E = y;
34936
34937
  const { absolutizeUrl: C, isInlineFrame: T } = l, N = p, b = g, S = y, { NODE_TYPES: A } = d;
34937
- const { absolutizeUrl: $, isInlineFrame: R } = l, _ = function(e4) {
34938
+ const { absolutizeUrl: R, isInlineFrame: $ } = l, _ = function(e4) {
34938
34939
  const t4 = e4 ? e4.match(f) : void 0;
34939
34940
  return t4 ? t4[1] : t4;
34940
34941
  }, P = async function({ bgImages: e4, timeout: t4 = 5e3, Image: n3 = window.Image }) {
@@ -34947,14 +34948,14 @@ var require_captureDomPollCjs = __commonJS({
34947
34948
  }))]);
34948
34949
  var o2;
34949
34950
  }))).reduce((e5, t5) => (t5 && (e5[t5.url] = { width: t5.width, height: t5.height }), e5), {});
34950
- }, U = function e4(t4) {
34951
+ }, v = function e4(t4) {
34951
34952
  if (!t4.ownerDocument)
34952
34953
  return "";
34953
34954
  let n3 = "", o2 = t4, r2 = t4.ownerDocument, s2 = r2.defaultView.frameElement;
34954
34955
  for (; o2 !== r2 && (!o2 || o2.nodeType !== m.DOCUMENT_FRAGMENT); )
34955
34956
  n3 = `${o2.tagName}[${h(o2)}]/${n3}`, o2 = o2.parentNode;
34956
34957
  return s2 && (n3 = `${e4(s2)},${n3}`), n3.replace(/\/$/, "");
34957
- }, v = function({ parseCss: e4, CSSImportRule: t4, absolutizeUrl: n3, getCssFromCache: o2, unfetchedToken: r2 }) {
34958
+ }, U = function({ parseCss: e4, CSSImportRule: t4, absolutizeUrl: n3, getCssFromCache: o2, unfetchedToken: r2 }) {
34958
34959
  return function s2(a2, c2) {
34959
34960
  let u2, i2 = "";
34960
34961
  try {
@@ -35082,73 +35083,76 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
35082
35083
  u2(c2.prefetchCss);
35083
35084
  const g2 = L(F(fetch, { fetchTimeLimit: a2 })), y2 = await g2(t4);
35084
35085
  i2(c2.prefetchCss);
35085
- const w2 = v({ parseCss: D, CSSImportRule, getCssFromCache: y2, absolutizeUrl: $, unfetchedToken: h2 }), E2 = I({ getCssFromCache: y2, absolutizeUrl: $ }), C2 = k({ extractCssFromNode: E2, getBundledCssFromCssText: w2, unfetchedToken: h2 });
35086
+ const w2 = U({ parseCss: D, CSSImportRule, getCssFromCache: y2, absolutizeUrl: R, unfetchedToken: h2 }), E2 = I({ getCssFromCache: y2, absolutizeUrl: R }), C2 = k({ extractCssFromNode: E2, getBundledCssFromCssText: w2, unfetchedToken: h2 });
35086
35087
  u2(c2.doCaptureDoc);
35087
- const T2 = function e4(s3, a3 = s3.location && s3.location.href) {
35088
- const c3 = /* @__PURE__ */ new Set();
35089
- let u3 = "";
35090
- const i3 = h3(s3.documentElement || s3);
35091
- return i3.css = u3, l2.push(P({ bgImages: c3 }).then((e5) => i3.images = e5)), i3;
35092
- function h3(t5) {
35088
+ const T2 = function s3(a3, c3 = a3.location && a3.location.href) {
35089
+ const u3 = /* @__PURE__ */ new Set();
35090
+ let i3 = "";
35091
+ const h3 = p3(a3.documentElement || a3);
35092
+ return h3.css = i3, l2.push(P({ bgImages: u3 }).then((e4) => h3.images = e4)), h3;
35093
+ function p3(t5) {
35093
35094
  if (t5.hasAttribute && t5.hasAttribute("data-applitools-skip"))
35094
35095
  return null;
35095
- const { bundledCss: n4, unfetchedResources: o3 } = C2(t5, a3);
35096
- if (u3 += n4, o3)
35097
- for (const e5 of o3)
35098
- d2.add(e5);
35096
+ const { bundledCss: n4, unfetchedResources: o3 } = C2(t5, c3);
35097
+ if (i3 += n4, o3)
35098
+ for (const e4 of o3)
35099
+ d2.add(e4);
35099
35100
  switch (t5.nodeType) {
35100
35101
  case x.TEXT:
35101
- return function(e5) {
35102
- return { tagName: "#text", text: e5.textContent };
35102
+ return function(t6) {
35103
+ const n5 = e3.createRange();
35104
+ n5.selectNode(t6);
35105
+ const o4 = n5.getClientRects();
35106
+ return { tagName: "#text", text: t6.textContent, rects: o4 && o4.length ? Array.from(o4).map((e4) => ({ width: e4.width, height: e4.height, top: e4.top, left: e4.left })) : void 0 };
35103
35107
  }(t5);
35104
35108
  case x.ELEMENT:
35105
- return "IFRAME" === t5.tagName.toUpperCase() ? function(t6) {
35106
- const n5 = p3(t6);
35107
- let o4;
35109
+ return "IFRAME" === t5.tagName.toUpperCase() ? function(e4) {
35110
+ const t6 = g3(e4);
35111
+ let n5;
35108
35112
  try {
35109
- o4 = t6.contentDocument;
35110
- } catch (t7) {
35111
- return r3(), n5;
35113
+ n5 = e4.contentDocument;
35114
+ } catch (e5) {
35115
+ return o4(), t6;
35112
35116
  }
35113
35117
  try {
35114
- o4 ? n5.childNodes = [e4(o4, R(t6) ? t6.baseURI : o4.location.href)] : r3();
35115
- } catch (t7) {
35116
- console.log("error in iframeToJSON", t7);
35118
+ n5 ? t6.childNodes = [s3(n5, $(e4) ? e4.baseURI : n5.location.href)] : o4();
35119
+ } catch (e5) {
35120
+ console.log("error in iframeToJSON", e5);
35117
35121
  }
35118
- return n5;
35119
- function r3() {
35120
- const e5 = U(t6);
35121
- f2.push(e5), n5.childNodes = [`${m2}${e5}${m2}`];
35122
+ return t6;
35123
+ function o4() {
35124
+ const n6 = v(e4);
35125
+ f2.push(n6), t6.childNodes = [`${m2}${n6}${m2}`];
35122
35126
  }
35123
- }(t5) : p3(t5);
35127
+ }(t5) : g3(t5);
35124
35128
  case x.DOCUMENT_FRAGMENT:
35125
- return { childNodes: Array.prototype.map.call(t5.childNodes, h3).filter(Boolean) };
35129
+ return { childNodes: Array.prototype.map.call(t5.childNodes, p3).filter(Boolean) };
35126
35130
  default:
35127
35131
  return null;
35128
35132
  }
35129
35133
  }
35130
- function p3(s4) {
35131
- const u4 = Array.prototype.map.call(s4.childNodes, h3).filter(Boolean), i4 = s4.shadowRoot && e4(s4.shadowRoot, a3), l3 = s4.tagName.toUpperCase();
35134
+ function g3(e4) {
35135
+ const a4 = Array.prototype.map.call(e4.childNodes, p3).filter(Boolean), i4 = e4.shadowRoot && s3(e4.shadowRoot, c3), l3 = e4.tagName.toUpperCase();
35132
35136
  if (r2.indexOf(l3) > -1)
35133
35137
  return null;
35134
- const d3 = t4.defaultView.getComputedStyle(s4), f3 = s4.getBoundingClientRect(), m3 = {};
35138
+ const d3 = t4.defaultView.getComputedStyle(e4), f3 = e4.getBoundingClientRect(), m3 = {};
35135
35139
  for (const e5 of n3)
35136
35140
  m3[e5] = d3.getPropertyValue(e5);
35137
35141
  m3["border-width"] || (m3["border-width"] = `${d3.getPropertyValue("border-top-width")} ${d3.getPropertyValue("border-right-width")} ${d3.getPropertyValue("border-bottom-width")} ${d3.getPropertyValue("border-left-width")}`);
35138
- const p4 = {};
35142
+ const h4 = {};
35139
35143
  for (const e5 of o2)
35140
- p4[e5] = f3[e5];
35141
- const g3 = Array.from(s4.attributes).map((e5) => ({ key: e5.name, value: e5.value })).reduce((e5, t5) => (e5[t5.key] = t5.value, e5), {});
35142
- "INPUT" !== l3 && "TEXTAREA" !== l3 || !s4.value || (g3.value && console.log(`[captureFrame] Overriding element attributes value from ${g3.value} to ${s4.value}`), g3.value = s4.value);
35144
+ h4[e5] = f3[e5];
35145
+ const g4 = Array.from(e4.attributes).map((e5) => ({ key: e5.name, value: e5.value })).reduce((e5, t5) => (e5[t5.key] = t5.value, e5), {});
35146
+ "INPUT" !== l3 && "TEXTAREA" !== l3 || !e4.value || (g4.value && console.log(`[captureFrame] Overriding element attributes value from ${g4.value} to ${e4.value}`), g4.value = e4.value);
35143
35147
  const y3 = _(d3.getPropertyValue("background-image"));
35144
- y3 && c3.add(y3);
35145
- const w3 = O(s4);
35146
- w3 && (g3["data-applitools-has-pseudo"] = w3);
35147
- const E3 = { tagName: l3, style: Y2(m3), rect: Y2(p4), attributes: Y2(g3), childNodes: u4 };
35148
+ y3 && u3.add(y3);
35149
+ const w3 = O(e4);
35150
+ w3 && (g4["data-applitools-has-pseudo"] = w3);
35151
+ const E3 = { tagName: l3, style: Y2(m3), rect: Y2(h4), attributes: Y2(g4), childNodes: a4 };
35148
35152
  return i4 && (E3.shadowRoot = i4), E3;
35149
35153
  }
35150
35154
  }(t4);
35151
- i2(c2.doCaptureDoc), u2(c2.waitForImages), await Promise.all(l2), i2(c2.waitForImages), T2.version = "1.3.0", T2.scriptVersion = "11.2.8";
35155
+ i2(c2.doCaptureDoc), u2(c2.waitForImages), await Promise.all(l2), i2(c2.waitForImages), T2.version = "1.3.0", T2.scriptVersion = "11.3.0";
35152
35156
  const N2 = f2.length ? `${f2.join("\n")}
35153
35157
  ` : "", b2 = d2.size ? `${Array.from(d2).join("\n")}
35154
35158
  ` : "", S2 = JSON.stringify({ separator: p2, cssStartToken: h2, cssEndToken: h2, iframeStartToken: `"${m2}`, iframeEndToken: `${m2}"` });
@@ -35249,7 +35253,7 @@ var require_pollResultCjs = __commonJS({
35249
35253
  return (i2.status === o || i2.status === c || i2.status === u && i2.done) && (t5[e4] = null), i2;
35250
35254
  };
35251
35255
  const i = a;
35252
- var l = { chunkify: e3, pollify: function(t5, e4, n3) {
35256
+ var s = { chunkify: e3, pollify: function(t5, e4, n3) {
35253
35257
  return (r2) => function() {
35254
35258
  return e4[n3] || (e4[n3] = {}, Promise.resolve().then(() => t5.apply(null, arguments)).then((t6) => e4[n3].value = t6).catch((t6) => e4[n3].error = t6.message)), i(e4, n3, r2);
35255
35259
  };
@@ -35284,11 +35288,11 @@ var require_pollResultCjs = __commonJS({
35284
35288
  return false;
35285
35289
  }
35286
35290
  } };
35287
- const { poll: s } = l, { EYES_NAMESPACE: d, DOM_CAPTURE_KEY: f } = { EYES_NAMESPACE: "__EYES__APPLITOOLS__", DOM_CAPTURE_KEY: "domCaptureResult", NODE_TYPES: { ELEMENT: 1, TEXT: 3, DOCUMENT_FRAGMENT: 11 }, DEFAULT_STYLE_PROPS: ["background-repeat", "background-origin", "background-position", "background-color", "background-image", "background-size", "border-width", "border-color", "border-style", "color", "display", "font-size", "font-weight", "font-family", "line-height", "margin", "opacity", "overflow", "padding", "visibility", "text-align", "position", "border-radius", "z-index"], DEFAULT_RECT_PROPS: ["width", "height", "top", "left"], DEFAULT_IGNORED_TAG_NAMES: ["HEAD", "SCRIPT"] };
35291
+ const { poll: l } = s, { EYES_NAMESPACE: d, DOM_CAPTURE_KEY: f } = { EYES_NAMESPACE: "__EYES__APPLITOOLS__", DOM_CAPTURE_KEY: "domCaptureResult", NODE_TYPES: { ELEMENT: 1, TEXT: 3, DOCUMENT_FRAGMENT: 11 }, DEFAULT_STYLE_PROPS: ["background-repeat", "background-origin", "background-position", "background-color", "background-image", "background-size", "border-width", "border-color", "border-style", "color", "display", "font-size", "font-weight", "font-family", "line-height", "margin", "opacity", "overflow", "padding", "visibility", "text-align", "position", "border-radius", "z-index", "pointer-events", "cursor"], DEFAULT_RECT_PROPS: ["width", "height", "top", "left"], DEFAULT_IGNORED_TAG_NAMES: ["HEAD", "SCRIPT"] };
35288
35292
  return function(t5) {
35289
35293
  return t5 && t5.__esModule && Object.prototype.hasOwnProperty.call(t5, "default") ? t5.default : t5;
35290
35294
  }(function(t5) {
35291
- return JSON.stringify(s(window[d], f, t5));
35295
+ return JSON.stringify(l(window[d], f, t5));
35292
35296
  });
35293
35297
  }();
35294
35298
  };
@@ -36087,54 +36091,29 @@ var require_get_nml_client = __commonJS({
36087
36091
  init_setImmediate();
36088
36092
  init_buffer();
36089
36093
  init_setInterval();
36090
- var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
36091
- if (k2 === void 0)
36092
- k2 = k;
36093
- var desc = Object.getOwnPropertyDescriptor(m, k);
36094
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
36095
- desc = { enumerable: true, get: function() {
36096
- return m[k];
36097
- } };
36098
- }
36099
- Object.defineProperty(o, k2, desc);
36100
- } : function(o, m, k, k2) {
36101
- if (k2 === void 0)
36102
- k2 = k;
36103
- o[k2] = m[k];
36104
- });
36105
- var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
36106
- Object.defineProperty(o, "default", { enumerable: true, value: v });
36107
- } : function(o, v) {
36108
- o["default"] = v;
36109
- });
36110
- var __importStar = exports && exports.__importStar || function(mod) {
36111
- if (mod && mod.__esModule)
36112
- return mod;
36113
- var result = {};
36114
- if (mod != null) {
36115
- for (var k in mod)
36116
- if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
36117
- __createBinding(result, mod, k);
36118
- }
36119
- __setModuleDefault(result, mod);
36120
- return result;
36121
- };
36122
36094
  Object.defineProperty(exports, "__esModule", { value: true });
36123
36095
  exports.makeGetNMLClient = void 0;
36124
36096
  var nml_client_1 = require_dist5();
36125
- var utils34 = __importStar(require_browser3());
36097
+ var clients = /* @__PURE__ */ new Map();
36126
36098
  function makeGetNMLClient({ client, logger: mainLogger }) {
36127
- const getNMLClientWithCache = utils34.general.cachify(getNMLClient, ([options]) => client ? "default" : [options.driver.guid, options.settings]);
36128
- if (client)
36129
- getNMLClientWithCache.setCachedValue("default", Promise.resolve(client));
36130
- return getNMLClientWithCache;
36131
- async function getNMLClient({ driver, settings, logger = mainLogger }) {
36099
+ return async function getNMLClient({ driver, settings, logger }) {
36100
+ if (client)
36101
+ return client;
36132
36102
  logger = logger.extend(mainLogger);
36133
- const brokerUrl = await driver.extractBrokerUrl();
36134
- if (!brokerUrl)
36135
- throw new Error("Unable to extract broker url from the device");
36136
- return (0, nml_client_1.makeNMLClient)({ settings: { brokerUrl, ...settings }, logger });
36137
- }
36103
+ const { sessionId } = await driver.getDriverInfo();
36104
+ const cacheKey = sessionId ? JSON.stringify({ sessionId, settings }) : JSON.stringify({ guid: driver.guid, settings });
36105
+ const clientFromCache = clients.get(cacheKey);
36106
+ if (clientFromCache) {
36107
+ return clientFromCache;
36108
+ } else {
36109
+ const brokerUrl = await driver.extractBrokerUrl();
36110
+ if (!brokerUrl)
36111
+ throw new Error("Unable to extract broker url from the device");
36112
+ const nmlClient = (0, nml_client_1.makeNMLClient)({ settings: { brokerUrl, ...settings }, logger });
36113
+ clients.set(cacheKey, nmlClient);
36114
+ return nmlClient;
36115
+ }
36116
+ };
36138
36117
  }
36139
36118
  exports.makeGetNMLClient = makeGetNMLClient;
36140
36119
  }
@@ -41560,7 +41539,7 @@ var require_processPagePollCjs = __commonJS({
41560
41539
  return t4;
41561
41540
  };
41562
41541
  const fu = iu, gu = _i, bu = ne, yu = bt, ku = ou, wu = uu, vu = zt, xu = du, Su = as, Cu = Ds, _u = f, Au = I, zu = j, { tokenize: Lu, parse: Tu, generate: Eu, lexer: Nu, createLexer: Ru, walk: Du, find: Pu, findLast: Iu, findAll: Ou, toPlainObject: Bu, fromPlainObject: Fu, fork: Uu } = fu;
41563
- p.version = "1.1.3".version, p.createSyntax = gu, p.List = bu.List, p.Lexer = yu.Lexer, p.definitionSyntax = ku, p.clone = wu.clone, p.isCustomProperty = vu.isCustomProperty, p.keyword = vu.keyword, p.property = vu.property, p.vendorPrefix = vu.vendorPrefix, p.ident = xu, p.string = Su, p.url = Cu, p.tokenTypes = _u, p.tokenNames = Au, p.TokenStream = zu.TokenStream, p.createLexer = Ru, p.find = Pu, p.findAll = Ou, p.findLast = Iu, p.fork = Uu, p.fromPlainObject = Fu, p.generate = Eu, p.lexer = Nu, p.parse = Tu, p.toPlainObject = Bu, p.tokenize = Lu, p.walk = Du;
41542
+ p.version = "1.1.4".version, p.createSyntax = gu, p.List = bu.List, p.Lexer = yu.Lexer, p.definitionSyntax = ku, p.clone = wu.clone, p.isCustomProperty = vu.isCustomProperty, p.keyword = vu.keyword, p.property = vu.property, p.vendorPrefix = vu.vendorPrefix, p.ident = xu, p.string = Su, p.url = Cu, p.tokenTypes = _u, p.tokenNames = Au, p.TokenStream = zu.TokenStream, p.createLexer = Ru, p.find = Pu, p.findAll = Ou, p.findLast = Iu, p.fork = Uu, p.fromPlainObject = Fu, p.generate = Eu, p.lexer = Nu, p.parse = Tu, p.toPlainObject = Bu, p.tokenize = Lu, p.walk = Du;
41564
41543
  var Mu = {};
41565
41544
  const ju = /* @__PURE__ */ new Map([["background", /* @__PURE__ */ new Set(["background-color", "background-position", "background-position-x", "background-position-y", "background-size", "background-repeat", "background-repeat-x", "background-repeat-y", "background-clip", "background-origin", "background-attachment", "background-image"])], ["background-position", /* @__PURE__ */ new Set(["background-position-x", "background-position-y"])], ["background-repeat", /* @__PURE__ */ new Set(["background-repeat-x", "background-repeat-y"])], ["font", /* @__PURE__ */ new Set(["font-style", "font-variant-caps", "font-weight", "font-stretch", "font-size", "line-height", "font-family", "font-size-adjust", "font-kerning", "font-optical-sizing", "font-variant-alternates", "font-variant-east-asian", "font-variant-ligatures", "font-variant-numeric", "font-variant-position", "font-language-override", "font-feature-settings", "font-variation-settings"])], ["font-variant", /* @__PURE__ */ new Set(["font-variant-caps", "font-variant-numeric", "font-variant-alternates", "font-variant-ligatures", "font-variant-east-asian"])], ["outline", /* @__PURE__ */ new Set(["outline-width", "outline-style", "outline-color"])], ["border", /* @__PURE__ */ new Set(["border-top-width", "border-right-width", "border-bottom-width", "border-left-width", "border-top-style", "border-right-style", "border-bottom-style", "border-left-style", "border-top-color", "border-right-color", "border-bottom-color", "border-left-color", "border-image-source", "border-image-slice", "border-image-width", "border-image-outset", "border-image-repeat"])], ["border-width", /* @__PURE__ */ new Set(["border-top-width", "border-right-width", "border-bottom-width", "border-left-width"])], ["border-style", /* @__PURE__ */ new Set(["border-top-style", "border-right-style", "border-bottom-style", "border-left-style"])], ["border-color", /* @__PURE__ */ new Set(["border-top-color", "border-right-color", "border-bottom-color", "border-left-color"])], ["border-block", /* @__PURE__ */ new Set(["border-block-start-width", "border-block-end-width", "border-block-start-style", "border-block-end-style", "border-block-start-color", "border-block-end-color"])], ["border-block-start", /* @__PURE__ */ new Set(["border-block-start-width", "border-block-start-style", "border-block-start-color"])], ["border-block-end", /* @__PURE__ */ new Set(["border-block-end-width", "border-block-end-style", "border-block-end-color"])], ["border-inline", /* @__PURE__ */ new Set(["border-inline-start-width", "border-inline-end-width", "border-inline-start-style", "border-inline-end-style", "border-inline-start-color", "border-inline-end-color"])], ["border-inline-start", /* @__PURE__ */ new Set(["border-inline-start-width", "border-inline-start-style", "border-inline-start-color"])], ["border-inline-end", /* @__PURE__ */ new Set(["border-inline-end-width", "border-inline-end-style", "border-inline-end-color"])], ["border-image", /* @__PURE__ */ new Set(["border-image-source", "border-image-slice", "border-image-width", "border-image-outset", "border-image-repeat"])], ["border-radius", /* @__PURE__ */ new Set(["border-top-left-radius", "border-top-right-radius", "border-bottom-right-radius", "border-bottom-left-radius"])], ["padding", /* @__PURE__ */ new Set(["padding-top", "padding-right", "padding-bottom", "padding-left"])], ["padding-block", /* @__PURE__ */ new Set(["padding-block-start", "padding-block-end"])], ["padding-inline", /* @__PURE__ */ new Set(["padding-inline-start", "padding-inline-end"])], ["margin", /* @__PURE__ */ new Set(["margin-top", "margin-right", "margin-bottom", "margin-left"])], ["margin-block", /* @__PURE__ */ new Set(["margin-block-start", "margin-block-end"])], ["margin-inline", /* @__PURE__ */ new Set(["margin-inline-start", "margin-inline-end"])], ["inset", /* @__PURE__ */ new Set(["top", "right", "bottom", "left"])], ["inset-block", /* @__PURE__ */ new Set(["inset-block-start", "inset-block-end"])], ["inset-inline", /* @__PURE__ */ new Set(["inset-inline-start", "inset-inline-end"])], ["flex", /* @__PURE__ */ new Set(["flex-grow", "flex-shrink", "flex-basis"])], ["flex-flow", /* @__PURE__ */ new Set(["flex-direction", "flex-wrap"])], ["gap", /* @__PURE__ */ new Set(["row-gap", "column-gap"])], ["transition", /* @__PURE__ */ new Set(["transition-duration", "transition-timing-function", "transition-delay", "transition-property"])], ["grid", /* @__PURE__ */ new Set(["grid-template-rows", "grid-template-columns", "grid-template-areas", "grid-auto-flow", "grid-auto-columns", "grid-auto-rows"])], ["grid-template", /* @__PURE__ */ new Set(["grid-template-rows", "grid-template-columns", "grid-template-areas"])], ["grid-row", /* @__PURE__ */ new Set(["grid-row-start", "grid-row-end"])], ["grid-column", /* @__PURE__ */ new Set(["grid-column-start", "grid-column-end"])], ["grid-gap", /* @__PURE__ */ new Set(["grid-row-gap", "grid-column-gap", "row-gap", "column-gap"])], ["place-content", /* @__PURE__ */ new Set(["align-content", "justify-content"])], ["place-items", /* @__PURE__ */ new Set(["align-items", "justify-items"])], ["place-self", /* @__PURE__ */ new Set(["align-self", "justify-self"])], ["columns", /* @__PURE__ */ new Set(["column-width", "column-count"])], ["column-rule", /* @__PURE__ */ new Set(["column-rule-width", "column-rule-style", "column-rule-color"])], ["list-style", /* @__PURE__ */ new Set(["list-style-type", "list-style-position", "list-style-image"])], ["offset", /* @__PURE__ */ new Set(["offset-position", "offset-path", "offset-distance", "offset-rotate", "offset-anchor"])], ["overflow", /* @__PURE__ */ new Set(["overflow-x", "overflow-y"])], ["overscroll-behavior", /* @__PURE__ */ new Set(["overscroll-behavior-x", "overscroll-behavior-y"])], ["scroll-margin", /* @__PURE__ */ new Set(["scroll-margin-top", "scroll-margin-right", "scroll-margin-bottom", "scroll-margin-left"])], ["scroll-padding", /* @__PURE__ */ new Set(["scroll-padding-top", "scroll-padding-right", "scroll-padding-bottom", "scroll-padding-left"])], ["text-decoration", /* @__PURE__ */ new Set(["text-decoration-line", "text-decoration-style", "text-decoration-color", "text-decoration-thickness"])], ["text-stroke", /* @__PURE__ */ new Set(["text-stroke-color", "text-stroke-width"])], ["animation", /* @__PURE__ */ new Set(["animation-duration", "animation-timing-function", "animation-delay", "animation-iteration-count", "animation-direction", "animation-fill-mode", "animation-play-state", "animation-name", "animation-timeline", "animation-range-start", "animation-range-end"])], ["mask", /* @__PURE__ */ new Set(["mask-image", "mask-mode", "mask-repeat-x", "mask-repeat-y", "mask-position-x", "mask-position-y", "mask-clip", "mask-origin", "mask-size", "mask-composite"])], ["mask-repeat", /* @__PURE__ */ new Set(["mask-repeat-x", "mask-repeat-y"])], ["mask-position", /* @__PURE__ */ new Set(["mask-position-x", "mask-position-y"])], ["perspective-origin", /* @__PURE__ */ new Set(["perspective-origin-x", "perspective-origin-y"])], ["transform-origin", /* @__PURE__ */ new Set(["transform-origin-x", "transform-origin-y", "transform-origin-z"])], ["white-space", /* @__PURE__ */ new Set(["white-space-collapse", "text-wrap"])]]), qu = new Map([Vu("animation", "moz"), Vu("border-image", "moz"), Vu("mask", "moz"), Vu("transition", "moz"), Vu("columns", "moz"), Vu("text-stroke", "moz"), Vu("column-rule", "moz"), ["-moz-border-end", /* @__PURE__ */ new Set(["-moz-border-end-color", "-moz-border-end-style", "-moz-border-end-width"])], ["-moz-border-start", /* @__PURE__ */ new Set(["-moz-border-start-color", "-moz-border-start-style", "-moz-border-start-width"])], ["-moz-outline-radius", /* @__PURE__ */ new Set(["-moz-outline-radius-topleft", "-moz-outline-radius-topright", "-moz-outline-radius-bottomright", "-moz-outline-radius-bottomleft"])]]), Wu = new Map([Vu("animation", "webkit"), Vu("border-radius", "webkit"), Vu("column-rule", "webkit"), Vu("columns", "webkit"), Vu("flex", "webkit"), Vu("flex-flow", "webkit"), Vu("mask", "webkit"), Vu("text-stroke", "webkit"), Vu("perspective-origin", "webkit"), Vu("transform-origin", "webkit"), Vu("transition", "webkit"), ["-webkit-border-start", /* @__PURE__ */ new Set(["-webkit-border-start-color", "-webkit-border-start-style", "-webkit-border-start-width"])], ["-webkit-border-before", /* @__PURE__ */ new Set(["-webkit-border-before-color", "-webkit-border-before-style", "-webkit-border-before-width"])], ["-webkit-border-end", /* @__PURE__ */ new Set(["-webkit-border-end-color", "-webkit-border-end-style", "-webkit-border-end-width"])], ["-webkit-border-after", /* @__PURE__ */ new Set(["-webkit-border-after-color", "-webkit-border-after-style", "-webkit-border-after-width"])]]), Hu = ["background-position", "background-repeat", "text-decoration"];
41566
41545
  qu.forEach((e4, t4) => ju.set(t4, e4)), Wu.forEach((e4, t4) => ju.set(t4, e4));
@@ -43566,7 +43545,7 @@ creating temp style for access.`), r2 = wf(e4);
43566
43545
  function R2(e5) {
43567
43546
  return t5.defaultView && t5.defaultView.frameElement && t5.defaultView.frameElement.getAttribute(e5);
43568
43547
  }
43569
- }(t4).then((e4) => (u2("processPage end"), e4.scriptVersion = "4.11.2", e4));
43548
+ }(t4).then((e4) => (u2("processPage end"), e4.scriptVersion = "4.11.3", e4));
43570
43549
  };
43571
43550
  window[ig] = window[ig] || {};
43572
43551
  const sg = rg(ag, window[ig], og);
@@ -79414,7 +79393,7 @@ var require_version = __commonJS({
79414
79393
  init_setImmediate();
79415
79394
  init_buffer();
79416
79395
  init_setInterval();
79417
- module.exports = "1.1.3";
79396
+ module.exports = "1.1.4";
79418
79397
  }
79419
79398
  });
79420
79399
 
@@ -86738,20 +86717,20 @@ var require_open_eyes4 = __commonJS({
86738
86717
  var get_eyes_results_1 = require_get_eyes_results();
86739
86718
  var populate_eyes_server_settings_1 = require_populate_eyes_server_settings();
86740
86719
  var utils34 = __importStar(require_browser3());
86741
- function makeOpenEyes({ type: defaultType = "classic", clients, batch, core, cores, spec, environment, logger: mainLogger, asyncCache }) {
86720
+ function makeOpenEyes({ type: defaultType = "classic", clients, batch, removeDuplicateTests, core, cores, spec, environment, logger: mainLogger, asyncCache }) {
86742
86721
  return async function openEyes({ type = defaultType, settings, config, target, logger = mainLogger }) {
86743
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
86744
- var _u, _v, _w, _x, _y;
86722
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
86723
+ var _v, _w, _x, _y, _z;
86745
86724
  logger = logger.extend(mainLogger, { tags: [`eyes-${type}-${utils34.general.shortid()}`] });
86746
86725
  settings = { ...config === null || config === void 0 ? void 0 : config.open, ...settings };
86747
86726
  (0, populate_eyes_server_settings_1.populateEyesServerSettings)(settings);
86748
86727
  (_a = settings.userTestId) !== null && _a !== void 0 ? _a : settings.userTestId = `${settings.testName}--${utils34.general.guid()}`;
86749
86728
  settings.batch = { ...batch, ...settings.batch };
86750
- (_b = (_u = settings.batch).id) !== null && _b !== void 0 ? _b : _u.id = (_c = utils34.general.getEnvValue("BATCH_ID")) !== null && _c !== void 0 ? _c : `generated-${utils34.general.guid()}`;
86751
- (_d = (_v = settings.batch).buildId) !== null && _d !== void 0 ? _d : _v.buildId = utils34.general.getEnvValue("BATCH_BUILD_ID");
86752
- (_e = (_w = settings.batch).name) !== null && _e !== void 0 ? _e : _w.name = utils34.general.getEnvValue("BATCH_NAME");
86753
- (_f = (_x = settings.batch).sequenceName) !== null && _f !== void 0 ? _f : _x.sequenceName = utils34.general.getEnvValue("BATCH_SEQUENCE");
86754
- (_g = (_y = settings.batch).notifyOnCompletion) !== null && _g !== void 0 ? _g : _y.notifyOnCompletion = utils34.general.getEnvValue("BATCH_NOTIFY", "boolean");
86729
+ (_b = (_v = settings.batch).id) !== null && _b !== void 0 ? _b : _v.id = (_c = utils34.general.getEnvValue("BATCH_ID")) !== null && _c !== void 0 ? _c : `generated-${utils34.general.guid()}`;
86730
+ (_d = (_w = settings.batch).buildId) !== null && _d !== void 0 ? _d : _w.buildId = utils34.general.getEnvValue("BATCH_BUILD_ID");
86731
+ (_e = (_x = settings.batch).name) !== null && _e !== void 0 ? _e : _x.name = utils34.general.getEnvValue("BATCH_NAME");
86732
+ (_f = (_y = settings.batch).sequenceName) !== null && _f !== void 0 ? _f : _y.sequenceName = utils34.general.getEnvValue("BATCH_SEQUENCE");
86733
+ (_g = (_z = settings.batch).notifyOnCompletion) !== null && _g !== void 0 ? _g : _z.notifyOnCompletion = utils34.general.getEnvValue("BATCH_NOTIFY", "boolean");
86755
86734
  (_h = settings.keepBatchOpen) !== null && _h !== void 0 ? _h : settings.keepBatchOpen = utils34.general.getEnvValue("DONT_CLOSE_BATCHES", "boolean");
86756
86735
  (_j = settings.branchName) !== null && _j !== void 0 ? _j : settings.branchName = utils34.general.getEnvValue("BRANCH");
86757
86736
  (_k = settings.parentBranchName) !== null && _k !== void 0 ? _k : settings.parentBranchName = utils34.general.getEnvValue("PARENT_BRANCH");
@@ -86761,6 +86740,7 @@ var require_open_eyes4 = __commonJS({
86761
86740
  (_p = settings.ufgServerUrl) !== null && _p !== void 0 ? _p : settings.ufgServerUrl = utils34.general.getEnvValue("UFG_SERVER_URL");
86762
86741
  (_q = settings.ignoreBaseline) !== null && _q !== void 0 ? _q : settings.ignoreBaseline = false;
86763
86742
  (_r = settings.compareWithParentBranch) !== null && _r !== void 0 ? _r : settings.compareWithParentBranch = false;
86743
+ (_s = settings.removeDuplicateTests) !== null && _s !== void 0 ? _s : settings.removeDuplicateTests = removeDuplicateTests;
86764
86744
  const driver = target && await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings });
86765
86745
  const driverEnvironment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
86766
86746
  const driverUrl = await (driver === null || driver === void 0 ? void 0 : driver.getDriverUrl());
@@ -86771,7 +86751,7 @@ var require_open_eyes4 = __commonJS({
86771
86751
  event: {
86772
86752
  type: "openEyes",
86773
86753
  userTestId: settings.userTestId,
86774
- concurrency: (_s = cores === null || cores === void 0 ? void 0 : cores[type].concurrency) !== null && _s !== void 0 ? _s : core.concurrency,
86754
+ concurrency: (_t = cores === null || cores === void 0 ? void 0 : cores[type].concurrency) !== null && _t !== void 0 ? _t : core.concurrency,
86775
86755
  environment,
86776
86756
  driver: {
86777
86757
  deviceName: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.deviceName,
@@ -86779,7 +86759,7 @@ var require_open_eyes4 = __commonJS({
86779
86759
  browserVersion: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.browserVersion,
86780
86760
  platformName: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.platformName,
86781
86761
  platformVersion: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.platformVersion,
86782
- isApplitoolsLib: (_t = driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.applitoolsLib) === null || _t === void 0 ? void 0 : _t.instrumented,
86762
+ isApplitoolsLib: (_u = driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.applitoolsLib) === null || _u === void 0 ? void 0 : _u.instrumented,
86783
86763
  isEC: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.isEC
86784
86764
  },
86785
86765
  driverUrl
@@ -86970,14 +86950,18 @@ var require_get_manager_results = __commonJS({
86970
86950
  else {
86971
86951
  await Promise.all(duplicateContainers.map(async (container) => {
86972
86952
  if (container.result) {
86973
- await core.deleteTest({
86974
- settings: {
86975
- ...container.result.eyesServer,
86976
- testId: container.result.id,
86977
- batchId: container.result.batchId,
86978
- secretToken: container.result.secretToken
86979
- }
86980
- });
86953
+ try {
86954
+ await core.deleteTest({
86955
+ settings: {
86956
+ ...container.result.eyesServer,
86957
+ testId: container.result.id,
86958
+ batchId: container.result.batchId,
86959
+ secretToken: container.result.secretToken
86960
+ }
86961
+ });
86962
+ } catch (err) {
86963
+ logger.log("Did not delete duplicate test", { testId: container.result.id, error: err });
86964
+ }
86981
86965
  }
86982
86966
  }));
86983
86967
  logger.log("Done cleaning up duplicate tests!");
@@ -87097,7 +87081,18 @@ var require_make_manager = __commonJS({
87097
87081
  return base.concurrency;
87098
87082
  },
87099
87083
  base,
87100
- openEyes: utils34.general.wrap((0, open_eyes_1.makeOpenEyes)({ type, clients, batch: settings.batch, spec, core, cores, environment, asyncCache, logger }), async (openEyes, options) => {
87084
+ openEyes: utils34.general.wrap((0, open_eyes_1.makeOpenEyes)({
87085
+ type,
87086
+ clients,
87087
+ batch: settings.batch,
87088
+ removeDuplicateTests: settings.removeDuplicateTests,
87089
+ spec,
87090
+ core,
87091
+ cores,
87092
+ environment,
87093
+ asyncCache,
87094
+ logger
87095
+ }), async (openEyes, options) => {
87101
87096
  const eyes = await openEyes(options);
87102
87097
  storage.push(eyes);
87103
87098
  return eyes;
@@ -87288,7 +87283,7 @@ var require_package2 = __commonJS({
87288
87283
  "../core/package.json"(exports, module) {
87289
87284
  module.exports = {
87290
87285
  name: "@applitools/core",
87291
- version: "4.16.1",
87286
+ version: "4.17.0",
87292
87287
  homepage: "https://applitools.com",
87293
87288
  bugs: {
87294
87289
  url: "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -87380,7 +87375,7 @@ var require_package2 = __commonJS({
87380
87375
  "abort-controller": "3.0.0",
87381
87376
  chalk: "4.1.2",
87382
87377
  "node-fetch": "2.6.7",
87383
- semver: "7.5.4",
87378
+ semver: "7.6.2",
87384
87379
  webdriver: "7.31.1",
87385
87380
  ws: "8.13.0",
87386
87381
  yargs: "17.7.2"
@@ -87395,7 +87390,7 @@ var require_package2 = __commonJS({
87395
87390
  "@applitools/tunnel-client": "workspace:^",
87396
87391
  "@types/node": "^12.20.55",
87397
87392
  "@types/selenium-webdriver": "^4.1.2",
87398
- "@types/semver": "^7.5.4",
87393
+ "@types/semver": "^7.5.8",
87399
87394
  "@types/yargs": "^17.0.22",
87400
87395
  nock: "^13.3.2",
87401
87396
  "png-async": "^0.9.4",
@@ -87750,7 +87745,7 @@ var require_core4 = __commonJS({
87750
87745
  const logger = (0, logger_1.makeLogger)({ logger: defaultLogger, format: { label: "core" } });
87751
87746
  (0, memory_usage_logging_1.startMemoryUsageLogging)({ logger });
87752
87747
  const environment = (0, extract_test_environment_1.extractTestEnvironment)(defaultEnvironment);
87753
- logger.log(`Core is initialized ${defaultBase ? "with" : "without"} custom base core and environment`, environment);
87748
+ logger.log(`Core is initialized ${defaultBase ? "with" : "without"} custom base core and environment `, environment);
87754
87749
  if (environment.sdk)
87755
87750
  (0, validate_sdk_version_1.validateSdkVersion)(environment.sdk, { logger });
87756
87751
  const base = defaultBase !== null && defaultBase !== void 0 ? defaultBase : (0, core_base_1.makeCore)({ agentId, concurrency, cwd, logger });
@@ -91407,7 +91402,7 @@ var require_package3 = __commonJS({
91407
91402
  "../eyes/package.json"(exports, module) {
91408
91403
  module.exports = {
91409
91404
  name: "@applitools/eyes",
91410
- version: "1.20.1",
91405
+ version: "1.21.0",
91411
91406
  keywords: [
91412
91407
  "applitools",
91413
91408
  "eyes",
@@ -95915,7 +95910,8 @@ var EyesRunner = class {
95915
95910
  this._managerSettings = {
95916
95911
  concurrency: options.testConcurrency,
95917
95912
  legacyConcurrency: options.legacyConcurrency,
95918
- fetchConcurrency: options.fetchConcurrency
95913
+ fetchConcurrency: options.fetchConcurrency,
95914
+ removeDuplicateTests: options.removeDuplicateTests
95919
95915
  };
95920
95916
  this._getResultsSettings = { removeDuplicateTests: options.removeDuplicateTests };
95921
95917
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-browser",
3
- "version": "1.4.5",
3
+ "version": "1.4.7",
4
4
  "keywords": [
5
5
  "applitools",
6
6
  "browser",
@@ -48,7 +48,7 @@
48
48
  "test": "run --top-level mocha './test/**/*.spec.ts'"
49
49
  },
50
50
  "dependencies": {
51
- "@applitools/eyes": "1.20.1"
51
+ "@applitools/eyes": "1.21.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/node": "^12.20.55",