@applitools/core 1.4.9 → 1.4.10

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 (80) hide show
  1. package/dist/automation/get-viewport-size.js +1 -1
  2. package/dist/automation/locate.js +1 -1
  3. package/dist/automation/set-viewport-size.js +1 -1
  4. package/dist/check.js +4 -1
  5. package/dist/classic/abort.js +3 -3
  6. package/dist/classic/close.js +2 -2
  7. package/dist/classic/core.js +0 -4
  8. package/dist/{automation → classic}/extract-text.js +9 -6
  9. package/dist/{automation → classic}/locate-text.js +8 -5
  10. package/dist/classic/open-eyes.js +5 -1
  11. package/dist/{get-manager-results.js → close-manager.js} +9 -7
  12. package/dist/close.js +25 -1
  13. package/dist/core.js +0 -4
  14. package/dist/errors/abort-error.js +1 -5
  15. package/dist/extract-text.js +17 -13
  16. package/dist/get-typed-eyes.js +2 -4
  17. package/dist/index.js +3 -3
  18. package/dist/locate-text.js +7 -33
  19. package/dist/locate.js +1 -1
  20. package/dist/make-manager.js +28 -5
  21. package/dist/open-eyes.js +5 -3
  22. package/dist/types.js +1 -0
  23. package/dist/ufg/abort.js +19 -11
  24. package/dist/ufg/check-and-close.js +4 -4
  25. package/dist/ufg/check.js +9 -11
  26. package/dist/ufg/close.js +18 -17
  27. package/dist/ufg/core.js +0 -4
  28. package/dist/ufg/open-eyes.js +25 -13
  29. package/package.json +9 -11
  30. package/types/automation/get-viewport-size.d.ts +5 -5
  31. package/types/automation/locate.d.ts +6 -6
  32. package/types/automation/set-viewport-size.d.ts +5 -5
  33. package/types/automation/types.d.ts +40 -36
  34. package/types/automation/utils/take-screenshot.d.ts +9 -9
  35. package/types/automation/utils/to-base-check-settings.d.ts +13 -6
  36. package/types/automation/utils/wait-for-lazy-load.d.ts +3 -3
  37. package/types/check-and-close.d.ts +11 -9
  38. package/types/check.d.ts +9 -9
  39. package/types/classic/abort.d.ts +8 -8
  40. package/types/classic/check-and-close.d.ts +9 -9
  41. package/types/classic/check.d.ts +9 -9
  42. package/types/classic/close.d.ts +8 -8
  43. package/types/classic/core.d.ts +4 -4
  44. package/types/classic/extract-text.d.ts +16 -0
  45. package/types/classic/locate-text.d.ts +15 -0
  46. package/types/classic/open-eyes.d.ts +6 -6
  47. package/types/classic/types.d.ts +7 -7
  48. package/types/classic/utils/take-dom-capture.d.ts +3 -3
  49. package/types/close-manager.d.ts +18 -0
  50. package/types/close.d.ts +6 -7
  51. package/types/core.d.ts +4 -4
  52. package/types/errors/abort-error.d.ts +1 -3
  53. package/types/extract-text.d.ts +8 -10
  54. package/types/get-typed-eyes.d.ts +5 -6
  55. package/types/index.d.ts +3 -3
  56. package/types/locate-text.d.ts +8 -10
  57. package/types/locate.d.ts +8 -8
  58. package/types/make-manager.d.ts +5 -5
  59. package/types/open-eyes.d.ts +9 -9
  60. package/types/types.d.ts +84 -62
  61. package/types/ufg/abort.d.ts +16 -8
  62. package/types/ufg/check-and-close.d.ts +9 -9
  63. package/types/ufg/check.d.ts +9 -9
  64. package/types/ufg/close.d.ts +17 -8
  65. package/types/ufg/core.d.ts +4 -4
  66. package/types/ufg/open-eyes.d.ts +6 -6
  67. package/types/ufg/types.d.ts +17 -13
  68. package/types/ufg/utils/extract-broker-url.d.ts +3 -3
  69. package/types/ufg/utils/generate-safe-selectors.d.ts +8 -8
  70. package/types/ufg/utils/take-dom-snapshot.d.ts +3 -3
  71. package/types/ufg/utils/take-dom-snapshots.d.ts +3 -3
  72. package/types/ufg/utils/take-snapshots.d.ts +3 -3
  73. package/types/ufg/utils/take-vhses.d.ts +3 -3
  74. package/dist/get-eyes-results.js +0 -18
  75. package/dist/ufg/get-results.js +0 -27
  76. package/types/automation/extract-text.d.ts +0 -16
  77. package/types/automation/locate-text.d.ts +0 -15
  78. package/types/get-eyes-results.d.ts +0 -12
  79. package/types/get-manager-results.d.ts +0 -14
  80. package/types/ufg/get-results.d.ts +0 -11
