@applitools/core 4.22.1 → 4.23.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.
Files changed (54) hide show
  1. package/CHANGELOG.md +108 -0
  2. package/dist/classic/check-and-close.js +1 -1
  3. package/dist/classic/check.js +1 -1
  4. package/dist/classic/get-base-eyes.js +1 -1
  5. package/dist/cli/cli.js +2 -2
  6. package/dist/core.js +4 -2
  7. package/dist/index.js +1 -4
  8. package/dist/open-eyes.js +1 -1
  9. package/dist/troubleshoot/check-network.js +1 -1
  10. package/dist/ufg/check-and-close.js +40 -96
  11. package/dist/ufg/check.js +1 -1
  12. package/dist/ufg/get-base-eyes.js +1 -1
  13. package/dist/ufg/utils/take-dom-snapshot.js +9 -9
  14. package/dist/utils/extract-git-info.js +10 -7
  15. package/package.json +18 -18
  16. package/types/abort.d.ts +2 -2
  17. package/types/automation/abort.d.ts +2 -2
  18. package/types/automation/close.d.ts +2 -2
  19. package/types/automation/extract-text.d.ts +1 -1
  20. package/types/automation/get-results.d.ts +2 -2
  21. package/types/automation/get-viewport-size.d.ts +1 -1
  22. package/types/automation/locate-text.d.ts +1 -1
  23. package/types/automation/locate.d.ts +1 -1
  24. package/types/automation/set-viewport-size.d.ts +1 -1
  25. package/types/automation/utils/to-base-check-settings.d.ts +1 -1
  26. package/types/autonomous/take-snapshots.d.ts +1 -1
  27. package/types/check-and-close.d.ts +5 -5
  28. package/types/check.d.ts +5 -5
  29. package/types/classic/check-and-close.d.ts +3 -11
  30. package/types/classic/check.d.ts +3 -3
  31. package/types/classic/get-base-eyes.d.ts +1 -1
  32. package/types/classic/open-eyes.d.ts +3 -3
  33. package/types/close-batch.d.ts +1 -1
  34. package/types/close.d.ts +3 -3
  35. package/types/delete-test.d.ts +1 -1
  36. package/types/extract-text.d.ts +2 -2
  37. package/types/get-account-info.d.ts +1 -1
  38. package/types/get-ec-client.d.ts +2 -2
  39. package/types/get-eyes-results.d.ts +2 -2
  40. package/types/get-manager-results.d.ts +2 -2
  41. package/types/get-typed-eyes.d.ts +2 -2
  42. package/types/index.d.ts +0 -1
  43. package/types/locate-text.d.ts +2 -2
  44. package/types/locate.d.ts +2 -2
  45. package/types/make-manager.d.ts +3 -3
  46. package/types/open-eyes.d.ts +5 -5
  47. package/types/types.d.ts +6 -0
  48. package/types/ufg/check-and-close.d.ts +3 -24
  49. package/types/ufg/check.d.ts +3 -3
  50. package/types/ufg/get-base-eyes.d.ts +1 -1
  51. package/types/ufg/get-ufg-client.d.ts +1 -1
  52. package/types/ufg/open-eyes.d.ts +3 -3
  53. package/types/ufg/take-snapshots.d.ts +2 -2
  54. package/types/ufg/utils/take-dom-snapshot.d.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,113 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.23.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.23.0...js/core@4.23.1) (2024-11-09)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * overcome dom snapshot's failure to download resource from browser ([#2610](https://github.com/Applitools-Dev/sdk/issues/2610)) ([47d46fb](https://github.com/Applitools-Dev/sdk/commit/47d46fbe3baab12d5153f6617ab60142a8a215cf))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * @applitools/dom-snapshot bumped to 4.11.8
