@applitools/core 4.65.2 → 4.66.1
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 +85 -0
- package/dist/troubleshoot/ufg.js +4 -0
- package/dist/ufg/check.js +13 -2
- package/dist/utils/extract-git-info.js +1047 -237
- package/package.json +21 -19
- package/types/utils/extract-git-info.d.ts +153 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,90 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.66.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.66.0...js/core@4.66.1) (2026-07-08)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* 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))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* @applitools/nml-client bumped to 1.11.35
|
|
14
|
+
|
|
15
|
+
* @applitools/core-base bumped to 1.36.1
|
|
16
|
+
#### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* 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))
|
|
19
|
+
* @applitools/ec-client bumped to 1.12.37
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [4.66.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.65.2...js/core@4.66.0) (2026-06-28)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* stream SDK logs to Azure Blob per server flag | AD-13401 ([#3849](https://github.com/Applitools-Dev/sdk/issues/3849)) ([7f9dfec](https://github.com/Applitools-Dev/sdk/commit/7f9dfecd874aefc33104db015451a22eee500324))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* updated extract git fallback logic | FLD-4492 ([#3831](https://github.com/Applitools-Dev/sdk/issues/3831)) ([0d98f3c](https://github.com/Applitools-Dev/sdk/commit/0d98f3cdf828eff756ffbfc5d4cdff7b19a20557))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Dependencies
|
|
36
|
+
|
|
37
|
+
* @applitools/utils bumped to 1.15.1
|
|
38
|
+
#### Bug Fixes
|
|
39
|
+
|
|
40
|
+
* updated extract git fallback logic | FLD-4492 ([#3831](https://github.com/Applitools-Dev/sdk/issues/3831)) ([0d98f3c](https://github.com/Applitools-Dev/sdk/commit/0d98f3cdf828eff756ffbfc5d4cdff7b19a20557))
|
|
41
|
+
* @applitools/logger bumped to 2.3.0
|
|
42
|
+
#### Features
|
|
43
|
+
|
|
44
|
+
* stream SDK logs to Azure Blob per server flag | AD-13401 ([#3849](https://github.com/Applitools-Dev/sdk/issues/3849)) ([7f9dfec](https://github.com/Applitools-Dev/sdk/commit/7f9dfecd874aefc33104db015451a22eee500324))
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
* @applitools/dom-snapshot bumped to 4.17.5
|
|
49
|
+
|
|
50
|
+
* @applitools/socket bumped to 1.3.15
|
|
51
|
+
|
|
52
|
+
* @applitools/req bumped to 1.11.2
|
|
53
|
+
|
|
54
|
+
* @applitools/image bumped to 1.2.13
|
|
55
|
+
|
|
56
|
+
* @applitools/dom-capture bumped to 11.8.3
|
|
57
|
+
|
|
58
|
+
* @applitools/driver bumped to 1.26.5
|
|
59
|
+
|
|
60
|
+
* @applitools/spec-driver-webdriver bumped to 1.6.5
|
|
61
|
+
|
|
62
|
+
* @applitools/spec-driver-selenium bumped to 1.8.5
|
|
63
|
+
|
|
64
|
+
* @applitools/spec-driver-playwright bumped to 1.9.5
|
|
65
|
+
|
|
66
|
+
* @applitools/spec-driver-puppeteer bumped to 1.8.5
|
|
67
|
+
|
|
68
|
+
* @applitools/screenshoter bumped to 3.12.24
|
|
69
|
+
|
|
70
|
+
* @applitools/nml-client bumped to 1.11.34
|
|
71
|
+
|
|
72
|
+
* @applitools/tunnel-client bumped to 1.12.2
|
|
73
|
+
|
|
74
|
+
* @applitools/ufg-client bumped to 1.22.5
|
|
75
|
+
|
|
76
|
+
* @applitools/core-base bumped to 1.36.0
|
|
77
|
+
#### Features
|
|
78
|
+
|
|
79
|
+
* stream SDK logs to Azure Blob per server flag | AD-13401 ([#3849](https://github.com/Applitools-Dev/sdk/issues/3849)) ([7f9dfec](https://github.com/Applitools-Dev/sdk/commit/7f9dfecd874aefc33104db015451a22eee500324))
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
* @applitools/ec-client bumped to 1.12.36
|
|
84
|
+
|
|
85
|
+
* @applitools/test-server bumped to 1.4.6
|
|
86
|
+
|
|
87
|
+
|
|
3
88
|
## [4.65.2](https://github.com/Applitools-Dev/sdk/compare/js/core@4.65.1...js/core@4.65.2) (2026-06-18)
|
|
4
89
|
|
|
5
90
|
|
package/dist/troubleshoot/ufg.js
CHANGED
|
@@ -52,6 +52,10 @@ const getAccessToken = (() => {
|
|
|
52
52
|
let accessToken;
|
|
53
53
|
return async () => {
|
|
54
54
|
if (!accessToken) {
|
|
55
|
+
// SECURITY: interpolated args (RENDER_INFO_URL, getProxyCurlArg()) come from
|
|
56
|
+
// trusted config (serverUrl/apiKey/proxy), not user input. Don't add
|
|
57
|
+
// externally-influenced data here without moving to execFile (no shell) to
|
|
58
|
+
// prevent injection — tracked in the follow-up tech-debt ticket.
|
|
55
59
|
const { stdout } = await utils.process.execute(`curl -s ${eyes_1.RENDER_INFO_URL} ${(0, utils_1.getProxyCurlArg)()}`, {
|
|
56
60
|
maxBuffer: 10000000,
|
|
57
61
|
});
|
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);
|
|
@@ -193,7 +197,9 @@ function makeCheck({ eyes, target: defaultTarget, environments: defaultEnvironme
|
|
|
193
197
|
settings: baseSettings,
|
|
194
198
|
logger: environmentLogger,
|
|
195
199
|
});
|
|
196
|
-
if (!checkResult.asExpected &&
|
|
200
|
+
if (!checkResult.asExpected &&
|
|
201
|
+
baseEyes.test.shouldRetryWithOldInfra &&
|
|
202
|
+
!oldInfraRetryDisabled.has(baseEyes)) {
|
|
197
203
|
const oldInfraEnvironment = (0, to_old_infra_environment_1.toOldInfraEnvironment)(environment);
|
|
198
204
|
if (oldInfraEnvironment) {
|
|
199
205
|
// Best-effort: the retry adds an extra render + check, and a transient
|
|
@@ -203,13 +209,18 @@ function makeCheck({ eyes, target: defaultTarget, environments: defaultEnvironme
|
|
|
203
209
|
try {
|
|
204
210
|
const { target, settings } = await renderForCheck(oldInfraEnvironment);
|
|
205
211
|
settings.oldInfraRetry = true;
|
|
206
|
-
await baseEyes.check({
|
|
212
|
+
const retryResult = await baseEyes.check({
|
|
207
213
|
target: { ...target, isTransformed: true },
|
|
208
214
|
settings,
|
|
209
215
|
logger: environmentLogger,
|
|
210
216
|
});
|
|
217
|
+
// A retry that doesn't confirm an old-infra match means the backend now treats the
|
|
218
|
+
// session as non-infra and stops expecting retries — so stop sending them.
|
|
219
|
+
if (!retryResult.asExpected)
|
|
220
|
+
oldInfraRetryDisabled.add(baseEyes);
|
|
211
221
|
}
|
|
212
222
|
catch (error) {
|
|
223
|
+
oldInfraRetryDisabled.add(baseEyes);
|
|
213
224
|
environmentLogger.warn('Old-infra retry failed; keeping the primary check result', error);
|
|
214
225
|
}
|
|
215
226
|
}
|