package/dist/ufg/check.js CHANGED
@@ -39,9 +39,9 @@ const chalk_1 = __importDefault(require("chalk"));
39
39
  function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger: defaultLogger, }) {
40
40
  return async function check({ target = defaultTarget, settings = {}, logger = defaultLogger, }) {
41
41
  var _a, _b, _c, _d, _e;
42
- logger.log('Command "check" is called with settings', settings);
42
+ logger === null || logger === void 0 ? void 0 : logger.log('Command "check" is called with settings', settings);
43
43
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
44
- logger.warn('Command "check" was called after test was already aborted');
44
+ logger === null || logger === void 0 ? void 0 : logger.warn('Command "check" was called after test was already aborted');
45
45
  throw new abort_error_1.AbortError('Command "check" was called after test was already aborted');
46
46
  }
47
47
  const { elementReferencesToCalculate, elementReferenceToTarget, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({
@@ -132,11 +132,11 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
132
132
  const promises = uniqueRenderers.map(async (renderer, index) => {
133
133
  if (utils.types.has(renderer, 'name') && renderer.name === 'edge') {
134
134
  const message = chalk_1.default.yellow(`The 'edge' option that is being used in your browsers' configuration will soon be deprecated. Please change it to either 'edgelegacy' for the legacy version or to 'edgechromium' for the new Chromium-based version. Please note, when using the built-in BrowserType enum, then the values are BrowserType.EDGE_LEGACY and BrowserType.EDGE_CHROMIUM, respectively.`);
135
- logger.console.log(message);
135
+ logger === null || logger === void 0 ? void 0 : logger.console.log(message);
136
136
  }
137
137
  try {
138
138
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
139
- logger.warn('Command "check" was aborted before rendering');
139
+ logger === null || logger === void 0 ? void 0 : logger.warn('Command "check" was aborted before rendering');
140
140
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
141
141
  }
142
142
  const { cookies, ...snapshot } = snapshots[index];
@@ -158,7 +158,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
158
158
  logger.warn('Command "check" was aborted before rendering');
159
159
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
160
160
  }
161
- else if (!baseEyes.running) {
161
+ else if (baseEyes.aborted) {
162
162
  logger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
163
163
  throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
164
164
  }
@@ -167,7 +167,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
167
167
  logger.warn('Command "check" was aborted before rendering');
168
168
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
169
169
  }
170
- else if (!baseEyes.running) {
170
+ else if (baseEyes.aborted) {
171
171
  logger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
172
172
  throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
173
173
  }
@@ -198,7 +198,7 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
198
198
  logger.warn('Command "check" was aborted after rendering');
199
199
  throw new abort_error_1.AbortError('Command "check" was aborted after rendering');
200
200
  }
201
- else if (!baseEyes.running) {
201
+ else if (baseEyes.aborted) {
202
202
  logger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
203
203
  throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
204
204
  }
@@ -207,16 +207,14 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
207
207
  settings: baseSettings,
208
208
  logger,
209
209
  });
210
- if (!baseEyes.running) {
210
+ if (baseEyes.aborted) {
211
211
  logger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
212
212
  throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
213
213
  }
214
214
  return { ...result, eyes: baseEyes, renderer };
215
215
  }
216
216
  catch (error) {
217
- if (baseEyes.running && !(signal === null || signal === void 0 ? void 0 : signal.aborted)) {
218
- await baseEyes.abort({ settings: { testMetadata: await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata()) } });
219
- }
217
+ await baseEyes.abort({ settings: { testMetadata: await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata()) } });
220
218
  error.info = { eyes: baseEyes };
221
219
  throw error;
222
220
  }
package/dist/ufg/close.js CHANGED
@@ -2,28 +2,29 @@
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({ storage, target, spec, logger: defaultLogger }) {
6
- return async function close({ settings, logger = defaultLogger, } = {}) {
7
- logger.log('Command "close" is called with settings', settings);
8
- const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
9
- const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
10
- storage.forEach(async (promises) => {
5
+ function makeClose({ storage, target, spec, logger: defaultLogger, }) {
6
+ return async function ({ settings, logger = defaultLogger, } = {}) {
7
+ const tests = storage.reduce((tests, { renderer, promise }) => {
8
+ var _a;
9
+ const key = JSON.stringify(renderer);
10
+ const promises = (_a = tests.get(key)) !== null && _a !== void 0 ? _a : [];
11
+ promises.push(promise);
12
+ return tests.set(key, promises);
13
+ }, new Map());
14
+ return Promise.all(Array.from(tests.values(), async (promises) => {
11
15
  var _a, _b;
12
16
  try {
13
- const [{ eyes }] = await Promise.all(promises);
14
- try {
15
- await eyes.close({ settings: { ...settings, testMetadata }, logger });
16
- }
17
- catch (error) {
18
- logger.warn('Command "close" received an error during performing, trying to perform abort instead', error);
19
- await eyes.abort({ settings: { ...settings, testMetadata }, logger });
20
- }
17
+ const [{ eyes, renderer }] = await Promise.all(promises);
18
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
19
+ const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
20
+ const [result] = await eyes.close({ settings: { ...settings, testMetadata }, logger });
21
+ return { ...result, renderer };
21
22
  }
22
23
  catch (error) {
23
- logger.warn('Command "close" received an error during waiting for eyes instances in background', error);
24
- await ((_b = (_a = error.info) === null || _a === void 0 ? void 0 : _a.eyes) === null || _b === void 0 ? void 0 : _b.abort({ settings: { ...settings, testMetadata }, logger }));
24
+ await ((_b = (_a = error.info) === null || _a === void 0 ? void 0 : _a.eyes) === null || _b === void 0 ? void 0 : _b.abort({ logger }));
25
+ throw error;
25
26
  }
26
- });
27
+ }));
27
28
  };
28
29
  }
29
30
  exports.makeClose = makeClose;
package/dist/ufg/core.js CHANGED
@@ -32,8 +32,6 @@ const core_base_1 = require("@applitools/core-base");
32
32
  const get_viewport_size_1 = require("../automation/get-viewport-size");
33
33
  const set_viewport_size_1 = require("../automation/set-viewport-size");
34
34
  const locate_1 = require("../automation/locate");
35
- const locate_text_1 = require("../automation/locate-text");
36
- const extract_text_1 = require("../automation/extract-text");
37
35
  const open_eyes_1 = require("./open-eyes");
38
36
  const utils = __importStar(require("@applitools/utils"));
39
37
  const throat_1 = __importDefault(require("throat"));
@@ -76,8 +74,6 @@ function makeCore({ concurrency, spec, client, core, agentId = 'core-ufg', cwd =
76
74
  getViewportSize: spec && (0, get_viewport_size_1.makeGetViewportSize)({ spec, logger }),
77
75
  setViewportSize: spec && (0, set_viewport_size_1.makeSetViewportSize)({ spec, logger }),
78
76
  locate: (0, locate_1.makeLocate)({ spec, core, logger }),
79
- locateText: (0, locate_text_1.makeLocateText)({ spec, core, logger }),
80
- extractText: (0, extract_text_1.makeExtractText)({ spec, core, logger }),
81
77
  openEyes: (0, open_eyes_1.makeOpenEyes)({ spec, client, core, logger }),
82
78
  });
83
79
  }
@@ -31,10 +31,9 @@ const check_1 = require("./check");
31
31
  const check_and_close_1 = require("./check-and-close");
32
32
  const close_1 = require("./close");
33
33
  const abort_1 = require("./abort");
34
- const get_results_1 = require("./get-results");
35
34
  const abort_controller_1 = require("abort-controller");
36
35
  const utils = __importStar(require("@applitools/utils"));
37
- function makeOpenEyes({ core, client, spec, logger: defaultLogger }) {
36
+ function makeOpenEyes({ core, client, spec, logger: defaultLogger, }) {
38
37
  return async function openEyes({ target, settings, eyes, logger = defaultLogger, }) {
39
38
  var _a, _b;
40
39
  logger.log(`Command "openEyes" is called with ${target ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), eyes ? 'predefined eyes' : '');
@@ -60,8 +59,9 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger }) {
60
59
  const getBaseEyes = (0, get_base_eyes_1.makeGetBaseEyes)({ settings, eyes, core, client, logger });
61
60
  return utils.general.extend({}, eyes => {
62
61
  var _a;
63
- const storage = new Map();
64
- let running = true;
62
+ const storage = [];
63
+ let closed = false;
64
+ let aborted = false;
65
65
  return {
66
66
  type: 'ufg',
67
67
  test: {
@@ -72,17 +72,22 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger }) {
72
72
  account,
73
73
  },
74
74
  get running() {
75
- return running;
75
+ return !closed && !aborted;
76
+ },
77
+ get closed() {
78
+ return closed;
79
+ },
80
+ get aborted() {
81
+ return aborted;
76
82
  },
77
83
  getBaseEyes,
78
84
  // check with indexing and storage
79
85
  check: utils.general.wrap((0, check_1.makeCheck)({ eyes, client: client, target: driver, spec, signal: controller.signal, logger }), async (check, options = {}) => {
80
86
  const results = await check(options);
81
- results.forEach(result => {
82
- var _a;
83
- const key = JSON.stringify(result.renderer);
84
- storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), result.promise]);
85
- });
87
+ storage.push(...results.map(result => ({
88
+ promise: result.promise,
89
+ renderer: result.renderer,
90
+ })));
86
91
  return results;
87
92
  }),
88
93
  checkAndClose: (0, check_and_close_1.makeCheckAndClose)({
@@ -93,15 +98,22 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger }) {
93
98
  signal: controller.signal,
94
99
  logger,
95
100
  }),
101
+ locateText: null,
102
+ extractText: null,
103
+ // close only once
96
104
  close: utils.general.wrap((0, close_1.makeClose)({ storage, target: driver, logger }), async (close, options) => {
97
- running = false;
105
+ if (closed || aborted)
106
+ return [];
107
+ closed = true;
98
108
  return close(options);
99
109
  }),
110
+ // abort only once
100
111
  abort: utils.general.wrap((0, abort_1.makeAbort)({ storage, target: driver, spec, controller, logger }), async (abort, options) => {
101
- running = false;
112
+ if (aborted || closed)
113
+ return [];
114
+ aborted = true;
102
115
  return abort(options);
103
116
  }),
104
- getResults: (0, get_results_1.makeGetResults)({ storage, logger }),
105
117
  };
106
118
  });
107
119
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "1.4.9",
3
+ "version": "1.4.10",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -51,19 +51,17 @@
51
51
  "docker:setup": "node ../../scripts/generate-docker-compose-config.js && docker-compose up -d",
52
52
  "docker:teardown": "docker-compose down",
53
53
  "deps": "bongo deps",
54
- "preversion": "bongo preversion",
55
- "version": "bongo version",
56
- "postversion": "bongo postversion --skip-release-notification"
54
+ "version": "bongo version"
57
55
  },
58
56
  "dependencies": {
59
- "@applitools/core-base": "1.1.35",
57
+ "@applitools/core-base": "1.1.33",
60
58
  "@applitools/dom-capture": "11.2.1",
61
59
  "@applitools/dom-snapshot": "4.7.3",
62
- "@applitools/driver": "1.11.29",
60
+ "@applitools/driver": "1.11.28",
63
61
  "@applitools/logger": "1.1.45",
64
- "@applitools/nml-client": "1.3.32",
62
+ "@applitools/nml-client": "1.3.31",
65
63
  "@applitools/req": "1.1.30",
66
- "@applitools/screenshoter": "3.7.25",
64
+ "@applitools/screenshoter": "3.7.24",
67
65
  "@applitools/snippets": "2.4.15",
68
66
  "@applitools/ufg-client": "1.1.24",
69
67
  "@applitools/utils": "1.3.30",
@@ -77,9 +75,9 @@
77
75
  },
78
76
  "devDependencies": {
79
77
  "@applitools/bongo": "^2.2.2",
80
- "@applitools/spec-driver-puppeteer": "^1.1.40",
81
- "@applitools/spec-driver-selenium": "^1.5.27",
82
- "@applitools/spec-driver-webdriverio": "^1.4.24",
78
+ "@applitools/spec-driver-puppeteer": "^1.1.39",
79
+ "@applitools/spec-driver-selenium": "^1.5.26",
80
+ "@applitools/spec-driver-webdriverio": "^1.4.23",
83
81
  "@applitools/test-server": "^1.1.24",
84
82
  "@applitools/test-utils": "^1.5.12",
85
83
  "@types/mocha": "^9.1.1",
@@ -1,12 +1,12 @@
1
1
  import type { DriverTarget } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
- import { type SpecType, type SpecDriver } from '@applitools/driver';
4
- type Options<TSpec extends SpecType> = {
5
- spec: SpecDriver<TSpec>;
3
+ import { type SpecDriver } from '@applitools/driver';
4
+ type Options<TDriver, TContext, TElement, TSelector> = {
5
+ spec: SpecDriver<TDriver, TContext, TElement, TSelector>;
6
6
  logger: Logger;
7
7
  };
8
- export declare function makeGetViewportSize<TSpec extends SpecType>({ spec, logger: defaultLogger }: Options<TSpec>): ({ target, logger, }: {
9
- target: DriverTarget<TSpec>;
8
+ export declare function makeGetViewportSize<TDriver, TContext, TElement, TSelector>({ spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ target, logger, }: {
9
+ target: DriverTarget<TDriver, TContext, TElement, TSelector>;
10
10
  logger?: Logger | undefined;
11
11
  }) => Promise<import("@applitools/utils").Size>;
12
12
  export {};
@@ -1,15 +1,15 @@
1
1
  import type { DriverTarget, ImageTarget, LocateSettings, LocateResult } from './types';
2
2
  import type { Core as BaseCore } from '@applitools/core-base';
3
3
  import { type Logger } from '@applitools/logger';
4
- import { type SpecType, type SpecDriver } from '@applitools/driver';
5
- type Options<TSpec extends SpecType> = {
4
+ import { type SpecDriver } from '@applitools/driver';
5
+ type Options<TDriver, TContext, TElement, TSelector> = {
6
6
  core: BaseCore;
7
- spec?: SpecDriver<TSpec>;
7
+ spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
8
8
  logger: Logger;
9
9
  };
10
- export declare function makeLocate<TSpec extends SpecType>({ spec, core, logger: defaultLogger }: Options<TSpec>): <TLocator extends string>({ settings, target, logger, }: {
11
- target: DriverTarget<TSpec> | ImageTarget;
12
- settings: LocateSettings<TLocator, TSpec>;
10
+ export declare function makeLocate<TDriver, TContext, TElement, TSelector>({ spec, core, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): <TLocator extends string>({ settings, target, logger, }: {
11
+ target: DriverTarget<TDriver, TContext, TElement, TSelector> | ImageTarget;
12
+ settings: LocateSettings<TLocator, TElement, TSelector>;
13
13
  logger?: Logger | undefined;
14
14
  }) => Promise<LocateResult<TLocator>>;
15
15
  export {};
@@ -1,13 +1,13 @@
1
1
  import type { Size } from '@applitools/utils';
2
2
  import type { DriverTarget } from './types';
3
3
  import { type Logger } from '@applitools/logger';
4
- import { type SpecType, type SpecDriver } from '@applitools/driver';
5
- type Options<TSpec extends SpecType> = {
6
- spec: SpecDriver<TSpec>;
4
+ import { type SpecDriver } from '@applitools/driver';
5
+ type Options<TDriver, TContext, TElement, TSelector> = {
6
+ spec: SpecDriver<TDriver, TContext, TElement, TSelector>;
7
7
  logger: Logger;
8
8
  };
9
- export declare function makeSetViewportSize<TSpec extends SpecType>({ spec, logger: defaultLogger }: Options<TSpec>): ({ target, size, logger, }: {
10
- target: DriverTarget<TSpec>;
9
+ export declare function makeSetViewportSize<TDriver, TContext, TElement, TSelector>({ spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ target, size, logger, }: {
10
+ target: DriverTarget<TDriver, TContext, TElement, TSelector>;
11
11
  size: Size;
12
12
  logger?: Logger | undefined;
13
13
  }) => Promise<void>;
@@ -1,68 +1,72 @@
1
1
  import type { MaybeArray, Size, Region } from '@applitools/utils';
2
2
  import type * as BaseCore from '@applitools/core-base/types';
3
- import { type SpecType, type Driver, type ElementReference, type ContextReference } from '@applitools/driver';
3
+ import { type Driver, type Selector } from '@applitools/driver';
4
4
  import { type Logger } from '@applitools/logger';
5
5
  export * from '@applitools/core-base/types';
6
- export type DriverTarget<TSpec extends SpecType> = TSpec['driver'] | Driver<TSpec>;
7
- export type Target<TSpec extends SpecType> = DriverTarget<TSpec> | BaseCore.Target;
8
- export interface Core<TSpec extends SpecType, TTarget = Target<TSpec>, TEyes extends Eyes<TSpec, TTarget> = Eyes<TSpec, TTarget>> extends BaseCore.Core<TTarget, TEyes> {
9
- isDriver?(driver: any): driver is TSpec['driver'];
10
- isElement?(element: any): element is TSpec['element'];
11
- isSelector?(selector: any): selector is TSpec['selector'];
6
+ export type DriverTarget<TDriver, TContext, TElement, TSelector> = TDriver | Driver<TDriver, TContext, TElement, TSelector>;
7
+ export interface Core<TDriver, TContext, TElement, TSelector, TEyes = Eyes<TDriver, TContext, TElement, TSelector>> extends BaseCore.Core<TEyes> {
8
+ isDriver?(driver: any): driver is TDriver;
9
+ isElement?(element: any): element is TElement;
10
+ isSelector?(selector: any): selector is TSelector;
12
11
  getViewportSize?(options: {
13
- target: DriverTarget<TSpec>;
12
+ target: DriverTarget<TDriver, TContext, TElement, TSelector>;
14
13
  logger?: Logger;
15
14
  }): Promise<Size>;
16
15
  setViewportSize?(options: {
17
- target: DriverTarget<TSpec>;
16
+ target: DriverTarget<TDriver, TContext, TElement, TSelector>;
18
17
  size: Size;
19
18
  logger?: Logger;
20
19
  }): Promise<void>;
21
20
  openEyes(options: {
22
- target?: DriverTarget<TSpec>;
21
+ target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
23
22
  settings: BaseCore.OpenSettings;
24
23
  eyes?: BaseCore.Eyes[];
25
24
  logger?: Logger;
26
25
  }): Promise<TEyes>;
27
26
  locate<TLocator extends string>(options: {
28
- target: TTarget;
29
- settings: LocateSettings<TLocator, TSpec>;
27
+ target: DriverTarget<TDriver, TContext, TElement, TSelector> | BaseCore.ImageTarget;
28
+ settings: LocateSettings<TLocator, TElement, TSelector>;
30
29
  logger?: Logger;
31
30
  }): Promise<BaseCore.LocateResult<TLocator>>;
32
- locateText<TPattern extends string>(options: {
33
- target: TTarget;
34
- settings: LocateTextSettings<TPattern, TSpec>;
35
- logger?: Logger;
36
- }): Promise<BaseCore.LocateTextResult<TPattern>>;
37
- extractText(options: {
38
- target: TTarget;
39
- settings: MaybeArray<ExtractTextSettings<TSpec>>;
40
- logger?: Logger;
41
- }): Promise<string[]>;
42
31
  }
43
- export interface Eyes<TSpec extends SpecType, TTarget = Target<TSpec>> extends BaseCore.Eyes<TTarget> {
32
+ export interface Eyes<TDriver, TContext, TElement, TSelector, TTarget = DriverTarget<TDriver, TContext, TElement, TSelector>> extends BaseCore.Eyes<TTarget> {
44
33
  getBaseEyes(options?: {
45
34
  logger?: Logger;
46
35
  }): Promise<BaseCore.Eyes[]>;
47
36
  check(options?: {
48
37
  target?: TTarget;
49
- settings?: CheckSettings<TSpec>;
38
+ settings?: CheckSettings<TElement, TSelector>;
50
39
  logger?: Logger;
51
40
  }): Promise<BaseCore.CheckResult[]>;
52
41
  checkAndClose(options?: {
53
42
  target?: TTarget;
54
- settings?: CheckSettings<TSpec> & BaseCore.CloseSettings;
43
+ settings?: CheckSettings<TElement, TSelector> & BaseCore.CloseSettings;
55
44
  logger?: Logger;
56
45
  }): Promise<BaseCore.TestResult[]>;
46
+ locateText<TPattern extends string>(options: {
47
+ target?: TTarget;
48
+ settings: LocateTextSettings<TPattern, TElement, TSelector>;
49
+ logger?: Logger;
50
+ }): Promise<BaseCore.LocateTextResult<TPattern>>;
51
+ extractText(options: {
52
+ target?: TTarget;
53
+ settings: MaybeArray<ExtractTextSettings<TElement, TSelector>>;
54
+ logger?: Logger;
55
+ }): Promise<string[]>;
57
56
  }
58
- export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.ImageSettings<Region | ElementReference<TSpec>> {
59
- frames?: (ContextReference<TSpec> | {
60
- frame: ContextReference<TSpec>;
61
- scrollRootElement?: ElementReference<TSpec>;
62
- })[];
57
+ type RegionReference<TElement, TSelector> = Region | ElementReference<TElement, TSelector>;
58
+ type ElementReference<TElement, TSelector> = TElement | Selector<TSelector>;
59
+ type FrameReference<TElement, TSelector> = ElementReference<TElement, TSelector> | string | number;
60
+ type ContextReference<TElement, TSelector> = {
61
+ frame: FrameReference<TElement, TSelector>;
62
+ scrollRootElement?: ElementReference<TElement, TSelector>;
63
+ };
64
+ type StitchMode = 'Scroll' | 'CSS';
65
+ export interface ScreenshotSettings<TElement, TSelector> extends BaseCore.ImageSettings<RegionReference<TElement, TSelector>> {
66
+ frames?: (ContextReference<TElement, TSelector> | FrameReference<TElement, TSelector>)[];
63
67
  fully?: boolean;
64
- scrollRootElement?: ElementReference<TSpec>;
65
- stitchMode?: 'Scroll' | 'CSS';
68
+ scrollRootElement?: ElementReference<TElement, TSelector>;
69
+ stitchMode?: StitchMode;
66
70
  hideScrollbars?: boolean;
67
71
  hideCaret?: boolean;
68
72
  overlap?: {
@@ -78,7 +82,7 @@ export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.Ima
78
82
  };
79
83
  webview?: boolean | string;
80
84
  }
81
- export type LocateSettings<TLocator extends string, TSpec extends SpecType> = BaseCore.LocateSettings<TLocator, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
82
- export type LocateTextSettings<TPattern extends string, TSpec extends SpecType> = BaseCore.LocateTextSettings<TPattern, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
83
- export type ExtractTextSettings<TSpec extends SpecType> = BaseCore.ExtractTextSettings<Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
84
- export type CheckSettings<TSpec extends SpecType> = BaseCore.CheckSettings<Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
85
+ export type LocateSettings<TLocator extends string, TElement, TSelector> = BaseCore.LocateSettings<TLocator, RegionReference<TElement, TSelector>> & ScreenshotSettings<TElement, TSelector>;
86
+ export type CheckSettings<TElement, TSelector> = BaseCore.CheckSettings<RegionReference<TElement, TSelector>> & ScreenshotSettings<TElement, TSelector>;
87
+ export type LocateTextSettings<TPattern extends string, TElement, TSelector> = BaseCore.LocateTextSettings<TPattern, RegionReference<TElement, TSelector>> & ScreenshotSettings<TElement, TSelector>;
88
+ export type ExtractTextSettings<TElement, TSelector> = BaseCore.ExtractTextSettings<RegionReference<TElement, TSelector>> & ScreenshotSettings<TElement, TSelector>;
@@ -1,19 +1,19 @@
1
1
  import type { Region } from '@applitools/utils';
2
2
  import type { ScreenshotSettings } from '../../classic/types';
3
3
  import { type Logger } from '@applitools/logger';
4
- import { type Driver, type Element, type ElementReference, type SpecType } from '@applitools/driver';
5
- export type Screenshot<TSpec extends SpecType> = {
4
+ import { type Driver, type Element, type ElementReference } from '@applitools/driver';
5
+ export type Screenshot<TElement, TSelector> = {
6
6
  image: any;
7
7
  region: Region;
8
- element: Element<TSpec>;
9
- scrollingElement: Element<TSpec>;
8
+ element: Element<unknown, unknown, TElement, TSelector>;
9
+ scrollingElement: Element<unknown, unknown, TElement, TSelector>;
10
10
  restoreState(): Promise<void>;
11
11
  calculatedRegions: [];
12
12
  };
13
- export declare function takeScreenshot<TSpec extends SpecType>({ driver, settings, logger, }: {
14
- driver: Driver<TSpec>;
15
- settings: ScreenshotSettings<TSpec> & {
16
- regionsToCalculate?: ElementReference<TSpec>[];
13
+ export declare function takeScreenshot<TDriver, TContext, TElement, TSelector>({ driver, settings, logger, }: {
14
+ driver: Driver<TDriver, TContext, TElement, TSelector>;
15
+ settings: ScreenshotSettings<TElement, TSelector> & {
16
+ regionsToCalculate?: ElementReference<TElement, TSelector>[];
17
17
  };
18
18
  logger: Logger;
19
- }): Promise<Screenshot<TSpec>>;
19
+ }): Promise<Screenshot<TElement, TSelector>>;
@@ -1,12 +1,19 @@
1
1
  import type { Region } from '@applitools/utils';
2
- import type { CheckSettings } from '../types';
3
2
  import type { CheckSettings as BaseCheckSettings } from '@applitools/core-base';
4
- import { type SpecType, type ElementReference, type Selector } from '@applitools/driver';
5
- export declare function toBaseCheckSettings<TSpec extends SpecType>({ settings }: {
6
- settings: CheckSettings<TSpec>;
3
+ import type { CheckSettings } from '../types';
4
+ import { type Selector } from '@applitools/driver';
5
+ export declare function toBaseCheckSettings<TElement, TSelector>({ settings }: {
6
+ settings: CheckSettings<TElement, TSelector>;
7
7
  }): {
8
- elementReferencesToCalculate: ElementReference<TSpec>[];
9
- elementReferenceToTarget: ElementReference<TSpec> | undefined;
8
+ elementReferencesToCalculate: (TElement | Selector<TSelector>)[];
9
+ elementReferenceToTarget: string | TElement | TSelector | {
10
+ selector: string | TSelector;
11
+ type?: string | undefined;
12
+ child?: Selector<TSelector> | undefined;
13
+ shadow?: Selector<TSelector> | undefined;
14
+ frame?: Selector<TSelector> | undefined;
15
+ fallback?: Selector<TSelector> | undefined;
16
+ } | undefined;
10
17
  getBaseCheckSettings: ({ calculatedRegions, preserveTransformation, }: {
11
18
  calculatedRegions: {
12
19
  selector?: Selector;
@@ -1,5 +1,5 @@
1
1
  import { type Logger } from '@applitools/logger';
2
- import { type SpecType, type Context } from '@applitools/driver';
2
+ import { type Context } from '@applitools/driver';
3
3
  export type LazyLoadSettings = {
4
4
  scrollLength?: number;
5
5
  waitingTime?: number;
@@ -7,8 +7,8 @@ export type LazyLoadSettings = {
7
7
  executionTimeout?: number;
8
8
  pollTimeout?: number;
9
9
  };
10
- export declare function waitForLazyLoad<TSpec extends SpecType>({ context, settings, logger, }: {
11
- context: Context<TSpec>;
10
+ export declare function waitForLazyLoad<TContext extends Context<unknown, unknown, unknown, unknown>>({ context, settings, logger, }: {
11
+ context: TContext;
12
12
  settings: LazyLoadSettings;
13
13
  logger: Logger;
14
14
  }): Promise<void>;
@@ -1,18 +1,20 @@
1
1
  import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings, TestResult } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
- import { type SpecType, type SpecDriver } from '@applitools/driver';
4
- type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
3
+ import { type SpecDriver } from '@applitools/driver';
4
+ type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
5
5
  type?: TType;
6
- eyes: Eyes<TSpec, TType>;
7
- target?: DriverTarget<TSpec>;
8
- spec?: SpecDriver<TSpec>;
6
+ eyes: Eyes<TDriver, TContext, TElement, TSelector, TType>;
7
+ target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
8
+ spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
9
9
  logger: Logger;
10
10
  };
11
- export declare function makeCheckAndClose<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
11
+ export declare function makeCheckAndClose<TDriver, TContext, TElement, TSelector, TDefaultType extends 'classic' | 'ufg' = 'classic'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
12
  type?: TType | undefined;
13
- target?: Target<TSpec, TType> | undefined;
14
- settings?: (CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>) | undefined;
15
- config?: (Config<TSpec, TDefaultType> & Config<TSpec, TType>) | undefined;
13
+ target?: Target<TDriver, TContext, TElement, TSelector, TType> | undefined;
14
+ settings?: (CheckSettings<TElement, TSelector, TDefaultType> & (TDefaultType extends "ufg" ? import("@applitools/core-base").CloseSettings : import("@applitools/core-base").CloseSettings) & {
15
+ throwErr?: boolean | undefined;
16
+ } & CheckSettings<TElement, TSelector, TType> & (TType extends "ufg" ? import("@applitools/core-base").CloseSettings : import("@applitools/core-base").CloseSettings)) | undefined;
17
+ config?: (Config<TElement, TSelector, TDefaultType> & Config<TElement, TSelector, TType>) | undefined;
16
18
  logger?: Logger | undefined;
17
19
  }) => Promise<TestResult<TType>[]>;
18
20
  export {};
package/types/check.d.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  import type { Target, DriverTarget, Eyes, Config, CheckSettings, CheckResult } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
- import { type SpecType, type SpecDriver } from '@applitools/driver';
4
- type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
3
+ import { type SpecDriver } from '@applitools/driver';
4
+ type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
5
5
  type?: TType;
6
- eyes: Eyes<TSpec, TType>;
7
- target?: DriverTarget<TSpec>;
8
- spec?: SpecDriver<TSpec>;
6
+ eyes: Eyes<TDriver, TContext, TElement, TSelector, TType>;
7
+ target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
8
+ spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
9
9
  logger: Logger;
10
10
  };
11
- export declare function makeCheck<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
11
+ export declare function makeCheck<TDriver, TContext, TElement, TSelector, TDefaultType extends 'classic' | 'ufg' = 'classic'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
12
  type?: TType | undefined;
13
- target?: Target<TSpec, TType> | undefined;
14
- settings?: CheckSettings<TSpec, TType> | undefined;
15
- config?: Config<TSpec, TType> | undefined;
13
+ target?: Target<TDriver, TContext, TElement, TSelector, TType> | undefined;
14
+ settings?: CheckSettings<TElement, TSelector, TType> | undefined;
15
+ config?: Config<TElement, TSelector, TType> | undefined;
16
16
  logger?: Logger | undefined;
17
17
  }) => Promise<CheckResult<TType>[]>;
18
18
  export {};
@@ -1,16 +1,16 @@
1
- import type { AbortSettings } from './types';
1
+ import type { AbortSettings, TestResult } from './types';
2
2
  import type { Eyes } from './types';
3
3
  import { type Logger } from '@applitools/logger';
4
4
  import type { DriverTarget } from './types';
5
- import { type SpecType, type SpecDriver } from '@applitools/driver';
6
- type Options<TSpec extends SpecType> = {
7
- eyes: Eyes<TSpec>;
8
- target?: DriverTarget<TSpec>;
9
- spec?: SpecDriver<TSpec>;
5
+ import { type SpecDriver } from '@applitools/driver';
6
+ type Options<TDriver, TContext, TElement, TSelector> = {
7
+ eyes: Eyes<TDriver, TContext, TElement, TSelector>;
8
+ target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
9
+ spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
10
10
  logger: Logger;
11
11
  };
12
- export declare function makeAbort<TSpec extends SpecType>({ eyes, target, spec, logger: defaultLogger }: Options<TSpec>): ({ settings, logger, }?: {
12
+ export declare function makeAbort<TDriver, TContext, TElement, TSelector>({ eyes, target, spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ settings, logger, }?: {
13
13
  settings?: AbortSettings | undefined;
14
14
  logger?: Logger | undefined;
15
- }) => Promise<void>;
15
+ }) => Promise<TestResult[]>;
16
16
  export {};