@applitools/core 4.69.0 → 4.69.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,91 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.69.2](https://github.com/Applitools-Dev/sdk/compare/js/core@4.69.1...js/core@4.69.2) (2026-08-30)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* don't send the bare branch name under an scm integration | AD-15642 ([#4140](https://github.com/Applitools-Dev/sdk/issues/4140)) ([41c30b9](https://github.com/Applitools-Dev/sdk/commit/41c30b9999488ebc635528476888a5fc239654a8))
|
|
9
|
+
* resolve native iOS viewport in screen space | FLD-4552 ([#4088](https://github.com/Applitools-Dev/sdk/issues/4088)) ([e2f9b03](https://github.com/Applitools-Dev/sdk/commit/e2f9b030103c066faac45d69f98cee265a0a931a))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Dependencies
|
|
13
|
+
|
|
14
|
+
* @applitools/dom-snapshot bumped to 4.18.2
|
|
15
|
+
#### Performance Improvements
|
|
16
|
+
|
|
17
|
+
* emit adopted stylesheets as placeholder nodes | AD-15243 ([#4118](https://github.com/Applitools-Dev/sdk/issues/4118)) ([7486bbb](https://github.com/Applitools-Dev/sdk/commit/7486bbbc6f599d1de499e031a59eb4502de8b6b1))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
* @applitools/driver bumped to 1.26.10
|
|
22
|
+
#### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* resolve native iOS viewport in screen space | FLD-4552 ([#4088](https://github.com/Applitools-Dev/sdk/issues/4088)) ([e2f9b03](https://github.com/Applitools-Dev/sdk/commit/e2f9b030103c066faac45d69f98cee265a0a931a))
|
|
25
|
+
* @applitools/screenshoter bumped to 3.12.31
|
|
26
|
+
#### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* resolve native iOS viewport in screen space | FLD-4552 ([#4088](https://github.com/Applitools-Dev/sdk/issues/4088)) ([e2f9b03](https://github.com/Applitools-Dev/sdk/commit/e2f9b030103c066faac45d69f98cee265a0a931a))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
* @applitools/ufg-client bumped to 1.23.3
|
|
33
|
+
#### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* extract css dependencies in chunks past the parser's offset limit | FLD-4643 ([#4134](https://github.com/Applitools-Dev/sdk/issues/4134)) ([1ffdc7b](https://github.com/Applitools-Dev/sdk/commit/1ffdc7bc7e1384bfc18ae9a1d5afbf7c342f8f40))
|
|
36
|
+
* @applitools/spec-driver-webdriver bumped to 1.6.10
|
|
37
|
+
|
|
38
|
+
* @applitools/spec-driver-selenium bumped to 1.8.10
|
|
39
|
+
|
|
40
|
+
* @applitools/spec-driver-playwright bumped to 1.9.10
|
|
41
|
+
|
|
42
|
+
* @applitools/spec-driver-puppeteer bumped to 1.8.10
|
|
43
|
+
|
|
44
|
+
* @applitools/nml-client bumped to 1.12.2
|
|
45
|
+
|
|
46
|
+
* @applitools/ec-client bumped to 1.12.45
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## [4.69.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.69.0...js/core@4.69.1) (2026-08-23)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
* keep the figma access token out of logs when masking is enabled | AD-15515 ([#4062](https://github.com/Applitools-Dev/sdk/issues/4062)) ([17bc177](https://github.com/Applitools-Dev/sdk/commit/17bc17789d88e2d92f32c66c3a43acb14eec4a70))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
### Performance Improvements
|
|
58
|
+
|
|
59
|
+
* CDT node dedup pass | AD-15243 ([baeab05](https://github.com/Applitools-Dev/sdk/commit/baeab05507e12d4d499050cd770191ef3cd9d0df))
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
### Dependencies
|
|
63
|
+
|
|
64
|
+
* @applitools/dom-snapshot bumped to 4.18.1
|
|
65
|
+
#### Performance Improvements
|
|
66
|
+
|
|
67
|
+
* CDT node dedup pass | AD-15243 ([baeab05](https://github.com/Applitools-Dev/sdk/commit/baeab05507e12d4d499050cd770191ef3cd9d0df))
|
|
68
|
+
* @applitools/socket bumped to 1.3.17
|
|
69
|
+
#### Bug Fixes
|
|
70
|
+
|
|
71
|
+
* keep the figma access token out of logs when masking is enabled | AD-15515 ([#4062](https://github.com/Applitools-Dev/sdk/issues/4062)) ([17bc177](https://github.com/Applitools-Dev/sdk/commit/17bc17789d88e2d92f32c66c3a43acb14eec4a70))
|
|
72
|
+
* @applitools/image bumped to 1.3.2
|
|
73
|
+
#### Bug Fixes
|
|
74
|
+
|
|
75
|
+
* bump sharp to ^0.35.3 to clear libvips advisories | FLD-4829 ([#4113](https://github.com/Applitools-Dev/sdk/issues/4113)) ([90c2d08](https://github.com/Applitools-Dev/sdk/commit/90c2d0824cf3dfe56a074800907da6eb940ba350))
|
|
76
|
+
* @applitools/screenshoter bumped to 3.12.30
|
|
77
|
+
|
|
78
|
+
* @applitools/nml-client bumped to 1.12.1
|
|
79
|
+
|
|
80
|
+
* @applitools/tunnel-client bumped to 1.12.4
|
|
81
|
+
|
|
82
|
+
* @applitools/ufg-client bumped to 1.23.2
|
|
83
|
+
|
|
84
|
+
* @applitools/core-base bumped to 1.38.2
|
|
85
|
+
|
|
86
|
+
* @applitools/ec-client bumped to 1.12.44
|
|
87
|
+
|
|
88
|
+
|
|
3
89
|
## [4.69.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.68.1...js/core@4.69.0) (2026-08-19)
|
|
4
90
|
|
|
5
91
|
|
package/dist/figma/seam.js
CHANGED
|
@@ -59,8 +59,10 @@ async function applyFigmaBaselines(settings, logger, resolve = figma_1.setFigmaB
|
|
|
59
59
|
// A long TTL lets a pre-warmed cache (committed fixtures) serve through the normal cache-hit path
|
|
60
60
|
// instead of the all-or-nothing skipApi bypass. Number.isFinite also rejects a non-numeric env value.
|
|
61
61
|
const nodesCacheTtlSeconds = (_d = figmaOptions.nodesCacheTtlSeconds) !== null && _d !== void 0 ? _d : envTtl;
|
|
62
|
-
// Registered with the logger the way apiKey/secretToken are elsewhere
|
|
63
|
-
//
|
|
62
|
+
// Registered with the logger the way apiKey/secretToken are elsewhere. Masking is process-wide but
|
|
63
|
+
// takes effect only from this point on, and only when it is enabled (`maskLog` /
|
|
64
|
+
// APPLITOOLS_MASK_LOG). Log lines written before open reaches this seam — the universal socket's
|
|
65
|
+
// payload logs, for one — register the token themselves.
|
|
64
66
|
const accessToken = (_e = figmaOptions.accessToken) !== null && _e !== void 0 ? _e : process.env.FIGMA_ACCESS_TOKEN;
|
|
65
67
|
if (accessToken)
|
|
66
68
|
logger.mask(accessToken);
|
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.runOfflineSnapshots = void 0;
|
|
29
|
+
exports.runOfflineSnapshots = exports.toEyesServerSettings = void 0;
|
|
30
30
|
const fs_1 = __importDefault(require("fs"));
|
|
31
31
|
const path_1 = __importDefault(require("path"));
|
|
32
32
|
const core_1 = require("../core");
|
|
@@ -43,6 +43,22 @@ const os_1 = __importDefault(require("os"));
|
|
|
43
43
|
const extract_git_info_1 = require("../utils/extract-git-info");
|
|
44
44
|
const open_eyes_1 = require("../open-eyes");
|
|
45
45
|
const throttledReadFile = (0, throat_1.default)(Number(process.env.APPLITOOLS_FILE_READING_CONCURRENCY) || 1000, fs_1.default.promises.readFile);
|
|
46
|
+
/**
|
|
47
|
+
* @internal
|
|
48
|
+
* The settings a replay run hands to `getAccountInfo`, which logs them, and the sanitized config the
|
|
49
|
+
* run works with afterwards. `figmaBaselines`/`figmaOptions` are off-the-wire open config and
|
|
50
|
+
* `figmaOptions.accessToken` is a Figma credential; the open-eyes seam that strips them is bypassed by
|
|
51
|
+
* replay, and no mask is registered on this path, so both the flattened open config and the nested
|
|
52
|
+
* `config` are stripped here — spreading `options` re-introduces `config.open` in full otherwise.
|
|
53
|
+
*/
|
|
54
|
+
function toEyesServerSettings(options) {
|
|
55
|
+
const open = { ...options.config.open };
|
|
56
|
+
delete open.figmaBaselines;
|
|
57
|
+
delete open.figmaOptions;
|
|
58
|
+
const config = { ...options.config, open };
|
|
59
|
+
return { ...open, ...options, config };
|
|
60
|
+
}
|
|
61
|
+
exports.toEyesServerSettings = toEyesServerSettings;
|
|
46
62
|
function getConsoleLogLimit() {
|
|
47
63
|
var _a;
|
|
48
64
|
return (_a = utils.general.getEnvValue('OFFLINE_LOG_LIMIT', 'number')) !== null && _a !== void 0 ? _a : 20;
|
|
@@ -64,13 +80,8 @@ async function runOfflineSnapshots(options) {
|
|
|
64
80
|
const offlineLocationPath = path_1.default.resolve(options.offlineLocationPath);
|
|
65
81
|
const startTime = Date.now();
|
|
66
82
|
const logger = (_a = options.logger) !== null && _a !== void 0 ? _a : (0, logger_1.makeLogger)({ format: { label: 'offline-exec' } });
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
// token, and getAccountInfo logs the settings it is called with.
|
|
70
|
-
const openConfig = { ...options.config.open };
|
|
71
|
-
delete openConfig.figmaBaselines;
|
|
72
|
-
delete openConfig.figmaOptions;
|
|
73
|
-
const eyesServerSettings = { ...openConfig, ...options };
|
|
83
|
+
const eyesServerSettings = toEyesServerSettings(options);
|
|
84
|
+
const config = eyesServerSettings.config;
|
|
74
85
|
const core = (0, core_1.makeCore)({ agentId: `js/core-offline/${version()}`, logger });
|
|
75
86
|
const account = await core.getAccountInfo({ settings: eyesServerSettings });
|
|
76
87
|
const ufgClient = await (0, get_ufg_client_1.makeGetUFGClient)({ logger })({
|
|
@@ -97,7 +108,7 @@ async function runOfflineSnapshots(options) {
|
|
|
97
108
|
testResults: allTestResults,
|
|
98
109
|
totalTime: Date.now() - startTime,
|
|
99
110
|
jsonFilePath: options.jsonFilePath,
|
|
100
|
-
saveNewTests:
|
|
111
|
+
saveNewTests: config.close.updateBaselineIfNew,
|
|
101
112
|
});
|
|
102
113
|
if (!isSuccess.onErrors && options.failOnError) {
|
|
103
114
|
throw new Error(outputStr);
|
|
@@ -118,7 +129,7 @@ async function runOfflineSnapshots(options) {
|
|
|
118
129
|
const fileOpenSettings = await fs_1.default.promises
|
|
119
130
|
.readFile(path_1.default.join(testPath, 'settings.json'), 'utf-8')
|
|
120
131
|
.then(JSON.parse);
|
|
121
|
-
const openSettings = (0, merge_configs_1.mergeConfigs)(fileOpenSettings,
|
|
132
|
+
const openSettings = (0, merge_configs_1.mergeConfigs)(fileOpenSettings, config.open);
|
|
122
133
|
messages.push(`Running test: ${openSettings.testName} (${formatEnvironment(openSettings.environment)})`);
|
|
123
134
|
return { testPath, openSettings, testLogger };
|
|
124
135
|
});
|
|
@@ -138,7 +149,7 @@ async function runOfflineSnapshots(options) {
|
|
|
138
149
|
const batchIds = [...new Set(results.map(t => t.batchId))];
|
|
139
150
|
const allTestResults = results.map(t => t.results);
|
|
140
151
|
logger.log('done running all tests', allTestResults);
|
|
141
|
-
const keepBatchOpen = utils.general.getEnvValue('DONT_CLOSE_BATCHES', 'boolean') ||
|
|
152
|
+
const keepBatchOpen = utils.general.getEnvValue('DONT_CLOSE_BATCHES', 'boolean') || config.open.keepBatchOpen;
|
|
142
153
|
if (!keepBatchOpen) {
|
|
143
154
|
await core.closeBatch({ settings: batchIds.map(batchId => ({ batchId, ...account.eyesServer })) });
|
|
144
155
|
logger.log('done closing batches');
|
|
@@ -218,7 +229,7 @@ async function runOfflineSnapshots(options) {
|
|
|
218
229
|
const closeSettingsPath = path_1.default.resolve(testPath, 'close.json');
|
|
219
230
|
if (fs_1.default.existsSync(closeSettingsPath)) {
|
|
220
231
|
const fileCloseSettings = await throttledReadFile(closeSettingsPath, 'utf-8').then(JSON.parse);
|
|
221
|
-
const closeSettings = (0, merge_configs_1.mergeConfigs)(fileCloseSettings,
|
|
232
|
+
const closeSettings = (0, merge_configs_1.mergeConfigs)(fileCloseSettings, config.close);
|
|
222
233
|
return closeSettings;
|
|
223
234
|
}
|
|
224
235
|
return undefined;
|
|
@@ -381,7 +392,7 @@ async function runOfflineSnapshots(options) {
|
|
|
381
392
|
if (accessibilityReportOptions === null || accessibilityReportOptions === void 0 ? void 0 : accessibilityReportOptions.uploadUrl)
|
|
382
393
|
(_b = baseTarget.accessibilityReportLocation) !== null && _b !== void 0 ? _b : (baseTarget.accessibilityReportLocation = accessibilityReportOptions.uploadUrl);
|
|
383
394
|
// baseTarget.name = snapshot.title // TODO figure out
|
|
384
|
-
const mergedCheckSettings = (0, merge_configs_1.mergeConfigs)(baseSettings,
|
|
395
|
+
const mergedCheckSettings = (0, merge_configs_1.mergeConfigs)(baseSettings, config.check);
|
|
385
396
|
return { mergedCheckSettings, baseTarget };
|
|
386
397
|
}
|
|
387
398
|
async function logStartupInfo() {
|
|
@@ -398,7 +409,7 @@ async function runOfflineSnapshots(options) {
|
|
|
398
409
|
testCount: testFolders.length,
|
|
399
410
|
ufgServerUrl: account.ufgServer.ufgServerUrl,
|
|
400
411
|
CI: process.env.CI,
|
|
401
|
-
config
|
|
412
|
+
config,
|
|
402
413
|
driver: {
|
|
403
414
|
platform: os_1.default.platform(),
|
|
404
415
|
version: os_1.default.release(),
|
package/dist/open-eyes.js
CHANGED
|
@@ -60,8 +60,8 @@ exports.sanitizeFinding = sanitizeFinding;
|
|
|
60
60
|
function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDuplicateTests, core, cores, spec, environment, logger: mainLogger, asyncCache, concurrency, useServerConcurrency = false, cwd = process.cwd(), }) {
|
|
61
61
|
let shouldPrintConcurrencyWarning = true;
|
|
62
62
|
return async function openEyes({ type = defaultType, settings: openSettings, config, target, logger = mainLogger, }) {
|
|
63
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
64
|
-
var
|
|
63
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
|
|
64
|
+
var _4, _5, _6, _7, _8;
|
|
65
65
|
logger = logger.extend(mainLogger, { tags: [`eyes-${type}-${utils.general.shortid()}`] });
|
|
66
66
|
logger.log(`Opening Eyes in directory "${cwd}"`);
|
|
67
67
|
const settings = { environments: config === null || config === void 0 ? void 0 : config.check.environments, ...config === null || config === void 0 ? void 0 : config.open, ...openSettings };
|
|
@@ -70,11 +70,11 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
|
|
|
70
70
|
logger.mask(eyesServerSettings.eyesServerUrl);
|
|
71
71
|
(_a = settings.userTestId) !== null && _a !== void 0 ? _a : (settings.userTestId = `${settings.testName}--${utils.general.guid()}`);
|
|
72
72
|
settings.batch = { ...batch, ...settings.batch };
|
|
73
|
-
(_b = (
|
|
74
|
-
(_d = (
|
|
75
|
-
(_e = (
|
|
76
|
-
(_f = (
|
|
77
|
-
(_g = (
|
|
73
|
+
(_b = (_4 = settings.batch).id) !== null && _b !== void 0 ? _b : (_4.id = (_c = utils.general.getEnvValue('BATCH_ID')) !== null && _c !== void 0 ? _c : `generated-${utils.general.guid()}`);
|
|
74
|
+
(_d = (_5 = settings.batch).buildId) !== null && _d !== void 0 ? _d : (_5.buildId = utils.general.getEnvValue('BATCH_BUILD_ID'));
|
|
75
|
+
(_e = (_6 = settings.batch).name) !== null && _e !== void 0 ? _e : (_6.name = utils.general.getEnvValue('BATCH_NAME'));
|
|
76
|
+
(_f = (_7 = settings.batch).sequenceName) !== null && _f !== void 0 ? _f : (_7.sequenceName = utils.general.getEnvValue('BATCH_SEQUENCE'));
|
|
77
|
+
(_g = (_8 = settings.batch).notifyOnCompletion) !== null && _g !== void 0 ? _g : (_8.notifyOnCompletion = utils.general.getEnvValue('BATCH_NOTIFY', 'boolean'));
|
|
78
78
|
(_h = settings.keepBatchOpen) !== null && _h !== void 0 ? _h : (settings.keepBatchOpen = utils.general.getEnvValue('DONT_CLOSE_BATCHES', 'boolean'));
|
|
79
79
|
(_j = settings.branchName) !== null && _j !== void 0 ? _j : (settings.branchName = (_k = utils.general.getEnvValue('BRANCH')) !== null && _k !== void 0 ? _k : utils.general.getEnvValue('BRANCH_NAME'));
|
|
80
80
|
(_l = settings.parentBranchName) !== null && _l !== void 0 ? _l : (settings.parentBranchName = (_m = utils.general.getEnvValue('PARENT_BRANCH')) !== null && _m !== void 0 ? _m : utils.general.getEnvValue('PARENT_BRANCH_NAME'));
|
|
@@ -90,14 +90,18 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
|
|
|
90
90
|
logger.warn(`latestCommitInfo.timestamp is an invalid ISO date string: ${settings.latestCommitInfo.timestamp}`);
|
|
91
91
|
settings.latestCommitInfo = undefined;
|
|
92
92
|
}
|
|
93
|
+
// Bare git refs from the scm integration. Kept out of `settings` because that pair is the
|
|
94
|
+
// session's identity on the wire; these are only a `git merge-base` argument.
|
|
95
|
+
let scmGitRefs;
|
|
93
96
|
if (process.env.CI && (isRealBatchId(settings.batch.id) || settings.latestCommitInfo)) {
|
|
94
|
-
await populateAutoScmInfo(isRealBatchId(settings.batch.id) ? settings.batch.id : settings.latestCommitInfo.sha);
|
|
97
|
+
scmGitRefs = await populateAutoScmInfo(isRealBatchId(settings.batch.id) ? settings.batch.id : settings.latestCommitInfo.sha);
|
|
95
98
|
}
|
|
96
99
|
if (settings.ignoreGitBranching) {
|
|
97
100
|
settings.gitBranchingTimestamp = undefined;
|
|
98
101
|
}
|
|
99
102
|
else if (!settings.gitBranchingTimestamp) {
|
|
100
|
-
const
|
|
103
|
+
const branchName = (_x = settings.branchName) !== null && _x !== void 0 ? _x : scmGitRefs === null || scmGitRefs === void 0 ? void 0 : scmGitRefs.branchName;
|
|
104
|
+
const parentBranchName = (_y = settings.parentBranchName) !== null && _y !== void 0 ? _y : scmGitRefs === null || scmGitRefs === void 0 ? void 0 : scmGitRefs.parentBranchName;
|
|
101
105
|
if (branchName && parentBranchName && branchName !== parentBranchName) {
|
|
102
106
|
settings.gitBranchingTimestamp = await (0, extract_git_info_1.extractBranchingTimestamp)({
|
|
103
107
|
branchName,
|
|
@@ -112,7 +116,7 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
|
|
|
112
116
|
settings.gitBranchingTimestamp = undefined;
|
|
113
117
|
}
|
|
114
118
|
await (0, seam_1.applyFigmaBaselines)(settings, logger);
|
|
115
|
-
(
|
|
119
|
+
(_z = settings.bypassCSP) !== null && _z !== void 0 ? _z : (settings.bypassCSP = utils.general.getEnvValue('BYPASS_CSP', 'boolean') === true || undefined);
|
|
116
120
|
const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }));
|
|
117
121
|
if (settings.bypassCSP) {
|
|
118
122
|
logger.warn('CSP bypass is enabled.');
|
|
@@ -121,11 +125,11 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
|
|
|
121
125
|
const driverEnvironment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
|
|
122
126
|
const driverUrl = await (driver === null || driver === void 0 ? void 0 : driver.getDriverUrl());
|
|
123
127
|
const multiDeviceTargets = [];
|
|
124
|
-
for (const checkEnv of (
|
|
125
|
-
if (utils.types.has(checkEnv, 'iosDeviceInfo') && ((
|
|
128
|
+
for (const checkEnv of (_0 = settings.environments) !== null && _0 !== void 0 ? _0 : []) {
|
|
129
|
+
if (utils.types.has(checkEnv, 'iosDeviceInfo') && ((_1 = driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.applitoolsLib) === null || _1 === void 0 ? void 0 : _1.instrumented)) {
|
|
126
130
|
multiDeviceTargets.push({
|
|
127
131
|
deviceInfo: checkEnv.iosDeviceInfo.deviceName,
|
|
128
|
-
orientation: (
|
|
132
|
+
orientation: (_2 = checkEnv.iosDeviceInfo.screenOrientation) !== null && _2 !== void 0 ? _2 : 'portrait',
|
|
129
133
|
});
|
|
130
134
|
}
|
|
131
135
|
}
|
|
@@ -155,7 +159,7 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
|
|
|
155
159
|
browserVersion: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.browserVersion,
|
|
156
160
|
platformName: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.platformName,
|
|
157
161
|
platformVersion: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.platformVersion,
|
|
158
|
-
isApplitoolsLib: (
|
|
162
|
+
isApplitoolsLib: (_3 = driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.applitoolsLib) === null || _3 === void 0 ? void 0 : _3.instrumented,
|
|
159
163
|
isEC: driverEnvironment === null || driverEnvironment === void 0 ? void 0 : driverEnvironment.isEC,
|
|
160
164
|
},
|
|
161
165
|
driverUrl,
|
|
@@ -193,8 +197,8 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
|
|
|
193
197
|
}); // TODO solve the types issue
|
|
194
198
|
/////// END FUNCTION BODY ///////////////////
|
|
195
199
|
async function populateAutoScmInfo(batchId) {
|
|
196
|
-
var _a, _b
|
|
197
|
-
var
|
|
200
|
+
var _a, _b;
|
|
201
|
+
var _c;
|
|
198
202
|
const branchName = await (0, extract_git_info_1.extractGitBranch)({ execOptions: { cwd }, logger });
|
|
199
203
|
const { owner: repoOwner, name: repoName } = await (0, extract_git_info_1.extractGitRepo)({ execOptions: { cwd }, logger });
|
|
200
204
|
const buildId = await (0, extract_git_info_1.extractBuildIdFromCI)();
|
|
@@ -210,10 +214,10 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
|
|
|
210
214
|
if (scmInfo) {
|
|
211
215
|
(_a = settings.batch) !== null && _a !== void 0 ? _a : (settings.batch = {});
|
|
212
216
|
settings.batch.id = isRealBatchId(settings.batch.id) ? settings.batch.id : batchId;
|
|
213
|
-
(_b = (
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
|
|
217
|
+
(_b = (_c = settings.batch).buildId) !== null && _b !== void 0 ? _b : (_c.buildId = buildId);
|
|
218
|
+
// Not setting branchName/parentBranchName is the point: the session's value overrides
|
|
219
|
+
// the batch's qualified name (SessionStartInfo.GetBranchName), which the merge keys on.
|
|
220
|
+
return { branchName: scmInfo.scmSourceBranch, parentBranchName: scmInfo.scmTargetBranch };
|
|
217
221
|
}
|
|
218
222
|
}
|
|
219
223
|
else {
|
|
@@ -50,6 +50,7 @@ async function takeDomSnapshot({ context, settings, logger, }) {
|
|
|
50
50
|
skipRootHtmlResource: settings === null || settings === void 0 ? void 0 : settings.skipRootHtmlResource,
|
|
51
51
|
fetchConcurrency: settings === null || settings === void 0 ? void 0 : settings.fetchConcurrency,
|
|
52
52
|
removeReverseProxyURLPrefixes: Boolean(process.env.APPLITOOLS_SCRIPT_REMOVE_REVERSE_PROXY_URL_PREFIXES),
|
|
53
|
+
skipCDTDedup: utils.general.getEnvValue('SKIP_CDT_DEDUP', 'boolean'),
|
|
53
54
|
chunkByteLength: (_a = settings === null || settings === void 0 ? void 0 : settings.chunkByteLength) !== null && _a !== void 0 ? _a : (Number(process.env.APPLITOOLS_SCRIPT_RESULT_MAX_BYTE_LENGTH) ||
|
|
54
55
|
(environment.isIOS ? 100000 : 250 * 1024 * 1024)),
|
|
55
56
|
serializeResources: true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "4.69.
|
|
3
|
+
"version": "4.69.2",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
|
|
@@ -61,19 +61,19 @@
|
|
|
61
61
|
"setup:standalone": "sh -c 'yarn chromedriver --port=4444 --verbose &'"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@applitools/core-base": "1.38.
|
|
64
|
+
"@applitools/core-base": "1.38.2",
|
|
65
65
|
"@applitools/dom-capture": "11.8.5",
|
|
66
|
-
"@applitools/dom-snapshot": "4.18.
|
|
67
|
-
"@applitools/driver": "1.26.
|
|
68
|
-
"@applitools/ec-client": "1.12.
|
|
69
|
-
"@applitools/image": "1.3.
|
|
66
|
+
"@applitools/dom-snapshot": "4.18.2",
|
|
67
|
+
"@applitools/driver": "1.26.10",
|
|
68
|
+
"@applitools/ec-client": "1.12.45",
|
|
69
|
+
"@applitools/image": "1.3.2",
|
|
70
70
|
"@applitools/logger": "2.3.1",
|
|
71
|
-
"@applitools/nml-client": "1.12.
|
|
71
|
+
"@applitools/nml-client": "1.12.2",
|
|
72
72
|
"@applitools/req": "1.11.3",
|
|
73
|
-
"@applitools/screenshoter": "3.12.
|
|
73
|
+
"@applitools/screenshoter": "3.12.31",
|
|
74
74
|
"@applitools/snippets": "2.9.7",
|
|
75
|
-
"@applitools/socket": "1.3.
|
|
76
|
-
"@applitools/ufg-client": "1.23.
|
|
75
|
+
"@applitools/socket": "1.3.17",
|
|
76
|
+
"@applitools/ufg-client": "1.23.3",
|
|
77
77
|
"@applitools/utils": "1.15.2",
|
|
78
78
|
"abort-controller": "3.0.0",
|
|
79
79
|
"chalk": "4.1.2",
|
|
@@ -84,13 +84,13 @@
|
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@applitools/bongo": "^5.10.0",
|
|
87
|
-
"@applitools/spec-driver-playwright": "^1.9.
|
|
88
|
-
"@applitools/spec-driver-puppeteer": "^1.8.
|
|
89
|
-
"@applitools/spec-driver-selenium": "^1.8.
|
|
90
|
-
"@applitools/spec-driver-webdriver": "^1.6.
|
|
87
|
+
"@applitools/spec-driver-playwright": "^1.9.10",
|
|
88
|
+
"@applitools/spec-driver-puppeteer": "^1.8.10",
|
|
89
|
+
"@applitools/spec-driver-selenium": "^1.8.10",
|
|
90
|
+
"@applitools/spec-driver-webdriver": "^1.6.10",
|
|
91
91
|
"@applitools/test-server": "^1.4.7",
|
|
92
92
|
"@applitools/test-utils": "^1.5.17",
|
|
93
|
-
"@applitools/tunnel-client": "^1.12.
|
|
93
|
+
"@applitools/tunnel-client": "^1.12.4",
|
|
94
94
|
"@swc-node/register": "^1.6.8",
|
|
95
95
|
"@types/mocha": "^10.0.7",
|
|
96
96
|
"@types/node": "^12.20.55",
|
|
@@ -10,4 +10,15 @@ export type OfflineSnapshotsSettings = EyesServerSettings & {
|
|
|
10
10
|
logger?: Logger;
|
|
11
11
|
jsonFilePath?: string;
|
|
12
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
* The settings a replay run hands to `getAccountInfo`, which logs them, and the sanitized config the
|
|
16
|
+
* run works with afterwards. `figmaBaselines`/`figmaOptions` are off-the-wire open config and
|
|
17
|
+
* `figmaOptions.accessToken` is a Figma credential; the open-eyes seam that strips them is bypassed by
|
|
18
|
+
* replay, and no mask is registered on this path, so both the flattened open config and the nested
|
|
19
|
+
* `config` are stripped here — spreading `options` re-introduces `config.open` in full otherwise.
|
|
20
|
+
*/
|
|
21
|
+
export declare function toEyesServerSettings(options: OfflineSnapshotsSettings): EyesServerSettings & {
|
|
22
|
+
config: Config<SpecType, 'ufg'>;
|
|
23
|
+
};
|
|
13
24
|
export declare function runOfflineSnapshots(options: OfflineSnapshotsSettings): Promise<TestResult[]>;
|