@applitools/core 3.9.0 → 3.10.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 (67) hide show
  1. package/CHANGELOG.md +180 -0
  2. package/dist/abort.js +40 -0
  3. package/dist/automation/abort.js +49 -0
  4. package/dist/{ufg → automation}/close.js +22 -6
  5. package/dist/automation/get-nml-client.js +3 -3
  6. package/dist/{ufg → automation}/get-results.js +4 -4
  7. package/dist/check-and-close.js +1 -10
  8. package/dist/check.js +8 -17
  9. package/dist/classic/check-and-close.js +111 -69
  10. package/dist/classic/check.js +103 -63
  11. package/dist/classic/core.js +4 -4
  12. package/dist/classic/get-base-eyes.js +29 -7
  13. package/dist/classic/open-eyes.js +42 -56
  14. package/dist/classic/utils/extract-default-renderers.js +72 -0
  15. package/dist/classic/utils/take-screenshots.js +60 -0
  16. package/dist/close.js +6 -3
  17. package/dist/core.js +4 -4
  18. package/dist/get-typed-eyes.js +3 -5
  19. package/dist/make-manager.js +2 -2
  20. package/dist/open-eyes.js +13 -10
  21. package/dist/ufg/check-and-close.js +61 -54
  22. package/dist/ufg/check.js +62 -60
  23. package/dist/ufg/core.js +2 -2
  24. package/dist/ufg/get-base-eyes.js +23 -13
  25. package/dist/ufg/open-eyes.js +24 -37
  26. package/dist/ufg/utils/extract-default-renderers.js +22 -0
  27. package/dist/universal/core.js +1 -0
  28. package/dist/universal/spec-driver.js +43 -50
  29. package/package.json +23 -28
  30. package/types/abort.d.ts +13 -0
  31. package/types/{classic → automation}/abort.d.ts +5 -4
  32. package/types/{classic → automation}/close.d.ts +3 -4
  33. package/types/automation/get-nml-client.d.ts +3 -3
  34. package/types/automation/get-results.d.ts +11 -0
  35. package/types/automation/types.d.ts +78 -7
  36. package/types/{ufg → automation}/utils/uniquify-renderers.d.ts +1 -1
  37. package/types/check.d.ts +2 -2
  38. package/types/classic/check-and-close.d.ts +11 -4
  39. package/types/classic/check.d.ts +6 -3
  40. package/types/classic/core.d.ts +2 -1
  41. package/types/classic/get-base-eyes.d.ts +4 -8
  42. package/types/classic/open-eyes.d.ts +3 -4
  43. package/types/classic/types.d.ts +3 -4
  44. package/types/classic/utils/extract-default-renderers.d.ts +9 -0
  45. package/types/classic/utils/take-screenshots.d.ts +18 -0
  46. package/types/close.d.ts +3 -2
  47. package/types/core.d.ts +7 -1
  48. package/types/get-typed-eyes.d.ts +5 -4
  49. package/types/make-manager.d.ts +7 -1
  50. package/types/open-eyes.d.ts +7 -1
  51. package/types/types.d.ts +3 -6
  52. package/types/ufg/check-and-close.d.ts +8 -12
  53. package/types/ufg/check.d.ts +4 -9
  54. package/types/ufg/core.d.ts +3 -3
  55. package/types/ufg/get-base-eyes.d.ts +3 -7
  56. package/types/ufg/open-eyes.d.ts +3 -4
  57. package/types/ufg/types.d.ts +3 -24
  58. package/types/ufg/utils/extract-default-renderers.d.ts +5 -0
  59. package/types/universal/spec-driver.d.ts +6 -5
  60. package/types/universal/types.d.ts +54 -50
  61. package/dist/classic/abort.js +0 -23
  62. package/dist/classic/close.js +0 -23
  63. package/dist/ufg/abort.js +0 -33
  64. package/types/ufg/abort.d.ts +0 -21
  65. package/types/ufg/close.d.ts +0 -19
  66. package/types/ufg/get-results.d.ts +0 -16
  67. /package/dist/{ufg → automation}/utils/uniquify-renderers.js +0 -0
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractDefaultRenderers = void 0;
4
+ async function extractDefaultRenderers({ driver, }) {
5
+ if (!driver)
6
+ return [];
7
+ const currentContext = driver.currentContext;
8
+ try {
9
+ const environment = await driver.getEnvironment();
10
+ if (environment.isWeb) {
11
+ const viewportSize = await driver.getViewportSize();
12
+ return [{ name: 'chrome', ...viewportSize }];
13
+ }
14
+ else {
15
+ return [];
16
+ }
17
+ }
18
+ finally {
19
+ await currentContext.focus();
20
+ }
21
+ }
22
+ exports.extractDefaultRenderers = extractDefaultRenderers;
@@ -112,6 +112,7 @@ function makeEyes({ socket, core, eyesRef, }) {
112
112
  const eyes = {
113
113
  test: null,
114
114
  running: null,
115
+ storage: null,
115
116
  core,
116
117
  getBaseEyes() {
117
118
  return null;
@@ -27,7 +27,6 @@ exports.makeSpec = void 0;
27
27
  const utils = __importStar(require("@applitools/utils"));
28
28
  function makeSpec({ socket, spec, }) {
29
29
  const commands = {
30
- // #region UTILITY
31
30
  isDriver(driver) {
32
31
  return utils.types.has(driver, 'applitools-ref-id');
33
32
  },
@@ -44,32 +43,17 @@ function makeSpec({ socket, spec, }) {
44
43
  utils.types.has(selector, 'selector') &&
45
44
  (utils.types.isString(selector.selector) || utils.types.has(selector, 'applitools-ref-id'))));
46
45
  },
47
- extractContext(driver) {
48
- return driver.context;
49
- },
50
- extractSelector(element) {
51
- return element.selector;
52
- },
53
- extractHostName(driver) {
54
- var _a;
55
- return (_a = driver.hostname) !== null && _a !== void 0 ? _a : null;
56
- },
57
- isStaleElementError(error) {
58
- return error === null || error === void 0 ? void 0 : error.isStaleElementError;
59
- },
60
46
  async isEqualElements(context, element1, element2) {
61
47
  return socket.request('Driver.isEqualElements', { context, element1, element2 });
62
48
  },
63
- // #endregion
64
- // #region COMMANDS
65
- async mainContext(context) {
66
- return socket.request('Driver.mainContext', { context });
49
+ isStaleElementError(error) {
50
+ return error === null || error === void 0 ? void 0 : error.isStaleElementError;
67
51
  },
68
- async parentContext(context) {
69
- return socket.request('Driver.parentContext', { context });
52
+ extractContext(driver) {
53
+ return driver.context;
70
54
  },
71
- async childContext(context, element) {
72
- return socket.request('Driver.childContext', { context, element });
55
+ extractSelector(element) {
56
+ return element.selector;
73
57
  },
74
58
  async executeScript(context, script, arg) {
75
59
  return socket.request('Driver.executeScript', { context, script: script.toString(), arg });
@@ -89,20 +73,26 @@ function makeSpec({ socket, spec, }) {
89
73
  async setElementText(context, element, text) {
90
74
  return socket.request('Driver.setElementText', { context, element, text });
91
75
  },
92
- async getWindowSize(driver) {
93
- return socket.request('Driver.getWindowSize', { driver });
76
+ async getElementRegion(context, element) {
77
+ return socket.request('Driver.getElementRegion', { context, element });
94
78
  },
95
- async setWindowSize(driver, size) {
96
- return socket.request('Driver.setWindowSize', { driver, size });
79
+ async getElementAttribute(context, element, attr) {
80
+ return socket.request('Driver.getElementAttribute', { context, element, attr });
97
81
  },
98
- async getViewportSize(driver) {
99
- return socket.request('Driver.getViewportSize', { driver });
82
+ async hover(context, element) {
83
+ return socket.request('Driver.hover', { context, element });
100
84
  },
101
- async setViewportSize(driver, size) {
102
- return socket.request('Driver.setViewportSize', { driver, size });
85
+ async click(context, element) {
86
+ return socket.request('Driver.click', { context, element });
103
87
  },
104
- async getCookies(driver, context) {
105
- return socket.request('Driver.getCookies', { driver, context });
88
+ async mainContext(context) {
89
+ return socket.request('Driver.mainContext', { context });
90
+ },
91
+ async parentContext(context) {
92
+ return socket.request('Driver.parentContext', { context });
93
+ },
94
+ async childContext(context, element) {
95
+ return socket.request('Driver.childContext', { context, element });
106
96
  },
107
97
  async getCapabilities(driver) {
108
98
  return socket.request('Driver.getCapabilities', { driver });
@@ -110,23 +100,18 @@ function makeSpec({ socket, spec, }) {
110
100
  async getDriverInfo(driver) {
111
101
  return socket.request('Driver.getDriverInfo', { driver });
112
102
  },
113
- async getTitle(driver) {
114
- return socket.request('Driver.getTitle', { driver });
115
- },
116
- async getUrl(driver) {
117
- return socket.request('Driver.getUrl', { driver });
103
+ async getWindowSize(driver) {
104
+ return socket.request('Driver.getWindowSize', { driver });
118
105
  },
119
- async takeScreenshot(driver) {
120
- return socket.request('Driver.takeScreenshot', { driver });
106
+ async setWindowSize(driver, size) {
107
+ return socket.request('Driver.setWindowSize', { driver, size });
121
108
  },
122
- async click(context, element) {
123
- return socket.request('Driver.click', { context, element });
109
+ async getViewportSize(driver) {
110
+ return socket.request('Driver.getViewportSize', { driver });
124
111
  },
125
- async visit(driver, url) {
126
- return socket.request('Driver.visit', { driver, url });
112
+ async setViewportSize(driver, size) {
113
+ return socket.request('Driver.setViewportSize', { driver, size });
127
114
  },
128
- // #endregion
129
- // #region NATIVE COMMANDS
130
115
  async getSystemBars(driver) {
131
116
  return socket.request('Driver.getSystemBars', { driver });
132
117
  },
@@ -136,15 +121,24 @@ function makeSpec({ socket, spec, }) {
136
121
  async setOrientation(driver, orientation) {
137
122
  return socket.request('Driver.setOrientation', { driver, orientation });
138
123
  },
139
- async getElementRegion(driver, element) {
140
- return socket.request('Driver.getElementRegion', { driver, element });
124
+ async getCookies(driver, context) {
125
+ return socket.request('Driver.getCookies', { driver, context });
126
+ },
127
+ async getTitle(driver) {
128
+ return socket.request('Driver.getTitle', { driver });
129
+ },
130
+ async getUrl(driver) {
131
+ return socket.request('Driver.getUrl', { driver });
141
132
  },
142
- async getElementAttribute(driver, element, attr) {
143
- return socket.request('Driver.getElementAttribute', { driver, element, attr });
133
+ async takeScreenshot(driver) {
134
+ return socket.request('Driver.takeScreenshot', { driver });
144
135
  },
145
136
  async performAction(driver, steps) {
146
137
  return socket.request('Driver.performAction', { driver, steps });
147
138
  },
139
+ async visit(driver, url) {
140
+ return socket.request('Driver.visit', { driver, url });
141
+ },
148
142
  async getCurrentWorld(driver) {
149
143
  return socket.request('Driver.getCurrentWorld', { driver });
150
144
  },
@@ -154,7 +148,6 @@ function makeSpec({ socket, spec, }) {
154
148
  async switchWorld(driver, name) {
155
149
  return socket.request('Driver.switchWorld', { driver, name });
156
150
  },
157
- // #endregion
158
151
  };
159
152
  return spec.reduce((spec, name) => {
160
153
  return Object.assign(spec, { [name]: commands[name] });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "3.9.0",
3
+ "version": "3.10.0",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -46,8 +46,8 @@
46
46
  "build:dist": "run --top-level tsc --project ./tsconfig.build.json",
47
47
  "build:x64": "yarn build:dist && yarn build:bin:x64",
48
48
  "build:arm64": "yarn build:dist && yarn build:bin:arm64",
49
- "build:bin:x64": "pkg . --target node14-linux-x64,node14-alpine-x64,node14-macos-x64,node14-win-x64",
50
- "build:bin:arm64": "pkg . --target node14-linux-arm64 --output ./bin/core-linux-arm64",
49
+ "build:bin:x64": "rm -rf ../spec-driver-webdriver/node_modules/webdriver && pkg . --target node14-linux-x64,node14-alpine-x64,node14-macos-x64,node14-win-x64",
50
+ "build:bin:arm64": "rm -rf ../spec-driver-webdriver/node_modules/webdriver && pkg . --target node14-linux-arm64 --output ./bin/core-linux-arm64",
51
51
  "build:bin:zip": "zip -j ./bin/core.zip $(find ./bin -type f -not -name '*.zip' -not -name '*.tar.gz' | xargs)",
52
52
  "build:bin:tgz": "tar -czf ./bin/core.tar.gz $(find ./bin -type f -not -name '*.zip' -not -name '*.tar.gz' | xargs)",
53
53
  "test": "run --top-level mocha './test/**/*.spec.ts' --exclude './test/bin/**' --parallel --jobs ${MOCHA_JOBS:-15} --exit",
@@ -62,52 +62,47 @@
62
62
  "pkg": {
63
63
  "scripts": "./dist/cli/cli.js",
64
64
  "outputPath": "./bin",
65
- "compress": "GZip",
66
- "assets": [
67
- "./node_modules/vm2/lib/setup-sandbox.js"
68
- ]
65
+ "compress": "GZip"
69
66
  },
70
67
  "dependencies": {
71
- "@applitools/core-base": "1.5.0",
68
+ "@applitools/core-base": "1.5.2",
72
69
  "@applitools/dom-capture": "11.2.2",
73
70
  "@applitools/dom-snapshot": "4.7.10",
74
- "@applitools/driver": "1.13.4",
75
- "@applitools/ec-client": "1.7.4",
76
- "@applitools/logger": "2.0.7",
77
- "@applitools/nml-client": "1.5.7",
78
- "@applitools/req": "1.5.2",
79
- "@applitools/screenshoter": "3.8.7",
80
- "@applitools/snippets": "2.4.22",
81
- "@applitools/socket": "1.1.7",
82
- "@applitools/spec-driver-webdriver": "1.0.41",
83
- "@applitools/ufg-client": "1.7.0",
84
- "@applitools/utils": "1.5.0",
71
+ "@applitools/driver": "1.13.6",
72
+ "@applitools/ec-client": "1.7.6",
73
+ "@applitools/logger": "2.0.9",
74
+ "@applitools/nml-client": "1.5.9",
75
+ "@applitools/req": "1.5.4",
76
+ "@applitools/screenshoter": "3.8.9",
77
+ "@applitools/snippets": "2.4.23",
78
+ "@applitools/socket": "1.1.9",
79
+ "@applitools/spec-driver-webdriver": "1.0.43",
80
+ "@applitools/ufg-client": "1.7.2",
81
+ "@applitools/utils": "1.5.2",
85
82
  "@types/ws": "8.5.5",
86
83
  "abort-controller": "3.0.0",
87
84
  "chalk": "4.1.2",
88
85
  "node-fetch": "2.6.7",
89
- "webdriver": "7.30.0",
86
+ "webdriver": "7.31.1",
90
87
  "ws": "8.13.0",
91
88
  "yargs": "17.7.2"
92
89
  },
93
90
  "devDependencies": {
94
- "@applitools/bongo": "^5.4.3",
95
- "@applitools/spec-driver-puppeteer": "^1.1.72",
96
- "@applitools/spec-driver-selenium": "^1.5.55",
97
- "@applitools/spec-driver-webdriverio": "^1.5.10",
91
+ "@applitools/bongo": "^5.6.1",
92
+ "@applitools/spec-driver-puppeteer": "^1.1.74",
93
+ "@applitools/spec-driver-selenium": "^1.5.57",
98
94
  "@applitools/test-server": "^1.2.2",
99
95
  "@applitools/test-utils": "^1.5.17",
100
- "@applitools/tunnel-client": "^1.1.3",
96
+ "@applitools/tunnel-client": "^1.2.1",
101
97
  "@types/node": "^12.20.55",
102
98
  "@types/selenium-webdriver": "^4.1.2",
103
99
  "@types/yargs": "^17.0.22",
104
- "chromedriver": "^114.0.3",
100
+ "chromedriver": "^115.0.1",
105
101
  "nock": "^13.3.2",
106
102
  "pkg": "^5.8.0",
107
103
  "png-async": "^0.9.4",
108
104
  "puppeteer": "^19.11.1",
109
- "selenium-webdriver": "4.4",
110
- "webdriverio": "^7.25.0"
105
+ "selenium-webdriver": "4.4"
111
106
  },
112
107
  "engines": {
113
108
  "node": ">=12.13.0"
@@ -0,0 +1,13 @@
1
+ import type { Eyes, AbortSettings, Renderer } from './types';
2
+ import { type SpecType } from '@applitools/driver';
3
+ import { type Logger } from '@applitools/logger';
4
+ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
5
+ eyes: Eyes<TSpec, TType>;
6
+ renderers?: Renderer[];
7
+ logger: Logger;
8
+ };
9
+ export declare function makeAbort<TSpec extends SpecType, TType extends 'classic' | 'ufg'>({ eyes, renderers: defaultRenderers, logger: mainLogger, }: Options<TSpec, TType>): ({ settings, logger, }?: {
10
+ settings?: AbortSettings<TType> | undefined;
11
+ logger?: Logger | undefined;
12
+ }) => Promise<void>;
13
+ export {};
@@ -1,15 +1,16 @@
1
- import type { AbortSettings } from './types';
2
- import type { Eyes } from './types';
1
+ import type { DriverTarget, Eyes, AbortSettings, Renderer } from './types';
3
2
  import { type Logger } from '@applitools/logger';
4
- import type { DriverTarget } from './types';
3
+ import { type AbortController } from 'abort-controller';
5
4
  import { type SpecType, type SpecDriver } from '@applitools/driver';
6
5
  type Options<TSpec extends SpecType> = {
7
6
  eyes: Eyes<TSpec>;
8
7
  target?: DriverTarget<TSpec>;
8
+ controller: AbortController;
9
+ renderers?: Renderer[];
9
10
  spec?: SpecDriver<TSpec>;
10
11
  logger: Logger;
11
12
  };
12
- export declare function makeAbort<TSpec extends SpecType>({ eyes, target, spec, logger: mainLogger }: Options<TSpec>): ({ settings, logger, }?: {
13
+ export declare function makeAbort<TSpec extends SpecType>({ eyes, target, controller, renderers: defaultRenderers, spec, logger: mainLogger, }: Options<TSpec>): ({ settings, logger, }?: {
13
14
  settings?: AbortSettings | undefined;
14
15
  logger?: Logger | undefined;
15
16
  }) => Promise<void>;
@@ -1,15 +1,14 @@
1
- import type { CloseSettings } from './types';
2
- import type { Eyes } from './types';
1
+ import type { DriverTarget, Eyes, CloseSettings, Renderer } from '../ufg/types';
3
2
  import { type Logger } from '@applitools/logger';
4
- import type { DriverTarget } from './types';
5
3
  import { type SpecType, type SpecDriver } from '@applitools/driver';
6
4
  type Options<TSpec extends SpecType> = {
7
5
  eyes: Eyes<TSpec>;
8
6
  target?: DriverTarget<TSpec>;
7
+ renderers?: Renderer[];
9
8
  spec?: SpecDriver<TSpec>;
10
9
  logger: Logger;
11
10
  };
12
- export declare function makeClose<TSpec extends SpecType>({ eyes, target, spec, logger: mainLogger }: Options<TSpec>): ({ settings, logger, }?: {
11
+ export declare function makeClose<TSpec extends SpecType>({ eyes, target, renderers: defaultRenderers, spec, logger: mainLogger, }: Options<TSpec>): ({ settings, logger, }?: {
13
12
  settings?: CloseSettings | undefined;
14
13
  logger?: Logger | undefined;
15
14
  }) => Promise<void>;
@@ -1,13 +1,13 @@
1
1
  import { type SpecType, type Driver } from '@applitools/driver';
2
2
  import { type Logger } from '@applitools/logger';
3
- import { type NMLClient, type NMLRequestsConfig } from '@applitools/nml-client';
3
+ import { type NMLClient, type NMLClientSettings } from '@applitools/nml-client';
4
4
  type Options = {
5
5
  client?: NMLClient;
6
6
  logger: Logger;
7
7
  };
8
- export declare function makeGetNMLClient({ client, logger: mainLogger }: Options): (({ driver, config, logger, }: {
8
+ export declare function makeGetNMLClient({ client, logger: mainLogger }: Options): (({ driver, settings, logger, }: {
9
9
  driver: Driver<SpecType>;
10
- config: Omit<NMLRequestsConfig, 'brokerUrl'>;
10
+ settings: Omit<NMLClientSettings, 'brokerUrl'>;
11
11
  logger?: Logger | undefined;
12
12
  }) => Promise<NMLClient>) & {
13
13
  getCachedValues(): Promise<NMLClient>[];
@@ -0,0 +1,11 @@
1
+ import type { Eyes, GetResultsSettings, TestResult } from '../ufg/types';
2
+ import { type Logger } from '@applitools/logger';
3
+ type Options = {
4
+ eyes: Eyes<any>;
5
+ logger: Logger;
6
+ };
7
+ export declare function makeGetResults({ eyes, logger: mainLogger }: Options): ({ settings, logger, }?: {
8
+ settings?: GetResultsSettings | undefined;
9
+ logger?: Logger | undefined;
10
+ }) => Promise<TestResult[]>;
11
+ export {};
@@ -1,11 +1,48 @@
1
1
  import type { MaybeArray, Size, Region } from '@applitools/utils';
2
2
  import type * as BaseCore from '@applitools/core-base/types';
3
3
  import { type SpecType, type Driver, type ElementReference, type ContextReference } from '@applitools/driver';
4
+ import { type NMLClient, type NMLClientSettings } from '@applitools/nml-client';
4
5
  import { type Logger } from '@applitools/logger';
5
- import { type NMLClient, type NMLRequestsConfig } from '@applitools/nml-client';
6
6
  export type * from '@applitools/core-base/types';
7
7
  export type DriverTarget<TSpec extends SpecType> = TSpec['driver'] | Driver<TSpec>;
8
8
  export type Target<TSpec extends SpecType> = DriverTarget<TSpec> | BaseCore.Target;
9
+ export interface DesktopBrowserRenderer {
10
+ name?: 'chrome' | 'chrome-one-version-back' | 'chrome-two-versions-back' | 'firefox' | 'firefox-one-version-back' | 'firefox-two-versions-back' | 'safari' | 'safari-earlyaccess' | 'safari-one-version-back' | 'safari-two-versions-back' | 'edgechromium' | 'edgechromium-one-version-back' | 'edgechromium-two-versions-back' | 'edge' | 'edgelegacy' | 'ie' | 'ie10';
11
+ width: number;
12
+ height: number;
13
+ }
14
+ export interface ChromeEmulationDeviceRenderer {
15
+ chromeEmulationInfo: {
16
+ deviceName: 'Kindle Fire HDX' | 'Blackberry PlayBook' | 'BlackBerry Z30' | 'Galaxy Note 2' | 'Galaxy S3' | 'Galaxy Note 3' | 'Galaxy Note 4' | 'Galaxy A5' | 'Galaxy S5' | 'Galaxy S8' | 'Galaxy S8 Plus' | 'Galaxy Note 8' | 'Galaxy S9' | 'Galaxy S9 Plus' | 'Galaxy Note 9' | 'Galaxy S10' | 'Galaxy S10 Plus' | 'Galaxy Note 10' | 'Galaxy Note 10 Plus' | 'Galaxy S20' | 'Galaxy S21' | 'Galaxy S21 Ultra' | 'Galaxy S22' | 'Galaxy S22 Ultra' | 'Galaxy Tab S7' | 'iPhone 4' | 'iPhone 5/SE' | 'iPhone 6/7/8' | 'iPhone 6/7/8 Plus' | 'iPhone X' | 'iPhone XR' | 'iPhone XS' | 'iPhone XS Max' | 'iPhone 11' | 'iPhone 11 Pro' | 'iPhone 11 Pro Max' | 'iPad' | 'iPad 6th Gen' | 'iPad 7th Gen' | 'iPad Air 2' | 'iPad Mini' | 'iPad Pro' | 'LG G6' | 'LG Optimus L70' | 'Nexus 10' | 'Nexus 4' | 'Nexus 5' | 'Nexus 5X' | 'Nexus 6' | 'Nexus 6P' | 'Nexus 7' | 'Pixel 2' | 'Pixel 2 XL' | 'Pixel 3' | 'Pixel 3 XL' | 'Pixel 4' | 'Pixel 4 XL' | 'Pixel 5' | 'Sony Xperia 10 II' | 'Huawei Mate 50 Pro' | 'Huawei Matepad 11' | 'OnePlus 7T' | 'OnePlus 7T Pro' | 'Nokia N9' | 'Nokia Lumia 520' | 'Microsoft Lumia 550' | 'Microsoft Lumia 950' | 'Laptop with HiDPI screen' | 'Laptop with MDPI screen' | 'Laptop with touch';
17
+ screenOrientation?: 'portrait' | 'landscape';
18
+ };
19
+ }
20
+ export interface IOSDeviceRenderer {
21
+ iosDeviceInfo: {
22
+ deviceName: 'iPhone 6s' | 'iPhone 6s Plus' | 'iPhone 7' | 'iPhone 7 Plus' | 'iPhone 8' | 'iPhone 8 Plus' | 'iPhone X' | 'iPhone XR' | 'iPhone Xs' | 'iPhone Xs Max' | 'iPhone 11' | 'iPhone 11 Pro' | 'iPhone 11 Pro Max' | 'iPhone 12' | 'iPhone 12 mini' | 'iPhone 12 Pro' | 'iPhone 12 Pro Max' | 'iPhone 13' | 'iPhone 13 mini' | 'iPhone 13 Pro' | 'iPhone 13 Pro Max' | 'iPhone 14' | 'iPhone 14 Plus' | 'iPhone 14 Pro' | 'iPhone 14 Pro Max' | 'iPhone SE (1st generation)' | 'iPhone SE (2nd generation)' | 'iPhone SE (3rd generation)' | 'iPad (5th generation)' | 'iPad (6th generation)' | 'iPad (7th generation)' | 'iPad (8th generation)' | 'iPad (9th generation)' | 'iPad (10th generation)' | 'iPad Air 2' | 'iPad Air (3rd generation)' | 'iPad Air (4th generation)' | 'iPad Air (5th generation)' | 'iPad mini 4' | 'iPad mini (5th generation)' | 'iPad mini (6th generation)' | 'iPad Pro (9.7-inch)' | 'iPad Pro (10.5-inch)' | 'iPad Pro (11-inch) (1st generation)' | 'iPad Pro (12.9-inch) (1st generation)' | 'iPad Pro (11-inch) (2nd generation)' | 'iPad Pro (12.9-inch) (2nd generation)' | 'iPad Pro (11-inch) (3rd generation)' | 'iPad Pro (12.9-inch) (3rd generation)' | 'iPad Pro (11-inch) (4th generation)' | 'iPad Pro (12.9-inch) (4th generation)' | 'iPad Pro (12.9-inch) (5th generation)' | 'iPad Pro (12.9-inch) (6th generation)' | 'iPod touch (7th generation)';
23
+ version?: string;
24
+ screenOrientation?: 'portrait' | 'landscape';
25
+ };
26
+ }
27
+ export interface AndroidDeviceRenderer {
28
+ androidDeviceInfo: {
29
+ deviceName: 'Pixel 3 XL' | 'Pixel 4' | 'Pixel 4 XL' | 'Pixel 5' | 'Pixel 6' | 'Galaxy S10' | 'Galaxy S10 Plus' | 'Galaxy Note 10' | 'Galaxy Note 10 Plus' | 'Galaxy S20' | 'Galaxy S20 Plus' | 'Galaxy S21' | 'Galaxy S21 Plus' | 'Galaxy S21 Ultra' | 'Galaxy S22' | 'Galaxy S22 Plus' | 'Galaxy Tab S7' | 'Galaxy Tab S8' | 'Xiaomi Redmi Note 10 JE' | 'Xiaomi Redmi Note 11' | 'Xiaomi Redmi Note 11 Pro' | 'Sony Xperia 1 II' | 'Sony Xperia 10 II' | 'Sony Xperia Ace II' | 'Huawei P30 Lite';
30
+ version?: string;
31
+ screenOrientation?: 'portrait' | 'landscape';
32
+ };
33
+ }
34
+ export interface EnvironmentRenderer {
35
+ environment: BaseCore.Environment;
36
+ }
37
+ export type Renderer = (DesktopBrowserRenderer | ChromeEmulationDeviceRenderer | IOSDeviceRenderer | AndroidDeviceRenderer | EnvironmentRenderer) & {
38
+ properties?: BaseCore.CustomProperty[];
39
+ /**
40
+ * The id of the renderer
41
+ * Used to identify the renderer if the same renderer is used multiple times
42
+ * @internal
43
+ **/
44
+ id?: string;
45
+ };
9
46
  export interface Core<TSpec extends SpecType> extends BaseCore.Core {
10
47
  readonly base: BaseCore.Core;
11
48
  getViewportSize?(options: {
@@ -18,14 +55,14 @@ export interface Core<TSpec extends SpecType> extends BaseCore.Core {
18
55
  logger?: Logger;
19
56
  }): Promise<void>;
20
57
  getNMLClient(options: {
21
- config: Omit<NMLRequestsConfig, 'brokerUrl'>;
58
+ settings: Omit<NMLClientSettings, 'brokerUrl'>;
22
59
  driver: Driver<TSpec>;
23
60
  logger?: Logger;
24
61
  }): Promise<NMLClient>;
25
62
  openEyes(options: {
26
63
  target?: DriverTarget<TSpec>;
27
64
  settings: BaseCore.OpenSettings;
28
- base?: BaseCore.Eyes[];
65
+ storage?: EyesStorage;
29
66
  logger?: Logger;
30
67
  }): Promise<Eyes<TSpec>>;
31
68
  locate<TLocator extends string>(options: {
@@ -46,19 +83,41 @@ export interface Core<TSpec extends SpecType> extends BaseCore.Core {
46
83
  }
47
84
  export interface Eyes<TSpec extends SpecType> extends BaseCore.Eyes {
48
85
  readonly core: Core<TSpec>;
49
- getBaseEyes(options?: {
86
+ readonly storage: EyesStorage;
87
+ getBaseEyes(options: {
88
+ settings: GetBaseEyesSettings;
50
89
  logger?: Logger;
51
- }): Promise<BaseCore.Eyes[]>;
90
+ }): Promise<BaseCore.Eyes>;
52
91
  check(options?: {
53
92
  target?: Target<TSpec>;
54
93
  settings?: CheckSettings<TSpec>;
55
94
  logger?: Logger;
56
- }): Promise<BaseCore.CheckResult[]>;
95
+ }): Promise<void>;
57
96
  checkAndClose(options?: {
58
97
  target?: Target<TSpec>;
59
98
  settings?: CheckSettings<TSpec> & BaseCore.CloseSettings;
60
99
  logger?: Logger;
61
100
  }): Promise<void>;
101
+ close(options?: {
102
+ settings?: CloseSettings;
103
+ logger?: Logger;
104
+ }): Promise<void>;
105
+ abort(options?: {
106
+ settings?: AbortSettings;
107
+ logger?: Logger;
108
+ }): Promise<void>;
109
+ getResults(options?: {
110
+ settings?: BaseCore.GetResultsSettings;
111
+ logger?: Logger;
112
+ }): Promise<TestResult[]>;
113
+ }
114
+ export type EyesStorage = Map<string, {
115
+ renderer?: Renderer;
116
+ eyes: Promise<BaseCore.Eyes>;
117
+ jobs: Promise<void>[];
118
+ }>;
119
+ export interface GetBaseEyesSettings {
120
+ renderer: Renderer;
62
121
  }
63
122
  export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.ImageSettings<Region | ElementReference<TSpec>> {
64
123
  webview?: boolean | string;
@@ -83,8 +142,20 @@ export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.Ima
83
142
  waitingTime?: number;
84
143
  maxAmountToScroll?: number;
85
144
  };
145
+ sendDom?: boolean;
86
146
  }
87
147
  export type LocateSettings<TLocator extends string, TSpec extends SpecType> = BaseCore.LocateSettings<TLocator, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
88
148
  export type LocateTextSettings<TPattern extends string, TSpec extends SpecType> = BaseCore.LocateTextSettings<TPattern, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
89
149
  export type ExtractTextSettings<TSpec extends SpecType> = BaseCore.ExtractTextSettings<Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
90
- export type CheckSettings<TSpec extends SpecType> = BaseCore.CheckSettings<Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
150
+ export type CheckSettings<TSpec extends SpecType> = BaseCore.CheckSettings<Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec> & {
151
+ renderers?: Renderer[];
152
+ };
153
+ export type CloseSettings = BaseCore.CloseSettings & {
154
+ renderers?: Renderer[];
155
+ };
156
+ export type AbortSettings = BaseCore.AbortSettings & {
157
+ renderers?: Renderer[];
158
+ };
159
+ export type TestResult = BaseCore.TestResult & {
160
+ readonly renderer: Renderer;
161
+ };
@@ -1,2 +1,2 @@
1
- import { type Renderer } from '@applitools/ufg-client';
1
+ import type { Renderer } from '../types';
2
2
  export declare function uniquifyRenderers<TRenderer extends Renderer>(renderers: TRenderer[]): TRenderer[];
package/types/check.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Target, DriverTarget, Eyes, Config, CheckSettings, CheckResult } from './types';
1
+ import type { Target, DriverTarget, Eyes, Config, CheckSettings } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
3
  import { type SpecType, type SpecDriver } from '@applitools/driver';
4
4
  type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
@@ -14,5 +14,5 @@ export declare function makeCheck<TSpec extends SpecType, TDefaultType extends '
14
14
  settings?: CheckSettings<TSpec, TType> | undefined;
15
15
  config?: Config<TSpec, TType> | undefined;
16
16
  logger?: Logger | undefined;
17
- }) => Promise<CheckResult<TType>[]>;
17
+ }) => Promise<void>;
18
18
  export {};
@@ -1,19 +1,26 @@
1
- import type { Target, DriverTarget, Eyes, CheckSettings, CloseSettings } from './types';
2
- import type { CheckSettings as BaseCheckSettings } from '@applitools/core-base';
1
+ import type { Target, DriverTarget, Eyes, CheckSettings, CloseSettings, Renderer } from './types';
2
+ import type { CheckSettings as BaseCheckSettings, CloseSettings as BaseCloseSettings } from '@applitools/core-base';
3
+ import { type AbortSignal } from 'abort-controller';
3
4
  import { type Logger } from '@applitools/logger';
4
5
  import { type SpecType, type SpecDriver } from '@applitools/driver';
5
6
  import * as utils from '@applitools/utils';
6
7
  type Options<TSpec extends SpecType> = {
7
8
  eyes: Eyes<TSpec>;
8
9
  target?: DriverTarget<TSpec>;
10
+ renderers?: Renderer[];
9
11
  spec?: SpecDriver<TSpec>;
12
+ signal?: AbortSignal;
10
13
  logger: Logger;
11
14
  };
12
- export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target: defaultTarget, spec, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
15
+ export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target: defaultTarget, renderers: defaultRenderers, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
13
16
  target?: Target<TSpec> | undefined;
14
17
  settings?: (BaseCheckSettings<utils.Region | import("@applitools/driver").ElementReference<TSpec>> & import("./types").ScreenshotSettings<TSpec> & {
18
+ renderers?: Renderer[] | undefined;
19
+ } & {
15
20
  retryTimeout?: number | undefined;
16
- } & CloseSettings) | undefined;
21
+ } & BaseCloseSettings & {
22
+ renderers?: Renderer[] | undefined;
23
+ }) | undefined;
17
24
  logger?: Logger | undefined;
18
25
  }) => Promise<void>;
19
26
  export {};
@@ -1,15 +1,18 @@
1
- import type { Target, DriverTarget, Eyes, CheckSettings, CheckResult } from './types';
1
+ import type { Target, DriverTarget, Eyes, CheckSettings, Renderer } from './types';
2
+ import { type AbortSignal } from 'abort-controller';
2
3
  import { type Logger } from '@applitools/logger';
3
4
  import { type SpecType, type SpecDriver } from '@applitools/driver';
4
5
  type Options<TSpec extends SpecType> = {
5
6
  eyes: Eyes<TSpec>;
6
7
  target?: DriverTarget<TSpec>;
8
+ renderers?: Renderer[];
7
9
  spec?: SpecDriver<TSpec>;
10
+ signal?: AbortSignal;
8
11
  logger: Logger;
9
12
  };
10
- export declare function makeCheck<TSpec extends SpecType>({ eyes, target: defaultTarget, spec, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
13
+ export declare function makeCheck<TSpec extends SpecType>({ eyes, target: defaultTarget, renderers: defaultRenderers, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
11
14
  target?: Target<TSpec> | undefined;
12
15
  settings?: CheckSettings<TSpec> | undefined;
13
16
  logger?: Logger | undefined;
14
- }) => Promise<CheckResult[]>;
17
+ }) => Promise<void>;
15
18
  export {};
@@ -9,9 +9,10 @@ type Options<TSpec extends SpecType> = {
9
9
  nml?: NMLClient;
10
10
  };
11
11
  base?: BaseCore;
12
+ concurrency?: number;
12
13
  agentId?: string;
13
14
  cwd?: string;
14
15
  logger?: Logger;
15
16
  };
16
- export declare function makeCore<TSpec extends SpecType>({ spec, clients, base, agentId, cwd, logger: defaultLogger, }: Options<TSpec>): Core<TSpec>;
17
+ export declare function makeCore<TSpec extends SpecType>({ spec, clients, base, concurrency, agentId, cwd, logger: defaultLogger, }: Options<TSpec>): Core<TSpec>;
17
18
  export {};
@@ -1,18 +1,14 @@
1
- import type { Eyes, OpenSettings } from './types';
1
+ import type { Eyes, GetBaseEyesSettings, OpenSettings } from './types';
2
2
  import type { Eyes as BaseEyes } from '@applitools/core-base';
3
3
  import { type SpecType } from '@applitools/driver';
4
4
  import { type Logger } from '@applitools/logger';
5
5
  type Options<TSpec extends SpecType> = {
6
6
  settings: OpenSettings;
7
7
  eyes: Eyes<TSpec>;
8
- base?: BaseEyes[];
9
8
  logger: Logger;
10
9
  };
11
- export declare function makeGetBaseEyes<TSpec extends SpecType>({ settings, eyes, base, logger: mainLogger }: Options<TSpec>): (({ logger }?: {
10
+ export declare function makeGetBaseEyes<TSpec extends SpecType>({ settings: defaultSettings, eyes, logger: mainLogger, }: Options<TSpec>): ({ settings, logger, }: {
11
+ settings: GetBaseEyesSettings;
12
12
  logger?: Logger | undefined;
13
- }) => Promise<BaseEyes[]>) & {
14
- getCachedValues(): Promise<BaseEyes[]>[];
15
- setCachedValue(key: any, value: Promise<BaseEyes[]>): void;
16
- clearCache(): void;
17
- };
13
+ }) => Promise<BaseEyes>;
18
14
  export {};
@@ -1,5 +1,4 @@
1
- import type { Core, DriverTarget, Eyes, OpenSettings } from './types';
2
- import type { Eyes as BaseEyes } from '@applitools/core-base';
1
+ import type { DriverTarget, Core, Eyes, EyesStorage, OpenSettings } from './types';
3
2
  import { type Logger } from '@applitools/logger';
4
3
  import { type SpecType, type SpecDriver } from '@applitools/driver';
5
4
  type Options<TSpec extends SpecType> = {
@@ -7,10 +6,10 @@ type Options<TSpec extends SpecType> = {
7
6
  spec?: SpecDriver<TSpec>;
8
7
  logger: Logger;
9
8
  };
10
- export declare function makeOpenEyes<TSpec extends SpecType>({ core, spec, logger: mainLogger }: Options<TSpec>): ({ target, settings, base, logger, }: {
9
+ export declare function makeOpenEyes<TSpec extends SpecType>({ core, spec, logger: mainLogger }: Options<TSpec>): ({ target, settings, storage, logger, }: {
11
10
  target?: DriverTarget<TSpec> | undefined;
12
11
  settings: OpenSettings;
13
- base?: BaseEyes[] | undefined;
12
+ storage?: EyesStorage | undefined;
14
13
  logger?: Logger | undefined;
15
14
  }) => Promise<Eyes<TSpec>>;
16
15
  export {};