@applitools/core 4.66.0 → 4.66.2

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,71 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.66.2](https://github.com/Applitools-Dev/sdk/compare/js/core@4.66.1...js/core@4.66.2) (2026-07-21)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * bound lazyLoad scroll loop to prevent poll-timeout abort | FLD-4680 ([#3972](https://github.com/Applitools-Dev/sdk/issues/3972)) ([4deea6b](https://github.com/Applitools-Dev/sdk/commit/4deea6b1f6f8ec53bd989cd6bbd021cac2ee3c1e))
9
+ * send the old-infra retry in its check's slot | AD-14675 ([#3968](https://github.com/Applitools-Dev/sdk/issues/3968)) ([946b926](https://github.com/Applitools-Dev/sdk/commit/946b92632a511f1ed23f2f65d0382ef8d7177ea7))
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * @applitools/dom-shared bumped to 1.2.2
15
+ #### Bug Fixes
16
+
17
+ * CSP-safe sandbox opt-out for the MV3 extension content script | AD-14808 ([#3969](https://github.com/Applitools-Dev/sdk/issues/3969)) ([772aefa](https://github.com/Applitools-Dev/sdk/commit/772aefaa3e2bc1eb345fa8d3f6c91ad0913f82e7))
18
+ * @applitools/snippets bumped to 2.9.4
19
+ #### Bug Fixes
20
+
21
+ * bound lazyLoad scroll loop to prevent poll-timeout abort | FLD-4680 ([#3972](https://github.com/Applitools-Dev/sdk/issues/3972)) ([4deea6b](https://github.com/Applitools-Dev/sdk/commit/4deea6b1f6f8ec53bd989cd6bbd021cac2ee3c1e))
22
+
23
+
24
+
25
+ * @applitools/dom-snapshot bumped to 4.17.6
26
+
27
+ * @applitools/dom-capture bumped to 11.8.4
28
+
29
+ * @applitools/driver bumped to 1.26.6
30
+
31
+ * @applitools/spec-driver-webdriver bumped to 1.6.6
32
+
33
+ * @applitools/spec-driver-selenium bumped to 1.8.6
34
+
35
+ * @applitools/spec-driver-playwright bumped to 1.9.6
36
+
37
+ * @applitools/spec-driver-puppeteer bumped to 1.8.6
38
+
39
+ * @applitools/screenshoter bumped to 3.12.25
40
+
41
+ * @applitools/nml-client bumped to 1.11.36
42
+
43
+ * @applitools/core-base bumped to 1.36.2
44
+ #### Bug Fixes
45
+
46
+ * guard logEventBatch against a logger-less event ([#4007](https://github.com/Applitools-Dev/sdk/issues/4007)) ([bb8c9b2](https://github.com/Applitools-Dev/sdk/commit/bb8c9b242801e08dd573a77e261d5fb4540cd68e))
47
+ * @applitools/ec-client bumped to 1.12.38
48
+
49
+
50
+ ## [4.66.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.66.0...js/core@4.66.1) (2026-07-08)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * stop UFG old-infra retry after a retry fails | AD-14675 ([#3970](https://github.com/Applitools-Dev/sdk/issues/3970)) ([1531893](https://github.com/Applitools-Dev/sdk/commit/1531893cc9c098f3ade329ceae7164600c184fa5))
56
+
57
+
58
+ ### Dependencies
59
+
60
+ * @applitools/nml-client bumped to 1.11.35
61
+
62
+ * @applitools/core-base bumped to 1.36.1
63
+ #### Bug Fixes
64
+
65
+ * forward Exact match-level tuning to the server across JS + Java | FLD-4685 ([#3974](https://github.com/Applitools-Dev/sdk/issues/3974)) ([fea351c](https://github.com/Applitools-Dev/sdk/commit/fea351c76c80f63bf658d9573b3d34e0537e0cce))
66
+ * @applitools/ec-client bumped to 1.12.37
67
+
68
+
3
69
  ## [4.66.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.65.2...js/core@4.66.0) (2026-06-28)
4
70
 
5
71
 
package/dist/ufg/check.js CHANGED
@@ -39,6 +39,10 @@ const create_render_target_from_snapshot_1 = require("./create-render-target-fro
39
39
  const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
40
40
  const to_old_infra_environment_1 = require("./to-old-infra-environment");
41
41
  function makeCheck({ eyes, target: defaultTarget, environments: defaultEnvironments = [], spec, signal, logger: mainLogger, }) {
42
+ // Sessions whose old-infra retry chain has ended: once a retry doesn't confirm an old-infra match,
43
+ // the backend stops expecting retries, so we must stop sending them. baseEyes is cached per
44
+ // environment, so it is a stable per-session key. See AD-14675.
45
+ const oldInfraRetryDisabled = new WeakSet();
42
46
  return async function check({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
43
47
  var _a;
44
48
  logger = logger.extend(mainLogger);
@@ -188,32 +192,36 @@ function makeCheck({ eyes, target: defaultTarget, environments: defaultEnvironme
188
192
  catch (err) {
189
193
  logger.log('Failed to log invalid check settings', err);
190
194
  }
191
- const checkResult = await baseEyes.check({
195
+ await baseEyes.check({
192
196
  target: { ...baseTarget, isTransformed: true },
193
197
  settings: baseSettings,
194
198
  logger: environmentLogger,
195
- });
196
- if (!checkResult.asExpected && baseEyes.test.shouldRetryWithOldInfra) {
197
- const oldInfraEnvironment = (0, to_old_infra_environment_1.toOldInfraEnvironment)(environment);
198
- if (oldInfraEnvironment) {
199
- // Best-effort: the retry adds an extra render + check, and a transient
200
- // failure there (old browser version unavailable, render timeout, 5xx)
201
- // must not abort the environment — the primary check already recorded
202
- // its step. Swallow and log so the retry can only ever help.
203
- try {
204
- const { target, settings } = await renderForCheck(oldInfraEnvironment);
205
- settings.oldInfraRetry = true;
206
- await baseEyes.check({
207
- target: { ...target, isTransformed: true },
208
- settings,
209
- logger: environmentLogger,
210
- });
211
- }
212
- catch (error) {
213
- environmentLogger.warn('Old-infra retry failed; keeping the primary check result', error);
199
+ // When the backend enabled old-infra retry, re-check a mismatch against the previous
200
+ // browser version in the SAME step slot (so it reaches the backend before the next
201
+ // step's check), and stop once a retry fails — at that point the backend treats the
202
+ // session as non-infra and stops expecting retries. Best-effort: a failed retry render
203
+ // must not abort the environment, since the primary check already recorded its step.
204
+ followup: baseEyes.test.shouldRetryWithOldInfra
205
+ ? async (result, recheck) => {
206
+ if (result.asExpected || oldInfraRetryDisabled.has(baseEyes))
207
+ return;
208
+ const oldInfraEnvironment = (0, to_old_infra_environment_1.toOldInfraEnvironment)(environment);
209
+ if (!oldInfraEnvironment)
210
+ return;
211
+ try {
212
+ const { target, settings } = await renderForCheck(oldInfraEnvironment);
213
+ settings.oldInfraRetry = true;
214
+ const retry = await recheck({ ...target, isTransformed: true }, settings);
215
+ if (!retry.asExpected)
216
+ oldInfraRetryDisabled.add(baseEyes);
217
+ }
218
+ catch (error) {
219
+ oldInfraRetryDisabled.add(baseEyes);
220
+ environmentLogger.warn('Old-infra retry failed; keeping the primary check result', error);
221
+ }
214
222
  }
215
- }
216
- }
223
+ : undefined,
224
+ });
217
225
  }
218
226
  catch (error) {
219
227
  environmentLogger.error(`Render on environment with id "${(_h = baseEyes.test.environment) === null || _h === void 0 ? void 0 : _h.environmentId}" failed due to an error`, error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "4.66.0",
3
+ "version": "4.66.2",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -61,16 +61,16 @@
61
61
  "setup:standalone": "sh -c 'yarn chromedriver --port=4444 --verbose &'"
62
62
  },
63
63
  "dependencies": {
64
- "@applitools/core-base": "1.36.0",
65
- "@applitools/dom-capture": "11.8.3",
66
- "@applitools/dom-snapshot": "4.17.5",
67
- "@applitools/driver": "1.26.5",
68
- "@applitools/ec-client": "1.12.36",
64
+ "@applitools/core-base": "1.36.2",
65
+ "@applitools/dom-capture": "11.8.4",
66
+ "@applitools/dom-snapshot": "4.17.6",
67
+ "@applitools/driver": "1.26.6",
68
+ "@applitools/ec-client": "1.12.38",
69
69
  "@applitools/logger": "2.3.0",
70
- "@applitools/nml-client": "1.11.34",
70
+ "@applitools/nml-client": "1.11.36",
71
71
  "@applitools/req": "1.11.2",
72
- "@applitools/screenshoter": "3.12.24",
73
- "@applitools/snippets": "2.9.3",
72
+ "@applitools/screenshoter": "3.12.25",
73
+ "@applitools/snippets": "2.9.4",
74
74
  "@applitools/socket": "1.3.15",
75
75
  "@applitools/ufg-client": "1.22.5",
76
76
  "@applitools/utils": "1.15.1",
@@ -83,10 +83,10 @@
83
83
  },
84
84
  "devDependencies": {
85
85
  "@applitools/bongo": "^5.10.0",
86
- "@applitools/spec-driver-playwright": "^1.9.5",
87
- "@applitools/spec-driver-puppeteer": "^1.8.5",
88
- "@applitools/spec-driver-selenium": "^1.8.5",
89
- "@applitools/spec-driver-webdriver": "^1.6.5",
86
+ "@applitools/spec-driver-playwright": "^1.9.6",
87
+ "@applitools/spec-driver-puppeteer": "^1.8.6",
88
+ "@applitools/spec-driver-selenium": "^1.8.6",
89
+ "@applitools/spec-driver-webdriver": "^1.6.6",
90
90
  "@applitools/test-server": "^1.4.6",
91
91
  "@applitools/test-utils": "^1.5.17",
92
92
  "@applitools/tunnel-client": "^1.12.2",