@applitools/core 1.2.16 → 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 (63) hide show
  1. package/dist/automation/get-viewport-size.js +2 -2
  2. package/dist/automation/locate.js +7 -10
  3. package/dist/automation/set-viewport-size.js +2 -2
  4. package/dist/check-and-close.js +11 -5
  5. package/dist/check.js +26 -16
  6. package/dist/classic/check-and-close.js +13 -12
  7. package/dist/classic/check.js +21 -11
  8. package/dist/classic/extract-text.js +6 -6
  9. package/dist/classic/get-base-eyes.js +39 -0
  10. package/dist/classic/locate-text.js +10 -6
  11. package/dist/classic/open-eyes.js +16 -15
  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 +8 -5
  17. package/dist/open-eyes.js +24 -11
  18. package/dist/types.js +1 -0
  19. package/dist/ufg/check.js +50 -40
  20. package/dist/ufg/get-base-eyes.js +40 -0
  21. package/dist/ufg/open-eyes.js +57 -107
  22. package/dist/utils/wait-for-lazy-load.js +10 -8
  23. package/package.json +19 -17
  24. package/types/automation/get-viewport-size.d.ts +4 -3
  25. package/types/automation/locate.d.ts +7 -8
  26. package/types/automation/set-viewport-size.d.ts +4 -3
  27. package/types/automation/types.d.ts +24 -20
  28. package/types/automation/utils/take-screenshot.d.ts +1 -1
  29. package/types/check-and-close.d.ts +14 -9
  30. package/types/check.d.ts +10 -7
  31. package/types/classic/check-and-close.d.ts +7 -8
  32. package/types/classic/check.d.ts +7 -8
  33. package/types/classic/core.d.ts +3 -3
  34. package/types/classic/extract-text.d.ts +8 -9
  35. package/types/classic/get-base-eyes.d.ts +17 -0
  36. package/types/classic/locate-text.d.ts +8 -9
  37. package/types/classic/open-eyes.d.ts +8 -7
  38. package/types/classic/types.d.ts +11 -8
  39. package/types/classic/utils/take-dom-capture.d.ts +1 -1
  40. package/types/close-batch.d.ts +1 -1
  41. package/types/close-manager.d.ts +3 -3
  42. package/types/close.d.ts +4 -6
  43. package/types/core.d.ts +2 -2
  44. package/types/delete-test.d.ts +1 -1
  45. package/types/extract-text.d.ts +7 -9
  46. package/types/get-typed-eyes.d.ts +21 -0
  47. package/types/locate-text.d.ts +7 -9
  48. package/types/locate.d.ts +3 -4
  49. package/types/make-manager.d.ts +3 -2
  50. package/types/open-eyes.d.ts +12 -10
  51. package/types/types.d.ts +60 -41
  52. package/types/ufg/abort.d.ts +1 -1
  53. package/types/ufg/check-and-close.d.ts +6 -8
  54. package/types/ufg/check.d.ts +7 -15
  55. package/types/ufg/close.d.ts +1 -1
  56. package/types/ufg/core.d.ts +2 -2
  57. package/types/ufg/get-base-eyes.d.ts +23 -0
  58. package/types/ufg/open-eyes.d.ts +7 -7
  59. package/types/ufg/types.d.ts +24 -9
  60. package/types/ufg/utils/take-dom-snapshot.d.ts +1 -1
  61. package/types/ufg/utils/take-dom-snapshots.d.ts +1 -1
  62. package/types/ufg/utils/take-vhses.d.ts +1 -1
  63. package/types/utils/wait-for-lazy-load.d.ts +4 -4
@@ -3,8 +3,8 @@ 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({ target, logger = defaultLogger }) {
7
- logger.log('Command "getViewportSize" is called');
6
+ return async function getViewportSize({ target, logger = defaultLogger, }) {
7
+ logger.log(`Command "getViewportSize" is called`);
8
8
  const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
9
9
  return driver.getViewportSize();
10
10
  };
@@ -3,18 +3,15 @@ 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, target: defaultTarget, logger: defaultLogger, }) {
7
- return async function locate({ target = defaultTarget, settings, logger = defaultLogger, } = {}) {
8
- logger.log('Command "locate" is called with settings', settings);
9
- if (!(spec === null || spec === void 0 ? void 0 : spec.isDriver(target))) {
10
- return core.locate({ target: target, settings: settings, logger });
6
+ function makeLocate({ spec, core, logger: defaultLogger, }) {
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 });
11
11
  }
12
- // TODO driver custom config
13
- const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
12
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
14
13
  const screenshot = await (0, take_screenshot_1.takeScreenshot)({ driver, settings, logger });
15
- const baseTarget = {
16
- image: await screenshot.image.toPng(),
17
- };
14
+ const baseTarget = { image: await screenshot.image.toPng() };
18
15
  const results = await core.locate({ target: baseTarget, settings: settings, logger });
19
16
  return results;
20
17
  };
