@applitools/core 1.4.6 → 1.4.8

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 (111) hide show
  1. package/dist/{classic → automation}/extract-text.js +14 -11
  2. package/dist/automation/get-viewport-size.js +2 -2
  3. package/dist/{classic → automation}/locate-text.js +5 -6
  4. package/dist/automation/locate.js +2 -2
  5. package/dist/automation/set-viewport-size.js +2 -2
  6. package/dist/automation/utils/take-screenshot.js +2 -2
  7. package/dist/{utils → automation/utils}/to-base-check-settings.js +3 -2
  8. package/dist/{utils → automation/utils}/wait-for-lazy-load.js +2 -2
  9. package/dist/check-and-close.js +7 -5
  10. package/dist/check.js +4 -5
  11. package/dist/classic/abort.js +15 -6
  12. package/dist/classic/check-and-close.js +9 -5
  13. package/dist/classic/check.js +12 -8
  14. package/dist/classic/close.js +14 -5
  15. package/dist/classic/core.js +9 -5
  16. package/dist/classic/open-eyes.js +17 -19
  17. package/dist/classic/utils/take-dom-capture.js +35 -54
  18. package/dist/close.js +1 -25
  19. package/dist/core.js +9 -5
  20. package/dist/errors/abort-error.js +5 -1
  21. package/dist/extract-text.js +13 -17
  22. package/dist/get-eyes-results.js +18 -0
  23. package/dist/{close-manager.js → get-manager-results.js} +11 -12
  24. package/dist/get-typed-eyes.js +5 -6
  25. package/dist/index.js +3 -3
  26. package/dist/locate-text.js +33 -7
  27. package/dist/locate.js +1 -1
  28. package/dist/make-ec-client.js +1 -9
  29. package/dist/make-manager.js +8 -33
  30. package/dist/open-eyes.js +3 -5
  31. package/dist/troubleshoot/check-network.js +41 -34
  32. package/dist/troubleshoot/eyes.js +2 -2
  33. package/dist/troubleshoot/ufg.js +3 -2
  34. package/dist/troubleshoot/utils.js +1 -25
  35. package/dist/types.js +0 -1
  36. package/dist/ufg/abort.js +19 -24
  37. package/dist/ufg/check-and-close.js +55 -55
  38. package/dist/ufg/check.js +33 -24
  39. package/dist/ufg/close.js +25 -18
  40. package/dist/ufg/core.js +9 -5
  41. package/dist/ufg/get-base-eyes.js +2 -0
  42. package/dist/ufg/get-results.js +27 -0
  43. package/dist/ufg/open-eyes.js +30 -25
  44. package/dist/ufg/utils/extract-broker-url.js +52 -0
  45. package/dist/ufg/utils/generate-safe-selectors.js +10 -5
  46. package/dist/ufg/utils/take-dom-snapshot.js +37 -36
  47. package/dist/ufg/utils/take-dom-snapshots.js +13 -17
  48. package/dist/ufg/utils/take-snapshots.js +3 -3
  49. package/dist/ufg/utils/take-vhses.js +60 -166
  50. package/dist/utils/format-results.js +37 -37
  51. package/package.json +19 -36
  52. package/types/automation/extract-text.d.ts +16 -0
  53. package/types/automation/get-viewport-size.d.ts +7 -7
  54. package/types/automation/locate-text.d.ts +15 -0
  55. package/types/automation/locate.d.ts +8 -8
  56. package/types/automation/set-viewport-size.d.ts +7 -7
  57. package/types/automation/types.d.ts +38 -42
  58. package/types/automation/utils/take-screenshot.d.ts +9 -9
  59. package/types/automation/utils/to-base-check-settings.d.ts +17 -0
  60. package/types/{utils → automation/utils}/wait-for-lazy-load.d.ts +3 -3
  61. package/types/check-and-close.d.ts +11 -13
  62. package/types/check.d.ts +12 -12
  63. package/types/classic/abort.d.ts +10 -10
  64. package/types/classic/check-and-close.d.ts +15 -11
  65. package/types/classic/check.d.ts +11 -11
  66. package/types/classic/close.d.ts +10 -10
  67. package/types/classic/core.d.ts +4 -4
  68. package/types/classic/get-base-eyes.d.ts +4 -4
  69. package/types/classic/open-eyes.d.ts +9 -9
  70. package/types/classic/types.d.ts +7 -7
  71. package/types/classic/utils/take-dom-capture.d.ts +4 -4
  72. package/types/close-batch.d.ts +1 -1
  73. package/types/close.d.ts +9 -8
  74. package/types/core.d.ts +4 -4
  75. package/types/delete-test.d.ts +1 -1
  76. package/types/errors/abort-error.d.ts +3 -2
  77. package/types/extract-text.d.ts +11 -9
  78. package/types/get-eyes-results.d.ts +12 -0
  79. package/types/get-manager-results.d.ts +14 -0
  80. package/types/get-typed-eyes.d.ts +9 -8
  81. package/types/index.d.ts +3 -3
  82. package/types/locate-text.d.ts +11 -9
  83. package/types/locate.d.ts +9 -9
  84. package/types/make-ec-client.d.ts +3 -3
  85. package/types/make-manager.d.ts +12 -12
  86. package/types/open-eyes.d.ts +13 -13
  87. package/types/troubleshoot/check-network.d.ts +3 -3
  88. package/types/troubleshoot/utils.d.ts +0 -2
  89. package/types/types.d.ts +65 -85
  90. package/types/ufg/abort.d.ts +14 -18
  91. package/types/ufg/check-and-close.d.ts +25 -13
  92. package/types/ufg/check.d.ts +11 -11
  93. package/types/ufg/close.d.ts +14 -18
  94. package/types/ufg/core.d.ts +4 -4
  95. package/types/ufg/get-base-eyes.d.ts +6 -6
  96. package/types/ufg/get-results.d.ts +16 -0
  97. package/types/ufg/open-eyes.d.ts +9 -9
  98. package/types/ufg/types.d.ts +15 -17
  99. package/types/ufg/utils/extract-broker-url.d.ts +6 -0
  100. package/types/ufg/utils/generate-safe-selectors.d.ts +14 -10
  101. package/types/ufg/utils/take-dom-snapshot.d.ts +34 -9
  102. package/types/ufg/utils/take-dom-snapshots.d.ts +3 -3
  103. package/types/ufg/utils/take-snapshots.d.ts +4 -4
  104. package/types/ufg/utils/take-vhses.d.ts +4 -4
  105. package/types/utils/format-results.d.ts +1 -1
  106. package/dist/utils/extract-broker-url.js +0 -24
  107. package/types/classic/extract-text.d.ts +0 -16
  108. package/types/classic/locate-text.d.ts +0 -15
  109. package/types/close-manager.d.ts +0 -18
  110. package/types/utils/extract-broker-url.d.ts +0 -2
  111. package/types/utils/to-base-check-settings.d.ts +0 -18
