@applitools/core 4.54.1 → 4.54.3-debug
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 +50 -0
- package/dist/automation/close.js +15 -12
- package/dist/autonomous/core.js +2 -2
- package/dist/offline/run-offline-snapshots.js +3 -1
- package/dist/ufg/take-snapshots.js +14 -0
- package/dist/ufg/utils/to-generated-selectors.js +4 -3
- package/dist/ufg/utils/to-safe-check-settings.js +3 -2
- package/package.json +11 -11
- package/types/autonomous/core.d.ts +2 -1
- package/types/ufg/utils/to-generated-selectors.d.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.54.3](https://github.com/Applitools-Dev/sdk/compare/js/core@4.54.2...js/core@4.54.3) (2026-01-14)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* `close`/`getResults` race condition ([#3450](https://github.com/Applitools-Dev/sdk/issues/3450)) ([2e5437d](https://github.com/Applitools-Dev/sdk/commit/2e5437dcfde6fda58d76227659ee249bfa3885a7))
|
|
9
|
+
|
|
10
|
+
## [4.54.2](https://github.com/Applitools-Dev/sdk/compare/js/core@4.54.1...js/core@4.54.2) (2026-01-11)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* per-API key heartbeat management | FLD-3889 ([#3406](https://github.com/Applitools-Dev/sdk/issues/3406)) ([5d7f380](https://github.com/Applitools-Dev/sdk/commit/5d7f38037f17006dcc923c4a3dc925e8dded25d8))
|
|
16
|
+
* preserve response body in broker handler ([e1bec23](https://github.com/Applitools-Dev/sdk/commit/e1bec23eabf8e8b73db7ec7cd2febb054047f7a7))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Dependencies
|
|
20
|
+
|
|
21
|
+
* @applitools/driver bumped to 1.24.4
|
|
22
|
+
#### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* scrolling element fallback logic | FLD-3959 ([#3442](https://github.com/Applitools-Dev/sdk/issues/3442)) ([36348b4](https://github.com/Applitools-Dev/sdk/commit/36348b46e6a127c99d4ccfa58bf386a8e414fb40))
|
|
25
|
+
* @applitools/nml-client bumped to 1.11.14
|
|
26
|
+
#### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* nml broker retry mechanism | FLD-3968 FLD-3963 FLD-3950 ([#3430](https://github.com/Applitools-Dev/sdk/issues/3430)) ([42617e0](https://github.com/Applitools-Dev/sdk/commit/42617e021f43a89f8a8f2cb914f489ac8d215714))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
* @applitools/dom-snapshot bumped to 4.15.5
|
|
33
|
+
|
|
34
|
+
* @applitools/dom-capture bumped to 11.6.8
|
|
35
|
+
#### Bug Fixes
|
|
36
|
+
|
|
37
|
+
* added support for `font-style` attribute | AD-12435 ([#3458](https://github.com/Applitools-Dev/sdk/issues/3458)) ([f121c2a](https://github.com/Applitools-Dev/sdk/commit/f121c2acdea9285b8b53846466dcb4e2c97820e4))
|
|
38
|
+
* @applitools/spec-driver-webdriver bumped to 1.5.4
|
|
39
|
+
|
|
40
|
+
* @applitools/spec-driver-selenium bumped to 1.7.10
|
|
41
|
+
|
|
42
|
+
* @applitools/spec-driver-puppeteer bumped to 1.6.10
|
|
43
|
+
|
|
44
|
+
* @applitools/screenshoter bumped to 3.12.11
|
|
45
|
+
|
|
46
|
+
* @applitools/core-base bumped to 1.31.1
|
|
47
|
+
#### Bug Fixes
|
|
48
|
+
|
|
49
|
+
* per-API key heartbeat management | FLD-3889 ([#3406](https://github.com/Applitools-Dev/sdk/issues/3406)) ([5d7f380](https://github.com/Applitools-Dev/sdk/commit/5d7f38037f17006dcc923c4a3dc925e8dded25d8))
|
|
50
|
+
* @applitools/ec-client bumped to 1.12.16
|
|
51
|
+
|
|
52
|
+
|
|
3
53
|
## [4.54.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.54.0...js/core@4.54.1) (2025-12-28)
|
|
4
54
|
|
|
5
55
|
|
package/dist/automation/close.js
CHANGED
|
@@ -30,22 +30,25 @@ function makeClose({ eyes, driver, environments: defaultEnvironments, logger: ma
|
|
|
30
30
|
logger.log('Command "close" starting filler tests for environments', settings.environments);
|
|
31
31
|
await Promise.all(uniqueEnvironments.map(environment => eyes.getBaseEyes({ settings: { environment }, logger })));
|
|
32
32
|
}
|
|
33
|
-
eyes.storage.forEach(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const [eyes] = await Promise.all([item.eyes, ...item.jobs]);
|
|
33
|
+
eyes.storage.forEach(item => {
|
|
34
|
+
const closePromise = (async () => {
|
|
35
|
+
var _a, _b;
|
|
37
36
|
try {
|
|
38
|
-
await
|
|
37
|
+
const [eyes] = await Promise.all([item.eyes, ...item.jobs]);
|
|
38
|
+
try {
|
|
39
|
+
await eyes.close({ settings, logger });
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
logger.warn('Command "close" received an error during performing, trying to perform abort instead', error);
|
|
43
|
+
await eyes.abort({ settings, logger });
|
|
44
|
+
}
|
|
39
45
|
}
|
|
40
46
|
catch (error) {
|
|
41
|
-
logger.warn('Command "close" received an error during
|
|
42
|
-
await eyes.abort({ settings, logger });
|
|
47
|
+
logger.warn('Command "close" received an error during waiting for eyes instances in background', error);
|
|
48
|
+
await ((_b = (_a = error.info) === null || _a === void 0 ? void 0 : _a.eyes) === null || _b === void 0 ? void 0 : _b.abort({ settings, logger }));
|
|
43
49
|
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
logger.warn('Command "close" received an error during waiting for eyes instances in background', error);
|
|
47
|
-
await ((_b = (_a = error.info) === null || _a === void 0 ? void 0 : _a.eyes) === null || _b === void 0 ? void 0 : _b.abort({ settings, logger }));
|
|
48
|
-
}
|
|
50
|
+
})();
|
|
51
|
+
item.jobs.push(closePromise);
|
|
49
52
|
});
|
|
50
53
|
};
|
|
51
54
|
}
|
package/dist/autonomous/core.js
CHANGED
|
@@ -12,9 +12,9 @@ const open_eyes_1 = require("./open-eyes");
|
|
|
12
12
|
const open_check_and_close_1 = require("./open-check-and-close");
|
|
13
13
|
const register_default_scripts_1 = require("../ufg/utils/register-default-scripts");
|
|
14
14
|
const calculate_estimated_time_1 = require("./calculate-estimated-time");
|
|
15
|
-
function makeAutonomousCore({ spec, clients, base: defaultBase, asyncCache, agentId = 'core-autonomous', logger: defaultLogger, } = {}) {
|
|
15
|
+
function makeAutonomousCore({ spec, clients, base: defaultBase, asyncCache, fetchConcurrency, agentId = 'core-autonomous', logger: defaultLogger, } = {}) {
|
|
16
16
|
const logger = (0, logger_1.makeLogger)({ logger: defaultLogger, format: { label: 'core-autonomous' } });
|
|
17
|
-
const core = (0, core_1.makeCore)({ spec, clients, base: defaultBase, asyncCache, agentId, logger });
|
|
17
|
+
const core = (0, core_1.makeCore)({ spec, clients, base: defaultBase, asyncCache, fetchConcurrency, agentId, logger });
|
|
18
18
|
return {
|
|
19
19
|
type: 'autonomous',
|
|
20
20
|
takeSnapshots: spec && (0, take_snapshots_1.makeTakeSnapshots)({ core, spec, logger }),
|
|
@@ -339,7 +339,9 @@ async function runOfflineSnapshots(options) {
|
|
|
339
339
|
},
|
|
340
340
|
logger: checkLogger,
|
|
341
341
|
heartbeat: {
|
|
342
|
-
|
|
342
|
+
getOrCreateProcessId() {
|
|
343
|
+
return processId;
|
|
344
|
+
},
|
|
343
345
|
acquire(settings) {
|
|
344
346
|
logger.log('acquire | heartbeat is not used (offline)', settings);
|
|
345
347
|
return processId;
|
|
@@ -27,6 +27,7 @@ function makeTakeSnapshots({ core, spec, signal, logger: mainLogger }) {
|
|
|
27
27
|
const { elementReferencesToMark, getGeneratedSelectors } = (0, to_generated_selectors_1.toGeneratedSelectors)({
|
|
28
28
|
elementReferences,
|
|
29
29
|
logger,
|
|
30
|
+
logDeprecations,
|
|
30
31
|
// dead code - `transformElementReference` was used for NMG but it's not longer used anywhere
|
|
31
32
|
transformElementReference: elementReference => { var _a; return ((0, driver_1.isSelector)(elementReference) && ((_a = spec === null || spec === void 0 ? void 0 : spec.toSimpleCommonSelector) === null || _a === void 0 ? void 0 : _a.call(spec, elementReference))) || undefined; },
|
|
32
33
|
});
|
|
@@ -78,6 +79,7 @@ function makeTakeSnapshots({ core, spec, signal, logger: mainLogger }) {
|
|
|
78
79
|
}
|
|
79
80
|
else {
|
|
80
81
|
// dead code - used for NMG
|
|
82
|
+
logDeprecations('takeSnapshots: taking native snapshots is no longer supported. How did you reach this message? (dead code)');
|
|
81
83
|
const nmlClient = await core.getNMLClient({
|
|
82
84
|
driver,
|
|
83
85
|
settings: { ...account.eyesServer, supportedEnvironmentsUrl: account.supportedEnvironmentsUrl },
|
|
@@ -125,6 +127,18 @@ function makeTakeSnapshots({ core, spec, signal, logger: mainLogger }) {
|
|
|
125
127
|
title,
|
|
126
128
|
userAgent,
|
|
127
129
|
}));
|
|
130
|
+
function logDeprecations(...args) {
|
|
131
|
+
core.logEvent({
|
|
132
|
+
settings: {
|
|
133
|
+
level: 'Error',
|
|
134
|
+
event: {
|
|
135
|
+
type: 'SDK.unreachableCodeReached',
|
|
136
|
+
message: args.join(' '),
|
|
137
|
+
},
|
|
138
|
+
...account.eyesServer,
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
128
142
|
};
|
|
129
143
|
}
|
|
130
144
|
exports.makeTakeSnapshots = makeTakeSnapshots;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toGeneratedSelectors = void 0;
|
|
4
|
-
function toGeneratedSelectors({ elementReferences, logger, transformElementReference, }) {
|
|
4
|
+
function toGeneratedSelectors({ elementReferences, logger, transformElementReference, logDeprecations, }) {
|
|
5
5
|
var _a, _b, _c;
|
|
6
6
|
const elementReferencesToMark = [
|
|
7
7
|
(_a = elementReferences.target) !== null && _a !== void 0 ? _a : [],
|
|
@@ -51,8 +51,9 @@ function toGeneratedSelectors({ elementReferences, logger, transformElementRefer
|
|
|
51
51
|
};
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
else {
|
|
54
|
+
else if (target || scrolling || calculate.length) {
|
|
55
55
|
// the entire else statement should be a dead code that was used for NMG, will be removed later
|
|
56
|
+
logDeprecations('toGeneratedSelectors: `transformElementReference` was unexpectedly called.');
|
|
56
57
|
target = elementReferences.target && transformElementReference(elementReferences.target);
|
|
57
58
|
scrolling = elementReferences.scrolling && transformElementReference(elementReferences.scrolling);
|
|
58
59
|
calculate = ((_c = elementReferences.calculate) !== null && _c !== void 0 ? _c : []).map(elementReference => {
|
|
@@ -61,7 +62,7 @@ function toGeneratedSelectors({ elementReferences, logger, transformElementRefer
|
|
|
61
62
|
return { originalSelector: selector, safeSelector: selector };
|
|
62
63
|
});
|
|
63
64
|
}
|
|
64
|
-
return { target
|
|
65
|
+
return { target, scrolling, calculate };
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
exports.toGeneratedSelectors = toGeneratedSelectors;
|
|
@@ -47,9 +47,10 @@ function toSafeCheckSettings({ settings }) {
|
|
|
47
47
|
const { region, ...options } = utils.types.has(reference, 'region') ? reference : { region: reference };
|
|
48
48
|
if (isRegion(region))
|
|
49
49
|
return reference;
|
|
50
|
-
const
|
|
51
|
-
if (!safeSelector)
|
|
50
|
+
const selectorInfo = selectors.calculate.shift();
|
|
51
|
+
if (!(selectorInfo === null || selectorInfo === void 0 ? void 0 : selectorInfo.safeSelector))
|
|
52
52
|
return [];
|
|
53
|
+
const { originalSelector, safeSelector } = selectorInfo;
|
|
53
54
|
return {
|
|
54
55
|
region: safeSelector,
|
|
55
56
|
regionId: utils.types.isString(originalSelector) ? originalSelector : originalSelector === null || originalSelector === void 0 ? void 0 : originalSelector.selector,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "4.54.
|
|
3
|
+
"version": "4.54.3-debug",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -80,18 +80,18 @@
|
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
82
|
"dependencies": {
|
|
83
|
-
"@applitools/core-base": "1.31.
|
|
84
|
-
"@applitools/dom-capture": "11.6.
|
|
85
|
-
"@applitools/dom-snapshot": "4.15.
|
|
86
|
-
"@applitools/driver": "1.24.
|
|
87
|
-
"@applitools/ec-client": "1.12.
|
|
83
|
+
"@applitools/core-base": "1.31.1",
|
|
84
|
+
"@applitools/dom-capture": "11.6.8",
|
|
85
|
+
"@applitools/dom-snapshot": "4.15.5",
|
|
86
|
+
"@applitools/driver": "1.24.4",
|
|
87
|
+
"@applitools/ec-client": "1.12.16",
|
|
88
88
|
"@applitools/logger": "2.2.7",
|
|
89
|
-
"@applitools/nml-client": "1.11.
|
|
89
|
+
"@applitools/nml-client": "1.11.14",
|
|
90
90
|
"@applitools/req": "1.8.7",
|
|
91
|
-
"@applitools/screenshoter": "3.12.
|
|
91
|
+
"@applitools/screenshoter": "3.12.11",
|
|
92
92
|
"@applitools/snippets": "2.7.0",
|
|
93
93
|
"@applitools/socket": "1.3.8",
|
|
94
|
-
"@applitools/spec-driver-webdriver": "1.5.
|
|
94
|
+
"@applitools/spec-driver-webdriver": "1.5.4",
|
|
95
95
|
"@applitools/ufg-client": "1.18.3",
|
|
96
96
|
"@applitools/utils": "1.14.1",
|
|
97
97
|
"@types/ws": "8.5.5",
|
|
@@ -107,8 +107,8 @@
|
|
|
107
107
|
"devDependencies": {
|
|
108
108
|
"@applitools/bongo": "^5.10.0",
|
|
109
109
|
"@applitools/sea": "^1.0.0",
|
|
110
|
-
"@applitools/spec-driver-puppeteer": "^1.6.
|
|
111
|
-
"@applitools/spec-driver-selenium": "^1.7.
|
|
110
|
+
"@applitools/spec-driver-puppeteer": "^1.6.10",
|
|
111
|
+
"@applitools/spec-driver-selenium": "^1.7.10",
|
|
112
112
|
"@applitools/test-server": "^1.3.5",
|
|
113
113
|
"@applitools/test-utils": "^1.5.17",
|
|
114
114
|
"@applitools/tunnel-client": "^1.11.5",
|
|
@@ -12,8 +12,9 @@ type Options<TSpec extends SpecType> = {
|
|
|
12
12
|
};
|
|
13
13
|
base?: BaseCore;
|
|
14
14
|
asyncCache?: AsyncCache;
|
|
15
|
+
fetchConcurrency?: number;
|
|
15
16
|
agentId?: string;
|
|
16
17
|
logger?: Logger;
|
|
17
18
|
};
|
|
18
|
-
export declare function makeAutonomousCore<TSpec extends SpecType>({ spec, clients, base: defaultBase, asyncCache, agentId, logger: defaultLogger, }?: Options<TSpec>): AutonomousCore<TSpec>;
|
|
19
|
+
export declare function makeAutonomousCore<TSpec extends SpecType>({ spec, clients, base: defaultBase, asyncCache, fetchConcurrency, agentId, logger: defaultLogger, }?: Options<TSpec>): AutonomousCore<TSpec>;
|
|
19
20
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type SpecType, type ElementReference } from '@applitools/driver';
|
|
2
2
|
import type { Logger } from '@applitools/logger';
|
|
3
3
|
import { type Selector as UFGSelector } from '@applitools/ufg-client';
|
|
4
|
-
export declare function toGeneratedSelectors<TSpec extends SpecType>({ elementReferences, logger, transformElementReference, }: {
|
|
4
|
+
export declare function toGeneratedSelectors<TSpec extends SpecType>({ elementReferences, logger, transformElementReference, logDeprecations, }: {
|
|
5
5
|
elementReferences: {
|
|
6
6
|
target?: ElementReference<TSpec>;
|
|
7
7
|
scrolling?: ElementReference<TSpec>;
|
|
@@ -9,6 +9,7 @@ export declare function toGeneratedSelectors<TSpec extends SpecType>({ elementRe
|
|
|
9
9
|
};
|
|
10
10
|
transformElementReference: (elementReference: ElementReference<TSpec>) => UFGSelector | undefined;
|
|
11
11
|
logger: Logger;
|
|
12
|
+
logDeprecations: (...args: string[]) => void;
|
|
12
13
|
}): {
|
|
13
14
|
elementReferencesToMark: (string | TSpec["element"] | TSpec["secondary"]["element"] | TSpec["selector"] | TSpec["secondary"]["selector"] | {
|
|
14
15
|
selector: string | TSpec["selector"] | TSpec["secondary"]["selector"];
|