@applitools/core 4.73.2 → 4.73.3

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,74 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.73.3](https://github.com/Applitools-Dev/sdk/compare/js/core@4.73.2...js/core@4.73.3) (2026-10-29)
4
+
5
+
6
+ ### Performance Improvements
7
+
8
+ * pre-fetch account info at makeManager | AD-17263 ([#4347](https://github.com/Applitools-Dev/sdk/issues/4347)) ([75ae06c](https://github.com/Applitools-Dev/sdk/commit/75ae06cfdc95653739c9d18734f7d8c73d947988))
9
+ * ship the largest style elements as css resources | FLD-4733 ([#4334](https://github.com/Applitools-Dev/sdk/issues/4334)) ([8d407ae](https://github.com/Applitools-Dev/sdk/commit/8d407ae5804364e1de2c50abb08413f403f53823))
10
+ * warm account info early in open; opt-in runner-init prewarm | AD-17263 ([#4380](https://github.com/Applitools-Dev/sdk/issues/4380)) ([a00d543](https://github.com/Applitools-Dev/sdk/commit/a00d5438ced1288caa32e5e14cedf828f6753dfe))
11
+
12
+
13
+ ### Dependencies
14
+
15
+ * @applitools/dom-shared bumped to 1.2.5
16
+ #### Bug Fixes
17
+
18
+ * recreate the sandbox iframe when the page removed it | AD-17409 ([0a0b184](https://github.com/Applitools-Dev/sdk/commit/0a0b1841dd4bad2e597d47688f469716fa7b1748))
19
+ * @applitools/dom-snapshot bumped to 4.18.8
20
+ #### Bug Fixes
21
+
22
+ * recreate the sandbox iframe when the page removed it | AD-17409 ([0a0b184](https://github.com/Applitools-Dev/sdk/commit/0a0b1841dd4bad2e597d47688f469716fa7b1748))
23
+
24
+
25
+ #### Performance Improvements
26
+
27
+ * ship the largest style elements as css resources | FLD-4733 ([#4334](https://github.com/Applitools-Dev/sdk/issues/4334)) ([8d407ae](https://github.com/Applitools-Dev/sdk/commit/8d407ae5804364e1de2c50abb08413f403f53823))
28
+
29
+
30
+
31
+ * @applitools/req bumped to 1.11.6
32
+ #### Bug Fixes
33
+
34
+ * send a stream request body without cloning it ([#4368](https://github.com/Applitools-Dev/sdk/issues/4368)) ([ebfc31e](https://github.com/Applitools-Dev/sdk/commit/ebfc31e269d09ee49dcdda9a860a7c47c55f387a))
35
+ * @applitools/snippets bumped to 2.9.10
36
+
37
+ * @applitools/dom-capture bumped to 11.8.10
38
+ #### Bug Fixes
39
+
40
+ * recreate the sandbox iframe when the page removed it | AD-17409 ([0a0b184](https://github.com/Applitools-Dev/sdk/commit/0a0b1841dd4bad2e597d47688f469716fa7b1748))
41
+
42
+
43
+
44
+ * @applitools/driver bumped to 1.26.14
45
+ #### Bug Fixes
46
+
47
+ * recreate the sandbox iframe when the page removed it | AD-17409 ([0a0b184](https://github.com/Applitools-Dev/sdk/commit/0a0b1841dd4bad2e597d47688f469716fa7b1748))
48
+
49
+
50
+
51
+ * @applitools/spec-driver-webdriver bumped to 1.6.14
52
+
53
+ * @applitools/spec-driver-selenium bumped to 1.8.14
54
+
55
+ * @applitools/spec-driver-playwright bumped to 1.9.14
56
+
57
+ * @applitools/spec-driver-puppeteer bumped to 1.8.14
58
+
59
+ * @applitools/screenshoter bumped to 3.12.36
60
+
61
+ * @applitools/nml-client bumped to 1.12.10
62
+
63
+ * @applitools/tunnel-client bumped to 1.12.8
64
+
65
+ * @applitools/ufg-client bumped to 1.24.2
66
+
67
+ * @applitools/core-base bumped to 1.41.3
68
+
69
+ * @applitools/ec-client bumped to 1.12.54
70
+
71
+
3
72
  ## [4.73.2](https://github.com/Applitools-Dev/sdk/compare/js/core@4.73.1...js/core@4.73.2) (2026-10-26)
4
73
 
5
74
 
@@ -30,6 +30,7 @@ const core_2 = require("./ufg/core");
30
30
  const open_eyes_1 = require("./open-eyes");
31
31
  const get_manager_results_1 = require("./get-manager-results");
32
32
  const extract_git_info_1 = require("./utils/extract-git-info");
33
+ const populate_eyes_server_settings_1 = require("./utils/populate-eyes-server-settings");
33
34
  const utils = __importStar(require("@applitools/utils"));
34
35
  function makeMakeManager({ spec, clients, core, base: defaultBase, agentId: defaultAgentId, environment, cwd = process.cwd(), logger: mainLogger, asyncCache, offlineLocationPath, maskLog, }) {
35
36
  return async function makeManager({ type = 'classic', settings, logger = mainLogger, } = {}) {
@@ -50,6 +51,17 @@ function makeMakeManager({ spec, clients, core, base: defaultBase, agentId: defa
50
51
  (0, extract_git_info_1.extractGitBranch)({ execOptions: { cwd }, logger }),
51
52
  (0, extract_git_info_1.extractGitRepo)({ execOptions: { cwd }, logger }),
52
53
  ]).catch(() => undefined);
54
+ // Warm the account cache at runner init so it also overlaps the user's pre-open setup. On by
55
+ // default; disable with APPLITOOLS_PREWARM_ACCOUNT_INFO=false. It uses env-only server settings,
56
+ // so it only matches (and only egresses through the right proxy) when apiKey + proxy come from
57
+ // the environment; a config override is a harmless cache miss — open-eyes always warms the cache
58
+ // with the real config-merged settings regardless.
59
+ const eyesServerSettings = (0, populate_eyes_server_settings_1.populateEyesServerSettings)({});
60
+ if (utils.general.getEnvValue('PREWARM_ACCOUNT_INFO', 'boolean') !== false && eyesServerSettings.apiKey) {
61
+ logger.mask(eyesServerSettings.apiKey);
62
+ logger.mask(eyesServerSettings.eyesServerUrl);
63
+ void core.getAccountInfo({ settings: eyesServerSettings, logger }).catch(() => undefined);
64
+ }
53
65
  const base = defaultBase !== null && defaultBase !== void 0 ? defaultBase : (0, core_base_1.makeCore)({ agentId: settings.agentId, logger, offlineLocationPath, maskLog });
54
66
  const fetchConcurrency = settings.fetchConcurrency;
55
67
  const cores = {
package/dist/open-eyes.js CHANGED
@@ -69,6 +69,10 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
69
69
  const eyesServerSettings = (0, populate_eyes_server_settings_1.populateEyesServerSettings)(settings);
70
70
  logger.mask(eyesServerSettings.apiKey);
71
71
  logger.mask(eyesServerSettings.eyesServerUrl);
72
+ // Start the account fetch now (correct, config-merged server/proxy) so its round-trip overlaps
73
+ // the git/figma/driver work below; awaited where the result is first needed.
74
+ const accountPromise = core.getAccountInfo({ settings: eyesServerSettings, logger });
75
+ accountPromise.catch(() => undefined); // avoid an unhandled rejection if an earlier await throws first
72
76
  (_a = settings.userTestId) !== null && _a !== void 0 ? _a : (settings.userTestId = `${settings.testName}--${utils.general.guid()}`);
73
77
  settings.batch = { ...batch, ...settings.batch };
74
78
  (_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()}`);
@@ -140,7 +144,7 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
140
144
  });
141
145
  }
142
146
  }
143
- const account = await core.getAccountInfo({ settings: eyesServerSettings, logger });
147
+ const account = await accountPromise;
144
148
  await handleBranchFallbackList(account, settings, latestCommitInfoSource, logger);
145
149
  const componentConcurrency = account.serverConcurrency.componentConcurrency;
146
150
  settings.sessionConcurrency = handleConcurrency({
@@ -52,6 +52,11 @@ async function takeDomSnapshot({ context, settings, logger, }) {
52
52
  removeReverseProxyURLPrefixes: Boolean(process.env.APPLITOOLS_SCRIPT_REMOVE_REVERSE_PROXY_URL_PREFIXES),
53
53
  skipCDTDedup: utils.general.getEnvValue('SKIP_CDT_DEDUP', 'boolean'),
54
54
  skipDataUriExtraction: utils.general.getEnvValue('SKIP_DATA_URI_EXTRACTION', 'boolean'),
55
+ skipExternalizeStyles: utils.general.getEnvValue('SKIP_EXTERNALIZE_STYLES', 'boolean'),
56
+ externalizeStyles: {
57
+ maxCount: utils.general.getEnvValue('EXTERNALIZE_STYLES_MAX_COUNT', 'number'),
58
+ minLength: utils.general.getEnvValue('EXTERNALIZE_STYLES_MIN_LENGTH', 'number'),
59
+ },
55
60
  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) ||
56
61
  (environment.isIOS ? 100000 : 250 * 1024 * 1024)),
57
62
  serializeResources: true,
@@ -173,6 +178,7 @@ function logSnapshot(logger, snapshot) {
173
178
  try {
174
179
  logger.log(`dom snapshot - cdt length: ${snapshot.cdt.length}`);
175
180
  logger.log(`dom snapshot - blobs urls (${snapshot.blobs.length}):`, JSON.stringify(snapshot.blobs.map(({ url }) => url)));
181
+ logger.log(`dom snapshot - externalized styles: ${snapshot.blobs.filter(({ url }) => /\?applitools-css=[0-9a-f]{32}$/.test(url)).length}`);
176
182
  logger.log(`dom snapshot - resource urls (${snapshot.resourceUrls.length}):`, JSON.stringify(snapshot.resourceUrls));
177
183
  logger.log(`dom snapshot - cdt nodes with data-applitools-selector: ${JSON.stringify(snapshot.cdt.filter(node => { var _a; return (_a = node.attributes) === null || _a === void 0 ? void 0 : _a.some(attr => attr.name === 'data-applitools-selector'); }))}`);
178
184
  logger.log('dom snapshot - safeSelectors:', snapshot.safeSelectors);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "4.73.2",
3
+ "version": "4.73.3",
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.2",
59
- "@applitools/dom-capture": "11.8.9",
60
- "@applitools/dom-snapshot": "4.18.7",
61
- "@applitools/driver": "1.26.13",
62
- "@applitools/ec-client": "1.12.53",
58
+ "@applitools/core-base": "1.41.3",
59
+ "@applitools/dom-capture": "11.8.10",
60
+ "@applitools/dom-snapshot": "4.18.8",
61
+ "@applitools/driver": "1.26.14",
62
+ "@applitools/ec-client": "1.12.54",
63
63
  "@applitools/image": "1.3.4",
64
64
  "@applitools/logger": "2.3.2",
65
- "@applitools/nml-client": "1.12.9",
66
- "@applitools/req": "1.11.5",
67
- "@applitools/screenshoter": "3.12.35",
68
- "@applitools/snippets": "2.9.9",
65
+ "@applitools/nml-client": "1.12.10",
66
+ "@applitools/req": "1.11.6",
67
+ "@applitools/screenshoter": "3.12.36",
68
+ "@applitools/snippets": "2.9.10",
69
69
  "@applitools/socket": "1.3.18",
70
- "@applitools/ufg-client": "1.24.1",
70
+ "@applitools/ufg-client": "1.24.2",
71
71
  "@applitools/utils": "1.15.3",
72
72
  "abort-controller": "3.0.0",
73
73
  "chalk": "4.1.2",
@@ -79,13 +79,13 @@
79
79
  },
80
80
  "devDependencies": {
81
81
  "@applitools/bongo": "^5.10.0",
82
- "@applitools/spec-driver-playwright": "^1.9.13",
83
- "@applitools/spec-driver-puppeteer": "^1.8.13",
84
- "@applitools/spec-driver-selenium": "^1.8.13",
85
- "@applitools/spec-driver-webdriver": "^1.6.13",
82
+ "@applitools/spec-driver-playwright": "^1.9.14",
83
+ "@applitools/spec-driver-puppeteer": "^1.8.14",
84
+ "@applitools/spec-driver-selenium": "^1.8.14",
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.7",
88
+ "@applitools/tunnel-client": "^1.12.8",
89
89
  "@swc-node/register": "^1.6.8",
90
90
  "@types/mocha": "^10.0.7",
91
91
  "@types/node": "^12.20.55",