@applitools/eyes-webdriverio 5.36.3 → 5.38.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.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,25 @@
10
10
 
11
11
 
12
12
 
13
+ ## 5.38.0 - 2022/11/17
14
+
15
+ ### Features
16
+ - Added new selector extensions `child` and `fallback`
17
+ - Added new iOS device - 'iPad Pro (11-inch) (4th generation)'
18
+ - Mark target element with `data-applitools-scroll` attribute before capture dom
19
+ - Use user agent metadata to improve browser environment detection logic
20
+ - Use APPLITOOLS_CONCURRENCY env variable to specify concurrency
21
+ ### Bug fixes
22
+ - Fixed bug that caused `extractText` to throw, due to fractional size of the target region
23
+ - Fixed issue when current context is not being preserved in ufg mode
24
+
25
+ ## 5.37.0 - 2022/10/18
26
+
27
+ ### Features
28
+ - Drop support for Android 9 and Android 10 specific devices
29
+ ### Bug fixes
30
+ - Fixed error that was happening when test results were deleted
31
+
13
32
  ## 5.36.3 - 2022/10/13
14
33
 
15
34
  ### Features
package/dist/api.js CHANGED
@@ -45,11 +45,11 @@ class Configuration extends api.Configuration {
45
45
  }
46
46
  exports.Configuration = Configuration;
47
47
  Configuration._spec = sdk;
48
- class CheckSettings extends api.CheckSettings {
48
+ class CheckSettings extends api.CheckSettingsAutomation {
49
49
  }
50
50
  exports.CheckSettings = CheckSettings;
51
51
  CheckSettings._spec = sdk;
52
- exports.Target = CheckSettings;
52
+ exports.Target = { ...api.Target, spec: sdk };
53
53
  class BatchClose extends api.BatchClose {
54
54
  }
55
55
  exports.BatchClose = BatchClose;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-webdriverio",
3
- "version": "5.36.3",
3
+ "version": "5.38.0",
4
4
  "description": "Applitools Eyes SDK for WebdriverIO",
5
5
  "keywords": [
6
6
  "eyes-webdriverio",
@@ -116,15 +116,15 @@
116
116
  }
117
117
  },
118
118
  "dependencies": {
119
- "@applitools/core": "1.1.6",
120
- "@applitools/eyes-api": "1.8.6",
121
- "@applitools/spec-driver-webdriverio": "1.4.1"
119
+ "@applitools/core": "1.2.12",
120
+ "@applitools/eyes-api": "1.10.4",
121
+ "@applitools/spec-driver-webdriverio": "1.4.6"
122
122
  },