@@ -3,8 +3,8 @@ 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({ target, size, logger = defaultLogger }) {
7
- logger.log('Command "setViewportSize" is called with size', size);
6
+ return async function setViewportSize({ target, size, logger = defaultLogger, }) {
7
+ logger.log(`Command "setViewportSize" is called with size`, size);
8
8
  const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
9
9
  return driver.setViewportSize(size);
10
10
  };
@@ -1,14 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeCheckAndClose = void 0;
4
- function makeCheckAndClose({ eyes, logger: defaultLogger, }) {
5
- return async function checkAndClose({ 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 results = await eyes.checkAndClose({
8
- target: target,
9
- 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
+ },
10
15
  logger,
11
16
  });
17
+ const results = await typedEyes.checkAndClose({ target: driver !== null && driver !== void 0 ? driver : target, settings, logger });
12
18
  return results;
13
19
  };
14
20
  }
package/dist/check.js CHANGED
@@ -27,36 +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({ eyes, logger: defaultLogger, }) {
33
- return async function check({ 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
38
  (_a = settings.fully) !== null && _a !== void 0 ? _a : (settings.fully = !settings.region && (!settings.frames || settings.frames.length === 0));
38
39
  (_b = settings.waitBeforeCapture) !== null && _b !== void 0 ? _b : (settings.waitBeforeCapture = 100);
39
40
  (_c = settings.stitchMode) !== null && _c !== void 0 ? _c : (settings.stitchMode = 'Scroll');
40
41
  (_d = settings.hideScrollbars) !== null && _d !== void 0 ? _d : (settings.hideScrollbars = true);
41
42
  (_e = settings.hideCaret) !== null && _e !== void 0 ? _e : (settings.hideCaret = true);
42
- (_f = settings.overlap) !== null && _f !== void 0 ? _f : (settings.overlap = { top: 10, bottom: 50 });
43
- (_g = settings.matchLevel) !== null && _g !== void 0 ? _g : (settings.matchLevel = 'Strict');
44
- (_h = settings.ignoreCaret) !== null && _h !== void 0 ? _h : (settings.ignoreCaret = true);
45
- (_j = settings.sendDom) !== null && _j !== void 0 ? _j : (settings.sendDom = eyes.test.account.rcaEnabled || settings.matchLevel === 'Layout' || settings.enablePatterns || settings.useDom);
46
- (_k = settings.autProxy) !== null && _k !== void 0 ? _k : (settings.autProxy = eyes.test.server.proxy);
47
- (_l = settings.useDom) !== null && _l !== void 0 ? _l : (settings.useDom = false);
48
- (_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);
49
50
  settings.lazyLoad = settings.lazyLoad === true ? {} : settings.lazyLoad;
50
51
  if (settings.lazyLoad) {
51
- (_o = (_t = settings.lazyLoad).scrollLength) !== null && _o !== void 0 ? _o : (_t.scrollLength = 300);
52
- (_p = (_u = settings.lazyLoad).waitingTime) !== null && _p !== void 0 ? _p : (_u.waitingTime = 2000);
53
- (_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);
54
55
  }
55
- (_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);
56
57
  if (settings.matchLevel === 'Content') {
57
58
  logger.console.log(chalk_1.default.yellow(`The "Content" match level value has been deprecated, use "IgnoreColors" instead.`));
58
59
  }
59
- 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 });
60
70
  return results;
61
71
  };
62
72
  }
