@applitools/eyes-browser 1.4.6 → 1.4.8

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,230 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.4.8](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.4.7...js/eyes-browser@1.4.8) (2024-07-23)
4
+
5
+
6
+ ### Dependencies
7
+
8
+ * @applitools/driver bumped to 1.18.0
9
+ #### Features
10
+
11
+ * disable broker url cache ([#2428](https://github.com/Applitools-Dev/sdk/issues/2428)) ([cb8d5fe](https://github.com/Applitools-Dev/sdk/commit/cb8d5fefb13d3ab42984d2bd4d4ac3d4e10646b0))
12
+
13
+
14
+ #### Bug Fixes
15
+
16
+ * executing web script on mobile environment ([#2380](https://github.com/Applitools-Dev/sdk/issues/2380)) ([da2e551](https://github.com/Applitools-Dev/sdk/commit/da2e551e01082d3cc21b9da5b43e6680233c080d))
17
+ * @applitools/ufg-client bumped to 1.12.3
18
+ #### Bug Fixes
19
+
20
+ * update makeUploadResource to include apiKey in the cache key ([#2411](https://github.com/Applitools-Dev/sdk/issues/2411)) ([4114c58](https://github.com/Applitools-Dev/sdk/commit/4114c58ec16fa855374b23810cef1e36d4bb53a7))
21
+
22
+
23
+ #### Performance Improvements
24
+
25
+ * trim file content when logging it ([#2437](https://github.com/Applitools-Dev/sdk/issues/2437)) ([02ec1f7](https://github.com/Applitools-Dev/sdk/commit/02ec1f79a323af2e89a7428b75212707c761d1ca))
26
+ * @applitools/core bumped to 4.18.0
27
+ #### Features
28
+
29
+ * disable broker url cache ([#2428](https://github.com/Applitools-Dev/sdk/issues/2428)) ([cb8d5fe](https://github.com/Applitools-Dev/sdk/commit/cb8d5fefb13d3ab42984d2bd4d4ac3d4e10646b0))
30
+
31
+
32
+
33
+ * @applitools/spec-driver-webdriver bumped to 1.1.11
34
+
35
+ * @applitools/spec-driver-selenium bumped to 1.5.82
36
+
37
+ * @applitools/spec-driver-puppeteer bumped to 1.4.11
38
+
39
+ * @applitools/screenshoter bumped to 3.8.35
40
+
41
+ * @applitools/nml-client bumped to 1.8.9
42
+
43
+ * @applitools/ec-client bumped to 1.9.3
44
+
45
+ * @applitools/eyes bumped to 1.22.0
46
+ #### Features
47
+
48
+ * disable broker url cache ([#2428](https://github.com/Applitools-Dev/sdk/issues/2428)) ([cb8d5fe](https://github.com/Applitools-Dev/sdk/commit/cb8d5fefb13d3ab42984d2bd4d4ac3d4e10646b0))
49
+
50
+
51
+
52
+
53
+ ## [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)
54
+
55
+
56
+ ### Bug Fixes
57
+
58
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
59
+
60
+
61
+ ### Dependencies
62
+
63
+ * @applitools/utils bumped to 1.7.4
64
+ #### Bug Fixes
65
+
66
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
67
+ * @applitools/logger bumped to 2.0.18
68
+ #### Bug Fixes
69
+
70
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
71
+
72
+
73
+
74
+ * @applitools/socket bumped to 1.1.18
75
+ #### Bug Fixes
76
+
77
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
78
+
79
+
80
+
81
+ * @applitools/req bumped to 1.7.2
82
+ #### Bug Fixes
83
+
84
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
85
+
86
+
87
+
88
+ * @applitools/image bumped to 1.1.13
89
+ #### Bug Fixes
90
+
91
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
92
+
93
+
94
+
95
+ * @applitools/snippets bumped to 2.4.27
96
+ #### Bug Fixes
97
+
98
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
99
+ * @applitools/css-tree bumped to 1.1.4
100
+ #### Bug Fixes
101
+
102
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
103
+ * @applitools/dom-shared bumped to 1.0.15
104
+ #### Bug Fixes
105
+
106
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
107
+ * @applitools/dom-capture bumped to 11.3.0
108
+ #### Features
109
+
110
+ * add cliet rects to text nodes ([#2188](https://github.com/Applitools-Dev/sdk/issues/2188)) ([0d4180e](https://github.com/Applitools-Dev/sdk/commit/0d4180e8e362669b36a27955121caae5575918f7))
111
+ * 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))
112
+
113
+
114
+ #### Bug Fixes
115
+
116
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
117
+
118
+
119
+
120
+ * @applitools/dom-snapshot bumped to 4.11.3
121
+ #### Bug Fixes
122
+
123
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
124
+
125
+
126
+
127
+ * @applitools/spec-driver-webdriver bumped to 1.1.10
128
+ #### Bug Fixes
129
+
130
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
131
+
132
+
133
+
134
+ * @applitools/spec-driver-selenium bumped to 1.5.81
135
+ #### Bug Fixes
136
+
137
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
138
+
139
+
140
+
141
+ * @applitools/spec-driver-puppeteer bumped to 1.4.10
142
+ #### Bug Fixes
143
+
144
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
145
+
146
+
147
+
148
+ * @applitools/driver bumped to 1.17.5
149
+ #### Bug Fixes
150
+
151
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
152
+
153
+
154
+
155
+ * @applitools/screenshoter bumped to 3.8.34
156
+ #### Bug Fixes
157
+
158
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
159
+
160
+
161
+
162
+ * @applitools/nml-client bumped to 1.8.8
163
+ #### Bug Fixes
164
+
165
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
166
+
167
+
168
+
169
+ * @applitools/tunnel-client bumped to 1.5.7
170
+ #### Bug Fixes
171
+
172
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
173
+
174
+
175
+
176
+ * @applitools/ufg-client bumped to 1.12.2
177
+ #### Bug Fixes
178
+
179
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
180
+
181
+
182
+
183
+ * @applitools/ec-client bumped to 1.9.2
184
+ #### Bug Fixes
185
+
186
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
187
+
188
+
189
+
190
+ * @applitools/core-base bumped to 1.16.0
191
+ #### Features
192
+
193
+ * 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))
194
+
195
+
196
+ #### Bug Fixes
197
+
198
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
199
+
200
+
201
+
202
+ * @applitools/core bumped to 4.17.0
203
+ #### Features
204
+
205
+ * 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))
206
+
207
+
208
+ #### Bug Fixes
209
+
210
+ * change core ([d12a246](https://github.com/Applitools-Dev/sdk/commit/d12a246723cf72def6335e8698e711a43bda9e6a))
211
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
212
+
213
+
214
+
215
+ * @applitools/eyes bumped to 1.21.0
216
+ #### Features
217
+
218
+ * 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))
219
+
220
+
221
+ #### Bug Fixes
222
+
223
+ * tunnel client ([670b184](https://github.com/Applitools-Dev/sdk/commit/670b1843ce43347d97e19fa02f8bc630332ff414))
224
+
225
+
226
+
227
+
3
228
  ## [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)
4
229
 
5
230
 
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) {
@@ -32449,7 +32450,7 @@ var require_driver = __commonJS({
32449
32450
  await (scrollingElement === null || scrollingElement === void 0 ? void 0 : scrollingElement.refresh());
32450
32451
  return refreshThis;
32451
32452
  }
32452
- async refresh({ reset } = {}) {
32453
+ async refresh({ reset, name } = {}) {
32453
32454
  if (reset) {
32454
32455
  if (utils34.general.getEnvValue("AVOID_DRIVER_STATE_REST", "boolean")) {
32455
32456
  this._logger.log(`Skipping reset of the driver state`);
@@ -32462,6 +32463,9 @@ var require_driver = __commonJS({
32462
32463
  this._state = {};
32463
32464
  }
32464
32465
  }
32466
+ if (name === "NATIVE_APP") {
32467
+ return reset ? resetReference(this) : this;
32468
+ }
32465
32469
  const spec = this._spec;
32466
32470
  let currentContext = this.currentContext.target;
32467
32471
  let contextInfo;
@@ -32866,7 +32870,7 @@ var require_driver = __commonJS({
32866
32870
  }
32867
32871
  try {
32868
32872
  await this._spec.switchWorld(this.target, name);
32869
- await this.refresh({ reset: true });
32873
+ await this.refresh({ reset: true, name });
32870
32874
  } catch (error) {
32871
32875
  this._logger.error("Unable to switch world due to the error", error);
32872
32876
  throw new Error(`Unable to switch world, the original error was: ${error.message}`);
@@ -34913,7 +34917,7 @@ var require_captureDomPollCjs = __commonJS({
34913
34917
  } catch (e5) {
34914
34918
  return false;
34915
34919
  }
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"] };
34920
+ } }, 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
34921
  const f = /url\((?!['"]?:)['"]?([^'")]*)['"]?\)/;
34918
34922
  const { NODE_TYPES: m } = d;
34919
34923
  function h(e4) {
@@ -34934,7 +34938,7 @@ var require_captureDomPollCjs = __commonJS({
34934
34938
  };
34935
34939
  const w = g, E = y;
34936
34940
  const { absolutizeUrl: C, isInlineFrame: T } = l, N = p, b = g, S = y, { NODE_TYPES: A } = d;
34937
- const { absolutizeUrl: $, isInlineFrame: R } = l, _ = function(e4) {
34941
+ const { absolutizeUrl: R, isInlineFrame: $ } = l, _ = function(e4) {
34938
34942
  const t4 = e4 ? e4.match(f) : void 0;
34939
34943
  return t4 ? t4[1] : t4;
34940
34944
  }, P = async function({ bgImages: e4, timeout: t4 = 5e3, Image: n3 = window.Image }) {
@@ -34947,14 +34951,14 @@ var require_captureDomPollCjs = __commonJS({
34947
34951
  }))]);
34948
34952
  var o2;
34949
34953
  }))).reduce((e5, t5) => (t5 && (e5[t5.url] = { width: t5.width, height: t5.height }), e5), {});
34950
- }, U = function e4(t4) {
34954
+ }, v = function e4(t4) {
34951
34955
  if (!t4.ownerDocument)
34952
34956
  return "";
34953
34957
  let n3 = "", o2 = t4, r2 = t4.ownerDocument, s2 = r2.defaultView.frameElement;
34954
34958
  for (; o2 !== r2 && (!o2 || o2.nodeType !== m.DOCUMENT_FRAGMENT); )
34955
34959
  n3 = `${o2.tagName}[${h(o2)}]/${n3}`, o2 = o2.parentNode;
34956
34960
  return s2 && (n3 = `${e4(s2)},${n3}`), n3.replace(/\/$/, "");
34957
- }, v = function({ parseCss: e4, CSSImportRule: t4, absolutizeUrl: n3, getCssFromCache: o2, unfetchedToken: r2 }) {
34961
+ }, U = function({ parseCss: e4, CSSImportRule: t4, absolutizeUrl: n3, getCssFromCache: o2, unfetchedToken: r2 }) {
34958
34962
  return function s2(a2, c2) {
34959
34963
  let u2, i2 = "";
34960
34964
  try {
@@ -35082,73 +35086,76 @@ ${l2}`}`, { bundledCss: i2, unfetchedResources: u2 };
35082
35086
  u2(c2.prefetchCss);
35083
35087
  const g2 = L(F(fetch, { fetchTimeLimit: a2 })), y2 = await g2(t4);
35084
35088
  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 });
35089
+ 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
35090
  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) {
35091
+ const T2 = function s3(a3, c3 = a3.location && a3.location.href) {
35092
+ const u3 = /* @__PURE__ */ new Set();
35093
+ let i3 = "";
35094
+ const h3 = p3(a3.documentElement || a3);
35095
+ return h3.css = i3, l2.push(P({ bgImages: u3 }).then((e4) => h3.images = e4)), h3;
35096
+ function p3(t5) {
35093
35097
  if (t5.hasAttribute && t5.hasAttribute("data-applitools-skip"))
35094
35098
  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);
35099
+ const { bundledCss: n4, unfetchedResources: o3 } = C2(t5, c3);
35100
+ if (i3 += n4, o3)
35101
+ for (const e4 of o3)
35102
+ d2.add(e4);
35099
35103
  switch (t5.nodeType) {
35100
35104
  case x.TEXT:
35101
- return function(e5) {
35102
- return { tagName: "#text", text: e5.textContent };
35105
+ return function(t6) {
35106
+ const n5 = e3.createRange();
35107
+ n5.selectNode(t6);
35108
+ const o4 = n5.getClientRects();
35109
+ 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
35110
  }(t5);
35104
35111
  case x.ELEMENT:
35105
- return "IFRAME" === t5.tagName.toUpperCase() ? function(t6) {
35106
- const n5 = p3(t6);
35107
- let o4;
35112
+ return "IFRAME" === t5.tagName.toUpperCase() ? function(e4) {
35113
+ const t6 = g3(e4);
35114
+ let n5;
35108
35115
  try {
35109
- o4 = t6.contentDocument;
35110
- } catch (t7) {
35111
- return r3(), n5;
35116
+ n5 = e4.contentDocument;
35117
+ } catch (e5) {
35118
+ return o4(), t6;
35112
35119
  }
35113
35120
  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);
35121
+ n5 ? t6.childNodes = [s3(n5, $(e4) ? e4.baseURI : n5.location.href)] : o4();
35122
+ } catch (e5) {
35123
+ console.log("error in iframeToJSON", e5);
35117
35124
  }
35118
- return n5;
35119
- function r3() {
35120
- const e5 = U(t6);
35121
- f2.push(e5), n5.childNodes = [`${m2}${e5}${m2}`];
35125
+ return t6;
35126
+ function o4() {
35127
+ const n6 = v(e4);
35128
+ f2.push(n6), t6.childNodes = [`${m2}${n6}${m2}`];
35122
35129
  }
35123
- }(t5) : p3(t5);
35130
+ }(t5) : g3(t5);
35124
35131
  case x.DOCUMENT_FRAGMENT:
35125
- return { childNodes: Array.prototype.map.call(t5.childNodes, h3).filter(Boolean) };
35132
+ return { childNodes: Array.prototype.map.call(t5.childNodes, p3).filter(Boolean) };
35126
35133
  default:
35127
35134
  return null;
35128
35135
  }
35129
35136
  }
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();
35137
+ function g3(e4) {
35138
+ const a4 = Array.prototype.map.call(e4.childNodes, p3).filter(Boolean), i4 = e4.shadowRoot && s3(e4.shadowRoot, c3), l3 = e4.tagName.toUpperCase();
35132
35139
  if (r2.indexOf(l3) > -1)
35133
35140
  return null;
35134
- const d3 = t4.defaultView.getComputedStyle(s4), f3 = s4.getBoundingClientRect(), m3 = {};
35141
+ const d3 = t4.defaultView.getComputedStyle(e4), f3 = e4.getBoundingClientRect(), m3 = {};
35135
35142
  for (const e5 of n3)
35136
35143
  m3[e5] = d3.getPropertyValue(e5);
35137
35144
  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 = {};
35145
+ const h4 = {};
35139
35146
  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);
35147
+ h4[e5] = f3[e5];
35148
+ const g4 = Array.from(e4.attributes).map((e5) => ({ key: e5.name, value: e5.value })).reduce((e5, t5) => (e5[t5.key] = t5.value, e5), {});
35149
+ "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
35150
  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 };
35151
+ y3 && u3.add(y3);
35152
+ const w3 = O(e4);
35153
+ w3 && (g4["data-applitools-has-pseudo"] = w3);
35154
+ const E3 = { tagName: l3, style: Y2(m3), rect: Y2(h4), attributes: Y2(g4), childNodes: a4 };
35148
35155
  return i4 && (E3.shadowRoot = i4), E3;
35149
35156
  }
35150
35157
  }(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";
35158
+ i2(c2.doCaptureDoc), u2(c2.waitForImages), await Promise.all(l2), i2(c2.waitForImages), T2.version = "1.3.0", T2.scriptVersion = "11.3.0";
35152
35159
  const N2 = f2.length ? `${f2.join("\n")}
35153
35160
  ` : "", b2 = d2.size ? `${Array.from(d2).join("\n")}
35154
35161
  ` : "", S2 = JSON.stringify({ separator: p2, cssStartToken: h2, cssEndToken: h2, iframeStartToken: `"${m2}`, iframeEndToken: `${m2}"` });
@@ -35249,7 +35256,7 @@ var require_pollResultCjs = __commonJS({
35249
35256
  return (i2.status === o || i2.status === c || i2.status === u && i2.done) && (t5[e4] = null), i2;
35250
35257
  };
35251
35258
  const i = a;
35252
- var l = { chunkify: e3, pollify: function(t5, e4, n3) {
35259
+ var s = { chunkify: e3, pollify: function(t5, e4, n3) {
35253
35260
  return (r2) => function() {
35254
35261
  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
35262
  };
@@ -35284,11 +35291,11 @@ var require_pollResultCjs = __commonJS({
35284
35291
  return false;
35285
35292
  }
35286
35293
  } };
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"] };
35294
+ 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
35295
  return function(t5) {
35289
35296
  return t5 && t5.__esModule && Object.prototype.hasOwnProperty.call(t5, "default") ? t5.default : t5;
35290
35297
  }(function(t5) {
35291
- return JSON.stringify(s(window[d], f, t5));
35298
+ return JSON.stringify(l(window[d], f, t5));
35292
35299
  });
35293
35300
  }();
35294
35301
  };
@@ -36087,53 +36094,37 @@ var require_get_nml_client = __commonJS({
36087
36094
  init_setImmediate();
36088
36095
  init_buffer();
36089
36096
  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
36097
  Object.defineProperty(exports, "__esModule", { value: true });
36123
36098
  exports.makeGetNMLClient = void 0;
36124
36099
  var nml_client_1 = require_dist5();
36125
- var utils34 = __importStar(require_browser3());
36100
+ var clients = /* @__PURE__ */ new Map();
36126
36101
  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 }) {
36102
+ return {
36103
+ getNMLClient,
36104
+ clearNMLClientCache
36105
+ };
36106
+ async function getNMLClient({ driver, settings, logger }) {
36107
+ if (client)
36108
+ return client;
36132
36109
  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 });
36110
+ const { sessionId } = await driver.getDriverInfo();
36111
+ const cacheKey = sessionId !== null && sessionId !== void 0 ? sessionId : driver.guid;
36112
+ const clientFromCache = clients.get(cacheKey);
36113
+ if (clientFromCache) {
36114
+ return clientFromCache;
36115
+ } else {
36116
+ const brokerUrl = await driver.extractBrokerUrl();
36117
+ if (!brokerUrl)
36118
+ throw new Error("Unable to extract broker url from the device");
36119
+ const nmlClient = (0, nml_client_1.makeNMLClient)({ settings: { brokerUrl, ...settings }, logger });
36120
+ clients.set(cacheKey, nmlClient);
36121
+ return nmlClient;
36122
+ }
36123
+ }
36124
+ async function clearNMLClientCache(driver) {
36125
+ const { sessionId } = await driver.getDriverInfo();
36126
+ const cacheKey = sessionId !== null && sessionId !== void 0 ? sessionId : driver.guid;
36127
+ clients.delete(cacheKey);
36137
36128
  }
36138
36129
  }
36139
36130
  exports.makeGetNMLClient = makeGetNMLClient;
@@ -37644,7 +37635,7 @@ var require_core2 = __commonJS({
37644
37635
  locate: (0, locate_1.makeLocate)({ spec, core, logger }),
37645
37636
  locateText: (0, locate_text_1.makeLocateText)({ spec, core, logger }),
37646
37637
  extractText: (0, extract_text_1.makeExtractText)({ spec, core, logger }),
37647
- getNMLClient: (0, get_nml_client_1.makeGetNMLClient)({ client: clients === null || clients === void 0 ? void 0 : clients.nml, logger }),
37638
+ ...(0, get_nml_client_1.makeGetNMLClient)({ client: clients === null || clients === void 0 ? void 0 : clients.nml, logger }),
37648
37639
  openEyes: (0, open_eyes_1.makeOpenEyes)({ spec, core, logger })
37649
37640
  };
37650
37641
  });
@@ -41560,7 +41551,7 @@ var require_processPagePollCjs = __commonJS({
41560
41551
  return t4;
41561
41552
  };
41562
41553
  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;
41554
+ 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
41555
  var Mu = {};
41565
41556
  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
41557
  qu.forEach((e4, t4) => ju.set(t4, e4)), Wu.forEach((e4, t4) => ju.set(t4, e4));
@@ -43566,7 +43557,7 @@ creating temp style for access.`), r2 = wf(e4);
43566
43557
  function R2(e5) {
43567
43558
  return t5.defaultView && t5.defaultView.frameElement && t5.defaultView.frameElement.getAttribute(e5);
43568
43559
  }
43569
- }(t4).then((e4) => (u2("processPage end"), e4.scriptVersion = "4.11.2", e4));
43560
+ }(t4).then((e4) => (u2("processPage end"), e4.scriptVersion = "4.11.3", e4));
43570
43561
  };
43571
43562
  window[ig] = window[ig] || {};
43572
43563
  const sg = rg(ag, window[ig], og);
@@ -44493,6 +44484,7 @@ var require_req_ufg = __commonJS({
44493
44484
  exports.makeReqUFG = void 0;
44494
44485
  var req_1 = (init_dist(), __toCommonJS(dist_exports));
44495
44486
  var utils34 = __importStar(require_browser3());
44487
+ var buffer_1 = require_buffer();
44496
44488
  function makeReqUFG({ settings, logger }) {
44497
44489
  var _a;
44498
44490
  return (0, req_1.makeReq)({
@@ -44532,7 +44524,19 @@ var require_req_ufg = __commonJS({
44532
44524
  requestId = `${counter++}--${guid}`;
44533
44525
  request.headers.set("x-applitools-eyes-client-request-id", requestId);
44534
44526
  }
44535
- logger === null || logger === void 0 ? void 0 : logger.log(`Request "${options === null || options === void 0 ? void 0 : options.name}" [${requestId}] will be sent to the address "[${request.method}]${request.url}" with body`, options === null || options === void 0 ? void 0 : options.body);
44527
+ const { body, originalSize, isTrimmed } = trimBody();
44528
+ logger === null || logger === void 0 ? void 0 : logger.log(`Request "${options === null || options === void 0 ? void 0 : options.name}" [${requestId}] will be sent to the address "[${request.method}]${request.url}" with body${isTrimmed ? ` (trimmed from ${originalSize})` : ""}`, body);
44529
+ function trimBody() {
44530
+ if ((options === null || options === void 0 ? void 0 : options.body) instanceof buffer_1.Buffer || (options === null || options === void 0 ? void 0 : options.body) instanceof Uint8Array) {
44531
+ return {
44532
+ body: options.body.subarray(0, 10),
44533
+ originalSize: options.body.length,
44534
+ isTrimmed: options.body.length > 10
44535
+ };
44536
+ } else {
44537
+ return { body: options === null || options === void 0 ? void 0 : options.body };
44538
+ }
44539
+ }
44536
44540
  },
44537
44541
  beforeRetry({ request, attempt, error, response, options }) {
44538
44542
  var _a;
@@ -44758,7 +44762,7 @@ var require_requests3 = __commonJS({
44758
44762
  }
44759
44763
  async function checkResources({ resources, logger: logger2 = mainLogger }) {
44760
44764
  logger2 = logger2.extend(mainLogger, { tags: [`ufg-request-${utils34.general.shortid()}`] });
44761
- logger2.log('Request "checkResources" called for resources', resources);
44765
+ logger2.log('Request "checkResources" called for resources', resources.map(trimValueForResource));
44762
44766
  const response = await req2("./resources/query/resources-exist", {
44763
44767
  name: "checkResources",
44764
44768
  method: "POST",
@@ -44775,7 +44779,7 @@ var require_requests3 = __commonJS({
44775
44779
  }
44776
44780
  async function uploadResource({ resource, logger: logger2 = mainLogger }) {
44777
44781
  logger2 = logger2.extend(mainLogger, { tags: [`ufg-request-${utils34.general.shortid()}`] });
44778
- logger2.log('Request "uploadResource" called for resource', resource);
44782
+ logger2.log('Request "uploadResource" called for resource', trimValueForResource(resource));
44779
44783
  await req2(`./resources/sha256/${resource.hash.hash}`, {
44780
44784
  name: "uploadResource",
44781
44785
  method: "PUT",
@@ -44926,6 +44930,9 @@ var require_requests3 = __commonJS({
44926
44930
  }
44927
44931
  return pathSelector;
44928
44932
  }
44933
+ function trimValueForResource(resource) {
44934
+ return { ...resource, value: resource.value.subarray(0, 10) };
44935
+ }
44929
44936
  }
44930
44937
  });
44931
44938
 
@@ -79414,7 +79421,7 @@ var require_version = __commonJS({
79414
79421
  init_setImmediate();
79415
79422
  init_buffer();
79416
79423
  init_setInterval();
79417
- module.exports = "1.1.3";
79424
+ module.exports = "1.1.4";
79418
79425
  }
79419
79426
  });
79420
79427
 
@@ -84867,14 +84874,14 @@ var require_upload_resource = __commonJS({
84867
84874
  var logger_1 = require_browser6();
84868
84875
  var throat_1 = __importDefault(require_throat());
84869
84876
  var utils34 = __importStar(require_browser3());
84870
- function makeUploadResource({ requests, batchingTimeout = 300, concurrency = 100, logger: mainLogger }) {
84877
+ function makeUploadResource({ requests, batchingTimeout = 300, concurrency = 100, logger: mainLogger, apiKey }) {
84871
84878
  const uploadedResources = /* @__PURE__ */ new Set();
84872
84879
  const requestedResources = /* @__PURE__ */ new Map();
84873
84880
  const uploadResourceWithConcurrency = (0, throat_1.default)(concurrency, requests.uploadResource);
84874
84881
  const uploadResourceWithBatching = utils34.general.batchify(uploadResources, { timeout: batchingTimeout });
84875
84882
  return async function uploadResource({ resource, logger = mainLogger }) {
84876
84883
  logger = logger.extend(mainLogger, { tags: [`upload-resource-${utils34.general.shortid()}`] });
84877
- const hash = resource.hash.hash;
84884
+ const hash = resource.hash.hash + "_" + apiKey;
84878
84885
  if (uploadedResources.has(hash)) {
84879
84886
  return Promise.resolve();
84880
84887
  } else if (requestedResources.has(hash)) {
@@ -84905,6 +84912,9 @@ var require_upload_resource = __commonJS({
84905
84912
  uploadResourceWithConcurrency(options).then(resolve, reject);
84906
84913
  }
84907
84914
  });
84915
+ if (presentedResources.length !== batch.length) {
84916
+ throw new Error(`Unexpected number of presented resources - ${presentedResources.length} instead of ${batch.length}`);
84917
+ }
84908
84918
  } catch (err) {
84909
84919
  batch.forEach(([, { reject }]) => reject(err));
84910
84920
  }
@@ -84946,7 +84956,7 @@ var require_client2 = __commonJS({
84946
84956
  apiKey: settings.apiKey,
84947
84957
  logger
84948
84958
  });
84949
- const uploadResource = (0, upload_resource_1.makeUploadResource)({ requests, logger });
84959
+ const uploadResource = (0, upload_resource_1.makeUploadResource)({ requests, logger, apiKey: settings.apiKey });
84950
84960
  const processResources = (0, process_resources_1.makeProcessResources)({
84951
84961
  fetchResource,
84952
84962
  cache,
@@ -85921,7 +85931,7 @@ var require_core3 = __commonJS({
85921
85931
  locateText: (0, locate_text_1.makeLocateText)({ spec, core, logger }),
85922
85932
  extractText: (0, extract_text_1.makeExtractText)({ spec, core, logger }),
85923
85933
  getUFGClient: (0, get_ufg_client_1.makeGetUFGClient)({ client: clients === null || clients === void 0 ? void 0 : clients.ufg, fetchConcurrency, asyncCache, logger }),
85924
- getNMLClient: (0, get_nml_client_1.makeGetNMLClient)({ client: clients === null || clients === void 0 ? void 0 : clients.nml, logger }),
85934
+ ...(0, get_nml_client_1.makeGetNMLClient)({ client: clients === null || clients === void 0 ? void 0 : clients.nml, logger }),
85925
85935
  openEyes: (0, open_eyes_1.makeOpenEyes)({ spec, core, logger })
85926
85936
  };
85927
85937
  });
@@ -86738,20 +86748,20 @@ var require_open_eyes4 = __commonJS({
86738
86748
  var get_eyes_results_1 = require_get_eyes_results();
86739
86749
  var populate_eyes_server_settings_1 = require_populate_eyes_server_settings();
86740
86750
  var utils34 = __importStar(require_browser3());
86741
- function makeOpenEyes({ type: defaultType = "classic", clients, batch, core, cores, spec, environment, logger: mainLogger, asyncCache }) {
86751
+ function makeOpenEyes({ type: defaultType = "classic", clients, batch, removeDuplicateTests, core, cores, spec, environment, logger: mainLogger, asyncCache }) {
86742
86752
  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;
86753
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
86754
+ var _v, _w, _x, _y, _z;
86745
86755
  logger = logger.extend(mainLogger, { tags: [`eyes-${type}-${utils34.general.shortid()}`] });
86746
86756
  settings = { ...config === null || config === void 0 ? void 0 : config.open, ...settings };
86747
86757
  (0, populate_eyes_server_settings_1.populateEyesServerSettings)(settings);
86748
86758
  (_a = settings.userTestId) !== null && _a !== void 0 ? _a : settings.userTestId = `${settings.testName}--${utils34.general.guid()}`;
86749
86759
  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");
86760
+ (_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()}`;
86761
+ (_d = (_w = settings.batch).buildId) !== null && _d !== void 0 ? _d : _w.buildId = utils34.general.getEnvValue("BATCH_BUILD_ID");
86762
+ (_e = (_x = settings.batch).name) !== null && _e !== void 0 ? _e : _x.name = utils34.general.getEnvValue("BATCH_NAME");
86763
+ (_f = (_y = settings.batch).sequenceName) !== null && _f !== void 0 ? _f : _y.sequenceName = utils34.general.getEnvValue("BATCH_SEQUENCE");
86764
+ (_g = (_z = settings.batch).notifyOnCompletion) !== null && _g !== void 0 ? _g : _z.notifyOnCompletion = utils34.general.getEnvValue("BATCH_NOTIFY", "boolean");
86755
86765
  (_h = settings.keepBatchOpen) !== null && _h !== void 0 ? _h : settings.keepBatchOpen = utils34.general.getEnvValue("DONT_CLOSE_BATCHES", "boolean");
86756
86766
  (_j = settings.branchName) !== null && _j !== void 0 ? _j : settings.branchName = utils34.general.getEnvValue("BRANCH");
86757
86767
  (_k = settings.parentBranchName) !== null && _k !== void 0 ? _k : settings.parentBranchName = utils34.general.getEnvValue("PARENT_BRANCH");
@@ -86761,6 +86771,7 @@ var require_open_eyes4 = __commonJS({
86761
86771
  (_p = settings.ufgServerUrl) !== null && _p !== void 0 ? _p : settings.ufgServerUrl = utils34.general.getEnvValue("UFG_SERVER_URL");
86762
86772
  (_q = settings.ignoreBaseline) !== null && _q !== void 0 ? _q : settings.ignoreBaseline = false;
86763
86773
  (_r = settings.compareWithParentBranch) !== null && _r !== void 0 ? _r : settings.compareWithParentBranch = false;
86774
+ (_s = settings.removeDuplicateTests) !== null && _s !== void 0 ? _s : settings.removeDuplicateTests = removeDuplicateTests;
86764
86775
  const driver = target && await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings });
86765
86776
  const driverEnvironment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
86766
86777
  const driverUrl = await (driver === null || driver === void 0 ? void 0 : driver.getDriverUrl());
@@ -86771,7 +86782,7 @@ var require_open_eyes4 = __commonJS({
86771
86782
  event: {
86772
86783
  type: "openEyes",
86773
86784
  userTestId: settings.userTestId,
86774
- concurrency: (_s = cores === null || cores === void 0 ? void 0 : cores[type].concurrency) !== null && _s !== void 0 ? _s : core.concurrency,
86785
+ concurrency: (_t = cores === null || cores === void 0 ? void 0 : cores[type].concurrency) !== null && _t !== void 0 ? _t : core.concurrency,
86775
86786
  environment,
86776
86787
  driver: {
86777
86788
  deviceName: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.deviceName,
@@ -86779,7 +86790,7 @@ var require_open_eyes4 = __commonJS({
86779
86790
  browserVersion: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.browserVersion,
86780
86791
  platformName: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.platformName,
86781
86792
  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,
86793
+ isApplitoolsLib: (_u = driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.applitoolsLib) === null || _u === void 0 ? void 0 : _u.instrumented,
86783
86794
  isEC: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.isEC
86784
86795
  },
86785
86796
  driverUrl
@@ -86787,6 +86798,9 @@ var require_open_eyes4 = __commonJS({
86787
86798
  },
86788
86799
  logger
86789
86800
  });
86801
+ if (settings.disableBrokerUrlCache && driver) {
86802
+ await core.clearNMLClientCache(driver);
86803
+ }
86790
86804
  const getTypedEyes = (0, get_typed_eyes_1.makeGetTypedEyes)({
86791
86805
  type,
86792
86806
  settings,
@@ -86970,14 +86984,18 @@ var require_get_manager_results = __commonJS({
86970
86984
  else {
86971
86985
  await Promise.all(duplicateContainers.map(async (container) => {
86972
86986
  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
- });
86987
+ try {
86988
+ await core.deleteTest({
86989
+ settings: {
86990
+ ...container.result.eyesServer,
86991
+ testId: container.result.id,
86992
+ batchId: container.result.batchId,
86993
+ secretToken: container.result.secretToken
86994
+ }
86995
+ });
86996
+ } catch (err) {
86997
+ logger.log("Did not delete duplicate test", { testId: container.result.id, error: err });
86998
+ }
86981
86999
  }
86982
87000
  }));
86983
87001
  logger.log("Done cleaning up duplicate tests!");
@@ -87097,7 +87115,18 @@ var require_make_manager = __commonJS({
87097
87115
  return base.concurrency;
87098
87116
  },
87099
87117
  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) => {
87118
+ openEyes: utils34.general.wrap((0, open_eyes_1.makeOpenEyes)({
87119
+ type,
87120
+ clients,
87121
+ batch: settings.batch,
87122
+ removeDuplicateTests: settings.removeDuplicateTests,
87123
+ spec,
87124
+ core,
87125
+ cores,
87126
+ environment,
87127
+ asyncCache,
87128
+ logger
87129
+ }), async (openEyes, options) => {
87101
87130
  const eyes = await openEyes(options);
87102
87131
  storage.push(eyes);
87103
87132
  return eyes;
@@ -87288,7 +87317,7 @@ var require_package2 = __commonJS({
87288
87317
  "../core/package.json"(exports, module) {
87289
87318
  module.exports = {
87290
87319
  name: "@applitools/core",
87291
- version: "4.16.1",
87320
+ version: "4.18.0",
87292
87321
  homepage: "https://applitools.com",
87293
87322
  bugs: {
87294
87323
  url: "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -87330,12 +87359,12 @@ var require_package2 = __commonJS({
87330
87359
  ],
87331
87360
  scripts: {
87332
87361
  lint: "run --top-level eslint '**/*.ts'",
87333
- build: "yarn build:dist",
87362
+ build: "yarn build:dist && yarn build:bin",
87363
+ "build:short": "yarn build:dist",
87334
87364
  "build:dist": "run --top-level tsc --project ./tsconfig.build.json",
87335
87365
  "build:bin": "sea",
87336
87366
  "build:bin:zip": "zip -j ./bin/core.zip $(find ./bin -type f -not -name '*.zip' -not -name '*.tar.gz' | xargs)",
87337
87367
  "build:bin:tgz": "tar -czf ./bin/core.tar.gz $(find ./bin -type f -not -name '*.zip' -not -name '*.tar.gz' | xargs)",
87338
- "build:full": "yarn build:dist && yarn build:bin",
87339
87368
  test: "run --top-level mocha './test/**/*.spec.ts' --exclude './test/bin/**' --parallel --jobs ${MOCHA_JOBS:-15} --exit",
87340
87369
  "test:local": "MOCHA_OMIT_TAGS=sauce run test",
87341
87370
  "test:sauce": "MOCHA_ONLY_TAGS=sauce run test",
@@ -87380,9 +87409,9 @@ var require_package2 = __commonJS({
87380
87409
  "abort-controller": "3.0.0",
87381
87410
  chalk: "4.1.2",
87382
87411
  "node-fetch": "2.6.7",
87383
- semver: "7.5.4",
87412
+ semver: "7.6.2",
87384
87413
  webdriver: "7.31.1",
87385
- ws: "8.13.0",
87414
+ ws: "8.17.1",
87386
87415
  yargs: "17.7.2"
87387
87416
  },
87388
87417
  devDependencies: {
@@ -87395,7 +87424,7 @@ var require_package2 = __commonJS({
87395
87424
  "@applitools/tunnel-client": "workspace:^",
87396
87425
  "@types/node": "^12.20.55",
87397
87426
  "@types/selenium-webdriver": "^4.1.2",
87398
- "@types/semver": "^7.5.4",
87427
+ "@types/semver": "^7.5.8",
87399
87428
  "@types/yargs": "^17.0.22",
87400
87429
  nock: "^13.3.2",
87401
87430
  "png-async": "^0.9.4",
@@ -87750,7 +87779,7 @@ var require_core4 = __commonJS({
87750
87779
  const logger = (0, logger_1.makeLogger)({ logger: defaultLogger, format: { label: "core" } });
87751
87780
  (0, memory_usage_logging_1.startMemoryUsageLogging)({ logger });
87752
87781
  const environment = (0, extract_test_environment_1.extractTestEnvironment)(defaultEnvironment);
87753
- logger.log(`Core is initialized ${defaultBase ? "with" : "without"} custom base core and environment`, environment);
87782
+ logger.log(`Core is initialized ${defaultBase ? "with" : "without"} custom base core and environment `, environment);
87754
87783
  if (environment.sdk)
87755
87784
  (0, validate_sdk_version_1.validateSdkVersion)(environment.sdk, { logger });
87756
87785
  const base = defaultBase !== null && defaultBase !== void 0 ? defaultBase : (0, core_base_1.makeCore)({ agentId, concurrency, cwd, logger });
@@ -87763,7 +87792,7 @@ var require_core4 = __commonJS({
87763
87792
  base,
87764
87793
  getViewportSize: spec && (0, get_viewport_size_1.makeGetViewportSize)({ spec, logger }),
87765
87794
  setViewportSize: spec && (0, set_viewport_size_1.makeSetViewportSize)({ spec, logger }),
87766
- getNMLClient: (0, get_nml_client_1.makeGetNMLClient)({ client: clients === null || clients === void 0 ? void 0 : clients.nml, logger }),
87795
+ ...(0, get_nml_client_1.makeGetNMLClient)({ client: clients === null || clients === void 0 ? void 0 : clients.nml, logger }),
87767
87796
  getECClient: (0, get_ec_client_1.makeGetECClient)({ logger }),
87768
87797
  getAccountInfo: (0, get_account_info_1.makeGetAccountInfo)({ core, logger }),
87769
87798
  // Note: `defaultBase` is passesd for `base`, and `cores` is not passed here on purpose, so that a manager will create its own base, which would apply the correct concurrency value that was passed to the manager.
@@ -91407,7 +91436,7 @@ var require_package3 = __commonJS({
91407
91436
  "../eyes/package.json"(exports, module) {
91408
91437
  module.exports = {
91409
91438
  name: "@applitools/eyes",
91410
- version: "1.20.1",
91439
+ version: "1.22.0",
91411
91440
  keywords: [
91412
91441
  "applitools",
91413
91442
  "eyes",
@@ -95012,6 +95041,19 @@ var ConfigurationData = class {
95012
95041
  this.dontCloseBatches = dontCloseBatches;
95013
95042
  return this;
95014
95043
  }
95044
+ get disableNMLUrlCache() {
95045
+ return this._config.disableNMLUrlCache;
95046
+ }
95047
+ set disableNMLUrlCache(disableNMLUrlCache) {
95048
+ this._config.disableNMLUrlCache = disableNMLUrlCache;
95049
+ }
95050
+ getDisableNMLUrlCache() {
95051
+ return this.disableNMLUrlCache;
95052
+ }
95053
+ setDisableNMLUrlCache(disableNMLUrlCache) {
95054
+ this.disableNMLUrlCache = disableNMLUrlCache;
95055
+ return this;
95056
+ }
95015
95057
  /** @internal */
95016
95058
  toObject() {
95017
95059
  return this._config;
@@ -95051,7 +95093,8 @@ var ConfigurationData = class {
95051
95093
  gitBranchingTimestamp: this.gitMergeBaseTimestamp,
95052
95094
  ignoreGitBranching: this.ignoreGitMergeBase,
95053
95095
  saveDiffs: this.saveDiffs,
95054
- keepBatchOpen: this.dontCloseBatches
95096
+ keepBatchOpen: this.dontCloseBatches,
95097
+ disableBrokerUrlCache: this.disableNMLUrlCache
95055
95098
  }),
95056
95099
  screenshot: utils20.general.removeUndefinedProps({
95057
95100
  fully: this.forceFullPageScreenshot,
@@ -95915,7 +95958,8 @@ var EyesRunner = class {
95915
95958
  this._managerSettings = {
95916
95959
  concurrency: options.testConcurrency,
95917
95960
  legacyConcurrency: options.legacyConcurrency,
95918
- fetchConcurrency: options.fetchConcurrency
95961
+ fetchConcurrency: options.fetchConcurrency,
95962
+ removeDuplicateTests: options.removeDuplicateTests
95919
95963
  };
95920
95964
  this._getResultsSettings = { removeDuplicateTests: options.removeDuplicateTests };
95921
95965
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-browser",
3
- "version": "1.4.6",
3
+ "version": "1.4.8",
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.22.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/node": "^12.20.55",
@@ -84,6 +84,7 @@ export type Configuration<TSpec extends Core.SpecType = Core.SpecType> = {
84
84
  };
85
85
  disableBrowserFetching?: boolean;
86
86
  waitBeforeCapture?: number;
87
+ disableNMLUrlCache?: boolean;
87
88
  };
88
89
  export declare class ConfigurationData<TSpec extends Core.SpecType = Core.SpecType> implements Required<Configuration<TSpec>> {
89
90
  protected static readonly _spec: Core.SpecDriver<Core.SpecType>;
@@ -379,6 +380,10 @@ export declare class ConfigurationData<TSpec extends Core.SpecType = Core.SpecTy
379
380
  getDontCloseBatches(): boolean;
380
381
  /** @undocumented */
381
382
  setDontCloseBatches(dontCloseBatches: boolean): this;
383
+ get disableNMLUrlCache(): boolean;
384
+ set disableNMLUrlCache(disableNMLUrlCache: boolean);
385
+ getDisableNMLUrlCache(): boolean;
386
+ setDisableNMLUrlCache(disableNMLUrlCache: boolean): this;
382
387
  /** @internal */
383
388
  toObject(): Configuration<TSpec>;
384
389
  /** @internal */