123
123
  "devDependencies": {
124
124
  "@applitools/api-extractor": "1.2.11",
125
125
  "@applitools/bongo": "^2.2.0",
126
126
  "@applitools/scripts": "1.2.0",
127
- "@applitools/sdk-coverage-tests": "^2.3.20",
127
+ "@applitools/sdk-coverage-tests": "^2.7.8",
128
128
  "@applitools/sdk-shared": "0.9.15",
129
129
  "@applitools/test-utils": "1.5.2",
130
130
  "@types/mocha": "^9.1.1",
package/types/index.d.ts CHANGED
@@ -34,10 +34,40 @@ export class Eyes {
34
34
  getIsOpen(): boolean;
35
35
  open(driver: Driver, config?: ConfigurationPlain): Promise<Driver>;
36
36
  open(driver: Driver, appName?: string, testName?: string, viewportSize?: RectangleSizePlain, sessionType?: SessionTypePlain): Promise<Driver>;
37
- check(name: string, checkSettings: CheckSettings): Promise<MatchResult>;
37
+ open(config?: ConfigurationPlain): Promise<void>;
38
+ open(appName?: string, testName?: string, viewportSize?: RectangleSizePlain, sessionType?: SessionTypePlain): Promise<void>;
39
+ check(name: string, checkSettings: CheckSettingsImage | CheckSettings): Promise<MatchResult>;
40
+ check(target: {
41
+ image: string | URL | Buffer;
42
+ name?: string;
43
+ dom?: string;
44
+ locationInViewport?: LocationPlain;
45
+ locationInView?: LocationPlain;
46
+ fullViewSize?: RectangleSizePlain;
47
+ }, checkSettings?: CheckSettingsImagePlain): Promise<MatchResult>;
38
48
  check(checkSettings?: CheckSettingsPlain): Promise<MatchResult>;
39
49
  locate<TLocator extends string>(settings: VisualLocatorSettings<TLocator>): Promise<Record<TLocator, Array<RegionPlain>>>;
50
+ extractTextRegions<TPattern extends string>(target: {
51
+ image: string | URL | Buffer;
52
+ size?: { width: number; height: number; };
53
+ name?: string;
54
+ source?: string;
55
+ dom?: string;
56
+ locationInViewport?: { x: number; y: number; };
57
+ locationInView?: { x: number; y: number; };
58
+ fullViewSize?: { width: number; height: number; };
59
+ }, settings: OCRSettings<TPattern>): Promise<Record<TPattern, Array<TextRegion>>>;
40
60
  extractTextRegions<TPattern extends string>(settings: OCRSettings<TPattern>): Promise<Record<TPattern, Array<TextRegion>>>;
61
+ extractText(target: {
62
+ image: string | URL | Buffer;
63
+ size?: { width: number; height: number; };
64
+ name?: string;
65
+ source?: string;
66
+ dom?: string;
67
+ locationInViewport?: { x: number; y: number; };
68
+ locationInView?: { x: number; y: number; };
69
+ fullViewSize?: { width: number; height: number; };
70
+ }, settings: Array<OCRRegion>): Promise<Array<string>>;
41
71
  extractText(settings: Array<OCRRegion>): Promise<Array<string>>;
42
72
  close(throwErr?: boolean): Promise<TestResults>;
43
73
  abort(): Promise<TestResults>;
@@ -387,140 +417,23 @@ export class Configuration implements Required<ConfigurationPlain> {
387
417
  setDisableBrowserFetching(disableBrowserFetching: boolean): Configuration;
388
418
  }
389
419
  export type OCRRegion = { target: Element | RegionPlain | EyesSelector<Selector>; hint?: string; minMatch?: number; language?: string; };
390
- export type CheckSettingsPlain = {
391
- name?: string;
392
- region?: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
420
+ export type CheckSettingsPlain = CheckSettingsImagePlain & {
393
421
  frames?: Array<{ 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>; }); } | (number | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>;
422
+ webview?: string | boolean;
394
423
  scrollRootElement?: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; });
395
424
  fully?: boolean;
396
- matchLevel?: MatchLevelPlain;
397
- useDom?: boolean;
398
- sendDom?: boolean;
399
- enablePatterns?: boolean;
400
- ignoreDisplacements?: boolean;
401
- ignoreCaret?: boolean;
402
- ignoreRegions?: 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; bottom: number; let: number; right: number; }; regionId?: string; }>;
403
- layoutRegions?: 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; bottom: number; let: number; right: number; }; regionId?: string; }>;
404
- strictRegions?: 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; bottom: number; let: number; right: number; }; regionId?: string; }>;
405
- 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; bottom: number; let: number; right: number; }; regionId?: string; }>;
406
- floatingRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
407
- region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
408
- padding?: number | { top: number; bottom: number; let: number; right: number; };
409
- regionId?: string;
410
- offset?: { top?: number; bottom?: number; left?: number; right?: number; };
411
- } | {
412
- region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
413
- padding?: number | { top: number; bottom: number; let: number; right: number; };
414
- regionId?: string;
415
- maxUpOffset?: number;
416
- maxDownOffset?: number;
417
- maxLeftOffset?: number;
418
- maxRightOffset?: number;
419
- }>;
420
- accessibilityRegions?: Array<(RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
421
- region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
422
- padding?: number | { top: number; bottom: number; let: number; right: number; };
423
- regionId?: string;
424
- type?: AccessibilityRegionTypePlain;
425
- }>;
426
425
  disableBrowserFetching?: boolean;
427
426
  layoutBreakpoints?: boolean | Array<number>;
428
427
  visualGridOptions?: { [key: string]: any; };
429
428
  hooks?: { beforeCaptureScreenshot: string; };
430
429
  renderId?: string;
