@applitools/core 3.9.1 → 3.10.1

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 (66) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/dist/abort.js +40 -0
  3. package/dist/{ufg → automation}/abort.js +19 -3
  4. package/dist/{ufg → automation}/close.js +19 -3
  5. package/dist/automation/get-nml-client.js +3 -3
  6. package/dist/{ufg → automation}/get-results.js +4 -4
  7. package/dist/automation/utils/extract-renderer-key.js +35 -0
  8. package/dist/check-and-close.js +1 -10
  9. package/dist/check.js +8 -17
  10. package/dist/classic/check-and-close.js +125 -68
  11. package/dist/classic/check.js +108 -63
  12. package/dist/classic/core.js +4 -4
  13. package/dist/classic/get-base-eyes.js +30 -7
  14. package/dist/classic/open-eyes.js +42 -56
  15. package/dist/classic/utils/extract-default-renderers.js +72 -0
  16. package/dist/classic/utils/take-screenshots.js +60 -0
  17. package/dist/close.js +6 -3
  18. package/dist/core.js +4 -4
  19. package/dist/get-typed-eyes.js +3 -5
  20. package/dist/make-manager.js +2 -2
  21. package/dist/open-eyes.js +13 -10
  22. package/dist/ufg/check-and-close.js +61 -53
  23. package/dist/ufg/check.js +62 -59
  24. package/dist/ufg/core.js +2 -2
  25. package/dist/ufg/get-base-eyes.js +22 -13
  26. package/dist/ufg/open-eyes.js +24 -37
  27. package/dist/ufg/utils/extract-default-renderers.js +22 -0
  28. package/dist/universal/core.js +1 -0
  29. package/package.json +15 -15
  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 -8
  36. package/types/automation/utils/extract-renderer-key.d.ts +2 -0
  37. package/types/{ufg → automation}/utils/uniquify-renderers.d.ts +1 -1
  38. package/types/check.d.ts +2 -2
  39. package/types/classic/check-and-close.d.ts +11 -4
  40. package/types/classic/check.d.ts +6 -3
  41. package/types/classic/core.d.ts +2 -1
  42. package/types/classic/get-base-eyes.d.ts +4 -8
  43. package/types/classic/open-eyes.d.ts +3 -4
  44. package/types/classic/types.d.ts +3 -4
  45. package/types/classic/utils/extract-default-renderers.d.ts +9 -0
  46. package/types/classic/utils/take-screenshots.d.ts +18 -0
  47. package/types/close.d.ts +3 -2
  48. package/types/core.d.ts +7 -1
  49. package/types/get-typed-eyes.d.ts +5 -4
  50. package/types/make-manager.d.ts +7 -1
  51. package/types/open-eyes.d.ts +7 -1
  52. package/types/types.d.ts +5 -8
  53. package/types/ufg/check-and-close.d.ts +8 -12
  54. package/types/ufg/check.d.ts +4 -9
  55. package/types/ufg/core.d.ts +3 -3
  56. package/types/ufg/get-base-eyes.d.ts +3 -7
  57. package/types/ufg/open-eyes.d.ts +3 -4
  58. package/types/ufg/types.d.ts +3 -24
  59. package/types/ufg/utils/extract-default-renderers.d.ts +5 -0
  60. package/types/ufg/utils/take-dom-snapshots.d.ts +3 -3
  61. package/dist/classic/abort.js +0 -23
  62. package/dist/classic/close.js +0 -23
  63. package/types/ufg/abort.d.ts +0 -21
  64. package/types/ufg/close.d.ts +0 -19
  65. package/types/ufg/get-results.d.ts +0 -16
  66. /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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "3.9.1",
3
+ "version": "3.10.1",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -65,20 +65,20 @@
65
65
  "compress": "GZip"
66
66
  },
67
67
  "dependencies": {
68
- "@applitools/core-base": "1.5.1",
68
+ "@applitools/core-base": "1.5.3",
69
69
  "@applitools/dom-capture": "11.2.2",
70
70
  "@applitools/dom-snapshot": "4.7.10",
71
- "@applitools/driver": "1.13.5",
72
- "@applitools/ec-client": "1.7.5",
73
- "@applitools/logger": "2.0.8",
74
- "@applitools/nml-client": "1.5.8",
75
- "@applitools/req": "1.5.3",
76
- "@applitools/screenshoter": "3.8.8",
71
+ "@applitools/driver": "1.14.0",
72
+ "@applitools/ec-client": "1.7.7",
73
+ "@applitools/logger": "2.0.10",
74
+ "@applitools/nml-client": "1.5.10",
75
+ "@applitools/req": "1.6.0",
76
+ "@applitools/screenshoter": "3.8.10",
77
77
  "@applitools/snippets": "2.4.23",
78
- "@applitools/socket": "1.1.8",
79
- "@applitools/spec-driver-webdriver": "1.0.42",
80
- "@applitools/ufg-client": "1.7.1",
81
- "@applitools/utils": "1.5.1",
78
+ "@applitools/socket": "1.1.10",
79
+ "@applitools/spec-driver-webdriver": "1.0.44",
80
+ "@applitools/ufg-client": "1.8.0",
81
+ "@applitools/utils": "1.6.0",
82
82
  "@types/ws": "8.5.5",
83
83
  "abort-controller": "3.0.0",
84
84
  "chalk": "4.1.2",
@@ -89,11 +89,11 @@
89
89
  },
