@applitools/eyes-webdriverio 5.35.8 → 5.36.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.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,26 @@
10
10
 
11
11
 
12
12
 
13
+ ## 5.36.1 - 2022/10/4
14
+
15
+ ### Features
16
+ ### Bug fixes
17
+ - Fixed the issue with screenshots being taken on chrome-emulated devices
18
+ - Fixed issue that prevented Target.webview() from being called
19
+
20
+ ## 5.36.0 - 2022/9/29
21
+
22
+ ### Features
23
+ - Don't fail `eyes.open` when there is a failure to set viewport size in `UFG`.
24
+ - Added support for lazy loading views in android native apps
25
+ - Using `lazyLoad.waitingTime` as a delay between stitches by default
26
+ - Added `Sony Xperia 10 II` emulation device
27
+ - Added `iPhone 14` and `iPhone 14 Pro Max` ios devices
28
+ - Deprecated "Content" match level value in favor of "IgnoreColors"
29
+ - Added support for webview switching in classic execution
30
+ ### Bug fixes
31
+ - Fixed incorrect calculation of the target element position.
32
+
13
33
  ## 5.35.8 - 2022/7/28
14
34
 
15
35
  ### Features
package/README.md CHANGED
@@ -31,6 +31,8 @@
31
31
  * [Accessiblity Regions](#accessiblity-regions)
32
32
  * [Scroll root element](#scroll-root-element)
33
33
  * [Variation group ID](#variation-group-id)
34
+ * [Lazy loading](#lazy-loading-lazyload)
35
+ * [WebView](#webview-webview)
34
36
  * [Other checkSettings configuration](#other-checksettings-configuration)
35
37
  * [close](#close)
36
38
  - [Runners](#runners)
@@ -375,6 +377,22 @@ Other details:
375
377
  - The SDK will repeatedly scroll the page using the `scrollLength` until either the page cannot be scrolled further or the `maxAmountToScroll` has been reached (whichever happens first)
376
378
  - If more time is needed for additional content to load, then increase the waitingTime to a value higher than 500 milliseconds. If better performance is desired and additional content lazily loads faster than the default waitingTime, then reduce it to a value below 500 milliseconds
377
379
 
380
+ ##### WebView (`webview`)
381
+
382
+ When working with native apps that have webviews, it's possible to capture their contents in a check command.
383
+
384
+ You do this by specifying it in the check settings like so:
385
+
386
+ ```js
387
+ // the SDK will automatically switch to the first available web view
388
+ eyes.check(Target.webview())
389
+
390
+ // they can also specify the webview id (if it's static and they know what it is)
391
+ eyes.check(Target.webview('webview-id'))
392
+ ```
393
+
394
+ After the check command, the SDK will switch the driver back to the app context that it was prior to performing the check.
395
+
378
396
  ###### Other checkSettings configuration
379
397
 
380
398
  <!-- TODO add explanation -->
package/dist/api.js CHANGED
@@ -27,14 +27,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.BatchClose = exports.Target = exports.CheckSettings = exports.Configuration = exports.Eyes = exports.By = void 0;
30
- const eyes_sdk_core_1 = require("@applitools/eyes-sdk-core");
30
+ const core_1 = require("@applitools/core");
31
31
  const api = __importStar(require("@applitools/eyes-api"));
32
32
  const spec = __importStar(require("@applitools/spec-driver-webdriverio"));
33
- const sdk = (0, eyes_sdk_core_1.makeSDK)({
34
- name: 'eyes-webdriverio',
35
- version: require('../package.json').version,
33
+ const sdk = (0, core_1.makeCore)({
34
+ agentId: `eyes-webdriverio/${require('../package.json').version}`,
36
35
  spec,
37
- VisualGridClient: require('@applitools/visual-grid-client'),
38
36
  });
39
37
  __exportStar(require("@applitools/eyes-api"), exports);
40
38
  var legacy_1 = require("./legacy");
package/dist/service.js CHANGED
@@ -22,7 +22,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- const eyes_sdk_core_1 = require("@applitools/eyes-sdk-core");
25
+ const core_1 = require("@applitools/core");
26
26
  const spec = __importStar(require("./spec-driver"));
27
27
  const api_1 = require("./api");
28
28
  if (!process.env.APPLITOOLS_WEBDRIVERIO_MAJOR_VERSION) {
@@ -34,11 +34,9 @@ if (!process.env.APPLITOOLS_WEBDRIVERIO_MAJOR_VERSION) {
34
34
  catch {
35
35
  }
36
36
  }
37
- const sdk = (0, eyes_sdk_core_1.makeSDK)({
38
- name: 'eyes-webdriverio-service',
39
- version: require('../package.json').version,
37
+ const sdk = (0, core_1.makeCore)({
38
+ agentId: `eyes-webdriverio-service/${require('../package.json').version}`,
40
39
  spec,
41
- VisualGridClient: require('@applitools/visual-grid-client'),
42
40
  });
43
41
  class EyesOverride extends api_1.Eyes {
44
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-webdriverio",
3
- "version": "5.35.8",
3
+ "version": "5.36.1",
4
4
  "description": "Applitools Eyes SDK for WebdriverIO",
5
5
  "keywords": [
6
6
  "eyes-webdriverio",
@@ -116,18 +116,17 @@
116
116
  }
117
117
  },
118
118
  "dependencies": {
119
- "@applitools/eyes-api": "1.7.5",
120
- "@applitools/eyes-sdk-core": "13.8.19",
121
- "@applitools/spec-driver-webdriverio": "1.2.19",
122
- "@applitools/visual-grid-client": "15.13.13"
119
+ "@applitools/core": "1.1.2",
120
+ "@applitools/eyes-api": "1.8.2",
121
+ "@applitools/spec-driver-webdriverio": "1.3.1"
123
122
  },
124
123
  "devDependencies": {
125
- "@applitools/api-extractor": "1.2.9",
126
- "@applitools/bongo": "^2.1.6",
127
- "@applitools/scripts": "1.1.0",
124
+ "@applitools/api-extractor": "1.2.11",
125
+ "@applitools/bongo": "^2.2.0",
126
+ "@applitools/scripts": "1.2.0",
128
127
  "@applitools/sdk-coverage-tests": "^2.3.20",
129
- "@applitools/sdk-shared": "0.9.13",
130
- "@applitools/test-utils": "1.4.3",
128
+ "@applitools/sdk-shared": "0.9.14",
129
+ "@applitools/test-utils": "1.5.1",
131
130
  "@types/mocha": "^9.1.1",
132
131
  "@types/node": "12",
133
132
  "@typescript-eslint/eslint-plugin": "^5.27.0",
@@ -136,7 +135,7 @@
136
135
  "@wdio/dot-reporter": "^7.16.4",
137
136
  "@wdio/local-runner": "^7.16.5",
138
137
  "@wdio/mocha-framework": "^7.16.4",
139
- "chromedriver": "^101.0.0",
138
+ "chromedriver": "^105.0.1",
140
139
  "eslint": "^8.16.0",
141
140
  "eslint-config-prettier": "^8.5.0",
142
141
  "eslint-plugin-mocha-no-only": "^1.1.1",
@@ -144,7 +143,7 @@
144
143
  "eslint-plugin-prettier": "^4.0.0",
145
144
  "geckodriver": "^1.20.0",
146
145
  "husky": "^4.3.8",
147
- "mocha": "^10.0.0",
146
+ "mocha": "^9.2.2",
148
147
  "prettier": "^2.6.2",
149
148
  "spec-xunit-file": "0.0.1-3",
150
149
  "ts-node": "^10.8.0",
package/types/index.d.ts CHANGED
@@ -38,7 +38,7 @@ export class Eyes {
38
38
  check(checkSettings?: CheckSettingsPlain): Promise<MatchResult>;
39
39
  locate<TLocator extends string>(settings: VisualLocatorSettings<TLocator>): Promise<Record<TLocator, Array<RegionPlain>>>;
40
40
  extractTextRegions<TPattern extends string>(settings: OCRSettings<TPattern>): Promise<Record<TPattern, Array<TextRegion>>>;
41
- extractText(regions: Array<OCRRegion>): Promise<Array<string>>;
41
+ extractText(settings: Array<OCRRegion>): Promise<Array<string>>;
42
42
  close(throwErr?: boolean): Promise<TestResults>;
43
43
  abort(): Promise<TestResults>;
44
44
  getViewportSize(): Promise<RectangleSize>;
@@ -127,7 +127,14 @@ export type ConfigurationPlain = {
127
127
  apiKey?: string;
128
128
  serverUrl?: string;
129
129
  proxy?: ProxySettingsPlain;
130
- autProxy?: { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; };
130
+ autProxy?: {
131
+ url: string;
132
+ username?: string;
133
+ password?: string;
134
+ isHttpOnly?: boolean;
135
+ mode?: "Allow" | "Block";
136
+ domains?: Array<string>;
137
+ };
131
138
  isDisabled?: boolean;
132
139
  appName?: string;
133
140
  testName?: string;
@@ -172,7 +179,7 @@ export type ConfigurationPlain = {
172
179
  disableBrowserFetching?: boolean;
173
180
  };
174
181
  export class Configuration implements Required<ConfigurationPlain> {
175
- constructor(config?: ConfigurationPlain);
182
+ constructor(config?: ConfigurationPlain, spec?: { isElement(element: any): element is Element; isSelector(selector: any): selector is Selector; });
176
183
  get appName(): string;
177
184
  set appName(appName: string);
178
185
  getAppName(): string;
@@ -219,10 +226,38 @@ export class Configuration implements Required<ConfigurationPlain> {
219
226
  setProxy(proxy: ProxySettingsPlain): Configuration;
220
227
  setProxy(url: string, username?: string, password?: string, isHttpOnly?: boolean): Configuration;
221
228
  setProxy(isEnabled: false): Configuration;
222
- get autProxy(): { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; };
223
- set autProxy(autProxy: { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; });
224
- getAutProxy(): { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; };
225
- setAutProxy(autProxy: { proxy: { url: string; username?: string; password?: string; isHttpOnly?: boolean; }; domains?: Array<string>; AUTProxyMode?: "Allow" | "Block"; }): Configuration;
229
+ get autProxy(): {
230
+ url: string;
231
+ username?: string;
232
+ password?: string;
233
+ isHttpOnly?: boolean;
234
+ mode?: "Allow" | "Block";
235
+ domains?: Array<string>;
236
+ };
237
+ set autProxy(autProxy: {
238
+ url: string;
239
+ username?: string;
240
+ password?: string;
241
+ isHttpOnly?: boolean;
242
+ mode?: "Allow" | "Block";
243
+ domains?: Array<string>;
244
+ });
245
+ getAutProxy(): {
246
+ url: string;
247
+ username?: string;
248
+ password?: string;
249
+ isHttpOnly?: boolean;
250
+ mode?: "Allow" | "Block";
251
+ domains?: Array<string>;
252
+ };
253
+ setAutProxy(autProxy: {
254
+ url: string;
255
+ username?: string;
256
+ password?: string;
257
+ isHttpOnly?: boolean;
258
+ mode?: "Allow" | "Block";
259
+ domains?: Array<string>;
260
+ }): Configuration;
226
261
  get batch(): BatchInfoPlain;
227
262
  set batch(batch: BatchInfoPlain);
228
263
  getBatch(): BatchInfo;
@@ -371,7 +406,7 @@ export class Configuration implements Required<ConfigurationPlain> {
371
406
  addBrowser(width: number, height: number, name?: BrowserTypePlain): Configuration;
372
407
  addDeviceEmulation(deviceName: DeviceNamePlain, screenOrientation?: ScreenOrientationPlain): Configuration;
373
408
  addMobileDevice(deviceName: AndroidDeviceNamePlain, screenOrientation: ScreenOrientationPlain, version?: AndroidVersionPlain): Configuration;
374
- addMobileDevice(deviceName: IosDeviceNamePlain, screenOrientation: ScreenOrientationPlain, version?: IosVersionPlain): Configuration;
409
+ addMobileDevice(deviceName: IosDeviceNamePlain, screenOrientation: ScreenOrientationPlain, version?: AndroidVersionPlain): Configuration;
375
410
  get visualGridOptions(): { [key: string]: any; };
376
411
  set visualGridOptions(visualGridOptions: { [key: string]: any; });
377
412
  getVisualGridOptions(): { [key: string]: any; };
@@ -405,13 +440,24 @@ export type CheckSettingsPlain = {
405
440
  contentRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top?: number; right?: number; bottom?: number; left?: number; }; regionId?: string; }>;
406
441
  floatingRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
407
442
  region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
443
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
444
+ regionId?: string;
445
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
446
+ } | {
447
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
448
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
449
+ regionId?: string;
408
450
  maxUpOffset?: number;
409
451
  maxDownOffset?: number;
410
452
  maxLeftOffset?: number;
411
453
  maxRightOffset?: number;
454
+ }>;
455
+ accessibilityRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
456
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
457
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
412
458
  regionId?: string;
459
+ type?: AccessibilityRegionTypePlain;
413
460
  }>;
414
- accessibilityRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); type?: AccessibilityRegionTypePlain; regionId?: string; }>;
415
461
  disableBrowserFetching?: boolean;
416
462
  layoutBreakpoints?: boolean | Array<number>;
417
463
  visualGridOptions?: { [key: string]: any; };
@@ -422,9 +468,10 @@ export type CheckSettingsPlain = {
422
468
  timeout?: number;
423
469
  waitBeforeCapture?: number;
424
470
  lazyLoad?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; };
471
+ webview?: string | boolean;
425
472
  };
426
473
  export class CheckSettings {
427
- constructor(settings?: CheckSettingsPlain);
474
+ constructor(settings?: CheckSettings | CheckSettingsPlain, spec?: { isElement(value: any): value is Element; isSelector(value: any): value is Selector; });
428
475
  withName(name: string): CheckSettings;
429
476
  region(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))): CheckSettings;
430
477
  shadow(selector: string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }): CheckSettings;
@@ -440,25 +487,40 @@ export class CheckSettings {
440
487
  contentRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); padding?: number | { top?: number; right?: number; bottom?: number; left?: number; }; regionId?: string; }>): CheckSettings;
441
488
  floatingRegion(region: {
442
489
  region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
490
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
491
+ regionId?: string;
492
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
493
+ }): CheckSettings;
494
+ floatingRegion(region: {
495
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
496
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
497
+ regionId?: string;
443
498
  maxUpOffset?: number;
444
499
  maxDownOffset?: number;
445
500
  maxLeftOffset?: number;
446
501
  maxRightOffset?: number;
447
- regionId?: string;
448
502
  }): CheckSettings;
449
503
  floatingRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))), maxUpOffset?: number, maxDownOffset?: number, maxLeftOffset?: number, maxRightOffset?: number): CheckSettings;
450
504
  floatingRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
451
505
  region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
452
- maxUpOffset?: number;
453
- maxDownOffset?: number;
454
- maxLeftOffset?: number;
455
- maxRightOffset?: number;
506
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
456
507
  regionId?: string;
508
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
457
509
  }>): CheckSettings;
458
510
  floatingRegions(maxOffset: number, ...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>): CheckSettings;
459
- accessibilityRegion(region: { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); type?: AccessibilityRegionTypePlain; regionId?: string; }): CheckSettings;
511
+ accessibilityRegion(region: {
512
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
513
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
514
+ regionId?: string;
515
+ type?: AccessibilityRegionTypePlain;
516
+ }): CheckSettings;
460
517
  accessibilityRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))), type?: AccessibilityRegionTypePlain): CheckSettings;