431
- pageId?: string;
432
- variationGroupId?: string;
433
430
  timeout?: number;
434
431
  waitBeforeCapture?: number;
435
432
  lazyLoad?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; };
436
- webview?: string | boolean;
437
433
  };
438
- export class CheckSettings {
439
- constructor(settings?: CheckSettings | CheckSettingsPlain, spec?: { isElement(value: any): value is Element; isSelector(value: any): value is Selector; });
440
- withName(name: string): CheckSettings;
441
- region(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))): CheckSettings;
442
- shadow(selector: string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }): CheckSettings;
443
- 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;
444
- 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;
445
- ignoreRegion(region: 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; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettings;
446
- ignoreRegions(...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; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettings;
447
- layoutRegion(region: 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; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettings;
448
- layoutRegions(...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; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettings;
449
- strictRegion(region: 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; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettings;
450
- strictRegions(...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; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettings;
451
- contentRegion(region: 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; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettings;
452
- 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; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettings;
453
- floatingRegion(region: {
454
- region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
455
- padding?: number | { top: number; bottom: number; let: number; right: number; };
456
- regionId?: string;
457
- offset?: { top?: number; bottom?: number; left?: number; right?: number; };
458
- }): CheckSettings;
459
- floatingRegion(region: {
460
- region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
461
- padding?: number | { top: number; bottom: number; let: number; right: number; };
462
- regionId?: string;
463
- maxUpOffset?: number;
464
- maxDownOffset?: number;
465
- maxLeftOffset?: number;
466
- maxRightOffset?: number;
467
- }): CheckSettings;
468
- 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;
469
- floatingRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
470
- region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
471
- padding?: number | { top: number; bottom: number; let: number; right: number; };
472
- regionId?: string;
473
- offset?: { top?: number; bottom?: number; left?: number; right?: number; };
474
- }>): CheckSettings;
475
- floatingRegions(maxOffset: number, ...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>): CheckSettings;
476
- accessibilityRegion(region: {
477
- region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
478
- padding?: number | { top: number; bottom: number; let: number; right: number; };
479
- regionId?: string;
480
- type?: AccessibilityRegionTypePlain;
481
- }): CheckSettings;
482
- accessibilityRegion(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))), type?: AccessibilityRegionTypePlain): CheckSettings;
483
- accessibilityRegions(...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }))) | {
484
- region: RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }));
485
- padding?: number | { top: number; bottom: number; let: number; right: number; };
486
- regionId?: string;
487
- type?: AccessibilityRegionTypePlain;
488
- }>): CheckSettings;
489
- accessibilityRegions(type: AccessibilityRegionTypePlain, ...regions: Array<LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))>): CheckSettings;
490
- scrollRootElement(scrollRootElement: Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })): CheckSettings;
491
- fully(fully?: boolean): CheckSettings;
492
- matchLevel(matchLevel: MatchLevelPlain): CheckSettings;
493
- layout(): CheckSettings;
494
- exact(): CheckSettings;
495
- strict(): CheckSettings;
496
- content(): CheckSettings;
497
- useDom(useDom?: boolean): CheckSettings;
498
- sendDom(sendDom?: boolean): CheckSettings;
499
- enablePatterns(enablePatterns?: boolean): CheckSettings;
500
- ignoreDisplacements(ignoreDisplacements?: boolean): CheckSettings;
501
- ignoreCaret(ignoreCaret?: boolean): CheckSettings;
502
- disableBrowserFetching(disableBrowserFetching: boolean): CheckSettings;
503
- layoutBreakpoints(layoutBreakpoints?: boolean | Array<number>): CheckSettings;
504
- hook(name: string, script: string): CheckSettings;
505
- beforeRenderScreenshotHook(script: string): CheckSettings;
506
- ufgOption(key: string, value: any): CheckSettings;
507
- ufgOptions(options: { [key: string]: any; }): CheckSettings;
508
- renderId(renderId: string): CheckSettings;
509
- pageId(pageId: string): CheckSettings;
510
- variationGroupId(variationGroupId: string): CheckSettings;
511
- timeout(timeout: number): CheckSettings;
512
- waitBeforeCapture(waitBeforeCapture: number): CheckSettings;
513
- lazyLoad(options?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; }): CheckSettings;
514
- webview(option?: string | boolean): CheckSettings;
434
+ export class CheckSettings extends CheckSettings {
515
435
  }