@@ -30,21 +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({ spec, eyes, target: defaultTarget, logger: defaultLogger, }) {
34
- return async function checkAndClose({ target = defaultTarget, settings, 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
- if (!(spec === null || spec === void 0 ? void 0 : spec.isDriver(target))) {
38
- return eyes.checkAndClose({
39
- target: target,
40
- settings: settings,
37
+ const baseEyes = await eyes.getBaseEyes({ logger });
38
+ if (!(0, driver_1.isDriver)(target, spec)) {
39
+ const baseSettings = settings;
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 : {},
41
47
  logger,
42
48
  });
43
49
  }
44
- // TODO driver custom config
45
- const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
46
- if (settings.lazyLoad)
47
- await (0, wait_for_lazy_load_1.waitForLazyLoad)({ driver, settings: settings.lazyLoad !== true ? settings.lazyLoad : {}, logger });
48
50
  const { elementReferencesToCalculate, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({ settings });
49
51
  const screenshot = await (0, take_screenshot_1.takeScreenshot)({
50
52
  driver,
@@ -73,8 +75,7 @@ function makeCheckAndClose({ spec, eyes, target: defaultTarget, logger: defaultL
73
75
  baseTarget.fullViewSize = scrollingElement ? await scrollingElement.getContentSize() : await driver.getViewportSize();
74
76
  }
75
77
  await screenshot.restoreState();
76
- const results = await eyes.checkAndClose({ target: baseTarget, settings: baseSettings, logger });
77
- return results;
78
+ return (await Promise.all(baseEyes.map(baseEyes => baseEyes.checkAndClose({ target: baseTarget, settings: baseSettings, logger })))).flat();
78
79
  };
79
80
  }
80
81
  exports.makeCheckAndClose = makeCheckAndClose;
@@ -30,20 +30,28 @@ 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({ spec, eyes, target: defaultTarget, logger: defaultLogger, }) {
33
+ function makeCheck({ eyes, target: defaultTarget, spec, logger: defaultLogger, }) {
34
34
  return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, } = {}) {
35
- var _a;
35
+ var _a, _b;
36
36
  logger.log('Command "check" is called with settings', settings);
37
- if (!(spec === null || spec === void 0 ? void 0 : spec.isDriver(target))) {
38
- return eyes.check({ target: target, settings: settings, logger });
37
+ const baseEyes = await eyes.getBaseEyes();
38
+ if (!(0, driver_1.isDriver)(target, spec)) {
39
+ return (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target, settings: settings, logger })))).flat();
39
40
  }
40
- // TODO driver custom config
41
41
  const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
42
- await driver.currentContext.setScrollingElement(settings.scrollRootElement);
42
+ await driver.refreshContexts();
43
+ await driver.currentContext.setScrollingElement((_a = settings.scrollRootElement) !== null && _a !== void 0 ? _a : null);
43
44
  if (settings.lazyLoad && driver.isWeb) {
44
- 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
+ }
45
52
  }
46
- const shouldRunOnce = eyes.test.isNew;
53
+ // TODO it actually could be different per eyes
54
+ const shouldRunOnce = true;
47
55
  const finishAt = Date.now() + settings.retryTimeout;
48
56
  let baseTarget;
49
57
  let baseSettings;
@@ -67,7 +75,7 @@ function makeCheck({ spec, eyes, target: defaultTarget, logger: defaultLogger, }
67
75
  if (settings.fully)
68
76
  await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
69
77
  else
70
- 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'));
71
79
  baseTarget.dom = await (0, take_dom_capture_1.takeDomCapture)({ driver, logger }).catch(() => null);
72
80
  }
73
81
  if (settings.pageId) {
@@ -77,10 +85,12 @@ function makeCheck({ spec, eyes, target: defaultTarget, logger: defaultLogger, }
77
85
  baseTarget.fullViewSize = scrollingElement ? await scrollingElement.getContentSize() : await driver.getViewportSize();
78
86
  }
79
87
  await screenshot.restoreState();
80
- results = await eyes.check({ target: baseTarget, settings: { ...baseSettings, ignoreMismatch: !shouldRunOnce }, logger });
88
+ baseSettings.ignoreMismatch = !shouldRunOnce;
89
+ results = (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target: baseTarget, settings: baseSettings, logger })))).flat();
81
90
  } while (!shouldRunOnce && !results.some(result => result.asExpected) && Date.now() < finishAt);
82
91
  if (!shouldRunOnce && !results.some(result => result.asExpected)) {
83
- results = await eyes.check({ target: baseTarget, settings: baseSettings, logger });
92
+ baseSettings.ignoreMismatch = false;
93
+ results = (await Promise.all(baseEyes.map(baseEyes => baseEyes.check({ target: baseTarget, settings: baseSettings, logger })))).flat();
84
94
  }
85
95
  return results;
86
96
  };