461
- accessibilityRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | { region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); type?: AccessibilityRegionTypePlain; regionId?: string; }>): CheckSettings;
518
+ accessibilityRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
519
+ region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
520
+ padding?: number | { top?: number; right?: number; bottom?: number; left?: number; };
521
+ regionId?: string;
522
+ type?: AccessibilityRegionTypePlain;
523
+ }>): CheckSettings;
462
524
  accessibilityRegions(type: AccessibilityRegionTypePlain, ...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>): CheckSettings;
463
525
  scrollRootElement(scrollRootElement: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })): CheckSettings;
464
526
  fully(fully?: boolean): CheckSettings;
@@ -476,14 +538,15 @@ export class CheckSettings {
476
538
  layoutBreakpoints(layoutBreakpoints?: boolean | Array<number>): CheckSettings;
477
539
  hook(name: string, script: string): CheckSettings;
478
540
  beforeRenderScreenshotHook(script: string): CheckSettings;
479
- visualGridOption(key: string, value: any): CheckSettings;
480
- visualGridOptions(options: { [key: string]: any; }): CheckSettings;
541
+ ufgOption(key: string, value: any): CheckSettings;
542
+ ufgOptions(options: { [key: string]: any; }): CheckSettings;
481
543
  renderId(renderId: string): CheckSettings;
482
544
  pageId(pageId: string): CheckSettings;
483
545
  variationGroupId(variationGroupId: string): CheckSettings;
484
546
  timeout(timeout: number): CheckSettings;
485
547
  waitBeforeCapture(waitBeforeCapture: number): CheckSettings;
486
- lazyLoad(options: { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; }): CheckSettings;
548
+ lazyLoad(options?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; }): CheckSettings;
549
+ webview(option?: string | boolean): CheckSettings;
487
550
  }
