@applitools/core 1.2.17 → 1.3.0

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 (64) hide show
  1. package/dist/automation/get-viewport-size.js +3 -3
  2. package/dist/automation/locate.js +5 -5
  3. package/dist/automation/set-viewport-size.js +3 -3
  4. package/dist/check-and-close.js +11 -6
  5. package/dist/check.js +26 -17
  6. package/dist/classic/check-and-close.js +12 -8
  7. package/dist/classic/check.js +15 -11
  8. package/dist/classic/extract-text.js +5 -9
  9. package/dist/classic/get-base-eyes.js +4 -4
  10. package/dist/classic/locate-text.js +5 -5
  11. package/dist/classic/open-eyes.js +7 -7
  12. package/dist/close.js +2 -1
  13. package/dist/extract-text.js +2 -1
  14. package/dist/get-typed-eyes.js +27 -0
  15. package/dist/locate-text.js +2 -1
  16. package/dist/make-manager.js +1 -1
  17. package/dist/open-eyes.js +21 -27
  18. package/dist/types.js +1 -0
  19. package/dist/ufg/abort.js +1 -1
  20. package/dist/ufg/check.js +14 -9
  21. package/dist/ufg/get-base-eyes.js +1 -17
  22. package/dist/ufg/open-eyes.js +6 -11
  23. package/dist/utils/wait-for-lazy-load.js +10 -8
  24. package/package.json +18 -16
  25. package/types/automation/get-viewport-size.d.ts +6 -3
  26. package/types/automation/locate.d.ts +7 -4
  27. package/types/automation/set-viewport-size.d.ts +8 -3
  28. package/types/automation/types.d.ts +18 -69
  29. package/types/automation/utils/take-screenshot.d.ts +1 -1
  30. package/types/check-and-close.d.ts +13 -13
  31. package/types/check.d.ts +9 -11
  32. package/types/classic/check-and-close.d.ts +9 -5
  33. package/types/classic/check.d.ts +9 -5
  34. package/types/classic/core.d.ts +1 -1
  35. package/types/classic/extract-text.d.ts +10 -5
  36. package/types/classic/get-base-eyes.d.ts +3 -3
  37. package/types/classic/locate-text.d.ts +9 -5
  38. package/types/classic/open-eyes.d.ts +9 -4
  39. package/types/classic/types.d.ts +8 -35
  40. package/types/classic/utils/take-dom-capture.d.ts +1 -1
  41. package/types/close-batch.d.ts +1 -1
  42. package/types/close-manager.d.ts +1 -1
  43. package/types/close.d.ts +4 -6
  44. package/types/core.d.ts +1 -1
  45. package/types/delete-test.d.ts +1 -1
  46. package/types/extract-text.d.ts +7 -9
  47. package/types/get-typed-eyes.d.ts +21 -0
  48. package/types/locate-text.d.ts +7 -9
  49. package/types/locate.d.ts +3 -4
  50. package/types/make-manager.d.ts +2 -1
  51. package/types/open-eyes.d.ts +11 -8
  52. package/types/types.d.ts +38 -23
  53. package/types/ufg/abort.d.ts +5 -3
  54. package/types/ufg/check-and-close.d.ts +5 -5
  55. package/types/ufg/check.d.ts +9 -5
  56. package/types/ufg/close.d.ts +6 -3
  57. package/types/ufg/core.d.ts +1 -1
  58. package/types/ufg/get-base-eyes.d.ts +3 -3
  59. package/types/ufg/open-eyes.d.ts +6 -7
  60. package/types/ufg/types.d.ts +12 -37
  61. package/types/ufg/utils/take-dom-snapshot.d.ts +1 -1
  62. package/types/ufg/utils/take-dom-snapshots.d.ts +1 -1
  63. package/types/ufg/utils/take-vhses.d.ts +1 -1
  64. package/types/utils/wait-for-lazy-load.d.ts +4 -4
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeGetViewportSize = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
5
  function makeGetViewportSize({ spec, logger: defaultLogger, }) {
6
- return async function getViewportSize({ driver, target, logger = defaultLogger, }) {
7
- logger.log(`Command "getViewportSize" is called with ${driver ? 'driver' : 'target'}`);
8
- driver !== null && driver !== void 0 ? driver : (driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger }));
6
+ return async function getViewportSize({ target, logger = defaultLogger, }) {
7
+ logger.log(`Command "getViewportSize" is called`);
8
+ const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
9
9
  return driver.getViewportSize();
10
10
  };
11
11
  }
@@ -4,12 +4,12 @@ exports.makeLocate = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
5
  const take_screenshot_1 = require("./utils/take-screenshot");