14
+ #### Bug Fixes
15
+
16
+ * overcome dom snapshot's failure to download resource from browser ([#2610](https://github.com/Applitools-Dev/sdk/issues/2610)) ([47d46fb](https://github.com/Applitools-Dev/sdk/commit/47d46fbe3baab12d5153f6617ab60142a8a215cf))
17
+
18
+ ## [4.23.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.22.1...js/core@4.23.0) (2024-11-07)
19
+
20
+
21
+ ### Features
22
+
23
+ * offline storybook ([#2596](https://github.com/Applitools-Dev/sdk/issues/2596)) ([c8edf80](https://github.com/Applitools-Dev/sdk/commit/c8edf80bc379d0cf5d94d798314bdad405d2f2b4))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * handle missing commits in parent and current branch ([#2586](https://github.com/Applitools-Dev/sdk/issues/2586)) ([3b40be5](https://github.com/Applitools-Dev/sdk/commit/3b40be544c36235b43121af82485bfc2e71d9e27))
29
+
30
+
31
+ ### Code Refactoring
32
+
33
+ * start linting "no-floating-promises" (wip) ([#2539](https://github.com/Applitools-Dev/sdk/issues/2539)) ([51b91cb](https://github.com/Applitools-Dev/sdk/commit/51b91cb15603f7d68e4bd6a16eb0f80e3f380295))
34
+
35
+
36
+ ### Dependencies
37
+
38
+ * @applitools/utils bumped to 1.7.5
39
+ #### Code Refactoring
40
+
41
+ * start linting "no-floating-promises" (wip) ([#2539](https://github.com/Applitools-Dev/sdk/issues/2539)) ([51b91cb](https://github.com/Applitools-Dev/sdk/commit/51b91cb15603f7d68e4bd6a16eb0f80e3f380295))
42
+ * @applitools/dom-snapshot bumped to 4.11.7
43
+ #### Code Refactoring
44
+
45
+ * start linting "no-floating-promises" (wip) ([#2539](https://github.com/Applitools-Dev/sdk/issues/2539)) ([51b91cb](https://github.com/Applitools-Dev/sdk/commit/51b91cb15603f7d68e4bd6a16eb0f80e3f380295))
46
+
47
+
48
+
49
+ * @applitools/snippets bumped to 2.6.2
50
+ #### Bug Fixes
51
+
52
+ * provide a clear "stale element" exception message when passing detached regions to `check` ([#2590](https://github.com/Applitools-Dev/sdk/issues/2590)) ([1e5b49e](https://github.com/Applitools-Dev/sdk/commit/1e5b49e9aec6b8caf89f2cdb1f8e81a237d52896))
53
+ * @applitools/dom-capture bumped to 11.5.1
54
+ #### Code Refactoring
55
+
56
+ * start linting "no-floating-promises" (wip) ([#2539](https://github.com/Applitools-Dev/sdk/issues/2539)) ([51b91cb](https://github.com/Applitools-Dev/sdk/commit/51b91cb15603f7d68e4bd6a16eb0f80e3f380295))
57
+ * @applitools/spec-driver-webdriver bumped to 1.1.19
58
+ #### Code Refactoring
59
+
60
+ * start linting "no-floating-promises" (wip) ([#2539](https://github.com/Applitools-Dev/sdk/issues/2539)) ([51b91cb](https://github.com/Applitools-Dev/sdk/commit/51b91cb15603f7d68e4bd6a16eb0f80e3f380295))
61
+
62
+
63
+
64
+ * @applitools/tunnel-client bumped to 1.5.9
65
+ #### Code Refactoring
66
+
67
+ * start linting "no-floating-promises" (wip) ([#2539](https://github.com/Applitools-Dev/sdk/issues/2539)) ([51b91cb](https://github.com/Applitools-Dev/sdk/commit/51b91cb15603f7d68e4bd6a16eb0f80e3f380295))
68
+
69
+
70
+
71
+ * @applitools/ufg-client bumped to 1.14.0
72
+ #### Features
73
+
74
+ * offline storybook ([#2596](https://github.com/Applitools-Dev/sdk/issues/2596)) ([c8edf80](https://github.com/Applitools-Dev/sdk/commit/c8edf80bc379d0cf5d94d798314bdad405d2f2b4))
75
+
76
+
77
+
78
+ * @applitools/ec-client bumped to 1.9.13
79
+ #### Code Refactoring
80
+
81
+ * start linting "no-floating-promises" (wip) ([#2539](https://github.com/Applitools-Dev/sdk/issues/2539)) ([51b91cb](https://github.com/Applitools-Dev/sdk/commit/51b91cb15603f7d68e4bd6a16eb0f80e3f380295))
82
+
83
+
84
+
85
+ * @applitools/logger bumped to 2.0.19
86
+
87
+ * @applitools/socket bumped to 1.1.19
88
+
89
+ * @applitools/req bumped to 1.7.3
90
+
91
+ * @applitools/image bumped to 1.1.14
92
+
93
+ * @applitools/driver bumped to 1.19.7
94
+
95
+ * @applitools/spec-driver-selenium bumped to 1.5.90
96
+
97
+ * @applitools/spec-driver-puppeteer bumped to 1.4.19
98
+
99
+ * @applitools/screenshoter bumped to 3.9.5
100
+
101
+ * @applitools/nml-client bumped to 1.8.17
102
+
103
+ * @applitools/core-base bumped to 1.19.2
104
+ #### Code Refactoring
105
+
106
+ * start linting "no-floating-promises" (wip) ([#2539](https://github.com/Applitools-Dev/sdk/issues/2539)) ([51b91cb](https://github.com/Applitools-Dev/sdk/commit/51b91cb15603f7d68e4bd6a16eb0f80e3f380295))
107
+
108
+
109
+
110
+
3
111
  ## [4.22.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.22.0...js/core@4.22.1) (2024-10-31)
4
112
 
5
113
 
@@ -173,7 +173,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultE
173
173
  throw new abort_error_1.AbortError(`Check on environment with id "${(_b = baseEyes.test.environment) === null || _b === void 0 ? void 0 : _b.environmentId}" was aborted during one of the previous steps`);
174
174
  }
175
175
  if (settings.assumesMutability) {
176
- eyes.core.logEvent({
176
+ void eyes.core.logEvent({
177
177
  settings: {
178
178
  level: 'Notice',
179
179
  event: {
@@ -191,7 +191,7 @@ async function checkEnvironment({ eyes, driver, target, environment, signal, log
191
191
  catch (error) {
192
192
  environmentLogger.error(`Check on environment with id "${(_b = baseEyes.test.environment) === null || _b === void 0 ? void 0 : _b.environmentId}" failed due to an error`, error);
193
193
  if (baseEyes.running && !(signal === null || signal === void 0 ? void 0 : signal.aborted))
194
- baseEyes.abort({ logger: environmentLogger, settings: { reason: error } });
194
+ void baseEyes.abort({ logger: environmentLogger, settings: { reason: error } });
195
195
  }
196
196
  }
197
197
  catch (error) {
@@ -52,7 +52,7 @@ function makeGetBaseEyes({ settings: defaultSettings, eyes, logger: mainLogger,
52
52
  },
53
53
  logger,
54
54
  });
55
- (0, report_kobiton_1.reportKobiton)({ driver: settings.driver, settings: baseEyes.test, logger });
55
+ void (0, report_kobiton_1.reportKobiton)({ driver: settings.driver, settings: baseEyes.test, logger });
56
56
  return baseEyes;
57
57
  }
58
58
  }
package/dist/cli/cli.js CHANGED
@@ -36,7 +36,7 @@ const run_offline_snapshots_1 = require("../run-offline-snapshots");
36
36
  const yargs_1 = __importDefault(require("yargs"));
37
37
  const utils = __importStar(require("@applitools/utils"));
38
38
  const fs_1 = __importDefault(require("fs"));
39
- yargs_1.default
39
+ void yargs_1.default
40
40
  .example([
41
41
  ['eyes universal', 'Run Eyes Universal server on default port (21077)'],
42
42
  ['eyes universal --fork', 'Run Eyes Universal server in a forked process'],
@@ -112,7 +112,7 @@ yargs_1.default
112
112
  console.log(port); // NOTE: this is a part of the generic protocol
113
113
  }
114
114
  else {
115
- (0, core_server_1.makeCoreServer)({ ...args, ...args.config, isProcess: true });
115
+ void (0, core_server_1.makeCoreServer)({ ...args, ...args.config, isProcess: true });
116
116
  }
117
117
  },
118
118
  })
package/dist/core.js CHANGED
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.makeCore = void 0;
27
+ const utils = __importStar(require("@applitools/utils"));
27
28
  const logger_1 = require("@applitools/logger");
28
29
  const core_base_1 = require("@applitools/core-base");
29
30
  const core_1 = require("./classic/core");
@@ -44,7 +45,7 @@ const extract_test_environment_1 = require("./utils/extract-test-environment");
44
45
  const ensure_offline_folder_1 = require("./utils/ensure-offline-folder");
45
46
  const validate_sdk_version_1 = require("./utils/validate-sdk-version");
46
47
  const memory_usage_logging_1 = require("./utils/memory-usage-logging");
47
- const utils = __importStar(require("@applitools/utils"));
48
+ const take_snapshots_1 = require("./ufg/take-snapshots");
48
49
  function makeCore({ spec, clients, base: defaultBase, concurrency = utils.general.getEnvValue('CONCURRENCY', 'number'), environment: defaultEnvironment, agentId = 'core', cwd = process.cwd(), logger: defaultLogger, asyncCache, } = {}) {
49
50
  const logger = (0, logger_1.makeLogger)({ logger: defaultLogger, format: { label: 'core' } });
50
51
  (0, memory_usage_logging_1.startMemoryUsageLogging)({ logger });
@@ -52,7 +53,7 @@ function makeCore({ spec, clients, base: defaultBase, concurrency = utils.genera
52
53
  const offlineLocationPath = (0, ensure_offline_folder_1.ensureOfflineFolder)();
53
54
  logger.log(`[pid=${process.pid} Core is initialized ${defaultBase ? 'with' : 'without'} custom base core ${offlineLocationPath ? `and offline location ${offlineLocationPath} ` : ''}and environment `, environment);
54
55
  if (environment.sdk)
55
- (0, validate_sdk_version_1.validateSdkVersion)(environment.sdk, { logger });
56
+ void (0, validate_sdk_version_1.validateSdkVersion)(environment.sdk, { logger });
56
57
  const base = defaultBase !== null && defaultBase !== void 0 ? defaultBase : (0, core_base_1.makeCore)({ agentId, concurrency, logger, offlineLocationPath });
57
58
  const cores = {
58
59
  ufg: (0, core_2.makeCore)({ spec, clients, base, asyncCache, logger, offlineLocationPath }),
@@ -86,6 +87,7 @@ function makeCore({ spec, clients, base: defaultBase, concurrency = utils.genera
86
87
  openEyes: (0, open_eyes_1.makeOpenEyes)({ spec, clients, core, cores, environment, asyncCache, cwd, logger }),
87
88
  closeBatch: (0, close_batch_1.makeCloseBatch)({ core, logger }),
88
89
  deleteTest: (0, delete_test_1.makeDeleteTest)({ core, logger }),
90
+ takeSnapshots: spec && (0, take_snapshots_1.makeTakeSnapshots)({ spec, core: cores.ufg, logger }),
89
91
  };
90
92
  });
91
93
  }
package/dist/index.js CHANGED
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.takeDomSnapshots = exports.logs = exports.formatters = void 0;
29
+ exports.logs = exports.formatters = void 0;
30
30
  __exportStar(require("./types"), exports);
31
31
  __exportStar(require("./core"), exports);
32
32
  __exportStar(require("./universal/core-server"), exports);
@@ -35,6 +35,3 @@ __exportStar(require("./autonomous/core"), exports);
35
35
  __exportStar(require("@applitools/driver/dist/debug"), exports);
36
36
  exports.formatters = __importStar(require("./utils/format-results"));
37
37
  exports.logs = __importStar(require("./troubleshoot/logs"));
38
- // TODO remove export after every dependency migrated to new distributed ufg submodule
39
- var take_dom_snapshots_1 = require("./ufg/utils/take-dom-snapshots");
40
- Object.defineProperty(exports, "takeDomSnapshots", { enumerable: true, get: function () { return take_dom_snapshots_1.takeDomSnapshots; } });
package/dist/open-eyes.js CHANGED
@@ -90,7 +90,7 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
90
90
  const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }));
91
91
  const driverEnvironment = await (driver === null || driver === void 0 ? void 0 : driver.getEnvironment());
92
92
  const driverUrl = await (driver === null || driver === void 0 ? void 0 : driver.getDriverUrl());
93
- core.logEvent({
93
+ void core.logEvent({
94
94
  settings: {
95
95
  ...settings,
96
96
  level: 'Notice',
@@ -114,5 +114,5 @@ async function checkNetwork({ stream = process.stdout, eyes = eyes_1.default, uf
114
114
  }
115
115
  exports.checkNetwork = checkNetwork;
116
116
  if (require.main === module) {
117
- checkNetwork();
117
+ void checkNetwork();
118
118
  }
@@ -28,29 +28,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.makeCheckAndClose = void 0;
30
30
  const driver_1 = require("@applitools/driver");
31
- const take_dom_snapshots_1 = require("./utils/take-dom-snapshots");
32
31
  const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
33
- const to_generated_selectors_1 = require("./utils/to-generated-selectors");
34
32
  const uniquify_environments_1 = require("../automation/utils/uniquify-environments");
35
33
  const to_environment_key_1 = require("../automation/utils/to-environment-key");
36
34
  const abort_error_1 = require("../errors/abort-error");
37
35
  const utils = __importStar(require("@applitools/utils"));
38
36
  const lang = __importStar(require("../lang"));
39
37
  const chalk_1 = __importDefault(require("chalk"));
38
+ const take_snapshots_1 = require("./take-snapshots");
39
+ const create_render_target_from_snapshot_1 = require("./create-render-target-from-snapshot");
40
40
  function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultEnvironments = [], spec, signal, logger: mainLogger, }) {
41
41
  return async function checkAndClose({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
42
- var _a, _b;
42
+ var _a;
43
43
  logger = logger.extend(mainLogger);
44
44
  logger.log('Command "checkAndClose" is called with settings', settings);
45
45
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
46
46
  logger.warn('Command "checkAndClose" was called after test was already aborted');
47
47
  throw new abort_error_1.AbortError('Command "checkAndClose" was called after test was already aborted');
48
48
  }
49
- const { elementReferences, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
50
- const { elementReferencesToMark, getGeneratedSelectors } = (0, to_generated_selectors_1.toGeneratedSelectors)({
51
- elementReferences,
52
- 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; },
53
- });
54
49
  const uniqueEnvironments = (0, uniquify_environments_1.uniquifyEnvironments)((_a = settings.environments) !== null && _a !== void 0 ? _a : defaultEnvironments);
55
50
  const ufgClient = await eyes.core.getUFGClient({
56
51
  settings: {
@@ -61,66 +56,27 @@ function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultE
61
56
  logger,
62
57
  });
63
58
  let snapshots;
64
- let snapshotUrl;
65
- let snapshotTitle;
66
- let userAgent;
67
- const driver = spec && (0, driver_1.isDriver)(target, spec)
68
- ? await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger })
69
- : undefined;
70
- if (driver) {
71
- const environment = await driver.getEnvironment();
72
- const currentContext = driver.currentContext;
73
- await currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
74
- if (environment.isWeb) {
75
- userAgent = await driver.getUserAgentLegacy();
76
- snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({
77
- driver,
78
- settings: {
79
- ...eyes.test.eyesServer,
80
- waitBeforeCapture: settings.waitBeforeCapture,
81
- disableBrowserFetching: settings.disableBrowserFetching,
82
- layoutBreakpoints: settings.layoutBreakpoints,
83
- environments: uniqueEnvironments,
84
- skipResources: ufgClient.getCachedResourceUrls(),
85
- lazyLoad: settings.lazyLoad,
86
- elementReferences: elementReferencesToMark,
87
- },
88
- provides: {
89
- getChromeEmulationDevices: ufgClient.getChromeEmulationDevices,
90
- getIOSDevices: ufgClient.getIOSDevices,
91
- },
92
- logger,
93
- });
94
- }
95
- else {
96
- const nmlClient = await eyes.core.getNMLClient({
97
- driver,
98
- settings: { ...eyes.test.eyesServer, supportedEnvironmentsUrl: eyes.test.supportedEnvironmentsUrl },
99
- logger,
100
- });
101
- snapshots = (await nmlClient.takeSnapshots({
102
- settings: {
103
- ...eyes.test.eyesServer,
104
- waitBeforeCapture: settings.waitBeforeCapture,
105
- environments: uniqueEnvironments,
106
- },
107
- logger,
108
- }));
109
- }
110
- await currentContext.focus();
111
- snapshotUrl = await driver.getUrl();
112
- snapshotTitle = await driver.getTitle();
59
+ let driver;
60
+ if (spec && (0, driver_1.isDriver)(target, spec)) {
61
+ const takeSnapshots = (0, take_snapshots_1.makeTakeSnapshots)({ core: eyes.core, spec, signal, logger });
62
+ driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
63
+ snapshots = await takeSnapshots({
64
+ driver,
65
+ account: eyes.test.account,
66
+ settings: { ...settings, environments: uniqueEnvironments },
67
+ logger,
68
+ });
113
69
  }
114
70
  else {
71
+ // TODO (amit)
115
72
  snapshots = !utils.types.isArray(target) ? Array(uniqueEnvironments.length).fill(target) : target;
116
- snapshotUrl = utils.types.has(snapshots[0], 'url') ? snapshots[0].url : undefined;
117
73
  }
118
- const generatedSelectors = snapshots.map(snapshot => getGeneratedSelectors(utils.types.has(snapshot, 'generatedSelectors') ? snapshot.generatedSelectors : undefined));
119
- const promises = uniqueEnvironments.map(async (environment, index) => {
74
+ const promises = snapshots.map(async (snapshot, i) => {
120
75
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
121
76
  const environmentLogger = logger.extend({ tags: [`environment-${utils.general.shortid()}`] });
122
- const ufgEnvironment = environment;
123
- if (utils.types.has(ufgEnvironment, 'name') && ufgEnvironment.name === 'edge') {
77
+ const { target } = snapshot;
78
+ const environment = uniqueEnvironments[i];
79
+ if (utils.types.has(environment, 'name') && environment.name === 'edge') {
124
80
  environmentLogger.console.log(chalk_1.default.yellow(lang.edgeUfgEnvironmentDeprecatedWarning));
125
81
  }
126
82
  try {
@@ -128,26 +84,10 @@ function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultE
128
84
  environmentLogger.warn('Command "check" was aborted before rendering');
129
85
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
130
86
  }
131
- const { cookies, ...snapshot } = snapshots[index];
132
- const selectors = generatedSelectors[index];
133
- if (utils.types.has(ufgEnvironment, 'iosDeviceInfo') || utils.types.has(ufgEnvironment, 'androidDeviceInfo')) {
134
- ufgEnvironment.type = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
87
+ if (utils.types.has(environment, 'iosDeviceInfo') || utils.types.has(environment, 'androidDeviceInfo')) {
88
+ environment.type = utils.types.has(target, 'cdt') ? 'web' : 'native';
135
89
  }
136
- const renderTargetPromise = ufgClient.createRenderTarget({
137
- snapshot,
138
- settings: {
139
- environment: ufgEnvironment,
140
- cookies,
141
- headers: {
142
- Referer: snapshotUrl,
143
- 'User-Agent': userAgent,
144
- ...settings.headers,
145
- },
146
- proxy: eyes.test.eyesServer.proxy,
147
- autProxy: settings.autProxy,
148
- },
149
- logger: environmentLogger,
150
- });
90
+ const renderTargetPromise = (0, create_render_target_from_snapshot_1.createRenderTargetFromSnapshot)({ ufgClient, snapshot, logger: environmentLogger });
151
91
  const baseEyes = await eyes.getBaseEyes({ settings: { environment, driver }, logger });
152
92
  try {
153
93
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
@@ -167,31 +107,35 @@ function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultE
167
107
  environmentLogger.warn(`Render on environment with id "${(_c = baseEyes.test.environment) === null || _c === void 0 ? void 0 : _c.environmentId}" was aborted during one of the previous steps`);
168
108
  throw new abort_error_1.AbortError(`Render on environment with id "${(_d = baseEyes.test.environment) === null || _d === void 0 ? void 0 : _d.environmentId}" was aborted during one of the previous steps`);
169
109
  }
110
+ const { elementReferences: selectors, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({
111
+ settings: snapshot.settings,
112
+ });
170
113
  const { renderId, selectorRegions, ...baseTarget } = await ufgClient.render({
171
114
  target: renderTarget,
172
115
  settings: {
173
- ...settings,
174
- region: (_e = selectors.target) !== null && _e !== void 0 ? _e : settings.region,
116
+ ...snapshot.settings,
117
+ region: (_e = selectors.target) !== null && _e !== void 0 ? _e : snapshot.settings.region,
175
118
  scrollRootElement: selectors.scrolling,
176
- selectorsToCalculate: selectors.calculate.flatMap(({ safeSelector }) => safeSelector !== null && safeSelector !== void 0 ? safeSelector : []),
177
- includeFullPageSize: !!settings.pageId,
178
- environment: { ...ufgEnvironment, environmentId: baseEyes.test.environment.environmentId },
119
+ selectorsToCalculate: selectors.calculate,
120
+ includeFullPageSize: Boolean(snapshot.settings.pageId),
121
+ environment: { ...environment, environmentId: baseEyes.test.environment.environmentId },
179
122
  uploadUrl: baseEyes.test.uploadUrl,
180
123
  stitchingServiceUrl: baseEyes.test.stitchingServiceUrl,
181
124
  },
182
125
  signal,
183
126
  logger: environmentLogger,
184
127
  });
185
- let offset = 0;
186
128
  const baseSettings = getBaseCheckSettings({
187
- calculatedRegions: selectors.calculate.map(({ originalSelector, safeSelector }) => ({
188
- selector: originalSelector !== null && originalSelector !== void 0 ? originalSelector : undefined,
189
- regions: safeSelector ? selectorRegions[offset++] : [],
190
- })),
129
+ calculatedRegions: selectors.calculate.map((_, index) => {
130
+ var _a;
131
+ return ({
132
+ regions: (_a = selectorRegions === null || selectorRegions === void 0 ? void 0 : selectorRegions[index]) !== null && _a !== void 0 ? _a : [],
133
+ });
134
+ }),
191
135
  });
192
136
  baseSettings.renderId = renderId;
193
- baseTarget.source = snapshotUrl;
194
- baseTarget.name = snapshotTitle;
137
+ baseTarget.source = snapshot.url;
138
+ baseTarget.name = snapshot.title;
195
139
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
196
140
  environmentLogger.warn('Command "check" was aborted after rendering');
197
141
  throw new abort_error_1.AbortError('Command "check" was aborted after rendering');
@@ -201,7 +145,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultE
201
145
  throw new abort_error_1.AbortError(`Render on environment with id "${(_g = baseEyes.test.environment) === null || _g === void 0 ? void 0 : _g.environmentId}" was aborted during one of the previous steps`);
202
146
  }
203
147
  if (settings.assumesMutability) {
204
- eyes.core.logEvent({
148
+ void eyes.core.logEvent({
205
149
  settings: {
206
150
  level: 'Notice',
207
151
  event: {
@@ -238,8 +182,8 @@ function makeCheckAndClose({ eyes, target: defaultTarget, environments: defaultE
238
182
  }
239
183
  }
240
184
  catch (error) {
241
- environmentLogger.error(`Environment with id ${ufgEnvironment.environmentId} failed before rendering started due to an error`, error);
242
- error.info = { ...error.info, userTestId: eyes.test.userTestId, environment: ufgEnvironment };
185
+ environmentLogger.error(`Environment with id ${environment.environmentId} failed before rendering started due to an error`, error);
186
+ error.info = { ...error.info, userTestId: eyes.test.userTestId, environment };
243
187
  throw error;
244
188
  }
245
189
  });
package/dist/ufg/check.js CHANGED
@@ -145,7 +145,7 @@ function makeCheck({ eyes, target: defaultTarget, environments: defaultEnvironme
145
145
  throw new abort_error_1.AbortError(`Render on environment with id "${(_g = baseEyes.test.environment) === null || _g === void 0 ? void 0 : _g.environmentId}" was aborted during one of the previous steps`);
146
146
  }
147
147
  if (settings.assumesMutability) {
148
- eyes.core.logEvent({
148
+ void eyes.core.logEvent({
149
149
  settings: {
150
150
  level: 'Notice',
151
151
  event: {
@@ -71,7 +71,7 @@ function makeGetBaseEyes({ settings: defaultSettings, eyes, logger: mainLogger,
71
71
  },
72
72
  logger,
73
73
  });
74
- (0, report_kobiton_1.reportKobiton)({ driver: settings.driver, settings: baseEyes.test, logger });
74
+ void (0, report_kobiton_1.reportKobiton)({ driver: settings.driver, settings: baseEyes.test, logger });
75
75
  return baseEyes;
76
76
  }
77
77
  }
@@ -146,26 +146,26 @@ function extractCrossFrames({ snapshot, parent = null, logger, }) {
146
146
  });
147
147
  logger.log(...(snapshot.crossFrames
148
148
  ? [
149
- `frames paths for ${JSON.stringify(snapshot.crossFrames)}:`,
149
+ `dom snapshot - frames paths for ${JSON.stringify(snapshot.crossFrames)}:`,
150
150
  crossFrames.map(selector => ({
151
151
  // we don't want `selector.parentSnapshot` to be logged - the size of it can be huge
152
152
  cdtNode: selector.cdtNode,
153
153
  reference: selector.reference,
154
154
  })),
155
155
  ]
156
- : ['no cross frames found']));
156
+ : ['dom snapshot - no cross frames found']));
157
157
  return crossFrames;
158
158
  }
159
159
  function logSnapshot(logger, snapshot) {
160
160
  try {
161
- logger.log(`dom snapshot cdt length: ${snapshot.cdt.length}`);
162
- logger.log(`blobs urls (${snapshot.blobs.length}):`, JSON.stringify(snapshot.blobs.map(({ url }) => url)));
163
- logger.log(`resource urls (${snapshot.resourceUrls.length}):`, JSON.stringify(snapshot.resourceUrls));
164
- logger.log(`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'); }))}`);
161
+ logger.log(`dom snapshot - cdt length: ${snapshot.cdt.length}`);
162
+ logger.log(`dom snapshot - blobs urls (${snapshot.blobs.length}):`, JSON.stringify(snapshot.blobs.map(({ url }) => url)));
163
+ logger.log(`dom snapshot - resource urls (${snapshot.resourceUrls.length}):`, JSON.stringify(snapshot.resourceUrls));
164
+ 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'); }))}`);
165
+ logger.log('dom snapshot - safeSelectors:', snapshot.safeSelectors);
166
+ logger.log('dom snapshot - warnings:', snapshot.warnings);
165
167
  }
166
168
  catch (err) {
167
- logger.error(`error while logging cdt`, err);
169
+ logger.error(`error while logging dom snapshot`, err);
168
170
  }
169
- if (snapshot.error)
170
- logger.error('snapshot error:', snapshot.error);
171
171
  }
@@ -127,13 +127,16 @@ exports.extractBranchingTimestamp = utils.general.cachify(async function ({ bran
127
127
  logger = logger.extend({ tags: [`extract-branching-timestamp-${utils.general.shortid()}`] });
128
128
  const command = `HASH=$(git merge-base ${branchName} ${parentBranchName}) && git show -q --format=%aI $HASH`;
129
129
  let result = await executeWithLog(command, { execOptions, logger });
130
- if (result.stderr) {
131
- const [, missingBranch] = (_a = result.stderr.match(/Not a valid object name ([^\s]+)/)) !== null && _a !== void 0 ? _a : [];
132
- if (missingBranch) {
133
- result = await executeWithLog(`git fetch origin ${missingBranch}:${missingBranch} && ${command}`, {
134
- execOptions,
135
- logger,
136
- });
130
+ // both parent and current branches could be missing, that's why we have to iterate the missing branches check check twice
131
+ for (let i = 0; i < 2; i++) {
132
+ if (result.stderr) {
133
+ const [, missingBranch] = (_a = result.stderr.match(/Not a valid object name ([^\s]+)/)) !== null && _a !== void 0 ? _a : [];
134
+ if (missingBranch) {
135
+ result = await executeWithLog(`git fetch origin ${missingBranch}:${missingBranch} && ${command}`, {
136
+ execOptions,
137
+ logger,
138
+ });
139
+ }
137
140
  }
138
141
  }
139
142
  if (!result.stdout) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "4.22.1",
3
+ "version": "4.23.1",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -74,20 +74,20 @@
74
74
  }
75
75
  },
76
76
  "dependencies": {
77
- "@applitools/core-base": "1.19.1",
78
- "@applitools/dom-capture": "11.5.0",
79
- "@applitools/dom-snapshot": "4.11.6",
80
- "@applitools/driver": "1.19.6",
81
- "@applitools/ec-client": "1.9.12",
82
- "@applitools/logger": "2.0.18",
83
- "@applitools/nml-client": "1.8.16",
84
- "@applitools/req": "1.7.2",
85
- "@applitools/screenshoter": "3.9.4",
86
- "@applitools/snippets": "2.6.1",
87
- "@applitools/socket": "1.1.18",
88
- "@applitools/spec-driver-webdriver": "1.1.18",
89
- "@applitools/ufg-client": "1.13.1",
90
- "@applitools/utils": "1.7.4",
77
+ "@applitools/core-base": "1.19.2",
78
+ "@applitools/dom-capture": "11.5.1",
79
+ "@applitools/dom-snapshot": "4.11.8",
80
+ "@applitools/driver": "1.19.7",
81
+ "@applitools/ec-client": "1.9.13",
82
+ "@applitools/logger": "2.0.19",
83
+ "@applitools/nml-client": "1.8.17",
84
+ "@applitools/req": "1.7.3",
85
+ "@applitools/screenshoter": "3.9.5",
86
+ "@applitools/snippets": "2.6.2",
87
+ "@applitools/socket": "1.1.19",
88
+ "@applitools/spec-driver-webdriver": "1.1.19",
89
+ "@applitools/ufg-client": "1.14.0",
90
+ "@applitools/utils": "1.7.5",
91
91
  "@types/ws": "8.5.5",
92
92
  "abort-controller": "3.0.0",
93
93
  "chalk": "4.1.2",
@@ -100,11 +100,11 @@
100
100
  "devDependencies": {
101
101
  "@applitools/bongo": "^5.10.0",
102
102
  "@applitools/sea": "^1.0.0",
103
- "@applitools/spec-driver-puppeteer": "^1.4.18",
104
- "@applitools/spec-driver-selenium": "^1.5.89",
103
+ "@applitools/spec-driver-puppeteer": "^1.4.19",
104
+ "@applitools/spec-driver-selenium": "^1.5.90",
105
105
  "@applitools/test-server": "^1.2.2",
106
106
  "@applitools/test-utils": "^1.5.17",
107
- "@applitools/tunnel-client": "^1.5.8",
107
+ "@applitools/tunnel-client": "^1.5.9",
108
108
  "@types/node": "^12.20.55",
109
109
  "@types/selenium-webdriver": "^4.1.2",
110
110
  "@types/semver": "^7.5.8",
package/types/abort.d.ts CHANGED
@@ -7,7 +7,7 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
7
7
  logger: Logger;
8
8
  };
9
9
  export declare function makeAbort<TSpec extends SpecType, TType extends 'classic' | 'ufg'>({ eyes, environments: defaultEnvironments, logger: mainLogger, }: Options<TSpec, TType>): ({ settings, logger, }?: {
10
- settings?: AbortSettings<TType> | undefined;
11
- logger?: Logger | undefined;
10
+ settings?: AbortSettings<TType>;
11
+ logger?: Logger;
12
12
  }) => Promise<void>;
13
13
  export {};
@@ -10,7 +10,7 @@ type Options<TSpec extends SpecType> = {
10
10
  logger: Logger;
11
11
  };
12
12
  export declare function makeAbort<TSpec extends SpecType>({ eyes, driver, controller, environments: defaultEnvironments, logger: mainLogger, }: Options<TSpec>): ({ settings, logger, }?: {
13
- settings?: AbortSettings | undefined;
14
- logger?: Logger | undefined;
13
+ settings?: AbortSettings;
14
+ logger?: Logger;
15
15
  }) => Promise<void>;
16
16
  export {};
@@ -8,7 +8,7 @@ type Options<TSpec extends SpecType> = {
8
8
  logger: Logger;
9
9
  };
10
10
  export declare function makeClose<TSpec extends SpecType>({ eyes, driver, environments: defaultEnvironments, logger: mainLogger, }: Options<TSpec>): ({ settings, logger, }?: {
11
- settings?: CloseSettings | undefined;
12
- logger?: Logger | undefined;
11
+ settings?: CloseSettings;
12
+ logger?: Logger;
13
13
  }) => Promise<void>;
14
14
  export {};
@@ -10,6 +10,6 @@ type Options<TSpec extends SpecType> = {
10
10
  export declare function makeExtractText<TSpec extends SpecType>({ core, spec, logger: mainLogger }: Options<TSpec>): ({ target, settings, logger, }: {
11
11
  target: Target<TSpec>;
12
12
  settings: MaybeArray<ExtractTextSettings<TSpec>>;
13
- logger?: Logger | undefined;
13
+ logger?: Logger;
14
14
  }) => Promise<string[]>;
15
15
  export {};
@@ -5,7 +5,7 @@ type Options = {
5
5
  logger: Logger;
6
6
  };
7
7
  export declare function makeGetResults({ eyes, logger: mainLogger }: Options): ({ settings, logger, }?: {
8
- settings?: GetResultsSettings | undefined;
9
- logger?: Logger | undefined;
8
+ settings?: GetResultsSettings;
9
+ logger?: Logger;
10
10
  }) => Promise<TestResult[]>;
11
11
  export {};
@@ -7,6 +7,6 @@ type Options<TSpec extends SpecType> = {
7
7
  };
8
8
  export declare function makeGetViewportSize<TSpec extends SpecType>({ spec, logger: mainLogger }: Options<TSpec>): ({ target, logger }: {
9
9
  target: DriverTarget<TSpec>;
10
- logger?: Logger | undefined;
10
+ logger?: Logger;
11
11
  }) => Promise<import("@applitools/utils").Size>;
12
12
  export {};
@@ -9,6 +9,6 @@ type Options<TSpec extends SpecType> = {
9
9
  export declare function makeLocateText<TSpec extends SpecType>({ core, spec, logger: mainLogger }: Options<TSpec>): <TPattern extends string>({ target, settings, logger, }: {
10
10
  target: Target<TSpec>;
11
11
  settings: LocateTextSettings<TPattern, TSpec>;
12
- logger?: Logger | undefined;
12
+ logger?: Logger;
13
13
  }) => Promise<LocateTextResult<TPattern>>;
14
14
  export {};
@@ -9,6 +9,6 @@ type Options<TSpec extends SpecType> = {
9
9
  export declare function makeLocate<TSpec extends SpecType>({ spec, core, logger: mainLogger }: Options<TSpec>): <TLocator extends string>({ settings, target, logger, }: {
10
10
  target: Target<TSpec>;
11
11
  settings: LocateSettings<TLocator, TSpec>;
12
- logger?: Logger | undefined;
12
+ logger?: Logger;
13
13
  }) => Promise<LocateResult<TLocator>>;
14
14
  export {};
@@ -9,6 +9,6 @@ type Options<TSpec extends SpecType> = {
9
9
  export declare function makeSetViewportSize<TSpec extends SpecType>({ spec, logger: mainLogger }: Options<TSpec>): ({ target, size, logger, }: {
10
10
  target: DriverTarget<TSpec>;
11
11
  size: Size;
12
- logger?: Logger | undefined;
12
+ logger?: Logger;
13
13
  }) => Promise<void>;
14
14
  export {};
@@ -22,6 +22,6 @@ export declare function toBaseCheckSettings<TSpec extends SpecType>({ settings }
22
22
  selector?: Selector;
23
23
  regions: Region[];
24
24
  }[];
25
- preserveTransformation?: boolean | undefined;
25
+ preserveTransformation?: boolean;
26
26
  }) => BaseCheckSettings;
27
27
  };
@@ -10,6 +10,6 @@ type Options<TSpec extends SpecType> = {
10
10
  export declare function makeTakeSnapshots<TSpec extends SpecType>({ core, spec, logger: defaultLogger }: Options<TSpec>): ({ target, settings, logger, }: {
11
11
  target: DriverTarget<TSpec>;
12
12
  settings: SnapshotSettings<TSpec>;
13
- logger?: Logger | undefined;
13
+ logger?: Logger;
14
14
  }) => Promise<Snapshot[]>;
15
15
  export {};
@@ -9,10 +9,10 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
9
9
  logger: Logger;
10
10
  };
11
11
  export declare function makeCheckAndClose<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
- type?: TType | undefined;
13
- target?: Target<TSpec, TType> | undefined;
14
- settings?: (CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>) | undefined;
15
- config?: (Config<TSpec, TDefaultType> & Config<TSpec, TType>) | undefined;
16
- logger?: Logger | undefined;
12
+ type?: TType;
13
+ target?: Target<TSpec, TType>;
14
+ settings?: CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>;
15
+ config?: Config<TSpec, TDefaultType> & Config<TSpec, TType>;
16
+ logger?: Logger;
17
17
  }) => Promise<void>;
18
18
  export {};
package/types/check.d.ts CHANGED
@@ -9,10 +9,10 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
9
9
  logger: Logger;
10
10
  };
11
11
  export declare function makeCheck<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
- type?: TType | undefined;
13
- target?: Target<TSpec, TType> | undefined;
14
- settings?: CheckSettings<TSpec, TType> | undefined;
15
- config?: Config<TSpec, TType> | undefined;
16
- logger?: Logger | undefined;
12
+ type?: TType;
13
+ target?: Target<TSpec, TType>;
14
+ settings?: CheckSettings<TSpec, TType>;
15
+ config?: Config<TSpec, TType>;
16
+ logger?: Logger;
17
17
  }) => Promise<void>;
18
18
  export {};
@@ -1,9 +1,7 @@
1
1
  import type { Target, DriverTarget, Eyes, CheckSettings, CloseSettings, Environment } from './types';
2
- import type { CheckSettings as BaseCheckSettings, CloseSettings as BaseCloseSettings } from '@applitools/core-base';
3
2
  import { type AbortSignal } from 'abort-controller';
4
3
  import { type Logger } from '@applitools/logger';
5
4
  import { type SpecType, type SpecDriver } from '@applitools/driver';
6
- import * as utils from '@applitools/utils';
7
5
  type Options<TSpec extends SpecType> = {
8
6
  eyes: Eyes<TSpec>;
9
7
  target?: DriverTarget<TSpec>;
@@ -13,14 +11,8 @@ type Options<TSpec extends SpecType> = {
13
11
  logger: Logger;
14
12
  };
15
13
  export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target: defaultTarget, environments: defaultEnvironments, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
16
- target?: Target<TSpec> | undefined;
17
- settings?: (BaseCheckSettings<utils.Region | import("@applitools/driver").ElementReference<TSpec>> & import("./types").ScreenshotSettings<TSpec> & {
18
- environments?: Environment[] | undefined;
19
- } & {
20
- retryTimeout?: number | undefined;
21
- } & BaseCloseSettings & {
22
- environments?: Environment[] | undefined;
23
- }) | undefined;
24
- logger?: Logger | undefined;
14
+ target?: Target<TSpec>;
15
+ settings?: CheckSettings<TSpec> & CloseSettings;
16
+ logger?: Logger;
25
17
  }) => Promise<void>;
26
18
  export {};
@@ -11,8 +11,8 @@ type Options<TSpec extends SpecType> = {
11
11
  logger: Logger;
12
12
  };
13
13
  export declare function makeCheck<TSpec extends SpecType>({ eyes, target: defaultTarget, environments: defaultEnvironments, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
14
- target?: Target<TSpec> | undefined;
15
- settings?: CheckSettings<TSpec> | undefined;
16
- logger?: Logger | undefined;
14
+ target?: Target<TSpec>;
15
+ settings?: CheckSettings<TSpec>;
16
+ logger?: Logger;
17
17
  }) => Promise<void>;
18
18
  export {};
@@ -9,6 +9,6 @@ type Options<TSpec extends SpecType> = {
9
9
  };
10
10
  export declare function makeGetBaseEyes<TSpec extends SpecType>({ settings: defaultSettings, eyes, logger: mainLogger, }: Options<TSpec>): ({ settings, logger, }: {
11
11
  settings: GetBaseEyesSettings<TSpec>;
12
- logger?: Logger | undefined;
12
+ logger?: Logger;
13
13
  }) => Promise<BaseEyes>;
14
14
  export {};
@@ -7,9 +7,9 @@ type Options<TSpec extends SpecType> = {
7
7
  logger: Logger;
8
8
  };
9
9
  export declare function makeOpenEyes<TSpec extends SpecType>({ core, spec, logger: mainLogger }: Options<TSpec>): ({ target, settings, storage, logger, }: {
10
- target?: DriverTarget<TSpec> | undefined;
10
+ target?: DriverTarget<TSpec>;
11
11
  settings: OpenSettings;
12
- storage?: EyesStorage | undefined;
13
- logger?: Logger | undefined;
12
+ storage?: EyesStorage;
13
+ logger?: Logger;
14
14
  }) => Promise<Eyes<TSpec>>;
15
15
  export {};
@@ -7,6 +7,6 @@ type Options = {
7
7
  };
8
8
  export declare function makeCloseBatch({ core, logger: mainLogger }: Options): ({ settings, logger, }: {
9
9
  settings: MaybeArray<CloseBatchSettings>;
10
- logger?: Logger | undefined;
10
+ logger?: Logger;
11
11
  }) => Promise<void>;
12
12
  export {};
package/types/close.d.ts CHANGED
@@ -7,8 +7,8 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
7
7
  logger: Logger;
8
8
  };
9
9
  export declare function makeClose<TSpec extends SpecType, TType extends 'classic' | 'ufg'>({ eyes, environments: defaultEnvironments, logger: mainLogger, }: Options<TSpec, TType>): ({ settings, config, logger, }?: {
10
- settings?: CloseSettings<TType> | undefined;
11
- config?: Config<TSpec, TType> | undefined;
12
- logger?: Logger | undefined;
10
+ settings?: CloseSettings<TType>;
11
+ config?: Config<TSpec, TType>;
12
+ logger?: Logger;
13
13
  }) => Promise<void>;
14
14
  export {};
@@ -7,6 +7,6 @@ type Options = {
7
7
  };
8
8
  export declare function makeDeleteTest({ core, logger: mainLogger }: Options): ({ settings, logger, }: {
9
9
  settings: MaybeArray<DeleteTestSettings>;
10
- logger?: Logger | undefined;
10
+ logger?: Logger;
11
11
  }) => Promise<void>;
12
12
  export {};
@@ -10,7 +10,7 @@ type Options<TSpec extends SpecType> = {
10
10
  export declare function makeExtractText<TSpec extends SpecType>({ spec, core, logger: mainLogger }: Options<TSpec>): ({ target, settings, config, logger, }: {
11
11
  target: Target<TSpec, 'classic'>;
12
12
  settings: MaybeArray<ExtractTextSettings<TSpec>>;
13
- config?: Config<TSpec, "classic"> | undefined;
14
- logger?: Logger | undefined;
13
+ config?: Config<TSpec, 'classic'>;
14
+ logger?: Logger;
15
15
  }) => Promise<string[]>;
16
16
  export {};
@@ -6,6 +6,6 @@ type Options = {
6
6
  };
7
7
  export declare function makeGetAccountInfo({ core, logger: mainLogger }: Options): ({ settings, logger, }: {
8
8
  settings: EyesServerSettings;
9
- logger?: Logger | undefined;
9
+ logger?: Logger;
10
10
  }) => Promise<Account>;
11
11
  export {};
@@ -4,8 +4,8 @@ type Options = {
4
4
  logger: Logger;
5
5
  };
6
6
  export declare function makeGetECClient({ logger: mainLogger }: Options): (({ settings, logger, }?: {
7
- settings?: Partial<ECClientSettings> | undefined;
8
- logger?: Logger | undefined;
7
+ settings?: Partial<ECClientSettings>;
8
+ logger?: Logger;
9
9
  }) => Promise<ECClient>) & {
10
10
  getCachedValues(): Promise<ECClient>[];
11
11
  setCachedValue(key: any, value: Promise<ECClient>): void;
@@ -6,7 +6,7 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
6
6
  logger: Logger;
7
7
  };
8
8
  export declare function makeGetEyesResults<TSpec extends SpecType, TType extends 'classic' | 'ufg'>({ eyes, logger: mainLogger, }: Options<TSpec, TType>): ({ settings, logger, }?: {
9
- settings?: GetEyesResultsSettings<TType> | undefined;
10
- logger?: Logger | undefined;
9
+ settings?: GetEyesResultsSettings<TType>;
10
+ logger?: Logger;
11
11
  }) => Promise<TestResult<TType>[]>;
12
12
  export {};
@@ -7,7 +7,7 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
7
7
  logger: Logger;
8
8
  };
9
9
  export declare function makeGetManagerResults<TSpec extends SpecType, TType extends 'classic' | 'ufg'>({ core, storage, logger: mainLogger, }: Options<TSpec, TType>): ({ settings, logger, }?: {
10
- settings?: GetManagerResultsSettings<TType> | undefined;
11
- logger?: Logger | undefined;
10
+ settings?: GetManagerResultsSettings<TType>;
11
+ logger?: Logger;
12
12
  }) => Promise<TestResultSummary<TType>>;
13
13
  export {};
@@ -11,7 +11,7 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
11
11
  logger: Logger;
12
12
  };
13
13
  export declare function makeGetTypedEyes<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, settings: defaultSettings, target, cores, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, logger, }?: {
14
- type?: TType | undefined;
15
- logger?: Logger | undefined;
14
+ type?: TType;
15
+ logger?: Logger;
16
16
  }) => Promise<TypedEyes<TSpec, TType>>;
17
17
  export {};
package/types/index.d.ts CHANGED
@@ -7,4 +7,3 @@ export { type SpecType, type SpecDriver, type Selector } from '@applitools/drive
7
7
  export * from '@applitools/driver/dist/debug';
8
8
  export * as formatters from './utils/format-results';
9
9
  export * as logs from './troubleshoot/logs';
10
- export { takeDomSnapshots } from './ufg/utils/take-dom-snapshots';
@@ -9,7 +9,7 @@ type Options<TSpec extends SpecType> = {
9
9
  export declare function makeLocateText<TSpec extends SpecType>({ spec, core, logger: mainLogger }: Options<TSpec>): <TPattern extends string>({ target, settings, config, logger, }: {
10
10
  target: Target<TSpec, 'classic'>;
11
11
  settings: LocateTextSettings<TPattern, TSpec>;
12
- config?: Config<TSpec, "classic"> | undefined;
13
- logger?: Logger | undefined;
12
+ config?: Config<TSpec, 'classic'>;
13
+ logger?: Logger;
14
14
  }) => Promise<LocateTextResult<TPattern>>;
15
15
  export {};
package/types/locate.d.ts CHANGED
@@ -10,7 +10,7 @@ type Options<TSpec extends SpecType> = {
10
10
  export declare function makeLocate<TSpec extends SpecType>({ spec, core, logger: mainLogger }: Options<TSpec>): <TLocator extends string>({ target, settings, config, logger, }: {
11
11
  target: Target<TSpec, 'classic'>;
12
12
  settings: LocateSettings<TLocator, TSpec>;
13
- config?: Config<TSpec, "classic"> | undefined;
14
- logger?: Logger | undefined;
13
+ config?: Config<TSpec, 'classic'>;
14
+ logger?: Logger;
15
15
  }) => Promise<Record<TLocator, Region[]>>;
16
16
  export {};
@@ -20,8 +20,8 @@ type Options<TSpec extends SpecType> = {
20
20
  offlineLocationPath?: string;
21
21
  };
22
22
  export declare function makeMakeManager<TSpec extends SpecType>({ spec, clients, core, base: defaultBase, agentId: defaultAgentId, environment, cwd, logger: mainLogger, asyncCache, offlineLocationPath, }: Options<TSpec>): <TType extends "classic" | "ufg" = "classic">({ type, settings, logger, }?: {
23
- type?: TType | undefined;
24
- settings?: ManagerSettings | undefined;
25
- logger?: Logger | undefined;
23
+ type?: TType;
24
+ settings?: ManagerSettings;
25
+ logger?: Logger;
26
26
  }) => Promise<EyesManager<TSpec, TType>>;
27
27
  export {};
@@ -22,10 +22,10 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
22
22
  cwd?: string;
23
23
  };
24
24
  export declare function makeOpenEyes<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg' = 'classic'>({ type: defaultType, clients, batch, removeDuplicateTests, core, cores, spec, environment, logger: mainLogger, asyncCache, cwd, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, settings: openSettings, config, target, logger, }: {
25
- type?: TType | undefined;
26
- settings?: Partial<OpenSettings<TDefaultType> & OpenSettings<TType>> | undefined;
27
- config?: (Config<TSpec, TDefaultType> & Config<TSpec, TType>) | undefined;
28
- target?: DriverTarget<TSpec> | undefined;
29
- logger?: Logger | undefined;
25
+ type?: TType;
26
+ settings?: Partial<OpenSettings<TDefaultType> & OpenSettings<TType>>;
27
+ config?: Config<TSpec, TDefaultType> & Config<TSpec, TType>;
28
+ target?: DriverTarget<TSpec>;
29
+ logger?: Logger;
30
30
  }) => Promise<Eyes<TSpec, TType>>;
31
31
  export {};
package/types/types.d.ts CHANGED
@@ -46,6 +46,12 @@ export interface Core<TSpec extends SpecType, TDefaultType extends 'classic' | '
46
46
  config?: Config<TSpec, TDefaultType>;
47
47
  logger?: Logger;
48
48
  }): Promise<string[]>;
49
+ takeSnapshots?(options: {
50
+ driver: AutomationCore.DriverTarget<TSpec>;
51
+ settings?: UFGCore.SnapshotSettings<TSpec>;
52
+ account: BaseCore.Account;
53
+ logger?: Logger;
54
+ }): Promise<UFGCore.Snapshot[]>;
49
55
  }
50
56
  export interface EyesManager<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg' = 'classic' | 'ufg'> {
51
57
  readonly concurrency: number | undefined;
@@ -1,4 +1,3 @@
1
- import type { Region } from '@applitools/utils';
2
1
  import type { DriverTarget, Target, Eyes, CheckSettings, CloseSettings, Environment } from './types';
3
2
  import { type AbortSignal } from 'abort-controller';
4
3
  import { type Logger } from '@applitools/logger';
@@ -12,28 +11,8 @@ type Options<TSpec extends SpecType> = {
12
11
  logger: Logger;
13
12
  };
14
13
  export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target: defaultTarget, environments: defaultEnvironments, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
15
- target?: Target<TSpec> | undefined;
16
- settings?: (import("@applitools/core-base").CheckSettings<Region | import("@applitools/driver").ElementReference<TSpec>> & import("./types").ScreenshotSettings<TSpec> & {
17
- environments?: Environment[] | undefined;
18
- } & {
19
- disableBrowserFetching?: boolean | undefined;
20
- layoutBreakpoints?: {
21
- breakpoints: boolean | number[];
22
- reload?: boolean | undefined;
23
- } | undefined;
24
- hooks?: {
25
- beforeCaptureScreenshot: string;
26
- } | undefined;
27
- ufgOptions?: Record<string, any> | undefined;
28
- prefixRenderId?: string | undefined;
29
- autProxy?: (import("@applitools/req").Proxy & {
30
- mode?: "Allow" | "Block" | undefined;
31
- domains?: string[] | undefined;
32
- }) | undefined;
33
- headers?: Record<string, string> | undefined;
34
- } & import("@applitools/core-base").CloseSettings & {
35
- environments?: Environment[] | undefined;
36
- }) | undefined;
37
- logger?: Logger | undefined;
14
+ target?: Target<TSpec>;
15
+ settings?: CheckSettings<TSpec> & CloseSettings;
16
+ logger?: Logger;
38
17
  }) => Promise<void>;
39
18
  export {};
@@ -11,8 +11,8 @@ type Options<TSpec extends SpecType> = {
11
11
  logger: Logger;
12
12
  };
13
13
  export declare function makeCheck<TSpec extends SpecType>({ eyes, target: defaultTarget, environments: defaultEnvironments, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
14
- target?: Target<TSpec> | undefined;
15
- settings?: CheckSettings<TSpec> | undefined;
16
- logger?: Logger | undefined;
14
+ target?: Target<TSpec>;
15
+ settings?: CheckSettings<TSpec>;
16
+ logger?: Logger;
17
17
  }) => Promise<void>;
18
18
  export {};
@@ -10,6 +10,6 @@ type Options<TSpec extends SpecType> = {
10
10
  };
11
11
  export declare function makeGetBaseEyes<TSpec extends SpecType>({ settings: defaultSettings, eyes, logger: mainLogger, }: Options<TSpec>): ({ settings, logger, }: {
12
12
  settings: GetBaseEyesSettings<TSpec>;
13
- logger?: Logger | undefined;
13
+ logger?: Logger;
14
14
  }) => Promise<BaseEyes>;
15
15
  export {};
@@ -9,7 +9,7 @@ type Options = {
9
9
  };
10
10
  export declare function makeGetUFGClient({ client, fetchConcurrency, offlineLocationPath, logger: mainLogger, asyncCache, }: Options): (({ settings, logger }: {
11
11
  settings: UFGClientSettings;
12
- logger?: Logger | undefined;
12
+ logger?: Logger;
13
13
  }) => Promise<UFGClient>) & {
14
14
  getCachedValues(): Promise<UFGClient>[];
15
15
  setCachedValue(key: any, value: Promise<UFGClient>): void;
@@ -7,9 +7,9 @@ type Options<TSpec extends SpecType> = {
7
7
  logger: Logger;
8
8
  };
9
9
  export declare function makeOpenEyes<TSpec extends SpecType>({ core, spec, logger: mainLogger }: Options<TSpec>): ({ target, settings, storage, logger, }: {
10
- target?: DriverTarget<TSpec> | undefined;
10
+ target?: DriverTarget<TSpec>;
11
11
  settings: OpenSettings;
12
- storage?: EyesStorage | undefined;
13
- logger?: Logger | undefined;
12
+ storage?: EyesStorage;
13
+ logger?: Logger;
14
14
  }) => Promise<Eyes<TSpec>>;
15
15
  export {};
@@ -10,8 +10,8 @@ type Options<TSpec extends SpecType> = {
10
10
  };
11
11
  export declare function makeTakeSnapshots<TSpec extends SpecType>({ core, spec, signal, logger: mainLogger }: Options<TSpec>): ({ driver, settings, account, logger, }: {
12
12
  driver: Driver<TSpec>;
13
- settings?: SnapshotSettings<TSpec> | undefined;
13
+ settings?: SnapshotSettings<TSpec>;
14
14
  account: Account;
15
- logger?: Logger | undefined;
15
+ logger?: Logger;
16
16
  }) => Promise<Snapshot[]>;
17
17
  export {};
@@ -23,7 +23,7 @@ export type RawDomSnapshot = {
23
23
  srcAttr: string | null;
24
24
  scriptVersion: string;
25
25
  safeSelectors?: (CommonSelector | null)[];
26
- error?: string;
26
+ warnings?: string[];
27
27
  };
28
28
  export type DomSnapshotSettings<TSpec extends SpecType> = {
29
29
  disableBrowserFetching?: boolean;