516
- export const Target: {
517
- window(): CheckSettings;
518
- region(region: LegacyRegionPlain | (RegionPlain | (Element | (string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; })))): CheckSettings;
519
- 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;
520
- 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;
521
- shadow(selector: string | Selector | { selector: string | Selector; type?: string; shadow?: EyesSelector<Selector>; frame?: EyesSelector<Selector>; }): CheckSettings;
522
- webview(option?: string | boolean): CheckSettings;
523
- };
436
+ export const Target: TargetImage & TargetAutomation<Element, Selector>;
524
437
  export class BatchClose {
525
438
  static close(settings: { batchIds: Array<string>; serverUrl: string; apiKey: string; proxy?: ProxySettingsPlain; }): Promise<void>;
526
439
  constructor(options?: { batchIds: Array<string>; serverUrl: string; apiKey: string; proxy?: ProxySettingsPlain; });
@@ -653,7 +566,7 @@ export enum FailureReport {
653
566
  IMMEDIATE = 'IMMEDIATE',
654
567
  ON_CLOSE = 'ON_CLOSE'
655
568
  }
656
- 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)";
569
+ 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 Pro (11-inch) (4th generation)" | "iPad (7th generation)" | "iPad (9th generation)" | "iPad Air (2nd generation)" | "iPad Air (4th generation)";
657
570
  export enum IosDeviceName {
658
571
  iPhone_14_Pro_Max = 'iPhone 14 Pro Max',
659
572
  iPhone_14 = 'iPhone 14',
@@ -675,6 +588,7 @@ export enum IosDeviceName {
675
588
  iPhone_7 = 'iPhone 7',
676
589
  iPhone_SE = 'iPhone SE (1st generation)',
677
590
  iPad_Pro_3 = 'iPad Pro (12.9-inch) (3rd generation)',
591
+ iPad_Pro_4 = 'iPad Pro (11-inch) (4th generation)',
678
592
  iPad_7 = 'iPad (7th generation)',
679
593
  iPad_9 = 'iPad (9th generation)',
680
594
  iPad_Air_2 = 'iPad Air (2nd generation)',
@@ -686,19 +600,13 @@ export enum IosVersion {
686
600
  ONE_VERSION_BACK = 'latest-1',
687
601
  LATEST_ONE_VERSION_BACK = 'latest-1'
688
602
  }
689
- export type AndroidDeviceNamePlain = "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" | "Sony Xperia 10 II" | "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";
603
+ export type AndroidDeviceNamePlain = "Galaxy Note 10" | "Galaxy Note 10 Plus" | "Galaxy S10" | "Galaxy S10 Plus" | "Galaxy S20" | "Galaxy S22" | "Galaxy Tab S7" | "Pixel 3 XL" | "Pixel 4" | "Pixel 4 XL" | "Pixel 5" | "Sony Xperia 10 II" | "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";
690
604
  export enum AndroidDeviceName {
691
605
  Pixel_3_XL = 'Pixel 3 XL',
692
606
  Pixel_4 = 'Pixel 4',
693
607
  Pixel_4_XL = 'Pixel 4 XL',
694
608
  Pixel_5 = 'Pixel 5',
695
609
  Pixel_6 = 'Pixel 6',
696
- Galaxy_Note_8 = 'Galaxy Note 8',
697
- Galaxy_Note_9 = 'Galaxy Note 9',
698
- Galaxy_S8 = 'Galaxy S8',
699
- Galaxy_S8_Plus = 'Galaxy S8 Plus',
700
- Galaxy_S9 = 'Galaxy S9',
701
- Galaxy_S9_Plus = 'Galaxy S9 Plus',
702
610
  Galaxy_S10 = 'Galaxy S10',
703
611
  Galaxy_S10_Plus = 'Galaxy S10 Plus',
704
612
  Galaxy_Note_10 = 'Galaxy Note 10',
@@ -831,6 +739,218 @@ export class BatchInfo implements Required<BatchInfoPlain> {
831
739
  addProperty(name: string, value: string): BatchInfo;
832
740
  addProperty(prop: PropertyDataPlain): BatchInfo;
833
741
  }
742
+ export type CheckSettingsImagePlain = {
743
+ name?: string;
744
+ region?: RegionPlain;
745
+ matchLevel?: MatchLevelPlain;
746
+ useDom?: boolean;
747
+ sendDom?: boolean;
748
+ enablePatterns?: boolean;
749
+ ignoreDisplacements?: boolean;
750
+ ignoreMismatch?: boolean;
751
+ ignoreCaret?: boolean;
752
+ ignoreRegions?: Array<RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>;
753
+ layoutRegions?: Array<RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>;
754
+ strictRegions?: Array<RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>;
755
+ contentRegions?: Array<RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>;
756
+ floatingRegions?: Array<RegionPlain | {
757
+ region: RegionPlain;
758
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
759
+ regionId?: string;
760
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
761
+ } | {
762
+ region: RegionPlain;
763
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
764
+ regionId?: string;
765
+ maxUpOffset?: number;
766
+ maxDownOffset?: number;
767
+ maxLeftOffset?: number;
768
+ maxRightOffset?: number;
769
+ }>;
770
+ accessibilityRegions?: Array<RegionPlain | {
771
+ region: RegionPlain;
772
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
773
+ regionId?: string;
774
+ type?: AccessibilityRegionTypePlain;
775
+ }>;
776
+ pageId?: string;
777
+ variationGroupId?: string;
778
+ };
779
+ export class CheckSettingsImage {
780
+ constructor(settings?: CheckSettingsImagePlain | CheckSettingsImage, target?: {
781
+ image: string | URL | Buffer;
782
+ name?: string;
783
+ dom?: string;
784
+ locationInViewport?: LocationPlain;
785
+ locationInView?: LocationPlain;
786
+ fullViewSize?: RectangleSizePlain;
787
+ });
788
+ image(image: string | URL | Buffer): CheckSettingsImage;
789
+ buffer(imageBuffer: Buffer): CheckSettingsImage;
790
+ base64(imageBase64: Buffer): CheckSettingsImage;
791
+ path(imagePath: string): CheckSettingsImage;
792
+ url(imageUrl: string | URL): CheckSettingsImage;
793
+ name(name: string): CheckSettingsImage;
794
+ withDom(dom: string): CheckSettingsImage;
795
+ withLocation(locationInViewport: LocationPlain): CheckSettingsImage;
796
+ region(region: LegacyRegionPlain | RegionPlain): CheckSettingsImage;
797
+ withName(name: string): CheckSettingsImage;
798
+ ignoreRegion(region: LegacyRegionPlain | RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettingsImage;
799
+ ignoreRegions(...regions: Array<LegacyRegionPlain | RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettingsImage;
800
+ layoutRegion(region: LegacyRegionPlain | RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettingsImage;
801
+ layoutRegions(...regions: Array<LegacyRegionPlain | RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettingsImage;
802
+ strictRegion(region: LegacyRegionPlain | RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettingsImage;
803
+ strictRegions(...regions: Array<LegacyRegionPlain | RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettingsImage;
804
+ contentRegion(region: LegacyRegionPlain | RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }): CheckSettingsImage;
805
+ contentRegions(...regions: Array<LegacyRegionPlain | RegionPlain | { region: RegionPlain; padding?: number | { top: number; bottom: number; let: number; right: number; }; regionId?: string; }>): CheckSettingsImage;
806
+ floatingRegion(region: {
807
+ region: RegionPlain;
808
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
809
+ regionId?: string;
810
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
811
+ }): CheckSettingsImage;
812
+ floatingRegion(region: {
813
+ region: RegionPlain;
814
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
815
+ regionId?: string;
816
+ maxUpOffset?: number;
817
+ maxDownOffset?: number;
818
+ maxLeftOffset?: number;
819
+ maxRightOffset?: number;
820
+ }): CheckSettingsImage;
821
+ floatingRegion(region: LegacyRegionPlain | RegionPlain, maxUpOffset?: number, maxDownOffset?: number, maxLeftOffset?: number, maxRightOffset?: number): CheckSettingsImage;
822
+ floatingRegions(...regions: Array<LegacyRegionPlain | RegionPlain | {
823
+ region: RegionPlain;
824
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
825
+ regionId?: string;
826
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
827
+ }>): CheckSettingsImage;
828
+ floatingRegions(maxOffset: number, ...regions: Array<LegacyRegionPlain | RegionPlain>): CheckSettingsImage;
829
+ accessibilityRegion(region: {
830
+ region: RegionPlain;
831
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
832
+ regionId?: string;
833
+ type?: AccessibilityRegionTypePlain;
834
+ }): CheckSettingsImage;
835
+ accessibilityRegion(region: LegacyRegionPlain | RegionPlain, type?: AccessibilityRegionTypePlain): CheckSettingsImage;
836
+ accessibilityRegions(...regions: Array<LegacyRegionPlain | RegionPlain | {
837
+ region: RegionPlain;
838
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
839
+ regionId?: string;
840
+ type?: AccessibilityRegionTypePlain;
841
+ }>): CheckSettingsImage;
842
+ accessibilityRegions(type: AccessibilityRegionTypePlain, ...regions: Array<LegacyRegionPlain | RegionPlain>): CheckSettingsImage;
843
+ matchLevel(matchLevel: MatchLevelPlain): CheckSettingsImage;
844
+ layout(): CheckSettingsImage;
845
+ exact(): CheckSettingsImage;
846
+ strict(): CheckSettingsImage;
847
+ content(): CheckSettingsImage;
848
+ enablePatterns(enablePatterns?: boolean): CheckSettingsImage;
849
+ ignoreDisplacements(ignoreDisplacements?: boolean): CheckSettingsImage;
850
+ ignoreCaret(ignoreCaret?: boolean): CheckSettingsImage;
851
+ useDom(useDom?: boolean): CheckSettingsImage;
852
+ sendDom(sendDom?: boolean): CheckSettingsImage;
853
+ pageId(pageId: string): CheckSettingsImage;
854
+ variationGroupId(variationGroupId: string): CheckSettingsImage;
855
+ }
856
+ export type CheckSettingsAutomationPlain<TElement, TSelector> = CheckSettingsImagePlain & {
857
+ frames?: Array<{ frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })); scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }); } | (number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })))>;
858
+ webview?: string | boolean;
859
+ scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; });
860
+ fully?: boolean;
861
+ disableBrowserFetching?: boolean;
862
+ layoutBreakpoints?: boolean | Array<number>;
863
+ visualGridOptions?: { [key: string]: any; };
864
+ hooks?: { beforeCaptureScreenshot: string; };
865
+ renderId?: string;
866
+ timeout?: number;
867
+ waitBeforeCapture?: number;
868
+ lazyLoad?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; };
869
+ };
870
+ export class CheckSettingsAutomation<TElement = unknown, TSelector = unknown> {
871
+ constructor(settings?: CheckSettings | CheckSettingsPlain, spec?: { isElement(value: any): value is TElement; isSelector(value: any): value is TSelector; });
872
+ region(region: RegionPlain | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }))): CheckSettings;
873
+ shadow(selector: string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }): CheckSettings;
874
+ frame(context: { frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })); scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }); }): CheckSettings;
875
+ frame(frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })), scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })): CheckSettings;
876
+ webview(webview?: string | boolean): CheckSettings;
877
+ scrollRootElement(scrollRootElement: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })): CheckSettings;
878
+ fully(fully?: boolean): CheckSettings;
879
+ disableBrowserFetching(disableBrowserFetching: boolean): CheckSettings;
880
+ layoutBreakpoints(layoutBreakpoints?: boolean | Array<number>): CheckSettings;
881
+ hook(name: string, script: string): CheckSettings;
882
+ beforeRenderScreenshotHook(script: string): CheckSettings;
883
+ ufgOption(key: string, value: any): CheckSettings;
884
+ ufgOptions(options: { [key: string]: any; }): CheckSettings;
885
+ renderId(renderId: string): CheckSettings;
886
+ timeout(timeout: number): CheckSettings;
887
+ waitBeforeCapture(waitBeforeCapture: number): CheckSettings;
888
+ lazyLoad(options?: boolean | { scrollLength?: number; waitingTime?: number; maxAmountToScroll?: number; }): CheckSettings;
889
+ name(name: string): CheckSettings;
890
+ withName(name: string): CheckSettings;
891
+ ignoreRegion(region: any): CheckSettings;
892
+ ignoreRegions(...regions: Array<any>): CheckSettings;
893
+ layoutRegion(region: any): CheckSettings;
894
+ layoutRegions(...regions: Array<any>): CheckSettings;
895
+ strictRegion(region: any): CheckSettings;
896
+ strictRegions(...regions: Array<any>): CheckSettings;
897
+ contentRegion(region: any): CheckSettings;
898
+ contentRegions(...regions: Array<any>): CheckSettings;
899
+ floatingRegion(region: {
900
+ region: any;
901
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
902
+ regionId?: string;
903
+ offset?: { top?: number; bottom?: number; left?: number; right?: number; };
904
+ }): CheckSettings;
905
+ floatingRegion(region: {
906
+ region: any;
907
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
908
+ regionId?: string;
909
+ maxUpOffset?: number;
910
+ maxDownOffset?: number;
911
+ maxLeftOffset?: number;
912
+ maxRightOffset?: number;
913
+ }): CheckSettings;
914
+ floatingRegion(region: any, maxUpOffset?: number, maxDownOffset?: number, maxLeftOffset?: number, maxRightOffset?: number): CheckSettings;
915
+ floatingRegions(...regions: Array<any>): CheckSettings;
916
+ floatingRegions(maxOffset: number, ...regions: Array<any>): CheckSettings;
917
+ accessibilityRegion(region: {
918
+ region: any;
919
+ padding?: number | { top: number; bottom: number; let: number; right: number; };
920
+ regionId?: string;
921
+ type?: AccessibilityRegionTypePlain;
922
+ }): CheckSettings;
923
+ accessibilityRegion(region: any, type?: AccessibilityRegionTypePlain): CheckSettings;
924
+ accessibilityRegions(...regions: Array<any>): CheckSettings;
925
+ accessibilityRegions(type: AccessibilityRegionTypePlain, ...regions: Array<any>): CheckSettings;
926
+ matchLevel(matchLevel: MatchLevelPlain): CheckSettings;
927
+ layout(): CheckSettings;
928
+ exact(): CheckSettings;
929
+ strict(): CheckSettings;
930
+ content(): CheckSettings;
931
+ enablePatterns(enablePatterns?: boolean): CheckSettings;
932
+ ignoreDisplacements(ignoreDisplacements?: boolean): CheckSettings;
933
+ ignoreCaret(ignoreCaret?: boolean): CheckSettings;
934
+ useDom(useDom?: boolean): CheckSettings;
935
+ sendDom(sendDom?: boolean): CheckSettings;
936
+ pageId(pageId: string): CheckSettings;
937
+ variationGroupId(variationGroupId: string): CheckSettings;
938
+ }
939
+ export type TargetImage = {
940
+ image(image: string | URL | Buffer): CheckSettingsImage;
941
+ buffer(imageBuffer: Buffer): CheckSettingsImage;
942
+ base64(imageBase64: string): CheckSettingsImage;
943
+ path(imagePath: string): CheckSettingsImage;
944
+ url(imageUrl: string | URL): CheckSettingsImage;
945
+ };
946
+ export type TargetAutomation<TElement, TSelector> = {
947
+ window(): CheckSettings;
948
+ region(region: LegacyRegionPlain | (RegionPlain | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })))): CheckSettings;
949
+ frame(context: { frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })); scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }); }): CheckSettings;
950
+ frame(frame: number | (TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })), scrollRootElement?: TElement | (string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; })): CheckSettings;
951
+ shadow(selector: string | TSelector | { selector: string | TSelector; type?: string; shadow?: EyesSelector<TSelector>; frame?: EyesSelector<TSelector>; }): CheckSettings;
952
+ webview(webview?: string | boolean): CheckSettings;
953
+ };
834
954
  export type CutProviderPlain = { top: number; right: number; bottom: number; left: number; } | { x: number; y: number; width: number; height: number; };
835
955
  export class CutProvider implements Required<{
836
956
  x: number;