@@ -25,16 +25,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.makeExtractText = void 0;
27
27
  const driver_1 = require("@applitools/driver");
28
- const take_screenshot_1 = require("../automation/utils/take-screenshot");
29
- const take_dom_capture_1 = require("./utils/take-dom-capture");
28
+ const take_screenshot_1 = require("./utils/take-screenshot");
29
+ const take_dom_capture_1 = require("../classic/utils/take-dom-capture");
30
30
  const utils = __importStar(require("@applitools/utils"));
31
- const snippets_1 = require("@applitools/snippets");
32
- function makeExtractText({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
33
- return async function extractText({ target = defaultTarget, settings, logger = defaultLogger, }) {
31
+ const { getText } = require('@applitools/snippets');
32
+ function makeExtractText({ core, spec, logger: defaultLogger }) {
33
+ return async function extractText({ target, settings, logger = defaultLogger, }) {
34
34
  logger.log('Command "extractText" is called with settings', settings);
35
- const [baseEyes] = await eyes.getBaseEyes();
36
35
  if (!(0, driver_1.isDriver)(target, spec)) {
37
- return baseEyes.extractText({ target, settings: settings, logger });
36
+ return core.extractText({ target, settings: settings, logger });
38
37
  }
39
38
  settings = utils.types.isArray(settings) ? settings : [settings];
40
39
  const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
@@ -42,11 +41,11 @@ function makeExtractText({ eyes, target: defaultTarget, spec, logger: defaultLog
42
41
  var _a;
43
42
  const steps = await prev;
44
43
  const screenshot = await (0, take_screenshot_1.takeScreenshot)({ driver, settings, logger });
45
- if (!settings.hint && !utils.types.has(settings.region, ['x', 'y', 'width', 'height'])) {
44
+ if (!settings.hint && (0, driver_1.isElementReference)(settings.region, spec)) {
46
45
  const element = await driver.currentContext.element(settings.region);
47
46
  if (!element)
48
47
  throw new Error(`Unable to find element using provided selector`);
49
- settings.hint = await driver.currentContext.execute(snippets_1.getText, [element]);
48
+ settings.hint = await driver.currentContext.execute(getText, [element]);
50
49
  if (settings.hint)
51
50
  settings.hint = settings.hint.replace(/[.\\+]/g, '\\$&');
52
51
  }
@@ -60,11 +59,15 @@ function makeExtractText({ eyes, target: defaultTarget, spec, logger: defaultLog
60
59
  await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
61
60
  else
62
61
  await ((_a = screenshot.element) === null || _a === void 0 ? void 0 : _a.setAttribute('data-applitools-scroll', 'true'));
63
- baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, logger }).catch(() => null);
62
+ baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, logger }).catch(() => undefined);
64
63
  }
65
64
  delete settings.region;
66
65
  delete settings.normalization;
67
- const results = await baseEyes.extractText({ target: baseTarget, settings: settings, logger });
66
+ const results = await core.extractText({
67
+ target: baseTarget,
68
+ settings: settings,
69
+ logger,
70
+ });
68
71
  steps.push(results);
69
72
  return steps;
70
73
  }, Promise.resolve([]));
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeGetViewportSize = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
- function makeGetViewportSize({ spec, logger: defaultLogger, }) {
5
+ function makeGetViewportSize({ spec, logger: defaultLogger }) {
6
6
  return async function getViewportSize({ target, logger = defaultLogger, }) {
7
7
  logger.log(`Command "getViewportSize" is called`);
8
- const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
8
+ const driver = await (0, driver_1.makeDriver)({ driver: target, spec, logger });
9
9
  return driver.getViewportSize();
10
10
  };
11
11
  }
@@ -25,15 +25,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.makeLocateText = void 0;
27
27
  const driver_1 = require("@applitools/driver");
28
- const take_screenshot_1 = require("../automation/utils/take-screenshot");
28
+ const take_screenshot_1 = require("./utils/take-screenshot");
29
29
  // import {takeDomCapture} from './utils/take-dom-capture'
30
30
  const utils = __importStar(require("@applitools/utils"));
31
- function makeLocateText({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
32
- return async function locateText({ target = defaultTarget, settings, logger = defaultLogger, }) {
31
+ function makeLocateText({ core, spec, logger: defaultLogger }) {
32
+ return async function locateText({ target, settings, logger = defaultLogger, }) {
33
33
  logger.log('Command "locateText" is called with settings', settings);
34
- const [baseEyes] = await eyes.getBaseEyes();
35
34
  if (!(0, driver_1.isDriver)(target, spec)) {
36
- return baseEyes.locateText({ target, settings: settings, logger });
35
+ return core.locateText({ target, settings: settings, logger });
37
36
  }
38
37
  const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
39
38
  const screenshot = await (0, take_screenshot_1.takeScreenshot)({ driver, settings, logger });
@@ -46,7 +45,7 @@ function makeLocateText({ eyes, target: defaultTarget, spec, logger: defaultLogg
46
45
  // else await screenshot.element?.setAttribute('data-applitools-scroll', 'true')
47
46
  // baseTarget.dom = await takeDomCapture({driver, logger}).catch(() => null)
48
47
  }
49
- const results = await baseEyes.locateText({
48
+ const results = await core.locateText({
50
49
  target: baseTarget,
51
50
  settings: settings,
52
51
  logger,
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeLocate = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
5
  const take_screenshot_1 = require("./utils/take-screenshot");
6
- function makeLocate({ spec, core, logger: defaultLogger, }) {
6
+ function makeLocate({ spec, core, logger: defaultLogger }) {
7
7
  return async function locate({ settings, target, logger = defaultLogger, }) {
8
8
  logger.log(`Command "locate" is called with settings`, settings);
9
9
  if (!(0, driver_1.isDriver)(target, spec)) {
10
10
  return core.locate({ target, settings: settings, logger });
11
11
  }
12
- const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
12
+ const driver = await (0, driver_1.makeDriver)({ driver: target, spec, logger });
13
13
  const screenshot = await (0, take_screenshot_1.takeScreenshot)({ driver, settings, logger });
14
14
  const baseTarget = { image: await screenshot.image.toPng() };
15
15
  const results = await core.locate({ target: baseTarget, settings: settings, logger });
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeSetViewportSize = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
- function makeSetViewportSize({ spec, logger: defaultLogger, }) {
5
+ function makeSetViewportSize({ spec, logger: defaultLogger }) {
6
6
  return async function setViewportSize({ target, size, logger = defaultLogger, }) {
7
7
  logger.log(`Command "setViewportSize" is called with size`, size);
8
- const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
8
+ const driver = await (0, driver_1.makeDriver)({ driver: target, spec, logger });
9
9
  return driver.setViewportSize(size);
10
10
  };
11
11
  }
@@ -24,11 +24,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.takeScreenshot = void 0;
27
- const screenshoter_1 = require("@applitools/screenshoter");
28
27
  const utils = __importStar(require("@applitools/utils"));
28
+ const { takeScreenshot: legacyTakeScreenshot } = require('@applitools/screenshoter');
29
29
  async function takeScreenshot({ driver, settings, logger, }) {
30
30
  var _a, _b;
31
- return (0, screenshoter_1.takeScreenshot)({
31
+ return legacyTakeScreenshot({
32
32
  driver,
33
33
  frames: (_a = settings.frames) === null || _a === void 0 ? void 0 : _a.map(frame => {
34
34
  return utils.types.isPlainObject(frame) && utils.types.has(frame, 'frame')
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.toBaseCheckSettings = void 0;
27
27
  const utils = __importStar(require("@applitools/utils"));
28
- function toBaseCheckSettings({ settings, }) {
28
+ function toBaseCheckSettings({ settings }) {
29
29
  const regionTypes = ['ignore', 'layout', 'strict', 'content', 'floating', 'accessibility'];
30
30
  const elementReferencesToCalculate = regionTypes.flatMap(regionType => {
31
31
  var _a;
@@ -46,9 +46,10 @@ function toBaseCheckSettings({ settings, }) {
46
46
  delete transformedSettings.region;
47
47
  }
48
48
  regionTypes.forEach(regionType => {
49
+ var _a;
49
50
  if (!transformedSettings[`${regionType}Regions`])
50
51
  return;
51
- transformedSettings[`${regionType}Regions`] = transformedSettings[`${regionType}Regions`].flatMap(reference => {
52
+ transformedSettings[`${regionType}Regions`] = (_a = transformedSettings[`${regionType}Regions`]) === null || _a === void 0 ? void 0 : _a.flatMap(reference => {
52
53
  const { region, ...options } = utils.types.has(reference, 'region') ? reference : { region: reference };
53
54
  if (isRegion(region))
54
55
  return reference;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.waitForLazyLoad = void 0;
4
- const snippets_1 = require("@applitools/snippets");
4
+ const { lazyLoad } = require('@applitools/snippets');
5
5
  async function waitForLazyLoad({ context, settings, logger, }) {
6
6
  var _a, _b, _c, _d, _e;
7
7
  logger.log('lazy loading the page before capturing a screenshot');
8
- await context.executePoll(snippets_1.lazyLoad, {
8
+ await context.executePoll(lazyLoad, {
9
9
  main: [
10
10
  await context.getScrollingElement(),
11
11
  {
@@ -2,16 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeCheckAndClose = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
- function makeCheckAndClose({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
5
+ function makeCheckAndClose({ type: defaultType = 'classic', eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
6
6
  return async function checkAndClose({ type = defaultType, target = defaultTarget, settings = {}, config, logger = defaultLogger, } = {}) {
7
7
  settings = { ...config === null || config === void 0 ? void 0 : config.screenshot, ...config === null || config === void 0 ? void 0 : config.check, ...config === null || config === void 0 ? void 0 : config.close, ...settings };
8
8
  const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
9
9
  const typedEyes = await eyes.getTypedEyes({
10
10
  type,
11
- settings: driver && {
12
- type: driver.isNative ? 'native' : 'web',
13
- renderers: settings.renderers,
14
- },
11
+ settings: driver
12
+ ? {
13
+ type: driver.isNative ? 'native' : 'web',
14
+ renderers: settings.renderers,
15
+ }
16
+ : undefined,
15
17
  logger,
16
18
  });
17
19
  const results = await typedEyes.checkAndClose({ target: driver !== null && driver !== void 0 ? driver : target, settings, logger });
package/dist/check.js CHANGED
@@ -30,7 +30,7 @@ exports.makeCheck = void 0;
30
30
  const driver_1 = require("@applitools/driver");
31
31
  const utils = __importStar(require("@applitools/utils"));
32
32
  const chalk_1 = __importDefault(require("chalk"));
33
- function makeCheck({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
33
+ function makeCheck({ type: defaultType = 'classic', eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
34
34
  let stepIndex = 0;
35
35
  return async function check({ type = defaultType, target = defaultTarget, settings, config, logger = defaultLogger, } = {}) {
36
36
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
@@ -62,10 +62,9 @@ function makeCheck({ type: defaultType, eyes, target: defaultTarget, spec, logge
62
62
  const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
63
63
  const typedEyes = await eyes.getTypedEyes({
64
64
  type,
65
- settings: driver && {
66
- type: driver.isNative ? 'native' : 'web',
67
- renderers: settings.renderers,
68
- },
65
+ settings: driver
66
+ ? { type: driver.isNative ? 'native' : 'web', renderers: settings.renderers }
67
+ : undefined,
69
68
  logger,
70
69
  });
71
70
  const results = await typedEyes.check({ target: driver !== null && driver !== void 0 ? driver : target, settings, logger });
@@ -2,12 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeAbort = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
- function makeAbort({ eyes, target, spec, logger: defaultLogger, }) {
6
- return async function ({ settings, logger = defaultLogger, } = {}) {
7
- const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
8
- const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
9
- const [baseEyes] = await eyes.getBaseEyes();
10
- return await baseEyes.abort({ settings: { ...settings, testMetadata }, logger });
5
+ function makeAbort({ eyes, target, spec, logger: defaultLogger }) {
6
+ return async function abort({ settings, logger = defaultLogger, } = {}) {
7
+ logger.log('Command "abort" is called with settings', settings);
8
+ settings !== null && settings !== void 0 ? settings : (settings = {});
9
+ if (!settings.testMetadata) {
10
+ try {
11
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
12
+ settings.testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
13
+ }
14
+ catch (error) {
15
+ logger.warn('Command "abort" received an error during extracting driver metadata', error);
16
+ }
17
+ }
18
+ const baseEyes = await eyes.getBaseEyes();
19
+ await Promise.all(baseEyes.map(baseEyes => baseEyes.abort({ settings, logger })));
11
20
  };
12
21
  }
13
22
  exports.makeAbort = makeAbort;
@@ -27,13 +27,15 @@ exports.makeCheckAndClose = void 0;
27
27
  const driver_1 = require("@applitools/driver");
28
28
  const take_screenshot_1 = require("../automation/utils/take-screenshot");
29
29
  const take_dom_capture_1 = require("./utils/take-dom-capture");
30
- const to_base_check_settings_1 = require("../utils/to-base-check-settings");
31
- const wait_for_lazy_load_1 = require("../utils/wait-for-lazy-load");
30
+ const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
31
+ const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
32
32
  const utils = __importStar(require("@applitools/utils"));
33
33
  function makeCheckAndClose({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
34
34
  return async function checkAndClose({ target = defaultTarget, settings = {}, logger = defaultLogger, } = {}) {
35
35
  var _a;
36
36
  logger.log('Command "checkAndClose" is called with settings', settings);
37
+ if (!target)
38
+ throw new Error('Method was called with no target');
37
39
  const baseEyes = await eyes.getBaseEyes({ logger });
38
40
  if (!(0, driver_1.isDriver)(target, spec)) {
39
41
  const baseSettings = settings;
@@ -66,13 +68,15 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, logger: defaultL
66
68
  await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
67
69
  else
68
70
  await ((_a = screenshot.element) === null || _a === void 0 ? void 0 : _a.setAttribute('data-applitools-scroll', 'true'));
69
- baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, logger }).catch(() => null);
71
+ baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, logger }).catch(() => undefined);
70
72
  }
71
73
  if (settings.pageId) {
72
74
  const scrollingElement = await driver.mainContext.getScrollingElement();
73
- const scrollingOffset = driver.isNative ? { x: 0, y: 0 } : await scrollingElement.getScrollOffset();
75
+ const scrollingOffset = !scrollingElement || driver.isNative ? { x: 0, y: 0 } : await scrollingElement.getScrollOffset();
74
76
  baseTarget.locationInView = utils.geometry.offset(scrollingOffset, screenshot.region);
75
- baseTarget.fullViewSize = scrollingElement ? await scrollingElement.getContentSize() : await driver.getViewportSize();
77
+ baseTarget.fullViewSize = scrollingElement
78
+ ? await scrollingElement.getContentSize()
79
+ : await driver.getViewportSize();
76
80
  }
77
81
  await screenshot.restoreState();
78
82
  return (await Promise.all(baseEyes.map(baseEyes => baseEyes.checkAndClose({ target: baseTarget, settings: baseSettings, logger })))).flat();
@@ -27,13 +27,15 @@ exports.makeCheck = void 0;
27
27
  const driver_1 = require("@applitools/driver");
28
28
  const take_screenshot_1 = require("../automation/utils/take-screenshot");
29
29
  const take_dom_capture_1 = require("./utils/take-dom-capture");
30
- const to_base_check_settings_1 = require("../utils/to-base-check-settings");
31
- const wait_for_lazy_load_1 = require("../utils/wait-for-lazy-load");
30
+ const to_base_check_settings_1 = require("../automation/utils/to-base-check-settings");
31
+ const wait_for_lazy_load_1 = require("../automation/utils/wait-for-lazy-load");
32
32
  const utils = __importStar(require("@applitools/utils"));
33
33
  function makeCheck({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
34
34
  return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, } = {}) {
35
- var _a, _b;
35
+ var _a, _b, _c;
36
36
  logger.log('Command "check" is called with settings', settings);
37
+ if (!target)
38
+ throw new Error('Method was called with no target');
37
39
  const baseEyes = await eyes.getBaseEyes();
38
40
  if (!(0, driver_1.isDriver)(target, spec)) {
39
41
  return (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target, settings: settings, logger })))).flat();
@@ -52,7 +54,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, logger: defaultLogger, }
52
54
  }
53
55
  // TODO it actually could be different per eyes
54
56
  const shouldRunOnce = true;
55
- const finishAt = Date.now() + settings.retryTimeout;
57
+ const finishAt = Date.now() + ((_b = settings.retryTimeout) !== null && _b !== void 0 ? _b : 0);
56
58
  let baseTarget;
57
59
  let baseSettings;
58
60
  let results;
@@ -75,14 +77,16 @@ function makeCheck({ eyes, target: defaultTarget, spec, logger: defaultLogger, }
75
77
  if (settings.fully)
76
78
  await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
77
79
  else
78
- await ((_b = screenshot.element) === null || _b === void 0 ? void 0 : _b.setAttribute('data-applitools-scroll', 'true'));
79
- baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, logger }).catch(() => null);
80
+ await ((_c = screenshot.element) === null || _c === void 0 ? void 0 : _c.setAttribute('data-applitools-scroll', 'true'));
81
+ baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, logger }).catch(() => undefined);
80
82
  }
81
83
  if (settings.pageId) {
82
84
  const scrollingElement = await driver.mainContext.getScrollingElement();
83
- const scrollingOffset = driver.isNative ? { x: 0, y: 0 } : await scrollingElement.getScrollOffset();
85
+ const scrollingOffset = !scrollingElement || driver.isNative ? { x: 0, y: 0 } : await scrollingElement.getScrollOffset();
84
86
  baseTarget.locationInView = utils.geometry.offset(scrollingOffset, screenshot.region);
85
- baseTarget.fullViewSize = scrollingElement ? await scrollingElement.getContentSize() : await driver.getViewportSize();
87
+ baseTarget.fullViewSize = scrollingElement
88
+ ? await scrollingElement.getContentSize()
89
+ : await driver.getViewportSize();
86
90
  }
87
91
  await screenshot.restoreState();
88
92
  baseSettings.ignoreMismatch = !shouldRunOnce;
@@ -2,12 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeClose = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
- function makeClose({ eyes, target, spec, logger: defaultLogger, }) {
6
- return async function ({ settings, logger = defaultLogger, } = {}) {
7
- const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
8
- const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
5
+ function makeClose({ eyes, target, spec, logger: defaultLogger }) {
6
+ return async function close({ settings, logger = defaultLogger, } = {}) {
7
+ logger.log('Command "close" is called with settings', settings);
8
+ settings !== null && settings !== void 0 ? settings : (settings = {});
9
+ if (!settings.testMetadata) {
10
+ try {
11
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
12
+ settings.testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
13
+ }
14
+ catch (error) {
15
+ logger.warn('Command "close" received an error during extracting driver metadata', error);
16
+ }
17
+ }
9
18
  const baseEyes = await eyes.getBaseEyes();
10
- return (await Promise.all(baseEyes.map(baseEyes => baseEyes.close({ settings: { ...settings, testMetadata }, logger })))).flat();
19
+ await Promise.all(baseEyes.map(baseEyes => baseEyes.close({ settings, logger })));
11
20
  };
12
21
  }
13
22
  exports.makeClose = makeClose;
@@ -29,21 +29,25 @@ const core_base_1 = require("@applitools/core-base");
29
29
  const get_viewport_size_1 = require("../automation/get-viewport-size");
30
30
  const set_viewport_size_1 = require("../automation/set-viewport-size");
31
31
  const locate_1 = require("../automation/locate");
32
+ const locate_text_1 = require("../automation/locate-text");
33
+ const extract_text_1 = require("../automation/extract-text");
32
34
  const open_eyes_1 = require("./open-eyes");
33
35
  const utils = __importStar(require("@applitools/utils"));
34
- function makeCore({ spec, core, agentId = 'core-classic', cwd = process.cwd(), logger, }) {
36
+ function makeCore({ spec, core, agentId = 'core-classic', cwd = process.cwd(), logger: defaultLogger, }) {
35
37
  var _a;
36
- logger = (_a = logger === null || logger === void 0 ? void 0 : logger.extend({ label: 'core-classic' })) !== null && _a !== void 0 ? _a : (0, logger_1.makeLogger)({ label: 'core-classic' });
38
+ const logger = (_a = defaultLogger === null || defaultLogger === void 0 ? void 0 : defaultLogger.extend({ label: 'core-classic' })) !== null && _a !== void 0 ? _a : (0, logger_1.makeLogger)({ label: 'core-classic' });
37
39
  logger.log(`Core classic is initialized ${core ? 'with' : 'without'} custom base core`);
38
40
  core !== null && core !== void 0 ? core : (core = (0, core_base_1.makeCore)({ agentId, cwd, logger }));
39
41
  return utils.general.extend(core, {
40
42
  type: 'classic',
41
- isDriver: spec === null || spec === void 0 ? void 0 : spec.isDriver,
42
- isElement: spec === null || spec === void 0 ? void 0 : spec.isElement,
43
- isSelector: spec === null || spec === void 0 ? void 0 : spec.isSelector,
43
+ isDriver: spec && spec.isDriver,
44
+ isElement: spec && spec.isElement,
45
+ isSelector: spec && spec.isSelector,
44
46
  getViewportSize: spec && (0, get_viewport_size_1.makeGetViewportSize)({ spec, logger }),
45
47
  setViewportSize: spec && (0, set_viewport_size_1.makeSetViewportSize)({ spec, logger }),
46
48
  locate: (0, locate_1.makeLocate)({ spec, core, logger }),
49
+ locateText: (0, locate_text_1.makeLocateText)({ spec, core, logger }),
50
+ extractText: (0, extract_text_1.makeExtractText)({ spec, core, logger }),
47
51
  openEyes: (0, open_eyes_1.makeOpenEyes)({ spec, core, logger }),
48
52
  });
49
53
  }
@@ -28,12 +28,10 @@ const driver_1 = require("@applitools/driver");
28
28
  const get_base_eyes_1 = require("./get-base-eyes");
29
29
  const check_1 = require("./check");
30
30
  const check_and_close_1 = require("./check-and-close");
31
- const locate_text_1 = require("./locate-text");
32
- const extract_text_1 = require("./extract-text");
33
31
  const close_1 = require("./close");
34
32
  const abort_1 = require("./abort");
35
33
  const utils = __importStar(require("@applitools/utils"));
36
- function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
34
+ function makeOpenEyes({ core, spec, logger: defaultLogger }) {
37
35
  return async function openEyes({ target, settings, eyes, logger = defaultLogger, }) {
38
36
  var _a, _b, _c, _d, _e;
39
37
  var _f;
@@ -47,27 +45,29 @@ function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
47
45
  }
48
46
  if (driver.isWeb) {
49
47
  (_b = (_f = settings.environment).userAgent) !== null && _b !== void 0 ? _b : (_f.userAgent = driver.userAgent);
50
- if (driver.isChromium &&
51
- ((driver.isWindows && Number.parseInt(driver.browserVersion) >= 107) ||
52
- (driver.isMac && Number.parseInt(driver.browserVersion) >= 90))) {
53
- settings.environment.os = `${driver.platformName} ${(_c = driver.platformVersion) !== null && _c !== void 0 ? _c : ''}`.trim();
54
- }
55
48
  }
56
49
  if (!settings.environment.deviceName && driver.deviceName) {
57
50
  settings.environment.deviceName = driver.deviceName;
58
51
  }
59
- if (!settings.environment.os && driver.isNative && driver.platformName) {
60
- settings.environment.os = driver.platformName;
61
- if (!settings.keepPlatformNameAsIs) {
62
- if ((_d = settings.environment.os) === null || _d === void 0 ? void 0 : _d.startsWith('android')) {
63
- settings.environment.os = `Android${settings.environment.os.slice(7)}`;
52
+ if (!settings.environment.os) {
53
+ if (driver.isNative && driver.platformName) {
54
+ settings.environment.os = driver.platformName;
55
+ if (!settings.keepPlatformNameAsIs) {
56
+ if ((_c = settings.environment.os) === null || _c === void 0 ? void 0 : _c.startsWith('android')) {
57
+ settings.environment.os = `Android${settings.environment.os.slice(7)}`;
58
+ }
59
+ if ((_d = settings.environment.os) === null || _d === void 0 ? void 0 : _d.startsWith('ios')) {
60
+ settings.environment.os = `iOS${settings.environment.os.slice(3)}`;
61
+ }
64
62
  }
65
- if ((_e = settings.environment.os) === null || _e === void 0 ? void 0 : _e.startsWith('ios')) {
66
- settings.environment.os = `iOS${settings.environment.os.slice(3)}`;
63
+ if (driver.platformVersion) {
64
+ settings.environment.os += ` ${driver.platformVersion}`;
67
65
  }
68
66
  }
69
- if (driver.platformVersion) {
70
- settings.environment.os += ` ${driver.platformVersion}`;
67
+ else if (driver.isChromium &&
68
+ ((driver.isWindows && Number.parseInt(driver.browserVersion) >= 107) ||
69
+ (driver.isMac && Number.parseInt(driver.browserVersion) >= 90))) {
70
+ settings.environment.os = `${driver.platformName} ${(_e = driver.platformVersion) !== null && _e !== void 0 ? _e : ''}`.trim();
71
71
  }
72
72
  }
73
73
  if (!settings.environment.viewportSize || driver.isMobile) {
@@ -86,8 +86,6 @@ function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
86
86
  getBaseEyes,
87
87
  check: (0, check_1.makeCheck)({ eyes, target: driver, spec, logger }),
88
88
  checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver, spec, logger }),
89
- locateText: (0, locate_text_1.makeLocateText)({ eyes, target: driver, spec, logger }),
90
- extractText: (0, extract_text_1.makeExtractText)({ eyes, target: driver, spec, logger }),
91
89
  close: (0, close_1.makeClose)({ eyes, target: driver, spec, logger }),
92
90
  abort: (0, abort_1.makeAbort)({ eyes, target: driver, spec, logger }),
93
91
  }));