90
90
  "devDependencies": {
91
91
  "@applitools/bongo": "^5.6.1",
92
- "@applitools/spec-driver-puppeteer": "^1.1.73",
93
- "@applitools/spec-driver-selenium": "^1.5.56",
92
+ "@applitools/spec-driver-puppeteer": "^1.2.0",
93
+ "@applitools/spec-driver-selenium": "^1.5.58",
94
94
  "@applitools/test-server": "^1.2.2",
95
95
  "@applitools/test-utils": "^1.5.17",
96
- "@applitools/tunnel-client": "^1.2.0",
96
+ "@applitools/tunnel-client": "^1.2.2",
97
97
  "@types/node": "^12.20.55",
98
98
  "@types/selenium-webdriver": "^4.1.2",
99
99
  "@types/yargs": "^17.0.22",
@@ -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
- import type { MaybeArray, Size, Region } from '@applitools/utils';
1
+ import type { MaybeArray, Size, Region, ControlledPromise } 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,40 @@ 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
+ eyes: ControlledPromise<BaseCore.Eyes>;
116
+ jobs: Promise<void>[];
117
+ }>;
118
+ export interface GetBaseEyesSettings {
119
+ renderer: Renderer;
62
120
  }
63
121
  export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.ImageSettings<Region | ElementReference<TSpec>> {
64
122
  webview?: boolean | string;
@@ -83,8 +141,20 @@ export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.Ima
83
141
  waitingTime?: number;
84
142
  maxAmountToScroll?: number;
85
143
  };
144
+ sendDom?: boolean;
86
145
  }
87
146
  export type LocateSettings<TLocator extends string, TSpec extends SpecType> = BaseCore.LocateSettings<TLocator, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
88
147
  export type LocateTextSettings<TPattern extends string, TSpec extends SpecType> = BaseCore.LocateTextSettings<TPattern, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
89
148
  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>;
149
+ export type CheckSettings<TSpec extends SpecType> = BaseCore.CheckSettings<Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec> & {
150
+ renderers?: Renderer[];
151
+ };
152
+ export type CloseSettings = BaseCore.CloseSettings & {
153
+ renderers?: Renderer[];
154
+ };
155
+ export type AbortSettings = BaseCore.AbortSettings & {
156
+ renderers?: Renderer[];
157
+ };
158
+ export type TestResult = BaseCore.TestResult & {
159
+ readonly renderer: Renderer;
160
+ };
@@ -0,0 +1,2 @@
1
+ import type { Renderer } from '../types';
2
+ export declare function extractRendererKey(renderer: Renderer): string;
@@ -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 {};
@@ -1,4 +1,3 @@
1
- import type * as BaseCore from '@applitools/core-base/types';
2
1
  import type * as AutomationCore from '../automation/types';
3
2
  import { type SpecType } from '@applitools/driver';
4
3
  import { type Logger } from '@applitools/logger';
@@ -8,7 +7,7 @@ export interface Core<TSpec extends SpecType> extends AutomationCore.Core<TSpec>
8
7
  openEyes(options: {
9
8
  target?: AutomationCore.DriverTarget<TSpec>;
10
9
  settings: OpenSettings;
11
- base?: BaseCore.Eyes[];
10
+ storage?: AutomationCore.EyesStorage;
12
11
  logger?: Logger;
13
12
  }): Promise<Eyes<TSpec>>;
14
13
  }
@@ -19,7 +18,7 @@ export interface Eyes<TSpec extends SpecType> extends AutomationCore.Eyes<TSpec>
19
18
  target?: AutomationCore.Target<TSpec>;
20
19
  settings?: CheckSettings<TSpec>;
21
20
  logger?: Logger;
22
- }): Promise<AutomationCore.CheckResult[]>;
21
+ }): Promise<void>;
23
22
  checkAndClose(options?: {
24
23
  target?: AutomationCore.Target<TSpec>;
25
24
  settings?: CheckSettings<TSpec> & AutomationCore.CloseSettings;
@@ -27,8 +26,8 @@ export interface Eyes<TSpec extends SpecType> extends AutomationCore.Eyes<TSpec>
27
26
  }): Promise<void>;