488
551
  export const Target: {
489
552
  window(): CheckSettings;
@@ -491,10 +554,11 @@ export const Target: {
491
554
  frame(context: { frame: number | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })); scrollRootElement?: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }); }): CheckSettings;
492
555
  frame(frame: number | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })), scrollRootElement?: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })): CheckSettings;
493
556
  shadow(selector: string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }): CheckSettings;
557
+ webview(option?: string | boolean): CheckSettings;
494
558
  };
495
559
  export class BatchClose {
496
- static close(settings: { batchIds: Array<string>; serverUrl?: string; apiKey?: string; proxy?: ProxySettingsPlain; }): Promise<void>;
497
- constructor(options?: { batchIds: Array<string>; serverUrl?: string; apiKey?: string; proxy?: ProxySettingsPlain; });
560
+ static close(settings: { batchIds: Array<string>; serverUrl: string; apiKey: string; proxy?: ProxySettingsPlain; }): Promise<void>;
561
+ constructor(options?: { batchIds: Array<string>; serverUrl: string; apiKey: string; proxy?: ProxySettingsPlain; });
498
562
  close(): Promise<void>;
499
563
  setBatchIds(batchIds: Array<string>): BatchClose;
500
564
  setUrl(serverUrl: string): BatchClose;
@@ -550,7 +614,7 @@ export enum CorsIframeHandle {
550
614
  KEEP = 'KEEP',
551
615
  SNAPSHOT = 'SNAPSHOT'
552
616
  }
553
- export type DeviceNamePlain = "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5";
617
+ export type DeviceNamePlain = "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5" | "Sony Xperia 10 II";
554
618
  export enum DeviceName {
555
619
  Blackberry_PlayBook = 'Blackberry PlayBook',
556
620
  BlackBerry_Z30 = 'BlackBerry Z30',
@@ -615,15 +679,18 @@ export enum DeviceName {
615
679
  Pixel_3_XL = 'Pixel 3 XL',
616
680
  Pixel_4 = 'Pixel 4',
617
681
  Pixel_4_XL = 'Pixel 4 XL',
618
- Pixel_5 = 'Pixel 5'
682
+ Pixel_5 = 'Pixel 5',
683
+ Sony_Xperia_10_II = 'Sony Xperia 10 II'
619
684
  }
620
685
  export type FailureReportPlain = "IMMEDIATE" | "ON_CLOSE";
621
686
  export enum FailureReport {
622
687
  IMMEDIATE = 'IMMEDIATE',
623
688
  ON_CLOSE = 'ON_CLOSE'
624
689
  }
625
- export type IosDeviceNamePlain = "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)";
690
+ export type IosDeviceNamePlain = "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 14 Pro Max" | "iPhone 14" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)";
626
691
  export enum IosDeviceName {
692
+ iPhone_14_Pro_Max = 'iPhone 14 Pro Max',
693
+ iPhone_14 = 'iPhone 14',
627
694
  iPhone_13_Pro_Max = 'iPhone 13 Pro Max',
628
695
  iPhone_13_Pro = 'iPhone 13 Pro',
629
696
  iPhone_13 = 'iPhone 13',
@@ -682,19 +749,19 @@ export enum AndroidDeviceName {
682
749
  Xiaomi_Redmi_Note_11 = 'Xiaomi Redmi Note 11',
683
750
  Xiaomi_Redmi_Note_11_Pro = 'Xiaomi Redmi Note 11 Pro'
684
751
  }
685
- export type AndroidVersionPlain = "latest" | "latest-1" | "latest-2";
752
+ export type AndroidVersionPlain = "latest" | "latest-1";
686
753
  export enum AndroidVersion {
687
754
  LATEST = 'latest',
688
- ONE_VERSION_BACK = 'latest-1',
689
- TWO_VERSIONS_BACK = 'latest-2'
755
+ ONE_VERSION_BACK = 'latest-1'
690
756
  }
691
- export type MatchLevelPlain = "None" | "Layout1" | "Layout" | "Layout2" | "Content" | "Strict" | "Exact";
757
+ export type MatchLevelPlain = "None" | "Layout1" | "Layout" | "Layout2" | "Content" | "IgnoreColor" | "Strict" | "Exact";
692
758
  export enum MatchLevel {
693
759
  None = 'None',
694
760
  LegacyLayout = 'Layout1',
695
761
  Layout = 'Layout',
696
762
  Layout2 = 'Layout2',
697
763
  Content = 'Content',
764
+ IgnoreColor = 'IgnoreColor',
698
765
  Strict = 'Strict',
699
766
  Exact = 'Exact'
700
767
  }
@@ -1102,7 +1169,7 @@ export class Region implements Required<RegionPlain> {
1102
1169
  }
1103
1170
  export type DesktopBrowserInfo = { name?: BrowserTypePlain; width: number; height: number; };
1104
1171
  export type ChromeEmulationInfo = { chromeEmulationInfo: { deviceName: DeviceNamePlain; screenOrientation?: ScreenOrientationPlain; }; };
1105
- export type IOSDeviceInfo = { iosDeviceInfo: { deviceName: IosDeviceNamePlain; iosVersion?: IosVersionPlain; screenOrientation?: ScreenOrientationPlain; }; };
1172
+ export type IOSDeviceInfo = { iosDeviceInfo: { deviceName: IosDeviceNamePlain; iosVersion?: AndroidVersionPlain; screenOrientation?: ScreenOrientationPlain; }; };
1106
1173
  export type AndroidDeviceInfo = { androidDeviceInfo: { deviceName: AndroidDeviceNamePlain; version?: AndroidVersionPlain; screenOrientation?: ScreenOrientationPlain; }; };
1107
1174
  export type RunnerOptionsPlain = { testConcurrency?: number; };
1108
1175
  export class RunnerOptionsFluent {
@@ -1272,71 +1339,17 @@ export class TestResults implements Required<TestResultsPlain> {
1272
1339
  isPassed(): boolean;
1273
1340
  delete(): Promise<void>;
1274
1341
  }
1275
- export type TestResultContainerPlain = { readonly exception?: Error; readonly testResults?: {
1276
- readonly id?: string;
1277
- readonly name?: string;
1278
- readonly secretToken?: string;
1279
- readonly status?: "Passed" | "Failed" | "Unresolved";
1280
- readonly appName?: string;
1281
- readonly batchId?: string;
1282
- readonly batchName?: string;
1283
- readonly branchName?: string;
1284
- readonly hostOS?: string;
1285
- readonly hostApp?: string;
1286
- readonly hostDisplaySize?: { width: number; height: number; };
1287
- readonly accessibilityStatus?: { readonly level: "AA" | "AAA"; readonly version: "WCAG_2_0" | "WCAG_2_1"; readonly status: "Passed" | "Failed"; };
1288
- readonly startedAt?: string | Date;
1289
- readonly duration?: number;
1290
- readonly isNew?: boolean;
1291
- readonly isDifferent?: boolean;
1292
- readonly isAborted?: boolean;
1293
- readonly appUrls?: { readonly batch?: string; readonly session?: string; };
1294
- readonly apiUrls?: { readonly batch?: string; readonly session?: string; };
1295
- readonly stepsInfo?: Array<{
1296
- readonly name?: string;
1297
- readonly isDifferent?: boolean;
1298
- readonly hasBaselineImage?: boolean;
1299
- readonly hasCurrentImage?: boolean;
1300
- readonly appUrls?: { readonly step?: string; readonly stepEditor?: string; };
1301
- readonly apiUrls?: {
1302
- readonly baselineImage?: string;
1303
- readonly currentImage?: string;
1304
- readonly checkpointImage?: string;
1305
- readonly checkpointImageThumbnail?: string;
1306
- readonly diffImage?: string;
1307
- };
1308
- readonly renderId?: Array<string>;
1309
- }>;
1310
- readonly steps?: number;
1311
- readonly matches?: number;
1312
- readonly mismatches?: number;
1313
- readonly missing?: number;
1314
- readonly exactMatches?: number;
1315
- readonly strictMatches?: number;
1316
- readonly contentMatches?: number;
1317
- readonly layoutMatches?: number;
1318
- readonly noneMatches?: number;
1319
- readonly url?: string;
1320
- }; readonly browserInfo?: { name?: "chrome" | "chrome-one-version-back" | "chrome-two-versions-back" | "firefox" | "firefox-one-version-back" | "firefox-two-versions-back" | "ie" | "ie10" | "edge" | "edgechromium" | "edgelegacy" | "edgechromium-one-version-back" | "edgechromium-two-versions-back" | "safari" | "safari-earlyaccess" | "safari-one-version-back" | "safari-two-versions-back"; width: number; height: number; } | { chromeEmulationInfo: { deviceName: "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5"; screenOrientation?: "landscape" | "portrait"; }; } | { iosDeviceInfo: { deviceName: "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)"; iosVersion?: "latest" | "latest-1"; screenOrientation?: "landscape" | "portrait"; }; } | { androidDeviceInfo: { deviceName: "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5" | "Pixel 6" | "Galaxy S20 Plus" | "Galaxy S21" | "Galaxy S21 Plus" | "Galaxy S21 Ultra" | "Galaxy S22 Plus" | "Galaxy Tab S8" | "Xiaomi Redmi Note 11" | "Xiaomi Redmi Note 11 Pro"; version?: "latest" | "latest-1" | "latest-2"; screenOrientation?: "landscape" | "portrait"; }; }; };
1342
+ export type TestResultContainerPlain = { readonly exception: Error; readonly testResults: TestResultsPlain; readonly browserInfo: DesktopBrowserInfo | ChromeEmulationInfo | { deviceName: DeviceNamePlain; screenOrientation?: ScreenOrientationPlain; } | IOSDeviceInfo | AndroidDeviceInfo; };
1321
1343
  export class TestResultContainer implements Required<TestResultContainerPlain> {
1322
1344
  get testResults(): TestResultsPlain;
1323
1345
  getTestResults(): TestResults;
1324
1346
  get exception(): Error;
1325
1347
  getException(): Error;
1326
- get browserInfo(): { name?: "chrome" | "chrome-one-version-back" | "chrome-two-versions-back" | "firefox" | "firefox-one-version-back" | "firefox-two-versions-back" | "ie" | "ie10" | "edge" | "edgechromium" | "edgelegacy" | "edgechromium-one-version-back" | "edgechromium-two-versions-back" | "safari" | "safari-earlyaccess" | "safari-one-version-back" | "safari-two-versions-back"; width: number; height: number; } | { chromeEmulationInfo: { deviceName: "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5"; screenOrientation?: "landscape" | "portrait"; }; } | { iosDeviceInfo: { deviceName: "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)"; iosVersion?: "latest" | "latest-1"; screenOrientation?: "landscape" | "portrait"; }; } | { androidDeviceInfo: { deviceName: "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5" | "Pixel 6" | "Galaxy S20 Plus" | "Galaxy S21" | "Galaxy S21 Plus" | "Galaxy S21 Ultra" | "Galaxy S22 Plus" | "Galaxy Tab S8" | "Xiaomi Redmi Note 11" | "Xiaomi Redmi Note 11 Pro"; version?: "latest" | "latest-1" | "latest-2"; screenOrientation?: "landscape" | "portrait"; }; };
1327
- getBrowserInfo(): { name?: "chrome" | "chrome-one-version-back" | "chrome-two-versions-back" | "firefox" | "firefox-one-version-back" | "firefox-two-versions-back" | "ie" | "ie10" | "edge" | "edgechromium" | "edgelegacy" | "edgechromium-one-version-back" | "edgechromium-two-versions-back" | "safari" | "safari-earlyaccess" | "safari-one-version-back" | "safari-two-versions-back"; width: number; height: number; } | { chromeEmulationInfo: { deviceName: "Blackberry PlayBook" | "BlackBerry Z30" | "Galaxy A5" | "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 2" | "Galaxy Note 3" | "Galaxy Note 4" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S3" | "Galaxy S5" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "iPad" | "iPad 6th Gen" | "iPad 7th Gen" | "iPad Air 2" | "iPad Mini" | "iPad Pro" | "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone 4" | "iPhone 5/SE" | "iPhone 6/7/8" | "iPhone 6/7/8 Plus" | "iPhone X" | "iPhone XR" | "iPhone XS" | "iPhone XS Max" | "Kindle Fire HDX" | "Laptop with HiDPI screen" | "Laptop with MDPI screen" | "Laptop with touch" | "LG G6" | "LG Optimus L70" | "Microsoft Lumia 550" | "Microsoft Lumia 950" | "Nexus 10" | "Nexus 4" | "Nexus 5" | "Nexus 5X" | "Nexus 6" | "Nexus 6P" | "Nexus 7" | "Nokia Lumia 520" | "Nokia N9" | "OnePlus 7T" | "OnePlus 7T Pro" | "Pixel 2" | "Pixel 2 XL" | "Pixel 3" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5"; screenOrientation?: "landscape" | "portrait"; }; } | { iosDeviceInfo: { deviceName: "iPhone 11" | "iPhone 11 Pro" | "iPhone 11 Pro Max" | "iPhone X" | "iPhone XR" | "iPhone 13 Pro Max" | "iPhone 13 Pro" | "iPhone 13" | "iPhone 12 Pro Max" | "iPhone 12 Pro" | "iPhone 12" | "iPhone 12 mini" | "iPhone Xs" | "iPhone 8" | "iPhone 8 Plus" | "iPhone 7" | "iPhone SE (1st generation)" | "iPad Pro (12.9-inch) (3rd generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)"; iosVersion?: "latest" | "latest-1"; screenOrientation?: "landscape" | "portrait"; }; } | { androidDeviceInfo: { deviceName: "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy Note 8" | "Galaxy Note 9" | "Galaxy S8" | "Galaxy S8 Plus" | "Galaxy S9" | "Galaxy S9 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5" | "Pixel 6" | "Galaxy S20 Plus" | "Galaxy S21" | "Galaxy S21 Plus" | "Galaxy S21 Ultra" | "Galaxy S22 Plus" | "Galaxy Tab S8" | "Xiaomi Redmi Note 11" | "Xiaomi Redmi Note 11 Pro"; version?: "latest" | "latest-1" | "latest-2"; screenOrientation?: "landscape" | "portrait"; }; };
1348
+ get browserInfo(): DesktopBrowserInfo | ChromeEmulationInfo | { deviceName: DeviceNamePlain; screenOrientation?: ScreenOrientationPlain; } | IOSDeviceInfo | AndroidDeviceInfo;
1349
+ getBrowserInfo(): DesktopBrowserInfo | ChromeEmulationInfo | { deviceName: DeviceNamePlain; screenOrientation?: ScreenOrientationPlain; } | IOSDeviceInfo | AndroidDeviceInfo;
1328
1350
  }
1329
- export type TestResultsSummaryPlain = {
1330
- results: Array<TestResultContainerPlain>;
1331
- passed: number;
1332
- unresolved: number;
1333
- failed: number;
1334
- exceptions: number;
1335
- mismatches: number;
1336
- missing: number;
1337
- matches: number;
1338
- };
1339
- export class TestResultsSummary implements Iterable<TestResultContainerPlain> {
1351
+ export type TestResultsSummaryPlain = Iterable<TestResultContainerPlain>;
1352
+ export class TestResultsSummary implements Iterable<TestResultContainer> {
1340
1353
  getAllResults(): Array<TestResultContainer>;
1341
1354
  [Symbol.iterator](): Iterator<TestResultContainer, any, undefined>;
1342
1355
  }
@@ -1375,7 +1388,7 @@ export class Logger {
1375
1388
  tag(name: string, value: any): void;
1376
1389
  extend(label?: string): Logger;
1377
1390
  }
1378
- export function closeBatch(spec: { closeBatches(options: { settings: { batchIds: Array<string>; serverUrl?: string; apiKey?: string; proxy?: ProxySettingsPlain; }; }): Promise<void>; }): (options: { batchIds: Array<string>; serverUrl?: string; apiKey?: string; proxy?: ProxySettingsPlain; }) => Promise<void>;
1391
+ export function closeBatch(spec: BatchCloseSpec): (options: { batchIds: Array<string>; serverUrl: string; apiKey: string; proxy?: ProxySettingsPlain; }) => Promise<void>;
1379
1392
  export abstract class EyesRunner {
1380
1393
  getAllTestResults(throwErr?: boolean): Promise<TestResultsSummary>;
1381
1394
  }