@applitools/core 4.73.3 → 4.74.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
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.74.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.74.0...js/core@4.74.1) (2026-11-02)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* restore the viewport and tear down the media guard when a breakpoint snapshot fails | FLD-4800 ([#4355](https://github.com/Applitools-Dev/sdk/issues/4355)) ([fac0583](https://github.com/Applitools-Dev/sdk/commit/fac0583425f2e5714ab9ed3c7afcb79ea85c6e6f))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* @applitools/nml-client bumped to 1.12.11
|
|
14
|
+
|
|
15
|
+
* @applitools/tunnel-client bumped to 1.12.9
|
|
16
|
+
#### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* stop leaking tunnel services and sessions | FLD-5000 ([#4344](https://github.com/Applitools-Dev/sdk/issues/4344)) ([0dd225d](https://github.com/Applitools-Dev/sdk/commit/0dd225d95382d32ebcc03e8a85b23a176bf75d6a))
|
|
19
|
+
* @applitools/core-base bumped to 1.41.4
|
|
20
|
+
#### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* mask presigned URL credentials from renderinfo when MASK_LOG is on | AD-17356 ([#4385](https://github.com/Applitools-Dev/sdk/issues/4385)) ([7dceaf6](https://github.com/Applitools-Dev/sdk/commit/7dceaf67410bd46cc9e356de14abe0024f326d4f))
|
|
23
|
+
* @applitools/ec-client bumped to 1.12.55
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## [4.74.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.73.3...js/core@4.74.0) (2026-11-01)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Features
|
|
30
|
+
|
|
31
|
+
* log allowlisted environment variables once at SDK initialization for diagnostics | AD-14135 ([#3883](https://github.com/Applitools-Dev/sdk/issues/3883)) ([f7d04b1](https://github.com/Applitools-Dev/sdk/commit/f7d04b19b016ce2dcd656ca543a30128f3b4b309))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Dependencies
|
|
35
|
+
|
|
36
|
+
* @applitools/ufg-client bumped to 1.25.0
|
|
37
|
+
#### Features
|
|
38
|
+
|
|
39
|
+
* update iOS device names for the iOS 27 UFG upgrade | AD-17131 ([#4401](https://github.com/Applitools-Dev/sdk/issues/4401)) ([22ea8f6](https://github.com/Applitools-Dev/sdk/commit/22ea8f6d57d812f8bc1563c6fb459fabfaca38df))
|
|
40
|
+
|
|
3
41
|
## [4.73.3](https://github.com/Applitools-Dev/sdk/compare/js/core@4.73.2...js/core@4.73.3) (2026-10-29)
|
|
4
42
|
|
|
5
43
|
|
package/dist/core.js
CHANGED
|
@@ -45,10 +45,12 @@ const extract_test_environment_1 = require("./utils/extract-test-environment");
|
|
|
45
45
|
const ensure_offline_folder_1 = require("./utils/ensure-offline-folder");
|
|
46
46
|
const validate_sdk_version_1 = require("./utils/validate-sdk-version");
|
|
47
47
|
const memory_usage_logging_1 = require("./utils/memory-usage-logging");
|
|
48
|
+
const log_env_snapshot_1 = require("./utils/log-env-snapshot");
|
|
48
49
|
const take_snapshots_1 = require("./ufg/take-snapshots");
|
|
49
50
|
function makeCore({ spec, clients, base: defaultBase, concurrency = utils.general.getEnvValue('CONCURRENCY', 'number'), environment: defaultEnvironment, agentId = 'core', cwd = process.cwd(), maskLog = false, logger: defaultLogger, asyncCache, } = {}) {
|
|
50
51
|
const logger = (0, logger_1.makeLogger)({ logger: defaultLogger, format: { label: 'core' }, maskLog });
|
|
51
52
|
(0, memory_usage_logging_1.startMemoryUsageLogging)({ logger });
|
|
53
|
+
(0, log_env_snapshot_1.logEnvSnapshot)({ logger });
|
|
52
54
|
const environment = (0, extract_test_environment_1.extractTestEnvironment)(defaultEnvironment);
|
|
53
55
|
const offlineLocationPath = (0, ensure_offline_folder_1.ensureOfflineFolder)();
|
|
54
56
|
logger.log(`[pid=${process.pid} Core is initialized ${defaultBase ? 'with' : 'without'} custom base core ${offlineLocationPath ? `and offline location ${offlineLocationPath} ` : ''}and environment `, environment);
|
|
@@ -39,6 +39,8 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
39
39
|
const utils = __importStar(require("@applitools/utils"));
|
|
40
40
|
const lang = __importStar(require("../../lang"));
|
|
41
41
|
__exportStar(require("./take-dom-snapshot"), exports);
|
|
42
|
+
/** Time limit for each cleanup step after a snapshot error. The call is not cancelled and may finish later. */
|
|
43
|
+
const CLEANUP_TIMEOUT_MS = 3000;
|
|
42
44
|
async function takeDomSnapshots({ driver, settings, hooks, provides, logger, }) {
|
|
43
45
|
var _a, _b;
|
|
44
46
|
// calculating cookies here once so that we (a) don't do it for each dom snapshot, and (b) do it before generating safe selectors
|
|
@@ -93,6 +95,7 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
93
95
|
// that rebuilds content on resize would otherwise be captured at the previous breakpoint's width.
|
|
94
96
|
const previousFocusEmulation = await driver.setFocusEmulation(true);
|
|
95
97
|
const snapshots = Array(settings.environments.length);
|
|
98
|
+
let loopFailed = false;
|
|
96
99
|
try {
|
|
97
100
|
for (const [index, { viewportSize, browsers }] of entries.entries()) {
|
|
98
101
|
logger.log(`Taking dom snapshot for viewport size ${viewportSize}`);
|
|
@@ -135,17 +138,47 @@ async function takeDomSnapshots({ driver, settings, hooks, provides, logger, })
|
|
|
135
138
|
browsers.forEach(({ index }) => (snapshots[index] = snapshot));
|
|
136
139
|
await mediaGuard.afterSnapshot();
|
|
137
140
|
}
|
|
138
|
-
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
loopFailed = true;
|
|
144
|
+
throw error;
|
|
139
145
|
}
|
|
140
146
|
finally {
|
|
141
|
-
|
|
147
|
+
if (loopFailed) {
|
|
148
|
+
// the tab may be stuck, so no cleanup step may hide the error that stopped the loop or block it
|
|
149
|
+
await cleanupAfterError('restore viewport size', () => driver.setViewportSize(initialViewportSize));
|
|
150
|
+
await cleanupAfterError('restore focus emulation', () => driver.setFocusEmulation(previousFocusEmulation));
|
|
151
|
+
await cleanupAfterError('tear down media guard', () => mediaGuard.teardown());
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
try {
|
|
155
|
+
await driver.setViewportSize(initialViewportSize);
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
await driver.setFocusEmulation(previousFocusEmulation);
|
|
159
|
+
await mediaGuard.teardown();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
142
162
|
}
|
|
143
|
-
await mediaGuard.teardown();
|
|
144
163
|
if (settings.layoutBreakpoints.reload) {
|
|
145
164
|
await driver.reloadPage();
|
|
146
165
|
await beforeEachSnapshot();
|
|
147
166
|
}
|
|
148
167
|
return snapshots;
|
|
168
|
+
async function cleanupAfterError(name, step) {
|
|
169
|
+
let timer;
|
|
170
|
+
const run = Promise.resolve()
|
|
171
|
+
.then(step)
|
|
172
|
+
.catch(error => logger.error(`Failed to ${name} after a snapshot error`, error));
|
|
173
|
+
const limit = new Promise(resolve => {
|
|
174
|
+
timer = setTimeout(() => {
|
|
175
|
+
logger.warn(`Stopped waiting to ${name} after the time limit of ${CLEANUP_TIMEOUT_MS} ms`);
|
|
176
|
+
resolve();
|
|
177
|
+
}, CLEANUP_TIMEOUT_MS);
|
|
178
|
+
});
|
|
179
|
+
await Promise.race([run, limit]);
|
|
180
|
+
clearTimeout(timer);
|
|
181
|
+
}
|
|
149
182
|
async function beforeEachSnapshot() {
|
|
150
183
|
var _a, _b;
|
|
151
184
|
await ((_a = hooks === null || hooks === void 0 ? void 0 : hooks.beforeEachSnapshot) === null || _a === void 0 ? void 0 : _a.call(hooks));
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.__resetLogEnvSnapshotForTests = exports.logEnvSnapshot = void 0;
|
|
4
|
+
// Module-level flag: persists for the lifetime of the Node process across multiple makeCore() calls — once-per-process by design.
|
|
5
|
+
let hasLogged = false;
|
|
6
|
+
const APPLITOOLS_DIAGNOSTIC_VARS = [
|
|
7
|
+
'APPLITOOLS_SERVER_URL',
|
|
8
|
+
'APPLITOOLS_BATCH_ID',
|
|
9
|
+
'APPLITOOLS_BATCH_NAME',
|
|
10
|
+
'APPLITOOLS_BATCH_SEQUENCE_NAME',
|
|
11
|
+
'APPLITOOLS_APP_NAME',
|
|
12
|
+
'APPLITOOLS_BUILD_MODE',
|
|
13
|
+
'APPLITOOLS_IS_DISABLED',
|
|
14
|
+
'APPLITOOLS_DONT_CLOSE_BATCHES',
|
|
15
|
+
'APPLITOOLS_BATCH_NOTIFY',
|
|
16
|
+
'APPLITOOLS_CONCURRENCY',
|
|
17
|
+
'APPLITOOLS_CONCURRENT_TABS',
|
|
18
|
+
'APPLITOOLS_RENDER_CONCURRENCY',
|
|
19
|
+
'APPLITOOLS_HTTP_VERSION',
|
|
20
|
+
'APPLITOOLS_LOG_DIR',
|
|
21
|
+
'APPLITOOLS_LOG_FILE',
|
|
22
|
+
'APPLITOOLS_LOG_LEVEL',
|
|
23
|
+
'APPLITOOLS_SHOW_LOGS',
|
|
24
|
+
'APPLITOOLS_LOG_COLORS',
|
|
25
|
+
'APPLITOOLS_MASK_LOG',
|
|
26
|
+
'APPLITOOLS_DEBUG_SCREENSHOTS_DIR',
|
|
27
|
+
'APPLITOOLS_DISABLE_AGENT_CACHIFY',
|
|
28
|
+
'APPLITOOLS_NAMESPACE',
|
|
29
|
+
'APPLITOOLS_FRAMEWORK_PROTOCOL',
|
|
30
|
+
'APPLITOOLS_FRAMEWORK_VERSION',
|
|
31
|
+
'APPLITOOLS_FRAMEWORK_MAJOR_VERSION',
|
|
32
|
+
'APPLITOOLS_USE_DNS_CACHE',
|
|
33
|
+
'APPLITOOLS_USE_SELF_HEALING',
|
|
34
|
+
'APPLITOOLS_SKIP_BRANCH_LOOKUP_IN_SHALLOW_CLONE',
|
|
35
|
+
'APPLITOOLS_ENABLE_BRANCH_LOOKUP_FALLBACK_LIST',
|
|
36
|
+
'APPLITOOLS_BASELINE_BRANCH',
|
|
37
|
+
'APPLITOOLS_PARENT_BRANCH',
|
|
38
|
+
'APPLITOOLS_BASELINE_BRANCH_NAME',
|
|
39
|
+
'APPLITOOLS_PARENT_BRANCH_NAME',
|
|
40
|
+
'APPLITOOLS_BRANCH',
|
|
41
|
+
'APPLITOOLS_BRANCH_NAME',
|
|
42
|
+
'APPLITOOLS_OFFLINE_LOCATION_PATH',
|
|
43
|
+
'APPLITOOLS_OFFLINE_LOG_LIMIT',
|
|
44
|
+
'APPLITOOLS_EYES_SERVER_URL',
|
|
45
|
+
'APPLITOOLS_UFG_SERVER_URL',
|
|
46
|
+
'APPLITOOLS_EXECUTION_CLOUD_URL',
|
|
47
|
+
'APPLITOOLS_EXECUTION_CLOUD_REGION',
|
|
48
|
+
'APPLITOOLS_EG_SERVER_URL',
|
|
49
|
+
'APPLITOOLS_EG_INACTIVITY_TIMEOUT',
|
|
50
|
+
'APPLITOOLS_EG_TIMEOUT',
|
|
51
|
+
'APPLITOOLS_EC_TUNNEL_USE_FRP',
|
|
52
|
+
'APPLITOOLS_TUNNEL_MANAGER_SOCK',
|
|
53
|
+
'APPLITOOLS_EG_TUNNEL_LOG_LEVEL',
|
|
54
|
+
'APPLITOOLS_HEARTBEAT_INTERVAL',
|
|
55
|
+
];
|
|
56
|
+
const APPLITOOLS_SENSITIVE_VARS = [
|
|
57
|
+
'APPLITOOLS_API_KEY',
|
|
58
|
+
'APPLITOOLS_API_KEY_READ',
|
|
59
|
+
'APPLITOOLS_PROXY',
|
|
60
|
+
'APPLITOOLS_PROXY_URL',
|
|
61
|
+
];
|
|
62
|
+
const GIT_CI_VARS = [
|
|
63
|
+
'GITHUB_ACTIONS',
|
|
64
|
+
'GITHUB_HEAD_REF',
|
|
65
|
+
'GITHUB_REF',
|
|
66
|
+
'GITHUB_RUN_ID',
|
|
67
|
+
'CI_COMMIT_REF_NAME',
|
|
68
|
+
'CI_JOB_ID',
|
|
69
|
+
'CIRCLE_BRANCH',
|
|
70
|
+
'CIRCLE_BUILD_NUM',
|
|
71
|
+
'BRANCH_NAME',
|
|
72
|
+
'GIT_BRANCH',
|
|
73
|
+
'BUILD_SOURCEBRANCHNAME',
|
|
74
|
+
'BUILD_BUILDID',
|
|
75
|
+
'BITBUCKET_BRANCH',
|
|
76
|
+
'BITBUCKET_BUILD_NUMBER',
|
|
77
|
+
'TRAVIS_BRANCH',
|
|
78
|
+
'TRAVIS_BUILD_ID',
|
|
79
|
+
'BUILDKITE_BRANCH',
|
|
80
|
+
'BUILDKITE_BUILD_ID',
|
|
81
|
+
'CODEBUILD_WEBHOOK_HEAD_REF',
|
|
82
|
+
'CODEBUILD_BUILD_ID',
|
|
83
|
+
'BUILD_ID',
|
|
84
|
+
'BUILD_NUMBER',
|
|
85
|
+
'BAMBOO',
|
|
86
|
+
];
|
|
87
|
+
const CI_MARKER_VARS = [
|
|
88
|
+
'CI',
|
|
89
|
+
'CONTINUOUS_INTEGRATION',
|
|
90
|
+
'JENKINS_URL',
|
|
91
|
+
'TEAMCITY_VERSION',
|
|
92
|
+
'TF_BUILD',
|
|
93
|
+
'GITLAB_CI',
|
|
94
|
+
];
|
|
95
|
+
const FRAMEWORK_VARS = [
|
|
96
|
+
'PLAYWRIGHT_BROWSERS_PATH',
|
|
97
|
+
'PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD',
|
|
98
|
+
'PLAYWRIGHT_SKIP_BROWSER_GC',
|
|
99
|
+
'PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS',
|
|
100
|
+
'PLAYWRIGHT_HOST_PLATFORM_OVERRIDE',
|
|
101
|
+
'PLAYWRIGHT_DOWNLOAD_HOST',
|
|
102
|
+
'PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST',
|
|
103
|
+
'PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST',
|
|
104
|
+
'PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST',
|
|
105
|
+
'PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT',
|
|
106
|
+
'PLAYWRIGHT_TEST_BASE_URL',
|
|
107
|
+
'PLAYWRIGHT_FORCE_TTY',
|
|
108
|
+
'PLAYWRIGHT_HTML_REPORT',
|
|
109
|
+
'PLAYWRIGHT_HTML_OUTPUT_DIR',
|
|
110
|
+
'PLAYWRIGHT_HTML_OPEN',
|
|
111
|
+
'PWDEBUG',
|
|
112
|
+
'PWTEST_CHILD_PROCESS_TIMEOUT',
|
|
113
|
+
'PWTEST_FORCE_EXIT_TIMEOUT',
|
|
114
|
+
'PWTEST_WATCH',
|
|
115
|
+
'PW_TEST_REPORTER',
|
|
116
|
+
'PW_TEST_REUSE_CONTEXT',
|
|
117
|
+
'PW_TEST_SOURCE_TRANSFORM',
|
|
118
|
+
'PW_TEST_HTML_REPORT_OPEN',
|
|
119
|
+
'PW_TEST_CONNECT_EXPOSE_NETWORK',
|
|
120
|
+
'PW_DISABLE_TS_ESM',
|
|
121
|
+
'PW_EXPERIMENTAL_SERVICE_WORKER_NETWORK_EVENTS',
|
|
122
|
+
'CYPRESS_VERSION',
|
|
123
|
+
'CYPRESS_INSTALL_BINARY',
|
|
124
|
+
'CYPRESS_CACHE_FOLDER',
|
|
125
|
+
'CYPRESS_RUN_BINARY',
|
|
126
|
+
'PUPPETEER_DISABLE_HEADLESS_WARNING',
|
|
127
|
+
'PUPPETEER_EXECUTABLE_PATH',
|
|
128
|
+
'PUPPETEER_SKIP_DOWNLOAD',
|
|
129
|
+
'SELENIUM_REMOTE_URL',
|
|
130
|
+
'SELENIUM_BROWSER',
|
|
131
|
+
'SELENIUM_SERVER_JAR',
|
|
132
|
+
];
|
|
133
|
+
// Remote-browser connect settings routinely embed cloud-grid credentials (tokens in the URL or headers).
|
|
134
|
+
const FRAMEWORK_SENSITIVE_VARS = ['PW_TEST_CONNECT_WS_ENDPOINT', 'PW_TEST_CONNECT_HEADERS'];
|
|
135
|
+
const KNOWN_APPLITOOLS_VARS = new Set([...APPLITOOLS_DIAGNOSTIC_VARS, ...APPLITOOLS_SENSITIVE_VARS]);
|
|
136
|
+
const SENSITIVE_NAME_PATTERN = /KEY|TOKEN|SECRET|PASS|AUTH|PROXY|CREDENTIAL/;
|
|
137
|
+
const MAX_VALUE_LENGTH = 10000;
|
|
138
|
+
function logEnvSnapshot({ logger, env = process.env }) {
|
|
139
|
+
if (hasLogged)
|
|
140
|
+
return;
|
|
141
|
+
hasLogged = true;
|
|
142
|
+
try {
|
|
143
|
+
// Force maskLog: true as defense-in-depth for the env-snapshot block, regardless of the consumer's logger setting.
|
|
144
|
+
const childLogger = logger.extend({ tags: ['env-snapshot'], maskLog: true });
|
|
145
|
+
const groups = [
|
|
146
|
+
{ label: 'applitools', names: APPLITOOLS_DIAGNOSTIC_VARS },
|
|
147
|
+
{ label: 'applitools-sensitive', names: APPLITOOLS_SENSITIVE_VARS, sensitive: true },
|
|
148
|
+
{ label: 'git-ci', names: GIT_CI_VARS },
|
|
149
|
+
{ label: 'ci-markers', names: CI_MARKER_VARS },
|
|
150
|
+
{ label: 'framework', names: FRAMEWORK_VARS },
|
|
151
|
+
{ label: 'framework-sensitive', names: FRAMEWORK_SENSITIVE_VARS, sensitive: true },
|
|
152
|
+
];
|
|
153
|
+
// With masking off the user already accepts raw values in the log, so widen to every
|
|
154
|
+
// APPLITOOLS_* var — this surfaces typos such as APPLITOOLS_LOGS_DIR.
|
|
155
|
+
if (isMaskLogDisabled(env)) {
|
|
156
|
+
const names = Object.keys(env)
|
|
157
|
+
.filter(name => name.startsWith('APPLITOOLS_') && !KNOWN_APPLITOOLS_VARS.has(name))
|
|
158
|
+
.sort();
|
|
159
|
+
groups.push({ label: 'applitools-other', names });
|
|
160
|
+
}
|
|
161
|
+
const isSensitive = (group, name) => group.sensitive || SENSITIVE_NAME_PATTERN.test(name);
|
|
162
|
+
// Two-pass: register every sensitive value with the logger mask set before
|
|
163
|
+
// emitting any line — masking only applies to values registered before the log call.
|
|
164
|
+
for (const group of groups) {
|
|
165
|
+
for (const name of group.names) {
|
|
166
|
+
if (!isSensitive(group, name))
|
|
167
|
+
continue;
|
|
168
|
+
const value = safeRead(env, name);
|
|
169
|
+
if (value)
|
|
170
|
+
childLogger.mask(value);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
for (const group of groups) {
|
|
174
|
+
const entries = [];
|
|
175
|
+
for (const name of group.names) {
|
|
176
|
+
const raw = safeRead(env, name);
|
|
177
|
+
if (raw === undefined || raw === '')
|
|
178
|
+
continue;
|
|
179
|
+
// Presence only for secrets, so the snapshot never carries one even when masking is off.
|
|
180
|
+
entries.push([name, isSensitive(group, name) ? '<set>' : trim(raw)]);
|
|
181
|
+
}
|
|
182
|
+
if (entries.length === 0)
|
|
183
|
+
continue;
|
|
184
|
+
childLogger.log(`[env-snapshot:${group.label}] ` + entries.map(([k, v]) => `${k}=${JSON.stringify(v)}`).join(' '));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
// Best-effort diagnostics; never propagate. No re-log here — if `logger` is the
|
|
189
|
+
// source of the throw, calling it again just loops.
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
exports.logEnvSnapshot = logEnvSnapshot;
|
|
193
|
+
function safeRead(env, name) {
|
|
194
|
+
try {
|
|
195
|
+
const v = env[name];
|
|
196
|
+
return typeof v === 'string' ? v : undefined;
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Same rule the formatter applies via getEnvValue('MASK_LOG', 'boolean'): any value other than true/1 turns masking off.
|
|
203
|
+
function isMaskLogDisabled(env) {
|
|
204
|
+
const value = safeRead(env, 'APPLITOOLS_MASK_LOG');
|
|
205
|
+
return value !== undefined && value !== 'null' && !['true', '1'].includes(value);
|
|
206
|
+
}
|
|
207
|
+
function trim(value) {
|
|
208
|
+
return value.length <= MAX_VALUE_LENGTH ? value : value.slice(0, MAX_VALUE_LENGTH);
|
|
209
|
+
}
|
|
210
|
+
/** @internal */
|
|
211
|
+
function __resetLogEnvSnapshotForTests() {
|
|
212
|
+
hasLogged = false;
|
|
213
|
+
}
|
|
214
|
+
exports.__resetLogEnvSnapshotForTests = __resetLogEnvSnapshotForTests;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applitools/core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.74.1",
|
|
4
4
|
"homepage": "https://applitools.com",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": {
|
|
@@ -55,19 +55,19 @@
|
|
|
55
55
|
"test:ios-simulator": "MOCHA_ONLY_TAGS=ios-simulator MOCHA_GROUP=ios-simulator run --top-level mocha ./test/e2e/classic/webview.spec.ts --exit --require ./test/mocha-global-setup.js"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@applitools/core-base": "1.41.
|
|
58
|
+
"@applitools/core-base": "1.41.4",
|
|
59
59
|
"@applitools/dom-capture": "11.8.10",
|
|
60
60
|
"@applitools/dom-snapshot": "4.18.8",
|
|
61
61
|
"@applitools/driver": "1.26.14",
|
|
62
|
-
"@applitools/ec-client": "1.12.
|
|
62
|
+
"@applitools/ec-client": "1.12.55",
|
|
63
63
|
"@applitools/image": "1.3.4",
|
|
64
64
|
"@applitools/logger": "2.3.2",
|
|
65
|
-
"@applitools/nml-client": "1.12.
|
|
65
|
+
"@applitools/nml-client": "1.12.11",
|
|
66
66
|
"@applitools/req": "1.11.6",
|
|
67
67
|
"@applitools/screenshoter": "3.12.36",
|
|
68
68
|
"@applitools/snippets": "2.9.10",
|
|
69
69
|
"@applitools/socket": "1.3.18",
|
|
70
|
-
"@applitools/ufg-client": "1.
|
|
70
|
+
"@applitools/ufg-client": "1.25.0",
|
|
71
71
|
"@applitools/utils": "1.15.3",
|
|
72
72
|
"abort-controller": "3.0.0",
|
|
73
73
|
"chalk": "4.1.2",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"@applitools/spec-driver-webdriver": "^1.6.14",
|
|
86
86
|
"@applitools/test-server": "^1.4.8",
|
|
87
87
|
"@applitools/test-utils": "^1.5.17",
|
|
88
|
-
"@applitools/tunnel-client": "^1.12.
|
|
88
|
+
"@applitools/tunnel-client": "^1.12.9",
|
|
89
89
|
"@swc-node/register": "^1.6.8",
|
|
90
90
|
"@types/mocha": "^10.0.7",
|
|
91
91
|
"@types/node": "^12.20.55",
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { type Logger } from '@applitools/logger';
|
|
3
|
+
export declare function logEnvSnapshot({ logger, env }: {
|
|
4
|
+
logger: Logger;
|
|
5
|
+
env?: NodeJS.ProcessEnv;
|
|
6
|
+
}): void;
|
|
7
|
+
/** @internal */
|
|
8
|
+
export declare function __resetLogEnvSnapshotForTests(): void;
|