28
27
  }
29
28
  export type OpenSettings = AutomationCore.OpenSettings & {
30
- keepPlatformNameAsIs?: boolean;
31
29
  useCeilForViewportSize?: boolean;
30
+ keepPlatformNameAsIs?: boolean;
32
31
  };
33
32
  export type CheckSettings<TSpec extends SpecType> = AutomationCore.CheckSettings<TSpec> & {
34
33
  retryTimeout?: number;
@@ -0,0 +1,9 @@
1
+ import type { EnvironmentRenderer, Environment } from '../types';
2
+ import { type SpecType, type Driver } from '@applitools/driver';
3
+ export declare function extractDefaultRenderers<TSpec extends SpecType>({ driver, settings, }: {
4
+ driver?: Driver<TSpec>;
5
+ settings?: {
6
+ keepPlatformNameAsIs?: boolean;
7
+ environment?: Environment;
8
+ };
9
+ }): Promise<EnvironmentRenderer[]>;
@@ -0,0 +1,18 @@
1
+ import type { ScreenshotSettings, Renderer } from '../types';
2
+ import type { Target as BaseTarget } from '@applitools/core-base';
3
+ import { type Logger } from '@applitools/logger';
4
+ import { type SpecType, type Driver, type ElementReference } from '@applitools/driver';
5
+ import { type DomCaptureSettings } from './take-dom-capture';
6
+ export type ScreenshotsSettings<TSpec extends SpecType> = ScreenshotSettings<TSpec> & {
7
+ renderers: Renderer[];
8
+ regionsToCalculate?: ElementReference<TSpec>[];
9
+ calculateView?: boolean;
10
+ domSettings?: DomCaptureSettings;
11
+ };
12
+ export declare function takeScreenshots<TSpec extends SpecType>({ driver, settings, logger, }: {
13
+ driver: Driver<TSpec>;
14
+ settings: ScreenshotsSettings<TSpec>;
15
+ logger: Logger;
16
+ }): Promise<(BaseTarget & {
17
+ calculatedRegions: any;
18
+ })[]>;
package/types/close.d.ts CHANGED
@@ -1,11 +1,12 @@
1
- import type { Eyes, Config, CloseSettings } from './types';
1
+ import type { Eyes, Config, CloseSettings, Renderer } from './types';
2
2
  import { type SpecType } from '@applitools/driver';
3
3
  import { type Logger } from '@applitools/logger';
4
4
  type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
5
5
  eyes: Eyes<TSpec, TType>;
6
+ renderers?: Renderer[];
6
7
  logger: Logger;
7
8
  };