6
6
  function makeLocate({ spec, core, logger: defaultLogger, }) {
7
- return async function locate({ settings, driver, target, logger = defaultLogger, } = {}) {
8
- logger.log(`Command "locate" is called with ${driver ? 'driver' : 'target'} and settings`, settings);
9
- driver !== null && driver !== void 0 ? driver : (driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null);
10
- if (!driver) {
11
- return core.locate({ target: target, settings: settings, logger });
7
+ return async function locate({ settings, target, logger = defaultLogger, }) {
8
+ logger.log(`Command "locate" is called with settings`, settings);
9
+ if (!(0, driver_1.isDriver)(target, spec)) {
10
+ return core.locate({ target, settings: settings, logger });
12
11
  }
12
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
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 });
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeSetViewportSize = void 0;
4
4
  const driver_1 = require("@applitools/driver");
5
5
  function makeSetViewportSize({ spec, logger: defaultLogger, }) {
6
- return async function setViewportSize({ driver, target, size, logger = defaultLogger, }) {
7
- logger.log(`Command "setViewportSize" is called with ${driver ? 'driver' : 'target'} and size`, size);
8
- driver !== null && driver !== void 0 ? driver : (driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger }));
6
+ return async function setViewportSize({ target, size, logger = defaultLogger, }) {
7
+ logger.log(`Command "setViewportSize" is called with size`, size);
8
+ const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
9
9
  return driver.setViewportSize(size);
10
10
  };
11
11
  }
@@ -1,15 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeCheckAndClose = void 0;
4
- function makeCheckAndClose({ type: defaultType, getTypedEyes, logger: defaultLogger, }) {
5
- return async function checkAndClose({ type = defaultType, target, settings = {}, config, logger = defaultLogger, } = {}) {
4
+ const driver_1 = require("@applitools/driver");
5
+ function makeCheckAndClose({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
6
+ return async function checkAndClose({ type = defaultType, target = defaultTarget, settings = {}, config, logger = defaultLogger, } = {}) {
6
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 };
7
- const eyes = await getTypedEyes({ type, renderers: settings.renderers });
8
- const results = await eyes.checkAndClose({
9
- target: target,
10
- settings: settings,
8
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
9
+ const typedEyes = await eyes.getTypedEyes({
10
+ type,
11
+ settings: driver && {
12
+ type: driver.isNative ? 'native' : 'web',
13
+ renderers: settings.renderers,
14
+ },
11
15
  logger,
12
16
  });
17
+ const results = await typedEyes.checkAndClose({ target: driver !== null && driver !== void 0 ? driver : target, settings, logger });
13
18
  return results;
14
19
  };
15
20
  }
package/dist/check.js CHANGED
@@ -27,37 +27,46 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.makeCheck = void 0;
30
+ const driver_1 = require("@applitools/driver");
30
31
  const utils = __importStar(require("@applitools/utils"));
31
32
  const chalk_1 = __importDefault(require("chalk"));
32
- function makeCheck({ type: defaultType, getTypedEyes, logger: defaultLogger, }) {
33
- return async function check({ type = defaultType, target, settings, config, logger = defaultLogger, } = {}) {
34
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
35
- var _s, _t, _u, _v;
33
+ function makeCheck({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
34
+ return async function check({ type = defaultType, target = defaultTarget, settings, config, logger = defaultLogger, } = {}) {
35
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
36
+ var _r, _s, _t, _u;
36
37
  settings = { ...config === null || config === void 0 ? void 0 : config.screenshot, ...config === null || config === void 0 ? void 0 : config.check, ...settings };
37
- const eyes = await getTypedEyes({ type, renderers: settings.renderers });
38
38
  (_a = settings.fully) !== null && _a !== void 0 ? _a : (settings.fully = !settings.region && (!settings.frames || settings.frames.length === 0));
39
39
  (_b = settings.waitBeforeCapture) !== null && _b !== void 0 ? _b : (settings.waitBeforeCapture = 100);
40
40
  (_c = settings.stitchMode) !== null && _c !== void 0 ? _c : (settings.stitchMode = 'Scroll');
41
41
  (_d = settings.hideScrollbars) !== null && _d !== void 0 ? _d : (settings.hideScrollbars = true);
42
42
  (_e = settings.hideCaret) !== null && _e !== void 0 ? _e : (settings.hideCaret = true);
43
- (_f = settings.overlap) !== null && _f !== void 0 ? _f : (settings.overlap = { top: 10, bottom: 50 });
44
- (_g = settings.matchLevel) !== null && _g !== void 0 ? _g : (settings.matchLevel = 'Strict');
45
- (_h = settings.ignoreCaret) !== null && _h !== void 0 ? _h : (settings.ignoreCaret = true);
46
- (_j = settings.sendDom) !== null && _j !== void 0 ? _j : (settings.sendDom = eyes.test.account.rcaEnabled || settings.matchLevel === 'Layout' || settings.enablePatterns || settings.useDom);
47
- (_k = settings.autProxy) !== null && _k !== void 0 ? _k : (settings.autProxy = eyes.test.server.proxy);
48
- (_l = settings.useDom) !== null && _l !== void 0 ? _l : (settings.useDom = false);
49
- (_m = (_s = settings).retryTimeout) !== null && _m !== void 0 ? _m : (_s.retryTimeout = 2000);
43
+ settings.overlap = { top: 10, bottom: 50, ...settings === null || settings === void 0 ? void 0 : settings.overlap };
44
+ (_f = settings.matchLevel) !== null && _f !== void 0 ? _f : (settings.matchLevel = 'Strict');
45
+ (_g = settings.ignoreCaret) !== null && _g !== void 0 ? _g : (settings.ignoreCaret = true);
46
+ (_h = settings.sendDom) !== null && _h !== void 0 ? _h : (settings.sendDom = eyes.test.account.rcaEnabled || settings.matchLevel === 'Layout' || settings.enablePatterns || settings.useDom);
47
+ (_j = settings.autProxy) !== null && _j !== void 0 ? _j : (settings.autProxy = eyes.test.server.proxy);
48
+ (_k = settings.useDom) !== null && _k !== void 0 ? _k : (settings.useDom = false);
49
+ (_l = (_r = settings).retryTimeout) !== null && _l !== void 0 ? _l : (_r.retryTimeout = 2000);
50
50
  settings.lazyLoad = settings.lazyLoad === true ? {} : settings.lazyLoad;
51
51
  if (settings.lazyLoad) {
52
- (_o = (_t = settings.lazyLoad).scrollLength) !== null && _o !== void 0 ? _o : (_t.scrollLength = 300);
53
- (_p = (_u = settings.lazyLoad).waitingTime) !== null && _p !== void 0 ? _p : (_u.waitingTime = 2000);
54
- (_q = (_v = settings.lazyLoad).maxAmountToScroll) !== null && _q !== void 0 ? _q : (_v.maxAmountToScroll = 15000);
52
+ (_m = (_s = settings.lazyLoad).scrollLength) !== null && _m !== void 0 ? _m : (_s.scrollLength = 300);
53
+ (_o = (_t = settings.lazyLoad).waitingTime) !== null && _o !== void 0 ? _o : (_t.waitingTime = 2000);
54
+ (_p = (_u = settings.lazyLoad).maxAmountToScroll) !== null && _p !== void 0 ? _p : (_u.maxAmountToScroll = 15000);
55
55
  }
56
- (_r = settings.waitBetweenStitches) !== null && _r !== void 0 ? _r : (settings.waitBetweenStitches = utils.types.isObject(settings.lazyLoad) ? settings.lazyLoad.waitingTime : 100);
56
+ (_q = settings.waitBetweenStitches) !== null && _q !== void 0 ? _q : (settings.waitBetweenStitches = utils.types.isObject(settings.lazyLoad) ? settings.lazyLoad.waitingTime : 100);
57
57
  if (settings.matchLevel === 'Content') {
58
58
  logger.console.log(chalk_1.default.yellow(`The "Content" match level value has been deprecated, use "IgnoreColors" instead.`));
59
59
  }
60
- const results = await eyes.check({ target: target, settings, logger });
60
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
61
+ const typedEyes = await eyes.getTypedEyes({
62
+ type,
63
+ settings: driver && {
64
+ type: driver.isNative ? 'native' : 'web',
65
+ renderers: settings.renderers,
66
+ },
67
+ logger,
68
+ });
69
+ const results = await typedEyes.check({ target: driver !== null && driver !== void 0 ? driver : target, settings, logger });
61
70
  return results;
62
71
  };
63
72
  }
@@ -30,19 +30,23 @@ const take_dom_capture_1 = require("./utils/take-dom-capture");
30
30
  const to_base_check_settings_1 = require("../utils/to-base-check-settings");
31
31
  const wait_for_lazy_load_1 = require("../utils/wait-for-lazy-load");
32
32
  const utils = __importStar(require("@applitools/utils"));
33
- function makeCheckAndClose({ eyes, driver: defaultDriver, spec, logger: defaultLogger, }) {
34
- return async function checkAndClose({ settings = {}, driver, target, logger = defaultLogger, } = {}) {
33
+ function makeCheckAndClose({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
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
- driver !== null && driver !== void 0 ? driver : (driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : defaultDriver);
38
37
  const baseEyes = await eyes.getBaseEyes({ logger });
39
- if (!driver) {
40
- const baseTarget = target;
38
+ if (!(0, driver_1.isDriver)(target, spec)) {
41
39
  const baseSettings = settings;
42
- return (await Promise.all(baseEyes.map(baseEyes => baseEyes.checkAndClose({ target: baseTarget, settings: baseSettings, logger })))).flat();
40
+ return (await Promise.all(baseEyes.map(baseEyes => baseEyes.checkAndClose({ target, settings: baseSettings, logger })))).flat();
41
+ }
42
+ const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
43
+ if (settings.lazyLoad && driver.isWeb) {
44
+ await (0, wait_for_lazy_load_1.waitForLazyLoad)({
45
+ context: driver.currentContext,
46
+ settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
47
+ logger,
48
+ });
43
49
  }
44
- if (settings.lazyLoad)
45
- await (0, wait_for_lazy_load_1.waitForLazyLoad)({ driver, settings: settings.lazyLoad !== true ? settings.lazyLoad : {}, logger });
46
50
  const { elementReferencesToCalculate, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
47
51
  const screenshot = await (0, take_screenshot_1.takeScreenshot)({
48
52
  driver,
@@ -30,21 +30,25 @@ const take_dom_capture_1 = require("./utils/take-dom-capture");
30
30
  const to_base_check_settings_1 = require("../utils/to-base-check-settings");
31
31
  const wait_for_lazy_load_1 = require("../utils/wait-for-lazy-load");
32
32
  const utils = __importStar(require("@applitools/utils"));
33
- function makeCheck({ eyes, driver: defaultDriver, spec, logger: defaultLogger, }) {
34
- return async function check({ settings = {}, driver, target, logger = defaultLogger, } = {}) {
35
- var _a;
33
+ function makeCheck({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
34
+ return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, } = {}) {
35
+ var _a, _b;
36
36
  logger.log('Command "check" is called with settings', settings);
37
- driver !== null && driver !== void 0 ? driver : (driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : defaultDriver);
38
37
  const baseEyes = await eyes.getBaseEyes();
39
- if (!driver) {
40
- const baseTarget = target;
41
- const baseSettings = settings;
42
- return (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target: baseTarget, settings: baseSettings, logger })))).flat();
38
+ if (!(0, driver_1.isDriver)(target, spec)) {
39
+ return (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target, settings: settings, logger })))).flat();
43
40
  }
41
+ const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
44
42
  await driver.refreshContexts();
45
- await driver.currentContext.setScrollingElement(settings.scrollRootElement);
43
+ await driver.currentContext.setScrollingElement((_a = settings.scrollRootElement) !== null && _a !== void 0 ? _a : null);
46
44
  if (settings.lazyLoad && driver.isWeb) {
47
- await (0, wait_for_lazy_load_1.waitForLazyLoad)({ driver, settings: settings.lazyLoad !== true ? settings.lazyLoad : {}, logger });
45
+ if (settings.lazyLoad) {
46
+ await (0, wait_for_lazy_load_1.waitForLazyLoad)({
47
+ context: driver.currentContext,
48
+ settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
49
+ logger,
50
+ });
51
+ }
48
52
  }
49
53
  // TODO it actually could be different per eyes
50
54
  const shouldRunOnce = true;
@@ -71,7 +75,7 @@ function makeCheck({ eyes, driver: defaultDriver, spec, logger: defaultLogger, }
71
75
  if (settings.fully)
72
76
  await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
73
77
  else
74
- await ((_a = screenshot.element) === null || _a === void 0 ? void 0 : _a.setAttribute('data-applitools-scroll', 'true'));
78
+ await ((_b = screenshot.element) === null || _b === void 0 ? void 0 : _b.setAttribute('data-applitools-scroll', 'true'));
75
79
  baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, logger }).catch(() => null);
76
80
  }
77
81
  if (settings.pageId) {
@@ -29,19 +29,15 @@ const take_screenshot_1 = require("../automation/utils/take-screenshot");
29
29
  const take_dom_capture_1 = require("./utils/take-dom-capture");
30
30
  const utils = __importStar(require("@applitools/utils"));
31
31
  const snippets_1 = require("@applitools/snippets");
32
- function makeExtractText({ eyes, driver: defaultDriver, spec, logger: defaultLogger, }) {
33
- return async function extractText({ settings, driver, target, logger = defaultLogger, } = {}) {
32
+ function makeExtractText({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
33
+ return async function extractText({ target = defaultTarget, settings, logger = defaultLogger, }) {
34
34
  logger.log('Command "extractText" is called with settings', settings);
35
- driver !== null && driver !== void 0 ? driver : (driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : defaultDriver);
36
35
  const [baseEyes] = await eyes.getBaseEyes();
37
- if (!driver) {
38
- return baseEyes.extractText({
39
- target: target,
40
- settings: settings,
41
- logger,
42
- });
36
+ if (!(0, driver_1.isDriver)(target, spec)) {
37
+ return baseEyes.extractText({ target, settings: settings, logger });
43
38
  }
44
39
  settings = utils.types.isArray(settings) ? settings : [settings];
40
+ const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
45
41
  const results = await settings.reduce(async (prev, settings) => {
46
42
  var _a;
47
43
  const steps = await prev;
@@ -27,13 +27,13 @@ exports.makeGetBaseEyes = void 0;
27
27
  const utils = __importStar(require("@applitools/utils"));
28
28
  function makeGetBaseEyes({ settings, core, eyes, logger: defaultLogger }) {
29
29
  const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, () => 'default');
30
- if (eyes) {
30
+ if (eyes)
31
31
  getBaseEyesWithCache.setCachedValue('default', Promise.resolve(eyes));
32
- }
33
32
  return getBaseEyesWithCache;
34
33
  async function getBaseEyes({ logger = defaultLogger } = {}) {
35
- logger.log(`Command "getBaseEyes" is called with ${utils.types.isArray(eyes) ? `eyes array of length ${eyes.length}` : 'single eyes instance'}`);
36
- return [await core.openEyes({ settings, logger })];
34
+ logger.log(`Command "getBaseEyes" is called with settings`, settings);
35
+ const eyes = await core.openEyes({ settings, logger });
36
+ return [eyes];
37
37
  }
38
38
  }
39
39
  exports.makeGetBaseEyes = makeGetBaseEyes;
@@ -28,14 +28,14 @@ const driver_1 = require("@applitools/driver");
28
28
  const take_screenshot_1 = require("../automation/utils/take-screenshot");
29
29
  // import {takeDomCapture} from './utils/take-dom-capture'
30
30
  const utils = __importStar(require("@applitools/utils"));
31
- function makeLocateText({ spec, driver: defaultDriver, eyes, logger: defaultLogger, }) {
32
- return async function locateText({ settings, driver, target, logger = defaultLogger, } = {}) {
31
+ function makeLocateText({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
32
+ return async function locateText({ target = defaultTarget, settings, logger = defaultLogger, }) {
33
33
  logger.log('Command "locateText" is called with settings', settings);
34
- driver !== null && driver !== void 0 ? driver : (driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : defaultDriver);
35
34
  const [baseEyes] = await eyes.getBaseEyes();
36
- if (!driver) {
37
- return baseEyes.locateText({ target: target, settings: settings, logger });
35
+ if (!(0, driver_1.isDriver)(target, spec)) {
36
+ return baseEyes.locateText({ target, settings: settings, logger });
38
37
  }
38
+ const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
39
39
  const screenshot = await (0, take_screenshot_1.takeScreenshot)({ driver, settings, logger });
40
40
  const baseTarget = {
41
41
  image: await screenshot.image.toPng(),
@@ -32,11 +32,11 @@ const locate_text_1 = require("./locate-text");
32
32
  const extract_text_1 = require("./extract-text");
33
33
  const utils = __importStar(require("@applitools/utils"));
34
34
  function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
35
- return async function openEyes({ settings, eyes, driver, target, logger = defaultLogger, }) {
35
+ return async function openEyes({ target, settings, eyes, logger = defaultLogger, }) {
36
36
  var _a, _b, _c, _d, _e;
37
37
  var _f;
38
- logger.log(`Command "openEyes" is called with ${(spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), eyes ? 'predefined eyes' : '');
39
- driver !== null && driver !== void 0 ? driver : (driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }) : null);
38
+ logger.log(`Command "openEyes" is called with ${target ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), eyes ? 'predefined eyes' : '');
39
+ const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: settings }));
40
40
  if (driver && !eyes) {
41
41
  const currentContext = driver.currentContext;
42
42
  (_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
@@ -79,10 +79,10 @@ function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
79
79
  return utils.general.extend(baseEyes, eyes => ({
80
80
  type: 'classic',
81
81
  getBaseEyes,
82
- check: (0, check_1.makeCheck)({ eyes, driver, spec, logger }),
83
- checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, driver, spec, logger }),
84
- locateText: (0, locate_text_1.makeLocateText)({ eyes, driver, spec, logger }),
85
- extractText: (0, extract_text_1.makeExtractText)({ eyes, driver, spec, logger }),
82
+ check: (0, check_1.makeCheck)({ eyes, target: driver, spec, logger }),
83
+ checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver, spec, logger }),
84
+ locateText: (0, locate_text_1.makeLocateText)({ eyes, target: driver, spec, logger }),
85
+ extractText: (0, extract_text_1.makeExtractText)({ eyes, target: driver, spec, logger }),
86
86
  }));
87
87
  };
88
88
  }
package/dist/close.js CHANGED
@@ -7,7 +7,8 @@ function makeClose({ eyes, logger: defaultLogger, }) {
7
7
  var _a;
8
8
  settings = { ...config === null || config === void 0 ? void 0 : config.close, ...settings };
9
9
  (_a = settings.updateBaselineIfNew) !== null && _a !== void 0 ? _a : (settings.updateBaselineIfNew = true);
10
- const results = await eyes.close({ settings, logger });
10
+ const typedEyes = await eyes.getTypedEyes({ logger });
11
+ const results = await typedEyes.close({ settings, logger });
11
12
  if (settings.throwErr) {
12
13
  results.forEach(result => {
13
14
  if (result.status !== 'Passed')
@@ -40,7 +40,8 @@ function makeExtractText({ eyes, logger: defaultLogger, }) {
40
40
  settings = { ...config === null || config === void 0 ? void 0 : config.screenshot, ...settings };
41
41
  (_a = settings.autProxy) !== null && _a !== void 0 ? _a : (settings.autProxy = eyes.test.server.proxy);
42
42
  }
43
- const results = await eyes.extractText({ target: target, settings, logger });
43
+ const classicEyes = await eyes.getTypedEyes({ type: 'classic', logger });
44
+ const results = await classicEyes.extractText({ target, settings, logger });
44
45
  return results;
45
46
  };
46
47
  }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeGetTypedEyes = void 0;
4
+ function makeGetTypedEyes({ type: defaultType, settings: defaultSettings, target, cores, logger: defaultLogger, }) {
5
+ let eyes;
6
+ return async function getTypesEyes({ type = defaultType, settings, logger = defaultLogger, } = {}) {
7
+ if (!eyes) {
8
+ eyes =
9
+ type === 'ufg'
10
+ ? await cores.ufg.openEyes({ target, settings: defaultSettings, logger })
11
+ : await cores.classic.openEyes({ target, settings: defaultSettings, logger });
12
+ return eyes;
13
+ }
14
+ else if (eyes.type === type) {
15
+ return eyes;
16
+ }
17
+ else if (type === 'ufg') {
18
+ const baseEyes = await eyes.getBaseEyes();
19
+ return cores.ufg.openEyes({ target, settings: defaultSettings, eyes: baseEyes, logger });
20
+ }
21
+ else {
22
+ const baseEyes = (await Promise.all(settings.renderers.map(renderer => eyes.getBaseEyes({ settings: { type: settings.type, renderer } })))).flat();
23
+ return cores.classic.openEyes({ target, settings: defaultSettings, eyes: baseEyes, logger });
24
+ }
25
+ };
26
+ }
27
+ exports.makeGetTypedEyes = makeGetTypedEyes;
@@ -6,7 +6,8 @@ function makeLocateText({ eyes, logger: defaultLogger, }) {
6
6
  var _a;
7
7
  settings = { ...config === null || config === void 0 ? void 0 : config.screenshot, ...settings };
8
8
  (_a = settings.autProxy) !== null && _a !== void 0 ? _a : (settings.autProxy = eyes.test.server.proxy);
9
- const results = await eyes.locateText({ target: target, settings, logger });
9
+ const classicEyes = await eyes.getTypedEyes({ type: 'classic', logger });
10
+ const results = await classicEyes.locateText({ target: target, settings, logger });
10
11
  return results;
11
12
  };
12
13
  }
@@ -31,7 +31,7 @@ const open_eyes_1 = require("./open-eyes");
31
31
  const close_manager_1 = require("./close-manager");
32
32
  const utils = __importStar(require("@applitools/utils"));
33
33
  function makeMakeManager({ spec, core, concurrency: defaultConcurrency = utils.general.getEnvValue('CONCURRENCY', 'number'), agentId: defaultAgentId, cwd = process.cwd(), logger: defaultLogger, }) {
34
- return async function makeManager({ type, concurrency = defaultConcurrency, legacyConcurrency, agentId = type === 'ufg' ? defaultAgentId === null || defaultAgentId === void 0 ? void 0 : defaultAgentId.replace(/(\/\d)/, '.visualgrid$1') : defaultAgentId, logger = defaultLogger, } = {}) {
34
+ return async function makeManager({ type = 'classic', concurrency = defaultConcurrency, legacyConcurrency, agentId = type === 'ufg' ? defaultAgentId === null || defaultAgentId === void 0 ? void 0 : defaultAgentId.replace(/(\/\d)/, '.visualgrid$1') : defaultAgentId, logger = defaultLogger, } = {}) {
35
35
  concurrency !== null && concurrency !== void 0 ? concurrency : (concurrency = utils.types.isInteger(legacyConcurrency) ? legacyConcurrency * 5 : 5);
36
36
  core !== null && core !== void 0 ? core : (core = (0, core_base_1.makeCore)({ agentId, cwd, logger }));
37
37
  const cores = {
package/dist/open-eyes.js CHANGED
@@ -26,16 +26,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.makeOpenEyes = void 0;
27
27
  const core_1 = require("./classic/core");
28
28
  const core_2 = require("./ufg/core");
29
+ const get_typed_eyes_1 = require("./get-typed-eyes");
29
30
  const check_1 = require("./check");
30
31
  const check_and_close_1 = require("./check-and-close");
31
32
  const locate_text_1 = require("./locate-text");
32
33
  const extract_text_1 = require("./extract-text");
33
34
  const close_1 = require("./close");
34
35
  const utils = __importStar(require("@applitools/utils"));
35
- function makeOpenEyes({ type: defaultType, concurrency, core, cores, spec, logger: defaultLogger, }) {
36
+ function makeOpenEyes({ type: defaultType = 'classic', concurrency, core, cores, spec, logger: defaultLogger, }) {
36
37
  return async function openEyes({ type = defaultType, settings, config, target, logger = defaultLogger, }) {
37
38
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
38
- var _v, _w, _x, _y, _z;
39
+ var _v, _w, _x, _y;
39
40
  settings = { ...config === null || config === void 0 ? void 0 : config.open, ...settings };
40
41
  (_a = settings.userTestId) !== null && _a !== void 0 ? _a : (settings.userTestId = `${settings.testName}--${utils.general.guid()}`);
41
42
  (_b = settings.serverUrl) !== null && _b !== void 0 ? _b : (settings.serverUrl = (_c = utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com');
@@ -52,8 +53,9 @@ function makeOpenEyes({ type: defaultType, concurrency, core, cores, spec, logge
52
53
  (_q = settings.ignoreBaseline) !== null && _q !== void 0 ? _q : (settings.ignoreBaseline = false);
53
54
  (_r = settings.compareWithParentBranch) !== null && _r !== void 0 ? _r : (settings.compareWithParentBranch = false);
54
55
  if (type === 'ufg') {
55
- ;
56
- (_s = (_z = settings).renderConcurrency) !== null && _s !== void 0 ? _s : (_z.renderConcurrency = (_u = (_t = config === null || config === void 0 ? void 0 : config.check) === null || _t === void 0 ? void 0 : _t.renderers) === null || _u === void 0 ? void 0 : _u.length);
56
+ const ufgSettings = settings;
57
+ const ufgConfig = config;
58
+ (_s = ufgSettings.renderConcurrency) !== null && _s !== void 0 ? _s : (ufgSettings.renderConcurrency = (_u = (_t = ufgConfig === null || ufgConfig === void 0 ? void 0 : ufgConfig.check) === null || _t === void 0 ? void 0 : _t.renderers) === null || _u === void 0 ? void 0 : _u.length);
57
59
  }
58
60
  core.logEvent({
59
61
  settings: {
@@ -71,33 +73,25 @@ function makeOpenEyes({ type: defaultType, concurrency, core, cores, spec, logge
71
73
  },
72
74
  logger,
73
75
  });
74
- cores !== null && cores !== void 0 ? cores : (cores = {
75
- ufg: (0, core_2.makeCore)({ spec, core, concurrency: concurrency !== null && concurrency !== void 0 ? concurrency : 5, logger }),
76
- classic: (0, core_1.makeCore)({ spec, core, logger }),
76
+ const getTypedEyes = (0, get_typed_eyes_1.makeGetTypedEyes)({
77
+ type,
78
+ settings: settings,
79
+ target,
80
+ cores: cores !== null && cores !== void 0 ? cores : {
81
+ ufg: (0, core_2.makeCore)({ spec, core, concurrency: concurrency !== null && concurrency !== void 0 ? concurrency : 5, logger }),
82
+ classic: (0, core_1.makeCore)({ spec, core, logger }),
83
+ },
84
+ logger,
77
85
  });
78
- const eyes = type === 'ufg'
79
- ? await cores.ufg.openEyes({ target, settings: settings, logger })
80
- : await cores.classic.openEyes({ target, settings: settings, logger });
81
- async function getTypedEyes({ type = 'classic', renderers, }) {
82
- if (eyes.type === type) {
83
- return eyes;
84
- }
85
- else if (type === 'ufg') {
86
- const baseEyes = await eyes.getBaseEyes();
87
- return cores.ufg.openEyes({ target, eyes: baseEyes, logger });
88
- }
89
- else {
90
- const baseEyes = (await Promise.all(renderers.map(renderer => eyes.getBaseEyes({ settings: { renderer, type: 'native' } })))).flat();
91
- return cores.classic.openEyes({ target, eyes: baseEyes, logger });
92
- }
93
- }
94
- return utils.general.extend(eyes, {
95
- check: (0, check_1.makeCheck)({ type, getTypedEyes, logger }),
96
- checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ type, getTypedEyes, logger }),
86
+ const eyes = await getTypedEyes({ logger });
87
+ return utils.general.extend(eyes, eyes => ({
88
+ getTypedEyes,
89
+ check: (0, check_1.makeCheck)({ type, eyes, target, spec, logger }),
90
+ checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ type, eyes, target, spec, logger }),
97
91
  locateText: (0, locate_text_1.makeLocateText)({ eyes, logger }),
98
92
  extractText: (0, extract_text_1.makeExtractText)({ eyes, logger }),
99
93
  close: (0, close_1.makeClose)({ eyes, logger }),
100
- });
94
+ }));
101
95
  };
102
96
  }
103
97
  exports.makeOpenEyes = makeOpenEyes;
package/dist/types.js CHANGED
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("@applitools/core-base/types"), exports);
18
+ __exportStar(require("./automation/types"), exports);
package/dist/ufg/abort.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeAbort = void 0;
4
4
  const abort_error_1 = require("../errors/abort-error");
5
- function makeAbort({ storage, controller, logger: defaultLogger, }) {
5
+ function makeAbort({ storage, controller, logger: defaultLogger }) {
6
6
  return async function ({ logger = defaultLogger, } = {}) {
7
7
  controller.abort();
8
8
  const tests = storage.reduce((tests, { renderer, promise }) => {
package/dist/ufg/check.js CHANGED
@@ -35,9 +35,9 @@ const generate_safe_selectors_1 = require("./utils/generate-safe-selectors");
35
35
  const abort_error_1 = require("../errors/abort-error");
36
36
  const utils = __importStar(require("@applitools/utils"));
37
37
  const chalk_1 = __importDefault(require("chalk"));
38
- function makeCheck({ eyes, client, driver: defaultDriver, spec, signal, logger: defaultLogger, }) {
39
- return async function check({ settings = {}, driver, target, logger = defaultLogger, }) {
40
- var _a, _b;
38
+ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger: defaultLogger, }) {
39
+ return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, }) {
40
+ var _a, _b, _c;
41
41
  logger.log('Command "check" is called with settings', settings);
42
42
  if (signal.aborted) {
43
43
  logger.warn('Command "check" was called after test was already aborted');
@@ -45,8 +45,9 @@ function makeCheck({ eyes, client, driver: defaultDriver, spec, signal, logger:
45
45
  }
46
46
  const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
47
47
  let snapshots, snapshotUrl, snapshotTitle, userAgent, regionToTarget, selectorsToCalculate;
48
- driver !== null && driver !== void 0 ? driver : (driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : defaultDriver);
49
- if (driver) {
48
+ if ((0, driver_1.isDriver)(target, spec)) {
49
+ const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
50
+ await driver.currentContext.setScrollingElement((_a = settings.scrollRootElement) !== null && _a !== void 0 ? _a : null);
50
51
  if (driver.isWeb && (!settings.renderers || settings.renderers.length === 0)) {
51
52
  const viewportSize = await driver.getViewportSize();
52
53
  settings.renderers = [{ name: 'chrome', ...viewportSize }];
@@ -60,7 +61,7 @@ function makeCheck({ eyes, client, driver: defaultDriver, spec, signal, logger:
60
61
  });
61
62
  cleanupGeneratedSelectors = generated.cleanupGeneratedSelectors;
62
63
  if (elementReferenceToTarget) {
63
- regionToTarget = (_a = generated.selectors[0]) === null || _a === void 0 ? void 0 : _a.safeSelector;
64
+ regionToTarget = (_b = generated.selectors[0]) === null || _b === void 0 ? void 0 : _b.safeSelector;
64
65
  if (!regionToTarget)
65
66
  throw new Error('Target element not found');
66
67
  selectorsToCalculate = generated.selectors.slice(1);
@@ -82,8 +83,12 @@ function makeCheck({ eyes, client, driver: defaultDriver, spec, signal, logger:
82
83
  },
83
84
  hooks: {
84
85
  async beforeSnapshots() {
85
- if (driver.isWeb && settings.lazyLoad) {
86
- await (0, wait_for_lazy_load_1.waitForLazyLoad)({ driver, settings: settings.lazyLoad !== true ? settings.lazyLoad : {}, logger });
86
+ if (settings.lazyLoad && driver.isWeb) {
87
+ await (0, wait_for_lazy_load_1.waitForLazyLoad)({
88
+ context: driver.currentContext,
89
+ settings: settings.lazyLoad !== true ? settings.lazyLoad : {},
90
+ logger,
91
+ });
87
92
  }
88
93
  },
89
94
  },
@@ -102,7 +107,7 @@ function makeCheck({ eyes, client, driver: defaultDriver, spec, signal, logger:
102
107
  snapshots = !utils.types.isArray(target) ? Array(settings.renderers.length).fill(target) : target;
103
108
  snapshotUrl = utils.types.has(snapshots[0], 'url') ? snapshots[0].url : undefined;
104
109
  }
105
- regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_b = elementReferenceToTarget) !== null && _b !== void 0 ? _b : settings.region);
110
+ regionToTarget !== null && regionToTarget !== void 0 ? regionToTarget : (regionToTarget = (_c = elementReferenceToTarget) !== null && _c !== void 0 ? _c : settings.region);
106
111
  selectorsToCalculate !== null && selectorsToCalculate !== void 0 ? selectorsToCalculate : (selectorsToCalculate = elementReferencesToCalculate.map(selector => ({
107
112
  originalSelector: selector,
108
113
  safeSelector: selector,
@@ -27,29 +27,13 @@ exports.makeGetBaseEyes = void 0;
27
27
  const utils = __importStar(require("@applitools/utils"));
28
28
  function makeGetBaseEyes({ settings: defaultSettings, core, client, eyes, logger: defaultLogger }) {
29
29
  const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, ([options]) => options === null || options === void 0 ? void 0 : options.settings);
30
- if (eyes) {
30
+ if (eyes)
31
31
  eyes.forEach(eyes => getBaseEyesWithCache.setCachedValue(eyes.test.rendererInfo, Promise.resolve([eyes])));
32
- }
33
32
  return getBaseEyesWithCache;
34
33
  async function getBaseEyes({ settings, logger = defaultLogger, } = {}) {
35
34
  logger.log(`Command "getBaseEyes" is called with settings`, settings);
36
35
  const environment = await client.bookRenderer({ settings });
37
36
  const eyes = await core.openEyes({ settings: { ...defaultSettings, environment }, logger });
38
- const aborted = utils.promises.makeControlledPromise();
39
- const queue = [];
40
- eyes.check = utils.general.wrap(eyes.check, async (check, options) => {
41
- var _a, _b;
42
- var _c;
43
- const index = options.settings.stepIndex;
44
- (_a = queue[index]) !== null && _a !== void 0 ? _a : (queue[index] = utils.promises.makeControlledPromise());
45
- if (index > 0)
46
- await Promise.race([((_b = queue[_c = index - 1]) !== null && _b !== void 0 ? _b : (queue[_c] = utils.promises.makeControlledPromise())), aborted]);
47
- return check(options).finally(queue[index].resolve);
48
- });
49
- eyes.abort = utils.general.wrap(eyes.abort, async (abort, options) => {
50
- aborted.reject(new Error('Command "check" was aborted due to possible error in previous step'));
51
- return abort(options);
52
- });
53
37
  return [eyes];
54
38
  }
55
39
  }