@@ -29,14 +29,14 @@ 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({ spec, eyes, target: defaultTarget, logger: defaultLogger, }) {
33
- return async function extractText({ target = defaultTarget, settings, 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
- if (!(spec === null || spec === void 0 ? void 0 : spec.isDriver(target))) {
36
- return eyes.extractText({ target: target, settings: settings, logger });
35
+ const [baseEyes] = await eyes.getBaseEyes();
36
+ if (!(0, driver_1.isDriver)(target, spec)) {
37
+ return baseEyes.extractText({ target, settings: settings, logger });
37
38
  }
38
39
  settings = utils.types.isArray(settings) ? settings : [settings];
39
- // TODO driver custom config
40
40
  const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
41
41
  const results = await settings.reduce(async (prev, settings) => {
42
42
  var _a;
@@ -64,7 +64,7 @@ function makeExtractText({ spec, eyes, target: defaultTarget, logger: defaultLog
64
64
  }
65
65
  delete settings.region;
66
66
  delete settings.normalization;
67
- const results = await eyes.extractText({ target: baseTarget, settings: settings, logger });
67
+ const results = await baseEyes.extractText({ target: baseTarget, settings: settings, logger });
68
68
  steps.push(results);
69
69
  return steps;
70
70
  }, Promise.resolve([]));
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.makeGetBaseEyes = void 0;
27
+ const utils = __importStar(require("@applitools/utils"));
28
+ function makeGetBaseEyes({ settings, core, eyes, logger: defaultLogger }) {
29
+ const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, () => 'default');
30
+ if (eyes)
31
+ getBaseEyesWithCache.setCachedValue('default', Promise.resolve(eyes));
32
+ return getBaseEyesWithCache;
33
+ async function getBaseEyes({ logger = defaultLogger } = {}) {
34
+ logger.log(`Command "getBaseEyes" is called with settings`, settings);
35
+ const eyes = await core.openEyes({ settings, logger });
36
+ return [eyes];
37
+ }
38
+ }
39
+ exports.makeGetBaseEyes = makeGetBaseEyes;
@@ -28,13 +28,13 @@ 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, eyes, target: defaultTarget, logger: defaultLogger, }) {
32
- return async function locateText({ target = defaultTarget, settings, 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
- if (!(spec === null || spec === void 0 ? void 0 : spec.isDriver(target))) {
35
- return eyes.locateText({ target: target, settings: settings, logger });
34
+ const [baseEyes] = await eyes.getBaseEyes();
35
+ if (!(0, driver_1.isDriver)(target, spec)) {
36
+ return baseEyes.locateText({ target, settings: settings, logger });
36
37
  }
37
- // TODO driver custom config
38
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 = {
@@ -46,7 +46,11 @@ function makeLocateText({ spec, eyes, target: defaultTarget, logger: defaultLogg
46
46
  // else await screenshot.element?.setAttribute('data-applitools-scroll', 'true')
47
47
  // baseTarget.dom = await takeDomCapture({driver, logger}).catch(() => null)
48
48
  }
49
- const results = await eyes.locateText({ target: baseTarget, settings: settings, logger });
49
+ const results = await baseEyes.locateText({
50
+ target: baseTarget,
51
+ settings: settings,
52
+ logger,
53
+ });
50
54
  return results;
51
55
  };
52
56
  }
@@ -25,21 +25,19 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.makeOpenEyes = void 0;
27
27
  const driver_1 = require("@applitools/driver");
28
+ const get_base_eyes_1 = require("./get-base-eyes");
28
29
  const check_1 = require("./check");
29
30
  const check_and_close_1 = require("./check-and-close");
30
31
  const locate_text_1 = require("./locate-text");
31
32
  const extract_text_1 = require("./extract-text");
32
33
  const utils = __importStar(require("@applitools/utils"));
33
- function makeOpenEyes({ spec, core, logger: defaultLogger, }) {
34
- return async function openEyes({ target, settings, logger = defaultLogger, }) {
34
+ function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
35
+ return async function openEyes({ target, settings, eyes, logger = defaultLogger, }) {
35
36
  var _a, _b, _c, _d, _e;
36
37
  var _f;
37
- logger.log(`Command "openEyes" is called with ${(spec === null || spec === void 0 ? void 0 : spec.isDriver(target)) ? 'default driver and' : ''} settings`, settings);
38
- // TODO driver custom config
39
- const driver = (spec === null || spec === void 0 ? void 0 : spec.isDriver(target))
40
- ? await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: { useCeilForViewportSize: settings.useCeilForViewportSize } })
41
- : null;
42
- if (driver) {
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
+ if (driver && !eyes) {
43
41
  const currentContext = driver.currentContext;
44
42
  (_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
45
43
  if (!settings.environment.viewportSize || driver.isMobile) {
@@ -76,13 +74,16 @@ function makeOpenEyes({ spec, core, logger: defaultLogger, }) {
76
74
  }
77
75
  await currentContext.focus();
78
76
  }
79
- const eyes = await core.openEyes({ settings, logger });
80
- return utils.general.extend(eyes, {
81
- check: (0, check_1.makeCheck)({ spec, eyes, target, logger }),
82
- checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ spec, eyes, target, logger }),
83
- locateText: (0, locate_text_1.makeLocateText)({ spec, eyes, target, logger }),
84
- extractText: (0, extract_text_1.makeExtractText)({ spec, eyes, target, logger }),
85
- });
77
+ const getBaseEyes = (0, get_base_eyes_1.makeGetBaseEyes)({ settings, core, eyes, logger });
78
+ const [baseEyes] = await getBaseEyes();
79
+ return utils.general.extend(baseEyes, eyes => ({
80
+ type: 'classic',
81
+ getBaseEyes,
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
89
  exports.makeOpenEyes = makeOpenEyes;
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,13 +31,16 @@ 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, } = {}) {
35
- core !== null && core !== void 0 ? core : (core = (0, core_base_1.makeCore)({ agentId, cwd, logger }));
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, } = {}) {
36
35
  concurrency !== null && concurrency !== void 0 ? concurrency : (concurrency = utils.types.isInteger(legacyConcurrency) ? legacyConcurrency * 5 : 5);
37
- const typedCore = type === 'ufg' ? (0, core_2.makeCore)({ spec, core, concurrency, logger }) : (0, core_1.makeCore)({ spec, core, logger });
36
+ core !== null && core !== void 0 ? core : (core = (0, core_base_1.makeCore)({ agentId, cwd, logger }));
37
+ const cores = {
38
+ ufg: (0, core_2.makeCore)({ spec, core, concurrency, logger }),
39
+ classic: (0, core_1.makeCore)({ spec, core, logger }),
40
+ };
38
41
  const storage = [];
39
42
  // open eyes with result storage
40
- const openEyes = utils.general.wrap((0, open_eyes_1.makeOpenEyes)({ spec, core: typedCore, logger }), async (openEyes, options) => {
43
+ const openEyes = utils.general.wrap((0, open_eyes_1.makeOpenEyes)({ type, spec, core, cores, logger }), async (openEyes, options) => {
41
44
  const eyes = await openEyes(options);
42
45
  const item = { eyes };
43
46
  storage.push(item);
@@ -58,7 +61,7 @@ function makeMakeManager({ spec, core, concurrency: defaultConcurrency = utils.g
58
61
  });
59
62
  return {
60
63
  openEyes,
61
- closeManager: (0, close_manager_1.makeCloseManager)({ core: typedCore, storage, logger }),
64
+ closeManager: (0, close_manager_1.makeCloseManager)({ core, storage, logger }),
62
65
  };
63
66
  };
64
67
  }
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({ spec, core, concurrency, logger: defaultLogger, }) {
36
- return async function openEyes({ type, target, settings, config, logger = defaultLogger, }) {
36
+ function makeOpenEyes({ type: defaultType = 'classic', concurrency, core, cores, spec, logger: defaultLogger, }) {
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');
@@ -51,9 +52,10 @@ function makeOpenEyes({ spec, core, concurrency, logger: defaultLogger, }) {
51
52
  (_p = settings.baselineBranchName) !== null && _p !== void 0 ? _p : (settings.baselineBranchName = utils.general.getEnvValue('BASELINE_BRANCH'));
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
- (_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);
55
- if (!utils.types.has(core, 'type')) {
56
- core = type === 'ufg' ? (0, core_2.makeCore)({ spec, core, concurrency, logger }) : (0, core_1.makeCore)({ spec, core, logger });
55
+ if (type === 'ufg') {
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,14 +73,25 @@ function makeOpenEyes({ spec, core, concurrency, logger: defaultLogger, }) {
71
73
  },
72
74
  logger,
73
75
  });
74
- const eyes = await core.openEyes({ target, settings: settings, logger });
75
- return utils.general.extend(eyes, {
76
- check: (0, check_1.makeCheck)({ eyes, logger }),
77
- checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, 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,
85
+ });
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 }),
78
91
  locateText: (0, locate_text_1.makeLocateText)({ eyes, logger }),
79
92
  extractText: (0, extract_text_1.makeExtractText)({ eyes, logger }),
80
93
  close: (0, close_1.makeClose)({ eyes, logger }),
81
- });
94
+ }));
82
95
  };
83
96
  }
84
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);