8
- export declare function makeClose<TSpec extends SpecType, TType extends 'classic' | 'ufg'>({ eyes, logger: mainLogger, }: Options<TSpec, TType>): ({ settings, config, logger, }?: {
9
+ export declare function makeClose<TSpec extends SpecType, TType extends 'classic' | 'ufg'>({ eyes, renderers: defaultRenderers, logger: mainLogger, }: Options<TSpec, TType>): ({ settings, config, logger, }?: {
9
10
  settings?: CloseSettings<TType> | undefined;
10
11
  config?: Config<TSpec, TType> | undefined;
11
12
  logger?: Logger | undefined;
package/types/core.d.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  import type { Core } from './types';
2
2
  import type { Core as BaseCore } from '@applitools/core-base';
3
+ import { type UFGClient } from '@applitools/ufg-client';
4
+ import { type NMLClient } from '@applitools/nml-client';
3
5
  import { type SpecType, type SpecDriver } from '@applitools/driver';
4
6
  import { type Logger } from '@applitools/logger';
5
7
  type Options<TSpec extends SpecType> = {
6
8
  spec?: SpecDriver<TSpec>;
9
+ clients?: {
10
+ ufg?: UFGClient;
11
+ nml?: NMLClient;
12
+ };
7
13
  concurrency?: number;
8
14
  base?: BaseCore;
9
15
  agentId?: string;
@@ -11,5 +17,5 @@ type Options<TSpec extends SpecType> = {
11
17
  cwd?: string;
12
18
  logger?: Logger;
13
19
  };
14
- export declare function makeCore<TSpec extends SpecType>({ spec, concurrency, base: defaultBase, environment: defaultEnvironment, agentId, cwd, logger: defaultLogger, }?: Options<TSpec>): Core<TSpec, 'classic' | 'ufg'>;
20
+ export declare function makeCore<TSpec extends SpecType>({ spec, clients, concurrency, base: defaultBase, environment: defaultEnvironment, agentId, cwd, logger: defaultLogger, }?: Options<TSpec>): Core<TSpec, 'classic' | 'ufg'>;
15
21
  export {};
@@ -1,6 +1,5 @@
1
- import type { DriverTarget, TypedCore, TypedEyes, OpenSettings } from './types';
1
+ import type { DriverTarget, TypedCore, TypedEyes, OpenSettings, Renderer } from './types';
2
2
  import { type SpecType } from '@applitools/driver';
3
- import { type RenderEnvironmentSettings } from '@applitools/ufg-client';
4
3
  import { type Logger } from '@applitools/logger';
5
4
  type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
6
5
  type: TType;
@@ -11,9 +10,11 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
11
10
  };
12
11
  logger: Logger;
13
12
  };
14
- export declare function makeGetTypedEyes<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, settings: defaultSettings, target, cores, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, settings, logger, }?: {
13
+ export declare function makeGetTypedEyes<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, settings: defaultSettings, target, cores, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, logger, }?: {
15
14
  type?: TType | undefined;
16
- settings?: RenderEnvironmentSettings[] | undefined;
15
+ settings?: {
16
+ renderers?: Renderer[] | undefined;
17
+ } | undefined;
17
18
  logger?: Logger | undefined;
18
19
  }) => Promise<TypedEyes<TSpec, TType>>;
19
20
  export {};
@@ -1,9 +1,15 @@
1
1
  import type { Core, EyesManager, ManagerSettings } from './types';
2
2
  import type { Core as BaseCore } from '@applitools/core-base';
3
+ import { type UFGClient } from '@applitools/ufg-client';
4
+ import { type NMLClient } from '@applitools/nml-client';
3
5
  import { type Logger } from '@applitools/logger';
4
6
  import { type SpecType, type SpecDriver } from '@applitools/driver';
5
7
  type Options<TSpec extends SpecType> = {
6
8
  spec?: SpecDriver<TSpec>;
9
+ clients?: {
10
+ ufg?: UFGClient;
11
+ nml?: NMLClient;
12
+ };
7
13
  concurrency?: number;
8
14
  core: Core<TSpec>;
9
15
  base?: BaseCore;
@@ -12,7 +18,7 @@ type Options<TSpec extends SpecType> = {
12
18
  cwd?: string;
13
19
  logger: Logger;
14
20
  };
15
- export declare function makeMakeManager<TSpec extends SpecType>({ spec, concurrency: defaultConcurrency, core, base, agentId: defaultAgentId, environment, cwd, logger: mainLogger, }: Options<TSpec>): <TType extends "classic" | "ufg" = "classic">({ type, settings, logger, }?: {
21
+ export declare function makeMakeManager<TSpec extends SpecType>({ spec, clients, concurrency: defaultConcurrency, core, base, agentId: defaultAgentId, environment, cwd, logger: mainLogger, }: Options<TSpec>): <TType extends "classic" | "ufg" = "classic">({ type, settings, logger, }?: {
16
22
  type?: TType | undefined;
17
23
  settings?: ManagerSettings | undefined;
18
24
  logger?: Logger | undefined;
@@ -1,8 +1,14 @@
1
1
  import type { DriverTarget, Core, TypedCore, Batch, Eyes, Config, OpenSettings } from './types';
2
+ import { type UFGClient } from '@applitools/ufg-client';
3
+ import { type NMLClient } from '@applitools/nml-client';
2
4
  import { type Logger } from '@applitools/logger';
3
5
  import { type SpecType, type SpecDriver } from '@applitools/driver';
4
6
  type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
5
7
  type?: TType;
8
+ clients?: {
9
+ ufg?: UFGClient;
10
+ nml?: NMLClient;
11
+ };
6
12
  concurrency?: number;
7
13
  batch?: Batch;
8
14
  core: Core<TSpec, TType>;
@@ -13,7 +19,7 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
13
19
  environment?: Record<string, any>;
14
20
  logger: Logger;
15
21
  };
16
- export declare function makeOpenEyes<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg' = 'classic'>({ type: defaultType, concurrency, batch, core, cores, spec, environment, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, settings, config, target, logger, }: {
22
+ export declare function makeOpenEyes<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg' = 'classic'>({ type: defaultType, clients, concurrency, batch, core, cores, spec, environment, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, settings, config, target, logger, }: {
17
23
  type?: TType | undefined;
18
24
  settings?: Partial<OpenSettings<TDefaultType> & OpenSettings<TType>> | undefined;
19
25
  config?: (Config<TSpec, TDefaultType> & Config<TSpec, TType>) | undefined;